// global vars
var xmlPSADoc; //, oldXMLDoc;	// xml response
var reqpsa;	// xml request
var psaContainer;
var EmergencyContainer;

function onLoadPSA()
 {
	//onLoad(routeList);
	getPSA();
	
	// repeat
	setInterval("getPSA();", 5000);
}

function getPSA()
{
	loadXMLDocPSA("../../shared/psa_feed.xml");
	return;
}

function loadXMLDocPSA(url) 
{
// branch for native XMLHttpRequest object
	if (window.XMLHttpRequest)
	{
		reqpsa = new XMLHttpRequest();
		reqpsa.onreadystatechange = processPSAXML;
		reqpsa.open("GET", url, true);
		//req.setRequestHeader("If-Modified-Since","Sat, 1 Jan 2000");
		reqpsa.setRequestHeader("Cache-Control", "no-cache");
		reqpsa.send(null);
	// branch for IE/Windows ActiveX version
	}
	else if (window.ActiveXObject)
	{
		isIE = true;
		reqpsa = new ActiveXObject("Microsoft.XMLHTTP");
		if (reqpsa) {
		reqpsa.onreadystatechange = processPSAXML;
		reqpsa.open("GET", url, true);
		reqpsa.setRequestHeader("If-Modified-Since","Sat, 1 Jan 2000");
		reqpsa.send();
		}
	}
}

function processPSAXML()
{	// only if req shows "complete"
	if (reqpsa.readyState == 4)
	{
		// only if "OK"
		if (reqpsa.status == 200)
		{

			xmlPSADoc = reqpsa.responseXML;
			
				// only if the XML document is well formed
				if(xmlPSADoc.documentElement)
				{
					message = xmlPSADoc.documentElement.getElementsByTagName("message");
					var messagecount = xmlPSADoc.documentElement.getElementsByTagName("messagecount")[0].childNodes[0].nodeValue;
					var statuscount = xmlPSADoc.documentElement.getElementsByTagName("statuscount")[0].childNodes[0].nodeValue;
					var emergencycount = xmlPSADoc.documentElement.getElementsByTagName("emergencycount")[0].childNodes[0].nodeValue;

					// make overall container (for IE)
					psaContainer = document.createElement('DIV');
					EmergencyContainer = document.createElement('DIV');
					
					if (document.getElementById("headContainer").hasChildNodes())
					{
						//document.removeChildNodes(document.getElementById("headContainer"));
					}
					
					buildPSAElement(message, messagecount, statuscount, emergencycount);
					
				}
				
		}
		else
		{
			//alert("There was a problem retrieving the XML data:\n" + req.statusText);
		}
	}
	else
	{
		//alert("readyState is " + req.readyState + ".");
	}
	return;
}

function buildPSAElement(message, messageCount, statusCount, emergencycount)
{
	var psaTitle = document.createElement("h4");
	messageListTitle = document.createTextNode("Status Updates");
	psaTitle.appendChild(messageListTitle);
	psaContainer.appendChild(psaTitle);	
	
	if(emergencycount != 0)
	{
		var emergencyTitle = document.createElement("h4");
		emessageListTitle = document.createTextNode("Emergency Messages");
		emergencyTitle.appendChild(emessageListTitle);
		EmergencyContainer.appendChild(emergencyTitle);
	}
	
	
	
	if(messageCount == 0)
	{

	}
	else
	{

		var messageList = new Array();
		var colorList = new Array();
		var messageType = new Array();
		// populate the list of running routes
		for(i = 0; i < messageCount; i++)
		{
			messageList[i] = message[i].getElementsByTagName("body")[0].childNodes[0].nodeValue;
			colorList[i] = message[i].getElementsByTagName("text_color")[0].childNodes[0].nodeValue;
			messageType[i] = message[i].getElementsByTagName("message_type")[0].childNodes[0].nodeValue;
		}

		var psaListUL = document.createElement("ul");
		psaListUL.setAttribute("class", "psaList");
		var emergencyListUL = document.createElement("ul");
		emergencyListUL.setAttribute("class", "emergencyList");
		for(i = 0; i < messageList.length; i++)
		{
			if(messageType[i] == "Status Update")
			{				
				messageListText = document.createTextNode(messageList[i]);

				psaListLI = document.createElement("li");
				psaListLI.setAttribute('style','color: #'+colorList[i]+';');
				psaListLI.style.cssText = 'color: #'+colorList[i]+';';
				psaListLI.appendChild(messageListText);
				psaListUL.appendChild(psaListLI);
			}
			else if(messageType[i] == "Emergency Message")
			{
				emessageListText = document.createTextNode(messageList[i]);

				emergencyListLI = document.createElement("li");
				emergencyListLI.setAttribute('style','color: #'+colorList[i]+';');
				emergencyListLI.style.cssText = 'color: #'+colorList[i]+';';
				emergencyListLI.appendChild(emessageListText);
				emergencyListUL.appendChild(emergencyListLI);
			}

		}
		
		if(messageList.length)
		{
			psaContainer.appendChild(psaListUL);
			EmergencyContainer.appendChild(emergencyListUL);
		}
		
	}

	document.getElementById('psaContainer').innerHTML = psaContainer.innerHTML;
	
	if(emergencycount != 0)
	{
		document.getElementById('EmergencyContainer').innerHTML = EmergencyContainer.innerHTML;
	}
	else
	{
		document.getElementById('EmergencyContainer').innerHTML = "";
	}

}


