//_______________________________________________________________________________
//	
//	toutScript	-	Ensembles des fonctions JS
//					utilisées dans les pages WebGam
//					et accessibles dans les séquences JS dynamiques
//						
//_______________________________________________________________________________
var gNav = navigateur();
var	req;
var laColonneFlyer = "D";

//_______________________________________________________________________________
//	Simplification de l'appel "getElementById"
function $(id){
	return document.getElementById(id);
	}
function $I(id){
	return document.getElementById(id);
	}
	
//________________________________________________
//	Simplification de l'appel "getElementsByName"
function $N(nom){
	if (navigateur() == "ie"){
		var elements = document.getElementsByTagName("*")
		for (ii = 0; ii < elements.length; ii++) {
			if (elements[ii].name == nom) {
				return(elements[ii]);
			}
		}
	} else {
		return document.getElementsByName(nom)[0];
	}
}
	
// ======================================================================
//	Identification d'un élément par la référence de document
function $RefDoc(refDoc){
	return($N(refDoc));
}
	
//________________________________________________________________________
// Pour récupérer l'ensemble des éléments de la page avec une même classe
function getElementsByClass(colID,vClasse) {
	if (colID == "TOUT") {
		var elements = document.getElementsByTagName("*")
	} else {
		var noeud = $(colID)
		var elements = noeud.childNodes;
	}
	var tabRetour = new Array();
	var ii;
	var jj = 0;
	
	for (ii = 0; ii < elements.length; ii++) {
		var rchClasse = " " + elements[ii].className + " "
		if (rchClasse.indexOf(" " + vClasse + " ") != -1) {
			tabRetour[jj++] = elements[ii];	
		}
	}
	return tabRetour;
}

//_____________________________
//	Actualiser la page
function rafraichir(){
	document.location.reload();
}

//_____________________________
//	Pseudo Appel externe
//	pour maintenir la session
function maintenir(){
//  	window.open("998_maintenir.asp","maintenir","scrollbars=no,width=5,height=5");
	var llAppel = "998_maintenir.asp?X=" + jsX_;
	getHTTP(llAppel);
	setTimeout("maintenir()",300000);
	var objData = eval("(" + req.responseText + ")");
	if (objData.REPONSE != undefined) {
		if (objData.REPONSE == "Session nulle"){
			//alert(objData.REPONSE);
		}
	};
}

//___________________________________________________
//	Contrôle simplifié du navigateur en cours
//	ie >>> Microsoft Internet Explorer
//  ge >>> Les autres
function navigateur(){
	var	lib = (navigator.appName).toLowerCase();
	var nav = "ge";
	if (lib == "microsoft internet explorer") {nav = "ie"};
	return nav;
}

//__________________________________________________________
//	Petits scripts de manipulation de l'affichage d'un bloc
function estCache(id){
	$(id).style.display = "none";
}
function estMontre(id){
	$(id).style.display = "block";
}
function Cacher(id) { estCache(id); }
function Afficher(id) { estMontre(id); }

function VaEtVient(id){
	if ($(id).cache) {
		estMontre(id);
		$(id).cache = false;
	} else {
		estCache(id);
		$(id).cache = true;
	}	
}

//____________________________________________________________________________________________________
//	Aller ver l'URL
// f° Dreamveaver //v2.0
function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

