jQuery.initSlide = function(slider,sWidth,sMarginRight,sDuration){
	var me = slider;
	var currentPosition = 0;
	var slideMarginRight = sMarginRight;
  	var slideWidth = sWidth;
  	var slideDuration = sDuration;
  	var slides = $('.slide', me);
  	var numberOfSlides = slides.length;
  	
  	var naviLoop = false; // true: Controller scrollen Content ans Ende
  	var inactiveController = true;
	
	$('.slidesContainer', me).css('overflow', 'hidden');
	$('.slidePager', me).show();
	
	slides.css({
		'float' : 'left',
		'width' : slideWidth,
		'marginRight': slideMarginRight
    });
    
    $('.slidesInner', me).css('width', (slideWidth+slideMarginRight) * numberOfSlides);
    
    manageControls(me, currentPosition, numberOfSlides);
    
    // Vor und Zurück
  	$('.control', me).bind('click', function(event){
    	event.preventDefault();
		var doAction = true;
		
		if(naviLoop==true){
			slideDuration = sDuration;
			slideAllDuration = (numberOfSlides/2)*sDuration;
			if(slideAllDuration<sDuration) slideAllDuration=sDuration;
			if(currentPosition==0){ 
				if($(this).hasClass('rightControl')){
					currentPosition = currentPosition+1;
				}else{
					currentPosition = numberOfSlides-1;
					slideDuration = slideAllDuration;
				}
			} 
			else if(currentPosition==numberOfSlides-1){ 
				if($(this).hasClass('rightControl')){
					currentPosition = 0;
					slideDuration = slideAllDuration;
				}else{
					currentPosition =currentPosition-1;
				}
			}else { currentPosition = ($(this).hasClass('rightControl')) ? currentPosition+1 : currentPosition-1;  }
		}else{
			if(inactiveController==true){
				if(currentPosition==0 && $(this).hasClass('leftControl')){ doAction = false; }
				else if(currentPosition==numberOfSlides-1 && $(this).hasClass('rightControl')){ doAction = false; }
				else{ currentPosition = ($(this).hasClass('rightControl')) ? currentPosition+1 : currentPosition-1; }
			}else{
				currentPosition = ($(this).hasClass('rightControl')) ? currentPosition+1 : currentPosition-1;
			}
		}
    	manageControls(me, currentPosition, numberOfSlides);
    
    	if(doAction == true){
    		$('.slidesInner', me).animate({
				'marginLeft' : (slideWidth+slideMarginRight)*(-currentPosition)
			}, {
		
					duration: slideDuration,
					specialEasing: {
						width: 'linear',
						height: 'easeOutBounce'
					}
			});	
		}
	});
  	
	function manageControls(me, position, numberOfSlides){

		if(naviLoop==true){
			$('.leftControl', me).css('visibility','visible');
			$('.rightControl', me).css('visibility','visible');
		}else{
			if(inactiveController==true){
				$('.leftControl', me).removeClass('deactive');
				$('.rightControl', me).removeClass('deactive');
				// Hide left arrow if position is first slide
				if(position==0){ $('.leftControl', me).css('opacity','0.3'); $('.leftControl', me).addClass('deactive'); } else{ $('.leftControl', me).css('opacity','1.0') }
				// Hide right arrow if position is last slide
				if(position==numberOfSlides-1){ $('.rightControl', me).css('opacity','0.3'); $('.leftControl', me).addClass('deactive'); } else{ $('.rightControl', me).css('opacity','1.0') }
			}else{
				// Hide left arrow if position is first slide
				if(position==0){ $('.leftControl', me).css('visibility','hidden') } else{ $('.leftControl', me).css('visibility','visible') }
				// Hide right arrow if position is last slide
				if(position==numberOfSlides-1){ $('.rightControl', me).css('visibility','hidden') } else{ $('.rightControl', me).css('visibility','visible') }
			}
		}
		
		
		
			// slidePager
			var show_pages_html = '';
		
		
			// Seitenspektrum berechnen
			var page_block = 3;
			var seiten_anzahl = position+1;
			var show_pages = numberOfSlides; // gezeigte Seiten
			if	(show_pages > page_block) show_pages = page_block;
			var page_block_start = Math.floor(seiten_anzahl - (Math.ceil(page_block/2) - 1));
			if (page_block_start < 1) page_block_start = 1;
			if (page_block_start + (show_pages - 1) > numberOfSlides) page_block_start = numberOfSlides - (show_pages - 1);
						
			show_pages_html = (page_block_start > 1) ? ' … ':'';
						
			var page_count = 0;
			for(i=page_block_start; i<page_block_start+show_pages; i++) {
				page_count++;
				if(seiten_anzahl==i) show_pages_html += '<b>'+i+'<\/b>';
				if(seiten_anzahl!=i) show_pages_html += '<a href="#">'+i+'<\/a>';
				if(page_count<show_pages) show_pages_html += ' · ';				
			}
			show_pages_html += (page_block_start + (show_pages - 1) < numberOfSlides) ? ' … ':'';
		
		
			$('.slidePager span.box-pager-text a', me).unbind('click');
			$('.slidePager span.box-pager-text', me).html(show_pages_html);
		
			$('.slidePager span.box-pager-text a', me).bind('click', function(event){
    			event.preventDefault();
				currentPosition = $(this).text()-1;
    			manageControls(me, currentPosition, numberOfSlides);
    			$('.slidesInner', me).animate({
					'marginLeft' : (slideWidth+slideMarginRight)*(-currentPosition)
					}, {
		
					duration: slideDuration,
					specialEasing: {
						width: 'linear',
						height: 'easeOutBounce'
					}
				});
  			});
  		}
  		//alert(position +' - '+currentPosition+' - '+show_pages_html);
		
		
}

jQuery.fn.initSlide = function(sWidth,sMarginRigh,sDuration) {
	this.each(function() {
		var slider = this;
		new jQuery.initSlide(slider,sWidth,sMarginRigh,sDuration);
	});
	// Don't break the chain
	return this;
}
