var pub, pub_pos, pub_pos_y, pub_pos_from_y;
var origine_pos_y, origine_pos_from_y;
var largeur, largeur_pub, showPub, hauteur_pub;
var frame;
var tabliste_largeur, interval_affiche;
var xhr;
var down = false;

/**
*	Permet d'initialiser les calques
*
*	pfrom_left -> indique l'abscisse à partir de laquelle doit être affiché le calque
*	pfrom_top -> indique l'ordonnée à partir de laquelle doit être affiché le calque
*	pto_left -> indique l'abscisse finale laquelle doit être affiché le calque
*	pto_top -> indique l'abscisse finale de laquelle doit être affiché le calque
*
*	Si pto_left n'est pas fourni, alors pto_left = pfrom_left
*	Si pto_top n'est pas fourni, alors pto_top = pfrom_top
*
*	Pour faire apparaitre le calque avec un effet de slide,
*	il faut obligatoirement renseigné pto_left et pto_top
*
*/
function init_calque(pfrom_left,pfrom_top,pto_left,pto_top){
	showPub = 1;
	//if(pto_left == undefined){
	if(!pto_left){
		pto_left = pfrom_left;
	}
	//if(pto_top == undefined){
	if(!pto_top){
		pto_top = pfrom_top;
	}
	if(document.getElementById("derouleur")){
		document.getElementById("derouleur").stop();
	}
	//if(pub == undefined){
	if(!pub){
		pub = document.getElementById('msg_pub');
	}
	pub.style.top = pfrom_top + "px";
	pub.style.left = pfrom_left + "px";
	pub.style.zIndex = "12";
	pub_pos = pto_left;
	pub_pos_y = pto_top;
	pub_pos_from_y = pfrom_top;
	origine_pos_from_y = pub_pos_from_y;
	origine_pos_y = pub_pos_y;
	largeur = document.body.offsetWidth;
	largeur_pub = pub.offsetWidth;
	
	// si la version d'IE < à IE7, on ajoute une frame qui suit le div
	if( (document.all) && (typeof document.body.style.maxHeight == "undefined") ){
		frame = putFrame();
	}
	document.onmousemove = mouseMove;
	document.onmouseup = mouseUp;
	document.onselectstart=new Function (" if(down){return false;}");
}

/** 
	Permet de faire passer le calque au dessus des select box
	en ajoutant une iframe factice 
*/
function putFrame(){
	var f    = document.createElement("iframe");
	var d    = document.getElementById("msg_pub");

	f.setAttribute("className", "sous_calque");
	f.id="sous_calque";
	f.ALLOWTRANSPARENCY=false;	
	with(f.style){
		position	= "absolute";
	 	width    	= d.offsetWidth+"px";
	  	height		= d.offsetHeight+"px";	  	
	 	top			= d.offsetTop+"px";
	  	left		= d.offsetLeft+"px";
	   	zIndex		= "11";
		filter		= "progid:DXImageTransform.Microsoft.Alpha(opacity=0)";
		display		= "none";
	}
	document.body.appendChild(f);
	
	return f;
}


