var xmenu = new Object();
var xmenu_to = new Object();
var lstXobj = new Array();
var xobj_to = new Object();
var xmedia_to = new Object();
var xmedia_state = new Object();
var xvid_event = new Object();
var list_infoMedia = new Object();
var MapsAPImaps = new Object() ;
var MapsAPImarkers = new Object() ;
var MapsAPIinitialized = false ;
var initPlusOne = false ;
var MapsAPIgeocoder ;
var MapsAPIoptions ;
var APIgeocoding = new Array();
var cacheGeoCode = new Array();

var isIE = navigator.userAgent.toUpperCase().indexOf("MSIE")>=0 ;
var isFirefox = navigator.userAgent.toUpperCase().indexOf("FIREFOX")>=0 ;
var isChrome = navigator.userAgent.toUpperCase().indexOf("CHROME")>=0 ;
var isSafari = !isChrome && navigator.userAgent.toUpperCase().indexOf("SAFARI")>=0 ;
var isOpera =  navigator.userAgent.toUpperCase().indexOf("OPERA")>=0 ;
var isIphone =  navigator.userAgent.toUpperCase().indexOf("IPHONE")>=0 || navigator.userAgent.toUpperCase().indexOf("IPOD")>=0 || navigator.userAgent.toUpperCase().indexOf("IPAD")>=0 ;


// evenement pour resize
window.onload = function() {
	loadMapsAPI() ;
	if (swfobject.hasFlashPlayerVersion("6.0.0")) return ;
	if (isIphone) window.scrollTo(0,1);
	autoResizeEvent();
	createListInfoMedia();
	initAutoPlayMedia();
	if (isIphone) window.scrollTo(0,1);
	
}
window.onresize = function() {
	if (swfobject.hasFlashPlayerVersion("6.0.0")) return ;
	autoResizeEvent();
}

// récupère la hauteur maximum du document _root
function getWindowHeight() {
	var windowHeight = 0;
	if (typeof(window.innerHeight) == 'number') {
		windowHeight = window.innerHeight;
	} else {
		if (document.documentElement && document.documentElement.clientHeight) {
			windowHeight = document.documentElement.clientHeight;
		} else {
			if (document.body && document.body.clientHeight) {
				windowHeight = document.body.clientHeight;
			}
		}
	}
	return windowHeight;
}

// récupère la largeur maximum du document _root
function getWindowWidth() {
	var windowWidth = 0;
	if (typeof(window.innerWidth) == 'number') {
		windowWidth = window.innerWidth;
	} else {
		if (document.documentElement && document.documentElement.clientWidth) {
			windowWidth = document.documentElement.clientWidth;
		} else {
			if (document.body && document.body.clientWidth) {
				windowWidth = document.body.clientWidth;
			}
		}
	}
	return windowWidth;
}


// montre un objet
function showXobj(divid) {
	var o,oo;
	if (divid.indexOf("/")>0) divid = getIdByPath(divid) ;
	if (xobj_to[divid]) { window.clearTimeout(xobj_to[divid]); delete xobj_to[divid]; }
	o = window.document.getElementById(divid) ;
	if (o!=undefined) o.style.display="";
	oo=window.document.getElementById(divid+"_background");
	if (oo!=undefined) oo.style.display="";
}

// cache un objet
function hideXobj(divid) {
	var o,oo;
	if (divid.indexOf("/")>0) divid = getIdByPath(divid) ;
	if (xobj_to[divid]) { window.clearTimeout(xobj_to[divid]); delete xobj_to[divid]; }
	o=window.document.getElementById(divid) ;
	if (o!=undefined) o.style.display="none";
	oo=window.document.getElementById(divid+"_background");
	if (oo!=undefined) oo.style.display="none";
}

// inverse la visibilité d'un menu
function toggleShowXobj(divid) {
	var o,oo;
	if (divid.indexOf("/")>0) divid = getIdByPath(divid) ;
	o = window.document.getElementById(divid);
	oo = window.document.getElementById(divid+"_background");
	if (o.style.display=="none") {
		if (o!=undefined) o.style.display="";
		if (oo!=undefined) oo.style.display="";
	} else {
		if (o!=undefined) o.style.display="none";
		if (oo!=undefined) oo.style.display="none";
	}
}

// cache auto aprés timeout
function hideDelayXobj(divid,timo) {
	if (divid.indexOf("/")>0) divid = getIdByPath(divid) ;
	if (timo==undefined) timo = 1000 ;
	if (xobj_to[divid]) { window.clearTimeout(xobj_to[divid]); delete xobj_to[divid]; }
	xobj_to[divid] = window.setTimeout("hideXobj('"+divid+"')",timo);	
}

// recupère le id d'un xobj par son path
function getIdByPath(path) {
	var divid = path.split("/").join("-") ;
	var parm ;
	for (var i=0; i<lstXobj.length ; i++) {
		parm = lstXobj[i].split("|") ;
		if (parm[1]==divid) divid = parm[0] ;
	}
	return divid ;
}

// recupère les param d'un xobj par son path
function getParmById(mid) {
	var parm ;
	for (var i=0; i<lstXobj.length ; i++) {
		parm = lstXobj[i].split("|") ;
		if (parm[0]==mid) return parm ;
	}
	return null ;
}


function initializeMapsAPI() {
	MapsAPIinitialized = true ;
	MapsAPIgeocoder = new google.maps.Geocoder() ;
	MapsAPIoptions = {
		zoom: 15,
		panControl: false,
		mapTypeControl: true,
		keyboardShortcuts: false,
		mapTypeControlOptions: {
			position : google.maps.ControlPosition.RIGHT_TOP,
			style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
		},
		zoomControl: true,
		zoomControlOptions: {
			style: google.maps.ZoomControlStyle.SMALL
		},		
		mapTypeId: google.maps.MapTypeId.ROADMAP 
	}
	/*
	// en mode html init les maps après chargement de l'API
	if (swfobject.hasFlashPlayerVersion("6.0.0")) return ;	
	postInitFunction();
	*/
}

function loadMapsAPI() {
  if (MapsAPIinitialized == false ) {
	  var script = document.createElement("script");
	  script.type = "text/javascript";
	  script.src = "http://maps.googleapis.com/maps/api/js?sensor=false&callback=initializeMapsAPI";
	  document.body.appendChild(script);
  }
}




function initOverlayDIV() {
	var c = window.document.getElementById("overmaincontent") ;
	if (c==undefined)  {
		c = window.document.createElement("div");
		c.setAttribute("id","overmaincontent");
		c.setAttribute("style","position: absolute;top:0px;left:0px;");
		window.document.body.appendChild(c);
	}
}

function hideOverlayDIV() {
	var c = window.document.getElementById("overmaincontent") ;
	if (c!=undefined)  c.style.display = "none";
}

function showOverlayDIV() {
	var c = window.document.getElementById("overmaincontent") ;
	if (c!=undefined)  c.style.display = "";
}


function createXMap(mid,r,pr,mapmarkers,mapzoom,maptype,heading,pitch,fov) {
	var c,o,po,elmt;
	
	initOverlayDIV();	
	elmt = getOverElement("div",mid,r,pr,"","no");
	c = window.document.getElementById("overmaincontent") ;
	o = window.document.getElementById(mid) ;
	po = window.document.getElementById("owner"+mid) ;
	if (o!=undefined || po!=undefined) removeIFrame(mid);
	if (c!=undefined) c.appendChild(elmt);
	
	drawXMap(mid,mapmarkers,mapzoom,maptype,heading,pitch,fov) ;
	
}	
	

function drawXMap(mid,mapmarkers,mapzoom,maptype,heading,pitch,fov) {
	var istreet;
	if (mapmarkers==undefined || mapmarkers=="" || mapmarkers.substr(0,1)=="|") mapmarkers="43.618512,3.913906||||";
	istreet = false ;
	var mtype=google.maps.MapTypeId.ROADMAP ;
	if (maptype!=undefined && maptype!="") {
		if (maptype=="2") mtype=google.maps.MapTypeId.TERRAIN;
		else if (maptype=="3") mtype=google.maps.MapTypeId.SATELLITE;
		else if (maptype=="4") mtype=google.maps.MapTypeId.HYBRID;
		else if (maptype=="5") istreet = true ;
	}
	MapsAPImaps[mid] = new google.maps.Map(document.getElementById(mid), MapsAPIoptions);
	MapsAPImaps[mid].setMapTypeId(mtype);
	if (mapzoom!=undefined) MapsAPImaps[mid].setZoom(mapzoom);	
	if (istreet) MapsAPImaps[mid]["street_pov"]={ heading: heading, pitch: pitch, zoom: fov };
	MapsAPImaps[mid].omark = new Array();
	MapsAPImaps[mid].geoPending = new Array();
	setMapsGeoMarkers(mid,mapmarkers);
	autoMapCenter(mid);
}


