
var mousey=0;
var mousex=0;
var screenw=800;
var screenh=400;
var permx =0;
var permy = 0;	
var permxmax =0;
var permymax = 0;
var clickx = 0;
var clicky = 0;



//DETECTION NAVIGATEUR
var detect = navigator.userAgent.toLowerCase();
var OS,browser,version,total,thestring;

if (checkIt('konqueror'))
{
	browser = "Konqueror";
	OS = "Linux";
}
else if (checkIt('safari')) browser = "Safari"
else if (checkIt('omniweb')) browser = "OmniWeb"
else if (checkIt('opera')) browser = "Opera"
else if (checkIt('webtv')) browser = "WebTV";
else if (checkIt('icab')) browser = "iCab"
else if (checkIt('msie')) browser = "Internet Explorer"
else if (!checkIt('compatible'))
{
	browser = "Netscape Navigator"
	version = detect.charAt(8);
}
else browser = "An unknown browser";

if (!version) version = detect.charAt(place + thestring.length);

if (!OS)
{
	if (checkIt('linux')) OS = "Linux";
	else if (checkIt('x11')) OS = "Unix";
	else if (checkIt('mac')) OS = "Mac"
	else if (checkIt('win')) OS = "Windows"
	else OS = "an unknown operating system";
}

function checkIt(string)
{
	place = detect.indexOf(string) + 1;
	thestring = string;
	return place;
}

var evt,mousey,mousex;
/*
window.onmousemove = mousemoved;
 
function mousemoved(e)
{
	 	evt = e || window.event;
		position(evt);
		//alert(evt);
}
*/

document.onmousemove = position;

function position(e)
	{ // récupère les coordonnées de la souris à l'écran dès qu'elle bouge
		//mousex = (browser == "Internet Explorer") ? evt.pageX : window.event.x+document.body.scrollLeft;
		//mousey = (browser == "Internet Explorer") ? evt.pageY : window.event.y+document.body.scrollTop;	
		evt = e || window.event;
		//mousex = (browser == "Internet Explorer") ? evt.pageX : evt.clientX;
		//mousey = (browser == "Internet Explorer") ? evt.pageY : evt.clientY;
		if (evt.pageX || evt.pageY) 	{
			mousex = evt.pageX;
			mousey = evt.pageY;
		}
		else if (evt.clientX || evt.clientY) 	{
			mousex = evt.clientX + document.body.scrollLeft+ document.documentElement.scrollLeft;
			mousey = evt.clientY + document.body.scrollTop+ document.documentElement.scrollTop;
		}
		//alert((document.body.scrollLeft+ document.documentElement.scrollLeft));
	}


function onclick_page(e) // récupère les positions du click, nécéssite : <body onclick="onclick_page(event);">
{
  
  evt2 = e || window.event;
		/*
		clickx = (browser == "Internet Explorer") ? evt2.pageX : evt2.clientX;
		clicky = (browser == "Internet Explorer") ? evt2.pageY : evt2.clientY;
  
	  //clickx = (browser == "Internet Explorer") ? evt2.pageX : window.event.x+document.body.scrollLeft;
	  //clicky = (browser == "Internet Explorer") ? evt2.pageY : window.event.y+document.body.scrollTop;
	  if (clickx ==0) { 
	  clickx = evt2.clientX;
	  clicky = evt2.clientY;  }
	  */
 // alert('Vous avez cliqué au point de coordonnés: ' + clickx + ', ' + clicky );
 	if (evt2.pageX || evt2.pageY) 	{
		clickx = evt2.pageX;
		clicky = evt2.pageY;
	}
	else if (evt2.clientX || evt2.clientY) 	{
		clickx = evt2.clientX + document.body.scrollLeft
			+ document.documentElement.scrollLeft;
		clicky = evt2.clientY + document.body.scrollTop
			+ document.documentElement.scrollTop;
	}
}

function detectecran(){
	// récupère la largeur et la hauteur utilisable du navigateur de l'internaute
	if (self.innerHeight){screenh = self.innerHeight; screenw = self.innerWidth;  }
	else if (document.documentElement && document.documentElement.clientHeight){
		screenh = document.documentElement.clientHeight;
		screenw = document.documentElement.clientWidth;
		}
	else if (document.body){
		screenh = document.body.clientHeight;
		screenw = document.body.clientWidth;
		}
	// maintient des coordonnées X et Y de références (à zéro) permanentes et les x et y max du coin bas droit visible // même lorsqu'un internaute scrolle sur la page (cette partie est optionnelle)
	permy = document.body.scrollTop;  
	permx = document.body.scrollLeft;
	permxmax = permx+screenw;
	permymax = permy+screenh;
	setTimeout('detectecran()',20);
	}