/** 
*	Création du calque
*	
*	ptitre -> le texte affiché en titre de calque
*	phauteur -> la taille initial du calque
*	plargeur -> la largeur initial du calque
*	pmsg -> le contenu du message, passer une chaine vide pour y utiliser des listes
*	pboomove -> true pour pouvoir déplacer le calque à la souris, false sinon
*	pbooaffiche -> true pour pouvoir afficher le calque au chargement, false sinon
*	pbooScroll -> indique si le contenu doit scroller.
*					Paramètre optionnel, non déclaré <=> false
*	pbooGereSession -> permet de gérer la fermeture des calques d'infos pour la durée de la
*					   session s'il vaut true. Paramètre optionnel, non déclaré <=> false
*/
function calquePub(ptitre, phauteur, plargeur, pmsg, pboomove, pbooaffiche, pbooScroll, pbooGereSession) {
	//if(pbooScroll == undefined){
	if(!pbooScroll){
		pbooScroll = false;
	}
		
	//if(pbooGereSession == undefined){
	if(!pbooGereSession){
	//Modif JG GEM08-016
		pbooGereSession = false;
	}
		
	objCalqueNode = document.createElement("div");
	objCalqueNode.id = "msg_pub";
	//if(document.all){
		objCalqueNode.style.width = plargeur+"px";
	//}
			
	objCalqueEntete = document.createElement("div");
	objCalqueEntete.id = "msg_pub_entete";
	if(pboomove){
		objCalqueEntete.onmousedown = function (event) { mouseDown(event); }	
		objCalqueEntete.ondblclick = function () { doubleclick();}
		//if(document.all){
			objCalqueEntete.style.cursor="move";
			objCalqueEntete.style.width=plargeur;
		//}
	}
		
	objEnteteCoinGauche = document.createElement("span");
	objEnteteCoinGauche.id = "pub_coin_gauche";
	objCalqueEntete.appendChild(objEnteteCoinGauche);
		
	objEnteteTitre = document.createElement("span");
	objEnteteTitre.className = "titre";
	objEnteteTitre.id = "titreCalquePub";
	//if(document.all){
		objEnteteTitre.style.width = (plargeur - 72) + "px";
	//}
	objEnteteTitre.appendChild(document.createTextNode(ptitre));
	objCalqueEntete.appendChild(objEnteteTitre);
		
	objEnteteCoinDroit = document.createElement("span");
	objEnteteCoinDroit.id = "pub_coin_droit";
	objCalqueEntete.appendChild(objEnteteCoinDroit);
		
	objEnteteFermer = document.createElement("span");
	objEnteteFermer.id = "btn_fermer";
		
	// fermeture du calque pour la durée de la session
	if(pbooGereSession){
		objEnteteFermer.onclick = function () { closePub(); closePubSession("menu"); }
	}
	// rend invisible le calque
	else{
		objEnteteFermer.onclick = function () { closePub(); }
	}
	objCalqueEntete.appendChild(objEnteteFermer);
		
	objEnteteReduire = document.createElement("span");
	objEnteteReduire.id = "btn_reduire";
	objEnteteReduire.onclick = function () { hideShowPub(); }
	objCalqueEntete.appendChild(objEnteteReduire);

	objCalqueNode.appendChild(objCalqueEntete);
		
	objCalqueCorps = document.createElement("div");
	objCalqueCorps.id = "msg_pub_corps";
		
	objCalqueTexte = document.createElement("div");
	objCalqueTexte.id = "msg_pub_texte";
	//if(document.all){
		objCalqueTexte.style.width = ( plargeur-10) + "px";
		objCalqueTexte.style.height = ( phauteur) + "px";
	//}
	if (pmsg!= ""){
		if(pbooScroll){
			objCalqueDerouleur = document.createElement("marquee");
			objCalqueDerouleur.id = "derouleur";
			objCalqueDerouleur.setAttribute("direction", "up");
			objCalqueDerouleur.scrollAmount = "1";
			objCalqueDerouleur.setAttribute("height", phauteur);
			objCalqueDerouleur.onmouseover = function () { this.stop(); }
			objCalqueDerouleur.onmouseout = function () { this.start(); }
			objCalqueDerouleur.innerHTML = pmsg;
			objCalqueTexte.appendChild(objCalqueDerouleur);
		}else{
			objCalqueTexte.innerHTML = pmsg;
		}
	}else{
		objCalqueAttente = document.createElement("p");
		objCalqueAttente.id=("msgatt");
		objCalqueAttente.className=("Info");
			
		//objCalqueAttenteText = document.createTextNode("Chargement en cours ...");
		objCalqueAttenteText = document.createElement("img");
		objCalqueAttenteText.style.width="180px";
		objCalqueAttenteText.style.marginLeft="10px";
		objCalqueAttenteText.src = "../images/calques/chargement.gif";
			
		objCalqueAttente.appendChild(objCalqueAttenteText);
			
		objCalqueTexte.appendChild(objCalqueAttente);
			
		objCalqueListe = document.createElement("table");
		objCalqueListe.id = "tabliste";
		if(document.all){
			objCalqueListe.style.height= phauteur + "px";
		}
		objCalqueTexte.appendChild(objCalqueListe);
		objCalqueTexte.id = "msg_pub_texte_scroll";
	}	
		
	objCalqueCorps.appendChild(objCalqueTexte);
	objCalqueNode.appendChild(objCalqueCorps);
		
	if(!pbooaffiche){
		objCalqueNode.style.visibility = 'hidden';
	}
	document.getElementsByTagName("body")[0].appendChild(objCalqueNode);
		
	hauteur_pub = phauteur;	
}


