// función para checkear el Código Postal
function ChkZipCode()
{
    var i, campo, nombre, errors;
    errors = ChkZipCode.arguments[ChkZipCode.arguments.length - 1];
    for ( i = 0; i < (ChkZipCode.arguments.length - 1); i += 2)
    {
        campo = ChkZipCode.arguments[i];
        nombre = ChkZipCode.arguments[i+1];
        if (campo.value)
        {
            chrsValidos = "abcdefghijklmnopqrstuvwxyz0123456789";
            aux = campo.value.toLowerCase();
            flg = false
            for ( j = 0; j < chrsValidos.length; j++)
            	if ( aux.charAt(0) == chrsValidos.charAt(j) )
                    flg = true;
            if (!flg)
				errors += '- '+ nombre +': es inválido.\n';
        }
    }
    return errors;
}

// Función que chequea que el primer caracter del campo sea letra
// Utilizada para nombres de usuario y/o passwords
function ChkBeginChr()
{
    var i, campo, nombre, errors;
    errors = ChkBeginChr.arguments[ChkBeginChr.arguments.length - 1];
    for ( i = 0; i < (ChkBeginChr.arguments.length - 1); i += 2)
    {
        campo = ChkBeginChr.arguments[i];
        nombre = ChkBeginChr.arguments[i+1];
        if (campo.value)
        {
            chrsValidos = "abcdefghijklmnopqrstuvwxyz";
            aux = campo.value.toLowerCase();
            flg = false
            for ( j = 0; j < chrsValidos.length; j++)
            	if ( aux.charAt(0) == chrsValidos.charAt(j) )
                    flg = true;
            if (!flg)
				errors += '- '+ nombre +': el primer caracter debe ser una letra entre (a-z) o (A-Z).\n';
        }
    }
    return errors;
}

// Funcion que checkea que este seleccionada una opcion del combo 
function ChkCboNotNull()
{
    var i, campo, nombre, errors;
    errors = ChkCboNotNull.arguments[ChkCboNotNull.arguments.length - 1];
    for (i=0; i< ChkCboNotNull.arguments.length - 1; i += 2)
    {    	
        campo = ChkCboNotNull.arguments[i];
        nombre = ChkCboNotNull.arguments[i+1];
        if ( (campo.options[campo.selectedIndex].value == null) || 
            (campo.options[campo.selectedIndex].value == '') )
                errors += '- '+ nombre +': debe seleccionar una opción.\n';
    }
    return errors;
}

// función para checkear una fecha
// (debe usarse con CheckDay)
function ChkDate()
{
    var i, campo, p, nombre, errors, not_date;    
    not_date = 0;
    errors = ChkDate.arguments[ChkDate.arguments.length - 1];
    for ( i = 0; i < ChkDate.arguments.length - 1; i += 2)
    {
        campo = ChkDate.arguments[i];
        nombre = ChkDate.arguments[i+1];
        if (campo.value)
        {
            isplit = campo.value.indexOf('/');
            if (isplit == -1 || isplit == campo.value.length)
            not_date = 1;
            sDay = campo.value.substring(0, isplit);
            isplit = campo.value.indexOf('/', isplit + 1);
            if (isplit == -1 ||  (isplit + 1 )  == campo.value.length)
                not_date = 1;
            sMonth = campo.value.substring((sDay.length + 1), isplit);
            sYear = campo.value.substring(isplit + 1);
			if (isNaN(sYear) && (sYear.length != 2) && (sYear.length != 4)){
				not_date = 1;
			}else{
				if (sYear.length == 2){
					if (sYear < 35)
						sYear += 1900;
					else
						sYear += 2000;
				}else{
					if ((sYear <= 1890) || (sYear >= 2000))
						not_date = 1;
				}
			}
            if ( isNaN(sMonth) )
                not_date = 1;
            else if ( isNaN(sMonth, 1, 12) )
                not_date = 1;
            else if ( !CheckRange(sYear, 0, null) )
                not_date = 1;
            else if ( isNaN(sDay) )
                not_date = 1; 
            else if ( !CheckDay(sYear, sMonth, sDay) )
                not_date = 1;
            if (not_date)
                errors += '- '+ nombre + ': debe contener una fecha válida.\n';
        }
    }
    return errors;
}

