"use strict";
/*  Le Phare JavaScript library - (c) 2009
/*--------------------------------------------------------------------------*/

var Loader = Class.create({
   initialize: function(element) {
      if($(element)) {
         this.idBody = element;
         this.registerGenerics();  // call generics f°
         this.registerSpecifics(); // call specificsf°
      }
      else {
         alert('ATTENTION\nLa balise body n\'a pas d\'id !');
      }
   },

   registerGenerics: function() {
         maFonctionPanier();
         gestionNewsletter();
         if($('jsVotreEmail'))
         {
            Event.observe('jsVotreEmail','click', function(){
               var obj = $('jsVotreEmail');
               if(obj.value==obj.title) obj.value="";  
            });
            Event.observe('jsVotreEmail','blur', function(){
               var obj = $('jsVotreEmail');
               if(obj.value=='') obj.value=obj.title;  
            });
         }
         // pour la recherche de location 
         if($('jsFormSearchLocation'))
         {
            Event.observe('jsFormSearchLocation', 'submit', function(e){ 
                  var hebergement = '';
                  
            $$('input[name="type_hebergement"]').each(function(obj){
               if(obj.checked)
                    hebergement = obj.value;
               });
               
               if($('jsLocationOptRegion').value == 0 && $('jsLocationOptDestination').value== 0 && hebergement=='')
               {
                  alert('Merci de sélectionner un critère de recherche (Région, Destination ou Hébergement).');
                  e.stop();
               }else
                  locationRecherche();
            
            });
         }
   },

   registerSpecifics: function() {
         switch (this.idBody) {
            case 'pageFAQ':
               faq_open_close();
            break;
            case 'pageDesinscription':
               initDesinscription();
            break;

            case 'locationMerInfos':
            case 'locationMerDetailsHbgt':
            case 'locationMerAcces':
            case 'locationMerResa':
               initMiniMap();
               Init_Carroussel();
            break;
            case 'groupesAccueil':
            case 'groupesFiche':
               menu_CS_init();
            break;
            case 'pageBrochures':
               initContact();
            break;
            case 'pageAvisClients':
               StarBox = new StarBox(1,'','id_rating');
            case 'pageNousContacter':
            
            case 'pageContact':
            case 'pageContactSelection':
            case 'pageAboNewsletter':


               initContact();
            break;
            case 'pageDemandeKdocean':

               initContact();

               (function($){
                  var monContainer  = $('#jsChild_age'),
                      monClone      = monContainer.find('li').clone();
                  $('#dem_info_nbr_enfant').keyup(function(){
                     var obj   = $(this),
                         val   = obj.val() || 0;
                         count = monContainer.find('li').length;

                     if (val == '0') {
                        monContainer.hide().find('ul').empty();
                        return;
                     }

                     monContainer.show();
                     if(count < val)
                     {
                        while( count < val){
                           $('ul', monContainer).append(monClone.clone());
                           count++;
                        }
                     } else {
                       $('li', monContainer).each(function(idx) {
                           if (idx + 1 > val) {
                              $(this).remove();
                           }
                       });
                     }
                  });
               })(jQuery)

            break;
            case 'pageContactLocaMerMontagne':
               initContact();
               initCalendar();
            break;
            case 'pageContactLocaFluvial':
               initContact();
               initCalendar();
            break;
            case 'pageContactCourtsSejours':
            case 'pageContactParcsThemes':
               initContact();
               declareChildAgeEvent();
               initCalendar();
            break;
            case'pageContactGroupes':
               initContact();
               initTransport();
               declareChildAgeEvent();
            break;
            case 'pageContactCadeaux':
               initContact();
               declareChildAgeEvent();
            break;
            case 'courtsSejoursFiche':
               menu_CS_init();
               initSejourCarte();
               Init_Carroussel();
            break;
            case 'pageFicheKdo':
               pageFicheKdo();
            break;
            case 'pagePlanSiteNew':
               initPlanSite();
            break;
            case 'pageFicheSpectaclePdf':
               pageSpectaclePuyDuFou();
            break;
            
            case 'locationAccueil':
               refreshDestination();

              
               (function($) {
                  $("div#controller").jFlow({
                     slides: "#slides",
                     width: "460px",
                     height: "270px"
                  });
               })(jQuery);
            break;
            case "locationSearch":
            // si une région est séléctionné on rafraichi
               if($('jsLocationOptRegion') && $('jsLocationOptRegion').value!=0)
                  refreshDestination();

                  
               if($('filter_limit') && $('filter_order_by'))
               {
                  // si on touche au filtre determinant la limit
                  Event.observe('filter_limit','change',function(){
                     locationRecherche();
                     $('jsFilterLimit').value = $('filter_limit').value;
                     $('jsFormSearchLocation').submit();
                  }); 
                  // si on touche au filtre determinant l'ordre 
                  Event.observe('filter_order_by','change',function(){
                     locationRecherche();
                     $('jsFilterOrderBy').value = $('filter_order_by').value;  
                     $('jsFormSearchLocation').submit();      
                  }); 
               }
            break;            
         }
   }
});


