var fontSizeSwitcher = {
    
    altStylesheetTag: null,
    altStylesheetUrl: new Array(),
    
    options: {
        cookieName: 'alnatura-naturtextil-font-style',
        defaultStyleName: 'default',
        buttonsSelector: '#textsizer a',
        afterChange: function(){}
    },
    init: function(options){
        
        this.options = jQuery.extend(this.options, options);
        
        var linkTags =  jQuery('link[rel="stylesheet"][title!=""]');
        this.altStylesheetTag = linkTags.get(linkTags.length-1);
        
        for(var i=0; i<linkTags.length; i++){
            var elm = linkTags.get(i);
            this.altStylesheetUrl[elm.title] = elm.href;
        }
        
        var cookie = this.readCookie(this.options.cookieName);
        var title = cookie ? cookie : this.options.defaultStyleName;
        this.setActiveStyleSheet(title);
        
        this.initButtons();
        
    },
    initButtons: function(){
        var self = this;
        jQuery(this.options.buttonsSelector).each(function(){
            var elm = this;
            elm.href='javascript:void(0)';
            jQuery(elm).bind('click', function(){
                self.setActiveStyleSheet(elm.rel);
            });
        });
        
    },
    setActiveStyleSheet: function(title) {
    
        if (typeof(this.altStylesheetUrl[title]) == 'undefined') return;
        
        this.altStylesheetTag.href = this.altStylesheetUrl[title];
        this.altStylesheetTag.disabled = false;  
        
        this.createCookie(this.options.cookieName, title, 365);
        
        var typeOfAfterChange = typeof(this.options.afterChange);
        if (typeOfAfterChange.toLowerCase() == 'function') this.options.afterChange.apply();
        
    },
    createCookie: function(name,value,days) {
        if (days) {
            var date = new Date();
            date.setTime(date.getTime()+(days*24*60*60*1000));
            var expires = "; expires="+date.toGMTString();
        } else expires = "";
        document.cookie = name+"="+value+expires+"; path=/";
    },
    readCookie: function(name) {
        var nameEQ = name + "=";
        var ca = document.cookie.split(';');
        for(var i=0;i < ca.length;i++) {
            var c = ca[i];
            while (c.charAt(0)==' ') c = c.substring(1,c.length);
            if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
        }
        return null;
    }    
    
};

jQuery(document).ready(function(){
    fontSizeSwitcher.init({
        afterChange: function(){
          if (typeof(ratingModule) == 'object') {
            ratingModule.initCommentItemSwitchs();
          }            
        }
    });
});
