function addEvent(oElem, sEvType, fn) {
	var bCapture=false;	
	return oElem.addEventListener?
	  oElem.addEventListener(sEvType, fn, bCapture):
	  oElem.attachEvent?
			oElem.attachEvent('on' + sEvType, fn):
			oElem['on' + sEvType] = fn;
}

function defaultEvent() {
	if (document.getElementById&&document.getElementById(objPopup.divid).style.display=="") {
		objPopup.setContent();
	}
}

function initPopup() {
	objPopup.init("objPopup", "popupdivlayer");
}

popupDivObj=function() {
	/****  Zone de personnalisation des styles à ajouter ici *****/
	this.width="420"; 
	this.height="330";
	this.backgroundColor="#ccc"; 
	this.border="1px solid #000"; 
	this.padding="4 4 4 4";
	this.overflow="auto"; 
	/****  Fin de la zone de personnalisation *****/
	
	this.id=""; this.varname=""; this.obj2use=null;
	this.divid=""; this.objdiv=null;
	this.objWindowSize=new windowSize();
	this.closeLinkClass=""; this.imgclosepath="";
	
	this.copyToiFrame=function(objie, objbase) {
		objie.style.position = objbase.style.position ;
		objie.style.top = objbase.style.top;
		objie.style.left = objbase.style.left;
		objie.style.height = objbase.style.height;
		objie.style.width = objbase.style.width;
		objie.style.display=""; 
	}
	
	this.hidepopupdiv=function() {
		document.getElementById(this.id).style.display="none";
		if (navigator.appName=='Microsoft Internet Explorer') document.getElementById(this.id+"ifr").style.display="none";
	}

	this.init=function(varname, popupid) {
		this.varname=varname;
		this.id=popupid;
		var objBody = document.getElementsByTagName("body")[0];
		this.objdiv=document.createElement("div"); this.divid="popupdivlayer";
		this.objdiv.id=this.divid;
		this.objdiv.style.position="absolute";
		this.objdiv.style.display="none"; 
		this.objdiv.style.zIndex="99"; 
		this.objdiv.style.width=this.width+"px"; 
		this.objdiv.style.height=this.height+"px";
		this.objdiv.style.backgroundColor=this.backgroundColor; 
		this.objdiv.style.border=this.border; 
		this.objdiv.style.padding=this.padding;
		this.objdiv.style.overflow=this.overflow; 
		this.objdiv.style.left=0; this.objdiv.style.top=0;
		
		var objspan=document.createElement("div");
		objspan.id="popupclose";
		objspan.style.textAlign="right"; 
		var linkClass="";
		if (this.imgclosepath=="") {
			if (this.closeLinkClass!="") { linkClass="class=\""+this.closeLinkClass+"\""; }
			else linkClass="style=\"text-decoration: none;\"";
			objspan.innerHTML="<a href=\"javascript:void(objPopup.hidepopupdiv());\" \""+linkClass+"><strong>fermer</strong></a>";
		} else {
			objspan.innerHTML="<a href=\"javascript:void(objPopup.hidepopupdiv());\"><img src=\""+this.imgclosepath+"\" border=\"0\" style=\"padding-right: 14px;\"></a>";
		}
		this.objdiv.appendChild(objspan);
		objBody.appendChild(this.objdiv);
		
		if (navigator.appName=='Microsoft Internet Explorer') {
			var objiframe=document.createElement("iframe");
			objiframe.id=this.id+"ifr";
			objiframe.style.border="0"; 
			objiframe.style.zIndex="98"; 
			objiframe.style.position="absolute"; 
			objiframe.style.padding="0"; 
			objiframe.style.margin="0";
			objiframe.style.visibility="hidden"; objiframe.style.display="none";
			objBody.appendChild(objiframe);
		}
		obj2use=eval(varname);
		addEvent(window, "resize", defaultEvent);
		addEvent(window, "scroll", defaultEvent);
	}
	
	this.setContent=function() {
		this.objWindowSize.getSizes(); this.objWindowSize.getScrolls(); 
// 		alert("this.objWindowSize.height " + this.objWindowSize.height + " this.objWindowSize.width " + this.objWindowSize.width + " this.height " + this.height + " this.width " + this.width);
		if (this.objWindowSize.height > 0) {
			var contentElement = document.getElementById(this.divid);
			var newPosX = ((this.objWindowSize.width / 2) - (this.width / 2)) + this.objWindowSize.scrollx;
			var newPosY = ((this.objWindowSize.height / 2) - (this.height / 2)) + this.objWindowSize.scrolly;
// 			alert(newPosX); alert(newPosY);
			if (newPosX<0) newPosX=0; if (newPosY<0) newPosY=0; 
			if ((newPosX >= 0) && (newPosY >= 0)) {
				contentElement.style.top = newPosY + 'px';
				contentElement.style.left = newPosX + 'px';
// 				alert("contentElement.style.top " + contentElement.style.top + " contentElement.style.left " +contentElement.style.left);
				if (navigator.appName=='Microsoft Internet Explorer') {
					objie=document.getElementById(this.divid+"ifr");
					this.copyToiFrame(objie, contentElement);
				}
			} else {
				contentElement.style.position = 'static';
			}
		}
	}
	
	this.setBackGrounColor=function(strBack) {
 		this.objdiv.style.backgroundColor=strBack; 
	}
	
	this.setSize=function(width2use, height2use) {
		this.width=width2use; 
		this.height=height2use;
		this.objdiv.style.width=this.width+'px'; 
		this.objdiv.style.height=this.height+'px';
	}
	
	this.showPopup=function() {
		this.setContent();
		document.getElementById(this.id).style.display="";
		if (navigator.appName=='Microsoft Internet Explorer') {
			document.getElementById(this.id+"ifr").style.display="";
			document.getElementById(this.id+"ifr").style.visibility="visible";
		}
	}
}

windowSize=function() {
	this.height=0; this.width=0;
	this.scrollx=0; this.scrolly=0;
	
	this.getSizes=function() {
		if (window.innerHeight&&typeof(window.innerHeight) == 'number') {
			this.height = window.innerHeight; this.width = window.innerWidth;
		} else {
			if (document.documentElement && document.documentElement.clientHeight) {
				this.height = document.documentElement.clientHeight; this.width = document.documentElement.clientWidth;
			} else if (document.body && document.body.clientHeight) {
				this.height = document.body.clientHeight; this.width = document.body.clientWidth;
			}
		}
	}
	
	this.getScrolls=function() {
		if (window.innerHeight) {
			this.scrollx = window.pageXOffset; this.scrolly = window.pageYOffset;
// 			alert("window.innerHeight scrolly "+this.scrolly);
		} else {
			if (document.documentElement && (document.documentElement.scrollLeft||document.documentElement.scrollTop)) {
				this.scrollx = document.documentElement.scrollLeft; this.scrolly = document.documentElement.scrollTop;
// 				alert("documentElement.scrollLeft scrolly "+this.scrolly);
			} else {
				this.scrollx = document.body.scrollLeft; this.scrolly = document.body.scrollTop;
// 				alert("document.body.scrollLeft scrolly "+this.scrolly);
			}
		}
	}
}
var objPopup=new popupDivObj();
addEvent(window, "load", initPopup);

