/* Text changer - light version.
Let your text's font size customizable.
by Marco Rosella - http://www.centralscrutinizer.it/en/design/js-php/text-changer
                v0.2 - May 18, 2006
*/
window.onload = function(){
	textChanger.init(); 	
}

var textChanger = {
	cpanel : 'textchanger',  //set here the id of the element (div, p) within you want to insert the control panel
	element : 'content',   	 //set here the id of the element (div, p) within you want to change the text
	defaultFS : 1.0,         //set here the default font size in 'em'
	init: function() {
		var cpel = document.getElementById(textChanger.cpanel);
		var el = document.getElementById(textChanger.element);
		if (cpel == null || el == null) {alert('The elements with the \"'+textChanger.cpanel+'\" and/or \"'+textChanger.element+'\" ID do not exist in HTML source.');} else {
		var u = document.createElement('span');
		cpel.appendChild(u);
		u.innerHTML ='<ul class="textsize">'+
			'<li class="poHd">Set text Size:</li>'+
			'<li><a class="poAsm" id="decrease" href="#">A<sup>-</sup></a></li>'+
			'<li><a class="poAmd" id="defaults" href="#">A<sup>0</sup></a></li>'+
			'<li><a class="poAlg" id="increase" href="#">A<sup>+</sup></a></li>'+
			'</ul>';
		var sz = textChanger.getCookie();
		el.style.fontSize = sz ? sz + 'em' : textChanger.defaultFS + 'em';
		var incr = document.getElementById('increase');
		incr.onclick = function(){textChanger.changeSize(1); return false;};
		var decr = document.getElementById('decrease');
		decr.onclick = function(){textChanger.changeSize(0); return false;};
		var decr = document.getElementById('defaults');
		decr.onclick = function(){textChanger.changeSize(2); return false;};
		}
	} ,

	changeSize: function(val) {
		var el = document.getElementById(textChanger.element);
		var size = el.style.fontSize.substring(0,3);
		var fSize = parseFloat(size,10);
		switch (val) {
			case 2:
			fSize = 1.0;
			textChanger.delete_cookie();
			break;
			case 1:
			fSize += 0.11;
			if (fSize > 1.8) fSize = 1.8;
			break;
			case 0:
			fSize -= 0.11;
			if (fSize < 0.8) fSize = 0.8;
			break;
		}
		el.style.fontSize = fSize + 'em';
		textChanger.updateCookie(fSize);
		} ,
		
	updateCookie: function(vl) {
		var today = new Date();
		var exp = new Date(today.getTime() + (365*24*60*60*1000)); //the cookie will expire in one year  
		document.cookie = 'textChangerL=size=' + vl + ';' +'expires=' + exp.toGMTString() + ';' +'path=/';
	} ,

	getCookie: function() { 
		var cname = 'textChangerL=size=';	
		var start = document.cookie.indexOf(cname);
		var len = start + cname.length;
		if ((!start) && (cname != document.cookie.substring(0,cname.length))) {return null;}
		if (start == -1) return null;
		var end = document.cookie.indexOf(";",len);
		if (end == -1) end = document.cookie.length;
		return unescape(document.cookie.substring(len, end));
	} ,
	
	delete_cookie: function()	{
		var cname = 'textChangerL=size=';	
  	var cookie_date = new Date ( );  // current date & time
  	cookie_date.setTime ( cookie_date.getTime() - 1 );
  	document.cookie = cname += "; expires=" + cookie_date.toGMTString();
	}
}