/*
###############################################################################################################
#	@Daweed																																													
#	www.daweed.info
#	plus d'info sur le 	http://blog.daweed.info/laboratoire/laboratoire-javascript/gerer-la-position-et-les-scrolls-dun-site-flash-au-sein-dune-page-html	
																					

#	::	SWFintegrator	::																	
#
#	@ PARAM @
#	iMinWidth			:	largeur minimum
#	iMinHeight			:	hauteur minimum
#	sCssType			:	"fullscreen" ou "center"
#	sFlashContenaire	:	nom de la div contenant le swf


#	Testé sous:
#	- FireFox
#	- IE7
#	- IE6


#	Mise a jour: 03/12/2007	
#	v 1.1 :
#
#	- script rendus commpatible avec les doctypes ( pour faire plaisir a mes amis des standarts web )
#	- intégration de l'option display none/block pour eviter les sautes au chargement.


#	TODO:
#	- integrer une fonction onDomReady ( pour remplacer le display a integrer dans le html )
#	- possibilité de renseigner une taille maxi au flash
#	- mettre une option pour les site en scroll horizontal
#	- mettre une option pour centrer le site dans la page au resize si scrollBar active ( actuellement le swf se calle en 0/0 )

###############################################################################################################
*/


/*
DO NOT EDIT BELOW THAT POINT
*/


function SWFintegrator(iMinWidth,iMinHeight,sCssType,sFlashContenaire){
		
		//passer les parametres a la fonction constructeur
		this.init(iMinWidth,iMinHeight,sCssType,sFlashContenaire);
		
};

