
(function($){
    
    $.fn.createCFCountdown = function(options) {
        
        options = $.extend({
            
            seconds: 60,
            showCentiseconds: true,
            complete: function() {}
            
        }, options);
        
        var container = this;
        
        var intervalCounter = options.showCentiseconds ? options.seconds * 100 : options.seconds;
        
        
        var timerElement = $('<div class="cf-timer"><p><span class="number">00</span><span class="colon">:</span><span class="number">00</span><span class="colon">:</span><span class="number">00</span></p></div>');
        var minutes = timerElement.find('span.number').eq(0);
        var seconds = timerElement.find('span.number').eq(1);
        var centiseconds = timerElement.find('span.number').eq(2);
        
        
        
        var interval = setInterval(function() {
            
            var scalar = options.showCentiseconds ? 100 : 1;
            
            var minutesRemaining = Math.floor(intervalCounter / (60 * scalar)) % 60;
            var secondsRemaining = Math.floor((intervalCounter / scalar)) % 60;
            var centisecondsRemaining = Math.floor((options.showCentiseconds && intervalCounter > 3 ? intervalCounter : 0) % 100);
            
            var minuteString = (minutesRemaining < 10 ? "0" : "") + minutesRemaining;
            var secondString = (secondsRemaining < 10 ? "0" : "") + secondsRemaining;
            var centisecondString = (centisecondsRemaining < 10 ? "0" : "") + centisecondsRemaining;
            
            minutes.text(minuteString);
            seconds.text(secondString);
            centiseconds.text(centisecondString);
            
            intervalCounter -= 8.5;
            
            if(intervalCounter <= 0) {
                
                clearInterval(interval);
                options.complete();
                
            }
            
        }, options.showCentiseconds ? 85 : 850);
        
        
        container.empty();
        container.append(timerElement);
        
        
        var dimensions = {width: 1, height: 0};
        
        timerElement.find('span').each(function(i, e) {
            
            var element = $(e);
            var marginLeft = parseInt(element.css('marginLeft').substr(0, element.css('marginLeft').length - 2));
            var marginRight = parseInt(element.css('marginRight').substr(0, element.css('marginRight').length - 2));
            
            dimensions.width += (element.width() + marginLeft + marginRight);
            dimensions.height = Math.max($(e).height(), dimensions.height);
            
        });
    
        container.css({width: dimensions.width + 'px', height: dimensions.height + 'px'});
        
        
        
        
        
    }
    
    
})(jQuery);