var timer;
 var item_height;
var SPEED = 5000;

$(function () {

// Hauteur des miniature de la liste
   item_height = parseInt($('#slide_actus_accueil .items li').css('height'));
   
   // On affiche le premier élément de la liste
   slide_display(0);
   
   // On lance le timer
   timer = setInterval('slide()', SPEED);
   
   // Gestion du rollover sur le slide (on stop le timer)
   $('#slide_actus_accueil').hover(
    function() {
     clearInterval(timer);
     timer = null;
    },
    function() {
     timer = setInterval('slide()', SPEED);
    }
   );
   
   // Gestion du click sur les items
   $('#slide_actus_accueil .items li').click(function() {
    slide_display($('#slide_actus_accueil .items li').index($(this)));
   });
   
   // Gestion du click sur les boutons "up" et "down"
   $('#slide_actus_accueil button').click(function() {
    slide($(this).attr('class'));
   });
});   



   /**
    * Gère l'affichage du slide
    *
    * @param String dir la direction du slide ("up" ou "down") par défault "down"
    */
   function slide(dir)
   {
    // On récupère l'index de l'item en cours d'affichage
    var index = $('#slide_actus_accueil .items li').index($('#slide_actus_accueil .items li.current'));
    
    // Si un timer existe, alors la direction est "down" et on revient
    // à l'item 0 une fois le dernier item affiché
    if (null != timer) {
     dir = 'down';
     if (index == $('#slide_actus_accueil .items li').length - 1) {
      $('#slide_actus_accueil .items').css('margin-top', 0);
      slide_display(0);
      return;
     }
    }
    
    index += (dir == 'up') ? -1 : 1;
    
    // On vérifie si l'item à afficher est visible
    var items_marge_min = Math.abs(parseInt($('#slide_actus_accueil .items').css('margin-top')));
    var items_marge_max = items_marge_min + item_height * 4;
    var item_is_visible = (items_marge_max > index * item_height && index * item_height >= items_marge_min);
    
    if (dir == 'up' && index >= 0) {
     // Si l'item à afficher n'est pas visible, on incrémente
     // le "margin-top" de la liste des items
     if (!item_is_visible)
      $('#slide_actus_accueil .items').css('margin-top', '+=' + item_height);
     
     slide_display(index);
     
    } else if (dir == 'down' && index < $('#slide_actus_accueil .items li').length) {
     // Si l'item à afficher n'est pas visible, on incrémente
     // le "margin-top" de la liste des items
     if (!item_is_visible)
      $('#slide_actus_accueil .items').css('margin-top', '-=' + item_height);
     
     slide_display(index);
    }
   }
   
   /**
    * Affiche un item en fonction de son index
    *
    * @param int index l'index de l'item dans la liste
    */
   function slide_display(index)
   {
    $('#slide_actus_accueil .items li').removeClass('current');
    $('#slide_actus_accueil .items li:eq(' + index + ')').addClass('current');
    $('#slide_actus_accueil .slide-datas').empty().append($('#slide_actus_accueil .items li:eq(' + index + ') div.datas').clone());
    $('#slide_actus_accueil .slide-datas').css('background-image', 'url(' + $('#slide_actus_accueil .items li:eq(' + index + ') img').attr('src') + ')');
   } 
