(function($){
	
	$.planeScroller = function(el, options){
		
		var main = this;
		main.options = $.extend({},$.planeScroller.defaults, options);
		main.el = el;
		main.pos = 0;
		
		main.init = function(){
			$(main.container).before('<p class="Arrow"><a href="#" class="up"><span>up</span></a></p>').after('<p class="Arrow"><a href="#" class="down"><span>down</span></a></p>');
			main.upArrow = $(el).find("p.Arrow a.up");
			main.downArrow = $(el).find("p.Arrow a.down");
			$(main.container).height( main.elementsHeight*main.options.count -5 )
			main.maxPos = main.elementsCount - main.options.count;
			$(main.downArrow).addClass("Activ");
			$(el).find("p.Arrow a").click(function(){
				var tc = $(this).attr("class");
				if(tc.indexOf("Activ")!=-1) {
					if(tc.indexOf("up")!=-1) main.goPlane(-1);
					else if(tc.indexOf("down")!=-1) main.goPlane(1);
				}
				return false;
			});
		};
		
		main.goPlane = function(dir){
			main.pos += dir;
			if(main.pos>0 && $(main.upArrow).attr("class").indexOf("Activ")==-1) $(main.upArrow).addClass("Activ");
			else if(main.pos==0) $(main.upArrow).removeClass("Activ");
			if(main.pos<main.maxPos && $(main.upArrow).attr("class").indexOf("Activ")==-1) $(main.downArrow).addClass("Activ");
			else if(main.pos==main.maxPos) $(main.downArrow).removeClass("Activ");
			$(main.plane).stop().animate({top:(-main.elementsHeight*main.pos)},{duration:main.options.duration,easing:main.options.easing});
		};
		
		main.container = $(el).find(main.options.containerElement);
		main.plane = $(el).find(main.options.planeElement);
		main.elements = $(main.plane).find(main.options.element);
		main.elementsCount = main.elements.length;
		main.elementsHeight = $(main.elements[0]).outerHeight(true);
		
		if(main.elementsCount>main.options.count) main.init();
		else {
			var dop = 0;
			if(main.options.heightType=="hard") { 
				dop = main.options.count - main.elementsCount + 1;
				for(var i=0;i<dop;i++) main.plane.append('<li class="Empty" />');
			}
			$(main.container).height( main.elementsHeight*(main.elementsCount+dop) );
		}
	};
	
	$.planeScroller.defaults = {
		containerElement: ".container",
		planeElement: ".plane",
		element: "li",
		easing: "easeInOutQuad",
		duration: "slow",
		heightType:	"soft",
		count:	10
	};
	
	$.fn.planeScroller = function(options){
		return this.each(function(i){( new $.planeScroller(this, options) ); });
	};
	
})(jQuery);


