/*  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() {
         //maFonctionGeneriques();
         if ($('quickSearchForm')) initQuickSearch();
         createGlossaryToolTips();
   },

   registerSpecifics: function() {
         switch (this.idBody) {
            case 'pageContact':
                initContact();
            break;

            case 'pageContactConf':
                initContactConf();
            break;

            case 'PageContactPresse':
                initContactPresse();
            break;

            case 'PageContactPro':
               initContactPro();
            break;

            case 'pageGuideChoix':
               //filtreCatalogue();
               $('reponse').hide();
            break;
            case 's16p03': // nico est dans la place ouaich
               initChoixMultiCritere();
            break;

            case 'pageGamme':
               setNavCatalogue();
            break;

            case 'pageSousGamme':
               if (tabIdPhoto != "") initDiaporama();
               setNavCatalogue();
            break;

            case 'pageAvantApresDetail':
               initDiaporamaAvantApres();
            break;

            case 'pageFicheProduit':
               setNavCatalogue();
               setOngletActif('btnDescription');
               hideContainer();
               $('containerDescription').show();
               initDiaporamaProduit();
            break;

            case 'pageContactGarantie':
               initContactGarantie();
            break;
            case 'pageContactDevis':
               initContactDevis();
            break;

            case 'PageQuestionnaireQualiteSansEmail':
               initContactQuestionnaireQualiteSansEmail();
            break;

            case 'PageQuestionnaireQualite':
               initContactQuestionnaireQualite();
            break;

            case 'pageCorpo':
               var myLightWindow = null;
               myLightWindow = new lightwindow();
            break;
            case 'cdePoster':
               initContactDemandePoster();
            break;
            case 'pageAccueil':

            break;
         }
   }
});


// load
Event.observe(window, 'load', function() {
   var loader = new Loader(document.body.id);

   if (!document.readyState) { document.readyState = 'complete'; }
});

function initContactDemandePoster()
{
   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 = "search_email"; $('searchEmailForm').submit();});
   }

   if($('errMsg')) {
      if($('errMsg').innerHTML  != '') {
         Element.show('errMsg'); Effect.BlindUp('errMsg', {delay:3});
      }
   }
}

function initContactConf()
{
   /*
   // Chargement de l'API Google Maps v3
   var gm      = document.createElement('script');
       gm.type = 'text/javascript';
       gm.src  = 'http://maps.google.com/maps/api/js?sensor=false&region=FR&callback=$';
   document.body.appendChild(gm);
*/
   var m = new Map($('gmap'), {
      container: $('map-container'),
      update:    $('dem_info_latlng')
   });

   m.show($('address').value + ', France');

}

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";}
      });


   Event.observe('zeForm', 'submit', function(event) {

      if ($('dem_info_latlng_precision') && $('dem_info_latlng_precision').value != 'USER_DEFINED'){
         var zip = $('zip').value || $('visitor_zipcode_').value;
         zip = zip + ', France';
         m.get(zip);
      }
   });

   if($('searchSubmitter')) {
      Event.observe('searchSubmitter', 'click', function() {$('searchTodo').value = "search_email"; $('searchEmailForm').submit();});
   }

   if($('errMsg')) {
      if($('errMsg').innerHTML  != '') {
         Element.show('errMsg'); Effect.BlindUp('errMsg', {delay:3});
      }
   }

   //On cache le bloc fourniture par dÚfaut
   $('fourniture').hide();
}

function initContactPresse()
{
   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 = "search_email"; $('searchEmailForm').submit();});
   }

   if($('errMsg')) {
      if($('errMsg').innerHTML  != '') {
         Element.show('errMsg'); Effect.BlindUp('errMsg', {delay:3});
      }
   }
}

function initContactPro()
{

   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 = "search_email"; $('searchEmailForm').submit();});
   }

   if($('errMsg')) {
      if($('errMsg').innerHTML  != '') {
         Element.show('errMsg'); Effect.BlindUp('errMsg', {delay:3});
      }
   }
}

function initContactGarantie()
{
   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 = "search_email"; $('searchEmailForm').submit();});
   }

   if($('errMsg')) {
      if($('errMsg').innerHTML  != '') {
         Element.show('errMsg'); Effect.BlindUp('errMsg', {delay:3});
      }
   }
}


