// script pour afficher des images dans un calque plutôt qu'une pop-up
// http://moncastel.9online.fr/gimg/gimg.htm
// attention c'est le contenu de id et non title qui s'affiche dans l'entête pour éviter la superposition des info-bulles
// Création de la pseudo-popup :
// le style de chaque div se trouve dans la feuille de style. Ne pas changer le style de pop_pop ci-dessous
fe='<div id="pop_pop" style="display:none" onmousedown="dx=px-gdim.offsetLeft;dy=py-gdim.offsetTop;drag=1;" onmouseup="drag=0">' 
fe+='<div id="pop_tet" onmousedown="dx=px-gdim.offsetLeft;dy=py-gdim.offsetTop;drag=1;" onmouseup="drag=0">' 
fe+='<img title=" Fermer " src="images/site_mlf/fermer.gif" onclick="voirSelect(\'visible\');gdim.style.display=\'none\'" height="24" width="24" />' 
fe+='<div id="pop_comment">d</div></div></div>' 
function initLienImg(){ 
db=!D.documentElement.clientWidth?D.body:D.documentElement //quirk IE6 
gdim=D.getElementById('pop_pop'); lx=D.getElementById('pop_comment') 
addEvent(D,"mousemove",controle_position) 
elem=document.getElementsByTagName('select'); // pour fonction voirSelect  
//création de l'image 
im1=D.createElement("img");gdim.appendChild(im1); 
//écriture des évènements 
l=D.getElementsByTagName('a'); 
for(var i=0;i<l.length;++i){ 
  //ajoute onclick=grdimg dans liens image avec extention .jpg ou .gif ou .png 
  result=l[i].href.search(/jpg$|JPG$|gif$|GIF$|png$|PNG$/); 
  if(result!=-1) l[i].onclick=grdimg; 
  } 
} 
function controle_position(e){ 
sx=gk?pageXOffset:db.scrollLeft; //scroll h 
sy=gk?pageYOffset:db.scrollTop; //scroll v
px=gk?e.pageX:event.clientX+sx; //curseur x 
py=gk?e.pageY:event.clientY+sy; //curseur y 
if(drag)with(gdim.style){left=px-dx+"px"; top=py-dy+"px"} 
return false 
} 
//Renvoi image et titre dans le calque. 
function grdimg(){ 
fx=gk?innerWidth-20:db.clientWidth //l fenêtre 
fy=gk?innerHeight:db.clientHeight //h fenêtre 
//charge l'image dans le cache du navigateur. 
im=new Image();im.src=this.href;
wtim=new Image();wtim.src="images/site_mlf/load.gif";
//l'affiche en grandeur réduite repositionnée. 
with(gdim.style){display="block";top=sy+2+'px'}; 
//with(im1){src=im.src;width=height=50};
with(im1) {src=wtim.src;width=height=30};
if(gk)im1.style.marginBottom=-cr+"px";//correction Gecko 

//montre le message d'attente. 
lx.firstChild.data=""; 
//colore le lien comme visité, récupère le titre de l'image enregistré dans la balise id
this.style.color=D.vlinkColor;txt=this.id; 
//Lance le controle de chargement 
actif=setTimeout('controleChargement()',100);
//désactive l'action normale du lien HTML 
return false 
} 
//controle du chargement de l'image 
function controleChargement(){ 
//éxécute imgOK quand c'est terminé 
im.complete?imgOK(): 
//sinon relance le contrôle toutes les 100 ms 
actif=setTimeout('controleChargement()',100) 
}
function imgOK(){ // image chargée. 
clearTimeout(actif);
//L'image ne dépasse pas la fenêtre: 
if(im.width>=fx){im.height*=(fx-20)/im.width;im.width=fx-20;} 
if(im.height>=fy){im.width*=(fy-30)/im.height;im.height=fy-30;}
//Chargement du commentaire
lx.style.width=im.width+2; lx.firstChild.data=txt; 
//applique les dimensions recalculées à l'image. 
with(im1){src=im.src;}
im1.width=im.width;im1.height=im.height;
voirSelect('hidden') 
}
// bug ie corrigé : cache les <select> 
function voirSelect(v){ 
if(!gk){for(i=0;i<elem.length;i++)elem[i].style.visibility=v;} 
} 
function addEvent(obj,evType,fn,capt){ // ajoute un événement sans écraser l'éxistant. 
if(obj.addEventListener){obj.addEventListener(evType,fn,capt);return true;} // NS6+ 
else if(obj.attachEvent)obj.attachEvent("on"+evType,fn) // IE 5+ 
else {return false;} 
}
// initialisation 
D=document;gk=window.Event?1:0/*Gecko*/; 
dx=dy=e=drag=cr=0 
addEvent(window,"load",initLienImg) 
D.write(fe) 
// fin script affichage image dans un calque
//-----------------------------------------------------

