(function(SinemaTv, $) {
    SinemaTv.util = {};

    var monthNames = ["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos",
                      "Eylül","Ekim","Kasım","Aralık"];

    var dayNames = ["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"];

    /**
     * Pad number with zeros
     * zeroPad(3,2) will return 03
     * http://sujithcjose.blogspot.com/2007/10/zero-padding-in-java-script-to-add.html
     */
    SinemaTv.util.zeroPad = function(num,count) { 
        var numZeropad = num + '';
        while(numZeropad.length < count) {
            numZeropad = "0" + numZeropad; 
        }
        return numZeropad;
    };


    /**
     * Format timestamp
     * %Y = Year (2010)
     * %m = Month (03)
     * %M = Month Name = Mart
     *
     */ 
    SinemaTv.util.formatDateFromTimestamp = function (timestamp, format) {

        format = format || "%Y-%m-%d";

        var dateForTimestamp = new Date();
        dateForTimestamp.setTime(timestamp);

        var year = dateForTimestamp.getFullYear();
        var month = dateForTimestamp.getMonth() + 1;
        var monthName = monthNames[month-1];
        var hour = SinemaTv.util.zeroPad(dateForTimestamp.getHours(), 2);
        var minutes = SinemaTv.util.zeroPad(dateForTimestamp.getMinutes(), 2);
        var seconds = SinemaTv.util.zeroPad(dateForTimestamp.getSeconds(), 2);
        var day = dateForTimestamp.getDate();
        var dayName = dayNames[dateForTimestamp.getDay()];

        format = format.replace("%Y", year);
        format = format.replace("%m", month);
        format = format.replace("%M", monthName);
        format = format.replace("%d", day);
        format = format.replace("%D", dayName);
        format = format.replace("%H", hour);
        format = format.replace("%i", minutes);
        format = format.replace("%s", seconds);

        return format;
    };




    /**
     * Loading handler
     *
     * element should be set after dom ready
     *
     * SinemaTv.util.setElement ( $(".foo") )
     */
    SinemaTv.util.loading = {
        element : {},
        setElement : function(element){
            this.element = element;
        },
        timer : undefined,
        timerWait : 200,
        start : function(){
            var loadingElement = this.element;
            clearTimeout(this.timer);

            //show after timerWait ms
            this.timer = setTimeout(function(){
                loadingElement.show();
            }, this.timerWait);
        },
        stop : function(){
            this.element.fadeOut();
            clearTimeout(this.timer);
        }
    };


    /**
     * Truncate text which are longer than maxLength and add continueText to end
     */
    SinemaTv.util.truncateText = function(text, maxLength, continueText){
    	text = text || "";
        maxLength = maxLength || 20;
        continueText = continueText || "…";

        if( text.length > maxLength ) {
            text = text.substr(0, maxLength) + continueText;
        }

        return text;
    };



})(SinemaTv, jQuery);

