var FontSwitcher = {
    startSize: 13,
    increment: 1,
    unitType: 'px',
	fontSize: null,
	toolbar: null,
	increaseElement: null,
	decreaseElement: null,
	
	init: function(){
		var self = FontSwitcher;
        self.makeToolbar();		
		
		if (Core.getCookie('fontSize')) {
			self.fontSize = Core.getCookie('fontSize');
			document.body.style.fontSize = self.fontSize + self.unitType;
		} else {
			self.fontSize = self.startSize;
			document.body.style.fontSize = self.fontSize+self.unitType;
			Core.setCookie('fontSize', self.fontSize, 100);
		}
		
		Core.addEventListener(self.increaseElement, "click", self.increaseSize);
		Core.addEventListener(self.decreaseElement, "click", self.decreaseSize);
		Core.addEventListener(self.increaseElement, "mouseover", self.hoverListener);
		Core.addEventListener(self.decreaseElement, "mouseover", self.hoverListener);
		Core.addEventListener(self.increaseElement, "mouseout", self.unHoverListener);
		Core.addEventListener(self.decreaseElement, "mouseout", self.unHoverListener);
	},
	
	makeToolbar: function(){
		var self = FontSwitcher;
		var increase = document.createElement("img");
		var decrease = document.createElement("img");
		increase.setAttribute('src', '/images/icons/fontsizeup.png');
		increase.setAttribute('alt', 'Increase Font Size');
		increase.setAttribute('id', 'plusFont');
		decrease.setAttribute('src', '/images/icons/fontsizedown.png');
		decrease.setAttribute('alt', 'Decrease Font Size');
		decrease.setAttribute('id', 'minusFont');
		self.toolbar = document.getElementById("toolbar");
		self.toolbar.appendChild(decrease);
		self.toolbar.appendChild(increase);
		self.increaseElement = increase;
		self.decreaseElement = decrease;
	},
	
	increaseSize: function(){
		var self = FontSwitcher;
		
		if(self.fontSize >= 20){ 
			alert('You have reached the maxiumum supported font size. You can not make the font size any larger.');
			return;
		}
		
		self.fontSize = parseFloat(self.fontSize) + parseFloat(self.increment);
		document.body.style.fontSize = self.fontSize + self.unitType;
		Core.setCookie('fontSize', self.fontSize, 100);
	},
	
	decreaseSize: function(){
		var self = FontSwitcher;
		
		if(self.fontSize <= 8){
			alert('You have reached the minimum supported font size. You can not make the font size any smaller.');
			return;
		}
		
		self.fontSize = parseFloat(self.fontSize) - parseFloat(self.increment);
		document.body.style.fontSize = self.fontSize + self.unitType;
		Core.setCookie('fontSize', self.fontSize, 100);
	},
	
	resetSize: function(){
		var self = FontSwitcher;
		
		self.fontSize = self.startSize;
		document.body.style.fontSize = self.fontSize + self.unitType;
		Core.setCookie('fontSize', self.fontSize, 100);
	},
	
	hoverListener: function(){
		Core.addClass(this, 'hover');
	},
	
	unHoverListener: function(){
		Core.removeClass(this, 'hover');
	}
}
Core.start(FontSwitcher);
