// Andrew Urquhart : CountDownPro Timer : www.andrewu.co.uk/clj/countdown/pro/
function CD_GetFormat(strTagId){
    var metaTags=document.getElementsByTagName("meta");
    if(metaTags && metaTags.length){
        for(var i=0;i<metaTags.length;++i){
            if(metaTags.item(i).scheme==strTagId){
                var name=metaTags.item(i).name;var content=metaTags.item(i).content;
                if(name.indexOf("mindigits")>0||name.indexOf("hidezero")>0){
                    window[strTagId][name]=parseInt(content,10)
                }else {
                    window[strTagId][name]=content
                }
            }
        }
    }
};
                
                
function CD_UpdateDisplay(strContent,strTagId){
    var objElem=document.getElementById(strTagId);
    if(objElem&&(typeof objElem.innerHTML).toString().toLowerCase()!='undefined'){
        objElem.innerHTML=strContent
    }
};

function CD_Tick(strTagId,strEventDate){
    var objNow=new Date();
    var objW=window[strTagId];
    
    if(objW.msoffset){
        objNow.setUTCMilliseconds(objNow.getUTCMilliseconds()+objW.msoffset)
    };
    
    var intMsDelay=1000-objNow.getUTCMilliseconds();
    var intEventDate=new Date(strEventDate).valueOf();
    CD_DrawTime(objNow,strTagId,intEventDate); 
     
    if(intEventDate<=objNow.valueOf()&&(objW.event_msg||objW.event_redirecturl)){
        var msg="<span id=\""+strTagId+"_complete\">"+objW.event_msg+"</span>";
        var audioSrc=objW.event_audio_src;
        var redirectUrl=objW.event_redirecturl;
        if(redirectUrl){
            location.href=redirectUrl
        }else if(audioSrc){
            var strMimeType=objW.event_audio_mimetype;
            var audioObject="<object style=\"visibility:hidden;\" id=\"MediaPlayer\" width=\"2\" height=\"2\" type=\""+strMimeType+"\" codebase=\"http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,7,1112\"><param name=\"filename\" value=\""+audioSrc+"\"><param name=\"autoStart\" value=\"true\"><param name=\"showControls\" value=\"false\"><param name=\"ShowStatusBar\" value=\"false\"><param name=\"Autorewind\" value=\"true\"><param name=\"ShowDisplay\" value=\"false\"><embed src=\""+audioSrc+"\" width=\"2\" height=\"2\" type=\""+strMimeType+"\" autostart=\"1\" showcontrols=\"0\" showstatusbar=\"0\" autorewind=\"1\" showdisplay=\"0\"></embed></object>";
            CD_UpdateDisplay(msg+audioObject,strTagId)
        }else {
            CD_UpdateDisplay(msg,strTagId)
        }
    }else {
        setTimeout("CD_Tick(\""+strTagId+"\","+intEventDate+")",intMsDelay)
    }
};

function CD_DrawTime(strDate,strTagId,intEventDate){
    var intMS=intEventDate-strDate.valueOf();
    
    if(intMS<=0){
        intMS*=-1
    };
    
    var intD=Math.floor(intMS/864E5);
    intMS=intMS-(intD*864E5);
    var intH=Math.floor(intMS/36E5);
    intMS=intMS-(intH*36E5);
    var intM=Math.floor(intMS/6E4);
    intMS=intMS-(intM*6E4);
    var intS=Math.floor(intMS/1E3);
    var strTmp=CD_Format(intD,"d",strTagId)+CD_Format(intH,"h",strTagId)+CD_Format(intM,"m",strTagId)+CD_Format(intS,"s",strTagId);
    CD_UpdateDisplay(strTmp,strTagId)
};
        
function CD_Format(intData,strPrefix,strTagId){
    var objW=window[strTagId];
    
    if(intData==0&&objW[strPrefix+"_hidezero"]){
        return ""
    };
    
    var strResult=""+intData;
    var intMinDigits=objW[strPrefix+"_mindigits"];
    
    if(intData.toString().length<intMinDigits){
        strResult="0000000000"+strResult;
        strResult=strResult.substring(strResult.length,strResult.length-intMinDigits)
    }
    
    strResult = '<span class="numbers">'+strResult+"</span>";
    
    if(intData!=1){
        strResult+=objW[strPrefix+"_units"]
    }else {
        strResult+=objW[strPrefix+"_unit"]
    };
    return objW[strPrefix+"_before"]+strResult+objW[strPrefix+"_after"]
};
    
function CD_Init(){
    var strTagPrefix="countdown";
    var objElem=true;
    
    if(document.getElementById){
        for(var i=1;objElem;++i){
            var strTagId=strTagPrefix+i;
            objElem=document.getElementById(strTagId);
            
            if(objElem&&(typeof objElem.innerHTML).toString().toLowerCase()!='undefined'){
                var strDate=objElem.innerHTML;
                
                if(!isNaN(new Date(strDate).valueOf())){
                    var objW=window[strTagId]=new Object();
                    
                    objW.d_mindigits=1;
                    objW.d_unit=" day";
                    objW.d_units=" days";
                    objW.d_before="";
                    objW.d_after=" ";
                    objW.d_hidezero=0;
                    
                    objW.h_mindigits=1;
                    objW.h_unit=" hour";
                    objW.h_units=" hours";
                    objW.h_before="";
                    objW.h_after=" ";
                    objW.h_hidezero=0;
                    
                    objW.m_mindigits=1;
                    objW.m_unit=" minute";
                    objW.m_units=" minutes";
                    objW.m_before="";
                    objW.m_after=" ";
                    objW.m_hidezero=0;
                    
                    objW.s_mindigits=1;
                    objW.s_unit=" second";
                    objW.s_units=" seconds";
                    objW.s_before="";
                    objW.s_after=" ";
                    objW.s_hidezero=0;
                    
                    objW.event_msg="";
                    objW.event_audio_src="";
                    objW.event_audio_mimetype="";
                    objW.event_redirecturl="";
                    objW.servertime="";
                    
                    CD_GetFormat(strTagId);
                    
                    if(objW.servertime){
                        objW.msoffset=parseInt((new Date(objW.servertime).valueOf()-(new Date()).valueOf())/1000,10)*1000
                    }else {
                        objW.msoffset=0
                    };
                    
                    CD_Tick(strTagId,strDate);
                    
                    if(objElem.style){
                        objElem.style.visibility="visible"
                    }
                }else {
                    objElem.innerHTML=strDate+"<a href=\"http://www.andrewu.co.uk/clj/countdown/pro/\" title=\"CountdownPro Error:Invalid date format used,check documentation (see link)\">*</a>"
                }
            }
        }
    }
};
    
if(window.attachEvent){
    window.attachEvent('onload',CD_Init)
}else if(window.addEventListener){
    window.addEventListener("load",CD_Init,false)
}else {
    window.onload=CD_Init
};
