// JavaScript Document
/*
	Author: 		Kurt Kellens
	Company: 		DataCross
	Date: 			2009-12-27
	
	Description:	jQuery carousel animation function.
	Based on: 		jQuery 1.3.1
*/

(function($){
	$.fn.datacross_Carousel = function(options){  
		//Default values:
		var defaults = {  
		   	startItem: 1,  
		   	autoplay:true,
			timeout:4000,
			pagingClass:'nav'
		};  
			
		var options = $.extend(defaults, options); 
			
		return this.each(function(){  
	   		obj = $(this);
			var maxitems = $("ul",obj).children().length;
			var timer = 0;
			options.startItem = options.startItem>maxitems?1:options.startItem;
			
			var markNav = function(nr){
				$("." + options.pagingClass + " a",obj).removeClass("active");
				$("." + options.pagingClass + ' a[id="n' + nr + '"]',obj).addClass("active");
			}
			
			//Creating navigation
			if(maxitems > 1){
				var nav = $(document.createElement("ul")).attr("class",options.pagingClass);
				for(i=0;i<maxitems;i++){
					var a = $(document.createElement("a")).attr("href","").attr("id","n"+(i+1)).append(i+1);
					a.click(
						function(e){
							options.startItem = parseInt($(this).html());
							moveslide(options.startItem);
							e.preventDefault();
						}
					);
					nav.append( $(document.createElement("li")).append(a));
				}
				obj.append(nav);
			}
			
			markNav(options.startItem);	
			
			var startx = function(){
				timer = setTimeout(
					function(){
						if(options.autoplay==true){
							if(options.startItem == maxitems)
								options.startItem = 1;
							else
								options.startItem+=1;
							
							moveslide(options.startItem);
							startx();
						}
				  	}
			,options.timeout); 
			}
					
			var setAutoplay = function(blnStatus){
				options.autoplay = blnStatus;
			}
			
			
			
			var moveslide = function(moveto){
				//huidge positie berekenen:
				var left = parseFloat($("ul:first",obj).css("left"));
				var imgWidth = parseFloat($("ul:first li",obj).css("width"));
				var currentPosition = ( Math.round(left/imgWidth) * (-1) ) +1;
				var newLeft = ((currentPosition - (parseFloat(moveto))) * imgWidth) + left;
				markNav(moveto);
				$("ul:first",obj).animate({left: newLeft},300,"swing");
			}
			startx();
			$(obj).hover(
				function(){
					clearTimeout(timer);
					setAutoplay(false);
				},
				function(){
					setAutoplay(true);
					startx();
				}
			);	
		});  
	}; 
})(jQuery);
