/* script by gonchuki - (c)soho */

/* este script attachea los eventos necesarios
   para la barra de menus de la seccion 'ordenes' */
   
   
   function hideCombo(elem) {
   		if(elem){
   			if(elem.target.parentNode.getAttribute('uses'))
   				menu_empresa = document.getElementById(elem.target.parentNode.getAttribute('uses').toString());
   		}
   		else{
   			if(window.event.srcElement.parentNode.getAttribute('uses'))
   				menu_empresa = document.getElementById(window.event.srcElement.parentNode.getAttribute('uses').toString());
   		}

			combo_mes = document.getElementById('mes');
			if (combo_mes){
				if(menu_empresa.style.display == 'block' || menu_empresa.style.display == ''){
					combo_mes.style.visibility = 'hidden';
				}	
			}
		}
	
		function showCombo(elem) {
			menu_empresa = document.getElementById(elem);
			combo_mes = document.getElementById('mes');

			if (combo_mes){
				if(menu_empresa.style.display != 'block' && menu_empresa.style.display != ''){
					combo_mes.style.visibility = 'visible';
				}	
			}
		}



window.onload = function() {
	
	var menu = document.getElementById('menu_bar');
	var items = menu.getElementsByTagName('A');

	var lista = document.getElementsByTagName('LI');
	
	for (var i = 0; i < lista.length; i++) {
		var elem = lista[i].getAttribute('uses');
		if( elem ){
				var aux = elem.toString();
				var fun = function(elem)
									{
										hideCombo(elem);
									};
				lista[i].onmouseover = fun;
		}
	}
		
	for (var i = 0; i < items.length; i++) {
		var li = find_parent(items[i], 'LI');
		var ul = li.getElementsByTagName('UL')[0];
		var p_ul = find_parent(find_parent(li, 'UL'), 'UL');

		items[i].onmouseover = function() {
			hide_menu_s(this);
		}
				
		if (ul) {
			//agrega la clase que muestra la flechita de presencia de sub-menu
			li.className = 'con_menu';
			
			items[i].onmouseover = function() {
				hide_menu_s(this); show_menu(this); 
			}
			items[i].onmouseout = function() {
				hide_submenu(this);
			}
			
			//setea el ancho minimo del menu al ancho del parent para evitar menus cortos.
			ul.style.minWidth = items[i].clientWidth + 'px';
			
			ul.onmouseover = function() {
				clearTimer();
			}
			ul.onmouseout = function() {
				hide_submenu(find_parent(this, 'LI').getElementsByTagName('A')[0]);
			}
			ul.onclick = function() {
				hide_menu();
			}

		}
	}
}

var timer;
var currentMenu;
var currentSubMenu;

function show_menu(element) {
	
	var li = find_parent(element, 'LI');
	var ul = li.getElementsByTagName('UL')[0];
	var p_ul = find_parent(find_parent(li, 'UL'), 'UL');
	var c_li = ul.getElementsByTagName('LI')[0];
	
	if (ul) {
		clearTimer();
		if (p_ul == null) {
			hide_menu();
		} else {
			currentSubMenu = ul;
			ul.style.left = (li.offsetLeft + find_parent(li, 'UL').clientWidth) + 'px';
			ul.style.top = (li.offsetTop) + 'px';
		}
		if (c_li) {
			element.className = 'current';
			ul.style.display = 'block';
		}
	}
}

function hide_submenu(element) {
  var li = find_parent(element, 'LI');
	var ul = li.getElementsByTagName('UL')[0];
	var p_ul = find_parent(find_parent(li, 'UL'), 'UL');
	
	if (p_ul == null && ul) {
		currentMenu = ul;
		timer = setTimeout("hide_menu();", 300);
	}
	
	elem = find_parent(element, 'LI').getAttribute('uses');
	if(elem)
		showCombo(elem.toString());
}

function hide_menu() {
	//recursively hide open submenus
	if (currentSubMenu) {
		while (currentSubMenu != currentMenu) {
			find_parent(currentSubMenu, 'LI').getElementsByTagName('A')[0].className = '';
			currentSubMenu.style.display = 'none';
			currentSubMenu = find_parent(currentSubMenu, 'UL');
		}
		
		elem = find_parent(currentSubMenu, 'LI').getAttribute('uses');
		if(elem)
			showCombo(elem.toString());
		
		currentSubMenu = null;
	}
	
	//hide current menu
	if (currentMenu) {
		find_parent(currentMenu, 'LI').getElementsByTagName('A')[0].className = '';
		currentMenu.style.display = 'none';
		
		elem = find_parent(currentMenu, 'LI').getAttribute('uses');
		if(elem)
			showCombo(elem.toString());
		
		currentMenu = null;
	}
}

function hide_menu_s(caller) {
	if (currentSubMenu && find_parent(caller, 'UL') != currentSubMenu) {
		find_parent(currentSubMenu, 'LI').getElementsByTagName('A')[0].className = '';
		currentSubMenu.style.display = 'none';
		//currentSubMenu = null;
	}
	
	elem = find_parent(caller, 'LI').getAttribute('uses');
	if(elem)
		showCombo(elem.toString());
}

function clearTimer() {
	if (timer) {
		clearTimeout(timer);
		timer = 0;
	}
}

function find_parent(element, name) {
	var ret = element;
	if (ret != null) ret = ret.parentNode;
	
	while (ret != null && ret.nodeName != name) {
		ret = ret.parentNode;
	}
	return(ret);
}



