// alias para ID
function ID(id){
    return document.getElementById(id);
}

function anyadirEvento(objeto,evento,funcion){
	try{
		objeto.addEventListener(evento,funcion,false);
		return true;
	}catch(e){
		try{
			objeto.attachEvent("on"+evento,funcion);
			return true;
		}catch(e){
			return false;
		}
	}
}

function redimensionar()
{
	var winW, winH;
	if (self.innerHeight) {	
		winW = self.innerWidth;
		winH = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { 
		winW = document.documentElement.clientWidth;
		winH = document.documentElement.clientHeight;
	} else if (document.body) { 
		winW = document.body.clientWidth;
		winH = document.body.clientHeight;
	}
  if (winW<790){
    ID('contenedora').style.left = "0px";
    ID('contenedora').style.marginLeft = "0px";
  }else{
    ID('contenedora').style.left = "50%";
    ID('contenedora').style.marginLeft = "-390px";
  }
}
anyadirEvento(window,"resize",redimensionar);

function menuActivar()
{
  var opcionesMenu= ID('menu').getElementsByTagName('img');
  for (i=0;i<opcionesMenu.length;i++){
    if (opcionesMenu[i].className.indexOf('activo') == -1){
      opcionesMenu[i].onmouseover =function(){this.src = this.src.replace('.gif','-ON.gif');};
      opcionesMenu[i].onmouseout =function(){this.src = this.src.replace('-ON.gif','.gif');};
    }else{
      opcionesMenu[i].src = opcionesMenu[i].src.replace('.gif','-ON.gif');      
    }
  }
}

function submenuRestauranteActivar()
{
  var opcionesMenu= ID('submenu-restaurante').getElementsByTagName('img');
  for (i=0;i<opcionesMenu.length;i++){
      opcionesMenu[i].onmouseover =function(){if (this.className.indexOf('activo') == -1) this.src = this.src.replace('.gif','-ON.gif');};
      opcionesMenu[i].onmouseout =function(){if (this.className.indexOf('activo') == -1) this.src = this.src.replace('-ON.gif','.gif');};
      opcionesMenu[i].onclick =function(){
        //Primero desactivo todos los menús ( imágenes y texto )
        for (k=1;k<4;k++){
          ID('submenu-restaurante-'+ k).src = ID('submenu-restaurante-'+ k).src.replace('-ON.gif','.gif');
          ID('submenu-restaurante-'+ k).className = ID('submenu-restaurante-'+ k).className.replace("activo","");
          ID('contenido-restaurante-'+ k).style.display="none";
        }
        //Activo el actual y visualizo su texto
        ID(this.id).src = this.src.replace('.gif','-ON.gif');
        ID(this.id).className = "activo";
        ID('contenido-restaurante-'+this.id.substring(20)).style.display="block";
      };
      if (opcionesMenu[i].className.indexOf('activo') >= 0)
        opcionesMenu[i].src = opcionesMenu[i].src.replace('.gif','-ON.gif');
  }
}

function submenuServiciosActivar()
{
  var opcionesMenu= ID('submenu-servicios').getElementsByTagName('img');
  for (i=0;i<opcionesMenu.length;i++){
      opcionesMenu[i].onmouseover =function(){if (this.className.indexOf('activo') == -1) this.src = this.src.replace('.gif','-ON.gif');};
      opcionesMenu[i].onmouseout =function(){if (this.className.indexOf('activo') == -1) this.src = this.src.replace('-ON.gif','.gif');};
      opcionesMenu[i].onclick =function(){
        //Primero desactivo todos los menús ( imágenes y texto )
        for (k=1;k<5;k++){
          ID('submenu-servicios-'+ k).src = ID('submenu-servicios-'+ k).src.replace('-ON.gif','.gif');
          ID('submenu-servicios-'+ k).className = ID('submenu-servicios-'+ k).className.replace("activo","");
          ID('contenido-servicios-'+ k).style.display="none";
        }
        //Activo el actual y visualizo su texto
        ID(this.id).src = this.src.replace('.gif','-ON.gif');
        ID(this.id).className = "activo";
        ID('contenido-servicios-'+this.id.substring(18)).style.display="block";
      };
      if (opcionesMenu[i].className.indexOf('activo') >= 0)
        opcionesMenu[i].src = opcionesMenu[i].src.replace('.gif','-ON.gif');
  }
}

function submenuEntornoActivar()
{
  var opcionesMenu= ID('submenu-entorno').getElementsByTagName('img');
  for (i=0;i<opcionesMenu.length;i++){
      opcionesMenu[i].onmouseover =function(){if (this.className.indexOf('activo') == -1) this.src = this.src.replace('.gif','-ON.gif');};
      opcionesMenu[i].onmouseout =function(){if (this.className.indexOf('activo') == -1) this.src = this.src.replace('-ON.gif','.gif');};
      opcionesMenu[i].onclick =function(){
        //Primero desactivo todos los menús ( imágenes y texto )
        for (k=1;k<5;k++){
          ID('submenu-entorno-'+ k).src = ID('submenu-entorno-'+ k).src.replace('-ON.gif','.gif');
          ID('submenu-entorno-'+ k).className = ID('submenu-entorno-'+ k).className.replace("activo","");
          ID('contenido-entorno-'+ k).style.display="none";
        }
        //Activo el actual y visualizo su texto
        ID(this.id).src = this.src.replace('.gif','-ON.gif');
        ID(this.id).className = "activo";
        ID('contenido-entorno-'+this.id.substring(16)).style.display="block";
      };
      if (opcionesMenu[i].className.indexOf('activo') >= 0)
        opcionesMenu[i].src = opcionesMenu[i].src.replace('.gif','-ON.gif');
  }
}

//crea un objeto del tipo XMLHttpRequest según el navegador
function XML(){ //no quitar los comentarios condicionales
    var xmlhttp=false;
    /*@cc_on @*/
    /*@if (@_jscript_version >= 5)
    // JScript gives us Conditional compilation, we can cope with old IE versions.
    // and security blocked creation of the objects.
     try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
     } catch (e) {
      try {
       xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
       xmlhttp = false;
      }
     }
    @end @*/
    if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
      xmlhttp = new XMLHttpRequest();
    }
    return xmlhttp;
}
function enviarConsulta(idioma){
  if ( ID('nombre').value == "" || ID('telefono').value == "" ||  ID('consulta').value == ""){
    if (idioma == "es")
      alert('Por favor, complete todos los campos no opcionales.');
    else 
      alert('Please, fill all mandatory fields.');
    ID('nombre').focus();
    return false;
  }
  ID('cargando').style.display = "inline";  
  url = '?nombre='+ID('nombre').value+'&empresa='+ID('empresa').value+'&telefono='+ID('telefono').value+'&fax='+ID('fax').value+'&email='+ID('email').value+'&observaciones='+ID('consulta').value+'&idioma='+idioma+'';
  xmlhttp=new XML();
  if (xmlhttp){
    xmlhttp.onreadystatechange=function() {
      if (xmlhttp.readyState==4) {
        ID('tablaFormularioContacto').style.display = "none";
        ID('resultadoFormularioContacto').innerHTML = xmlhttp.responseText;
        ID('cargando').style.display = "none";
      }
    }
    xmlhttp.open("GET", "/solicitarInformacion.php"+url,true);
    xmlhttp.send(null);
    return false;
  }
}