detectecran();


var dragpropag = 0;
var bloquedrag = 0;
function startdrag(nom) {
	if (dragpropag==0) { 	// permet de stopper la propagation au parent
		//alert(nom);
		posorix = document.getElementById(nom).offsetLeft;
		posoriy = document.getElementById(nom).offsetTop;
		ecartx =  mousex-posorix;
		ecarty = mousey-posoriy; // on commence par mesurer ou s'est trouvé le click DANS le div avant de commencer le Drag	
		//alert(posorix);
		startdrag2(nom,ecartx,ecarty);
		} 
	dragpropag=1; // ne pourra être rétabli que par stopdrag();
	}	

function startdrag2(nom,ecartx,ecarty) { 
	document.getElementById(nom).style.left = (mousex-ecartx)+'px';
	document.getElementById(nom).style.top = (mousey-ecarty)+'px';
	instr = 'startdrag2("'+nom+'",'+ecartx+','+ecarty+')';
	if (bloquedrag == 0) { 
		setTimeout(instr,30);
	} else { bloquedrag = 0; }
}

function stopdrag() { 
	bloquedrag = 1;
	dragpropag = 0;
}

var bloquemove = 0;
var ordrebloque = "";


//recuperation position


function getPos(elem) {
		//var browser = browser;
		
		var pos={'r':0,'l':0,'t':0,'b':0};
		var tmp=elem;
	 
		do {
			pos.l += tmp.offsetLeft;
			tmp = tmp.offsetParent;
		} while( tmp !== null );
		pos.r = pos.l + elem.clientWidth;
	 
		tmp=elem;
		do {
			pos.t += tmp.offsetTop;
			tmp = tmp.offsetParent;
		} while( tmp !== null );
		pos.b = pos.t + elem.clientHeight;
	 	
		if (browser == "Internet Explorer")
		{
			//alert(browser);
			pos.r = pos.r ;
			pos.l = pos.l ;
		}
		return pos;
}

//recuperation position
/*
function getPos(elem) {
		var pos={'r':0,'l':0,'t':0,'b':0};
		var tmp=elem;
	 	pos.l = elem.clientLeft;
		pos.r = pos.l + elem.offsetWidth;
	 	pos.t = elem.clientTop;
		pos.b = pos.t + elem.offsetHeight;
	 
		return pos;
}
*/

var pas = 1;