// infobulle

var ii=false; // La variable ii nous dit si la bulle est visible ou non
			
function move_tooltip(e) {
	 if(ii) {  // Si la bulle est visible, on calcul en temps reel sa position ideale
		if (navigator.appName!="Microsoft Internet Explorer") { // Si on est pas sous IE
			document.getElementById("boite_tooltip").style.left=e.pageX - 30+"px"; 
			document.getElementById("boite_tooltip").style.top=e.pageY + 10+"px";
		} else { // Modif proposé par TeDeum, merci à lui
			/*if(document.documentElement.clientWidth>0) {
				document.getElementById("boite_tooltip").style.left=event.x+document.documentElement.scrollLeft+"px";
				document.getElementById("boite_tooltip").style.top=24+event.y+document.documentElement.scrollTop+"px";
			} else {*/
				document.getElementById("boite_tooltip").style.left=event.x+document.body.scrollLeft+"px";
				document.getElementById("boite_tooltip").style.top=24+event.y+document.body.scrollTop+"px";
			//}
		}
	}
}		
function montre_tooltip(text,titre) {
	if(ii==false) {
		document.getElementById("boite_tooltip").style.visibility="visible";
		document.getElementById("texte_tooltip").innerHTML = text;
		document.getElementById("titre_tooltip").style.display="block"
		if(titre!=undefined && titre) document.getElementById("titre_tooltip").innerHTML = titre;
		else document.getElementById("titre_tooltip").style.display="none"
		ii=true;
	}
}
function cache_tooltip() {
	if(ii==true) {
		document.getElementById("boite_tooltip").style.visibility="hidden"; // Si la bulle etais visible on la cache
		ii=false;
	}
}
// initialisation conteneurs tooltip
tt='<div id="boite_tooltip" style="z-index:2000"class="infobulle"><div id="titre_tooltip" class="titre_infobulle"></div><div id="texte_tooltip" class="texte_infobulle"></div></div>'
document.write(tt)
document.onmousemove=move_tooltip;

//---------------------			
				
// fonction pour passer un div par dessus un select
fDomOffset = function( oObj, sProp ){
 var iVal = 0;
 while (oObj && oObj.tagName != 'BODY') {
  eval('iVal += oObj.' + sProp + ';');
  oObj = oObj.offsetParent;
 }
 return iVal;
}
fSwapSelect = function( sId ) { 
 oObj = document.getElementById(sId); 
 Top_Element  = fDomOffset(oObj, 'offsetTop'); 
 Left_Element  = fDomOffset(oObj, 'offsetLeft'); 
 Largeur_Element  = oObj.offsetWidth; 
 Hauteur_Element  = oObj.offsetHeight; 
 oSelects = document.getElementsByTagName('SELECT'); 
 if (oSelects.length > 0) { 
  for (i = 0; i < oSelects.length; i++) { 
   oSlt = oSelects[i]; 
   Top_Select = fDomOffset(oSlt, 'offsetTop'); 
   Left_Select = fDomOffset(oSlt, 'offsetLeft'); 
   Largeur_Select = oSlt.offsetWidth; 
   Hauteur_Select = oSlt.offsetHeight; 
   isLeft = false; 
   if ((Left_Element > (Left_Select - Largeur_Element)) && (Left_Element < (Left_Select + Largeur_Select))) { 
    isLeft = true; 
   } 
   isTop = false; 
   if ((Top_Element > (Top_Select - Hauteur_Element)) && (Top_Element < (Top_Select + Hauteur_Select))) { 
    isTop = true; 
   } 
   if (isLeft && isTop) { 
    sVis = (oObj.style.visibility == 'hidden') ? 'visible' : 'hidden'; 
    if (oSlt.style.visibility != sVis) {oSlt.style.visibility = sVis;} 
   } else { 
    if (oSlt.style.visibility != 'visible') {oSlt.style.visibility = 'visible';} 
   } 
  } 
 } 
}
// fin fonction div sur select
// -------------------------------------------
// fonction test validité image uploadée
function valid_photo(photo,larg,haut) {
	if(photo.value =="") {
		alert("Veuillez sélectionner une photo dans \nvotre ordinateur en cliquant sur Parcourir");
		return(false);
	} else { // test extension image, ne marche pas en ligne, pas d'accès au système client
		u=photo.value.toLowerCase();
		v=u.split(".");
		w=v[v.length-1];
		if(w!="gif" && w!="jpg" &&  w!="png") {
			alert("Seuls les fichiers de type gif, jpg ou png sont acceptés");
			return(false);
		}
		oImg = new Image();	oImg.src = "file:///"+photo.value;
		h = oImg.height; w = oImg.width;
		if(h*w>larg*haut) {
			alert("La photo ("+ h +" x "+ w +" pixels) dépasse la taille maximum");
			return(false);
		}
	}
} // fin fonction test photo upoload

