var TIFMenu_timers = new Array();
var TIFMenu_submenus = new Array();
var TIFMenu_submenusPorId = new Array();

var TIFMenu_TIMEOUT_CIERRE = 300;

function _TIFM_AbreSubMenu(idEnlace,idDiv,codPosicion,offsetX,offsetY) {
	for(i=0;i<TIFMenu_submenusPorId.length;i++) {
		if (TIFMenu_submenusPorId[i] != idDiv) {
			_TIFM_CierraSubMenuDeVerdad(TIFMenu_submenusPorId[i]);
		}
	}
	if (TIFMenu_timers[idDiv] != null) {
		 clearTimeout(TIFMenu_timers[idDiv]);
		 TIFMenu_timers[idDiv] = null;
	}
	if (TIFMenu_submenus[idDiv] == null) {
		TIFMenu_submenus[idDiv] = idDiv;
		TIFMenu_submenusPorId[TIFMenu_submenusPorId.length] = idDiv;
	}
_TIFM_ColocaCapa(idEnlace,idDiv,codPosicion,offsetX,offsetY);
	menuActivado = true;
	
}

function _TIFM_CierraSubMenuDeVerdad(idDiv) {
	m = document.getElementById(idDiv);
	m.style.display = "none";
	if (TIFMenu_timers[idDiv] != null) {
		clearTimeout(TIFMenu_timers[idDiv]);
		TIFMenu_timers[idDiv] = null;
	}
}

function _TIFM_CierraSubMenu(idDiv) {
	TIFMenu_timers[idDiv] = setTimeout("_TIFM_CierraSubMenuDeVerdad('"+idDiv+"');",TIFMenu_TIMEOUT_CIERRE);
}

function _TIFM_SigueConSubmenuAbierto(idDiv) {
	if (TIFMenu_timers[idDiv] != null) {
		clearTimeout(TIFMenu_timers[idDiv]);
		TIFMenu_timers[idDiv] = null;
	}
}

function _TIFM_AddEvent( obj, type, fn ) {
  if ( obj.attachEvent ) {
    obj['e'+type+fn] = fn;
    obj[type+fn] = function(){obj['e'+type+fn]( window.event );}
    obj.attachEvent( 'on'+type, obj[type+fn] );
  } else {
    obj.addEventListener( type, fn, false );
  }
}

function _TIFM_GetposOffset(overlay, offsettype) {
    var totaloffset = (offsettype == "left") ? overlay.offsetLeft : overlay.offsetTop;
    var parentEl = overlay.offsetParent;
    while (parentEl != null) {
        totaloffset = (offsettype == "left") ? totaloffset + parentEl.offsetLeft : totaloffset + parentEl.offsetTop;
        parentEl = parentEl.offsetParent;
    }

    return totaloffset;
}

function _TIFM_ColocaCapa(idObjRef, idCapa, opt_position, offsetX, offsetY) {
	if (document.getElementById) {
		if (offsetX == undefined) {
			offsetX = 0;		
		}
		if (offsetY == undefined) {
			offsetY = 0;		
		}

		var objRef=document.getElementById(idObjRef);
		var subobj=document.getElementById(idCapa);
		subobj.style.display = "";
		subobj.style.display=(subobj.style.display!="block")? "block" : "none";
		var xpos=offsetX + _TIFM_GetposOffset(objRef, "left") + ((typeof opt_position!="undefined" && opt_position.indexOf("right")!=-1)? -(subobj.offsetWidth-objRef.offsetWidth) : 0);
		
		var ypos=offsetY + _TIFM_GetposOffset(objRef, "top")+((typeof opt_position!="undefined" && opt_position.indexOf("bottom")!=-1)? objRef.offsetHeight : 0);
		subobj.style.left=xpos+"px";
		subobj.style.top=ypos+"px";
		
		return false;
	} else {
		return true;
	}
}

function PonMenu(idEnlace,idCapa,codPosicion,offsetX,offsetY) {
	if (codPosicion == undefined) {
		codPosicion = "bottomleft";
	}
	if (offsetX == undefined) {
		offsetX = 0;		
	}
	if (offsetY == undefined) {
		offsetY = 0;		
	}
	var lnk = document.getElementById(idEnlace);
	_TIFM_AddEvent(lnk, "mouseover", function() { _TIFM_AbreSubMenu(idEnlace,idCapa,codPosicion,offsetX,offsetY); });
	_TIFM_AddEvent(lnk, "mouseout", function() { _TIFM_CierraSubMenu(idCapa); });
	
	var capa = document.getElementById(idCapa);
	_TIFM_AddEvent(capa, "mouseover", function() { _TIFM_SigueConSubmenuAbierto(idCapa); });
	_TIFM_AddEvent(capa, "mouseout", function() { _TIFM_CierraSubMenu(idCapa); });
}

