﻿// JScript File

function uwmMenu_ItemClick(menuId, itemId){
   
   var sComando = null;
   var capaWait = document.getElementById('waitDiv');
   
   
   // Comprobar si se puede saltar o bien hay cambios 
   // pendientes de grabar
   if (gbCambiosPendientes==true)
   {
      if (confirm(gsTxtCambiosPendientes)==false)
      {
         return true;
      }
   }
   
   sComando = igmenu_getItemById(itemId).getTag();
   var vParam = sComando.split("|");
   if (vParam[1]=='K03ACTUALIZAR'){
   
      if (vParam[2]=='1'){
         if (msgBoxK03ActualizarTodos()==false){
            return true;
         }
      }else{
         if (msgBoxK03ActualizarUsuario()==false){
            return true;
         }
      }
	}
	if (vParam[1]=='MENU'){
	   return true;
	}
	//this.waitDiv.style.visibility ='visible';
	//Con este cambio conseguimos compatibilidad para Firefox.
	if (vParam[1]!='SPRINT'){
	   capaWait.style.visibility ='visible';
	}
};


function msgBoxK03ActualizarUsuario(){

   //La actualización provoca la pérdida de los datos actuales. ¿Está seguro?
   return confirm(gsConfActualizacion);
//   var iResponse;
//   iResponse= makeMsgBox('Actualizar controles gráficos','La actualización provoca la pérdida de los datos actuales. ¿Está seguro?', 32, 4, 256, 0);
//   if (iResponse=6)
//   {
//      return true;
//   }else{
//     return false;
//   }
}

