/************************************************************/
// FONTIOND DU SITES
/************************************************************/


// Détection des navigateurs
// --------------------------------------------
var WEBKIT = Browser.Engine.webkit;  
var GECKO = Browser.Engine.gecko;  
var OPERA = Browser.Engine.presto;  
var IE = Browser.Engine.trident;  
var IE6 = (navigator.userAgent.toLowerCase().indexOf('msie 6') != -1)  
&& (navigator.userAgent.toLowerCase().indexOf('msie 7') == -1); 


// Navigation avec liens et scrolling pour afficher les contenus
var navContenu = new Class({
        Implements: [Options],
        options: {
                list_nav: [],
                list_contenus: [],
                startIndex: 0
        },
        initialize: function(options){
                this.setOptions(options);
				// stockage des options dans des variables raccourcies
				var list_nav = this.options.list_nav;
				var list_contenus = this.options.list_contenus;
				// effets
				var myscroll =  new Fx.Scroll2($('conteneur'), {
								duration: 1500,
								transition: Fx.Transitions.Quad.easeInOut,
								link: 'cancel'
							});
				
				list_nav.each(function(nav, i) { 
					this.addScroll(nav, list_contenus[i], myscroll);					   
				}, this);
        },
		
		addScroll: function(nav, contenu, fx){
			nav.addEvent('click', function(e) { 
				e.stop();
				fx.toElement(contenu);
			});
        }
});		
		
		
		
// Scrolling
function hdp(bt) {
	bt.addEvent('click',function(e) {
		e.preventDefault();
		new Fx.Scroll(window).toTop();
	});
}



// Fait apparaître et disparaître un element avec un fondu 
function preload_img() {
	
	if(! $$('.preload').length) return; // vérif de sûreté
	if (! IE6) { // exclusion de IE6 du à un pb d'opacité sur l'apparition du contenu
		if($$('.hide').length) {
			$$('.hide').each(function(el) {
				el.setOpacity(0);						  
			});			
		}
	}
	
	var list_conteneurs = $$('.preload');
	var list_imgs = $$('.preload img');
	var list_chemins = [];
	var list_legendes = [];

	// console.log(list_conteneurs);
	// console.log(list_imgs);
	
	list_imgs.each(function(img){					
	    list_chemins.push(img.get('src'));
	    list_legendes.push(img.get('alt'));
		img.destroy();
	}); 
	
	var loader = new Asset.images(list_chemins, { 
		
		onProgress: function(counter,index) {
			//progressBar.set((counter + 1) * (100 / images.length));
			var monImage = new Element('img', { 
				src: list_chemins[index], 
				alt: list_legendes[index],
				styles: {
					opacity: 0					
				}
			});
			
			var fx = new Fx.Tween(monImage, {
				property: 'opacity',
				duration: 1000
				//transition: Fx.Transitions.Quart.easeInOut,
				//link: 'chain'
			}).start(1);
			
			//monImage.tween('opacity', 1);
			monImage.inject(list_conteneurs[index]);
		},
		
		onComplete: function() {
			if ($$('.hide').length) {
				$$('.hide').each(function(hel) {
					new Fx.Tween(hel, { duration: 2000, property: 'opacity' }).start(1);

					//hel.tween('opacity', 1).delay(500);
				});
			}
			
		}
	});

}



// Insertions d'animations flash + définitions d'évenements pour celles-ci
function insert_swf(conteneur, swf, width, height, mesVariables) {
	
	var id = conteneur + '_swf';
	var mySwiff = new Swiff(swf, {
		id: id,
		container: conteneur, 
		width: width,
		height: height,
		params: {
			wmode: 'transparent'
		},
		vars: mesVariables
		/*,
		callBacks: {
			load: myOnloadFunc
		}*/
	});
}


// Incrustation de l'icônes sur les vignettes survolées pour signifier la possibilité de zoomer
function aff_loupe() {
	// stockage des éléménts
	var list_vignettes = $$('.loupes');
	// on vérifie que les vignettes existe
	if (!list_vignettes.length) return false;
	
	list_vignettes.each(function(vignette, i) {
		// on définit une position relative sur la vigentte pour positionner chaque loupe
		
		// on crée et on injecte le conteneur de la loupe
		var img_loupe = new Element('em').inject(vignette, 'top');
		vignette.addEvents({
			'mouseenter': function() {
				img_loupe.tween('opacity', 1);
			},
			
			'mouseleave': function() {
				img_loupe.tween('opacity', 0);
			}
		});
	});

}



// NAVIGATION AJAX SOUS-MENU
// ---------------------------------------------------------- //
function nav_sousmenu_ajax(univers, ID_page) {
	
	// Vérification de la présence de liens dans le sous-menu avant de dispatcher les requêtes ajax
	if (! $$('#sous_menu a').length) return;
	
	// Stockage des éléments
	var list_liens = $$('#sous_menu a');
	var bt_actif;
	/*
	list_liens.each(function(lien, i) { 
		if (i) {
			lien.hasClass('orange') ? lien.removeClass('orange'): '';
		}
	});
	*/
	var list_url_liens = list_liens.get('href');
	// console.log(list_url_liens);
	
	// on vérifie si le bouton actif est déjà définie sinon on le stock : Celui dont l'url comporte le même ID_page que celui passé en argument
	if (ID_page == 'artistes') bt_actif = list_liens[0];
	else {
		list_url_liens.each(function(url_lien, index) {
			var page = url_lien.split('/').getLast().split('.')[0] || 'index';
			if (page == ID_page) bt_actif = list_liens[index];
		});
	}
	
	list_url_liens.each(function(url_lien, index) {
		
		var lien = list_liens[index];
		// On détermine l'iD de la page et si celle-ci n'existe pas c'est qu'il s'agit de l'index !
		var page = url_lien.split('/').getLast().split('.')[0] || 'index';
		// console.log(page);
		if (page == 'index') var where = list_url_liens[index]+'index.php';
		else var where = list_url_liens[index];
		// On vérifie si une variable n'est pas passé dans le lien et on ajuste l'ajout de parametre pour la requete ajax
		!where.contains("?") ? where+='?nav_ajax=ok' : where+='&nav_ajax=ok';
		 //console.log(where);

		// On bloque le click par defaut du lien et on ajoute le déclenchement de notre requête ajax à la place
		lien.addEvent('click', function(event) {
			event.stop();
			// Si le bouton clické n'est pas actif on cotinue...
			if (this == bt_actif) return;
			else {
				
				var conteneur = $('conteneur-padding');
					
				bt_actif.removeClass('orange').addClass('blanc');
				this.removeClass('blanc').addClass('orange');
				bt_actif = this;

				var request = new Request.HTML({
					url: where,
					method: 'get',
					//update: $('conteneur-padding'),
					//evalScripts: true, // this is the default
					//evalResponse: true, 
					onRequest : function() { 
						conteneur.set('html', '').getParent('div').addClass('load');
					},
					onSuccess : function(responseTree, responseElements, responseHTML, responseJavaScript) { 
						//console.log(responseJavaScript);
					
						conteneur.getParent('div').removeClass('load');
						// console.log(responseElements);
						// console.log(responseJavaScript);
						// On scan les éléments à la recherche de celui qu'on veut insérer 
						responseElements.each(function(el, i) {
							// if(element.get('id') == conteneur.get('id')) {
							if(el.getAttribute('id') == 'conteneur-padding') {
								el.replaces(conteneur);
								// console.log(i);
								// console.log(responseElements[index]);
							}
						});
						// On execute les fonctions Javascript sur le nouveau contenu
						eval(responseJavaScript);
					}
				}).send();

			}
		});
	});
}

