/* Crea una ventana popup */
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;
  }

  /* 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)
}

/* Deshabilita el botón derecho del mouse */
function funDisableRightClick()
{
  if (event.button == 2)
  {
    alert("Lo siento no puede utilizar el boton derecho.\n")
  }
}

/* Redondea un número */
function roundit(Num, Places, parEDeci)
{
	if (Places > 0) 
	{
		if ((Num.toString().length - Num.toString().lastIndexOf(parEDeci)) > (Places + 1))
		{
			var Rounder = Math.pow(10, Places);
			Num = Math.round(Num * Rounder) / Rounder;

			varCero = "";
			varDeci = Num.toString().length - Num.toString().lastIndexOf(parEDeci) - 1;

			if (Num.toString().lastIndexOf(parEDeci)>0)
			{
				for (varI=varDeci;varI<Places;varI++)
				{
					varCero = varCero + "0";
				}
				Num = Num + varCero;
			}
			else 
			{
				for (varI=0;varI<Places;varI++)
				{
					varCero = varCero + "0";
				}
				Num = Num + "." + varCero;
			}

			return Num;
		}
		else
		{
			varCero = "";
			varDeci = Num.toString().length - Num.toString().lastIndexOf(parEDeci) - 1;

			if (Num.toString().lastIndexOf(parEDeci)>0)
			{
				for (varI=varDeci;varI<Places;varI++)
				{
					varCero = varCero + "0";
				}
				Num = Num + varCero;
			}
			else 
			{
				for (varI=0;varI<Places;varI++)
				{
					varCero = varCero + "0";
				}
				Num = Num + "." + varCero;
			}

			return Num;
		}
	}
	else return Math.round(Num);
}

/* Verifica si el campo es número */
function funVeriNume (parECadena)
{
	if (funVeriVaci(parECadena)) return false;

	var CadenaNumeros="0123456789.";
	var EsteCaracter;
	var Contador =0;
	for (var i=0; i < parECadena.length ; i++)
	{
		EsteCaracter= parECadena.substring(i,i+1);
		if (CadenaNumeros.indexOf(EsteCaracter) != -1)
			Contador ++;
	}
	if (Contador == parECadena.length)
		return true;
	else
		return false;
}

/* Verifica si el campo es número entero */
function funVeriNumeEnte (parECadena)
{
	if (funVeriVaci(parECadena)) return false;

	var CadenaNumeros="0123456789";
	var EsteCaracter;
	var Contador =0;
	for (var i=0; i < parECadena.length ; i++)
	{
		EsteCaracter= parECadena.substring(i,i+1);
		if (CadenaNumeros.indexOf(EsteCaracter) != -1)
			Contador ++;
	}
	if (Contador == parECadena.length)
		return true;
	else
		return false;
}

/* Verifica si el campo esta vacio */
function funVeriVaci (parECadena)
{
	for (var i=0; i < parECadena.length; i++)
	{
		if (parECadena.substring(i, i+1) != " ")
			return false;
	}
	return true;
}

function funVeriEmai(Dato)
{
	if (funVeriVaci(Dato)) return false;

	varI=0;
	varPasa = 0;

	// Verifica el (@)
	for (varI=0;varI<Dato.length;varI++)
	{
		EsteCaracter=Dato.substring(varI,varI+1);
		if (EsteCaracter == "@")
		{
			varPasa=1;
			varPosi=varI;
		}
	}

	// Verifica que haya por lo menos un (.) despues del (@)
	if (varPasa==1)
	{
		varPasa = 0;
		for (varI=varPosi+1;varI<Dato.length-1;varI++)
		{
			EsteCaracter=Dato.substring(varI,varI+1);
			if (EsteCaracter == ".")
				varPasa=1;
		}
	}

	if (varPasa==0)
		return false;
	else
		return true;
}

// Funcion que llena un combo con datos filtrados por una Clave (parEFilt)
function funLLenaComboFiltrado (parECombo,arrEListFilt,arrEListCodi,arrEListText,parEFilt,parECodiSele,parEOpciInic,parECodiOpciInic,parETextOpciInic)
{
	varLen = arrEListCodi.length;
	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;
}