// JavaScript Document

if(window.devicePixelRatio){//for Safari or Chrome, do this.
	var xmlhttp;
	
	function loadXMLDoc(url)
	{
	xmlhttp=null;
	if (window.XMLHttpRequest)
	  {// code for IE7, Firefox, Mozilla, etc.
	  xmlhttp=new XMLHttpRequest();
	  }
	else if (window.ActiveXObject)
	  {// code for IE5, IE6
	  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	  }
	if (xmlhttp!=null)
	  {
	  xmlhttp.onreadystatechange=onResponse;
	  xmlhttp.open("GET",url,true);
	  xmlhttp.send(null);
	  }
	else
	  {
	  alert("Your browser does not support XMLHTTP.");
	  }
	}
	
	function onResponse()
	{
	if(xmlhttp.readyState!=4) return;
	if(xmlhttp.status!=200)
	  {
	  alert("Problem retrieving XML data.");
	  return;
	  }	
		quote=xmlhttp.responseXML.documentElement.getElementsByTagName("item");
		var count = 0;
		txt="<div id='fscroller'>";
		
		txt=txt+"<p class='quote'>"+quote[count].getElementsByTagName("quote")[0].firstChild.nodeValue+"<span><span></span></span></p>";
		txt=txt+"<p>"+quote[count].getElementsByTagName("name")[0].firstChild.nodeValue+"<br />";
		txt=txt+"<span>"+quote[count].getElementsByTagName("company")[0].firstChild.nodeValue+"</span></p>";
		
		txt=txt+"</div>";
		
		document.getElementById('fscroller').innerHTML=txt;
	}
	
	document.write("<div id='fscroller'></div>");
	loadXMLDoc('xml/quotes.xml');

}else{//for every other browser, do this.
	var xmlDoc=null;
	if (window.ActiveXObject){
			// code for IE
			xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		
		}else if (document.implementation.createDocument){
			// code for Mozilla, Firefox, Opera, etc.
			xmlDoc=document.implementation.createDocument("","",null);
		
		}else{
			alert('Your browser cannot support this content.');
	}
	
	
	if (xmlDoc!=null){
		
		xmlDoc.async=false;
		xmlDoc.load("xml/quotes.xml");
		
		var x=xmlDoc.getElementsByTagName("item");
		
		/***********************************************
		* Fading Scroller- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
		* This notice MUST stay intact for legal use
		* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
		***********************************************/
		
		var delay = 8000; //set delay between message change (in miliseconds)
		var maxsteps=40; // number of steps to take to change from start color to endcolor
		var stepdelay=50; // time in miliseconds of a single step
		//**Note: maxsteps*stepdelay will be total time in miliseconds of fading effect
		var startcolor= new Array(255,255,255); // start color (red, green, blue)
		var endcolor=new Array(32,56,92); // end color (red, green, blue)
		
		var fcontent=new Array();
		begintag=''; //set opening tag, such as font declarations
		
		var randomNo=Math.floor(Math.random()*x.length);
		var randomNoArray=new Array();
		randomNoArray[0]=randomNo;
		
		//this grabs the XML info and adds a new fcontent for every content tag in the XML document
		for (var i=0;i<x.length;i++){
			//alert(randomNo);
			fcontent[i]="<p class='quote'>"+x[randomNo].getElementsByTagName("quote")[0].childNodes[0].nodeValue+"<span><span></span></span></p><br />";
			fcontent[i]+="<p>"+x[randomNo].getElementsByTagName("name")[0].childNodes[0].nodeValue+"<br />";
			fcontent[i]+="<span>"+x[randomNo].getElementsByTagName("company")[0].childNodes[0].nodeValue+"</span></p>";
			
			while(randomNoArray.exists(randomNo)===true){
					randomNo=Math.floor(Math.random()*x.length);
			}
			
			if(randomNoArray.length<x.length-1){
				randomNoArray.push(randomNo);
			}
		}
		
		closetag='';
		
		var fadelinks=1;  //should links inside scroller content also fade like text? 0 for no, 1 for yes.
		
		///No need to edit below this line/////////////////
		
		
		var ie4=document.all&&!document.getElementById;
		var DOM2=document.getElementById;
		var faderdelay=0;
		var index=0;
		
		
		/*Rafael Raposo edited function*/
		//function to change content
		function changecontent(){
		  if (index>=fcontent.length)
		    index=0
		  if (DOM2){
		    document.getElementById("fscroller").style.color="rgb("+startcolor[0]+", "+startcolor[1]+", "+startcolor[2]+")"
		    document.getElementById("fscroller").innerHTML=begintag+fcontent[index]+closetag
		    if (fadelinks)
			 linkcolorchange(1);
		    colorfade(1, 15);
		  }
		  else if (ie4)
		    document.all.fscroller.innerHTML=begintag+fcontent[index]+closetag;
		  index++
		}
		
		// colorfade() partially by Marcio Galli for Netscape Communications.  ////////////
		// Modified by Dynamicdrive.com

		
		function linkcolorchange(step){
		  var obj=document.getElementById("fscroller").getElementsByTagName("A");
		  if (obj.length>0){
		    for (i=0;i<obj.length;i++)
			 obj[i].style.color=getstepcolor(step);
		  }
		}
		
		/*Rafael Raposo edited function*/
		var fadecounter;
		function colorfade(step) {
		  if(step<=maxsteps) {	
		    document.getElementById("fscroller").style.color=getstepcolor(step);
		    if (fadelinks)
			 linkcolorchange(step);
		    step++;
		    fadecounter=setTimeout("colorfade("+step+")",stepdelay);
		  }else{
		    clearTimeout(fadecounter);
		    document.getElementById("fscroller").style.color="rgb("+endcolor[0]+", "+endcolor[1]+", "+endcolor[2]+")";
		    setTimeout("changecontent()", delay);
			
		  }   
		}
		
		/*Rafael Raposo's new function*/
		function getstepcolor(step) {
		  var diff
		  var newcolor=new Array(3);
		  for(var i=0;i<3;i++) {
		    diff = (startcolor[i]-endcolor[i]);
		    if(diff > 0) {
			 newcolor[i] = startcolor[i]-(Math.round((diff/maxsteps))*step);
		    } else {
			 newcolor[i] = startcolor[i]+(Math.round((Math.abs(diff)/maxsteps))*step);
		    }
		  }
		  return ("rgb(" + newcolor[0] + ", " + newcolor[1] + ", " + newcolor[2] + ")");
		}
		
		if (ie4||DOM2)
		  document.write('<div id="fscroller"></div>');
		
		if (window.addEventListener)
		window.addEventListener("load", changecontent, false)
		else if (window.attachEvent)
		window.attachEvent("onload", changecontent)
		else if (document.getElementById)
		window.onload=changecontent
	}
}
