/*  Le Phare JavaScript library - (c) 2009
/*--------------------------------------------------------------------------*/
var EFFECT_DURATION = .5;
var EFFECT_DELAY    =  4;

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() {
      // Activation des navs par défault
      var body = $(document.body);
      switch (true) {
         case body.hasClassName('pageFMR') : $('sousNavA').addClassName('active').show(); break;
         case body.hasClassName('pageMVB') : $('sousNavB').addClassName('active').show(); break;
         case body.hasClassName('pageES')  : $('sousNavC').addClassName('active').show(); break;
      }
      $$('.jsNav').each(function(item){
         var sousnav = $(item).up().next('.jsSousNav');
         item
            .observe('mouseover',function(event){
               $$('.jsSousNav').each(function(e){if(e.id != sousnav.id){e.removeClassName('selected').hide();}});
               if (!sousnav.hasClassName('selected'))
                  sousnav.appear({ duration: EFFECT_DURATION }).addClassName('selected');
            })
      });
      $$('.btnAction').each(function(item){
         item.observe('mouseover',function(event){
            this.addClassName('btnActionHover');
         });
         item.observe('mouseout',function(event){
            this.removeClassName('btnActionHover');
         });
      });
      // Gestion du placeholder
      (function($) {
         $('.placeholder').placeholder();
         $('.tooltip').tipTip({defaultPosition: 'top', maxWidth: "auto"});
      })(jQuery);
      if ($('blocNewsletter')) initNewsletter();
   },

   registerSpecifics: function() {
      switch (this.idBody) {
         case 'pageFaq':              showFirstFaq();       break;
         case 'pageContact':          initContact();        break;
         case 'pageNewsletter':       initContact();        break;
         case 'pageDesabonnement':    initDesinscription(); break;
         case 'pageAccueil' :         initHome();           break;
         case 'pageDetailReference' : initReferences();     break;
      }
   }
});

// load
Event.observe(document, 'dom:loaded', function() {
   var loader = new Loader(document.body.id);
});

/*--------------------------------------------------------------------------*/

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:false, // 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 ($('dem_info_type_demande_')) {
      $('dem_info_type_demande_').observe('change', function() {
         if (this.options[this.selectedIndex].value == 5) {
            $('uploads').show();
            $$('#uploads input').invoke('addClassName', 'required');
         } else {
            $$('#uploads input').invoke('removeClassName', 'required');
            $('uploads').hide();
         }
      });
   }

   if($('errMsg')) {
      if($('errMsg').innerHTML  != '') {
         Element.show('errMsg'); Effect.BlindUp('errMsg', {delay:3});
      }
   }
}

function initNewsletter() {
   (function($) {
      var email = $('#chpEmail');
      // Repositionnement du placeholder (Fix pour Firefox)
      if ($.browser.mozilla)
         $('#blocNewsletter .placeholder-wrapper').css({top : 0, left: 0});

      // Envoi du formulaire en Ajax
      $('#blocNewsletter').parent('form').submit(function() {
         var form = $(this);
         if (email.val().length) {
            // Validation du champs
            if (!email.val().match(/^[a-zA-Z0-9_\.\-]+\@([a-zA-Z0-9\-]+\.)+[a-zA-Z0-9]{2,4}$/)) {
               email.tipTip({defaultPosition: 'top', maxWidth: '210px', activation: 'focus'}).focus();
            } else {
               $.ajax({
                  url:     form.attr('action'),
                  type:    form.attr('method') || 'POST',
                  data:    form.serialize(),
                  success: function(data, textStatus) {
                     email.tipTip({
                        defaultPosition: 'top',
                        maxWidth:        '210px',
                        content:         $('div.zoneCentree p', data).text(),
                        activation:      'click',
                        keepAlive:       false
                     }).click();
                  }
               })
            }
         }
         return false;
      });
   })(jQuery);
}

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 initHome() {
   (function($){
      $('#slider1').slideshow({timer: 7});
   })(jQuery);
}

function initReferences() {
   var slides = $$('#slides li');
   switch (true) {
      case slides.length <= 1: {
         $('btnVisuPrecedent').hide();
         $('btnVisuSuivant').hide();
         break;
      }
      default: {
          window.slideshow=new TINY.fader.fade('slideshow',{
             id:'slides',
             auto:3,
             resume:true,
             navid:'paginationSlide',
             activeclass:'current',
             visible:true,
             position:0
         });
      }
   }
}
