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_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_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_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_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 == '' )
	{
		//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_form(form_name) {

 if (submitted == true) {
    alert("Ya se ha enviado el formulario. Espere a 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";
		
  switch(form.name)
  {
	  	case "nuevoPiso":
		case "actualizarPiso":
			check_input("piso", "Debe indicar de qué piso se trata.");
			check_date("fecha");
			break;
		case "nuevaNoticia":
		case "actualizarNoticia":
			check_input("titulo", "Debe escribir un título para la noticia.");
	  		check_input("contenido", "Debe redactar el contenido de la noticia.");
			check_date("fecha");
			break;
		case "contactForm":
			check_input("nombre", "Debe escribir un nombre para poder dirigirnos a usted.");
			if (check_alguno("telefono","email","Debe indicarnos un medio de contacto (teléfono o email)."))
			{
				check_input2("telefono", 9, "Su número de teléfono debe tener al menos 9 cifras.");
				check_email("email", "Su dirección de email no es válida.");				
			}
			check_input("consulta", "Debe redactar el contenido de la consulta.");
			break;
		case "sueloForm":
			check_input("nombre", "Debe escribir un nombre para poder dirigirnos a usted.");
			if (check_alguno("telefono","email","Debe indicarnos un medio de contacto (teléfono o email)."))
			{
				check_input2("telefono", 9, "Su número de teléfono debe tener al menos 9 cifras.");
				check_email("email", "Su dirección de email no es válida.");				
			}
			break;
			
			
  }
  
  if (error == true) {
    alert(error_message);
    return false;
  } else {
    submitted = true;
    return true;
  }
}
