// Copyright 2010 Chris Done. All rights reserved.
//
// LICENSE:
//
// YOU MAY NOT USE THIS FOR ANY PURPOSES WHATSOEVER. PERMISSION IS
// HEREBY EXPLICITLY WITHHELD FOR ANY USE. DO NOT USE THIS LIBRARY.
//
// END OF LICENSE.

(function($){
    $.fn.timeticker = function(servertime){
        setInterval(function(){
            servertime.setSeconds(servertime.getSeconds() + 1);
        },1000);
        $(this).each(function(){
            var dateel = $(this);
            var datetimetext = dateel.text();
            var datetimeparts =
                datetimetext.match(/([0-9]{2})\/([0-9]{2})\/([0-9]{4}) ([0-9]{2}):([0-9]{2})/);
            if (datetimeparts) {
                var datetime = new Date(datetimeparts[3],   // year
                                        datetimeparts[2]-1, // month
                                        datetimeparts[1],   // day
                                        datetimeparts[4],   // hours
                                        datetimeparts[5],   // minutes
                                        00                  // seconds
                                       );
                if (servertime > datetime) return;
                var timespanel;

                function update(){
                    var diff = (datetime - servertime)/1000;
                    if (diff>0) {
                        var seconds=Math.floor(diff % 60);
                        diff=diff/60;
                        var minutes=Math.floor(diff % 60);
                        diff=diff/60;
                        var hours=Math.floor(diff % 24);
                        diff=diff/24;
                        var days=Math.floor(diff);
                        var out = '';
                        if (days > 0) {
                            out = days + ' days';
                        } else if (hours > 0) {
                            out = hours + 'h ' + minutes + 'm ' + seconds + 's';
                        } else if (minutes > 0) {
                            out = minutes + 'm ' + seconds + 's';
                        } else {
                            out = seconds + 's';
                        }
                    } else out = '';
                    if (!timespanel) {
                        timespanel = $('<span class="timespan">' + out + '</span>');
                        dateel.after(timespanel);
                    }
                    else
                        timespanel.text(out);
                    
                }
                update();
                setInterval(update,950);
            }
        });
    };
})(jQuery);
