maxFontLimit = 148;
minFontLimit = 60;
elementsInited = false;
maxFontSize = null;
minFontSize = null;
pageId = 'wrapper';
pageElem = null;
bigFontImgId = 'icon_font_big';
smallFontImgId = 'icon_font_small';
smallFontButton = null;
bigFontButton = null;
bigFontImg = null;
smallFontImg = null;

imgDir = "/images/";
imgExt = ".gif";
imgOn = "2";
imgOff = "2off";


function resizeUp(ref) {
	
	if(bigFontButton == null) { bigFontButton = ref; }
	if(elementsInited == false) { initElements(); }
	

	if(!pageElem.style.fontSize){
		pageElem.style.fontSize = getInitialFontSize (5);
	} else {
		var str_fontsize = pageElem.style.fontSize;
		var num_fontsize = str_fontsize.substring(0,str_fontsize.length-1);
		var num_newsize = Number(num_fontsize) + 5;
		if(num_newsize > minFontSize) {
			if(smallFontButton != null) { smallFontButton.onclick = resizeDown; }
			if(smallFontImg != null) { smallFontImg.src =  imgDir + smallFontImgId + imgOn + imgExt; }
		}
		//alert(num_newsize + '%');
		pageElem.style.fontSize = num_newsize + '%';
		if(num_newsize > maxFontLimit) {
			maxFontSize = num_newsize;
			bigFontButton.onclick = null;
			bigFontImg.src = imgDir + bigFontImgId + imgOff + imgExt;
		 }
	}
}

function resizeZero(ref) {
	pageElem.style.fontSize = '80%';
}

function resizeDown(ref) {
	if(smallFontButton == null) { smallFontButton = ref; }
	if(elementsInited == false) { initElements(); }
	
	if(!pageElem.style.fontSize){
		pageElem.style.fontSize = getInitialFontSize (-5);
	} else {
		var str_fontsize = document.getElementById('wrapper').style.fontSize;
		var num_fontsize = str_fontsize.substring(0,str_fontsize.length-1);
		//alert(num_fontsize);
		var num_newsize = Number(num_fontsize) - 5;
		if(num_newsize < maxFontSize) {
			if(bigFontButton != null) { bigFontButton.onclick = resizeUp; }
			if(bigFontImg != null) { bigFontImg.src =  imgDir + bigFontImgId + imgOn + imgExt; }
		}
		pageElem.style.fontSize = num_newsize + '%';
		if(num_newsize < minFontLimit) {
			minFontSize = num_newsize;
			smallFontButton.onclick = null;
			smallFontImg.src = imgDir + smallFontImgId + imgOff + imgExt;
		} else {
			//alert(num_newsize);

		}
	}
}


function getStyle (elem,name) {
	if(elem.style[name]) {
		return elem.style[name];
		
	} else if (elem.currentStyle) {
		return elem.currentStyle[name];
		
	} else if (document.defaultView && document.defaultView.getComputedStyle) {
		name = name.replace(/([A-Z])/g, "-$1");
		name = name.toLowerCase();
		var s = document.defaultView.getComputedStyle(elem,"");
		return s && s.getPropertyValue(name);
		
	} else {
		return null;
	}
	
}

function getInitialFontSize (incr) {
	var bodyFontSizeStr = getStyle(document.body,"fontSize");
	var wrapperFontSizeStr = getStyle(pageElem,"fontSize");
	var bodyFontSize = getNumericValue(bodyFontSizeStr);
	var wrapperFontSize = getNumericValue(wrapperFontSizeStr);
	
	var fontSize = String(parseInt((wrapperFontSize/bodyFontSize*100) + incr) + "%");
	
	return fontSize;
}

function initElements () {
	if(pageElem == null) {  pageElem = document.getElementById(pageId); }
	if(bigFontImg == null) { bigFontImg = document.getElementById(bigFontImgId); }
	if(smallFontImg == null) { smallFontImg = document.getElementById(smallFontImgId); }
	elementsInited = true;
}


function getNumericValue(stringValue) {
	if(stringValue.charAt(stringValue.length-1) == "%") { 
		stringValue = stringValue.substring(0,stringValue.length-1);
	} else {
		stringValue = stringValue.substring(0,stringValue.length-2);
	}
	var numValue = Number(stringValue);	
	return numValue;
}
