var xmlHttp;
var occasion;
var message_on_occasion;
var message_past_occasion;

function getCountdown() {
    var url = '/hem/countdown.xml';
    xmlHttp = GetXmlHttpObject(XMLResponse)
    xmlHttp.open("GET", url , true)
    xmlHttp.send(null)
}

function XMLResponse() { 
    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") { 
        XMLDOM = xmlHttp.responseXML.documentElement;
        var year = XMLDOM.getElementsByTagName('date')[0].firstChild.data.substring(0,4);
        var month = XMLDOM.getElementsByTagName('date')[0].firstChild.data.substring(5,7);
        var day = XMLDOM.getElementsByTagName('date')[0].firstChild.data.substring(8,10);
        var hour = XMLDOM.getElementsByTagName('time')[0].firstChild.data.substring(0,2);
        var minute = XMLDOM.getElementsByTagName('time')[0].firstChild.data.substring(3,5);
        
        occasion = 'Countdown: ' + XMLDOM.getElementsByTagName('occasion')[0].firstChild.data;
        message_on_occasion = XMLDOM.getElementsByTagName('onoccasion')[0].firstChild.data;
        message_past_occasion = XMLDOM.getElementsByTagName('pastoccasion')[0].firstChild.data;
        
        setcountdown(year,month,day,hour,minute,00);
        countdown();
    } 
} 

function GetXmlHttpObject(handler) { 
    var objXmlHttp = null;

    if (navigator.userAgent.indexOf("Opera")>=0) {
        //alert("This example doesn't work in Opera");
        return;
    }
    
    if (navigator.userAgent.indexOf("MSIE")>=0) { 
        var strName = "Msxml2.XMLHTTP";
        if (navigator.appVersion.indexOf("MSIE 5.5")>=0) {
            strName = "Microsoft.XMLHTTP";
        } 
        try { 
            objXmlHttp=new ActiveXObject(strName)
            objXmlHttp.onreadystatechange = handler;
            return objXmlHttp;
        } catch(e) { 
            //alert("Error. Scripting for ActiveX might be disabled");
            return;
        } 
    }
    
    if (navigator.userAgent.indexOf("Mozilla")>=0) {
        objXmlHttp = new XMLHttpRequest();
        objXmlHttp.onload = handler;
        objXmlHttp.onerror = handler;
        return objXmlHttp;
    }
}

function setcountdown(theyear,themonth,theday,thehour,themin,thesec)
{
	yr = theyear;
	mo = themonth;
	da = theday;
	hr = thehour;
	min = themin;
	sec = thesec;
}

/*
setcountdown(2006,05,13,10,00,00);
var occasion = "Countdown: Öresund Grand Prix 2006";
var message_on_occasion = "Go!";
var message_past_occasion = "Occasion already passed!";
*/
var montharray = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");

function countdown(){
    var today = new Date();
    var todayy = today.getYear();
    if (todayy < 1000) 
        todayy+=1900;
    var todaym = today.getMonth();
    var todayd = today.getDate();
    var todayh = today.getHours();
    var todaymin = today.getMinutes();
    var todaysec = today.getSeconds();
    var todaystring = montharray[todaym]+" "+todayd+", "+todayy+" "+todayh+":"+todaymin+":"+todaysec;
    futurestring = montharray[mo-1]+" "+da+", "+yr+" "+hr+":"+min+":"+sec;
    dd = Date.parse(futurestring)-Date.parse(todaystring);
    dday = Math.floor(dd/(60*60*1000*24)*1);
    dhour = Math.floor((dd%(60*60*1000*24))/(60*60*1000)*1);
    dmin = Math.floor(((dd%(60*60*1000*24))%(60*60*1000))/(60*1000)*1);
    dsec = Math.floor((((dd%(60*60*1000*24))%(60*60*1000))%(60*1000))/1000*1);
    
    //if on day of occasion
    if(dday<=0&&dhour<=0&&dmin<=0&&dsec<=1&&todayd==da) {
        document.getElementById('countdown').innerHTML = message_on_occasion;
        return;
    } else if (dday<=-1) {
        document.getElementById('countdown').innerHTML = message_past_occasion;
        return;
    } else {
        dhour = dhour.toString().length==1 ? '0'+dhour : dhour;
        dmin = dmin.toString().length==1 ? '0'+dmin : dmin;
        dsec = dsec.toString().length==1 ? '0'+dsec : dsec;
        document.getElementById('countdown').innerHTML = "<span>"+occasion+"</span><br/>"+dday+":"+dhour+":"+dmin+":"+dsec;
    }
    setTimeout("countdown()",1000)
}

window.onload = function() {
    getCountdown();
}