/*********************************************************************/
/*    variables      */
/*********************************************************************/
NBRotations=1;/*nombre de rotations a chaque cycle*/
NBSecTimerID=10;/*tempo du timer*/
NBSecTimerID1=60;/*tempo du timer 1*/
TailleCPTR=10;/*nbre de pages affichees dans le compteur*/
var timerID  = null;
var timerID1  = null;
var t1=0;
var t=0;
var PremierDeLaListe = 1;
var DernierDeLaListe = 1;
var tailleCompteur3 = TailleCPTR;
/*********************************************************************/
/***********************    Init            **************************/
/*********************************************************************/
function init() {
 if(document.getElementById("Page_1") != null)  
 {
   //alert("init");
   document.getElementById("Page_1").style.visibility = "visible";
   document.getElementById("Page_1").style.zIndex = 1;
   /* reaffichage du compteur */   
   if(document.getElementById("CptrId") != null) CptrAffiche();//si compteur 1   
   if(document.getElementById("CptrId2") != null) Cptr2Affiche(1,1);//si compteur 2
   if(document.getElementById("CptrId3") != null){
       //initialiser la taille du compteur3
       _idpage_content = document.getElementById("page_content");
       var nbPages = _idpage_content.childNodes.length;
       if (nbPages < TailleCPTR) tailleCompteur3 = nbPages;
       Cptr3Affiche(1, 1); //si compteur 3
       for (var j = 1; j < tailleCompteur3 + 1; j++)//rendre les cases de l'intervalle suivant visibles
       document.getElementById("CptrId3").firstChild.cells[j].style.visibility = "visible";
   } 
 }
}
/*********************************************************************/
/*reload de la page*/
/*********************************************************************/
function refresh(){
  _idpage_content = document.getElementById("page_content"); 
  var nbfils = _idpage_content.childNodes.length;
  if(nbfils > 1 ) 
  { 
   t1 = t1+1;
   if (t1 < NBSecTimerID1 ) {
      timerID1 = setTimeout("refresh()",1000);
   } else {
        t1 = 0;
        document.location=document.location+"?"+Math.random();
        refresh();
   }
  } 
}
/*********************************************************************/
/* test de chargement : si pas de donnees afficher No data */
/*********************************************************************/
function LodingTest(){
 if(document.getElementById("Page_1") == null){  
    document.getElementById("idpage_nodata").style.visibility = "visible";
    if(document.getElementById("CptrId") != null)  document.getElementById("CptrId").style.visibility = "hidden";
    if(document.getElementById("CptrId2") != null)  document.getElementById("CptrId2").style.visibility = "hidden";    
    if(document.getElementById("CptrId3") != null)  document.getElementById("CptrId3").style.visibility = "hidden";    	
  }
}
/*********************************************************************/
/*                      Compteur I                                   */
/*********************************************************************/
/*********************************************************************/
/* affichage compteur 1 */
/*********************************************************************/
function CptrAffiche() {
    _nbRows = document.getElementsByName("TableRowId").length; //nbre de ROWs : id=RowId_xx
    _idpage_content = document.getElementById("page_content");
    var nbfils = _idpage_content.childNodes.length;
    var numPage = 1;
    if (nbfils > 1) {
        for (var i = 1; i < (nbfils + 1); i++) {//trouver la page visible
            if (document.getElementById("Page_" + i).style.visibility == "visible") numPage = i;
        }
    }    
    _id = document.getElementById("Page_"+numPage).firstChild.id; //RowId_1
    _idLen = _id.length; //taille de _id
    _prefixLen = 6; //taille du prefix RowId_ = 6
    PremierDeLaListe = _id.substring(_prefixLen, _idLen); //chaine a partir de la position 6.
    _id = document.getElementById("Page_" + numPage).lastChild.id; //RowId_{dernier de la pge}
    _idLen = _id.length; //taille de _id
    DernierDeLaListe = _id.substring(_prefixLen, _idLen); //chaine a partir de la position 6.
    document.getElementById("CompteurId").innerText = PremierDeLaListe + " - " + DernierDeLaListe + " / " + _nbRows;
}
/*********************************************************************/
/* rotation incrementale */  
/*********************************************************************/
function rotateup() {
    _idpage_content = document.getElementById("page_content");
    var nbfils = _idpage_content.childNodes.length;
    var numPage = 1;
    if (nbfils > 1) {
        for (var i = 1; i < (nbfils + 1); i++) {//trouver la page visible
            if (document.getElementById("Page_" + i).style.visibility == "visible") numPage = i;
        }
        /* reaffichage du compteur */
        next = numPage + 1;
        if (next == nbfils + 1) next = 1;
        disablePage(numPage);
        enablePage(next);
        /* reaffichage du compteur */
        if (document.getElementById("CptrId") != null) CptrAffiche(); //si compteur 1
    }
}
/*********************************************************************/
/* rotation decrementale */
/*********************************************************************/
function rotatedown() {
    _idpage_content = document.getElementById("page_content");
    var nbfils = _idpage_content.childNodes.length;
    var numPage = 1;
    if (nbfils > 1) {
        for (var i = nbfils; i > 0; i--) {
            //trouver la page visible
            if (document.getElementById("Page_" + i).style.visibility == "visible") numPage = i;
        }
        /* reaffichage du compteur */
        prev = numPage - 1;
        if (prev == 0) prev = nbfils;
        disablePage(numPage);
        enablePage(prev);
        /* reaffichage du compteur */
        if (document.getElementById("CptrId") != null) CptrAffiche(); //si compteur 1
    }
}
/*********************************************************************/
/* demarrage de la rotation periodique automatique : compteur 1*/
/*********************************************************************/
function demarre(){
  _idpage_content = document.getElementById("page_content"); 
  var nbfils = _idpage_content.childNodes.length;
  if(nbfils > 1 )
  {
    t = t+1;
    if (t < NBSecTimerID ) {
      timerID = setTimeout("demarre()",1000);
    } else {
      t = 0;
      for(i=0;i<NBRotations;i++)  
      {
          rotateup();
      }        
      demarre();
    }
  } 
}
/*********************************************************************/
/* bouton up */
/*********************************************************************/
function up(){
    rotateup();
}
/*********************************************************************/
/* bouton down */
/*********************************************************************/
function down(){
    rotatedown();
}
/*********************************************************************/
/*                      Compteur II                                  */
/*********************************************************************/
/*********************************************************************/
/* affichage compteur 2 */
/*********************************************************************/
function Cptr2Affiche(normalPage,boldPage)
{
  /*mettre en gras la case contenant l'indice*/
  document.getElementById("CptrId2").firstChild.cells[normalPage].style.fontWeight = "normal";
  document.getElementById("CptrId2").firstChild.cells[boldPage].style.fontWeight = "bold";
}
/*********************************************************************/
/* prochaine page : cptr 2 */  
/*********************************************************************/
function goToNext() {
  _idpage_content = document.getElementById("page_content"); 
  var nbfils = _idpage_content.childNodes.length;
  var numPage = 1;
  if(nbfils > 1)
  { 
    for (var i=1; i<(nbfils+1); i++ )
    {//trouver la page visible
      if(document.getElementById("Page_"+i).style.visibility == "visible") numPage = i;
    }
    /* reaffichage du compteur */
    next = numPage+1;
    if(next == nbfils+1 ) next=1 ;   
    disablePage(numPage);
    enablePage(next);
    if(document.getElementById("CptrId2") != null) Cptr2Affiche(numPage,next);//si compteur 1
  }
}
/*********************************************************************/
/* page precedente : cptr 2 */  
/*********************************************************************/
function goToPrevious() {
  _idpage_content = document.getElementById("page_content"); 
  var nbfils = _idpage_content.childNodes.length;
  var numPage = 1;
  if(nbfils > 1)
  { 
    for (var i=nbfils; i>0; i-- )
    {
      //trouver la page visible
      if(document.getElementById("Page_"+i).style.visibility == "visible") numPage = i;
    }
    /* reaffichage du compteur */
    prev = numPage-1;
    if(prev == 0 ) prev=nbfils ;
    disablePage(numPage);
    enablePage(prev);
    if(document.getElementById("CptrId2") != null) Cptr2Affiche(numPage,prev);//si compteur 1
  }
}
/*********************************************************************/
/* demarrage de la rotation periodique automatique : compteur 2*/
/*********************************************************************/
function demarre2(){
  _idpage_content = document.getElementById("page_content"); 
  var nbfils = _idpage_content.childNodes.length;
  if(nbfils > 1 )
  {
    t = t+1;
    if (t < NBSecTimerID ) {
      timerID = setTimeout("demarre2()",1000);
    } else {
      t = 0;
      for(i=0;i<NBRotations;i++)  
      {
        goToNext();
      }        
      demarre2();
    }
  } 
}
/*********************************************************************/
/*                      Compteur III                                 */
/*********************************************************************/
/*********************************************************************/
/* affichage compteur 3 */
/*********************************************************************/
function Cptr3Affiche(normalPage,boldPage)
{
  /*mettre en gras la case contenant l'indice*/
  document.getElementById("CptrId3").firstChild.cells[normalPage].style.fontWeight = "normal";
  document.getElementById("CptrId3").firstChild.cells[boldPage].style.fontWeight = "bold";
}
/*********************************************************************/
/* choix page : cptr 3 */  
/*********************************************************************/
function activatePage(newIndice) {
  _idpage_content = document.getElementById("page_content");
  var nbfils = _idpage_content.childNodes.length;
  var numPage = 1;

  if(nbfils > 1)
  { 
    for (var i=nbfils; i>0; i-- )
    {//trouver la page visible
      if(document.getElementById("Page_"+i).style.visibility == "visible") numPage = i;}
    /* reaffichage du compteur */
      disablePage(numPage);       
      newPage = document.getElementById("ref_"+newIndice).innerText;
      enablePage(newPage);
      if(document.getElementById("CptrId3") != null) Cptr3Affiche(numPage,newPage);//si compteur 3
  }
}
/*********************************************************************/
/* Activer / désactiver une page */
/*********************************************************************/
function enablePage(numPage) {
    document.getElementById("Page_" + numPage).style.visibility = "visible";//rendre visible
    document.getElementById("Page_" + numPage).style.zIndex = 1; //augmenter sa priorité (une seule page à 1)
}
function disablePage(numPage) {
    document.getElementById("Page_" + numPage).style.visibility = "hidden"; //cacher la page actuelle
    document.getElementById("Page_" + numPage).style.zIndex = 0;//baisser sa priorité
}
/*********************************************************************/
/* Aller a page : cptr 3 */  
/*********************************************************************/
function goToPage(){
	//récuperer le contenu de la case cliquée
	//activer la page
}
/*********************************************************************/
/* indices precedents / suivants : cptr 3 */  
/*********************************************************************/
function previousIndices() {
  _idpage_content = document.getElementById("page_content"); 
  var nbfils = _idpage_content.childNodes.length;
  var numPage = 1;  
  var plage;
  var nodeRef;
  if(nbfils > 1){
    for (var i=nbfils; i>0; i-- )//trouver la page affichée
      if(document.getElementById("Page_"+i).style.visibility == "visible") numPage = i;
      plage = Math.floor((numPage-1) / (tailleCompteur3)); //determiner l'intervalle auquel elle appartient
      debutPlage = (plage * tailleCompteur3) + 1; //debut de l'intervalle
      finPlage = (plage + 1) * tailleCompteur3; //fin de l'intervalle
	if(finPlage > nbfils) finPlage = nbfils;
	if(debutPlage > 1){//si ce n'est pas la 1ere plage
    	//alert(numPage+" / "+debutPlage+" / "+finPlage);
	    for (var j = 1; j < tailleCompteur3 + 1; j++)//reaffecter les 10 cases du cptr
	        if (document.getElementById("ref_" + (debutPlage - tailleCompteur3 + j - 1)) != null) {
	            nodeRef = document.getElementById("ref_" + (debutPlage - tailleCompteur3 + j - 1)).cloneNode(true);
  			Oldnode = document.getElementById("IndiceVisible_"+j).firstChild;
			if (Oldnode != null) document.getElementById("IndiceVisible_" + j).removeChild(Oldnode);
    			document.getElementById("IndiceVisible_" + j).appendChild(nodeRef);				
		  }
		  activatePage(debutPlage - tailleCompteur3);
	}
  }
}
function nextIndices() {
  _idpage_content = document.getElementById("page_content"); 
  var nbfils = _idpage_content.childNodes.length;
  var numPage = 1;  
  if(nbfils > 1){
    for (var i=nbfils; i>0; i-- )//trouver la page affichée
      if(document.getElementById("Page_"+i).style.visibility == "visible") numPage = i;
    plage = Math.floor((numPage-1) / (tailleCompteur3)); //determiner l'intervalle auquel elle appartient
    debutPlage = (plage * tailleCompteur3) + 1; //debut de l'intervalle
    finPlage = (plage + 1) * tailleCompteur3; //fin de l'intervalle
    derDebut = Math.floor((nbfils - 1) / tailleCompteur3) * tailleCompteur3 + 1; //debut dernier intervalle
	if (debutPlage < derDebut) 
	{
	    for (var j = 1; j < tailleCompteur3 + 1; j++)//reaffecter les 10 cases du cptr
		  if (document.getElementById("ref_"+(finPlage + j)) != null) 
		  {
			nodeRef = document.getElementById("ref_"+(finPlage + j)).cloneNode(true);;
			if (document.getElementById("IndiceVisible_"+j).firstChild != null) 
			{
    			Oldnode = document.getElementById("IndiceVisible_"+j).firstChild;
    			document.getElementById("IndiceVisible_" + j).appendChild(nodeRef);
				document.getElementById("IndiceVisible_" + j).removeChild(Oldnode);
			}
		  }else document.getElementById("CptrId3").firstChild.cells[j].innerText = "";
     	activatePage(finPlage+1);
	}
  }
}
/*********************************************************************/
/* prochain intervalle : cptr 3 */  
/*********************************************************************/
function rotateIntervalles() {
  _idpage_content = document.getElementById("page_content");
  var nbfils = _idpage_content.childNodes.length;
  var nbPlages = Math.floor(nbfils / tailleCompteur3) + 1;
  var numPage = 1;
  if (nbPlages > 1) {
      for (var i = nbfils; i > 0; i--)//trouver la page affichée
          if (document.getElementById("Page_" + i).style.visibility == "visible") numPage = i;
      plage = Math.floor((numPage - 1) / (tailleCompteur3)) + 1; //determiner l'intervalle auquel elle appartient
     //alert("plage = "+plage+" / nbplages = "+nbPlages+" / page = "+numPage);
      if(plage < nbPlages)//si ce n'est pas la derniere plage
      {
          nextIndices();  //aller à la prochaine plage  
      }
      else
      { for(var j=1; j<nbPlages; j++) previousIndices(); }   //retourner à la 1ere plage
  }
}
/*********************************************************************/
/* demarrage de la rotation periodique automatique : compteur 3      */
/*********************************************************************/
function demarre3()
{
  _idpage_content = document.getElementById("page_content"); 
  var nbfils = _idpage_content.childNodes.length;
  if(nbfils > 1 )
  {
    t = t+1;
    if (t < NBSecTimerID ) {
      timerID = setTimeout("demarre3()",1000);
    } else {
      t = 0;
      rotateIntervalles();
      demarre3();
    }
  } 
}