function getXMapCenter(mid) {
	var c = MapsAPImaps[mid].getCenter();
	return c.toUrlValue();
}
function getXMapZoom(mid) {
	return MapsAPImaps[mid].getZoom();
}
function getXMapStreetPosition(mid) {
	var stv = MapsAPImaps[mid].getStreetView();
	var c = stv.getPosition();
	return c.toUrlValue();
}
function getXMapStreetPov(mid) {
	var stv = MapsAPImaps[mid].getStreetView();
	var p = stv.getPov();
	return p.heading+"|"+p.pitch+"|"+p.zoom;
}

function setMapsGeoMarkers(mid,markers) {
	var adr,tit,cont,ico,open,id,loc,cc,lt,lg,amrks,mrks,omrks;
	amrks =  markers.split("|$|");	
	
	for (var i=0; i<amrks.length; i++) {
		mrks = amrks[i].split("|");	
		if (mrks[0]) adr=mrks[0]; else adr="";
		if (mrks[1]) tit=mrks[1]; else tit = "" ;
		if (mrks[2]) cont=mrks[2]; else cont = "" ;
		if (mrks[3]) ico=mrks[3]; else ico = "" ;
		if (mrks[4]) open=mrks[4]; else open = "" ;
		if (mrks[5]) id=mrks[5]; else id = "" ;
		delete loc;
		
		if (adr.indexOf(",")>0) {
			cc = adr.split(",",2);
			lt = parseFloat(cc[0]) ;
			lg = parseFloat(cc[1]) ;
			if (!isNaN(lg) && !isNaN(lt)) {
				loc = new google.maps.LatLng(lt,lg) ;
				AddMapsGeoMarker({mid:mid,loc:loc,adr:adr,tit:tit,cont:cont,ico:ico,open:open,id:id});
			}
		}
		
		if (loc==undefined) pushGeoCode({mid:mid,adr:adr,tit:tit,cont:cont,ico:ico,open:open,id:id});
	}
	cascadingAddMarkers(mid);
}

function pushGeoCode(omrk) {
	var geo = isInGeoCoded(omrk) ;
	var mp = MapsAPImaps[omrk["mid"]] ;
	
	if (geo) {
		omrk["loc"] = geo.geometry.location ;
		omrk["geo"] = geo;
		AddMapsGeoMarker(omrk);
		mp.panToBounds(geo.geometry.viewport);
	} else {
		if (mp["geoPending"]==undefined) mp["geoPending"] = new Array();
		mp["geoPending"].push(omrk) ;
	}
}

function isInGeoCoded(omrk) {
	for (var i=0; i<cacheGeoCode.length; i++) {
		if (cacheGeoCode[i]["adr"]==omrk["adr"]) return cacheGeoCode[i]["geo"] ;
	}
	return false ;
}


function cascadingAddMarkers(mid) {
	var mp = MapsAPImaps[mid] ;
	if (mp["geoPending"].length) {
		var omrk = mp["geoPending"][0];
		MapsAPIgeocoder.geocode( { 'address': omrk["adr"] }, function(results, status) {
			var omrk = mp["geoPending"].shift();
			if (status == google.maps.GeocoderStatus.OK) {
				omrk["loc"] = results[0].geometry.location ;
				omrk["geo"] = results[0];
				omrk["geoloc"] = omrk["adr"]+"|"+results[0].geometry.location.toUrlValue();
				cacheGeoCode.push(omrk);
				AddMapsGeoMarker(omrk);
				mp.panToBounds(results[0].geometry.viewport);
			} else {
				//alert("Erreur de geo-codage: " + status);
			}
			if (mp["geoPending"].length) {
				setTimeout(cascadingAddMarkers,1000,mid);
			} else {
				autoMapCenter(mid);
				var f = window.document.getElementById("flashcontent");
				if (f!=undefined) {
					var tof = new Array();
					for (var i=0; i<cacheGeoCode.length; i++) {
						var c = cacheGeoCode[i];
						if (c["mid"]==mid && c["id"]!="") tof.push(c);
					}
					if (tof.length) f.fullGeoLocalised(tof);
				}
			}
		});	

	}
}

function autoMapCenter(mid) {
	var mp = MapsAPImaps[mid] ;
	if (mp.omark==undefined) return ;
	if (mp.omark.length<2) return ;
	var bnd0 = mp.getCenter();
	if (bnd0==undefined) return ;
	var minlat = bnd0.lat() ;
	var maxlat = bnd0.lat() ; 
	var minlng = bnd0.lng() ;
	var maxlng = bnd0.lng() ;
	var mrk,lat,lng ;
	for (var i=0; i<mp.omark.length; i++) {
		mrk = mp.omark[i] ;
		lat = mrk.getPosition().lat();
		lng = mrk.getPosition().lng();
		minlat = Math.min(lat,minlat);
		maxlat = Math.max(lat,maxlat);
		minlng = Math.min(lng,minlng);
		maxlng = Math.max(lng,maxlng);		
	}
	var sw = new google.maps.LatLng(minlat,minlng) ;
	var ne = new google.maps.LatLng(maxlat,maxlng) ;
	var bnd = new google.maps.LatLngBounds(sw,ne);
	mp.fitBounds(bnd);
}


function AddMapsGeoMarker(omrk) {
	var mp = MapsAPImaps[omrk["mid"]] ;
	if (mp.getCenter()==undefined) mp.setCenter(omrk["loc"]);
	

	if (mp["street_pov"]!=undefined) {
		var street = mp.getStreetView();
		street.setPosition(omrk["loc"]);
		street.setPov(mp["street_pov"]);
		street.setVisible(true);
	}

	if (omrk["tit"]!=undefined) if (omrk["tit"]!="" || omrk["ico"]!="" || omrk["cont"]!="") {
		var omark = { map: mp, title:omrk["tit"], animation: google.maps.Animation.DROP, position: omrk["loc"] } ;
		if (omrk["ico"]!="") omark.icon = new google.maps.MarkerImage(omrk["ico"]);
		var mark = new google.maps.Marker(omark);
	}
	
	if (omrk["cont"]!=undefined) if (omrk["cont"]!="") {
		 mark["xinfo"] = new google.maps.InfoWindow({content:omrk["cont"]}) ;
		 if (omrk["open"]!=undefined) if (omrk["open"]=="open") mark["xinfo"].open(mp,mark);
		 google.maps.event.addListener(mark,'click',function(){this["xinfo"].open(mp,mark)});		
	}
	
	if (mark!=undefined) mp.omark.push(mark);
	
}


function getOverElement(nodtyp,mid,r,pr,src,scrol) {
	var iblk,elmt,iframe,ar,par,styl,scroll ;
	ar = r.split(",");
	styl = "position: absolute;left:"+ar[0]+"px;top:"+ar[1]+"px;width:"+ar[2]+"px;height:"+ar[3]+"px;margin : 0 0 0 0;border:0;background-color:transparent;";
	if (nodtyp=="iframe") {
		ifram = "<iframe id=\""+mid+"\" style=\""+styl+"\" src=\""+src+"\" scrolling=\""+scrol+"\" webkitAllowFullScreen mozallowfullscreen allowFullScreen ></iframe>";
	} else {
		scroll = scrol=="no" ? "overflow:hidden;" : "overflow:auto;" ;
		iblk = "<div id=\""+mid+"\" style=\""+styl+scroll+"\">"+src+"</div>";	
	}
	if (pr!=undefined) {
		par = pr.split(",");
		par[2] = Number(ar[2])+Number(ar[0]);
		par[3] = Number(ar[3])+Number(ar[1]);
		dstyl = "position:absolute;overflow:hidden;left:"+par[0]+"px;top:"+par[1]+"px;width:"+par[2]+"px;height:"+par[3]+"px;" ;
		elmt = window.document.createElement("div");
		elmt.setAttribute("id","owner"+mid);
		elmt.setAttribute("style",dstyl);
		elmt.innerHTML = iblk ;
	} else {
		elmt = window.document.createElement(nodtyp);
		elmt.setAttribute("id",mid);
		elmt.setAttribute("style",styl);
		if (nodtyp=="iframe") {
			elmt.setAttribute("scrolling",scrol);
			elmt.setAttribute("src",src);
		} else {
			elmt.innerHTML = src ; 
		}
	}
	return elmt;
}

