var bildlauf = function () {
	var container = $('news_3-list-container');
	var buttonL;
	var buttonR;
	var scrollBar = new Element('div');
	var intervalID;
		
	var action = {
		'scrollRight' : function(caller) {
			cont_coords = container.getCoordinates();
			elem_coords = container.getFirst().getCoordinates();			

			if($chk(caller)) {
				var scrollSettings = { duration: '800', transition: Fx.Transitions.Back.easeOut }
			} else {
				var scrollSettings = { duration: '800', transition: Fx.Transitions.Sine.easeInOut }
			}
									
			var myX = new Fx.Morph( container, scrollSettings).start(
				{ 'left': ['0px', '-'+ (elem_coords.width + 25) +'px'] }
			);
			
			myX.addEvent('complete', function() {
				var elem = container.getFirst("div.bildlauf_float").dispose();
				elem.inject(container.getLast(), 'after');			
				container.setStyles({ 'left': '0px' });
				
				updateScrollbar();
			});			
		},
		'scrollLeft' : function() {
			cont_coords = container.getCoordinates();
			elem_coords = container.getLast().getCoordinates();			

			var elem = container.getLast("div.bildlauf_float").dispose();
			elem.inject(container.getFirst(), 'before');
			
			container.setStyles({ 'left': '-'+(elem_coords.width + 25) +'px' });	
						
			var myX = new Fx.Morph( container,
					{ duration: 'normal', transition: Fx.Transitions.Back.easeOut }
			).start({ 'left': ['-'+ (elem_coords.width + 25) +'px', '0px'] });
			
			myX.addEvent('complete', function() {
				updateScrollbar();
			});
		}
	}
	
	var control = {
		'buttonL' : {
			'normal' : "fileadmin/template/bildlauf/pfeil-links.png",
			'hover'	 : "fileadmin/template/bildlauf/pfeil-links-active.png",
			'styles' : { 'position': 'absolute', 'top': '50px', 'left': '10px' },
			'domPos' : { 'node' : container.getParent(), 'where' : 'before'},
			'action' : action.scrollLeft
		},
		'buttonR' : {
			'normal' : "fileadmin/template/bildlauf/pfeil-rechts.png",
			'hover'  : "fileadmin/template/bildlauf/pfeil-rechts-active.png",
			'styles' : { 'position': 'absolute', 'top': '50px', 'right': '10px' },
			'domPos' : { 'node' : container.getParent(), 'where' : 'after'},
			'action' : action.scrollRight
		},
		'scrollBar' : {
			'normal' : "fileadmin/template/bildlauf/dot-0.gif",
			'hover'  : "fileadmin/template/bildlauf/dot-1.gif",
			'styles' : {  },
			'domPos' : { 'node' : scrollBar, 'where' : 'bottom' },
			'action' : function() { /* alert(this.retrieve('nummer', null)) */ }
		}
		
	}

	var button = function (control_settings) {
		var bttn = new Element('img');

		with (bttn) {
			setStyles(control_settings.styles);
			
			addEvents({
				'mouseover': function()	{ this.setProperty("src", control_settings.hover); clearTimer(); },
				'mouseout': function()	{
					var btnNr = this.retrieve('nummer', 'dummy');

					if (btnNr == container.getFirst("div.bildlauf_float").retrieve('nummer', null)) {
						fireEvent('mouseover');
					} else {
						this.setProperty("src", control_settings.normal);
					}
					startTimer();					
				},
				'click': control_settings.action
			});
			
			fireEvent('mouseout');

			inject(control_settings.domPos.node, control_settings.domPos.where);
		}
		
		return bttn;
	}	
	
	var initScrollbar = function () {
		scrollBar.inject(container.getParent(), 'after');
		scrollBar.setStyles({
			'position':	'relative',
			'top':		'180px',
			'left':		'75px',
			'width':	'850px',
			'text-align':	'center'
		});

		var elements = container.getChildren();
		
		for (var i=0; i<elements.length; i++) {
			elements[i].addEvents({
				'mouseover': function()	{ clearTimer(); },
				'mouseout': function()	{ startTimer(); }
			});
			elements[i].store('nummer', i);
			
			
			var bttn = button(control.scrollBar);
			bttn.store('nummer', i);
		}
		updateScrollbar();
	}
	
	var updateScrollbar = function () {
		var btns = scrollBar.getChildren();
		for (var i=0; i < btns.length; i++) {
			btns[i].fireEvent('mouseout');
		}
	}
	
	var startTimer = function() {
		intervalID = $clear(intervalID);
		intervalID = action.scrollRight.periodical(1200);
	}
	
	var clearTimer = function() {
		intervalID = $clear(intervalID);
	}
	
	var init = function() {
		container.getParent().getParent().setStyles({
			'position':	'relative'
		});

		container.getParent().setStyles({
			'width':	'900px',
			'margin-left':	'50px'
		});
	
		buttonL = button(control.buttonL);
		buttonR = button(control.buttonR);
		initScrollbar();
		startTimer();
	}
		
	init();

}
