/* ------------------------------------------------------------------ */
/*  Funcións de validación de formularios                             */
/* ------------------------------------------------------------------ */
/* MODIFICACIÓNS:                                                     */
/* ------------------------------------------------------------------ */

/* --------------------------------- */
/* Primeiro as funciòns de uso xeral */
/* --------------------------------- */
var whitespace = " \t\n\r";

/* FUNCIÓN: eEmail                                          */
/* DESCRIPCIÓN: comproba se o correo electrónico é correcto */
/* ENTRADA: s: correo que se desexa validar                 */
/* SAÍDA: True se 's' está ben, False en caso contrario     */
function eEmail(s) {
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(s)){
 	  return (true)
	} else { 	 
 	return (false);
}
}
	
/* FUNCIÓN: eValeiro                                        */
/* DESCRIPCIÓN: comproba se un campo está valeiro           */
/* ENTRADA: s: control que se desexa validar                */
/* SAÍDA: True se 's' está valeiro, False en caso contrario */
function eValeiro(s){
	var i;
	if ((s == null) || (s.length == 0)){		
		return true;
	}
	for (i = 0; i < s.length; s++){
		var c = s.charAt(i);
		if (whitespace.indexOf(c) == -1){
			return false;
		}
	}
	return true;
} //eValeiro

/* FUNCIÓN: eData                                                       */
/* DESCRIPCIÓN: comproba se un campo ten un formato de data correcta    */
/* ENTRADA: str: control que se desexa validar                          */
/* SAÍDA: True se 'str' ten un formato correcto,False en caso contrario */
function eData(str) {
	cadea = new Array();
	var j=0;
	var pos = str.indexOf('/');

	while (pos != -1) { 
		cadea[j] = str.substring(0, pos);
		str = str.substring(pos+1, str.length);
		pos = str.indexOf('/');
		j++;
	}
	cadea[j] = str;

	for(j=0;j<cadea.length;j++){
		if(!eNumero(cadea[j])) return false;
	} //for
	dias = new Array(31,0,31,30,31,30,31,31,30,31,30,31);
	if(cadea.length==2){cadea[2]=cadea[1];cadea[1]=cadea[0];cadea[0]="1";}

	if((cadea.length!=3) || (parseInt(cadea[1])>12) || (parseInt(cadea[1])==2 && parseInt(cadea[0])>diasFebr(cadea[2])) ||
	(parseInt(cadea[1])!=2 && parseInt(cadea[0])>dias[parseInt(cadea[1])-1])) return false;

	return true;
}  //eData

/* FUNCIÓN: diasFebr                                                   */
/* DESCRIPCIÓN: cálculo do número de días de Febreiro (bisiesto ou non)*/
/* ENTRADA: ano: cadea co ano no que queremos calcular os días         */
/* SAÍDA: enteiro co número de días que ten Febreiro no ano indicado   */
function diasFebr(ano){
	ano = parseInt(ano);
	ano = (ano < 1900) ? ano + 1900 : ano;
	if((ano%4==0 && ano%100!=0) || ano%400==0){
		return 29;
	}
	return 28;
}

/* FUNCIÓN: eNumero                                                     */
/* DESCRIPCIÓN: comproba se un campo ten un formato de número correcto  */
/* ENTRADA: numstr: control que se desexa validar                       */
/* SAÍDA: True se 'str' ten un formato correcto,False en caso contrario */
function eNumero(numstr) {
	if (numstr+"" == "undefined" || numstr+"" == "null" || numstr+"" == "")	
		return false;
	numstr += "";	
	for (i = 0; i < numstr.length; i++) {
    	if (!((numstr.charAt(i) >= "0") && (numstr.charAt(i) <= "9") )) return false;      	       
   }     
   return true;
} //eNumero

/* FUNCIÓN: valorEnteiro                                                                      */
/* DESCRIPCIÓN: devolve 0 ou o valor dun enteiro, para sumar os parciais de persoas           */
/* ENTRADA: str: control que se desexa validar                                                */
/* SAÍDA: 0 se o campo está valeiro ou non é un enteiro, o valor do enteiro en caso contrario */
function valorEnteiro(str){
	if (eNumero(str))
		return parseInt(str);
	else return 0;
} //valorEnteiro

