var form 			= "";
var submitted 		= false;
var error 			= false;
var error_message 	= "";

function check_input(field_name, field_size, message) 
{
	if (form.elements[field_name] && (form.elements[field_name].type != "hidden")) 
	{
    	var field_value = form.elements[field_name].value;

    	if (field_value == '' || field_value.length < field_size) {
      		error_message = error_message + "* " + message + "\n";
      		error = true;
    	}
  	}
}

function check_radio(field_name, message)
{
	var isChecked = false;
  	if (form.elements[field_name] && (form.elements[field_name].type != "hidden")) 
	{
    	var radio = form.elements[field_name];

    	for (var i=0; i<radio.length; i++) 
		{
      		if (radio[i].checked == true) 
			{
        		isChecked = true;
        		break;
      		}
    	}

    	if (isChecked == false) 
		{
      		error_message = error_message + "* " + message + "\n";
      		error = true;
    	}
  	}
}

function check_select(field_name, field_default, message) 
{
  	if (form.elements[field_name] && (form.elements[field_name].type != "hidden")) 
	{
    	var field_value = form.elements[field_name].value;
    	if (field_value == field_default) 
		{
      		error_message = error_message + "* " + message + "\n";
      		error = true;
    	}
  	}
}

function check_password(field_name_1, field_name_2, field_size, message_1, message_2) 
{
  	if (form.elements[field_name_1] && (form.elements[field_name_1].type != "hidden")) 
	{
    	var password = form.elements[field_name_1].value;
    	var confirmation = form.elements[field_name_2].value;

    	if (password == '' || password.length < field_size) 
		{
      		error_message = error_message + "* " + message_1 + "\n";
      		error = true;
    	} 
		else if (password != confirmation) 
		{
      		error_message = error_message + "* " + message_2 + "\n";
      		error = true;
    	}
  	}
}

function check_password_new(field_name_1, field_name_2, field_name_3, field_size, message_1, message_2, message_3) {
  if (form.elements[field_name_1] && (form.elements[field_name_1].type != "hidden")) {
    var password_current = form.elements[field_name_1].value;
    var password_new = form.elements[field_name_2].value;
    var password_confirmation = form.elements[field_name_3].value;

    if (password_current == '' || password_current.length < field_size) {
      error_message = error_message + "* " + message_1 + "\n";
      error = true;
    } else if (password_new == '' || password_new.length < field_size) {
      error_message = error_message + "* " + message_2 + "\n";
      error = true;
    } else if (password_new != password_confirmation) {
      error_message = error_message + "* " + message_3 + "\n";
      error = true;
    }
  }
}

function check_form(form_name) {
  if (submitted == true) {
    	alert("Ya ha enviado el formulario. Pulse Aceptar y espere a que termine el proceso.");
    	return false;
  }

  error = false;
  form 	= form_name;
  
  error_message = "Hay errores en su formulario!\nPor favor, haga las siguientes correciones:\n\n";
  check_radio("sexo", "Por favor seleccione una opción.");
  check_input("nombre", 2, "Su Nombre debe tener al menos 2 letras.");
  check_input("apellidos", 2, "Sus apellidos deben tener al menos 2 letras.");
  check_input("fecha", 10, "Su fecha de nacimiento debe tener este formato: DD/MM/AAAA (p.ej. 12/02/1970)");
  check_input("email", 6, "Su dirección de E-Mail debe tener al menos 6 letras.");
  check_input("direccion", 5, "Su dirección debe tener al menos 5 letras.");
  check_input("cp", 4, "Su código postal debe tener al menos 4 letras.");
  check_input("ciudad", 3, "Su población debe tener al menos 3 letras.");
  check_input("provincia", 2, "Su provincia debe tener al menos 2 letras.");
  check_select("pais", "", "Debe seleccionar un país de la lista desplegable.");
  check_input("telf", 3, "Su número de teléfono debe tener al menos 3 letras.");


	//NIF start 
	//Validación NIF/CIF en javascript por Iván Prieto (http://www.euskopc.com) 
function check_NIF(nif_cif){ 

   if(nif_cif.length==9){ 

      nif_cif=nif_cif.toUpperCase(); 
    
      if((/^[ABCDEFGHKLMNPQS]/.test(nif_cif)) && !isNaN(nif_cif.substring(1,9))){ 
         //Comienza por una letra valida seguida de 8 números, posiblemente sea un NIF 
         var v1 = new Array(0,2,4,6,8,1,3,5,7,9); 
         var temp = 0; 
         var temp1; 
          
         for( i = 2; i <= 6; i += 2 ) { 
            temp = temp + v1[ parseInt(nif_cif.substr(i-1,1)) ]; 
            temp = temp + parseInt(nif_cif.substr(i,1)); 
         } 
          
         temp = temp + v1[ parseInt(nif_cif.substr(7,1)) ]; 
         temp = (10 - ( temp % 10)); 
          
         if( temp == 10 ){ 
            if(nif_cif.charAt(8)!="J" && nif_cif.charAt(8)!=0){ 
               error_message = error_message + "* " + "El NIF/CIF no es correcto" + "\n"; 
            } 
         } 
          
         else { 
            if(nif_cif.charAt(8)!=temp){ 
               error_message = error_message + "* " + "El NIF/CIF no es correcto" + "\n";          
            } 
         } 
      } 
       
      else if(/[0-9]{8}[ABCDEFGHJKLMNPQRSTVWXYZ]/.test(nif_cif)){ 
         //Comienza por 8 números seguidos de una letra válida, posiblemente sea un NIF 
         var temp = "TRWAGMYFPDXBNJZSQVHLCKET"; 
         var posicion_letra = nif_cif.substring(0,8) % 23; 
    
         if(nif_cif.charAt(8)!=temp.charAt(posicion_letra)){ 
            error_message = error_message + "* " + "El NIF/CIF no es correcto" + "\n"; 
         }    
      } 
    
      else if(/[X][0-9]{7}[ABCDEFGHJKLMNPQRSTVWXYZ]/.test(nif_cif)){ 
         //Comienza por una X, 7 números y después una letra válida, posiblemente sea un NIE 
         var temp = "TRWAGMYFPDXBNJZSQVHLCKET"; 
         var posicion_letra = nif_cif.substring(1,8) % 23; 
    
         if(nif_cif.charAt(8)!=temp.charAt(posicion_letra)){ 
            error_message = error_message + "* " + "El NIF/CIF no es correcto" + "\n"; 
         }    
      } 

      else{ 
         error_message = error_message + "* " + "El NIF/CIF no es correcto" + "\n"; 
      } 
   } 
    
   else { 
      error_message = error_message + "* " + "El NIF/CIF debe tener 9 caracteres, si es necesario rellene con ceros en la izquierda" + "\n"; 
   } 
} 



  check_password("pwd", "confirmation", 5, "Su contraseña debe tener al menos 5 letras.", "La confirmación de la contraseña debe ser igual a la contraseña.");
  check_password_new("pwd_current", "password_new", "password_confirmation", 5, "Su contraseña debe tener al menos 5 letras.", "Su contraseña nueva debe tener al menos 5 letras.", "La confirmación de su contraseña debe coincidir con su contraseña nueva.");

  if (error == true) {
    alert(error_message);
    return false;
  } else {
    submitted = true;
    return true;
  }
}

