

(function($){
	jQuery.fn.conveyor = function(){
		return this.each(function(){
			refresh_buttons($(this).find('ul'));
			
			$(".back_btn",this).click(function(){
				var list = $(this).siblings('.container').find('ul');
				list.animate({left: getAmount(list,'left')}, '1500', function(){refresh_buttons($(this));});
			});
			$(".next_btn",this).click(function(){
				var list = $(this).siblings('.container').find('ul');
				list.animate({left: getAmount(list,'right')}, '1500', function(){refresh_buttons($(this));});			
			});	
			$('li', this).click(function(){
				var li = $(this);
				li.addClass('sel').siblings('li').removeClass('sel');
				var targ = li.parents('.conveyor').attr('target');
				$('#'+targ).val(li.attr('id'));
				$('#img_'+targ).show().attr('src', li.children('img').attr('src'));
			}).hover(function(){
				$(this).parents('.conveyor').find('.caption').html($('span', this).html());
			}, function(){
				$(this).parents('.conveyor').find('.caption').html('');
			});
		});
	}
	
	var getAmount = function(list, dir){
			var listWidth = list.find('li').length * 128;
			var tempLeft = list.css('left');
			var listLeft = tempLeft == 'auto' || !tempLeft ? 0 : new Number(tempLeft.split('px')[0]);
			
			switch(dir){
				case 'left':
					if(listLeft >= 0){
						return 0;
					} else {
						return listLeft + 128;
					}
					break;
				case 'right':
					if(Math.abs(listLeft) >= listWidth - 384){
						return listLeft;
					} else {
						return listLeft - 128;
					}
					break;
				default:
					break;
			}
		}
	
	var refresh_buttons = function(list){
		var listWidth = list.find('li').length * 128;
		var tempLeft = list.css('left');
		var listLeft = tempLeft == 'auto' ? '0' : new Number(tempLeft.split('px')[0]);
		var back = list.parents('.container').siblings('.back_btn');
		var next = list.parents('.container').siblings('.next_btn');
		if(listLeft >= 0){
			back.hide();
		} else {
			back.show();
		}
		if(Math.abs(listLeft) >= listWidth - 384){
			next.hide();
		} else {
			next.show();
		}
	}
})(jQuery);