// load
Event.observe(window, 'load', function() {
   var loader = new Loader(document.body.id);
});
function str_replace (search, replace, subject, count) {
    // Replaces all occurrences of search in haystack with replace  
    // 
    // version: 1107.2516
    // discuss at: http://phpjs.org/functions/str_replace    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Gabriel Paderni
    // +   improved by: Philip Peterson
    // +   improved by: Simon Willison (http://simonwillison.net)
    // +    revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)    // +   bugfixed by: Anton Ongson
    // +      input by: Onno Marsman
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +    tweaked by: Onno Marsman
    // +      input by: Brett Zamir (http://brett-zamir.me)    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   input by: Oleg Eremeev
    // +   improved by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Oleg Eremeev
    // %          note 1: The count parameter must be passed as a string in order    // %          note 1:  to find a global variable in which the result will be given
    // *     example 1: str_replace(' ', '.', 'Kevin van Zonneveld');
    // *     returns 1: 'Kevin.van.Zonneveld'
    // *     example 2: str_replace(['{name}', 'l'], ['hello', 'm'], '{name}, lars');
    // *     returns 2: 'hemmo, mars'    var i = 0,
      
    var j = 0,
        temp = '',
        repl = '',
        sl = 0,        
        fl = 0,
        f = [].concat(search),
        r = [].concat(replace),
        s = subject,
        ra = Object.prototype.toString.call(r) === '[object Array]',        
        sa = Object.prototype.toString.call(s) === '[object Array]';
    
    s = [].concat(s);
    if (count) {
        this.window[count] = 0;
    } 
    for (i = 0, sl = s.length; i < sl; i++) {
        if (s[i] === '') {
            continue;
        }        for (j = 0, fl = f.length; j < fl; j++) {
            temp = s[i] + '';
            repl = ra ? (r[j] !== undefined ? r[j] : '') : r[0];
            s[i] = (temp).split(f[j]).join(repl);
            if (count && s[i] !== temp) {                
               this.window[count] += (temp.length - s[i].length) / f[j].length;
            }
        }
    }
    return sa ? s : s[0];
}
function substr (str, start, len) {
    // Returns part of a string  
    // 
    // version: 909.322
    // discuss at: http://phpjs.org/functions/substr
    // +     original by: Martijn Wieringa
    // +     bugfixed by: T.Wild
    // +      tweaked by: Onno Marsman
    // +      revised by: Theriault
    // +      improved by: Brett Zamir (http://brett-zamir.me)
    // %    note 1: Handles rare Unicode characters if 'unicode.semantics' ini (PHP6) is set to 'on'
    // *       example 1: substr('abcdef', 0, -1);
    // *       returns 1: 'abcde'
    // *       example 2: substr(2, 0, -6);
    // *       returns 2: false
    // *       example 3: ini_set('unicode.semantics',  'on');
    // *       example 3: substr('a\uD801\uDC00', 0, -1);
    // *       returns 3: 'a'
    // *       example 4: ini_set('unicode.semantics',  'on');
    // *       example 4: substr('a\uD801\uDC00', 0, 2);
    // *       returns 4: 'a\uD801\uDC00'
    // *       example 5: ini_set('unicode.semantics',  'on');
    // *       example 5: substr('a\uD801\uDC00', -1, 1);
    // *       returns 5: '\uD801\uDC00'
    // *       example 6: ini_set('unicode.semantics',  'on');
    // *       example 6: substr('a\uD801\uDC00z\uD801\uDC00', -3, 2);
    // *       returns 6: '\uD801\uDC00z'
    // *       example 7: ini_set('unicode.semantics',  'on');
    // *       example 7: substr('a\uD801\uDC00z\uD801\uDC00', -3, -1)
    // *       returns 7: '\uD801\uDC00z'
    // Add: (?) Use unicode.runtime_encoding (e.g., with string wrapped in "binary" or "Binary" class) to
    // allow access of binary (see file_get_contents()) by: charCodeAt(x) & 0xFF (see https://developer.mozilla.org/En/Using_XMLHttpRequest ) or require conversion first?
    var i = 0,
        allBMP = true,
        es = 0,
        el = 0,
        se = 0,
        php_js = {},
        ret = '';
    str += '';
    var end = str.length;

    // BEGIN REDUNDANT   
    php_js =  {};
    php_js.ini = {};
    // END REDUNDANT
    switch ((php_js.ini['unicode.semantics'] && php_js.ini['unicode.semantics'].local_value.toLowerCase())) {
    case 'on':
        // Full-blown Unicode including non-Basic-Multilingual-Plane characters
        // strlen()
        for (i = 0; i < str.length; i++) {
            if (/[\uD800-\uDBFF]/.test(str.charAt(i)) && /[\uDC00-\uDFFF]/.test(str.charAt(i + 1))) {
                allBMP = false;
                break;
            }
        }

        if (!allBMP) {
            if (start < 0) {
                for (i = end - 1, es = (start += end); i >= es; i--) {
                    if (/[\uDC00-\uDFFF]/.test(str.charAt(i)) && /[\uD800-\uDBFF]/.test(str.charAt(i - 1))) {
                        start--;
                        es--;
                    }
                }
            } else {
                var surrogatePairs = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g;
                while ((surrogatePairs.exec(str)) != null) {
                    var li = surrogatePairs.lastIndex;
                    if (li - 2 < start) {
                        start++;
                    } else {
                        break;
                    }
                }
            }

            if (start >= end || start < 0) {
                return false;
            }
            if (len < 0) {
                for (i = end - 1, el = (end += len); i >= el; i--) {
                    if (/[\uDC00-\uDFFF]/.test(str.charAt(i)) && /[\uD800-\uDBFF]/.test(str.charAt(i - 1))) {
                        end--;
                        el--;
                    }
                }
                if (start > end) {
                    return false;
                }
                return str.slice(start, end);
            } else {
                se = start + len;
                for (i = start; i < se; i++) {
                    ret += str.charAt(i);
                    if (/[\uD800-\uDBFF]/.test(str.charAt(i)) && /[\uDC00-\uDFFF]/.test(str.charAt(i + 1))) {
                        se++; // Go one further, since one of the "characters" is part of a surrogate pair
                    }
                }
                return ret;
            }
            break;
        }
        // Fall-through
    case 'off':
        // assumes there are no non-BMP characters;
        //    if there may be such characters, then it is best to turn it on (critical in true XHTML/XML)
    default:
        if (start < 0) {
            start += end;
        }
        end = typeof len === 'undefined' ? end : (len < 0 ? len + end : len + start);
        // PHP returns false if start does not fall within the string.
        // PHP returns false if the calculated end comes before the calculated start.
        // PHP returns an empty string if start and end are the same.
        // Otherwise, PHP returns the portion of the string from start to end.
        return start >= str.length || start < 0 || start > end ? !1 : str.slice(start, end);
    }
    return undefined; // Please Netbeans
}