function msgBoxK03ActualizarTodos(){

   //ATENCIÓN !! La actualización masiva provoca que todos los usuarios que están conectados pierdan datos. No ejecute esta opción si no está absolutamente seguro. ¿Está seguro?
   return confirm(gsConfActualizacionMasiva);
//   return makeMsgBox('Actualizar controles gráficos','ATENCIÓN !! La actualización masiva provoca que todos los usuarios que están conectados pierdan datos. No ejecute esta opción si no está absolutamente seguro. ¿Está seguro?', 48, 4,256,0);
//   if (iResponse=6)
//   {
//      return true;
//   }else{
//     return false;
//   }

}
/////////////////////////////////////////////////////////////////
//FUNCIÓN RETOCADA DE INFRAGISTICS. SOLUCIÓN MOMENTÁNEA HASTA NUEVO HOTFIX
//RELACIONADA CON EL MENÚ CONTEXTUAL DE PROPAGAR
////////////////////////////////////////////////////////////////
// private - Displays a submenu in the appropriate position
function igmenu_showMenu_Portal(name, evnt, x, y) 
{
	if(ig_menuPopup != null) 
	{
		if(ig_oActiveMenu)
		{
			ig_oActiveMenu.hideSubMenus();
			var oSubMenu = igmenu_getSubMenuById(ig_oActiveMenu, ig_menuPopup.id);
			oSubMenu.dismiss();
			//ig_oActiveMenu.hideSubMenu(ig_menuPopup);
		}
		ig_menuPopup = null;
	}
	var eItem = igmenu_getElementById(name + "_MainM");
	if(eItem == null) {
		alert("Popup menu name is not valid")
		return;
	}
	var oMenu = igmenu_getMenuById(name);
	if(oMenu == null)
		return;
	var oSubMenu = igmenu_getSubMenuById(oMenu, name + "_MainM");
	if(evnt == null) {
		if(ig_csom.IsIE)
			evnt = window.event;
		else
			evnt = window.Event;
	}
	if(eItem != null) {
		if(x && y) {
 		
 		
			if(x.toString().indexOf("px") == -1)
				x += "px";
			eItem.parentNode.style.left = x;

			if(y.toString().indexOf("px") == -1)
				y += "px";
			eItem.parentNode.style.top = y;	
		}
		else {
			if(ig_csom.IsIE) {
				
				y = evnt.y - 2 + document.body.scrollTop + document.body.parentNode.scrollTop;	
				x = evnt.x - 2 + document.body.scrollLeft + document.body.parentNode.scrollLeft;
			}
			else {
				y = ig_MouseY - 2 + document.body.scrollTop + document.body.parentNode.scrollTop;	
				x = ig_MouseX - 2 + document.body.scrollLeft + document.body.parentNode.scrollLeft;
			}
			var src = ig_csom.getSourceElement(evnt);
			if(src) 
			{
				var parent = src;
				var tmpX = x;
				var tmpY = y;
				var sets = false;
				while (parent != null && parent.tagName != "BODY")
				{
					if(parent.style.position=="relative") 
					{
						sets = true;
						tmpX = 0;
						tmpY = 0;
					}
					tmpX += parent.offsetLeft;
					tmpY += parent.offsetTop;
					
					parent = parent.offsetParent;
				}
				if(sets && ig_csom.IsIE){//D.M. 2/27/07 BR19449 Skip this if you're firefox.
					x += tmpX;
					y += tmpY;
				}
			}
			var parent = eItem;
			while (parent != null) {
				if(parent.style.position=="absolute" ) {
					if(parent.offsetParent == null)
						break;
					x -= parent.offsetParent.offsetLeft;
					y -= parent.offsetParent.offsetTop;
					break;
				}
				parent = parent.offsetParent;
			}

			eItem.parentNode.style.top  = y.toString() + "px";	
			eItem.parentNode.style.left = x.toString() + "px";
		}
		ig_menuPopup = eItem;

		oSubMenu.___display(null, true);
		oSubMenu._visible = true;
		display_submenu_Portal(item, null, true);
		ig_menuPopup.menuObject = oMenu;
		ig_oActiveMenu = oMenu;			
	}
//}
//function igmenu_showMenu_Portal(name, evnt, x, y) {
//	if(ig_menuPopup != null) {
//		if(ig_menuObject)
//			ig_menuObject.clearMenuTree(null, true);
//		ig_menuPopup.style.visibility = 'hidden';
//		ig_menuPopup = null;
//		igmenu_hideDropDowns(false);
//	}
//	var item = igmenu_getElementById(name + "_MainM");
//	if(evnt == null)
//		evnt = window.event;
//	if(item != null) {
//		if(x && y) {
//			item.style.left = x;
//			item.style.top = y;	
//		}
//		else
//		if(ig_csom.IsIE) {
//			item.style.top = evnt.y - 2 + document.body.scrollTop;	
//			item.style.left = evnt.x - 2 + document.body.scrollLeft;
//		}
//		else {
//			item.style.top = evnt.clientY - 2 + document.body.scrollTop;	
//			item.style.left = evnt.clientX -2 + document.body.scrollLeft;
//		}
//		ig_menuPopup = item;

//		var ms = igmenu_getMenuById(name);
//		if(ms==null)
//			return;
//		if(ms.HideDropDowns) 
//			igmenu_hideDropDowns(true);
//		
//		display_submenu_Portal(item, null, true);
//		ig_menuPopup.menuObject = ms;
//		ig_menuObject=ms;
//}		
///////////////////////////////////////////////////////////
//Esta es una función de infragistics personalizada por nosotros
//su nombre real es display_submenu Xavi & David 29/03/07
function display_submenu_Portal(subMenu, parentItem, vertical) {

		if(subMenu.style.visibility != "hidden")
			return;
			
		if(ig_csom.IsIE55Plus) {	
			if(subMenu.transPanel==null) {	
				subMenu.transPanel=ig_csom.createTransparentPanel();
			}
		}
		igmenu_callDisplayMenu(true, subMenu.id);
		var mn=igmenu_getMenuNameByItemId(subMenu.id);

		if(ig_csom.IsMac || (subMenu.style.filter == null)) {
			subMenu.style.visibility='visible';
			subMenu.style.display="";
		}

			subMenu.style.visibility='visible'
			subMenu.style.display="";
				
		if(subMenu.style.width == "") {
			subMenu.style.width = subMenu.offsetWidth + 15;
			if(ig_csom.IsNetscape6 || ig_csom.IsMac) {
				if(subMenu.childNodes.length == 1) {
					subMenu.childNodes[0].style.width = subMenu.style.width;
					subMenu.childNodes[0].childNodes[0].style.width = subMenu.style.width;
			   	}
				else {
					subMenu.childNodes[1].style.width = subMenu.style.width;
					subMenu.childNodes[1].childNodes[0].style.width = subMenu.style.width;
			   	}
			}
			else {
				if(ig_csom.IsIE55Plus) {
					if(subMenu.firstChild != null) {
						subMenu.firstChild.style.width = subMenu.style.width;
						if(subMenu.firstChild.firstChild != null)
							subMenu.firstChild.firstChild.style.width = subMenu.style.width;
					}
				}
			}
		}
		
		// set submenu position	
		var pageWidth	= document.body.clientWidth;
		var menuWidth	= subMenu.clientWidth;
		var pageHeight	= document.body.clientHeight;
		var menuHeight	= subMenu.offsetHeight;
		var scrollTop	= document.body.scrollTop;
		var scrollLeft	= document.body.scrollLeft;
		var menuX		= 0;
		var menuY		= 0;
		
		if(parentItem == null) { // popup menu
			menuX = subMenu.offsetLeft;	
			menuY = subMenu.offsetTop;	
		}
		else 
		if(vertical) { // display next to vertical menu
			menuY = igmenu_getTopPos(parentItem);	
			if(subMenu.parentMenu.scroller != null && subMenu.parentMenu.scroller.active) {
				menuY = menuY - subMenu.parentMenu.scroller.scrollDiv.scrollTop;
			}
			if(this.CurrentLeftHandDisplay==false)
				menuX = igmenu_getLeftPos(parentItem) + parentItem.offsetWidth - 4; 	
			else
				menuX = igmenu_getLeftPos(parentItem) - menuWidth; 	
			
			var switched = this.CurrentLeftHandDisplay != this.LeftHandDisplay; 
			// Check which way to align the menu
			if(this.CurrentLeftHandDisplay==false && !switched) { // align right
				if((menuX + menuWidth) > pageWidth + scrollLeft) {
						this.CurrentLeftHandDisplay=true; // change to left
					menuX = igmenu_getLeftPos(parentItem) - menuWidth; 
				}
			}
			else
			if(this.CurrentLeftHandDisplay==true && !switched) { // aligned left
				if((menuX < 0)) { //- menuWidth) < 0) {
					this.CurrentLeftHandDisplay=false; // change to right
					menuX = igmenu_getLeftPos(parentItem) + parentItem.offsetWidth; 
				}
			}
		}
		else { // display under horizontal menu
			menuX = igmenu_getLeftPos(parentItem); 
			menuY = igmenu_getTopPos(parentItem) + parentItem.offsetHeight+1;	
		}
		
		if(ig_csom.IsIE) {
			var scrollHeight;
			if(!subMenu.scroller)
				scrollHeight = subMenu.firstChild.firstChild.scrollHeight;
			else
				scrollHeight = subMenu.scroller.table.scrollHeight;
			if(scrollHeight > pageHeight - 4) {
				if(!subMenu.scroller) {
	 				subMenu.scroller = new igmenu_scroller(subMenu);
				}
				subMenu.scroller.show();
				var divsHeight = subMenu.scroller.topDiv.offsetHeight + subMenu.scroller.bottomDiv.offsetHeight + 8;
				subMenu.scroller.setScrollHeight(pageHeight - divsHeight);
				menuHeight = subMenu.offsetHeight;
			}
			else {
				if(subMenu.scroller) {
					subMenu.scroller.hide();
				}
			}			
		}
				
		if (window.event.clientY+menuHeight>document.body.parentElement.offsetHeight){
		    menuY=menuY-menuHeight;
		}
		if (window.event.clientX+menuWidth>document.body.parentElement.offsetWidth){
		    menuX=menuX-menuWidth;
		}
				
		subMenu.style.top=menuY;
		subMenu.style.left=menuX;
		if(ig_csom.IsIE55Plus && subMenu.transPanel!=null) {	
			subMenu.transPanel.setPosition(subMenu.offsetTop, subMenu.offsetLeft, subMenu.offsetWidth, subMenu.offsetHeight);
			subMenu.transPanel.show();
		}
	}
}     