// Funcion que checkea que el dia de una fecha sea valido
function CheckDay(checkYear, checkMonth, checkDay)
{
    maxDay = 31;
    if (checkMonth == 4 || checkMonth == 6 ||
        checkMonth == 9 || checkMonth == 11)
            maxDay = 30;
    else if (checkMonth == 2)
    {
        if (checkYear % 4 > 0)
            maxDay =28;
        else if (checkYear % 100 == 0 && checkYear % 400 > 0 )
            maxDay = 28;
        else
            maxDay = 29;
    }
    return CheckRange(checkDay, 1, maxDay);
}

// Comprueba que el campo sea un numero y este entre un determinado rango
function NumberRange(object_value, min_value, max_value)
{
    if (min_value != null)
        if (object_value < min_value)
            return false;
    if (max_value != null)
        if (object_value > max_value)
            return false;
    return true;
}

// Comprueba el rango de un campo
// (debe usarse con NumberRange)
function CheckRange(object_value, min_value, max_value)
{
    if (object_value.length == 0)
        return true;
    if (!CheckNumber(object_value))
        return false;
    else
        return (NumberRange((eval(object_value)), min_value, max_value));
    return true;
}

// Checkea que un numero sea valido
function CheckNumber(object_value)
{
    var start_format = " .+-0123456789";
    var number_format = " .0123456789";
    var check_char;
    var decimal = false;
    var trailing_blank = false;
    var digits = false;

    if (object_value.length == 0)
        return true;

    check_char = start_format.indexOf(object_value.charAt(0))
    if (check_char == 1)
        decimal = true;
    else if (check_char < 1)
        return false;
    for (var i = 1; i < object_value.length; i++)
    {
        check_char = number_format.indexOf(object_value.charAt(i))
        if (check_char < 0)
            return false;
	else if (check_char == 1)
	{
            if (decimal)
                return false;
            else
                decimal = true;
        }
        else if (check_char == 0)
        {
            if (decimal || digits)	
            trailing_blank = true;
        }
        else if (trailing_blank)
            return false;
        else
            digits = true;
    }	
    return true
}

// Funcion para checkear email
function ChkEmail()
{
    var i, nombre, campo, errors;
    errors = ChkEmail.arguments[ChkEmail.arguments.length - 1];
    for ( i = 0; i < ChkEmail.arguments.length - 1; i += 2)
    {
        campo = ChkEmail.arguments[i];
        nombre = ChkEmail.arguments[i+1];
        if (campo.value)
        {
            var tevaloresults = true;
            var valor = campo.value;
            var index = 0;
            var filter=/^.+@.+\..{2,3}$/
            var filter2=/\.\./            
            var rejected = false;
            var rejectedDomain=new Array();
            rejectedDomain[index]="";
            if (filter.test(valor))
            {
                var tempstring = valor.split("@");
                tempstring = tempstring[1].split(".")
                for ( i = 0; i < rejectedDomain.length; i++) 
                    if (tempstring[0]==rejectedDomain[i])
                        rejected=true
                if (rejected)
                {
                    errors +=  "Las siguientes direciones de email no son válidas:\n"
                    for ( i = 0; i < rejectedDomain.length; i++) 
                        errors += "\t" + rejectedDomain[i] + "\n";
                }
                if ( filter2.test(valor) )
                    errors += '- '+ nombre + ': debe contener un e-mail válido.\n';	
            }
            else
                errors += '- '+ nombre +' debe contener una dirección de e-mail válida.\n';
        }
    }
    return errors;
}

