jQuery.initSlide = function(slider){
	var me = slider;
	var currentPosition = 0;
	var slideMarginRight = 34;
  	var slideWidth = 604;
  	var slides = $('.slide', me);
  	var numberOfSlides = slides.length;
	
	$('.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();
		currentPosition = ($(this).hasClass('rightControl')) ? currentPosition+1 : currentPosition-1;
    	manageControls(me, currentPosition, numberOfSlides);
    	$('.slidesInner', me).animate({
			'marginLeft' : (slideWidth+slideMarginRight)*(-currentPosition)
		}, {
		
				duration: 1000,
				specialEasing: {
					width: 'linear',
					height: 'easeOutBounce'
				}
		});	
	});
  	
	function manageControls(me, position, numberOfSlides){
		// 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: 1000,
				specialEasing: {
					width: 'linear',
					height: 'easeOutBounce'
				}
			});
  		});
  		
  		//alert(position +' - '+currentPosition+' - '+show_pages_html);
		
	}
		
}

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