// JavaScript Document
function chgFontSize(increase){
	var i= 1;
	var fntScalableObj = document.getElementById('fntScalableContainer_'+i);
	while(fntScalableObj != null){
		var fntScaleOptAttr = getFntScalableOptionsAttr(fntScalableObj);
		var vIgnoredClasses = Array();
		if(fntScaleOptAttr != null){
			vFntScaleOptions = getFntScaleOptions(fntScaleOptAttr.value);
			for(var j=0; j < vFntScaleOptions['tags'].length; j++){
				var tagName = jtrim(vFntScaleOptions['tags'][j]);
				vObjs = fntScalableObj.getElementsByTagName(tagName);
				for(var k=0; k < vObjs.length; k++){
					var proceed = true;
					//Search for ignored classes
					if(vFntScaleOptions['ignoredclasses'] != null){
						for(var l=0; l < vFntScaleOptions['ignoredclasses'].length; l++){
							var igClassName = jtrim(vFntScaleOptions['ignoredclasses'][l]);
							if(vObjs[k].className.match(igClassName)){
								proceed = false;
								break;
							}
						}
					}
					//Search for ignored Id's
					if(vFntScaleOptions['ignoredids'] != null){
						for(var m=0; m < vFntScaleOptions['ignoredids'].length; m++){
							var igId = jtrim(vFntScaleOptions['ignoredids'][m]);
							if(vObjs[k].id.match(igId)){
								proceed = false;
								break;
							}
						}
					}
					if(proceed){
						if(increase)
							increaseFontSize(vObjs[k]);	
						else
							decreaseFontSize(vObjs[k]);
					}
				}
			}
		}
		i++;
		fntScalableObj = document.getElementById('fntScalableContainer_'+i);
	}
}

function fntBigger(){
	chgFontSize(true);
}

function fntSmaller(){
	chgFontSize(false);
}

var DEFAULT_FSIZE_MIN_H2 = 20;
var DEFAULT_FSIZE_MAX_H2 = 30;
var DEFAULT_FSIZE_MIN_H3 = 18;
var DEFAULT_FSIZE_MAX_H3 = 28;
var DEFAULT_FSIZE_MIN_SPAN = 11;
var DEFAULT_FSIZE_MAX_SPAN = 18;
var DEFAULT_FSIZE_MIN_DIV = 11;
var DEFAULT_FSIZE_MAX_DIV = 18;
var DEFAULT_FSIZE_MIN_P = 11;
var DEFAULT_FSIZE_MAX_P = 18;

function increaseFontSize(dom_obj, vTags){
	if (dom_obj.currentStyle)
		var fsize = dom_obj.currentStyle['fontSize'];
	else if (window.getComputedStyle)
		var fsize = document.defaultView.getComputedStyle(dom_obj,null).getPropertyValue('font-size');
		
	fsize = parseFloat('0' + fsize.replace('px',''));
	if(fsize == 0)
		fsize = eval('DEFAULT_FSIZE_MIN_' + dom_obj.tagName);
		
	var maxSize = eval('DEFAULT_FSIZE_MAX_' + dom_obj.tagName);
	if(fsize + 1 <= maxSize)
		dom_obj.style.fontSize = (fsize + 1) + 'px';
}

function decreaseFontSize(dom_obj, vTags){
	if (dom_obj.currentStyle)
		var fsize = dom_obj.currentStyle['fontSize'];
	else if (window.getComputedStyle)
		var fsize = document.defaultView.getComputedStyle(dom_obj,null).getPropertyValue('font-size');
		
	fsize = parseFloat('0' + fsize.replace('px',''));
	if(fsize == 0)
		fsize = eval('DEFAULT_FSIZE_MAX_' + dom_obj.tagName);
		
	var minSize = eval('DEFAULT_FSIZE_MIN_' + dom_obj.tagName);
	if(fsize - 1 >= minSize)
		dom_obj.style.fontSize = (fsize - 1) + 'px';
}

function getFntScalableOptionsAttr(fnt_scalable_obj){
	var vAttrs = fnt_scalable_obj.attributes;
	if(vAttrs == null) return null;
	for(var i=0; i < vAttrs.length; i++)
		if(vAttrs[i].name.toLowerCase() == 'fntscaleopt')
			return vAttrs[i];
	return null;
}

function getFntScaleOptions(fnt_scale_optAttr_values){
	var vFntScaleOptionsValues = fnt_scale_optAttr_values.split(';');
	var fntScaleOptions = new Array();
	
	for(var i=0; i < vFntScaleOptionsValues.length; i++){
		vOption = vFntScaleOptionsValues[i].split(':');
		if(jtrim(vOption[0]).toLowerCase() == 'ignoredclasses'){
			fntScaleOptions['ignoredclasses'] = vOption[1].split(',');
		}
		if(jtrim(vOption[0]).toLowerCase() == 'ignoredids'){
			fntScaleOptions['ignoredids'] = vOption[1].split(',');
		}
		if(jtrim(vOption[0]).toLowerCase() == 'tags'){
			fntScaleOptions['tags'] = vOption[1].split(',');
		}
	}

	return fntScaleOptions;
}