function calquePubSetContenu(pNode){
	if(document.getElementById("msg_pub_texte")){
		var objContenu = document.getElementById("msg_pub_texte");
	}else{
		var objContenu = document.getElementById("msg_pub_texte_scroll");
	}
	objContenu.innerHTML="";
	objContenu.appendChild(pNode);
}


/** 
*	Création du calque en version 800*600
*	Ce constructeur rappel celui du calque normal, puis il palce une classe "MiniCalque"
*	au calque
*	
*	ptitre -> le texte affiché en titre de calque
*	phauteur -> la taille initial du calque
*	plargeur -> la largeur initial du calque
*	pmsg -> le contenu du message, passer une chaine vide pour y utiliser des listes
*	pboomove -> true pour pouvoir déplacer le calque à la souris, false sinon
*	pbooaffiche -> true pour pouvoir afficher le calque au chargement, false sinon
*	pbooScroll -> indique si le contenu doit scroller.
*					Paramètre optionnel, non déclaré <=> false
*	pbooGereSession -> permet de gérer la fermeture des calques d'infos pour la durée de la
*					   session s'il vaut true. Paramètre optionnel, non déclaré <=> false
*/
function calquePubMini(ptitre, phauteur, plargeur, pmsg, pboomove, pbooaffiche, pbooScroll, pbooGereSession) {
	//if(pbooScroll == undefined){
	if(!pbooScroll){
		pbooScroll = false;
	}
	//if(pbooGereSession == undefined){
	if(!pbooGereSession){
		//Modif JG GEM08-016
		pbooGereSession = false;
	}
	calquePub(ptitre, phauteur, plargeur, pmsg, pboomove, pbooaffiche, pbooGereSession);
	//if(pub == undefined){
	if(!pub){
		pub = document.getElementById('msg_pub');
	}
	pub.setAttribute("className", "miniCalque");
	var divEntete = document.getElementById("msg_pub_entete");
	var filsEntete = divEntete.childNodes;
	for (i = 0; i < filsEntete.length; i++){
		if(filsEntete[i].className == "titre"){
			if(document.all){
				filsEntete[i].style.width=(plargeur - 65) + "px";
			}
		}
	}
}


/**
* Création du calque dans l'entete (look inversé, non déplacable, affiché de suite)
*
*	ptitre -> le texte affiché en titre de calque
*	phauteur -> la taille initial du calque
*	plargeur -> la largeur initial du calque
*	pmsg -> le contenu du message
*	pbooGereSession -> permet de gérer la fermeture des calques d'infos pour la durée de la
*					   session s'il vaut true. Paramètre optionnel, non déclaré <=> false
*/
function calquePubEntete(ptitre, phauteur, plargeur, pmsg, pbooGereSession) {
	//if(pub == undefined){
	if(!pub){
		objCalqueNode = document.createElement("div");
		objCalqueNode.id = "msg_pub";
		objCalqueNode.setAttribute("width", plargeur+"px");
		objCalqueNode.className = "entete";
		
		objCalqueCorps = document.createElement("div");
		objCalqueCorps.id = "msg_pub_corps";
		
		objCalqueTexte = document.createElement("div");
		objCalqueTexte.id = "msg_pub_texte";
		if(document.all){
			objCalqueTexte.style.width= (plargeur-10) + "px";
			objCalqueTexte.style.height=( phauteur) + "px";
		}
		objCalqueDerouleur = document.createElement("marquee");
		objCalqueDerouleur.id = "derouleur";
		objCalqueDerouleur.setAttribute("direction", "up");
		objCalqueDerouleur.scrollAmount = "1";
//		objCalqueDerouleur.scrollDelay = "100";
		objCalqueDerouleur.setAttribute("height", phauteur);
		objCalqueDerouleur.onmouseover = function () { this.stop(); }
		objCalqueDerouleur.onmouseout = function () { this.start(); }
		objCalqueDerouleur.innerHTML = pmsg;
		
		objCalqueTexte.appendChild(objCalqueDerouleur);
		objCalqueCorps.appendChild(objCalqueTexte);
		objCalqueNode.appendChild(objCalqueCorps);
		
		objCalqueEntete = document.createElement("div");
		objCalqueEntete.id = "msg_pub_entete";
		if(document.all){
			objCalqueEntete.style.width= plargeur+"px";
		}
		
		objEnteteCoinGauche = document.createElement("span");
		objEnteteCoinGauche.id = "pub_coin_gauche";
		objCalqueEntete.appendChild(objEnteteCoinGauche);
		
		objEnteteTitre = document.createElement("span");
		objEnteteTitre.className = "titre";
		if(document.all){
			objEnteteTitre.style.width=(plargeur - 72) + "px";
		}
		objEnteteTitre.appendChild(document.createTextNode(ptitre));
		objCalqueEntete.appendChild(objEnteteTitre);
		
		objEnteteCoinDroit = document.createElement("span");
		objEnteteCoinDroit.id = "pub_coin_droit";
		objCalqueEntete.appendChild(objEnteteCoinDroit);
		
		objEnteteFermer = document.createElement("span");
		objEnteteFermer.id = "btn_fermer";
		
		// Fermeture du calque pour le restant de la sesssion
		if(pbooGereSession){
			objEnteteFermer.onclick = function () { closePub(); closePubSession("entete"); }
		}
		// rend le calque invisible
		else{
			objEnteteFermer.onclick = function () { closePub();}
		}
		objCalqueEntete.appendChild(objEnteteFermer);
		
		objEnteteReduire = document.createElement("span");
		objEnteteReduire.id = "btn_reduire";
		objEnteteReduire.onclick = function () { hideShowPub_entete(); }
		objCalqueEntete.appendChild(objEnteteReduire);

		objCalqueNode.appendChild(objCalqueEntete);
		
		document.getElementsByTagName("body")[0].appendChild(objCalqueNode);
		
		hauteur_pub = phauteur;
	}
}

