﻿/*
Author:		Robert Hashemian (http://www.hashemian.com/)
Modified by:	Munsifali Rashid (http://www.munit.co.uk/)
Modified by:	Tilesh Khatri
Modified by:    DateCountdown.com
*/

function ToggleTimer(targetEl) {
    if ($(targetEl).is(':checked')) {
        StartCountDown($(targetEl), $(targetEl).siblings('.datedata').attr("data-date") + ' ' + $(targetEl).siblings('.datedata').attr("data-time"));
        try {
            $("#idPasteUrl").val($("#idPasteUrl").val().replace("timer=0", "timer=1"));
            $("#idEmbedUrl").val($("#idEmbedUrl").val().replace("timer=0", "timer=1"));
        } catch(err){}
    } else {
        ShowCountDown($(targetEl), $(targetEl).siblings('.datedata').attr("data-date"));
        try {
            $("#idPasteUrl").val($("#idPasteUrl").val().replace("timer=1", "timer=0"));
            $("#idEmbedUrl").val($("#idEmbedUrl").val().replace("timer=1", "timer=0"));
        } catch(err){}
    }
}

function ShowCountDown(targetEl, targetDate) {
    var days = Math.ceil((new Date(targetDate) - new Date()) / 86400000);
    var endPhrase = '';
    $(targetEl).siblings('.count').html(Math.abs(days));
    if (days == 0) {
        $(targetEl).siblings('.count').html('TODAY');
    } else if (days == 1) {
        endPhrase = 'day remains';
    } else if (days == -1) {
        endPhrase = 'day ago';
    } else if (days > 1) {
        endPhrase = 'days remaining';
    } else if (days < -1) {
        endPhrase = 'days ago';
    }
    $(targetEl).siblings('.endphrase').html(endPhrase);
}


function StartCountDown(targetEl, targetDate) {
    var dthen = new Date(targetDate);
    var dnow = new Date();
    ddiff = new Date(dthen - dnow);
    gsecs = Math.floor(ddiff.valueOf() / 1000);
    CountBack(targetEl, gsecs);
}

function Calcage(secs, num1, num2) {
    if (secs < 0) { secs += num1 };
    s = ((Math.floor(secs / num1)) % num2).toString();
    if (s.length < 2) {
        s = "0" + s;
    }
    return (s);
}

function CountBack(whichEl, secs) {
    if (!$(whichEl).is(':checked')) { return false; }
    var DisplayStr;
    var DisplayFormat = "<table class='countdown'><tr><td class='cdday' width='25%' nowrap>%%D%%</td><td class='cdday'>:</td><td width='25%'>%%H%%</td><td>:</td><td width='25%'>%%M%%</td><td>:</td><td width='25%'>%%S%%</td><tr class='cdlabels'><td class='cdday'>Days</td><td class='cdday'></td><td>Hours</td><td></td><td>Minutes</td><td></td><td>Seconds</td></tr></table>";
    var d = Calcage(secs, 86400, 100000);
    DisplayStr = DisplayFormat.replace(/%%D%%/g, d);
    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));
    $(whichEl).siblings('.count').html(DisplayStr);
    if (d == '00') { $(whichEl).siblings('.cdday').hide(); };

    var thatEl = whichEl;
    var thoseSecs = secs - 1;
    setTimeout(function () { CountBack(thatEl, thoseSecs); }, 990);
    if (secs > 0) {
        //still counting down
        $(whichEl).siblings('.endphrase').html('time remaining');
    }
    else {
        //happened in the past
        $(whichEl).siblings('.endphrase').html('in the past');
    }
}

