var month = '10'; // 1 through 12 or '*' within the next month, '0' for the current month
var day = '07';   // day of month or + day offset
var dow = 7;     // day of week sun=1 sat=7 or 0 for whatever day it falls on
var hour = 18;    // 0 through 23 for the hour of the day
var tz = -5;     // offset in hours from UTC to your timezone
var cdlab = 'cd';  // id of the entry on the page where the counter is to be inserted

function start()
{
  displayCountdown(setCountdown(month,day,hour,tz),cdlab);
}

countdownLoaded(cdlab,start);

var pageLoaded = 0;

window.onload = function()
{
  pageLoaded = 1;
  alert('Countdown Loaded');
}

function countdownLoaded(i,f)
{
  if (document.getElementById && document.getElementById(i) != null)
    f();
  else if (!pageLoaded)
    setTimeout('countdownLoaded(\''+i+'\','+f+')',100);
}

function setCountdown(month,day,hour,tz)
{
  var m = month;
  if (month=='*') m = 0;
  
  var c = setC(m,day,hour,tz);
  if (month == '*' && c < 0)  c = setC('*',day,hour,tz);

  return c;
}

function setC(month,day,hour,tz)
{
  var toDate = new Date();

  if (day.substr(0,1) == '+')
  {
    var day1 = parseInt(day.substr(1));
    toDate.setDate(toDate.getDate()+day1);
  }
  else
  {
    toDate.setDate(day);
  }
  
  if (month == '*')
    toDate.setMonth(toDate.getMonth() + 1);
  else if (month > 0)
  {
    if (month <= toDate.getMonth())
      toDate.setFullYear(toDate.getFullYear() + 1);
    
    toDate.setMonth(month-1);
  }
  
  if (dow >0)
    toDate.setDate(toDate.getDate()+(dow-1-toDate.getDay())%7);

  toDate.setHours(hour);
  toDate.setMinutes(0-(tz*60));
  toDate.setSeconds(0);
  
  var fromDate = new Date();
  fromDate.setMinutes(fromDate.getMinutes() + fromDate.getTimezoneOffset());
  
  var diffDate = new Date(0);
  diffDate.setMilliseconds(toDate - fromDate);
  return Math.floor(diffDate.valueOf()/1000);
}

function displayCountdown(countdn,cd)
{
  if (countdn < 0)
    document.getElementById(cd).innerHTML = "Sorry, you are too late.";
  else
  {
    var secs = countdn % 60;
    if (secs < 10) secs = '0'+secs;
    
    var countdn1 = (countdn - secs) / 60;
    var mins = countdn1 % 60;
    if (mins < 10) mins = '0'+mins;
    countdn1 = (countdn1 - mins) / 60;
    
    var hours = countdn1 % 24;
    var days = (countdn1 - hours) / 24;
    document.getElementById(cd).innerHTML = days+' days, '+hours+' hours, '+mins+' mins, and '+secs+' secs';
    setTimeout('displayCountdown('+(countdn-1)+',\''+cd+'\');',999);
  }
}


