﻿/*

 * jQuery Color Animations

 * Copyright 2007 John Resig

 * Released under the MIT and GPL licenses.

 */



(function(jQuery){


	
  // We override the animation for all of these color styles

  jQuery.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor', 'color', 'outlineColor'], function(i,attr){

    jQuery.fx.step[attr] = function(fx){

      if ( fx.state == 0 ) {

        fx.start = getColor( fx.elem, attr );

        fx.end = getRGB( fx.end );

      }



      fx.elem.style[attr] = "rgb(" + [

        Math.max(Math.min( parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0]), 255), 0),

        Math.max(Math.min( parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1]), 255), 0),

        Math.max(Math.min( parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2]), 255), 0)

      ].join(",") + ")";

    }

  });



  // Color Conversion functions from highlightFade

  // By Blair Mitchelmore

  // http://jquery.offput.ca/highlightFade/



  // Parse strings looking for color tuples [255,255,255]

  function getRGB(color) {

    var result;



    // Check if we're already dealing with an array of colors

    if ( color && color.constructor == Array && color.length == 3 )

      return color;



    // Look for rgb(num,num,num)

    if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color))

      return [parseInt(result[1]), parseInt(result[2]), parseInt(result[3])];



    // Look for rgb(num%,num%,num%)

    if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color))

      return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55];



    // Look for #a0b1c2

    if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color))

      return [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)];



    // Look for #fff

    if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color))

      return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)];



    // Otherwise, we're most likely dealing with a named color

    return colors[jQuery.trim(color).toLowerCase()];

  }

  

  function getColor(elem, attr) {

    var color;



    do {

      color = jQuery.curCSS(elem, attr);



      // Keep going until we find an element that has color, or we hit the body

      if ( color != '' && color != 'transparent' || jQuery.nodeName(elem, "body") )

        break; 



      attr = "backgroundColor";

    } while ( elem = elem.parentNode );



    return getRGB(color);

  };

  

})(jQuery);





/*

 * ------------------------------------------------------------ Funciones agrupables al llamar al DOM

*/



String.prototype.cambiarColor = function () {

  var reRGB = /rgb/;

  var reReplace = /[^\d,]/g;

  var sColor;

  

  if (reRGB.test(this)) {

    sColor = this.replace(reReplace, "").split(",");

    for (var i = 0; i < sColor.length; ++i) {

      sColor[i] = parseInt(sColor[i]).toString(16);

      if (sColor[i].length == 1)

          sColor[i] = "0" + sColor[i];

    }

    sColor = "0x" + sColor.join("");

  } else {

    sColor = this.replace("#", "0x");

    if (sColor.length == 5) {

      sColor = sColor.split("");

      for (var i = 0; i < sColor.length; ++i) {

        if (i > 1) {

          sColor[i] += sColor[i];

        }

      }

      sColor = sColor.join("");

    }

  }

  return sColor;

}



var sustituirImagenes = function() {

    $(".titGraf").each(function() {

        var tagHTML = this.tagName.toLowerCase();

        var tit     = $(this);

        var color   = tit.css("color").cambiarColor();

        var bgcolor = tit.css("background-color").cambiarColor();

        var size    = parseInt(tit.css("font-size")) * 6/10;

        var text    = tit.text().replace(/\+/g, "%2B");

        var textTransform = tit.css("text-transform");

        var anchuraCondicional = "";

        if (tagHTML == "h4" || tagHTML == "h5") {

          anchuraCondicional = "&width=" + tit.width();

        }

        switch (textTransform)

        {

            case "uppercase":

          text = text.toUpperCase();

          break;

        case "lowercase":

            text = text.toLowerCase();

          break; 

        }

        var ruta    = "inc/fig2/file.drawtext2.php?text='" + text + "'&font='../arialRounded.ttf'&size=" + size + "&color=" + color + "&bgcolor=" + bgcolor + "&bgtrans='true'" + anchuraCondicional;

        tit.css("background-color", "transparent")

        tit.html("<img src=\"" + ruta + "\" alt='" + text + "' />");

    });

}



/*

 * --------------------------------------------------------------------------------------- Calendario

*/



function abre(n){

  



  var cal=$('#cal'+n);

  if (!document.getElementById('f1h-'+n)) return false;

  if(n==1) {

    $("#cal2").hide();

    cal[0].src='calendario.php?n=1&fecha='+document.getElementById('f1h-'+n).value; /*no ponemos ftope, porque ser� el dia de hoy */

  } else if(n==2) {

    $("#cal1").hide();

    cal[0].src='calendario.php?n=2&fecha='+document.getElementById('f1h-'+n).value+'&ftope='+document.getElementById('f1h-1').value;

  }

  cal.fadeIn("slow");

}

String.prototype.toDate = function(f, modDia, modMes) {
	var f     = f || 'dd/mm/yyyy';
    var modDia= modDia || 0;
    var modMes= modMes || 0;
    var anyo  = this.substring(f.indexOf('y'), f.lastIndexOf('y') + 1);
    var mes   = parseInt(this.substring(f.indexOf('m'), f.lastIndexOf('m') + 1), 10) + modMes;
    var dia   = parseInt(this.substring(f.indexOf('d'), f.lastIndexOf('d') + 1), 10) + modDia;
    var fecha = new Date(anyo, mes-1, dia);
    return fecha;
}

