
function cambiarInstalacion(form,instalacion){
	form.accion.value="visualizar";
	form.idt.value=instalacion;
	form.submit();

}

function telefonoCorrecto(tfno){
if(tfno.length!=9) return false;
if (!/^(9|6|8)\d{8}/.test(tfno)) return false;
else return true;
}

function fechaCorrecta(fecha){
if ((fecha.length!=8)&&(fecha.length!=9)&&(fecha.length!=10))  return false;
var fechaPat=/^(\d{1,2})\/(\d{1,2})\/(20)\d{2}$/
// Mirar si "usuario" es valido
if (fecha.match(fechaPat)==null) {
    // usuario no es valido
    return false
}
else return true;
}

/*Funcion que valida la direccion de email*/

////////////////////////////////////////////////////////////////////////////////
function emailCorrecto(emailStr) {
////////////////////////////////////////////////////////////////////////////////

// Comprueba si el e-mail se adecua al formato usuario@dominio.
//  Tambien se usa para separar usuario de dominio.
var emailPat=/^(.+)@(.+)$/

// Cadena que representa los patrones que son caracteres especiales.
//   Son  ( ) < > @ , ; : \ " . [ ]
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]áéíóúÁÉÍÓÚâêîôû^ÂÊÎÔÛàèìòùÀÈÌÒÙÄËÏÖÜëïü¨"

// Rango de caracteres permitido en usuario o dominio.
//   Realmente afirma aquellos que no son permitido.
var validChars="\[^\\s" + specialChars + "\]"

// El siguiente patron se aplica si el "usuario" es una cadena con
// comillas (en ese caso no hay reglas sobre que caracteres se
// permiten y cuales no, todo vale). Por ejemplo, "evelio ojito"@talytal.com
// seria un e-mail legal.
var quotedUser="(\"[^\"]*\")"

// El siguiente patron aplica para dominios que son direcciones IP en
// vez de nombre simbolicos. P.ej. pepe@[123.124.233.4] es un e-mail legal
// NOTA: Se necesitan los corchetes.
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/

// La siguiente cadena representa un atomo (basicamente como una serie de
// caracteres no especiales.
var atom=validChars + '+'

// La siguiente cadena represente una palabra en el nombre de usuario
// tipico. P.ej. pepe.rodriguez@algunsitio.com, pepe y rodriguez son palabras.
// Basicamente, una palabra es un atomo o una cadena entrecomillada.
var word="(" + atom + "|" + quotedUser + ")"

// Estructura del usuario
var userPat=new RegExp("^" + word + "(\\." + word + ")*$")

// Estructura de un dominio simbolico normal, en contraposicion a un
// patron de dominio IP, como mas arriba
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")


// Finalmente averiguamos si la direccion es valida

// Empezamos con el patron burdo para romper usuario@dominio en distintas
// parte que son facilmente analizables

var matchArray=emailStr.match(emailPat)
if (matchArray==null) {
  // Demasiados o pocas @; basicamente, esta direccion no cuadra con el
  // molde general de una direccion de email valida
        return false
}
var user=matchArray[1]
var domain=matchArray[2]

// Mirar si "usuario" es valido
if (user.match(userPat)==null) {
    // usuario no es valido
    return false
}

// si el e-mail es una direccion IP (en vez de host simbolico)
// asegurarse que la IP es valida
var IPArray=domain.match(ipDomainPat)
if (IPArray!=null) {
    // this is an IP address
          for (var i=1;i<=4;i++) {
            if (IPArray[i]>255) {
                return false
            }
    }
    return true
}

// Dominio es un nombre simbólico
var domainArray=domain.match(domainPat)
if (domainArray==null) {
    return false
}

// Nombre de dominio parece valido, pero asegurarse que termina en una palabra
// de 3 letras o 4 letras (como com, edu, gov, info) o una palabra de 2 letras representando un
// pais (es, uk nl) y que hay un nombre de host precediendo al dominio o pais


// Necesitamos romper el dominio para contar cuantos atomos tiene

var atomPat=new RegExp(atom,"g")
var domArr=domain.match(atomPat)
var len=domArr.length
if (domArr[domArr.length-1].length<2 ||
    domArr[domArr.length-1].length>4) { 
// la dirección debe terminar en una palabra de 2 o 3 o 4 letras.
   return false;
}

// Asegurarse que hay un nombre de host precediendo al dominio
if (len<2) {
   return false
}

// Si hemos llegado hasta aqui, todo es válido
return true;
}
function isValid(string,allowed){
    for (var i=0; i< string.length; i++){
        if (allowed.indexOf(string.charAt(i)) == -1) return false;
    }
    return true;
}
//funcion que valida si un nombre es correcto
function nomCorrecto(ape){
allowed =  'abcdefghijklmnñopqrstuvwxyzáéíóú ABCDEFGHIJKLMNÑOPQRSTUVWXYZÁÉÍÓÚ,-.';
return isValid(ape,allowed);
}


function trim(cadena){
 cadena=cadena.replace(/^[\s]+/g,"");
 cadena=cadena.replace(/[\s]+$/g, ""); 
   return cadena;
}

