var cls_slider = new Class({
	
	Extends: Slider,
	
	sliderMenuHeight: null,
	sliderBar: null,
	sliderKnobId: 'divUnterMenueSliderKnob',
	sliderElementId: 'divUnterMenueSlider',
	sliderElements: '#divUnterMenuePunkte ul li a',
	sliderElementList: null,
	sliderActiveClass: 'active',
	sliderSelectedClass: 'selected',
	sliderStartHeight: 0,
	sliderResizeTimer: null,
	
	
	
	initialize: function() {
		
		// Sliderelemente finden
		this.sliderElementList = $$(this.sliderElements);

		// Wenn keine Elemente gefunden wurden, Slider ignorieren
		if (this.sliderElementList.length < 1) {
			return false;
		} else {

			// Menühoehe ermitteln und 
			// Mousedown auf alle Slider-Menüs setzen, damit 
			// der Knopf mitspringt
			var sliderMenuHeight = 0;
			this.sliderElementList.each(function(el) { 

				/*
				
				auskommtiert, da sonst das Laden der neuen Seite verzögert wird und 
				dadurch ein Flackern zwischen den Seiten entsteht.
				
				
				el.addEvent('mousedown', function() {
					this.set(this.toStep(arguments[0]['sliderMenuHeight']));
				}.bind(this, {'sliderMenuHeight': sliderMenuHeight}));
				
				*/
			
				if (el.hasClass('selected')) {
					this.sliderStartHeight = sliderMenuHeight;
				}
					
				sliderMenuHeight += el.getSize().y;
				
			}, this);
			this.sliderMenuHeight = sliderMenuHeight;

			// Slider auf die entsprechende Hoehe setzen
			$(this.sliderElementId).setStyle('height', this.sliderMenuHeight);
			if (Browser.Engine.trident4) {
				if (this.sliderMenuHeight < 325) {
					$(this.sliderElementId).setStyle('margin-top', -325);
				} else {
					$(this.sliderElementId).setStyle('margin-top', -this.sliderMenuHeight);
				}
			}
			$(this.sliderElementId).setStyle('display', 'block');
			
			this.parent(this.sliderElementId, this.sliderKnobId, {
				
				snap: true,
				wheel: true,
				mode: 'vertical',
				range: [0, this.sliderMenuHeight-1],
				onChange: this.onChange,
				onComplete: this.onComplete
				
			});
			
			this.set(this.toStep(this.sliderStartHeight));

			window.addEvent('resize', function() {
				if (Browser.Engine.trident) {
					document.location.reload();				
				}
			});
			
			
		} 
	},
	
	
	onChange: function(value) {
		
		var elementHeight = 0;
		this.sliderElementList.each(function(el) {
							
			if ((elementHeight <= value) && (value < elementHeight + el.getSize().y)) {
				el.addClass('active');
			} else {
				el.removeClass('active');
			}
			elementHeight += el.getSize().y;
		});
		
	},
	

	onComplete: function(value) {

		var elementHeight = 0;
		this.sliderElementList.each(function(el) {

			if ((elementHeight <= value) && (value < elementHeight + el.getSize().y)) {

				this.set(this.toStep(elementHeight));

				if (el.hasClass('active') && (!el.hasClass('selected'))) {
					document.location.href=el.href;
				}
			}

			elementHeight += el.getSize().y;
			
		}, this);
		
	}
	
});
