// see main_notes.js for notes on these functions

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;
	}
}

function ieHover( id, tagname) {
	if( ! document.getElementById( id)) {return;}
	
	var laEls = document.getElementById( id).getElementsByTagName( tagname);
	for (var i = 0; i < laEls.length; i++) {
		laEls[i].onmouseover = function() {
			this.className+=" iehover";
		}
		laEls[i].onmouseout = function() {
			this.className=this.className.replace(new RegExp(" iehover\\b"), "");
		}
	}
}

function 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 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 eraseCookie(name) {
	createCookie(name,"",-1);
}

function initMenu() {
	if( ! document.createTextNode){return;}			// bail if no DOM
	
	var loMenu = document.getElementById('m1');		// loMenu = outer menu div
	if( ! loMenu) {return;}
	var laGrp = loMenu.getElementsByTagName('div');	// laGrp = sub divs (menu groups)

	for( var i=0; i < laGrp.length; i++) {	
		// if cookie, show group (cookie name is div id)
		var lcDivid = laGrp[i].getAttribute('id');
		var laHead = laGrp[i].getElementsByTagName('h3');	// H3 array
		var laUl = laGrp[i].getElementsByTagName('ul');		// UL array
		var loHead = laHead[0]	// first Heading
		var loUl = laUl[0]		// first UL
		if( loHead && loUl) {	// link UI to Heading object for onclick
			loHead.oUl = loUl;
			loHead.onclick = function() {	
				if( cssjs( 'check', this.oUl, 'hide')) {
					cssjs( 'swap', this.oUl, 'hide', 'show');
					createCookie( this.parentNode.getAttribute( 'id'), '1', 0);
				} else {
					cssjs( 'swap', this.oUl, 'show', 'hide');
					createCookie( this.parentNode.getAttribute( 'id'), '0', 0);
				}
			}
			if( readCookie( lcDivid) == '1' ) {
				cssjs( 'swap', laUl[0], 'hide', 'show'); 
			}
		} else {
			loHead = null;
			loUl = null;
		}
	}
}

window.onload = function() {
	// put functions in here to run when window loads
	initMenu();
	ieHover( 'm1', 'h3');
}
