function init() {
	collapse();
}

function collapse(){
	var heads=document.getElementsByTagName('h4');
	for(var i=0;i<heads.length;i++){
		var tohide=heads[i].nextSibling;
		while(tohide.nodeType!=1){
			tohide=tohide.nextSibling;
		}
		if(cssjs('check',tohide,'visible')){
			cssjs('add',tohide,'visible')
		}else{
			cssjs('add',tohide,'invisible')
		}
		heads[i].tohide=tohide;

		heads[i].onmouseover=function(){
			cssjs('add',this,'on');
		}
		heads[i].onmouseout=function(){
			cssjs('remove',this,'on');
		}
		heads[i].onclick=function(){
			//document.selection.createRange();
			if(cssjs('check',this.tohide,'invisible')){
				cssjs('swap',this,'off','on');
				cssjs('swap',this.tohide,'invisible','visible');
			} else {
				cssjs('swap',this,'on','off');
				cssjs('swap',this.tohide,'visible','invisible');
			}
			return false;
		}
	}
}

function cssjs(a,o,c1,c2){
	switch (a){
		case 'swap':
			o.className=!cssjs('check',o,c1)?o.className.replace(c2,c1):o.className.replace(c1,c2);
		break;
		case 'add':
			if(!cssjs('check',o,c1)){o.className+=o.className?' '+c1:c1;}
		break;
		case 'remove':
			var rep=o.className.match(' '+c1)?' '+c1:c1;
			o.className=o.className.replace(rep,'');
		break;
		case 'check':
			return new RegExp('\\b'+c1+'\\b').test(o.className)
		break;
	}
}
