/*  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();
         if ($('popupQuestion')) initPopupQuestion();

   },

   registerSpecifics: function() {
         switch (this.idBody) {
            case 'pageFaq':
                init_Faq();
            break;
            case 'pageContact':
                initContact();
            break;
            case 'pageIdentification':
                initFormIdentification();
                initFormLostPassword();
            break;
            case 'pageCreerCompte':
               initFormCreerCompte();
            break;
            case 'pageAdressesLivraison':
                  initPageAdressesLivraison();
            break;
            case 'pageModifierCompte':
                  initPageModifierCompte();
            break;
            case 'pageModifierMdp':
                  initPageModifierMdp();
            break;
            case 'pageCoordonnees':
               initPageCoordonnees();
            break;
         }
   }
});




// load
Event.observe(window, 'load', function() {
   var loader = new Loader(document.body.id);
   if (!document.readyState) { document.readyState = 'complete'; }
});

/*--------------------------------------------------------------------------*/
// gestion des ouvertures et fermeture des FAQ
function init_Faq()
{
   $$('.jsCateg').each(function(objet){
      Event.observe(objet,'click',function(obj){
         // on recuper l'element apres avoir choper son evenment
         var elt = Event.element(obj);
         // on récupére l'id de la categ à afficher
         var id_categ = elt.id.replace('jsCateg_','');
         // on toggle la liste
         $('jsCategUl_'+id_categ).toggle();
      });
   });


}

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 = "search_email"; $('searchEmailForm').submit();});
   }

   if($('errMsg')) {
      if($('errMsg').innerHTML  != '') {
         Element.show('errMsg'); Effect.BlindUp('errMsg', {delay:3});
      }
   }
}

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";}
      });
}

// Fonction d'affichage d'un menu
function showThisNav(nav)
{
   if (nav != '') $(nav).show();
   if (nav != "sousNavMarques")  $('sousNavMarques').hide();
   if (nav != "sousNavSpa")      $('sousNavSpa').hide();
}


// Fonction pour appliquer validation au formulaire de recherche rapide
function initQuickSearch()
{
   var zeForm = new Validation('quickSearchForm',
   {
      useTitles:true,
      stopOnFirst:true,
      onFormValidate: function() { }
   });
}

// fonction utilisé pour gérer les réponses aux questions posé en popup quand on viens d'un emailing
function initPopupQuestion()
{
   $('vacMontagne').observe('click',function (){new Ajax.Request(urlMontagne, {method: 'get'});$('popupQuestion').fade({ duration: 2.0 }); });
   $('vacSoleil').observe('click',function (){new Ajax.Request(urlSoleil, {method: 'get'}); $('popupQuestion').fade({ duration: 2.0 });});
   
   $('popupQuestion').appear({ duration: 2.0 });

}

function initFormIdentification()
{
   var formIdentification = new Validation('formIdentification',
   {
      useTitles:true,
      stopOnFirst:true,
      onFormValidate: function() {}
   });
}

function  initFormCreerCompte() {

initBirthdate();

var formCreerCompte = new Validation('formCreerCompte',
   {
      useTitles:true,
      stopOnFirst:true,
      onFormValidate: function() {}
   });
}

function initFormLostPassword()
{
var formLostPassword = new Validation('formLostPassword',
   {
      useTitles:true,
      stopOnFirst:true,
      onFormValidate: function() {}
   });
}

function initPageAdressesLivraison()
{
   var formCreateAdresse = new Validation('formCreateAdresse',
   {
      useTitles:true,
      stopOnFirst:true,
      onFormValidate: function() {
      }
   });

    // pour afficher le formulaire d'insertion quand on clique sur modifier adresse
   var display_modify = $F('display_modify');
   if(display_modify == "1")
   {
      new Effect.Appear('layerModifAdresse');
      $('todo').value="update_adress";
   }

   // si on est en mode création venant du panier, on affiche le layer
   // et on vide tout les champs
   if(display_modify == "2")
   {
      new Effect.Appear('layerModifAdresse');
      $('todo').value="new_adress";
        $$('.required').each(function(obj){
         obj.value="";
      });
      $('visitor_address2_').value="";
   }

   // pour afficher le formulaire d'insertion quand on clique sur créer une adresse
   Event.observe($('btnCreerAdresse'), 'click', function() {
      new Effect.Appear('layerModifAdresse');
      $('todo').value="new_adress";
      $('visitor_address2_').value="";
      $$('.required').each(function(obj){
         obj.value="";
      });
   });

  // pour fermer le formulaire de création d'adresse
  Event.observe($('btnFermerLayerAdresses'), 'click', function() {
      new Effect.DropOut('layerModifAdresse');
  });

  // on demande confirmation avant de supprimer une adresse
  /*
  $$('.del_adresse').each(function(obj){
   Event.observe(obj, 'click', function() {
      if (confirm('Confirmez-vous la suppression de cette adresse ?'))
          {
            document.location.href='../s15_compte_client/s15p06_adresses_livraison.php?id='+obj.id+'&todo=del_adress';
         }
      });
   });
   */
}

function delAdresse(id)
{
   if (confirm('Confirmez-vous la suppression de cette adresse ?'))
   {
      document.location.href='/'+langue+'/s15_compte_client/s15p06_adresses_livraison.php?id='+id+'&todo=del_adress';
   }
}

function initPageModifierCompte()
{

   var formModifierCompte = new Validation('formModifierCompte',
   {
      useTitles:true,
      stopOnFirst:true,
      onFormValidate: function() {
         $('todo').value="submit_modify";
      }
   });

      initBirthdate();

}

function initBirthdate()
{
   Event.observe($('birthdate_j'), 'focus', function() {
       if($F('birthdate_j') == "JJ") $('birthdate_j').value = "";
   });

   Event.observe($('birthdate_m'), 'focus', function() {
       if($F('birthdate_m') == "MM") $('birthdate_m').value = "";
   });

   Event.observe($('birthdate_a'), 'focus', function() {
      if($F('birthdate_a') == "AAAA")  $('birthdate_a').value = "";
   });
}

function initPageModifierMdp()
{
var formModifyPassword = new Validation('formModifyPassword',
   {
      useTitles:true,
      stopOnFirst:true,
      onFormValidate: function() {
         $('todo').value="submit_modify";
      }
   });
}

// Page des coordonnées : sélectionne automatiquement la première adresse de la liste
function initPageCoordonnees()
{
   // Sélectionne l'adresse de livraison par défaut settée dans le template
   cmdSelectAddress($('jsDefaultAdresseLivraison').value); // Fonction située dans "commande.js"

   var commandeForm = new Validation('jsCommandeForm',
   {
      useTitles:true,
      stopOnFirst:true
   });
}


// Fonction pour masquer tous les layers vidéos de la page s2p7
function spaHideAllVideos()
{
   $('layerVideoA').hide();
   $('layerVideoB').hide();
   $('layerVideoC').hide();
   $('layerVideoD').hide();
   $('layerVideoE').hide();
}