/**
Sparkx profile scripts
*/

function clsEventList(instanceName, placeHolderDiv, interval)
{
	this.events = new Object();
	this.instanceName = instanceName;
	this.count = 0;
	this.error = false;
	this.placeHolder = placeHolderDiv;
	this.xmlHandler = null;
	this.init();
	if(interval > 0) {
		this.interval = interval;
	} else {
		this.interval = 10000;
	}
	this.pos = 0;
}

clsEventList.prototype.init = function()
{
	this.loadEventsFromXml();
}

clsEventList.prototype.loadEventsFromXml = function()
{
	var xmlHandler = this.createXmlHandler();	
	var iId = 0;
	var sName = "";
	var sUrl = "";
	var sImage = "";
	var sId = "";
	var sContent = "";
	var nPos = 0;
	var oMe = this;
	xmlHandler.onreadystatechange  = function()
	{
		if(xmlHandler.readyState  == 4)
		{
			  if(xmlHandler.status  == 200)
			  { 
					oXmlDoc = xmlHandler.responseXML;
					var events = oXmlDoc.getElementsByTagName('events').item(0); 
					for(var i = 0; i < events.childNodes.length; i++)
					{
						if (events.childNodes[i].nodeName == "event")
						{
							
							var event = events.childNodes[i];
							for(var ii =0; ii < event.childNodes.length; ii++)
							{
								eventItem = event.childNodes[ii];
								switch(eventItem.nodeName)
								{
									case "id":
										iId = eventItem.firstChild.nodeValue;
										break;
									case "url":
										sUrl = eventItem.firstChild.nodeValue;
										break;
									case "name":
										sName = eventItem.firstChild.nodeValue;
										break;
									case "content":
										sContent = eventItem.firstChild.nodeValue; 
										break;
									case "image":
										sImage = eventItem.firstChild.nodeValue;
										break;
									case "position":
										nPos = eventItem.firstChild.nodeValue;
										break;
								}
							}
							oMe.add(nPos, iId, sName, sContent, sUrl, sImage) ;
						}
					}
					oMe.start();
					
			  }
			  else
				{
					alert('xml request error');
				}
		}
		
		
	}
	xmlHandler.open("GET", "/index.php?mod=frontpage&com=getHomepageImageXml",  true); 
	xmlHandler.send(null);     
}

clsEventList.prototype.add = function (strKey, id, name, content, url, image) 
{
		  this.error = false;        //     Default successful
		  if(typeof(this.events[strKey]) == 'undefined') {
				++this.count;
				var obj = new Object();
				obj.id = id;
				obj.name = name;
				obj.url = url;
				obj.content = content;
				obj.image = image;
				this.events[this.count] = obj;
		  } else {
					this.error = true;   //     Error
		  }
}


clsEventList.prototype.createXmlHandler = function()
{
	try {
	   xhr = new XMLHttpRequest()
		if (xhr.overrideMimeType) 
		{
			xhr.overrideMimeType('text/xml');
		}

	}
	catch(e)    // Failed 
	{
			   // IE
		 try {
			xhr = new ActiveXObject("Msxml2.XMLHTTP");
		 } catch (e) {
			try {
			   xhr = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		 }
	}
	return xhr;
}


clsEventList.prototype.start = function()
{
	setInterval(this.instanceName + '.drawEvent()', this.interval);	
}

clsEventList.prototype.drawEvent = function()
{
	oPlaceHolder = document.getElementById(this.placeHolder)
	iPos = Math.floor(this.pos);
	this.pos++;
	if (this.pos >= this.count)
	{
		this.pos = 0;
	}
	sTextDivId = this.placeHolder + "_content";
	
	oPlaceHolder.innerHTML = "<div id=\"" + sTextDivId + "\" style=\"width: 697px; height: 202px; opacity: 0; MozOpacity: 0; KhtmlOpacity: 0; filter: alpha(opacity=0); border: none; background-image:url(/media/banners/th_"
	+ this.events[iPos+1].image
	+ ");\">&nbsp;</div>";
	this.opacity(sTextDivId, 0, 100, 2000);
}

clsEventList.prototype.opacity = function(obj, opacStart, opacEnd, millisec) {
	//speed for each frame
	var speed = Math.round(millisec / 100);
	var timer = 0;

	//determine the direction for the blending, if start and end are the same nothing happens
	if(opacStart > opacEnd) {
		for(i = opacStart; i >= opacEnd; i--) {
			setTimeout("changeOpac(" + i + ",'" + obj + "')",(timer * speed));
			timer++;
		}
	} else if(opacStart < opacEnd) {
		for(i = opacStart; i <= opacEnd; i++)
			{
			setTimeout("changeOpac(" + i + ",'" + obj + "')",(timer * speed));
			timer++;
		}
	}
}

//change the opacity for different browsers
function changeOpac(opacity, obj) {

	var object = document.getElementById(obj);
	//alert(object);
	if (object != null	)
	{
		object.style.opacity = (opacity / 100);
		object.style.MozOpacity = (opacity / 100);
		object.style.KhtmlOpacity = (opacity / 100);
		object.style.filter = "alpha(opacity=" + opacity + ")";
	}
	if (opacity == 100)
	{
		oObj = document.getElementById(obj);
		//get old content block
		if (oObj && oObj != 'undefined')
		{
			oObj.parentNode.style.backgroundImage = oObj.style.backgroundImage 
		}
	}
	//alert(opacity);
} 