var SCPRT = Aris.extend({
	popUpSafe: function(els) {
		if (!els) return;
		forEach(els, function(el) {
			var r = el.rel;
			if (r.indexOf(':') >= 0 || /external|photogallery|tripplaner/.test(r)) {
				Event.add(el, 'click', function(e) {
					args = this.rel.split(':');
					if (Aris.popWin(this.href, args[0], args[1], args[2]))
						Event.preventDefault(e);
				});
			}
		});
	},
	pageReady: function() {
		this.popUpSafe(document.getElementsByTagName('a'));
		new FontSizer('body', 'upsize', 'downsize', 'reset');
	}
});


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( (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);
			
		},
		reset: function(e) { 
			Cookies.remove(cookieName);
			currentSize = 12;
			this.update();
			Event.preventDefault(e);
		},
		update: function() {
			Cookies.add(cookieName, currentSize, 7);
			var form = document.getElementsByTagName('form')[0];
			DOM.setStyle(form, '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);
		}
	};
})()	
);


