
Ext.namespace('Ext.ux');

Ext.ux.Banner = (function(){

return{
    
        /* ******************* Variables modifiable ************************** */
        
        currentBanner       : 1,
		animeInterval		: 0,
        nbImages			: 0,
		lang				: 'FR',
        
        /*******************************************************************************
            FUNCTION: launchAnim
            ROLE    : Fait rouler l'animation
        ********************************************************************************/
        scrollBanner : function(){

			if(Ext.get('banner_right_'+this.currentBanner)){
				Ext.get('banner_right_'+this.currentBanner).setStyle('background-image', 'url(http://www.mpimontreal.com/images/home/Mpi_btn/background_'+this.currentBanner+'.png)');
				Ext.select('#banner_right_'+this.currentBanner+' a').setStyle('color', '#000000');
			}
			this.currentBanner++;
			
			if(!Ext.get('banner_right_'+this.currentBanner)){this.currentBanner = 1;}
			
			Ext.get('banner_right_'+this.currentBanner).setStyle('background-image', 'url(http://www.mpimontreal.com/images/home/Mpi_btn/background_'+this.currentBanner+'_over.png)');
			Ext.select('#banner_right_'+this.currentBanner+' a').setStyle('color', '#FFFFFF');

			var posPrecedent = this.currentBanner-1;
			if(posPrecedent == 0){posPrecedent = this.nbImages;}
			Ext.get('banner_left_'+posPrecedent).fadeOut({useDisplay:true});
			Ext.get('banner_left_'+this.currentBanner).fadeIn({useDisplay:true});
        },

        init: function(){
			
			// On récupère la langue:
			if(Ext.get('home_ad_bloc').dom.classList != null){
				var classGlobal = Ext.get('home_ad_bloc').dom.classList[0].split('-');
			}else{
				var classGlobal = Ext.get('home_ad_bloc').dom.className.split('-');
			}
			this.lang = classGlobal[1];
			
			this.nbImages = Ext.select('.home_ad_right_menu').elements.length;
			var htmlPreload = "";
			var dh = Ext.DomHelper;
			var j = 0;
			var classVisible = 'display:block;';
			for(j; j < this.nbImages; j++){
				if(j > 0){
					classVisible = 'display:none;';
					Ext.get('banner_right_1').setStyle('background-image', 'url(http://www.mpimontreal.com/images/home/Mpi_btn/background_1_over.png)');
					Ext.select('#banner_right_1 a').setStyle('color', '#FFFFFF');
				}
				htmlPreload += '<div style="'+classVisible+'" id="banner_left_'+(j+1)+'"><img src="http://www.mpimontreal.com/images/home/big_banner_'+(j+1)+'-'+this.lang+'.png" /></div>';
			}
			dh.overwrite('home_ad_bloc_image', htmlPreload);
			
		    // On arrete tout si on a un hover sur le div
		    Ext.get('home_ad_bloc').hover(function(){
				if(this.animeInterval && this.animeInterval !== 0){
					clearInterval(this.animeInterval);
				}
			}, function(){
				this.animeInterval = setInterval("Ext.ux.Banner.scrollBanner()", 5000);
			}, this);
			
		   // HOVER SUR LES MENU
           Ext.select('.home_ad_right_menu').hover(function(el){
				var imgId = el.target.id.split("_");
				imgId = imgId[2];
				
				if(Ext.get('banner_right_'+this.currentBanner)){
					Ext.get('banner_right_'+this.currentBanner).setStyle('background-image', 'url(http://www.mpimontreal.com/images/home/Mpi_btn/background_'+this.currentBanner+'.png)');
					Ext.select('#banner_right_'+this.currentBanner+' a').setStyle('color', '#000000');
				}
				
				if(Ext.get('banner_right_'+imgId)){
					Ext.get('banner_right_'+imgId).setStyle('background-image', 'url(http://www.mpimontreal.com/images/home/Mpi_btn/background_'+imgId+'_over.png)');
					Ext.select('#banner_right_'+imgId+' a').setStyle('color', '#FFFFFF');
				}
				
				if(Ext.get('banner_left_'+imgId)){
					Ext.get('banner_left_'+imgId).setDisplayed('block');
					if(Ext.get('banner_left_'+this.currentBanner)){
						Ext.get('banner_left_'+this.currentBanner).setDisplayed('none');
					}
				}
				
				this.currentBanner = imgId;
				
			}, function(){
			}, this);
			
			// Si on clic sur le menu, on ouvre le lien en conséquence
			Ext.select('.home_ad_right_menu').addListener('click', function(el){
				if(el.target.firstElementChild && el.target.firstElementChild.href != '#'){
					window.location.href = el.target.firstElementChild.href;
				}else{
					if(el.target.children[0] && el.target.children[0].href != '#'){
						window.location.href = el.target.children[0].href;
					}
				}
			});
			
			// Si on clic sur la grosse image
			Ext.get('home_ad_bloc_image').addListener('click', function(){
				if(Ext.get('banner_right_'+this.currentBanner).dom.firstElementChild && Ext.get('banner_right_'+this.currentBanner).dom.firstElementChild.href != '#'){
					window.location.href = Ext.get('banner_right_'+this.currentBanner).dom.firstElementChild.href;
				}else{
					if(Ext.get('banner_right_'+this.currentBanner).dom.children[0] && Ext.get('banner_right_'+this.currentBanner).dom.children[0].href != '#'){
						window.location.href = Ext.get('banner_right_'+this.currentBanner).dom.children[0].href;
					}
				}
			}, this);
			
			this.animeInterval = setInterval("Ext.ux.Banner.scrollBanner()", 5000);
        }
    };
    
})();

Ext.onReady(Ext.ux.Banner.init, Ext.ux.Banner);


