


jQuery.fn.extend({
	scaSlideshow: function(pageClass, options) {
		if(jQuery(this).find(pageClass).length<2) return false;
		return this.each(function(i){
			jQuery.scaSlideshow.initCarousel($(this), pageClass,i, options);
		});
	}
});



jQuery.extend({
	scaSlideshow: {


		initCarousel:function(baseContainer, pageClass,i, options){					
			var page = $($(pageClass)[0]);

			numberOfPages = baseContainer.find(pageClass).length;
			options.pageClass = pageClass;

			newsContainer = $('<div class="newsContainer" id="container'+i+'"></div>');
			baseContainer.append(newsContainer);
			baseContainer.find(pageClass).appendTo(newsContainer);

			newsContainer.width(numberOfPages*page.outerWidth());

			var j=0;
			baseContainer.find(pageClass).each(function(){
				$(this).css('left', j*page.outerWidth() + j* options.rightMargin);
				j++;
			});

		
			var navMenu ='';
			navMenu +='<div class="headHoverZone">';
			navMenu += 		'<div class="scaSlideshowMenu">';
			navMenu +=	 		'<span class="slideShowPageTitle"></span>';
			navMenu +=			'<a class="prevNewBtn"></a>';
			if(options.playPauseBtn){
				if(options.startPlaying){
					navMenu +=			'<a class="playPause playing"></a>';
				}
				else{
					navMenu +=			'<a class="playPause"></a>';
				}
			}
			navMenu +=			'<a class="nextNewBtn"></a>';
			navMenu +=	 		'<div class="scaTranslucideBG"></div>';
			navMenu +=		'</div>';
			navMenu +=	'</div>';
			baseContainer.append($(navMenu));

			jQuery.scaSlideshow.addBtnEvents(baseContainer, options);

			if(options.startPlaying) {jQuery.scaSlideshow.playMove(newsContainer, options);}

			baseContainer.find('.slideShowPageTitle').text(baseContainer.find(pageClass+":first-child").attr('title'));

			if(options.startWithButtons) {$('.scaSlideshowMenu').animate({'top': '0px'}, options.easingButtonsTime);}
			else  $('.scaSlideshowMenu').animate({'top': -($('.scaSlideshowMenu').height())}, options.easingButtonsTime);

			// $('.headHoverZone').hover(
			// 	function(){
			// 		$(this).find('div').animate({'top': '0px'}, options.easingButtonsTime)
			// 	},
			// 	function(){
			// 		if(!options.alwaysShowButtons){
			// 			$(this).find('div').animate({'top': '-34px'}, options.easingButtonsTime)}
			// 	}
			// );
		},






		goToPrevious: function(obj, options) {
			pageClass =options.pageClass;

			
			var actualPageTitle = obj.parent().find(".slideShowPageTitle").text();
			if (obj.find('div[title='+actualPageTitle+']').prev().length >=1) 
			{
				nextPagetitle = obj.find('div[title='+actualPageTitle+']').prev().attr('title');
			}
			else 
			{
				nextPagetitle = obj.parent().find(jQuery.scaSlideshow.pageClass+":last-child").attr('title');
			}

			var left = jQuery.scaSlideshow.getMultipleLeplusproche(Math.floor(obj.position().left), obj.find(pageClass).outerWidth());

			if(left < 0){ 
				obj.parent().find('.nextNewBtn').removeClass('disabled');

				if(left+obj.find(pageClass).outerWidth()==0 && !options.loop) {
					obj.parent().find('.prevNewBtn').addClass('disabled');}
				else {
					obj.parent().find('.prevNewBtn').removeClass('disabled');
					}

				jQuery.scaSlideshow.removeBtnEvents(obj.parent());
				obj.parent().find('.slideShowPageTitle').text(nextPagetitle);
				obj.animate({'left':left + obj.find(pageClass).outerWidth() + options.rightMargin},options.easingPageTime,function(){
					jQuery.scaSlideshow.addBtnEvents(obj.parent(), options);
				});
			}else{ 
				if(options.loop){
					jQuery.scaSlideshow.removeBtnEvents(obj.parent());
					obj.parent().find('.slideShowPageTitle').text(nextPagetitle);
					obj.animate({"left":  -(obj.find(pageClass).length-1)*obj.find(pageClass).outerWidth() -(options.rightMargin*(obj.find(pageClass).length-1)) }, options.easingPageTime,function(){
						jQuery.scaSlideshow.addBtnEvents(obj.parent(), options);
					});
				}
			}
		},







		gotoNext: function(obj, options) {
			pageClass = options.pageClass;		

			
			var actualPageTitle = obj.parent().find(".slideShowPageTitle").text();
			
			if (obj.find('div[title='+actualPageTitle+']').next().length >=1) 	{nextPagetitle = obj.find('div[title='+actualPageTitle+']').next().attr('title');}
			else 																{nextPagetitle = obj.parent().find(pageClass+":first-child").attr('title');}


			var left = jQuery.scaSlideshow.getMultipleLeplusproche(Math.floor(obj.position().left), obj.find(pageClass).outerWidth());

			if(left  > -(obj.find(pageClass).length-1)*obj.find(pageClass).outerWidth()){ 
								
				obj.parent().find('.prevNewBtn').removeClass('disabled');
				if(left-obj.find(pageClass).outerWidth() == -(obj.find(pageClass).length-1)*obj.find(pageClass).outerWidth() 
					&& !options.loop) {
					obj.parent().find('.nextNewBtn').addClass('disabled');
				}else  {
					obj.parent().find('.nextNewBtn').removeClass('disabled');
				}

				jQuery.scaSlideshow.removeBtnEvents(obj.parent());	
				obj.parent().find('.slideShowPageTitle').text(nextPagetitle);

				left = left - obj.find(pageClass).outerWidth() - options.rightMargin;
				left = jQuery.scaSlideshow.getMultipleLeplusproche(left,980);
				
				obj.animate({'left':left},options.easingPageTime, function(){
					jQuery.scaSlideshow.addBtnEvents(obj.parent(), options);
				});

			}else{ 
				if(options.loop){
					jQuery.scaSlideshow.removeBtnEvents(obj.parent());	
					obj.parent().find('.slideShowPageTitle').text(nextPagetitle);
					obj.animate({"left":0},options.easingPageTime,function(){
						jQuery.scaSlideshow.addBtnEvents(obj.parent(), options);
					});	
				}
			}
		},



		getMultipleLeplusproche : function(x,y){
			return y*Math.floor((x+y/2)/y) 
		},
		stopMove: function(obj) {
			obj = obj.parent().parent().parent();
			obj.find('.playPause').removeClass('playing');
			obj.find('.newsContainer').stopTime();
		},
		playMove: function(obj, options) {
			obj.parent().find('.playPause').addClass('playing');
			obj.everyTime(options.pageShowDuration, function() { 
				jQuery.scaSlideshow.gotoNext($(this), options);
			});
		},
		addBtnEvents:function(baseContainer, options){		
			baseContainer.find('.playPause').click(function(){
				if($(this).hasClass('playing')) jQuery.scaSlideshow.stopMove($(this));
				else jQuery.scaSlideshow.playMove($(this).parent().parent().parent().find('.newsContainer'), options);
			});

			baseContainer.find('.nextNewBtn').click(function(e){
				jQuery.scaSlideshow.gotoNext($(this).parent().parent().parent().find('.newsContainer'), options);
				jQuery.scaSlideshow.stopMove($(this));
			});
			baseContainer.find('.prevNewBtn').click(function(e){
				jQuery.scaSlideshow.goToPrevious($(this).parent().parent().parent().find('.newsContainer'), options);
				jQuery.scaSlideshow.stopMove($(this));
			});
		},
		removeBtnEvents:function(baseContainer){
			baseContainer.find('.playPause').unbind('click');
			baseContainer.find('.nextNewBtn').unbind('click');
			baseContainer.find('.prevNewBtn').unbind('click');
		}
	}
});

