/*****************************************
	Fichier Javascript propriété de Enoctis

	Scripts de base de tous les sites
*****************************************/

// Paramètres css du popup d'info
var ol_css = CSSCLASS;
var ol_fgclass = 'minipopup';
var ol_textfontclass = 'minipopup';
var ol_bgclass = 'minipopupfond';
var ol_captionfontclass = 'minipopuptitre';

// compatibilité avec les anciennes variables et fonction de l'ancienne version d'overlib

var mac = isMac;
var opera = olOp;
var ns4 = olNs4;
var ns6 = olNs6;
var konqueror = olKq;
var ie4 = olIe4;
var ie5 = olIe5;
var ie55 = olIe55
var ie6 = ie55;
function mouseMove(e) { return olMouseMove(e); }

// Fonction affichant un petit popup d'info
function ov (texte) {
	return overlib(texte, CAPTION, 'info...');
} // fin de ov
// Fonction affichant un petit popup d'info en précisant le titre
function ov_titre (texte, titre) {
	return overlib(texte, CAPTION, titre);
} // fin de ov
// Fonction affichant un petit popup d'info sans titre titre
function ov_sans_titre (texte) {
	return overlib(texte);
} // fin de ov

/////// fonctions dreamweaver
// precharge une ou plusieurs images
function MM_preloadImages() { //v3.0
	var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
		var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
		if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
} // fin de MM_preloadImages
// recherche un objet dont on inndique l'id et le renvoie
function MM_findObj(n, d) { //v4.0
	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 && document.getElementById) x=document.getElementById(n); return x;
} // fin de MM_findObj

// change l'état visible/masqué d'un calque
function MM_showHideLayers() { //v3.0
	var i,p,v,obj,args=MM_showHideLayers.arguments;
	for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
		if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
		obj.visibility=v; }
} // fin de MM_showHideLayers

// change la valeur d'une propriété d'un objet dont on indique l'id
function MM_changeProp(objName,x,theProp,theValue) { //v3.0
	var obj = MM_findObj(objName);
	if (obj && (theProp.indexOf("style.")==-1 || obj.style)) eval("obj."+theProp+"='"+theValue+"'");
} // fin de MM_changeProp

// change la source d'une image
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];}
} // fin de MM_swapImage

// restore les sources des images
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;
} // fin de MM_swapImgRestore

/////// fin des fonctions dreamweaver

// Demande confirmation après clic sur un lien
function ConfirmeLien(Lien, Question) {
	var confirmation = confirm('Voulez-vous vraiment ' + Question + ' ?');
	if (confirmation) {
		Lien.href += '&confirmation=1';
	}
	return confirmation;
} // fin de ConfirmeLien


// Coche/Décoche les cases d'un formulaire
// Coche = true/false/ 'swap' (pour inverser)
function CocheCases(Formulaire, NomCases, Coche) {
	if ((Coche != true) && (Coche != false) && (Coche != 'swap')) { return false; }
	if (typeof(document.forms[Formulaire]) == 'undefined') { return false; }
	if (typeof(document.forms[Formulaire].elements[NomCases]) != 'undefined') {
		var Elements = document.forms[Formulaire].elements[NomCases];
		var Nombre  = (typeof(Elements.length) != 'undefined') ? Elements.length : 0;
		if (Nombre) {
				for (var i = 0; i < Nombre; i++) {
					Elements[i].checked = (Coche == 'swap') ? !Elements[i].checked : Coche;
				} // fin de for
		} else {
				Elements.checked = (Coche == 'swap') ? !Elements.checked : Coche;
		} // fin de if nombre else
		return true;
	} else { // fin de if typeof
		return false;
	}  // fin de if typeof else
} // fin de CocheCases

// renseigne la barre d'état de la fenêtre pour un objet ayant un title et/ou un alt
function SetObjetStatus(Objet, Texte) {
	SetObjetStatusTitre(Objet, Texte, '');
}
function SetObjetStatusTitre(Objet, Texte, Titre) {
	if (typeof(Objet) != 'undefined') { if (typeof(Objet.title) != 'undefined') { Objet.title = ''; } if (typeof(Objet.alt) != 'undefined') { Objet.alt = ''; }  }
	SetStatusTitre(Texte, Titre);
}
// renseigne la barre d'état de la fenêtre
function SetStatus(Texte) {
	SetStatusTitre(Texte, '');
}
function SetStatusTitre(Texte, Titre) {
	if (Texte) {
		if (Titre == '') { ov_sans_titre(Texte); } else { ov_titre(Texte, Titre); }
	}
//  window.status = Texte;
} // fin de SetStatus

// vide la barre d'état de la fenêtre
function NoStatus() {
//  window.status = '';
	nd();
} // fin de NoStatus