var Map =  Class.create({
   defaults: {
      zipcode   : 75000,
      url       : '/ml/s00_commun/s00_zipcode2latlng.php',
      update    : null,
      container : null
   },

   initialize: function(element, options) {
      this.element = $(element);
      this.options = Object.extend(this.defaults, options);
      if (this.element)
         this.build();
   },

   build: function() {},
   get: function(zipcode, draw) {
      var draw = draw || false,
          obj  = this;

      new Ajax.Request(
         this.options.url, {
            method     : 'get',
            parameters : {zip : zipcode},
            evalJS     : false,
            onSuccess  : function(response) {
              var json   = response.responseText.evalJSON();
              if (json.status == 'OK') {
                 with (json.results[0]) {
                    var lat    = geometry.location.lat,
                        lng    = geometry.location.lng;

                    if (obj.options.update) {
                        latlng = $(obj.options.update);
                        latlng.value = lat +',' +  lng;
                        if (latlng_precision = $(obj.options.update.id+'_precision')){
                           latlng_precision.value = geometry.location_type;
                        }
                    }

                    if (draw)
                     obj.draw(zipcode);
                 }
              } else {
                  if (latlng_precision = $(obj.options.update.id+'_precision')){
                     latlng_precision.value = json.status;
                  }
              }
            }
         }
      );
   },
   show: function(zip) {
      var zipcode = zip || this.options.zipcode,
              obj = this;

      if (zipcode == '')
         return false;
      this.get(zip, true);
   },

   draw : function(zipcode) {
     var obj  = this,
         lL   = obj.options.update.value.split(','),
         cntr = new google.maps.LatLng(lL[0], lL[1]),
         cont = $(obj.options.container || obj.element);

     obj.element.show();

     var map  = new google.maps.Map(
         cont, {
            zoom     : 12,
            center   : cntr,
            mapTypeId: google.maps.MapTypeId.ROADMAP,
            mapTypeControl: false
         }
      );

     var pnt = new google.maps.Marker({
        position: cntr,
        map : map,
        title: zipcode,
        draggable: true
     });

     if (obj.options.update) {
         google.maps.event.addListener(pnt, 'mouseup', function() {
            var pos = this.getPosition();
            $(obj.options.update).value = pos.lat() + ',' + pos.lng();
            if (latlng_precision = $(obj.options.update.id+'_precision')){
               latlng_precision.value = 'USER_DEFINED';
            }
         });
      }
   }
});

function initContactDevis()
{
   var zeForm = new Validation('zeForm', {
      useTitles:true,   // pour utiliser les titles des champs comme message dÆerreur
      stopOnFirst:true, // arÛte Ó la premiere erreur
      // definie la function qui permet dÆempeche lÆenvoie du form sans js et donc sans verif
      onFormValidate:  function(validate, form) { $('todo').value ="submit_quest";}
   });

   if($('searchSubmitter')) {
      Event.observe('searchSubmitter', 'click', function() {$('searchTodo').value = "search_email"; $('searchEmailForm').submit();});
   }

   if($('errMsg')) {
      if($('errMsg').innerHTML  != '') {
         Element.show('errMsg'); Effect.BlindUp('errMsg', {delay:3});
      }
   }
}

function initContactQuestionnaireQualiteSansEmail()
{
   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 ="sans_email";}
      });

}

function initContactQuestionnaireQualite()
{
      $('rep_oui').hide();
      $('rep_non').hide();
}

function gest_rep(type)
{
 if (type == "oui")
 {
  $('rep_oui').show();
  $('rep_non').hide();
  $$('input[name="data[quest_echange_distri_oui]"]').each (function (e){
   e.checked = false;
  });
 }
 else
 {
  $('rep_non').show();
  $('rep_oui').hide();
    $$('input[name="data[quest_echange_distri_non]"]').each (function (e){
   e.checked = false;
  });

 }
}


function affBlockFourniture(flag)
{
   if (flag)
   {
      //Si on a cochÚ rÚnovation et qu'il a cochÚ la demande d'info distributeur
      //if ($('dem_info_dem_coordonnees_').checked == true) $('fourniture').show();
      $('fourniture').show();
   }
   else
   {
       $('fourniture').hide();
   }
}

function checkCacdistri()
{
   if ($('dem_info_dem_coordonnees_').checked)
   {
      if($('projet_reno').checked) $('fourniture').show();
   }
   else
   {
      $('fourniture').hide();
   }
}

//Fonction permettant d'afficher les matÚriaux dans le guide de choix
function showMateriau(ChoixMateriau)
{
   if (ChoixMateriau == 1)
   {
      $('selectMateriau').hide();
      $('selectMateriauPdm').show();
   }
   else
   {
      $('selectMateriauPdm').hide();
      $('selectMateriau').show();
   }
}

