﻿var Cookies = {
	add: function(name,value,days) {
		var expires = '';
		if (days) {
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			expires = '; expires='+ date.toGMTString();;
		}
		document.cookie = name+"="+escape(value) + expires+"; path=/";
	},
	remove: function(name) {
		this.add(name, '', -1);
	},
	get: function(name) {
		var results = document.cookie.match ( name + '=([^;]*?)(;|$)' );
		if ( results )
			return ( unescape ( results[1] ) );
		else
			return null;
	}
};

var FontSizer = Base.extend( new function() {
	var cookieName;
	var currentSize;
	var stepSize = 2;
	var maxSize = 20;
	var minSize = 9;
	var baseSize = 12;
	return {
		constructor: function(type, upid, downid, resetid) {
			this.type = type;
			
			cookieName = type+'FontSize';
			var x = Cookies.get(cookieName);
			currentSize = x ? parseInt(x) : baseSize;

			if ( currentSize!=baseSize )
				this.update();
			
			Event.add(upid, 'click', this.increase, this);
			Event.add(downid, 'click', this.decrease, this);
			Event.add(resetid, 'click', this.reset, this);
			FontSizer[type] = this;
			return this;
			
		},
		reset: function(e) { 
			Cookies.remove(cookieName);
			currentSize = 12;
			this.update();
			Event.preventDefault(e);
		},
		update: function() {
			
			Cookies.add(cookieName, currentSize, 7);
			var form = DOM.getElementsByClass(this.type);
			for (var i=0; i < form.length; i++)
			{
			    DOM.setStyle(form[i], 'fontSize', (currentSize/baseSize) +'em');
			}			
		},
		increase: function(e) {

			currentSize = Math.min(currentSize + stepSize, maxSize);
			this.update();
			Event.preventDefault(e);
		},
		decrease: function(e) {
		  
			currentSize = Math.max(currentSize - stepSize, minSize);
			this.update();
			Event.preventDefault(e);
		}
	};
});

var Aristotle = Aris.extend({
	pageReady: function (contId) {
 var FS = new FontSizer('fontsizer','upsize','downsize','reset');
 }});
 //FS.update();