var tickerParado = false
var tickerInicial = 0;
var tickerVueltas = 0;
function tickerIniciar()
{
  setTimeout("tickerDestacados()",3000)
  //a todos los elementos de lista-destacados les pongo que cuando estemos
  //encima se paren y cuando te sales que continue
  for (i=0;i<ID('lista-destacados').childNodes.length;i++){
    anyadirEvento(ID('lista-destacados').childNodes[i],"mouseover",tickerParar);
    anyadirEvento(ID('lista-destacados').childNodes[i],"mouseout",tickerReiniciar);
  }
}
function tickerParar()
{
  tickerParado = true
}
function tickerReiniciar()
{
  tickerParado = false
}
function tickerDestacados()
{
  if (!tickerParado){
    if (tickerVueltas == 0){
      if ( tickerInicial >= (ID('lista-destacados').offsetHeight+5)){
        tickerInicial = ID('lista-destacados').offsetHeight;
        tickerVueltas++;
        setTimeout("tickerDestacados()",100);
      }else{
        tickerInicial += 2;
        ID('lista-destacados').style.top = tickerInicial*(-1)+"px";
        setTimeout("tickerDestacados()",100);
      }
    }else{
      if ( tickerInicial < (ID('lista-destacados').offsetHeight+5)*(-1) ){
        tickerInicial = ID('lista-destacados').offsetHeight;
        tickerVueltas++;
        setTimeout("tickerDestacados()",100);
      }else{
        tickerInicial -= 2;
        ID('lista-destacados').style.top = tickerInicial+"px";
        setTimeout("tickerDestacados()",100);
      }
    }
  }else{
    setTimeout("tickerDestacados()",100);
  }
}

