// Fonctions pour la gestion des cookies ///////////////////////////////////////

// Ecriture
function EcrireCookie(nom, valeur)
{
  var argv=EcrireCookie.arguments;
  var argc=EcrireCookie.arguments.length;
  var expires=(argc > 2) ? argv[2] : null;
  var path=(argc > 3) ? argv[3] : null;
  var domain=(argc > 4) ? argv[4] : null;
  var secure=(argc > 5) ? argv[5] : false;
  
  document.cookie=nom+"="+escape(valeur)+
  ((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
  ((path==null) ? "" : ("; path="+path))+
  ((domain==null) ? "" : ("; domain="+domain))+
  ((secure==true) ? "; secure" : "");
}

// Lecture
function getCookieVal(offset)
{
var endstr=document.cookie.indexOf (";", offset);
if (endstr==-1) endstr=document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
function LireCookie(nom)
{
var arg=nom+"=";
var alen=arg.length;
var clen=document.cookie.length;
var i=0;
while (i<clen)
{
var j=i+alen;
if (document.cookie.substring(i, j)==arg) return getCookieVal(j);
i=document.cookie.indexOf(" ",i)+1;
if (i==0) break;

}
return null;
}

// Suppression
function EffaceCookie(nom)
{
date=new Date;
date.setFullYear(date.getFullYear()-1);
EcrireCookie(nom,null,date);
}

////////////////////////////////////////////////////////////////////////////////

// Affichage/Masquage de blocs DIV /////////////////////////////////////////////
function afficher(baliseId)
{
  if (document.getElementById && document.getElementById(baliseId) != null)
  {
    document.getElementById(baliseId).style.visibility ='visible';
    document.getElementById(baliseId).style.display='block';
  }
}
        
function cacher(baliseId)
{
  if (document.getElementById && document.getElementById(baliseId) != null)
  {
    document.getElementById(baliseId).style.visibility='hidden';
    document.getElementById(baliseId).style.display='none';
  }
}

function alterner(baliseId) {
  if (document.getElementById && document.getElementById(baliseId) != null)
  {
    if(document.getElementById(baliseId).style.visibility == 'hidden'){
      afficher(baliseId);
    } else {
      cacher(baliseId);
    }
  }
}

function montrerPage(numPage, nbPages)
{
  var i = 1;
  while(i <= nbPages)
  {
    if(i != numPage)
    {
      cacher("page" + i);
    }
    else
    {
      afficher("page" + i);
    }
    i++;
  }
  document.getElementById('curPage').value = numPage;
  document.getElementById("labelPage").innerHTML = "Page " + numPage + "/" + nbPages;
}

function changerPage(sens, nbPages)
{
  if (document.getElementById && document.getElementById('curPage') != null)
  {
    pageCourante = document.getElementById('curPage').value;
    
    if(sens > 0)
    {
      if(pageCourante < nbPages)
      {
        cacher("page" + pageCourante);
        pageCourante++;
        afficher("page" + pageCourante);
        document.getElementById('curPage').value = pageCourante;
      }
    }
    else
    {
      if(pageCourante > 1)
      {
        cacher("page" + pageCourante);
        pageCourante--;
        afficher("page" + pageCourante);
        document.getElementById('curPage').value = pageCourante;
      }
    }
    document.getElementById("labelPage").innerHTML = "Page " + pageCourante + "/" + nbPages;
  }
}

// Mise en évidence du bouton de changement de page sur lequel la souris pointe
function mouseOverBtPage(codeBouton)
{
  switch(codeBouton)
  {
    case 1: nomBouton = 'Debut';
            break;
    case 2: nomBouton = 'Prec';
            break;
    case 3: nomBouton = 'Suiv';
            break;
    default: nomBouton = 'Fin';
            break;
  }
  if (document.getElementById && document.getElementById('boutonHaut'+nomBouton) != null)
  {
    document.getElementById('boutonHaut'+nomBouton).className='boutonPageSel';
    document.getElementById('boutonBas'+nomBouton).className='boutonPageSel';
  }
}

function mouseOutBtPage(codeBouton)
{
  switch(codeBouton)
  {
    case 1: nomBouton = 'Debut';
            break;
    case 2: nomBouton = 'Prec';
            break;
    case 3: nomBouton = 'Suiv';
            break;
    default: nomBouton = 'Fin';
            break;
  }
  
  if (document.getElementById && document.getElementById('boutonHaut'+nomBouton) != null)
  {
    document.getElementById('boutonHaut'+nomBouton).className='boutonPage';
    document.getElementById('boutonBas'+nomBouton).className='boutonPage';
  }
}

// Affichage/masquage du bloc contenant le bandeau sous forme miniature ou normale
function mini()
{
  cacher('bandeau_max');
  afficher('bandeau_min');
  
  // Ecrire le cookie, valide 6 mois
  date=new Date;
  date.setMonth(date.getMonth()+6);
  EcrireCookie("taille_bandeau", "min", date);
}
function max()
{
  cacher('bandeau_min');
  afficher('bandeau_max');
  
  // Ecrire le cookie, valide 6 mois
  date=new Date;
  date.setMonth(date.getMonth()+6);
  EcrireCookie("taille_bandeau", "max", date);
}

////////////////////////////////////////////////////////////////////////////////
// Gestion du changement de couleur du site public /////////////////////////////

function EnregistrerCouleur(couleur)
{
  // Ecrire le cookie, valide 6 mois
  date=new Date;
  date.setMonth(date.getMonth()+6);
  EcrireCookie("couleur_site", couleur, date);
}

function ChangerCouleur(couleur)
{
  EnregistrerCouleur(couleur);
  listeParams = location.search.substring(1, location.search.length);
  listeParams = listeParams.split("&");
  rechargeSimple = false;
  for(i=0;i < listeParams.length && !rechargeSimple;i++)
  {
    maVariable = listeParams[i].substring(0, listeParams[i].indexOf("="));
    if(maVariable == "var_mode")
    {
      rechargeSimple = true;
    }
  }
  if(rechargeSimple)
  {
    location.reload();
  }
  else
  {
    urlCourante = new String(window.location);
    if(urlCourante.charAt(urlCourante.length - 1) == '/') {
      window.location.replace(window.location + "?var_mode=recalcul");
    } else {
      window.location.replace(window.location + "&var_mode=recalcul");
    }
  }
}

function RecupererCouleur()
{
  var couleur = LireCookie("couleur_site");
  var rep_couleur = "";
  
  if(couleur == null)
  {
    rep_couleur = "COULEUR/TEST2"
  }
  else
  {
    rep_couleur = "COULEUR/" + couleur;
  }
  
  return rep_couleur;
}

////////////////////////////////////////////////////////////////////////////////
// Gestion du changement de couleur de l'extranet //////////////////////////////
function EnregistrerCouleurExtra(couleur)
{
  // Ecrire le cookie, valide 6 mois
  date=new Date;
  date.setMonth(date.getMonth()+6);
  EcrireCookie("couleur_extra", couleur, date);
}

function ChangerCouleurExtra(couleur)
{
  EnregistrerCouleurExtra(couleur);
  listeParams = location.search.substring(1, location.search.length);
  listeParams = listeParams.split("&");
  rechargeSimple = false;
  for(i=0;i < listeParams.length && !rechargeSimple;i++)
  {
    maVariable = listeParams[i].substring(0, listeParams[i].indexOf("="));
    if(maVariable == "var_mode")
    {
      rechargeSimple = true;
    }
  }
  if(rechargeSimple)
  {
    location.reload();
  }
  else
  {
    urlCourante = new String(window.location);
    if(urlCourante.charAt(urlCourante.length - 1) == '/') {
      window.location.replace(window.location + "?var_mode=recalcul");
    } else {
      window.location.replace(window.location + "&var_mode=recalcul");
    }
  }
}

function RecupererCouleurExtra()
{
  var couleur = LireCookie("couleur_extra");
  var rep_couleur = "";
  
  if(couleur == null)
  {
    rep_couleur = "COULEUR/BLEU"
  }
  else
  {
    rep_couleur = "COULEUR/" + couleur;
  }
  
  return rep_couleur;
}

////////////////////////////////////////////////////////////////////////////////
// Gestion du changement du nombre de résultats par page pour la recherche /////

function ChangerNbResParPage()
{
  // recuperation du nombre d'elements a afficher
  var indexSel = document.getElementById("nbResParPages").selectedIndex;
  var nbAff = document.getElementById("nbResParPages").options[indexSel].value;
  
  // Ecrire le cookie, valide 6 mois
  date=new Date;
  date.setMonth(date.getMonth()+6);
  EcrireCookie("resultats_par_page", nbAff, date);
  
  // rechargement de la page
  location.reload();
}

////////////////////////////////////////////////////////////////////////////////

// Gestion du curseur de la souris /////////////////////////////////////////////

function CurseurMain(objet)
{
  objet.style.cursor = 'pointer';
}
////////////////////////////////////////////////////////////////////////////////
// Gestion de la barre visuel du site public ///////////////////////////////////

function ChangerVisuel()
{
  var idVisuelCourant = 0;
  var cookie_visuel = LireCookie("visuel");
  if(cookie_visuel != null && cookie_visuel < nbVisuels)
  {
    idVisuelCourant = cookie_visuel;
  }
    
  var idNouveauVisuel = parseInt(idVisuelCourant) + 1;
  if (idNouveauVisuel >= nbVisuels)
  {
    idNouveauVisuel = 0;
  }
  
  // Ecrire le cookie, valide 6 mois
  date=new Date;
  date.setMonth(date.getMonth()+6);
  EcrireCookie("visuel", idNouveauVisuel, date);
  
  document.getElementById("visuel").style.backgroundImage = 'url('+jListeVisuels[idNouveauVisuel] + ')';
}

////////////////////////////////////////////////////////////////////////////////
// Gestion de la barre visuel de l'extranet ////////////////////////////////////

function ChangerVisuelExtra()
{
  var idVisuelCourant = 0;
  var cookie_visuel = LireCookie("visuel_extra");
  if(cookie_visuel != null && cookie_visuel < nbVisuels)
  {
    idVisuelCourant = cookie_visuel;
  }
    
  var idNouveauVisuel = parseInt(idVisuelCourant) + 1;
  if (idNouveauVisuel >= nbVisuels)
  {
    idNouveauVisuel = 0;
  }
  
  // Ecrire le cookie, valide 6 mois
  date=new Date;
  date.setMonth(date.getMonth()+6);
  EcrireCookie("visuel_extra", idNouveauVisuel, date);
  
  document.getElementById("visuel").style.backgroundImage = 'url('+jListeVisuels[idNouveauVisuel] + ')';
}

////////////////////////////////////////////////////////////////////////////////

// Gestion du défilement du menu horizontal ////////////////////////////////////

var Timer;
var Pas = 10; // vitesse défilement texte

function moveLayer(Sens) 
{
  var Objet;
  if(document.getElementById)
  {
    Objet = document.getElementById("contenu_menu_h");
  }
  else
  {
    Objet = document.all["contenu_menu_h"];
  }
  
  var gauche = parseInt(Objet.style.left);
  if(isNaN(gauche))
  {
    gauche = 0;
  }
  
  var largeur_div = parseInt(Objet.style.width);
  
  // pour que Firefox calcule la valeur d'offsetWidth, on doit vider la valeur du width
  Objet.style.width = '';
  var largeur_contenu = parseInt(Objet.offsetWidth);
  // on remet la valeur de width
  Objet.style.width = largeur_div + 'px';
  var gauche_min = largeur_div - largeur_contenu;
  
  var gauche_calcul = gauche + (Pas*Sens);
  
  if(gauche_calcul > 10)
  {
    Objet.style.left = "10px";
  }
  else if(gauche_calcul < gauche_min)
  {
    Objet.style.left = gauche_min;
  }
  else
  {
    Objet.style.left = gauche_calcul + "px";
  }
  Timer = setTimeout("moveLayer(" + Sens + ");", 50);
}

function besoin_defil()
{
  var Objet;
  if(document.getElementById)
  {
    Objet = document.getElementById("contenu_menu_h");
  }
  else
  {
    Objet = document.all["contenu_menu_h"];
  }
  
  var largeur_div = parseInt(Objet.style.width);
  
  // pour que Firefox calcule la valeur d'offsetWidth, on doit vider la valeur du width
  Objet.style.width = '';
  var largeur_contenu = parseInt(Objet.offsetWidth);
  // on remet la valeur de width
  Objet.style.width = largeur_div + 'px';
  
  return (largeur_contenu > largeur_div);
}

function defil_droite()
{
  moveLayer(1);
}

function defil_gauche()
{
  moveLayer(-1);
}

function arret_defil()
{
  clearTimeout(Timer);
}

////////////////////////////////////////////////////////////////////////////////

// Gestion du masquage/affichage des éléments du menu à la manière de la barre
// des tâches de Windows XP

function animer_menu(deplier)
{
  var menu;
  var cadre_menu;
  var div_navhaut;
  if(document.getElementById)
  {
    menu = document.getElementById("contenu_menu_h");
    cadre_menu = document.getElementById("cadre_menu_h");
    div_navhaut = document.getElementById("navhautltest");
  }
  else
  {
    menu = document.all["contenu_menu_h"];
    cadre_menu = document.all["cadre_menu_h"];
    div_navhaut = document.all["navhautltest"];
  }
  
  if(menu != null)
  {
    var largeur_div = parseInt(menu.style.width);
  
    // pour que Firefox calcule la valeur d'offsetWidth, on doit vider la valeur du width
    menu.style.width = '';
    var largeur_contenu = parseInt(menu.scrollWidth);
    // on remet la valeur de width
    menu.style.width = largeur_div + 'px';
    
    if(deplier == 1)
    {
      if(largeur_div < largeur_contenu)
      {
        largeur_div += Pas;
        menu.style.width = largeur_div + "px";
        //alert("largeur menu : " + parseInt(menu.style.width));
        cadre_menu.style.width = largeur_div + "px";
        //alert("largeur cadre_menu : " + parseInt(cadre_menu.style.width));
        largeur_navhaut = parseInt(div_navhaut.style.width);
        largeur_navhaut += Pas;
        div_navhaut.style.width = largeur_navhaut + "px";
        //alert("largeur navhaut : " + parseInt(div_navhaut.style.width));
        Timer = setTimeout("animer_menu(" + deplier + ");", 50);
      }
      else
      {
        clearTimeout(Timer);
      }
    }
    else
    {
      if(largeur_div > 600)
      {
        largeur_div -= Pas;
        //alert("largeur : " + largeur_div);
        menu.style.width = largeur_div + "px";
        cadre_menu.style.width = largeur_div + "px";
        largeur_navhaut = parseInt(div_navhaut.style.width);
        largeur_navhaut -= Pas;
        div_navhaut.style.width = largeur_navhaut + "px";
        Timer = setTimeout("animer_menu(" + deplier + ");", 50);
      }
      else
      {
        clearTimeout(Timer);
      }
    }
  }
}

function deplier_menu()
{
  animer_menu(1);
}

function replier_menu()
{
  animer_menu(-1);
}

////////////////////////////////////////////////////////////////////////////////

// Gestion du développement vertical du menu en cas de longueur excessive //////

function largeurContenuDiv(nomDiv)
{
  if(document.getElementById)
  {
    div = document.getElementById(nomDiv+"");
  }
  else
  {
    div = document.all[nomDiv+""];
  }

  var largeur_div = parseInt(div.style.width);
  
  // pour que Firefox calcule la valeur d'offsetWidth, on doit vider la valeur du width
  div.style.width = '';
  var largeur_contenu = parseInt(div.scrollWidth);
  // on remet la valeur de width
  div.style.width = largeur_div + 'px';
  
  return largeur_contenu;
}

function largeurDiv(nomDiv)
{
  if(document.getElementById)
  {
    div = document.getElementById(nomDiv+"");
  }
  else
  {
    div = document.all[nomDiv+""];
  }

  var largeur_div = parseInt(div.style.width);
  
  return largeur_div;
}

function developperMenu(deplier, nbDiv)
{
  var cadre_menu;
  var div_navhaut;
  var cadre_btn_dev;
  var Pas = 33;
  
  if(document.getElementById)
  {
    cadre_menu = document.getElementById("cadre_menu_h");
    div_navhaut = document.getElementById("navhautltest");
    cadre_btn_dev = document.getElementById("divBtnDev");
  }
  else
  {
    cadre_menu = document.all["cadre_menu_h"];
    div_navhaut = document.all["navhautltest"];
    cadre_btn_dev = document.all["divBtnDev"];
  }
  
  if(cadre_menu != null && div_navhaut != null && cadre_btn_dev != null)
  {
    var hauteur_div = parseInt(cadre_menu.style.height);
    //alert("hauteur cadre_menu : " + parseInt(cadre_menu.style.height));
    // pour que Firefox calcule la valeur d'offsetHeight, on doit vider la valeur du height
    cadre_menu.style.height = '';
    var hauteur_contenu = parseInt(cadre_menu.scrollHeight);
    //alert("hauteur contenu : " + parseInt(cadre_menu.scrollHeight));
    // on remet la valeur de height
    cadre_menu.style.height = hauteur_div + 'px';
    
    if(deplier == 1)
    {
      if(hauteur_div < (nbDiv * 33))
      {
        hauteur_div += Pas;
        cadre_menu.style.height = hauteur_div + "px";
        //alert("hauteur cadre_menu : " + parseInt(cadre_menu.style.height));
        hauteur_navhaut = parseInt(div_navhaut.style.height);
        hauteur_navhaut += Pas;
        div_navhaut.style.height = hauteur_navhaut + "px";
        //alert("hauteur navhaut : " + parseInt(div_navhaut.style.height));
        Timer = setTimeout("developperMenu(" + deplier + "," + nbDiv + ");", 50);
      }
      else
      {
        var htmlReplier = '<input type="image" src="' + rep_couleur_commun + '/dev_haut2.gif" name="dev_haut" value="dev_haut" alt="Replier le menu" title="Replier le menu" onClick="javascript:developperMenu(-1,' + nbDivMenu + ')">';
        htmlReplier += '<a href="javascript:developperMenu(-1,' + nbDivMenu + ')" alt="Replier le menu" title="Replier le menu" class="liensMenuH">';
        htmlReplier += '&nbsp;Replier&nbsp;</a>';
        cadre_btn_dev.innerHTML = htmlReplier;
        clearTimeout(Timer);
      }
    }
    else
    {
      if(hauteur_div > 33)
      {
        hauteur_div -= Pas;
        //alert("hauteur : " + hauteur_div);
        cadre_menu.style.height = hauteur_div + "px";
        hauteur_navhaut = parseInt(div_navhaut.style.height);
        hauteur_navhaut -= Pas;
        div_navhaut.style.height = hauteur_navhaut + "px";
        Timer = setTimeout("developperMenu(" + deplier + "," + nbDivMenu + ");", 50);
      }
      else
      {
        var htmlDeplier = '<input type="image" src="' + rep_couleur_commun + '/dev_bas2.gif" name="dev_bas" value="dev_bas" alt="D&eacute;velopper le menu" title="D&eacute;velopper le menu" onClick="javascript:developperMenu(1,' + nbDivMenu + ')">';
        htmlDeplier += '<a href="javascript:developperMenu(1,' + nbDivMenu + ')" alt="D&eacute;velopper le menu" title="D&eacute;velopper le menu" class="liensMenuH">';
        htmlDeplier += '&nbsp;Suite...&nbsp;</a>';
        cadre_btn_dev.innerHTML = htmlDeplier;
        clearTimeout(Timer);
      }
    }
  }
}

////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////
// Identification du navigateur

	var ns4 = document.layers;
	var op5 = (navigator.userAgent.indexOf("Opera 5")!=-1) 
		||(navigator.userAgent.indexOf("Opera/5")!=-1);
	var op6 = (navigator.userAgent.indexOf("Opera 6")!=-1) 
		||(navigator.userAgent.indexOf("Opera/6")!=-1);
	var agt=navigator.userAgent.toLowerCase();
	var mac = (agt.indexOf("mac")!=-1);
	var ie = (agt.indexOf("msie") != -1); 
	var mac_ie = mac && ie;
	
////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////
// Equivalent de document.getElementById pour Netscape 4

function getObjNN4(obj,name) {
	var x = obj.layers;
	var foundLayer;
	for (var i=0;i<x.length;i++) {
		if (x[i].id == name)
		 	foundLayer = x[i];
		else if (x[i].layers.length)
			var tmp = getObjNN4(x[i],name);
		if (tmp) foundLayer = tmp;
	}
	return foundLayer;
}

////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////
// Récupération des dimensions d'un élément

function getElementHeight(Elem) {
	if (ns4) {
		var elem = getObjNN4(document, Elem);
		return elem.clip.height;
	} else {
		if(document.getElementById) {
			var elem = document.getElementById(Elem);
		} else if (document.all){
			var elem = document.all[Elem];
		}
		if (op5) { 
			xPos = elem.style.pixelHeight;
		} else {
			xPos = elem.offsetHeight;
		}
		return xPos;
	} 
}

function getElementWidth(Elem) {
	if (ns4) {
		var elem = getObjNN4(document, Elem);
		return elem.clip.width;
	} else {
		if(document.getElementById) {
			var elem = document.getElementById(Elem);
		} else if (document.all){
			var elem = document.all[Elem];
		}
		if (op5) {
			xPos = elem.style.pixelWidth;
		} else {
			xPos = elem.offsetWidth;
		}
		return xPos;
	}
}
