var interval=30 ;
var timerId=null ;
var menuEle=null ;
var menuOpen=false ;
var amt=10 ;
var mnuHeight=240 ;
var mnuId='' ;

function toggle(mnu,force) {
window.clearInterval(timerId) ;
menuEle=document.getElementById(mnu) ; 
mnuId=mnu ;
p=menuEle.parentNode ;
if (force) {
	p.style.display='block' ;
	menuEle.style.height=mnuHeight+'px' ;
	menuEle.style.display='block' ;
	grow() ;
	menuOpen=true ;
	return ;
	}
if (!menuOpen) {
	p.style.display='block' ;
	menuEle.style.display='block' ;
	menuEle.style.height='0px';
	timerId=window.setInterval("grow()",interval) ;
	}
else {
	timerId=window.setInterval("shrink()",interval) ;
	}
}

function grow() { 
var h=parseInt(menuEle.style.height) ;
if (h < mnuHeight) {
	menuEle.style.height=(h+amt)+'px' ;
	}
else {
	//menuEle.style.marginBottom='200px';
	menuOpen=true ;
	window.clearInterval(timerId) ;
	createCookie(mnuId,1) ;
	}
}

function shrink() {
var h=parseInt(menuEle.style.height) ;
//menuEle.style.marginBottom='0px';
if (h > 0) {
	menuEle.style.height=(h-amt)+'px' ;
	}
else {
	menuOpen=false ;
	window.clearInterval(timerId) ;
	p=menuEle.parentNode ;
	p.style.display='none' ;
	createCookie(mnuId,0) ;
	}
}

function toggleSubMenus() {
var subMenus=getElementsByClassName('submenu1','ol') ;
for (i=0; i < subMenus.length; i++) {
	submenuId=subMenus[i].id ;
	mnuId=submenuId ;
	menuEle=document.getElementById(submenuId) ;
	menuEle.style.height='0px' ;
	if (parseInt(readCookie(submenuId)) == 1) 
		toggle(submenuId,true) ;
	else {
		p=menuEle.parentNode ;
		p.style.display='block' ;
		menuEle.style.display='block' ;
		menuEle.style.height='0px';
		timerId=window.setInterval("grow()",interval) ;
		}
	}
}

//Get all the elements of the given classname of the given tag.
function getElementsByClassName(classname, tag) {
if (!tag) 
	tag = "*" ;
var anchs=document.getElementsByTagName(tag) ;
var total_anchs=anchs.length ;
var regexp=new RegExp('\\b'+classname+'\\b') ;
var class_items=new Array() ;
for (var i=0; i<total_anchs; i++) { //Go thru all the links seaching for the class name
	var this_item=anchs[i] ;
	if( regexp.test(this_item.className)) {
		class_items.push(this_item) ;
		}
	}
return class_items ;
}


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;
}