function gestionNewsletter()
{
   if($('votreEmail2'))
   {
        Event.observe('votreEmail2','focus',function(){
            if($('votreEmail2').value == 'Votre e-mail')
            {
               $('votreEmail2').value = '';
            }
      });
      Event.observe('votreEmail2','blur',function(){
         if($('votreEmail2').value == '')
         {
            $('votreEmail2').value = 'Votre e-mail';
         }
      });
   }

   if($('votreEmail'))
   {
        Event.observe('votreEmail','focus',function(){
            if($('votreEmail').value == 'Votre e-mail')
            {
               $('votreEmail').value = '';
            }
      });
      Event.observe('votreEmail','blur',function(){
         if($('votreEmail').value == '')
         {
            $('votreEmail').value = 'Votre e-mail';
         }
      });
   }

   if($('zeFormNewsletter'))
      var zeFormNewsletter = new Validation('zeFormNewsletter', {
         useTitles:true,   // pour utiliser les titles des champs comme message d’erreur
         stopOnFirst:true, // arête à la premiere erreur
         onFormValidate:  // definie la function qui permet d’empeche l’envoie du form sans js et donc sans verif
            function() {

            }
         });

}
function maFonctionPanier()
{
   if($('jsMySel'))
   {
      Event.observe('jsMySel'          ,'click',function(){if( $('maSelection').visible())new Effect.BlindUp('maSelection');});

      Event.observe('jsMySelectionOpen','click',function(){if(!$('maSelection').visible())new Effect.BlindDown('maSelection'); });
   }

}