function reservaActualizar(idCompleto)
{
  //alert(idCompleto)
  var idArray = idCompleto.split("-")
  var tarifaId = idArray[1]
  var pensionId = ID('tarifa-'+tarifaId+'-pension').options[ID('tarifa-'+tarifaId+'-pension').selectedIndex].value
  //Obtenemos el precio de esa habitación
  var url = "/php_lib/tarifaObtener.php?tarifa="+tarifaId+"&pension="+pensionId;
  var xmlhttp=new XML();
  if (xmlhttp){
    xmlhttp.onreadystatechange=function() {
      if (xmlhttp.readyState==4) {
        //Ya he obtenido el precio
        //Las unidades sólo pueden ser número enteros
        //if (ID('tarifa-'+tarifaId+'-unidades').value!=""){
        //  ID('tarifa-'+tarifaId+'-unidades').value = Math.floor(ID('tarifa-'+tarifaId+'-unidades').value)
        if (xmlhttp.responseText == '0.00')
          ID('tarifa-'+tarifaId+'-total').innerHTML = "No disponible"
        else
          ID('tarifa-'+tarifaId+'-total').innerHTML = (xmlhttp.responseText*1).toFixed(2)
          //alert(ID('tarifa-'+tarifaId+'-total').innerHTML)
        //}
        return true;
      }
    }
    xmlhttp.open("GET",url,true);
    xmlhttp.send(null);
    return false;
  }
}

function reservaIniciar()
{
/*  var inputs = document.getElementsByTagName('input');
  for(var numInput = 0;numInput<inputs.length;numInput++){
    if (inputs[numInput].className == "unidades"){
      inputs[numInput].onkeyup =function(){reservaActualizar(this.id)};
    }
  }*/
  var selects = document.getElementsByTagName('select');
  for(var numSelect = 0;numSelect<selects.length;numSelect++){
    if (selects[numSelect].className == "pension"){
      reservaActualizar(selects[numSelect].id);
      selects[numSelect].onchange =function(){reservaActualizar(this.id)};
    }
  }
  //ID('modificar-reserva').style.display="none";
  //ID('enviar-reserva').style.display="none";
  //ID('imprimir-reserva').style.display="none";
}

function reservaAceptar()
{
  //Primero comprobamos los datos de contacto
  if (ID('nombre').value == ""){
    alert('Por favor, indique el nombre de una persona de contacto.');
    ID('nombre').style.border="1px solid red";
    ID('nombre').focus();
    return false;
  }else{
    ID('nombre').style.border="1px solid #a3a3a3";    
  }
  if (ID('telefono').value == ""){
    alert('Por favor, indique un teléfono de contacto.');
    ID('telefono').style.border="1px solid red";
    ID('telefono').focus();
    return false;
  }else{
    ID('telefono').style.border="1px solid #a3a3a3";
  }
  if(!emailValidar(ID('email'))){
    ID('email').style.border="1px solid red";
    ID('email').focus();
    return false;
  }else{
    ID('email').style.border="1px solid #a3a3a3";
  }
  //Comprobamos que ha hecho alguna reserva.
  /*var numeroReservas = 0;
  var spans = document.getElementsByTagName('span');
  for(var numSpan = 0;numSpan<spans.length;numSpan++){

    if ( spans[numSpan].className == "total" && spans[numSpan].innerHTML != "0.00" ){
      //Comprobamos que ha puesto fecha ini y fin para esta reserva
      var idArray = spans[numSpan].id.split("-")
      var tarifaId = idArray[1]
      if (ID('tarifa-'+tarifaId+'-fecha-ini').value != "" && ID('tarifa-'+tarifaId+'-fecha-fin').value != "" &&
          ID('tarifa-'+tarifaId+'-fecha-ini').value != "dd/mm/aaaa" && ID('tarifa-'+tarifaId+'-fecha-fin').value != "dd/mm/aaaa"){
        numeroReservas++;
      }else{
        alert('Por favor, indique fecha de entrada y salida para la reserva solicitada.')          
        ID('tarifa-'+tarifaId+'-fecha-ini').focus()
        return false;
      }
    }
  }
  if (numeroReservas == 0){
    alert('Para continuar es obligatorio que reserve al menos una habitación.')
    return false;
  }

  //Cambiamos inputs, selects y textareas por span para que no puedan
  //modificar nada
  var inputs = document.getElementsByTagName('input');
  for(var numInput = 0;numInput<inputs.length;numInput++){
    inputs[numInput].style.display = "none";
    inputs[numInput].nextSibling.innerHTML = inputs[numInput].value;
    inputs[numInput].nextSibling.style.display = "";
    //si estoy mirando una fila de reserva y las unidades son 0 oculto esa línea
    if (inputs[numInput].className == "unidades"){
      if (inputs[numInput].value == 0 ){
        inputs[numInput].parentNode.parentNode.style.display="none";
      }
    }
  }*/

  //ID('observaciones').style.display = "none";
  //ID('observaciones').nextSibling.innerHTML = ID('observaciones').value.replace(/\n/g,"<br />");
  //ID('observaciones').nextSibling.style.display = "";
  
  /*
  var selects = document.getElementsByTagName('select');
  for(var numSelect = 0;numSelect<selects.length;numSelect++){
    selects[numSelect].style.display = "none";
    selects[numSelect].parentNode.lastChild.innerHTML = selects[numSelect].options[selects[numSelect].selectedIndex].innerHTML;
    selects[numSelect].parentNode.lastChild.style.display = "";
  }
  */
  
  //Muestro y oculto botones correspondientes
  //ID('aceptar-reserva').style.display="none";
  //ID('modificar-reserva').style.display="";
  ID('enviar-reserva').style.display="";
}

