/*

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.

********************************************************

Usage Sample:



<script language="JavaScript">

TargetDate = "12/31/2020 5:00 AM";

BackColor = "palegreen";

ForeColor = "navy";

CountActive = true;

CountStepper = -1;

LeadingZero = true;

DisplayFormat = "%%D%%z, %%H%%h, %%M%%m, %%S%%s";

FinishMessage = "It is finally here!";

</script>

<script language="JavaScript" src="http://scripts.hashemian.com/js/countdown.js"></script>

*/



/*

Log of changes

-Upload countdown.js

-Edit headerinclude

-Add new bb code

*/



CountStepper = -1;

CountStepper = Math.ceil(CountStepper);

var SetTimeOutPeriod = (Math.abs(CountStepper)-1)*1000 + 990;

var waittime = "";



function init_countdown(param, option) {

	

	optiontemp = option.split(";");

	

	//Define variables for countdown

	TargetDate = optiontemp[0];

	FinishMessage = optiontemp[1];

	textBefore = param;	

	CountActive = true;

	LeadingZero = true;

	DisplayFormat = "%%D%%z, %%H%%h, %%M%%m, %%S%%s";

	var rndNum = Math.floor(Math.random() * 10000); 

	

	//Check values

	if (typeof(TargetDate)=="undefined")

		TargetDate = "12/31/2020 5:00 AM";

	if (typeof(DisplayFormat)=="undefined")

		DisplayFormat = "%%D%%z, %%H%%h, %%M%%m, %%S%% s";

	if (typeof(CountActive)=="undefined")

		CountActive = true;

	if (typeof(FinishMessage)=="undefined")

		FinishMessage = "";

	if (typeof(CountStepper)!="number")

		CountStepper = -1;

	if (typeof(LeadingZero)=="undefined")

		LeadingZero = true;



	//Start processing of the countdown

	if (CountStepper == 0)

		CountActive = false;

	putspan(textBefore, rndNum);

	var dthen = new Date(TargetDate);

	var dnow = new Date();

	if(CountStepper>0)

		ddiff = new Date(dnow-dthen);

	else

		ddiff = new Date(dthen-dnow);

	gsecs = Math.floor(ddiff.valueOf()/1000);

	CountBack(gsecs, FinishMessage, rndNum);

}



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, FinishMessage, rndNum) {

  if (secs < 0) {

    document.getElementById("cntdwn" + rndNum).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" + rndNum).innerHTML = DisplayStr;

  if (CountActive)

    setTimeout("CountBack(" + (secs+CountStepper) + ", '" + FinishMessage + "', " + rndNum + ")", SetTimeOutPeriod);

}



function putspan(textBefore, rndNum) {

 document.getElementById("cntdwn").id = "cntdwn" + rndNum;

}