target = "3/20/2011 6:21 PM";
active = true;
stepper = -1;
format = "<b>Spring is coming!</b><br />%%D%% days and %%H%%:%%M%%:%%S%%";
finished = "<b>Spring has sprung!</b>";

function Calculate(seconds, num1, num2) {
  s = ((Math.floor(seconds/num1))%num2).toString();
  if (s.length < 2) s = "0" + s;
  return s;
}

function CountBack(seconds) {
  if (seconds < 0) {
    document.getElementById("counter").innerHTML = finished;
    return;
  }
  outstring = format.replace(/%%D%%/g, Calculate(seconds,86400,100000));
  outstring = outstring.replace(/%%H%%/g, Calculate(seconds,3600,24));
  outstring = outstring.replace(/%%M%%/g, Calculate(seconds,60,60));
  outstring = outstring.replace(/%%S%%/g, Calculate(seconds,1,60));
  document.getElementById("counter").innerHTML = outstring;
  if (active) setTimeout("CountBack(" + (seconds+stepper) + ")", SetTimeOutPeriod);
}

stepper = Math.ceil(stepper);
if (stepper == 0) active = false;
var SetTimeOutPeriod = (Math.abs(stepper)-1)*1000 + 990;
document.write("<span id='counter'></span>");
var then = new Date(target);
var now = new Date();
diff = new Date(then-now);
secs = Math.floor(diff.valueOf()/1000);
CountBack(secs);
