/*
 * Objet pour la gestion des block en surimpression	
 * Gestion du contenu en Ajax
 * Développement Fabien CANU
 */
 
 // Creation de la class(objet) oEvernetBox
 
 var oEvernetBox = new Class({
															 
	options: {
		link							: 'defaut', // Element sur lequel à lieu le click. Si 0, on charge direct sans click
		url								: 'xhr_form-accordeon.php', // Url pour le contenu
		params						: '', // Paramètres eventuels à transmettre
		message						: 'defaut', // message à afficher en chapeau de l'evernet box
		largeur						: 400,
		hauteur						: 400		
  },	
	
  initialize: function(options){
		
		this.setOptions(options);
		// Observateur sur le menu
		var el = this.options.link;
		
		if(el != 'defaut') {
			$(el).addEvent('click', function(e) {
				e = new Event(e).stop();
				// Boite de contenu
				if(!$('conteneurEvernetBox')) this.evernetBox();
				// Contenu via Ajax
				this.contenu(this.options.url, 'conteneurEvernetBox', this.options.params);		
			}.bind(this));
		} else {
				// Boite de contenu
				if(!$('conteneurEvernetBox')) this.evernetBox();
				// Contenu via Ajax
				this.contenu(this.options.url, 'conteneurEvernetBox', this.options.params);		
		}
  },
	
	evernetBox: function() {
		
		// Correction IE sur les liste, on les masque toutes
		var tabSelect = document.getElementsByTagName('select');			
		$A(tabSelect).each(function(e,j){
			e.style.visibility = 'hidden'; 
		});		
		
		// Assombrissement de la page
		this.assombrissement = new Element('div', {'id': 'assombrissement'}).injectInside(document.body);
		this.assombrissement.setStyles({'position' : 'absolute', 'top': 0, 'height': window.getScrollHeight()});
		
		this.fx = {
			assombrissement: this.assombrissement.effect('opacity', {duration: 500}).hide()
		};	
		
		this.fx.assombrissement.start(0.5);
		
		var largeurBloc = ((this.options.largeur+50) > document.body.offsetWidth) ? (document.body.offsetWidth)-50 : this.options.largeur;
    
    // TEST
    //if(window.location.hostname == 'ushuaia.roulezmalin.com') alert(document.body.offsetWidth);
    
		
		// Création du bloc conteneur
		this.conteneur = new Element('div', {'id': 'conteneurEvernetBox', 'styles': {'width': largeurBloc, 'marginLeft': -((largeurBloc/2)+14)}}).injectInside(document.body);
		//this.top = window.getScrollTop() + (window.getHeight() / 15);
		this.top = '50px';
		this.conteneur.setStyles({top: this.top, display: ''});
		
		// Spinner
		$('conteneurEvernetBox').empty().addClass('spinner');

	},
	
	contenu: function(url, cont, parametres){
		
		var r = new Ajax(url, {
			method: 'get',
			data: parametres,
			update: $(cont),
			evalScripts : true
		});
		r.request();	
		
		r.addEvent('onComplete', function() {		
			
			// Quand complet on vire le spinner
			if($('conteneurEvernetBox').hasClass('spinner')) $('conteneurEvernetBox').removeClass('spinner');
			
			// Si un message est défini on l'insere dans l'élément de chapeau
			if(this.options.message != 'defaut' && $('validationMessage')) {
				$('validationMessage').style.display = 'block';
				$('validationMessage').innerHTML = this.options.message;
			}
			
			this.gestionMenu();
		}.bind(this));
	},
	
	gestionMenu : function() {
		// Click sur retour
		if($('retourEvernetBox')) {
			$('retourEvernetBox').addEvent('click', function() {
			
				$('assombrissement').remove();
				$('conteneurEvernetBox').remove();	
				
				// Correction IE sur les liste, on les affichent toutes
				var tabSelect = document.getElementsByTagName('select');			
				$A(tabSelect).each(function(e,j){
					e.style.visibility = 'visible'; 
				});		
			}.bind(this));
		}
		
		// Click sur retour menu
		if($('menuEvernetBox')) {
			$('menuEvernetBox').addEvent('click', function() {
				var morphMenu = new Fx.Morph('conteneurEvernetBox', {wait: false});
				morphMenu.start('morphMenu');
				
				this.contenu(path+'/include/xhr_menu-utilisateur.php', 'conteneurEvernetBox', 'retour=1');	
			}.bind(this));
		}
		
		// Click sur fermer
		if($('fermerEvernetBox')) {
			$('fermerEvernetBox').addEvent('click', function() {
			
				$('assombrissement').remove();
				$('conteneurEvernetBox').remove();	
				
				// Correction IE sur les liste, on les affichent toutes
				var tabSelect = document.getElementsByTagName('select');			
				$A(tabSelect).each(function(e,j){
					e.style.visibility = 'visible'; 
				});		
			}.bind(this));
		}
		
		// Click sur zone sombre
		if($('assombrissement')) {
			$('assombrissement').addEvent('click', function() {
		
				if($('assombrissement')) $('assombrissement').remove();
				if($('conteneurEvernetBox')) $('conteneurEvernetBox').remove();	
				
				// Correction IE sur les liste, on les affichent toutes
				var tabSelect = document.getElementsByTagName('select');			
				$A(tabSelect).each(function(e,j){
					e.style.visibility = 'visible'; 
				});		
			}.bind(this));
		}
	}
});
 
 oEvernetBox.implement(new Options);
 
  // Creation de la class(objet) oEvernetBox
  
  
  
  
  
  
 
 var oObsSousMenu = new Class({
 
 	options: {
		classe			: 'defaut',
		classMorphing 	: '.morphDefaut',
		init			: false
	},	
	
	initialize: function(options){
		
		this.setOptions(options);
		
		alert(this.setOptions.options);
				
		if(this.setOptions.init == true) obs();
	},
	
	obs : function(options) {
		
		alert('ok');
	
			
		
		if($$(this.setOptions.classe) != '') {
			alert('glurps');
			$$(this.setOptions.classe).each(function(el){
			
				el.addEvent('click', function(e) {	

					e = new Event(e).stop();
					
					alert('tttt');
				
					var tab_url = el.id.split('_');
			
					if(this.setOptions.classMorphing == 'morphDefaut') this.setOptions.classMorphing = el.id;
					this.morphing(this.setOptions.classMorphing);
					
					this.rAjax(path+'xhr_'+tab_url[0]+'.php');
				});
			});
		}
	},
	
	rAjax : function(url) {
			
		// Spinner
		$('conteneurEvernetBox').empty().addClass('spinner');
			
		var r = new Ajax(url, {
			method: 'get',
			update: $('conteneurEvernetBox'),
			evalScripts : true
		});
		r.request();	

		r.addEvent('onComplete', function() {		
				
			// Quand complet on vire le spinner
			$('conteneurEvernetBox').removeClass('spinner');
		}.bind(this));

	},
			
	morphing : function(classMorphing) {
		var morphListeTrajet = new Fx.Morph('conteneurEvernetBox', {wait: false});
		morphListeTrajet.start(classMorphing);
	}
  
	
 });
 
 oObsSousMenu.implement(new Options);
 