function locationRecherche()
{
       var url             = '/fr/location/sejour-hebergement-destination-region_R_codedestination_coderegion.html',                           
           hebergement     = '',
           destination     = '',
           codedestination = '',
           coderegion      = '',
           region          = '';
//                       e.stop();    
      
           
      if($('jsLocationOptRegion').value != 0)
      {
         $('jsLocationOptRegion').descendants().each(function(obj){
            if(obj.selected)
            {
               region       = obj.innerHTML;
               region       = '-' + str_replace ('\'','',str_replace (' ', '-',region.toLowerCase()));
               coderegion   = obj.value; 
            }
         });
      }
      
      
      if($('jsLocationOptDestination').value != 0)
      {
         $('jsLocationOptDestination').descendants().each(function(obj){
            if(obj.selected)
            {
               destination       = obj.innerHTML;
               destination       = '-'+str_replace ('\'','-',substr (str_replace (' ', '-', destination.toLowerCase()),0,-5));
               codedestination   = obj.value; 
            }
         });                          
      }
      
      if($$('input[name="type_hebergement"]'))
      {
         $$('input[name="type_hebergement"]').each(function(obj){
            if(obj.checked)
                hebergement = '-'+obj.value;
         });
      }
      
      url = url
            .replace('-hebergement',       hebergement)
            .replace('-destination',       destination)
            .replace('-region',            region)
            .replace('coderegion',        coderegion)
            .replace('codedestination',   codedestination);
      
      if(coderegion == '' && codedestination == '')
      {
           url = url.replace('_R__', '');
      }      



      $('jsFormSearchLocation').action = url;
}

var tab_Sejour = new Array;
var nbJour = 0;
var nbNuit = 0;

/*--------------------------------------------------------------------------*/
function initSejourCarte()
{
   $$('span.jslisteChoixSejour').each(function(obj){
         Event.observe(obj, 'click', function(obj1) {
            var elt = Event.element(obj1);
            if($('sous'+elt.id).visible())
            {
                $('sous'+elt.id).hide();
                $('jsDescription').update('');
            }
            else
            {

               $('jsDescription').update($('jsDesc_'+elt.id.replace('NavListChoix_','')).innerHTML);
               $$('span.jslisteChoixSejour').each(function(Sobj){
                  $('sous'+Sobj.id).hide();
               });
               $('sous'+elt.id).show();
            }
         });
   });
   init_Supp();
   // gestion de l'ajout de sejour
   $$('.jsALaCarte').each(function(obj){
      Event.observe(obj,'click',function(SuperObj){
         // on recupére l'id contenu dans l'id
         var monId = obj.id.replace('ALACARTE_','');
         // on chope directement le script via fr pke comme ca le conf est def
         var url_lst_script = '/fr/s06_catalogue/s06p08_courts_sejours_carte_ajax.php';
         // là on passe le paramètre pour ... la requete derriere.
         var params = 'ajax=true&id_carte_produit=' + monId;
         // on lance (je ne sais où)la requette
         //obj.disable();
         new Ajax.Request(url_lst_script, {
               parameters : params,
               method: 'post',
               onSuccess: function(transport) {
                     /// on récupére les donnés
                     var myObject = transport.responseText.evalJSON().evalJSON();
                     nbtab = tab_Sejour.length;
                     bool_Continute = true;
                     bool_trouver = false;
                     // si on a plus d'un élément on tourne sur le tableau et vérifie les comptabilités
                     if(nbtab>0)
                     {  // on récupére la derniére lettre du dernier enregistrement.
                        chaine = tab_Sejour[nbtab-1].description;
                        lastLetter = chaine.substr(chaine.length-1,1);
                        // on récupére la premiére lettre du nouveau séjour à ajouter
                        newChaine = myObject.description;
                        firstLetter = newChaine.substr(0,1);
//                         /// on vérifie si la premiere et la derniere
//                         if(firstLetter == lastLetter)
//                         {
//
//                            if(myObject.alternatif!=false)
//                            {
//                               //on défini ici qu'on a affaire à l'id alternatif
//                               objB = {id: myObject.id + '_b'};
//                               Object.extend(myObject, objB);
//                               newChaine = myObject.alternatif;
//                               firstLetter = newChaine.substr(0,1);
//                            }
//                            else
//                            {
//                               bool_Continute = false;
//                            }
//                         }
//                         else
//                         {//on défini ici qu'on a affaire à l'id classique
//
//                         }
//
//                         // -------------------------------------------------------
//                         // on tourne sur le tableau pour vérifier que l'id n'est pas déjà présent
//                         for(i=0;i<nbtab;i++)
//                         {
//                            if(tab_Sejour[i].id==myObject.id)
//                            {
//                               bool_trouver = true;
//                            }
//                         }
//                         // calcul type de jour à ajouter aprés
//                         switch(lastLetter)
//                         {
//                            case 'J':
//                               Jour = 'une Nuit';
//                            break;
//                            case 'N':
//                               Jour = 'un Jour';
//                            break;
//
//                         }
                      }
                     if(( parseInt(nbJour,10) + parseInt(myObject.NbJour,10) <=6) && (parseInt(nbNuit,10)+ parseInt(myObject.NbNuit,10) <=5))
                     {
                        if(!bool_trouver)// si on ne la pas déjà inserer
                        {

                           if(bool_Continute) // si il ne correspond pas à la continuité quoi c'est pas clair?
                           {

                              tab_Sejour[nbtab] = myObject;

                              nbJour = parseInt(nbJour,10) + parseInt(myObject.NbJour,10);
                              nbNuit = parseInt(nbNuit,10)+ parseInt(myObject.NbNuit,10);
                           }
                           else
                           {
                              alert('Attention : Ce séjour n\'est pas compatible avec le précédent. ');
                              return false;
                           }
                        }
                        else
                        {
                           alert('Attention : Vous avez déjà sélectionné ce séjour !')
                           return false;
                        }

                     }
                     else
                     {
                        if( parseInt(nbJour,10) + parseInt(myObject.NbJour,10) <=6)
                        {
                           temps = 'Jour';
                        }
                        else
                        {
                           temps = 'Nuit';
                        }
                        alert('Attention : Votre Séjour doit comporter au maximum 6 jours et 5 nuits.');
                        return false;
                     }

                     refresh_CS();
                  }
               });
         });
   });

}

