simpleCounter (beta)

Nuevo plugin para crear un contador basado en POO

HTML

<div id="demo"></div>

JavaScript

/**
 * Created by Porfirio on 14/08/14.
 */

/**
 * Options:
 * mode: downtime - uptime
 * format: dateMin, dateHour, dateSeconds
 *         simpleMin, simpleHour, simpleSeconds
 */
(function($){
    var SimpleCounter = function(element, options){
        var domElement = $(element);
        var self = this;
        var currentTime = null;
        var timerAction = null;

        var defaults = {
            mode : "regresive",
            format : "dateMin",
            initialTime : 10000,
            finishTime : 0,
            refreshSpeed : 1000,
            initialText : " - - ",

            //CallBacks
            onAfterTimesUp : function(){},
            onStartCounter : function(){},
            onStopCounter : function(){},
            onResetCounter : function(){}
        }

        var settings = $.extend(defaults, options || {});

        //CONSTRUCTOR
        self.init = function(){
            currentTime = settings.initialTime;
            domElement.text(settings.initialText);
        }

        //PRIVATE METHODS
        var timeConverter = function(stringTime){
            function addZ(n) {
                return (n<10? '0':'') + n;
            }
            var ms = stringTime % 1000;
            stringTime = (stringTime - ms) / 1000;
            var secs = stringTime % 60;
            stringTime = (stringTime - secs) / 60;
            var mins = stringTime % 60;
            var hrs = (stringTime - mins) / 60;

            switch(settings.format){
                case "dateMin":
                    return addZ(mins) + ':' + addZ(secs);
                    break;
                case "dateHour":
                    return addZ(hrs) + ':' + addZ(mins) + ':' + addZ(secs);
                    break;
                case "dateSec":
                    return addZ(secs) + '.' + ms;
                    break;
                case "simpleMin":
                    return addZ(mins);
                    break;
                case "simpleHour":
      ...