/*******Preload Img**************************************/
var myTab;
/*******Configuration galerie Accueil********************/
var delay_fadeIn = 400;
var delay_transition_fade = 500;
var delay_transition = 5000;
var zIndex_value = 35;
var nb_img_per_div;
var img_to_load = 1;
/*******Configuration galerie rooms & environment********/
var delay_hover_thumbnail = 400;
var delay_transition_background = 600;
var longer_pulsate_fullscreen = 700;
var delay_effect_fullscreen = 1000;
var transition_slide_time = 500;
var width_container_fs = 291;
var img_default_thumbnail = "";
var heigh_fly_box = 508;
var height_title_fs = 193;
/********Variables globales (modifiées)*******/
var first_fullscreen = false;
var multiple_slide = 0;
var nb_thumbnails = 12;
var bck_to_set_position;
//attention : le bck de (#header_fly h2) est différent en fonction de la rubrique
/******Config special rooms*******/
var margin_for_thumbnails_fs = "0 3px";
/*************Fin Config*****************/

$('document').ready(initSite);

function initSite()
{
  //gestion de l'ouverture de nouvelle fenetre
  $('.js_action').click(function()
  {
    window.open($(this).attr('href'));
    return false;
  });
  
  //gestion no click
  $(".no_action").click(function()
  {
    return false;
  });
  
  //gestion menu
  gestionMenu();
  
  //verif si on est sur la home
  if($('body').hasClass('home'))
  {
    galleryHome();
  }
  
  //verif si on est sur rooms ou environment
  if($('body').hasClass('rooms') || $('body').hasClass('environment') || $('body').hasClass('hotel'))
  {
    galleryInit();
  }
  
  //verif si on est sur contact
  if($("body").hasClass('contact'))
  {
    contactInit();
  }
  //on va chercher les images à préloader
  $.post("/ajax/getImgToLoad",
    function(data)
    {
      for(key in data)
      {
        preloadImage(data[key]);
      }
    }
  );
  
  //config highslide
  hs.src = "/swf/videoplayer.swf" ;
  hs.graphicsDir = '/img/highslide/';
  hs.preserveContent = false;
  hs.showCredits = false;
  hs.registerOverlay({overlayId:'close_overlay',position: 'top right',useOnHtml:true}) ;
  hs_params ={ wrapperClassName: 'no-footer no-move',objectType: 'swf',objectWidth: 324, objectHeight: 289, width:324,dimmingOpacity:0.8,align:'center',allowSizeReduction:false}
  $("#video_btn").click
  (
    function()
    {
      url_to_load = $(this).attr('href');
      hs.htmlExpand(this,hs_params);
      $(".overlay_box_close").click(closeVideo);
      return false;
    }
  ); 
  
  $("#top_link_swf").click
  (
    function()
    {
      url_to_load = $(this).attr('href');
      hs.htmlExpand(this,hs_params);
      $(".overlay_box_close").click(closeVideo);
      return false;
    }
  ); 
}

function gestionMenu()
{
  $('#menu_left li:last-child').addClass('last_child_menu');
  var classBody = $("body").attr('class');
  $("#"+classBody+"_cat").addClass('active_cat');
  
  $("#menu_left li").mouseover(
    function()
    {
      $('.active_cat').removeClass('active_cat');
    }
  );
  $("#menu_left li").mouseout(
    function()
    {
      $("#"+classBody+"_cat").addClass('active_cat');
    }
  );
}
/**************************************Home************************************/
function galleryHome()
{
  
  //affichage en serie des images
  $("#left_gal_acc").css('zIndex',6).fadeTo(delay_fadeIn,1,
    function()
    {
      $("#center_gal_acc").css('zIndex',6).fadeTo(delay_fadeIn,1,
        function()
        {
          $("#right_gal_acc").css('zIndex',6).fadeTo(delay_fadeIn,1,
            function()
            {
              $('#promo_box').css('zIndex',8).fadeTo(delay_fadeIn,1);
            }
            );
        }
      );
    }
  );
  //on définit les z-index pour chacune des images
  $(".gallery_home img:first-child").attr('class','active firstImg');
  $("#left_gal_acc img").each
  (
    function(i)
    {
      $(this).css({zIndex:zIndex_value-5*i,opacity:1});
    }
  );
  
  $("#center_gal_acc img").each
  (
    function(i)
    {
      $(this).css({zIndex:zIndex_value-5*i,opacity:1});
    }
  );
  
  $("#right_gal_acc img").each
  (
    function(i)
    {
      $(this).css({zIndex:zIndex_value-5*i,opacity:1});
    }
  ); 
  
  //on récupère le nombre d'images par div
  nb_img_per_div = $(".gallery_home img").length / 3;
  
  //on définit le timing
  setInterval('transfertImg()',delay_transition);
}