// Checkea que el campo sea de una determinada longitud
function ChkLength()
{ var i,field,message,errors,minLen;
	errors = ChkLength.arguments[ChkLength.arguments.length - 1];
		  for (i=0; i<(ChkLength.arguments.length - 1); i+=3)
		  {
			field = ChkLength.arguments[i];
			minLen = ChkLength.arguments[i+1];
			message = ChkLength.arguments[i+2];
					if (field.value)
					{ 	if (field.value.length < minLen)
						{
							errors += '- '+ message +': no debe tener menos que '+minLen+' caracteres.\n';
						}
					}
			}
	return errors;
} 

// Checkea que el campo sea de una determinada longitud máxima
function ChkLengthMax()
{ 
  var i,field,message,errors,maxLen;
	errors = ChkLengthMax.arguments[ChkLengthMax.arguments.length - 1];
		  for (i=0; i<(ChkLengthMax.arguments.length - 1); i+=3)
		  {
			field = ChkLengthMax.arguments[i];
			maxLen = ChkLengthMax.arguments[i+1];
			message = ChkLengthMax.arguments[i+2];
					if (field.value)
					{ 	if (field.value.length > maxLen)
						{
							errors += '- '+ message +' no debe tener más que '+maxLen+' caracteres.\n';
						}
					}
			}
	return errors;
} 

// Checkea que el campo no sea nulo
function ChkNotNull()
{
    var i, campo, nombre, errors;
    errors = ChkNotNull.arguments[ChkNotNull.arguments.length - 1];
    for (i = 0; i < ChkNotNull.arguments.length - 1; i += 2)
    {
        campo = ChkNotNull.arguments[i];
        nombre = ChkNotNull.arguments[i+1];
        if ( !campo.value )
            errors += '- '+ nombre +': no debe estar vacío.\n';
    }
    return errors;
}

// Checkea que el campo sea un numero
function ChkNumber()
{
    var i, campo, nombre, numero, errors;
    errors = ChkNumber.arguments[ChkNumber.arguments.length - 1];
    for ( i = 0; i < ChkNumber.arguments.length - 1; i += 2)
    {
        campo = ChkNumber.arguments[i];
        nombre = ChkNumber.arguments[i+1];
        if (campo.value)
        {
            numero = parseFloat( campo.value );
            if ( campo.value != '' + numero) 
                errors += '- '+ nombre +': debe ser numérico.\n';
        }
    }
    return errors;
}

// checkea los caracteres posibles para un password
function ChkPassword()
{
    var i, campo, nombre, errors;
    errors = ChkPassword.arguments[ChkPassword.arguments.length - 1];
    for ( i = 0; i < ChkPassword.arguments.length - 1; i += 2)
    {
        campo = ChkPassword.arguments[i];
        nombre = ChkPassword.arguments[i+1];
        chrsValidos = "_abcdefghijklmnopqrstuvwxyz0123456789";
        if (campo.value)
        {
            aux = campo.value.toLowerCase();
            for ( j = 0, flg = false; j < aux.length; j++, flg = false)
            {
            	for ( k = 0; k < chrsValidos.length; k++)
            	    if ( aux.charAt(j) == chrsValidos.charAt(k) )
            	    	flg = true;
            	if (!flg)
                {
                    errors += '- '+ nombre +': deberá contener sólo caracteres (a-z), (A-Z), (0-9) o underscore (_).\n';
                    break;
	        }
            }
        }
    }
    return errors;
}

// Checkea que los radio buttons esten seleccionados
function chkRadio(form) 
{
    var i, campo, nombre, errors, flag, x;
    
    errors = chkRadio.arguments[chkRadio.arguments.length - 1];
    for ( i = 0; i < chkRadio.arguments.length - 1; i += 2)
    {
        campo = chkRadio.arguments[i];
        nombre = chkRadio.arguments[i+1];
		flag = false;
		for (x = 0; x < campo.length; x++) 
			if (campo[x].checked)
				flag = true;
		if (!flag)
			 errors += '- '+ nombre +': debe seleccionar una opción.\n';
    }
    return errors;
}

