window.addEvent('domready', function(){	

	$$('.team').each(function(element, i){
		var categories = element.getElements('.categories>li');
		var profiles = element.getElements('.profiles>li');
		var wrapper = element.getElement('.profiles');
		
		var page = 0;
		var pages = 1;
		
		var fx = new Fx.Tween(wrapper, {
			property: 'margin-left',
			link: 'chain',
			onStart: function(){
				previous.fade(pages <= 1 || page == 0 ? 'out' : 'in');
				next.fade(pages <= 1 || page == pages-1 ? 'out' : 'in');
			}
		}).set(0);
		
		var previous = element.getElement('.previous').set('tween', {'duration': 'short'}).addEvent('click', function(event){
			event.stop();
			if(page > 0) fx.start(-(--page)*(168*3));
		});
		var next = element.getElement('.next').set('tween', {'duration': 'short'}).addEvent('click', function(event){
			event.stop();
			if(page < pages-1) fx.start(-(++page)*(168*3));
		});
		
		categories.addEvent('click', function(event){
			if(event) event.stop();
			
			categories.removeClass('current');
			this.addClass('current');
			
			var hide = profiles.filter(':not(.'+this.getElement('a').get('href').substring(1)+')');
			hide.morph({
				'width': 0,
				'opacity': 0
			});
			var show = profiles.filter('.'+this.getElement('a').get('href').substring(1));
			show.morph({
				'width': 168,
				'opacity': 1
			})
			
			page = 0;
			pages = Math.ceil(show.length/3);
			
			fx.start(0);
		});
		categories[0].fireEvent('click');
		
	});

	$$('.slideshow').each(function(element, i){
		var slides = element.getElement('.slides');
		var current = 0;
		var total = slides.getChildren().length;
		var modifier = element.hasClass('slider') ? 130 : 100;
		/*if(element.hasClass('slider')){
			var title = new Element('p', {
				'text': slides.getElement('a[title]').get('title')
			}).inject(element, 'after');
		}*/
		if(total > 1){
			var tween = new Fx.Tween(slides, {
				property: 'margin-left',
				unit: element.hasClass('slider') ? 'px' : '%',
				link: 'cancel',
				onComplete: function(){
					current = Math.abs(slides.getStyle('margin-left').toInt()/modifier);
					pages.getElements('li').removeClass('current')[current].addClass('current');
				}
			});
			
			var pages = new Element('ul', {'class': 'pages'}).inject(element);
			slides.getChildren().each(function(slide, j){
				new Element('a', {
					'href': '#',
					'text': (j+1),
					'title': slide.getElement('a[title]').get('title'),
					'events': {
						'click': function(event){
							event.stop();
							tween.start('-'+(j*modifier));
						}
					}
				}).inject(new Element('li', {
					'class': 'page'+(j == 0 ? ' current' : '')
				}).inject(pages));
			});
			
			var navigation = new Element('ul', {'class': 'navigation'}).inject(element);
			var previousLink = new Element('a', {
				'href': '#',
				'text': 'Précédent',
				'title': 'Précédent',
				'events': {
					'click': function(event){
						if(event) event.stop();
						if(current > 0) tween.start('-'+((current-1)*100));
						else tween.start('-'+((total-1)*modifier));
					}
				}
			}).inject(new Element('li', {
				'class': 'previous'
			}).inject(navigation));
			var nextLink = new Element('a', {
				'href': '#',
				'text': 'Suivant',
				'title': 'Suivant',
				'events': {
					'click': function(event){
						if(event) event.stop();
						if(current < total-1) tween.start('-'+((current+1)*modifier));
						else tween.start(0);
					}
				}
			}).inject(new Element('li', {
				'class': 'next'
			}).inject(navigation));
			
			if(element.hasClass('autoplay')){
				console.log('autoplay');
				var next = function(){
					nextLink.fireEvent('click');
					//console.log('next');
				}
				var timer;
				var play = function(){
					timer = next.periodical(4000);
				}
				var stop = function(){
					if(timer) clearInterval(timer);
				}
				
				element.addEvents({
					'mouseenter': function(){
						stop();
					},
					'mouseleave': function(){
						play();
					}
				});
				
				play();
			}
		}
	});
});

Number.implement({
    zeroPad: function(length){
        var str = '' + this;
        while (str.length < length) {
            str = '0' + str;
        }
        return str;
    }
});