//Fonction permettant l'appel ajax de filtre de la liste des produits
function filtreCatalogue()
{
      $('pictoLoader').show();

      //Doit on prendre ou non en compte le choix du materiau
      $$('.choixMat').each(function(e,obj){
         if (e.value == 1 && e.checked==true)
         {
            $$('.choixMatRadio').each(function(elem,obj){
               elem.checked = false;
            });

            $('data_materiau_pdm_').value = $('matPdm').value;
            $('data_materiau_radio_').value = "";
         }
         else if (e.value == 0  && e.checked==true)
         {
            $('matPdm').selected = "";
            $$('.choixMatRadio').each(function(elem,obj){
               if (elem.checked == true) $('data_materiau_radio_').value = elem.value;
            });
            $('data_materiau_pdm_').value = "";
         }
      });

      //SÚrialize les donnÚes du formulaire pour le post
      Params = $('formGuideChoix').serialize();
      //Création de l'appel ajax
      objList = new Ajax.Updater(
                'lstModeles', '/'+lg+'/s16_guide_choix/_getListeModeles.php', {method: 'post', parameters: Params, onSuccess: function() {
                $('reponse').show();
                $('pictoLoader').hide();}
               });
}

//Fonction permettant de gÚrer les cases Ó cocher de comparaison pour le guide de choix
function gestCompare(idPage)
{
   //Parcourt des ÚlÚments ayant la classe chkCompare
   nb_checked = 0;
   $$('.chkCompare'+idPage).each(function(e){
      if (e.checked ==  true)
      {
         nb_checked++;
      }
   });

   //on met Ó jour le nombre de porte Ó comparer portes Ó comparer
   if (nb_checked >= 2)
   {
      if (idPage == "S16P02")
      {
         $('lienCompare'+idPage+'_1').show();
         $('lienCompare'+idPage+'_2').show();
         $('nbPortes'+idPage+'_1').update(nb_checked);
         $('nbPortes'+idPage+'_2').update(nb_checked);
      }
      else
      {
         $('lienCompare'+idPage).show();
         $('nbPortes'+idPage).update(nb_checked);
      }
   }
   else
   {
      if (idPage == "S16P02")
      {
         $('lienCompare'+idPage+'_1').hide();
         $('lienCompare'+idPage+'_2').hide();
      }
      else
      {
         $('lienCompare'+idPage).hide();
      }
   }

}

//fonction permettant de rÚcupÚrer les produits Ó comparer et d'aller vers la page concerner
function gotoComparateur(idPage)
{
  var lst_id_prod = "";
  var nb_prod = 0;
  $$('.chkCompare'+idPage).each(function(e){
      if (e.checked ==  true)
      {
         nb_prod++;
         txtReplace = idPage+"Modele_";
         id_modele = e.name.replace(txtReplace, "");
         lst_id_prod+= id_modele + ",";
      }
  });

   //nettoie la derniÞre ,
   var longueur = lst_id_prod.length;
   lst_id_prod = lst_id_prod.substr(0, longueur-1);

   if (nb_prod > 4) alert("Attention vous ne pouvez comparer que 4 produits en même temps.");
   else
   {
      setTimeout(function(){
         window.location = '/'+lg+'/s17_comparateur/s17p01_comparateur.php?lst_prod=' + lst_id_prod;
      }, 0);
      //window.location.href = '/'+lg+'/s17_comparateur/s17p01_comparateur.php?lst_prod=' + lst_id_prod;
   }
}

//fonction permettant de récupérer les produits pour la demande de devis
function gotoDemDevis()
{
  lst_id_prod = "";
  $$('.selection').each(function(e){
         id_porte = e.id.replace("porte_", "");
         lst_id_prod+= id_porte + ",";
  });

   setTimeout(function(){
         window.location = '/'+lg+'/s04_contact/s04p05_demande_devis.php?lst_prod=' + lst_id_prod;
      }, 0);

   //document.location.href = '/'+lg+'/s04_contact/s04p05_demande_devis.php?lst_prod=' + lst_id_prod;
}