// donne le focus au premier element focusable du formulaire indique
function FocusForm(Formulaire) {
	setTimeout('FocusFormReel("'+Formulaire+'")', 500);
} // fin de FocusForm
function FocusFormReel(Formulaire) {
	if (typeof(document.forms[Formulaire]) == 'undefined') { return false; }
	var El = document.forms[Formulaire].elements;
	var MaxNum = El.length - 1;
	if (MaxNum < 0) { return false; }
	var NumElement = 0;
	while((NumElement <= MaxNum) && ((typeof(El[NumElement].type) == 'undefined') || (El[NumElement].type == 'hidden') || (El[NumElement].type == 'submit'))) {
		NumElement ++;
	}
	if (NumElement <= MaxNum) { El[NumElement].focus(); }
} // fin de FocusFormReel

// donne le focus à l'élément indique
function FocusChamp(Formulaire, Champ) {
	setTimeout('FocusChampReel("'+Formulaire+'", "'+Champ+'")', 500);
} // fin de FocusChamp
function FocusChampReel(Formulaire, Champ) {
	if (Formulaire == '') {
		var Objet = MM_findObj(Champ);
		if (Objet && Objet.id == Champ) { Objet.focus(); }
	} else {
		if (typeof(document.forms[Formulaire]) == 'undefined') { return false; }
		var El = document.forms[Formulaire].elements;
		if (typeof(El[Champ]) == 'undefined') { return false; }
		if ((typeof(El[Champ].type) != 'undefined') && (El[Champ].type != 'hidden')) {
			El[Champ].focus();
		}
	}
} // fin de FocusChampReel

// Tableau utilisé pour contenir les valeurs initiales des champs pour les fonctions suivantes
var ValeursInitiales = new Array();
// Tableau utilisé pour savoir sur quels champs continuer de vérifier les champs, pour les fonctions suivantes
var TestVerifChange = new Array();

// Vérifie si la valeur d'un champ d'un formulaire est modifiée et lance une action si c'est le cas
// La valeur initiale est lue depuis ValeursInitiales[Formulaire.Champ]
function VerifChange(Formulaire, Champ, Action) {
	if (typeof(document.forms[Formulaire]) == 'undefined') { return false; }
	if (typeof(document.forms[Formulaire].elements[Champ]) == 'undefined') { return false; }
	if (typeof(document.forms[Formulaire].elements[Champ].value) == 'undefined') { return false; }
	var ValeurInitiale = ValeursInitiales[Formulaire+'.'+Champ];
	if (document.forms[Formulaire].elements[Champ].value != ValeurInitiale) {
		eval(Action);
		TestVerifChange[Formulaire+'.'+Champ]  = -1;
		StopVerifChange(Formulaire, Champ);
	} else {
		if (TestVerifChange[Formulaire+'.'+Champ]  == 1) {
			setTimeout('VerifChange("'+Formulaire+'", "'+Champ+'", "'+Action+'")', 250);
		}
	}
} // Fin de VerifChange

function StartVerifChange(Formulaire, Champ, Action) {
	if (typeof(document.forms[Formulaire]) == 'undefined') { return false; }
	if (typeof(document.forms[Formulaire].elements[Champ]) == 'undefined') { return false; }
	if (typeof(document.forms[Formulaire].elements[Champ].value) == 'undefined') { return false; }
	if (TestVerifChange[Formulaire+'.'+Champ] == -1) { return false; }
	ValeursInitiales[Formulaire+'.'+Champ] = document.forms[Formulaire].elements[Champ].value;
	TestVerifChange[Formulaire+'.'+Champ] = 1;
	VerifChange(Formulaire, Champ, Action);
} // Fin de StartVerifChange

function StopVerifChange(Formulaire, Champ) {
	if (TestVerifChange[Formulaire+'.'+Champ] != -1)  { TestVerifChange[Formulaire+'.'+Champ] = 0; }
} // Fin de StopVerifChange

// recuperation des dimensions de la fenetre
function GetXOffset() {
	return (ie4) ? window.document.body.scrollLeft : window.pageXOffset;
} // Fin de GetXOffset
function GetYOffset() {
	return (ie4) ? window.document.body.scrollTop : window.pageYOffset;
} // Fin de GetYOffset
function GetClientWidth() {
	if (ie4) return window.document.body.clientWidth;
	if (ns4) return window.innerWidth;
	if (ns6) return window.innerWidth-16;
} // Fin de GetClientWidth
function GetClientHeight() {
	if (ie4) return window.document.body.clientHeight;
	if (ns4) return window.innerHeight;
	if (ns6) return window.innerHeight-16;
} // Fin de GetClientHeight

// Change la classe d'un élément
function ChangeClasse(Nom, Classe) {
	var Objet = MM_findObj(Nom);
	Objet.className = Classe;
} // Fin de ChangeClasse