function reservaModificar()
{
  var spans = document.getElementsByTagName('span');
  for(var numSpan = 0;numSpan<spans.length;numSpan++){
    if ( spans[numSpan].className != "total" ){
      switch (spans[numSpan].parentNode.firstChild.tagName){
        case "INPUT":
          spans[numSpan].parentNode.firstChild.style.display="";
          spans[numSpan].style.display = "none";
          //si estoy mirando una fila de reserva y las unidades son 0 vuelvo a mostrar esa línea
          if (spans[numSpan].parentNode.firstChild.className == "unidades"){
            if (spans[numSpan].parentNode.firstChild.value == 0 ){
              spans[numSpan].parentNode.firstChild.parentNode.parentNode.style.display="";
            }
          }
          break;
        case "SELECT":
          spans[numSpan].parentNode.firstChild.style.display="";
          spans[numSpan].style.display = "none";
          break;
        case "TEXTAREA":
          spans[numSpan].parentNode.firstChild.style.display="";
          spans[numSpan].style.display = "none";
          break;
        default:
          spans[numSpan].parentNode.firstChild.style.display="";
          spans[numSpan].style.display = "none";
          break;
      }
    }
  }
  
  //Muestro y oculto botones correspondientes
  ID('aceptar-reserva').style.display="";
  ID('modificar-reserva').style.display="none";
  ID('enviar-reserva').style.display="none";
  ID('imprimir-reserva').style.display="none";
}

function reservaEnviar()
{
  //Primero comprobamos los datos de contacto
  if (ID('nombre').value == ""){
    alert('Por favor, indique el nombre de una persona de contacto.');
    ID('nombre').style.border="1px solid red";
    ID('nombre').focus();
    return false;
  }else{
    ID('nombre').style.border="1px solid #a3a3a3";    
  }
  if (ID('telefono').value == ""){
    alert('Por favor, indique un teléfono de contacto.');
    ID('telefono').style.border="1px solid red";
    ID('telefono').focus();
    return false;
  }else{
    ID('telefono').style.border="1px solid #a3a3a3";
  }
  if(!emailValidar(ID('email'))){
    ID('email').style.border="1px solid red";
    ID('email').focus();
    return false;
  }else{
    ID('email').style.border="1px solid #a3a3a3";
  }
  if (ID('observaciones').value == ""){
    alert('Por favor, indique sus observaciones.');
    ID('observaciones').style.border="1px solid red";
    ID('observaciones').focus();
    return false;
  }else{
    ID('observaciones').style.border="1px solid #a3a3a3";    
  }
  ID('cargando-reserva').style.display = "inline";
  //Quito botones
  //ID('modificar-reserva').style.display="none";
  //ID('enviar-reserva').style.display="none";  
  //Formateo todos los datos
  var reserva = "Persona de contacto : "+ID('nombre').value+"";
  reserva += "\nTeléfono : "+ID('telefono').value+""
  if (ID('email').value!=""){
    reserva += "\nEmail : "+ID('email').value+""
  }
  if (ID('observaciones').value!=""){
    reserva += "\nObservaciones : \n"+ID('observaciones').value+""
  }
  //Recorro todos los span, y cuando encuentre un total > 0 la añado
  /*
  reserva += "\n\nReserva solicitada:"
  var inputs = document.getElementsByTagName('input');
  for(var numInput = 0;numInput<inputs.length;numInput++){
    if (inputs[numInput].className == "unidades" && 
        inputs[numInput].value > 0){
      var idArray = inputs[numInput].id.split("-")
      var tarifaId = idArray[1]
      reserva += "\n" + inputs[numInput].value +" "+ ID('tarifa-'+tarifaId).innerHTML + ": "+ ID('tarifa-'+tarifaId+'-pension').options[ID('tarifa-'+tarifaId+'-pension').selectedIndex].innerHTML + ", desde " + ID('tarifa-'+tarifaId+'-fecha-ini').value + " hasta " + ID('tarifa-'+tarifaId+'-fecha-fin').value + "."
    }
  }
  reserva = reserva.replace(/\n/g,"<br />");
  */
  var url = "/php_lib/reservaGuardar.php?solicitante="+ID('nombre').value+"&telefono="+ID('telefono').value+"&email="+ID('email').value+"&reserva="+reserva
  //Envio los datos para que se guarden en la base de datos
  var xmlhttp=new XML();
  if (xmlhttp){
    xmlhttp.onreadystatechange=function() {
      if (xmlhttp.readyState==4) {
        //Si todo ha ido bien muestro el botón de imprimir
        //y cartelito de que todo ha ido bien
        if (xmlhttp.responseText == "OK" || xmlhttp.responseText == "ok"){
          ID('resultado-reserva').innerHTML = "Su solicitud se ha enviado correctamente."
          /*if (ID('email').value!=""){
            ID('resultado-reserva').innerHTML += "<br />Le hemos enviado una copia a su correo electrónico."
          }
          ID('imprimir-reserva').style.display="";*/
          ID('resultado-reserva').style.color="#333333";
          ID('resultado-reserva').style.display="";
          ID('cargando-reserva').style.display = "none";
          return true;
        }else{
        //Si no, muestro cartelito de error
          ID('resultado-reserva').innerHTML = "Ha sucedido un error en el sistema. Vuelva a intentarlo en unos minutos."
          ID('resultado-reserva').style.display="";
          ID('cargando-reserva').style.display = "none";
          return false;
        }
      }
    }
    xmlhttp.open("GET",url,true);
    xmlhttp.send(null);
    return false;
  }
}

