var idNames = new Array('categories','elsewhere','recent','blogroll','flickr', 'music');

var theRules = {
	'#categories h3' : function(el){
		el.onclick = function(){
			if (Element.hasClassName(this, 'invisible')) {
				new Effect.BlindDown('categories-body');
				Element.removeClassName(this, 'invisible');
				setCookie(this.parentNode.id, '', 365);
			} else {
				new Effect.BlindUp('categories-body');
				Element.addClassName(this, 'invisible');
				setCookie(this.parentNode.id, 'invisible', 365);
			}
		}		
	},
	'#elsewhere h3' : function(el){
		el.onclick = function(){
			if (Element.hasClassName(this, 'invisible')) {
				new Effect.BlindDown('elsewhere-body');
				Element.removeClassName(this, 'invisible');
				setCookie(this.parentNode.id, '', 365);
			} else {
				new Effect.BlindUp('elsewhere-body');
				Element.addClassName(this, 'invisible');
				setCookie(this.parentNode.id, 'invisible', 365);
			}
		}		
	},
	'#recent h3' : function(el){
		el.onclick = function(){
			if (Element.hasClassName(this, 'invisible')) {
				new Effect.BlindDown('recent-body');
				Element.removeClassName(this, 'invisible');
				setCookie(this.parentNode.id, '', 365);
			} else {
				new Effect.BlindUp('recent-body');
				Element.addClassName(this, 'invisible');
				setCookie(this.parentNode.id, 'invisible', 365);
			}
		}		
	},
	'#blogroll h3' : function(el){
		el.onclick = function(){
			if (Element.hasClassName(this, 'invisible')) {
				new Effect.BlindDown('blogroll-body');
				Element.removeClassName(this, 'invisible');
				setCookie(this.parentNode.id, '', 365);
			} else {
				new Effect.BlindUp('blogroll-body');
				Element.addClassName(this, 'invisible');
				setCookie(this.parentNode.id, 'invisible', 365);
			}
		}		
	},
	'#flickr h3' : function(el){
		el.onclick = function(){
			if (Element.hasClassName(this, 'invisible')) {
				new Effect.BlindDown('flickr-body');
				Element.removeClassName(this, 'invisible');
				setCookie(this.parentNode.id, '', 365);
			} else {
				new Effect.BlindUp('flickr-body');
				Element.addClassName(this, 'invisible');
				setCookie(this.parentNode.id, 'invisible', 365);
			}
		}		
	},
	'#music h3' : function(el){
		el.onclick = function(){
			if (Element.hasClassName(this, 'invisible')) {
				new Effect.BlindDown('music-body');
				Element.removeClassName(this, 'invisible');
				setCookie(this.parentNode.id, '', 365);
			} else {
				new Effect.BlindUp('music-body');
				Element.addClassName(this, 'invisible');
				setCookie(this.parentNode.id, 'invisible', 365);
			}
		}		
	}
};

Behaviour.register(theRules);
Behaviour.addLoadEvent(do_onload);

function do_onload() {
	
	removeImageLinkBorders();
	
	// Id names of all the "boxes"
	boxIds = $('categories','elsewhere','recent','blogroll','flickr', 'music');
	
	for (i = 0; i < boxIds.length; i++) {
		if (boxIds[i]) {
			cookieValue = readCookie(boxIds[i].id);
			if (cookieValue == 'invisible') {
				var h3 = boxIds[i].getElementsByTagName('h3');
				Element.addClassName(h3[0], 'invisible');
				var kids = boxIds[i].childNodes;
				for (j = 1; j < kids.length; j++) {
					if (kids[j].id) {
						Element.hide(kids[j]);
					}
				}
			}
		}		
	}	
}

function setCookie(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 needle = name + "=";
 var cookieArray = document.cookie.split(';');
 for(var i=0;i < cookieArray.length;i++) {
   var pair = cookieArray[i];
   while (pair.charAt(0)==' ') {
     pair = pair.substring(1, pair.length);
   }
   if (pair.indexOf(needle) == 0) {
     return pair.substring(needle.length, pair.length);
   }
 }
 return null;
}

function removeImageLinkBorders() {
	if (!document.getElementsByTagName) return;
	var anchors = document.getElementsByTagName('a');
	for (var i=0; i<anchors.length; i++) {
   		anchor = anchors[i];
		var images = anchor.getElementsByTagName('img');
		if (images[0] != null) {
			anchor.className = "image";
		}
 	}
	return;
}

