// JavaScript Document

RSSWeatherRequestObject = new Array();
RSSWeatherShown = new Array();

/*
* onreadystatechange function
*/
function WeatherReqChange() {
	var on = true;
	
	// If data received correctly
	for (key in RSSWeatherRequestObject)
	{
		if (RSSWeatherRequestObject[key].readyState==4 && !(RSSWeatherShown[key])) 
		{
			// if data is valid
			if (RSSWeatherRequestObject[key].responseText.indexOf('invalid') == -1) 
			{ 	
				if (window.ActiveXObject)
				{
					var node = new ActiveXObject("Microsoft.XMLDOM");
					node.loadXML(RSSWeatherRequestObject[key].responseText);	
				}
				else
				{
					// Parsing RSS
					var node = RSSWeatherRequestObject[key].responseXML;
				}
				
				// Get Channel information
				var mychannel = node.getElementsByTagName('channel')[0];
				//var mylink = channel.getElementsByTagName('link').item(0).firstChild.data;
				
				var content = "";
				
				// Browse items
				var items = mychannel.getElementsByTagName('item');
				if ((navigator.appName == "Netscape" || navigator.appName == "Opera") && !navigator.userAgent.match("Firefox/3.0"))
				{
					var itemText = node.getElementsByTagName('condition')[0].getAttribute("text");
					var itemTemp = node.getElementsByTagName('condition')[0].getAttribute("temp");
					var code = node.getElementsByTagName('condition')[0].getAttribute("code");
				}
				else
				{
					var itemText = node.getElementsByTagName('yweather:condition')[0].getAttribute("text");
					var itemTemp = node.getElementsByTagName('yweather:condition')[0].getAttribute("temp");
					var code = node.getElementsByTagName('yweather:condition')[0].getAttribute("code");
				}
				var image = node.getElementsByTagName('url')[0].firstChild.data;
				content = "<a href=\"http://weather.yahoo.com/forecast/USCA0780.html\">Conditions at CSUN</a>: ";
				if (itemText) {
					content = content + itemText;
					if (itemTemp){
						content = content + ", " + itemTemp + "&deg; F";
					}
				}
				else if (itemTemp) {
					content = content + itemTemp + "&deg; F";
				}
				if (code) {
					content = content + " <img src=\"http://l.yimg.com/us.yimg.com/i/us/we/52/"+code+".gif\" width=\"25px\" height=\"25px\" align=\"bottom\" vspace=\"0\" style=\"margin-bottom: -7px;\" />";
				}
				
				// Display the result
				document.getElementById("weather").innerHTML = content;
				
				// Tell the reader the everything is done
				
			}
			else {
				// Tell the reader that there was error requesting data
				document.getElementById("weather").innerHTML = "<div class=error>Error requesting data.<div>";
			}
			
			RSSWeatherShown[key] = true;
		}
	}

}

/*
* Main AJAX RSS reader request
*/
function RSSWeatherRequest(Backend) {	
	var i = 1;

	//netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserAccess");
	for (key in Backend)
	{
		try
		{
			// try to create XMLHttpRequest object
			RSSWeatherRequestObject[i] = new XMLHttpRequest();
		}
		catch(e)
		{
			// assume IE6 or older
			var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
											"MSXML2.XMLHTTP.5.0",
											"MSXML2.XMLHTTP.4.0",
											"MSXML2.XMLHTTP.3.0",
											"MSXML2.XMLHTTP",
											"Microsoft.XMLHTTP");
			// try every prog id until one works
			for (var j=0; j<XmlHttpVersions.length && !RSSWeatherRequestObject[i]; j++) 
			{
				try 
				{ 
					// try to create XMLHttpRequest object
					RSSWeatherRequestObject[i] = new ActiveXObject(XmlHttpVersions[j]);
				} 
				catch (e) {} // ignore potential error
			}
			
		}
		
		if (RSSWeatherRequestObject[i].overrideMimeType) {
     		RSSWeatherRequestObject[i].overrideMimeType('text/xml');
    	}
		// change the status to requesting data
		
		RSSWeatherShown[i] = false;
		// Set the onreadystatechange function
		RSSWeatherRequestObject[i].onreadystatechange = WeatherReqChange;
		// Prepare the request
		RSSWeatherRequestObject[i].open("GET", Backend[key] , true);
		// Send
		RSSWeatherRequestObject[i].send(null); 
		i++;		
	}
}


function HideShow(id){
	var el = GetObject(id);
	if(el.style.display=="none")
	el.style.display='';
	else
	el.style.display='none';
}

function GetObject(id){
	var el = document.getElementById(id);
	return(el);
}