function removeXMap(mid) {
	removeIFrame(mid) ;
}

function moveXMap(mid,r,pr) {
	moveIFrame(mid,r,pr) ;
}

function createIFrame(mid,r,pr,src,scrol) {
	var nodtyp,c,o,po,elmt,plson ;
	if (mid==undefined) return ;
	if (src==undefined) return ;
	if (scrol==undefined) scrol = "no";
	initOverlayDIV();
	if (src.indexOf("http")==0) nodtyp = "iframe"; else nodtyp="div";
	elmt = getOverElement(nodtyp,mid,r,pr,src,scrol);
	c = window.document.getElementById("overmaincontent") ;
	o = window.document.getElementById(mid) ;
	po = window.document.getElementById("owner"+mid) ;
	if (o!=undefined || po!=undefined) removeIFrame(mid);
	if (c!=undefined) c.appendChild(elmt);
	if (src.indexOf("g-plusone")>0) initPlusOneAPI() ;
}

function initPlusOneAPI() {
	if (!initPlusOne) {
	  var script = document.createElement("script");
	  script.type = "text/javascript";
	  script.src = "https://apis.google.com/js/plusone.js";
	  script.innerHTML = "{lang: 'fr', parsetags: 'explicit'}";
	  document.body.appendChild(script);
	  initPlusOne = true ;
	}
	goPlusOne();
}

function goPlusOne() {
 if (gapi.plusone.go!=undefined) {
	gapi.plusone.go();
 } else setTimeout(goPlusOne,100);
}

function removeIFrame(mid) {
	var c,o,po ;
	c = window.document.getElementById("overmaincontent") ;
	o = window.document.getElementById(mid) ;
	po = window.document.getElementById("owner"+mid) ;
	if (c!=undefined) {
		if (po!=undefined) c.removeChild(po);
		else if (o!=undefined) c.removeChild(o) ;
	}
}


function moveIFrame(mid,r,pr) {
	var ar,apr,o,po;
	if (r!=undefined) {
		ar = r.split(",");
		o = window.document.getElementById(mid) ;
		if (o!=undefined) {
			o.style.backgroundColor="transparent";
			o.style.left = ar[0]+"px" ;
			o.style.top = ar[1]+"px" ;
			o.style.width = ar[2]+"px" ;
			o.style.height = ar[3]+"px" ;		
		}
	}
	
	
	if (pr!=undefined) {
		po = window.document.getElementById("owner"+mid) ;
		apr = pr.split(",");
		apr[2] = Number(ar[2])+Number(ar[0]);
		apr[3] = Number(ar[3])+Number(ar[1]);
		if (po!=undefined) {
			o.style.backgroundColor="transparent";
			po.style.left = apr[0]+"px" ;
			po.style.top = apr[1]+"px" ;
			po.style.width = apr[2]+"px" ;
			po.style.height = apr[3]+"px" ;		
		}
	}
	
}

// défini la liste des xmenu
function defineXmenu(mid,lst) {
	xmenu[mid] = lst.split(",");
	xmenu_to[mid]=0;
}

// cache tous les sous menu de mid 
function hideAllXmenu(mid) {
	if (xmenu[mid]==undefined) return ;
	for (var i=0; i<xmenu[mid].length ; i++) {
		var o = window.document.getElementById("xmenu"+xmenu[mid][i]+"_"+mid);
		if (o!=undefined) o.style.display="none";
	}
}

// cache tous les menus frère et descendants de mid
function hideAllUpperXmenu(mid,lev) {
	if (xmenu[mid]==undefined) return ;
	for (var i=0; i<xmenu[mid].length ; i++) {
		var mv = xmenu[mid][i] ;
		var mlev = mv.split(".").length;
		if (mlev>=lev) {
			var o = window.document.getElementById("xmenu"+mv+"_"+mid);
			o.style.display="none";
		}
	}	
}

// affiche un sous menu (avec timeout hide)
function showXmenu(divid,timo) {
	if (timo==undefined) timo = 1000 ;
	var d = divid.split("_");
	var mid = d[1];
	var v = d[0].substr(5);
	var lev = v.split(".").length;
	hideAllUpperXmenu(mid,lev);
	window.clearTimeout(xmenu_to[mid]);
	xmenu_to[mid] = window.setTimeout("hideAllXmenu('"+mid+"')",timo);
	var o = window.document.getElementById(divid)
	if (o) o.style.display="";
	
}


// défini la liste des xObj de la page
function defineListXobj(lst) {
	lstXobj = lst.split("$");
}

// appelé par onload et onresize
function autoResizeEvent() {
	autoResizeXobjects();
	autoResizeXobjects(); // appel deux fois pour resizer les parents quand les enfants changent
}

// redimensionnement automatique de tous les Xobjects de la liste 
function autoResizeXobjects() {
	var id,o,parm,oid,opath,bautoS,bmargeS,glueX,glueY;
	var windowHeight=getWindowHeight();
	var wCols,hRows,w0Cols,h0Rows,spCols,spRows,oc,ocid,ncell,om;
	var beginClose,selStayOpen,onlyOneStayOpen,initSel;
	
	
	for (var i=0; i<lstXobj.length ; i++) {
		// récup param
		parm = lstXobj[i].split("|") ;
		oid = parm[0];
		id = oid.split("_").pop();
		opath = parm[1];
		bautoS = parm[2];
		bmargeS = parm[3];
		glueX = parm[4];
		glueY = parm[5];
		// recup l'objet
		o = window.document.getElementById(oid) ;
		if (o==undefined || o.style.display=="none" ) continue;
		// si c'est un objet xslid - traite les cellules
		if (oid.indexOf("xslid")==0) {
			wCols = parm[8]; spCols = parm[10];
			hRows = parm[9]; spRows = parm[11];
			w0Cols = parm[16];
			h0Rows = parm[17];	
			beginClose = parm[18];
			selStayOpen = parm[19];
			onlyOneStayOpen = parm[20];
			initSel = parm[21];
			if (o["initsel"]==undefined) o["initsel"] = initSel ;
			ncell = 0 ;
			//alert(oid+" "+beginClose+" "+initSel);
			while ( (oc = window.document.getElementById("cell"+ncell+"_"+id) ) != undefined ) {
				if ( !o["isclose"] && (beginClose!="on" || o["initsel"]==ncell) ) {
					if (hRows==0) {	// si la hauteur des lignes est automatique
						oc.style.height = "1px";
						oc.style.height = oc.scrollHeight+"px";
					} 

					if (wCols==0) {	// si la largeur des colonnes est automatique
						oc.style.width = "1px";
						oc.style.width = oc.scrollWidth+"px";				
					}
				}
			
				ncell++;
			}

		}

		//alert(oid);
		// traite l'object
		autoResizeXobj(i,o,oid,bautoS,bmargeS,glueX,glueY,windowHeight) ;
	}
}