/**
* Création du calque dans l'entete (look inversé, non déplacable, affiché de suite) en version 800*600
* Ce constructeur rappel celui du calque entete et modifie la classe du calque en "enteteMini"
*
*	ptitre -> le texte affiché en titre de calque
*	phauteur -> la taille initial du calque
*	plargeur -> la largeur initial du calque
*	pmsg -> le contenu du message
*	pbooGereSession -> permet de gérer la fermeture des calques d'infos pour la durée de la
*					   session s'il vaut true. Paramètre optionnel, non déclaré <=> false
*/
function calquePubEnteteMini(ptitre, phauteur, plargeur, pmsg, pbooGereSession) {
	//if(pbooGereSession == undefined){
	if(!pbooGereSession){
	//Modif JG GEM08-016
		pbooGereSession = false;
	}
	calquePubEntete(ptitre, phauteur, plargeur, pmsg, pbooGereSession)
	//if(pub == undefined){
	if(!pub){
		pub = document.getElementById('msg_pub');
	}
	pub.setAttribute("className", "enteteMini");
	var divEntete = document.getElementById("msg_pub_entete");
	var filsEntete = divEntete.childNodes;
	for (i = 0; i < filsEntete.length; i++){
		if(filsEntete[i].className == "titre"){
			if(document.all){
				filsEntete[i].style.width=(plargeur - 65) + "px";
			}
		}
	}
}	
	

function setCalquePubTitre(pstrTitre){
	var objTitre = document.getElementById("titreCalquePub");
	objTitre.innerHTML = pstrTitre;
}

	
/**
* Affiche le calque à une coordonnée donnée
*
*	px -> l'abscisse du coin supérieur gauche du calque
*	py -> l'ordonnée du coin supérieur gauche du calque
*	pbooredim -> true pour demnder un redimmensionnement automatique du calque par rraport à la liste qu'il contient, false sinon
*/
function affichePub(px, py, pbooredim){
	//if (px == undefined){
	if (!px){
		px = pub_pos;
	}
	else{
		if ( (parseInt(px) + parseInt(largeur_pub)) > document.body.offsetWidth ){
			px = ( document.body.offsetWidth + document.body.scrollLeft) - largeur_pub;
		}
	}
	//if (py == undefined){
	if (!py){
		py = pub_pos_y;
	}
	//if(pbooredim == undefined ){
	if(!pbooredim){
		pbooredim = false;
	}
	
	pub.style.left = px + "px";
	pub.style.top = py + "px";
		
	if(frame){
		frame.style.display='block';
		frame.style.left = px + "px";
		frame.style.top = py + "px";
	}
		
	if(pbooredim){
		tabliste_largeur = parseInt(document.getElementById('tabliste').style.width);
		
		var pub_texte  = document.getElementById("msg_pub_texte_scroll");
		pub_texte.style.height = 40 + "px";
		
		var pub_entete  = document.getElementById("msg_pub_entete");
		elargi(pub_entete.id, 200, false);
		
		//pub_texte.style.width = largeur_pub;
			
		interval_affiche = window.setInterval("affichePubInterval()",10);
	}
	
	
	if(frame){
		frame.style.height = pub.offsetHeight;
	}
	pub.style.visibility = 'visible';
}

