function LexSlider(id, duration, autostart, delay, transition) {
	/* register Object */
	var sp = new Object;
	sp.id = id;
	sp.autostart = (autostart==true) ? true : false;
	sp.delay = (delay>0.5) ? delay : 2;
	if(transition == 2) sp.transition = 'sinoidal';
	else if (transition == 3) sp.transition = 'spring';
	else sp.transition = 'linear';

	sp.ak = 0;
	sp.c = 0;
	sp.time = (duration) ? duration : 1;
	sp.arr = new Array();
	sp.btn = new Array();
	sp.active = false;
	sp.btnC = 0;
	sp.timer;
 
	// Lex-Slider starten
	if($(sp.id)) {
		var obj = $(sp.id).childElements();
		obj.each(function(node){
			// Buttons
			if(node.classNames() == 'LexSliderBtn') {
				$(node).observe('click', function(event){ sp.change(node.readAttribute('rel')); });
				sp.btn.push(node);
			} else if(node.nodeName == 'DIV') {
				sp.arr[sp.c] = node;
				if(sp.c != 0) {
          node.hide();
        } else {
          if($A($(node).select('.hidden')).length) {  
            $(sp.id).select('.imageElement')[0].select('.hidden')[0].appear();   
          }
        }
				node.style.width = node.getWidth();
				sp.c++;
			}
		});
	}
	if(sp.autostart) sp.timer = setTimeout(function() {sp.change(); }, sp.delay*1000);

	/* Change Content */
	sp.change = function(d) {
		if(sp.timer) clearTimeout(sp.timer);
		if(!sp.active) {
			var mult = (d < 0) ? -1 : 1;
			sp.active=true;

			// Buttons deaktivieren
			sp.btn.each(function(node){ node.className = 'inactive'; });

			var width = $(sp.id).getWidth();
			var old = $(sp.arr[sp.ak]);

			// Ausblenden
			if($A($(sp.arr[sp.ak]).select('.hidden')).length) {  
            $(sp.arr[sp.ak]).select('.hidden')[0].hide();   
          }
			new Effect.Move(old, {
				x: mult*width,
				duration:sp.time,
				afterFinish: function(effect) {
					old.hide();
				},
				transition: Effect.Transitions[sp.transition]
			});

			if(d < 0) sp.ak--;
			else sp.ak++;
			if(sp.ak < 0) sp.ak = (sp.c-1);
			else if(sp.ak >= sp.c) sp.ak = 0;

			sp.arr[sp.ak].show();
			sp.arr[sp.ak].style.left = (-mult*width)+'px';

			// Einblenden
			new Effect.Move(sp.arr[sp.ak], {
				x: mult*width,
				duration:sp.time,
				afterFinish: function(effect) {
				  if($A($(sp.arr[sp.ak]).select('.hidden')).length) {  
            $(sp.arr[sp.ak]).select('.hidden')[0].appear();   
          }
					sp.active = false;
					if(sp.autostart) sp.timer = setTimeout(function() {sp.change(); }, sp.delay*1000);
					sp.btn.each(function(node){
						node.className = 'LexSliderBtn';
					})
				},
				transition: Effect.Transitions[sp.transition]
			});
		}
	}
}