function pageFicheKdo() {
   (function($){
      $('#slides').slideshow({
                               timer: 5,
                               navigation: 'numbers'
                              });
   })(jQuery);

   if($('jsCloseMap')) Event.observe('jsCloseMap','click',myGoogleBoxIdeKdo);
   if($('btnLocaliser')) Event.observe('btnLocaliser','click',myGoogleBoxIdeKdo);

}

function pageSpectaclePuyDuFou() {
   (function($){
      $('#slides').slideshow({
                               timer: 5,
                               navigation: 'numbers'
                              });
   })(jQuery);
}

function myGoogleBoxIdeKdo()
{
      if(!$('jsGoogleMap').visible())
      {
         $$('#descriptif .zoneTexte').each(function(obj){obj.hide()});
         $('jsGoogleMap').show();
         $('jsCloseMap').show();
         load();
      }
      else
      {
         $$('#descriptif .zoneTexte').each(function(obj){obj.show()});
         $('jsGoogleMap').hide();
         $('jsCloseMap').hide();
      }
}
function init_Supp()
{
   $$('.btnSupp').each(function(obj){
      Event.observe(obj,'click',function(obj1){
         var monId =obj.id.replace('jsSuppSejour_','');
         nbtab = tab_Sejour.length;
         tab_SejourNew = new Array;
         $o = 0;
         for(i=0;i<nbtab;i++)
         {
            if(monId != tab_Sejour[i].id)
            {
               tab_SejourNew[$o] = tab_Sejour[i];
               $o++;
            }
            else
            {  // on supprime les données relatives au nb de nuit et jour
               nbJour = parseInt(nbJour,10) - parseInt(tab_Sejour[i].NbJour,10);
               nbNuit = parseInt(nbNuit,10)- parseInt(tab_Sejour[i].NbNuit,10);
            }
         }
         tab_Sejour = tab_SejourNew;
         refresh_CS();
      })
   });
}
// objet JS pour pouvoir gerer les valeur :)


