/*
 * Ninechan JavaScript Backend
 * By Flashwave <http://flash.moe>
 * Distributed under the MIT-License
 */
 
var ninechan = {
    
    // Variables
    cookiePrefix: null,
    
    // Initialise ninechan.js
    init: function() {
        if(this.cookieData('get', this.cookiePrefix + 'style') == "")
            this.setStyle(this.getMainStyle());
        else
            this.setStyle(this.cookieData('get', this.cookiePrefix + 'style'));
    },
    
    // Get or set cookie data
    cookieData: function(action, name, data) {
        switch(action) {
            case 'get':
                return (result = new RegExp('(^|; )' + encodeURIComponent(name) + '=([^;]*)').exec(document.cookie)) ? result[2] : '';
                    
            case 'set':
                document.cookie = name + '=' + data;
                return;
                
            default:
                return;
        }
    },
    
    // Get the main style
    getMainStyle: function() {
        var i, a;
        
        for(i = 0; (a = document.getElementsByTagName('link')[i]); i++) {
            if(
                a.getAttribute('rel').indexOf('style') != -1 &&
                a.getAttribute('rel').indexOf('alt') == -1 &&
                a.getAttribute('title')
            )
                return a.getAttribute('title');
        }
        
        return null;
    },
    
    // Get the current active style
    getActiveStyle: function() {
        var i, a;
        
        for(i = 0; (a = document.getElementsByTagName('link')[i]); i++) {
            if(
                a.getAttribute('rel').indexOf('style') != -1 &&
                a.getAttribute('title') &&
                !a.disabled
            )
                return a.getAttribute('title');
        }
        
        return null;
    },
    
    // Set a style
    setStyle: function(title) {
        var i, a, t;
        
        t = false;
        
        this.cookieData('set', this.cookiePrefix + 'style', title);
        
        for(i = 0; (a = document.getElementsByTagName('link')[i]); i++) {
            if(
                a.getAttribute('rel').indexOf('style') != -1 &&
                a.getAttribute('title')
            ) {
                a.disabled = (a.getAttribute('title') == title) ? false : true;
                t = true;
            }
        }
        
        if(!t && title != null) {
            this.setStyle(this.getMainStyle());
        }
    }
    
}