/* jQuery wirbil plugin - A jQuery carousel widget.
 * Copyright (c) 2008-2009 Erich Seifert (e DOT seifert AT gmx DOT net)
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 *
 * $LastChangedDate: 2009-02-02 02:27:33 +0100 (Mo, 02. Feb 2009) $
 * $Rev: 54 $
 * Version: 0.2
 * Requires: jQuery 1.2.6+
 */(function(D){var G=function(I){return(I!="vertical")};var F=function(J,K){var I=J.css(K).replace("auto","0").replace(/^(\-\d+(\.\d+)?).*/,"$1");return parseFloat(I)};var B=function(P,Q,L){var I,K;if(G(L)){I="left";K=this.width()-P.width()}else{I="top";K=this.height()-P.height()}var O=F(P,I);if(!Q||K>=0){return true}var N=O-Q,J=false;if(N<K){N=K;J=true}if(N>0){N=0;J=true}var M={};M[I]=N;P.css(M);return J};var H={linear:function(I){return I},quad:function(I){return(I>=0)?I*I:-I*I},cubic:function(I){return I*I*I},linearZone:function(I){var K=1.25;var J=1-1/K;var L=K*(Math.abs(I)-J);if(I<-J){return -L}if(I>J){return L}return 0},quadZone:function(I){var M=1.25;var K=1-1/M;var L=M*(Math.abs(I)-K);var J=L*L;if(I<-K){return -J}if(I>K){return J}return 0}};var C={baseClass:"wirbil",items:"> *",direction:"horizontal",speed:10,mapping:H.quadZone};var A={};A.init=function(K){var J=D(this);if(J.hasClass(K.baseClass)){return}J.data("options",K);var L=G(K.direction)?"horizontal":"vertical";J.addClass(K.baseClass).addClass(L).css({overflow:"hidden",position:"relative"});var I=D(K.items,J).wrapAll("<div/>").parent().css({overflow:"visible",position:"relative","float":"left",whiteSpace:"nowrap"});J.data("itemsPos",0);var N=function(Q){var S,P,R=J.offset();if(G(K.direction)){S=Q.pageX-R.left;P=J.width()}else{S=Q.pageY-R.top;P=J.height()}var O=S*2/P-1;J.data("itemsPos",K.speed*K.mapping(O))};var M;J.hover(function(){M=setInterval(function(){B.apply(J,[I,J.data("itemsPos"),K.direction])},30)},function(){clearInterval(M)}).mousemove(N)};var E;A.scrollTo=function(O,N){O=D(O);if(!O.length){return}if(E){clearInterval(E)}var R=D(this),P=D("> div",R),I=R.data("options");if(N===undefined){N=I.speed}var Q,K,L=O.position(),J=P.position();if(G(I.direction)){Q=J.left+L.left;K="left"}else{Q=J.top+L.top;K="top"}if(Q==0){return}var M=(Q<0)?-1:1,S=N*I.mapping(M);E=setInterval(function(){if(Math.abs(Q)<Math.abs(S)){S=M*Math.abs(Q)}var T=B.apply(R,[P,S,I.direction]);Q-=S;if(T||!Q){clearInterval(E)}},30)};D.fn.wirbil=function(I){var K,J;if(typeof I==="string"){K=I;J=Array.prototype.slice.call(arguments,1)}else{K="init";J=[D.extend(D.extend({},C),I)]}return this.map(function(){var L=A[K].apply(this,J);return(L!==undefined)?L:this})};D.fn.wirbil.mappings=H})(jQuery);
