var TRIM_LEFT  = 0x0001;

var TRIM_RIGHT = 0x0002;

var TRIM_BOTH  = TRIM_LEFT | TRIM_RIGHT;



/*-----------------------------------------------------------------------------

| Nombre      : ValidarCampoTexto

| Descripcion : Funcin que valida un campo de tipo texto

+------------------------------------------------------------------------------

| Parametros  : Campo		Texto a validar

|	        Mensaje		Mensaje a mostrar en caso de error

+------------------------------------------------------------------------------

| Autor : Cesar Leonardo Garcia  cesgarc@nextmedia-i.com     Fecha : 26-12-2000

+------------------------------------------------------------------------------

| Retorno: Falso, si valida con error. Verdadero si la validacin es correcta.

+------------------------------------------------------------------------------

| Modificaciones :

+----------------------------------------------------------------------------*/

function ValidarCampoTexto(Campo, Mensaje) {



    Campo.value = strTrim(Campo.value,TRIM_BOTH);

    if (isVacio(Campo.value)) {

    	alert('Por favor ingrese ' + Mensaje );

        Campo.focus();

        return false;

    }

    return true;

}



function ValidarCampo(Campo, Mensaje) {



	Campo.value = strTrim(Campo.value,TRIM_BOTH);

	if (isVacio(Campo.value)) {

    	alert('Por favor ingresar ' + Mensaje );

		Campo.focus();

		return false;

	}

	else {

		if (!isNumeric(Campo.value))

		{

			alert('El valor de ' + Mensaje + ' debe ser num???ico positivo.');

			Campo.focus();

			return false;

		}

		else

		{

			if (parseInt(Campo.value) <= 0) {

				alert('El valor de ' + Mensaje + ' debe ser mayor que cero.');

				Campo.focus();

				return false;

			}

		}

	}

	return true

}



function ValidarCampoPositivo(Campo, Mensaje) {



	Campo.value = strTrim(Campo.value,TRIM_BOTH);

	if (isVacio(Campo.value)) {
       	        alert('Por favor ingresar ' + Mensaje );
		Campo.focus();
		return false;
	}
	else {
		if (!isNumeric(Campo.value))
		{
			alert('El valor de ' + Mensaje + ' debe ser numerico positivo.');
			Campo.focus();
			return false;
		}
		else
		{
			if (parseInt(Campo.value) < 0) {
				alert('El valor de ' + Mensaje + ' debe ser mayor que cero.');
				Campo.focus();
				return false;
			}
		}
	}
	return true
}



function strTrim( varText, side )

{

  var i = 0;

  var j = varText.length - 1;



  if( side & TRIM_LEFT )

  {

    for( i = 0; i < varText.length; i++ )

    {

      if( varText.substring( i, i+1 ) != " " && varText.substring( i, i+1 ) != "\t")

		{

        break;

        }

    }

  }



  if( side & TRIM_RIGHT )

  {

    for( j = varText.length - 1; j >= 0; j-- )

    {

      if( varText.substring( j, j+1 ) != " " &&

          varText.substring( j, j+1 ) != "\t")

        break;

    }

  }



  if( i <= j )

    return( varText.substring( i, (j+1) ) );

  else

    return("");

}



function isNumeric(str)

{

	for (var i=0; i < str.length; i++) {

		var ch = str.substring(i, i+1)

		if(ch < "0" || ch > "9") {

			return false;

		}

	}



	return true;

}



function longitud(s)

{

   return (s.length)

}



function isVacio(s)

{

   return ((s == null) || (s.length == 0))

}



/*-----------------------------------------------------------------------------

| Nombre      : ValidarEmail

| Descripcion : Funcin que valida un campo que captura un correo electrnico

+------------------------------------------------------------------------------

| Parametros  : Campo		e-mail a validar

|	        Mensaje		Mensaje a mostrar en caso de error

+------------------------------------------------------------------------------

| Autor : Cesar Leonardo Garcia  cesgarc@nextmedia-i.com     Fecha : 26-12-2000

+------------------------------------------------------------------------------

| Retorno: Falso, si valida con error. Verdadero si la validacin es correcta.

+------------------------------------------------------------------------------

| Modificaciones :

+----------------------------------------------------------------------------*/

