function getCookie(n) {
  var ck=document.cookie;
  var start=ck.indexOf(n+'=');
  var len=start+n.length+1;
  if((!start && n!=ck.substring(0,n.length)) || start<0) return null;
  var end = ck.indexOf(';',len);
  if(end<0) end=ck.length;
  return unescape(ck.substring(len,end));
}

function setCookie(n,v,e,p,d,s) {
  var t=new Date();t.setTime(t.getTime());
  if(e) e=e*1000*60*60*24;
  var ed=new Date(t.getTime()+e);
  document.cookie=n+'='+escape(v)+(e?';expires='+ed.toGMTString():'')+(p?';path='+p:'')+(d?';domain='+d:'')+(s?';secure':'');
}

function setFontSize(dir) {
  var size=100;
  switch(dir) {
  case -2: size='60.0'; break;
  case -1: size='80.0'; break;
  case 0: size='100.1'; break;
  case 1: size='130.0'; break;
  case 2: size='150.0'; break;
  }
  setCookie('fontSize',parseInt(dir));
  document.body.style.fontSize=size+'%';
}

function increaseFontSize(){
	var current = getCookie('fontSize');
	if (current == null)
		current = 0
	var fontSize = parseInt(current);
	if ((fontSize + 1) > 2)
		alert("Maximum font size reached.");
	else
		setFontSize(fontSize + 1);
}

function decreaseFontSize(){
	var current = getCookie('fontSize');
	if (current == null)
		current = 0
	var fontSize = parseInt(current);
	if ((fontSize - 1) < -2)
		alert("Minimum font size reached.");
	else
		setFontSize(fontSize - 1);
}

function addEvent( obj, type, fn ) {
  if ( obj.attachEvent ) {
    obj['e'+type+fn] = fn;
    obj[type+fn] = function(){obj['e'+type+fn]( window.event );}
    obj.attachEvent( 'on'+type, obj[type+fn] );
  } else
    obj.addEventListener( type, fn, false );
}

function removeEvent( obj, type, fn ) {
  if ( obj.detachEvent ) {
    obj.detachEvent( 'on'+type, obj[type+fn] );
    obj[type+fn] = null;
  } else
    obj.removeEventListener( type, fn, false );
}

function initFramework() {
	var fontSize = getCookie('fontSize');
	setFontSize(fontSize != null && fontSize != 'NaN' ? parseInt(fontSize) : 0);
}
