﻿function trace (str) {
	alert(str);
}
var ElemById = {
	str: function(obj) {
		return "document.getElementById('"+obj.id+"').";
	},
	ref: function(id) {
		return document.getElementById(id);
	}
};
/*menu, rollover, rollout
/----------------------------------------------------*/
var Menu = {
	init: function(obj) {
		var nodes = obj.getElementsByTagName('li');
		
		/* iterate through all li elem and attach events */
		for(i=0;i<nodes.length;++i) {
			nodes[i].onmouseover = Menu.RollOver;
			nodes[i].onmouseout = Menu.RollOut;
		}
	},
	RollOver: function(e) {
		var nodes = new Array();
		var divs = new Array();
		if(typeof this.submenu=="undefined") {
			nodes = this.getElementsByTagName('ul');
			var arr_tmp = new Array();

			for(i=0;i<nodes.length;++i) {
				if(nodes[i].parentNode==this) 
					arr_tmp.push(nodes[i]);
			}
			
			this.submenu = new Array(); 
			this.submenu['nodes'] = arr_tmp; //add filtered list to curr li properties
			nodes = arr_tmp; //use filtered list instead
			
			divs = this.getElementsByTagName('div');
			arr_tmp = new Array();

			for(i=0;i<divs.length;++i) {
				if(divs[i].parentNode==this) 
					arr_tmp.push(divs[i]);
			}
			
			this.submenu['divs'] = arr_tmp; //add filtered list to curr li properties
			divs = arr_tmp; //use filtered list instead
		}
		else 
		{
			nodes = this.submenu['nodes'];
			divs = this.submenu['divs'];
			
			Menu.clearDelays(this.submenu['hideDelays']); //clear all hide delays
		}
	    
	    /* iterate through direct descen ul's of curr li */
		for(i=0;i<nodes.length;++i) {
			if(nodes[i].parentNode==this) {
				nodes[i].style.display = 'block';
				Menu.TryCreateId(nodes[i]);
				
				/*
				    restore original classnames
				*/
			}
		}
		for(i=0;i<divs.length;++i) {
			if(divs[i].parentNode==this) {
				divs[i].className = "trail";
			}
		}
	},
	RollOut: function(e) {
		if(typeof  this.submenu['nodes']!="undefined" 
			&& this.submenu['nodes'].length>0) {
			
			var nodes = this.submenu['nodes'];
			for(i=0;i<nodes.length;++i) 
			{
				//nodes[i].style.display='none';
				if(nodes[i].id) 
				{
					var c = nodes[i].className;
					var arr_delays = new Array();
					/*
					arr_delays.push(setTimeout(ElemById.str(nodes[i])+"className='"+c+" alpha90';",200));
					arr_delays.push(setTimeout(ElemById.str(nodes[i])+"className='"+c+" alpha80';",220));
					arr_delays.push(setTimeout(ElemById.str(nodes[i])+"className='"+c+" alpha70';",240));
					arr_delays.push(setTimeout(ElemById.str(nodes[i])+"className='"+c+" alpha60';",260));
					arr_delays.push(setTimeout(ElemById.str(nodes[i])+"className='"+c+" alpha50';",280));
					arr_delays.push(setTimeout(ElemById.str(nodes[i])+"className='"+c+" alpha40';",300));
					arr_delays.push(setTimeout(ElemById.str(nodes[i])+"className='"+c+" alpha30';",320));
					arr_delays.push(setTimeout(ElemById.str(nodes[i])+"className='"+c+" alpha20';",340));
					arr_delays.push(setTimeout(ElemById.str(nodes[i])+"className='"+c+" alpha10';",360));
					arr_delays.push(setTimeout(ElemById.str(nodes[i])+"className='"+c+"';",380));
					*/
					arr_delays.push(setTimeout(ElemById.str(nodes[i])+"style.display = 'none';",180));
					
					this.submenu['hideDelays'] = arr_delays; //save hide delays to curr li element
				}
			}
		}
		if(typeof  this.submenu['divs']!="undefined" 
			&& this.submenu['divs'].length>0) {
			
		    var divs = this.submenu['divs'];
		    for(i=0;i<divs.length;++i) 
		    {
			    divs[i].className = "";
		    }
		}
	},
	clearDelays: function(arr_delays) {
		if (typeof arr_delays!="undefined") {
			for(i=0;i<arr_delays.length;++i) {
				clearTimeout(arr_delays[i]);
			}
		}
	},
	TryCreateId: function(obj) {
		if(!obj.id) { 
			var d = new Date();
			var id = 'tempid' + Math.floor(Math.random()*d.getTime());
			try {
				obj.id = id;
			}
			catch (err)
			{
				alert(err);
			}
		}
	}
}

function MenuInit ()
{
    Menu.init(ElemById.ref('mainNav'));
}
window.onload = MenuInit;

//// JScript File
//function MouseOver (subMenuItem)
//        {
//            var arrUL = subMenuItem.getElementsByTagName("ul");
//            for (var i=0; i<arrUL.length; ++i)
//            {
//                if (arrUL[i].parentNode==subMenuItem)
//                {
//                    arrUL[i].style.visibility = 'visible';
//                    subMenuItem.className = 'hilite';
//                    var arrA = subMenuItem.getElementsByTagName("a");
//                    for (var i=0; i<arrA.length; ++i)
//                    {
//                        if (arrA[i].parentNode==subMenuItem)
//                        {
//                            arrA[i].className = 'hilite';
//                            break;
//                        }
//                    }
//                }
//            }
//        }
//function MouseOut (subMenuItem)
//        {
//            var arrUL = subMenuItem.getElementsByTagName("ul");
//            subMenuItem.className = "";
//            var arrA = subMenuItem.getElementsByTagName("a");
//            for (var i=0; i<arrA.length; ++i)
//            {
//                if (arrA[i].parentNode==subMenuItem)
//                {
//                    arrA[i].className = "";
//                    break;
//                }
//            }
//            for (var i=0; i<arrUL.length; ++i)
//            {
//                if (arrUL[i].parentNode==subMenuItem)
//                {
//                    arrUL[i].style.visibility = 'hidden';
//                }
//            }
//        }
