// JavaScript Document
if(typeof(SuperClass)=='function'){JsPop.prototype = new SuperClass; /* héritage des méthodes */}

function JsPop(){
	if(typeof(SuperClass)!='function'){JsPop=undefined;alert("fichier SuperClass.js manquant!");}
	else{		
		/* héritage */
		this.classMere = SuperClass;  // classe parente
		this.classMere(); // appel du super constructeur
		delete this.classMere; // inutile de garder la classe parente
		
		this.idGlobalDiv='global__js__pop__';
		this.opaGlobalDiv=0.6;
		this.globalDivBgColor="#000000";
		this.globalDiv;
		
		this.idContenuDiv='contenu__js__pop__';
		this.contenuDiv;
		this.contenuDivBgColor="#ffffff";
		this.ssContenuDiv;
		
		this.idBoutonsDiv='boutons__js__pop__';
		this.boutonsDiv;
		this.boutonsDiv=document.createElement("div");
		this.boutonsDiv.id=this.idBoutonsDiv;
		this.boutonsDiv.style.overflow="auto";
		
		this.width=760;
		this.height=450;
		
		this.idFermer='fermer__js__pop__';
		this.fermer;
		this.setTextFermer('Fermer');
		
		this.closeFunc;
		
		/***** pour gérer versions d'IE < 6 *****/
		this.IEFrame;
		this.IE=this.vIE(); // version d'IE
		this.oldHeightBody;
		this.oldOverflowBody;
		/***************************************/
	}
}

JsPop.prototype.setTextFermer = function(text){
this.fermer=document.createElement("span");
this.fermer.innerHTML=text;
this.fermer.id=this.idFermer;
}

JsPop.prototype.setImgFermer = function(url){
this.fermer=document.createElement("img");
this.fermer.src=url;
this.fermer.id=this.idFermer;
}

JsPop.prototype.addBoutonFermer = function(){
	this.boutonsDiv.appendChild(this.fermer);
	var localThis=this;
	this.fermer.onclick=function(){localThis.closePop();}	
}
JsPop.prototype.removeBoutonFermer = function(){
	this.boutonsDiv.removeChild(this.fermer);
}

JsPop.prototype.createDivGlobal = function(){
	this.globalDiv=document.createElement("div");
	
	if(this.IE<=6 && this.IE>0){
		this.globalDiv.style.position="absolute";	
		
		this.IEFrame=document.createElement("iframe");
		this.IEFrame.frameBorder=0;
		this.IEFrame.style.filter = "alpha(opacity=0)";
		this.IEFrame.style.position="absolute";	
		this.IEFrame.style.zIndex=99;
		this.IEFrame.style.top=0;
		this.IEFrame.style.left=0;
		this.IEFrame.style.visibility='hidden';
		document.body.appendChild(this.IEFrame);
		
		this.oldOverflowBody=this.getCssStyleValue(document.body, 'overflow');
		this.oldHeightBody=this.getCssStyleValue(document.body, 'height');
		
		document.body.style.overflow='hidden';
	}
	else{
		this.globalDiv.style.position="fixed";
	}
	this.globalDiv.style.zIndex=100;
	this.globalDiv.style.top=0;
	this.globalDiv.style.left=0;
	this.globalDiv.style.margin=0;
	this.globalDiv.style.padding=0;
	this.globalDiv.style.visibility='hidden';
	document.body.appendChild(this.globalDiv);
	
	
	/*** teste couleur fond et opacity, pour voir si défini dans feuille de style ***/
	if(this.isTheSameStyle(this.globalDiv,'backgroundColor', this.idGlobalDiv)==true){
		this.globalDiv.style.backgroundColor=this.globalDivBgColor;	
	}
	if(this.isTheSameStyle(this.globalDiv,'opacity', this.idGlobalDiv)==true){
		this.globalDiv.style.opacity=this.opaGlobalDiv;
		this.globalDiv.style.filter = "alpha(opacity=" + (this.opaGlobalDiv*100) + ")"; /// pr IE	
	}
	/***************************************************************************/	
	this.globalDiv.id=this.idGlobalDiv;

}

JsPop.prototype.createDivContenu = function(){
	this.contenuDiv=document.createElement("div");
	
	if(this.IE<=6 && this.IE>0){this.contenuDiv.style.position="absolute";}
	else{this.contenuDiv.style.position="fixed";}
	
	this.contenuDiv.style.zIndex=101;
	this.contenuDiv.style.overflow='hidden';	
	this.contenuDiv.style.visibility='hidden';
	
	this.ssContenuDiv=document.createElement("div");
	this.contenuDiv.appendChild(this.ssContenuDiv);
	this.contenuDiv.appendChild(this.boutonsDiv);
	
	this.ssContenuDiv.style.overflow='auto';
	
	document.body.appendChild(this.contenuDiv);
	
	/*** teste couleur fond, pour voir si défini dans feuille de style ***/
	if(this.isTheSameStyle(this.contenuDiv,'backgroundColor', this.idContenuDiv)==true){
		this.contenuDiv.style.backgroundColor=this.contenuDivBgColor;	
	}
	/***************************************************************************/
	this.contenuDiv.id=this.idContenuDiv;
}

