// config
var nowplayingReadURL="nowplaying_read.php"
var nowplayingReqDelay=2*1000;
var nowplayingLine1Id="now_playing_L1";
var nowplayingLine2Id="now_playing_L2";
var nowplayingLine3Id="now_playing_L3";
// -----------------------

var nowplayingAjax;

//document.addEventListener('onload', queueNowPlayingProcess, true);
nowplayingRead();

function queueNowPlayingProcess(){
	setTimeout("nowplayingRead();", nowplayingReqDelay);
}
function nowplayingRead(){
	nowplayingAjax=GetXmlHttpObject();
	if (nowplayingAjax==null)
	  {
		  nowplayingFailed("Browser does not support AJAX");
		  return false;
	  } 
	var d=new Date();
	var data="sid="+d.getTime();
	nowplayingAjax.onreadystatechange=nowplayingReadDone;
	nowplayingAjax.open("POST",nowplayingReadURL,true);
	nowplayingAjax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	nowplayingAjax.setRequestHeader("Content-length", data.length);
	nowplayingAjax.setRequestHeader("Connection", "close");
	nowplayingAjax.send(data);
}
function setNowPlayingLines(line1, line2, line3){
	var line1Obj=document.getElementById(nowplayingLine1Id);
	var line2Obj=document.getElementById(nowplayingLine2Id);
	var line3Obj=document.getElementById(nowplayingLine3Id);
	line1Obj.innerHTML="";
	line2Obj.innerHTML="";
	line3Obj.innerHTML="";
	line1Obj.appendChild(document.createTextNode(line1));
	line2Obj.appendChild(document.createTextNode(line2));
	line3Obj.appendChild(document.createTextNode(line3));
}
function clearNowPlayingInfo(){
	setNowPlayingLines("", "", "");
}
function nowplayingFailed(msg){
	clearNowPlayingInfo();
	//TODO: handle error?
	//alert(msg); //TODO: remove
}
function nowplayingReadDone() 
{ 
	if (nowplayingAjax.readyState!=4){ 
		return;
	}
	if (nowplayingAjax.status!=200){ 
		nowplayingFailed("HTTP status: "+nowplayingAjax.status);
		return;
	}
	var respXML=nowplayingAjax.responseXML;
	if(respXML==null){
		nowplayingFailed("No XML response.");
		return;
	}
	var respDataNode=respXML.documentElement;
	var res=respDataNode.getElementsByTagName("result")[0].firstChild.nodeValue;
	if(res!="OK"){
		var errMsg=respDataNode.getElementsByTagName("error")[0].firstChild.nodeValue;
		nowplayingFailed(errMsg);
		return false;
	}
	var lineNodes=respDataNode.getElementsByTagName("line");
	var line1tn=lineNodes[0].firstChild;
	var line2tn=lineNodes[1].firstChild;
	var line3tn=lineNodes[2].firstChild;

	var line1="";
	var line2="";
	var line3="";
	
	if(line1tn!=null) line1=line1tn.nodeValue;
	if(line2tn!=null) line2=line2tn.nodeValue;
	if(line3tn!=null) line3=line3tn.nodeValue;
	
	setNowPlayingLines(line1, line2, line3);
	queueNowPlayingProcess();
}

function GetXmlHttpObject()
{
var xmlHttp=null;
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
catch (e)
  {
  // Internet Explorer
  try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
return xmlHttp;
}