function ControlForms(formulari) {
 var Mensaje = 'ERROR!!\n\n';
 var elmForm = formulari.elements;
 var regexp_TXT=/[A-Za-z0-9]/;
 var regla_TXT='Camp Text: [A-Za-z0-9]\n'; 
 
 var regexp_EML=/[\w-\.]{2,}@([\w-]{2,}\.)*([\w-]{2,}\.)[\w-]{2,4}/;
 var regla_EML='Camp Mail: [##]@[##].[##] exemple: marcos@caixamanresa.es\n';
 
 var regexp_TEL=/^[0-9]{2,3}-? ?[0-9]{6,7}$/;
 var regla_TEL='Camp Telefon/FAX: [###]-[#######] exemple: 93-8701122\n';
 
 var regexp_MOV=/^[0-9]{9}$/;
 var regla_MOV='Camp Movil: [#########] exemple: 600100200\n';
 
 var regexp_NIF=/^[0-9]{8}[\w-]{1}$/; 
 var regla_NIF='Camp NIF: [########A-Z] exemple: 30111333B\n';
 
 var regexp_NUM=/^(?:\+|-)?\d+$/;
 var regla_NUM='Camp numèric: [#] exemple: 1400\n';
 
 var regexp_MON=/^(-)?\d+(\,\d\d)?$/;
 var regla_MON='Camp import: [#],[##] exemple 1250,32\n';
 
 var regexp_TAR=/^((67\d{2})|(4\d{3})|(5[1-5]\d{2})|(6011))(-?\s?\d{4}){3}|(3[4,7])\ d{2}-?\s?\d{6}-?\s?\d{5}$/;
 var regla_TAR='Camp Targeta: [####][####][####][####] exemple: 4560 0000 0000 0000\n';
 
 var regexp_IBA=/ES\d{2}[ ]\d{4}[ ]\d{4}[ ]\d{4}[ ]\d{4}[ ]\d{4}|ES\d{22}/;
 var regla_IBA='Camp num IBAN: ES##################### exemple: ES7921000813610123456789 \n';
 
 var regexp_COP=/^([1-9]{2}|[0-9][1-9]|[1-9][0-9])[0-9]{3}$/;
 var regla_COP='Camp Codi Postal: [#####] exemple: 08240\n';
 
 var regexp_DAT=/^\d{1,2}\/\d{1,2}\/\d{2,4}$/;
 var regla_DAT='Camp Data: [##]/[##]/[####] exemple: 01/01/2007\n';
 
 var regexp_CV2=/\d{3}/;
 var regla_CV2='Camp CCV2: [###] exemple: 340\n';

 var regla_CHK='Cal que seleccioni la casella per poder enviar el formulari\n';

 for (var i=0; i<elmForm.length; i++) {
   elementForm=elmForm[i];
   nomCamp=elmForm[i].name;
   valorCamp=elmForm[i].value;
   ControlCamp = nomCamp.substr(0,2);
   
   if (ControlCamp=="OB") {
     TipusCamp = nomCamp.substr(3,3);
	 
	 switch (TipusCamp) {
       case "TXT":
		 if (!regexp_TXT.test(valorCamp)) {
           Mensaje = Mensaje + regla_TXT;
         } 
		 break
       case "EML":
		 if (!regexp_EML.test(valorCamp)) {
           Mensaje = Mensaje + regla_EML;
         } 
		 break
	   case "TEL":
		 if (!regexp_TEL.test(valorCamp)) {
           Mensaje = Mensaje + regla_TEL;
         } 
         break
	   case "MOV":
		 if (!regexp_MOV.test(valorCamp)) {
           Mensaje = Mensaje + regla_MOV;
         } 
         break
	   case "NIF":
		 if (!regexp_NIF.test(valorCamp)) {
           Mensaje = Mensaje + regla_NIF;
         } 
         break
	   case "NUM":
		 if (!regexp_NUM.test(valorCamp)) {
           Mensaje = Mensaje + regla_NUM;
         } 
         break
	   case "MON":
		 if (!regexp_MON.test(valorCamp)) {
           Mensaje = Mensaje + regla_MON;
         } 
         break
	   case "TAR":
		 if (!regexp_TAR.test(valorCamp)) {
           Mensaje = Mensaje + regla_TAR;
         } 
         break
	   case "IBA":
		 if (!regexp_IBA.test(valorCamp)) {
           Mensaje = Mensaje + regla_IBA;
         } 
         break
	   case "COP":
		 if (!regexp_COP.test(valorCamp)) {
           Mensaje = Mensaje + regla_COP;
         } 
         break
	   case "DAT":
		 if (!regexp_DAT.test(valorCamp)) {
           Mensaje = Mensaje + regla_DAT;
         } 
         break
	   case "CV2":
		 if (!regexp_CV2.test(valorCamp)) {
           Mensaje = Mensaje + regla_CV2;
         } 
         break
	   case "CHK":
	     if (elementForm.checked == false) {
           Mensaje = Mensaje + regla_CHK;
		 }
	 }
   
   }
 }

 if (Mensaje!='ERROR!!\n\n') {
   Mensaje = Mensaje + '\nRevisi els errors';
   alert(Mensaje);
   return false; 
 } else {
   return true;
 }
}
// -------------------------------------------------------------------------------


