﻿/*  ajaxEvenst
	pobiera i przetwarza listę eventow
	
	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 ajaxGuest("videos","videosContent","xml_videos.aspx");
	</script>
*/ 


function ajaxGuest(objName,div,file)
{
	this.name = objName;
	this.pointer = 0;
	this.url = [];
	this.imgsmall = [];
	this.imgbig = [];
	this.date = [];
	this.lead = [];
	
	this.title = [];
	this.mouseoverBol = 0;


	
	this.showdiv = div;
	this.pagerdiv = div + "Pager";
	this.pageSize = 4;
	this.videosUrl = "http://www2.polskieradio.pl/jedynka/_video/";
	this.imgPath = "/jedynka/_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);
}

ajaxGuest.prototype.handleResponse = function() {
    var a;
    if (this.request.readyState == 4) {
        if (this.request.status == 200 || window.location.href.indexOf("http") == -1) {
            this.xml = this.request.responseXML;
            a = 0;
            //for (var i = 0; i < this.xml.getElementsByTagName("event").length; i++)
            for (var i = this.xml.getElementsByTagName("event").length - 1; i > -1; i--) {
                try {
                    var node = this.xml.getElementsByTagName("event");

                    this.date[a] = node[i].getElementsByTagName("date")[0].firstChild.nodeValue;
                    this.title[a] = node[i].getElementsByTagName("what")[0].getAttribute("title");
                    this.lead[a] = node[i].getElementsByTagName("what")[0].firstChild.nodeValue;
                    this.url[a] = node[i].getElementsByTagName("url")[0].firstChild.nodeValue;
                    this.imgsmall[a] = node[i].getElementsByTagName("img_small")[0].firstChild.nodeValue;
                    this.imgbig[a] = node[i].getElementsByTagName("img_big")[0].firstChild.nodeValue;

                    var instanceOfTicker = this
                    document.getElementById(this.showdiv).onmouseover = function() { instanceOfTicker.mouseoverBol = 1 }
                    document.getElementById(this.showdiv).onmouseout = function() { instanceOfTicker.mouseoverBol = 0 }
                    a++;
                }
                catch (ev) {
                    alert(ev.message);
                }
            }

            this.writemsg();
        }
    }
}

ajaxGuest.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);
	}
}


ajaxGuest.prototype.writemsg = function()
{
	this.html(this.pointer);
}

ajaxGuest.prototype.html = function(pointer) {
var number = pointer;

    if (this.xml.getElementsByTagName("event").length < this.pageSize) 
    {
        this.pageSize = this.xml.getElementsByTagName("event").length;
    }

    document.getElementById(this.pagerdiv).innerHTML = "";
    for (var i = 0; i < this.pageSize; i++) {
        img = "";
        if (this.imgsmall[number] != "") {
            var imgUrl = this.imgsmall[number];
            img = '<img class="smallImage" src="' + imgUrl + '" width="60" height="60" alt="' + this.title[number] + '" title="' + this.title[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.imgsmall.length - 1) number = -1;
        if (number < 0) number == this.imgsmall.length - 1;
        number++;
    }
    document.getElementById(this.pagerdiv).innerHTML += '<div class="arrows"><div id="' + this.showdiv + '_prev"></div> \
	<div id="' + this.showdiv + '_next"></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() }

    document.getElementById(this.showdiv).innerHTML = '<a href="' + this.url[pointer] + '"><div class="guests" id="bigfoto"></div><div class="content"><span class="date">' + this.date[pointer] + '</span><span class="desc">' + this.lead[pointer] + '</span><span class="title">' + this.title[pointer] + '</span></div></a>';

    var bigImage = this.imgbig[pointer];
    var smallImage = this.imgsmall[pointer];
    var title = this.title[pointer];
    document.getElementById("bigfoto").innerHTML = '<img width="270" src="' + bigImage + '" alt="' + title + '" title="' + title + '" />';

}

ajaxGuest.prototype.prv = function()
{
	if (this.pointer > 0) this.pointer--; else this.pointer = this.lead.length-1;
	this.html(this.pointer);
}

ajaxGuest.prototype.next = function()
{
	if (this.pointer < this.url.length-1)this.pointer++; else this.pointer = 0;
	this.html(this.pointer);
	
}

ajaxGuest.prototype.show = function(arg)
{
	this.pointer = arg;
	this.html(this.pointer);
}