// met à jour la liste du panier :)
function refresh_CS()
{

   nbtab = tab_Sejour.length;
   var prix = 0;
   tab = new Array;
   for(i=0;i<nbtab;i++)
   {
      tab[i] = tab_Sejour[i].id;
      prix = parseInt(prix,10) + parseInt(tab_Sejour[i].prix,10);
   }
   $('jsPrix').update(prix + ' €');

   if (nbtab==0)tab[0]= -1;
   // on chope directement le script via fr pke comme ca le conf est def
   var url_lst_script = '/fr/s06_catalogue/s06p08_courts_sejours_carte_ajax.php';
   // là on passe le paramètre pour ... la requete derriere.
   var params = 'ajax=true&list_id_carte_produit=' + tab.join(",");
   // on lance (je ne sais où)la requette
   //obj.disable();
   new Ajax.Request(url_lst_script, {
         parameters : params,
         method: 'post',
         onSuccess: function(transport) {
            var myObject = transport.responseText;
            $('jsListChoixSejour').update(myObject);
            init_Supp();
         }
      });
//   jsListChoixSejour
}
// fonction permettant d'ouvrir et de fermer le menu de gauche pour les COURSE SEJOUR
function menu_CS_init()
{
   $$('.jsMenu').each(function(obj){

      //Au clic sur un élément du menu
      Event.observe(obj,'click',function(){
         var monId = 'sous-' + obj.id;

         //On retire la classe jsMenu à l'élément courrant et on cache par défaut
         //tout les éléments du menu sauf l'élement courant
         obj.removeClassName("jsMenu");
         $$('.jsMenu').each(function(obj2){
            var monId = 'sous-' + obj2.id;
            $$('.'+monId.camelize()).each(function(obj3){
               obj3.hide();});
         });

         //Pour l'élément courant, on lui rajoute à nouveau sa classe jsMenu
         //et on fait un toogle dessus
         obj.addClassName("jsMenu");
         $$('.'+monId.camelize()).each(function(obj1){
               obj1.toggle();});
      });

   });
}
function initMiniMap()
{
   var default_carto = "/fr/images/carteLocaMerMini.gif";

   if($('layerCarte'))
   {
         if(id_zone!=0)
      {
         $('code_secteur').value = id_zone;
         switch(id_zone)
         {
            case 1:
               default_carto="/fr/images/carteLocaMerMiniOclic.gif";
            break;
            case 2:
               default_carto="/fr/images/carteLocaMerMiniSOclic.gif";
            break;
            case 3:
               default_carto="/fr/images/carteLocaMerMiniSEclic.gif";
            break;
         }
         $('jsMiniMap').src=default_carto;
      }

      // gestion de l'ouest
      Event.observe('jsMiniOuest','mouseover',function(obj){
            $('jsMiniMap').src="/fr/images/carteLocaMerMiniO.gif";
      });
      Event.observe('jsMiniOuest','mouseout',function(obj){
            $('jsMiniMap').src=default_carto;
      });
      Event.observe('jsMiniOuest','click',function(obj){
         if(default_carto!="/fr/images/carteLocaMerMiniOclic.gif")
         {
            default_carto="/fr/images/carteLocaMerMiniOclic.gif";
            $('code_secteur').value = 1;
         }
         else
         {
            default_carto="/fr/images/carteLocaMerMini.gif";
            $('code_secteur').value = 0;
         }
      });
      // gestion du sud Est
      Event.observe('jsMiniSudEst','mouseover',function(obj){
            $('jsMiniMap').src="/fr/images/carteLocaMerMiniSE.gif";
      });
      Event.observe('jsMiniSudEst','mouseout',function(obj){
            $('jsMiniMap').src=default_carto;
      });
      Event.observe('jsMiniSudEst','click',function(obj){
         if(default_carto!="/fr/images/carteLocaMerMiniSEclic.gif")
         {
            default_carto="/fr/images/carteLocaMerMiniSEclic.gif";
            $('code_secteur').value = 3;
         }
         else
         {
            default_carto="/fr/images/carteLocaMerMini.gif";
            $('code_secteur').value = 0;
         }
      });
      // gestion du Sud Ouest
      Event.observe('jsMiniSudOuest','mouseover',function(obj){
            $('jsMiniMap').src="/fr/images/carteLocaMerMiniSO.gif";
      });
      Event.observe('jsMiniSudOuest','mouseout',function(obj){
            $('jsMiniMap').src=default_carto;
      });
      Event.observe('jsMiniSudOuest','click',function(obj){
         if(default_carto!="/fr/images/carteLocaMerMiniSOclic.gif")
         {
            default_carto="/fr/images/carteLocaMerMiniSOclic.gif";
            $('code_secteur').value = 2;
         }
         else
         {
            default_carto="/fr/images/carteLocaMerMini.gif";
            $('code_secteur').value = 0;
         }
      });
   }
}

function initMap()
{
   var default_carto = "/fr/images/carteLocaMer.gif";

   if($('zoneCarte'))
   {
      if(id_zone!=0)
      {
         $('code_secteur').value = id_zone;
         switch(id_zone)
         {
            case 1:
               default_carto="/fr/images/carteLocaMerOclic.gif";
            break;
            case 2:
               default_carto="/fr/images/carteLocaMerSOclic.gif";
            break;
            case 3:
               default_carto="/fr/images/carteLocaMerSEclic.gif";
            break;
         }
         $('jsMap').src=default_carto;
      }
      // gestion de l'ouest
      Event.observe('jsOuest','mouseover',function(obj){
            $('jsMap').src="/fr/images/carteLocaMerO.gif";
      });
      Event.observe('jsOuest','mouseout',function(obj){
            $('jsMap').src=default_carto;
      });
      Event.observe('jsOuest','click',function(obj){

         if(default_carto!="/fr/images/carteLocaMerOclic.gif")
         {
            default_carto="/fr/images/carteLocaMerOclic.gif";
            $('code_secteur').value = 1;
         }
         else
         {
            default_carto="/fr/images/carteLocaMer.gif";
            $('code_secteur').value = 0;
         }

      });
      // gestion du sud Est
      Event.observe('jsSudEst','mouseover',function(obj){
            $('jsMap').src="/fr/images/carteLocaMerSE.gif";
      });
      Event.observe('jsSudEst','mouseout',function(obj){
            $('jsMap').src=default_carto;
      });
      Event.observe('jsSudEst','click',function(obj){
         if(default_carto!="/fr/images/carteLocaMerSEclic.gif")
         {
            default_carto="/fr/images/carteLocaMerSEclic.gif";
            $('code_secteur').value = 3;
         }
         else
         {
            default_carto="/fr/images/carteLocaMer.gif";
            $('code_secteur').value = 0;
         }
      });
      // gestion du sud Ouest
      Event.observe('jsSudOuest','mouseover',function(obj){
            $('jsMap').src="/fr/images/carteLocaMerSO.gif";
      });
      Event.observe('jsSudOuest','mouseout',function(obj){
            $('jsMap').src=default_carto;
      });
      Event.observe('jsSudOuest','click',function(obj){
         if(default_carto!="/fr/images/carteLocaMerSOclic.gif")
         {
            default_carto="/fr/images/carteLocaMerSOclic.gif";
            $('code_secteur').value = 2;
         }
         else
         {
            default_carto="/fr/images/carteLocaMer.gif";
            $('code_secteur').value = 0;
         }
      });
   }
}

