var sliderImages = new Array();
var pos = 0;
var intervalId = 0;

$(document).ready(function() {
   // do stuff when DOM is ready
   $("#row > img").click(function (){
   
   });

   for(x=0;x<sliderImages.length;x++)
   {
   		var tmphtml = "<img src='/images/sliderimages/"+sliderImages[x][0]+"' width='150' height='86' style='top:"+((x+1)*89)+"px;' id='simg"+x+"' />";
		document.getElementById("row").innerHTML += tmphtml;
   }
   getNews(sliderImages[0][1]);
   resetInterval();
 });
 
 function animateImage(d)
 {
 	resetInterval();
 	if ($("img:animated").length == 0 && pos + d <= 0 && Math.abs(pos + d) < sliderImages.length) {
		pos += d;
		getNews(Math.abs(sliderImages[Math.abs(pos)][1]));
		for (x = 0; x < $("#row > img").length; x++) {
			var tmp = parseInt($("#row > img")[x].style.top.replace("px", ""));
			tmp = (tmp + (d * 89)) + "px";
			$($("#row > img")[x]).animate({
				top: tmp
			}, 500);
		}
	}else if(Math.abs(pos - 1) >= sliderImages.length)
	{
		resetImages();
	}
 }
 
function next()
{
	if($("img:animated").length == 0){
		if(Math.abs(pos - 1) < sliderImages.length){
			animateImage(-1);
		}else{
			resetImages();
		}	
	}
}

function resetInterval()
{
	clearInterval(intervalId);
	intervalId = setInterval("next()",8000);
}

function resetImages()
{
	pos = 0;
	getNews(sliderImages[0][1]);
	for(x=1;x<sliderImages.length+1;x++){
		$($("#simg"+(x-1))).animate({
			top: x*89
			}, 500);
   }
   resetInterval()
}

function pause(p)
{
	if(p)
		clearInterval(intervalId);
	else
		resetInterval();
}

function getNews(n)
{
	var url = "/sliderAjax.cfm?view=getNews&n="+n;
	submitRequest(url);	
	return false;
}

/***************************************************************************
 *  No need to replace anything below this line
 ***************************************************************************/

function submitRequest(url)
{
	if (window.XMLHttpRequest)
	{
		req = new XMLHttpRequest();
		req.onreadystatechange = updatePage;
		req.open("GET", url, true);
		req.send(null);
		// branch for IE/Windows ActiveX version
	}
	
	else if (window.ActiveXObject)
	{
		req = new ActiveXObject("Microsoft.XMLHTTP");
		if (req)
		{
			req.onreadystatechange = updatePage;
			req.open("GET", url, true);
			req.send();
		}
	}
}

function updatePage()
{
	if(req.readyState == 4)
	{
	  createXML(req.responseText);
	}
}

function createXML(t)
{
	var tmptext = t;
	tmptext = tmptext.substring(tmptext.indexOf("<"),tmptext.length);
	if (window.ActiveXObject)
	{
		var xmlobject=new ActiveXObject("Microsoft.XMLDOM");
		xmlobject.async="false";
		xmlobject.loadXML(tmptext);
	}
	// code for Mozilla, Firefox, Opera, etc.
	else
	{
		var parser=new DOMParser();
		var xmlobject=parser.parseFromString(tmptext,"text/xml");
	}
	
	root = xmlobject.getElementsByTagName("node");
	
	for(x=0;x<root.length;x++)
	{
		switch(root[x].getElementsByTagName("method")[0].firstChild.data)
		{
			case "add":
				if(document.getElementById(root[x].getElementsByTagName("id")[0].firstChild.data))
				{
					document.getElementById(root[x].getElementsByTagName("id")[0].firstChild.data).innerHTML += root[x].getElementsByTagName("content")[0].firstChild.data;
					setTimeout("addElement('"+root[x].getElementsByTagName("newid")[0].firstChild.data+"',0)","0");
				}
				break;
			case "replace":
				if(document.getElementById(root[x].getElementsByTagName("id")[0].firstChild.data))
				{
					document.getElementById(root[x].getElementsByTagName("id")[0].firstChild.data).innerHTML = root[x].getElementsByTagName("content")[0].firstChild.data;
				}
				break;
			case "delete":
				if(document.getElementById(root[x].getElementsByTagName("id")[0].firstChild.data))
				{
					deleteElement(root[x].getElementsByTagName("id")[0].firstChild.data,90);
				}
				break;
			case "donothing":
				break;
			case "error":
				alert(root[x].getElementsByTagName("content")[0].firstChild.data);
				break;
			case "execute":
				eval(""+root[x].getElementsByTagName("content")[0].firstChild.data);
				break;
		}
	}
}

function deleteElement(id,opac)
{
	if(document.getElementById(id))
	{
		document.getElementById(id).style.background = "#E2CD81";
		if(document.getElementById(id).style.filter)
		{document.getElementById(id).style.filter = "alpha(opacity=."+opac/100+")";}
		if(document.getElementById(id).style.mozOpacity)
		{document.getElementById(id).style.mozOpacity = opac/100;}
		document.getElementById(id).style.opacity = opac/100;
		if(opac == 0)
		{
			document.getElementById(id).parentNode.removeChild(document.getElementById(id));
		}else
		{
			opac = parseInt(opac) - 5;
		}
		setTimeout("deleteElement('"+id+"','"+opac+"')","60");
	}
}

function addElement(id,opac)
{
	if(opac < 100)
	{
		document.getElementById(id).style.background = "#A3D7A3";
		if(document.getElementById(id).style.filter)
		{document.getElementById(id).style.filter = "alpha(opacity=."+opac/100+")";}
		if(document.getElementById(id).style.mozOpacity)
		{document.getElementById(id).style.mozOpacity = opac/100;}
		document.getElementById(id).style.opacity = opac/100;
		opac = parseInt(opac) + 5;
		setTimeout("addElement('"+id+"','"+opac+"')","60");
	}else
	{
		document.getElementById(id).style.background = "transparent";
	}
}
