var class_error='ko';
var class_correcto='ok';
// FUNCION PARA ELIMINAR ESPACIOS EN BLANCO AL COMIENZO Y FINAL DE LA CADENA
function trim(cadena)
{
	for(i=0; i<cadena.length; )
	{
		if(cadena.charAt(i)==" ")
			cadena=cadena.substring(i+1, cadena.length);
		else
			break;
	}

	for(i=cadena.length-1; i>=0; i=cadena.length-1)
	{
		if(cadena.charAt(i)==" ")
			cadena=cadena.substring(0,i);
		else
			break;
	}

	return cadena;
}

// FUNCION PARA VALIDAR EL FORMATO DE UNA DIRECCION DE EMAIL
function validarEmail(valor)
	{
		if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(valor))
		{
		return (true)
		} else {
		return (false);
		}
}

// FUNCION PARA VALIDAR UNA FECHA (dd/mm/yyyy)
function validarFecha(valor,separador)
{
   		var d = new Date()
        var fecha=valor.split(separador);
        if (fecha.length!=3)
        {
            return false;
        }
        if ((fecha[0].length!=2) ||(fecha[1].length!=2) ||(fecha[2].length!=4) )
        {
            return false;
        }
		d.setFullYear(fecha[2]);
		d.setMonth(fecha[1]-1);
		d.setDate(fecha[0]);
		if(d.getMonth() != fecha[1]-1 || d.getDate() != fecha[0])
        {
            return false;
        }
return true;
}



function validate(form){
	var i;
    for (i=0;i<notEmptyFields.length;i++)
    {
        form.elements[notEmptyFields[i]].className=class_correcto;
        if (trim(form.elements[notEmptyFields[i]].value)=='')
        {
            form.elements[notEmptyFields[i]].focus();
            form.elements[notEmptyFields[i]].className=class_error;
						alert (notEmptyMessages[i]);
            return false;
        }
    }
    for (i=0;i<numberFields.length;i++)
    {
        form.elements[numberFields[i]].className=class_correcto;
      if (form.elements[numberFields[i]].value.length>0)
      {
      	form.elements[numberFields[i]].value=form.elements[numberFields[i]].value.replace(",",".");
      	var partes=form.elements[numberFields[i]].value.split('.');

        if (partes.length>2)
        {
            form.elements[numberFields[i]].focus();
            form.elements[numberFields[i]].className=class_error;
            alert('El número indicado no es correcto.\n Use el "." para indicar la parte decimal.');
            return false;
        }
        if (isNaN(parseInt(form.elements[numberFields[i]].value*1)))
        {
            form.elements[numberFields[i]].focus();
            form.elements[numberFields[i]].className=class_error;
            alert('El número indicado no es correcto.');
            return false;
        }
    }
    }
    for (i=0;i<emailFields.length;i++)
    {
        form.elements[emailFields[i]].className=class_correcto;
      if (form.elements[emailFields[i]].value.length>0)
      {
        if (!validarEmail(form.elements[emailFields[i]].value))
        {
            form.elements[emailFields[i]].focus();
            form.elements[emailFields[i]].className=class_error;
            alert('El email indicado no es correcto.');
            return false;
        }
      }
    }
    for (i=0;i<minSizeFields.length;i++)
    {
        form.elements[minSizeFields[i]].className=class_correcto;
      if (form.elements[minSizeFields[i]].value.length>0)
      {
        if (form.elements[minSizeFields[i]].value.length<minSizesValues[i])
        {
            form.elements[minSizeFields[i]].focus();
            form.elements[minSizeFields[i]].className=class_error;
            alert('El campo indicado debe tener una longitud mínima de '+minSizesValues[i]+' caracteres.');
            return false;
        }
      }
    }
    for (i=0;i<maxSizeFields.length;i++)
    {
        form.elements[maxSizeFields[i]].className=class_correcto;
      if (form.elements[maxSizeFields[i]].value.length>0)
      {
        if (form.elements[maxSizeFields[i]].value.length>maxSizesValues[i])
        {
            form.elements[maxSizeFields[i]].focus();
            form.elements[maxSizeFields[i]].className=class_error;
            alert('El campo indicado debe tener una longitud máxima de '+maxSizesValues[i]+' caracteres.');
            return false;
        }
      }
    }
    for (i=0;i<dateFields.length;i++)
    {
    form.elements[dateFields[i]].className=class_correcto;
      if (form.elements[dateFields[i]].value.length>0)
      {
		if(!validarFecha(form.elements[dateFields[i]].value,'/'))
        {
            form.elements[dateFields[i]].focus();
            form.elements[dateFields[i]].className=class_error;
            alert(dateMessages[i]);
            return false;
        }
      }
    }
    for (i=0;i<distincFields1.length;i++)
    {
    form.elements[distincFields1[i]].className=class_correcto;
    form.elements[distincFields2[i]].className=class_correcto;
      if (form.elements[distincFields1[i]].value==form.elements[distincFields2[i]].value)
      {
            form.elements[distincFields1[i]].focus();
            form.elements[distincFields1[i]].className=class_error;
            form.elements[distincFields2[i]].className=class_error;
            alert('Los campos '+distincFields1[i]+' y '+distincFields2[i]+' no pueden ser iguales.');
            return false;
      }
    }

    //form.submit();
	return true;
}
