
var HANDLER_TIMER = false;

Event.observe(window, 'load', function() {
   gest_Tableau();
   // appel de la fontion qui gere le layer une voiture selectionné 
   infoLayer();
});

// gestion du click
// ajout l'evenment onClick à toute les lignes
function gestclck()
{
   $$('.lignetab').each(function(unObj){ 
      Event.observe(unObj, 'click', function(obj){
          
                    
            if(this.hasClassName('marked'))
            {  
               // si on clique sur une ligne prémarqué => on lui retire le marquage et on cache les infos 
               unset_marked();
               $('reponseLayerCourse').hide();
               $('reponseLayerCourse').update(no_car_selected);
            }
            else
            {
               // suppression de toute ligne selectionné
               $$('.lignetab').each(function(unObj){unObj.removeClassName('marked');});            
               // on marque la ligne !
               this.addClassName('marked');
               // on récupére les données !
               var numligne = this.id.replace('ligne_','');
               $('id_ligne').value = numligne;
               // on affiche le layer 
               $('reponseLayerCourse').show();
               // on gere le bouton fermer du layer !
               get_UnVoiture(numligne);
            }            
      });
   });
}
// gestion du tableau
function gest_Tableau()
{

      // on récupére les données !
      //var numligne = this.id.replace('ligne_','');
     var pars = 'idcourse='+$('id_course').value+
                '&identete='+$('id_entete').value+
                '&idvoiture='+$('id_ligne').value+
                '&idpreccateg=' + $('id_prec_categ').value+
                '&idcat='+$('id_categ').value+
                '&mode=all'+
                '&typecourse='+$('type_course').value; 
     var uri = '../../'+lang+'/s55_stat_archive_courses/_ajax_course.php';

      //$('wait_caract').show();

      var myAjax = new Ajax.Request( uri, 
                                          {
                                             method: 'get'
                                             , parameters: pars
                                             , onFailure: reportError
                                             , onComplete: setTime
                                             , onSuccess: function(transport) {   
                                                var myObject = transport.responseText.evalJSON();
                                                if(myObject.tabPrincipal.MAJ)
                                                {
                                                   // permet de savoir ou on en est 
                                                   // todo deplacement d'une page à l'autre!
                                                   if (typeof myObject.tabPrincipal.lecteur != "undefined")
                                                   {
                                                      $('js_id_last').value  = myObject.tabPrincipal.id_entete_last;
                                                      $('js_id_first').value = myObject.tabPrincipal.id_entete_first;
                                                      $('id_entete').value   = myObject.tabPrincipal.id_entete;
                                                      $('js_id_next').value  = myObject.tabPrincipal.id_entete_next;
                                                      $('lecteurCourse').update(myObject.tabPrincipal.lecteur);
                                                   }
                                                   $('dateClassement').update(myObject.tabPrincipal.dateClassement);
                                                   $('tab_classement').update(myObject.tabPrincipal.contenu);
                                                   $('id_prec_categ').value = myObject.tabPrincipal.preccat;
                                                   new Effect.Highlight('contentCourse',{startcolor:"#CADCE5"});                                                      

                                                   // permet de savoir ou on en est 
                                                   // todo deplacement d'une page à l'autre!
                                                   $('id_entete').value = myObject.tabPrincipal.id_entete;

                                                   // on recupere des infos de la voiture selection ... si y en a une
                                                   if($("reponseLayerCourse") && $('id_ligne').value!="NO_ID_LIGNE")
                                                   {
                                                      // on affiche le layer 
                                                      $('reponseLayerCourse').show();
                                                      // on gere le bouton fermer du layer !
                                                      
                                                         $('reponseLayerCourse').update(myObject.voiture.contenu);
                                                      $('ligne_'+$('id_ligne').value).addClassName('marked');
                                                   }
                                                   // mise à jour des news
                                                   get_classement(myObject.tabSecondaire.contenuTS);
                                                   get_news(myObject.breve.contenuB);
                                                   gestclck();
                                                }
                                                else
                                                {                                               
                                                   // je ne remet rien à jour ... ou ... je sais pas encore  
                                                }

                                             }
                                          }
                                   );
                               
}
function setTime(){                             
   //optimisation afin de remettre à jour 60 sec apres la fin de la maj précédente.
   //window.setTimeout('gest_Tableau()', 45000);
   if(HANDLER_TIMER) window.clearTimeout(HANDLER_TIMER);
   HANDLER_TIMER=window.setTimeout('gest_Tableau()', 45000);
}