// Récupère les coordonnées absolues d'un éléments (avec gestion d'un cache)
var Coords = new Array();
function CoordonneesAbsolues(Nom) {
//  if (typeof(Coords[Nom]) == 'undefined' || Coords[Nom] == null) {
		Coords[Nom] = CalculCoordonneesAbsolues(Nom);
//  }
	return Coords[Nom];
} // fin de CoordonneesAbsolues
function CalculCoordonneesAbsolues(Nom) {
	return CoordonneesAbsoluesParObjet(MM_findObj(Nom));
} // fin de CalculCoordonneesAbsolues
function CoordonneesAbsoluesParObjet(Objet) {
	var Coord = new Object();
	objx=0; objy=0; var objp = Objet; while(objp.offsetParent){objp=objp.offsetParent; objx+=objp.offsetLeft; objy+=objp.offsetTop;}
	Coord.X = objx+Objet.offsetLeft; Coord.Y = objy+Objet.offsetTop;
	Coord.Height = Objet.offsetHeight;
	Coord.Width = Objet.offsetWidth;
	return Coord;
} // fin de CoordonneesAbsoluesParObjet
// positionne un objet
function Positionne(Objet, X, Y) {
	repositionTo(ie4?Objet.style:Objet, X, Y);
} // fin de Positionne
// redimensionne un objet
function Dimensionne(Objet, Width, Height) {
	Objet.style.width = Width+'px';
	Objet.style.height = Height+'px';
} // fin de Dimensionne
// va sur la page indiquee
function GoTo(Lien) {
	window.location.href=Lien;
} // fin de GoTo
// renvoie un "trim" de la chaine (espaces ni avant ni apres)
function Trim(s) {
	while (s.substring(0,1) == ' ') { s = s.substring(1,s.length); }
	while (s.substring(s.length-1,s.length) == ' ') { s = s.substring(0,s.length-1); }
	return s;
} // fin de trim
// fonction vérifiant la validité d'un mail
function IsGoodMail(mail) {
	return ((mail.indexOf("@")>=0)&&(mail.indexOf(".")>=0)) ? true : false;
} // fin de IsGoodMail
// pour ie qui a du mal à gerer les hauteurs 100%
function RecalculeHauteurContenu(Premiere) {
	// lecture de la hauteur du conteneur de la zone centrale (entete contenu + contenu + pied de page contenu)
	var frm_structure_zone_centre = MM_findObj('frm_structure_zone_centre');
	var frm_structure_zone_centre_height = frm_structure_zone_centre.offsetHeight;

	// recuperation du conteneur direct (que l'on veut à mini 100% du conteneur ci-dessus)
	var frm_structure_tableau_centre = MM_findObj('frm_structure_tableau_centre');

	// si on doit retravailler les hauteurs
	if (frm_structure_tableau_centre.offsetHeight < frm_structure_zone_centre_height) {
		// hauteur de l'entete contenu
		var frm_structure_zone_entete2 = MM_findObj('frm_structure_zone_entete2');
		var frm_structure_zone_entete2_height = frm_structure_zone_entete2 ?  frm_structure_zone_entete2_height = frm_structure_zone_entete2.offsetHeight : 0;

		// hauteur du pied de page contenu
		var frm_structure_zone_pieddepage2 = MM_findObj('frm_structure_zone_pieddepage2');
		var frm_structure_zone_pieddepage2_height = frm_structure_zone_pieddepage2 ?  frm_structure_zone_pieddepage2_height = frm_structure_zone_pieddepage2.offsetHeight : 0;

		// la zone de contenu et calcul de l'espace
		var frm_structure_zone_contenu = MM_findObj('frm_structure_zone_contenu');
		var frm_structure_zone_contenu_contenu = MM_findObj('frm_structure_zone_contenu_contenu');
		var espace_vide_contenu = frm_structure_zone_contenu.offsetHeight - frm_structure_zone_contenu_contenu.offsetHeight;

		// calcule de la taille finale du contenu
		var frm_structure_zone_contenu_contenu_height = frm_structure_zone_centre_height - frm_structure_zone_entete2_height - frm_structure_zone_pieddepage2_height - espace_vide_contenu;

		frm_structure_zone_contenu_contenu.style.height = frm_structure_zone_contenu_contenu_height+'px';

		if (Premiere) { RecalculeHauteurContenu(false); }
	} // fin de if
} // fin de ReCalculeHauteurContenu

// fonction qui ouvre une image en popup
function OpenPopupImage(Image, Largeur, Hauteur) {
	var w = window.open("","image_popup","width="+Largeur+",height="+Hauteur);
	w.document.write( "<html><head><title>"+Image+"</title>\n" );
	w.document.write( "<script src='/frm/overlib.js' type='text/javascript' language='javascript'></script>\n");
	w.document.write( "<script src='/frm/base.js' type='text/javascript' language='javascript'></script>\n");
	w.document.write( "</head><body leftmargin=0 topmargin=0 marginwidth=0 marginheight=0 onload='AutoSizePopupImage("+Largeur+","+Hauteur+");'>" );
	w.document.write( "<a href='javascript:window.close();'><img src='"+Image+"' border=0 alt='"+Image+"'></a>" );
	w.document.write( "</body></html>" );
	w.document.close();
	return false;
} // fin de OpenPopupImage
function AutoSizePopupImage(Largeur, Hauteur) {
	self.resizeTo(Largeur+10, Hauteur+32);
	self.focus();
} // fin de AutoSizePopupImage

// Extrait le nombre situé au début d'une chaîne
function ExtractNumber(Texte) {
	var m = Texte.length;
	var i=0;
	while(i <= m && !isNaN(Texte.substr(0, i))) { i++; }
	return Number(Texte.substr(0, i-1));
} // fin de ExtratNumber


