// auteur : Claude MONTEIL - UMR DYNAFOR INP/ENSAT-INRA - 20 juillet 2006

var DATE_VERSION = "juillet 2006",
    DOSSIER_CARTES = "", // chemin du dossier contenant les cartes JPG
    DOSSIER_PHOTOS = "photos/", // chemin du dossier contenant les photos JPG des especes
    BIOGEO = "_biogeo", // nom de la carte JPG des zones biogéographiques
    FRANCE = "_france", // nom de la carte de France JPG avec tous les départements blancs
    STATUSBAR_STD = "SYRFID volume 3 (juillet 2006)",      // message standard dans la barre d'état
    fondBody ="#669966", fond_tblEffectifs = "#FFCC99", fond_tblRepartition = "#FFFF99";

var wdwSyrfid; // designe la fenetre contenant _Syrfid.htm // non utilise pour le moment (cf. initialiser)
var listeEspeces,listeGenres;	// designent les options des 2 listes de choix (cf initialiser())
var listeNomsEspeces;	 	// liste contenant les noms d'espece (sans genre)
var blnPhotoEspece = false;     // vrai si l'espèce courante dispose d'une photo

wdwDetails = null, wdwPhotos = null; // permet de savoir si ces fenetres-filles sont deja ouvertes ou non

var NS = (document.layers);	// Netscape
var IE = (document.all)&&(navigator.userAgent.indexOf("Opera")==-1); // Internet Explorer

function initialiser()
//initialisations realisees au chargement de la page
{	listeEspeces = document.frmChoix.lstEspece;
	listeGenres = document.frmChoix.lstGenre;
	listeNomsEspeces = document.frmChoix.lstNomEspece;
	resetInfos();
	initialiserListeGenres();  afficherTitreListeChoix ("Genre");
	initialiserListeNomsEspeces();
	supprimerOptions(listeEspeces); afficherTitreListeChoix ("Espece");
	afficherCarteEffectif();
	var message = STATUSBAR_STD;
	if (IE==false) {message += "\nLe titre de la carte, le rang du genre courant ou de l'espèce courante"
          +" peuvent ne pas s'afficher correctement avec certains navigateurs (cf. guide d'utilisation).";
          alert(message)};
        wdwSyrfid = window;  wdwSyrfid.name = "wdwSyrfid";
          // non utilise pour le moment car wdwSyrfid non vu depuis les autres fenetres
}

// fonctions associees a des boutons de l'interface
function afficherListeGenres()      {copierListe(listeGenres,'GENRES')}
function afficherGenrePrecedent()   {resetChoixEspece(); setIndex(document.frmChoix.lstGenre,-1)}
function afficherGenreSuivant()     {resetChoixEspece(); setIndex(document.frmChoix.lstGenre,1) }
function afficherEspecePrecedente() {setIndex(document.frmChoix.lstEspece,-1)}
function afficherEspeceSuivante()   {setIndex(document.frmChoix.lstEspece,1) }
function fixerChoixToutesEspeces()  {setCritereChoix(document.ttsEspeces)}
function fixerChoixEspecesEnPhoto() {setCritereChoix(document.iconePhotos)}
// ---

function afficherTitreListeChoix (nomListe)
// affiche un titre au-dessus de la liste de choix d'un genre ou d'une espèce
// ENTREE nomListe : "Genre" ou "Espece"
{	eval("var liste = document.frmChoix.lst" + nomListe);
	var rang = liste.selectedIndex; var nbOptions = liste.options.length-1;
	var titre = "Esp&egrave;ce" ; if (nomListe == "Genre") titre = nomListe;
	titre = (titre + " (" + rang + "/" + nbOptions + ")").bold();
	ecrireDivision("div"+nomListe,titre)
}

function ecrireDivision (nomDivision,texte)
//affecte le texte specifie a la division de nom indique (defini par l'attribut id= de la balise <DIV>)
{	if (IE) 
		{eval("var division = document.all." + nomDivision); division.innerHTML = texte} 
//	else // l'instruction ci-dessous ne marche pas dans NETSCAPE !!!
//	{	eval("var division = document." + nomDivision) ; division.top = 100; division.left = 50; 
//		division.document.write(texte); division.document.close()
//	}
}

function couleurTable(nomTable)
//renvoie la couleur de fond de la table de nom spécifié
{	var couleur = "white";
	if (IE) eval("couleur=document.all." + nomTable + ".bgColor") 
	else eval ("couleur=fond_" + nomTable);
	return couleur
}