function scrollBar(nom3,cible3,deplac,maxHeight,minX,maxX) { 	
	
	if(!maxHeight){ maxHeight = 500 }else{ maxHeight = maxHeight; }
	if(!minX){ minX = 814 }else{ minX = minX; }
	if(!maxX){ maxX = 1215 }else{ maxX = maxX; }
	
	if(deplac == 'false'){pas = 1}
	if (!deplac) { deplac = 'true'; }
	var divHeight;
	var obj = document.getElementById(nom3);
	var objcible = document.getElementById(cible3);
	
	
	if(objcible.offsetHeight)          {divHeight=objcible.offsetHeight;}
	else if(objcible.style.pixelHeight){divHeight=objcible.style.pixelHeight;}
	var cote_droit = getPos(obj).r;
	var cote_gauche = getPos(obj).l;
	var cote_haut = getPos(obj).t;
	var cote_bas = getPos(obj).b;	
	
	var cible_droit = getPos(objcible).r;
	var cible_gauche = getPos(objcible).l;
	var cible_haut = getPos(objcible).t;
	var cible_bas = getPos(objcible).b;	
	
				
	
	if(divHeight < maxHeight)
	{ 
		//alert('petitblobnoscroll'); 
		document.getElementById('flechehaut').style.display = "none";
		document.getElementById('flechebas').style.display = "none";
		pas=1;
		
	}else{
		//MODIFICATION DU STYLE EN OVERFLOW HIDDEN ET EN TAILLE DE 500
		//obj.style.overflow = "hidden";
		//obj.style.height ="500px";	
		//obj.style.position ="relative";
		//recuperation position	
		//alert(maxHeight +" - "+minX+" - "+maxX);
		
		if(deplac=='true'){
			//
			
			if(mousey >= cote_haut && mousey <= cote_bas && mousex >= cote_gauche && mousex <= (cote_droit)){	
				document.getElementById('flechehaut').style.display = "block";
				document.getElementById('flechebas').style.display = "block";
		
				objcible.style.position ="absolute";
				//objcible.style.top = 0+"px";
				
					if(mousey <= 250 ){	
						//alert(cible_haut +' '+cote_haut+' '+pas);
						if(cible_haut <= cote_haut ){	
						
							//moveTop(cible3);	
							objcible.style.top =  (pas)+"px";							
							pas++;	
						}
					}else{						
						if(cible_bas >= cote_bas ){	
							//moveBottom(cible3);		
							objcible.style.top =  (pas)+"px";	
							pas--;	
						}
					}
				
				}
				
			}
		}
		instr4 = 'scrollBar("'+nom3+'","'+cible3+'")';
		setTimeout(instr4,10); 
 }
 
 var pasGauche = 1;
 function scrollBarGauche(nom3,cible3,deplac,maxHeight,minX,maxX) { 	
	
	if(!maxHeight){ maxHeight = 500 }else{ maxHeight = maxHeight; }
	if(!minX){ minX = 814 }else{ minX = minX; }
	if(!maxX){ maxX = 1215 }else{ maxX = maxX; }
	
	if(deplac == 'false'){pasGauche = 1}
	if (!deplac) { deplac = 'true'; }
	var divHeight;
	var obj = document.getElementById(nom3);
	var objcible = document.getElementById(cible3);
	
	
	if(objcible.offsetHeight)          {divHeight=objcible.offsetHeight;}
	else if(objcible.style.pixelHeight){divHeight=objcible.style.pixelHeight;}
	var cote_droit = getPos(obj).r;
	var cote_gauche = getPos(obj).l;
	var cote_haut = getPos(obj).t;
	var cote_bas = getPos(obj).b;	
	
	var cible_droit = getPos(objcible).r;
	var cible_gauche = getPos(objcible).l;
	var cible_haut = getPos(objcible).t;
	var cible_bas = getPos(objcible).b;	
	
	//alert(cote_gauche+' '+cote_droit);
				
	
	if(divHeight < maxHeight)
	{ 
		//alert('petitblobnoscroll'); 
	}else{
		if(deplac=='true'){
			//
			//alert((mousex+(document.body.scrollLeft+ document.documentElement.scrollLeft))+' '+(minX-(document.body.scrollLeft+ document.documentElement.scrollLeft)));
			
			if(mousey >= cote_haut && mousey <= cote_bas && mousex >= cote_gauche && mousex <= (cote_droit)){	
				objcible.style.position ="absolute";
					if(mousey <= (maxHeight/4) ){	
						if(cible_haut <= cote_haut ){	
						
							//moveTop(cible3);	
							objcible.style.top =  (pasGauche)+"px";							
							pasGauche++;	
						}
					}
					
					if(mousey >= (maxHeight-(maxHeight/4)) ){						
						//alert(mousey +' - '+ (maxHeight-(maxHeight/5)));
						
						if(cible_bas >= cote_bas ){	
							//moveBottom(cible3);		
							objcible.style.top =  (pasGauche)+"px";	
							pasGauche--;	
						}
					}
				
				}
				
			}
		}
		instr5 = 'scrollBarGauche("'+nom3+'","'+cible3+'","true",'+maxHeight+','+minX+','+maxX+')';
		setTimeout(instr5,10); 
 }



 function moveTop(objcible2)
 {
	var obj2 = document.getElementById(objcible2);	
	var cible_haut2 = getPos(obj2).t;		
	
	
	
}
function moveBottom(objcible3)
 {
	var obj3 = document.getElementById(objcible3);	
	var cible_haut3 = getPos(obj3).t;	
	//alert(cible_haut);
	
	
}


function move(nom,sens,vitesse,limitex, limitey) { // sens possibles : up / down / left / right / upleft / upright / downleft /downright  / dest / desth /destv
	// on mesure d'abord les positions d'origines de l'objet à déplacer  
	
	var movex = document.getElementById(nom).offsetLeft;
	var movey = document.getElementById(nom).offsetTop;
	if (limitex==0) { limitex=3000; } // pour éviter des oublis générant des calculs à l'infini, commenter cette ligne si nécéssaire uniquement
	if (limitey==0) { limitey=3000; } 
	
	move2(nom,sens,vitesse,limitex, limitey, movex, movey);	
}

