/**
 * Odpocitavani
 */

jQuery.fn.counter = function (endDate) {
    function getCounter(counter, endDate) {
        // konecne datum
        var end = new Date();

        var dateTime = endDate.split(' ');
        
        // mame datum
        if (dateTime[0]) {
            var endDateParts = dateTime[0].split('-');

            end.setDate(parseInt(endDateParts[2], 10));
            end.setMonth(parseInt(endDateParts[1], 10) - 1);
            end.setFullYear(parseInt(endDateParts[0], 10));
        }

        // mame cas
        if (dateTime[1]) {
            var endTimeParts = dateTime[1].split(':');

            end.setHours(parseInt(endTimeParts[0], 10));
            end.setMinutes(parseInt(endTimeParts[1], 10));
            end.setSeconds(parseInt(endTimeParts[2], 10));
        }

        // nynejsi datum
        var now = new Date();

        var difference = parseInt((end.getTime() - now.getTime()) / 1000);

        // odpocitavat budeme pouze pokud neni rozdil dat zaporny
        if (difference > 0) {
            var days = parseInt(difference / 86400);
            var hours = parseInt((difference - (days * 86400)) / 3600);
            var minutes = parseInt((difference - (days * 86400) - (hours * 3600)) / 60);
            var seconds = difference - (days * 86400) - (hours * 3600) - (minutes * 60);

            counter.html(
                ((days.toString().length == 1) ? '0' : '') + days + ':' +
                ((hours.toString().length == 1) ? '0' : '') + hours + ':' +
                ((minutes.toString().length == 1) ? '0' : '') + minutes + ':' +
                ((seconds.toString().length == 1) ? '0' : '') + seconds
            );

            setTimeout(
                function () {
                    getCounter(counter, endDate)
                },
                1000
            );
        }
    }

    return getCounter(this, endDate);
};