// resize automatiquement un xobjet suivant ses paramètres
function autoResizeXobj(numo,o,oid,bautoS,bmargeS,glueX,glueY,windowHeight) {
	var po,py,ph,ofy,nh,iid,pt ;
	var posy,gtyp,gval,bo,boh,boy,numi ;
	var alo,alo_i,plo,plo_i;
	
	// les objets dont la hauteur doit être la taille restante dans le contenu (bautoS="owner,..")
	if (bautoS!=undefined && bautoS!="" && bautoS.indexOf("owner")==0) {
		
		// offset margeS
		if (bmargeS!=undefined && bmargeS!="") {
			ofy = parseInt(bmargeS.split(",")[0]) ;
			if (ofy==undefined) ofy = 0 ;
		} else ofy = 0 ;

		//recup hauteur du parent
		if (o.parentNode.attributes.id.value=="mainxobj") {
			ph = windowHeight-16 ;
		} else {
			po = window.document.getElementById(o.parentNode.attributes.id.value) ; 
			ph = po.offsetHeight ;
		}
		
		// recup la position verticale de l'objet
		py = o.offsetTop ;
		// recup le padding top de l'obget
		pt = Number(o.style.paddingTop.substr(0,o.style.paddingTop.length-2));
		// calcul la nouvelle hauteur
		nh = ph-py-ofy-pt;		
	
	// les objets dont la hauteur doit être adaptée au contenu (bautoS="content,..")		
	} else if (bautoS!=undefined && bautoS!="" && bautoS.indexOf("content")==0) {
		if (o.parentNode.attributes.id.value=="mainxobj" && oid.indexOf("_bgxdoc")>0) {
			nh = o.parentNode.scrollHeight ;
			o.style.height = "1px";
		} else { 
			// récupère la hauteur réelle du contenu
			nh = o.scrollHeight ;
			o.style.height = "1px";
		}
		
	} else nh = -1 ;	
	

	
	
	
	// traitement du changement de hauteur de l'objet 
	if (nh>=0) {
		// taille de l'objet (le DIV général)
		o.style.height = nh+"px";
	
		// pour les images
		if (oid.indexOf("xmedia")==0) {
			// redimensionne les objets image enfant du même id  
			for (var e=o.firstChild; e!=undefined; e=e.nextSibling) {
				iid = String(e.id) ;
				if (iid.indexOf(oid+"_img")==0 || iid.indexOf(oid+"_ilink")==0 ) {
					e.style.height = nh+"px" ;
				}
			}
		// pour les xbloc	
		} else if (oid.indexOf("xbloc")==0) {
			// redimensionne le fond de page à la taille du xbloc
			for (var f=o.firstChild; f!=undefined; f=f.nextSibling) {
				iid = String(f.id) ;
				if (iid.indexOf("xdoc")==0) {
					//f.style.height = nh+"px" ;
					f.style.height = o.scrollHeight+"px" ; // toujours à la taille du contenu
					// redimensionne l'image enfant _bgimg
					for (var e=f.firstChild; e!=undefined; e=e.nextSibling) {
						iid = String(e.id) ;
						if (iid.indexOf("xdoc")==0) {
							e.style.height = nh+"px" ;
							//e.style.height = o.scrollHeight+"px" ; // toujours à la taille du contenu
							break ;
						}
					}				
					break ;
				}
			}			
		}
	}
	
	

	// gestion du positionnement automatique 
	if (glueY!=undefined && glueY!="") {
		gtyp = String(glueY.substr(0,2)) ;
		gval = isNaN(Number(glueY.substr(2))) ? 0 : Number(glueY.substr(2))  ;
		// ATTENTION BT ET BB sont inversés dans flash
		if (gtyp=="bt") gtyp="bb"; else if (gtyp=="bb") gtyp="bt";
		// récupère le frère précédent
		numi = 1 ;
		while (numo-numi>=0) { // parcours tous les objets précédents de la liste
			alo = lstXobj[numo].split("|")[1] ;
			plo = alo.substr(0,alo.lastIndexOf("-")) ;
			alo_i = lstXobj[numo-numi].split("|")[1] ;
			plo_i = alo_i.substr(0,alo_i.lastIndexOf("-")) ;
			if (plo==plo_i) { //  si l'objet a le même parent
				bo = window.document.getElementById(lstXobj[numo-numi].split("|")[0]) ; 
				if (bo!=undefined) break;
			}
			numi++;
		}
		
		if (bo!=undefined) {
		
			if (bo.style.display=="none") {
				boh = 0 ;
			} else {
				if (bo.id.indexOf("xmedia")==0) {
					boh = Number(bo.offsetHeight) ;
				} else {
					var ovy = bo.style.overflowY ;
					var ovh = bo.style.height ;
					bo.style.height = "1px";
					bo.style.overflowY="hidden";
					boh = Number(bo.scrollHeight) ;
					bo.style.height=ovh ;
					bo.style.overflowY=ovy;
				}
				if (isNaN(boh) || boh==0) boh = Number(bo.style.height.substr(0,bo.style.height.length-2)) ;
				if (isNaN(boh)) boh = 0 ;				
			}
			
			if (bo.style.display=="none") {
				bo.style.display="";
				boy = Number(bo.offsetTop) ;
				if (isNaN(boy)) boy = Number(bo.style.top.substr(0,bo.style.top.length-2)) ;
				if (isNaN(boy)) boy = 0 ;
				bo.style.display="none";
			} else {
				boy = Number(bo.offsetTop) ;
				if (isNaN(boy) || boy==0) boy = Number(bo.style.top.substr(0,bo.style.top.length-2)) ;
				if (isNaN(boy)) boy = 0 ;
			}

			if (gtyp=="bt") {		// brother top
				posy = boy - o.scrollHeight - gval ; 
			} else if (gtyp=="bb") { // brother bottom
				posy = boy + boh + gval ;
			} else if (gtyp=="bc") { // brother center
				posy =  Math.round(boy + boh/2 - o.scrollHeight/2 + gval) ;
			} else if (gtyp=="bi") { // brother align
				posy = boy + gval ;				
			} else posy = -1 ;
		} else posy = -1;
		
		
	}	
	
	// traite la position automatique
	if (posy>=0) {
		// si l'objet est invisible il faut le rendre visible pour le positionner
		if (o.style.display=="none") {
			o.style.display="";
			o.style.top = posy+"px"; 
			o.style.display="none";
		} else {
			o.style.top = posy+"px";
		}	
	}			
	

	
	
}







function histoBack() {
	window.history.back() ;
}

function histoForward() {
	window.history.forward() ;
}

function histoGoTo(to) {
	window.history.go(to) ;
}

function execURL(url) {
	if (url.indexOf("http")>=0 || url.indexOf("pictures/")>=0) 
		window.open(url);
	else window.location.assign(url);
}

function replaceURL(url) {
	window.location.replace(url);
}

function selectMedia(mid,nmedia) {
	var o,oo,oi,ol,ooi,ool,n,opa ;
	if (mid.indexOf("/")>0) mid = getIdByPath(mid) ;

	if (xmedia_to[mid]!=undefined) clearTimeout(xmedia_to[mid]);
	if (xmedia_state[mid]!=undefined) xmedia_state[mid]["state"]="paused";		
	
	selectAudio(mid,nmedia);
	
	oo = window.document.getElementById(mid+"_img"+nmedia) ;
	ooi = window.document.getElementById(mid+"_ilink"+nmedia) ;
	ool = window.document.getElementById(mid+"_legend"+nmedia) ;
	
	if (oo!=undefined) {
		// cache l'image active et montre la nouvelle
		n=0 ;
		while (true) {
			o = window.document.getElementById(mid+"_img"+n) ;
			if (o!=undefined) {
				oi = window.document.getElementById(mid+"_ilink"+n) ;		
				ol = window.document.getElementById(mid+"_legend"+n) ;		
				if (o.style.opacity!=0 || (o.currentSrc!=undefined && o.style.display!="none") ) {
					if (n!=nmedia) {
						setTransition(o,mid,"out");		
						if (o.currentSrc!=undefined) { // video
							o.pause();
							o.style.display="none";
						}
						if (oi!=undefined) oi.style.display="none"; 
						if (ol!=undefined) ol.style.display="none"; 
						setTransition(oo,mid,"in");		
						if (oo.currentSrc!=undefined) oo.style.display="";
						if (ooi!=undefined) ooi.style.display=""; 
						if (ool!=undefined) ool.style.display=""; 
					}
					break;
				}
			} else break ;  
			n++;
		}
	}
	majPlayerInfos();
}


function selectAudio(mid,nmedia) {
	var o,lstaud,src,playing ;
	if (mid.indexOf("/")>0) mid = getIdByPath(mid) ;
	
	o = window.document.getElementById(mid+"_audioplayer") ;
	if (o!=undefined) {
		lstaud = o.innerHTML.split("\n") ;
		src = lstaud[nmedia] ;
		if (src!=undefined) {
			if (src!="stop") {
				playing = o.paused ? false : true ; 
				if (src!="") o.src = src ; 
				if (playing) o.play();
			} else o.pause();
		}
	}
	majPlayerInfos();
}