function maj(elem) {
	elem.value=elem.value.toUpperCase();
}
function deb_maj(elem) {
	if(elem.value.length==1) elem.value=elem.value.toUpperCase();
}
// supprimer parcours et parcours pro
function confdel(ID, scriptname,ID_membres) {
	scriptname=remplace('&amp;','&',scriptname)
	if(confirm('Voulez-vous supprimer cette époque ?')) window.location.href=scriptname+'&ID_delete='+ID+'&ID_membres='+ID_membres;
}

function confdel_pro(ID,scriptname,ID_membres) {
	scriptname=remplace('&amp;','&',scriptname)
	if(confirm('Voulez-vous supprimer cette époque ?')) window.location.href=scriptname+'&ID_delete_pro='+ID+'&ID_membres='+ID_membres
}
// supprimer photo de classe
function confdel_classes(ID, scriptname,ID_membres) {
	scriptname=remplace('&amp;','&',scriptname);
	if(confirm('Voulez-vous supprimer cette photo ?')) window.location.href=scriptname+'&action=delconf&ID_classes='+ID+'&ID_membres='+ID_membres;
	else window.location.href=scriptname
}
//supprimer enreg classes_map
function confdel_classe_map(ID, scriptname,ID_membres) {
	scriptname=remplace('&amp;','&',scriptname);
	if(confirm('Voulez vous que cette personne soit retirée de la liste des personnes reconnues ?')) window.location.href=scriptname+'&action=map_delconf&ID_classes_map='+ID+'&ID_membres='+ID_membres;
	else return (false)
}

// supprimer photo album
function confdel_album(ID, scriptname,ID_membres) {
	scriptname=remplace('&amp;','&',scriptname);
	if(confirm('Voulez-vous supprimer cette photo ?')) window.location.href=scriptname+'&action=delconf&ID_album='+ID+'&ID_membres='+ID_membres;
	else window.location.href=scriptname
}

function confdel_avant(scriptname,ID_membres) {
	scriptname=remplace('&amp;','&',scriptname)
	if(confirm('Voulez-vous supprimer cette photo ?')) window.location.href=scriptname+'&action=del_avant&ID_membres='+ID_membres;
}
function confdel_now(scriptname,ID_membres) {
	scriptname=remplace('&amp;','&',scriptname)
	if(confirm('Voulez-vous supprimer cette photo ?')) window.location.href=scriptname+'&action=del_now&ID_membres='+ID_membres;
}
function confdel_membre(ID,scriptname) {
	scriptname=remplace('&amp;','&',scriptname)
	if(confirm('Voulez-vous supprimer ce membre, tous messages le concernant et toutes les photos qu\'il a publié ?')) window.location.href=scriptname+'&action=del_admin&ID_membre='+ID;
}
function redirect(scriptname) {
	scriptname=remplace('&amp;','&',scriptname)
	location.href=scriptname
}
function remplace(a,b,expr) { // remplace chaine a par chaine b dans chaine expr
	var i=0
	while (i!=-1) {
		i=expr.indexOf(a,i);
		if (i>=0) {
			expr=expr.substring(0,i)+b+expr.substring(i+a.length);
			i+=b.length;
		}
	}
	return expr
}
//----------------------------------------
// xp_progressbar
// Copyright 2004 Brian Gosselin of ScriptAsylum.com
//
// v1.0 - Initial release
// v1.1 - Added ability to pause the scrolling action (requires you to assign
//        the bar to a unique arbitrary variable).
//      - Added ability to specify an action to perform after a x amount of
//      - bar scrolls. This requires two added arguments.
// v1.2 - Added ability to hide/show each bar (requires you to assign the bar
//        to a unique arbitrary variable).