function check_cform(form_name)
{
	  if (submitted == true) 
	  {
    	alert("Ya ha enviado el formulario. Pulse Aceptar y espere a que termine el proceso.");
    	return false;
  		}

  	  error = false;
      form 	= form_name;
	  
	  error_message = "Hay errores en su formulario!\nPor favor, haga las siguientes correciones:\n\n";
	  check_input("nombre", 2, "Su nombre debe tener al menos 2 letras.");
	  check_input("email", 6, "Su e-mail debe tener al menos 6 letras.");
	  check_input("consulta", 6, "Su consulta debe tener al menos 10 letras.");
	  
	  if (error == true) 
	  {
    	alert(error_message);
    	return false;
  		} 
	  else 
	  {
    	submitted = true;
    	return true;
  		}	
	}

function check_dform(form_name) {
	//Comprobar formulario de direcciones de envío
  	if (submitted == true) {
    	alert("Ya ha enviado el formulario. Pulse Aceptar y espere a que termine el proceso.");
    	return false;
  	}

 	error 	= false;
	form 	= form_name;
  
  	error_message = "Hay errores en su formulario!\nPor favor, haga las siguientes correciones:\n\n";
  	check_input("nombre", 2, "Su Nombre debe tener al menos 2 letras.");
  	check_input("apellidos", 2, "Sus apellidos deben tener al menos 2 letras.");
  	check_input("direccion", 5, "Su dirección debe tener al menos 5 letras.");
  	check_input("cp", 4, "Su código postal debe tener al menos 4 letras.");
  	check_input("ciudad", 3, "Su población debe tener al menos 3 letras.");
  	check_input("provincia", 2, "Su provincia debe tener al menos 2 letras.");
  	check_select("pais", "", "Debe seleccionar un país de la lista desplegable.");


  	if (error == true) {
    	alert(error_message);
    	return false;
	} 
	else {
    	submitted = true;
    	return true;
  	}
}

function check_login(form_name)
{
	  if (submitted == true) 
	  {
    	alert("Ya ha enviado el formulario. Pulse Aceptar y espere a que termine el proceso.");
    	return false;
  		}

  	  error = false;
      form 	= form_name;
	  
	  error_message = "Hay errores en su formulario!\nPor favor, haga las siguientes correciones:\n\n";
	  check_input("email", 6, "Su e-mail debe tener al menos 6 letras.");
	  check_password("pwd", "pwd", 5, "Su contraseña debe tener al menos 5 letras.", "La confirmación de la contraseña debe ser igual a la contraseña.");
	  
	  if (error == true) 
	  {
    	alert(error_message);
    	return false;
  		} 
	  else 
	  {
    	submitted = true;
    	return true;
  		}	
	}