// fonction permettant d'ajouter la page courante au bookmark browser client
// compatible IE et Moz
// add_to_favoris(nom_du_site,url_page)
// nom_du_site: Nom du iste qui servira de libellé au bookmark
// url_page : url de la page. si vide (="") alors c'est l'url de la page courrant qui est prise
function add_to_favoris(nom_du_site,url_page)
{
  if (url_page=="") url_page=document.location;

  if ( navigator.appName != 'Microsoft Internet Explorer' )
  {
    window.sidebar.addPanel(nom_du_site,url_page,"");
  }
  else
  {
    window.external.AddFavorite("http://"+url_page,nom_du_site);
  }
}

function showFirstFaq()
{
   $$('.jsReponse')[0].show();
}

function initContact()
{

   var zeForm = new Validation('zeForm', {
      useTitles:true,   // pour utiliser les titles des champs comme message d’erreur
      stopOnFirst:true, // arête à la premiere erreur
      onFormValidate:  // definie la function qui permet d’empeche l’envoie du form sans js et donc sans verif
         function() {
            $('todo').value ="submit_quest";
         }
      });

   if($('searchSubmitter')) {
      Event.observe('searchSubmitter', 'click', function() {$('searchTodo').value = "email-subscribe"; $('searchEmailForm').submit();});
   }

   if($('errMsg')) {
      if($('errMsg').innerHTML  != '') {
         Element.show('errMsg'); Effect.BlindUp('errMsg', {delay:3});
      }
   }
   if($('collectif'))
   {
      Event.observe('collectif','click',function(){
                     $('jsRaisonSocial').show();
                     if($('jsFonction'))
                        $('jsFonction').show();
                  });
   }
   if($('particulier'))
   {
      Event.observe('particulier','click',function(){
                     $('jsRaisonSocial').hide();
                     if($('jsFonction'))
                        $('jsFonction').hide();
                  });
   }
}

function initDesinscription()
{
   var zeForm = new Validation('auth', {
      useTitles:true,   // pour utiliser les titles des champs comme message d’erreur
      stopOnFirst:true, // arête à la premiere erreur
      onFormValidate:  // definie la function qui permet d’empeche l’envoie du form sans js et donc sans verif
         function() {$('todo').value = "unsub";}
      });
}

function faq_open_close()
{
   // gestion de l'affichage ou non de la reponse

   $$('.question h2 a').each(function(obj){

      Event.observe(obj,'click',function(){
         $('reponse_'+obj.id.replace('question_','')).toggle();
      });
   });

   $$('.btnFermer').each(function(obj){
      var monId = obj.id.replace('fermer_','');
      Event.observe(obj,'click',function(){
         $('reponse_'+monId).hide();
      });
   });
}
function initCalendar() {
   if($('dem_info_date_arrive_'))
   {
      var calDateArrive  =  Calendar.setup({inputField:"dem_info_date_arrive_", displayArea : "dem_info_date_arrive_trigger", button:"dem_info_date_arrive_trigger", ifFormat:"dd/mm/y", mondayFirst:true, onSelect:setDate, align: "Bl", singleClick: true});
   }
   if($('dem_info_date_retour_'))
      var calDateRetour  =  Calendar.setup({inputField:"dem_info_date_retour_", displayArea : "dem_info_date_retour_trigger", button:"dem_info_date_retour_trigger", ifFormat:"dd/mm/y", mondayFirst:true, onSelect:setDate, align: "Bl", singleClick: true});
   if($('dem_info_date_demande_'))
      var calDateDemande =  Calendar.setup({inputField:"dem_info_date_demande_", displayArea : "dem_info_date_demande_trigger", button:"dem_info_date_demande_trigger", ifFormat:"dd/mm/y", mondayFirst:true, onSelect:setDate, align: "Bl", singleClick: true});

   if($('dem_info_date_retour_parc_'))
      var calDateDemande =  Calendar.setup({inputField:"dem_info_date_retour_parc_", displayArea : "dem_info_date_retour_parc_trigger", button:"dem_info_date_retour_parc_trigger", ifFormat:"dd/mm/y", mondayFirst:true, onSelect:setDate, align: "Bl", singleClick: true});

}