function initChoixMultiCritere()
{
   // on recupere l'ensemble de radio buton matos
   $$('input[name="data[materiel]"]').each(function(obj){
      // sur chaque élément on ajoute l'evenement click
      Event.observe(obj,'click', function(monObj){
         // sur lequel on cache tout sauf celui sur lequel on a cliquer !
         $$('input[name="data[materiel]"]').each(function(obj2){
         if($(obj2.id+'Paraph'))
         $(obj2.id+'Paraph').hide();
         });
         if($(obj.id+'Paraph'))
         $(obj.id+'Paraph').show();
      });
   });

   // Luminosité
   $$('.Vitrage').each(function(obj){
      Event.observe(obj,'click',function(){
         $('couleur').show();
         actionVitrage();
         //ScrollTo
         $('couleur').scrollTo();
      });
   });

   // Choix de la couleur
   $$('.Couleur').each(function(obj){
      Event.observe(obj,'click',function(){
         $('thermique').show();
         actionCouleur();
         //ScrollTo
         $('thermique').scrollTo();
      });
   });

   //Performances thermiques
   $$('.Thermique').each(function(obj){
      Event.observe(obj,'click',function(){
         $('securite').show();
         //ScrollTo
         $('securite').scrollTo();
      });
   });

   // Sécurité
   $$('.Securite').each(function(obj){
      Event.observe(obj,'click',function(){
         actionSecurite();
         //Si bois intérieur et extérieur on cache le choix du matériau
         if($('bois_ext_bois_int').checked == false)
         {
           $('materiauRecherche').show();
           //ScrollTo
           $('materiauRecherche').scrollTo();
         }
         else
         {
            $('jsValider').show();
         }
      });
   });

   //Matériau recherché
   $$('.Materiau').each(function(obj){
      Event.observe(obj,'click',function(){
         actionMateriau();
      });
   });

   // Chassis
   $$('.ChassisGrille').each(function(obj){
      Event.observe(obj,'click',function(){
         $('jsValider').show();
      });
   });

   // Validation
   Event.observe('jsValider','click',function(){$('formGuideChoix').submit()});

}

// gestion des actions pour la section Apport de luminosité
function actionVitrage()
{
   // si on coche grand vitrage
   if($('grandVitrage').checked)
   {
      // on masque dans la section thermique
      $('jsExceptionnelles').hide(); // le choix exceptionnelle

      // on masque dans la section matériaux
      $('jsBoisBudget').hide(); // bois budget
      $('jsComposite').hide(); // composite
   }
   else
   {
      // sinon on raffiche tous les choix des différentes sections (cf ligne au dessus)
      $('jsExceptionnelles').show(); // exceptionnelle

      $('jsBoisBudget').show(); // bois budget
      $('jsComposite').hide(); // composite
   }
}

// gestion des actions pour la section Couleur
function actionCouleur()
{
   // on raffiche tout à chaque click...
   $$('.jsMateriau').each(
      function(obj) {
         obj.show();
      }
   );

   // si on coche couleur exterieure et intérieure identique
   if($('coul_ext_int_idem').checked)
   {
      // on masque dans la section matériaux
      $('jsMixte').hide(); // mixte
      $('jsComposite').hide(); // composite
   }

   // si on coche couleur extérieuxs et intérieures différentes
   if($('coul_ext_int_dif').checked)
   {
      // on masque dans la section matériaux
      $('jsBoisBudget').hide(); //bois priorité budget
      $('jsAcierBudget').hide(); // acier priorité budget
   }

   // si on coche couleur extérieure - bois extérieure
   if($('coul_ext_bois_int').checked)
   {
      // on masque dans la section matériaux
      $('jsBoisBudget').hide();  // bois priorité budget
      $('jsAcierBudget').hide();  // acier priorité budget
      $('jsAluminium').hide();  // aluminium

      // on masque la section chassis
      $('chassis').hide();
   }

   if($('bois_ext_bois_int').checked)  $('materiauRecherche').hide();
}

// gestion des actions pour la section Sécurité
function actionSecurite()
{


   // si on coche haute sécurité
   if($('haute_securite').checked)
   {
      // on masque dans la section matériaux
      $('jsMixte').hide(); // mixte
      $('jsComposite').hide(); // composite
      $('jsBoisBudget').hide();  // bois priorité budget
      $('jsAcierBudget').hide();  // acier priorité budget
   }
   else
   {
      // on raffiche tout
      $$('.jsMateriau').each(
         function(obj) {
            obj.show();
         }
      );
   }
}

function actionMateriau()
{
   if($('pvc').checked)
   {
      $('jsValider').hide();
      $('chassis').hide();
   }

   else if($('bois').checked)
   {
      $('chassis').show();
      //ScrollTo
      $('chassis').scrollTo();
      $('jsValider').hide();
   }

   else
   {
    $('chassis').hide();
    $('jsValider').show();
   }

   if($('boisBudget').checked)
   {
      $('ChassisGrille_non').checked = 1;
      $('chassis').hide();
      $('jsValider').show();
   }
}