function nextMedia(mid,loop) {
	var o,oi,ol,oo,ooi,ool,n,opa ;
	if (mid.indexOf("/")>0) mid = getIdByPath(mid) ;

	if (xmedia_to[mid]!=undefined) clearTimeout(xmedia_to[mid]);	
	if (xmedia_state[mid]!=undefined) xmedia_state[mid]["state"]="paused";		
	n=0 ;
	while (true) {
		o = window.document.getElementById(mid+"_img"+n) ;
		if (o!=undefined) {
			oi = window.document.getElementById(mid+"_ilink"+n) ;	
			ol = window.document.getElementById(mid+"_legend"+n) ;	
			if (o.style.opacity!=0 || (o.currentSrc!=undefined && o.style.display!="none") ) {
				oo = window.document.getElementById(mid+"_img"+(n+1)) ;
				if (oo!=undefined) {
					selectAudio(mid,n+1);
					ooi = window.document.getElementById(mid+"_ilink"+(n+1)) ;	
					ool = window.document.getElementById(mid+"_legend"+(n+1)) ;	
					setTransition(o,mid,"out");
					if (oi!=undefined) oi.style.display="none"; 
					if (ol!=undefined) ol.style.display="none"; 
					if (o.currentSrc!=undefined) { // video
						o.pause();
						o.style.display="none";
					}
					setTransition(oo,mid,"in");
					if (oo.currentSrc!=undefined) oo.style.display="";
					if (ooi!=undefined) ooi.style.display=""; 
					if (ool!=undefined) ool.style.display=""; 
					if (oo.autoplay!=undefined) if (oo.autoplay) oo.play();
					break ;
				} else if (loop) {
					selectAudio(mid,0);
					oo = window.document.getElementById(mid+"_img0") ;
					ooi = window.document.getElementById(mid+"_ilink0") ;
					ool = window.document.getElementById(mid+"_legend0") ;	
					setTransition(o,mid,"out");					
					if (oi!=undefined) oi.style.display="none"; 
					if (ol!=undefined) ol.style.display="none"; 
					if (o.currentSrc!=undefined) {
						o.pause();
						o.style.display="none";
					}
					setTransition(oo,mid,"in");
					if (oo.currentSrc!=undefined) oo.style.display="";
					if (ooi!=undefined) ooi.style.display=""; 
					if (ool!=undefined) ool.style.display=""; 
					if (oo.autoplay!=undefined) if (oo.autoplay) oo.play();					
				}
			} 
		} else break ;  
		n++;
	}
	majPlayerInfos();
}




function prevMedia(mid,loop) {
	var o,oi,ol,oo,ooi,ool,n,opa ;
	if (mid.indexOf("/")>0) mid = getIdByPath(mid) ;

	if (xmedia_to[mid]!=undefined) clearTimeout(xmedia_to[mid]);
	if (xmedia_state[mid]!=undefined) xmedia_state[mid]["state"]="paused";			
	n=0 ;
	while (true) {
		o = window.document.getElementById(mid+"_img"+n) ;
		if (o!=undefined) {
			oi = window.document.getElementById(mid+"_ilink"+n) ;	
			ol = window.document.getElementById(mid+"_legend"+n) ;	
			if (o.style.opacity!=0 || (o.currentSrc!=undefined && o.style.display!="none") ) {
				oo = window.document.getElementById(mid+"_img"+(n-1)) ;
				ooi = window.document.getElementById(mid+"_ilink"+(n-1)) ;	
				ool = window.document.getElementById(mid+"_legend"+(n-1)) ;	
				if (oo!=undefined) {
					selectAudio(mid,n-1);
					setTransition(o,mid,"out");		
					if (oi!=undefined) oi.style.display="none"; 
					if (ol!=undefined) ol.style.display="none"; 
					if (o.currentSrc!=undefined) { // video
						o.pause();
						o.style.display="none";
					}
					setTransition(oo,mid,"in");		
					if (oo.currentSrc!=undefined) oo.style.display="";
					if (ooi!=undefined) ooi.style.display=""; 
					if (ool!=undefined) ool.style.display=""; 
					if (oo.autoplay!=undefined) if (oo.autoplay) o.play();
					break ;
				}
			} 
		} else break ;  
		n++;
	}
	majPlayerInfos();
}


function getCurrentMediaNum(mid) {
	var o,n ;
	if (mid.indexOf("/")>0) mid = getIdByPath(mid) ;
	n=0 ;
	while (true) {
		o = window.document.getElementById(mid+"_img"+n) ;
		if (o!=undefined) {
			if (o.style.opacity!=0 || (o.currentSrc!=undefined && o.style.display!="none") ) return n;
		} else return 0;
		n++;
	}
	return n;
}


function getMaxMediaNum(mid) {
	var o,n ;
	if (mid.indexOf("/")>0) mid = getIdByPath(mid) ;
	n=0 ;
	while (true) {
		o = window.document.getElementById(mid+"_img"+n) ;
		if (o==undefined) break;
		n++;
	}
	return n;
}

function getLegendMedia(mid,num) {
	var o = window.document.getElementById(mid+"_img"+num) ;	
	if (o!=undefined) return o.alt;
	return "" ;
}

function getCurrentMediaFile(mid,num) {
	var o = window.document.getElementById(mid+"_audioplayer") ;
	if (o!=undefined) {
		var lstaud = o.innerHTML.split("\n") ;
		return lstaud[num] ;
	} else {
		var oo = window.document.getElementById(mid+"_img"+num) ;
		if (oo!=undefined) {
			if (oo.currentSrc!=undefined) {
				return oo.currentSrc ;
			} else return oo.src ;
		}
	}
	return "" ;
}

/*
n_media : numéro du média en cours
nb_media : nb total de média du player
type : audio/video/photo  - type de média en cours
encours : nom du fichier en cours
mode : play/pause - mode en cours
mute : sound mute/sound on - mode du son				
legend : texte de légende en cours
position : position temporelle du média en cours
duree : durée totale du média en cours
titre : titre du média en cours / si ID3 ou YOUTUBE
artist : nom de l'artiste du média en cours / si ID3
album : nom de l'album du média en cours / si ID3
state : loading/playing/paused/buffering/xing/stopped - etat du player
*/

function majPlayerInfos() {
	var otxt,xmodel,mid,nmedia,maxmedia,leg,encours,mode,state ;
	for (xid in list_infoMedia) {
		otxt = window.document.getElementById(xid);
		if (otxt!=undefined) {
			xmodel = list_infoMedia[xid]["xmodel"] ;
			mid =  list_infoMedia[xid]["mid"] ;
			nmedia = getCurrentMediaNum(mid) ;
			maxmedia = getMaxMediaNum(mid) ;
			xmodel = xmodel.split("!!n_media!!").join(nmedia+1) ;
			xmodel = xmodel.split("!!nb_media!!").join(maxmedia) ;
			leg = getLegendMedia(mid,nmedia) ;
			encours = getCurrentMediaFile(mid,nmedia);
			mode = xmedia_state[mid]["state"] ;
			state = xmedia_state[mid]["state"] ;
			xmodel = xmodel.split("!!legend!!").join(leg) ;
			xmodel = xmodel.split("!!lEgend!!").join(leg) ;
			xmodel = xmodel.split("!!LEgend!!").join(leg) ;
			xmodel = xmodel.split("!!LEGEND!!").join(leg) ;
			xmodel = xmodel.split("!!encours!!").join(encours) ;
			xmodel = xmodel.split("!!Encours!!").join(encours) ;
			xmodel = xmodel.split("!!EEcours!!").join(encours) ;
			xmodel = xmodel.split("!!ENCOURS!!").join(encours) ;
			xmodel = xmodel.split("!!mode!!").join(mode) ;
			xmodel = xmodel.split("!!Mode!!").join(mode) ;
			xmodel = xmodel.split("!!MOde!!").join(mode) ;
			xmodel = xmodel.split("!!MODE!!").join(mode) ;			
			xmodel = xmodel.split("!!state!!").join(state) ;
			xmodel = xmodel.split("!!State!!").join(state) ;
			xmodel = xmodel.split("!!STate!!").join(state) ;
			xmodel = xmodel.split("!!STATE!!").join(state) ;				
			otxt.innerHTML = xmodel ;
		}			
	}
}


// creation de la liste des text playerInfos
function createListInfoMedia() {
	var parm,oid,o,xt,mid;
	for (var i=0; i<lstXobj.length ; i++) {
		parm = lstXobj[i].split("|") ;
		oid = parm[0];
		o = window.document.getElementById(oid) ;
		if (o==undefined) continue;
		// traite les playerInfos
		if (oid.indexOf("xtxt_")==0) {
			if (o.innerHTML.indexOf("_playerInfos|")>0) {
				xt = o.innerHTML.split("_playerInfos|");
				mid = xt[0].split("\n").join("") ;
				if (list_infoMedia[oid]==undefined) {
					list_infoMedia[oid] = {mid:mid,xmodel:xt[1]} ;
				}
				o.innerHTML = "";
				
			}
		}		
	}
	majPlayerInfos();
}