// Funcio que controla si un cap de formualri es troba buit
function EmptyField(q) {  
  for (i=0;i<q.length;i++) {  
    if (q.charAt(i)!=" ") {  
      return true;
    }  
  }  
  return false;
}  
// -------------------------------------------------------------------------------


// Funcio que controla si una adreça de correu electronic s'ha escrit correctament
function MailOK(txt){  
  var b=/^[^@\s]+@[^@\.\s]+(\.[^@\.\s]+)+$/
  return b.test(txt);
}  
// -------------------------------------------------------------------------------


// Funcio que controla si una adreça de correu electronic s'ha escrit correctament
function NumOK(txt){  
  var b=/^(?:\+|-)?\d+$/;
  return b.test(txt);
}  
// -------------------------------------------------------------------------------


// Funcio que controla si un NIF s'ha escrit correctament
function NIFOK(txt){  
 var b=/^[0-9]{8}[\w-]{1}$/; 
  return b.test(txt);
}  
// -------------------------------------------------------------------------------


// Funcio que valida formulari
function ValidateForm(form) {
  Nom = document.formAlta.Nom.value;
  Mail = document.formAlta.Mail.value;
  cadena = "NOTA:\nAlguns dels camps que són obligatoris es troben buits\n\n";
  
  if (EmptyField(Nom)==false) {
    cadena = cadena + " - El camp del Nom es troba buit\n";
  }
  if (EmptyField(Mail)==false) {
    cadena = cadena + " - El camp del Mail es troba buit\n";
  } else {
    if(MailOK(Mail)==false) {
      cadena = cadena + " - El camp del Mail té un format incorrecte\n";
	}
  }

  var cadenaCheck;
  var SumaCheck = 0;
  var SumaCheckNoMarcat = 0;
  var i;
  var NomCamp,PrefixeCamp;
  var total = form.elements.length;
  for (i=1;i<total;i++) {
	NomCamp = document.forms[0].elements[i].name;
	if ((NomCamp!="Nom") && (NomCamp!="Mail") && (NomCamp!="submit")) {
      SumaCheck=SumaCheck+1;
      var valida = false;
      valida = (valida || form.elements[i].checked);
      if (!valida) {
        SumaCheckNoMarcat=SumaCheckNoMarcat+1;
	  }
    } 
  }

  if (SumaCheck==SumaCheckNoMarcat) {
    cadenaCheck = " - Cal que seleccioni almenys un Butlletí de Subscripció\n";
    cadena = cadena + cadenaCheck;
  }

  if (cadena!="NOTA:\nAlguns dels camps que són obligatoris es troben buits\n\n") {
    cadena = cadena + "\n\nRevisi les dades que ha introduït en el formulari i verifiqui que són correctes.";
    alert(cadena);
    Retorn=false;
  } else {
    Retorn=true;
  }
	  
 //return Retorn;
 return Retorn;
}
// -------------------------------------------------------------------------------