//funcion que valida que se haya seleccionado algun tipo de cliente
function validarTipo(form){
    if (form.tipo_cliente[0].checked) return 'P';
    else return 'E';
}

//funcion que valida si una razon social es correcta
function razonSocialCorrecto(nom,tempresa){
if (nom==tempresa) return false;
else{
allowed =  'abcdefghijklmnñopqrstuvwxyzáéíóú ABCDEFGHIJKLMNÑOPQRSTUVWXYZ\\:.,/ºª0123456789-ÁÉÍÓÚ-';
return isValid(nom,allowed);
    }
}

//funcion que valida si una direccion es correcta
function dirCorrecto(ape){
allowed =  'abcdefghijklmnñopqrstuvwxyzáéíóú ABCDEFGHIJKLMNÑOPQRSTUVWXYZ\\:.,/ºª0123456789-ÁÉÍÓÚ-';
return isValid(ape,allowed);
}


//funcion que valida el formulario de los datos de facturacion
function comprobarDatos(form){
		var errorS="";
		form.idt.value=form.tipo[form.tipo.selectedIndex].value;
        if (form.fecha1.value=="") errorS="Debe introducir la fecha sobre la cual quiere hacer la reserva.";
        else if (!fechaCorrecta(form.fecha1.value)) errorS="La fecha de la reserva no es correcta";
		else if ((form.idt.value!=0)&&(form.fecha2.value=="")) errorS="Debe introducir la fecha de salida.";
        else if ((form.idt.value!=0)&&(!fechaCorrecta(form.fecha2.value))) errorS="La fecha de salida no es correcta";
		else if ((form.idt.value==0)&&(form.hora.value=="")) errorS="Debe introducir la hora aproximada de la reserva.";
        else if (form.personas.value=="") errorS="No ha introducido el numero de personas";
		else if (isNaN(form.personas.value)) errorS="Introduzca en número las personas sobre las que se va a realizar la reserva";
		else if ((form.nombre.value=="")) errorS="No ha introducido nada en el nombre de contacto";
        else if (!nomCorrecto(form.nombre.value)) errorS="El nombre no parece correcto";
        else if ((form.apellidos.value=="")) errorS="No ha introducido nada en apellidos";
        else if (!nomCorrecto(form.apellidos.value)) errorS="Los apellidos no parecen correctos";
        else if ((form.telefono.value=="")&&(form.email.value=="")) errorS="Debe introducir un teléfono o un email para que se pueda formalizar la reserva.";
		else if ((form.telefono.value!="")&&(!telefonoCorrecto(form.telefono.value))) errorS="El teléfono que ha introducido no parece correcto.";
		else if ((form.email.value!="")&&(!emailCorrecto(form.email.value))) errorS="El e-mail que ha introducido no parece correcto.";
        if (errorS=="") {
		form.enviar.value="Enviar";
		return true;
		}else {alert(errorS);errorS="";return false;}
}

//funcion que valida el formulario de los datos de facturacion
function comprobarDatosContacto(form){
		var errorS="";
        if ((form.nombre.value=="")) errorS="No ha introducido nada en el nombre de contacto";
        else if (!nomCorrecto(form.nombre.value)) errorS="El nombre no parece correcto";
        else if ((form.apellidos.value=="")) errorS="No ha introducido nada en apellidos";
        else if (!nomCorrecto(form.apellidos.value)) errorS="Los apellidos no parecen correctos";
		else if ((form.telefono.value!="")&&(!telefonoCorrecto(form.telefono.value))) errorS="El teléfono que ha introducido no parece correcto.";
		else if (form.email.value=="") errorS="Debe introducir un email de contacto.";
		else if ((form.email.value!="")&&(!emailCorrecto(form.email.value))) errorS="El e-mail que ha introducido no parece correcto.";
		else if (form.comentarios.value=="") errorS="Introduzca los comentarios que quiere hacer llegar al Hotel Restaurante Haritz Ondo.";
        if (errorS=="") {
		form.submit();
		}else {alert(errorS);errorS="";}
}
//funcion que valida el formulario de los datos de facturacion
function comprobarFecha(form){
		var errorS="";
		
        if (form.fecha1.value=="") errorS="Debe introducir la fecha sobre la cual quiere hacer la reserva.";
        if (errorS=="") {
		form.submit();
		}else {alert(errorS);errorS="";}
}

//funcion que valida el formulario de los datos de facturacion
function comprobarFechas(form){
		var errorS="";
		form.idt.value=form.tipo[form.tipo.selectedIndex].value;
        if (form.fecha1.value=="") errorS="Debe introducir la fecha sobre la cual quiere hacer la reserva.";
        else if (!fechaCorrecta(form.fecha1.value)) errorS="La fecha de la reserva no es correcta";
		else if (form.fecha2.value=="") errorS="Debe introducir la fecha de salida.";
        else if (!fechaCorrecta(form.fecha2.value)) errorS="La fecha de salida no es correcta";
        if (errorS=="") {
		form.enviar.value="Consultar";
		return true;
		}else {alert(errorS);errorS="";return false;}
}