function playMedia(mid) {
	var o,oo,ox,n ;
	if (mid.indexOf("/")>0) mid = getIdByPath(mid) ;
	
	if (xmedia_to[mid]!=undefined) clearTimeout(xmedia_to[mid]);

	o = window.document.getElementById(mid+"_audioplayer") ;
	oo =  window.document.getElementById(mid+"_ilink") ;
	if (o!=undefined) {
		if (o.paused) {
			o.play();
			if (oo!=undefined) {
				if (oo.src!="pictures/biblio/icons/modules/audio_on.png") oo.src = "pictures/biblio/icons/modules/audio_on.png" ;
			}
		}
	} else {
	
		n = getCurrentMediaNum(mid) ;
		ox = window.document.getElementById(mid+"_img"+n) ;
		if (ox!=undefined && ox.currentSrc!=undefined) {
			ox.play();
			if (xmedia_state[mid]) xmedia_state[mid]["state"]="playing";
		} else if (xmedia_state[mid]) {
			setTimeoutNextMedia(mid);
			xmedia_state[mid]["state"]="playing";
		}
		
	}
	
	majPlayerInfos();

}

function pauseMedia(mid) {
	var o,oo,ox,n;
	if (mid.indexOf("/")>0) mid = getIdByPath(mid) ;
	
	if (xmedia_to[mid]!=undefined) clearTimeout(xmedia_to[mid]);
	
	n = getCurrentMediaNum(mid) ;
	ox = window.document.getElementById(mid+"_img"+n) ;
	if (ox!=undefined && ox.currentSrc!=undefined) ox.pause();
	if (xmedia_state[mid]) xmedia_state[mid]["state"]="paused";
		
	o = window.document.getElementById(mid+"_audioplayer") ;
	oo =  window.document.getElementById(mid+"_ilink") ;
	if (o!=undefined) {
		if (!o.paused) {
			o.pause();
			if (oo!=undefined) {
				if (oo.src!="pictures/biblio/icons/modules/audio_off.png") oo.src = "pictures/biblio/icons/modules/audio_off.png" ;
			}			
		}
	}
	
	majPlayerInfos();

}

function togglePlayMedia(mid) {
	var o,oo,ox,n;
	if (mid.indexOf("/")>0) mid = getIdByPath(mid) ;
	
	if (xmedia_to[mid]!=undefined) clearTimeout(xmedia_to[mid]);
	
	n = getCurrentMediaNum(mid) ;
	ox = window.document.getElementById(mid+"_img"+n) ;
	if (ox!=undefined && ox.currentSrc!=undefined) {
		if (ox.paused) {
			ox.play();
			if (xmedia_state[mid]) xmedia_state[mid]["state"]="playing";
		} else {
			ox.pause();
			if (xmedia_state[mid]) xmedia_state[mid]["state"]="paused";
		}
	} else {
		if (xmedia_state[mid]) {
			if (xmedia_state[mid]["state"]=="playing") {
				xmedia_state[mid]["state"]="paused";		
			} else {
				setTimeoutNextMedia(mid);
				xmedia_state[mid]["state"]="playing";
			}
		}	
	}
	
	o = window.document.getElementById(mid+"_audioplayer") ;
	oo =  window.document.getElementById(mid+"_ilink") ;
	if (o!=undefined) {
		if (o.paused) {
			o.play(); 
			if (oo!=undefined) {
				if (oo.src.indexOf("pictures/biblio/icons/modules/audio_on.png")<0) oo.src = "pictures/biblio/icons/modules/audio_on.png" ;
			}			
		} else {
			o.pause();
			if (oo!=undefined) {
				if (oo.src.indexOf("pictures/biblio/icons/modules/audio_off.png")<0) oo.src = "pictures/biblio/icons/modules/audio_off.png" ;
			}	
		}
	}
	
	
	majPlayerInfos();
	
}


function toggleZoomMedia(mid,modezoom) {
	var o = window.document.getElementById(mid) ;
	var k = getUsedKit() ;
	var po,ph,pw,rw,rh,ox,oy,ow,oh,ofx,ofy;
	if (isIphone) return ;
	if (o!=undefined) {
		//alert("ZOOM "+mid+":"+modezoom);
		if (k["transition"]!="") o.removeEventListener(k["transitionEnd"],finZoom);	
		if (o["inzoom"]) {
			if (k["transition"]!="") {
				o.addEventListener(k["transitionEnd"],finZoom,true);	
				o.style[k["transition"]] = "all 0.4s cubic-bezier(0.940, 0.000, 0.575, 1.000)";
			}
			o.style[k["transform"]]  = o["xtransform"] ;
			o["inzoom"] = false ;
			o.style.zIndex = o["zindx"] ;
		} else {
			if (o["zindx"]==undefined) o["zindx"] = o.style.zIndex ;
			if (o["xtransform"]==undefined) o["xtransform"]=o.style[k["transform"]];
			o.style.zIndex = 100 ;
			if (o.parentNode.attributes.id.value=="mainxobj") {
				ph = getWindowHeight()-16 ;
				pw = getWindowWidth()-16 ;
			} else {
				po = window.document.getElementById(o.parentNode.attributes.id.value) ; 
				ph = po.offsetHeight ;
				pw = po.offsetWidth ;
			}
			ox = o.offsetLeft ;
			oy = o.offsetTop ;
			ow = o.offsetWidth ;
			oh = o.offsetHeight ;
			rw = pw/ow ;
			rh = ph/oh ;
			if (rw>rh) r=rh; else r=rw;
			ofx = Math.round(-ox-(ow*r-pw)/2) ;
			ofy = Math.round(-oy-(oh*r-ph)/2) ;
			if (k["transition"]!="") o.style[k["transition"]] = "all 0.6s cubic-bezier(1.000, 0.000, 0.480, 0.800)";
			
			o.style[k["transformOrigin"]] = "left top";
			o.style[k["transform"]]  = "translate("+ofx+"px,"+ofy+"px) scale("+r+","+r+")";
			o["inzoom"] = true ;
		}
	}
}


function finZoom(event) {
	var k = getUsedKit() ;
	this.removeEventListener(k["transitionEnd"],finZoom);	
	this.style[k["transition"]] = "all 0s";
}



function autoNextMedia(mid) {
	var ox,n;
	nextMedia(mid,xmedia_state[mid]["xloop"]) ;
	xmedia_state[mid]["state"]="playing";
		
	n = getCurrentMediaNum(mid) ;
	ox = window.document.getElementById(mid+"_img"+n) ;
	
	if (ox!=undefined && ox.currentSrc!=undefined) {
		if (xvid_event[mid+"_img"+n]==undefined) {
			xvid_event[mid+"_img"+n] =  function () { autoNextMedia(mid); } ;
			ox.addEventListener("ended", xvid_event[mid+"_img"+n] ,true );
		}
		if (ox.paused) ox.play();
	} else {
		setTimeoutNextMedia(mid);
	}	
	
	majPlayerInfos();
}



function setTimeoutNextMedia(mid) {
	if (!isIphone) xmedia_to[mid]=setTimeout("autoNextMedia('"+mid+"')",xmedia_state[mid]["xtime"]);
}

function getUsedKit() {
	var usk = new Object();
	if (isIphone) {
		usk["transition"] = "" ;
		usk["transitionEnd"] = "" ;
		usk["transform"] = "WebkitTransform" ;	
		usk["transformOrigin"] = "WebkitTransformOrigin" ;	
	} else 	if (isChrome || isSafari) {
		usk["transition"] = "WebkitTransition" ;
		usk["transitionEnd"] = "webkitTransitionEnd" ;
		usk["transform"] = "WebkitTransform" ;
		usk["transformOrigin"] = "WebkitTransformOrigin" ;	
	} else if (isFirefox) {
		usk["transition"] = "MozTransition" ;
		usk["transitionEnd"] = "transitionend" ;
		usk["transform"] = "MozTransform" ;	
		usk["transformOrigin"] = "MozTransformOrigin" ;	
	} else if (isOpera) {
		usk["transition"] = "OTransition" ;
		usk["transitionEnd"] = "oTransitionEnd" ;
		usk["transform"] = "OTransform" ;	
		usk["transformOrigin"] = "OTransformOrigin" ;			
	} else if (isIE) {
		usk["transition"] = "" ;
		usk["transitionEnd"] = "" ;
		usk["transform"] = "msTransform" ;	
		usk["transformOrigin"] = "msTransformOrigin" ;			
	} else {
		usk["transition"] = "transition" ;
		usk["transitionEnd"] = "transitionEnd" ;
		usk["transform"] = "transform" ;	
		usk["transformOrigin"] = "transformOrigin" ;			
	}
	return usk ;
}

