/*
 * Скрипт обратного отсчета
 *
 * Author: Бутков Антон <amorpro@mail.ru> AmorPro 27.10.2010
 *
 ****************************************************************
 Usage Sample:

    <script language="JavaScript">
        CreateCountDown("countDown", "15", "%D% дн. %H% ч., %M% м., %S% с.", "Complete");
    </script>

*/

var countDownNodeId = '';

function CreateCountDown( nodeId, secs, displayFormat, finishMessage ) {

    SaveCountDownNodeId( nodeId );

    if ( CountDownIsComplete( secs ) ) {

        WriteCountDownMessage( finishMessage );
        
    }else{
  
        WriteCountDownMessage( ReplaceCountDownMarks( displayFormat, secs ) );

        setTimeout(function(){ CreateCountDown(nodeId, --secs, displayFormat, finishMessage ) }, 1000);
        
        
    }
}

function CountDownIsComplete(secs) {
    return secs <= 0;
}

function WriteCountDownMessage( msg ) {
    document.getElementById( countDownNodeId ).innerHTML = msg;
}

function SaveCountDownNodeId( nodeId ) {
    countDownNodeId = nodeId;
}

function ReplaceCountDownMarks( displayFormat, secs ) {

    displayStr = displayFormat.replace(/%D%/g, CountDownCalcage(secs,86400,100000));
    displayStr = displayStr.replace(/%H%/g, CountDownCalcage(secs,3600,24));
    displayStr = displayStr.replace(/%M%/g, CountDownCalcage(secs,60,60));
    displayStr = displayStr.replace(/%S%/g, CountDownCalcage(secs,1,60));

    return displayStr;
}

function CountDownCalcage(secs, num1, num2) {

    s = ((Math.floor(secs/num1))%num2).toString();

    if (s.length < 2){
        s = "0" + s;
    }
 
    return s;
}
