function SelectSingleNode(xmlDoc, elementPath)
{
	if(window.ActiveXObject)
	{
	    return xmlDoc.selectSingleNode(elementPath);
	}
	else
	{
	   var xpe = new XPathEvaluator();
	   var nsResolver = xpe.createNSResolver( xmlDoc.ownerDocument == null ? xmlDoc.documentElement : xmlDoc.ownerDocument.documentElement);
	   var results = xpe.evaluate(elementPath,xmlDoc,nsResolver,XPathResult.FIRST_ORDERED_NODE_TYPE, null);
	   return results.singleNodeValue; 
	}
}


$(document).ready(function init()
{
    if (document.getElementById('weather') != null)
    {

      var xmlhttp=null;
    	   
        // hardcode url of XML  renderer for now - we will have to decide
        // where to place it on the target server.
	
	var virtualPath = "";

	var url = virtualPath + "/weather.asp?key=bc-37_e&d=1&d=" + (new Date());

        try
        {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
            if (typeof(xmlhttp) != 'object' )
            {	 	
		// If IE7, Mozilla, Safari, etc: Use native object
		xmlhttp = new XMLHttpRequest();
            }
        }
        catch (e) 
        {
		// fallback: use native object 
		xmlhttp = new XMLHttpRequest();
        }

        if (xmlhttp!=null)
        {
		xmlhttp.open("GET",url,false);
		xmlhttp.send(null);

		var xmlDoc = "";

		if (document.all != null)
		{
			xmlDoc = xmlhttp.responseXML;
		}
		else
		{
			xmlDoc = (new DOMParser()).parseFromString(xmlhttp.responseText, "text/xml");
		}

		var image;
		var temp;
		var date;
		var tempUnit;
		var valid;
		
		valid = 1;

		if (document.all != null)
		{
			if (SelectSingleNode(xmlDoc,"//type") != null) {
				image = SelectSingleNode(xmlDoc,"//type").text;
				temp = SelectSingleNode(xmlDoc, "//temperature").text;
				tempUnit = SelectSingleNode(xmlDoc, "//unit").text;
				date = SelectSingleNode(xmlDoc, "//date").text;
			} else {
				valid = 0;
			}
		}
		else
		{
			if (SelectSingleNode(xmlDoc,"//type") != null) {
				image = SelectSingleNode(xmlDoc,"//type").childNodes[0].nodeValue;
				temp = SelectSingleNode(xmlDoc, "//temperature").childNodes[0].nodeValue;
				tempUnit = SelectSingleNode(xmlDoc, "//unit").childNodes[0].nodeValue;
				date = SelectSingleNode(xmlDoc, "//date").childNodes[0].nodeValue;
			} else {
				valid = 0;
			}
		}

		var imagePath =   virtualPath + "/images/weather/" + image + ".png"; 
			
         
		if (valid != 0) {
			var spanWeatherLink = document.getElementById('weather-link');
			var spanWeatherTemp = document.getElementById('weather-temperature');
			var imgWeather = document.getElementById('weather-image');

			spanWeatherLink.innerHTML = date;
			spanWeatherTemp.innerHTML = temp + "&deg;"  + tempUnit;
			imgWeather.src = imagePath;
			imgWeather.alt = image;
			//imgWeather.style.display = "inline"; 
		}			
        }	
    }		
});
