var galeryActive 			= false;
var IdGalery				= '';
var IdOldGalery				= '';
var old_bouton_menu 		= '';
var old_bouton_sous_menu 	= '';
var id_sous_section		 	= '';
var name_sous_section		= '';

var titleNavigation			= 'L’Éloi | Agence de photographes | ';

var bouton1 = '';
var bouton2 = '';
var bouton3 = '';
var bouton4 = '';
var bouton5 = '';
var bouton6 = '';

var onInit = false;

window.addEvent('domready', function() {	
	resize();
	

	$('menu_secondaire').setStyle('display', 'block');
	$('next').setStyle('opacity', '1');
	$('previous').setStyle('opacity', '1');

	$('previous').getFirst().setStyle('opacity', '0.001'); // pas 0 sinon IE fait sa crise 
	$('next').getFirst().setStyle('opacity', '0.001'); 
	
	$('previous').getFirst().setStyle('background-color', '#000');  
	$('next').getFirst().setStyle('background-color', '#000'); 
	
		
	var flechePrevious = new ScrollSpy({ 
		min: 0, 
		onEnter: function(position,state,enters) { 
			$('previous').getFirst().tween('opacity', '0');  			
		},  
		container: window, 
		mode: 'horizontal'
	}); 
	

	getURLforSWF(SWFAddress.getPathNames());
	SWFAddress.onChange = function() { //on url change

		if(onInit == false){
			try {

				var thePath = SWFAddress.getPathNames(); //get&split url
				getURLforSWF(thePath)
			} catch(e) {}
		}
		onInit = false;
	} 


 	cufon();
		
});

function getURLforSWF(thePath){

	if(thePath[2] != null) {
	};
	name_section = thePath[0];
	if(name_section == undefined){
		name_section ='photo_accueil';
		myTile = titleNavigation+'Accueil';
		SWFAddress.setTitle(myTile);
		name_sous_section = '';
		id_sous_section = '';
		createGalery(name_section);
	}else{
		if(name_section != IdGalery){
			var myTile = name_section
			myTile = myTile.capitalize()
			myTile = titleNavigation+myTile.replace("-", " ");
			SWFAddress.setTitle(myTile);
			name_sous_section = thePath[1];
			id_sous_section = thePath[2];
			createGalery(name_section);	
		}
	}
}









function createGalery(ma_galery){
	if(ma_galery == 'photo_accueil'){
		element_btn = null;
	}else if(ma_galery == 'info-contact'){
		element_btn = $('btn_100').getFirst();
	}else if(ma_galery == 'studio'){
		element_btn = $('btn_102').getFirst();
	}else{
		element_btn = $('btn_'+ma_galery).getFirst();
	}
	if($('content_'+IdOldGalery) != null){
		var myFx = new Fx.Tween($('content_'+IdOldGalery), {
			onComplete: function(){
				$('content_'+IdOldGalery).destroy();
				loadGalery(element_btn, ma_galery);
			}
		}).start('opacity', 0);
		$('sous_menu').tween('opacity', 0);
	}else {
		loadGalery(element_btn, ma_galery);
	}
	
	annuleBoutonMenu(element_btn);
	boutonStyle(element_btn, '#000', '#000', 'createGallery');
	
}

function loadGalery(element_btn, ma_galery){

		IdGalery = ma_galery;
		IdOldGalery = ma_galery;
			
		clone = $('master_content').clone().inject('master_content','after');
		clone.set('id', 'content_'+ma_galery);
		$('content_'+IdGalery).setStyle('opacity', 0);

				
		var myFx = new Fx.Scroll($('body')).set(0, 0);
		
		if(ma_galery == 'info-contact') {
			loadInfoAccueil(null);
		}else if(ma_galery == 'studio') {
			loadStudio(null);
		}else{
			var urlJason = 'index.php?page='+ma_galery;
			loadJason(urlJason, ma_galery);
		}	
		if($('content_'+IdGalery).hasClass('content') == false){
			$('content_'+IdGalery).addClass('content');
		}
					
		initSousMenu();
}


