
var fontProperty = {
	"Font-Small" : '50%',
	"Font-Medium" : '60%',
	"Font-Large" : '68%'
};

var activeFontSize = "Font-Medium";

var buttonTagName = 'IMG';




var isSafari = (navigator.userAgent.match(/AppleWebKit/))? true : false;


function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function setFontSize( size ){
	var el = document.getElementsByTagName('BODY')[0];

	// setStyle( el, { fontSize : fontProperty[size] } );
	addStyleRule('body#ir', "font-size: " + fontProperty[size] + " !important;", 0 );

	activeFontSize = size;
	createCookie("fontSize", size, 365);
}


function addStyleRule( selector, property, sheetindex, ruleindex ) {
	if( sheetindex == undefined ) sheetindex = 0;
	var sheet = document.styleSheets[ sheetindex ];

	if( sheet.insertRule && !isSafari ) { //Mozilla
		if( ruleindex == undefined ) ruleindex = sheet.cssRules.length;
			return sheet.insertRule( selector + "{" + property + "}", ruleindex );
	}
	else if( sheet.addRule && !isSafari ) { //IE
		if( ruleindex == undefined ) ruleindex = sheet.rules.length;
		sheet.addRule( selector, "{" + property + "}", ruleindex );
		return ruleindex;
	}
	else {
		console.log("here");
		var styleRule = selector + " {" + property + "}";
		var h = document.getElementsByTagName('head');
		var s = document.createElement('style');
		s.setAttribute( 'type', 'text/css' );
		var cssNode = document.createTextNode(styleRule);
		s.appendChild(cssNode);
		h[0].appendChild(s);
		return ruleindex;
	}

	return null;
}


function setStyle( el, styles ){
	if(!el) return;
	for( var key in styles ){
		el.style[key] = styles[key];
	}
}


function isFontProperty( p ){
	for( var fp in fontProperty ){
		if(fp==p) return true;
	}
	return false;
}



var buttons = [];

function registButton( el, classname ){
	var btn = new Object();
	btn.src = el.src;
	btn.filetype = btn.src.substring(btn.src.lastIndexOf('.'));
	btn.basename = btn.src.substring(0, btn.src.length-btn.filetype.length);
	btn.onsrc = btn.basename + "_on" + btn.filetype;

	el.offsrc = btn.src;
	el.onsrc  = btn.onsrc;
	//buttons.push( el );
	buttons[buttons.length] = el;

	EventManager.addEvent( el, 'click', function(){
					setFontSize( classname );
					setActiveButton( classname );
					buttonOff();
	}, false );
	EventManager.addEvent( el, 'mouseover', function(){ swapImage( el, "on" ); }, false );
	EventManager.addEvent( el, 'mouseout',  function(){
					buttonOff();
					if( classname != activeFontSize )
						el.src = el.offsrc;
	}, false );
}
function buttonOff(){
	var className = ( document.all && !window.opera  )? 'className' : 'class';
	for( var i=0; i<buttons.length; i++ ){
		if( buttons[i].getAttribute(className) != activeFontSize )
			buttons[i].src = buttons[i].offsrc;
	}
}
function setActiveButton( size ){
	var className = ( document.all && !window.opera  )? 'className' : 'class';
	for( var i=0; i<buttons.length; i++ ){
		if( buttons[i].getAttribute(className) == size ){
			buttons[i].src = buttons[i].onsrc;
		}
	}
}
function preloadImages(){
	if(!document.images) return;
	var ret = [];
	for( var i=0; i<buttons.length; i++ ){
		(new Image()).src = buttons[i].onsrc;
		ret[ret.length] = buttons[i].onsrc;
	}
}
function swapImage( obj, status ){
	if( !obj || !obj[status+"src"] ) return;
	obj.src = obj[status+"src"];
}


function init(){
	if(!document.getElementById) return;
	
	var fs = readCookie("fontSize");
	if(fs) setFontSize(fs);
	else setFontSize(activeFontSize);
	
	var sw = document.getElementsByTagName(buttonTagName);
	var className = ( document.all && !window.opera  )? 'className' : 'class';
	
	for( var i=0; i<sw.length; i++ ){
		if(!sw[i].getAttribute(className))
			continue;
		var cns = sw[i].getAttribute(className).split(/\s+/);
		for(var j=0; j<cns.length; j++){
			if( isFontProperty(cns[j]) ){
				registButton( sw[i], cns[j] );
			}
		}
	}
	preloadImages();
	setActiveButton( activeFontSize );
}




EventManager.addEvent( window, 'load', init, false );
EventManager.addEvent( window, 'unload', function(){
	createCookie("fontSize", activeFontSize, 365);
}, false );

