/*
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>
*/

function setClock(dt)
{
    TargetDate = setTargetDate(dt);
    CountActive = true;
    CountStepper = -1;
    LeadingZero = true;
    DisplayFormat = "%%H%%:%%M%%:%%S%%";
    FinishMessage = "We have a winner!";
    test(dt);
}

function frenchClockToGlobal(clk)
{
    var year = clk.substring(0,4);
    var month = clk.substring(5,7);
    var day = clk.substring(8,10);
    var hour = clk.substring(12,14);
    var min = clk.substring(14,16);
    var sec = clk.substring(17,19);
    var ampm = 'AM';
    
    if(hour > 12)
    {
        hour = hour - 12;
        ampm = 'PM';
    }
    
    return (month + "/" + day + "/" + year + " " + hour + ":" + min + ":" + sec + " " + ampm);
}

function setTargetDate(currentdt)
{
    var now = new Date(currentdt);
    if(now == 'NaN')
    {
        now = new Date(frenchClockToGlobal(currentdt));
    }
    Target = new Date(now.getFullYear(),now.getMonth(),now.getDate()+1);
    return Target;
}

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 > 86389)
    {
        /*
            if(secs%2==0)
            {
                DisplayStr = "";
            }
            else
            {
                DisplayStr = FinishMessage;
            }
        */
        DisplayStr = FinishMessage;
    }
    else if (secs <1)
    {
        DisplayStr = FinishMessage;
        secs = 86400
        TargetDate = setTargetDate(TargetDate);
    }
    else
    {
        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;
    document.getElementById("timer").innerHTML = DisplayStr;
    setTimeout("CountBack(" + (secs+CountStepper) + ")", 1000);
}

function putspan()
{
    // document.write("<span id='cntdwn'</span>");
}

function test(dt)
{
    CountStepper = Math.ceil(CountStepper);
    if (CountStepper == 0)
        CountActive = false;
    var SetTimeOutPeriod = (Math.abs(CountStepper)-1)*1000 + 990;
    putspan();
    var dthen = new Date(TargetDate);
    var dnow = new Date(dt);
    if(dnow == 'NaN')
    {
        dnow = new Date(frenchClockToGlobal(dt));
    }
    if(CountStepper>0)
        ddiff = new Date(dnow-dthen);
    else
        ddiff = new Date(dthen-dnow);
    gsecs = Math.floor(ddiff.valueOf()/1000);
    CountBack(gsecs);
}