function loadJason(urlJason, ma_galery){
	jasonLoaded = false;
	var request = new Request.JSON({
		url: urlJason,
		onComplete: function(jsonObj) {
			if(ma_galery =='photo_accueil') {
				loadInfoAccueil(jsonObj.previews);
			}else {
				placeGalery(jsonObj.previews, null);
			}
		}
	}).send();
}

function loadInfoAccueil(gallery) {
		var request = new Request.HTML({
		url: 'index.php?page=info-contact',
		onSuccess: function(html) {
			placeGalery(gallery, html);
		}
	}).get();
}

function loadStudio(gallery) {
		var request = new Request.HTML({
		url: 'index.php?page=studio-a-b',
		onSuccess: function(html) {
			placeGalery(gallery, html);
		}
	}).get();
}



function aliasTitle(texte){
	return texte.replace(/&(.)[^;]*;/, '$1').replace(/ /g, '-').toLowerCase();
}

function placeGalery(galeryJSON, html) {

	var i=0;
	var largeur = 0;
	var ma_serie = "";
	var id_serie = 0;
	var menu = "";

	if(galeryJSON != null) {
		galeryJSON.each(function(image) { 
			if(image !=null){
	
				if(image.serie != ma_serie && IdGalery != 'photo_accueil'){
			 		var serie 	= new Element('div',{ 'id':'serie_'+id_serie, 'class':'serie', 'text':image.serie}).inject($('content_'+IdGalery)); 
	
			 		serie.addEvent('click', function(){	
		       			moveWithID(this.id);
					});
					largeur += 150+5;
					ma_serie = image.serie;
					ma_serieAlias = aliasTitle(ma_serie);
					// SOUS MENU
					menu += "<li id='btn_"+id_serie+"'><a href='#/"+IdGalery+"/"+ma_serieAlias+"/"+id_serie+"' title='"+ma_serie+"' onclick='actionBoutonSerie(this, "+id_serie+")'>"+ma_serie+"</a></li>";
					//menu += "<li id='btn_"+id_serie+"' class='cufon'>"+ma_serie+"</li>";
					id_serie++;
		
				}
	
				largeur += image.width+5;	
				
		        var bloc 			= new Element('div',{ 'id':'bloc_'+i, 'class':'block','styles': {'width': image.width+'px'}});      
		        var photo 			= new Element('div',{ 'id':'photo_'+i, 'class':'photo'}).inject(bloc); 
		        if(image.serie == "PDF"){
		      		var legende_pdf 	= new Element('div',{ 'id':'legende_pdf'+i, 'class':'serie_pdf', 'text':image.description}).inject(bloc); 
		      		var legende 		= new Element('div',{ 'id':'legende_'+i, 'class':'legende', 'html':"", 'opacity':0,}).inject(bloc);   
				}else{
				  	var legende 		= new Element('div',{ 'id':'legende_'+i, 'class':'legende', 'html':image.description, 'opacity':0,}).inject(bloc); 
		        
				}
		      
		        bloc.inject($('content_'+IdGalery));
		        i++;
	        }
		}); 
	}
	
	if(html != null) {
		$('content_'+IdGalery).adopt(html);
		if(IdGalery == "info-contact" || IdGalery == "photo_accueil"){
			largeur += 155*2+675+305+30;	
		}else if(IdGalery == "studio" ){
			largeur += 4*155+5137+4319+635*2;
		}	
	}
	
	$('content_'+IdGalery).tween('opacity', 1);
	$('sous_menu').set('html', menu);
	$('content_'+IdGalery).setStyle('width', largeur+'px');
	$('body').setStyle('width', largeur+'px');

	if(id_sous_section > 0){
		placeMenu(id_sous_section);
	}else{
		placeMenu(0);
	}
	
	resize();

	if(IdGalery != "photo_accueil" && IdGalery != "info-contact" && IdGalery != "studio" ){
		createIlluminationBouton();
	}
	if(id_sous_section >= 0){
		moveWithID('serie_'+id_sous_section);
	}
	
	if(Browser.Engine.trident == undefined){
		Cufon.replace('.serie');
		Cufon.replace('.studio_pdf');
	}
	
	if(IdGalery != "info-contact" && IdGalery != "studio" ){
		loadImagesConsecutively(galeryJSON);
	}	

	cufon();
	
}