//____________________________________________________________________________________________________
//	Ouverture d'une fenêtre et autres f° Dreamveaver
//  f° Dreamveaver //v2.0
function MM_openBrWindow(theURL,winName,features) {
  	window.open(theURL,winName,features);
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

//____________________________________________________________________________________________________
//	Changer une sous chaine par une autre
//  à l'ntérieur d'une chaine donnée
function changeStr(chaine,c1,c2){
	var newCh = "";
	ii = 0;
	while (ii<chaine.length){
		if (chaine.substr(ii,c1.length) == c1){
			newCh = newCh + c2;
			ii = ii + c1.length; 
		} else {
			newCh = newCh + chaine.substr(ii,1);
			ii++;
		}
	}
	return newCh;
}

//__________________________________________________________
//	Contrôler un champ de saisie en numérique ou format time 
// 	Le paramètre lu est l'ID de la zone input
function estceNum(Lu){
	var chaine = $(Lu).value;
	var ent = "";
	var dec = "";
	var cc = "";
	var yaDec = false;
	var yaHor = false;
	var yaNum = true;
	ii = 0;
	while (ii<chaine.length && yaNum){
		cc = chaine.substr(ii,1)
		if (cc >= "0" && cc <= "9") {
			if (!yaDec && !yaHor) { ent = ent + cc;}
			if (yaDec || yaHor) { dec = dec + cc;}
		} else {
			switch (cc) {
				case ',':
					if (yaDec || yaHor){break;}
					yaDec = true;
					break;
				case '.':
					if (yaDec || yaHor){break;}
					yaDec = true;
					break;
				case ':':
					if (yaDec || yaHor){break;}
					yaHor = true;
					break;
				default:
					yaNum = false;
					break;
			}
		}
		ii++;
	}
	if (yaNum){
		if (yaDec){ 
			chaine = ent;
			chaine = chaine + "," + dec
		}
		if (yaHor){
			if (dec >= 60){
				yaNum = false
			} else {
				chaine = ent;
				mn = (dec * 100) / 60 ;
				chaine = chaine + "," + Math.round(mn);
			}
		}
		$(Lu).value = chaine;
	}
	return yaNum;
}

//_________________________________________________
//	Extrait le numérique d'une chaine de caractères
//  exeemples : q12 -> 12   4klM78 -> 478
function leNumDe(Lu){
	var cc = "";
	var Donne = "";
	for(var ii=0;ii<Lu.length;ii++){
		cc = Lu.substr(ii,1);
		if (cc >= "0" && cc <= "9") {
			if (cc > 0 || Donne != "") {
				Donne = Donne + Lu.substr(ii,1);
			}
		}
	}
	return Donne;
}

//_________________________________________________
//	Contrôle la syntaxe d'une adreese e.mail
function controleAdresseMail(Lu){
	var Vu = true;
	if (Lu!= ""){
		var tabMot = Lu.split("@");
		if ((tabMot.length != 2) || (tabMot[0] == "") || (tabMot[1] == "")) {
			Vu = false;
		} else {
			var plat = Chaxent(tabMot[0],"Accents","Simple");
			if (plat != Chaxent(tabMot[0])) {Vu = false;}
			plat = Chaxent(tabMot[1],"Accents","Simple");
			if (plat != Chaxent(tabMot[1])) {Vu = false;}
		}
	}
	return Vu;
}

//__________________________________________________________
// 	Pour récupérer les accents (Texte dans la BDD)
//	marche en relation avec la fonction Chaxent en ASP
function Chaxent(Inp,De,Vers) {
	var De = De || ""
	var Vers = Vers || ""
	var Out = Inp;
	var ii; var jj; var nn;
    var Chai = "à!â!é!è!ê!ï!î!ö!ô!ù!ü!û!'!<!>!’!«!»!Ç!ç!°!œ!ë!€!ä!ì!ò!Â!À!Ä!Ê!È!É!Ë!Î!Ì!Ï!Ô!Ò!Ö!Û!Ù!Ü!\"!";
    var Code = "à!â!é!è!ê!ï!î!ö!ô!ù!ü!û!'!<!>!’!«!»!Ç!ç!°!œ!ë!€!ä!ì!ò!Â!À!Ä!Ê!È!É!Ë!Î!Ì!Ï!Ô!Ò!Ö!Û!Ù!Ü!\"!";
	var lJS = "_ag!_ac!_ea!_eg!_ec!_it!_ic!_ot!_oc!_ug!_ut!_uc!_ap!_in!_su!_ap!_go!_gf!_cc!_cm!_dg!_oe!_et!_eu!";
	lJS = lJS + "_at!_ig!_og!_Ac!_Ag!_At!_Ec!_Eg!_Ea!_Et!_Ic!_Ig!_It!_Oc!_Og!_Ot!_Uc!_Ug!_Ut!_qu!";
	var lQuery = "%E0!%E2!%E9!%E8!%EA!%EF!%EE!%F6!%F4!%F9!%FC!%FB!'!<!>!’!%AB!%BB!%C7!%E7!%B0!%9C!%EB!";
	lQuery = lQuery + "%80!%E4!%EC!%F2!%C2!%C0!%C4!%CA!%C8!%C9!%CB!%CE!%CC!%CF!%D4!%D2!%D6!%DB!%D9!%DC!\"!";
	var lHTML = "&agrave;!&acirc;!&eacute;!&egrave;!&ecirc;!&iuml;!&icirc;!&ouml;!&ocirc;!&ugrave;!&uuml;!&ucirc;!'!&lt;!&gt;!&rsquo;!";
	lHTML = lHTML + "&laquo;!&raquo;!&Ccedil;!&ccedil;!&deg;!&oelig;!&euml;!&euro;!";
	lHTML = lHTML + "&auml;!&igrave;!&ograve;!&Acirc;!&Agrave;!&Auml;!&Ecirc;!&Egrave;!&Eacute;!&Euml;!&Icirc;!&Igrave;!&Iuml;!";
	lHTML = lHTML + "&Ocirc;!&Ograve;!&Ouml;!&Ucirc;!&Ugrave;!&Uuml;!&quot;!";
	var lSimple = "a!a!e!e!e!i!i!o!o!u!u!u!'!-!-! !-!-!c!c!o!o!e!E!a!i!o!A!A!A!E!E!E!E!I!I!I!O!O!O!U!U!U!'!"
	var lNull =   "a!a!e!e!e!i!i!o!o!u!u!u!'!-!-! !-!-!c!c!o!o!e!e!a!i!o!a!a!a!e!e!e!e!i!i!i!o!o!o!u!u!u!'!"
	
	if (De == ""){ Chai = lJS };
	if (De == "HTML"){ Chai = lHTML };
	if (Vers == "JS"){ Code = lJS };
	if (Vers == "HTML"){ Code = lHTML };
	if (Vers == "Simple"){ Code = lSimple };
	if (Vers == "Null" || Vers == "Nul"){ Code = lNull };
	
	if (De == "Query"){ Chai = "%20!" +  Query; Code = " !" + Code};
	if (Vers == "Query"){ Chai = " !" + Chai; Code = "%20!" + lQuery };
	
	var Car = Chai.split("!");
	var Str = Code.split("!");
	for (ii=0;ii<Car.length-1;ii++) {
		Out = changeStr(Out,Car[ii],Str[ii])
	}
	return Out;
}

//_________________________________________________________________________
//	GLISSANT
// 	Ouverture / fermeture smooth d'un élément
//	Affecter la fonction à l'élément concerné
//	Glissant - Objet d'appel
function Glissant(mini,maxi,	// hauteur mini et maxi en pix
				  cool,			// Intensité de la Souplesse 
				  lim			// Limite d'arrêt
				  ) {
	this.ouvert = false;				// Au depart, l'element est fermé
	this.ouvreSmooth_enCours = false;	// L'ouverture n'est pas en cours
	this.fermeSmooth_enCours = false;	// La fermeture n'est pas en cours
	this.mini = mini || 0;
	this.maxi = maxi || 500;
	this.cool = cool || 40;
	this.lim  = lim || (this.maxi-this.mini)/40;
	this.style.height = this.mini + "px"
	this.Glisse = glisseSmooth;
	this.Ouvre = ouvreSmooth;
	this.Ferme = fermeSmooth;
}
//	Glisse - Alterne l'ouverture et la fermeture
function glisseSmooth(){
	if(!this.ouvert) {
		this.Ouvre();
	} else {
		this.Ferme();
	}
}
//	Ouverture de l'élément
function ouvreSmooth(){
	if(!this.fermeSmooth_enCours) {	// La fermeture ne doit pas être en cours
		this.ouvreSmooth_enCours = true;
		var haut = Number(leNumDe(this.style.height)) || this.mini;
		haut = haut + Math.ceil((this.maxi-haut)/this.cool);
		this.style.height = haut.toString() + "px";
		laFonction = "$('" + this.id + "').Ouvre()";
		if((this.maxi-haut)>=this.lim) { 
			setTimeout(laFonction,10);
		} else {
			this.style.height = this.maxi + "px"
			this.ouvreSmooth_enCours = false;
			this.ouvert = true;
		};
	}
}
//	Fermeture de l'élément
function fermeSmooth(){
	if(!this.ouvreSmooth_enCours) {	// L'ouverture ne doit pas être en cours
		this.fermeSmooth_enCours = true;
		var haut = Number(leNumDe(this.style.height)) || this.maxi;
		haut = haut - Math.ceil((haut-this.mini)/this.cool);
		this.style.height = haut.toString() + "px";
		laFonction = "$('" + this.id + "').Ferme()";
		if((haut-this.mini)>=this.lim) { 
			setTimeout(laFonction,10);
		} else {
			this.style.height = this.mini + "px"
			this.fermeSmooth_enCours = false;
			this.ouvert = false;
		};
	}
}

//_______________________________________________________________________________
//	
//	Fonctions AJAX	-	Traitements de données à partir de la base
//						Affichage de fenêtres Heaven
//						
//_______________________________________________________________________________
//	Appel dynamique XML HTTP
//  en fonction du navigateur
function getHTTP(fi) {
	if (navigateur() == "ie"){
		req = new ActiveXObject('Microsoft.XMLHTTP');
	} else {
		req = new XMLHttpRequest();
	}
	req.open('GET',fi,false);
	req.send(null);
}

//_______________________________________________________________________________
//	Appel d'une table de la base et retour format JSON (Utilise zoom_json.asp)
//  zoom_json(nom de la table,nom de la clef,valeur de la clef)
function zoom_json(pTab,pCle,pVal,pBase,pPage,pChamps,pContenu){
	var pBase = pBase || "";
	var pPage = pPage || "zoom_json.asp";
	var pChamps = pChamps || "";
	var pContenu = pContenu || "";
	pVal = Chaxent(pVal,"Normal","Query");
	var llAppel = pPage + "?X=" + jsX_ + "&table=" + pTab + "&cle=" + pCle + "&valeur=" + pVal;
	if (pBase != "") {
			llAppel = llAppel + "&base=" + pBase
	}
	if (pChamps != "") {
			pContenu = Chaxent(pContenu,"Normal","Query");
			llAppel = llAppel + "&champs=" + pChamps + "&contenu=" + pContenu
	}
	getHTTP(llAppel);
	var objData = eval("(" + req.responseText + ")");
    for (prop in objData){
		objData[prop] = Chaxent(objData[prop]);
    }
	return(objData);	
}

//_______________________________________________________________________________
//	Appel d'une page asp
//  zoom_asp(nom de la page asp)
function zoom_asp(pAsp){
	if((pAsp.indexOf("?X=")<0)&&(pAsp.indexOf("&X=")<0)){
		var sep = "?";
		if(pAsp.indexOf("?")>=0){ sep="&"; };
		var plusX = sep + "X=" + jsX_
		pAsp = pAsp + plusX
	}
	getHTTP(pAsp);
	var	tablo = new Array;
	var texteLu = req.responseText;
	var texteVa = texteLu;
	if (window.scanTexte){
		var nPos = pAsp.lastIndexOf("/",pAsp.length);
		directoryExposes = pAsp.substring(0,nPos+1);
		texteVa = scanTexte(texteLu);
	};
	triSequences(texteVa,tablo);
	return(tablo);	
}

//_______________________________________________________________________________
//	Séparation des séquences HTML et JS
//  1 séquence = 1 poste de la table
function triSequences(texteVa,tablo){
	var deb = 0;	// début d'analyse
	var jj = 0;		// indice du tableau
	var pp = 0;		// posit° recherche
	while(deb < texteVa.length) {
		pp = texteVa.indexOf("<script",deb);
		if (pp != -1) {
			if ((pp-deb > 0)) {
				tablo[jj] = texteVa.substr(deb,pp-deb);
				jj++;
			}
			deb = pp + 7;
			pp = texteVa.indexOf(">",deb);
			if (pp != -1) {
				deb = pp + 1;
				pp = texteVa.indexOf("</script>",deb);
				if (pp != -1) {
					if ((pp-deb > 0)) {
						tablo[jj] = "/**/" + texteVa.substr(deb,pp-deb);
						jj++;
					}
					deb = pp + 9;
				}
			}
		} else {
			if ((texteVa.length-deb > 0)) {
				tablo[jj] = texteVa.substr(deb,texteVa.length-deb);
				break;
			}
		}
	}
}
//	tablo[1] = "/**/ $('toto').innerHTML = AC_FL_RunContent('width','190','height','125','src','org_photos/Test_050606_Diapos_01','quality','high','wmode','transparent');";

//_________________________________________________________________________________________________
//	contenuDynamique(pageASP,cree,cible) Cette function permet de créer le contenu d'un bloc cible
//										 à partir d'une page ASP
//			pageASP : Nom de la page ASP appelée (chaîne)
//			cree : id du bloc crée (chaine)
//			cible : id du bloc container (chaine)
//			1) Lecture par XMLHttpRequest de la page
//			2) Construction du bloc de réception en ventilant :
//				a - le contenu des séquences HTML (innerHTML)
//				b - le traitement des séquences JS /**/ (eval)

function contenuDynamique(pageASP,cree,cible)	{
	var cible = cible || ""
	var tabAsp = zoom_asp(pageASP);
	if(cible!="non"){
		creationDiv(0,0, "", [] , [], cree, 9999, cible);
	}
	$(cree).innerHTML = " ";
	var leContenuAffiche = ""
	for(var ii=0;ii<tabAsp.length;ii++){
		if(tabAsp[ii].substr(0,4)!="/**/"){
			tabAsp[ii] = OptimiseConversionCaractere(tabAsp[ii],["&quot;"],["'"]);
			leContenuAffiche = leContenuAffiche + tabAsp[ii];
		}
	}
	$(cree).innerHTML = leContenuAffiche;
	for(var ii=0;ii<tabAsp.length;ii++){
		if(tabAsp[ii].substr(0,4)=="/**/"){
			eval(tabAsp[ii]);
		}
	}
}

//_________________________________________________________________________________________________
//	Flyer			Cette fonction permet d'afficher un document / un dossier / une page
//					sous aspect Flyer (fenêtre volante)
//			1) Lecture par XMLHttpRequest de sp_document.asp?REF_DOC=refDoc
//			2) Construction de la div de réception
//			3) Rattachement à une fenêtre Heaven

function Flyer(refDoc,type,lieA){
	var type = type || "document";
	var idFly = "Flyer_" + refDoc;
	var idFlyBarre = idFly + "Barre";
	var lePlus = "&col=" + lettreColonne();
	if (jsGlossaire){
		lePlus = lePlus + "&glossaire=oui";
	}
	var pageASP = "sp_document.asp?X=" + jsX_ + "&REF_DOC=" + refDoc + lePlus;
	var prfxId = "Doc_";
	if(type == "dossier"){
		pageASP = "sp_document.asp?X=" + jsX_ + "&REF_DOSSIER=" + refDoc + lePlus;
		prfxId = "Dos_";
	};
	if(type == "page"){
		pageASP = refDoc; 
		var pp = refDoc.indexOf(".")
		if(pp >= 1){refDoc = refDoc.substr(0,pp)};
		idFly = "Flyer_" + refDoc;
		idFlyBarre = idFly + "Barre";
		prfxId = "spPage_";
	};
	contenuDynamique(pageASP,idFly);
	$(idFly).className = "Flyer";
	
	var idDyn = "Dyn" + idFly;
	var lieA = lieA || null;
	var pLeft = document.documentElement.scrollLeft + 50 + g_posFlyer;
	var pTop = document.documentElement.scrollTop + 90 + g_posFlyer;
	g_posFlyer = g_posFlyer + 20;
	if(g_posFlyer >= 500){g_posFlyer = 0};
	var dWidth = 50; var dHeight = 50;
	CreationFenetre( 	"Flyer",
						idDyn,
						"",
						"",
						pLeft, pTop, 999,
						dWidth, dHeight, 
						lieA , 
						{
							Fluide : false ,
							BoutonX : true ,
							HauteurBarre : 30 ,
							HauteurBouton : 30 
						}
					);
	var pp = refDoc.indexOf("&");
	if(pp >= 1){refDoc = refDoc.substr(0,pp)};
	var titre = $(prfxId + refDoc).title;
	if(window.appelAdmin){
		$(prfxId + refDoc).ondblclick = function(){ appelAdmin("Doc",refDoc); }
	}
	uneFenetreComposee(idDyn,idFly,titre,g_ImgReduit,g_ImgDeploie,g_ImgFerme);
	$(idFlyBarre).className = "FlyerBarre";
	$(idDyn + "Fenetre").className = "FlyerFenetre";
//	$(idFly).scrollIntoView(false);
}

//_________________________________________________________________________________________________
//	uneFenetreComposee	A partir d'une <div> d'origine, cette fonction crée
//						une <div> "barre" de fenêtre et les associe toutes deux
//						à une fenêtre Heaven déjà existante
//			La fonction place de nouveaux boutons : réduire, déployer, fermer

function uneFenetreComposee(fenetre,origine,titre,ImgReduit,ImgDeploie,ImgFerme){
	var idFlyBarre = origine + "Barre";
	if(titre.length > 70){
		titre = titre.substr(0,70) + "...";
	}
	var lBar = "<span class='Titre'>" + titre + "</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class='Boutons'>"
	lBar = lBar + "<img id='" + origine + "imgReduit' src='" + ImgReduit + "' class='Reduire' title='R&eacute;duire la fen&ecirc;tre'>"
	lBar = lBar + "<img id='" + origine + "imgFerme' src='" + ImgFerme + "' class='Fermer' title='Fermer la fen&ecirc;tre'>"
	lBar = lBar + "</span>"
	creationDiv(0,0, "", [] , [], idFlyBarre, 9999);
	$(idFlyBarre).innerHTML = lBar;
	$(origine + "imgReduit").onclick = function(){ $(fenetre + "Barre_").FlipFlop(); };
	$(origine + "imgFerme").onclick = function(){ $(fenetre + "BarreX").onclick(); };

	$(fenetre + "Contenu").appendChild( $(origine) );
	$(fenetre + "Barre").appendChild( $(origine + "Barre") );
	$(fenetre + "Barre_").FlipFlop = function(){
			$(fenetre + "Barre_").onPress();
			if ($(fenetre + "Barre_").reduit){
				$(fenetre + "Barre_").reduit = false;
				$(origine + "imgReduit").src = ImgReduit;
				$(origine + "imgReduit").title = "Réduire la fenêtre";
			} else {
				$(fenetre + "Barre_").reduit = true;
				$(origine + "imgReduit").src = ImgDeploie;
				$(origine + "imgReduit").title = "Déployer la fenêtre";
			}
		};
}

//_______________________________________________________________________________
//	Pour les Flyers, avance de lettre de colonne
function lettreColonne(){
	var toutL = "DEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
	var pp = toutL.indexOf(laColonneFlyer);
	if(pp == -1){
		laColonneFlyer = "Z";
	} else {
		laColonneFlyer = toutL.substr(pp+1,1);
	};
	return(laColonneFlyer);
}

//_______________________________________________________________________________
//	
//	Fonctions WebGam	-	Traitements spécifiques
//							aux possibilités WebGam
//						
//_______________________________________________________________________________
//	Navigation dans le trajet
function trajetLocation(position){
	var tabLoc = jsTrajetURL.split("|");
	document.location = tabLoc[position];
}
function trajetFirst(){
	trajetLocation(0);
}
function trajetBack(){
	trajetLocation(jsTrajetPrevious);
}
function trajetNext(){
	trajetLocation(jsTrajetNext);
}
function trajetLast(){
	trajetLocation(jsTrajetLast);
}
function leTrajet(id,Cible){
	var Cible = $(Cible) || document.body;
	var contenu = "<a id='Plan' href='javascript:trajetPlan()' class='Lien' ";
	var contenu = contenu = contenu + "title='Votre trajet'>&nbsp;</a>";
	var tabLoc = jsTrajetURL.split("|");
	var tabTitre = jsTrajetTitres.split("|");
	for(var ii = 0; ii <= jsTrajetLast; ii++ ){
		var vClass = "Lien";
		var vAvant = "&nbsp;";
		var vApres = "&nbsp;<";
		if(ii >= jsTrajetPointer) { vClass = "Lien Courant"; vApres = "&nbsp;";}
		if(ii > jsTrajetPointer) { vClass = "Lien"; vAvant = ">&nbsp;"; }
		contenu = contenu + "<a href='" + tabLoc[ii] + "' class='" + vClass + "'>";
		contenu = contenu + vAvant + tabTitre[ii] + vApres + "</a>"
	}
	var laDiv = document.createElement("div");
	laDiv.id = id
	laDiv.innerHTML = contenu;
	Cible.appendChild(laDiv);
	return laDiv;
}

function trajetPlan(pX,pY){
	Flyer('sp_trajet.asp?X=' + jsX_,'page');
	$('Flyer_sp_trajet').style.height='auto';
	$('Flyer_sp_trajet').style.overflow='visible';
	if(pX){ $('DynFlyer_sp_trajetFenetre').style.left=pX + 'px';};
	if(pY){ $('DynFlyer_sp_trajetFenetre').style.top=pY + 'px';};
}

//	Cacher un paragraphe du document appelé
function cacherParagraphe(no){
	if(jsPageType == "doc"){
		var idx = $("Doc_" + jsRefDoc).getElementsByTagName("table")[no-1];
		idx.style.display="none";
	}
}

//	Afficher un paragraphe du document appelé
function afficherParagraphe(no){
	if(jsPageType == "doc"){
		var idx = $("Doc_" + jsRefDoc).getElementsByTagName("table")[no-1];
		idx.style.display="block";
	}
}

//	Cacher un paragraphe du document appelé dans une fenêtre flottante (FLYER)
function cacherParagrapheDeFlyer(RefDoc,no){
	if ($("Doc_" + RefDoc)){
		var idx = $("Doc_" + RefDoc).getElementsByTagName("table")[no-1];
		if(idx.id.substr(idx.id.length-2,1)>"D"){
			idx.style.display="none";
		}
	}
}

//=====================================================================================