function transfertImg()
{
  //on dis à l'image qu'on veux afficher de passer en block
  $("#left_gal_acc img:eq("+img_to_load+")").css('display','block');
  $("#center_gal_acc img:eq("+img_to_load+")").css('display','block');
  $("#right_gal_acc img:eq("+img_to_load+")").css('display','block');
  
  //on cache tout les enfants précédents
  if(img_to_load < nb_img_per_div)
  {
    $("#left_gal_acc img.active").fadeTo(delay_transition_fade,0,
      function()
      {
        $(this).next().attr('class','active');
        $(this).removeClass('active');
        $("#center_gal_acc img.active").fadeTo(delay_transition_fade,0,
        function()
        {
          $(this).next().attr('class','active');
          $(this).removeClass('active');
          $("#right_gal_acc img.active").fadeTo(delay_transition_fade,0,
            function()
            {
              $(this).next().attr('class','active');
              $(this).removeClass('active');
              
            });
        });
      });
      img_to_load++;
  }
  else
  {
    $(".gallery_home img.active").removeClass("active");
    $("#left_gal_acc img.firstImg").fadeTo(delay_transition_fade,1,
      function()
      {
        $(this).addClass('active');
        $("#center_gal_acc img.firstImg").fadeTo(delay_transition_fade,1,
        function()
        {
          $(this).addClass('active');
          $("#right_gal_acc img.firstImg").fadeTo(delay_transition_fade,1,
            function()
            {
                $(this).addClass('active');
                $(".gallery_home img:not(.active)").css('opacity','1');
            });
        });
      });
      img_to_load = 1;
  }
}
/***************************Environment && Rooms*******************************/
function galleryInit()
{
  //initialisation Galerie
  if($('body').hasClass('rooms'))
  {
    $("#thumbnails a:nth-child(4n+1)").css('marginLeft','0'); 
  }
  if($('body').hasClass('environment'))
  {
    heigh_fly_box = 530;
    //$("#thumbnails a:nth-child(2n+1)").addClass('marginOk').css('marginRight','48px');
  }
  $("#thumbnails a:first-child").addClass('active_thumb');
  $("#thumbnails a:not(:first-child)").each(
    function()
    {
      $(this).children('img').css('opacity','0.6');
    }
  );
  //on récupère le nombre de miniatures
  nb_thumbnails = $("#thumbnails img").length;
  
  //définition écouteurs sur les thumbnails
  $("#thumbnails a").mouseenter(thumbnailsHover);
  $("#thumbnails a").mouseleave(thumbnailsOut);
  $("#thumbnails a").click(viewPicture);
  
  //définition de l'écouteur sur le btn fullscreen
  $("#reduct_btn").click(setModeFullScreen);
  //on créer les div qui nous servirons pour les effets
  $("<div class='background_gallery'></div><div class='background_gallery'></div><div id='container_fs'></div>").appendTo('#text');
  if(nb_thumbnails/4 > 1)
  {
    $("<a class='control_gallery' id='control_left' href='#'></a><a class='control_gallery' id='control_right' href='#'></a>").css('opacity',0.8).appendTo('#text');
  }
  //on créer un z-index sur chacun (correction bug IE)
  $('.background_gallery').each(function(i){$(this).css('zIndex',25+i*2)});
  //on récupère le background affiché par défauts
  var bg_default = $("#text").css('backgroundImage');
  img_default_thumbnail = bg_default;
  $(".background_gallery:first").css('backgroundImage',bg_default).addClass('active_background').fadeIn();
}

