﻿/*  ajaxVideos
	pobiera i przetwarza listę plików wideo
	
	Parametry:
	objName = nazwa obiektu
	div = ID diva, który zostanie utworzony
	file = plik z xmlem do wczytania
	
	przykładowe wywołanie:
	<script type="text/javascript">
		var videos = new ajaxVideos("videos","videosContent","xml_videos.aspx");
	</script>
*/ 


function ajaxVideos(objName,div,file)
{
	this.name = objName;
	this.pointer = 0;

	this.videoId = [];
	this.video_path = [];
	this.date = [];
	this.lead = [];
	this.sys_name = [];
	this.title = [];
	
	this.folder_name = [];
	this.mouseoverBol = 0;


	
	this.showdiv = div;
	this.pagerdiv = div + "Pager";
	this.pageSize = 4;
	this.videosUrl = "";
	this.imgPath = "/poranki/_video/";
	
	this.xml = null;
	
	document.write('<div id="'+ div +'"><div style="font-family:Tahoma, Helvetica, sans-serif;font-size:11px;"><img src="http://www.polskieradio.pl/_img/loading.gif" align="top" vspace="2"> Ładowanie...</div></div>');
	document.write('');
	document.write('<div id="'+ div +'Pager"></div>');
	
	this.request = new function()
	{
		var request = null;
		if(window.XMLHttpRequest) request = new XMLHttpRequest();
		else if (window.ActiveXObject)
		{
			request = new ActiveXObject("Msxml2.XMLHTTP");
			if (!request) request = new ActiveXObject("Microsoft.XMLHTTP");
		}
		return request;
	}
	this.getXMLfile(file);
}

ajaxVideos.prototype.handleResponse = function()
{ 
	if (this.request.readyState == 4)
	{
		if (this.request.status==200 || window.location.href.indexOf("http")==-1)
		{ 
			this.xml = this.request.responseXML;
			
			for (var i=0; i<this.xml.getElementsByTagName("video").length; i++)
			{
				try
				{
					var node = this.xml.getElementsByTagName("video");
					this.videoId[i] = node[i].getAttribute("id");
					this.date[i] = node[i].getElementsByTagName("date")[0].firstChild.nodeValue.substring(0,16);
					this.title[i] = node[i].getElementsByTagName("title")[0].firstChild.nodeValue;
					this.sys_name[i] = this.xml.getElementsByTagName("video")[i].getElementsByTagName("sys_name")[0].firstChild.nodeValue;
					this.lead[i] = node[i].getElementsByTagName("lead")[0].firstChild.nodeValue;
				
				
					this.video_path[i] = node[i].getElementsByTagName("video_path")[0].firstChild.nodeValue;
				
					var instanceOfTicker=this
					document.getElementById(this.showdiv).onmouseover=function(){instanceOfTicker.mouseoverBol=1}
					document.getElementById(this.showdiv).onmouseout=function(){instanceOfTicker.mouseoverBol=0}
				}
				catch(ev)
				{
					alert(ev.message);
				}
			}
			this.writemsg();
		}
	}
}

ajaxVideos.prototype.getXMLfile = function(file)
{
	if (this.request)
	{
		var instanceOfTicker=this;
		var url = file;
		this.request.onreadystatechange=function(){instanceOfTicker.handleResponse();}
		this.request.open('GET', url, true);
		this.request.send(null);
	}
}


ajaxVideos.prototype.writemsg = function()
{
	this.html(this.pointer);
}

ajaxVideos.prototype.html = function (pointer)
{
	var number = pointer;

	if (this.xml.getElementsByTagName("video").length < this.pageSize)
	{
		this.pageSize = this.xml.getElementsByTagName("video").length;
	}

	document.getElementById(this.pagerdiv).innerHTML = "";
	for (var i=0; i<this.pageSize; i++)
	{
		img = "";
		if( this.video_path[number] != "" )
		{
			var imgUrl = this.imgPath + this.sys_name[number].replace(".jpg", "a.jpg");
			img = '<img src="'+ imgUrl +'" width="50" height="38" alt="" title="'+ this.lead[number] +'" border="0" />';
		}
		if(pointer == number)
		{
			cssclass = 'class="active"';
		}
		else
		{
			cssclass = '';
		}
		document.getElementById(this.pagerdiv).innerHTML +='<a '+ cssclass +' onclick="'+ this.name +'.show('+number+')" title="'+this.title[number]+'" ><span class="title">'+ img +'</span></a>';
		if (number == this.video_path.length-1) number = -1;
		if (number < 0) number == this.video_path.length-1;
		number++;
	}
	document.getElementById(this.pagerdiv).innerHTML += '<div class="arrows"><div id="'+ this.showdiv +'_prev"><span></span></div> \
	<div id="'+ this.showdiv +'_next"><span></span></div> \
	</div>';

	// wiązanie akcji do strzałek
	var instanceOfTicker=this;
	document.getElementById(this.showdiv + "_prev").onmouseover=function(){instanceOfTicker.mouseoverBol=1}
	document.getElementById(this.showdiv + "_prev").onmouseout=function(){instanceOfTicker.mouseoverBol=0}
	document.getElementById(this.showdiv + "_prev").onclick=function(){instanceOfTicker.prv()}
	
	document.getElementById(this.showdiv + "_next").onmouseover=function(){instanceOfTicker.mouseoverBol=1}
	document.getElementById(this.showdiv + "_next").onmouseout=function(){instanceOfTicker.mouseoverBol=0}
	document.getElementById(this.showdiv + "_next").onclick=function(){instanceOfTicker.next()}

	var rnd = Math.floor( Math.random() * 999 + 1);
	var playerDivId = "videoPlayer_" + rnd;
	document.getElementById(this.showdiv).innerHTML ='<div class="videoPlayer" id="'+ playerDivId +'"></div>';

    var fileUrl = this.video_path[pointer];
	//var imgUrl = this.videosUrl + this.sys_name[pointer];
	//var imgUrl = this.imgPath + this.folder_name[number]+ '/' + this.sys_name[number].replace(".jpg", "_250.jpg");
	 var imgUrl = this.video_path[pointer].replace(".flv", ".jpg");;
	
    var _obj = new SWFObject("../_swf/videoplayer.swf?path="+ fileUrl +"&#38;imagepath="+ imgUrl +"", "film", "320", "240", 8, "#333333"); 
	_obj.addParam("wmode", "transparent"); 
	_obj.write(playerDivId);
}

ajaxVideos.prototype.prv = function()
{
	if (this.pointer > 0) this.pointer--; else this.pointer = this.lead.length-1;
	this.html(this.pointer);
}

ajaxVideos.prototype.next = function()
{
	if (this.pointer < this.videoId.length-1)this.pointer++; else this.pointer = 0;
	this.html(this.pointer);
	
}

ajaxVideos.prototype.show = function(arg)
{
	this.pointer = arg;
	this.html(this.pointer);
}