function ValidarEmail(Campo, Mensaje)

{

	with (Campo)

	{

		apos = value.indexOf("@");

		spacepos = value.indexOf(" ");

		dotpos = value.lastIndexOf(".");

		lastpos = value.length-1;

		if (apos < 1 || dotpos - apos < 2 || lastpos - dotpos > 3 || lastpos - dotpos < 2 || spacepos != -1) {

			if (Mensaje) {

				alert('\nEl ' + Mensaje + ' no es valido.');

				Campo.focus();

			}

			return false;

		}

		else {

			return true;

		}

	}

}



/*

Esta funcion difiere de "ValidarCampo", en que permite que el valor sea cero (0).

*/

function ValidarCampoII(Campo, Mensaje) {



	Campo.value = strTrim(Campo.value,TRIM_BOTH);

	if (isVacio(Campo.value)) {

		alert('\nEl valor de ' + Mensaje + ' no puede ser vac???.\n\nPor favor suministre la informacin.');

		Campo.focus();

		return false;

	}

	else {

		if (!isNumeric(Campo.value))

		{

			alert('El valor de ' + Mensaje + ' debe ser num???ico entero positivo.');

			Campo.focus();

			return false;

		}

		else

		{

			if (parseInt(Campo.value) < 0) {

				alert('El valor de ' + Mensaje + ' debe ser mayor o igual que cero.');

				Campo.focus();

				return false;

			}

		}

	}



	return true

}



/*-----------------------------------------------------------------------------

| Nombre      : ValidarCombo

| Descripcion : Funcin que valida la captura en un combo box

+------------------------------------------------------------------------------

| Parametros  : Campo		Combo a validar

|	        Mensaje		Mensaje a mostrar en caso de error

+------------------------------------------------------------------------------

| Autor : Cesar Leonardo Garcia  cesgarc@nextmedia-i.com     Fecha : 26-12-2000

+------------------------------------------------------------------------------

| Retorno: Falso, si valida con error. Verdadero si la validacin es correcta.

+------------------------------------------------------------------------------

| Modificaciones :

+----------------------------------------------------------------------------*/

function ValidarCombo(Combo, Mensaje) {



	if (Combo.selectedIndex == 0){

		alert('\nPor favor seleccionar ' + Mensaje );

		Combo.focus();

		return false;

	}



	return true;

}



/*****************************************************************************************

'Fecha : Febrero 15/2000

'.........................................................................................

'Descripcion:

'		Valida una fecha que viene descompuesta en Ao, Mes y Dia

'.........................................................................................

'Parametros:

'		Todos los parametros son convertidos a enteros, dentro de la funcion, antes de 

'		proceder validarlos

'		Anno: Ao a validar 

'		Mes: Mes a validar 

'		Dia: Dia a validar 

'.........................................................................................

'Validaciones:

'		Valida fechas de aos bisiestos (de Febrero) y, que el dia sea valido dentro del

'		mes elegido

*****************************************************************************************/