JsPop.prototype.createDivs = function(){
	this.createDivGlobal();
	this.createDivContenu();
}


JsPop.prototype.setPositions = function(){	
	marginTop=-(this.contenuDiv.offsetHeight/2);
	marginLeft=-(this.contenuDiv.offsetWidth/2);	
	
	this.contenuDiv.style.top='50%';
	this.contenuDiv.style.left='50%';
	this.contenuDiv.style.marginTop=marginTop+'px';
	this.contenuDiv.style.marginLeft=marginLeft+'px';
}


JsPop.prototype.setSizeGlobal = function(){
	var viewSize=new Array();
	viewSize=this.getViewSize();
	
	this.globalDiv.style.width=viewSize[0]+'px';
	this.globalDiv.style.height=viewSize[1]+'px';
	
	
	if(this.IEFrame){
		this.IEFrame.style.width=viewSize[0]+'px';
		this.IEFrame.style.height=viewSize[1]+'px';
		document.body.style.height=viewSize[1]+'px';
	}	
}
JsPop.prototype.setSizeContenu = function(w,h){	
	if(w!=undefined){this.width=w;}
	if(h!=undefined){this.height=h;}

	if(isNaN(this.width)==true){this.contenuDiv.style.width=this.width;}
	else{this.contenuDiv.style.width=(this.width-this.getOverWidth(this.contenuDiv))+'px';}
	
	if(isNaN(this.height)==true){this.contenuDiv.style.height=this.height;}
	else{
		var daHeight=this.height-this.getOverHeight(this.contenuDiv);
		this.contenuDiv.style.height=daHeight+'px';
		var position = this.getCssStyleValue(this.boutonsDiv, 'position');
		if(position!="absolute" && position!="fixed"){this.ssContenuDiv.style.height=(daHeight-this.boutonsDiv.offsetHeight)+'px';}
		else{this.ssContenuDiv.style.height="100%";}
	}	
}

JsPop.prototype.getOverWidth = function(elem){
	var overWidth,daBorderWidth,daPaddingWidth;
	
	daBorderWidth=parseInt(this.explode('px',this.getCssStyleValue(elem, 'borderLeftWidth'))[0])+parseInt(this.explode('px',this.getCssStyleValue(elem, 'borderRightWidth'))[0]);
	daPaddingWidth=parseInt(this.explode('px',this.getCssStyleValue(elem, 'paddingLeft'))[0])+parseInt(this.explode('px',this.getCssStyleValue(elem, 'paddingRight'))[0]);
	if(isNaN(daBorderWidth)==true){daBorderWidth=0;}
	overWidth=daBorderWidth+daPaddingWidth;

	return overWidth;
}

JsPop.prototype.getOverHeight = function(elem){
	var overHeight,daBorderHeight,daPaddingHeight;
			
	daBorderHeight=parseInt(this.explode('px',this.getCssStyleValue(elem, 'borderTopWidth'))[0])+parseInt(this.explode('px',this.getCssStyleValue(elem, 'borderBottomWidth'))[0]);	
	daPaddingHeight=parseInt(this.explode('px',this.getCssStyleValue(elem, 'paddingTop'))[0])+parseInt(this.explode('px',this.getCssStyleValue(elem, 'paddingBottom'))[0]);
	if(isNaN(daBorderHeight)==true){daBorderHeight=0;}
	overHeight=daBorderHeight+daPaddingHeight;
	
	return overHeight;
}

JsPop.prototype.setSize = function(){
	this.setSizeGlobal();
	this.setSizeContenu();	
}

JsPop.prototype.setContent=function(content){
if(typeof(content)=="string"){this.ssContenuDiv.innerHTML=content;}
else{this.ssContenuDiv.innerHTML='';this.ssContenuDiv.appendChild(content);}	
}

JsPop.prototype.openPop=function(w,h,content){
var localThis=this;
this.addEvent(window, "resize", this.tempSetSize=function(){localThis.setSize();});
this.addEvent(document, "keypress", this.tempClosePop=function(event){if(event.keyCode==27){localThis.closePop();}});
	
	
this.width=w;
this.height=h;
this.createDivs();
this.setContent(content);
this.setSize();
this.setPositions();

if(this.IEFrame){this.IEFrame.style.visibility='visible';}
this.contenuDiv.style.visibility='visible';
this.globalDiv.style.visibility='visible';
}

JsPop.prototype.openFramePop=function(w,h,urlFrame){	
var frame=document.createElement("iframe");
frame.style.width="100%";
frame.style.height="100%";
frame.setAttribute("frameborder",0);
frame.style.border="none";
frame.src=urlFrame;

this.width=w;
this.height=h;
this.setContent(frame);
this.setSize();
this.setPositions();

}

JsPop.prototype.closePop = function(){
	document.body.removeChild(this.globalDiv);
	document.body.removeChild(this.contenuDiv);
	if(this.IEFrame){
		document.body.removeChild(this.IEFrame);
		document.body.style.overflow=this.oldOverflowBody;
		document.body.style.height=this.oldHeightBody;
	}
	this.removeBoutonFermer();
	if(typeof(this.closeFunc)=="function"){this.closeFunc();}
	
	this.removeEvent(window, "resize", this.tempSetSize);
	this.removeEvent(document, "keypress", this.tempClosePop);	
}