
var Garonor = {
	init: function(){
		this.mkMenu();
		this.antiSpam();
		this.centerWebsite(100);
		
	    SqueezeBox.initialize({
	        size: {x: 800, y: 600},
			ajaxOptions: {
				method: 'get',
				evalScripts: true
			}
	    });
	    SqueezeBox.assign($$('a.boxed'), {
			parse: 'rel'
		});

		var alertMessages = $('alertmessages');
		if(alertMessages){
			(function(){
					alertMessages.fade('out');
			}).delay(3000);
		}
		
		
	},
	mkMenu: function(){
		var menuDivs = $$('#sub_menu div');
		
		menuDivs.each(function(div, i){
			div.addEvents({
				'mouseover': function(e){
					e = new Event(e).stop();
					menuDivs.removeClass('active');
					this.addClass('active');
				},
				'mouseout': function(e){
					e = new Event(e).stop();
					this.removeClass('active');
				}
			});
		});		
	
		if(window.ie6) return;
		
		var menuLinks = $('nav').getElements('li a');
		var subMenus = $('sub_menu').getElements('div');
		
		menuLinks.each(function(link, i){
			link.addEvent('mouseover', function(e){
				e = new Event(e).stop();
				subMenus.removeClass('active');
				subMenus[i].addClass('active');
			});
		});
		
		subMenus.addEvent('mouseout', function(e){
			this.removeClass('active');
		});
		
		subMenus.addEvent('mouseover', function(e){
			subMenus.removeClass('active');
			this.addClass('active');
		});
		
		
	},
	antiSpam: function(){
		$$('a.email').each(function(a){
			var email = a.get('text');
			if(email.contains('-nospam-')){
				var reg=new RegExp("-nospam-");
				email = email.replace(reg, ".");	
				a.set('text', email);
				a.set('href', 'mailto:'+email);			
			}
		});
	},
	centerWebsite: function( delay ){
		var container = $('vertically_centered');
		var body_height = window.getSize().y;
		var margin_top = (( body_height - container.getSize().y ) / 2) - 30;
		if(margin_top > 0){
			container.setStyle('margin-top', margin_top);
		}
		else{
			container.setStyle('margin-top', 0);
		}
		if( ! window.ie ){
			(function(){this.centerWebsite( delay );}.bind(this)).delay( delay );
		}
	},
	flash: function( options ){
	
		// Variables globales
		// Version majeure de Flash requise
		var requiredMajorVersion = 10;
		// Version mineure de Flash requise
		var requiredMinorVersion = 0;
		// R�vision de Flash requise
		var requiredRevision = 2;	
		
		this.hasRightFlashVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
		
			
		var d = {
			src: false,
			container: false,
			width: false,
			height: false,
			params: {
				wmode: 'opaque',
				bgcolor: '#FFFFFF'
			},
			checkFlash: true
		}
		$extend( d, options );
		
		if( d.checkFlash && !this.hasRightFlashVersion ){
			return;
		}
		
		if( !d.src || !d.container || !d.width || !d.height ){
			return;
		}
		var obj = new Swiff( d.src, {
			width: d.width,
			height: d.height,
			container: d.container,
			params: d.params
		});
	}
};



var Slideshow = new Class({
	Implements: Options,
	pause: false,
	div: false,
	options: {
		delay: 3500,
		controls: {
			play: false,
			pause: false,
			next: false,
			previous: false
		}
	},
	initialize: function( div, options ){
		this.setOptions(options);
		this.div = div;
		
		this.setControls();
				
		(function(){this.play();}.bind(this)).delay(this.options.delay);
	},
	setControls: function(){
		var c = this.options.controls;
		if(c.play){
			c.play.addEvent('click', function(e){
				e = new Event(e).stop();
				this.pause = false;
				this.play();
			}.bind(this));
		}
		
		if(c.pause){
			c.pause.addEvent('click', function(e){
				e = new Event(e).stop();
				this.pause = true;
			}.bind(this));
		}
		
		if(c.previous){
			c.previous.addEvent('click', function(e){
				e = new Event(e).stop();
				this.pause = true;
				this.previous();
			}.bind(this));
		}
		
		if(c.next){
			c.next.addEvent('click', function(e){
				e = new Event(e).stop();
				this.pause = true;
				this.next();
			}.bind(this));
		}		
	},
	play: function(){
		if(this.pause){
			return;
		}
		this.next();
		(function(){this.play();}.bind(this)).delay(this.options.delay);
	},
	next: function(){
		var slide = this.div.getLast('div');
		slide.tween('opacity', 0);
		(function(){
			slide.inject(this.div, 'top');
			slide.tween('opacity', 1);
		}.bind(this)).delay(500);		
	},
	previous: function(){
		var firstSlide = this.div.getFirst('div');
		var lastSlide = this.div.getLast('div');
		firstSlide.inject(lastSlide, 'after');
	}
});