// Checkea los caracteres posibles para el nombre de usuario
function ChkUserName()
{
    var i, campo, nombre, errors;
    errors = ChkUserName.arguments[ChkUserName.arguments.length - 1];
    for ( i = 0; i < ChkUserName.arguments.length - 1; i += 2)
    {
        campo = ChkUserName.arguments[i];
        nombre = ChkUserName.arguments[i+1];
        chrsValidos = "_abcdefghijklmnopqrstuvwxyz0123456789";
        if (campo.value)
        {            
            aux = campo.value.toLowerCase();
            for ( j = 0, flg = false; j < aux.length; j++, flg = false)
            {
            	for ( k = 0; k < chrsValidos.length; k++)
            	    if ( aux.charAt(j) == chrsValidos.charAt(k) )
            	    	flg = true;
            	if (!flg)
                {
                    errors += '- '+ nombre +': deberá contener sólo caracteres (a-z), (A-Z), (0-9) o underscore (_).\n';
                    break;
	        }
            }
        }
    }
    return errors;
}

// Checkea que el campo sea de texto conteniendo solamente letras
function ChkText()
{
    var i, campo, nombre, errors;
    errors = ChkText.arguments[ChkText.arguments.length - 1];
    for ( i = 0; i < ChkText.arguments.length - 1; i += 2)
    {
        campo = ChkText.arguments[i];
        nombre = ChkText.arguments[i+1];
        chrsValidos = "_áéíóúüabcdefghijklmnñopqrstuvwxyz";
        if (campo.value)
        {            
            aux = campo.value.toLowerCase();
			aux=aux.split(' ').join('');
            for ( j=0,flg=false;j<aux.length;j++,flg=false)
            {
            	for (k=0;k<chrsValidos.length;k++)
            	    if (aux.charAt(j)==chrsValidos.charAt(k))
            	    	flg = true;
            	if (!flg)
                {
                    errors += '- '+ nombre +': deberá contener sólo caracteres (a-z), (A-Z).\n';
                    break;
	        }
            }
        }
    }
    return errors;
}

// Checkea que el campo sea de una determinada longitud
function ChkLengthRange()
{  var errors, err='', err2='',nada='';
   errors = ChkLengthRange.arguments[ChkLengthRange.arguments.length - 1];
   for ( i = 0; i < ChkLengthRange.arguments.length - 1; i += 4)
   { err += ChkLength( ChkLengthRange.arguments[i], ChkLengthRange.arguments[i+1], ChkLengthRange.arguments[i+3],nada);
     err2 += ChkLengthMax( ChkLengthRange.arguments[i], ChkLengthRange.arguments[i+2], ChkLengthRange.arguments[i+3],nada);
   }
   errors += err+err2;
   return errors;
}

