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_telefono(field_name, message) {
  if (form.elements[field_name] && (form.elements[field_name].type != "hidden")) {
    var field_value = form.elements[field_name].value;
	while(field_value.search(" ")!=-1)
		field_value = field_value.replace(" ","");
	//alert(field_value);
    if (field_value.length < 9) {
      error_message = error_message + "* " + message + "\n";
      error = 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 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";
		}	
  }
}

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_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_date(field_name,error_message2) {
  	if (form.elements[field_name] && (form.elements[field_name].type != "hidden")) {
    	var field_value = form.elements[field_name].value;
		if(error_message2=='')
			error_message2 = "* La fecha debe seguir el formato dd/mm/aaaa.\n";
  		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 + error_message2;
		}

  	}
}

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_ini_fin(inicio,fin)
{
	var fecha_inicio = form.elements[inicio].value;
	var fecha_fin = form.elements[fin].value;
	
	var iniDate = new Date();
	iniDate.setYear(fecha_inicio.substring(6,410));
	iniDate.setMonth(fecha_inicio.substring(3,5)-1);
	iniDate.setDate(fecha_inicio.substring(0,2));
	
	var finDate = new Date();
	finDate.setYear(fecha_fin.substring(6,410));
	finDate.setMonth(fecha_fin.substring(3,5)-1);
	finDate.setDate(fecha_fin.substring(0,2));
	
	if(iniDate>=finDate)
	{
		error = true;
		error_message = error_message + "* La fecha de fin debe ser posterior a la de inicio.\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 = '';
  
  switch(form.name)
  {
		case "nuevaActividad":
		case "actualizarActividad":
			error_message = "Hay errores en este formulario!\nPor favor, haga las siguientes correcciones:\n\n";
			check_input("titulo", "Debe escribir un título para la actividad.");
			check_input("contenido", "Debe redactar el contenido de la actividad.");
			check_date("fecha");
			check_hour("hora");
			break;
		case "temporadas":
			check_date("inicio", "* La fecha de inicio debe seguir el formato dd/mm/aaaa.\n");
			check_date("fin", "* La fecha de fin debe seguir el formato dd/mm/aaaa.\n");
			if (!error) check_ini_fin("inicio","fin");
			break;
		case "reserva_form":
			check_input("entrada", "Debe indicar la fecha de entrada.");
			check_input("salida", "Debe indicar la fecha de salida.");
			break;
  }  
  
 
  if (error == true) {
    alert(error_message);
    return false;
  } else {
    submitted = true;
    return true;
  }
}

function check_datos_cliente(form_name) {
  error = false;
  form = form_name;
  error_message = "Hay errores en su información de cliente!\nPor favor, haga las siguientes correcciones:\n\n";

  check_dni("dni");
  
  check_input("nombre", "Debe introducir su nombre.");
  
  check_input("apellidos", "Debe introducir sus apellidos.");
  
  check_telefono("telefono", "Su número de teléfono no es válido.");
  
  check_email("email", "Su dirección de email no es válida.");

  check_cp("cp", "Su código postal debe tener 5 números (sin puntos).");
 
  if (error == true) {
    alert(error_message);
    return false;
  } else {
    submitted = true;
    return true;
  }
}



