/*
// jquery.menuaccordeon.js
*/
$(document).ready( function() {
  $('#menuAccordeon').menuaccordeon({btnOnOffAll: false,
                            ouvrirActif: true,
                            ouvrirTout: false,
                            toggle: true});
});

jQuery.fn.menuaccordeon = function(options) {
  
  var cCont = this;
  var sousMenuDom = jQuery('> li > ul', cCont); 
  
  var settings = {
    btnOnOffAll: false,
    ouvrirActif: true,
    ouvrirTout: false,
    ouvrir: null,
    toggle: true
  };
    
  if(options)	$.extend(settings, options);
  
  return cCont.each(function() {    
    cCont.find('> li > ul').hide()
    .parent().prepend('<img class="btnOnOff ouvrirOff" src="' + webRoot +'img/vide.gif" width="13" height="13" alt="" />')
    .css('position', 'relative')
    .find('img.btnOnOff').click(function(){
      var sousMenu = $(this).next().next();
      if(settings.toggle) {
        sousMenuDom.each(function(){
          if(this != sousMenu.get(0) && $(this).is(':visible') && sousMenu.is(':hidden')){
            $(this).slideUp('fast', function(){
              $(this).prev().prev().removeClass('fermerOff fermerOn ouvrirOn');
              $(this).prev().prev().addClass('ouvrirOff');
            });
          }
        });
      }
      if(sousMenu.is(':visible')){
        sousMenu.slideUp('fast', function(){
          $(this).prev().prev().removeClass('fermerOff fermerOn ouvrirOn');
          $(this).prev().prev().addClass('ouvrirOff');
        });
      } 
      else{
        sousMenu.slideDown('fast', function(){
          $(this).prev().prev().removeClass('ouvrirOff ouvrirOn fermerOn');
          $(this).prev().prev().addClass('fermerOff');
        });
      }
      return false;
    })
    .hover(
    function(){
      var btn = $(this);
      var sousMenu = $(this).next().next();
      if(sousMenu.is(':visible')){
        btn.removeClass('fermerOff ouvrirOff ouvrirOn');
        btn.addClass('fermerOn');
      } 
      else{
        btn.removeClass('ouvrirOff fermerOff fermerOn');
        btn.addClass('ouvrirOn');
      }
      return false;
    },
    function(){
      var btn = $(this);
      var sousMenu = $(this).next().next();
      if(sousMenu.is(':visible')){
        btn.removeClass('fermerOn ouvrirOff ouvrirOn');
        btn.addClass('fermerOff');
      } 
      else{
        btn.removeClass('ouvrirOn fermerOff fermerOn');
        btn.addClass('ouvrirOff');
      }
      return false;
    });
     
    var active = cCont.find('span.active');
    if(settings.ouvrirActif && active.length > 0)
    {
      var id = cCont.attr('id');
      jQuery.menuaccordeon.activer(id, $(active).parent());
    }
    
    if(settings.ouvrirTout)
    {
      jQuery.menuaccordeon.ouvrir(cCont);
    }
    
    if(settings.btnOnOffAll)
    {
      cCont.prepend('<li class="onOffGlobal"><a href="#">Fermer tout</a> | <a href="#">Tout ouvrir</a></li>')
      .children().eq(0)
      .find('a').eq(0)
      .click(function(){
        jQuery.menuaccordeon.fermer(cCont);
        return false;
      }).parent()
      .find('a').eq(1)
      .click(function(){
        jQuery.menuaccordeon.ouvrir(cCont);
        return false;
      });
    }
    
    if(settings.ouvrir)
    {
      cCont.find('> li > ul').parent().children().eq(1).each(function(){
        var id = cCont.attr('id');
        var flag = false;
        if($(this).text() == settings.ouvrir[0]) jQuery.menuaccordeon.activer(id, $(this).parent());
        else if(settings.ouvrir[1] && $(this).text() == settings.ouvrir[1]) jQuery.menuaccordeon.activer(id, $(this).parent());
      });
    }
    
    return cCont;
  });
};

jQuery.menuaccordeon = function() {};
jQuery.menuaccordeon.activer = function(id, active){
  if($(active).parent().attr('id') == id)
  {
    $(active).find('ul').show();
    $(active).find('img.btnOnOff').removeClass('fermerOn ouvrirOff ouvrirOn');
    $(active).find('img.btnOnOff').addClass('fermerOff');
  }
  else{
    jQuery.menuaccordeon.activer(id, $(active).parent());  
  }
};

jQuery.menuaccordeon.ouvrir = function(menu, sousMenu){
  if(sousMenu == null) 
  {
    menu.find('> li > ul').show()
    .parent().find('img.btnOnOff')
    .removeClass('fermerOn ouvrirOff ouvrirOn')
    .addClass('fermerOff');
    return;
  }
  menu.find('> li > ul').eq(sousMenu).show()
  .parent().find('img.btnOnOff')
  .removeClass('ouvrirOn fermerOff fermerOn')
  .addClass('ouvrirOff');
  return;
};

jQuery.menuaccordeon.fermer = function(menu, sousMenu){
  if(sousMenu == null) 
  {
    menu.find('> li > ul').hide()
    .parent().find('img.btnOnOff')
    .removeClass('ouvrirOn fermerOff fermerOn')
    .addClass('ouvrirOff');
    return;
  }
  menu.find('> li > ul').eq(sousMenu).hide()
  .parent().find('img.btnOnOff')
  .removeClass('ouvrirOn fermerOff fermerOn')
  .addClass('ouvrirOff');
  return;
};
