﻿/*
Script below adapted from Original Script by Robert Hashemian
Changes made to allow the DisplayFormat String to be split into separate components so different target IDs can be used for each of days, hours, second, minutes.

ORIGINAL SCRIPT DISCLAIMER:

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%% Days, %%H%% Hours, %%M%% Minutes, %%S%% Seconds.";
FinishMessage = "It is finally here!";
</script>
<script language="JavaScript" src="http://scripts.hashemian.com/js/countdown.js"></script>
*/

var DisplayStr0 = "%%D%%";
var DisplayStr1 = "%%H%%";
var DisplayStr2 = "%%M%%";
var DisplayStr3 = "%%S%%";

function calcage(secs, num1, num2) {
  s = ((Math.floor(secs/num1))%num2).toString();
  if (LeadingZero && s.length < 2)
    s = "0" + s;
  return  s;
}

function CountBack(secs) {
  if (secs < 0) {
    
    return;
  }
  
  tempDay =  calcage(secs,86400,100000);
  tempHour =  calcage(secs,3600,24);
  tempMin =  calcage(secs,60,60);
  tempSecs =  calcage(secs,1,60);
  
  DisplayStr0 = tempDay;
  DisplayStr1 = tempHour;
  DisplayStr2 = tempMin;
  DisplayStr3 = tempSecs;    
    
  document.getElementById("cdDays").innerHTML = DisplayStr0;
  document.getElementById("cdHours").innerHTML = DisplayStr1;
  document.getElementById("cdMins").innerHTML = DisplayStr2;
  document.getElementById("cdSecs").innerHTML = DisplayStr3;
  
  if (CountActive)
    setTimeout("CountBack(" + (secs+CountStepper) + ")", SetTimeOutPeriod);
}

if (typeof(BackColor)=="undefined")
  BackColor = "white";
if (typeof(ForeColor)=="undefined")
  ForeColor= "black";
//NB Date format is MM/DD/YYYY
if (typeof(TargetDate)=="undefined")
  TargetDate = "06/20/2011 12:00 PM";
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;
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);
