	function enlargeFontSize(fontSizeChange, framesID){		
		changeFontSize(1, fontSizeChange, framesID);
	}

	function reduceFontSize(fontSizeChange, framesID){		
		changeFontSize(-1, fontSizeChange, framesID);
	}

	function changeFontSize(fontSizeMode, fontSizeChange, framesID){
	//var tagsToChange = new Array("P", "DIV", "SPAN", "TD", "H1", "H2", "H3", "H4", "H5", "H6", "PRE", "FONT", "B", "STRONG", "A", "INPUT");
	var tagsToChange = new Array("P", "DIV", "SPAN", "TD", "H1", "H2", "H3", "H4", "H5", "H6", "PRE", "FONT", "B", "STRONG", "A");

		framesID = getFramesArrayID(framesID);
		
		for(var j=0;j<framesID.length;j++){
			for(var i=0;i<tagsToChange.length;i++){
				changeFontSizeByTagName(fontSizeMode, fontSizeChange, tagsToChange[i], framesID[j]);
			}
		}
	}

	function changeFontSizeByTagName(fontSizeMode, fontSizeChange, tagToChange, frameID){
	var elmentsToCahnge, currentElement, currentFontSize, fontSizeValue, fontSizeType;
	var currentFrame = document;
			
		if(frameID.toLowerCase() != "self" && document.getElementById(frameID) != null)
			currentFrame = document.getElementById(frameID).contentWindow.document;

		if(currentFrame == null) return;
		
		elmentsToCahnge = currentFrame.getElementsByTagName(tagToChange);

		for(var i=0;i<elmentsToCahnge.length;i++){			
			currentElement  = elmentsToCahnge[i];			
			currentFontSize = getCssPropertyValue(currentFrame, currentElement, "fontSize");
			fontSizeType    = getFontSizeType(currentFontSize);

			if(fontSizeType == "em")
				fontSizeValue = parseFloat(parseInt(currentFontSize) + parseFloat(0.3 * fontSizeMode));
			else
				fontSizeValue = parseInt(currentFontSize) + fontSizeChange * fontSizeMode;

			if(fontSizeValue <= 0)															continue;
			if(currentElement.getAttribute("changeFontSize") == "false")					continue;	
			if(getCssPropertyValue(currentFrame, currentElement, "display") == "none")	    continue;
			if(getCssPropertyValue(currentFrame, currentElement, "visibility") == "hidden") continue;

			if(tagToChange.toLowerCase() == "input"){
				currentElement.style.width  = "auto";
				currentElement.style.height = "auto";
			}

			currentElement.style.cssText += ";font-size:" + fontSizeValue + getFontSizeType(currentFontSize) + " !important;";			
		}
	}
	
	function getFontSizeType(fontSize){
		if(fontSize.length - 2 <= 0) return "px";
		return fontSize.substr(fontSize.length -2, 2);
	}
	
	function getCssPropertyValue(currentFrame, currentElement, cssPropertyName){
		if(currentFrame.defaultView != null){
			if(cssPropertyName == "fontSize") cssPropertyName = "font-size";
		}
		
		if(currentFrame.defaultView != null) return currentFrame.defaultView.getComputedStyle(currentElement, null).getPropertyValue(cssPropertyName);
		return currentFontSize = currentElement.currentStyle[cssPropertyName];
	}

	function getFramesArrayID(framesID){
		return ("self|" + framesID).split("|");
	}