// AdSlider 1.0 jQuery Plugin
// 16/10/2009

(function($){
	$.fn.AdSlide = function(options) {
		
		var
		  defaults = {
			visible:5,
			step:5,
			controls_in:'.controls',
			pages_in:'.position',
			slidespeed:300
		  },
		  settings = $.extend({}, defaults, options);
		  
		  this.each(function() {

			var $this = $(this).find('ul');
			var start=0;
			var mar = 0;
			var li_count = $this.find('li').length;
			var li_width = $this.find('li').outerWidth()*1 + $this.find('li').css('margin-right').split('px')[0]*1 + $this.find('li').css('margin-left').split('px')[0]*1;
			var end = -(li_count - settings.visible)*li_width;
			var next = $(this).find(settings.controls_in).find('.next');
			var prev = $(this).find(settings.controls_in).find('.prev');
			
			
			function move(cor) {
				var numpage = (cor / ((-li_width)*settings.step));
				
				$this.stop().animate({left:cor}, settings.slidespeed , function(){start = mar; pagelinks.removeClass('current'); pagelinks.eq(numpage).addClass('current');});
			}
			
			/* PAGES
			-----------------------------------------------*/
			var pages = Math.ceil(li_count/settings.visible);
			$(this).find(settings.pages_in).empty();
			for (var i=0; i<pages; i++) {
				$('<a href="slide'+i+'"></a>').appendTo($(this).find(settings.pages_in));
			}
			var pagelinks = $(this).find(settings.pages_in).find('a');
			pagelinks.eq(0).addClass('current');
			pagelinks.click(function(e){
				e.preventDefault();
				var numpage = $(this).attr('href').split('slide')[1];
				mar=(-li_width)*settings.step*numpage*1;
				move(mar);
			});
			
			//console.log('li_count='+li_count+' | '+
			//			  'li_width='+li_width+' | '+
			//			  'end='+end+' | '
			//			);

			
			if($this.is('ul') && li_count !== 0 && next.length !== 0 && prev.length !== 0) {
				
				next.click(function(e){
						e.preventDefault();
						if ($this.css('left').split('px')[0]>end) {mar=start+(-li_width)*settings.step;} else {mar = 0;}
						move(mar);
				});
			
				prev.click(function(e){
						e.preventDefault();
						if ($this.css('left').split('px')[0]<0) {mar=start+li_width*settings.step;} else {mar = end;}
						move(mar);
				});				
			}
		  });
		  // returns the jQuery object to allow for chainability.
		  return this;
	};
})(jQuery);
