/*Utility functions*/
function addEvent(obj, eventType, fn){
  if( eventType === "load" ) {
  	loadEventList.addLoadEvent(fn);
  	return true;
  }     
  if (obj.addEventListener){
    obj.addEventListener(eventType, fn, false);
    return true;
  } else if (obj.attachEvent){
	var r = obj.attachEvent("on"+eventType, fn);
    return r;
  } else {
	return false;
  }
}
var loadEventList = [];
loadEventList.addLoadEvent = function( fn ) {
	loadEventList[ loadEventList.length ] = fn;
}
loadEventList.fireLoadEvents = function() {
	for(var i=0; i<loadEventList.length; i++) {
		loadEventList[i]();
	}
}
if(/WebKit/i.test(navigator.userAgent)) { 
	var _timer = setInterval(function() {
		if (/loaded|complete/.test(document.readyState)) {
			clearInterval(_timer);
			loadEventList.fireLoadEvents(); 
		}
	}, 100);
} else if (document.addEventListener) {
	document.addEventListener("DOMContentLoaded", loadEventList.fireLoadEvents, false);
} else {
  // IE HACK
/*@cc_on @*/
/*@if (@_win32)
document.write("<script id='__ie_onload' defer='defer' src='//:'><\/script>");
var script = document.getElementById("__ie_onload");
script.onreadystatechange = function() {
	if (this.readyState == "complete") {
		loadEventList.fireLoadEvents(); // call the onload handler
	}
};
/*@end @*/
}
addEvent(window, "load", fontSizer);
addEvent(window, "load", setFontSize);
function fontSizer()
{
	if (!document.getElementById) return false;
	if(document.getElementById('larger') && document.getElementById('smaller'))  {
		var increase=document.getElementById('larger');
		var decrease=document.getElementById('smaller');
		increase.style.display="block";
		decrease.style.display="block";
		var myDate= new Date();
		expires=myDate.getFullYear()+1
		myDate.setFullYear(expires);
		expires='; expires='+myDate.toGMTString();
		increase.onclick= function() {
			if (document.getElementsByTagName('body')[0].style.fontSize)  {
				var currentSize=document.getElementsByTagName('body')[0].style.fontSize;
				
				currentSize=currentSize.match(/([0-9]+)/);
				currentSize=(Number(currentSize[0])+10)+'%';

			}else{//no calculated font size so we are just starting
				var currentSize='110%';
			}
			document.getElementsByTagName('body')[0].style.fontSize=currentSize;
			document.cookie="fontSize="+currentSize+expires;
			return false;
		}
		decrease.onclick= function() {
			//get the calculated font-size
			if (document.getElementsByTagName('body')[0].style.fontSize)  {
				var currentSize=document.getElementsByTagName('body')[0].style.fontSize;
				currentSize=currentSize.match(/([0-9]+)/);
				currentSize=(Number(currentSize[0])-10);
				if (currentSize<60) currentSize=60;
				currentSize=currentSize+'%';
			}else{//no calculated font size so we are just starting
				var currentSize='90%';
			}
			document.getElementsByTagName('body')[0].style.fontSize=currentSize;
			document.cookie="fontSize="+currentSize+expires;
			return false;
		}
	}
}
function setFontSize ()  {
	var cookies=document.cookie;
	var cookieList=cookies.split(';');
	var fontSize='';

	for ( var i=0; i<cookieList.length; i++)  {
		if (cookieList[i].match('fontSize')) fontSize=cookieList[i];
	}
		if (fontSize)  {	
			fontSize=fontSize.match((/([0-9]+\%)/))[0];
			document.getElementsByTagName('body')[0].style.fontSize=fontSize;
		}
}
// ---------------------- font-sizer.js ends here -----------------------------
// ----------------- textresizedetector.js starts here ------------------------
TextResizeDetector = function() { 
    var el  = null;
	var iIntervalDelay  = 200;
	var iInterval = null;
	var iCurrSize = -1;
	var iBase = -1;
 	var aListeners = [];
 	var createControlElement = function() {
	 	el = document.createElement('span');
		el.id='textResizeControl';
		el.innerHTML='&nbsp;';
		el.style.position="absolute";
		el.style.left="-9999px";
		var elC = document.getElementById(TextResizeDetector.TARGET_ELEMENT_ID);
		if (elC)
			elC.insertBefore(el,elC.firstChild);
		iBase = iCurrSize = TextResizeDetector.getSize();
 	};

 	function _stopDetector() {
		window.clearInterval(iInterval);
		iInterval=null;
	};
	function _startDetector() {
		if (!iInterval) {
			iInterval = window.setInterval('TextResizeDetector.detect()',iIntervalDelay);
		}
	};
 	 function _detect() {
 		var iNewSize = TextResizeDetector.getSize();
		
 		if(iNewSize!== iCurrSize) {
			for (var 	i=0;i <aListeners.length;i++) {
				aListnr = aListeners[i];
				var oArgs = {  iBase: iBase,iDelta:((iCurrSize!=-1) ? iNewSize - iCurrSize + 'px' : "0px"),iSize:iCurrSize = iNewSize};
				if (!aListnr.obj) {
					aListnr.fn('textSizeChanged',[oArgs]);
				}
				else  {
					aListnr.fn.apply(aListnr.obj,['textSizeChanged',[oArgs]]);
				}
			}
 		}
 		return iCurrSize;
 	};
	var onAvailable = function() {
		
		if (!TextResizeDetector.onAvailableCount_i ) {
			TextResizeDetector.onAvailableCount_i =0;
		}

		if (document.getElementById(TextResizeDetector.TARGET_ELEMENT_ID)) {
			TextResizeDetector.init();
			if (TextResizeDetector.USER_INIT_FUNC){
				TextResizeDetector.USER_INIT_FUNC();
			}
			TextResizeDetector.onAvailableCount_i = null;
		}
		else {
			if (TextResizeDetector.onAvailableCount_i<600) {
	  	 	    TextResizeDetector.onAvailableCount_i++;
				setTimeout(onAvailable,200)
			}
		}
	};
	setTimeout(onAvailable,500);
 	return {
		 	init: function() {
		 		
		 		createControlElement();		
				_startDetector();
 			},
 			addEventListener:function(fn,obj,bScope) {
				aListeners[aListeners.length] = {
					fn: fn,
					obj: obj
				}
				return iBase;
			},
 			detect:function() {
 				return _detect();
 			},
 			getSize:function() {
	 				var iSize;
			 		return el.offsetHeight; 		
 			},
 			stopDetector:function() {
				return _stopDetector();
			},
 			startDetector:function() {
				return _startDetector();
			}
 	}
 }();

TextResizeDetector.TARGET_ELEMENT_ID = 'doc';
TextResizeDetector.USER_INIT_FUNC = null;
// ------------------ textresizedetector.js ends here -------------------------
// ------------------- textresizeinit.js starts here --------------------------
 	function init()  {
	   var iBase = TextResizeDetector.addEventListener(onFontResize,null);
	   var bodyTag = document.getElementById('wrapper');
	   if(bodyTag)  {
		   if (iBase>27)  {
				bodyTag.className='large-type';
			}
		}
	}
	TextResizeDetector.TARGET_ELEMENT_ID = 'wrapper';
	TextResizeDetector.USER_INIT_FUNC = init;
		function onFontResize(e,args) {
			var bodyTag = document.getElementById('wrapper');
			if(bodyTag){
				if (args[0].iSize>27)  {
					bodyTag.className='large-type';
				}
				if (args[0].iSize<26)
				{
					bodyTag.className='';
				}
			}
		}
