/*
 * Copyright (c) 2009-2010 ReactivOn SAS
 * All rights reserved.
 *
 * Author: Guillaume BERNARD
 * Date: 26 Janvier 2010
 * 
 * Gestionnaire de la zone publicitaire de la  vitrine
 */

var col;
var timer;
var old_col=1;
var COLOR_GREEN_H = '#547c17';
var COLOR_BLUE_H = '#005aa6';
var nbr_banner=0;

var slideFolio = function(colonne){
	$$('.pub_ban_slider_btn').setStyle('background-color', 'black');
	$$('.pub_ban_slider_btn').setStyle('border', '1px solid black');

	$('pub_ban_div_'+colonne).setStyle('background-color', COLOR_GREEN_H);
	$('pub_ban_div_'+colonne).setStyle('border', '1px solid '+COLOR_GREEN_H);
	
	// MAJ des OVER + OUT sur les boutons
	initMouseOverOnPanel(colonne);
	
	var folioChange = new Fx.Morph('pub_ban_col_'+colonne, {
		duration: 1000
	});
	
	var i;
	for (i=1;i<(nbr_banner+1);i++){
		if ( i!=old_col ){
			$('pub_ban_col_'+i).setStyle('visibility', 'hidden');
		}
	}	
	
	folioChange.start({
		'opacity': [0, 1], 
		'visibility': ['hidden', 'visible']
	});
	
	for (i=1;i<(nbr_banner+1);i++){
		if ( i!=old_col ){
			$('pub_ban_col_'+i).setStyle('z-index', '0');
		}
	}	
	
	$('pub_ban_col_'+colonne).setStyle('z-index', '10');
	
	if ( old_col!=null ){
		$('pub_ban_col_'+old_col).setStyle('z-index', '0');
	}

	old_col = colonne;
	col=colonne;
}


var slidingBenef = function(){
	var slide = function(){ 
		if (col==nbr_banner) col=1; 
		else col++; 
		slideFolio(col); 
	};
	timer = slide.periodical(10000);
}

// Fonction appele sur le Onclick pour le chargement d'une banniere en particulier
var slideFolioClick = function(colonne){
	timer = $clear(timer);
	col = colonne;

	if( $('pub_ban_div_'+colonne).getStyle('background-color') != COLOR_GREEN_H ) {
		slideFolio(col);
	}
	timer = slidingBenef.delay(20000);
}


// Gestion des effets OVER sur les boutons du panel
function initMouseOverOnPanel(colonne) {
	
	// Over sur bouton PAUSE
	$('pub_ban_pause').addEvent('mouseover', function(e){
		$('pub_ban_pause').setStyle('background-color', COLOR_GREEN_H);
	});
	$('pub_ban_pause').addEvent('mouseout', function(e){
		$('pub_ban_pause').setStyle('background-color', 'black');
	});
	
	// Parcours tous les boutons pour definir les effets	
	$$('.pub_ban_slider_btn').each(function(el) {

		var id_slider = el.id.substring(12,13);
		
		el.addEvent('click', function(e){
			slideFolioClick(id_slider);
			
			// Annule la mise en evidence du bouton PAUSE
			$('pub_ban_pause').setStyle('background-color', 'black');
		});
		
		el.addEvent('mouseover', function(e){
			if(id_slider != colonne) {
				// Over sur boutons non selectionnes
				el.setStyle('border', '1px solid '+COLOR_GREEN_H);
				el.setStyle('background', '#132807');
			} else {
				// Over sur bouton selectionne
				el.setStyle('border', '1px solid '+COLOR_GREEN_H);
				el.setStyle('background', COLOR_GREEN_H);
			}
		});
		
		el.addEvent('mouseout', function(e){	
			if(id_slider != colonne) {
				// Out sur boutons non selectionnes
				el.setStyle('border', '1px solid black');
				el.setStyle('background', 'black');
			} else {
				// Out sur bouton selectionne
				el.setStyle('border', '1px solid '+COLOR_GREEN_H);
				el.setStyle('background', COLOR_GREEN_H);
			}
		});
		
	});	
}

// Appelé pour positionner les evenements OnClick ainsi que les styles visuels du panel
function addEventPubBanner() {
	
	// Determine le nombre de bannieres presentes sur la page
	$$('.pub_ban_slider_btn').each(function(el) {
		nbr_banner++;
	});
	
	// Determine aleatoirement l'une des bannieres comme celle a afficher au chargement
	col = Math.floor((nbr_banner)*Math.random() +1 );

	// Lance l'initialisation des bannieres publicitaires seulement sur la page d'accueil
	if (nbr_banner > 0) {
		// Preselectionne la premiere banniere au demarrage
		slideFolio(col);
		
		slidingBenef();
		
		
		
		// Bouton precedent
		$('pub_ban_prec').addEvent('click', function(e){	
			col = col-1;
			
			// Annule la mise en evidence du bouton PAUSE
			$('pub_ban_pause').setStyle('background-color', 'black');
			
			if ( col == 0 ){
				col = nbr_banner ;
			}
			timer = $clear(timer);
			slideFolio(col);
				
			timer = slidingBenef.delay(20000);
		});
		
		// Mise en pause du defilement
		$('pub_ban_pause').addEvent('click', function(e){	
			if ( timer != null ){
				timer = $clear(timer);
				$('pub_ban_pause').setStyle('background-color', COLOR_GREEN_H);
				
				$('pub_ban_pause').addEvent('mouseout', function(e){
					$('pub_ban_pause').setStyle('background-color', COLOR_GREEN_H);
				});
			} else {
				timer = slidingBenef.delay(10);
				$('pub_ban_pause').setStyle('background-color', 'black');
				
				// Over sur bouton PAUSE
				$('pub_ban_pause').addEvent('mouseover', function(e){
					$('pub_ban_pause').setStyle('background-color', COLOR_GREEN_H);
				});
				$('pub_ban_pause').addEvent('mouseout', function(e){
					$('pub_ban_pause').setStyle('background-color', 'black');
				});
			}
		});
		
		// Bouton suivant
		$('pub_ban_next').addEvent('click', function(e){	
			col = col+1;
			
			// Annule la mise en evidence du bouton PAUSE
			$('pub_ban_pause').setStyle('background-color', 'black');
			
			if ( col > nbr_banner ){
				col = 1 ;
			}
			timer = $clear(timer);
			slideFolio(col);
			
			timer = slidingBenef.delay(10000);
			
		});
	}
}
