function funPopUpWindow(parEDireUrl, parENombVent, parEScrollbars, parEResizable, parEWidth, parEHeight, parELeft, parETop)
{
  /* Setea el ancho máximo de la ventana y la centro si no se paso un valor de parámetro o si el valor es mayor al máximo permitido */
  if ((parEWidth>=screen.width-12)||(parEWidth==""))
  {
	parEWidth = screen.width - 12;
	parELeft = 0;
  }

  /* Setea el alto máximo de la ventana y la centro si no se paso un valor de parámetro o si el valor es mayor al máximo permitido */
  if ((parEHeight>=screen.height-58)||(parEHeight==""))
  {
	parEHeight = screen.height - 58;
	parETop = 0;
  }

  /* Setea el izquierda máximo de la ventana si el parámetro más el ancho excede la pantalla */
  if ((parseInt(parELeft)+parseInt(parEWidth))>=screen.width-12)
	parELeft = screen.width - 12 - parEWidth;

  /* Setea el arriba máximo de la ventana si el parámetro más el alto excede la pantalla */
  if ((parseInt(parETop)+parseInt(parEHeight))>=screen.height-58)
	parETop = screen.height - 58 - parEHeight;

  /* Centra la ventana a lo ancho si no se paso un valor de parámetro */
  if ((parELeft=="")&&(parELeft!="0"))
	parELeft = (screen.width - 12 - parEWidth) / 2;

  /* Centra la ventana a lo alto si no se paso un valor de parámetro */
  if ((parETop=="")&&(parETop!="0"))
	parETop = (screen.height - 58 - parEHeight) / 2;

  /* alert ('Width: ' + parEWidth + ' Height: ' + parEHeight + ' Left: ' + parELeft + ' Top: ' + parETop); */

  /* Crea la nueva ventana */
  flyout=window.open(parEDireUrl,parENombVent,"resizable=" + parEResizable + ",scrollbars=" + parEScrollbars + ",width=" + parEWidth + ",height=" + parEHeight + ",top=" + parETop + ",left=" + parELeft)
}


function funLevaPopUp (parENombVent, parEDireUrl, parEScrollBars, parEResizable, parEWidth, parEHeight, parELeft, parETop)
{
	// Declaracion de Variables
	var varFlyout;

	// Setea el ancho máximo de la ventana y la centro si no se paso un valor 
	// de parametro o si el valor es mayor al máximo permitido
	if ((parEWidth>=screen.width-12)||(parEWidth==""))
	{
		parEWidth = screen.width - 12;
		parELeft = 0;
	}

	// Setea el alto máximo de la ventana y la centro si no se paso un valor
	// de parametro o si el valor es mayor al máximo permitido
	if ((parEHeight>=screen.height-58)||(parEHeight==""))
	{
		parEHeight = screen.height - 58;
		parETop = 0;
	}

	// Centra la ventana a lo ancho si no se paso un valor de parametro
	if ((parELeft=="")&&(parELeft!="0"))
	{
		parELeft = (screen.width - 12 - parEWidth) / 2;
	}

	// Centra la ventana a lo alto si no se paso un valor de parametro
	if ((parETop=="")&&(parETop!="0"))
	{
		parETop = (screen.height - 58 - parEHeight) / 2;
	}

	// Crea la nueva ventana
	varFlyout = window.open(parEDireUrl,parENombVent,"resizable=" + parEResizable + ",scrollbars=" + parEScrollBars + ",width=" + parEWidth + ",height=" + parEHeight + ",top=" + parETop + ",left=" + parELeft)

	// Devuelve el Objeto de la ventana creada
	return varFlyout;

}

// Funcion que cambia el color del background de un botton
function funCambColoComa (parEComando, parEColoBack, parEColoText)
{
	// Solo realiza el efecto si el comando esta habilitado
	if (parEComando.disabled == false)
	{
		if (parEColoBack != "")
		{
			parEComando.style.backgroundColor = parEColoBack;
		}
		if (parEColoText != "")
		{
			parEComando.style.color = parEColoText;
		}		
	}	
}

// Funcion que valida si un e-mail esta bien ingresado
function funValiEmai (parEMail)
{
	varPasa=0;
	varCuenta=0;

	// Verifica que exista la cadena del e-mail
	if (parEMail.value.length==0) return false;

	// Verifica el que exista el (@)
	for (varI=0;varI<parEMail.value.length;varI++)
	{
		EsteCaracter=parEMail.value.substring(varI,varI+1);
		if (EsteCaracter == "@")
		{
			varCuenta++;
			varPosi=varI;
		}
	}

	// Verifica que exista solo 1 (@)
	if (varCuenta == 1)
		varPasa=1;
	else
		varPasa=0;

	// Verifica que haya por lo menos un (.) despues del (@)
	if (varPasa==1)
	{
		varPasa = 0;
		for (varI=varPosi+1;varI<parEMail.value.length-1;varI++)
		{
			EsteCaracter=parEMail.value.substring(varI,varI+1);
			if (EsteCaracter == ".") varPasa=1;
		}
	}

	// Devuelve el exito o fracaso de la validacion
	if (varPasa == 1)
		return true;
	else
		return false;
}

