/*
			dhtml.js : routines javascript diverses

function Navigateur(): détermine le navigateur client
function precache(): charge les tableaux d'images nécessaires aux imageSwap
function setImage(imgName,type): modifie l'image de nom imgName en fonction du type passé
function chercher(): soumet le formulaire searchForm

objet créé :nav=new Navigateur()
fonction lancée: precache()

franck ruzzin - Juin 2005. fruzzin@voila.fr
*/


/**************  Objet de détection de navigateur *****************/
function Navigateur() {
  exclude=1;
  var agt=navigator.userAgent.toLowerCase();
  var win=0;var mac=0;var lin=1;
  if(agt.indexOf('win')!=-1){win=1;lin=0;}
  if(agt.indexOf('mac')!=-1){mac=1;lin=0;}
  var lnx=0;if(lin){lnx=1;}
  var dom=document.getElementById?true:false; //Document Object Model  supporté ?
  var ie=0;var ie4=0;var ie5=0;var ie6=0;
  var ns4=0;var gk=0;var ns6=0;var ns7=0;var mz7=0;var kde=0;var saf=0;
  var op5=0;var op6=0;var op7=0;
  if(typeof navigator.vendor!="undefined" && navigator.vendor=="KDE"){
	  var thisKDE=agt;
	  var splitKDE=thisKDE.split("konqueror/");
	  var aKDE=splitKDE[1].split("; ");
	  var KDEn=parseFloat(aKDE[0]);
	  if(KDEn>=2.2){
		  kde=1;
		  gk=1;
		  exclude=0;
	  }
  }
  else if(agt.indexOf('webtv')!=-1){exclude=1;}
  else if(typeof window.opera!="undefined"){
	  exclude=0;
	  if(agt.indexOf("opera/5")!=-1||agt.indexOf("opera 5")!=-1){op5=1;}
	  if(agt.indexOf("opera/6")!=-1||agt.indexOf("opera 6")!=-1){op6=1;}
	  if(agt.indexOf("opera/7")!=-1||agt.indexOf("opera 7")!=-1){op7=1;}
  }
  else if(typeof document.all!="undefined"&&!kde){
	  exclude=0;
	  ie=1;
	  if(typeof document.getElementById!="undefined"){
		  ie5=1;
		  if(agt.indexOf("msie 6")!=-1){
			  ie6=1;
		  }
	  }
	  else{ie4=1;}
  }
  else if(typeof document.getElementById!="undefined"){
	  exclude=0;
	  if(agt.indexOf("netscape/6")!=-1||agt.indexOf("netscape6")!=-1){gk=1;ns6=1;}
	  else if(agt.indexOf("netscape/7")!=-1||agt.indexOf("netscape7")!=-1){gk=1;ns7=1;}
	  else if(agt.indexOf("gecko")!=-1){gk=1;mz7=1;}
	  if(agt.indexOf("safari")!=-1 || (typeof document.childNodes!="undefined" && typeof document.all=="undefined" && typeof navigator.taintEnabled=="undefined")){mz7=0;gk=1;saf=1;}
  }
  else if((agt.indexOf('mozilla')!=-1)&&(parseInt(navigator.appVersion)>=4)){
	  exclude=0;
	  ns4=1;
	  if(typeof navigator.mimeTypes['*']=="undefined"){
		  exclude=1;
		  ns4=0;
	  }
  }
  if(agt.indexOf('escape')!=-1){exclude=1;ns4=0;}
  if(typeof navigator.__ice_version!="undefined"){exclude=1;ie4=0;}  
  
  this.exclude=(exclude==1);
  this.agt=agt;
  this.win=(win==1);
  this.mac=(mac==1);
  this.lin=(lin==1);
  this.dom=dom;
  this.ie=(ie==1);
  this.ie4=(ie4==1);
  this.ie5=(ie5==1);
  this.ie6=(ie6==1);
  this.ns4=(ns4==1);
  this.gk=(gk==1);
  this.ns6=(ns6==1);
  this.ns7=(ns7==1);
  this.mz7=(mz7==1);
  this.kde=(kde==1);
  this.saf=(saf==1);
  this.op5=(op5==1);
  this.op6=(op6==1);
  this.op7=(op7==1);
}

nav=new Navigateur();
var iemac=(nav.mac && nav.ie);


//Retourne le point haut de l'élément dont l'attribut id est "id"
function getObjetTop(id) {
  var element=document.getElementById(id);    // NN6 IE5 DOM1
  var result=0;
  
  result=element.offsetTop;         //NN6 IE4 DOM n/a
  while (element.offsetParent) {    //NN6 IE4 DOM n/a 
	element=element.offsetParent;  //NN6 IE4 DOM n/a
	if (element!=document.body) {  //SAF ajoute valeur pour Body
	  result+=element.offsetTop;   //NN6 IE4 DOM n/a
	}
  }
  if (iemac) {result=result+15;} //clientTop-offsetTop
  return parseInt(result); 	 
}


//Retourne la hauteur de l'élément dont l'attribut id est "id"
function getObjetHeight(id) {
  var element=document.getElementById(id);    // NN6 IE5 DOM1
  var result=0;
  
  result=element.offsetHeight;       //NN6 IE4 DOM n/a  
  return parseInt(result);
}