function optionChoisie (listeSelect)
//renvoie la valeur de l'option sélectionnée de la liste (de type SELECT) spécifiée
	{if (listeSelect.selectedIndex == 0) return ""
	else return listeSelect.options[listeSelect.selectedIndex].value}

function resetStatusBar() {window.status = STATUSBAR_STD} // affiche un message standard dans la barre d'état

function initialiserListeGenres()
//initialise la liste lstGenre (type SELECT) permettant le choix d'un genre 
{	supprimerOptions(listeGenres);
	for (i=0; i < genres.length; i++) 
		{ajouterOptionListe(listeGenres, codesGenres[i],genres[i])}
	resetStatusBar();
}

function initialiserListeEspeces()
//initialise les listes lstEspece et lstNomEspece (type SELECT) permettant le choix d'une espèce et d'un nom
{	supprimerOptions(listeEspeces);
	for (var i=0; i < especes.length; i++) 
		{ajouterOptionListe(listeEspeces,codesEspeces[i],especes[i])}
	resetStatusBar();
}

function initialiserListeNomsEspeces()
//initialise les listes lstEspece et lstNomEspece (type SELECT) permettant le choix d'une espèce et d'un nom
{	var tableauNoms = [], nbNoms = 0, nomEspece = "", tableauGenreEspece =[];
	supprimerOptions(listeNomsEspeces);
	for (var i=0; i < especes.length; i++) 
	{	tableauGenreEspece = especes[i].split(" "); // on decompose le nom complet en genre + espece
		nomEspece = tableauGenreEspece[1]; // 2ème partie du nom initial
		if (!estDansTableau(tableauNoms,nomEspece)) // on ajoute le nom s'il n'y est pas deja
			{tableauNoms[nbNoms] = nomEspece ; nbNoms++ }
	}
	tableauNoms.sort(); // on trie le tableau des noms
	for (i=0; i < tableauNoms.length; i++) // on cree les options de la liste-SELECT des noms
		{ajouterOptionListe(listeNomsEspeces,tableauNoms[i],tableauNoms[i])}
	resetStatusBar();
}

function estDansTableau (tableau,element)
// renvoie true si l'element specifie est dans le tableau indique
{	var trouve = false; //a priori
	for (var i=0; i<tableau.length; i++) 
		{if (tableau[i]==element) {trouve = true; break} }
	return trouve
}

function initialiserListeEspecesVulnerables (zone, statut)
// M.A.J. GLOBALE listeEspeces (contrôle-SELECT contenant la liste des espèces parmi lesquelles choisir)
// ENTREE zone : "FR" (France) ou "EU" (Europe)
//        statut : "S" (à Surveiller), "D" (en nette Diminution) ou "M" (Menace d'extnction)
{	eval("var liste = vulner" + zone + ";");
	if (statut == "") return; // au cas ou
	for (i=0; i < especes.length; i++) 
	{	if (statut ==  liste[i])
			{ajouterOptionListe(listeEspeces,codesEspeces[i],especes[i])}
	}
	resetStatusBar()
}

function initialiserListePhotos ()
// M.A.J. GLOBALE listeEspeces (contrôle-SELECT contenant la liste des espèces parmi lesquelles choisir)
{	for (i=0; i < especes.length; i++) 
	{	if (photos[i] == 1)
			{ajouterOptionListe(listeEspeces,codesEspeces[i],especes[i])}
	}
	resetStatusBar()
}

function ajouterOptionListe(zoneListe,valOption,textOption)
//ROLE : ajoute une option supplémentaire dans la zone-liste specifiee
//M.A.J. zoneListe : objet de type SELECT
{	var tailleListeInitiale = zoneListe.options.length;
	var nouvelleOption = new Option(textOption, valOption);
    zoneListe.options[tailleListeInitiale] = nouvelleOption;  
    window.status = "Liste " + zoneListe.name.substring(3,20) 
    	+ " : ajout option " + tailleListeInitiale + " (" + textOption + ")"
}

function supprimerOptions (liste)
//ROLE : supprime toutes les options (sauf la 1ere) de la liste spécifiée
//M.A.J. liste : objet de type SELECT
{	for (var i=liste.options.length-1;i>0;i--) {liste.options[i] = null};
	liste.selectedIndex = 0;
}

function resetChoixEspece ()
	{listeEspeces.selectedIndex=0}

function resetChoixGenre ()
	{listeGenres.selectedIndex=0}