id_asset = 0
function loadImagesConsecutively(srcs){

	id_asset += 1;
    var imgs = [];
    function loadImage(i){
    	if("undefined" !== typeof(srcs[i])){
    	
	    	SRC_images = srcs[i].src;
	    	if(srcs[i].serie == 'Video'){
	    		showVideo(SRC_images.slice(6), srcs[i].width, i);
	    		loadImage(i + 1);
	    	}else{
	
	 			var my_id_asset = id_asset   			       		
	       		var my_images = new Array;	
	       		var my_urls = new Array;	
	       		var imgtmp = [srcs[i].serie,i,srcs[i].pdf]
	       		var urltmp = srcs[i].src
	       		var nbrImageBatch = 3
	       		
	       		for(j=0; j<nbrImageBatch; j++){
	     			if("undefined" !== typeof(srcs[i + j]))  {
	       				if(srcs[i+j].serie != 'Video'){
	       					var imgtmp = [srcs[i+j].serie,i+j,srcs[i+j].pdf]
	       					var urltmp = srcs[i+j].src
	       					my_images.push(imgtmp)
	       					my_urls.push(urltmp)
	       				}else{
	       					j=nbrImageBatch
	       				}
	       			}
	        	}
	        
	       		op = new Asset.images(my_urls, {
	        		onComplete: function(){
	        	    	if(my_id_asset == id_asset){
	        	    		for(j=0; j<my_images.length; j++){
	     						 showImage(my_urls[j], my_images[j][0], my_images[j][1], my_images[j][2]);
	        	    		}
	        	            loadImage(i + j);
	        	        }
	        		},
	        		onerror: function(){
	       				alert('OUPSSS!!!. L’image '+imgSRC+' est introuvable.');
	       			}
	       		});      		
	    	}
    	}
    }
    loadImage(0);
}

function showImage(imgSRC, imgSerie, idItem, linkPDF) {
    var photo = $('photo_'+idItem);
    var legende = $('legende_'+idItem);
    
	if(photo != null){
       	var img = new Element('img', { src:imgSRC, style:'height:500px;pointer:cursor'}).inject(photo);
		var elem_legende = img.getParent().getParent().getFirst().getNext();
		img.set('title', elem_legende.get('text'));
       	
       	if(imgSerie == "PDF"){
       		img.getParent().getParent().addEvent('mouseover', function(){
       			img.getParent().setStyle('background-color','#000000');
       			img.getParent().setStyle('background-image','none');
				img.tween('opacity', '0.5');
				elem_legende.set('html', 'Download //<br />Télécharger');
				Cufon.replace(elem_legende);
				this.setStyle('z-index', 10000);
			});	
			img.getParent().getParent().addEvent('mouseout', function(){
				img.tween('opacity', '1');
				
				elem_legende.set('html', img.get('title'));
				Cufon.replace(elem_legende);
				this.setStyle('z-index', 10000);
			});	 
			img.getParent().getParent().addEvent('click', function(){
				window.open('uploads/PDF/'+linkPDF,'_blank');
			});	  
        }else{
            img.addEvent('click', function(){
            	moveWithPosition(getPositionCenter(this.getParent().getParent()));
			});	 
        }
	
		img.setStyle('opacity', '0');
		img.tween('opacity', '1');
		
		legende.tween('opacity', '1');  
	}
}