function setMediaPlayer(mid,xtime,xautoplay,xloop,xplayer,xnmedia,xopacity,xtransition,xtdure,xtdelai) {
	var ox,oxs ;

	xmedia_state[mid] = {xtime:xtime,xautoplay:xautoplay,xloop:xloop,xplayer:xplayer,xnmedia:xnmedia,xopacity:xopacity,xtransition:xtransition,xtdure:xtdure,xtdelai:xtdelai,state:(xautoplay && !isIphone?"playing":"paused")} ;
	if (xmedia_to[mid]!=undefined) clearTimeout(xmedia_to[mid]);
	
	ox = window.document.getElementById(mid+"_img"+xnmedia) ;
	
	if (ox!=undefined) {
		// création du timer du player
		if (xautoplay && xplayer) {
			if (ox.currentSrc!=undefined) {
				xvid_event[mid] =  function () { autoNextMedia(mid); } ;
				ox.addEventListener("ended", xvid_event[mid] ,true );			
			} else {
				setTimeoutNextMedia(mid);
			}
		}
		
		// initialisation des propriétés avant 1ères transitions
		prepareTransition(mid);
		
		// transition du média sélectionné
		setTransition(ox,mid,"in");

	}
}


//appelé par onload pour mettre en route les vidéos et les audios en mode autoplay
function initAutoPlayMedia() {
	var xautoplay,xnmedia,ox,oxs;
	for (var mid in xmedia_state) {
		xautoplay = xmedia_state[mid]["xautoplay"];
		xnmedia = xmedia_state[mid]["xnmedia"] ;
		if (xautoplay) {
			if (!swfobject.hasFlashPlayerVersion("6.0.0")) {
				ox = window.document.getElementById(mid+"_img"+xnmedia) ;
				if (ox!=undefined && ox.currentSrc!=undefined ) ox.play();
				oxs = window.document.getElementById(mid+"_audioplayer") ;
				if (oxs!=undefined) oxs.play();
			}
		}
	}
}


function prepareTransition(mid) {
	var ox,n ;
	var k = getUsedKit() ;
	if (xmedia_state[mid] && xmedia_state[mid]["xtransition"]) {	
		n=0;
		while (true)  {
			ox=window.document.getElementById(mid+"_img"+n) ;
			if (ox!=undefined) {
				if (ox["xtransform"]==undefined) ox["xtransform"]=ox.style[k["transform"]];
				ox["param"] = xmedia_state[mid] ;
				if (k["transition"]!="") transFrom(ox); 
			} else break;
			n++;
		}
	}
}



function transFrom(o) {
	var xt = o["param"]["xtransition"].toLowerCase().split("_") ;
	var effet = xt[0];
	var acc = xt[1];
	var op1 = xt[2];
	var op2 = xt[3];
	var k = getUsedKit() ;
	
	if (effet=="slide") {
		if (op1=="1") { 
			o.style[k["transform"]]  = "translate(-"+o.height+"px,-"+o.width+"px)";
		} else if (op1=="2") {
			o.style[k["transform"]]  = "translateY(-"+o.height+"px)";
		} else if (op1=="3") {
			o.style[k["transform"]]  = "translate(-"+o.height+"px,"+o.width+"px)";
		} else if (op1=="4") {
			o.style[k["transform"]]  = "translateX(-"+o.width+"px)";
		} else if (op1=="5") {
		} else if (op1=="6") {
			o.style[k["transform"]]  = "translateX("+o.width+"px)";
		} else if (op1=="7") {
			o.style[k["transform"]]  = "translate("+o.height+"px,-"+o.width+"px)";			
		} else if (op1=="8") {
			o.style[k["transform"]]  = "translateY("+o.height+"px)";
		} else if (op1=="9") {
			o.style[k["transform"]]  = "translate("+o.height+"px,"+o.width+"px)";			
		}
	} else if (effet=="rotate") {
		if (op2=="1") {	//sens+
			o.style[k["transform"]]  = "rotate(-"+op1+"deg)";
		} else if (op2=="2") {	// sens-
			o.style[k["transform"]]  = "rotate("+op1+"deg)";
		}
	}  else if (effet=="zoom") {
		o.style[k["transform"]]  = "scale(0,0)";
	} else if (effet=="squeeze") {
		if (op2=="1") {	//sens+
			o.style[k["transform"]]  = "scaleX(0)";
		} else if (op2=="2") {	// sens-
			o.style[k["transform"]]  = "scaleY(0)";
		}
	} else if (effet=="flying") {
		if (op1=="1") { 
			o.style[k["transform"]]  = "rotate(-90deg) scale(0,0)";
		} else if (op1=="2") {
			o.style[k["transform"]]  = "scale(0,0) skewX(60deg)";
		} else if (op1=="3") {
			o.style[k["transform"]]  = "scale(0,0) skewX(-60deg)";
		} else if (op1=="4") {
			o.style[k["transform"]]  = "scale(0,0) skew(-30deg,60deg)";
		} else if (op1=="5") {
			o.style[k["transform"]]  = "rotate(45deg) skewX(-180deg)";
		} else if (op1=="6") {
			o.style[k["transform"]]  = "scale(0,0) skew(60deg,-30deg)";
		} else if (op1=="7") {
			o.style[k["transform"]]  = "rotate(90deg) scaleY(0)";
		} else if (op1=="8") {
			o.style[k["transform"]]  = "rotate(45deg) skewY(180deg)";
		} else if (op1=="9") {
			o.style[k["transform"]]  = "rotate(90deg) skewY(-180deg)";		
		}
	} else if (effet=="wipe") {
		if (op1=="1") { 
			o.style.clip  = "rect(-20px,-20px,-20px,-20px)";
		} else if (op1=="2") {
			o.style.clip  = "rect(-20px,"+(o.width+20)+"px,1px,-20px)";
		} else if (op1=="3") {
			o.style.clip  = "rect(-20px,"+(o.width+20)+"px,-20px,"+(o.width+20)+"px)";
		} else if (op1=="4") {
			o.style.clip  = "rect(-20px,-20px,"+(o.height+20)+"px,-20px)";
		} else if (op1=="5") {
			o.style.clip  = "rect(-20px,"+(o.width+20)+"px,1px,-20px)";
		} else if (op1=="6") {
			o.style.clip  = "rect(-20px,"+(o.width+20)+"px,"+(o.height+20)+"px,"+(o.width+20)+"px)";
		} else if (op1=="7") {
			o.style.clip  = "rect("+(o.height+20)+"px,-20px,"+(o.height+20)+"px,-20px)";
		} else if (op1=="8") {
			o.style.clip  = "rect("+(o.height+20)+"px,"+(o.width+20)+"px,"+(o.height+20)+"px,-20px)";
		} else if (op1=="9") {
			o.style.clip  = "rect("+(o.height+20)+"px,"+(o.width+20)+"px,"+(o.height+20)+"px,"+(o.width+20)+"px)";
		}
	} 
}

function transTo(o) {
	var xt = o["param"]["xtransition"].toLowerCase().split("_") ;
	var effet = xt[0];
	var k = getUsedKit() ;
	
	if (effet=="wipe") {
		o.style.clip  = "rect(-20px,"+(o.width+20)+"px,"+(o.height+20)+"px,-20px)";
	} else {
		o.style[k["transform"]]  = o["xtransform"];
	}
}

function endOutTransition(event) {
	clearTransition(this);
	transFrom(this);
}

function endInTransition(event) {
	clearTransition(this);
}

function clearTransition(o) {
	var k = getUsedKit() ;
	if (k["transition"]!="") {
		o.removeEventListener(k["transitionEnd"],endOutTransition);		
		o.removeEventListener(k["transitionEnd"],endInTransition);	
		o.style[k["transition"]] = "all 0s";
	}
}

