var ScrollSidebar = new Class({
	
	Implements: [Options],
	
	options: {
		offsets: { x:0, y:0 },
		mode: 'vertical',
		positionVertical: 'top',
		positionHorizontal: 'left',
		orig : { x: 0, y: 0 },
		speed: 400
	},
	
	initialize: function(menu,options) {
		/* initial options */
		this.setOptions(options);
		this.menu = $(menu);
		this.move = this.options.mode == 'vertical' ? 'y' : 'x';
		this.orig = this.options.mode == 'vertical' ? this.options.orig.y : this.options.orig.x;
		this.property = this.move == 'y' ? 'positionVertical' : 'positionHorizontal';
		/* ensure a few things */
		var css = { position: 'absolute', display:'block' };
		css[this.options.positionVertical] = this.options.offsets.y;
		css[this.options.positionHorizontal] = this.options.offsets.x;
		this.menu.setStyles(css).set('tween',{ duration: this.options.speed });
		/* start listening */
		this.startListeners();
	},
	
	startListeners: function() {
		var action = function() {
			if ($(document.body).getScroll()[this.move] > this.orig) { 
				this.setPosition($(document.body).getScroll()[this.move] + this.options.offsets[this.move] - this.orig);
			} else {
				this.setPosition(this.options.offsets[this.move]);
			}
		}.bind(this);
		window.addEvent('scroll',action);
		window.addEvent('load',action);
	},
	
	setPosition: function(move) {
		this.menu.tween(this.options[this.property],move);
		return this;
	}
});

/* usage */
window.addEvent('domready',function() {
	var sidebar = new ScrollSidebar('gauche', { orig: { x: 0, y: 168 } });
$$('.menu li a').each(function(el, i){
	var classLien = el.getProperty('class');
	if(classLien!='select'){
	el.addEvent('mouseover', function(e){
		e.stop();
		el.set('morph', {duration: 'short', transition: 'sine:in'});
		if(classLien=='gris'){
			el.morph({
    			'background-color': ['#555', '#bfbfbf'],
    			'color': ['#fff', '#111']
    		});
		} else {
			el.morph({
    			'background-color': ['#e4e4e4', '#ccf234'],
    			'color': ['#555', '#111']
    		});
    	}
	});
	el.addEvent('mouseout', function(e){
		e.stop();
		el.set('morph', {duration: 'long', transition: 'sine:out'});
		if(classLien=='gris'){
			el.morph({
    			'background-color': ['#bfbfbf', '#555'],
    			'color': ['#111', '#fff']
    		});
		} else {
		   	el.morph({
    			'background-color': ['#ccf234', '#e4e4e4'],
    			'color': ['#111', '#555']
    		});
    	}
	});
	}
});
if($$('.lien-interne').length > 0){
var mySmoothScroll = new Fx.SmoothScroll({
    links: '.lien-interne'
});
}
});