/**
  Fonction permettant de lancer le redimmensionnement automatique de la fenêtre lorsque 
  le tableau contenu à l'intérieur peut donner sa largeur.
		
  Cette fonction doit être appelé par un "window.setInterval".
*/	
function affichePubInterval(){
	var slide = false;
	tabliste_largeur = parseInt(document.getElementById('tabliste').style.width);
	if(!isNaN(tabliste_largeur)){
		if(tabliste_largeur != 0){		
			window.clearInterval(interval_affiche);
			
			tabliste_hauteur = document.getElementById('tabliste').offsetHeight;
			
			if (tabliste_hauteur < 5000){
				slide = true;	
			}
			
			var pub_texte  = document.getElementById("msg_pub_texte_scroll");
			
			agrandi(pub_texte.id, slide);
		
			var pub_entete  = document.getElementById("msg_pub_entete");
			elargi(pub_entete.id, tabliste_largeur, slide);
		}
	}
}

/**
*	Elargi ou rétrécie la largeur du calque en fonction de la largeur du tableau contenu
*
*	pid -> id de l'élément entête du calque
*	ptabliste_largeur -> largeur du tableau contenu dans le calque
*/	
function elargi(pid, ptabliste_largeur, pbooslide){
	pub_entete  = document.getElementById(pid);
	tmplargeur = parseInt(pub_entete.style.width);
		
	var pub_texte  = document.getElementById("msg_pub_texte_scroll");
	if(pbooslide){	
		//contenu > contenant 
		if(ptabliste_largeur > tmplargeur ){
			
			if( (tmplargeur + 20 ) > ptabliste_largeur + 30){
				tmplargeur = ptabliste_largeur + 30 ;
			}else{
				tmplargeur = tmplargeur + 10;
			}
				
			pub_entete.style.width = tmplargeur + "px";
			pub.style.width = (tmplargeur) + "px";			
				
			pub_texte.style.width= (tmplargeur - 8) + "px";
			
			var listEntetes = pub_entete.childNodes;
			for(var i = 0; i < listEntetes.length; i++){
				if((listEntetes[i].className)=="titre"){
					listEntetes[i].style.width= (tmplargeur - 72) + "px";
				}
			}
			if(frame){
				frame.style.width = pub.offsetWidth;
			}
			if( (tmplargeur) < ptabliste_largeur + 30){
				Commande = "elargi('" + pid + "', " + ptabliste_largeur + " )";
				pause = setTimeout(Commande, 50);
			}
			return;
				
		}else{
			if( (tmplargeur) <= ptabliste_largeur + 34){
				tmplargeur = ptabliste_largeur + 34 ;
			}else{
				tmplargeur = tmplargeur - 10;
			}
				
			pub_entete.style.width = tmplargeur + "px";
			pub.style.width = (tmplargeur ) + "px";			
				
			pub_texte.style.width= (tmplargeur - 8) + "px";
			
			var listEntetes = pub_entete.childNodes;
			for(var i = 0; i < listEntetes.length; i++){
				if((listEntetes[i].className)=="titre"){
					listEntetes[i].style.width=(tmplargeur - 72) + "px";
				}
			}
			if(frame){
				frame.style.width = pub.offsetWidth;
			}
				
			if(tmplargeur > ptabliste_largeur + 34){
				Commande = "elargi('" + pid + "', " + ptabliste_largeur + "," + pbooslide + " )";
				pause = setTimeout(Commande, 50);
			}
			return;
		}
	}else{
		tmplargeur = ptabliste_largeur + 30;
		pub_entete.style.width = tmplargeur + "px";
		pub.style.width = (tmplargeur ) + "px";			
						
		pub_texte.style.width= (tmplargeur - 8) + "px";
				
		var listEntetes = pub_entete.childNodes;
		for(var i = 0; i < listEntetes.length; i++){
			if((listEntetes[i].className)=="titre"){
				listEntetes[i].style.width=(tmplargeur - 72) + "px";
			}
		}
		if(frame){
			frame.style.width = pub.offsetWidth;
		}
		return;
	}
}