Date.prototype.ddmmyyyy = function() {
	var dia = this.getDate()  < 10 ? '0'+this.getDate()  : this.getDate();
	var mes = (this.getMonth()+1) < 10 ? '0'+(this.getMonth()+1) : this.getMonth()+1;
	var fecha = [dia,mes,this.getFullYear()].join('/');
	return fecha;
}

function setData(n,data,humana){

   var idBody = $("body").attr("id");

  document.getElementById('f1h-'+n).value=data;
  if(document.getElementById('fff-'+n))
	  document.getElementById('fff-'+n).value=(data+'').toDate('yyyymmdd').ddmmyyyy();

  if (document.getElementById('f1-'+n).tagName.toLowerCase() == "input") {

    document.getElementById('f1-'+n).value=humana;

  } else {

    document.getElementById('f1-'+n).innerHTML=humana;

  }

  

  if(n==1) {

    if (idBody != "ofertas") {

      $('#cal1').fadeOut("slow");

    } else {

      $("#cal2")[0].src='calendario.php?n=2&fecha='+document.getElementById('f1h-'+n).value+'&ftope='+document.getElementById('f1h-1').value;

    }

  }

  

  

  if(n==2 && $('#f1h-1').value!='' && $('#f1h-2').value!=''){

    if (idBody != "ofertas") {

      $('#cal2').fadeOut();

    } else {

      $("#botonVer")

        .css({"backgroundColor":"#7D6D4D"})

        .animate({"backgroundColor": "#00AFDB", "color": "#FFFFFF"}, 600);

    }

  }

}



function abreReserva(page) {

  if($("#f1h-1").val() && $("#f1h-2").val()){

    window.location = 'reservas2.php?fechaEntrada='+$('#f1h-1').val()+'&fechaSalida='+$('#f1h-2').val()+'&pagina='+page;

  } 

}



function abreReservaNew() {

  if($("#f1h-1").val() && $("#f1h-2").val()){

   $('#formReservas').submit();

  } 

  else return false;

}



function abreReservaDatas() {

  if($("#f1h-1").val() && $("#f1h-2").val()){

   return true;

  } 

  else return false;

}



function cambiarFormatoFecha (fechaPinchada) {

  if (document.getElementById("seleccion")) {

    $("#seleccion").attr("id", "anterior");

  }

  fechaPinchada.id="seleccion";

}



/*

 * -------------------------------------------------------------------------------- Visor de imagenes

*/

// Constantes implicadas en el proceso

var listaTh;

var imagenGr;

var limiteIzq;

var limiteDer;

var difLi;



function animarListaTh(direccion) {

  // paramos el evento si la tira de thumbs esta en movimiento

  if (listaTh.is(":animated") || $('#formAmigo').is(":visible")) return false; 

  

  // variables de la animaci�n

  var desplaz;

  var origen  = parseInt(listaTh.css("margin-left")); 

  

  switch (direccion) { // direccion puede ser un string de desplazamiento auto o un entero natural

    case "izq":

        desplaz = difLi * 2;

      break;

        case "der":

        desplaz = (-difLi) * 2;

      break;

    default:

        desplaz = direccion;

  }

  

  if (origen + desplaz <= limiteDer) {

    desplaz = limiteDer;

    $("#mostrarSig").css("opacity", 0.3);

  } else if (origen + desplaz >= limiteIzq) {

        desplaz = limiteIzq;

        $("#mostrarAnt").css("opacity", 0.3);

  } else {

        desplaz = (origen + desplaz) + "px";

    $("#mostrarSig, #mostrarAnt").css("opacity", 1);

    }

  listaTh.animate({

    marginLeft: desplaz

  });

  

}



$( function() { // Preparamos los eventos del visor

  listaTh   = $("#listThumb ul");

  imagenCont  = $("#visor > img");

      limiteIzq = 0;

      limiteDer = $("#listThumb").width() - listaTh.width();

      difLi     = listaTh.children().width() + parseInt(listaTh.children().css("margin-right"));

  

  $("#mostrarAnt")

      .css("opacity", 0.3)

      .click( function() {

      animarListaTh("izq");

            return false;

      });

  $("#mostrarSig")

      .click( function() {

        animarListaTh("der");

      return false;

      });

  if (listaTh.width <= $("#listThumb").width()) {

    $("#mostrarSig").css("opacity", 0.3)

  }



    // Se carga, en el 'input' con nombre 'srcFoto', la primera imagen que se muestra por defecto. Si no se haciera, no se adjuntar�a la foto (que sale por

    // defecto) en el correo.

    imagenSrc = $("#visor img").attr("src");

    $('input[name=srcFoto]').val(imagenSrc);





    listaTh.find("img").click ( function() {

    // paramos el evento si el link esta con clase "activo" o la imagen esta en movimiento

    if ($(this).hasClass("activo") || imagenCont.is(":animated") || $('#formAmigo').is(":visible")) return false;

    

    var imagenSrc;

    if( $(this) )

    {

        imagenSrc = $(this).attr("src");

    }

    else

    {

        imagenSrc = $("#listThumb .activo").attr("src");

    }

    

    $('input[name=srcFoto]').val(imagenSrc);



    listaTh.find(".activo").removeClass("activo");

    $(this).addClass("activo");   

        

    imagenCont.animate(

          {

          "opacity": 0

        }, function() {

      imagenCont.attr("src", imagenSrc);

      $("#descarga a").attr("href", imagenSrc.replace("/GALERIA/", "/originales/"));

      imagenCont.animate(

          {

            "opacity": 1

          }, 1500);

    });

    

    return false;

  });

});



