/*
Author: Robert Hashemian
http://www.hashemian.com/

You can use this code in any manner so long as the author's
name, Web address and this disclaimer is kept intact.

Script modified on 11/09/2008 by Brant Gigas (brant@gigas.us).

##########################################################
		Usage Instructions
##########################################################

The date is housed in a seperate .js file, which I have named countdown_date.js.  Using this file makes changing the date very easy for all IT skill levels.

The following is a list of variables that can be passed to this script to customize it's functionality.

UseFormatting = true;												(If true, the script will use the formatting parameters supplied, otherwise no formatting is used.  Defaults to true.)
	(If UseFormatting is true, the following variables specify the look of the countdown)
BackColor = "white";												(Background color, defaults to white)
ForeColor = "darkred";												(Foreground color, defaults to black)
FontName = "Tahoma";												(Font type)
FontSize = "16";													(Font size)

CountActive = true;													(Should the script actively count down?, defaults to true)
CountStepper = 1;													(Seconds between updating, if CountActive is true, defaults to 1)
LeadingZero = true;													(Put a leading 0 in situations where values are > 10, defaults to true)
DisplayFormat = "%%D%% Days, %%H%% Hrs, %%M%% Mins, %%S%% Secs";	(How to display the countdown information)
FinishMessage = "We'll look forward to seeing you in 2010";			(Once countdown has passed, what message should be displayed)

*/

function calcage(secs, num1, num2) 
{
	s = ((Math.floor(secs/num1))%num2).toString();
  	if (LeadingZero && s.length < 2)
    	s = "0" + s;
	return "<b>" + s + "</b>";
}

function CountBack(secs) 
{
 	if (secs < 0) // Event date has past
	{
    	document.getElementById("cntdwn").innerHTML = FinishMessage;
    	return;
  	}
	
  	DisplayStr = DisplayFormat.replace(/%%D%%/g, calcage(secs,86400,100000));
  	DisplayStr = DisplayStr.replace(/%%H%%/g, calcage(secs,3600,24));
  	DisplayStr = DisplayStr.replace(/%%M%%/g, calcage(secs,60,60));
  	DisplayStr = DisplayStr.replace(/%%S%%/g, calcage(secs,1,60));

  	document.getElementById("cntdwn").innerHTML = DisplayStr;
	
  	if (CountActive)
    	setTimeout("CountBack(" + (secs- Math.abs(CountStepper)) + ")", SetTimeOutPeriod);
}

function putspan(backcolor, forecolor, fontname, fontsize, useformatting) 
{
	if (useformatting)
		document.write("<span id='cntdwn' style='background-color:" + backcolor + "; color:" + forecolor + "; font-family:" + fontname + "; font-size:" + fontsize + ";'></span>");
	else
		document.write("<span id='cntdwn'></span>");
}

if (typeof(UseFormatting)=="undefined")
	UseFormatting = true;

if (typeof(BackColor)=="undefined")
	BackColor = "white";
	
if (typeof(ForeColor)=="undefined")
  	ForeColor= "black";
	
if (typeof(FontName)=="undefined")
	FontName = "Tahoma";
	
if (typeof(FontSize)!="number")
	FontSize = "12";
	
if (typeof(TargetDate)=="undefined")
  	TargetDate = "12/31/2020 5:00 AM";
	
if (typeof(DisplayFormat)=="undefined")
  	DisplayFormat = "%%D%% Days, %%H%% Hours, %%M%% Minutes, %%S%% Seconds.";
	
if (typeof(CountActive)=="undefined")
  	CountActive = true;
	
if (typeof(FinishMessage)=="undefined")
  	FinishMessage = "";
	
if (typeof(CountStepper)!="number")
  	CountStepper = 1;
	
if (typeof(LeadingZero)=="undefined")
  	LeadingZero = true;


CountStepper = Math.ceil(CountStepper);

if (CountStepper == 0)
  	CountActive = false;
  
var SetTimeOutPeriod = (Math.abs(CountStepper)-1)*1000 + 990;

putspan(BackColor, ForeColor, FontName, FontSize, UseFormatting);

var dthen = new Date(TargetDate);
var dnow = new Date();

ddiff = new Date(dthen - dnow);

gsecs = Math.floor(ddiff.valueOf()/1000);
CountBack(gsecs);