/***************************Gestion dans le fly : Mode no fullscreen************/
function thumbnailsHover()
{
  if(!$(this).hasClass('active_thumb'))
    $(this).children('img').fadeTo(delay_hover_thumbnail,1);
    
  return false;
}

function thumbnailsOut()
{
  if(!$(this).hasClass('active_thumb'))
    $(this).children('img').fadeTo(delay_hover_thumbnail,0.6);
    
  return false;
}

function thumbnailsOutFs()
{
  if(!$(this).hasClass('active_thumb'))
    $(this).children('img').fadeTo(delay_hover_thumbnail,0.7);
    
  return false;
}

function viewPicture()
{
  if(!$(this).hasClass('active_thumb'))
  {
      //on gère l'activation de la vignette et on insert le loader
      var parentThumb = $(this).parent().attr('id');
      if(parentThumb == "thumbnails_fs")
      {
        $('.active_thumb').removeClass('active_thumb').children('img').fadeTo(delay_hover_thumbnail,0.7);
      }
      else
      {
        $('.active_thumb').removeClass('active_thumb').children('img').fadeTo(delay_hover_thumbnail,0.6);
      }
      $(this).fadeTo(delay_hover_thumbnail,0.6).append('<span id="loader"></span>').addClass('active_thumb');
      //on gère le bouton fullscreen #reduct_btn
      //$("#reduct_btn").effect('pulsate',longer_pulsate_fullscreen,function(){$(this).removeAttr("filter"); });  
      
      //on récupère l'url du background
      var url_to_load = $(this).attr('href');
      //on créer apelle l'image via l'objet IMAGE (loader)
      var img_loader = new Image();
      img_loader.src = url_to_load;
      //ready car load no compatible with IE
      $(img_loader).ready( 
      function()
      {
        $('.background_gallery:not(.active_background)').css('backgroundImage','url('+url_to_load+')').attr('active','yes').fadeTo(delay_transition_background,1,
        function()
        {
          $("#loader").parent().addClass('active_thumb').fadeTo(delay_hover_thumbnail,1);
          $("#loader").remove();
          $('.active_background').removeClass('active_background').fadeTo(delay_transition_background,0);
          $('.background_gallery[active=yes]').addClass('active_background').removeAttr('active');
        }
        );
      }); 
  }
  return false;
}