/*                                                                                Tooltips (Tt)

 *---------------------------------------------------------------------------------------------

 */

$(function() {

    var posicionarTt = function(event) {

        var tPosX = event.pageX - 10;

        var tPosY = event.pageY - 35;

        $("div.tooltip").css({

            top: tPosY,

            left: tPosX

        });

    }

    

    var mostrarTt = function(event){

        $("div.tooltip").remove();

        var textoTt = (this.alt) ? this.alt : $(this).text();

        $("<div class='tooltip'>" + textoTt + "</div>")

           .appendTo("body");

        posicionarTt(event);

    }

    

    var ocultarTt = function() {

        $("div.tooltip").remove();

    }

    

    $(".conTt").hover(mostrarTt, ocultarTt).mousemove(posicionarTt);

});









/*                                                                Formulario de envio a un amigo

 *---------------------------------------------------------------------------------------------

 */



$(document).ready(function(){

$('#enviarFoto .delete').click(function(){

    $(this).parents('form').fadeOut("slow");

    return false;

  });



$('#mostrarAmigo').click(function(){

    $('#formAmigo').fadeIn("slow");

    return false;

  });

});





/*                                                                         Desplegables ofertas

 *---------------------------------------------------------------------------------------------

 */

function ampliarOferta(idOferta){

  var lastOpen = $("#lastOpen").val();

  

  if(lastOpen)

    {

    reducirOferta(lastOpen, idOferta);

  }

  else

    {

    abrirOferta(idOferta);

  }

}



function reducirOferta(lastOpen, idOferta)

{

    $("#calEntrada" + lastOpen).html("");

  $("#calSalida" + lastOpen).html("");

    

    $("html,body").animate({scrollTop: $("#offer" + lastOpen).offset().top - 400}, 2000, 

  function()

    {

        $("#extendido" + lastOpen).slideUp(500, 

    function()

    {

      $("#resumen" + lastOpen).fadeIn(100);

      if (idOferta)

            {

                $("#lastOpen").val(idOferta);

                abrirOferta(idOferta);

            }

            else

            {

                $("#lastOpen").val("");

            }

    });

    });

}



function abrirOferta(idOferta)

{ 

  var lang = $("#lang").val();

  

    $("html,body").animate({scrollTop: $("#offer" + idOferta).offset().top - 400}, 2000);

    

  $("#resumen" + idOferta).fadeOut(100, 

  function () {

    $("#loaderOfertas" + idOferta).show(function () {

      $.ajax({

        url    : "ofertasListado_ajax.php",

        data   : "id=" + idOferta + "&lang=" + lang,

        success: function(mens) 

                {

          $("#lastOpen").val(idOferta);

                    $("#loaderOfertas" + idOferta).hide();

          $("#extendido" + idOferta).html(mens)

          .slideDown(1000, 

                    function() 

                    {

            $("#calEntrada" + idOferta).html("<p><strong>Selecciona la fecha de entrada:</strong></p><iframe id=\"cal1\" class=\"cal\" frameborder=\"0\" scrolling=\"no\" AllowTransparency></iframe><p id=\"f1-1\">Entrada...</p>");

            $("#calSalida" + idOferta).html("<p><strong>Selecciona la fecha de salida:</strong></p><iframe id=\"cal2\" class=\"cal\" frameborder=\"0\" scrolling=\"no\" AllowTransparency></iframe><p id=\"f1-2\">Salida...</p>");

                        

                        $("html,body").animate({scrollTop: $("#offer" + idOferta).offset().top - 5}, 2000, 

            function () 

                        {

                            $("#cal1").attr("src", "calendario.php?n=1");

              $("#cal2").attr("src", "calendario.php?n=1");

            });

          })

        }

      });

    });

  });

}



function ofertasDestacados(lang)

{

  var colors = ["azul", "marron", "azul"];

  

  $.getJSON("js/ofertas.json.php?lang=" + lang, 

  function (json) {

        $.each(json.ofertas, 

    function (n, oferta) {
	
      if(oferta){

		  $("#destacado" + n).html("<h4 class=\"titGraf\">" + oferta.titulo + "</h4><p>" + oferta.descripcion + "</p><button class=\"" + colors[n] + "\" onclick=\"location.href='ofertasListado.php?id=" + oferta.id + "'\"><span class=\"titGraf\">go</span></button><div class=\"clear\"></div>");

		  $("#ofertaHome"+n).html("oferta");

	  }

	  })

        sustituirImagenes();

  })

}

