(function($){

	var methods = {

		init: function(options) {

			return this.each(function(index, element){
				var $rotator = $(this);
				var $items = $rotator.find('div.item');
				var numItems = $rotator.find('div.item').length;
				var currentItemIndex = 0;
				
				var $btnPrev = $rotator.find('a.btnPrev')
				var $btnNext = $rotator.find('a.btnNext')

				var setCurrentItem = function(item){
					
				
					$items.removeClass('prev2 prev1 current next1 next2');
					if(item - 2 >= 0){
						$items.eq(item - 2).addClass('prev2');
					}

					if(item - 1 >= 0){
						$items.eq(item - 1).addClass('prev1');
					}

					$items.eq(item).addClass('current');
					$items.eq(item + 1).addClass('next1');
					$items.eq(item + 2).addClass('next2');
					
					$btnPrev.show()
					$btnNext.show()

					
					if(item <= 0){
						$btnPrev.hide()
					}

					if(item >= numItems-1){
						$btnNext.hide()
					}

				};

				var onBtnPrevClick = function(event){
					if(currentItemIndex > 0){
						currentItemIndex--;
						setCurrentItem(currentItemIndex);
					}

					event.stopPropagation();
					event.preventDefault();
				};

				var onBtnNextClick = function(event){
					if(currentItemIndex < numItems - 1){
						currentItemIndex++;
						setCurrentItem(currentItemIndex);
					}

					event.stopPropagation();
					event.preventDefault();
				};

/*
				if(numItems >= 3){
					currentItemIndex = 2;
				}else{
					currentItemIndex = 0;
				}
*/

				setCurrentItem(currentItemIndex);


				$btnPrev.click(onBtnPrevClick);
				$btnNext.click(onBtnNextClick);
				$rotator.find('.item').click(function(e){
					

					var i = $(this).index()
					
					
					if(i != currentItemIndex){
						e.stopImmediatePropagation();
						currentItemIndex = i;
						setCurrentItem(i)
					}
					
					e.preventDefault();					
				
				});
				
				
				$('*', $rotator).each(function(){
    	        if($.browser.mozilla){//Firefox
	                $(this).css('MozUserSelect','none');
   		         }else if($.browser.msie){//IE
	                $(this).bind('selectstart',function(){return false;});
	            }else{//Opera, etc.
    	            $(this).mousedown(function(){return false;});
        	    }
			})
				
			});

		}

	};

	$.fn.contentRotator3D = function(method) {

		if (methods[method]) {
			return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
		}else if(typeof method === 'object' || ! method){
			return methods.init.apply( this, arguments );
		}else{
			$.error('Method ' +  method + ' does not exist on jQuery.categoryChooserRotator');
		}

	};

})(jQuery);

