var Cookie = {
	set: function(name, value, daysToExpire) {
		var expire = '';
		if (daysToExpire != undefined) {
			var d = new Date();
			d.setTime(d.getTime() + (86400000 * parseFloat(daysToExpire)));
			expire = '; expires=' + d.toGMTString();
		}
		return (document.cookie = escape(name) + '=' + escape(value || '') + expire + '; path=/');
	},
	get: function(name) {
		var cookie = document.cookie.match(new RegExp('(^|;)\\s*' + escape(name) + '=([^;\\s]*)'));
		return (cookie ? unescape(cookie[2]) : null);
	}
};

// creates a toggle box with sliding effect
Event.observe(window, 'load', function() {
	var togglesClosed = new Array();
	var i, j;
	
	if (Cookie.get('togglebox')){
		togglesClosed = Cookie.get('togglebox').split(',');
		var toogleHeads = $('toggle-boxes').getElementsByTagName('h4');
		// close all boxes on screen that are in the cookie
		for (i = 0; i <= togglesClosed.length; i++){
			for (j = 0; j < toogleHeads.length; j++){
				if (togglesClosed[i] == toogleHeads[j].innerHTML){
					toogleHeads[j].addClassName('open-tile');
					toogleHeads[j].up(0).down(1).addClassName('hidden');
					new Effect.toggle(toogleHeads[j].up(0).down(1), 'blind', {duration: 0.0, queue: 'end'});
				}
			}
		}
	}
	
	if($('toggle-boxes') != null){
		Event.observe($('toggle-boxes'), 'click', function(event) {
			var e = Event.findElement(event, 'h4');
			// if a h4 element was click do the following...
			if (e){
				// go up to the cotainer then down to the list
				var mylist = e.up(0).down(1);
				e.toggleClassName('open-tile');
				mylist.removeClassName('hidden');
				new Effect.toggle(mylist, 'blind', { queue: 'end'});
				// performs cookie storing / removing of entries
				if(!e.hasClassName('open-tile')){
					for (i = 0; i <= togglesClosed.length; i++){
						if (e.innerHTML == togglesClosed[i]){
							togglesClosed.splice(i, 1);
							Cookie.set('togglebox', togglesClosed, 365);
						}
					}
				} else {
					togglesClosed.push(e.innerHTML);
					Cookie.set('togglebox', togglesClosed, 365);
				}
			}
		});
	}
});