m_SWFintegrator = SWFintegrator.prototype={	

	//initialisation de la classe.
	init:function(iMinWidth,iMinHeight,sCssType,sFlashContenaire){
		
		m_SWFintegrator.iMinWidth	=	iMinWidth;
		m_SWFintegrator.iMinHeight	=	iMinHeight;
		m_SWFintegrator.sCssType	=	sCssType;
		
		m_SWFintegrator.oFlashContent	=	document.getElementById(m_SWFintegrator.setDivContainer(sFlashContenaire))
		m_SWFintegrator.oBody = document.getElementsByTagName("body")[0];
		m_SWFintegrator.oHtml = document.getElementsByTagName("html")[0];
		
		//gestionnaire d'evenement
		m_SWFintegrator.addEvent(window, "load", m_SWFintegrator.FireOnLoad,false)		
		m_SWFintegrator.addEvent(window, "resize", m_SWFintegrator.FireOnResize,false)
		
	},
	
	//les fonctions qui se lancent au chargement
	FireOnLoad:function(){				
			m_SWFintegrator.initCss();
			m_SWFintegrator.getScreenSize();			
			m_SWFintegrator.setDynamiqueCSS(m_SWFintegrator,m_SWFintegrator.sCssType);	
			m_SWFintegrator.oHtml.style.overflow="auto";			
	},
	

	//les fonctions qui se lancent au resize
	FireOnResize:function(){	
		m_SWFintegrator.getScreenSize();		
		m_SWFintegrator.setDynamiqueCSS();		
			
	},

	//initialiser le css de base
	initCss:function(){		
		m_SWFintegrator.oBody.style.margin=0;			
		m_SWFintegrator.oBody.style.padding=0;
		m_SWFintegrator.oBody.style.border=0;
		m_SWFintegrator.oBody.style.width="100%";
		m_SWFintegrator.oBody.style.height="100%";
		
		m_SWFintegrator.oHtml.style.margin=0;
		m_SWFintegrator.oHtml.style.padding=0;
		m_SWFintegrator.oHtml.style.border=0;
		m_SWFintegrator.oHtml.style.width="100%";
		m_SWFintegrator.oHtml.style.height="100%";
		
		m_SWFintegrator.oFlashContent.style.margin=0;		
		m_SWFintegrator.oFlashContent.style.padding=0;
		m_SWFintegrator.oFlashContent.style.border=0;	
			
	},
	
	//récupere la résolution de l'écran
	getScreenSize:function(){
					
		if (window.innerWidth){				
	     	m_SWFintegrator.iScreenWidth = window.innerWidth;
	        m_SWFintegrator.iScreenHeight = window.innerHeight;
	    }
	    else if (document.all){	    		
	    	m_SWFintegrator.iScreenWidth = document.body.clientWidth;
	    	m_SWFintegrator.iScreenHeight = document.body.clientHeight;
		}
		
	},
	
	

	
	//Retourne le nom de la div contenaire du flash
	setDivContainer:function(DivContainer){
		
		if(DivContainer){
			return DivContainer;
		}else{
			// valeur par defait du swfObject
			return "flashcontent";
		}
	},
	
		
	setDynamiqueCSS:function(){
		
		//Case : center	
		if(m_SWFintegrator.sCssType=="center"){
			m_SWFintegrator.oHtml.setAttribute("overflow","auto");
			m_SWFintegrator.oBody.setAttribute("overflow","auto");
			m_SWFintegrator.oFlashContent.style.position="absolute"
			m_SWFintegrator.oFlashContent.style.width=m_SWFintegrator.iMinWidth+"px"
			m_SWFintegrator.oFlashContent.style.height=m_SWFintegrator.iMinHeight+"px"
			m_SWFintegrator.iMarginLeft=-m_SWFintegrator.iMinWidth/2;
			m_SWFintegrator.iMarginTop=-m_SWFintegrator.iMinHeight/2;		
			
			
			//gestion de la position horizontale
			if(m_SWFintegrator.iScreenWidth<m_SWFintegrator.iMinWidth)
			{			
				m_SWFintegrator.oFlashContent.style.left="0%"		
				m_SWFintegrator.oFlashContent.style.marginLeft="0";	
			}else
			{
				m_SWFintegrator.oFlashContent.style.left="50%";
				m_SWFintegrator.oFlashContent.style.marginLeft=m_SWFintegrator.iMarginLeft+"px";
			}
			
			
			//gestion de la position  verticale
			if(m_SWFintegrator.iScreenHeight<m_SWFintegrator.iMinHeight)		
			{
				m_SWFintegrator.oFlashContent.style.top="0%"
				m_SWFintegrator.oFlashContent.style.marginTop="0";
			}else
			{		
				m_SWFintegrator.oFlashContent.style.top="50%";
				m_SWFintegrator.oFlashContent.style.marginTop=m_SWFintegrator.iMarginTop+"px";				
			}			
		}
		
		
		//Case FullScreen 
		if(m_SWFintegrator.sCssType=="fullscreen"){	
		
			//on gere la largeur		
			if (m_SWFintegrator.iScreenWidth<m_SWFintegrator.iMinWidth)	
			{				
				m_SWFintegrator.oFlashContent.style.width=m_SWFintegrator.iMinWidth+"px"					
			}
			else if (m_SWFintegrator.iScreenWidth>m_SWFintegrator.iMinWidth)
			{					
				m_SWFintegrator.oFlashContent.style.width="100%"	
			}
					
			//on gere la hauteur				
			if(m_SWFintegrator.iScreenHeight<m_SWFintegrator.iMinHeight)
			{							
					m_SWFintegrator.oFlashContent.style.height=m_SWFintegrator.iMinHeight+"px"	
			}
			else if(m_SWFintegrator.iScreenHeight>m_SWFintegrator.iMinHeight)
			{						
				m_SWFintegrator.oFlashContent.style.height="100%"	
			}
		}
	
		//pour eviter la saute au chargement	
		if(	m_SWFintegrator.oFlashContent.style.display="none"){
			// a coupler avec un <div id="flashContent" style="display:none"></div>
			m_SWFintegrator.oFlashContent.style.display="block";
		}
		
	},
	
	
	//gestionnaire d'evenement de l'objet
	addEvent: function(element, eventType, doFunction, useCapture){	
			
		if (element.addEventListener) {		
			element.addEventListener(eventType, doFunction, useCapture);
			return true;	
					
		} else if (element.attachEvent) {		
			var r = element.attachEvent('on' + eventType, doFunction);
			return r;
						
		} else {		
			element['on' + eventType] = doFunction;				
		}		
	}
	
	
}