/**
* Fonction permettant d'agrandir le calque en hauteur à la taille déclarer à la création
*
*	pid -> id de l'élément entête du calque
*/	
function agrandi(pid, pbooslide){
	pub_texte  = document.getElementById(pid);
	tmptaille = parseInt(pub_texte.style.height);
	if(pbooslide){
		if( (tmptaille + 10 ) > hauteur_pub){
			tmptaille = hauteur_pub;
		}else{
			tmptaille = tmptaille + 10;
		}
		pub_texte.style.height = tmptaille + "px";
		if(frame){
			frame.style.height = pub.offsetHeight;
		}
		if(tmptaille < hauteur_pub){
			Commande = "agrandi('" + pid + "'," + pbooslide + " )";
			pause = setTimeout(Commande, 50);
		}
		return;
	}
	else{
		pub_texte.style.height = hauteur_pub + "px";
		if(frame){
			frame.style.height = pub.offsetHeight;
		}
		return;
	}
}

/**
* Fonction permettant d'afficher ou masquer la zone de texte du calque selon la valeur de
* la variable showpub;
*/
function hideShowPub(){
	if(showPub == 1){
		document.getElementById("msg_pub_corps").style.display = "none";
		document.getElementById("btn_reduire").id = "btn_agrandir";
		if(frame){
			frame.style.height = 17 + "px";
		}
		if(document.getElementById("derouleur")){
			document.getElementById("derouleur").stop();
		}
		showPub = 0;
	}else{
		document.getElementById("msg_pub_corps").style.display = "block";
		document.getElementById("btn_agrandir").id = "btn_reduire";
		if(frame){
			frame.style.height = pub.offsetHeight;
		}
		if(document.getElementById("derouleur")){
			document.getElementById("derouleur").start();
		}
		showPub = 1
	}
}

/**
* Permet de "fermer" le calque en le rendant invisible
*/	
function closePub(){
    if (pub){
	    pub.style.visibility = "hidden";
	}
	if(frame){
		frame.style.display='none';
		frame.style.height = 0 + "px";
		frame.style.width =  0 + "px";
	}
}
	
/**
* Retourne la position en abscisse de la souris
*/
function getX(e){
    if(e.pageX){
         return e.pageX;
 	}else{
 	          return e.clientX;
 	}
}
   
/** 
* Retourne la position en ordonnée de la souris
*/
function getY(e){
    if(e.pageY){
        return e.pageY;
	}else{
		return e.clientY;
	}
}

/**
* Replace le calque à sa place d'origine
*/	
function doubleclick(){
	pub.style.left = pub_pos + "px";
	pub.style.top = pub_pos_y + "px";
	if(frame){
		frame.style.display='block';
		frame.style.left = pub_pos + "px";
		frame.style.top = pub_pos_y + "px";
	}
}

/**
* Indique que le bouton de la souris est enfoncé
*/	
function mouseDown(e){
	e = e || window.event;
    // on récupère l'élément sur lequel on clique
    var target   = e.target || e.srcElement;
	
	// on vérifie que le clique s'effectue ailleurs que sur un bouton
	if(target.id =="titreCalquePub"){
		down = true;
	}
}

/**
* Indique que le bouton de la souris est relaché
* Remet le calque opaque s'il vient d'être déplacé.
*/	
function mouseUp(){
	if(down){
		if(document.all){
			pub.style.filter = "alpha(opacity=100)";
		}else{
			 pub.style.opacity = 1;
		}
		if(document.getElementById("derouleur")){
			document.getElementById("derouleur").start();
		}
		down = false;
	}
}
	