function ValidarFecha(Anno, Mes, Dia) {



	var intAnno = parseInt(Anno);

	var intMes = parseInt(Mes);

	var intDia = parseInt(Dia);



	// Validar que los valores no sean igual a cero

	if ((Anno == 0) || (Mes == 0) || (Dia == 0)) {

		alert('Debe elegir los valores para el mes, el dia y el ao.');

		return false;

	}



	// Validar que, en un ao NO bisiesto, el numero de dias del mes de Febrero no sea mayor que 28

	if (((intAnno % 4) != 0) && (intMes == 2) && (intDia > 28)) {

		alert('El mes de Febrero no puede contener m??? de 28 d???s.\n\nPor favor, corrija la informacin.');

		return false;

	}



	// Validar que, en un ao bisiesto, el numero de dias del mes de Febrero no sea mayor que 29

	if (((intAnno % 4) == 0) && (intMes == 2) && (intDia > 29)) {

		alert('El mes de Febrero no puede contener m??? de 29 d???s.\n\n Por favor, corrija la informacin.');

		return false;

	}



	// Validar que el dia sea valido para el mes elegido, no mayor que 30

	if ( ((intMes == 4) || (intMes == 6) || (intMes == 9) || (intMes == 11)) && (intDia > 30) ) {

		alert('El mes seleccionando slo contiene 30 d???s.\n\nPor favor, corrija la informacin.');

		return false;

	}



	return true;

}



/*****************************************************************************************

'Fecha : Febrero 16/2000

'.........................................................................................

'Descripcion:

'		Compara dos fechas en formato (Ao, Mes y Dia), y retorna true si la primera es menor

'		o igual que la segunda, de lo contrario retorna false

'.........................................................................................

'Parametros:

'		Todos los parametros son convertidos a enteros, dentro de la funcion, antes de 

'		proceder a validarlos

'		-----------

'		AnnoDesde: Ao Desde a validar

'		MesDesde: Mes Desde a validar

'		DiaDesde: Dia Desde a validar

'		strCampoInferior: Cadena del campo inferior para mostrar en los mensajes

'		-----------

'		AnnoHasta: Ao Hasta a validar

'		MesHasta: Mes Hasta a validar

'		DiaHasta: Dia Hasta a validar

'		strCampoSuperior: Cadena del campo superior para mostrar en los mensajes

'.........................................................................................

'Validaciones:

'		La funcion asume que las fechas que se pasan son validas

'.........................................................................................

'Modificaciones:

'		2000-03-15 :	Fueron adicionados dos nuevos parametros (strCampoInferior y

'						strCampoSuperior), para permitir mostrar mensajes mas personalizados,

'						dependiendo del contexto desde donde sea llamada la funcion.

*****************************************************************************************/

function CompararFechas(AnnoInferior, MesInferior, DiaInferior, AnnoSuperior, MesSuperior, DiaSuperior, strCampoInferior, strCampoSuperior) {



	var mensaje = 'La fecha ' + strCampoInferior + ' debe ser menor o igual que la fecha ' + strCampoSuperior;

	// --------------

	var intAnnoInferior = parseInt(AnnoInferior);

	var intMesInferior = parseInt(MesInferior);

	var intDiaInferior = parseInt(DiaInferior);

	// --------------

	var intAnnoSuperior = parseInt(AnnoSuperior);

	var intMesSuperior = parseInt(MesSuperior);

	var intDiaSuperior = parseInt(DiaSuperior);



	var dteFechaInferior = new Date(parseInt(AnnoInferior), parseInt(MesInferior) - 1, parseInt(DiaInferior))

	var dteFechaSuperior = new Date(parseInt(AnnoSuperior), parseInt(MesSuperior) - 1, parseInt(DiaSuperior))



	// Restar la fecha inferior de la superior

	dif_dias = dteFechaSuperior - dteFechaInferior

	if (dif_dias < 0) {

		alert(mensaje);

		return false;

	}



	return true;

}
/*****************************************************************************************

'Fecha : Agosto 23/2005

'.........................................................................................

'Descripcion:

'		verifica si una direccion ip es valida

'.........................................................................................*/

function validar(Campo) { 
	ip=Campo.value;
    partes=ip.split('.'); 
    if (partes.length!=4) { 
        alert('Ingrese una direccion ip valida'); 
        return; 
    } 
    for (i=0;i<4;i++) { 
        num=partes[i]; 
        if (num>255 || num<0 || num.length==0 || isNaN(num)){ 
        	alert('Ingrese una direccion ip valida'); 
        	return; 
        } 
    } 
} 





