(function ($)
{
	$.fn.newsslider = function (options)
	{
		var obj = $( this );
		
		var defaults =
		{
			stopTime: 3000
		}
		
		var opts = $.extend(defaults, options);
		
		return this.each( function()
		{	            
			//--------------------------------------------------------------
			// init
			//--------------------------------------------------------------
			
			function init()
			{
				for(i=0; i<links.length; i++)
				{
					links[i].click(setTeaser(i));
				}
				
				startAutorotate();
				
				obj.hover(
					function()
					{
						if(intervall)
							stopAutorotate();
					},
					function()
					{
						if(!intervall)
							startAutorotate();
					}
				);
			}
			
			//--------------------------------------------------------------
			// slide teaser
			//--------------------------------------------------------------
			
			function setTeaser(i)
			{
				return function ()
				{
					setTeaser2(i)
			    }
			}
			
			function setTeaser2(i)
			{
					links[i].addClass('active');
					links[cur].removeClass('active');
					
					obj.find('.teasers').fadeTo( 200, 0, function(){setMargin(i)});
			}
			
			function setMargin(i)
			{
				obj.find('.teasers').css({ marginLeft: (-i*teaserWidth) + 'px' });
				teasers[cur].find('img').css({display: 'none'});
				teasers[i].find('img').css({display: 'block'});
				obj.find('.teasers').fadeTo( 400, 1);
				
				cur = i;
			}
			
			//--------------------------------------------------------------
			// rotation
			//--------------------------------------------------------------
			
			function startAutorotate()
			{
				intervall = setInterval(function(){rotate();}, rotateInterval);
			}
			
			function rotate()
			{
				if((cur+1) < teasers.length)
					setTeaser2(cur+1);
				else
					setTeaser2(0);
			}
			
			function stopAutorotate()
			{
				clearInterval(intervall);
				intervall = null;
			}
			
			
			//--------------------------------------------------------------
			// inital setup
			//--------------------------------------------------------------
			
			var rotateInterval = opts.stopTime;
			
			var clear = $( '<div class="clear" />' );
			var teaserWidth = 630;
			
			var teasers = new Array();
			var links = new Array();
			
			var intervall;
			
			var total = obj.find( 'li' ).length;	// total number of images
			
			// zähler & indizies
			var cur = 0;	// array index of currently displayed news-teaser
			
			// get links
			obj.find( '.slider-menu' ).children( 'a' ).each( function( i )
			{
				links[i] = $( this );
			});
			// get teasers
			obj.find( 'li' ).each( function( i )
			{
				teasers[i] = $( this );
            });
            
            init();
		});
	};
})(jQuery);