function move2(nom,sens,vitesse,limitex, limitey, movex, movey) {	
	
	if ((sens == "dest")|| (sens == "desth") || (sens == "destv")){
		okmvtx = 0;	okmvty = 0; 
		if ((sens == "dest")||(sens=="desth")) { 
			movex = movex+(limitex-movex)/vitesse;
			okmvtx = 1;
			if (Math.abs(limitex-movex) <1) {  stopmove(nom);  } //supprimer si on a besoin d'une poursuite permanente
		}
		if ((sens == "dest")||(sens=="destv")) { 
			movey = movey+(limitey-movey)/vitesse;			
			okmvty = 1;
			if (Math.abs(limitey-movey) <1) {  stopmove(nom);  } //supprimer si on a besoin d'une poursuite permanente
		}
	} else {
		if ((sens =="right") || (sens =="downright") || (sens == "upright")) { valx = 1; } else { valx = -1; }
		if ((sens =="down") || (sens =="downright") || (sens == "downleft")) { valy = 1; } else { valy = -1; }
		if ((sens == "right") || ( sens == "left")) { valy =0; } 
		if ((sens == "up") || ( sens == "down")) { valx =0; } 
		
		//gestion des limites 
		if ((sens =="right") || (sens =="downright") || (sens == "upright")) { 	
			if (movex < limitex) {  okmvtx = 1; } else {  okmvtx = 0;} 
		} else { if (movex > limitex) {  okmvtx = 1; } else {  okmvtx = 0;}   } 
		
		if ((sens =="down") || (sens =="downright") || (sens == "downleft")) {	
			if (movey < limitey) {  okmvty = 1; } else {  okmvty = 0;} 
		} else { if (movey > limitey) {  okmvty = 1; } else {  okmvty = 0;}   } 

		if (okmvtx ==1) { movex = movex + vitesse*valx;		}
		if (okmvty ==1) { movey = movey + vitesse*valy;		}		
	}
	
	if (okmvtx ==1) { document.getElementById(nom).style.left=movex+"px";	}
	if (okmvty ==1) { document.getElementById(nom).style.top=movey+"px";	}	

	if ((bloquemove == 1) && (nom == ordrebloque)) {
		bloquemove = 0;
		ordrebloque = ""; // reinit pour un prochain coup		
	} else { 
		instr = 'move2("'+nom+'","'+sens+'",'+vitesse+','+limitex+', '+limitey+', '+movex+', '+movey+')';
		setTimeout(instr,40); 
	}	
}

function stopmove(nom) { 
	bloquemove = 1; 
	ordrebloque= nom;	// de façon à ne bloquer QUE le mouvement du DIV concerné
}

function show(nom1) { 	//document.getElementById(nom).style.visibility='visible';
	//alert("nom1:".nom1);
	document.getElementById(nom1).style.display='block';
  }
function hide(nom2) { 	//document.getElementById(nom).style.visibility='hidden'; 
	//alert("nom2:"+nom2);
	document.getElementById(nom2).style.display='none';

 }

bloquemove2 =0;
ordrebloque2 ="";
function grow(nom,axes,w,h) { // nomdiv / h,l,hl / 300 / 200
	//on commence par mesurer la taille initiale du DIV 
	tailleh = document.getElementById(nom).offsetHeight; 
	taillew = document.getElementById(nom).offsetWidth; 
	//ensuite on empèche l'éventuel mouvement antérieur pour éviter des ordre contradictoires simultanés 
	stopgrow(nom);
	// puis on lance la boucle avec plus du double de délai d'exécution de grow2 pour être sûr que le précédent mouvement est bien annulé	
	instr = 'grow15("'+nom+'","'+axes+'",'+w+','+h+','+tailleh+','+taillew+')';
	setTimeout(instr,85); 	
}
function grow15(nom,axes,w,h,tailleh,taillew) { 
	bloquemove2 =0; // on rétablit la possibilité de mouvement
	ordrebloque2 ="";
	instr = 'grow2("'+nom+'","'+axes+'",'+w+','+h+','+tailleh+','+taillew+')';
	setTimeout(instr,2); 
}
function grow2(nom,axes,w,h,tailleh,taillew) { 
//alert(w);
	tailleh +=(h-tailleh)/3;
	taillew +=(w-taillew)/3;
	if (Math.abs(h-tailleh) <1) { 
		if (Math.abs(w-taillew) <1) {
			stopgrow(nom);//supprimer si on a besoin d'une poursuite permanente
		}
	}
	
	document.getElementById(nom).style.width=taillew+'px';
	document.getElementById(nom).style.height=tailleh+'px';
	
	if ((bloquemove2 == 1) && (nom == ordrebloque2)) {
		bloquemove2 = 0;
		ordrebloque2 = ""; // reinit pour un prochain coup		
	} else { 
		instr = 'grow2("'+nom+'","'+axes+'",'+w+','+h+','+tailleh+','+taillew+')';
		setTimeout(instr,30); 
	}
}