/** 
* Lorsque la souris bouge.
* On déplace le calque si besoin.
*/
function mouseMove(e){
     e = e || window.event;		
     if( down ) {
		if(document.getElementById("derouleur")){
			document.getElementById("derouleur").stop();
		}
 		x = getX(e);
         y = getY(e);
 		if(document.all){
 			pub.style.filter = "alpha(opacity=40)";
 		}else{
 			 pub.style.opacity = 0.4;
 		}
 		diff = largeur - x;
 		if( (diff <pub.offsetWidth) ){
 			pub.style.left = "";
 			pub.style.right = 0;
 			if(frame){
 				frame.style.left = "";
 				frame.style.right = 0;
 			}
				
 		}else{
 			pub.style.left = x-10;
 			if(frame){
 				frame.style.left = x-10;
 			}
 		}
			
 		if( y - 10 < 0){
 			pub.style.top = 0;
 			if(frame){
 				frame.style.top = 0;
 			}
 		} 
 		else{
 			pub.style.top = y - 10;
 			if (frame){
 				frame.style.top = y -10;
 			}
 		}
      }
}

/**
* Fonction permettant d'afficher ou masquer la zone de texte du calque de l'entete
* en slidant selon la valeur de la variable showpub;
*/
function hideShowPub_entete(){
	if(showPub == 1){
		pub_pos_y = origine_pos_y;
		remontePub();
		document.getElementById("btn_reduire").id = "btn_agrandir";
		if(document.getElementById("derouleur")){
			document.getElementById("derouleur").stop();
		}
		showPub = 0;
	}else{
		// 17 = hauteur de l'entete
		pub_pos_from_y = origine_pos_from_y + 17;
		descendPub();
		showPub = 1;
		if(document.getElementById("derouleur")){
			document.getElementById("derouleur").start();
		}
		document.getElementById("btn_agrandir").id = "btn_reduire";
	}
}

/**
* Permet de faire remonter le calque en slidant
*/	
function remontePub(){
	pub_pos_y = pub_pos_y - 10;
	affichePub_entete(pub_pos_y);
	if (pub_pos_y > - hauteur_pub ){
		Commande = "remontePub()";
		pause = setTimeout(Commande, 70);
	}
	return;
}

/**
* Permet de faire descendre le calque en slidant
*
*	phauteur -> hauteur à laquelle afficher le calque
*				si hauteur n'est pas fourni, la hauteur retenue est 0, haut de la fenêtre
*/	
function descendPub(phauteur){
	//if(phauteur == undefined){
	if(!phauteur){
		phauteur = 0;
	}
	
	if ( (pub_pos_from_y + 10) > phauteur ){
		pub_pos_from_y = phauteur;
	}else{
		pub_pos_from_y = pub_pos_from_y + 10;
	}
	affichePub_entete(pub_pos_from_y);
	if (pub_pos_from_y < phauteur ){
		Commande = "descendPub(" + phauteur + ")";
		pause = setTimeout(Commande, 70);
	}else{
		if(document.getElementById("derouleur")){
			document.getElementById("derouleur").start();
		}
	}
	return;
}

/**
* Affiche le calque d'entête indiqué
*
*	py -> ordonnée à laquelle afficher le calque d'entête
*/	
function affichePub_entete(py){
	pub.style.top = py + "px";
}

/**
* Initialise le calque d'entête
*/
function initPub_entete(){
	pub = document.getElementById('msg_pub');
	pub.style.top = pub_pos + "px";
}

/**
* Retourne l'élément XmlHttpRequest nécessaire aux requetes ajax
*/
function getXhr(){
	if (window.XMLHttpRequest){
		return new XMLHttpRequest();
	}
	else if (window.ActiveXObject){
		return new ActiveXObject("Microsoft.XMLHTTP");
	}			
}

/*
*	fonction appelant le script "include/calquePubSession.asp" indiquant en session de ne plus ouvrir les calques d'info
*	durant la session en cours.
*/
function closePubSession(pstrOrigine){
	var strToRoot;
	strToRoot = "./include";
	if( pstrOrigine == "menu"){
		strToRoot = "./include/";
	}else{
		if( pstrOrigine == "entete"){
			strToRoot = "../include/";
		}
	}
	xhr = getXhr();
	xhr.open("GET",strToRoot + "calquePubSession.asp", true);
	xhr.onreadystatechange = function () {
								if (xhr.readyState == 4){
     								if(xhr.status == 200){
	     								/* Rien à faire, le traitement (mise en session de la 
	     								*  variable) se fait dans le script ASP
	     								*/
									}
								}	
							};
	xhr.send(null);
}