// Positionnement du div "contenuSecondaire"
function positionnerElementsBas() {
	var elemAdresse=document.getElementById("alertesAdresse");
	//si le div d'id "alertesAdresse" existe, aligner "alertesAdresse" et "contenuSecondaire"
	if (elemAdresse) {
		var posBasElemAdresse=getObjetHeight("alertesAdresse")+getObjetTop("alertesAdresse");
	
		var elemContSecond=document.getElementById("contenuSecondaire");
		var posBasElemContSecond=getObjetHeight("contenuSecondaire")+getObjetTop("contenuSecondaire");
	
		var elemSeparContenuBas=document.getElementById("separContenuBas");
		var hElemSeparContenuBas=getObjetHeight("separContenuBas");
	
		var diff=posBasElemAdresse-posBasElemContSecond+hElemSeparContenuBas;
	
		//positionner le div d'id "separContenuBas"
		if (diff>0) {
			document.getElementById("separContenuBas").style.height=diff+"px";
		}
	}
	
	//aligner "contenuSecondaire" et "imageBasMenu"
	var posBasElemContSecond=getObjetHeight("contenuSecondaire")+getObjetTop("contenuSecondaire");
	
	var elemGauche=document.getElementById("alertesColGauche");
	var posBasElemGauche=getObjetHeight("alertesColGauche")+getObjetTop("alertesColGauche");
	diff=posBasElemContSecond-posBasElemGauche;
	
	if (diff>0) {
		document.getElementById("alertesColGauche").style.height=(elemGauche.offsetHeight+diff)+"px";
		var himageBasMenu=getObjetHeight("imageBasMenu");
		document.getElementById("imageBasMenu").style.top=(elemGauche.offsetHeight-himageBasMenu)+"px"; 
	}	
}


// Positionnement du bas du menu, si il s'agrandi sous "contenuSecondaire"
function positionnerBasMenu() {
	var posBasMenu=getObjetHeight("menuGauche")+getObjetTop("menuGauche")+getObjetHeight("alertesSurMenu");
	var posBasElemGauche=getObjetHeight("alertesColGauche")+getObjetTop("alertesColGauche");
	var himageBasMenu=getObjetHeight("imageBasMenu");
	diff=posBasMenu-posBasElemGauche;
	document.getElementById("alertesColGauche").style.height=(getObjetHeight("alertesColGauche")+diff)+"px";
	document.getElementById("imageBasMenu").style.top=(getObjetHeight("alertesColGauche")-himageBasMenu)+"px"; 
	//si le menu est plus grand que "alertesColGauche"
	if (diff<0){
		positionnerElementsBas();
	}
	
}



/************  cache des images de navigation rapide  *************/
function precache() {
  if (document.images) {
    	imagesOff=new Object();
	imagesOver=new Object();
	
	imagesOff["btCherche"]=new Image;
	imagesOff["btCherche"].src="_dev/mesimages/loupe_up.gif";
	
	imagesOver["btCherche"]=new Image;
	imagesOver["btCherche"].src="_dev/mesimages/loupe_down.gif";
  }
}

/* précacher les images */
precache();

/*Swap des images*/
function setImage(imgName,type) {
  if (document.images) {
    if (type=="over") {
	  document.images[imgName].src=imagesOver[imgName].src;
	  return true;
	} else if (type=="off") {
	  document.images[imgName].src=imagesOff[imgName].src;
	  return true;
	} else if (type=="on") {
	  document.images[imgName].src=imagesOn[imgName].src;
	  return true;
	}
  }
  return false;
}

/* change la classe d'un objet */
function changeclass(objet, myClass) { 
	if (nav.ie) return;
	objet.className = myClass;
}

/* lancer la recherche sur le formulaire de recherche */
function chercher() {
	document.searchForm.submit();
}


/* empile des fonctions à lancer lors de l'évènement onload */
function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
}

/* bookmarker la page */
/* les variables urlAddress et pageName doivent être définies dans la page d'où est appelé ce script */
function ajouterFavoris() {
	if (document.all) {
		window.external.AddFavorite(urlAddress,pageName);
	} else if (window.sidebar) {
		window.sidebar.addPanel(pageName, urlAddress, "");
	} else {
		alert("Désolé! Votre navigateur ne supporte pas cette fonction."); 
	}
}

/* Affichage d'une image dans une nouvelle fenetre, maximisée */
function voirdoc(image, titre, largeur, hauteur) {
    var mywin=window.open("","","menubar=yes,resizable=yes,scrollbars=no","false");
    var lscreen=screen.availWidth;
    var hscreen=screen.availHeight;
    mywin.moveTo(0,0);	
    mywin.resizeTo(lscreen,hscreen);
    //var largNav=obtenirLargeurNavigateur();
    //var hautNav=obtenirHauteurNavigateur();
    var largNav=lscreen-30;
    var hautNav=hscreen-100;
    var l=largeur,h=hauteur;
    ratio=l/largNav;
    if (ratio>1) {
	l=l/ratio;
	h=h/ratio;
    }
    ratio=h/hautNav;
    if (ratio>1) {
	l=l/ratio;
	h=h/ratio;
    }

    var contenu="<html><head><title>"+titre+" ("+largeur+"x"+hauteur+")</title>";  
    mywin.document.write(contenu);
    contenu="</head><body>"
    mywin.document.write(contenu);
    contenu='<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">';
    mywin.document.write(contenu);
    contenu='<tr>';
    mywin.document.write(contenu);
    contenu='<td><div align="center"><img style="height:'+h+'px;width:'+l+'px" src="'+image+'"></div></td>';
    mywin.document.write(contenu);
    contenu='</tr>';
    mywin.document.write(contenu);
    contenu='</table>';
    mywin.document.write(contenu);  
    contenu="</body></html>";
    mywin.document.write(contenu);
    mywin.document.close();  //fermer le flux	  
    mywin.document.title=titre+" ("+largeur+"x"+hauteur+")";
}



