(function($){
	
	$.slidEater = function(el, options){
		
		var main = this;
		main.options = $.extend({},$.slidEater.defaults, options);
		main.el = el;
		main.pages = $(el).find("."+main.options.pagesCls);
		main.type = (main.options.type=="verical"?true:false);
		main.tabsX = new Array();
		main.tabsY = new Array();
		main.stepX = main.stepY = main.offsetX = main.offsetY = 0;
		main.activTab = main.options.startPage - 1;
		if(main.options.hash) {
			var loc = window.location.hash;
			var pos = loc.indexOf("#"+main.options.hash,0);
			if(pos>-1) {
				var index = parseInt(loc.substr(main.options.hash.length+1,(main.options.hash.length)));
				if(!isNaN(index)&&index>0) main.activTab = index-1;
			}
			main.lastHash = '';
			function pollHash() {
				var loc = window.location.hash;
				if(main.lastHash!==loc) {
			   	main.lastHash = loc;
					if(loc.indexOf("#"+main.options.hash,0)>-1) main.Clicked((parseInt(loc.substr(main.options.hash.length+1,(main.options.hash.length)))-1));
				}
			}
			setInterval(pollHash, 100);
		} 
		if(main.activTab>(main.pages.length-1)) main.activTab = main.pages.length-1;
		
		$(main.el).find("."+main.options.pagesCls).each(function(i,page){
			$(page).css({"z-index":(main.options.startZindex+i)})
			var header = $(page).children("."+main.options.headerCls);
			$(header).hover( function () { $(this).addClass(main.options.hoverCls); }, function () { $(this).removeClass(main.options.hoverCls); } );
			if(!i) {
				if(main.type) main.offsetX = $(page).children("."+main.options.contentCls).innerWidth();
				else main.offsetY = $(page).children("."+main.options.contentCls).innerHeight();
			}else if(i<=main.activTab) $(page).css({"left":(main.stepX),"top":(main.stepY)});
			else $(page).css({"left":(main.stepX+main.offsetX),"top":(main.stepY+main.offsetY)});
			
			if(i==main.activTab) $(page).addClass(main.options.activCls);
			
			if(main.type) {
				main.tabsX[i] = main.stepX;
				main.tabsY[i] = 0;
				main.stepX += $(header).width();
			}else{
				main.tabsX[i] = 0;
				main.tabsY[i] = main.stepY;
				main.stepY += $(header).height();
			}
			
			$(page).children("."+main.options.headerCls).click(function(){ 
				main.Clicked(i);
				if(main.options.hash) window.location.hash = main.options.hash+(i+1);
			});
			
			main.Clicked = function(i){
				$(el).find("."+main.options.activCls).removeClass(main.options.activCls);
				var st = Math.min(main.activTab,i);
				var en = Math.max(main.activTab,i);
				var actOffsetX = (main.activTab>i?main.offsetX:0);
				var actOffsetY = (main.activTab>i?main.offsetY:0);
				for(st++;st<=en;st++) $(main.pages[st]).stop().animate({left:(main.tabsX[st]+actOffsetX),top:(main.tabsY[st]+actOffsetY)},{duration:main.options.duration,easing:main.options.easing});
				main.activTab = i;
				$(main.pages[i]).addClass(main.options.activCls);
			};
		
			
		});
		
	};
	
	$.slidEater.defaults = {
   	easing: "easeInOutQuad",
		duration: "slow",
		pagesCls: "slidePage",
		headerCls: "slideHeader",
		contentCls: "slideContent",
		hoverCls: "hover",
		activCls: "activ",
		type: "verical",
		startZindex: 100,
		hash: false,
		startPage: 1
	};
	
	$.fn.slidEater = function(options){
		return this.each(function(i){( new $.slidEater(this, options) ); });
	};
	
})(jQuery);


