var form = "";
var submitted = false;
var error = false;
var error_message = "";

function check_input(field_name, message) {
  if (form.elements[field_name] && (form.elements[field_name].type != "hidden")) {
    var field_value = form.elements[field_name].value;

    if (field_value == '') {
      error_message = error_message + "* " + message + "\n";
      error = true;
    }
  }
}

function check_email(field_name, 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.search(/^([^@]+@[^@]+\.[^@\.]+)?$/)==-1)
	{
		error = true;	
		error_message = error_message + "* " + message + "\n";
	}
  }
}

function check_date(field_name) {
  	if (form.elements[field_name] && (form.elements[field_name].type != "hidden")) {
    	var field_value = form.elements[field_name].value;
	
  		if (field_value.search(/^([0-3]{0,1}[0-9]\/[0-1]{0,1}[0-9]\/[1-2][0-9]{3})$/)==-1) 
		{	error = true;	
			error_message = error_message + "* La fecha debe seguir el formato dd/mm/aaaa.\n";
		}

  	}
}

function check_hour(field_name) {
  	if (form.elements[field_name] && (form.elements[field_name].type != "hidden")) {
    	var field_value = form.elements[field_name].value;
	
  		if (field_value.search(/^([0-2]{0,1}[0-9]:[0-6]{0,1}[0-9])$/)==-1) 
		{	error = true;	
			error_message = error_message + "* La hora debe seguir el formato hh:mm.\n";
		}

  	}
}


function check_form(form_name) {

 if (submitted == true) {
    alert("Ya se ha enviado el formulario. Espere que termine el proceso.");
    return false;
  }

  error = false;
  form = form_name;
  error_message = "Hay errores en este formulario!\nPor favor, haga las siguientes correcciones:\n\n";

  check_input("nombre", "Debe indicar un autor para el mensaje.");
  
  check_email("email", "La dirección de email no es válida.");
  
  check_input("mensaje", "Debe escribir un contenido para el mensaje.");

  check_date("fecha");
  
  check_hour("hora");
  
 
  if (error == true) {
    alert(error_message);
    return false;
  } else {
    submitted = true;
    return true;
  }
}

function check_form2(form_name) {

 if (submitted == true) {
    alert("Xa se enviou o formulario. Agarde a que remate o proceso.");
    return false;
  }

  error = false;
  form = form_name;
  error_message = "Hai erros neste formulario!\nPor favor, faga as seguintes correccións:\n\n";

  check_input("convocatoria", "Debe escribir un título para a convocatoria.");

  check_input("destinatarios", "Debe sinalar quen son os destinatarios da convocatoria.");

  check_input("lugar", "Debe indicar un lugar.");
  
  check_date("data");
  
  check_hour("hora");
  
 
  if (error == true) {
    alert(error_message);
    return false;
  } else {
    submitted = true;
    return true;
  }
}

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_input2(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_alguno() {
  ninguno=true;
  opcion = 0;
  for(x=0;x<arguments.length-1;x++)
  {
  	if (form.elements[arguments[x]] && (form.elements[arguments[x]].type != "hidden")) 
   	 	if(form.elements[arguments[x]].value != '')
		{
			ninguno = false;
			opcion = opcion + (x==0?1:x*2);
		}
			
  }
  
  if (ninguno == true) {
     error_message = error_message + "* " + arguments[arguments.length-1] + "\n";
     error = true;
	 return false;
  }
  else
  	return true;
}

function check_dni(field_name) {
  if (form.elements[field_name] && (form.elements[field_name].type != "hidden")) {
    var field_value = form.elements[field_name].value;
	
    if (field_value == '')
	{	error = true;	
	  	error_message = error_message + "* Su NIF/CIF debe contener 7/8 números y una letra.\n";
	}
	else
		if (!isNaN(field_value.substring(0,1)) && field_value.search(/^([0-9]{7,8}[a-zA-Z])$/)==-1) 
		{	error = true;	
	  		error_message = error_message + "* Su NIF debe contener 7/8 números seguidos de una letra.\n";
		}
		else
			if (isNaN(field_value.substring(0,1)) && field_value.search(/^([a-zA-Z][0-9]{7,8})$/)==-1)
			{	error = true;	
	  			error_message = error_message + "* Su CIF debe contener una letra seguida de 7/8 números.\n";
			}
	
  }
}

function check_cp(field_name, 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.search(/^([0-9]{5})?$/)==-1)
	{
		error = true;	
	  	error_message = error_message + "* " + message + "\n";
	}
  }
}

