/* @autor: Mario Martinez
 * FUNCIONS PER VERIFICAR UN FORMULARI --------------------------------------------------------------*/
function CampText(camp){
	var valid = false;
	
	var co = document.getElementById(camp);
	if (co.value.length > 0) valid = true;
	
	CambiaColor(camp,valid);
	
	return valid;
}

function CampEmail(camp){
	
	valid = VerificarEmail(camp);
	CambiaColor(camp,valid);
	
	return valid;
	
}


function VerificarEmail(e) {
   var s = document.getElementById(e).value;
   var filter=/^[A-Za-z][A-Za-z0-9\\.]*@[A-Za-z0-9_]+\.[A-Za-z0-9_.]+[A-za-z]$/;
   if (s=="") return false;
   if (s.length == 0 ) return false;
   if (filter.test(s)) return true;
   else return false;
}


function CampNumeric(camp,digits){
	
	var num = document.getElementById(camp).value;
	var valid = false;
	
	if(digits == 0){
		if(num.length > 1) valid = soloNumerico(num);
	}
	else if(num.length == digits) valid = soloNumerico(num);
	
	CambiaColor(camp,valid);
	
	return valid;
}

function soloNumerico(valor) {
	return !isNaN(valor);
}

function ValidarFormulari(camps){
	
	//FORMAT ('nom_input=tipus;nom_input2=tipus;...nom_inputX=numeric#NumMax')
	//array de camps
	var retorn = false;
	var tcamps = new Array();
	var camp;
	var aux;
	var numleng = 0;
	var i_ok = 0; //conta el camps correctes. Si son = al total de camps, tot es correcte
	
	tcamps = camps.split(";");
	
	for(i=0; i < tcamps.length; i++)
	{
		numleng = 0;
		aux = tcamps[i].split("=");
		camp = aux[0];
		metode = aux[1];
		
		if(metode.match("#"))
		{//xapuza
			
			aux = metode.split("#");
			numleng = aux[1];
			metode = aux[0];
		}
		
		if(metode == "text") {
			if(CampText(camp)) i_ok++; 
		}
		else if(metode == "email") {
			if(CampEmail(camp)) i_ok++;
		}
		else if (metode == "numeric") {
			if(CampNumeric(camp, numleng)) i_ok++;
		}
		
	}
	
	if(i_ok == tcamps.length) retorn = true;
	else alert("Hi ha algun camp incorrecte!");
	
	
	return retorn;
}

function CambiaColor(camp,valid){
	
	var e = document.getElementById(camp);
	//var ico = document.getElementById(camp+"_ok");
	if(!valid) 
	{
		e.style.border = "1px solid #e51d13";
		//ico.style.visibility = "visible";
	
	}
	else 
	{
		e.style.border = "1px solid #38373A";
		//ico.style.visibility = "hidden";
	}
}
