// 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)
  }
  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=2;
	    objW.h_unit="h";
	    objW.h_units="h";
	    objW.h_before="";
	    objW.h_after=" ";
	    objW.h_hidezero=0;
	    objW.m_mindigits=2;
	    objW.m_unit="m";
	    objW.m_units="m";
	    objW.m_before="";
	    objW.m_after=" ";
	    objW.m_hidezero=0;
	    objW.s_mindigits=2;
	    objW.s_unit="s";
	    objW.s_units="s";
	    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
};