// Funcion que valida el ingreso de decimales y punto decimal al digitar una tecla
function funValidaValorNumericoDigito(parECajaNume,parENumeDeci)
{
	// declaracion de variables
	var varPosi, varLen, varNumeDeciActu;

	// Valido si puede ingresar el punto decimal
	if (parENumeDeci == '0') 
	{
		// solo numeros
		if ((event.keyCode<48)||(event.keyCode>57)) event.returnValue = false;
	} 
	else 
	{
		// solo numeros y punto
		if (((event.keyCode<48)||(event.keyCode>57))&&(event.keyCode!=46)) event.returnValue = false;
		// valido si ya existe un punto decimal
		varPosi = parECajaNume.value.indexOf('.')
		if ((varPosi != -1)&&(event.keyCode == 46)) event.returnValue = false;
	}
}

// Funcion que redondea un numero
function funRedondeaNumero(parENume,parENumeDeci,parECaraDeci)
{
	if (parENumeDeci > 0) 
	{
		if ((parENume.toString().length - parENume.toString().lastIndexOf(parECaraDeci)) > (parENumeDeci + 1))
		{
			var Rounder = Math.pow(10, parENumeDeci);
			parENume = Math.round(parENume * Rounder) / Rounder;

			varCero = "";
			varDeci = parENume.toString().length - parENume.toString().lastIndexOf(parECaraDeci) - 1;

			if (parENume.toString().lastIndexOf(parECaraDeci)>0)
			{
				for (varI=varDeci;varI<parENumeDeci;varI++)
				{
					varCero = varCero + "0";
				}
				parENume = parENume + varCero;
			}
			else 
			{
				for (varI=0;varI<parENumeDeci;varI++)
				{
					varCero = varCero + "0";
				}
				parENume = parENume + "." + varCero;
			}

			return parENume;
		}
		else
		{
			varCero = "";
			varDeci = parENume.toString().length - parENume.toString().lastIndexOf(parECaraDeci) - 1;

			if (parENume.toString().lastIndexOf(parECaraDeci)>0)
			{
				for (varI=varDeci;varI<parENumeDeci;varI++)
				{
					varCero = varCero + "0";
				}
				parENume = parENume + varCero;
			}
			else 
			{
				for (varI=0;varI<parENumeDeci;varI++)
				{
					varCero = varCero + "0";
				}
				parENume = parENume + "." + varCero;
			}

			return parENume;
		}
	}
	else return Math.round(parENume);
}

// Funcion que verifica la extensión de un archivo
function funVerificaExtensionArchivo(parEObjeto, parETipoGraf)
{
	varValue = parEObjeto.value;
	varLargo = varValue.length;
	varPunto = varValue.indexOf(".")
	varExtension = varValue.substring(varPunto,varLargo).toUpperCase();
	
	if (parETipoGraf=="G")					// tipo grafico
	{
		if(varExtension==".GIF" || varExtension==".JPG")
			return true;
		else
			return false;
	}

	else if (parETipoGraf=="A")				//tipo adjunto
	{
		if(varExtension==".ZIP" || varExtension==".DOC" || varExtension==".XLS" || varExtension==".PDF" || varExtension==".PPS" || varExtension==".PPT")
			return true;
		else
			return false;
	}

	else if (parETipoGraf=="T")				//tipo texto
	{
		if(varExtension==".TXT")
			return true;
		else
			return false;
	}
}


// Funcion que llena un combo con datos filtrados por una Clave (parEFilt)
function funLLenaComboFiltrado (parECombo,arrEListFilt,arrEListCodi,arrEListText,parEFilt,parECodiSele,parEOpciInic,parECodiOpciInic,parETextOpciInic)
{
	var pepe =  arrEListCodi.length;
	//alert(pepe);
	varLen = pepe;
	parECombo.length = 0;
	varPosiSele = -1;

	// verifica si tiene que añadir una opcion al inicio
	if (parEOpciInic=="S")
	{
		parECombo.length = parECombo.length + 1;			
		parECombo.options[parECombo.length-1].value = parECodiOpciInic;
		parECombo.options[parECombo.length-1].text = parETextOpciInic;
	}

	// llena todos los elementos de la lista
	for (varI=0;varI<varLen;varI++)
	{
		if (arrEListFilt[varI]==parEFilt)
		{
			parECombo.length = parECombo.length + 1;			
			parECombo.options[parECombo.length-1].value = arrEListCodi[varI];
			parECombo.options[parECombo.length-1].text = arrEListText[varI];

			if ((parECodiSele!="")&&(parECodiSele==arrEListCodi[varI]))
			{
				varPosiSele = parECombo.length-1;
			}
		}
	}

	// ubica el elemento de la lista por defecto
	if (varPosiSele!=-1) parECombo.options.selectedIndex = varPosiSele;
}