/************************Gestion mode fullscreen*********************************/
function setModeFullScreen()
{
  //si condition ok : on passe en mode fullScreen. Sinon on repasse en mode normal
  if(!$(this).hasClass('activeFullScreen'))
  {
    $(this).addClass('activeFullScreen');
    //on cache tout ce qu'il dépasse
    $("#fly_box").css('overflow','hidden');
    //on bouge le header
    bck_to_set_position = $("#header_fly h2").css('backgroundImage');
    //console.log(bck_to_set_position);
//    if($('body').hasClass('rooms'))
//    {
//      $("#header_fly h2").css({background:bck_to_set_position+' no-repeat scroll 28px -10px transparent'}); 
//    }
//    else
//    {
//      $("#header_fly h2").css({background:bck_to_set_position+' no-repeat scroll 14px 0 transparent'}); 
//    }
    //on réduit la box
    $("#fly_box").animate({height:height_title_fs+"px"},delay_effect_fullscreen,
    function()
    {
      //on masque le content
      $("#content_fly,#footer_fly").fadeOut();
      //console.log('passee');
      //on applique la taille au container des images
      var width_for_thumbnails = parseInt($("#thumbnails img").outerHeight())*parseInt($("#thumbnails img").length)+200;
      //on copie les miniatures dans content_fly
      var thumbnails = $("#thumbnails").clone().attr('id','thumbnails_fs').css({display:'none',position:'relative'});
      $("#container_fs").append(thumbnails);
      //$("#thumbnails_fs a.marginOk").css('marginRight','4px');
      $("#thumbnails_fs a img").each
      (
        function()
        {
          if(!$(this).parent().hasClass('active_thumb'))
          {
            $(this).css('opacity','0.7'); 
          }
        }
      );
      $("#thumbnails_fs a").mouseenter(thumbnailsHover);
      $("#thumbnails_fs a").mouseleave(thumbnailsOutFs);
      $("#thumbnails_fs a").click(viewPicture); 
      if(!first_fullscreen)
      {
        $(".control_gallery").click(slideThumbnails);
      }
      $(".control_gallery").mouseover(function(){$(this).fadeTo(delay_hover_thumbnail,1);});
      $(".control_gallery").mouseout(function(){$(this).fadeTo(delay_hover_thumbnail,0.8);});
      $("#thumbnails_fs").css('width',width_for_thumbnails+"px")
      
      //on copy le bouton reservé
      var btn_reserve_fs = $("#footer_fly").clone().attr('id','btn_reserve_fs').css({display:'none'});
      $(btn_reserve_fs).appendTo("#text");
      $("#btn_reserve_fs a").click(function()
      {
        window.open($(this).attr('href'));
        return false;
      });
      $("#btn_reserve_fs a").css('opacity','0.9');
      $("#btn_reserve_fs a").mouseover(function(){$(this).fadeTo(delay_hover_thumbnail,1);});
      $("#btn_reserve_fs a").mouseout(function(){$(this).fadeTo(delay_hover_thumbnail,0.9);});
      //on les fait apparaitres
      $("#container_fs,#btn_reserve_fs").fadeTo(delay_effect_fullscreen,1);
      $("#thumbnails_fs").fadeTo(delay_effect_fullscreen,1);
      $(".control_gallery").fadeIn();
      //on dit que le fullscreen a déjà été enclenché une fois
      first_fullscreen = true;
    }
    );
  }
  else
  {
    //on cache le fullscreen
    $(".control_gallery,#btn_reserve_fs").fadeOut();
    $("#thumbnails_fs").fadeTo(delay_effect_fullscreen,0,
      function()
      {
           //on cache le container
           $("#container_fs").css('display','none');
          //on ré init la galery fly
          var thumbnailClassActive = $("#thumbnails_fs .active_thumb").removeClass('active_thumb').attr('class');
          //console.log(thumbnailClassActive);
          $("#thumbnails ."+thumbnailClassActive).addClass('active_thumb').children('img').css('opacity','1');
          //ré init de la galerie en FS
          $("#btn_reserve_fs").remove();
          $("#container_fs").empty();
          multiple_slide = 0;
          //on fait apparaitre le tout          
          $("#fly_box").animate({height:heigh_fly_box+"px"},delay_effect_fullscreen,
           function()
           {
//             if($('body').hasClass('rooms'))
//             {
//               $("#header_fly h2").css({background:bck_to_set_position+' no-repeat scroll 0 center transparent'});
//             }
//             else
//             {
//               $("#header_fly h2").css({background:bck_to_set_position+' no-repeat scroll 14px 10px transparent'});
//             }
             $("#content_fly,#footer_fly").fadeIn();
             $('.activeFullScreen').removeClass('activeFullScreen');
           }
          );  
      }    
    );
  }
  return false;
}

function slideThumbnails()
{ 
      if($(this).attr('id') == "control_left")
      {
        multiple_slide--;
        if(multiple_slide>=0)
        {
          var goTo = width_container_fs*multiple_slide;
          $("#thumbnails_fs").animate({marginLeft:-goTo+"px"},transition_slide_time);
          //console.log('slide left et value :'+goTo+" et multiplicateur :"+multiple_slide); 
        }
      }
      else
      {
        if(multiple_slide<0){multiple_slide=0;}
        if(multiple_slide<((nb_thumbnails/4)-1))
        { 
          multiple_slide++; 
          $("#thumbnails_fs").animate({marginLeft:-width_container_fs*multiple_slide+"px"},transition_slide_time);
          //console.log('slide right et value :'+width_container_fs*multiple_slide+" et multiplicateaur :"+multiple_slide); 
        }
         
      }
      return false;
}
/************************************Contact**************************************************/
function contactInit()
{
  //on initialise l'overlay
  $("#overlay").css('opacity','0.7');
  //on place une variable nous permettant de savoir si les champs on été remplis
  $("#form_contact .row .obligatory").each
  (
      function()
      {
          $(this).parent().parent().children('input').addClass('obligatoryInput').attr('envoieForm','false');
          $(this).parent().parent().children('textarea').addClass('obligatoryInput').attr('envoieForm','false');
      }
  );
  //definition des ecouteurs
  $("#form_contact .obligatoryInput").blur(verifyInput);
  $("#form_contact").submit(sendMail);
  //on déplace le plan d'accès dans la div text et on l'affiche
  $("#access_plan").appendTo("#text").fadeIn();
  //on met le curseur dans le premier input
  $("#name_id").focus();
}

