function countdown(year, month, day, hour, minute, format)
{
  Today = new Date();
  Todays_Year = Today.getFullYear() - 2000;
  Todays_Month = Today.getMonth();                  

  //Convert both today's date and the target date into miliseconds.                           
  Todays_Date = 
    (new Date(
      Todays_Year, Todays_Month, Today.getDate(), 
      Today.getHours(), Today.getMinutes(), Today.getSeconds()
    )).getTime();                                 
  Target_Date = (new Date(year, month - 1, day, hour, minute, 00)).getTime();                  
   
  //Find their difference, and convert that into seconds.                  
  Time_Left = Math.round((Target_Date - Todays_Date) / 1000);
   
  if(Time_Left < 0)
    Time_Left = 0;
  
  element = document.getElementById('countdown');
  format_string = typeof(format_string) != 'undefined' ? format_string : element.innerHTML;
  
  switch(format)
  {
    case 0:
      //The simplest way to display the time left.
      element.innerHTML = Time_Left + ' seconds';
      break;
    case 1:
      //More datailed.
      days = Math.floor(Time_Left / (60 * 60 * 24));
      Time_Left %= (60 * 60 * 24);
      hours = Math.floor(Time_Left / (60 * 60));
      Time_Left %= (60 * 60);
      minutes = Math.floor(Time_Left / 60);
      Time_Left %= 60;
      seconds = Time_Left;

      dps = 's'; hps = 's'; mps = 's'; sps = 's';
      //ps is short for plural suffix.
      if(days == 1) dps ='';
      if(hours == 1) hps ='';
      if(minutes == 1) mps ='';
      if(seconds == 1) sps ='';

      var result = format_string;
      result = result.replace(/\{days\}/g, days);
      result = result.replace(/days/g, 'day'+dps);
      result = result.replace(/\{hours\}/g, hours);
      result = result.replace(/hours/g, 'hour'+hps);
      result = result.replace(/\{minutes\}/g, minutes);
      result = result.replace(/minutes/g, 'minute'+mps);
      result = result.replace(/\{seconds\}/g, seconds);
      result = result.replace(/seconds/g, 'second'+sps);
      element.innerHTML = result;
      break;
    default: 
      element.innerHTML = Time_Left + ' seconds';
  }
       
  //Recursive call, keeps the clock ticking.
  setTimeout('countdown(' + year + ',' + month + ',' + day + ',' + hour + ',' + minute + ',' + format + ');', 1000);
}

