var fmcRealisations = new Class({
	infos:[],
	list:[],
	colors:{'newmedia' : '#e79025',
		'com' : '#d0d921',
		'regie' : '#47c0d6',
		'event' : '#e3007b'
	},
	options: {
		container:'realisations',
		startIndex: 0,
		liste:'real',
		nbListe:6 // nb d'items affichés.
	},
	initialize: function(options){
/*		$$('object').each(function(el)
		{
			alert(el + ' - ' + el.id + ' - ' + el.getAttribute('data')+ ' - ' + el.getAttribute('src'));
		});
		$$('embed').each(function(el)
		{
			alert(el + ' - ' + el.id + ' - ' + el.getProperty('src'));
		});*/
		this.setOptions(options);
		// Création de la liste
		this.list = $$('#'+this.options.container+' .'+this.options.liste);
		this.listItem = [];
		var listContainer = new Element('div', {'id':'listContainer'}).injectInside(new Element('div', {'id':'listWrapper'}).injectTop(this.options.container));
		nbItems = $$('#'+this.options.container+' .'+this.options.liste).length;
		nbSteps = Math.ceil(nbItems / this.options.nbListe);
		this.nbSteps = nbSteps ;
		listContainer.setStyle('width',585*nbSteps);
			var nb = 0;
			var menu_c = new Element('div', {'class':'list_part'});
			$$('#'+this.options.container+' .'+this.options.liste).each(function(el, id)
			{
				//Création de la liste d'items
				//
				if(id!=0){
					el.prev = id-1;
				}
				if(id < nbItems-1)
				{
					el.next = id+1;
				}
				el.titre = el.getFirst().innerHTML;//récupération du titre
				//alert(el.titre + " - " + el.getFirst());
				el.id = id;
				el.categorie = this.getCategorie(el);//on assigne une catégorie (fonction de la classe de el)
				el.setStyle('display','none');
				el.fx = new Fx.Styles(el, {duration:400, wait:false});
				this.makeLigne(el, menu_c);
				nb++;
				if(nb==this.options.nbListe)
				{
					menu_c.injectInside(listContainer);
					menu_c = new Element('div', {'class':'list_part'});
					nb=0;
				}
			}, this);
			menu_c.injectInside(listContainer);
		$('realisations').fx = new Fx.Styles($('realisations'), {duration:1200, wait:true});
		$('realisations').setStyles({'display':'block', opacity:1});
		/*$('realisations').fx.start(
		{
			opacity:[0,1]
		});*/
		this.makeOverlay('');
		//scroller de la liste de réalisations
		this.menuScroll = new fmcScrollTo({
			slides: $$("#listWrapper .list_part"),
			container: "listWrapper",
			duration:500
		});
		// PREC - SUIV container
		this.navContainer = new Element('div', {'id':'nav_container'}).injectAfter($('listWrapper'));
		// PREC - SUIV 
		this.suivBouton();
		this.precBouton();
		this.now = 0;
		this.checkBoutons();
		//this.checkHistory.delay(1000, this, nbItems);
		this.checkHistory(nbItems);
	},
	makeLigne: function(el, target)
	{
		var ligne = new Element('a', {'class': 'ligne ' + el.categorie, 'href':'#'});
		this.listItem.push(ligne);
		el.color = el.color = eval('this.colors.'+el.categorie);
		//alert(el.color);
		ligne.setHTML(el.titre).injectInside(target);
		ligne.test = el;
		var obj = this;
		ligne.addEvent('click', function(e){
			var event = new Event(e);
			obj.affiche(el, false);
			ligne.blur();
			event.stop();
		});
	},
	precBouton: function()
	{
		var obj = this;
		var precBouton = new Element("a", 
		{
			'href':'#',
			'id':'precBouton'
		}).setHTML('Réalisations précédentes').addEvent('click',function(e)
		{
			var e = new Event(e);
			if(obj.now > 0)
			{
				obj.menuScroll.scrollToEl(obj.now-1);
				//alert(obj.menuScroll.options.slides[obj.now-1]);
				obj.now--;
			}
			e.stop();
			obj.checkBoutons();
		}).injectInside(this.navContainer);
	},
	suivBouton:function()
	{
		var obj = this;
		var precBouton = new Element("a", 
		{
			'href':'#',
			'id':'suivBouton'
		}).setHTML('Réalisations suivantes').addEvent('click',function(e)
		{
			var e = new Event(e);
			if(obj.now < obj.nbSteps-1)
			{
				obj.menuScroll.scrollToEl(obj.now+1);
				//alert(obj.menuScroll.options.slides[1]);
				obj.now++;
				//alert(obj.menuScroll.options.slides[obj.now-1]);
			}
			e.stop();
			obj.checkBoutons();
		}).injectInside(this.navContainer);
	},
	checkBoutons: function()
	{
		switch(this.now)
		{
			case 0 :
				$('precBouton').setStyle('display','none');
				$('suivBouton').setStyle('display','block');
				break;
			case this.nbSteps-1 :
				$('suivBouton').setStyle('display','none');
				$('precBouton').setStyle('display','block');
				break;
			default :
				$('suivBouton').setStyle('display','block');
				$('precBouton').setStyle('display','block');
		}
		if(this.nbSteps <2)
		{
			$('suivBouton').setStyle('display','none');
			$('precBouton').setStyle('display','none');
			this.navContainer.setStyle('display','none');
		}
	},
	affiche: function(el, action)
	{
		var myCoords = $('container').getCoordinates();
		obj = this;
		//creation des elements :
		this.afficheOverlay(el.color);
		window.location.hash = "show"+el.id;
		if(this.c) {this.c.remove();} // si c existe, on le supprime
		this.c = new Element('div', {'id':'rc'}).injectAfter($('overlay')); // on le recrée.
		//mise en forme
		this.c.setStyles(
		{
			'display': 'block',
			'z-index':25,
			'position':'absolute',
			'top':myCoords.height/2-80,
			'left':'50%',
			'margin':'-230px 0 0 -293px',
			'height':0,
			'width':'605px',
			'overflow':'hidden'
		});
		//Clone d'un élément de portfolio.
		if(this.clone) {this.clone.remove();}
		this.clone = el.clone().setStyles({'display':'block', 'opacity':1}).injectInside(this.c);
		if(this.theTitre) this.theTitre.remove();
		this.theTitre = this.clone.getFirst().clone().addClass('theTitre');
		this.theTitre.injectBefore(this.c).setStyles({top:myCoords.height/2, 'margin':'-230px 0 0 -293px',left:'50%', opacity:0});
		$$('#rc .rgmediaimages-player').each(function(el)
		{
			//alert('Media player'); 
		});
		

		//prev / next 
		if(el.next){
			this.next = new Element('a',
			{
				'href':'#',
				'id':'nextPres'
			}).setHTML('<span>suivant : </span>'+obj.list[el.next].titre).injectAfter(this.clone);
			this.next.addEvent('click', function(e)
			{
				var e=new Event(e);
				e.stop();
				obj.changeItem(obj.list[el.next]);
			});

		}
		if(el.prev>=0){
			this.prev = new Element('a',
			{
				'href':'#',
				'id':'prevPres'
			}).setHTML('<span>précédent : </span>'+obj.list[el.prev].titre).injectAfter(this.clone);
			this.prev.addEvent('click', function(e)
			{
				var e=new Event(e);
				e.stop();
				obj.changeItem(obj.list[el.prev]);
			});

		}
		this.clone.getFirst().setStyle('display','none');

		// effets, transitions :
		this.c.fx = new Fx.Styles(this.c, {
			duration:1200, 
			wait:false
			//transition:Fx.Transitions.Quint.easeInOut
		});
		this.c.fx.start.delay(200,this.c.fx, {height:600, top:myCoords.height/2});
		this.theTitre.fx = new Fx.Styles(this.theTitre, {duration:800, wait:false, transition:Fx.Transitions.Quint.easeInOut});
		this.theTitre.fx.start.delay(800,this.theTitre.fx, {top:myCoords.height/2-32, opacity:1});
		this.theTitre.addEvent('click', function(e)
		{
			//obj.changeItem(obj.list[0]);
			alert('test');
		});
		// navigation images
		this.images(this.clone);
		//mise en place du bouton fermer
		this.boutonFermer(this.clone);
	},
	getTitre: function(el){
		el.getFirst();
	},
	makeOverlay : function(el)
	{
		var myCoords = $('container').getCoordinates(); 
		var layout = new Element('div', {'id':'overlay'});
		layout.injectAfter($('container'));
		layout.setStyle('display','none');
		this.overlay = $('overlay');
		this.overlay.fx = new Fx.Styles(layout, {duration:500, wait:false});
		$('overlay').setStyles(
		{
			'display':'block',
			'z-index':2,
			'opacity': 0,
			'top': 0, 
			'height':myCoords.height+'px', 
			'left': '0', 
			'width': '100%'
		});
	},
	afficheOverlay : function(color)
	{
		var myCoords = $('container').getCoordinates(); 
		this.overlay.fx.start({
			'opacity': .90,
			'background-color': color
		});
		if(!window.ie){ 
			//alert($('logo') + '-  '+ $('anim_right'));
			if($('logo')) $('logo').setStyle('visibility','hidden');
			if($('anim_right')) $('anim_right').setStyle('visibility','hidden');
		}
	},
	masqueOverlay: function()
	{
		this.overlay.fx.start({
			'opacity': 0
		});
		if(!window.ie){
			if($('logo')) $('logo').setStyle('visibility','visible');
			if($('anim_right')) $('anim_right').setStyle('visibility','visible');
		}
	},
	getCategorie: function(el){
		classes = el.getProperty("class").split(' ');
		return classes[1];
	},

	masque: function()
	{
		this.clone.setHTML('');
		this.c.fx.removeEvent('onComplete');
		this.theTitre.fx.start({top:400, opacity:0});
		this.c.fx.start.delay(500, this.c.fx, {'height':0,'padding-left':this.clone.getCoordinates().width/2,'width':0});
		this.masqueOverlay.delay(1300, this);
		window.location.hash = 'shownothing';
	},
	changeItem: function(newItem)
	{
		this.theTitre.fx.start({top:400, opacity:0});
		this.clone.setHTML('');
		this.c.fx.start.delay(600, this.c.fx, {'height':0});
		this.affiche.delay(1500, this, newItem);
	},	
	boutonFermer: function(el)
	{
		var obj = this;
		this.overlay.addEvent('click', function(e)
		{
			var e = new Event(e);
			obj.masque();
			e.stop();
		});
		var closer = new Element('span').setHTML('Fermer').injectInside(new Element("a",{'href':'#', 'class':'bouton_fermer'}).injectInside(el).addEvent('click', function(e)
		{
			var e = new Event(e);
			obj.masque();
			e.stop();
		}));
	},
	images: function(el)
	{
		var c = new Element('div', {'class':'real-images-nav'}).injectInside(el);
		var span = new Element('span').setText('images').injectInside(c);
		el.getChildren().each(function(p, index)
		{
			if(p.hasClass('real-images'))
			{
				var container = "parentID" + el.id;
				var largeur = 0;
				el.listeImages = p.getFirst().getChildren();
				if(el.listeImages.length < 1) 
				{
					c.setStyle('display','none');
					el.getChildren()[2].setStyles({'width':'auto',right:'auto',left:15});
				}
				p.setProperty('id' ,container);
				el.slideshow = new fmcScrollTo({
					slides: el.listeImages,
					container: container,
					duration:900
				});
				el.listeImages.each(function(image, i)
				{
					var anims = image.getElementsByClassName('rgmediaimages-player');
					if(window.ie)
					{
						anims.each(function(anim)
						{
								var so = new SWFObject("http://www.agencefmc.com/typo3conf/ext/rgmediaimages/res/mediaplayer.swf","mpl","300","240","8");
								so.addParam("allowscriptaccess","always");
								so.addParam("allowfullscreen","true");
								so.addParam("wmode", "transparent");
								so.addVariable("file",anim.getParent().getLast().getText());
								so.addVariable('width','300');
								so.addVariable('height','240');
								so.write(anim);
						});
					}
					largeur += p.getCoordinates().width;
					var lien = new Element('a', {'href':'#'}).setText(i+1).injectBefore(span);
					lien.numero = i;
					if(i==0)
					{
						el.act = lien;
						image.setStyle('display','block');
						lien.addClass('real-images-active');
					}
					lien.addEvent('click', function(e)
					{
						var e = new Event(e);
						if(el.act != this){
							el.slideshow.scrollToEl(i);
							this.addClass('real-images-active');
							el.act.removeClass('real-images-active');
							el.act = this;
							lien.blur();
						}
						e.stop();
					});
				});
				p.getFirst().setStyle('width', largeur);

			}else{
			}
		}, this);
	},
	getHash: function (key,url){
		if(arguments.length < 2) url =location.href;
		if(arguments.length > 0 && key != ""){
			if(key == "#"){
				var regex = new RegExp("[#]([^$]*)");
			} else if(key == "?"){
				var regex = new RegExp("[?]([^#$]*)");
			} else {
				var regex = new RegExp("[?&]"+key+"=([^&#]*)");
			}
			var results = regex.exec(url);
			return (results == null )? "" : results[1];
		} else {
			url = url.split("?");
			var results = {};
			if(url.length > 1){
				url = url[1].split("#");
				if(url.length > 1) results["hash"] = url[1];
				url[0].split("&").each(function(item,index){
					item = item.split("=");
					results[item[0]] = item[1];
				});
			}
			return results;
		}
	},
	checkHistory: function(length)
	{
		if(this.getHash('#'))
		{
			var showMe = parseInt(this.getHash('#').split("show")[1]);
			if(showMe<length) {
				this.affiche(this.list[showMe]);
			}
		}
	}
});
fmcRealisations.implement(new Options, new Events);

window.addEvent('load', function(){
	var makeIt = new fmcRealisations(
	{
		container:'realisations',
		liste:'real',
		nbListe:6
	});
});