// var xyz = createBar(
// total_width,
// total_height,
// background_color,
// border_width,
// border_color,
// block_color,
// scroll_speed,
// block_count,
// scroll_count,
// action_to_perform_after_scrolled_n_times
// )

var w3c=(document.getElementById)?true:false;
var ie=(document.all)?true:false;
var N=-1;

function createBar(w,h,bgc,brdW,brdC,blkC,speed,blocks,count,action){
if(ie||w3c){
var t='<div id="_xpbar'+(++N)+'" style="visibility:visible; position:relative; overflow:hidden; width:'+w+'px; height:'+h+'px; background-color:'+bgc+'; border-color:'+brdC+'; border-width:'+brdW+'px; border-style:solid; font-size:1px;">';
t+='<span id="blocks'+N+'" style="left:-'+(h*2+1)+'px; position:absolute; font-size:1px">';
for(i=0;i<blocks;i++){
//t+='<span style="background-color:'+blkC+'; left:-'+((h*i)+i)+'px; font-size:1px; position:absolute; width:'+h+'px; height:'+h+'px; '
t+='<span style="background-color:'+blkC+'; left:-'+((h*i))+'px; font-size:1px; position:absolute; width:'+h+'px; height:'+h+'px; '
t+=(ie)?'filter:alpha(opacity='+(100-i*(100/blocks))+')':'-Moz-opacity:'+((100-i*(100/blocks))/100);
t+='"></span>';
}
t+='</span></div>';
document.write(t);
var bA=(ie)?document.all['blocks'+N]:document.getElementById('blocks'+N);
bA.bar=(ie)?document.all['_xpbar'+N]:document.getElementById('_xpbar'+N);
bA.blocks=blocks;
bA.N=N;
bA.w=w;
bA.h=h;
bA.speed=speed;
bA.ctr=0;
bA.count=count;
bA.action=action;
bA.togglePause=togglePause;
bA.showBar=function(){
this.bar.style.visibility="visible";
}
bA.hideBar=function(){
this.bar.style.visibility="hidden";
}
bA.tid=setInterval('startBar('+N+')',speed);
return bA;
}}

function startBar(bn){
var t=(ie)?document.all['blocks'+bn]:document.getElementById('blocks'+bn);
if(parseInt(t.style.left)+t.h+1-(t.blocks*t.h+t.blocks)>t.w){
t.style.left=-(t.h*2+1)+'px';
t.ctr++;
if(t.ctr>=t.count){
eval(t.action);
t.ctr=0;
}}else t.style.left=(parseInt(t.style.left)+t.h+1)+'px';
}

function togglePause(){
if(this.tid==0){
this.tid=setInterval('startBar('+this.N+')',this.speed);
}else{
clearInterval(this.tid);
this.tid=0;
}}

