//&L(0,"*",1);
// PrintStateVal (3) states defined in realtime_status.txt
// Number	State	Value
// 1		45 	Mode
// 2		15	Talk
// 3-6		1-4     Peak values: LI, RI, LO, RO
// 7		10	Button 0
// 8		11	Button 1
// 9		12	Last Relay 1 state
//10		13	Last CTS
//11		14	Last RTS
//12 		21	Current volume
//13		46	Actual Table number
//14		47	iostate(211)
//15		48	temp/100
//16		49	temp%100
//17		50      speaker supervision/iostate(210)
//18		477	iostate(502)
//19		33	Number of inputs
//20		34  Number of relays
//?? 1 23 MUTE ??			

// global variables

var old_parsed=null;

function startUpdate(ms)
{
	window.setInterval("reloadData()",ms);
}


function reloadData() {
	if (window.XMLHttpRequest)
	{// code for IE7+, Firefox, Chrome, Opera, Safari
		req=new XMLHttpRequest();
		// fix for MSIE
		if (req.overrideMimeType) req.overrideMimeType("text/html; charset=ISO-8859-1");
	}
	else
	{// code for IE6, IE5
		req=new ActiveXObject("Microsoft.XMLHTTP");
	}
	req.open("GET","realtime_status.txt",true);
	// workaround for MSIE caching problem
	req.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
	req.onreadystatechange=function() { if (this.readyState==4 && this.status==200) updateLoadedValues(this.responseText); };
	try { req.send(null);} catch(err) {}

  	return false;
}

function updateLoadedValues(raw_data){
	var parsed=raw_data.split(";");
	var hwt=&LState(3,"%u",6);;

	function set_element(name, value)
	{
		document.getElementById(name).innerHTML=value;
	}

	function set_img(name, value)
	{
		document.getElementById(name).src=value;
	}
	function chk(i)
	{
		return !old_parsed || old_parsed[i]!=parsed[i];
	}
	
	
	//alert("Start"); alert("1_"+parsed[1]);  alert("10_"+parsed[10]); 
	
//	if (chk(1)) set_element('statID', parsed[1]==3?"ENCODING":"IDLE");
	if (chk(1)) { 
		//alert("45 Mode");
		set_element('statID',               // 45 Mode
	             parsed[1]==1?"TALKING":
	             parsed[1]==2?"TALKING SUPPRESSED":
	             parsed[1]==3?"FORCED TALKING":
	             parsed[1]==4?"LISTENING":"IDLE");
	             //set_element('tableID',  parsed[10]);
	        }
	             		   
//	if (chk(2)) set_img('statimgID',parsed[2]==0?"o0.gif":"o1.gif");
	if (chk(2)) {
		//alert("15 Talk");
		set_img('statimgID',"d"+parsed[2]+".gif");  // 15 Talk
	}

	if (chk(3)) {   // 1 Peak value: LI
		//alert("1 Peak value: LI");
		set_element('peakliID',(parsed[3]<=-127?"-&infin;":parsed[3])+" dB");
		update_vu_meter(vuLI,parsed[3]);
	}
//	if (chk(4)) {  //  2 Peak values: RI
//		set_element('peakriID',(parsed[4]<=-127?"-&infin;":parsed[4])+" dB");
//		update_vu_meter(vuRI,parsed[4]);
//	}
	if (chk(5)) {  // 3 Peak values: LO
		//alert("3 Peak values: LO");
		set_element('peakloID',(parsed[5]<=-127?"-&infin;":parsed[5])+" dB");
		update_vu_meter(vuLO,parsed[5]);
	}
		
	// chk(6) 4     Peak value: RO
	
	if (chk(7)) { // 10	Button 0
	    //alert("10 Button 0="+parsed[7]);
	   if (parsed[19]>0) set_img('button0imgID',"i"+parsed[7]+".gif");
	}
	
	if (chk(8)) { // 11	Button 1
	  //alert("11 Button 1="+parsed[8]);
	  if (parsed[19]>1) {
	     //alert("11 Button 1 Test num_inputs="+parsed[19]);
	     set_img('button1imgID',"i"+parsed[8]+".gif");
	  }
	}

	if (chk(9)) {	// 12	Last state of output 1 (Relay/LED) 
	    //alert("12 Relay/LED="+parsed[9]);
		if (parsed[20]>0) {
		  //alert("12 Relay/LED Test num relays="+parsed[20]);
		  set_img('out1ID',"o"+parsed[9]+".gif");
		}
	}
	
// Don't use javascript for CTS and RTS unless the hwt 32, 42 are patched out		
//	if (chk(10)) {	/* 13	Last CTS */
//		set_img('CTSID',"d"+parsed[10]+".gif");
//	}
	
//	if (chk(11)) {	/* 14 Last  RTS */
//		set_img('RTSID',"d"+parsed[11]+".gif");
//	}
	
	if (chk(12)) { // 21	Current volume
	    set_element('volID',(parsed[12]*5)+" %");
	  	update_vu_meter(vuV,parsed[12]);	        
	}

	if (chk(13)) { // 46	Actual Table number
	        //alert("46 Actual Table number"+parsed[13]);
	        set_element('tableID', parsed[13]);
	}

    //alert("hwt="+hwt); 
        
     if (hwt==32) { // supervision only supported for the Ann 155 hwt 32 
           //alert("14");	 
	   if (chk(14)) { // 47 MIC
	   	//alert("47 MIC");
	        set_img('MICID',"m"+parsed[14]+".gif");
	 }
	   
	   if (chk(15)) { // 48	temp/100
		 //alert("48 temp/100="+parsed[14]);
	         set_element('TEMPID',parsed[15]+"."+parsed[16]+" &deg;C ");
	   }
	  
	   if (chk(16)) { // 49	temp%100
		 //alert("49 temp%100="+parsed[16]);
	         set_element('TEMPID',parsed[15]+"."+parsed[16]+" &deg;C ");
	   }
	  
           if (chk(17)) { // 50 speaker supervision
	   	//alert(" 50  speaker supervision/iostate(210)="+parsed[16]);
	        set_img('SPKID',"m"+parsed[17]+".gif");
	   }
	}
	
//18		477	iostate(502)
// 19 & 20 used in DIO tests above 

	//alert("End of it");
	old_parsed=parsed;
}