function setIndex(liste,decalage)
//fixe le passage à l'espèce/genre précédent (-1) ou suivant (+1)
//ENTREE liste : contrôle de type Select (ex. : lstGenre ou lstEspece)
//       decalage : -1 pour selectionner l'option precedente, +1 pour la suivante
{	setTypeCarte(1);
	var newIndex = liste.selectedIndex + decalage;
	if (newIndex < 0) {newIndex = liste.length-1};
	if (newIndex == liste.length) {newIndex = 0};
	liste.selectedIndex = newIndex;
	if (liste.name == "lstGenre") setCritereChoix (liste) // pour mettre à jour la liste des espèces
	else //{copierListe(listeEspeces,"ESPECE(S) SELECTIONNEE(S)"); // mise à jour de la zone d'affichage avec la liste courante
              afficherCarteRepartition()//} // affichage de la carte correspondante
}

function setIndexGenre (nomGenre)
//sélectionne, dans la liste de choix des genre, le genre de nom spécifié
{	var trouve = false; //a priori
	for (var i=0; i<listeGenres.options.length; i++)
		{if (listeGenres.options[i].text==nomGenre) {trouve = true; break} }
	if (trouve) listeGenres.selectedIndex=i
}

function setIndexEspece (nomEspece)
//sélectionne, dans la liste de choix des especes, l'espece de nom complet (genre + espece) spécifié
{	var trouve = false; //a priori
	for (var i=0; i<listeEspeces.options.length; i++)
		{if (listeEspeces.options[i].text==nomEspece) {trouve = true; break} }
	if (trouve) listeEspeces.selectedIndex=i
}

function setTypeCarte (typeCarte)
//fixe l'état des 2 boutons-radios définissant le type de carte
//ENTREE typeCarte : 0 si carte d'effectifs, 1 si carte de repartition
	{document.frmChoix.rdoTypeCarte[typeCarte].checked = true}

function setTitreCarte (titre,couleurFond)
//affiche un titre au-dessus de la carte indiquant la nature de la variable cartographiée
{	var titreMisEnForme = "<table cellpadding=3 cellspacing=0 border=2 bgcolor="
		+ couleurFond + " width=471><td align=center>" + titre.bold() + "</td></table>";
	ecrireDivision ("divTitreCarte",titreMisEnForme)
}

function setLibelleBoutonDetails(libelle)
//définit le libellé affiché sur le bouton "btnDetails"
	{document.frmChoix.btnDetails.value = libelle}

function setCarte (nomImage)
//affecte comme carte l'image de nom spécifié (sans dossier ni extension)
	{document.carte.src = DOSSIER_CARTES + nomImage + ".jpg"}

function afficherCarte()
	{document.frmChoix.rdoTypeCarte[0].checked ? afficherCarteEffectif() : afficherCarteRepartition()}

function afficherCarteEffectif ()
//affiche la carte de l'effectif des genres ou especes en fonction de l'état des controles
{	setTypeCarte(0); 
        resetBiogeo(); //decoche la case d'affichage des zones biogeographiques
	resetInfos();  //vide la zone de texte
	var typeEffGenEsp = 0; var titre = "Genres observ&eacute;s"; // par défaut : effectif des genres
	if (document.frmChoix.rdoEffGenEsp[1].checked)
		{typeEffGenEsp = 1; titre = "Esp&egrave;ces observ&eacute;es"} // effectif des especes
	var typePeriode = optionChoisie(document.frmChoix.lstPeriode);
	var pref = ["gen","esp"], suff = ["total","av70","70ap","av70ap"];
	var titresPeriodes = ["au moins une fois",
		"avant le 1/1/1970 seulement et pas depuis",
		"depuis le 1/1/1970 seulement et pas avant",
		"avant le 1/1/1970 avec r&eacute;observation depuis"];
	setTitreCarte (titre + " " + titresPeriodes[typePeriode],couleurTable("tblEffectifs"));
	setCarte (pref[typeEffGenEsp] + suff[typePeriode])
}

