 /*!
 * ContentSlider
 * Version 1.0
 *
 * Copyright 2010 Robert Winter
 * Licensed under GPL version 3
 * http://www.gnu.org/licenses/gpl.txt
 *
 * Plugin written by Robert Winter
 * for use with the jQuery JavaScript Framework
 * http://www.jquery.com
 *
 */
 
(function($) {
	$.fn.contentSlider = function (options) {
		options = $.extend({}, $.fn.contentSlider.defaults, options || {});
		
		return $(this).each(function () {
		
			var data = {
				items:						[],	
				changeDirection:  false
			}
			
			if(options.markup != '')
			{
				addMarkup();
			}
			
			initPanels();
			if(options.idStatus != '')
			{
				setStatus(0); //optional
			}
			
			function setStatus(active) //optional
			{
				if(active != 0)
				{
					active = options.panels - active;
				}
				$('#'+options.idStatus).empty();
				if(options.idStatus != '')
				{
					for(i=0;i<options.panels;i++)
					{
						if(i == active) { styleActive = ' background-color:#941100; '; } else { styleActive = ' background-color:white; '; }
						$('#'+options.idStatus).append('<div class="statusdots dot-'+i+'" style="float:left; width:5px; height:5px; margin-right:4px; '+styleActive+'"></div>');
					}
				}
			}
			
			function initPanels()
			{
				data.changeDirection = false;
				for(i=0; i < options.panels; i++){ 
				$('#'+options.panelName+'-'+i).css({'position': 'absolute',
																		 				'left': 		'-'+(i * options.panelWidth)+'px',
																					 	'height': 	'100%',
																	 					'width': 		'100%'
																						});
				}
			}
			
			function addMarkup()
			{
				$('#products img').each(function(index) {
          $(this).wrap('<div id="'+options.panelName+'-'+index+'"></div>');
          $(this).wrap('<div class="center"></div>');
          $('#'+options.panelName+'-'+index).prepend('<div class="description">'+arr_description[index]+'</div>');
       });
			}
			
			function fillNormal()
			{
				for(i = 0; i < options.panels; i++) {
					data.items[i] = i;
				}
			}
			
			function fillReverse(){
				j = (options.panels - 1);
				for (i = 0; i < options.panels; i++) {
					data.items[i] = j;
					j--;
				}
			}
			
			function rotateLeft()
			{
				var val = data.items[data.items.length-1];
				data.items.pop();
				data.items.unshift(val);
			}
			
			function rotateRight()
			{
				var val = data.items[0];
				data.items.shift();
				data.items.push(val);	
			}
			
			function swapRight() 
			{
				fillNormal();
				rotateRight();
	
				for (i = 0; i < options.panels; i++) {
					if ($('#' + options.panelName + '-' + i).css('left') == (((options.panels - 1) * options.panelWidth) + 'px')) {
						if (i > 0) {
							for (z = 0; z < i; z++) {
								rotateLeft();
							}
						}
						for (j = 0; j < options.panels; j++) {
							$('#'+options.panelName + '-' + j).css('left',('-' + (data.items[j] * options.panelWidth) + 'px'));
						}
					}
				}
			}
			
			function swapLeft() 
			{
				fillReverse();		// Bsp. 1 0 3 2  - Initialstellung für Bildid 0
				rotateLeft();		//		2 1 0 3
				rotateLeft();		// 		3 2 1 0
						//		0 3 2 1
					
				for (i = 0; i < options.panels; i++) {
					if ($('#'+options.panelName+'-'+i).css('left') == (-((options.panels-1) * options.panelWidth) + 'px')) {
						if(i > 0) {
							for(z = 0; z < i; z++) {
								rotateLeft();
							}	
						}
						for (j = 0; j < options.panels; j++) {
							$('#'+options.panelName + '-' + j).css('left',((data.items[j] * options.panelWidth) + 'px'));
						}
					}
				}
			}
			
			function MoveRight() {
				fillReverse();
				rotateLeft();
				$('#logo').css('display','none');
				$('#panel-0').css('height' ,'363px');
				$('#panel-0').css('border-top' ,'1px solid #FFFFFF');
				$('#panel-0').css('border-bottom' ,'1px solid #FFFFFF');
				
				is_null = 0;
				for(i = 0; i < options.panels; i++) {
					if(($('#'+options.panelName+'-'+i).css('left') != '0px') && ($('#'+options.panelName+'-'+i).css('left') != '-0px')) {
						is_null++;
					}	
				}
				if(is_null == (options.panels)) { return false; }
    		
    		if(data.changeDirection == false) {
    			data.changeDirection = true;
				
					for (i = 0; i < options.panels; i++) {
						if ($('#'+options.panelName+'-'+i).css('left') == '0px') {
							if(i > 0) {
								for(z = 0; z < i; z++) {
									rotateLeft();
								}	
							}
							for(j = 0; j < options.panels; j++) {
								$('#'+options.panelName+'-'+j).css('left', ((data.items[j]*options.panelWidth) + 'px')); 
							}
						}
					}
     		}
     		swapLeft();	
   
   			for(i = 0; i<options.panels; i++) {
					if($('#'+options.panelName+'-'+i).css('left') == ((1*options.panelWidth) + 'px')) {
						active = i;	
					}	
		 		}
     			
	 			for(i = 0; i < options.panels; i++) {
					$('#'+options.panelName+'-'+i).animate({'left':'-='+options.panelWidth}, {queue:false, duration:options.duration, easing: options.easing});
				}
				if(options.idstatus != '')
				{
					setStatus(active);
				}
				$('#rightlink').css('display','none');
				
				window.setTimeout("$('#logo').fadeIn(3500)", 3500);
				window.setTimeout("$('#right').css('z-index', '1000')", 3000);
				window.setTimeout("$('#wrapper').css('z-index', '-10')", 3000);
				window.setTimeout("$('#products').css('z-index', '-10')", 3000); 			}

      $('#'+options.idRight).click(function () {
      	MoveRight();
      	return false;
      });
		});
	}
	
	$.fn.contentSlider.defaults = {
		panels: 		0,
		panelWidth:	0,
		panelName:	'',
		easing:			'',
		duration:		1000,
		idLeft:			'moveleft',
		idRight:		'moveright',
		idstatus:		'',
		markup:			'' 	
	}
})(jQuery);

