function EsFormValid_p1()
{
  if (!DNIValid(document.Inscripcio_p1.DNIp1.value)) {
    alert("El DNI que ha introduït no és valid");
    return false;
  }
  if ( numValid(document.Inscripcio_p1.DiaNaixp1.value, 2) == "" || 
       numValid(document.Inscripcio_p1.MesNaixp1.value, 2) == "" ||
       numValid(document.Inscripcio_p1.AnyNaixp1.value, 4) == "" ) {
    alert("El format de la Data de Naixement que ha introduït no és valid");
    return false;
  }
  else {
    if ( document.Inscripcio_p1.DiaNaixp1.value > 31 ||
         document.Inscripcio_p1.MesNaixp1.value > 12 ||
         document.Inscripcio_p1.AnyNaixp1.value < 1900 ) {
      alert("La Data de Naixement que ha introduït no és valida");
      return false;
    }
  }
}

function EsFormValid_p2()
{
  if (document.Inscripcio_p2.Cognom1.value.length == 0) {
    alert("Cal que introdueixi el seu Primer Cognom al formulari");
    return false;
  }
  if (document.Inscripcio_p2.Cognom2.value.length == 0) {
    alert("Cal que introdueixi el seu Segón Cognom al formulari");
    return false;
  }
  if (document.Inscripcio_p2.Nom.value.length == 0) {
    alert("Cal que introdueixi el seu nom al formulari");
    return false;
  }
  if (!DNIValid(document.Inscripcio_p2.DNI.value)) {
    alert("El DNI que ha introduït no és valid");
    return false;
  }
  if ( numValid(document.Inscripcio_p2.DiaNaix.value, 2) == "" || 
       numValid(document.Inscripcio_p2.MesNaix.value, 2) == "" ||
       numValid(document.Inscripcio_p2.AnyNaix.value, 4) == "" ) {
    alert("La Data de Naixement que ha introduït no és valida");
    return false;
  }
  else {
    if ( document.Inscripcio_p2.DiaNaix.value > 31 ||
         document.Inscripcio_p2.MesNaix.value > 12 ||
         document.Inscripcio_p2.AnyNaix.value < 1900 ) {
      alert("El format de la Data de Naixement que ha introduït no és valid");
      return false;
    }
  }
  if (numValid(document.Inscripcio_p2.CodPost.value, 5) == "") {
    alert("El Codi Postal que ha introduït no és valid");
    return false
  }
  if ( (document.Inscripcio_p2.AdMail.value.length > 0) && !MailValid(document.Inscripcio_p2.AdMail.value) ) {
    alert("La adreça de eMail que ha introduït no és vàlida");
    return false;
  }  
  if ( document.Inscripcio_p2.Confidencial.checked && (document.Inscripcio_p2.AdPost.value.length == 0) ) {
    alert("Cal que introdueixi la seva adreça postal. Si no vol, desmarqui la opció de rebre informació nostra");
    return false;
  }
  if ( !document.Inscripcio_p2.DocuConf.checked ) {
    alert("No ha declarat estar al corrent de com tractarem les seves dades. Marqui aquesta opció per continuar.");
    return false;
  }
  return true;
}

function SonDNIsValids(numOfDNIs,numOfFields)
{
  for (var i=0; i<(numOfDNIs*numOfFields); i+=numOfFields) {
    if (!DNIValid(document.DNIsPagament.elements[i].value)) {
      
      alert("El DNI " + document.DNIsPagament.elements[i].value + " no és valid");
      return false;
    }
  }
  return true;
}

function DNIValid(DNIString)
{
  if (DNIString.length != 9) {
    return false;
  }

  var DNINum = numValid(DNIString, 8);

  if (DNINum == "") {
    return false;
  }
  else {
    var valInd = (DNINum.valueOf() % 23);
    var DNICod = "TRWAGMYFPDXBNJZSQVHLCKE";

    if (DNIString.charAt(8).toUpperCase() == DNICod.charAt(valInd)) {
      return true;
    }
    else {
      return false;
    }
  }
}

function numValid(numString, numOfFig)
{
   var valNum = "";
   regExpNum = /0|1|2|3|4|5|6|7|8|9/;

   if ( numString.charAt(0).toUpperCase() == "X" ) {
      valNum = "0";
   }
   else {
      if ( numString.charAt(0).toUpperCase() == "Y" ) {
         valNum = "1";
      }
      else {
	 if ( regExpNum.test(numString.charAt(0)) ) {
            valNum = numString.charAt(0);
         }
	 else {
            valNum = "";
	    return valNum;
         }
      }
   }

   for (var i=1; i<numOfFig; i++) {
      if ( !regExpNum.test(numString.charAt(i)) ) {
         valNum = "";
         break;
      }
      else {
         valNum = valNum + numString.charAt(i);
      }
   }
   return valNum;
}

function MailValid(str)
{
    var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
    if (!str.match(re)) {
        return false;
    } 
	else {
        return true;
    }
}