function afficherCarteRepartition ()
//affiche la carte de répartition d'un genre ou d'une espece en fonction de l'état des controles
//ENTREE codeGenreEspece : 4 lettres si genre, 8 lettres si espece
{	setTypeCarte(1);
	resetBiogeo(); //decoche la case d'affichage des zones biogeographiques
	copierListe(listeEspeces,"ESPECE(S) SELECTIONNEE(S)");  //remplit la zone de texte avec la liste d'espèces courante
	afficherTitreListeChoix ("Genre"); afficherTitreListeChoix ("Espece");
	var codeGenreEspece = optionChoisie(listeEspeces);

	var titre = "Observations de l'esp&egrave;ce " +  listeEspeces.options[listeEspeces.selectedIndex].text;
	// var libelleBouton = "Détail des observations";
	if (codeGenreEspece != "") 
	{	var indexEsp = indexEspece(codeGenreEspece);
		setIconePhoto (photos[indexEsp] == 1); // icone d'acces a la photo de l'espece 
		setIconeVuln("FR",vulnerFR[indexEsp]); setIconeVuln("EU",vulnerEU[indexEsp]);
	}   
	else
	{	setIconePhoto (false); // pas d'espece selectionnee
		setIconeVuln("FR",""); setIconeVuln("EU",""); // pas de vulnerabilite affichee
		codeGenreEspece = optionChoisie(listeGenres);
    	titre = "Observations du genre " + listeGenres.options[listeGenres.selectedIndex].text
	}
	if (codeGenreEspece == "") 
	{	codeGenreEspece = FRANCE; //carte de France vierge
		titre = "(choisir un genre ou une esp&egrave;ce)";
	}
	setTitreCarte (titre,couleurTable("tblRepartition"));
	// setLibelleBoutonDetails(libelleBouton);
	setCarte (codeGenreEspece.toLowerCase())
}

function indexEspece (codeEspece)
//renvoie l'index de l'espece de code textuel spécifié dans les tableaux de données (0=1ere espece, ...)
//renvoie -1 si l'espèce n'est pas trouvee (normalement, ca ne doit pas arriver)
{	var trouve = false;
	if (codeEspece == "") {return -1}; // quand aucune espèce n'est sélectionnée, le code est vide
	for (var i=0; i<codesEspeces.length; i++) 
		{if (codesEspeces[i]==codeEspece) {trouve = true; break} }
	if (trouve) {return i}
	else {alert ("Fonction indexEspece : espece "+codeEspece+ " inexistante"); return -1 }
}

function setCritereChoix (ListeChangee)
// met à jour la liste de choix des espèces selon le critere choisi
// (toutes especes, nom de genre, nom d'espèce, especes vulnerables)
// remet à 0 les listes de choix de critère autres que celle spécifiée en entree
// ENTREE ListeChangee : liste que l'on vient de modifier, ou du bouton "toutes especes"
{	supprimerOptions (listeEspeces); resetInfos (); setTypeCarte(1);

	//mise a jour des listes de choix autres que celle que l'on vient de selectionner
	if (ListeChangee.name != "lstNomEspece") {listeNomsEspeces.selectedIndex=0};
	if (ListeChangee.name != "lstVulnerabilite") {document.frmChoix.lstVulnerabilite.selectedIndex=0};

	//changement sur liste de choix du genre
	if (ListeChangee.name == "lstGenre")
	{	var codeGenre = optionChoisie(ListeChangee).toLowerCase();
		if (codeGenre == "") 
			{supprimerOptions(listeEspeces)}
		else // remplir la liste de choix des especes avec celles du genre choisi
		{	for (i=0; i < especes.length; i++)
			{	if (codeGenre ==  codesEspeces[i].substring(0,4).toLowerCase())
				{	ajouterOptionListe(listeEspeces,codesEspeces[i],especes[i]);
				}
			}
			resetStatusBar()
		}
	}

	//changement sur liste de choix par nom d'espece
	if (ListeChangee.name == "lstNomEspece")
	{	var nomEspeceChoisi = optionChoisie(ListeChangee), tableauGenreEspece = [];
		for (i=0; i < especes.length; i++) 
		{	tableauGenreEspece = especes[i].split(" "); // on decompose le nom complet en genre + espece
			nomEspece = tableauGenreEspece[1]; 
			if (nomEspece == nomEspeceChoisi)
			{	ajouterOptionListe(listeEspeces,codesEspeces[i],especes[i]);
			}
		}
		resetStatusBar()
	}

	//changement sur liste de choix par type de vulnerabilite
	if (ListeChangee.name == "lstVulnerabilite")
	{	var zoneCochee = "EU" ; if (document.frmChoix.rdoVulnerabilite[0].checked) {zoneCochee = "FR"};
		if (ListeChangee.selectedIndex == 0) {ListeChangee.selectedIndex = 1};
		initialiserListeEspecesVulnerables (zoneCochee,optionChoisie(ListeChangee));
	}
	
	//clic sur l'icone "toutes especes"
	if (ListeChangee.name == "ttsEspeces") {initialiserListeEspeces()};
	
	//clic sur l'icone des photos
	if (ListeChangee.name == "iconePhotos") {initialiserListePhotos()};
	
	//mise à jour de la zone informative
	copierListe(listeEspeces,"ESPECE(S) SELECTIONNEE(S)");

	// preselection d'une espèce
	var newIndexEspece = 0; // par défaut
	if (ListeChangee.name == "lstGenre") // selection de la 1ere espece si elle est la seule du genre
		{if (listeEspeces.options.length == 2) newIndexEspece = 1}
	else // selection de la 1ere espece de la liste (s'il y en a une)
		{resetChoixGenre(); if (listeEspeces.options.length > 1) newIndexEspece = 1}
	listeEspeces.selectedIndex = newIndexEspece;

	// preselection eventuelle du genre s'il n'y a qu'une seule espece dans la liste des especes
	if (listeEspeces.options.length == 2)
	{	var tableauGenreEspece = listeEspeces.options[1].text.split(" "); // on decompose en genre + espece
		var nomGenre = tableauGenreEspece[0]; // 1ère partie du nom initial
		setIndexGenre (nomGenre);
	}

	// affichage de la carte
	afficherCarteRepartition()
}