function showVideo(video_id, largeur, id ) {
    var photo = $('photo_'+id);
    var legende = $('legende_'+id);
    
	if(video_id != null){

		var moogaloop = new Swiff('http://vimeo.com/moogaloop.swf', {
			id: 'moogaloop',
			container: photo,	
		 	width: largeur,
			height: 500,
			vars: {
				color:'ffffff',
				clip_id: video_id,
				show_portrait: 0,
				show_byline: 0,
				show_title: 0,
				fullscreen: 1
			},
			params: {
				allowscriptaccess: 'always',
				allowfullscreen: 'true'
			}
		});
		if(legende != null){
			legende.tween('opacity', '1');  
		}
	}
}

function annuleBoutonMenu(element_btn){
	// Change l'état du bouton du menu principal
	if(old_bouton_menu != ''){		
		boutonStyle(old_bouton_menu.getFirst(), '#999', '#000', 'AnnuleBouton1');
	}
	if(element_btn != '' && element_btn != null) {
		old_bouton_menu = $(element_btn).getParent();
		boutonStyle(element_btn, '#000', '#000', 'AnnuleBouton2');
	}
	cufon();
}

function cufon() {
	Cufon.replace('.cufon', {
		hover: true
	});
}

function initSousMenu(){
	mes_sous_menu = $$('div.sous_menu');
	mes_sous_menu.each(function(mon_sous_menu) { 
		$(mon_sous_menu).setStyle('display', 'none');
     });
}

function boutonStyle(element, color1, color2, func){
	if(element != null){
		var over = function() {
			element.setStyle('color', color2);
		}
		var out = function() {
			element.setStyle('color', color1);
		}
		
		element.setStyle('color', color1);
		element.removeEvents('mouseover');
		element.removeEvents('mouseout');
		element.addEvents({
		    'mouseover':  over,
		   	'mouseout': out
		});
	}
}



function placeMenu(id_allume){

	var sous_menu = $('sous_menu');
	if(sous_menu != null){

		sous_menu.setStyle('opacity', '0');
		sous_menu.setStyle('display', 'block');
		
		if(Browser.Engine.trident == undefined){
			Cufon.replace('#sous_menu li', {hover: true});

		}

		var myFx = new Fx.Tween(sous_menu, {
			onComplete: function(){
			    Cufon.replace('#sous_menu li', {hover: true});
			}
		}).start('opacity', 1);
		
		// On initialise tous les boutons et le premier bouton du sous-menu devient noir
		mes_boutons_sous_menu = $$('#sous_menu li');
		
		var testId = 0 
		mes_boutons_sous_menu.each(function(bouton) { 
			if(testId == id_allume) {
				old_bouton_sous_menu = bouton.getFirst();
				boutonStyle(bouton.getFirst(), '#000', '#000', 'each fist');
			}else {
				boutonStyle(bouton.getFirst(), '#999', '#000', 'each deux');
			}
			testId += 1; 
		});
	}
}

function actionBoutonSerie(element_btn, id_serie) {
	if(old_bouton_sous_menu != ''){
		boutonStyle(old_bouton_sous_menu, '#999', '#000', 'actionBoutonSerie 1');
		old_bouton_sous_menu = element_btn;
	}
	if(element_btn != "") {
		boutonStyle(element_btn, '#000', '#000', 'actionBoutonSerie 2');
	}
 	moveWithID($('serie_'+id_serie));
}



function moveWithID(id_element){
	if($(id_element) != null){
		var position	=	$(id_element).getPosition().x;
	
		var myFx 		=	new Fx.Scroll($('body'), {
		     onComplete: function(){
	        }
		}).start(position-30, 0);
	}
}

function moveWithPosition(position){
	var myFx = new Fx.Scroll($('body'), {
	     onComplete: function(){
        }
	}).start(position, 0);
}