//Zoom sur une photo dans la gamme
function showZoomPhoto(id_photo)
{

   $$('.zoom').each(function(obj)
   {
      obj.hide();
   });

   $(id_photo).appear();
}

//initialisation du diaporama dans s06p02
function initDiaporama()
{
   $$('.zoom').each(function(obj) {obj.hide();});
   firstIdPhoto = 'zoom'+tabIdPhoto[0];
   $(firstIdPhoto).show();
   firstLegendPhoto = $(firstIdPhoto).alt;
   $('diaporamaLegend').update(firstLegendPhoto);

   //suivant précédent
   prevIdPhoto = tabIdPhoto.indexOf(tabIdPhoto[(tabIdPhoto.length)-1]);
   nextIdPhoto = tabIdPhoto.indexOf(tabIdPhoto[1]);
   $('prevPhoto').rel = prevIdPhoto;
   $('nextPhoto').rel = nextIdPhoto;
}

function affPrevPhoto()
{
   curPrevPhoto = $('prevPhoto').rel;
   $$('.zoom').each(function(obj) {obj.hide();});
   photo2Show = 'zoom'+tabIdPhoto[curPrevPhoto];
   Effect.Appear($(photo2Show), { duration: 1.0 });
   legendPhoto2Show = $(photo2Show).alt;
   $('diaporamaLegend').update(legendPhoto2Show);

   //mise à jour du suivant précédent
   if ((parseInt(curPrevPhoto) -1) < 0) prevIdPhoto = tabIdPhoto.indexOf(tabIdPhoto[(tabIdPhoto.length)-1]);
   else                                 prevIdPhoto = tabIdPhoto.indexOf(tabIdPhoto[parseInt(curPrevPhoto) -1]);

   if ((parseInt(curPrevPhoto) + 1) >= tabIdPhoto.length)  nextIdPhoto = tabIdPhoto.indexOf(tabIdPhoto[0]);
   else                                                    nextIdPhoto = tabIdPhoto.indexOf(tabIdPhoto[parseInt(curPrevPhoto) +1]);

   $('prevPhoto').rel = prevIdPhoto;
   $('nextPhoto').rel = nextIdPhoto;
}

function affNextPhoto()
{
   curNextPhoto = $('nextPhoto').rel;
   $$('.zoom').each(function(obj) {obj.hide();});
   photo2Show = 'zoom'+tabIdPhoto[curNextPhoto];
   Effect.Appear($(photo2Show), { duration: 1.0 });
   legendPhoto2Show = $(photo2Show).alt;
   $('diaporamaLegend').update(legendPhoto2Show);

   //mise à jour du suivant précédent
   if ((parseInt(curNextPhoto) + 1) >= tabIdPhoto.length)  nextIdPhoto = tabIdPhoto.indexOf(tabIdPhoto[0]);
   else                                                    nextIdPhoto = tabIdPhoto.indexOf(tabIdPhoto[parseInt(curNextPhoto) +1]);

   if ((parseInt(curNextPhoto) -1) < 0) prevIdPhoto = tabIdPhoto.indexOf(tabIdPhoto[(tabIdPhoto.length)-1]);
   else                                 prevIdPhoto = tabIdPhoto.indexOf(tabIdPhoto[parseInt(curNextPhoto) -1]);

   $('prevPhoto').rel = prevIdPhoto;
   $('nextPhoto').rel = nextIdPhoto;
}

function initDiaporamaAvantApres()
{
   prem_fois = true;
   $$('.zoomAVP').each(function(obj)
   {
      if (prem_fois)
      {
         obj.show();
         prem_fois = false;
      }
   });
}

function initDiaporamaProduit()
{
   myLightWindow = new lightwindow();
   initDiaporamaAvantApres();
}

function showPhotoAvp(id_photo)
{
   $$('.zoomAVP').each(function(obj)
   {
      obj.hide();
   });

   $(id_photo).show();
}

function hideContainer()
{
   $$('.container').each(function(obj)
   {
      obj.hide();
   });
}