function setTransition(o,mid,inout) {
	var xtdure;
	var k = getUsedKit() ;
	if (xmedia_state[mid] && xmedia_state[mid]["xtransition"]) {
		xtdure = xmedia_state[mid]["xtdure"] ;
		clearTransition(o);
		if (k["transition"]!="") o.style[k["transition"]] = "all "+xtdure+"s";
		if (inout=="out") {
			if (k["transition"]!="") o.addEventListener(k["transitionEnd"], endOutTransition , false );
			o.style.opacity  = 0 ;
		} else {
			if (k["transition"]!="") o.addEventListener(k["transitionEnd"], endInTransition , false );
			if (k["transition"]!="") transTo(o);
			o.style.opacity  = xmedia_state[mid]["xopacity"] ;
		}			
		
	
	}
}


function selectItem(mid,nitem) {
	if (mid.indexOf("/")>0) mid = getIdByPath(mid) ;
	var parm = getParmById(mid);
	var id = mid.split("_").pop();
	var nCols,nRows,wCols,hRows,w0Cols,h0Rows,spCols,spRows,oc,o,ncell,sxx,syy;
	var beginClose,selStayOpen,onlyOneStayOpen;	
	if (mid.indexOf("xslid")==0) {
		nCols = Number(parm[6]); nRows = Number(parm[7]);
		wCols = Number(parm[8]); spCols = Number(parm[10]);
		hRows = Number(parm[9]); spRows = Number(parm[11]);
		w0Cols = parm[16];
		h0Rows = parm[17];	
		beginClose = parm[18];
		selStayOpen = parm[19];
		onlyOneStayOpen = parm[20];		
		sxx = 0 ;
		syy = 0 ;
		o = window.document.getElementById(mid) ;
		if (o!=undefined) {
			if ( (oc = window.document.getElementById("cell"+(nitem-1)+"_"+id) ) != undefined ) {
				o.scrollTop = oc.offsetTop ;
				o.scrollLeft = oc.offsetLeft ;
			} else {
				o.scrollTop = 0 ;
				o.scrollLeft = 0 ;
			}
			o["initsel"] = nitem ;
		}
		if ( getParmById(mid)[19]=="on") openItem(mid,nitem); // si selectStayOpen ouvre l'item sélectionné
	}
}

function openItem(mid,nitem) {
	if (mid.indexOf("/")>0) mid = getIdByPath(mid) ;
	var parm = getParmById(mid);
	var id = mid.split("_").pop();
	var wCols,hRows,w0Cols,h0Rows,spCols,spRows,oc,o;
	var beginClose,selStayOpen,onlyOneStayOpen;	
	
	if (mid.indexOf("xslid")==0) {
		wCols = parm[8]; spCols = parm[10];
		hRows = parm[9]; spRows = parm[11];
		w0Cols = parm[16];
		h0Rows = parm[17];	
		beginClose = parm[18];
		selStayOpen = parm[19];
		onlyOneStayOpen = parm[20];	

		o = window.document.getElementById(mid) ;
		if (o!=undefined) {
			o["initsel"] = nitem ;
			o["isclose"] = false ;
		}
		
		if ( (oc = window.document.getElementById("cell"+nitem+"_"+id) ) != undefined ) {
			beginOpenItem(oc);
			if (hRows==0) {	// si la hauteur des lignes est automatique
				oc.style.height = "1px";
				oc.style.height = oc.scrollHeight+"px";
			} else {
				oc.style.height = hRows+"px";
			}	
			if (wCols==0) {	// si la largeur des colonnes est automatique
				oc.style.width = "1px";
				oc.style.width = oc.scrollWidth+"px";				
			} else {
				oc.style.width = wCols+"px";
			}	
			if (onlyOneStayOpen=="on") closeAllItemBut(mid,nitem) ;		
			if (getUsedKit()["transition"]=="") autoResizeEvent();			
		}
		
	}	
}

function closeItem(mid,nitem) {
	if (mid.indexOf("/")>0) mid = getIdByPath(mid) ;
	var parm = getParmById(mid);
	var id = mid.split("_").pop();
	if (mid.indexOf("xslid")==0) {
		wCols = parm[8]; spCols = parm[10];
		hRows = parm[9]; spRows = parm[11];
		w0Cols = parm[16];
		h0Rows = parm[17];
		var o = window.document.getElementById(mid) ;
		if ( (oc = window.document.getElementById("cell"+nitem+"_"+id) ) != undefined ) {	
			if (o!=undefined) o["isclose"] = true ;	
			beginOpenItem(oc);		
			oc.style.height = h0Rows+"px";
			oc.style.width = w0Cols+"px";
			if (getUsedKit()["transition"]=="") autoResizeEvent();
		}
	}	
	
}


function overOpenItem(mid,nitem) {
	if (xobj_to[mid+nitem]) { window.clearTimeout(xobj_to[mid+nitem]); delete xobj_to[mid+nitem]; }
	openItem(mid,nitem);
}

function delaiCloseItem(mid,nitem) {
	if (xobj_to[mid+nitem]) { window.clearTimeout(xobj_to[mid+nitem]); delete xobj_to[mid+nitem]; }
	xobj_to[mid+nitem] = window.setTimeout("closeItem('"+mid+"',"+nitem+")",3000);	
}


function closeAllItemBut(mid,nitem) {
	if (mid.indexOf("/")>0) mid = getIdByPath(mid) ;
	var parm = getParmById(mid);
	var id = mid.split("_").pop();
	var wCols,hRows,w0Cols,h0Rows,oc,ncell,o;
	if (mid.indexOf("xslid")==0) {
		wCols = parm[8]; 
		hRows = parm[9]; 
		w0Cols = parm[16];
		h0Rows = parm[17];	
		ncell=0;
		o = window.document.getElementById(mid) ;
		while ( (oc = window.document.getElementById("cell"+ncell+"_"+id) ) != undefined ) {	
			if (ncell!=nitem) {
				if (o!=undefined) o["isclose"] = true ;	
				if (oc.style.height!=(h0Rows+"px")) {
					oc.style.height = h0Rows+"px";
				}
				if (oc.style.width!=(w0Cols+"px")) {
					oc.style.width = w0Cols+"px";
				}
			}
			ncell++;
		}
	}
}


function invertOvItem(mid,nitem) {
	if (mid.indexOf("/")>0) mid = getIdByPath(mid) ;
	var parm = getParmById(mid);
	var id = mid.split("_").pop();
	var wCols,hRows,w0Cols,h0Rows,spCols,spRows,oc,o;
	var beginClose,selStayOpen,onlyOneStayOpen;	
	if (mid.indexOf("xslid")==0) {
		wCols = parm[8]; spCols = parm[10];
		hRows = parm[9]; spRows = parm[11];
		w0Cols = parm[16];
		h0Rows = parm[17];	
		beginClose = parm[18];
		selStayOpen = parm[19];
		onlyOneStayOpen = parm[20];		
		o = window.document.getElementById(mid) ;
		if ( (oc = window.document.getElementById("cell"+nitem+"_"+id) ) != undefined ) {	
			beginOpenItem(oc);
			if (oc.style.height==(h0Rows+"px")) {
				if (o!=undefined) {
					o["initsel"] = nitem ;			
					o["isclose"] = false ;
				}
				if (hRows==0) {	// si la hauteur des lignes est automatique
					oc.style.height = "1px";
					oc.style.height = oc.scrollHeight+"px";
				} else {
					oc.style.height = hRows+"px";
				}	
			} else {
				oc.style.height = h0Rows+"px";
			}
			if (oc.style.width==(w0Cols+"px")) {
				if (o!=undefined) {
					o["initsel"] = -1 ;	
					o["isclose"] = true ;	
				}
				if (wCols==0) {	// si la largeur des colonnes est automatique
					oc.style.width = "1px";
					oc.style.width = oc.scrollWidth+"px";				
				} else {
					oc.style.width = wCols+"px";
				}	
			} else {
				oc.style.width = w0Cols+"px";
			}			
			if (onlyOneStayOpen=="on") closeAllItemBut(mid,nitem) ;
			if (getUsedKit()["transition"]=="") autoResizeEvent();
		}	
	}
}

function beginOpenItem(o) {
	if (getUsedKit()["transition"]!="") {
		o.removeEventListener(getUsedKit()["transitionEnd"],endOpenItem);
		o.addEventListener(getUsedKit()["transitionEnd"],endOpenItem,true);
		o.style[getUsedKit()["transition"]] = "all 0.6s";
	}
}

function endOpenItem(event) {
	this.removeEventListener(getUsedKit()["transitionEnd"],endOpenItem);
	this.style[getUsedKit()["transition"]] = "all 0s";
	autoResizeEvent();
}