function fleche(ma_fleche, event){

	var fleche = $(ma_fleche).getFirst();
	
	if(event=="over"){	
		if($(ma_fleche).id=="previous" && $('body').getScroll().x == 0)  {
			 	
		}else{
			fleche.tween('opacity', '0.5');
		}
 			
	}else if(event=="press"){
		fleche.setStyle('opacity', '0.45');
	}else if(event=="release"){
		if($(ma_fleche).id=="previous" && $('body').getScroll().x == 0)  {
			 	
		}else{
			fleche.setStyle('opacity', '0.5');
		}
	}else if(event=="out"){
		
		fleche.tween('opacity', '0.001'); // pas 0 sinon IE fait sa crise.
		  
	}else if(event=="click"){
		
		mesPhotos=$$('div.block', 'div.serie');
		
		
		if(ma_fleche.id == 'previous'){
			mesPhotos.each(function(ma_photo) { 
				var posMin = ma_photo.getPosition().x;
				var posMax = posMin+ma_photo.getSize().x+5;
				
				if($('body').getScroll().x >= posMin &&$('body').getScroll().x <= posMax){	
					if(ma_photo.hasClass('serie')){
						moveWithPosition(posMin-30);
					}else{
						moveWithPosition(getPositionCenter(ma_photo));
					}
					return;
				}
	   		 });
		}else {
			largeur = document.documentElement.clientWidth;
			mesPhotos.each(function(ma_photo) { 
				posMin = ma_photo.getPosition().x;
				posMax = posMin+ma_photo.getSize().x+5;
				if($('body').getScroll().x+largeur >= posMin && $('body').getScroll().x+largeur <= posMax){
					if(ma_photo.hasClass('serie')){
						moveWithPosition(posMin-30);
					}else{
						moveWithPosition(getPositionCenter(ma_photo));
					}
					return;
				}
	   		});
		}	
	}
}

function getPositionCenter(element){
	var largeurScreen = document.documentElement.clientWidth;
	var largeurElement = element.getSize().x;
	//if(largeurElement>largeurScreen){
	//	var positionFinale = (element.getPosition().x+largeurElement)-largeurScreen/2+largeurElement/2;	
	//}else{
		var positionFinale = element.getPosition().x-largeurScreen/2+largeurElement/2;	
	//}

	return positionFinale;	
}


function resize(){
	var hauteur = document.documentElement.clientHeight;
	var largeur = document.documentElement.clientWidth
	
	hauteur=(hauteur-130-500-15)/2+130;
	if(hauteur<130){
		hauteur=130;
	}
	if($('content_'+IdGalery) != null){
		$('content_'+IdGalery).setStyle('padding-top', hauteur+"px");
	}

	$('top').setStyle('width', largeur+"px");
		//$('top').setStyle('margin-top', -hauteur+"px");
	
	$('next').setStyle('top', hauteur+"px");
	$('previous').setStyle('top', hauteur+"px");
	$('next').setStyle('left', largeur-100+"px");
}

function getGaleryWidth() {
	var galeryWidth = 0
	var mes_blocs = $$('div.bloc');
	mes_blocs.each(function(mon_bloc) { 
		galeryWidth += $(mon_bloc).getSize().x;	
    });
    return galeryWidth; 
}

function boutonEvent(id_element, event) {
	if($('btn_'+id_element) != null){
		element = $('btn_'+id_element).getFirst();
		if(event == 'in') {
			boutonStyle(element, '#000', '#000', 'boutonEvent1');
		}else {
			boutonStyle(element, '#999', '#000', 'boutonEvent2');
		}
		Cufon.replace(element);
	}
}

function openURL(element_btn, url_pdf) {
	boutonStyle($(element_btn), '#999', '#000', 'openUrl');
	Cufon.replace('#menu_secondaire li', {hover: true});
}

function createURL(id) {
	if(IdGalery != "photo_accueil" && IdGalery != "info-contact"){
		var myURL = name_section+'/'+aliasTitle($('btn_'+id).getFirst().title+'/'+id);
		SWFAddress.setValue(myURL);	
	}
}

var spyAct = function() { 

  var min = spyContainer.getScrollSize().y - spyContainer.getSize().y - 150 /* tolerance */; 
  spy = new ScrollSpy({ 

    container: spyContainer, 
    min: min, 
    onEnter: function() { 
      loadMore.fireEvent('click'); 
    } 
  }); 
};


