var fontSizeCount = 0;
var cssFontSize = null;
var cssFontFileName = "cssGeralFonts"; 
var contrastStrength = 30;

function loadAllFontsSize() {
	fontSizeCount = readCookie('fontSizeCount');
	if (fontSizeCount === null) {
		fontSizeCount = 0;
		return;
	}
			
	changeAllFonts(fontSizeCount);
}

function resetAllFonts() {
	eraseCookie('fontSizeCount');
	window.location.reload();
}

function changeAllFonts(val) {
	fontSizeCount = (fontSizeCount+val) % 5;
	
	fontSizeCount = (fontSizeCount<0) ? 0 : fontSizeCount;

	var filename = cssFontFileName + fontSizeCount + ".css";
	
	if (cssFontSize) {
		mHead.removeChild(cssFontSize);
		cssFontSize = null;
	}
		
	cssFontSize = document.createElement("link");
	cssFontSize.setAttribute("rel", "stylesheet")
	cssFontSize.setAttribute("type", "text/css")	
	cssFontSize.setAttribute("href", "Includes/Css/"+filename);
	
	mHead.appendChild(cssFontSize);
		
	createCookie('fontSizeCount', fontSizeCount);
}


var cssFontContrastFileName = "cssGeralContrast"; 
var cssFontContrast = null;
var fontContrastCount = 0;

function loadContrastColor() {
	fontContrastCount = readCookie('fontContrastCount');
	if (fontContrastCount === null) {
		fontContrastCount = 0;
		return;
	}
			
	changeAllContrast(fontContrastCount);
}

function changeAllContrast(val) {
	fontContrastCount = (fontContrastCount+val) % 2;
	
	fontContrastCount = (fontContrastCount<0) ? 0 : fontContrastCount;

	var filename = cssFontContrastFileName + fontContrastCount + ".css";
	
	if (cssFontContrast) {
		mHead.removeChild(cssFontContrast);
		cssFontContrast = null;
	}
		
	cssFontContrast = document.createElement("link");
	cssFontContrast.setAttribute("rel", "stylesheet")
	cssFontContrast.setAttribute("type", "text/css")	
	cssFontContrast.setAttribute("href", "Includes/Css/"+filename);
	
	mHead.appendChild(cssFontContrast);
		
	createCookie('fontContrastCount', fontContrastCount);
}

