function MM_validateForm() { //v4.0
  var i,p,q,nm,nmtext,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; 
	       chckd=val.checked;
		   id = val.id;
		   value = val.value;

		if (nm == "name"){
			nmtext = "Nombre";
		}
		else if (nm == "surname"){
			nmtext = "Apellidos";
		}
		else if (nm == "NIF"){
			nmtext = "N.I.F.";
		}		
		else if (nm == "country"){
			nmtext = "País";
		}
		else if (nm == "phone"){
			nmtext = "Teléfono";
		}
		else if (nm == "email"){
			nmtext = "Dirección electrónica";
		}
		else if (nm == "emailconf"){
			nmtext = "Comprobación de dirección electrónica";
		}			
		else if (nm == "address"){
			nmtext = "Dirección";
		}			
		else if (nm == "city"){
			nmtext = "Población";
		}		
		else if (nm == "zipcode"){
			nmtext = "Código postal";
		}
		else if (nm == "region"){
			nmtext = "Región";
		}				
		else if ((nm == "password1F") || (nm == "fpassword")){
			nmtext = "Contraseña";
		}				
		else if (nm == "password2F"){
			nmtext = "Comprobación de contraseña";
		}	
		else if ((nm == "usernameF") || (nm == "fusername")){
			nmtext = "Dirección electrónica";
		}
		else if (nm == "idCity"){
			nmtext = "Población de destino";
		}
		else if ((nm == "numAdults") || (nm == "numAdultsNR")){
			nmtext = "Número de personas adultas";
		}
		else if (nm == "numChildrenNR"){
			nmtext = "Número de niños de 2 a 12 años";
		}
		else if (nm == "nameHotel"){
			nmtext = "Nombre del hotel";
		}
		else if (nm == "phoneHotel"){
			nmtext = "Teléfono del hotel";
		}
		else if (nm == "emailHotel"){
			nmtext = "dirección electrónica del hotel";
		}
		else if (nm == "nombre"){
			nmtext =  "Su nombre";
		}
		else if (nm == "emailFrom"){
			nmtext =  "Su dirección electrónica";
		}
		else if (nm == "emailTo"){
			nmtext =  "La dirección electrónica de su amigo";
		}
		else if (nm == "firstinput"){
			nmtext =  "Fecha";
		}
		else if (nm == "secondinput"){
			nmtext =  "Fecha";
		}		
		else if ((nm == "firstinputArrival") || (nm == "firstinputH")){
			nmtext =  "Fecha de llegada";
		}				
		else if (nm == "secondinputExit"){
			nmtext =  "Fecha de salida";
		}		
		else if (nm == "numFlight"){
			nmtext =  "Número de vuelo";
		}
		else if (nm == "timeArriveFlight"){
			nmtext =  "Hora prevista de llegada";
		}
		else if (nm == "addressDevolutionCar"){
			nmtext =  "Dirección";
		}			
		else if (nm == "arrivalTimeHour"){
			nmtext =  "Hora de llegada: Hora";
		}
		else if (nm == "arrivalTimeMinute"){
			nmtext =  "Hora de llegada: Minutos";
		}
		else if (nm == "exitTimeHour"){
			nmtext =  "Hora de salida: Hora";
		}	
		else if (nm == "exitTimeMinute"){
			nmtext =  "Hora de salida: Minutos";
		}	
		else if ((nm == "originAirport") || (nm == "arriveAirport")){
			nmtext =  "Aeropuerto de origen";
		}	
		else if ((nm == "originNumFlight") || (nm == "numFlightArrive") || (nm == "numFlightExit")){
			nmtext =  "Número de vuelo";
		}	
		else if (nm == "exitAirport"){
			nmtext =  "Aeropuerto de destino";
		}
		else if ((nm == "idRoomNR") || (nm == "idRoom1")){
			nmtext =  "Tipo de habitación";
		}
		else if ((nm == "idRegimesNR") || (nm == "idRegimes1")){
			nmtext =  "Régimen";
		}
		else if ((nm == "numNightsH") || (nm == "numNights")){
			nmtext =  "Número de noches";
		}																												
		else{
			nmtext = nm;
		}

	if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { 
	p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nmtext+' ha de contener una dirección de correo electrónica válida.\n';
      } 
      else if (test.indexOf('checked')!=-1) { 

		if ((id == "RSV0") && (value == "TXTFLD") && (chckd == true)){

			if (document.form1.nameHotel.value == ""){ errors += '- Nombre del hotel es obligatorio.\n';}
			if (document.form1.addressHotel.value == ""){ errors += '- Dirección es obligatorio.\n';}
		}
		else if (id != "RSV0"){
        if (chckd == false) errors+='- Tiene que aceptar las condiciones de uso del servicio.\n';
		}
      } 
      else if (test!='R') { 
	num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nmtext+' ha de ser un valor numérico.\n';
        if (test.indexOf('inRange') != -1) { 
		p=test.indexOf(':');
          	min=test.substring(8,p); max=test.substring(p+1);
          	if (num<min || max<num) errors+='- '+nmtext+' ha de ser un valor numérico entre '+min+'  '+max+'.\n';
    	} 
      } 

    } 
    else if (test.indexOf('selected')!=-1) {
		if (id == "idDestinacio" && document.getElementById("idDestinacio").value == ""){
			errors+='- Por favor seleccione una destinación.\n';
		}
    }
	else if (test.charAt(0) == 'R') errors += '- '+nmtext+' es obligatorio.\n'; }
  } if (errors) alert('Se han encontrado los siguientes errores:\n'+errors);
  document.MM_returnValue = (errors == '');
}


function checkNIF()
  {

    nifcif = document.form1.NIF.value.substring (0, 1);

    if (EsNumero(nifcif)) {


//    if (document.form1.NIF.value.length==0) 
//    {
//      document.form1.NIF.focus();  
//      alert ("Debe facilitarnos el número de identificación fiscal.");
//      return(false);
//    }
    var letras=0;
    for (var i=0; i<document.form1.NIF.value.length; i++) 
    {
      var ch = document.form1.NIF.value.substring (i, i+1);
      if ( (ch < "0" || ch > "9") && (ch < "a" || ch > "z") && (ch < "A" || ch > "Z") )
      {
        alert("El número de identificación fiscal facilitado es erroneo.");
        document.form1.NIF.value = "";
        document.form1.NIF.focus();

        return(false);
      }
      if ( (ch >= "a" && ch <= "z") || (ch >= "A" && ch <= "Z") )
      {
        letras++;
      }  
    }
    if (letras>2)
    {
      alert("El número de identificación fiscal facilitado es erroneo.");
      document.form1.NIF.value = "";
      document.form1.NIF.focus();
      return(false);
    }

    var numNIF = document.form1.NIF.value.substring(0,8);
    var lletraNIF = document.form1.NIF.value.substring(8,9);

    var cadena = 'TRWAGMYFPDXBNJZSQVHLCKET';
    var posicion = numNIF % 23;

    var lletraNIFOK = cadena.charAt(posicion);

    if (lletraNIF != lletraNIFOK){
      alert("El número de identificación fiscal facilitado es erroneo.");
      document.form1.NIF.value = "";
      document.form1.NIF.focus();
      return(false)
    }

    return true;
 
    }
    else{


	if (validarCIF(document.form1.NIF.value)){
		return(true)
	}
	else{
		alert("El número de identificación fiscal facilitado es erroneo.");
	        document.form1.NIF.value = "";
	        document.form1.NIF.focus();
		return(false)
	}

    }
}
