(function($) {

  
  $.fn.pureCarousel = function(options) {
	
	
	var options = $.extend({},$.fn.pureCarousel.defaults, options);
	
	
	return this.each(function() {
		  
			 var ul = $(this);
			 var li = $("li", ul);
			 var itemLength = li.size();
			 var img = $("img", li);
			 var allContent = $("h4, p, a", li);
			 var currItem = options.start;
			 var animCss = options.vertical?"top":"left";
		     var sizeCss = options.vertical?"height":"width";
			 var div = $(this).parent("div");
			 var trackingArray = new Array();
			 var sizeArray = new Array();
			 var visible = options.visible;
			 var direction = options.direction;
			 
			 var isOne = false;
			 var isTwo = false;
			 var isMore = false;
						         
			 
	         div.css({'position' : 'relative', 'z-index': '2' });
	         ul.css({'margin': '0', 'padding' : '0', 'position': 'relative', 'list-style-type': 'none', 'z-index': '1'});
	         li.css({'overflow': 'hidden', 'position' : 'absolute', 'top': '0px'});



			 // alle li's in een array plaatsen
			 li.each(function(i){
         
		 		trackingArray.push($(this));
				var thisImg = $(this).children("img");
				
				sizeArray[i] = new Array (""+thisImg.height()+"",""+thisImg.width()+"");
							                  
       		});
			 
			 
			 //de hoeveelheid li's checken
			 if(itemLength == 1){
				 isOne = true;
			     $('#previous').css({'display':'none'});
				 $('#next').css({'display':'none'});
				 li.addClass('one');				
			 }
			 
			 if(itemLength == 2){
				 isTwo = true;
				 li.addClass('two');	
				 var currItem = options.start-1;
			 }
			 
			 if(itemLength >= 3){
				 isMore = true;
				
			 }
			 
			 
			 
		
		
		
	 function Move(){
		
				   if(options.auto){
				
	
						 if (direction == "left"){
									
								
									
								setTimer =  setInterval(
											  function() {
												  moveLeft(currItem-options.amountScroll);
											  }, 4000 );
											  
							 }
							 else{
								 
								setTimer =  setInterval(
											  function() {
												  moveRight(currItem+options.amountScroll);
											  }, 4000 );
									 
							 }
							 
							  if(options.btnPrev){ 
										 
									   $(options.btnPrev).click(function() {
												
											clearInterval(setTimer);
												  moveRight(currItem+options.amountScroll);
											setTimer =  setInterval(
											  function() {
												  moveRight(currItem+options.amountScroll);
											  }, 4000 );
											
											 
									   });
						
										
							}
							  
							 if(options.btnNext){
								 
										$(options.btnNext).click(function() {
											  
											  
											clearInterval(setTimer);
											moveLeft(currItem-options.amountScroll);
										
										    setTimer =  setInterval(
											  function() {
												  moveLeft(currItem-options.amountScroll);
											  }, 4000 );
											
											   
										});
			
							 }

					}
					
					
					else{ /*not auto */
						 
								 if(options.btnPrev){ 
									 
										   $(options.btnPrev).click(function() {
															 
												 moveLeft(currItem-options.amountScroll);		 
												 
										   });
							
											
								 }
								  
								
								
								 if(options.btnNext){
									 
										$(options.btnNext).click(function() {
											  
											  moveRight(currItem+options.amountScroll);
											   
										});
										
										
								 }
						 
						}
						
					
					
					
					
					function moveLeft(to) {
						
							if(isTwo) { 
							  
																				   
									var nextItem = (currItem+1>itemLength-1) ? 0 : currItem+1 ;
								
								
									if (nextItem == 1){
										trackingArray[nextItem].animate({ left: '65px' } , options.speed, options.easing);
									}
									if (currItem == 1){
										trackingArray[currItem].animate({ left: '385px' } , options.speed, options.easing);
									}
				
								   
									scaleDown(trackingArray[currItem]);
									scaleUp(trackingArray[nextItem],sizeArray[nextItem][0],sizeArray[nextItem][1]);
												
									currItem = (to<0) ? itemLength-1  : to;
									 
							  } 
							  
							  if (isMore){
								  
								  
										var previousItem = (currItem-1<0) ? itemLength-1 : currItem-1;
										var prepreviousItem = (previousItem-1<0) ? itemLength-1 : previousItem-1;
										var nextItem = (currItem+1>itemLength-1) ? 0 : currItem+1 ;
										
										if (itemLength ==3){
											trackingArray[nextItem].css({ left: '500px' });
										}
										else{
											trackingArray[nextItem].animate({ left: '500px' } , options.speed, options.easing);
										}
										
																				   
										trackingArray[prepreviousItem].css({ left: '-120px' } );   
										trackingArray[prepreviousItem].animate({ left: '0px' } , options.speed, options.easing);
										trackingArray[previousItem].animate({ left: '65px' } , options.speed, options.easing);
										trackingArray[currItem].animate({ left: '383px' } , options.speed, options.easing);
										trackingArray[nextItem].animate({ left: '500px' } , options.speed, options.easing);
										
										trackingArray[previousItem].show();
										trackingArray[prepreviousItem].show();
									   
										scaleDown(trackingArray[currItem]);
										scaleUp(trackingArray[previousItem],sizeArray[previousItem][0],sizeArray[previousItem][1]);
													
										currItem = (to<0) ? itemLength-1  : to;

							  }
						
							
					
					}
					
					
					function moveRight(to) {
						
							if(isTwo) {
								
														
								var nextItem = (currItem+1>itemLength-1) ? 0 : currItem+1 ;
								
								
								if (nextItem == 1){
									trackingArray[nextItem].animate({ left: '65px' } , options.speed, options.easing);
								}
								if (currItem == 1){
									trackingArray[currItem].animate({ left: '385px' } , options.speed, options.easing);
								}
			
							   
								scaleDown(trackingArray[currItem]);
								scaleUp(trackingArray[nextItem],sizeArray[nextItem][0],sizeArray[nextItem][1]);
											
								currItem = (to>itemLength-1) ?  0 : to;
								
							}
							
							if (isMore){
							
											 
									var previousItem = (currItem-1<0) ? itemLength-1 : currItem-1;
									var nextItem = (currItem+1>itemLength-1) ? 0 : currItem+1 ;
									var nextnextItem = (nextItem+1>itemLength-1) ? 0 : nextItem+1 ;
									
																	
									if (itemLength ==3){
										trackingArray[previousItem].css({ left: '-120px' });
									}
									else{
										trackingArray[previousItem].animate({ left: '-120px' } , options.speed, options.easing);
									}
									   
									
									trackingArray[nextItem].animate({ left: '65px' } , options.speed, options.easing);
									trackingArray[currItem].animate({ left: '0px' } , options.speed, options.easing);
									
									trackingArray[nextnextItem].css({ left: '500px' } );
									trackingArray[nextnextItem].animate({ left: '383px' } , options.speed, options.easing);
									
									trackingArray[nextItem].show();
									trackingArray[nextnextItem].show();
								   
									scaleDown(trackingArray[currItem]);
									scaleUp(trackingArray[nextItem],sizeArray[nextItem][0],sizeArray[nextItem][1]);
												
									currItem = (to>itemLength-1) ?  0 : to;
							 
								
								}
						
					
					}
					
					 if(options.btnNext){
									 		
							$(options.btnNext).mouseover(function(){
																   
								$(this).css({'cursor' :'pointer'});
								
							});  
					     }
					   
					    if(options.btnPrev){ 
									 
								 
					
							$(options.btnPrev).mouseover(function(){
							
								$(this).css({'cursor' :'pointer'});
								
							});
						 }
		
	 }
		
			 
	 function scaleUp (to,imgHeight,imgWidth) {  
	      
		to.css({'z-index' : '5'}); 
        //to.find("h4, p, a").css({'visibility': 'visible'}).animate( {opacity: 1 },1500);
		to.find("h4, p, a").css({'visibility': 'visible'}).show();
		to.find("img").animate( {height:imgHeight,width:imgWidth,opacity:1},'slow');
		
		
		       
      };
      
      function scaleDown (to) {      
	  
        //to.find("h4, p, a").css({'visibility': 'visible','z-index' : '1'}).animate( {opacity: 0 },200);
		to.find("h4, p, a").css({'visibility': 'visible','z-index' : '1'}).hide();
        to.find("img").animate( {height:"90",width:"63",opacity:0.7},'slow');
		
      };
			
			
			
			
			
  
      function init(){
		  
		
		  
		  if(isTwo){
			
				allContent.css({'visibility' : 'hidden'});
				img.css({'visibility' : 'hidden'});
			
			
				$(img).delay(900, function(){					
						
						$(this).css({'visibility' : 'visible'});					
																
				});
	
				
				// eerste item
				trackingArray[0].show();
				
				$(trackingArray[0]).delay(810, function(){
						
					$(this).find("h4, p, a").css({'visibility': 'visible'}).animate( {opacity: 1 });
						
								
				});
							
				
				//tweede item
				
				trackingArray[1].show();
				trackingArray[1].css({'left': '383px' , 'z-index' : '1'}); 
				scaleDown(trackingArray[1]);
	
		  }
		  // end if(isTwo)
		  
		  if(isMore){
			
				li.css({'left' : '-100px'});
                allContent.css({'visibility' : 'hidden'});
				img.css({'visibility' : 'hidden'});
                img.animate({ height:"90",width:"63",opacity:0.7 });
          
		  		li.css({'visibility' : 'visible'});
                trackingArray[options.start-1].show();
  			    trackingArray[options.start].show();
  		        trackingArray[options.start+1].show();
         			    
			    trackingArray[options.start].find("h4, p, a").animate( {opacity: 1 });
			    trackingArray[options.start].find("img").animate( {height :""+sizeArray[options.start][0]+"",width :""+sizeArray[options.start][1]+""} );
			    trackingArray[options.start].find("img").animate( {opacity :1} );
			    
  	   		    trackingArray[options.start-1].css({'left': '0px', 'z-index' : '1' });
  			    trackingArray[options.start].css({'left': '65px', 'z-index' : '5' });
  		        trackingArray[options.start+1].css({'left': '383px' , 'z-index' : '1'}); 
				
				//img.reflect({height: 0.2, opacity: 0.3}); // het reflecten scaled niet mee
				

				$(trackingArray[options.start]).delay(810, function(){
				
				
				
					$(this).find("h4, p, a").css({'visibility': 'visible'}).animate( {opacity: 1 });
					
							
				});
				
				
				
				
				$(img).delay(900, function(){					
					
					$(this).css({'visibility' : 'visible'});					
															
				});
			
		  }
		  
		  
		  
		  li.css({'visibility' : 'visible'});
		  Move();
		  		  		          
        
      };
	  
	  

			
	  init();	
	  
      
      			  
	});
	 
  };
 
  
  $.fn.pureCarousel.defaults = {

	visible: 3,
	start:1,
	speed:500,
	reflection:false,
	opacity:60,
	scale:60,
	vertical: false,
	circular: true,
	btnPrev: null,
    btnNext: null,
	amountScroll:1,
	easing:null,
	auto: true,
	direction: "right"

  };



  
 

})(jQuery);