// Funcio que recupera el valor d'una Cookie
function getCookie(cookieName) {
var cookieValue=null;
var posName=document.cookie.indexOf(escape(cookieName)+'=');
if (posName!=-1) {
var posValue=posName+(escape(cookieName)+'=').length;
var endPos=document.cookie.indexOf(';',posValue);
if (endPos!=-1) cookieValue=unescape(document.cookie.substring(posValue,endPos));
else cookieValue=unescape(document.cookie.substring(posValue));
}
return cookieValue;
} 
// -------------------------------------------------------------------------------


// Funcio que valida formulari Curs Recerca Laboral
function ValFormCursAtur(form) {
  Nom = document.formAlta.Nom.value;
  Cognom1 = document.formAlta.Cognom1.value;
  Cognom2 = document.formAlta.Cognom2.value;
  strClientNIF = document.formAlta.strClientNIF.value;
  strClientMail = document.formAlta.strClientMail.value;
  strClientMail_2 = document.formAlta.strClientMail_2.value;
  DiaNaixement = document.formAlta.DiaNaixement.value;
  AnyNaixement = document.formAlta.AnyNaixement.value;
  strClientAdresa = document.formAlta.strClientAdresa.value;
  strClientCP = document.formAlta.strClientCP.value;
  strClientPoblacio = document.formAlta.strClientPoblacio.value;
  strClientProvincia = document.formAlta.strClientProvincia.value;
  strClientPais = document.formAlta.strClientPais.value;
  strClientNacionalitat = document.formAlta.strClientNacionalitat.value;
  strClientTelFixe = document.formAlta.strClientTelFixe.value;
  strClientTelMobil = document.formAlta.strClientTelMobil.value;

  var CampBuit = new Array();
  var CampFormat = new Array();
  var CampBuit_es = new Array();
  var CampFormat_es = new Array();
  cadena = "";
  cadena_es = "";
  cadenaCampBuit = "";
  cadenaCampBuit_es = "";
  cadenaCampFormat = "";
  cadenaCampFormat_es = "";
  indexCampBuit = 0;
  indexCampFormat = 0;
  errorTipus = 0;
  Mail = "Ok";
  Mail_2 = "Ok";
  idioma = getCookie("idioma");


  if ((EmptyField(Nom)==false) || (Nom=="Nom") || (Nom=="Nombre")) {
	indexCampBuit = indexCampBuit + 1;
	CampBuit[indexCampBuit] = "Nom";
	CampBuit_es[indexCampBuit] = "Nombre";
  }
  if ((EmptyField(Cognom1)==false)  || (Cognom1=="Primer cognom") || (Cognom1=="Primer apellido")) {
	indexCampBuit = indexCampBuit + 1;
	CampBuit[indexCampBuit] = "Primer Cognom";
	CampBuit_es[indexCampBuit] = "Primer apellido";
  }
  if ((EmptyField(Cognom2)==false)  || (Cognom2=="Segon cognom") || (Cognom2=="Segundo apellido")) {
	indexCampBuit = indexCampBuit + 1;
	CampBuit[indexCampBuit] = "Segon Cognom";
	CampBuit_es[indexCampBuit] = "Segundo apellido";
  }
  if ((EmptyField(strClientNIF)==false)  || (strClientNIF=="NIF")) {
	indexCampBuit = indexCampBuit + 1;
	CampBuit[indexCampBuit] = "NIF";
	CampBuit_es[indexCampBuit] = "NIF";
  } else {
	if (NIFOK(strClientNIF)==false) {
	  indexCampFormat = indexCampFormat + 1;
	  CampFormat[indexCampFormat] = "NIF";
	  CampFormat_es[indexCampFormat] = "NIF";
	}
  }
  if ((EmptyField(strClientMail)==false)  || (strClientMail=="Mail")) {
	indexCampBuit = indexCampBuit + 1;
	CampBuit[indexCampBuit] = "e-mail";
	CampBuit_es[indexCampBuit] = "e-mail";
	Mail = "NOk";
  } else {
    if(MailOK(strClientMail)==false) {
	  indexCampFormat = indexCampFormat + 1;
	  CampFormat[indexCampFormat] = "e-Mail";
	  CampFormat_es[indexCampFormat] = "e-Mail";
      Mail = "NOk";
	}
  }
  if ((EmptyField(strClientMail_2)==false) || (strClientMail_2=="Confirma mail") || (strClientMail_2=="Confirma mail")) {
	indexCampBuit = indexCampBuit + 1;
	CampBuit[indexCampBuit] = "Confirma e-mail";
	CampBuit_es[indexCampBuit] = "Confirma e-mail";
	Mail_2 = "NOk";
  } else {
    if(MailOK(strClientMail_2)==false) {
	  indexCampFormat = indexCampFormat + 1;
	  CampFormat[indexCampFormat] = "Confirma e-Mail";
	  CampFormat_es[indexCampFormat] = "Confirma e-Mail";
      Mail_2 = "NOk";
	}
  }

  if ((EmptyField(DiaNaixement)==false) || (DiaNaixement=="Dia") || (DiaNaixement=="Día")) {
	indexCampBuit = indexCampBuit + 1;
	CampBuit[indexCampBuit] = "Dia de naixement";
	CampBuit_es[indexCampBuit] = "Día de nacimiento";
  } else {
	if (NumOK(DiaNaixement)==false) {
	  indexCampFormat = indexCampFormat + 1;
	  CampFormat[indexCampFormat] = "Dia de naixement";
	  CampFormat_es[indexCampFormat] = "Día de nacimiento";
	}
  }

  if ((EmptyField(AnyNaixement)==false) || (AnyNaixement=="Any") || (AnyNaixement=="Año")) {
	indexCampBuit = indexCampBuit + 1;
	CampBuit[indexCampBuit] = "Any de naixement";
	CampBuit_es[indexCampBuit] = "Año de nacimiento";
  } else {
	if (NumOK(AnyNaixement)==false) {
	  indexCampFormat = indexCampFormat + 1;
	  CampFormat[indexCampFormat] = "Any de naixement";
	  CampFormat_es[indexCampFormat] = "Año de nacimiento";
	}
  }
  
  if ((EmptyField(strClientAdresa)==false) || (strClientAdresa=="Adreça") || (strClientAdresa=="Dirección")) {
	indexCampBuit = indexCampBuit + 1;
	CampBuit[indexCampBuit] = "Adreça";
	CampBuit_es[indexCampBuit] = "Dirección";
  }
  if ((EmptyField(strClientCP)==false) || (strClientCP=="Codi Postal") || (strClientCP=="Código Postal")) {
	indexCampBuit = indexCampBuit + 1;
	CampBuit[indexCampBuit] = "Codi Postal";
	CampBuit_es[indexCampBuit] = "Código Postal";
  } else {
	if (NumOK(strClientCP)==false) {
	  indexCampFormat = indexCampFormat + 1;
	  CampFormat[indexCampFormat] = "Codi Postal";
	  CampFormat_es[indexCampFormat] = "Código Postal";
	}
  }
  if ((EmptyField(strClientPoblacio)==false) || (strClientPoblacio=="Població") || (strClientPoblacio=="Población")) {
	indexCampBuit = indexCampBuit + 1;
	CampBuit[indexCampBuit] = "Població";
	CampBuit_es[indexCampBuit] = "Población";
  }
  if ((EmptyField(strClientProvincia)==false) || (strClientProvincia=="Província") || (strClientProvincia=="Provincia")) {
	indexCampBuit = indexCampBuit + 1;
	CampBuit[indexCampBuit] = "Província";
	CampBuit_es[indexCampBuit] = "Provincia";
  }
  if ((EmptyField(strClientPais)==false) || (strClientPais=="País")) {
	indexCampBuit = indexCampBuit + 1;
	CampBuit[indexCampBuit] = "País";
	CampBuit_es[indexCampBuit] = "País";
  }
  if ((EmptyField(strClientNacionalitat)==false) || (strClientNacionalitat=="Nacionalitat") || (strClientNacionalitat=="Nacionalidad")) {
	indexCampBuit = indexCampBuit + 1;
	CampBuit[indexCampBuit] = "Nacionalitat";
	CampBuit_es[indexCampBuit] = "Nacionalidad";
  }
  if ((EmptyField(strClientTelFixe)==false) || (strClientTelFixe=="Telèfon fix") || (strClientTelFixe=="Teléfono fijo")) {
	indexCampBuit = indexCampBuit + 1;
	CampBuit[indexCampBuit] = "Telèfon fix";
	CampBuit_es[indexCampBuit] = "Teléfono fijo";
  }
  if ((EmptyField(strClientTelMobil)==false) || (strClientTelMobil=="Telèfon mòbil") || (strClientTelMobil=="Teléfono móvil")) {
	indexCampBuit = indexCampBuit + 1;
	CampBuit[indexCampBuit] = "Telèfon mòbil";
	CampBuit_es[indexCampBuit] = "Teléfono móvil";
  }

  for (i=1;i<=indexCampBuit;i++) {
	if ((indexCampBuit>1) && (i<indexCampBuit)) {
      cadenaCampBuit = cadenaCampBuit + CampBuit[i] + ", ";
      cadenaCampBuit_es = cadenaCampBuit_es + CampBuit_es[i] + ", ";
	} else {
      cadenaCampBuit = cadenaCampBuit + CampBuit[i];
      cadenaCampBuit_es = cadenaCampBuit_es + CampBuit_es[i];
	}
  }
  if (indexCampBuit>0) {
    cadena = cadena + "AVÍS : Tots els camps del formulari són obligatoris, els següents es troben buits:\n\n";
    cadena = cadena + cadenaCampBuit + "\n\n";
	cadena_es = cadena_es + "AVISO : Todos los campos del formulario son obligatorios, los siguientes se encuentran vacíos:\n\n";
    cadena_es = cadena_es + cadenaCampBuit_es + "\n\n";
	errorTipus = 1;
  }

  for (i=1;i<=indexCampFormat;i++) {
	if ((indexCampFormat>1) && (i<indexCampFormat)) {
      cadenaCampFormat = cadenaCampFormat + CampFormat[i] + ", ";
      cadenaCampFormat_es = cadenaCampFormat_es + CampFormat_es[i] + ", ";	  
	} else {
      cadenaCampFormat = cadenaCampFormat + CampFormat[i];
      cadenaCampFormat_es = cadenaCampFormat_es + CampFormat_es[i];
	}
  } 
  if (indexCampFormat>0) {
    cadena = cadena + "AVÍS : Els següents camps del formulari tenen un format incorrecte:\n\n";
    cadena = cadena + cadenaCampFormat + "\n\n";
	cadena_es = cadena_es + "AVISO : Los siguientes campos del formulario tienen un formato incorrecto:\n\n";
    cadena_es = cadena_es + cadenaCampFormat_es + "\n\n";
	errorTipus = 1;
  }

  if ((strClientMail!=strClientMail_2) && (Mail=="Ok") && (Mail_2=="Ok")) {
    cadena = cadena + "AVÍS : Els camps del formulari del [e-mail] i [Confirma e-mail] no són iguals\n\n";
    cadena_es = cadena_es + "AVISO : Los campos del formulario [e-mail] y [Confirma e-mail] no son iguales\n\n";	
	errorTipus = 1;
  }

//  alert(getCookie("idioma"));

  if (errorTipus=="1") {
    cadena = cadena + "Revisa les dades que has introduït en el formulari i verifica que són correctes.";
    cadena_es = cadena_es + "Revisa los datos que has introducido en el formulario y verifica que son correctos.";
	if (idioma==0) {
      alert(cadena);
	} else {
      alert(cadena_es);
	}
    Retorn=false;
  } else {
    Retorn=true;
  }
	  
 return Retorn;
}
// -------------------------------------------------------------------------------
