if( typeof MooTools != "undefined" &&  typeof RegisterFunctions != "undefined" ){
	var CustomScrollBar = new Class({
		options: {
			container: '.container',
			marker: '.marker',
			label:'.label',
			onSelect: Class.empty
		},
		initialize: function(options){
			this.setOptions(options);
			
			this.container = $(this.options.container);
			this.marker = $E(this.options.marker,$(this.options.container));
			this.labels = $ES(this.options.label,this.container);
			this.positionLabels();
			
			this.slider = new Slider(this.container,this.marker,{
				steps: this.labels.length-1,
				onComplete: function(current){
					var targetLeft = this.labels[current].getStyle('left').toInt();
					var markerWidth = (this.marker.getStyle('width').toInt())/2;
					var markerLeft = this.marker.getStyle('left').toInt();
					if(!window.ie6){
						this.marker.setStyle('left',(targetLeft-markerWidth));
					}else{
						this.marker.setStyle('left',(targetLeft+(markerWidth+5)));
					}
					this.fireEvent('onSelect', this.labels[current]);
				}.bind(this),
				onTick: function(current){
				}
				
			});
		},
		positionLabels: function(){
			var margin = 5;
			var containerWidth = this.container.getStyle('width').toInt();
			
			var lastLabel = this.labels.getLast();
			lastLabel.addClass('last');
			
			var firstLabel = this.labels[0];
			firstLabel.addClass('first');
			
			var labelWidth = firstLabel.getStyle('width').toInt();
			
			var w = containerWidth - (2*(margin + labelWidth));
			var m = this.labels.length - 1;
			var s = w/m;
			
			this.labels.each(function(label,index,collection){
				if(window.ie6){
					label.setStyle('left',(s*index)-margin);
				}else{
					label.setStyle('left',s*index);
				}
				label.addEvent('click',function(e){
					new Event(e).stop();
				});
			});
			if(window.ie6){
				firstLabel.setStyle('left',0);
			}else{
				firstLabel.setStyle('left',margin);
			}
			
			
		}
	});
	CustomScrollBar.implement(new Events, new Options);
}
