//window.onload = function(){Menu.init('nav')}

/*// include the easing equations
document.write('<script type="text/javascript" src="includes/easing_equations.js"></script>');*/

// sinusoidal easing out - decelerating to zero velocity
Math.easeOutSine = function(t,b,c,d){
	return c*Math.sin(t/d*(Math.PI/2))+b;
}

Tween = {
	onComplete: [],

	resizeTo: function(id, endH, duration, fn, startH, startTime)
	{
		var obj = document.getElementById(id);
		
		if(!startH) var startH = obj.offsetHeight;
		if(!startTime) var startTime = new Date().getTime();
		
		var elapsed	= new Date().getTime() - startTime;
		
		if (elapsed < duration){
			obj.style.height = Math.easeOutSine(elapsed,startH,(endH-startH),duration) + 'px';
			setTimeout('Tween.resizeTo("'+ id +'",'+ endH +','+ duration +','+ fn +','+ startH +','+ startTime +')',0);
		}
		else{
			obj.style.height = endH + 'px';
			if (fn) eval(Tween.onComplete[id]);
		}
	}
}
Menu = {
	current: null,
	orig_height: [],

	toggle:function(){
		var p = this.parentNode.parentNode;
		var o = p.getElementsByTagName('UL')[0];
		var delay = 0;
		if(p.className.indexOf('on') > -1){ // close
			var h = 0;
			Tween.onComplete[o.id] = 'Menu.current = null';
			var fn = true;
		}
		else{ // open
			var h = Menu.orig_height[o.id.replace('ul','')];
			var fn = false;
			if(Menu.current){ // close any currently open menu items
				var u = Menu.current;
				var l = u.parentNode;
				delay = 150;
				Tween.onComplete[u.id] = 'if(Menu.current.id == "'+ u.id +'")Menu.current = null';
				Tween.resizeTo(u.id, 0, 350, true);
				l.className = l.className.indexOf('on') > -1 ? l.className.replace('on','off') : l.className.replace('off','on');
			}
			Menu.current = o;
		}
		this.blur();
		p.className = p.className.indexOf('on') > -1 ? p.className.replace('on','off') : p.className.replace('off','on');

		return !setTimeout('Tween.resizeTo("'+ o.id +'",'+ h +',200,'+ fn +')',delay);
	},
	init:function(id){
		var bid = bodyid.replace('m','').split('-');//document.body.id.replace('m','').split('-');
		var ul = document.getElementById(id);
		var li = [], tmpli = ul.childNodes; _li = ul.getElementsByTagName('li');

		for(var i = 0; i < tmpli.length; i++){
			if(tmpli[i].tagName == 'LI' && tmpli[i].parentNode.id == id) li.push(tmpli[i]);
		}
		for(var j = 0; j < _li.length; j++){
			if(_li[j].parentNode.id==id && _li[j].getElementsByTagName('li').length){
				//_li[j].getElementsByTagName('a')[0].href='javascript:void(0)';
				_li[j].getElementsByTagName('a')[0].onclick='Menu.toggle()';
			}
		}
		for(var i = 0; i < li.length; i++){
			
			var sul = li[i].getElementsByTagName('UL');

			if(sul.length > 0){
				var indx = Menu.orig_height.push(sul[0].offsetHeight) - 1;

				sul[0].id = 'ul' + indx;
				li[i].getElementsByTagName('A')[0].onclick = Menu.toggle;
				if(bid[0]-1 == i){
					li[i].className = 'on';
					Menu.current = sul[0];
					sul[0].style.height = Menu.orig_height[indx] + 'px';

					if(bid[1] > 0) sul[0].getElementsByTagName('LI')[bid[1]-1].className = 'selected';
				}
				else{
					li[i].className = 'off';
				}
			}
			else if(bid[0]-1 == i){
				li[i].className = 'selected';
			}
		}

		// prevent accidental selection of menu text
		var disabletext = function(e){ return!hasParent(e.target,id) }
		if(/MSIE/.test(navigator.userAgent)) ul.onselectstart = disabletext; 
		else document.onmousedown = disabletext;
	}
}

function hasParent(o,id) {
	if (o == null) return false;
	else if (o.nodeType == 1 && o.id == id) return true;
	else if (o.parentNode != null) return hasParent(o.parentNode,id);
	else return false;
}