/*
Funcion para validar el formato de un e-mail.
Tiene que tener al menos, la @ y un punto indicador del dominio
Fecha: 14/04/03
Autor: Javi Ruiz (Almería)
*/
function emailValidar(campo)
{
	var email = campo.value;
	if (email!='' && (email.indexOf("@")==-1 || email.indexOf(".")==-1 ) ){
		alert ("Compruebe que el formato del Email es correcto.")
		return false;
	}
	return true;
}

/*
Funcion para validar el formato de una fecha una fecha. dd/mm/aaaa or aa
Fecha: 14/04/03
Autor: Javi Ruiz (Almería)
*/
function fechaValidar(campo)
{
	fecha = campo.value;
	var exp=new RegExp("(^([0-9]{2})/([0-9]{2})/([0-9]{4})$)");
	if ( fecha == "" ){
		return false;
	}
	partes=fecha.split('/');
	switch (partes[1])
	{
	case '01' : limite_dias= 31;
		break;
	case '03' : limite_dias= 31;
		break;
	case '05' : limite_dias= 31;
		break;
	case '07' : limite_dias= 31;
		break;
	case '08' : limite_dias= 31;
		break;
	case '10' : limite_dias= 31;
		break;
	case '12' : limite_dias= 31;
		break;
	case '04' : limite_dias= 30;
		break;
	case '06' : limite_dias= 30;
		break;
	case '09' : limite_dias= 30;
		break;
	case '11' : limite_dias= 30;
		break;
	case '02': if (partes[2]%400==0) limite_dias=29
					else if (partes[2]%100==0) limite_dias=28
							else if (partes[2]%4==0) limite_dias=29
									else limite_dias=28;
		break;
	default : limite_dias=0;
	}
	if (exp.test(fecha) == false || partes[0]>limite_dias || partes[0]<1 || partes[1]<1 || partes[1]>12){
		alert ("Compruebe que la fecha es correcta y el formato es dd/mm/aaaa . Ej: 15/08/2007 .")
		campo.value="";
		campo.focus();
		return false;
	}
	return true;
}

/*
Función para comprobar que en un text area no se pasan de los
caracteres máximos.
Fecha: 11/04/2003
Realización: javi ruiz (almería)
*/
function comprobarLimite(campo, maxLength)
{
	longitud_actual = campo.value.length ;
	if ( longitud_actual > maxLength ) {
		campo.value = campo.value.substring(0,maxLength);
		charleft = 0;
		alert("Ha alcanzado el limite de caracteres de este campo ( "+maxLength+"\ caracteres ).\nSu contenido ha sido recortado automáticamente.");
	} else {
		charleft = maxLength - campo.value.length;
	}
}