$(function(){
  $("#warningjs").addClass("ishidden");
  $("#btafficher1").addClass("ishidden");
  $("#btafficher2").addClass("ishidden");
  
  onRecherche('.chprech');
  /*
  $('.chprech').focus(function(){
  onRecherchejQ($(this),$(this).attr('title'));
  });*/
  
  $('#chprech').autocomplete('admin/autocompannuaire.php', {
    cacheLength: 1,
  	matchContains: true,
  	matchSubset:false,
  	extraParams: {
          nompers: 1,
          persactive: 1,
          hasattrib: 1
    },
    selectFirst: false,
  	formatItem: formatItem,
  	formatResult: formatResult
  }).result(function(event, data) {
    var dataStr = new String(data);
    ar_data = dataStr.split(',');
    window.location.href='annuaire.php?idpers='+ar_data[0];
  });
  
  
  /********  Gestion du Carousel *******/
     var max_li = $("#carrousVign li").length - 1;
     
     var nb_alea = $("#carrousVign li.on").index('#carrousVign li');
     play_carrous();
     
     var timeoutID;
     var speedFadeIn = 900;
     var delayFadeIn = 400;  
     var speedFadeOut = 500;
     var delayShow = 13000;
     
     if( jQuery.support.opacity == false ) {
     speedFadeIn = 0;
     delayFadeIn = 0;
     speedFadeOut = 0;
     }
     
     function play_carrous(){
           
          $("#carrousVign li").removeClass('on');
          $("#carrousVign li:eq("+nb_alea+")").addClass('on');
          $("#carrousFull li:eq("+nb_alea+")").delay(delayFadeIn).fadeIn(speedFadeIn, function(){
            removeInlineStyle($("#carrousFull li:eq("+nb_alea+")"), 'filter');
          });
          if (max_li == 0){ return false; }
          $("#carrousFull li:visible:not(.premCarrous)").fadeOut(speedFadeOut);
          $("#carrousFull li").removeClass('premCarrous');
          
          
          nb_alea++;
          
          if (nb_alea > max_li) nb_alea = 0;
           
          timeoutID = window.setTimeout(function(){
               play_carrous();
          }, delayShow);
     }
  
  $("#carrousel").mouseover(function(){
    window.clearTimeout(timeoutID);
  });
  
  
  $("#carrousel").mouseout(function(){
    timeoutID = window.setTimeout(function(){
      play_carrous(nb_alea);
    }, delayShow);
  });  
  
  
  $("#carrousVign li a").click(function(){
    
    if ( $("#carrousFull li:animated").length != 0 
         || $(this).parent().hasClass('on') ) return false;
    
    nb_alea = $("#carrousVign li a").index(this) + 1;
    if (nb_alea > max_li) nb_alea = 0;
    
    var href_lien = $(this).attr('href');
    var idHref = href_lien.match(/(#f_car[0-9]+)$/);
    
    $("#carrousFull li:visible").fadeOut(speedFadeOut);
    $(idHref[0]).delay(delayFadeIn).fadeIn(speedFadeIn, function(){
      removeInlineStyle($(idHref[0]), 'filter');
    });
    
    $("#carrousVign li").removeClass('on');
    $(this).parent().addClass('on');
        
    return false;
  });
  
  /********  Gestion des SOUS-MENUS drop-down *******/
  
     var nbLignes = 15;
     var timeoutIDopen;
     var timeoutIDclose;
     var eMenu;
     var onssmenu = false;
     var onmenu = false;
     var isopen = false;
     var delayopen = 500;
     var delayclose = 1000;
     var menuSpeedSlide = 250;
     
     function emptyMenu(){
          $('#dd').css('visibility','hidden');
          $('#dd h4, #dd ul').remove();
          $('#dd div').empty();
          $('#dd div').removeClass('pager');
          $('#dd table').removeAttr('class');
          $('#dd, #dd div, #dd ul, #dd table').removeAttr('style');
     }
     
     function loadMenu(){
          emptyMenu();
          
          // segmenter le grand ul pour pagination
          var menuContent = $(eMenu).not('.mAgenda').parent().parent().children("dd");
          var lignes = $(menuContent.html()).children('li');
          
          var titre = $(menuContent).children('h4');
          var nbUL = parseInt( $(lignes).length / nbLignes );
          if( nbUL < $(lignes).length / nbLignes ) nbUL++;
          
          $('#dd div').append($(titre).clone());
          for( n = 0; n < nbUL; n++ ){           
               $('#dd div').append('<ul></ul>');               
               $('#dd ul:last').append($(lignes).children(':lt('+nbLignes+')'));
          }
          
          if( $(menuContent).length == 0 ){
               var menuContent = $(eMenu).parent().parent().children("dd").html();
               $('#dd').prepend(menuContent);
          }
          
          // dimensions et position          
          widthUlMax = $('#dd div').outerWidth(true);
          $('#dd, #dd div ul').css('width',widthUlMax + 'px');
          $('#dd div').css('width',widthUlMax * nbUL + 'px');
          $('#dd div ul').css('float','left');
          
          $('#dd div').addClass('pager');
          $('#dd').css('padding-top',$('#dd div.pager').outerHeight(true) + 'px');
          
          
          // init pagination          
          $('#dd table').addClass('first');
          var nPage = 1;
          updatePagin();
          if( nbUL > 1 ) $('#dd table').show();
         
          
          function updatePagin(){
               $('#dd .pPagin').html(nPage+'/'+nbUL);
          };
          
          
          // events pagination
          $('#dd a').unbind('click');
          
          $('#dd .pSuiv a').click(function(){
               nPage++;
               if( nPage == nbUL ) $('#dd table').addClass('last');               
               $('#dd table').removeClass('first');
               
               $('#dd div.pager').animate({
                   left: '-='+widthUlMax
                 }, menuSpeedSlide, function() {
                    updatePagin();
               });
               return false;
          });
          
          $('#dd .pPrec a').click(function(){
               nPage--;
               if( nPage == 1 ) $('#dd table').addClass('first');               
               $('#dd table').removeClass('last');
               
               $('#dd div.pager').animate({
                   left: '+='+widthUlMax
                 }, menuSpeedSlide, function() {
                   updatePagin();
               });
               return false;
          });        
          
          
          $('#dd').css('top', $('#motscles').offset().top + 'px');
          posMenu = $('#menu a:eq(0)').offset().left;
          posXmax = $(eMenu).position().left + eMenu.outerWidth(true);

          
          if ( $('#dd').outerWidth(true) < posXmax ) {
               $('#dd').css('left', posMenu + 'px');
               $('#dd').css('left', parseInt( posXmax - $('#dd').outerWidth(true) + posMenu ) + 'px');
          } else $('#dd').css('left', posMenu + 'px');
          
          if( $(menuContent).length > 0 ) $('#dd').css('visibility','visible');
          
          $('#menu dt a').removeClass('isover');
          $(eMenu).addClass('isover');
          isopen = true;          
     };
     
     function unloadMenu(){
          if( onssmenu == true || onmenu == true ) return false;
          emptyMenu();
          $('#menu dt a').removeClass('isover');
          isopen = false;
     };
     
     function countForClose(){
          window.clearTimeout(timeoutIDopen);
          timeoutIDclose = window.setTimeout(function(){
               unloadMenu();
          }, delayclose);
     };
     
     $('#dd').hover( function(){
          onssmenu = true;
     },function(){
          countForClose();
          onssmenu = false;
     });
     
     $('#menu dt a').hover( function(){
          eMenu = $(this);
          onmenu = true;
          window.clearTimeout(timeoutIDclose);
          if ( isopen ) delayFinal = 0; else delayFinal = delayopen; 
          timeoutIDopen = window.setTimeout( function(){
               loadMenu();
          }, delayFinal);

     }, function(){
          onmenu = false;
          countForClose();     
     });
     
     
     /********  Transformer un area map accessible (cf http://www.w3.org/TR/REC-html40/struct/objects.html#h-13.6.1) en un area map compréhensible pour IE ! *******/
     /* malheureusement non applicable aux area de type poly, je ne sais pourquoi mais (après de nombreux tests et beaucoup de temps de perdu) IE ne les gère pas de la même façon que les rectangles et un traitement JS ne permet pas de faire marcher la map comme pour les mots clés */
     
     var elementsA = $('map a[shape="rect"]');

     elementsA.each(function(){

          var lien = $(this).attr('href');
          var titre = $(this).attr('title');
          var coord = $(this).attr('coords');
          var shape = $(this).attr('shape');
          var texte = $(this).html();
          
          parentMap = $(this).parents('map');

          $(this).replaceWith('<area />');          
          parentMap.find('area:last').attr({
               href: lien,
               title: titre,
               coords: coord,
               shape: shape,
               alt: texte
          });
     });
     
     
     /********  Focus formulaire de contact *******/
     
     $('#centrcontact input').focus(function(){
          $(this).addClass('on');
     });
     
     $('#centrcontact input[type=text], #centrcontact textarea').blur(function(){
          $(this).removeClass('on');
     });
     
});

function formatItem(row) {
	return row[1] + ' ' + row[2] + ' ' + row[3] + '<span style="display:none">' + row[0] + '</span>';
}
function formatResult(row) {
	return row[2].replace(/<.+?>/gi, '');
}

function onRecherche(selector) {
  $(selector).each(function(){
    $(this).val($(this).attr('title'));
    consol($(this).attr('title'));
  });
  
  $(selector).focus(function(){
    onRecherchejQ($(selector),$(selector).attr('title'));
  }); 
}

function xtractUrlRWParamsAnn(datas){ //extrait les paramètres de l'URL REECRITE de l'annuaire et les renvoit dans un tableau associatif (objet)
          var expreg = '/.*'+nomAgenda+'-par-([a-z]+)((/voir-){1}(all|[0-9]+))?((/date-){1}([0-9]+))?((/affichage-){1}([a-z]+))?$';
          var m = datas.match(expreg);
          if ( m != null ) {
              var Params = new Array();
              Params['filtre'] = m[1];
              Params['data'] = m[4];
              Params['datejour'] = m[7];
              Params['affichage'] = m[10];
               
               return Params;
          } else return false;
}

function onRecherchejQ(e,txt){ // e un objet jQuery
if( e.val() == txt) {
  e.removeClass('noRech');
  e.val('');
  e.bind('change', function(){
    onRecherchejQ($(this),txt);
  });
  e.bind('blur', function(){
    onRecherchejQ($(this),txt);
  });
  return false;
}else
if( e.val() == '' ) {
  e.val(txt);
  e.addClass('noRech');
  $('#'+e.attr('name')+'_id').val('');
  e.unbind('change');
  e.unbind('blur');
  return false;
} else e.select();
}