/*
function loadContrastColor() {
	var colorCookie = readCookie('colorArr');
	if (colorCookie === null)
		return;
	
	colorArr = colorCookie.split(',');

	var ids = document.getElementsByTagName('*');

	var str = "";
	var colorCount = 0;
	var dbgCor = new Array();
	for (i in ids) {
		if (getCSSStyle(ids[i],"color")) {
			var colorCSS = getCSSStyle(ids[i], "color");
            var colorCurrent = cssColor2rgb(colorCSS);
            
            if (!colorCurrent[0] && !colorCurrent[1] || !colorCurrent[2])
            	continue;
			
			var cC = cssColor2rgb(colorArr[colorCount++]);
			
			ids[i].style.color = "rgb("+cC[0]+","+cC[1]+","+cC[2]+")";
			//dbgCor.push(ids[i].style.color);			
		}
	}
	flagCor = true;
}

function addContrastColor() {
	var ids = document.getElementsByTagName('*');

	var str = "";
	var colorCount = 0;
	for (i in ids) {
		if (getCSSStyle(ids[i],"color")) {
			var colorCSS = getCSSStyle(ids[i], "color");
            var colorCurrent = cssColor2rgb(colorCSS);
            
            if (!colorCurrent[0] && !colorCurrent[1] || !colorCurrent[2])
            	continue;

			var hexArr = rgb2h(parseInt(colorCurrent[0]),parseInt(colorCurrent[1]),parseInt(colorCurrent[2]));
			
			if (hexArr[0].length == 1)
				hexArr[0] = "0"+hexArr[0];
			if (hexArr[1].length == 1)
				hexArr[1] = "0"+hexArr[1];
			if (hexArr[2].length == 1)
				hexArr[2] = "0"+hexArr[2];				
																							
			var hexStr = "#"+hexArr[0]+hexArr[1]+hexArr[2];
			colorArr[colorCount++] = hexStr;
            
            var c0=(parseInt(colorCurrent[0])-contrastStrength)%255;
            var c1=(parseInt(colorCurrent[1])-contrastStrength)%255;
            var c2=(parseInt(colorCurrent[2])-contrastStrength)%255;							
			
			if (c0 < 0 || c1 < 0 || c2 < 0) {
				c0 = colorCurrent[0];
				c1 = colorCurrent[1];
				c2 = colorCurrent[2];
			}
			
			ids[i].style.color = "rgb("+c0+","+c1+","+c2+")";
			
		}
	}
	//document.getElementById('divDebug').innerHTML = str;
	flagCor = true;
	createCookie('colorArr',colorArr,30);
	//alert(readCookie('colorArr'));
}

function removeContrastColor() {
	var ids = document.getElementsByTagName('*');

	var str = "";
	var colorCount = 0;
	for (i in ids) {
		if (getCSSStyle(ids[i],"color")) {
			var colorCSS = getCSSStyle(ids[i], "color");
            var colorCurrent = cssColor2rgb(colorCSS);
            
            if (!colorCurrent[0] && !colorCurrent[1] || !colorCurrent[2])
            	continue;

			var hexArr = rgb2h(parseInt(colorCurrent[0]),parseInt(colorCurrent[1]),parseInt(colorCurrent[2]));
			
			if (hexArr[0].length == 1)
				hexArr[0] = "0"+hexArr[0];
			if (hexArr[1].length == 1)
				hexArr[1] = "0"+hexArr[1];
			if (hexArr[2].length == 1)
				hexArr[2] = "0"+hexArr[2];				
																							
			var hexStr = "#"+hexArr[0]+hexArr[1]+hexArr[2];
			colorArr[colorCount++] = hexStr;
            
            var c0=(parseInt(colorCurrent[0])+contrastStrength);
            var c1=(parseInt(colorCurrent[1])+contrastStrength);
            var c2=(parseInt(colorCurrent[2])+contrastStrength);							
			
			//var c0 = (c0 > 255) ? 255 : c0;
			//var c1 = (c1 > 255) ? 255 : c1;
			//var c2 = (c2 > 255) ? 255 : c2;
			
			if (c0 > 220 || c1 > 220 || c2 > 220) {
				c0 = colorCurrent[0];
				c1 = colorCurrent[1];
				c2 = colorCurrent[2];	
			}
			
			ids[i].style.color = "rgb("+c0+","+c1+","+c2+")";
			
		}
	}
	//document.getElementById('divDebug').innerHTML = str;
	flagCor = true;
	createCookie('colorArr',colorArr,30);
	//alert(readCookie('colorArr'));
}
*/
function resetContrastColor() {
	eraseCookie('fontContrastCount');
	window.location.reload();
}
/*
function lowerElemFont(elem, minVal) {
	if (getCSSStyle(elem,"fontSize")) {
        var currentSize = parseInt(getCSSStyle(elem,"fontSize").replace(/px/g, ""));
        var newSize = currentSize;
        
        if ((newSize-1) >= minVal)
        	newSize--;
	       
		elem.style.fontSize = newSize+"px";
		return currentSize;
	}
}

/*
 * References: http://shiriru.blogspot.com/2007/10/javascript-animation-changing-colors-5.html
 */
 /*
function rgb2h(r,g,b) { 
         return [d2h(r),d2h(g),d2h(b)];
}
function h2rgb(h,e,x) {
        return [h2d(h),h2d(e),h2d(x)];
}
function d2h(dec) { 
       return dec.toString(16);
}
function h2d(hex) { 
       return parseInt(hex,16);
}
function cssColor2rgb(color) {
     if(color.indexOf('rgb')<=-1) {
     return h2rgb(color.substring(1,3),color.substring(3,5),color.substring(5,7));
     }
     return color.substring(4,color.length-1).split(',');
}

function getCSSProperty(elem, cssProperty) {
	var mStyle = getCSSStyle(elem); 
	if (mStyle[cssProperty]) {
		return mStyle[cssProperty];
	}
}

function setCSSProperty(elem, cssProperty, newVal) {
	var mStyle = getCSSStyle(elem); 
	if (mStyle[cssProperty]) {
		elem.style[cssProperty] = newVal;
	}
}

function getCSSStyle(elem, cssStyle) {
	if (elem.currentStyle && elem.currentStyle[cssStyle]) {
		return elem.currentStyle[cssStyle];
	}
	else if (document.defaultView) {
		try {
			mStyle = document.defaultView.getComputedStyle(elem,'');
			if (mStyle[cssStyle])
				return mStyle[cssStyle];
		} catch(err) {
			//do nothing
		}
	}
	return false;		
}*/