// JavaScript Document
var clockID = 0;
var enProceso = false; // lo usamos para ver si hay un proceso activo
var http = getHTTPObject(); // Creamos el objeto XMLHttpRequest

function handleHttpResponse() {
	
	if (http.readyState == 4) {
       if (http.status == 200) {
          if (http.responseText.indexOf('invalid') == -1) {
             // Armamos un array, usando la coma para separar elementos
			 var bodytext = http.responseText.split("<body>");
			 var data = bodytext[1];
			 data = data.replace("</body></html>","");
			 data = data.replace( /^\s+/g, "" );// strip leading
			 data = data.replace( /\s+$/g, "" );// strip trailing
			 if(data == "")
			 {
				document.getElementById("track").innerHTML = " ";
				document.getElementById("race").innerHTML = " ";
				document.getElementById("mtp").innerHTML = " ";
			 }
			 else{
    		    results = http.responseText.split(",");
				document.getElementById("track").innerHTML = results[0];
				document.getElementById("race").innerHTML = "Race" + results[1];
				var MTP=parseInt(results[2]);
				if(MTP<100)
					document.getElementById("mtp").innerHTML = results[2] + " MTP";
				else
					document.getElementById("mtp").innerHTML = "--MTP";
				WeekTracks(results[3],results[4],results[5],parseInt(results[6]));
			 }
             enProceso = false;
          }
       }
    }
}

function verificaUsuario() {
    http = getHTTPObject();
	if (!enProceso && http) {		
       var url = "http://www.ehorse.com/clockMTP2.asp";
	   http.open("GET", url, true);
       http.onreadystatechange = handleHttpResponse;
       enProceso = true;
       http.send(null);
       clockID = setTimeout("verificaUsuario()", 15000);	
	}
}

function getHTTPObject() {
    var xmlhttp;	
     /*if (_jscript_version >= 5)
       try {
          xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
       } catch (e) {
          try {
             xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
          } catch (E) { xmlhttp = false; }
       }
    else
		xmlhttp = false;*/
   
    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
       try {
	   	
          xmlhttp = new XMLHttpRequest();
       } catch (e) { xmlhttp = false; }
    }
    else
    {
		try {
          xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
          try {
             xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
          } catch (E) { xmlhttp = false; }
       }    
    }
   
    return xmlhttp;
}

function StartClock() {
	
   clockID = setTimeout("verificaUsuario()", 500);
}

function KillClock() {
   if(clockID) {
      clearTimeout(clockID);
      clockID  = 0;
   }
}
function WeekTracks(thisday,thismonth,thisyear,weeknumber){
	
	var week = new Array(7);
	var day = thisday;
	var month = thismonth; // Numbers in range from 1 to 12
	var year = thisyear;
	var offset = weeknumber - 2;
	var m_names = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
	var inimonth = m_names[month-1];
	var endmonth = m_names[month-1];
	
	if (year < 2000)
		year = year + 1900;

	day = day - offset;
	
	if (day < 1) {
		if (month == 1) {
			day=getDays(12, year-1) + day;
			month = 12;
			year = year -1;
		}
		else {
			day=getDays(month-1, year) + day;
			month = month-1;
		}	
	}	
	
	for (var j = 0; j < 7; j++) { //count days in all previous months
    	week[j]=day;
		if(day == getDays(month, year)){
		    day = 0;	
			if(month == 12)
				endmonth = m_names[0];						
			else
				endmonth = m_names[month];
		}
		day++;
    }
	if(week[0]>week[6]){
		if(inimonth=="Jan")
		   inimonth=m_names[11];
		else
		   inimonth=m_names[month-1];
	}
	document.getElementById("mondaytrack").innerHTML = week[0];
	document.getElementById("tuesdaytrack").innerHTML = week[1];
	document.getElementById("wednesdaytrack").innerHTML = week[2];
	document.getElementById("thursdaytrack").innerHTML = week[3];
	document.getElementById("fridaytrack").innerHTML = week[4];
	document.getElementById("saturdaytrack").innerHTML = week[5];
	document.getElementById("sundaytrack").innerHTML = week[6];
	
	document.getElementById("mondaydate").innerHTML = inimonth + " " + week[0];
	document.getElementById("sundaydate").innerHTML = endmonth + " " + week[6];
}


function getDays(month, year) {
  // create array to hold number of days in each month
  var mes = new Array(12);
  mes[0] = 0;
  mes[1] = 31; // January
  mes[2] = (year % 4 == 0) ? 29 : 28; // February
  mes[3] = 31; // March
  mes[4] = 30; // April
  mes[5] = 31; // May
  mes[6] = 30; // June
  mes[7] = 31; // July
  mes[8] = 31; // August
  mes[9] = 30; // September
  mes[10] = 31; // October
  mes[11] = 30; // November
  mes[12] = 31; // December

  // return number of days in the specified month (parameter)
  return mes[month];
}
