function fGetXMLHttpObject(handler) { 
	var oXMLHttp = null;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		oXMLHttp = new XMLHttpRequest();
	} else if (window.ActiveXObject) { // IE
		try {
			oXMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {
			try {
				oXMLHttp = new ActiveXObject('Microsoft.XMLHTTP');
			} catch (e) {}
		}
	}
	if (!oXMLHttp) {
		alert('Feilur: Taš bar ikki til at stovna eitt XMLHTTP');
		return false;
	} else {
		return oXMLHttp;
	}
	var oXMLHttp = null;
}

function fGetURL(oXMLHttp,sURL,sMethod) {
	if (typeof(sMethod) == "undefined") {
		sMethod = "GET";
	}
	oXMLHttp.open(sMethod,sURL,true);
	oXMLHttp.send(null);
	var oXMLHttp = null;
}

function fSpaces(iSpaces) {
	var i;
	var sReturn = "";
	for (i=0; i<iSpaces; i++) {
	    sReturn = sReturn + "    ";
	}
	return sReturn;
}

function fTraverseXMLNodes(oNodes,iDepth) {
	if (typeof(iDepth) == "undefined") { iDepth = 0; }
	var sReturn = "";
	var i = 0;
	// Loop through nodes
	for (i=0; i<oNodes.length; i++) {
		// Small errorfix to get content of nodes
		if (oNodes.item(i).firstChild != null) {
			sNodeValue = oNodes.item(i).firstChild.nodeValue;
		} else {
			sNodeValue = "";
		}
		// If nodeType is 1 (element) then print our the name and value
		if (oNodes.item(i).nodeType == 1) {
			sReturn = sReturn + fSpaces(iDepth) + oNodes.item(i).nodeName + ": " + sNodeValue + "\n"
		}
		// If node has child nodes, then initiate the function again as a tree, and go deeper into the array of nodes
		if (oNodes.item(i).hasChildNodes) {
		    sReturn = sReturn + fTraverseXMLNodes(oNodes.item(i).childNodes,iDepth+1);
		}
	}
	return sReturn;
}

function fGetXMLNode(oSource,sNodeName) {
	if (oSource.getElementsByTagName(sNodeName).item(0).firstChild != null) {
		var sTemp = oSource.getElementsByTagName(sNodeName).item(0).firstChild.nodeValue;
		return sTemp;
	}
	return false;
}






function fUpdate_Current() {
//	XMLHttp_Current = fGetXMLHttpObject();
//	if (XMLHttp_Current) {
//		XMLHttp_Current.onreadystatechange = fXMLHttpStateChanged_Current;
//		fGetURL(XMLHttp_Current,"http://www.ras2.fo/include/xml_current.php?sID="+Math.random(),"GET");
//	}
}

function fUpdate_Current_Program() {
	XMLHttp_Current_Program = fGetXMLHttpObject();
	if (XMLHttp_Current_Program) {
		XMLHttp_Current_Program.onreadystatechange = fXMLHttpStateChanged_Current_Program;
		fGetURL(XMLHttp_Current_Program,"http://www.ras2.fo/include/xml_current_program.php?sID="+Math.random(),"GET");
	}
}

function fUpdate_List() {
	XMLHttp_List = fGetXMLHttpObject();
	if (XMLHttp_List) {
		XMLHttp_List.onreadystatechange = fXMLHttpStateChanged_List;
		fGetURL(XMLHttp_List,"http://www.ras2.fo/include/xml_songlist.php?sID="+Math.random(),"GET");
	}
}

function fXMLHttpStateChanged_Current() { 
	if (XMLHttp_Current.readyState == 4 || XMLHttp_Current.readyState == "complete") { 
		if (XMLHttp_Current.status == 200) {
			var sReturn = "";
			XMLResponse = XMLHttp_Current.responseXML;
			if (fGetXMLNode(XMLResponse,"artist") || fGetXMLNode(XMLResponse,"title") || fGetXMLNode(XMLResponse,"timeleft")) {
				document.getElementById("sCurrentlyPlaying").innerHTML = fGetXMLNode(XMLResponse,"artist") + " - " + fGetXMLNode(XMLResponse,"title");
				document.getElementById("sCurrentlyPlayingTime").innerHTML = fGetXMLNode(XMLResponse,"timeleft");
			} else {
				document.getElementById("sCurrentlyPlaying").innerHTML = "";
				document.getElementById("sCurrentlyPlayingTime").innerHTML = "";
			}
			document.getElementById("sProgram").innerHTML = fGetXMLNode(XMLResponse,"time") + ' - ' + fGetXMLNode(XMLResponse,"name");
		}
	}
}

function fXMLHttpStateChanged_Current_Program() { 
	if (XMLHttp_Current_Program.readyState == 4 || XMLHttp_Current_Program.readyState == "complete") { 
		if (XMLHttp_Current_Program.status == 200) {
			var sReturn = "";
			XMLResponse = XMLHttp_Current_Program.responseXML;
			document.getElementById("sProgram").innerHTML = fGetXMLNode(XMLResponse,"time") + ' - ' + fGetXMLNode(XMLResponse,"name");
		}
	}
}

function fXMLHttpStateChanged_List() { 
	if (XMLHttp_List.readyState == 4 || XMLHttp_List.readyState == "complete") { 
		if (XMLHttp_List.status == 200) {
			var sReturn = "";
			XMLResponse = XMLHttp_List.responseXML;
			oNodes = XMLResponse.getElementsByTagName('song');
			
			sReturn = "<table cellspacing=0 width=100% style='border: 1px solid #000000;'>";
			var i = 0;
			var sPlaytime = "";
			var sArtist = "";
			var sTitle = "";
			// Loop through nodes
			for (i=0; i<oNodes.length; i++) {
				oChildElements = oNodes.item(i);
				sPlaytime = fGetXMLNode(oChildElements,"playtime");
				sArtist = fGetXMLNode(oChildElements,"artist");
				sTitle = fGetXMLNode(oChildElements,"title");
				if (sArtist == false) { sArtist = ""; }
				if (sTitle == false) { sTitle = ""; }
				sReturn = sReturn + "<tr><td style='font-family: tahoma; font-size: 8pt; color: #ffffff; background-color: #4175ab; padding: 2px; border-right: 0px;' align=center nowrap>Kl. ";
				sReturn = sReturn + sPlaytime;
				sReturn = sReturn + "</td><td style='font-family: tahoma; font-size: 8pt; color: #ffffff; background-color: #4175ab; padding: 2px' nowrap>";
				sReturn = sReturn + sArtist;
				sReturn = sReturn + " - ";
				sReturn = sReturn + sTitle;
				sReturn = sReturn + "</td></tr>";
			}
			sReturn = sReturn + "</table>";
			document.getElementById("sSongList").innerHTML = sReturn;
		}
	}
}