/* Fonction pour gérer les infobulles des liens sur le lexique */
function createGlossaryToolTips()
{
   // En remplacement des "document.write" de la bibli tooltip
   var divTag = document.createElement("div");
   divTag.id  = "dhtmltooltip";
   document.body.appendChild(divTag);
   var imgTag = document.createElement("img");
   imgTag.id  = "dhtmlpointer";
   imgTag.src = "/" + lg +"/images/tooltipArrow2.gif";
   document.body.appendChild(imgTag);

   // Initialisation de la bibliothèque tooltip
   initToolTip();

   // Récupère les liens avec la classe correspondant aux définitions du lexique
   $$('a.jsLexiqueDefinitionLink').each(function(lien)
   {
      Event.observe(lien, 'mouseover', showToolTip);
      Event.observe(lien, 'mouseout',  hideddrivetip);
   }
   );
}

/* Fonction affichant une infobulle */
function showToolTip()
{
   if (window.toolTipAutoHide) clearTimeout(toolTipAutoHide);
   ddrivetip('...', 200)
   myUrl = this.href;
   if (myUrl.indexOf('?') < 1) { myUrl += "?mode=infobulle"; } else { myUrl += "&mode=infobulle"; }

   new Ajax.Request(myUrl,
   {
      method: 'get',
      onSuccess: function(transport)
      {
         ddrivetip(transport.responseText, 200);
         toolTipAutoHide = setTimeout("hideddrivetip()", 7000);
      }
   });
}

function gestAffTypePose(typeChantier)
{
   if (typeChantier == 1)
   {
      $('typePose').show();
   }
   else
   {
      $('typePose').hide();
   }
}
//pour afficher les onglets actifs dans une fiche produit
function setOngletActif(idOngletActif)
{
   $$('.ongletFicheProduit').each(function(obj)
   {
      obj.down().removeClassName('active-tab');
   });

   //$$('li#btnDescription a.active-tab').addClassName('active-tab');
   $(idOngletActif).down().addClassName('active-tab');
}

//pour setter la nav de gauche dans les pages catalogues
function setNavCatalogue()
{
   switch (cur_categ)
   {
      //Alu
      case '168':
         if (is_priorite_budget == '1')   $('btnBudgetAlu').down().addClassName('active-tab');
         else                             $('btn2navv').down().addClassName('active-tab');
      break;

      //Mixte
      case '169':
         $('btn12navv').down().addClassName('active-tab');
      break;

      //AvantGarde
      case '170':
         $('btn3navv').down().addClassName('active-tab');
      break;

      //Bois
      case '167':
         if (is_priorite_budget == '1')   $('btnBudgetBois').down().addClassName('active-tab');
         else                             $('btn4navv').down().addClassName('active-tab');
      break;

      //Acier
      case '171':
         if (is_priorite_budget == '1')   $('btnBudgetAcier').down().addClassName('active-tab');
         else                             $('btn5navv').down().addClassName('active-tab');
      break;

      //Porte de service
      case '194':
         $('btn6navv').down().addClassName('active-tab');
      break;
   }
}

/// PHP.JS
function uniqid (prefix, more_entropy) {
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +    revised by: Kankrelune (http://www.webfaktory.info/)
    // %        note 1: Uses an internal counter (in php_js global) to avoid collision
    // *     example 1: uniqid();
    // *     returns 1: 'a30285b160c14'
    // *     example 2: uniqid('foo');
    // *     returns 2: 'fooa30285b1cd361'
    // *     example 3: uniqid('bar', true);
    // *     returns 3: 'bara20285b23dfd1.31879087'

    if (typeof prefix == 'undefined') {
        prefix = "";
    }

    var retId;
    var formatSeed = function (seed, reqWidth) {
        seed = parseInt(seed,10).toString(16); // to hex str
        if (reqWidth < seed.length) { // so long we split
            return seed.slice(seed.length - reqWidth);
        }
        if (reqWidth > seed.length) { // so short we pad
            return Array(1 + (reqWidth - seed.length)).join('0')+seed;
        }
        return seed;
    };

    // BEGIN REDUNDANT
    if (!this.php_js) {
        this.php_js = {};
    }
    // END REDUNDANT
    if (!this.php_js.uniqidSeed) { // init seed with big random int
        this.php_js.uniqidSeed = Math.floor(Math.random() * 0x75bcd15);
    }
    this.php_js.uniqidSeed++;

    retId  = prefix; // start with prefix, add current milliseconds hex string
    retId += formatSeed(parseInt(new Date().getTime()/1000,10),8);
    retId += formatSeed(this.php_js.uniqidSeed,5); // add seed hex string

    if (more_entropy) {
        // for more entropy we add a float lower to 10
        retId += (Math.random()*10).toFixed(8).toString();
    }

    return retId;
}

