/*
 Copyright (c) 2009-2010 Petr Vostrel (http://petr.vostrel.cz/)
 Dual licensed under the MIT (MIT-LICENSE.txt)
 and GPL (GPL-LICENSE.txt) licenses.

 jQuery Reel
 http://jquery.vostrel.cz/reel
 Version: 1.1
 Updated: 2010-11-27

 Requires jQuery 1.4.2 or higher
*/
jQuery.reel||(function(ar,aJ,O,t){ar.reel={version:"1.1",def:{footage:6,frame:1,frames:36,hint:"",horizontal:true,hotspot:t,indicator:0,klass:"",loops:true,reversed:t,spacing:0,stitched:t,suffix:"-reel",tooltip:"",area:t,brake:0.5,clickfree:false,cw:false,delay:-1,directional:false,draggable:true,entry:t,graph:t,image:t,images:[],inversed:false,laziness:8,monitor:t,opening:0,orbital:0,path:"",preloader:4,rebound:0.5,revolution:t,row:1,rows:0,speed:0,step:t,steps:t,tempo:36,timeout:2,throwable:true,vertical:false,wheelable:true}};ar.fn.reel=function(aT){var aV=ar.extend({},ar.reel.def,aT),aR=(function(aY){var aZ=[];aY.filter(o).each(function(a1){var a3=ar(this),a4=aV.images.length&&aV.images||aV.image||a3.attr(aM),a2=aK(a3.css(J)),a0=aK(a3.css(aE));if(!a4||a4==g||!a2||!a0){return;}aZ.push(a3);});aY.filter(ak+s(z)).each(function(a0){aZ.push(ar(this));});return ar(aZ);})(this),aX=[],aS=aV.tempo=aV.tempo/(A?aV.laziness:1),aW=1000/aS;aV.reversed&&(aV.cw=true);aV.tooltip&&(aV.hint=aV.tooltip);aV.hotspot&&(aV.area=aV.hotspot);V=V||(function aU(){aG.trigger(ai);return setTimeout(aU,aW);})();aR.each(function(){var a8=ar(this),a9=function(bk,bl){a8.data(bk,bl);a8.trigger("store",[bk,bl]);return bl;},be=function(bk){var bl=a8.data(bk);a8.trigger("recall",[bk,bl]);return bl;},a7={setup:function(bs){if(a8.hasClass(z)){return a5.call(bs);}var bl=a8.attr(aM),bo=a8.attr(M),by=a8.attr("style"),bv=aV.images,bu=aV.stitched,bw=aV.loops,bA={x:aK(a8.css(J)),y:aK(a8.css(aE))},bt=a9(n,aV.orbital&&aV.footage||aV.rows<=1&&bv.length||aV.frames),bz=bu?1:au(bt/aV.footage),bm={display:"block",width:bA.x,height:bA.y},br="#"+bo+aV.suffix,bq=a8.attr("className"),bn={position:"relative",width:bA.x,height:bA.y},bx=ar(af,{id:br.substr(1),className:bq+j+aj,css:bn}),bp=a8.wrap(bx).attr({className:z}).css(bm).bind(a7),bk=aX.push(bp[0]);a9(x,bv.length&&bv.length||aV.image||bl.replace(/^(.*)\.(jpg|jpeg|png|gif)$/,"$1"+aV.suffix+".$2"));a9(X,bq);a9(ah,aV.frame);a9(ax,aV.spacing);a9(ao,bA);a9(H,0);a9(k,aV.steps||aV.frames);a9(q,aV.revolution||bu/2||bA.x*2);a9(y,bz);a9(b,1/(bt-(bw&&!bu?0:1)));a9(u,1/p(bt,be(k)));a9(av,bu);a9(ag,bu-(bw?0:bA.x));a9(W,br);a9(aw,a9(ab,aV.speed)<0);a9(aP,0);a9(m,aV.vertical);a9(ap,(aV.row-1)/(aV.rows-1));a9(aC,ae(1,!aV.cw&&!bu));a9(ay,{src:bl,style:by||g});V&&aG.bind(ai,a7.tick);a5.call(bs);a8.trigger("start");},teardown:function(bn){a8.unbind(U).unbind(a7);var bl=a8.data("events"),bk=a8.clone().attr(a8.data(ay)).removeClass(z).addClass(be(X));for(var bm in bl){ar.each(bl[bm],function(bo,bp){bk.bind(bm+"."+bp.namespace,bp.handler,bp.data);});}ar("img:hidden",a8.parent()).remove();ar(be(W)).before(bk).detach();bf();aG.unbind(S).unbind(aD).unbind(ai,a7.tick).unbind(ai,a7.opening_tick);a5.call(bn);},start:function(br){var bk=be(ao),bs=be(n),bp=p(bs,be(k)),bu=a9(H,1/bp*((aV.step||aV.frame)-1)),bo=a9(ah,bu*bs+1),bq=0,bn=a8.attr("id"),bt=a8.parent(),bl=ar(af,{className:aL,css:{position:F,left:0,top:0,width:bk.x,height:bk.y,background:K,opacity:0}}).appendTo(bt),bm=a9(h,ar(aV.area||bl));if(Z){a8.css({WebkitUserSelect:"none",WebkitBackgroundSize:aV.images.length?"auto":(be(av)&&be(av)+"px "+bk.y+"px")||(bk.x*aV.footage)+"px "+(bk.y*be(y)*(aV.rows||1)*(aV.directional?2:1))+"px"});bm.bind(L,function(bv){a8.trigger("down",[al(bv).clientX,al(bv).clientY,true]);return false;}).bind(aA,function(bv){a8.trigger("slide",[al(bv).clientX,al(bv).clientY,true]);return false;}).bind(aB,function(bv){a8.trigger("up",[true]);return false;}).bind(az,function(bv){a8.trigger("up",[true]);return false;});}else{bm.css({cursor:"url("+R+"), "+c}).bind(C,function(bv,bw){a8.trigger("wheel",[bw]);return false;}).bind(N,function(bv){a8.trigger("play");}).bind(aV.clickfree?aq:d,function(bv){a8.trigger("down",[bv.clientX,bv.clientY]);return false;}).bind(aV.clickfree?ad:"",function(bv){a8.trigger("up");return false;}).disableTextSelect();}(aV.hint)&&bm.attr(l,aV.hint);aV.monitor&&bt.append(bc=ar(af,{className:T,css:{position:F,left:0,top:0}}))||(bc=ar());aV.indicator&&bt.append(a4("x"));aV.rows>1&&aV.indicator&&bt.append(a4("y"));a8.trigger("preload");},preload:function(bq){var bl=be(ao),bu=a8.parent(),bo=be(x),br=aV.images,bs=!br.length?[bo]:new Array().concat(br),bp=a8[0],bt=bp.frames=bs.length,bn=bp.preloaded=0;a8.trigger("stop");bu.append(bg=ar(af,{className:aa,css:{position:F,left:0,top:bl.y-aV.preloader,height:aV.preloader,backgroundColor:K}}));while(bs.length){var bm=aV.path+bs.shift(),bk=ar(new Image()).bind("load"+U,function bv(){bp.preloaded++;ar(this).unbind(U);bg.css({width:1/bp.frames*bp.preloaded*bl.x});if(bp.frames==bp.preloaded){bg.remove();a8.trigger(aV.rows>1&&!aV.stitched?"rowChange":"frameChange");if(aV.images.length>1&&Z){a8.trigger("loaded");}else{if(aV.images.length==0&&(/IE 7/).test(an)){a8.attr({src:"/assets/images/blank.gif"}).trigger("loaded");}else{a8.attr({src:aH}).trigger("loaded");}}a8.trigger("opening");a5.call(bq);}});bu.append(bk.hide().attr({src:bm}));}},tick:function(bq){var bp=be(aP);if(ba){var bk=r(bp-(bi*ba)),bm=bp*bk<=0||bp<I(bk),bp=!bm&&a9(aP,bp>I(be(ab))?bk:(ba=a3=0));}bc.text(be(aV.monitor));bp&&ba++;a3&&a3++;bj(0);slidable=true;if(a3&&!bp){return a5.call(bq);}if(be(f)){return a5.call(bq,bd());}var bl=be(aC)*ae(1,be(aw)),bo=(be(am)?bp:I(be(ab))+bp)/aV.tempo,br=be(H),bn=a9(H,br-bo*bl);a5.call(bq);if(bn==br){return;}a8.trigger("fractionChange");},opening:function(bo){var bm=aV.entry||aV.speed,bk=be(H),bn=aV.opening,bp=a9(H,bk-bm*aV.opening),bl=a9(D,bn*aS);aG.bind(ai,a7.opening_tick);},opening_tick:function(bo){var bn=aV.entry||aV.speed,bm=bn/aV.tempo*(aV.cw?-1:1),bp=be(H),bk=a9(H,r(bp+bm)),bl=a9(D,be(D)-1);a8.trigger("fractionChange");a5.call(bo);if(bl>1){return;}aG.unbind(ai,a7.opening_tick);aY();},play:function(bn,bm){var bk=a9(aO,true),bl=a9(am,!bk);bb();a5.call(bn);},pause:function(bl){var bk=a9(aO,false);bd();a5.call(bl);},stop:function(bm){var bl=a9(am,true),bk=a9(aO,!bl);a5.call(bm);},down:function(bp,bk,bq,bl){if(aV.draggable){var bn=a9(f,true),bo=a9(aP,0),bm=a6=aZ(bk,bq,be(H),be(q),be(ap));bd();bf();if(!bl){aG.css({cursor:v(i)+", "+c}).bind(aD,function(br){a8.trigger("slide",[br.clientX,br.clientY]);a5.call(br);return false;});aV.clickfree||aG.bind(S,function(br){a8.trigger("up");a5.call(br);});}}a5.call(bp);},up:function(bo,bk){if(!aV.draggable){return a5.call(bo);}var bl=a9(f,false),bn=a9(aP,!aV.throwable?0:I(a2[0]+a2[1])/60),bm=ba=bn?1:0;bn?bb():bd();bf();!bk&&aG.unbind(S).unbind(aD)&&be(h).css({cursor:v(R)+", "+c});a5.call(bo);},slide:function(by,br,bq,bz){if(aV.draggable&&slidable){slidable=false;bd();var bA={x:br-a6.x,y:bq-a6.y};if(I(bA.x)>0||I(bA.y)>0){a6={x:br,y:bq};var bv=be(q),bB=be(w),bk=be(m),bm=a9(H,a0(bk?bq-bB.y:br-bB.x,be(at),bv,be(Y),be(ac),be(aC))),bu=bj(bk?bA.y:bA.x||0),bw=bu&&a9(aw,bu<0);if(aV.orbital){var bx=aV.orbital,bo=aV.footage,bt=be(ah);}if(aV.orbital&&(bt<=bx||bt>=bo-bx+2&&bt<=bo+bx-1||bt==2*bo-bx+2)){var bk=a9(m,I(bq-bB.y)>I(br-bB.x)),bB=aZ(br,bq,bm,bv,be(ap));}if(aV.rows>1){var bs=be(ao).y,bl=be(aF),bp=-bl*bs,bn=a9(ap,r(ar.reel.math.envelope(bq-bB.y,bl,bs,bp,bp+bs,-1)));}var bB=!(bm%1)&&!aV.loops&&aZ(br,bq,bm,bv,be(ap));a8.trigger("fractionChange");}}a5.call(by);},wheel:function(bp,br){if(!aV.wheelable){return a5.call(bp);}var bq=au(B(I(br))/2),bq=ae(bq,br>0),bl=0.2*be(q),bm=aZ(t,t,be(H),bl,be(ap)),bn=a9(H,a0(bq,be(at),bl,be(Y),be(ac),be(aC))),bk=bq&&a9(aw,bq<0),bo=a9(aP,0);bd();a5.call(bp);a8.trigger("fractionChange");return false;},fractionChange:function(br,bw){var bw=!bw?be(H):a9(H,bw),bw=aV.loops?bw-Q(bw):aI(0,1,bw),bw=a9(H,r(bw)),bl=be(ah),bo=a9(ah,1+Q(bw/be(b)));if(!aV.loops&&aV.rebound){var bp=!a3&&!(bw%1)?a1++:(a1=0),bx=a1>=aV.rebound*1000/aV.tempo,bv=bx&&a9(aw,!be(aw));}var bk=be(ao),bn=(be(m)?bk.y:bk.x)-aV.indicator,bu=aI(0,bn,E(ar.reel.math.interpolate(bw,-1,bn+2))),bu=!aV.cw||aV.stitched?bu:bn-bu,bs=ar(s(a+".x"),be(W)).css(be(m)?{left:0,top:bu}:{left:bu,top:bk.y-aV.indicator});if(aV.rows>1){var bt=be(ao).y-aV.indicator,bq=aI(0,bt,E(ar.reel.math.interpolate(be(ap),-1,bt+2))),bm=ar(s(a+".y"),be(W)).css({top:bq});}if(bo==bl){return a5.call(br);}a8.trigger(aV.rows>1?"rowChange":"frameChange");a5.call(br);},rowChange:function(bk,bm){var bl=Q(be(H)/be(b))+1,bm=a9(ap,aI(0,1,r(bm!=t?(bm-1)/(aV.rows-1):be(ap)))),bl=a9(ah,bl+(aV.rows<=1?0:E(bm*(aV.rows-1))*aV.frames));a5.call(bk);a8.trigger("frameChange");},frameChange:function(bq,bn){var bz=!bn?be(H):a9(H,r(be(b)*(bn-1))),bn=a9(ah,E(bn?bn:be(ah))),bt=aV.images,bo=aV.footage,bk=be(ao),bl=aV.horizontal;if(be(m)){var bn=aV.inversed?bo+1-bn:bn,bn=bn+bo;}if(bt.length){var by=bt[bn-1];a8.attr({src:aV.path+by});}else{if(!aV.stitched){var bp=(bn%bo)-1,bp=bp<0?bo-1:bp,bs=Q((bn-0.1)/bo),bs=bs+(aV.rows>1?0:(be(aw)?0:be(y))),br=be(ax),bx=bs*((bl?bk.y:bk.x)+br),bv=bp*((bl?bk.x:bk.y)+br),bm=bt.length?[0,0]:bl?[-bv+aQ,-bx+aQ]:[-bx+aQ,-bv+aQ];}else{var bw=E(bz*be(ag)),bu=0,bm=[-bw+aQ,bu+aQ];}var by=be(x);a8.css({background:v(aV.path+by)+j+bm.join(j)});}a5.call(bq);}},a5=function(bk){G||delete this;return bk;},a3,ba=0,bb=function(){return a3=0;},bd=function(){clearTimeout(bh);aG.unbind(ai,a7.opening_tick);a8.trigger("play");return a3=-aV.timeout*aV.tempo;},bh,aY=function(){bh=setTimeout(function bk(){a8.trigger("play");},aV.delay*1000||0);},bc,bg,a4=function(bk){return ar(af,{className:[a,bk].join(j),css:{width:aV.indicator,height:aV.indicator,top:be(ao).y-aV.indicator,left:0,position:F,backgroundColor:K}});},a1=0,a6={x:0,y:0},bj=function(bk){return a2.push(bk)&&a2.shift()&&bk;},bf=function(){return a2=[0,0];},a2=bf(),bi=aV.brake/aV.tempo,a0=aV.graph||ar.reel.math[aV.loops?"hatch":"envelope"],aZ=function(bk,bo,bm,bl,bn){a9(at,bm);a9(aF,bn);a9(Y,aV.loops?0:-bm*bl);a9(ac,aV.loops?bl:bl-bm*bl);return bk&&a9(w,{x:bk,y:bo})||t;};a7.setup();});return ar(aX);};ar.reel.math={envelope:function(aR,aW,aS,aU,aT,aV){return aW+p(aU,aN(aT,-aR*aV))/aS;},hatch:function(aR,aX,aS,aV,aT,aW){var aR=(aR<aV?aT:0)+aR%aT,aU=aX+(-aR*aW)/aS;return aU-Q(aU);},interpolate:function(aT,aS,aR){return aS+aT*(aR-aS);}};P("mousewheel disableTextSelect enableTextSelect".split(/ /));var aG=ar(O),an=navigator.userAgent,Z=(/iphone|ipod|ipad|android|playbook/i).test(an),A=(/iphone|ipod|ipad/i).test(an),G=ar.browser.msie,c="ew-resize",V,z="jquery-reel",aj=z+"-overlay",a=z+"-indicator",aa=z+"-preloader",T=z+"-monitor",aL=z+"-interface",aH="data:image/gif;base64,R0lGODlhCAAIAIAAAAAAAAAAACH5BAEAAAAALAAAAAAIAAgAAAIHhI+py+1dAAA7",R="data:image/gif;base64,R0lGODlhEAAQAJECAAAAAP///////wAAACH5BAEAAAIALAAAAAAQABAAQAI3lC8AeBDvgosQxQtne7yvLWGStVBelXBKqDJpNzLKq3xWBlU2nUs4C/O8cCvU0EfZGUwt19FYAAA7",i="data:image/gif;base64,R0lGODlhEAAQAJECAAAAAP///////wAAACH5BAEAAAIALAAAAAAQABAAQAIslI95EB3MHECxNjBVdE/5b2zcRV1QBabqhwltq41St4hj5konmVioZ6OtEgUAOw==",E=Math.round,Q=Math.floor,au=Math.ceil,aN=Math.min,p=Math.max,I=Math.abs,B=Math.sqrt,aK=parseInt,h="area",ay="backup",aw="backwards",b="bit",X="classes",f="clicked",w="clicked_location",at="clicked_on",aF="clicked_row",aC="cwish",ao="dimensions",H="fraction",ah="frame",n="frames",ac="hi",x="image",D="opening_ticks",Y="lo",aO="playing",q="revolution",ap="row",y="rows",ax="spacing",ab="speed",W="stage",k="steps",av="stitched",ag="stitched_travel",am="stopped",aP="velocity",m="vertical",u="wheel_step",U=".reel",N="dblclick"+U,d="mousedown"+U,aq="mouseenter"+U,ad="mouseleave"+U,aD="mousemove"+U,S="mouseup"+U,C="mousewheel"+U,ai="tick"+U,az="touchcancel"+U,aB="touchend"+U,L="touchstart"+U,aA="touchmove"+U,g="",j=" ",F="absolute",ak="div",af=e(ak),aE="height",K="#000",M="id",o="img",aQ="px",aM="src",l="title",J="width";function e(aR){return"<"+aR+"/>";}function s(aR){return"."+aR;}function v(aR){return"url("+aR+")";}function r(aR){return +aR.toFixed(4);}function aI(aS,aT,aR){return p(aS,aN(aT,aR));}function P(aS){ar.each(aS,aR);function aR(){if(!ar.fn[this]){ar.fn[this]=function(){return this;};}}}function ae(aR,aS){return I(aR)*(aS?-1:1);}function al(aR){return aR.originalEvent.touches[0];}})(jQuery,window,document);
