/*
	Fichier créé par Julien Roussel (JulienCD)
	Date : 2007-08-12 - Email : julien@carpediem.fr
	URL : http://www.julien.roussel.pagesperso.org
	Documentation : http://www.carpediem.fr/juliencd/DHTMLpop.txt
	Usage destiné : Outils/Dev Carpe Diem
*/
var DHTMLpop = {};
var scrollDiff = 0;
function initDHTMLpop(Obj){
	if (!Obj)
	{
		Obj = {};
		if (!Obj.autorun) Obj.autorun = true;
	}
	if (typeof(Obj.opacity)=="undefined") Obj.opacity = 6;
	if (!Obj.height) Obj.height	= 300;
	if (!Obj.width)	Obj.width = 500;
	if (!Obj.url) Obj.url = 'http://www.google.fr';
	DHTMLpop = Obj;
	if (DHTMLpop.autorun) showHideInnerPopUp();
	return DHTMLpop;
}
function runDHTMLpop(obj) { 
	obj.autorun=true; 
	DHTMLpop = initDHTMLpop(obj); 
	return false;
}
function debugDHTMLpop() {
	var d = dimension_detect();
	var output = 
	' viewW='+d.viewW+' viewH='+d.viewH+' docH='+d.docH+' docW='+d.docW+
	' left='+d.left+' top='+d.top+' scrollDiff='+scrollDiff+'<hr>';
	var bod = document.getElementsByTagName('body')[0];
	if (document.getElementById('debugSpan')) {
		document.getElementById('debugSpan').innerHTML+=output;
	}else{
		var div = document.createElement('div');
		div.id = "debugSpan";
		div.style.position = "absolute";
		div.style.display="block";
		div.style.top="0px";
		div.style.width="500px";
		div.style.backgroundColor='lightgreen';
		div.innerHTML = output;
		bod.appendChild(div);
	}
}
function replaceInnerPopUp(width,height){ 
	window.scrollTo(0,0);
	if (width)	DHTMLpop.width = width;
	if (height) DHTMLpop.height = height;
	var d 		= dimension_detect();
	var newTop 	= (d.viewH-DHTMLpop.height)/2 ;
	var newLeft = (d.viewW-DHTMLpop.width)/2;
	// on repositionne le div au centre de la page
	var innerPopUp = document.getElementById("innerpopup_iframe");
	innerPopUp.allowTransparency = true;
	innerPopUp.style.top 	= parseInt(newTop)+"px";
	innerPopUp.style.left 	= parseInt(newLeft)+"px";
	innerPopUp.style.width 	= DHTMLpop.width+"px";
	innerPopUp.style.height = DHTMLpop.height+"px";
	
	// on réagrandit le background
	if (innerPopUp.style.visibility == 'hidden'){
		var back = document.getElementById("innerpopup_background");
		back.style.width = '1px';
		back.style.height = '1px';
	} else {
		var back = document.getElementById("innerpopup_background");		
		back.style.width = (d.docW>d.viewW)?d.docW+'px':d.viewW+'px';
		back.style.height = (d.docH>d.viewH)?d.docH+'px':d.viewH+'px';
	}
	scrollDiff = d.viewW-d.docW;
	if (scrollDiff<1) document.body.style.width=d.viewW;
};
function showHideInnerPopUp(){
	window.scrollTo(0,0);
	// On applique une opacité
	var back = document.getElementById("innerpopup_background");

	//back.style.opacity = DHTMLpop.opacity/10;
	//back.style.filter = 'alpha(opacity='+DHTMLpop.opacity*10+')';
	//back.style.MozOpacity = DHTMLpop.opacity/100;
	//back.style.KHTMLOpacity = DHTMLpop.opacity/100;

	// Chargement du contenu de l'iframe
	var innerpopup_iframe = document.getElementById("innerpopup_iframe");
	innerpopup_iframe.src = DHTMLpop.url;
	
	// On vérifie l'etat de l'innerPopUp pour determiner si on doit l'afficher ou la cacher
	var innerpopup = document.getElementById("innerpopup");
	var chatPreview = document.getElementById("chatPreview");
	// si caché on affiche
	if (innerpopup.style.visibility == 'hidden' || DHTMLpop.showonly){		
		//var os=document.getElementsByTagName('select');
		//for (var i=0,o;o=os[i];i++) o.parentNode.style.visibility = 'hidden';		
		document.body.style.overflow = 'hidden';
		document.getElementsByTagName('html')[0].style.overflow = 'hidden';
		innerpopup.style.visibility = 'visible';
		
		//on cache la preview Flash manuellement car on peut utiliser wmode=transparent
		if(chatPreview){
			chatPreview.style.visibility = 'hidden';
		}
		
	// si affiché on cache
	}else{
		innerpopup.style.width='1px';
		//var os=document.getElementsByTagName('select');
		//for (var i=0,o;o=os[i];i++) o.parentNode.style.visibility = 'visible';	
		document.body.style.overflow = 'auto';
		document.getElementsByTagName('html')[0].style.overflow = 'auto';
		innerpopup.style.visibility = 'hidden';	

		//bottom scrollbar fix
		var d = dimension_detect();	
		scrollDiff = d.viewW-d.docW;
		if(scrollDiff != 0){
			document.body.style.width=d.viewW+'px';	
			document.getElementsByTagName('html')[0].style.width = d.viewW+'px';
			document.body.style.overflowX = 'hidden';
			document.getElementsByTagName('html')[0].style.overflowX = 'hidden';
		}
		if(chatPreview){
			chatPreview.style.visibility = 'visible';	
		}
	}
	replaceInnerPopUp();	
	if (DHTMLpop.debug) debugDHTMLpop();
}
// Dimension_detect
function dimension_detect(){
	var d={'viewW':0,'viewH':0,'docH':0,'docW':0,'left':0,'top':0};
	if (document.body.scrollHeight>document.body.offsetHeight){
		d.docW=document.body.scrollWidth;
		d.docH=document.body.scrollHeight;
	} else {
		d.docW=document.body.offsetWidth;
		d.docH=document.body.offsetHeight;
	}
	if (self.innerWidth){
		d.viewW=self.innerWidth;
		d.viewH=self.innerHeight;
		d.left=window.pageXOffset;
		d.top=window.pageYOffset;
	} else {
		var ie=(document.compatMode&&document.compatMode!='BackCompat')?document.documentElement:document.body;
		d.viewW=ie.clientWidth;
		d.viewH=ie.clientHeight;
		d.left=ie.scrollLeft;
		d.top=ie.scrollTop;
	}
	return d;
};
// window.onresize=function(){
// 	var innerpopup_iframe = document.getElementById("innerpopup_iframe");
// 	replaceInnerPopUp( 
// 		parseInt(innerpopup_iframe.style.width,10), 
// 		parseInt(innerpopup_iframe.style.height,10) 
// 	);
// };