// fin progress bar
// ets-select fonctions
var compte=0;
function selectpays(theForm,script,script_name,OK) {
	if(theForm.name=='membre') { //inscription
		statut=""; rubrique=theForm.statut;
		for (i = 0;  i < rubrique.length; i++)   if (rubrique[i].checked) statut=rubrique[i].value;
	} else statut="Si";
	if(statut=="") {
		alert("selectionnez d\'abord une option dans la rubrique \'Je suis\'");
		theForm.elements["ets_pays"].selectedIndex=0; // sélectionner la 1ère ligne pays pour revenir à 0
		theForm.OK.focus(); // pour enlever la surbrillance de la 1ère ligne pays
	} else {
		var pays  = theForm.ets_pays;
		var index = pays.selectedIndex;
		if(pays.options[index].value=='tous') {
			pays.options[index].value='';
			theForm.Submit.disabled=false;
			if(OK)document.getElementById('OK').style.display='block';
			compte=1;
		}
		if(index < 1)   a = 0; // dummy
		else {
			document.getElementById('bloc_ets_ville').style.display='none';
			document.getElementById('bloc_ets_etab').style.display='none';
			var data = "select=pays&script="+escape(script)+"&OK="+OK+"&pays_ets="+escape(pays.options[index].value);
			ajax(data,script_name,'ets_select_pays_loading');
		}
	}
}
function selectville(theForm,script,script_name,OK) {
	if(theForm.name=='membre') { //inscription
		rubrique=theForm.statut;
		for (i = 0;  i < rubrique.length; i++)   if (rubrique[i].checked) statut=rubrique[i].value;
	} else statut="SO";
	paysa=theForm.ets_pays;
	paysb=paysa.options[paysa.selectedIndex].value;
	villea=theForm.ets_ville;
	villeb=villea.options[villea.selectedIndex].value;
	if(villeb=='tous') {
		villea.options[villea.selectedIndex].value='';
		theForm.Submit.disabled=false;
		if(OK)document.getElementById('OK').style.display='block';
		compte=1;
	}
	var pays  = theForm.ets_pays;   
	var ville = theForm.ets_ville;
	var etab  = theForm.ID_ets;
	if(etab!=undefined){
		var index_etab= etab.selectedIndex;
		if (etab.options[index_etab].value=="tous") etab.options[index_etab].value='';
	}
	var index_pays = pays.selectedIndex;
	var index_ville= ville.selectedIndex;
	if(index_ville < 1)  etab.options.length = 0;   
	else {
		document.getElementById('bloc_ets_etab').style.display='none';
		var data = "select=ville&script="+escape(script)+"&pays_ets="+escape(pays.options[index_pays].value)+"&ville_ets="+escape(ville.options[index_ville].value)+"&OK="+OK;
		ajax(data,script_name,'ets_select_ville_loading');
	}  
}
function get_ets_info (theForm,annee_entree,annee_sortie,script_name) {
	var pays  = theForm.ets_pays;   
	var ville = theForm.ets_ville;
	var etab  = theForm.ID_ets;
	if(etab==undefined){
		alert ("Sélectionnez d\'abord un établissement"); return;
	}
	document.getElementById('suite_parcours').style.display='block';
	var index_etab= etab.selectedIndex;
	if (etab.options[index_etab].value=="" || etab.options[index_etab].value=="tous") {
		alert ("Sélectionnez d\'abord un établissement"); return;
	}
	var data = "select=etab&ID_ets="+escape(etab.options[index_etab].value)+"&form="+theForm.name+"&annee_entree="+annee_entree+"&annee_sortie="+annee_sortie;
	ajax(data,script_name,'');
}
function country_code (theForm,page,scriptname) {
	var p  = theForm.elements[page]; 
	var index = p.selectedIndex;
	if(page=='pays') var data = "country_code=cherche&country="+escape(theForm.pays.options[index].value)+"&page="+escape(page);
	if(page=='pays_pro') var data = "country_code=cherche&country="+escape(theForm.pays_pro.options[index].value)+"&page="+escape(page);
	ajax(data, scriptname,'pays_select_loading');
}
function get_dates (theForm,script_name) {// AJAX, récupère l'année d'ouverture et fermeture de l'établissement.
	var etab  = theForm.ID_ets;
	var index_etab= etab.selectedIndex;
	if(etab==undefined) {
		alert ('Veuillez sélectionner un établissement');
		return (false);
	}
	var data = "select=getdate&ID_ets="+escape(etab.options[index_etab].value)+"&form="+theForm.name;
	ajax(data, script_name, '')
	theForm.photo.disabled=false;
	theForm.classe.disabled=false;
	theForm.annee.disabled=false;
	theForm.legende.disabled=false;
	theForm.commentaires.disabled=false;
	theForm.confirme.disabled=false;
	document.getElementById('OK2').style.display='block'
}
function proceed(theForm,script_name) {
	var etab  = theForm.ID_ets;
	var index_etab= etab.selectedIndex;
	if(etab==undefined) {
		alert ('Veuillez sélectionner un établissement');
		return (false);
	}
	document.getElementById('OK2').style.display='block'
}
function ajax(data, script_name, loading) {
	script_name=remplace('&amp;','&',script_name);
	if(loading) document.getElementById(loading).style.display='block';
	var xhr_object = null;         
	if		(window.XMLHttpRequest)	xhr_object = new XMLHttpRequest();  // FF   
	else if	(window.ActiveXObject)	xhr_object = new ActiveXObject("Microsoft.XMLHTTP");  // IE   
	else {alert("Votre navigateur ne prend pas en charge XMLHTTPRequest,\nvous ne pouvez pas poursuivre votre inscription ou votre recherche.\nVeuillez mettre à jour votre navigateur"); return;}   
	xhr_object.open("POST", script_name, true); //alert(data);
	xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xhr_object.send(data);	

	xhr_object.onreadystatechange = function() {   
		if(xhr_object.readyState == 4) { 
			if (xhr_object.status == 200) {/* 200 : code HTTP pour OK */
				if(loading) document.getElementById(loading).style.display='none';
				//alert(xhr_object.responseText);
				eval(xhr_object.responseText);
			} else if (xhr_object.status) alert("Echec de la requête, veuillez recommencer. Erreur : "+xhr_object.status);
		}
	}
}
// fin ets-select

