
$ = function(id) {
	return document.getElementById(id);
}

/**
 * funclib object
 * all functions incapsulated within
 */
var funclib = { 
	
	/* drop-down main menu */
	initMenu : function() {
		
		// timeout id
		var toId = 0;
		
		// timeout limit
		var hideTtl = 750;
		
		// active dd menu
		var activeMenu = null;
		
		var linkOnMouseOverHandler = function () {
			if (e = this.parentNode.getElementsByTagName('div')[0]) {
				showMenu(e);
			} else if (activeMenu) {
				hideMenu(activeMenu);
			}
		}
		
		var linkOnMouseOutHandler = function () {
			if (e = this.parentNode.getElementsByTagName('div')[0]) {
				toId = window.setTimeout(function () {hideMenu(e)}, hideTtl);
			}
		}
		
		var blockOnMouseOverHandler = function () {
			showMenu(this);
		}
		
		var blockOnMouseOutHandler = function () {
			var oThis = this;
			toId = window.setTimeout(function () {hideMenu(oThis)}, hideTtl);
		}
		
		if (e = $('mmenu')) {
			for (var i = 0; i < e.childNodes.length; i++) {
				if (e.childNodes[i].nodeName.toLowerCase() == 'li') {
					
					var c = e.childNodes[i].getElementsByTagName('div')[0];
					
					for (var j = 0; j < c.childNodes.length; j++) {
						
						var el = c.childNodes[j];
						
						switch (el.nodeName.toLowerCase()) {
							case 'a':
								el.onmouseover = linkOnMouseOverHandler;
								el.onmouseout = linkOnMouseOutHandler;
							break;
							case 'div':
								el.onmouseover = blockOnMouseOverHandler;
								el.onmouseout = blockOnMouseOutHandler;
							break;
						}
						
					}
					
				}
			}
		}
		
		
		var showMenu = function (e) {
			
			if (activeMenu && activeMenu != e) {
				hideMenu(activeMenu);
			}
			
			if (a = e.parentNode.getElementsByTagName('a')[0]) {
				clearTimeout(toId);
				a.className = 'hover';
				e.style.display = 'block';
				activeMenu = e;
			}
			
		}
		
		var hideMenu = function (e) {
			
			if (e && (a = e.parentNode.getElementsByTagName('a')[0])) {
				e.style.display = 'none';
				a.className = (a.getAttribute('rev') == 'active') ? 'active' : '';
				activeMenu = null;
			}
			
		}
		
	},
	
	/* init function */
	init : function () {
		funclib.initMenu();
	}
     
};


/* attach init handler to window.onload event */

if (window.addEventListener){
	window.addEventListener('load', funclib.init, false);
} else if (window.attachEvent){
	window.attachEvent('onload', funclib.init);
} else {
	window.onload = funclib.init;
}