function check_email2(field_name, message) {
  if (form.elements[field_name] && (form.elements[field_name].type != "hidden")) {
    var field_value = form.elements[field_name].value;
    if (field_value == '' )
	{
		error = true;	
		error_message = error_message + "* Debe indicar una dirección de email. \n";
	}
	if ( field_value.search(/^([^@]+@[^@]+\.[^@\.]+)?$/)==-1)
	{
		error = true;	
		error_message = error_message + "* " + message + "\n";
	}
  }
}

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];

    if (radio.checked == true) {
        isChecked = true;
    }
    
    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 || password.search(/^([^@]+)$/)==-1 ) {
      error_message = error_message + "* " + message_1 + "\n";
      error = true;
    } else if (password != confirmation) {
      error_message = error_message + "* " + message_2 + "\n";
      error = true;
    }
  }
}


function check_form_registro(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 de registro!\nPor favor, haga las siguientes correciones:\n\n";

  if(check_alguno("nombre","empresa","Debe indicar un nombre de usuario o empresa."))
  {
  	if(opcion==1 || opcion==3 )
	{
		 check_input("nombre", 2, "Su nombre debe tener al menos 2 letras");
		 check_input("apellidos", 2, "Sus apellidos deben tener al menos 2 letras.");
	}
	if(opcion==2 || opcion==3 )
		 check_input("empresa", 2, "Su nombre de empresa debe tener al menos 2 letras.");
  }
  
  check_dni("nif");

  check_input("direccion", 5, "Su dirección debe tener al menos 5 letras.");
  
  check_input("poblacion", 3, "Su población debe tener al menos 3 letras.");
  
  check_cp("cp", "Su código postal debe tener 5 números (sin puntos).");

  check_input("provincia", 2, "Su provincia/estado debe tener al menos 2 letras.");

  check_select("pais", "", "Debe seleccionar un país de la lista desplegable.");

  check_email2("email", "Su dirección de email no es válida.");
  
  check_input2("telefono", 9, "Su número de teléfono debe tener al menos 9 cifras.");
  
  check_input2("fax", 9, "Su número de fax debe tener al menos 9 cifras.");
   
  check_password("clave", "confirmaclave", 5, "Su clave debe tener al menos 5 caracteres.", "La confirmación de la clave debe ser igual a la clave.");
  
  check_radio ("leido","Debe leer y aceptar la política de privacidad.");
 
  if (error == true) {
    alert(error_message);
    return false;
  } else {
    submitted = true;
    return true;
  }
}

function check_form_modify(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 de registro!\nPor favor, haga las siguientes correciones:\n\n";

  if(check_alguno("nombre","empresa","Debe indicar un nombre de usuario o empresa."))
  {
  	if(opcion==1 || opcion==3 )
	{
		 check_input("nombre", 2, "Su nombre debe tener al menos 2 letras");
		 check_input("apellidos", 2, "Sus apellidos deben tener al menos 2 letras.");
	}
	if(opcion==2 || opcion==3 )
		 check_input("empresa", 2, "Su nombre de empresa debe tener al menos 2 letras.");
  }

  check_input("direccion", 5, "Su dirección debe tener al menos 5 letras.");
  
  check_input("poblacion", 3, "Su población debe tener al menos 3 letras.");
  
  check_cp("cp", "Su código postal debe tener 5 números (sin puntos).");

  check_input("provincia", 2, "Su provincia/estado debe tener al menos 2 letras.");

  check_select("pais", "", "Debe seleccionar un país de la lista desplegable.");

  check_email2("email", "Su dirección de email no es válida.");

  check_input2("telefono", 9, "Su número de teléfono debe tener al menos 9 cifras.");
  
  check_input2("fax", 9, "Su número de fax debe tener al menos 9 cifras.");
  
  check_password("clave", "confirmaclave", 5, "Su clave debe tener al menos 5 caracteres.", "La confirmación de la clave debe ser igual a la clave.");
  
  
   if (error == true) {
    alert(error_message);
    return false;
  } else {
    submitted = true;
    return true;
  }
}

