/**
 * User Friendly js 
 * @author      Frank van Noorden <fnoorden@gmail.com> 
 * @license     will be released under the same LICENSE as symfony
 * @version     0.0.1
 */


var currentFontSize;
var currentLineSize;

/**
 * addLoadEvent: Add event handler to body when window loads 
 */
// Multiple onload function created by: Simon Willison
// http://simon.incutio.com/archive/2004/05/26/addLoadEvent

function addLoadEvent(func) {
    var oldonload = window.onload;

    if (typeof window.onload != "function") {
        window.onload = func;
    } else {
        window.onload = function () {
            oldonload();
            func();
        }
    }
}




function changeLineSize(Linerulename, newSize) {
    if (newSize == 'plus') {
        var rule = getCSSRule(Linerulename);
        currentLineSize = parseInt(rule.style.lineHeight) + 6;
        
    }

    if (newSize == 'min') {
        var rule = getCSSRule(Linerulename);
        currentLineSize = parseInt(rule.style.lineHeight) - 6;
    }

    if (newSize == 'std') {
        currentLineSize = 12;
    }

    if (currentLineSize > 80) {
        currentLineSize = 80;
    } else if (currentLineSize < 4) {
    currentLineSize = 4;
    
    }

    if (newSize == 'std') {
        window.location = document.location.href;
    } else {
    setLineSize(Linerulename, currentLineSize);
    }
}

function setLineSize(LineruleName, newLineSize) {
    var rule = getCSSRule(LineruleName);
    rule.style.lineHeight = newLineSize + 'px';
}


/**
 * changeFontSize: Change font size
 */
function changeFontSize(rulename, newSize){
    if (newSize == 'plus') {
        var rule = getCSSRule(rulename);
        currentFontSize = parseInt(rule.style.fontSize) + 2;
             
        }

        if (newSize == 'min') {
            var rule = getCSSRule(rulename);
            currentFontSize = parseInt(rule.style.fontSize) - 2;
        }
        
        if (newSize == 'std') {
            currentFontSize = 12;
        }

	if(currentFontSize > 70){
	currentFontSize = 70;
	}else if(currentFontSize < 2){
	currentFontSize = 2;
	}

	if(newSize == 'std'){
		window.location = document.location.href;
	}else{
		setFontSize(rulename, currentFontSize);
}

}

/**
 * setFontSize: Set font size 
 */
function setFontSize(ruleName, newFontSize){
    var rule = getCSSRule(ruleName);
    rule.style.fontSize = newFontSize + 'px';
}



/**
 * getCSSRule: Get the CSS rule
 */
function getCSSRule(ruleName) { 
	ruleName=ruleName.toLowerCase(); 
	if (document.styleSheets) { 
		for (var i=0; i<document.styleSheets.length; i++) { 
			var styleSheet=document.styleSheets[i]; 
			var ii=0; 
			var cssRule=false; 
			do { // For each rule in the stylesheet
				if (styleSheet.cssRules) { 
					cssRule = styleSheet.cssRules[ii]; // Mozilla
				} else { 
					cssRule = styleSheet.rules[ii]; // IE style 
				} 
				if (cssRule) { // Rule found
				    if (cssRule.selectorText.toLowerCase() == ruleName) {
							return cssRule; // Return the style object
					} // End found rule name
				} // end found cssRule
				ii++; 
			} while (cssRule) // end Do While loop
		} // end For loop
	} // end styleSheet ability check
	return false; // Nothing found
} // end getCSSRule 