function stopgrow(nom) { 
	bloquemove2 = 1; 
	ordrebloque2= nom;	// de façon à ne bloquer QUE le mouvement du DIV concerné
}




var fonduSens ='';
var fonduNom = '';
var fonduEncours = '';
var fonduValeur= '';
var fonduMvt= false;

function fondu(nom,sens) { 
	if (browser == "Internet Explorer" && version < 9)
		{
			//SI ON EST SOUS IE ON NE FAIT PAS LE FONDU
			//alert(version);
		}else{
			// on met à jour deux variables globales pour informer les occurences actuelles de la fonction d'un possible conflit
			fonduSens=sens;
			fonduNom=nom;
			var alph=0.01;
			if (sens != 'affiche') { alph=0.99;}
			if (sens == 'affpartiel') { alph=fonduValeur; sens='affiche'}
			
			if (fonduEncours == nom) { alph = fonduValeur; }	
			var oriopa=0;
			sensori= sens;
			nomori=nom;	
			
			if (sens != '' ) {
				var instr="fondu15('"+nomori+"','"+sens+"','"+sensori+"',"+oriopa+","+alph+")";	
				setTimeout(instr,10);	// permet au moins deux boucles à toutes les autres occurences, afin qu'elles aient le temps de s'arreter si besoin
			}
			
		}
}

function fondu15(nomori,sens,sensori,oriopa,alph) {
	fonduSens =''; // réinit des var d'annulation
	fonduNom = '';	
	if(fonduMvt == false){
		var instr="fondu2('"+nomori+"','"+sens+"','"+sensori+"',"+oriopa+","+alph+")";	
		setTimeout(instr,5);	// permet au moins deux boucles à toutes les autres occurences, afin qu'elles aient le temps de s'arreter si besoin
	}
}
function fondu2(nomori,sens,sensori,oriopa,alph) {	
	
	if (sens == 'affiche') { 	
		alph=alph+0.07;		 
	}else{ 
		if (sens =="partiel") { 
				alph=alph-0.04;
			} else{
				alph=alph-0.07;
			}
		} 	
	fonduValeur= alph;
	fonduEncours = nomori;
	document.getElementById(nomori).style.opacity= alph+"";	
	document.getElementById(nomori).style.filter =  "alpha(opacity="+alph*100+")";	
	
	var instr="fondu2('"+nomori+"','"+sens+"','"+sensori+"',"+oriopa+","+alph+")";	
	
	if (fonduNom != nomori) 
	{ 
		if ((alph<1)&&(alph>0)) 
		{
		fonduMvt= true;
		//setTimeout(instr,28);
			if (sens != "partiel") {
			//cas particulier marquisdeterme.com
			//if (((nomori=="mainLeftColVoile") || (nomori=="mainLeftCol"))  && (alph > 0.69)) {        
				if (((nomori=="mainLeftColVoile"))  && (alph > 0.69)) {  
					fonduMvt= false;
					fonduEncours = '';
					fonduValeur= '';	
					exit();						
				} // fin du cas particulier
				setTimeout(instr,28); 
			}else{
					if (alph < 0.3) { 
						//alert('dehors a ' + alph);
						fonduEncours = '';
						fonduValeur= alph;
						sens = "affiche";
						fonduMvt= false;
						
					} else { 
						setTimeout(instr,28);
					}
				}
			
			}else{ 
			
			fonduEncours = '';
			fonduValeur= '';	
			fonduMvt= false;
			}		
		}else{
			//alert('dehors a ' + alph);
			fonduMvt= false;
		}
	}







