/** 
	Validador Javascript para formularios.
	2004-05-13 Realizado para Carpaco. Valida horas y fechas.
	2004-05-12 Realizado para Carpaco. Valida mails.
	Version 1.0
 **/

function fval_notempty(value) {
	return (value.length>0);
}

function fval_password(value) {
	i = 0;
	alMenosUnaLetra = false;
	alMenosUnNumero = false;
	while (i<value.length) {
		alMenosUnaLetra = alMenosUnaLetra || ('abcdefghiklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ').indexOf(value.charAt(i))>=0;
		alMenosUnNumero = alMenosUnNumero || ('0123456789').indexOf(value.charAt(i))>=0;
		i++;
	}
	return (value.length>7) && (alMenosUnaLetra) && (alMenosUnNumero);
}

function fval_mail(value) {
	var at="@";
	var dot=".";
	var lat=value.indexOf(at);
	var lstr=value.length;
	var ldot=value.indexOf(dot);
	if (value.indexOf(at)==-1) return false;
	if (value.indexOf(at)==-1 || value.indexOf(at)==0 || value.indexOf(at)==lstr) return false;
	if (value.indexOf(dot)==-1 || value.indexOf(dot)==0 || value.indexOf(dot)==lstr) return false;
	if (value.indexOf(at,(lat+1))!=-1) return false;
	if (value.substring(lat-1,lat)==dot || value.substring(lat+1,lat+2)==dot) return false;
	if (value.indexOf(dot,(lat+2))==-1) return false;
	if (value.indexOf(" ")!=-1) return false;
 	return true;
}

function fval_natural(value) {
		return (!(isNaN(value)) && (value.indexOf(".") == -1) && (value.indexOf(",") == -1) && (value.length>0) && value>0);
}

function fval_natural0(value) {
		return (!(isNaN(value)) && (value.indexOf(".") == -1) && (value.indexOf(",") == -1) && (value.length>0) && value>=0);
}

function fval_time(value) {
	var aHour = value.split(':');
	if (aHour.length != 2) return false;
	if (!(fval_natural0(aHour[0]) && fval_natural0(aHour[1]))) return false;
	if (aHour[0] < 25 && aHour[1] < 60) return true;
	return false;
}


/***************************************************************
 Chequear fecha 
***************************************************************/
function validarDia(dia,mes,ano) {
	validoAno=false;
	biciesto=false;
	validoDia=false;
	mesCorrecto=false;

	if (fval_natural(dia) && fval_natural(mes) && fval_natural(ano)) {
		validoAno = true;
		biciesto = (!(ano % 100==0) && (ano % 4==0)) || (ano % 400==0);
		mesCorrecto = (mes>0) && (mes<13);
		meses = new Array (31,28,31,30,31,30,31,31,30,31,30,31);
		if (biciesto) meses[1]=29;
		validoDia = (dia <= meses[mes-1]) && (dia>0);
	}
	return (mesCorrecto && validoDia && validoAno);
}

function chequearFechaSep(value,sep) {
	arreglo = value.split(sep);
	retvalue=false;
	if (arreglo.length == 3) {
		retvalue = validarDia(arreglo[0],arreglo[1],arreglo[2]);
	}
	return retvalue;
}

function fval_date(value) {return chequearFechaSep(value,'-');}
/***************************************************************
 Chequear fecha (Fin)
***************************************************************/

function fval_float(value) {return !(isNaN(value));}
function fval_floatmayoracero(value) {return (!isNaN(value) && (parseFloat(value)>0));}
function fval_floatnonegativo(value) {return (!isNaN(value) && (parseFloat(value)>=0));}
function fval_dateorempty(value) {return (value.length==0 || fval_date(value));}

