/* Created by Dave Jansen - www.deibu.net */
var deibuMenuVis_pluginVersion		= 'v1.1';
var deibuMenuVis_pluginCreator		= 'Deibu. - Dave Jansen - www.deibu.net';
var deibuMenuVis_sidebarName		= 'r_sidebarwidgeted';
var deibuMenuVis_buttonTags 		= 'h2';
var deibuMenuVis_buttonIdPrefix 	= 'menuItem';
var deibuMenuVis_cookiePrefix		= 'deibuMenuVis';
var deibuMenuVis_useScriptaculous	= true;
var deibuMenuVis_useToggleEffect	= 'blind'; // When using Scriptaculous, deibuMenuVis will use Effect.toggle(). Specify which effect deibuMenuVis should use here.
var deibuMenuVis_whenClosedText		= "+";
var deibuMenuVis_whenOpenedText		= "-";
var deibuMenuVis_startMinimized		= true;


/* -- IT IS NOT RECOMMENDED TO EDIT BELOW THIS LINE -- */
function deibuMenuVis_findMenuItems(){
	try{
		el  = document.getElementById(deibuMenuVis_sidebarName);
		h2s = el.getElementsByTagName(deibuMenuVis_buttonTags);
		
		for(s=0; s < h2s.length; s++){
			h2s[s].id = deibuMenuVis_buttonIdPrefix+(s+1);
			h2s[s].innerHTML += ' <span id="'+deibuMenuVis_buttonIdPrefix+(s+1)+'Visual">'+deibuMenuVis_whenOpenedText+'<\/span>';
			h2s[s].onclick = function(){
				deibuMenuVis_toggleVisibility(this);
			}
			
			if(deibuMenuVis_startMinimized && deibuMenuVis_readCookie(h2s[s].id) != 'block'){
				deibuMenuVis_toggleVisibility(h2s[s], 'none');
			}
		}
	}
	catch(e){
		// this'll make sure no javascript errors pop up when the menu items are somehow not available on this page
	}
}

function deibuMenuVis_restoreSavedSettings(){
	try{
		itms = document.cookie.split(';');
		
		for(r=0; r < itms.length; r++){
			tmp = itms[r].split('=');
			tmp2= deibuMenuVis_trim(tmp[0]).substring(0,deibuMenuVis_cookiePrefix.length);
			
			if(tmp2 == deibuMenuVis_cookiePrefix){
				nm = deibuMenuVis_trim(tmp[0]).substring(tmp2.length, tmp[0].length);
				
				//alert("'" + nm + "' and '"+ deibuMenuVis_trim(tmp[0]) + "' and '" +deibuMenuVis_readCookie(deibuMenuVis_trim(tmp[0])) + "'");
				
				//document.getElementById(nm).style.display = deibuMenuVis_readCookie(deibuMenuVis_trim(tmp[0]));
				deibuMenuVis_toggleVisibility(document.getElementById(nm), deibuMenuVis_readCookie(deibuMenuVis_trim(tmp[0])));
			}
		}
	}
	catch(e){
		// this'll make sure no javascript errors pop up when the menu items are somehow not available on this page
	}
}

function deibuMenuVis_trim(str){
	return str.replace(/^\s+|\s+$/g, "");
}

var force,visualTimer;
function deibuMenuVis_toggleVisibility(obj, force){
	nextone=false;
	isdone=false;
	
	el = document.getElementById(deibuMenuVis_sidebarName);
	
	elmnts = el.childNodes;
	
	for(i=0; i < elmnts.length; i++){
		if(!isdone && elmnts[i].childNodes.length > 0){
			for(j=0; j < elmnts[i].childNodes.length; j++){
				if(nextone && !isdone){
					tag = (elmnts[i].childNodes[j].tagName) ? elmnts[i].childNodes[j].tagName.toUpperCase() : false;
					
					if(tag == "DIV" || tag == "UL" || tag == "OL"){
						if(force){
							document.getElementById(nextone+'Visual').innerHTML = (force == 'block') ? deibuMenuVis_whenOpenedText : deibuMenuVis_whenClosedText;
							elmnts[i].childNodes[j].style.display = force;
						}
						else{
							if(elmnts[i].childNodes[j].style.display == 'none'){
								deibuMenuVis_createCookie(deibuMenuVis_cookiePrefix+nextone,'block', 365);
								
								if(!visualTimer){
									visualTimer = setTimeout("document.getElementById('"+nextone+"Visual').innerHTML=deibuMenuVis_whenOpenedText;visualTimer=false;", 1000);
								}
								
								if(!deibuMenuVis_useScriptaculous){
									elmnts[i].childNodes[j].style.display = 'block';
								}
							}
							else{
								deibuMenuVis_createCookie(deibuMenuVis_cookiePrefix+nextone,'none', 365);
								
								if(!visualTimer){
									visualTimer = setTimeout("document.getElementById('"+nextone+"Visual').innerHTML=deibuMenuVis_whenClosedText;visualTimer=false;", 1000);
								}
								
								if(!deibuMenuVis_useScriptaculous){
									elmnts[i].childNodes[j].style.display = 'none';
								}
							}
							
							if(deibuMenuVis_useScriptaculous){
								new Effect.toggle(elmnts[i].childNodes[j], deibuMenuVis_useToggleEffect);
							}
						}
						
						isdone=true;
					}
				}
				else if(elmnts[i].childNodes[j].id == obj.id){
					nextone=elmnts[i].childNodes[j].id;
				}
			}
		}
		else if(elmnts[i].id == obj.id){
			//alert('found it (prnt)!! \n\n'+elmnts[i].innerHTML);
		}
	}
}

function deibuMenuVis_createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function deibuMenuVis_readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function deibuMenuVis_eraseCookie(name) {
	deibuMenuVis_createCookie(name,"",-1);
}

// Loads the script without messing up the other pre-load scripts
var prev = window.onload;
window.onload = function(){
	if(prev){
		prev();
	}
	
	deibuMenuVis_findMenuItems();
	deibuMenuVis_restoreSavedSettings();
}