// Checkea numeros de telefono
function ChkTel()
{
    var i, campo, nombre, errors;
    errors = ChkTel.arguments[ChkTel.arguments.length - 1];
    for ( i = 0; i < ChkTel.arguments.length - 1; i += 2)
    {
        campo = ChkTel.arguments[i];
        nombre = ChkTel.arguments[i+1];
        chrsValidos = "-/0123456789 ";
		aux = campo.value.toLowerCase();
        if (campo.value)
        {            

            for ( j = 0, flg = false; j < aux.length; j++, flg = false)
            {
            	for ( k = 0; k < chrsValidos.length; k++)
            	    if ( aux.charAt(j) == chrsValidos.charAt(k) )
            	    	flg = true;
            	if (!flg)
                {
                    errors += '- '+ nombre +': deberá contener sólo números (0-9) + \'-\' o \'/\' .\n';
                    break;
	        }
            }
        }
    }
    return errors;
}
//Chequea que los caracteres ingresados en un textbox
//sean solo numeros
function ChkOnlyNumber()
{
    var i, campo, nombre, errors;
    errors = ChkOnlyNumber.arguments[ChkOnlyNumber.arguments.length - 1];
    for ( i = 0; i < ChkOnlyNumber.arguments.length - 1; i += 2)
    {
        campo = ChkOnlyNumber.arguments[i];
        nombre = ChkOnlyNumber.arguments[i+1];
        chrsValidos = "0123456789";
        if (campo.value)
        {            
            aux = campo.value.toLowerCase();
			aux=aux.split(' ').join('');
            for ( j=0,flg=false;j<aux.length;j++,flg=false)
            {
            	for (k=0;k<chrsValidos.length;k++)
            	    if (aux.charAt(j)==chrsValidos.charAt(k))
            	    	flg = true;
            	if (!flg)
                {
                    errors += '- '+ nombre +': deberá contener sólo numeros (0-9).\n';
                    break;
	        }
            }
        }
    }
    return errors;
}
// Checkea que el campo sea de texto conteniendo solamente letras
// y el caracter "*" para búsquedas.
function ChkTextSeek()
{
    var i, campo, nombre, errors;
    errors = ChkTextSeek.arguments[ChkTextSeek.arguments.length - 1];
    for ( i = 0; i < ChkTextSeek.arguments.length - 1; i += 2)
    {
        campo = ChkTextSeek.arguments[i];
        nombre = ChkTextSeek.arguments[i+1];
        chrsValidos = "_áéióúüabcdefghijklmnopqrstuvwxyz*";
        if (campo.value)
        {            
            aux = campo.value.toLowerCase();
			aux=aux.split(' ').join('');
            for ( j=0,flg=false;j<aux.length;j++,flg=false)
            {
            	for (k=0;k<chrsValidos.length;k++)
            	    if (aux.charAt(j)==chrsValidos.charAt(k))
            	    	flg = true;
            	if (!flg)
                {
                    errors += '- '+ nombre +': deberá contener sólo caracteres (a-z), (A-Z) o (*).\n';
                    break;
	        }
            }
        }
    }
    return errors;
}
// Checkea que el campo sea de texto conteniendo solamente letras
// y números
function ChkTextAlfa()
{
    var i, campo, nombre, errors;
    errors = ChkTextAlfa.arguments[ChkTextAlfa.arguments.length - 1];
    for ( i = 0; i < ChkTextAlfa.arguments.length - 1; i += 2)
    {
        campo = ChkTextAlfa.arguments[i];
        nombre = ChkTextAlfa.arguments[i+1];
        chrsValidos = "áéiíóúüabcdefghijklmnñopqrstuvwxyz0123456789°.,";
        if (campo.value)
        {            
            aux = campo.value.toLowerCase();
			aux=aux.split(' ').join('');
            for ( j=0,flg=false;j<aux.length;j++,flg=false)
            {
            	for (k=0;k<chrsValidos.length;k++)
            	    if (aux.charAt(j)==chrsValidos.charAt(k))
            	    	flg = true;
            	if (!flg)
                {
                    errors += '- '+ nombre +': deberá contener sólo caracteres o números (a-z), (A-Z) o (0-9).\n';
                    break;
	        }
            }
        }
    }
    return errors;
}

// Checkea que el campo sea de texto conteniendo solamente letras,
// números y signos de puntuación
function ChkTextAlfaExt()
{
    var i, campo, nombre, errors;
    errors = ChkTextAlfaExt.arguments[ChkTextAlfaExt.arguments.length - 1];
    for ( i = 0; i < ChkTextAlfaExt.arguments.length - 1; i += 2)
    {
        campo = ChkTextAlfaExt.arguments[i];
        nombre = ChkTextAlfaExt.arguments[i+1];
        chrsValidos = "áéióúüabcdefghijklmnopqrstuvwxyz0123456789.:?¿!¡=-\\\/*+()^[]";
        if (campo.value)
        {            
            aux = campo.value.toLowerCase();
			aux=aux.split(' ').join('');
            for ( j=0,flg=false;j<aux.length;j++,flg=false)
            {
            	for (k=0;k<chrsValidos.length;k++)
            	    if (aux.charAt(j)==chrsValidos.charAt(k))
            	    	flg = true;
            	if (!flg)
                {
                    errors += '- '+ nombre +': deberá contener sólo caracteres o números (a-z), (A-Z) o (0-9).\n';
                    break;
	        }
            }
        }
    }
    return errors;
}





