(function(a){a.fn.kwicks=function(f){var d={isVertical:false,sticky:false,defaultKwick:0,event:"mouseover",spacing:0,duration:500};var e=a.extend(d,f);var c=(e.isVertical?"height":"width");var b=(e.isVertical?"top":"left");return this.each(function(){container=a(this);var n=container.children("li");var h=n.eq(0).css(c).replace(/px/,"");if(!e.max){e.max=(h*n.size())-(e.min*(n.size()-1))}else{e.min=((h*n.size())-e.max)/(n.size()-1)}if(e.isVertical){container.css({width:n.eq(0).css("width"),height:(h*n.size())+(e.spacing*(n.size()-1))+"px"})}else{container.css({width:(h*n.size())+(e.spacing*(n.size()-1))+"px",height:n.eq(0).css("height")})}var g=[];for(i=0;i<n.size();i++){g[i]=[];for(j=1;j<n.size()-1;j++){if(i==j){g[i][j]=e.isVertical?j*e.min+(j*e.spacing):j*e.min+(j*e.spacing)}else{g[i][j]=(j<=i?(j*e.min):(j-1)*e.min+e.max)+(j*e.spacing)}}}n.each(function(k){var l=a(this);if(k===0){l.css(b,"0px")}else{if(k==n.size()-1){l.css(e.isVertical?"bottom":"right","0px")}else{if(e.sticky){l.css(b,g[e.defaultKwick][k])}else{l.css(b,(k*h)+(k*e.spacing))}}}if(e.sticky){if(e.defaultKwick==k){l.css(c,e.max+"px");l.addClass("active")}else{l.css(c,e.min+"px")}}l.css({margin:0,position:"absolute"});l.bind(e.event,function(){var r=[];var q=[];n.stop().removeClass("active");for(j=0;j<n.size();j++){r[j]=n.eq(j).css(c).replace(/px/,"");q[j]=n.eq(j).css(b).replace(/px/,"")}var p={};p[c]=e.max;var o=e.max-r[k];var m=r[k]/o;l.addClass("active").animate(p,{step:function(t){var s=o!=0?t/o-m:1;n.each(function(u){if(u!=k){n.eq(u).css(c,r[u]-((r[u]-e.min)*s)+"px")}if(u>0&&u<n.size()-1){n.eq(u).css(b,q[u]-((q[u]-g[k][u])*s)+"px")}})},duration:e.duration,easing:e.easing})})});if(!e.sticky){container.bind("mouseleave",function(){var o=[];var m=[];n.removeClass("active").stop();for(i=0;i<n.size();i++){o[i]=n.eq(i).css(c).replace(/px/,"");m[i]=n.eq(i).css(b).replace(/px/,"")}var l={};l[c]=h;var k=h-o[0];n.eq(0).animate(l,{step:function(q){var p=k!=0?(q-o[0])/k:1;for(i=1;i<n.size();i++){n.eq(i).css(c,o[i]-((o[i]-h)*p)+"px");if(i<n.size()-1){n.eq(i).css(b,m[i]-((m[i]-((i*h)+(i*e.spacing)))*p)+"px")}}},duration:e.duration,easing:e.easing})})}})}})(jQuery);
