// JavaScript Document
(function($){
		  $.fn.jCarouselLite=function(o){o=
		  $.extend({
				   btnPrev:null,
				   btnNext:null,
				   btnGo:null,
				   mouseWheel:false,
				   auto:null,
				   speed:200,
				   easing:null,
				   vertical:false,
				   circular:true,
				   visible:3,
				   start:0,
				   scroll:1,
				   beforeStart:null,
				   afterEnd:null
				   },o||{});
		  return this.each(function(){
									var running=false, animCss=o.vertical?"top":"left", sizeCss=o.vertical?"height":"width";
									var div=$(this), ul=$("ul",div), tLi=$("li",ul), tl=tLi.size(), v=o.visible;
									
									if(o.circular){
										ul.prepend(tLi.slice(tl-v-1).clone())
										.append(tLi.slice(0,v-1).clone());
										o.start+=v+1;
										}
										
										var li=$("li",ul), itemLength=li.size(), curr=o.start;
										div.css("visibility","visible");
										
							li.css("overflow","hidden").css("float",o.vertical?"none":"left").children().css("overflow","hidden");
							ul.css("margin","0").css("padding","0").css("position","relative").css("list-style-type","none").css("z-index","1");
							div.css("overflow","hidden").css("position","relative").css("z-index","2").css("left","0px");
										
										var liSize=o.vertical?height(li):width(li);
										var ulSize=liSize*itemLength;
										var divSize=liSize*v;
										
										li.css("width",li.width()).css("height",li.height());
										ul.css(sizeCss,ulSize+"px").css(animCss,-(curr*liSize));
										div.css(sizeCss,divSize+"px");
										
										if(o.btnPrev)
										$(o.btnPrev).click(function(){
																	return go(curr-o.scroll)
																	});
										if(o.btnNext)
										$(o.btnNext).click(function(){
																	return go(curr+o.scroll)
																	});
										if(o.btnGo)
										$.each(o.btnGo,function(i,val){
																$(val).click(function(){
																	return go(o.circular?o.visible+i:i)
																	});
																});
										if(o.mouseWheel&&div.mousewheel)
										div.mousewheel(function(e,d){
																return d>0?go(curr-o.scroll):go(curr+o.scroll);
																});
										if(o.auto)
										setInterval(function(){
															 go(curr+o.scroll);
															 },o.auto+o.speed);
										
										function vis(){
											return li.slice(curr-1).slice(0,v-1);
											};
										
										function go(to){
											if(!running){
												if(o.beforeStart)
												o.beforeStart.call(this,vis());
												
												if(o.circular){
													if(to<=o.start-v-1){
														ul.css(animCss,-((itemLength-(v*2))*liSize)+"px");
														curr=to==o.start-v-1?itemLength-(v*2)-1:itemLength-(v*2)-o.scroll;
													}else if(to>=itemLength-v+1){
														ul.css(animCss,-((v)*liSize)+"px");
														curr=to==itemLength-v+1?v+1:v+o.scroll;
													}else curr=to;
													}else {
													if(to<0||to>itemLength-v)return;
											else curr=to;
											}
											running=true;
											ul.animate(
													   animCss=="left"?{left:-(curr*liSize)}:{top:-(curr*liSize)},o.speed,o.easing,
													   function(){
														   if(o.afterEnd)
														   o.afterEnd.call(this,vis());
														   running=false;
														   });
											if(!o.circular){
												$(o.btnPrev+","+o.btnNext).removeClass("disabled");
												$((curr-o.scroll<0&&o.btnPrev)
												   ||
												   (curr+o.scroll>itemLength-v&&o.btnNext)
												   ||
												   []
												   ).addClass("disabled");
												}
												}
												return false;
												};
												});
		  };
		  function css(el,prop){
			  return parseInt($.css(el[0],prop))||0;
			  };
			  function width(el){
				  return el[0].offsetWidth+css(el,'marginLeft')+css(el,'marginRight');
				  };
				  function height(el){return el[0].offsetHeight+css(el,'marginTop')+css(el,'marginBottom');
				  };
				  })(jQuery);