//Chequea que los caracteres ingresados en un textbox
//sean solo numeros y el punto decimal
function ChkDecimal()
{
    var i, campo, nombre, errors;
    var intDigitosEnteros, intDigitosDecimales,aux2;
    errors = ChkDecimal.arguments[ChkDecimal.arguments.length - 1];
    for ( i = 0; i < ChkDecimal.arguments.length - 1; i += 4)
    {
        campo				= ChkDecimal.arguments[i];
        nombre				= ChkDecimal.arguments[i+1];
        intDigitosEnteros	=  ChkDecimal.arguments[i+2];
        intDigitosDecimales = ChkDecimal.arguments[i+3];
        chrSepDecimal		= ChkDecimal.arguments[i+4];
        chrsValidos			= "0123456789" + chrSepDecimal;
        if (campo.value)
        {   
            aux = campo.value.toLowerCase();
            aux2 = aux.split(chrSepDecimal)[0]
			
            if(aux2.length > intDigitosEnteros)
            {
				errors += '- '+ nombre +': deberá contener hasta ' +  intDigitosEnteros + ' dígitos enteros.\n';
            }
            if(aux.indexOf(chrsValidos.charAt(0)) > 0 ){
				aux2 = aux.split(chrSepDecimal)[1]
				if(aux2 != null)
				{
					if( aux2.length > intDigitosDecimales)
					{
						errors += '- '+ nombre +': deberá contener hasta ' +  intDigitosDecimales + ' dígitos decimales.\n';
					}
				}
			}
			aux=aux.split(' ').join('');
            for ( j=0,flg=false;j<aux.length;j++,flg=false)
            {
            	for (k=0;k<chrsValidos.length;k++)
            	    if (aux.charAt(j)==chrsValidos.charAt(k))
            	    	flg = true;
            	if (!flg)
                {
                    errors += '- '+ nombre +': deberá contener sólo numeros (0-9) y \'' + chrSepDecimal  + '\'.\n';
                    break;
	        }
            }
        }
    }
    return errors;
}

function ChkCuit(){

	var Suma = 0;
	var Resto = 0;
	var RestoReal;
	var i;
	var campo;
	var nombre;
	var flg;
	var errors;
	var aux;
	
	errors = ChkCuit.arguments[ChkCuit.arguments.length - 1];
	for ( i = 0; i < ChkCuit.arguments.length - 1; i += 2)
    {
        campo = ChkCuit.arguments[i];
        nombre = ChkCuit.arguments[i+1];
        
        flg = true;
       
        if (campo.value)
        {            
			aux = campo.value;
			if (aux.length < 13){		
				flg = false;
			}
	
			if ((aux.charAt(2) != '-') || (aux.charAt(11) != '-')){
				flg = false;
			}
		
			var ch2 = aux.substr(0,2);
			var ch8 = aux.substr(3,8);
			var ch1 = aux.substr(12,1);
		
			if (isNaN(ch2 + ch8 + ch1)){
				flg = false;
			} 
		
			Suma = (aux.charAt(0)*5) + (aux.charAt(1)*4);
			Suma = Suma + (aux.charAt(3)*3) + (aux.charAt(4)*2);
			Suma = Suma + (aux.charAt(5)*7) + (aux.charAt(6)*6);
			Suma = Suma + (aux.charAt(7)*5) + (aux.charAt(8)*4);
			Suma = Suma + (aux.charAt(9)*3) + (aux.charAt(10)*2);
	
			Resto = (Suma % 11);

			if (Resto == 0){
				Resto = 11;
			}

			Resto = (11 - Resto);
	
			if  (Resto != ch1){
				flg = false;
			}
            
            if (!flg)
            {
				errors += '- '+ nombre +': Número de CUIT o CUIL inválido.\n';
                break;
			}
 
		}
    }
	return errors;
}
//lFecha = new Date(anio,mes-1,dia);
			