function reportError(){alert('une Erreur est survenu lors de l\'execution du script...');}

function get_UnVoiture(numligne)
{
      var pars = 'mode=uneVoiture&idvoiture='+numligne+'&typecourse='+$('type_course').value+'&identete='+$('id_entete').value+'&idcourse='+$('id_course').value; 
      var uri = '../../'+lang+'/s55_stat_archive_courses/_ajax_course.php';

      //$('wait_caract').show();
      var myAjax = new Ajax.Request( uri, 
                                          {
                                             method: 'get'
                                             , parameters: pars
                                             , onFailure: reportError
                                             ,onSuccess: function(transport) {
                                                var myObject = transport.responseText.evalJSON();
                                                //console.log(myObject);
                                                if($("reponseLayerCourse"))
                                                $('reponseLayerCourse').update(myObject.voiture.contenu);
                                             }
                                          }
                                   );
}
// gestion des categories de voiture
function gest_Categorie(obj)
{
   
}
// private !!! :)
function gest_UneCateg(num)
{
      var num = num.toString();
      
      $$('.lignetab').each(function (obj){obj.show();});
      
      if(num == "all") return;
      $$('.lignetab').each(function (obj){
         if(!obj.hasClassName(num))
         {
            obj.toggle();
         }
         
      });
}
// function qui retire le marquage de la ligne
function unset_marked()
{
   $('id_ligne').value="NO_ID_LIGNE";
   $$('.marked').each(function(obj){
      obj.removeClassName('marked');
   });
}
function closeLayer()
{
   /// on le cache 
   $('reponseLayerCourse').hide();
   unset_marked();
}
function get_categorie(obj)
{
   //On recupére le num de la categ
   var numcat = obj.id.replace('categorie_','');
   // applique le numéro dans le hidden id_categ
   $('id_categ').value = numcat;
   gest_Tableau();
}

function infoLayer()
{
   // permet de dragger le layer !!! 
   if($("reponseLayerCourse")){ new Draggable("reponseLayerCourse", {revert:false});}
}                                                   

   var pe = null; // PeriodicalExecuter
   
function stop_play()
{
   if(pe)
   {
       pe.stop();
       pe = null;
   }           
}

function goto_circuit()
{
   if ($('menu_circuit').value != 0) document.location.href = "../s55_stat_archive_courses/s55p01_classement.php?id_course="+$('menu_circuit').value;  
}

function goto_prev(id_prev)
{
   stop_play(); // pour éviter une lecture auto + un changement manuel...
 
   if(id_prev != 0)
   {
      $('id_entete').value = id_prev;
      gest_Tableau();
   }
}

function goto_next(id_next)
{
   stop_play(); // pour éviter une lecture auto + un changement manuel...
   
   if(id_next != 0)
   {
      $('id_entete').value = id_next;
      gest_Tableau();
   }
}

function goto_first()
{
   stop_play(); // pour éviter une lecture auto + un changement manuel...
   
   if($F('id_entete') != 1)
   {
      $('id_entete').value = $F('js_id_first');
      gest_Tableau();
   }
}

function goto_last()
{
   stop_play(); // pour éviter une lecture auto + un changement manuel...
   if($F('js_id_next') != 0)
   {      
      $('id_entete').value = $F('js_id_last');
      gest_Tableau();
   }
}

function goto_play()
{
   stop_play(); // pour éviter d'avoir plusieurs PeriodicalExecuter en même temps...
   
    // on créer un objet Prototype PeriodicalExecuter...
    // L'intervalle est à indiquer en seconde !
   pe = new PeriodicalExecuter(function(){
         
         // si on est déjà au dernier on arrête la lecture
         if($F('js_id_next') == "0") pe.stop();
         else // sinon on continue...
         {
            $('id_entete').value = $F('js_id_next');
            gest_Tableau();  
         }   
    }, 5);    
}
