// Fonctions principales


// ----- Gestion CSS
	function setStyleProp(obj, propName, newVal) {
		if(typeof(obj) == "string") obj = getDiv(obj);
		if(!obj) return;
		try {
			if(propExistsOnObj(obj,"style")) obj.style[propName] = newVal; // Recent browser (IE, Mozilla, etc.)
			else obj[propName] = newVal; // Old browser
		} catch(e) {
			//alert("setStyleProp(" + obj.id + ", " + propName + ", " + newVal + "): Error setting style property on specified object - " + e.description);
		}
	}
	
	function getStyleProp(obj, propName){
		if(typeof(obj) == "string") obj = getDiv(obj);
		if(!obj) return null;
		try {
			if(propExistsOnObj(obj,"currentStyle")) return obj.currentStyle[propName]; // IE
			else if(window.getComputedStyle) return window.getComputedStyle(obj,null)[propName]; // Mozilla/Opera
			else if(propExistsOnObj(obj,"style")) return obj.style[propName]; // Static in-line and JS style
			else if(propExistsOnObj(obj,propName)) return obj[propName]; // Very old
			else return null;
		} catch(e) {
			alert("getStyleProp(" + obj.id + ", " + propName + "): Error finding style property on specified object - " + e.description);
			return null;
		}
	}
	
	// Retourne la référence au layer (div) demandé
	function getDiv(id){
		if(document.getElementById) return document.getElementById(id);
		if(document.layers) return document.layers[id];
		if(document.all) return document.all[id];
		return null;
	}
	
	// Valide l'existance de la propriété sur un objet donné
	function propExistsOnObj(obj, prop) {
		try { return Boolean(obj[prop]); }
		catch(e) { return false; }
	}
	
	

// ------- Gestion des images / roll-overs
	
	// Prchargement pour la plupart des pages du site
	function preloadImages() {
		// Images communues à toutes les pages (toutes les images passées en paramètres seront ajoutées à la liste)
		var baseImages = ["menu_bg-over.gif"]
		var imgList = new Array();
		for(var i=0; i<baseImages.length; i++) {
			imgList[imgList.length] = "images/" + baseImages[i];
		}
		
		// Ajout des images spcifies
		if(arguments.length > 0){
			for(var i=0; i<arguments.length; i++) {
				imgList[imgList.length] = arguments[i];
			}
		}
		
		// Code gnrique de prchargement (fonction MM_preloadImages)
	  	var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
		var i,j=d.MM_p.length,a=imgList; 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];}}
	}
	
	function doRollOver(imgID, imgSrc, desc, flag) {
		// Pour afficher la description, utilisez return avant l'appel de la fonction
		if(flag != false && flag != 0) flag = 1;
		MM_swapImage(imgID, '', imgSrc, flag);
		if(desc != null) {
			window.status = desc;
			return true;
		}
	}
	
	function doRollOut() {
		MM_swapImgRestore();
		window.status='';
		return true;
	}
	
	// Fonctions gnriques Macromedia
		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];}}
		}
		
		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++) {
			if(isIE55 && x.filters[1]){
				// On utilise la transition spcifie
				x.filters[1].Apply();
				x.src=x.oSrc;
				x.filters[1].Play();
			} else {
				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;
					if(isIE55 && x.filters[0]){
						// On utilise la transition spcifie
						x.filters[0].Apply();
						x.src = a[i+2];
						x.filters[0].Play();
					} else {
				   		x.src = a[i+2];
					}
				}
			}
		}