// action asynchrone vers la gestion de "ma selection"
function addProd(id) { setAction('add',  id);}
function delProd(id) { setAction('del', id);}

function setAction(todo, id) {
//    alert("action:" + todo + " - id:" + id);
//    return false;
   var pars = 'todo='+todo+ '&prod=' + id;
   var uri = '/fr/s06_catalogue/s06p00_selection.php';
   var myAjax = new Ajax.Updater('maSelection', uri, {method: 'get', parameters: pars, onFailure: reportError, onComplete: showSel});

}

function reportError(request) { alert('Une erreur est survenue, merci de réessayer ultérieurement.');}
function showSel()
{
         new Effect.BlindDown('maSelection');
         Event.observe('jsMySel'          ,'click',function(){if( $('maSelection').visible())new Effect.BlindUp('maSelection');});
}

//Requete AJAX permettant d'afficher le nombre de champs âge en fonction du nombre d'enfants
function ajaxDisplayChildAge()
{
         //Si l'id de l'enregistrement est un nombre et qu'il est supérieur à 0, on exécute la requête
         if(!isNaN(parseInt($('dem_info_nbr_enfant').value)) && parseInt($('dem_info_nbr_enfant').value) > 0)
         {
            if(!isNaN(parseInt($('dem_info_nbr_adulte').value)) && parseInt($('dem_info_nbr_adulte').value) > 0)
            {
               var adult_number = $('dem_info_nbr_adulte').value;
            }
            else{var adult_number="";}

            var uri  = '/fr/s00_commun/ajaxWebsite.php?todo=displayChildAge&child_number='+ $('dem_info_nbr_enfant').value+'&adult_number='+adult_number;

            var myAjax = new Ajax.Request(uri,
                                          {
                                             method: 'post'
                                             ,onSuccess: function(transport) {
                                                                  var myObject = transport.responseText.evalJSON();
                                                                  $('child_age').replace(myObject.contenu);
                                                                  declareChildAgeEvent();
                                                                  }
                                             }
                                   );
         }

   }

function declareChildAgeEvent()
{
   Event.observe('dem_info_nbr_enfant', 'blur', ajaxDisplayChildAge);
}

function initTransport()
{
   Event.observe('ouiTransport','click',function(){
                     $('jsTransport').show();
                  });
      Event.observe('nonTransport','click',function(){
                     $('jsTransport').hide();
                  });
}

function Init_Carroussel()
{
   if($("vignettes"))
   {
      vCarousel = new UI.Carousel("vignettes");

      if(vCarousel.elements.length <= vCarousel.nbVisible)
      {
         $('jsNext').addClassName('next_button_disabled');
      }
   }

}
   function showZoomPhoto(id_photo)
   {
      $$('.zoom').each(function(obj)
      {
         if(obj.id!=id_photo) obj.hide();
      });
      $('legende').update($(id_photo).alt);
      if(!$(id_photo).visible())$(id_photo).show();
      return false;
   }


function initPlanSite(){
   $$('.blocPlan > h3').each(function(item){
      item.observe('mouseover',function(event){
         $$('.blocPlan > ul').invoke('hide');
         this.next('ul').show();
      })
   })

   $('mainContent').observe('click',function(){
      $$('.blocPlan > ul').invoke('hide');
   });
   $('pagePlanSiteNew').observe('click',function(){
      $$('.blocPlan > ul').invoke('hide');
   });

}
"use strict";
// met à jour la liste des destinations dans la section location
function refreshDestination(e) {
 
   
   if($F('jsLocationOptRegion')!=0)
   { 
       ajaxSearch()
      
   }         
}

function ajaxSearch()
{

   var url = '/fr/s08_location/_ajax_location.php'; 
   new Ajax.Request(url, {
         parameters: 'region=' + $F('jsLocationOptRegion')+'&ville='+$F('jsLocationOptDestination'),
         method: 'get',
         evalJSON: true,
         onSuccess: function(transport) {
            var objTransport = transport.responseText.evalJSON();
            $('jsLocationSpanDestination').update(objTransport.ville);
            
            if(objTransport.residence!=null)
            {
               $('herberg_resid').checked = objTransport.residence;
            }

            if(objTransport.camping!=null)
            {
               $('herberg_camping').checked = objTransport.camping;
            }
            Event.observe('jsLocationOptDestination','change',ajaxSearch);
         }
      });         
}