//			Hoy = new Date();
//			if(!rango_fecha_valido(Hoy,lFecha,"La fecha de liberación es menor que la fecha actual."))
function evalRangoFecha(fecha_desde,fecha_hasta,error_msg,strAntErr)
		{	
			/*------------------------------------------------*/
			/*                                                */
			/* Valida un rango de fechas.                     */
			/*PARÁMETROS:                                     */
			/*           fecha_desde:  fecha inicial.         */
			/*           fecha_hasta: fecha final.            */
			/*           error_msg: mensaje de error.         */
			/*                                                */
			/* DEVUELVE:                                      */
			/*			true: el rango de fechas es válido    */
			/*          false: el rango de fechas es inválido */
			/*------------------------------------------------*/
			
			dia_desde = fecha_desde.getDate();
			dia_hasta = fecha_hasta.getDate();
			mes_desde = fecha_desde.getMonth();
			mes_hasta = fecha_hasta.getMonth();
			anio_desde = fecha_desde.getYear();
			anio_hasta = fecha_hasta.getYear();
		
			if(anio_desde > anio_hasta)
			/* ERROR: El año de inicio es mayor al año final */
			{	//alert (error_msg);
				return strAntErr + error_msg;
			}
			else if(anio_desde == anio_hasta)
			/*Los años son iguales */
			{
				if(mes_desde > mes_hasta)
				/* ERROR: El mes inicial es mayor */
				{
						//alert (error_msg);
						return strAntErr + error_msg;
				}
				else if(mes_desde == mes_hasta)
				/* Los meses son iguales, controlo días */
				{
						if(dia_desde > dia_hasta)
						/*ERROR: El día desde es mayor */
						{
							//alert (error_msg);
							return strAntErr + error_msg;
						}
						else 
						/* Si el día desde es menor o igual al día final no hay error */
						{
							return strAntErr;
						}
				}
				else
				/* El mes final es mayor, no hay error */
				{
					return strAntErr;
				}
			}
			else
			/* El año final es mayor */
			{
				return strAntErr;
			}
		}
// Función que chequea que el primer caracter del campo sea letra
// Utilizada para nombres de usuario y/o passwords
function ChkBeginChr()
{
    var i, campo, nombre, errors;
    errors = ChkBeginChr.arguments[ChkBeginChr.arguments.length - 1];
    for ( i = 0; i < (ChkBeginChr.arguments.length - 1); i += 2)
    {
        campo = ChkBeginChr.arguments[i];
        nombre = ChkBeginChr.arguments[i+1];
        if (campo.value)
        {
            chrsValidos = "abcdefghijklmnopqrstuvwxyz";
            aux = campo.value.toLowerCase();
            flg = false
            for ( j = 0; j < chrsValidos.length; j++)
            	if ( aux.charAt(0) == chrsValidos.charAt(j) )
                    flg = true;
            if (!flg)
				errors += '- '+ nombre +': el primer caracter debe ser una letra entre (a-z) o (A-Z).\n';
        }
    }
    return errors;
}

// Funcion que checkea que este seleccionada una opcion de un combo múltiple
function ChkCboMulNotNull()
{
    var i, j,campo, nombre, errors;
    var  blnItemSelected;
    errors = ChkCboMulNotNull.arguments[ChkCboMulNotNull.arguments.length - 1];
    for (i=0; i< ChkCboMulNotNull.arguments.length - 1; i += 2)
    {    	
        campo = ChkCboMulNotNull.arguments[i];
        nombre = ChkCboMulNotNull.arguments[i+1];
        blnItemSelected = false;
       
        for (var j = 0; j < campo.options.length; j++) {   
			if (campo.options[j].selected && campo.options[j].value !='')      
				blnItemSelected = true;
			
			if (campo.options[j].selected && campo.options[j].value =='')      
				campo.options[j].selected = false; 
		}
          if(!blnItemSelected)      
			errors += '- '+ nombre +': debe seleccionar una opción.\n';
    }
    return errors;
}
