// global flag
var isIE = false;

// global request and XML document objects
var req;

// retrieve XML document (reusable generic function);
// parameter is URL string (relative or complete) to
// an .xml file whose Content-Type is a valid XML
// type, such as text/xml; XML source must be from
// same domain as HTML file
function loadXMLDoc(url) {
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.onreadystatechange = processReqChange;
        req.open("GET", url, true);
        req.send(null);
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        isIE = true;
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = processReqChange;
            req.open("GET", url, true);
            req.send();
        }
    }
}

// handle onreadystatechange event of req object
function processReqChange() {
    buildInterfaceData();
}

// invoked by "Category" select element change;
// loads chosen XML document, clears Topics select
// element, loads new items into Topics select element
function loadDoc(evt) {
    // equalize W3C/IE event models to get event object
    evt = (evt) ? evt : ((window.event) ? window.event : null);
    if (evt) {
        // equalize W3C/IE models to get event target reference
        var elem = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
        if (elem) {
            try {
                if (elem.selectedIndex > 0) {
                    loadXMLDoc(elem.options[elem.selectedIndex].value);
                }	
            }
            catch(e) {
                var msg = (typeof e == "string") ? e : ((e.message) ? e.message : "Unknown Error");
                alert("Unable to get XML data:\n" + msg);
                return;
            }
        }
    }
}


function buildInterfaceData() {
	//document.getElementById("infos_date").innerHTML= req.responseXML.getElementsByTagName("day")[0].firstChild.nodeValue + "-" + req.responseXML.getElementsByTagName("month")[0].firstChild.nodeValue + "-" + req.responseXML.getElementsByTagName("year")[0].firstChild.nodeValue;
	//document.getElementById("infos_hours").innerHTML= req.responseXML.getElementsByTagName("time")[0].firstChild.nodeValue;
	document.getElementById("compass").src= "images/stations/compass_" + req.responseXML.getElementsByTagName("dirname")[1].firstChild.nodeValue + ".jpg";
	document.getElementById("speed").innerHTML= req.responseXML.getElementsByTagName("value")[4].firstChild.nodeValue + " (g" + req.responseXML.getElementsByTagName("value")[7].firstChild.nodeValue  + ")";
	document.getElementById("direction").innerHTML= req.responseXML.getElementsByTagName("dirname")[1].firstChild.nodeValue;
	document.getElementById("wind_max").innerHTML= req.responseXML.getElementsByTagName("value")[8].firstChild.nodeValue + "&nbsp;" + req.responseXML.getElementsByTagName("dirname")[2].firstChild.nodeValue + "&nbsp;@&nbsp;" + req.responseXML.getElementsByTagName("time")[3].firstChild.nodeValue;
	document.getElementById("temperature").innerHTML= req.responseXML.getElementsByTagName("value")[0].firstChild.nodeValue + "&nbsp;&deg;" + req.responseXML.getElementsByTagName("unit")[0].firstChild.nodeValue
	document.getElementById("temperature_min").innerHTML= req.responseXML.getElementsByTagName("value")[2].firstChild.nodeValue + "&nbsp;&deg;" + req.responseXML.getElementsByTagName("unit")[0].firstChild.nodeValue + "&nbsp;@&nbsp;" + req.responseXML.getElementsByTagName("time")[2].firstChild.nodeValue;
	document.getElementById("temperature_max").innerHTML= req.responseXML.getElementsByTagName("value")[1].firstChild.nodeValue + "&nbsp;&deg;" + req.responseXML.getElementsByTagName("unit")[0].firstChild.nodeValue + "&nbsp;@&nbsp;" + req.responseXML.getElementsByTagName("time")[1].firstChild.nodeValue;	
}