var PARAMS =   {
                    //TimeNow:    new Date('2010/03/14 01:59:57 UTC-0500,1'), 
                    TimeNow:    new Date(),
                    TimeEnd:    new Date(2010, 02, 22),
                    TimerID:    null,
                    Controls:   null
                };
$(document).ready(function(){
	if(PARAMS.TimeEnd > PARAMS.TimeNow)
	{
	    PARAMS.Controls = $('#countdown, #countdown2, #countdown3, #countdown4');
        PARAMS.TimerID = setInterval("updateDateRemaining()", 1000);
    }
});

function updateDateRemaining()
{
    //console.clear();
    PARAMS.TimeNow.setSeconds( PARAMS.TimeNow.getSeconds()+1 );
    
    //console.debug(PARAMS.TimeEnd);
    //console.debug(PARAMS.TimeNow);
    
    var days = getDaysRecursive(new Date(PARAMS.TimeNow.getFullYear(), PARAMS.TimeNow.getMonth(), PARAMS.TimeNow.getDate()+1), PARAMS.TimeEnd, 0);
    var hours = PARAMS.TimeNow.getHours();
    var minutes = PARAMS.TimeNow.getMinutes();
    var seconds = PARAMS.TimeNow.getSeconds();
    //console.debug(hours+":"+minutes);
    if(days==0 && hours==0 && minutes==0 && seconds==0)
    {
        //console.debug('stop');
        clearInterval(PARAMS.TimerID);
    }else{
        seconds = 59-seconds;
        minutes = 59-minutes;
        hours = 23-hours;
        //console.debug(days+" days "+hours+":"+minutes+":"+seconds);
        
        $('span.days', PARAMS.Controls).text( days<10?'0'+days:days );
	    $('span.hrs', PARAMS.Controls).text( hours<10?'0'+hours:hours );
	    $('span.mins', PARAMS.Controls).text( minutes<10?'0'+minutes:minutes );
    }
}

function getDaysRecursive(from, to, _days)
{
    if(to.getTime() > from.getTime() )
    {
        from.setDate( from.getDate()+1 );
        _days = getDaysRecursive(from, to, _days+1);
    }
    return _days;
}

function getDays(from, to)
{
    from = new Date(from.getFullYear(), from.getMonth(), from.getDate()+1);
    var zone = from.getTimezoneOffset()*60*1000;
    var DAY = 1000*24*60*60;
    var from = from.getTime();
    var to = to.getTime();
    var days = Math.round((Math.abs(to - from))/DAY);   
    return days;
}
