var __IURichTextBoxWithFocus = null;
var __ModalWindow = null;
var mBlink=0;var __Messages=new Array();
 
/*BETA MODAL WINDOW*/
function ModalWindow(pWindow, pBackgroundWindow, pInterval)
{
	this.Window = pWindow;
	this.BackgroundWindow = pBackgroundWindow;
	this.Interval = pInterval;
	this.Close = function()
	{
		if (this.BackgroundWindow!=null)
		{
			/*BUG FireFox 2.0*/
			var mDiv = ObtenerControl(this.BackgroundWindow.Div.id);
			var mIframe = ObtenerControl(this.BackgroundWindow.IFrame.id);
			DeleteObject(mDiv);
			DeleteObject(mIframe);
		}
		/*BUG FireFox 2.0*/
		mIframe = ObtenerControl(this.Window.id);
		DeleteObject(mIframe);
		DeleteObject(this.Window);
		window.clearInterval(this.Interval);
	}
}
function CloseModalWindow()
{
	if (__ModalWindow!=null)
	{
		__ModalWindow.Close();
		__ModalWindow=null;
	}
}
function OpenNewWindowModal(pTitle, pSource, pHeight, pWidth, pModal, pHelp, pResizable, pScrollable, pTop, pLeft)
{
	if (pModal==null || pModal==undefined)
		pModal = true;
	return OpenNewWindow(pTitle, pSource, pHeight, pWidth, pModal, pHelp, pResizable, pScrollable, pTop, pLeft);
}
function OpenNewWindow(pTitle, pSource, pHeight, pWidth, pModal, pHelp, pResizable, pScrollable, pTop, pLeft)
{
	var mObject;
	pModal = (pModal=="yes"||pModal==1||pModal==true);
	
	var pWidth;
	if (isNaN(pWidth)||pWidth<0)
		pWidth=0
	else
		pWidth=pWidth
		
	var pHeight;
	if (isNaN(pHeight)||pHeight<0)
		pHeight=0
	else
		pHeight=pHeight
	var mWindowFrame_Url = (typeof(__WindowFrame_Url)!="undefined")? __WindowFrame_Url:"/Handlers.ASPWindowFrame.aspx?";
	
	pHelp = (pHelp=="yes"||pHelp=="si"||pHelp==true);
		
	pResizableable = (pResizable=="yes"||pResizable=="si"||pResizable==true);
	pScrollable = (pScrollable=="yes"||pScrollable=="si"||pScrollable==true)?"yes":"no";
	var mDate = new Date();
	pSource = ToURL(mWindowFrame_Url + "Src=") + escape(pSource) + "&Height=" + pHeight + "&Width=" + pWidth + "&Title=" + pTitle + "&Scrollable=" + pScrollable;
	pSource += "&tmp=" + mDate.ToTimeStamp();
	pHeight += 30; //Es la barra del title de la ventana
	var mTop = -1;
	if (!isNaN(pTop) && pTop>=0)
		mTop=pTop;
	else
		mTop = (GetClientHeight()/2) - (pHeight/2) + GetScrollTop();
		
	var mLeft = -1;
	if (!isNaN(pLeft) && pLeft>=0)
		mLeft=pLeft;
	else
		mLeft = (GetClientWidth()/2) - (pWidth/2) + GetScrollLeft();
	if (__ModalWindow==null)
	{
		var mWindowName = "win" + mDate.ToTimeStamp();
		var mWindow = CreateIFrame(mWindowName, pSource, pHeight, pWidth, mTop, mLeft, 99999, false);
		mWindow.style.visibility = "visible";
		var mBGHeight = GetScrollHeight();
		var mBGWidth = GetScrollWidth();
		if (mBGHeight < GetClientHeight())
			mBGHeight = GetClientHeight();
		if (mBGWidth < GetClientWidth())
			mBGWidth = GetClientWidth();
		if (!BROWSER.IE)
		{
			mBGWidth -= 13;
			mBGHeight -= 10;
		}
		var mBackgroundWindow = null;
		if (pModal)
		{
			mBackgroundWindow = CreateWindow("back" + mWindowName, mBGHeight, mBGWidth, 0, 0, "", "");
			mBackgroundWindow.IFrame.className = "NewWindowClassIframe";
			mBackgroundWindow.Div.className = "NewWindowClass";
		}
		
		__ModalWindow = new ModalWindow(mWindow, mBackgroundWindow, window.setInterval('RefreshWindow();', 100));
		__ModalWindow.Window.focus();
		
		//mObject = window.showpModalDialog(TopSource("/ResourcesManager.aspx?Resource=VentanaDialogo.html"), pSource, para);
		/* ON CLOSE
		if (typeof(mObject) == "string")
		{
			if (mObject == __SESSIONEXPIRED)
			{
				if (ObtenerUltimaVentana()!= window)
				{
					if (window.dialogArguments)
					{
						Retornar(__SESSIONEXPIRED)
					}
					else
					{
						ObtenerUltimaVentana().location.href=window.location.href;
					}
				}
				else
				{
					window.location.reload();
				}
			} else
				return mObject
		}
		else
			return mObject
		*/
	}
	else
	{
		__ModalWindow.Window.src=pSource;
	}
}
function RefreshWindow()
{
	if (__ModalWindow != null)
	{
		//Calculo para window
		var mWidth = __ModalWindow.Window.style.width;
		var mHeight = __ModalWindow.Window.style.height;
		mWidth = mWidth.replace("px", "");
		mHeight = mHeight.replace("px", "");
		var mPosLeft = (GetClientWidth()/2) - (mWidth/2) + GetScrollLeft();
		var mPosTop = (GetClientHeight()/2) - (mHeight/2) + GetScrollTop();
		
		if (__ModalWindow.BackgroundWindow!=null)
		{
			//Calculo para background
			var mBGHeight = GetScrollHeight();
			var mBGWidth = GetScrollWidth();
			if (mBGHeight < GetClientHeight())
				mBGHeight = GetClientHeight();
			if (mBGWidth < GetClientWidth())
				mBGWidth = GetClientWidth();
			if (!BROWSER.IE)
			{
				mBGWidth -= 13;
				mBGHeight -= 10;
			}		
		}
		__ModalWindow.Window.style.left = mPosLeft + "px";
		__ModalWindow.Window.style.top = mPosTop + "px";
		if (__ModalWindow.BackgroundWindow!=null)
		{
			__ModalWindow.BackgroundWindow.IFrame.style.width = mBGWidth + "px";
			__ModalWindow.BackgroundWindow.IFrame.style.height = mBGHeight + "px";
			__ModalWindow.BackgroundWindow.Div.style.width = mBGWidth + "px";
			__ModalWindow.BackgroundWindow.Div.style.height = mBGHeight + "px";
		}
	}
}
/*END BETA MODAL WINDOW*/
function DisableControls(pDisable, pControls)
{
	if (pControls == null || pControls == undefined)
		pControls = document.forms[0].elements;
		
	for (var mIndex=0; mIndex
Proceso en ejecución.", "MessageWait", false);
}
function CloseMessageWait()
{
	CloseMessage("MessageWait");
}
function ShowMessage(pMessage, pMessageId, pAutoClose, pCloseButton, pTimeOut, pHeight, pWidth, pBackGround, pBorder, pFont, pColor)
{
	var mIFrame = null;
	var mInterval;
	//Valores por defecto
	if (pAutoClose == null)
		pAutoClose = true;
	if (pTimeOut == null)
		pTimeOut = (typeof(__ShowMessage_TimeOut)!="undefined")? __ShowMessage_TimeOut : 3500;
	if (pHeight == null)
		pHeight = (typeof(__ShowMessage_Height)!="undefined")? __ShowMessage_Height : 60;
	if (pWidth == null)
		pWidth = (typeof(__ShowMessage_Width)!="undefined")? __ShowMessage_Width : 300;
	if (pBackGround == null)
		pBackGround = (typeof(__ShowMessage_BackGround)!="undefined")?__ShowMessage_BackGround:"#FFF700";
	if (pBorder == null)
		pBorder = (typeof(__ShowMessage_Border)!="undefined")?__ShowMessage_Border:"3px solid #FFD700";
	if (pCloseButton == null)
		pCloseButton = false;
	if (pFont == null)
		pFont = (typeof(__ShowMessage_Font)!="undefined")?__ShowMessage_Font:"normal 11px Tahoma, Arial";
	if (pColor == null)
		pColor = (typeof(__ShowMessage_Color)!="undefined")?__ShowMessage_Color:"#000000";
	var mPosLeft = (GetClientWidth()/2) - (pWidth/2) + GetScrollLeft();
	var mPosTop = (GetClientHeight()/2) - (pHeight/2) + GetScrollTop();
	var mObjectWindow = CreateWindow(pMessageId, pHeight, pWidth, mPosTop, mPosLeft, pBackGround, pBorder, pFont, pColor)
	mObjectWindow.Div.innerHTML = pMessage;
	mObjectWindow.Div.style.display = "block";
	mObjectWindow.IFrame.style.display = "block";
	if (pCloseButton)
		mObjectWindow.Div.onclick = function ()
		{
			CloseMessage(pMessageId);
		}
	RefreshMessage(pMessageId);
	mInterval = window.setInterval('RefreshMessage("' + pMessageId + '");', 100);
	
	if (pAutoClose)
		window.setTimeout('CloseMessage("' + pMessageId + '", ' + mInterval + ');', pTimeOut);
}
function ObjectWindow(pIFrame, pDiv)
{
	this.IFrame = pIFrame;
	this.Div = pDiv;
}
function CreateWindow(pMessageId, pHeight, pWidth, pPosTop, pPosLeft, pBackGround, pBorder, pFont, pColor)
{
	//Valores por defecto
	if (pHeight == null)
		pHeight = 60;
	if (pWidth == null)
		pWidth = 300;
	if (pPosLeft == null)
		pPosLeft = 60;
	if (pPosTop == null)
		pPosTop = 60;
	if (pBackGround == null)
		pBackGround = "#FFF700";
	if (pBorder == null)
		pBorder = "3px solid #FFD700";
	
	var mIFrame = CreateIFrame(pMessageId, null, pHeight, pWidth, pPosTop, pPosLeft);
	var mDiv = CreateDiv(pMessageId + 'div', pHeight, pWidth, pPosTop, pPosLeft, pBackGround, pBorder, mIFrame, pFont, pColor);
	mIFrame.style.visibility = 'visible';
	mDiv.style.visibility = 'visible';
	
	var mObjectWindow = new ObjectWindow(mIFrame, mDiv);
	return mObjectWindow;
}
function CreateDiv(pDivId, pHeight, pWidth, pPosTop, pPosLeft, pBackGround, pBorder, pIFrame, pFont, pColor)
{
	//Valores por defecto
	if (pHeight == null)
		pHeight = 0;
	if (pWidth == null)
		pWidth = 0;
	if (pPosLeft == null)
		pPosLeft = 0;
	if (pPosTop == null)
		pPosTop = 0;
	if (pBackGround == null)
		pBackGround = "#FFFFFF";
	if (pBorder == null)
		pBorder = "1px solid #000000";
	if (pFont == null)
		pFont = "normal 11px Tahoma, Arial";
	if (pColor == null)
		pColor = "#000000";
	
	var mDiv = document.getElementById(pDivId)
	
	if (mDiv == null)
	{
		mDiv = document.createElement('DIV');
		mDiv.id = pDivId;
		mDiv.name = pDivId;
	}
	mDiv.style.position = 'absolute';
	mDiv.style.visibility = 'hidden';
	mDiv.style.left = pPosLeft+"px";
	mDiv.style.top =pPosTop+"px";
	mDiv.style.zIndex = 99999;
	mDiv.style.width = pWidth+"px";
	mDiv.style.height = pHeight+"px";
	mDiv.style.border = pBorder;
	mDiv.style.margin = '0px';
	mDiv.style.backgroundColor = pBackGround;
	mDiv.style.padding = '5px';
	mDiv.style.textAlign = 'center';
	mDiv.style.font = pFont;
	mDiv.style.color = pColor;
	mDiv.style.visibility = 'visible';
	if (pIFrame != null && pIFrame != undefined)
	if (BROWSER.IE)
	{
		pIFrame.document.body.insertBefore(mDiv, document.body.firstChild);
		CreateDivCorrect(mDiv);
	}
	else
	{
		document.body.insertBefore(mDiv, document.body.firstChild);
//		var mDocument = (pIFrame.contentDocument || pIFrame.contentWindow)
//		mDocument.body.appendChild(mDiv)
	}
	
	return mDiv;
}
function CreateDivCorrect(pDiv)
{
	if (document.documentElement.clientWidth>0)
	{
		var mGap = 0;
		if (!isNaN(pDiv.style.padding.replace("px", ""))){mGap+=Number(pDiv.style.padding.replace("px", ""));}
		if (!isNaN(pDiv.style.borderWidth.replace("px", ""))){mGap+=Number(pDiv.style.borderWidth.replace("px", ""));}
		mGap*=2
		var mDivWidth = Number(pDiv.style.width.replace("px", ""))-mGap;
		var mDivHeight = Number(pDiv.style.height.replace("px", ""))-mGap;
		pDiv.style.width = mDivWidth;
		pDiv.style.height = mDivHeight;
	}
}
function CreateIFrame(pIFrameId, pSource, pHeight, pWidth, pPosTop, pPosLeft, pZIndex, pScrolling)
{
	//Valores por defecto
	if (pSource == null)
		pSource = 'about:blank';
	if (pHeight == null)
		pHeight = 0;
	if (pWidth == null)
		pWidth = 0;
	if (pPosLeft == null)
		pPosLeft = 0;
	if (pPosTop == null)
		pPosTop = 0;
	if (pZIndex == null)
		pZIndex = 99998;
	pScrolling = (pScrolling=="yes"||pScrolling=="si"||pScrolling==true)?"yes":"no";
	var mIFrame = document.getElementById(pIFrameId);
	if (mIFrame == null)
	{
		mIFrame = document.createElement('IFRAME');
		mIFrame.id = pIFrameId;
		mIFrame.name = pIFrameId;
		document.body.insertBefore(mIFrame, document.body.firstChild)
		mIFrame.frameborder = mIFrame.marginheight = mIFrame.marginwidth = mIFrame.hspace = mIFrame.vspace = 0;
		mIFrame.style.border = '0';
		mIFrame.style.position = 'absolute';
		mIFrame.style.visibility = 'hidden';
		mIFrame.style.left = pPosLeft+"px";
		mIFrame.style.top = pPosTop+"px";
		mIFrame.style.width = pWidth+"px";
		mIFrame.style.height = pHeight+"px";
		mIFrame.style.zIndex = pZIndex;
		mIFrame.scrolling = pScrolling;
			
		mIFrame.src = pSource;
	}
	
	return mIFrame;
}
function CloseMessage(pMessageName, pInterval)
{
	if (ObtenerControl(pMessageName + 'div') != undefined && ObtenerControl(pMessageName + 'div') != null)
	{
		ObtenerControl(pMessageName + 'div').style.display = "none";
		ObtenerControl(pMessageName).style.display = "none";
		if (pInterval != null)
			window.clearInterval(pInterval);
			
		DeleteObject(ObtenerControl(pMessageName + 'div'));
		DeleteObject(ObtenerControl(pMessageName));
	}
}
function RefreshMessage(pMessageName)
{
	if (ObtenerControl(pMessageName + 'div') != undefined)
	{
		var mWidth = 300;
		var mHeight = 60;
		var mPosLeft = (GetClientWidth()/2) - (mWidth/2) + GetScrollLeft();
		var mPosTop = (GetClientHeight()/2) - (mHeight/2) + GetScrollTop();
		
		ObtenerControl(pMessageName + 'div').style.left = mPosLeft+"px";
		ObtenerControl(pMessageName).style.left = mPosLeft+"px";
		ObtenerControl(pMessageName + 'div').style.top = mPosTop+"px";
		ObtenerControl(pMessageName).style.top = mPosTop+"px";
	}
}
/*******************************/
/* FIN DE MESSAGES             */
/*******************************/
/*******************************/
/* RESIZER                     */
/*******************************/
var ResizeManager = new ResizeManager();
function ResizeManager()
{
	var ResizeSuscriber = new Array();
	this.Add = function(pReziseClient)
	{
		if (typeof(pReziseClient) == "ResizeClient")
			ResizeSuscriber.push(pReziseClient);
		else
			alert("No se pudo agregar el ResizeClient al ResizeManager.");
	}
	this.AddItem = function(pId, pFunction)
	{
		var mParameters = new Array();
		for (var mArg = 2; mArg < arguments.length; mArg++)
		{
			mParameters.push(arguments[mArg])
		}
	
		var mResizeClient = new ResizeClient(pId, pFunction);
		mResizeClient.Parameters = mParameters;
		var mAgregar = true;
		for (mIndex = 0; mIndex
Por favor modifiquelos y vuelva a intentar la operación.", "DataBindValidateAlert", null, true);
}
function HasError(pObject)
{
  var mNameImg;
  var mFormat = pObject.getAttribute("format");
	if (mFormat == "IsDate"){
    mNameImg = "imgInfo_txt" + pObject.name;
  } else {
    mNameImg = "imgInfo_" + pObject.name;
  }
  
  var control = ObtenerControl(mNameImg);
  if (control != null){
    var mSetError_Image =(typeof(__SetError_Image)!="undefined")?__SetError_Image:"error.gif";
	  return (control.src.indexOf(URL_IMAGEN + '/' + mSetError_Image) > -1);
	}
	
	return false;
}
function DataBindActivate(pGroup)
{
	if (typeof(S_DataBinding) != "undefined")
	{
		if (typeof(pGroup) == "undefined" || pGroup == null)
			pGroup = null;
		for (var mIndex = 0;  mIndex < S_DataBinding.length; mIndex++)
		{
			mDomi_Id = S_DataBinding[mIndex].Domi_Id;
			mObjectName = S_DataBinding[mIndex].ControlName;
			
			if (pGroup == null || pGroup == S_DataBinding[mIndex].Group)
			{
				var mObject = ObtenerControl(mObjectName);
		
				if (typeof(mObject) == "undefined")
				{
					alert("El objeto " + mObjectName + " no existe.");
					return false;
				}
				mDominioEN = S_DominioColEN.SelectItem("Domi_Id", mDomi_Id);
				if (mDominioEN != null && mObject != undefined)
				{
					mRegExp = new RegExp(mDominioEN.Domi_RegExp);
					if (!mRegExp.test(""))
					{
						SetInfo(mObject);
					}
				}
			}
		}
		DataBindHelpActivate(pGroup);
	}
}
function DataBindHelpActivate(pGroup)
{
	if (typeof(S_DataBinding) != "undefined")
	{
		if (typeof(pGroup) == "undefined" || pGroup == null)
			pGroup = null;
		for (var mIndex = 0;  mIndex < S_DataBinding.length; mIndex++)
		{
			mObjectName = S_DataBinding[mIndex].ControlName;
			mHelp_Id = S_DataBinding[mIndex].TextItem_Id;
			
			if (pGroup == null || pGroup == S_DataBinding[mIndex].Group)
			{
				var mObject = ObtenerControl(mObjectName);
		
				if (typeof(mObject) == "undefined")
				{
					alert("El objeto " + mObjectName + " no existe.");
					return false;
				}
				if (mObject != undefined)
				{
					var mAyuda = ObtenerAyuda(mHelp_Id);
					if (mAyuda != "null" && mAyuda != null && mAyuda != undefined && mAyuda != "")
						SetHelp(mObject, mAyuda);
				}
			}
		}
	}
}
function DataBindInfoClearAll(pClearHelp, pGroup)
{
	if (typeof(S_DataBinding) != "undefined")
	{
		if (typeof(pClearHelp) == "undefined" || pClearHelp == null)
			pClearHelp = true;
		if (typeof(pGroup) == "undefined" || pGroup == null)
			pGroup = null;
		
		for (mIndex = 0; mIndex < S_DataBinding.length; mIndex++)
		{
			if(ObtenerControl(S_DataBinding[mIndex].ControlName) != null)
			{
				if (pGroup == null || S_DataBinding[mIndex].Group == pGroup)
				{
					ClearInfo(ObtenerControl(S_DataBinding[mIndex].ControlName));
					if (pClearHelp)
						ClearHelp(ObtenerControl(S_DataBinding[mIndex].ControlName));
				}
			}
		}
	}
}
function DataBindErrorClearAll(pGroup)
{
	if (typeof(S_DataBinding) != "undefined")
	{
		if (typeof(pGroup) == "undefined" || pGroup == null)
			pGroup = null;
		for (mIndex = 0; mIndex < S_DataBinding.length; mIndex++)
		{
			if (pGroup == null || S_DataBinding[mIndex].Group == pGroup)
			{
				if(ObtenerControl(S_DataBinding[mIndex].ControlName) != null)
					ClearError(ObtenerControl(S_DataBinding[mIndex].ControlName));
			}
		}
	}
}
function DataBindHelpClearAll(pGroup)
{
	if (typeof(S_DataBinding) != "undefined")
	{
		if (typeof(pGroup) == "undefined" || pGroup == null)
			pGroup = null;
		for (mIndex = 0; mIndex < S_DataBinding.length; mIndex++)
		{
			if (pGroup == null || S_DataBinding[mIndex].Group == pGroup)
			{
				if(ObtenerControl(S_DataBinding[mIndex].ControlName) != null)
					ClearHelp(ObtenerControl(S_DataBinding[mIndex].ControlName));
			}
		}
	}
}
function SetError(pObject, pInfo)
{
  DataBindError = true;
  var mNameImg;
  var mFormat = pObject.getAttribute("format");
  
	if (mFormat == "IsDate"){
    mNameImg = "imgInfo_" + pObject.name;
  } else {
    mNameImg = "imgInfo_" + pObject.name;
  }
  
  if (pInfo != null){
      var mObj = ObtenerControl(mNameImg);
      if (mObj != null){
        mObj.title = pInfo;
      }
  } 
  
  // muestro el de Error
  ShowImageError(mNameImg);
}
function ClearError(pObject)
{
  var mNameImg;
  var mFormat = pObject.getAttribute("format");
  
	if (mFormat == "IsDate"){
    mNameImg = "imgInfo_" + pObject.name;
  } else {
    mNameImg = "imgInfo_" + pObject.name;
  }
  if (IsImageVisible(mNameImg)) SetInfo(pObject);
  
  HideImageError(mNameImg);
}
function SetInfo(pObject, pInfo)
{
  var mNameImg;
  var mFormat = pObject.getAttribute("format");
  
	if (mFormat == "IsDate"){
    mNameImg = "imgInfo_" + pObject.name;
  } else {
    mNameImg = "imgInfo_" + pObject.name;
  }
 
  if (pInfo != null){
      var mObj = ObtenerControl(mNameImg);
      if (mObj != null){
        mObj.title = pInfo;
      }
  } 
  
  ShowImageInfo(mNameImg);
}
function ClearInfo(pObject)
{
   var mNameImg;
  var mFormat = pObject.getAttribute("format");
  
	if (mFormat == "IsDate"){
    mNameImg = "imgInfo_" + pObject.name;
  } else {
    mNameImg = "imgInfo_" + pObject.name;
  }
  
  HideImageInfo(mNameImg);
}
function SetHelp(pObject, pInfo)
{
	var mNameImg = "imgHelp_" + pObject.name;
  
  if (pInfo != null){
      var mObj = ObtenerControl(mNameImg);
      if (mObj != null){
        mObj.title = pInfo;
      }
  } 
  
  ShowImage(mNameImg);
}
function ClearHelp(pObject)
{
  var mNameImg = "imgHelp_" + pObject.name;
  
  HideImage(mNameImg);
}
function ResetInfoErrorDivs()
{
	var arrayInfoNames = new Array();
	var arrayInfoTexts = new Array();
	var arrayErrorNames = new Array();
	var arrayErrorTexts = new Array();
	var indexErrors = 0;
	var indexInfos = 0;
	
	if (document != null && document != undefined)
	{
		for (divName in document.getElementsByTagName("div"))
		{
			if (divName.indexOf("divInfo_") > -1)
			{
				var div = ObtenerControl(divName);
				var controlName = divName.ReplaceAll("divInfo_", "");
				var html = div.innerHTML;
				d = html.indexOf('title="') + 7;
				h = html.substr(d, html.length - d).indexOf('"');
				arrayInfoNames.push(controlName);
				arrayInfoTexts[controlName] = html.substr(d, h);
				indexInfos++;
			}
			if (divName.indexOf("divErr_") > -1)
			{
				var div = ObtenerControl(divName);
				var controlName = divName.ReplaceAll("divErr_", "");
				var html = div.innerHTML;
				d = html.indexOf('title="') + 7;
				h = html.substr(d, html.length - d).indexOf('"');
				arrayErrorNames.push(controlName);
				arrayErrorTexts[controlName] = html.substr(d, h);
				indexErrors++;
			}
		}
		for (i=0;i document.body.clientWidth)
			mLeft = 0;
		else if (mLeft < 0)
			mLeft = 5;
		else if (mLeft + mWidth > document.body.clientWidth)
			mLeft = document.body.clientWidth - mWidth - 5;
			
		if (mHeight > document.body.clientHeight)
			mTop = 0;
		else if (mTop < 0)
			mTop = 5;
		else if (mTop + mHeight > document.body.clientHeight)
			mTop = document.body.clientHeight - mHeight - 5;
	}
	var mIFrame = CreateIFrame("IUCalendar" + mObject.id, pCalendar + "&ReturnTextBox=" + pTextBox + "&ReturnFunction=" + pReturnFunction + "&Date=" + mDate, mHeight, mWidth, mTop, mLeft, null, "no");
	if (pReload)
	{
		mIFrame.src = pCalendar + "&ReturnTextBox=" + pTextBox + "&ReturnFunction=" + pReturnFunction + "&Date=" + mDate;
	}
	
	if (mIFrame.style.visibility != "visible")
	{
		mIFrame.style.visibility = "visible";
		mIFrame.style.display = "block";
	}
	else
	{
		mIFrame.style.visibility = "hidden";
		mIFrame.style.display = "none";
	}
	return false;
}
function IUTextBoxCalendar_ButtonCheck(e)
{
		if (!e) var e = window.event;
		var keyCode = ('number' == typeof e.keyCode)?e.keyCode:e.which;
		if (keyCode == 9)
		{
			var mBtnEnabled = false;
			//Valido si esta vacio
			if (e.srcElement.value=="")
				mBtnEnabled = true;
				
			//Valido si hay error
			if (!e.srcElement.Validate())
				mBtnEnabled = true;
				
			if (mBtnEnabled)
			{
				ObtenerControl("btn" + e.srcElement.id).tabIndex=0;
			}
			else
			{
				ObtenerControl("btn" + e.srcElement.id).tabIndex=-1;
			}
		}
}
function IUDDLND_ButtonCheck(e)
{
		if (!e) var e = window.event;
		var keyCode = ('number' == typeof e.keyCode)?e.keyCode:e.which;
		if (keyCode == 9)
		{
		}
}
/*****************************/
/* FIN CALENDAR				 */
/*****************************/
/*****************************/
/* OPERACIONES DE VENTANA	 */
/*****************************/
function FN_Op_Alta_Exitosa(pAvisa, pRecarga)
{
	var cadena;
	if (pRecarga)             
	{
		cadena = "Alta exitosa.\n";
		cadena += "\n¿Desea seguir cargando?";
		if (confirm(cadena))
		{
			var action = document.forms[0].action;
			//Elimino el web_metodo que se haya ejecutado
			action = EmptyQueryStringVar(action, "&" + WEB_METODO);
			action = EmptyQueryStringVar(action, "?" + WEB_METODO);
			action = action + "&" + WEB_METODO + "=" + MODOINICIO_ALTA;
			
			//Redirecciono a la página con el modo alta
			window.location.url(action);
		}
		else
			window.close();
	}
		
	if (pAvisa)
	{
		cadena = "Alta exitosa.\n";
		alert(cadena);
	}
	
	window.close();
}
function FN_Op_Modificacion_Exitosa(pAvisa)
{
	var cadena;
	if (pAvisa)
	{
		cadena = "Modificación exitosa.\n";
		alert(cadena);
	}
	
	window.close();
}
function FN_Op_Eliminacion_Exitosa(pAvisa)
{
	var cadena;
	if (pAvisa)
	{
		cadena = "Eliminación exitosa.\n";
		alert(cadena);
	}
	
	window.close();
}
function FN_Op_Operacion_Exitosa(pAvisa)
{
	var cadena;
	if (pAvisa)
	{
		cadena = "Operación exitosa.\n";
		alert(cadena);
	}
	
	window.close();
}
/*****************************/
/* FIN OPERACIONES DE VENTANA*/
/*****************************/
/********************/
/* OBTENER			*/
/********************/
function ObtenerAyuda(id)
{
	if (!id) return null;
	if(typeof(MESSAGES)!="undefined")
	{
		var mMessage = MESSAGES.SelectItem("Texto_Id", id);
		
		if (mMessage != undefined)
			return mMessage.Ayuda;
		else
			return null;
	}
	else
	{
		return null;
	}
}
function ObtenerMensaje(id)
{
    if (!id) return null;
        if(typeof(MESSAGES)!="undefined")
        {
            var mMessage = MESSAGES.SelectItem("Texto_Id", id);
            if (mMessage != undefined)
                return mMessage.Texto;
            else
                return "[sin definir]";
        }
    else
    {
        if (typeof(__Messages[id])=="undefined")
        {
            __Messages[id]=ExecuteRemoteSync("Civinext.Framework", "Internationalization.LanguageHelper", "GetText", id);
        }
        return __Messages[id];
    }
}
function ObtenerControl(id)
{
	if (!id) return null;
	
	if (id.length > 0) {
		if (id.toLowerCase().indexOf("form") >-1) {
		  if (window.document.forms[id])
		    return window.document.forms[id];
		}
		return window.document.getElementById(id)
	}
}
function ObtenerUltimaVentana()
{
	var mWin = window.top;
	while(mWin.parent.opener != undefined)
	{
		try
		{
			//Pregunto por location.href para evitar error de cross-domain restriction
			//http://www.microsoft.com/technet/security/bulletin/fq99-043.mspx
			var a = mWin.parent.opener.location.href;
			mWin = mWin.parent.opener;
		}
		catch(e)
		{
			break;
		}
	}
	while(mWin.parent != mWin)
	{
		try
		{
			//Pregunto por location.href para evitar error de cross-domain restriction
			//http://www.microsoft.com/technet/security/bulletin/fq99-043.mspx
			var a = mWin.parent.location.href;
			mWin = mWin.parent;
		}
		catch(e)
		{
			break;
		}
	}
	return mWin;
}
/********************/
/* FIN OBTENER		*/
/********************/
/********************/
/* IUFRAME			*/
/********************/
function IUFrameCambiar(id)
{
	var fs_pnl = ObtenerControl(id + '_panel');
	var fs_img = ObtenerControl(id + '_imagen');
	
	if (fs_pnl.style.display == "none")
	{
		fs_pnl.style.display = "";
		fs_img.src = URL_FRAMEPLEGARIMAGEN;
		ObtenerControl(id).IsVisible = true;
	}
	else
	{
		fs_pnl.style.display = "none";
		fs_img.src = URL_FRAMEDESPLEGARIMAGEN;
		ObtenerControl(id).IsVisible = false;
	}
}
/********************/
/* FIN IUFRAME		*/
/********************/
/***********************/
/* ENVIAR AL SERVER	   */
/***********************/
function EnviarAlServer(pMetodo, pSubmit, pShowMessage, pDisabledControls, pForm)
{
	var action, mForm;
	if (pSubmit == undefined || pSubmit == null) 
		pSubmit = true;
	
	if (pShowMessage == undefined || pShowMessage == null) 
		pShowMessage = true;
	if (pDisabledControls == undefined || pDisabledControls == null) 
		pDisabledControls = true;
			
			
	var mEjecutar = true;
	if (DATABIND_AUTOVALIDATE==true)
		mEjecutar = DataBindValidate();
		
	if (document.forms[0] == undefined)
	{
		mEjecutar = false;
		alert("You must implement a Form control to Submit the current page.")
	}
	
	if (mEjecutar)
	{
		if (pForm == undefined || pForm == null) 
		{
			if(!BROWSER.Firefox)
			{
				if (event!=null && event.srcElement!=null)
					mForm = GetParentForm(event.srcElement);
				else
					mForm = document.forms[0];
			}	
			else
			{
				mForm = document.forms[0];
			}
		}
		else
		{
			mForm = pForm;
		}
		
		action = mForm.action;
		//Verifico que no quieran hacer ejecutar nada desde un URL manual
		action = EmptyQueryStringVar(action, "&" + WEB_METODO);
		action = EmptyQueryStringVar(action, "?" + WEB_METODO);
		action = action + "&" + WEB_METODO + "=" + pMetodo;
		if (typeof(JS_WEB_MODO) != "undefined")
		{
			action = EmptyQueryStringVar(action, "&" + WEB_MODO);
			action = EmptyQueryStringVar(action, "?" + WEB_MODO);
			action += "&" + WEB_MODO + "=" + JS_WEB_MODO;
		}
		IURichTextBox_OnSubmit();
		action = ReplaceString(action, "&&", "&");
		
		if (action.indexOf("?") < 0)
			action = action.replace("&", "?&");
		
		mForm.action = action;
		
		try
		{
			if (pSubmit)
			{
				if (pShowMessage)
				ShowMessageWait(pDisabledControls);
					
				mForm.submit();
			}
			else
      {
				//ShowMessageWait(pDisabledControls);
				EnviarAlServerRemote(null, mForm);
			}
		}
		catch(e)
		{
			if (BROWSER.IE)
			{
				if (e.number == -2147024891)
				{
					CloseMessageWait();
					alert("Por favor ingrese una ruta de archivo\n válida y vuelva a intentarlo.");
				}
				else
				{
					try
					{
						CloseMessageWait();
					}
					catch(e1)
					{}
					alert("Error en aplicación: (" + e.number + ") " + e.description);
				}
			}
			else
			{
					try
					{
						CloseMessageWait();
					}
					catch(e1)
					{}
					alert("Error en aplicación: " + e);
			}
			if(typeof(OnSubmitError) != "undefined")
			{
			  OnSubmitError(e);
			}
		}
	}
}
function GetParentForm(pObject)
{
	if (pObject!=null)
	{
		if (pObject.tagName=="FORM")
			return pObject;
		else if(pObject.parentNode!=undefined)
			return GetParentForm(pObject.parentNode)
		else
			return null;
	}
}
function EmptyQueryStringVar(pQueryString, pVar)
{
	var mIndexOf = pQueryString.indexOf(pVar)
	if (mIndexOf > -1)
	{
		var mResto = pQueryString.indexOf("&", mIndexOf + 1);
		pQueryString = pQueryString.substring(0, mIndexOf) + ((mResto>-1)?pQueryString.substr(mResto):"");
	}
	return pQueryString
}
function ReplaceString(pString, pOldValue, pNewValue)
{
	while (pString.indexOf(pOldValue) > -1)
		pString = pString.replace(pOldValue, pNewValue);
		
	return pString;
}
/************************/
/* FIN ENVIAR AL SERVER	*/
/************************/
/********************/
/* IUTAB			*/
/********************/
function IUTabHideShowTab(pIUTabId, pIUTabIndex, pHide)
{
	var mDisplay = "";
	if (pHide) 
		mDisplay = "none";
	else 
		mDisplay = "block";
		
	ObtenerControl(pIUTabId + "_" + pIUTabIndex).style.display = mDisplay;
	var oChildNodes = ObtenerControl(pIUTabId + "_" + pIUTabIndex).childNodes;
	for (var mIndex=0; mIndex -1)
		{
			campoTag = campoTag.substring(posInicial, campoTag.length);
			campoTag = campoTag.replace(";" + pCampo + "=", "");
			campoTag = campoTag.substring(0, campoTag.indexOf(";"));
			return campoTag;
		}
	}
}
function IUPanelViewVaciarValor(pPanelView)
{
	if (document["IUPanelViewRowSeleccionado_" + pPanelView] != undefined)
		document["IUPanelViewRowSeleccionado_" + pPanelView] = undefined;
}
function IUPanelViewPaginar(pIUPanelViewName, pPageNumber)
{
	ShowMessageWait(false);
	IUPanelViewPositionXYPersistir(pIUPanelViewName);
	ExecutionRemoteUrl(ToURL("/Handlers.ASPIUPanelViewRemote.aspx?IUPanelViewID=" + pIUPanelViewName + "&IUPageNumber=" + pPageNumber),'',"IframeRemote_" + pIUPanelViewName);
}
function IUPanelViewActualizar(pIUPanelViewName, pParametros)
{
	if (pParametros == null || pParametros == undefined)
		pParametros = "";
	ShowMessageWait(false);
	IUPanelViewPositionXYPersistir(pIUPanelViewName);
	ExecutionRemoteUrl(ToURL("/Handlers.ASPIUPanelViewRemote.aspx?IUPanelViewID=" + pIUPanelViewName + "&IUParametros=" + pParametros),'',"IframeRemote_" + pIUPanelViewName);
}
function IUPanelViewPositionXYPersistir(pIUPanelViewName)
{
	var mValores = ObtenerControl("IUPanelView_DivScroll").scrollLeft + ":" + ObtenerControl("IUPanelView_DivScroll").scrollTop;
	ObtenerControl(pIUPanelViewName).setAttribute("PositionXY", mValores);
}
function IUPanelViewPositionXYEstablecer(pIUPanelViewName)
{
	var mValores = ObtenerControl(pIUPanelViewName).getAttribute("PositionXY");
	if (mValores != "" && typeof(mValores) != "undefined" && mValores != null)
	{
		if (mValores.indexOf(":") >= 0)
		{
			mValores = mValores.split(":");
			ObtenerControl("IUPanelView_DivScroll").scrollLeft = mValores[0];
			ObtenerControl("IUPanelView_DivScroll").scrollTop = mValores[1];
		}
	}
}
function IUPanelViewPageNumber_OnChange(pIUPanelViewName, pIUPanelViewText, pMaxPage)
{
	if (pIUPanelViewText.value > pMaxPage)
		pIUPanelViewText.value = pMaxPage;
	if (pIUPanelViewText.value < 1)
		pIUPanelViewText.value = 1;
		
	IUPanelViewPaginar(pIUPanelViewName, pIUPanelViewText.value);
}
function IUPanelViewCount_OnChange(pIUPanelViewName, pddlIUPanelViewPageCount)
{
	InicializarSelect(pddlIUPanelViewPageCount);
	ShowMessageWait(false);
	IUGridPositionXYPersistir(pIUPanelViewName);
	ExecutionRemoteUrl(ToURL("/Handlers.ASPIUPanelViewRemote.aspx?IUPanelViewID=" + pIUPanelViewName + "&IUPageCount=" + pddlIUPanelViewPageCount.SelectedValue()),'',"IframeRemote_" + pIUPanelViewName);
}
/********************/
/* FIN IUPANELVIEW	*/
/********************/
/********************/
/* IUGRID			*/
/********************/
var IUGridColor, IUGridClickColor;
/* para column width resize */
var selDiv=null;
var selCol=null;
var selColoffL=null;
var selTbl=null;
var selTbloffL = null;
var mouseX = null;
var mouseY = null;
var docBody = (document.documentElement)?document.documentElement:(document.body)?document.body:document.getElementsByTagName("body").item(0);
document.onmousemove = captureMouse;
function falsefunc() { return false; }
function startDrag(oElement){
	document.onmousedown = falsefunc;
	document.onmouseup = drop;
  selDiv=oElement;
	oElement.style.borderLeft="dotted 1px background";
	
  var h = document.getElementById(oElement.value)
  var i = h.cellIndex;
  var colID = h.parentNode.parentNode.parentNode.firstChild.childNodes(i).id
  selCol=document.getElementById(colID);
  selTbl=selCol.parentNode.parentNode;
  	
  selTbloffL = mouseX-selTbl.scrollWidth + 5 ;
  selColoffL = mouseX-selCol.scrollWidth + 5 ;
  
  //St();
  
	docBody.style.cursor = 'w-resize';
	document.onmousemove = drag;
}
function drag(e){
	captureMouse(e);
	if(selCol)
	{	
	    if ( selColoffL > mouseX ) return false;
	  
    selCol.style.width=mouseX-selColoffL + 'px';
		selTbl.style.width=mouseX-selTbloffL + 'px';
	
	}
	return false;
}
function drop(){
//    // resize on drop
//	if(selCol)
//	{	
//		selTbl.style.width=mouseX-selTbloffL + 'px';
//	    selCol.style.width=mouseX-selColoffL + 'px';
//	}
  selDiv.style.display="none";
  selDiv.style.borderLeft="";
  setDiv = null;
	selCol = null;
	selTbl = null;
  docBody.style.cursor = 'auto';
	document.onmousemove = captureMouse;
	document.onmousedown = null;
	document.onmouseup = null;
}
function captureMouse(e){
	if (!e) e = window.event;
	if (e)
	{ 
		if (e.pageX)
			mouseX=e.pageX;
		else if(e.clientX)
		{
			mouseX=e.clientX + docBody.scrollLeft;
		}
		if (e.pageY)
			mouseY=e.pageY;
		else if(e.clientY)
		{
			mouseY=e.clientY + docBody.scrollTop;
		}		
		
	}
}
function Stx(){
    window.status = "MoX: " + mouseX + "MoY: " + mouseY;
}
function IUGrid_MouseOver(oTbl){
    if ( selCol != null && selCol != undefined ) return false;
    //var oElement = document.elementFromPoint( event.clientX, event.clientY)
    var coordX, coordY;
    if (typeof(event)!="undefined")
    {
			coordX = event.clientX;
			coordY = event.clientY;
		}
		else
		{
			coordX = 0;
			coordY = 0;
		}
			
    var oElement = document.elementFromPoint( coordX , coordY)
    if ( oElement.id.indexOf("Head")!=-1 ) // encab
    {
        var tbl = oTbl;
        var tblBody = tbl.getElementsByTagName("tbody").item(0);
        var tblRow = tblBody.getElementsByTagName("tr").item(0);
        var colCount = tblRow.childNodes.length;
        
        var dragDiv = document.getElementById( oTbl.id + '_dragDiv' );
        if ( dragDiv==null || dragDiv==undefined ) return false;
        dragDiv.value = oElement.id ;
        var theCell = oElement;
        
        //dragDiv.style.top = getRealTop(theCell) + 'px';
        //dragDiv.style.top = theCell.parentNode.parentNode.parentNode.parentNode.scrollTop + 'px';
        
        var a = theCell.id;
        var b = tbl.parentNode.id
        var e2 = "getRealLeft(document.getElementById('" + a + "')) + document.getElementById('" + a + "').offsetWidth - document.getElementById('" + b + "').scrollLeft + 'px'"
        
        //prevenir display si está fuera del grid
        var pos0 = getRealLeft(document.getElementById(a)) + document.getElementById(a).offsetWidth - document.getElementById(b).scrollLeft
        var pos1 = getRealLeft(document.getElementById(b)) + document.getElementById(b).offsetWidth
        
        //window.status = pos0 + ';' + pos1
        if ( pos0 > pos1 ) return false;
        
    	  dragDiv.style.setExpression("left", e2)
    	  var t1 = "getRealTop(document.getElementById('" + a + "').parentNode.parentNode.parentNode.parentNode)"
        dragDiv.style.setExpression("top", t1 )
        //dragDiv.style.height = tbl.clientHeight + 'px';
        //dragDiv.style.height = oElement.clientHeight + 'px';
        
        var h1 = "document.getElementById( '" + oElement.id + "').clientHeight"
        dragDiv.style.setExpression("height", h1 )
        
        dragDiv.style.visibility = "visible";
        dragDiv.style.display = "block";
    }
    
    return false;
}
/* fin para column width resize */
function IUGridRowMouseOver(pGrilla, pRow)
{
	if (document["IUGridRowSeleccionado_" + pGrilla]!=pRow)
	{
		IUGridColor = pRow.style.backgroundColor;
		IUGridClickColor = pRow.style.backgroundColor;
		pRow.style.backgroundColor = 'd0d0d0';
	}
}
function IUGridRowMouseOut(pGrilla, pRow)
{
	if (document["IUGridRowSeleccionado_" + pGrilla]!=pRow)
		pRow.style.backgroundColor = IUGridColor;
}
	
function IUGridRowClick(pGrilla, pRow)
{
	if (document["IUGridRowSeleccionado_" + pGrilla] != undefined)
		document["IUGridRowSeleccionado_" + pGrilla].style.backgroundColor = IUGridClickColor;
 	document["IUGridRowSeleccionado_" + pGrilla] = pRow;
  IUGridClickColor = pRow.style.backgroundColor;
	pRow.style.backgroundColor = 'e0e0e0';
}
function IUGridRowEstablecer(pIUGridName)
{
	var mRow = document["IUGridRowSeleccionado_" + pIUGridName];
	var mEstablecido = false;
	if (mRow != null && typeof(mRow) != undefined)
	{
		var mTag = mRow.getAttribute("tag");
		var mTable = ObtenerControl("IUGridData_" + pIUGridName);
		var mRows = mTable.rows;
	  for (var mRowIndex = 1; mRowIndex -1)
		{
			campoTag = campoTag.substring(posInicial, campoTag.length);
			campoTag = campoTag.replace(";" + pCampo + "=", "");
			campoTag = campoTag.substring(0, campoTag.indexOf(";"));
			return campoTag;
		}
	}
}
function IUGridFiltrarPorValor(pIUGridName, pField, pFieldValue, pSeachType)
{
	/*
	pSeachType:
		1: Busqueda al principio:	pField = pFieldValue + '%'
		2: Busqueda al medio:		pField = '%' + pFieldValue + '%'
		3: Busqueda al fin:			pField = '%' + pFieldValue
	*/
	
	var mTable = ObtenerControl("IUGridData_" + pIUGridName);
	if (mTable != undefined)
	{
		var mRows = mTable.rows;
		for (var mRowIndex = 1; mRowIndex -1)
			{
				mCampoTag = mCampoTag.toLowerCase();
				pFieldValue = pFieldValue.toLowerCase();
				mCampoTag = mCampoTag.substring(mPosInicial, mCampoTag.length);
				mCampoTag = mCampoTag.replace(";" + pField + "=", "");
				mCampoTag = mCampoTag.substring(0, mCampoTag.indexOf(";"));
				if (pSeachType == 1)
				{
					if (mCampoTag.indexOf(pFieldValue) == 0)
						mRows[mRowIndex].style.display = "block";
					else
						mRows[mRowIndex].style.display = "none";
				}
				else if (pSeachType == 2)
				{
					if (mCampoTag.indexOf(pFieldValue) != -1)
						mRows[mRowIndex].style.display = "block";
					else
						mRows[mRowIndex].style.display = "none";
				}
				else if (pSeachType == 3)
				{
					if (mCampoTag.lastIndexOf(pFieldValue) == (mCampoTag.length - pFieldValue.length) && mCampoTag.lastIndexOf(pFieldValue) > -1)
						mRows[mRowIndex].style.display = "block";
					else
						mRows[mRowIndex].style.display = "none";
				}
			}
		}
	}
}
function IUGridOrderOnClient(pIUGridName, pCol)
{
	var mTable = ObtenerControl("IUGridData_" + pIUGridName);
	if (mTable != undefined)
	{
		ShowMessageWait(false);
		var mRows = mTable.rows;
		var mRowLength = mTable.rows.length;
		var mCellLength = 0;
		var mCellText;
		var mRowIndexSrc = 0;
		var mTagAtt;
		
		if (mRowLength > 0)
			mCellLength = mTable.rows[0].cells.length;
		
		for (var mRowIndex = 1; mRowIndex Number(mCampo2))
					{
						mCampo1 = mCampo2;
						mRowIndexSrc = mRowSort;
					}
				}
				else
				{
					if (mCampo1 > mCampo2)
					{
						mCampo1 = mCampo2;
						mRowIndexSrc = mRowSort;
					}
				}
				
			}
			if (mCampo1 != mCampo3)
			{
				for (var mCellIndex = 0; mCellIndex= 0)
		{
			mValores = mValores.split(":");
			ObtenerControl("IUGrid" + pIUGridName + "_DivScroll").scrollLeft = mValores[0];
			ObtenerControl("IUGrid" + pIUGridName + "_DivScroll").scrollTop = mValores[1];
		}
	}
}
function IUGridPageNumber_OnChange(pIUGridName, pIUGridPageText, pMaxPage)
{
	if (pIUGridPageText.value > pMaxPage)
		pIUGridPageText.value = pMaxPage;
	if (pIUGridPageText.value < 1)
		pIUGridPageText.value = 1;
		
	IUGridPaginar(pIUGridName, pIUGridPageText.value);
}
function IUGridPageCount_OnChange(pIUGridName, pddlIUGridPageCount)
{
	InicializarSelect(pddlIUGridPageCount);
	ShowMessageWait(false);
	IUGridPositionXYPersistir(pIUGridName);
	ExecutionRemoteUrl(ToURL("/Handlers.ASPIUGridRemote.aspx?IUGridID=" + pIUGridName + "&IUPageCount=" + pddlIUGridPageCount.SelectedValue()),'',"IframeRemote_" + pIUGridName);
}
/********************/
/* FIN IUGRID		*/
/********************/
/********************/
/* IUDROPDOWNLIST	*/
/********************/
function IUDDLActualizar(pDDL, pParametros, pSelectedValue)
{
	if (pParametros == null || pParametros == undefined)
		pParametros = "";
	if (pSelectedValue == null || pSelectedValue == undefined)
		pSelectedValue = "";
	
	var mDDL = ObtenerControl(pDDL);
	var mUrl = ToURL("/Handlers.ASPIUDropDownListRemote.aspx?");
	mUrl += "IUDDLID=" + pDDL;
	mUrl += "&IUParametros=" + pParametros;
	mUrl += "&DataSourceAssembly=" + mDDL.Assembly(); 
	mUrl += "&DataSourceClassName=" + mDDL.Clase();
	mUrl += "&DataSourceMethod=" + mDDL.Metodo();
	mUrl += "&DataValueField=" + mDDL.getAttribute("DataValueField");
	mUrl += "&DataTextField=" + mDDL.getAttribute("DataTextField");
	mUrl += "&OptionCero=" + mDDL.getAttribute("OptionCero");
	mUrl += "&OptionCeroSmall=" + mDDL.getAttribute("OptionCeroSmall");
	mUrl += "&OptionValorNeg=" + mDDL.getAttribute("OptionValorNeg");
	mUrl += "&SelectedValue=" + pSelectedValue;
	mUrl += "&class=" + mDDL.getAttribute("mclass");
	mUrl += "&tabindex=" + String((mDDL.getAttribute("tabindex")==null)?0:mDDL.getAttribute("tabindex"));
	mUrl += "&onchange=" + mDDL.getAttribute("monchange");
	mUrl += "&width=" + mDDL.getAttribute("width");
	mUrl += "&height=" + mDDL.getAttribute("height");
	
	ExecutionRemoteUrl(mUrl,'',"IframeRemote_" + pDDL);
}
/********************/
/* FIN IUDROPDOWNLIST*/
/********************/
/************************************/
/* IUDROPDOWNLIST NOTDROPABLE		*/
/************************************/
function IUDDLNotDropable_Open(pIUDDLND, pWindowHelper, pHeight, pWidth, pOnChange)
{
  var mIUDDLNB_Obj = ObtenerControl(pIUDDLND);
  var mParameters = "";
  mParameters += "&DataSourceAssembly=" + mIUDDLNB_Obj.getAttribute("DataSourceAssembly"); 
  mParameters += "&DataSourceClassName=" + mIUDDLNB_Obj.getAttribute("DataSourceClassName"); 
  mParameters += "&DataSourceMethod=" + mIUDDLNB_Obj.getAttribute("DataSourceMethod"); 
  mParameters += "&DataSourceMethodParameters=" + mIUDDLNB_Obj.getAttribute("DataSourceMethodParameters"); 
  mParameters += "&DataValueField=" + mIUDDLNB_Obj.getAttribute("DataValueField"); 
  mParameters += "&DataTextField=" + mIUDDLNB_Obj.getAttribute("DataTextField"); 
  mParameters += "&WindowLabel=" + mIUDDLNB_Obj.getAttribute("WindowLabel"); 
  mParameters += "&OptionCero=" + mIUDDLNB_Obj.getAttribute("OptionCero"); 
  mParameters += "&OptionNeg=" + mIUDDLNB_Obj.getAttribute("OptionValorNeg"); 
  var paginado = mIUDDLNB_Obj.getAttribute("Paginado");
  if (paginado != null && paginado != undefined)
		mParameters += "&Paginado=" + paginado;
      
  pWindowHelper = pWindowHelper.replace("%PARAMETERS%", mParameters);
	var mRetorno = AbrirVentanaModal(ToURL(pWindowHelper), pHeight, pWidth);
	if (mRetorno != null && mRetorno != undefined && mRetorno != __SESSIONEXPIRED)
		ObtenerControl(pIUDDLND).value = mRetorno;
	/*
	else
		ObtenerControl(pIUDDLND).value = "";
	*/
	
	//OnChange del DDLND
	if (mRetorno != null && mRetorno != undefined && mRetorno != __SESSIONEXPIRED)
		eval("IUDDLND" + pIUDDLND + "_OnChange()");
	
	//OnChange del usuario
	if (pOnChange != null && pOnChange != undefined && mRetorno != null && mRetorno != undefined && mRetorno != __SESSIONEXPIRED)
		try
		{
			eval(pOnChange);
		}
		catch(e)
		{
			alert("La función: " + pOnChange + " no existe o produce error.");
		}
	if (mRetorno == __SESSIONEXPIRED)
		Retornar(__SESSIONEXPIRED)
}
/************************************/
/* FIN IUDROPDOWNLIST NOTDROPABLE	*/
/************************************/
/********************/
/* IUMENUTEXTO		*/
/********************/
function IUMenuTextoActualizar(pMenuTextoName, pIUMenuTexto_MenuTextoId, pMenuFather_Id)
{
	if (pIUMenuTexto_MenuTextoId == null || pIUMenuTexto_MenuTextoId == undefined)
		pIUMenuTexto_MenuTextoId = "";
		
	if (pMenuFather_Id == null || pMenuFather_Id == undefined)
		pMenuFather_Id = "";
		
	ExecutionRemoteUrl(ToURL("/Handlers.ASPIUMenuTextoRemote.aspx?IUMenuTextoID=" + pMenuTextoName + "&IUMenuTexto_MenuTextoId=" + pIUMenuTexto_MenuTextoId + "&MenuFather_Id=" + pMenuFather_Id),'',"IframeRemote_" + pMenuTextoName);
}
/********************/
/* FIN IUMENUTEXTO	*/
/********************/
/********************/
/* IUTREEVIEW		*/
/********************/
function IIUTreeView_OnClick(pTreeView, pRow)
{
	if (document["IUTreeViewSeleccionado_" + pTreeView] != undefined)
		document["IUTreeViewSeleccionado_" + pTreeView].style.backgroundColor = 'f8f8f8';
	pRow.style.backgroundColor = 'e0e0e0';
	document["IUTreeViewSeleccionado_" + pTreeView] = pRow;
}
function IUTreeViewExpand(pIUTreeview, pItem)
{
	if(document.all["divsub_" + pIUTreeview + "_" + pItem].style.display == "")
	{
		document.all["divsub_" + pIUTreeview + "_" + pItem].style.display = "none";
		document.all["img" + pItem].src=URL_IMAGEN + "/IUTreeView_Close.gif";
	}
	else
	{
		document.all["divsub_" + pIUTreeview + "_" + pItem].style.display = "";
		document.all["img" + pItem].src=URL_IMAGEN + "/IUTreeView_Open.gif";
	}
}
function IUTreeViewItemMouseOver(pTreeView, pRow)
{
	if (document["IUTreeViewSeleccionado_" + pTreeView]!=pRow)
		pRow.style.backgroundColor = 'd0d0d0';
}
function IUTreeViewItemMouseOut(pTreeView, pRow)
{
	if (document["IUTreeViewSeleccionado_" + pTreeView]!=pRow)
		pRow.style.backgroundColor = 'f8f8f8';
}
function IUTreeViewObtenerValor(pTreeView, pCampo)
{
	if (document["IUTreeViewSeleccionado_" + pTreeView] != undefined)
	{
		var campoTag = document["IUTreeViewSeleccionado_" + pTreeView].getAttribute("tag");
		var posInicial = campoTag.indexOf(";" + pCampo + "=");
		if (posInicial > -1)
		{
			campoTag = campoTag.substring(posInicial, campoTag.Length);
			campoTag = campoTag.replace(";" + pCampo + "=", "");
			campoTag = campoTag.substring(0, campoTag.indexOf(";"));
			return campoTag;
		}
	}
}
function IUTreeViewActualizar(pTreeView, pParametros)
{
	if (pParametros == null || pParametros == undefined)
		pParametros = "";
	
	ExecutionRemoteUrl(ToURL("/Handlers.ASPIUTreeViewRemote.aspx?IUTreeViewID=" + pTreeView + "&IUParametros=" + pParametros),'',"IframeRemote_" + pTreeView);
}
function IUTreeViewVaciarValor(pTreeView)
{
	if (document["IUTreeViewSeleccionado_" + pTreeView] != undefined)
		document["IUTreeViewSeleccionado_" + pTreeView] = undefined;
}
/********************/
/* FIN IUTREEVIEW	*/
/********************/
/********************/
/* IURICHTEXTBOX	*/
/********************/
var __OnSubmitIURichTextBox = "";
var __OnChangeModeIURichTextBox = "";
var __IURichTextBox_PasteAsHtml = true;
function IURichTextBox_OnSubmit()
{
	var mIURichTextBox = __OnSubmitIURichTextBox.split(";");
	for (var xRTB = 0; xRTB < mIURichTextBox.length; xRTB++)
	{
		IURichTextBox_KeyUp(mIURichTextBox[xRTB]);
		
	}
}
function IURichTextBox_KeyUp(pIURichTextBox)
{
	if (ObtenerControl(pIURichTextBox) != undefined)
	{
		if (!BROWSER.Firefox)
		{
			ObtenerControl(pIURichTextBox).value = ObtenerControl("IURichTextBox_" + pIURichTextBox).innerHTML;
		}
		else
		{
			ObtenerControl(pIURichTextBox).value = ObtenerControl("IURichTextBox_" + pIURichTextBox).contentDocument.documentElement.lastChild.innerHTML;
		}
	}
}
function IURichTextBox_BeforePaste(pIURichTextBox)
{
	window.event.returnValue = false;
}
function IURichTextBox_BeforeCut(pIURichTextBox)
{
    window.event.returnValue = false;
}
function IURichTextBox_Cut(pIURichTextBox)
{}
function IURichTextBox_Drop(pIURichTextBox)
{
    window.event.returnValue = false;
}
function IURichTextBox_Paste(pIURichTextBox)
{
	try
	{
		if (!__IURichTextBox_PasteAsHtml)
		{
			var mTexto = new String(window.clipboardData.getData("Text"));
			if (mTexto!=null)
			{
	//			mTexto = mTexto.toString().replace(new RegExp(/(class|style)\s*=\s*"[^"]+"/gi), "");
	//			mTexto = mTexto.replace(new RegExp(/(class|style)\s*=\s*'[^']+'/gi), "");
	//			mTexto = mTexto.replace(new RegExp(/(class|style)\s*=\s*[^\s>]+[\s>]/gi), "");
				window.clipboardData.setData("Text", mTexto.toString());
			}
		}
	}
	catch(e)
	{
		alert("Algunos de los caracteres que acaba de \npegar pueden no ser reconocidos.\n(" + e.number + ") " + e.description);
	}
}
function IURichTextBox_DivHddAlign(pDivId)
{
//	if (pDivId != "" && pDivId != null)
//	{
//		var mDivHdd = ObtenerControl("IURichTextBoxDivHdd_" + pDivId);
//		var mDivView = ObtenerControl("IURichTextBox_" + pDivId);
//		mDivHdd.style.left = getRealLeft(mDivView) + mDivView.offsetWidth;
//		mDivHdd.style.top = getRealTop(mDivView);
//	}
}
function IURichTextBoxButton()
{
	var mImgTags = GetAll("IURichTextBoxButtonImg");
	if (mImgTags != undefined)
	{
		for (var mIndex=0; mIndex -1)
			{
				mImgTags[mIndex].src = URL_IMAGEN + "/UI_RichTextBoxModeTagOn.gif";	
				mImgTags[mIndex].title = "HTML mode";
			}
			else
			{
				mImgTags[mIndex].src = URL_IMAGEN + "/UI_RichTextBoxModeTagOff.gif";	
				mImgTags[mIndex].title = "Design mode";
			}
		}
	}
	eval(__OnChangeModeIURichTextBox);
}
function IURichTextBoxChangeMode(pIURichTextBoxId)
{
	var mDivView = ObtenerControl("IURichTextBox_" + pIURichTextBoxId);
	var mTxtView = ObtenerControl(pIURichTextBoxId);
	if (mTxtView.style.display == "none")
	{
		//Modo HTML
		mDivView.style.display = "none";
		mTxtView.style.display = "block";
		if (!BROWSER.Firefox)
		{
			mTxtView.value = mDivView.innerHTML;
		}
		else
		{
			mTxtView.value = mDivView.contentDocument.documentElement.lastChild.innerHTML;
		}
	}
	else
	{
		//Modo Diseño
		mDivView.style.display = "block";
		mTxtView.style.display = "none";
		
		if (!BROWSER.Firefox)
		{
			mDivView.innerHTML = mTxtView.value;
		}
		else
		{
			mDivView.contentDocument.documentElement.lastChild.innerHTML = mTxtView.value;
		}
	}
}
function IURichToolBar_Paste(pAsHTML)
{
	var mOldValue = __IURichTextBox_PasteAsHtml;
	__IURichTextBox_PasteAsHtml=pAsHTML;
	IURichToolBar_ExecCommand("Paste");
	__IURichTextBox_PasteAsHtml=mOldValue;
	
}
function IURichToolBar_ExecCommand(pCommand, pFlag, pValue)
{
	if (BROWSER.IE)
	{
		document.execCommand(pCommand,pFlag,pValue);
	}
	else
	{
		__IURichTextBoxWithFocus.execCommand(pCommand,pFlag,pValue);
		
	}
}
function IURichTextBox_Init()
{
	if (BROWSER.IE)
	{
		if (__OnSubmitIURichTextBox!="")
		{
			if (document.forms.length > 0)
			{
			/*
				for (i=0; i -1)
				this.TextBox.value = this.TextBox.value.substring(1);
			this.Hidden.value = valBox.join(",");
		}
	}
	this.DeleteAll = function ()
	{
		this.Hidden.value = "";
		this.TextBox.value = "";
	}
	this.Delete = function (pValue, pText)
	{
		var texBox = "," + this.TextBox.value;
		texBox = texBox.split(",");
		var valBox = this.Hidden.value.split(",");
		if (valBox.IndexOf(pValue) != null)
		{
			texBox = texBox.RemoveIndex(texBox.IndexOf(IUMultipleOptionEscapeText(pText)));
			valBox = valBox.RemoveIndex(valBox.IndexOf(pValue));
			this.TextBox.value = texBox.join(",");
			if (this.TextBox.value.indexOf(",") > -1)
				this.TextBox.value = this.TextBox.value.substring(1);
			this.Hidden.value = valBox.join(",");
		}
	}
	
	this.OnClick = function(e)
	{
		var x; var y;
		if (!e) var e = window.event;
		var clickedObj = e.target ? e.target : e.srcElement;
		if (clickedObj.id != this.TextBox.id && clickedObj.id != this.Button.id)
		{
			if (e.pageX || e.pageY)
			{
				x = e.pageX;
				y = e.pageY + 5;
			}
			else if (e.clientX || e.clientY)
			{
				x = e.clientX + document.body.scrollLeft;
				y = e.clientY + document.body.scrollTop;
			}
			/*window.status = x+":"+y+" vs "+this.Left+":"+this.Top+" vs "+(Number(this.Left) + Number(this.Width))+":"+ (Number(this.Top) + Number(this.Height));*/
			var mMouseOut = false;
			if (x < this.Left || x > Number(this.Left) + Number(this.Width))
				mMouseOut = true;
			if (y < this.Top || y > Number(this.Top) + Number(this.Height))
				mMouseOut = true;
			if (mMouseOut)
				this.Hide();
		}
		else
		{
			this.Show();
		}
	}
	this.SelectedValues = function (pValues)
	{
		if (this.Type == "GRID" || this.Type == "NONE")
		{
			if (pValues != null)
			{
				var mDataObjects = ObtenerControl("IUGridData_grd" + this.Id).rows;
				if (mDataObjects != null)
				{
					if (mDataObjects.length > 0)
					{
						var mArrayValues = pValues.split(",");
						for (mArrayValuesIndex = 0; mArrayValuesIndex < mArrayValues.length; mArrayValuesIndex++)
						{
							var mArrayValue = mArrayValues[mArrayValuesIndex];
							for (mIndex = 1; mIndex < mDataObjects.length; mIndex++)
							{
								var mValue = GetTagFieldValue(mDataObjects[mIndex].getAttribute("tag"), this.DataValueField);
								if (mArrayValue == mValue)
								{
									var mText = GetTagFieldValue(mDataObjects[mIndex].getAttribute("tag"), this.DataTextField);
									this.TextBox.value += "," + IUMultipleOptionEscapeText(mText);
									var mCheckBox = GetAll("chk" + this.Id);
									if (mCheckBox != null)
									{
										if (mCheckBox.length > 0)
										{
											for (mIndexChk = 0; mIndexChk < mCheckBox.length; mIndexChk++)
											{
												if (mCheckBox[mIndexChk].value == mValue)
													mCheckBox[mIndexChk].checked = true;
											}
										}
									}
								}
							}
						}
						this.Hidden.value = pValues;
						if (this.TextBox.value.indexOf(",") > -1)
							this.TextBox.value = this.TextBox.value.substring(1);
					}
				}	
			}
			else
			{
				return this.Hidden.value;
			}
		}
		else
		{
			var mDataObjects = GetAll("IUTreeViewData_tv" + this.Id);
			if (mDataObjects != null)
			{
				if (mDataObjects.length > 0)
				{
					for (mIndex = 0; mIndex < mDataObjects.length; mIndex++)
					{
						var mValue = GetTagFieldValue(mDataObjects[mIndex].getAttribute("tag"), this.DataValueField);
						if (("," + pValues + ",").indexOf("," + mValue + ",") > -1)
						{
							var mText = GetTagFieldValue(mDataObjects[mIndex].getAttribute("tag"), this.DataTextField);
							this.TextBox.value += "," + IUMultipleOptionEscapeText(mText);
							var mCheckBox = GetAll("chktv" + this.Id);
							if (mCheckBox != null)
							{
								if (mCheckBox.length > 0)
								{
									for (mIndexChk = 0; mIndexChk < mCheckBox.length; mIndexChk++)
									{
										if (mCheckBox[mIndexChk].value == mValue)
											mCheckBox[mIndexChk].checked = true;
									}
								}
							}
						}
					}
					this.Hidden.value = pValues;
					if (this.TextBox.value.indexOf(",") > -1)
						this.TextBox.value = this.TextBox.value.substring(1);
				}
			}
		}
	}
}
/************************/
/* FIN IUMULTIPLEOPTION */
/************************/
/************************/
/* EXECUTION REMOTE     */
/************************/
function ExecutionRemote(pAssembly, pClass, pMethod, pParameters, pFunction, pFunctionOnError, pExecuteFunction)
{
	if (EXECUTIONREMOTETYPE=="DHTML")
		ExecutionRemoteDHTML(pAssembly, pClass, pMethod, pParameters, pFunction, pFunctionOnError, pExecuteFunction)	
	else
		ExecutionRemoteXMLHTTP(pAssembly, pClass, pMethod, pParameters, pFunction, pFunctionOnError, pExecuteFunction)	
}
function ExecutionRemoteUrl(pUrl, pReturnFunction, pIFrameName)
{
	if (EXECUTIONREMOTETYPE=="DHTML")
		ExecutionRemoteUrlDHTML(pUrl, pReturnFunction, pIFrameName)
	else
		ExecutionRemoteUrlXMLHTTP(pUrl, pReturnFunction, pIFrameName)
}
function ExecutionRemoteDHTML(pAssembly, pClass, pMethod, pParameters, pFunction, pFunctionOnError, pExecuteFunction)
{
	if (pFunction == null || pFunction == undefined)
		pFunction = "";
	if (pFunctionOnError == null || pFunctionOnError == undefined)
		pFunctionOnError = "";
	if (pExecuteFunction == null || pExecuteFunction == undefined)
		pExecuteFunction = true;
				
	var mFecha = new Date();
	ExecutionRemoteUrl(ToURL("/Handlers.ASPExecutionRemote.aspx?Assembly=" + pAssembly + "&Class=" + pClass + "&Method=" + pMethod + "&Parameters=" + pParameters + "&Function=" + pFunction + "&FunctionOnError=" + pFunctionOnError) + "&ExecuteFunction=" + (pExecuteFunction?1:0),'',"IframeRemote_" + pAssembly + pClass + pMethod + mFecha.ToTimeStamp());
}
function ExecutionRemoteXMLHTTP(pAssembly, pClass, pMethod, pParameters, pFunction, pFunctionOnError, pExecuteFunction)
{
	if (pFunction == null || pFunction == undefined)
		pFunction = "";
	if (pFunctionOnError == null || pFunctionOnError == undefined)
		pFunctionOnError = "";
	if (pExecuteFunction == null || pExecuteFunction == undefined)
		pExecuteFunction = true;
				
	var mFecha = new Date();
	var mXmlHttp = getXmlHttp();
	if (mXmlHttp)
	{
		var mUrl = ToURL("/Handlers.ASPExecutionRemote.aspx?Assembly=" + pAssembly + "&Class=" + pClass + "&Method=" + pMethod + "&Parameters=" + pParameters + "&Function=" + pFunction + "&FunctionOnError=" + pFunctionOnError) + "&ExecuteFunction=" + (pExecuteFunction?1:0) + "&ExecuteXMLHTTP=1" + "&tmp=" + mFecha.ToTimeStamp();
		mXmlHttp.open("GET", mUrl, EXECUTIONREMOTEASYNC);
		mXmlHttp.onreadystatechange=function()
		{
			if (mXmlHttp.readyState==4)
			{
				var mResponse = mXmlHttp.responseText;
				eval(mResponse);
			}
		}
		mXmlHttp.send(null);
	}
}
function ExecuteRemoteSync(pAssembly, pClass, pMethod, pParameters)
{
	var mFecha = new Date();
	var mXmlHttp = getXmlHttp();
	if (mXmlHttp)
	{
		var mUrl = ToURL("/Handlers.ASPExecutionRemote.aspx?Assembly=" + pAssembly + "&Class=" + pClass + "&Method=" + pMethod + "&Parameters=" + pParameters + "&ExecuteXMLHTTP=1" + "&tmp=" + mFecha.ToTimeStamp());
		mXmlHttp.open("GET", mUrl, false);
		mXmlHttp.send(null);
		return mXmlHttp.responseText;
	}
}
function ExecutionRemoteUrlDHTML(pUrl, pReturnFunction, pIFrameName)
{
	if (pIFrameName == null || pIFrameName == undefined)
		pIFrameName = '';
		
	if (pReturnFunction == null || pReturnFunction == undefined)
		pReturnFunction = '';
		
	if (pUrl.indexOf("?") < 0)
		pUrl += "?";
	pUrl += '&ReturnFunction=' + pReturnFunction;
	
	//alert(pUrl);
	var mDate = new Date()
	pUrl += "&tmp=" + mDate.ToTimeStamp();
	var mIFrame = CreateIFrame(pIFrameName);
	mIFrame.src = pUrl;
}
function ExecutionRemoteUrlXMLHTTP(pUrl, pReturnFunction, pIFrameName)
{
	if (pReturnFunction == null || pReturnFunction == undefined)
		pReturnFunction = '';
		
	if (pUrl.indexOf("?") < 0)
		pUrl += "?";
	pUrl += '&ReturnFunction=' + pReturnFunction;
	
	var mDate = new Date()
	pUrl += "&tmp=" + mDate.ToTimeStamp();
	var mXmlHttp = getXmlHttp();
	if (mXmlHttp)
	{
		mXmlHttp.open("GET", pUrl + "&ExecuteXMLHTTP=1", EXECUTIONREMOTEASYNC);
		mXmlHttp.onreadystatechange=function()
		{
			if (mXmlHttp.readyState==4)
			{
				var mResponse = mXmlHttp.responseText;
				eval(mResponse);
			}
		}
		mXmlHttp.send(null);
	}
}
function getXmlHttp()
{
	var xmlhttp=false;
	/*@cc_on @*/
	/*@if (@_jscript_version >= 5)
	// JScript gives us Conditional compilation, we can cope with old IE versions.
	// and security blocked creation of the objects.
	 try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	 } catch (e) {
		try {
		 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
		 xmlhttp = false;
		}
	 }
	@end @*/
	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
		try {
			xmlhttp = new XMLHttpRequest();
		} catch (e) {
			xmlhttp=false;
		}
	}
	if (!xmlhttp && window.createRequest) {
		try {
			xmlhttp = window.createRequest();
		} catch (e) {
			xmlhttp=false;
		}
	}
	return xmlhttp;
}
/************************/
/* FIN EXECUTION REMOTE */
/************************/
/*******************/
/* IUSELECTER      */
/*******************/
function IUSelecter_Open(pIUSelecter, pWindowHelper, pHeight, pWidth, pOnChange)
{
	var mRetorno = AbrirVentanaModal(ToURL(pWindowHelper), pHeight, pWidth);
	if (mRetorno != null && mRetorno != undefined && mRetorno != __SESSIONEXPIRED)
		ObtenerControl(pIUSelecter).value = mRetorno;
	else if (mRetorno == __SESSIONEXPIRED)
		Retornar(mRetorno)
	else
		ObtenerControl(pIUSelecter).value = "";
	if (pOnChange != null && pOnChange != undefined)
		eval(pOnChange);
}
/*******************/
/* FIN IUSELECTER  */
/*******************/
/*******************/
/* CHECKBOX        */
/*******************/
function IUCheckBox_CheckAll(pCheckBox, pCheckBoxName)
{
	var mForm = GetParentForm(pCheckBox);
	if (mForm == undefined)
		alert("You must implement a Form control to use CheckAll function in current page.")
	else
	{
		for (var mIndex = 0; mIndex < mForm.elements.length; mIndex++)
		{
			var mObject = mForm.elements[mIndex];
			if (mObject.name == pCheckBoxName)
				mObject.checked = pCheckBox.checked;
		}
	}
}
/*******************/
/* FIN CHECKBOX    */
/*******************/
/********************/
/* IUBODY			*/
/********************/
function jsPageLoad(pInitObject)
{
    
	if (typeof(pInitObject)=="undefined")
		pInitObject = true;
	
	if (ObtenerUltimaVentana().location.href.toLowerCase().indexOf(URL_INICIO.toLowerCase())==-1
		&& ObtenerUltimaVentana().location.href.toLowerCase().indexOf(URL_PUBLICO.toLowerCase())==-1
		&& window.dialogLeft == undefined
		&& CONTENTINFRAME
		&& !DEBUG
		&& SECURITYMODULE_REDIRECT == false)
		{
			ObtenerUltimaVentana().location.href = "http:\/\/" + WEBSERVER + URL_INICIO;
		}
	if (!CONTEXTMENU)
	{
		document.oncontextmenu = function()
		{return DEBUG;}
	}
	if (typeof(ExcepcionIniciar) != "undefined")
		if(ExcepcionIniciar)
		{
			ExcepcionTratar();
		}
	if (pInitObject)
	{
		InicializarObjetos();
		IURichTextBox_Init();
	}
	if (document.Retorno)
		document.Retorno();
	if (typeof(__Body_Init) != "undefined")
		__Body_Init();
		
}
/********************/
/* FIN IUBODY		*/
/********************/
/********************/
/* EXCEPCIONES		*/
/********************/
function ExcepcionTratar()
{
	var mException_Url = (typeof(__Exception_Url)!="undefined")?ToURL(__Exception_Url):ToURL("/Handlers.ASPExcepcionTratar.aspx?");
	switch (EXCEPTIONVERSION)
	{
		case "1":
			AbrirVentanaModal(mException_Url, 200, 520);
			break;
		case "2":
			OpenNewWindowModal("Atención", mException_Url, 200, 520, true);
			break;
	}
}
/********************/
/* FIN EXCEPCIONES	*/
/********************/
/********************/
/* OBJETOS			*/
/********************/
function InicializarTodosObjetos()
{
	if (document.forms.length > 0)
	{
		for (var mFormIndex=0;mFormIndex 0)
		pForm = document.forms[0];
	if (typeof(document.body) != "undefined" && document.body != null)
		InicializarBody(document.body);
		
	if (pForm!=null)
	{
		ChildNodes = pForm.elements;
		
		for (var mIndex=0; mIndex -1)
			return pSelect.options[pSelect.selectedIndex].value;
		else
			return null;
	}
	pSelect.SelectedText = function(pTexto)
	{
		if (pTexto!=undefined)
			for (var x=0; x-1; xOption--)
			pSelect.options[xItem] = null;
				
	}
	pSelect.SetReadOnly = function()
	{
		var xItem = 0;
		if (pSelect.options.length > 0)
		{
			for (var xOption = pSelect.options.length - xItem; xOption>-1; xOption--)
				if(pSelect.options[pSelect.selectedIndex] != pSelect.options[xItem])
					pSelect.options[xItem] = null;
				else
					xItem = 1;
		}
				
	}
	pSelect.Bind = function(pArrayObject, pDataValueField, pDataTextField, pDropCero)
	{
		if (pArrayObject != undefined && pDataValueField != undefined && pDataTextField != undefined)
		{
			var xFix;
			if (pDropCero == undefined || pDropCero == null || pDropCero)
				xFix = 0
			else
				xFix = 1
				
			for (var xItem = 0 + xFix; xItem < pArrayObject.length + xFix; xItem ++)
			{
				var mOption = new Option(eval("pArrayObject[xItem]." + pDataTextField), eval("pArrayObject[xItem]." + pDataValueField));
				pSelect.options[pSelect.options.length + xFix] = mOption;
			}
		}
	}
	pSelect.Assembly = function(pAssembly)
	{
		if (pAssembly!=undefined)
			pSelect.setAttribute("DataSourceAssembly", pAssembly);
		else
			return pSelect.getAttribute("DataSourceAssembly");
	}
	pSelect.Clase = function(pClassName)
	{
		if (pClassName!=undefined)
			pSelect.setAttribute("DataSourceClassName", pClassName);
		else
			return pSelect.getAttribute("DataSourceClassName");
	}
	pSelect.Metodo = function(pMethod)
	{
		if (pMethod!=undefined)
			pSelect.setAttribute("DataSourceMethod", pMethod);
		else
			return pSelect.getAttribute("DataSourceMethod");
	}
	pSelect.BindRemote = function(pDataValueField, pDataTextField, pOptionCero, pOptionCeroSmall)
	{
		if (pOptionCero == undefined)
			pOptionCero = 1
		if (pOptionCeroSmall == undefined)
			pOptionCeroSmall = 0
		if (pOptionCero)
			pOptionCero = 1
		else
			pOptionCero = 0
			
		if (pOptionCeroSmall)
			pOptionCeroSmall = 1
		else	
			pOptionCeroSmall = 0
			
		pSelect.setAttribute("DataValueField", pDataValueField);
		pSelect.setAttribute("DataTextField", pDataTextField);
		pSelect.setAttribute("OptionCero", pOptionCero);
		pSelect.setAttribute("OptionCeroSmall", pOptionCeroSmall);
	}
	pSelect.Refresh = function(pParametros, pSelectedValue)
	{
		IUDDLActualizar(pSelect.id, pParametros, pSelectedValue)
	}
}
function InicializarText(pText)
{
	var mIUControlType = pText.getAttribute("iucontroltype");
	if (mIUControlType == "IUDropDownList")
	{
		if (!pText.AllowNull())
			SetInfo(pText, ObtenerMensaje(62));
			
	  pText.Assembly = function(pAssembly)
	  {
		  if (pAssembly!=undefined)
			  pText.setAttribute("DataSourceAssembly", pAssembly);
		  else
			  return pText.getAttribute("DataSourceAssembly");
	  }
	  pText.Clase = function(pClassName)
	  {
		  if (pClassName!=undefined)
			  pText.setAttribute("DataSourceClassName", pClassName);
		  else
			  return pText.getAttribute("DataSourceClassName");
	  }
	  pText.Metodo = function(pMethod)
	  {
		  if (pMethod!=undefined)
			  pText.setAttribute("DataSourceMethod", pMethod);
		  else
			  return pText.getAttribute("DataSourceMethod");
	  }
	  pText.ValueField = function(pDataValueField)
	  {
		  if (pDataValueField!=undefined)
			  pText.setAttribute("DataValueField", pDataValueField);
		  else
			  return pText.getAttribute("DataValueField");
	  }
	  
	  pText.TextField = function(pDataTextField)
	  {
		  if (pDataTextField!=undefined)
			  pText.setAttribute("DataTextField", pDataTextField);
		  else
			  return pText.getAttribute("DataTextField");
	  }
    /*-------------------------------------------------------------------------------------*/
    /*AGREGADO: FACUNDO GIGLIO FECHA: 24/05/2007                                           */
    /*-------------------------------------------------------------------------------------*/	  
	  pText.MetodoObtener = function(pDataSourceMetodoObtener)
	  {
		  if (pDataSourceMetodoObtener!=undefined)
			  pText.setAttribute("DataSourceMethodGet", pDataSourceMetodoObtener);
		  else
			  return pText.getAttribute("DataSourceMethodGet");
	  }
	  /*-------------------------------------------------------------------------------------*/
    /*FIN AGREGADO: FACUNDO GIGLIO FECHA: 24/05/2007                                       */
    /*-------------------------------------------------------------------------------------*/
	}
	var mOnKeyPress = pText.getAttribute("OnKeyPress");
	if (mOnKeyPress == "" || mOnKeyPress == undefined)
	{
		pText.onkeypress = function(e)
		{
			if (!e) var e = window.event;
			var keyCode = ('number' == typeof e.keyCode)?e.keyCode:e.which;
			if (keyCode == 13) {
				e.returnValue = 0;
			}
		}
	}
	pText.SelectedValue = function(pValor)
	{
		if (pValor!=undefined)
		{
			this.value = pValor
		}
		return this.value;
	}
	pText.SelectedText = function(pValor)
	{
		if (pValor!=undefined)
		{
			eval("ObtenerControl('txt" + this.id + "')").value = pValor
		}
		return eval("ObtenerControl('txt" + this.id + "')").value;
	}
	var mFormat = pText.getAttribute("format");
	switch (mFormat)
	{
		case "IsString":
			break;
		case "IsInteger":
			//Validación para que solamente permita números positivos
			if (pText.getAttribute("positive") == "true")
			{
				pText.onkeypress = function(e)
				{
					if (!e) var e = window.event;
					var keyCode = ('number' == typeof e.keyCode)?e.keyCode:e.which;
					
					if (keyCode < 48 || keyCode > 57)
						e.returnValue = 0;				
				}
			}
			else
			{		
			pText.onkeypress = function(e)
			{
				if (!e) var e = window.event;
				var keyCode = ('number' == typeof e.keyCode)?e.keyCode:e.which;
				
				if ((keyCode < 48 || keyCode > 57) && keyCode != 45) 
					e.returnValue = 0;
				else if (keyCode == 45 && pText.value.toString() != "")
				  e.returnValue = 0;
			}
			}
			break;
		case "IsDecimal":
			pText.onkeypress = function(e)
			{
				if (!e) var e = window.event;
				var keyCode = ('number' == typeof e.keyCode)?e.keyCode:e.which;
				var mMaxLength = this.getAttribute("maxlength");
				
				if ((keyCode < 48 || keyCode > 57) && keyCode != 45) 
				{
					if (keyCode == 46 || keyCode == 44)
					{
						if ('number' == typeof e.keyCode)
							e.keyCode = 44;
						else
							e.which = 44;
						
						if (this.value.split(",").length > 1)
							e.returnValue = 0;
					}
					else if (keyCode == 45 && pText.value.toString() != "" && pText.value.parseFloat() != 0)
				    e.returnValue = 0;
					else 
						  e.returnValue = 0;
				}
				/*else
				{
				  if (keyCode == 45 && pText.value.toString() != "" && pText.value.parseFloat() != 0)
				    e.returnValue = 0;
				  if (keyCode == 45 && (pText.value.parseFloat() == 0 || pText.value.toString() == ""))
				  {
				    e.returnValue = 0;
				  }
				}*/
			}
//			pText.onchange = function(e)
//			{
//				this.Validate(true);
//			}
			pText.Validate = function(pShowError)
			{
				if (pShowError == null || pShowError == undefined)
					pShowError = true;
					
				var mMaxLength = this.getAttribute("maxlength");
				var mDecimals = this.getAttribute("decimals");
				
				/*----------------------------------------------*/
				/*Agregado por Facundo Gilio | Fecha: 15/05/2008*/
				/*----------------------------------------------*/
				/*Validación anterior
				if (this.value != "")
				  this.value = Number(this.value.replace(",", ".")).SetDecimals(mDecimals).replace(".", ",");
				*/
				/*----------------------------------------------*/
				/*Se agregó la validación isNaN para que no     */
				/*devuelva NaN en el value del textbox si el    */
				/*valor no es un número                         */
				/*----------------------------------------------*/
				if (this.value != "" && !isNaN(this.value.replace(",", ".")))
				  this.value = Number(this.value.replace(",", ".")).SetDecimals(mDecimals).replace(".", ",");
				/*----------------------------------------------*/
				
				var mInit = this.value.indexOf(",");
				var mEnteros = this.value;
				var mRetorno;
				if (mInit > - 1)
					mEnteros = this.value.substr(0, mInit);
					
				if (mEnteros.length > (mMaxLength-mDecimals-1))
				{
					if (pShowError)
					{
						SetError(this, ObtenerMensaje(9).ReplaceAll("%e%", (mMaxLength-mDecimals-1)).ReplaceAll("%d%", mDecimals));
					}
					mRetorno = false;
				}
				else
				{
					if (pShowError)
						ClearError(this);
					mRetorno = true;
				}
				
				return mRetorno;
			}
			break;
			
		case "IsDate":
			pText.onkeypress = function(e) {
				if (!e) var e = window.event;
				
				var keyCode = ('number' == typeof e.keyCode)?e.keyCode:e.which;
				var mSeparador = "/";
				var mKeyCodeSeparador = mSeparador.charCodeAt(0);
				var mGrupos = 3;			//Cantidad de grupos
				var mChars = 2;				//Caracteres por grupo  dd/mm/aaaa
				if ((keyCode < 48 || keyCode > 57) && keyCode != mKeyCodeSeparador) {
					e.returnValue = 0;
				}
				else if (keyCode == mKeyCodeSeparador) {
					if (this.value.split(mSeparador).length >= mGrupos - 1) {
						e.returnValue = 0;
					}
					var mDiff = this.value.length - this.value.lastIndexOf(mSeparador) - 1;
					if (mDiff == 0) {
						this.value = this.value.substr(0, this.value.lastIndexOf(mSeparador) + 1) + "00";
					}
					else if (mDiff == 1) {
						this.value = this.value.substr(0, this.value.lastIndexOf(mSeparador) + 1) + "0" + this.value.charAt(this.value.length - 1);
					}
				}
				else {
					var mLastChar = mChars * mGrupos + mGrupos - 1
					
					for (var i = 2; i <= this.value.length; i += 3) {
						//this.value.length ==  mChars * mGrupos + mGrupos - 1
						if (this.value.length ==  i && this.value.length < mLastChar) {
							if (this.value.length == 5)
							{
								this.value += mSeparador 
								if (this.CompleteYear)
									this.value += '20';
							}
							else
								this.value += mSeparador;
						}
					}
				}
				/*
				if (!e) var e = window.event;
				var keyCode = ('number' == typeof e.keyCode)?e.keyCode:e.which;
				if (keyCode < 47 || keyCode > 57) {
					e.returnValue = 0;
				}
				else if (keyCode == 47)
					if (this.value.split("/").length > 2)
						e.returnValue = 0;
				if (keyCode == 47 && this.value.length == 1)
					this.value = "0" + this.value;
				if (keyCode == 47 && this.value.length == 4)
					this.value = this.value.substr(0, this.value.indexOf("/")+1) + "0" + this.value.substr(this.value.indexOf("/")+1, 1);
						
				if (this.value.length == 1 && this.value.indexOf("/") == -1 && keyCode != 47)
				{
					this.value += String.fromCharCode(keyCode) + "/";
					e.returnValue = 0;
				}
				if (this.value.length == 4 && this.value.split("/").length == 2 && keyCode != 47)
				{
					this.value += String.fromCharCode(keyCode) + "/";
					e.returnValue = 0;
				}
				*/
			}
			pText.Validate = function()	{
				var mRetorno = true;
				ClearError(this);
				
				if (!DateTimeValidate(this.value) && this.value != '') {
					SetError(this, ObtenerMensaje(52));
					mRetorno = false;
				}
				return mRetorno;
			}
			break;
		case "IsTime":
			pText.onkeypress = function(e) {
				if (!e) var e = window.event;
				
				var keyCode = ('number' == typeof e.keyCode)?e.keyCode:e.which;
				var mSeparador = ":";
				var mKeyCodeSeparador = mSeparador.charCodeAt(0);
				var mGrupos = 3;			//Cantidad de grupos
				var mChars = 2;				//Caracteres por grupo  00:00:00
				if ((keyCode < 48 || keyCode > 57) && keyCode != mKeyCodeSeparador) {
					e.returnValue = 0;
				}
				else if (keyCode == mKeyCodeSeparador) {
					if (this.value.split(mSeparador).length >= mGrupos - 1) {
						e.returnValue = 0;
					}
					var mDiff = this.value.length - this.value.lastIndexOf(mSeparador) - 1;
					
					if (mDiff == 0) {
						this.value = this.value.substr(0, this.value.lastIndexOf(mSeparador) + 1) + "00";
					}
					else if (mDiff == 1) {
						this.value = this.value.substr(0, this.value.lastIndexOf(mSeparador) + 1) + "0" + this.value.charAt(this.value.length - 1);
					}
				}
				else {
					var mLastChar = mChars * mGrupos + mGrupos - 1
					
					for (var i = 2; i <= this.value.length; i += 3) {
						//this.value.length ==  mChars * mGrupos + mGrupos - 1
						if (this.value.length ==  i && this.value.length < mLastChar) {
							this.value += mSeparador;
						}
					}
				}
			}
			
			pText.onchange = function()	{
				this.Validate();
			}
			pText.Validate = function()	{
				var mRetorno = true;
				ClearError(this);
				
				//Valido el formato de la hora ingresada				
				var mRegExp = new RegExp("^[0-9]{2}:[0-9]{2}:[0-9]{2}$");
				if (!mRegExp.test(this.value)) {
					SetError(this, ObtenerMensaje(75));
					mRetorno = false;
				}
				
				return mRetorno;
			}
			break;
		case "IsShortTime":
			pText.onkeypress = function(e) {
				if (!e) var e = window.event;
				
				var keyCode = ('number' == typeof e.keyCode)?e.keyCode:e.which;
				var mSeparador = ":";
				var mKeyCodeSeparador = mSeparador.charCodeAt(0);
				var mGrupos = 2;			//Cantidad de grupos
				var mChars = 2;				//Caracteres por grupo  00:00:00
				if ((keyCode < 48 || keyCode > 57) && keyCode != mKeyCodeSeparador) {
					e.returnValue = 0;
				}
				else if (keyCode == mKeyCodeSeparador) {
					if (this.value.split(mSeparador).length >= mGrupos - 1) {
						e.returnValue = 0;
					}
					var mDiff = this.value.length - this.value.lastIndexOf(mSeparador) - 1;
					
					if (mDiff == 0) {
						this.value = this.value.substr(0, this.value.lastIndexOf(mSeparador) + 1) + "00";
					}
					else if (mDiff == 1) {
						this.value = this.value.substr(0, this.value.lastIndexOf(mSeparador) + 1) + "0" + this.value.charAt(this.value.length - 1);
					}
				}
				else {
					var mLastChar = mChars * mGrupos + mGrupos - 1
					
					for (var i = 2; i <= this.value.length; i += 3) {
						//this.value.length ==  mChars * mGrupos + mGrupos - 1
						if (this.value.length ==  i && this.value.length < mLastChar) {
							this.value += mSeparador;
						}
					}
				}
			}
			
			pText.onchange = function()	{
				this.Validate();
			}
			pText.Validate = function()	{
				var mRetorno = true;
				ClearError(this);
				
				//Valido el formato de la hora ingresada				
				var mRegExp = new RegExp("^[0-9]{2}:[0-9]{2}$");
				if (!mRegExp.test(this.value)) {
					SetError(this, ObtenerMensaje(75));
					mRetorno = false;
				}
				
				return mRetorno;
			}
			break;
	}
}
function InicializarBody(pBody)
{
	var mOnEnter = pBody.getAttribute("onenter");
	if (mOnEnter != "")
	{
		pBody.onkeypress = function(e)
		{
			if (!e) var e = window.event;
			var keyCode = ('number' == typeof e.keyCode)?e.keyCode:e.which;
			if (keyCode == 13) {
				eval(mOnEnter);
			}
		}
	}
}
/********************/
/* FIN OBJETOS		*/
/********************/
/********************/
/* PROTOTYPES		*/
/********************/
/*******OBJECT*******/
/*Object.prototype.Serialize = function(pName)*/
function Serialize (pObject, pName)
{
	var mRetorno = "<" + pName + ">";
	
	for (var mProperty in pObject)
	{
		if (mProperty != "Serialize")
			mRetorno += "<" + mProperty + ">" + (pObject[mProperty]==null?"":pObject[mProperty]) + "<\/" + mProperty + ">"
	}
			
	mRetorno += "<\/" + pName + ">";
	return mRetorno;
}
function ToCustomString(pObject)
{
	var mRetorno = "";
	
	for (var mProperty in pObject)
	{
		if (mProperty != "Serialize")
			mRetorno += mProperty + "=" + (pObject[mProperty]==null?"":pObject[mProperty]).toString() + ";"
	}
			
	return mRetorno;
}
function LoadCustomString(pObject, pString)
{
	var mProperties = pString.split(";");
	
	for (var mIndex = 0; mIndex < mProperties.length; mIndex++)
	{
		var mValues = mProperties[mIndex].split("=");
		if (mValues.length == 2)
		{
			try
			{
				mValues[0] = mValues[0];
				mValues[1] = mValues[1];
				pObject[mValues[0]] = mValues[1];
			}
			catch (e)
			{}
		}
	}
}
/*******ARRAY*******/
Array.prototype.Serialize = function(pRootName, pElementName)
{
	if (this != undefined && this != null)
	{
		var mRetorno = "<" + pRootName + ">";
		for (var mIndex = 0; mIndex < this.length; mIndex++)
			if (this[mIndex] != undefined && this[mIndex] != null)
				mRetorno += Serialize(this[mIndex], pElementName);
			
		mRetorno += "<\/" + pRootName + ">";
		return mRetorno;
	}
	return null;
}
Array.prototype.SelectItem = function(pProperty, pValue)
{
	if (this != undefined && this != null)
	{
		for (var mIndex in this)
		{
			if (this[mIndex][pProperty] == pValue)
				return this[mIndex];
		}
	}
	return null;
}
Array.prototype.SelectItemIndex = function(pProperty, pValue)
{
	if (this != undefined && this != null)
	{
		for (var mIndex in this)
		{
			if (this[mIndex][pProperty] == pValue)
				return mIndex;
		}
	}
	return null;
}
Array.prototype.IndexOf = function(pValue)
{
	if (this != undefined && this != null)
	{
		for (var mIndex in this)
		{
			if (this[mIndex] == pValue)
				return mIndex;
		}
	}
	return null;
}
Array.prototype.RemoveIndex = function(pIndex)
{
	if (this != undefined && this != null)
	{
		var mRetorno = new Array();
		for (var mIndex = 0; mIndex -1)
		pString = pString.replace(pOldValue, pNewValue);
	return pString;
}
String.prototype.parseFloat =	function ()
{
	return parseFloat(this.replace(",", "."), 10);
}
String.prototype.parseInt = function ()
{
	return parseInt(this, 10);
}
/******************************/
/*Facundo Giglio 13/07/2007   */
/*Funciones Trim en javaScript*/
String.prototype.trim = function() 
{
  return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.trimStart = function() 
{
  return this.replace(/^\s+/,"");
}
String.prototype.trimEnd = function() 
{
  return this.replace(/\s+$/,"");
}
/******************************/
function RealRound(pValor, pCantDigitos)
{
	if (pCantDigitos == "NaN" || pCantDigitos == undefined || pCantDigitos == null)
		pCantDigitos = 2;
	if (!isNaN(pValor))
	{
		pValor = pValor.toString().replace(".", ",")
		if (!isNaN(pValor)) {
			pValor = pValor.toString() + ",00"
		}
	}
	var pMultiplicador = Math.pow(10, pCantDigitos);
	pValor = parseFloat(pValor.replace(",", "."), 10) * pMultiplicador;
	pValor = Math.round(pValor);
	pValor = pValor / pMultiplicador;
	return pValor.toString().replace(".", ",");
}
/*******DATE*******/
Date.prototype.ToTimeStamp = function()
{
	return this.getYear() + "." + this.getMonth() + "." + this.getDate() + "." + this.getHours() + "." + this.getMinutes() + "." + this.getSeconds() + "." + this.getMilliseconds();
}
/*******NUMBER*******/
Number.prototype.SetDecimals = function(pDecimals)
{
	var mValor = this.toString();
	var mInit = mValor.indexOf(".");
	if (mInit > -1)
	{
		var mDecimals = mValor.substr(mInit+1);
		mValor = mValor.substr(0, mInit) + "." + mDecimals.substr(0, pDecimals);
	}
	return mValor;
}
/********************/
/* FIN PROTOTYPES	*/
/********************/
/********************/
/* DATES FUNCTIONS	*/
/********************/
function DateDiff(pFechaDesde, pFechaHasta)
{
	var TxtDesde = pFechaDesde.split("/")
	var TxtHasta = pFechaHasta.split("/")
	
	if (TxtDesde.length == 3 && TxtHasta.length == 3)
	{
		FechaDesde = new Date(TxtDesde[2], TxtDesde[1].parseInt() - 1, TxtDesde[0])
		FechaHasta = new Date(TxtHasta[2], TxtHasta[1].parseInt() - 1, TxtHasta[0])
		return ((FechaHasta - FechaDesde)/86400000)
	}
	else
	{
		return null;
	}
}
function DateAdd(pDate, pWhat, pAmount)
{
	var TxtDate = pDate.split("/")
	
	if (TxtDate.length == 3)
	{
		var FechaOriginal = new Date(TxtDate[2], TxtDate[1].parseInt() - 1, TxtDate[0])
		
		switch (pWhat.toLowerCase())
		{
		  case "day":
		    FechaOriginal.setDate(parseInt(FechaOriginal.getDate()) + parseInt(pAmount))
		    break;
		  case "month":
		    FechaOriginal.setMonth (parseInt(FechaOriginal.getMonth()) + parseInt(pAmount))
		    break;
		  case "year":
		  	FechaOriginal.setFullYear(parseInt(FechaOriginal.getFullYear()) + parseInt(pAmount))
		    break;		    		    
		} 
		
		var pMes = parseInt(FechaOriginal.getMonth()) + 1
		return(FechaOriginal.getDate() + "/" + (pMes<10?"0"+pMes:pMes) + "/" + FechaOriginal.getFullYear())
	}
	else
	{
		return null;
	}
}
function DateToReport(pDate)
{
	return pDate;
}
function DateTimeValidate(pFecha)
{
	var mRegExp = new RegExp("^(?:(31)(\\D)(0?[13578]|1[02])\\2|(29|30)(\\D)(0?[13-9]|1[0-2])\\5|(0?[1-9]|1\\d|2[0-8])(\\D)(0?[1-9]|1[0-2])\\8)((?:1[6-9]|[2-9]\\d)?\\d{2})$|^(29)(\\D)(0?2)\\12((?:1[6-9]|[2-9]\\d)?(?:0[48]|[2468][048]|[13579][26])|(?:16|[2468][048]|[3579][26])00)$");
	return mRegExp.test(pFecha)
}
/************************/
/* FIN DATES FUNCTIONS	*/
/************************/
/**************/
/* CLOCK      */
/**************/
function ShowClock(pTextBox)
{
	var mTime = new Date();
	var mHours = mTime.getHours();
	var mMinutes = mTime.getMinutes();
	var mSeconds = mTime.getSeconds();
	
	if (String(mHours).length == 1) mHours = "0" + String(mHours);
	if (String(mMinutes).length == 1) mMinutes = "0" + String(mMinutes);
	if (String(mSeconds).length == 1) mSeconds = "0" + String(mSeconds);
	
	ObtenerControl(pTextBox).innerText = mHours + ":" + mMinutes + ":" + mSeconds;
}
function ScheduleClock(pTextBox)
{
	setInterval("ShowClock('" + pTextBox + "')", 1000);
}
/**************/
/* FIN CLOCK  */
/**************/
/******************************/
/* REMOTE SCRIPTING FUNCTIONS */
/******************************/
function EnviarAlServerRemote(pReturnFunction, pForm)
{
	var mDate = new Date();
	var mNuevoFrameNombre = "FraRemote_" + mDate.ToTimeStamp();
	var mNuevoFormularioNombre = "FrmRemote_" + mDate.ToTimeStamp();
	var mFormulario = pForm;
	CreateIFrame(mNuevoFrameNombre);
	//var sHead = ''
	//Copia el header completo....
	//sHead += document.getElementsByTagName("HEAD")[0].outerHTML;
	//sHead += '';
	var strFrm = BuildForm(mFormulario, mNuevoFormularioNombre, pReturnFunction);
	//sHead += strFrm
  //sHead += ''
  var DocumentoNuevo = window.frames[mNuevoFrameNombre].document;
  //DocumentoNuevo.write(sHead);
	DocumentoNuevo.write('');
//DocumentoNuevo.write('');
	
	DocumentoNuevo.write('');
	DocumentoNuevo.charset = document.charset;
	
//	DocumentoNuevo.write('\n');
	DocumentoNuevo.write('\n');
	DocumentoNuevo.write(strFrm);
	DocumentoNuevo.write('\n');
	
  //DocumentoNuevo.getElementsByTagName("BODY")[0].innerHTML += strFrm;
	
	// documento el formulario resultante (DGA)
  //window.clipboardData.setData("Text", DocumentoNuevo.getElementsByTagName("HTML")[0].outerHTML );
  
  //DocumentoNuevo.getElementById("___eas___submit").click();
  DocumentoNuevo.forms[mNuevoFormularioNombre].submit();
  
}
function BuildForm(pFormulario, pNuevoFormularioNombre, pReturnFunction)
{
	var str;
	if(pFormulario!=undefined)
		{
		str='