// --- gestion de l'ouverture de la fenetre d'informations complementaires (lien vers syrfid vol. 2) ---

function afficherDetails()
{	var code = listeEspeces.options[listeEspeces.selectedIndex].value;
	if (code == "") {code = listeGenres.options[listeGenres.selectedIndex].value};
	if (code == "") {code = "_Genres"};
	ouvrirFenetre ("wdwDetails",DOSSIER_CARTES + code + ".htm","width=600,height=590,left=5");
	//window.open(DOSSIER_CARTES + code + '.htm','details', 'toolbar=0, location=0, directories=0, status=0,
	//	scrollbars=1, resizable=1, copyhistory=0, menuBar=0, left=5, top=5')
}

function ouvrirFenetre (nomFenetre, URL, autresParametres)
// ouvre une nouvelle fenetre sur l'URL specifiee (HTML ou JPG) avec des eventuels parametres supplementaires
{	var parametres = "scrollbars=1,resizable=1,top=5"; // attention : pas d'espace entre les parametres !
	if (autresParametres != "") {parametres += "," + autresParametres};
	// ouvrir une fenêtre-fille de la fenêtre courante
//	nouvFenetre = window.open(URL, 'nouvFenetre', parametres);
 	eval(nomFenetre + "=window.open('" + URL + "','" + nomFenetre + "','" + parametres + "')" );
 	// ouvrir une 2eme fois pour NetScape et Mac
 	 if (eval(nomFenetre + "==null"))
// 	 	{nouvFenetre = window.open(URL, 'nouvFenetre', parametres)};
		{eval(nomFenetre + "=window.open('" + URL + "','" + nomFenetre + "','" + parametres + "')" )};
 	// mettre la nouvelle fenêtre au premier plan
 	if (window.focus) {eval(nomFenetre + ".focus()")}
}

// version non parametree de la fonction precedente :
//function ouvrirFenetre (URL)
//{	var parametres = "scrollbars=1,resizable=1,left=5,top=5,toolbar=1";
//	// ouvrir une fenêtre-fille de la fenêtre courante
//	nouvFenetre = window.open(URL, 'nouvFenetre', parametres);
// 	// ouvrir une 2eme fois pour NetScape et Mac
// 	if (nouvFenetre == null) {nouvFenetre = window.open(URL, 'nouvFenetre', parametres)};
// 	// mettre la nouvelle fenêtre au premier plan
// 	if (window.focus) {nouvFenetre.focus()}
//}

// --- gestion de l'affichage informations dans le TEXTAREA txtInfos ---

function setInfo (texte) {document.frmChoix.txtInfos.value = texte}
function resetInfos () {setInfo("")}
function addInfo (texte) {document.frmChoix.txtInfos.value += texte + "\n"}

function copierListe(liste,titre)
// copie les options de la liste de choix spécifiée dans la zone txtInfos (TEXTAREA)
{	var nbOptions = liste.options.length-1, texte = nbOptions + " " + titre + '\n'; 
	if (nbOptions == 0) {resetInfos(); return};
	for (i=1; i <= nbOptions; i++) // on saute l'option 0 qui correspond au libellé informatif
		{texte += liste.options[i].text + "\n"}
	setInfo(texte)
}