function verifyInput()
{
  var id_to_test = $(this).attr("id");
  var result_test = id_to_test.match('mail');
  if (result_test == "mail")
  {
    var addMail = $(this).attr("value");
    var validMail = verifyMail(addMail);
    if (validMail)
    {
      $(this).css({border:'1px solid #D4D4D4',color:'#5B5B5B'});
      $(this).parent().children('label').css('color','#5B5B5B').children('.obligatory').css('color','#5B5B5B');
      $(this).attr("envoieForm","true");
    }
    else
    {
       $(this).css({border:'1px solid red',color:'red'});
       $(this).parent().children('label').css('color','red').children('.obligatory').css('color','red');
       $(this).attr("envoieForm","false");
    }
  }
  else
  {
    var user_entry = $(this).attr('value');
    if(user_entry != "" && user_entry != null)
    {
      $(this).css({border:'1px solid #D4D4D4',color:'#5B5B5B'});
      $(this).parent().children('label').css('color','#5B5B5B').children('.obligatory').css('color','#5B5B5B');
      $(this).attr("envoieForm","true");
      //console.log('Input Vrai avec valeur :'+user_entry);
    }
    else
    {
      $(this).css({border:'1px solid red',color:'red'});
      $(this).parent().children('label').css('color','red').children('.obligatory').css('color','red');
      $(this).attr("envoieForm","false");
      //console.log('Input False avec valeur :'+user_entry);
    }
  }
  return false;
}

function sendMail()
{
  //Verification que tout est bien remplis
  var nb_obligatory_input = $(".obligatory").length;
  authEnvoie = null;
  $("#form_contact .row .obligatoryInput").each
  (
    function()
    {
      var valeurInput = $(this).attr("envoieForm");
      if (valeurInput == "true")
      {
         if (authEnvoie != false || authEnvoie == null){authEnvoie = true;}
      }
      else
      {
          authEnvoie = false;
      }
    }
 );  
  if(authEnvoie)
  {
    entry_user = new Array();
    //on récupère les informations
    $('.obligatoryInput').each
    (
    function()
    {
      entry_user.push($(this).attr('value')); 
    }
    );
    
    //on affiche l'overlay
    $("#overlay").slideDown();
    
    //on envoie en ajax
    $.post('/ajax/sendAjaxMail',$('#form_contact').serialize(),
      function(data)
      {
        if(data.response)
        {
          $("#content_fly #container_form").fadeOut();
          $(data.confirmMsg).css('display','none').appendTo("#content_fly");
          $(".confirm_msg").fadeIn();
          $("#overlay").slideUp();
        }
        if(data.errors != "")
        {
          $(data.errors).appendTo("#overlay");
          setInterval(function(){$("#overlay").slideUp();$("#overlay p").remove();},delay_transition);
        }
      }
    );
  }
  else
  {
    //console.log('pas d\'envoie');
  }
  return false;  
}

function verifyMail(mail)

{
  var reg = new RegExp('^[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*@[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*[\.]{1}[a-z]{2,6}$', 'i');

  if(reg.test(mail))
  {
    return(true);
  }
  else
  {
    return(false);
  }
}

function form_input_is_int(input){
    return !isNaN(input)&&parseInt(input)==input;
  }

/************************************Chargement Image Preload*********************************/
function preloadImage(srcPict)
{
  var myPict = new Image();
  myPict.src = srcPict;
}

function closeVideo()
{
  hs.close();
}

