function getPreferedContrastStylePrefix() {
	var styleCookie = readCookie('style');	
    var style = 'contrast-normal';
    if(styleCookie && styleCookie.indexOf('contrast-') == 0) {
    	style = styleCookie.substring(0,styleCookie.indexOf('-font'));
    }
    return style;
}
function getPreferedFontsizeStylePrefix() {
	var styleCookie = readCookie('style');
    var style = 'font-normal';
    if(styleCookie && styleCookie.indexOf('contrast-') == 0) {
        style = styleCookie.substring(styleCookie.indexOf('font-'));
    }
    return style;
}
function getPreferedStyle() {
	var styleCookie = readCookie('style');
	var style = 'contrast-normal-font-normal';
	if(styleCookie && styleCookie.indexOf('contrast') == 0 && styleCookie.indexOf('font-') > 0) {
		style = styleCookie;
	}
	return style;
}
function toggleContrast() {
   var contrastStylePrefix = getPreferedContrastStylePrefix();
   var fontsizeStylePrefix = getPreferedFontsizeStylePrefix(); 
   
   switch(contrastStylePrefix) {
        case 'contrast-normal':
        setActiveStyleSheet('contrast-black-white-'+fontsizeStylePrefix);
        break;
        case 'contrast-black-white':
        setActiveStyleSheet('contrast-white-black-'+fontsizeStylePrefix);
        break;
        case 'contrast-white-black':
        setActiveStyleSheet('contrast-normal-'+fontsizeStylePrefix);
        break;
    }
}
function toggleFontsize() {
	var fontsizeStylePrefix = getPreferedFontsizeStylePrefix();
    var contrastStylePrefix = getPreferedContrastStylePrefix();
    switch(fontsizeStylePrefix) {
        case 'font-normal':
        setActiveStyleSheet(contrastStylePrefix+'-font-medium');
        break;
        case 'font-medium':
        setActiveStyleSheet(contrastStylePrefix+'-font-large');
        break;
        case 'font-large':
        setActiveStyleSheet(contrastStylePrefix+'-font-normal');
        break;
    }
}
function setActiveStyleSheetByPart(part) {	
	var title;
	if(part.indexOf('font-') == 0) {    	
    	var contrastStylePrefix = getPreferedContrastStylePrefix();
    	title = contrastStylePrefix + '-' + part;
    } else if(part.indexOf('contrast-') == 0 && part.indexOf('font-') == -1) {    	
    	var fontsizeStylePrefix = getPreferedFontsizeStylePrefix();
    	title = part + '-' + fontsizeStylePrefix;
    } else if(part.indexOf('contrast-') == 0 && part.indexOf('font-') > 0) {    	
    	title = part ;
    } else {
    	return null;
    }
    setActiveStyleSheet(title);
}
function setActiveStyleSheet(title) {
    var style = getPreferedStyle();
	var i, a, main;    
    if(title.indexOf('contrast-') == 0 && title.indexOf('font-') > 0) {    
	    for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
	        if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
	            a.disabled = true;
	            if(a.getAttribute("title") == title && a.disabled) {
	                a.disabled = false;	                
	            } else {
	                a.disabled = true;
	            }
	        }
	    }
	    if(title != style) {
        	createCookie("style", title, 365);
        }    
    }
}
function getActiveStyleSheet() {
    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;
}
function createCookie(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=/";
}

function readCookie(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;
}

window.onload = function(e) {
    var cookie = readCookie("style");
    var title = cookie ? cookie : getPreferredStyleSheet();
    setActiveStyleSheet(title);
}


var preferedStyle = getPreferedStyle();
setActiveStyleSheet(preferedStyle);