// --- gestion de l'affichage des icones de vulnerabilite de l'espece courante ---

function setIconeVuln(zone,statut)
// affiche l'icone de vulnerabilite du niveau indique ("FR" ou "EU"), associee au staut specifie ("","S","D","M")
{	eval("var icone = document.iconeVuln" + zone);
	var niveauStatut = 0;
	if (statut=="S") {niveauStatut=1} else if (statut=="D") {niveauStatut=2} else if (statut=="M") {niveauStatut=3};
	eval("icone.src = '_vul" + niveauStatut + "_" + zone + ".gif'")
}

// --- gestion de l'affichage des photographes d'especes ---

function setIconePhoto(AvecPhoto)
// ENTREE AvecPhoto : booleen indicant si l'espece courante dispose d'une photo ou non
// si oui, affiche l'icone réactive, sinon affiche l'icone transparente (non reactive)
// SORTIE GLOBALE blnPhotoEspece
{	blnPhotoEspece = AvecPhoto;
	if (AvecPhoto) 
		{document.iconePhotoEspece.src = "_photo_on.gif"}
	else
		{document.iconePhotoEspece.src = "_photo_off.gif"}}

function afficherPhotoInitial()
{	var especeCourante = listeEspeces.options[listeEspeces.selectedIndex];
	if (!blnPhotoEspece)
		{alert("SYRFID ne dispose pas encore de photo pour " + especeCourante.text)}
	else 
	{	ouvrirFenetre ("wdwPhoto","","width=870,height=650,toolbar=1");
 		ecrPhoto('<HTML><HEAD><TITLE>SYRFID : ' + especeCourante.text + '</TITLE></HEAD>');
 		ecrPhoto('<BODY bgcolor="#DFFFDF"><CENTER>');
 		ecrPhoto('<TABLE BORDER=5><TR><TD><A HREF="javascript:window.close()">');
 		ecrPhoto('<IMG SRC="' + DOSSIER_PHOTOS + especeCourante.value + '.jpg');
 		ecrPhoto('" ALT="Cliquer pour refermer" BORDER=0></A></TD></TR></TABLE></BODY></HTML>');
 		wdwPhoto.document.close();
	}
}

function afficherPhoto()
{	var especeCourante = listeEspeces.options[listeEspeces.selectedIndex];
	if (!blnPhotoEspece)
		{alert("SYRFID ne dispose pas encore de photo pour " + especeCourante.text)}
	else 
	{	ouvrirFenetre ("wdwPhoto","photos/_indexPopup.htm","width=950,height=730,toolbar=0");
	}
}

function ecrPhoto(ligne) {wdwPhoto.document.writeln(ligne)} //insere la ligne dans la fenetre de photo d'espece

// ---- gestion de l'affichage de la carte JPG des zones biogeographiques ---

function onClickBiogeo(checkbox)
//fonction appelée lors d'un clic sur la case à cocher "Zones biogéographiques"
	{if (checkbox.checked) {setCarte (BIOGEO)} else afficherCarte()} 

function resetBiogeo()
//decoche la case "Zones biogéaographiques"
	{document.frmChoix.chkBiogeo.checked = false}

// --- gestion des infos bulles avec balises MAP et AREA sur carte de France JPG ---

var x,y ; // position du curseur sur la carte

if (NS) {document.captureEvents(Event.MOUSEMOVE)}
document.onmousemove=MouseMoved;

function MouseMoved(e)
	{ if (NS) {x=e.pageX; y=e.pageY} else {x = event.offsetX; y = event.offsetY} }

function setInfoDept(codeDept)
{	texte = "<table cellpadding=3 cellspacing=0 border=1 bgcolor=#99FF99><tr><td>Dept" 
			+ codeDept + "</td></tr></table>";
  	if (NS) {with (document) 	{InfoBulle.left=x; InfoBulle.top=y+25; 
  								 InfoBulle.document.write(texte); InfoBulle.document.close()}}
  	else 	{with (InfoBulle) 	{style.pixelLeft=x; style.pixelTop=y+210;  innerHTML=texte }}
}

function resetInfoDept() {if(NS) {document.InfoBulle.top=-50} else {InfoBulle.innerHTML=""}}

function AffDept(codeDept)
	{ouvrirFenetre ("wdwDetails",DOSSIER_CARTES + "Dept" + codeDept + ".htm",
					"toolbar=1,width=600,height=590,left="+(screen.width-610))}