function createIlluminationBouton() {
	// Recupère les positions de chaque série
	var positionsSeries = new Array();	
	mesSeries=$$('div.serie');
	mesSeries.each(function(ma_serie) { 
		if(ma_serie.id != 'serie_pdf'){
			position = $(ma_serie.id).getPosition().x;
			positionsSeries.push(position-document.documentElement.clientWidth/2);
		}
		
    });
     positionsSeries.push(100000);
    
	// Créeation des conditions pour allumer les boutons du sous-menu en fonction de la position de la gallerie
	if(bouton1 == '') {
		bouton1 = new ScrollSpy({ 
			min: positionsSeries[0], 
			max: positionsSeries[1]-5, 
			onEnter: function(position,state,enters) { boutonEvent(0, 'in');createURL(0);}, 
			onLeave: function(position,state,leaves) { boutonEvent(0, 'out');}, 
			container: window, 
			mode: 'horizontal'
		}); 
	}else {
		bouton1.options.min = positionsSeries[0];
		bouton1.options.max =  positionsSeries[1]-5;
		bouton1.initialize();
	}
	
	if(bouton2 == '') {
		bouton2 = new ScrollSpy({ 
			min: positionsSeries[1], 
			max: positionsSeries[2]-5,
			onEnter: function(position,state,enters) { boutonEvent(1, 'in');createURL(1);}, 
			onLeave: function(position,state,leaves) { boutonEvent(1, 'out');}, 
			container: window, 
			mode: 'horizontal'
		}); 
	}else {
		bouton2.options.min = positionsSeries[1];
		bouton2.options.max =  positionsSeries[2]-5;
		bouton2.initialize();
	}

	if(bouton3 == '') {
		bouton3 = new ScrollSpy({ 
			min: positionsSeries[2], 
			max: positionsSeries[3]-5,
			onEnter: function(position,state,enters) { boutonEvent(2, 'in');createURL(2);}, 
			onLeave: function(position,state,leaves) { boutonEvent(2, 'out');}, 
			container: window, 
			mode: 'horizontal'
		}); 
	}else {
		bouton3.options.min = positionsSeries[2];
		bouton3.options.max =  positionsSeries[3]-5;
		bouton3.initialize();
	}
	
	if(bouton4 == '') {
		bouton4 = new ScrollSpy({ 
			min: positionsSeries[3], 
			max: positionsSeries[4]-5,
			onEnter: function(position,state,enters) { boutonEvent(3, 'in');createURL(3);}, 
			onLeave: function(position,state,leaves) { boutonEvent(3, 'out');}, 
			container: window, 
			mode: 'horizontal'
		}); 
	}else {
		bouton4.options.min = positionsSeries[3];
		bouton4.options.max =  positionsSeries[4]-5;
		bouton4.initialize();
	}
	
	if(bouton5 == '') {
		bouton5 = new ScrollSpy({ 
			min: positionsSeries[4], 
			max: positionsSeries[5]-5,
			onEnter: function(position,state,enters) { boutonEvent(4, 'in');createURL(4);}, 
			onLeave: function(position,state,leaves) { boutonEvent(4, 'out');}, 
			container: window, 
			mode: 'horizontal'
		}); 
	}else {
		bouton5.options.min = positionsSeries[4];
		bouton5.options.max =  positionsSeries[5]-5;
		bouton5.initialize();
	}

	if(bouton6 == '') {
		bouton6 = new ScrollSpy({ 
			min: positionsSeries[5], 
			max: positionsSeries[6],
			onEnter: function(position,state,enters) { boutonEvent(5, 'in');createURL(5);}, 
			onLeave: function(position,state,leaves) { boutonEvent(5, 'out');}, 
			container: window, 
			mode: 'horizontal'
		}); 
	}else {
		bouton6.options.min = positionsSeries[5];
		bouton6.options.max =  positionsSeries[6];
		bouton6.initialize();
	}
}





