publication/app/assets/javascripts/publications/turn.min.js

66 lines
32 KiB
JavaScript
Raw Permalink Normal View History

/* turn.js 4.1.1 | Copyright (c) 2012 Emmanuel Garcia - 2019 Raffaele Morganti | turnjs.com | turnjs.com/license.txt */
2023-06-23 10:25:35 +00:00
(function(g){function G(a,b,c){if(c[0]&&"object"!=typeof c[0]){if(b[c[0]])return b[c[0]].apply(a,Array.prototype.slice.call(c,1));throw t(c[0]+" is not a method or property");}return b.init.apply(a,c)}function q(a,b,c,d){return{css:{position:"absolute",top:a,left:b,overflow:d||"hidden",zIndex:c||"auto"}}}function L(a,b,c,d,e){var k=1-e,U=k*k*k,f=e*e*e;return l(Math.round(U*a.x+3*e*k*k*b.x+3*e*e*k*c.x+f*d.x),Math.round(U*a.y+3*e*k*k*b.y+3*e*e*k*c.y+f*d.y))}function l(a,b){return{x:a,y:b}}function H(a,
b,c){return c?" translate3d("+a+"px,"+b+"px, 0px) ":" translate("+a+"px, "+b+"px) "}function I(a){return" rotate("+a+"deg) "}function m(a,b){return Object.prototype.hasOwnProperty.call(b,a)}function R(a,b,c,d,e){var k=[];b={x:b.x/100*a.width(),y:b.y/100*a.height()};c={x:c.x/100*a.width(),y:c.y/100*a.height()};var f=c.x-b.x,h=c.y-b.y,g=Math.atan2(h,f),r=g-Math.PI/2;r=Math.abs(a.width()*Math.sin(r))+Math.abs(a.height()*Math.cos(r));f=Math.sqrt(h*h+f*f);c=l(c.x<b.x?a.width():0,c.y<b.y?a.height():0);
var n=Math.tan(g);h=-1/n;n=(h*c.x-c.y-n*b.x+b.y)/(h-n);c=Math.sqrt(Math.pow(n-b.x,2)+Math.pow(h*n-h*c.x+c.y-b.y,2));for(b=0;b<e;b++)k.push(" "+d[b][1]+" "+100*(c+f*d[b][0])/r+"%");a.css({"background-image":"-webkit-linear-gradient("+-g+"rad,"+k.join(",")+")"})}function v(a,b,c){a=g.Event(a);b.trigger(a,c);return a.isDefaultPrevented()?"prevented":a.isPropagationStopped()?"stopped":""}function t(a){function b(a){this.name="TurnJsError";this.message=a}b.prototype=Error();b.prototype.constructor=b;return new b(a)}
function B(a){var b={top:0,left:0};do b.left+=a.offsetLeft,b.top+=a.offsetTop;while(a=a.offsetParent);return b}var M=Math.PI,N=M/2,x="ontouchstart"in window,w=x?{down:"touchstart",move:"touchmove",up:"touchend",over:"touchstart",out:"touchend"}:{down:"mousedown",move:"mousemove",up:"mouseup",over:"mouseover",out:"mouseout"},u={backward:["bl","tl"],forward:["br","tr"],all:"tl bl tr br l r".split(" ")},W=["single","double"],X=["ltr","rtl"],Y={acceleration:!0,display:"double",duration:600,page:1,gradients:!0,
turnCorners:"bl,br",when:null},Z={cornerSize:100},f={init:function(a){var b,c=0,d=this.data(),e=this.children();a=g.extend({width:this.width(),height:this.height(),direction:this.attr("dir")||this.css("direction")||"ltr"},Y,a);d.opts=a;d.pageObjs={};d.pages={};d.pageWrap={};d.pageZoom={};d.pagePlace={};d.pageMv=[];d.zoom=1;d.totalPages=a.pages||0;d.eventHandlers={touchStart:f._touchStart.bind(this),touchMove:f._touchMove.bind(this),touchEnd:f._touchEnd.bind(this),start:f._eventStart.bind(this)};if(a.when)for(b in a.when)if(m(b,
a.when))this.on(b,a.when[b]);this.css({position:"relative",width:a.width,height:a.height});this.turn("display",a.display);""!==a.direction&&this.turn("direction",a.direction);!x&&a.acceleration&&this.transform(H(0,0,!0));for(b=0;b<e.length;b++)"1"!=g(e[b]).attr("ignore")&&this.turn("addPage",e[b],++c);g(this).on(w.down,d.eventHandlers.touchStart).on("end",f._eventEnd).on("pressed",f._eventPressed).on("released",f._eventReleased).on("flip",f._flip);g(this).parent().on("start",d.eventHandlers.start);
g(document).on(w.move,d.eventHandlers.touchMove).on(w.up,d.eventHandlers.touchEnd);this.turn("page",a.page);d.done=!0;return this},addPage:function(a,b){var c,d=!1,e=this.data(),k=e.totalPages+1;if(e.destroying)return!1;if(c=/\bp([0-9]+)\b/.exec(g(a).attr("class")))b=parseInt(c[1],10);if(b)if(b==k)d=!0;else{if(b>k)throw t('Page "'+b+'" cannot be inserted');}else b=k,d=!0;1<=b&&b<=k&&(c="double"==e.display?b%2?" odd":" even":"",e.done&&this.turn("stop"),b in e.pageObjs&&f._movePages.call(this,b,1),
d&&(e.totalPages=k),e.pageObjs[b]=g(a).css({"float":"left"}).addClass("page p"+b+c),f._addPage.call(this,b),f._removeFromDOM.call(this));return this},_addPage:function(a){var b=this.data(),c=b.pageObjs[a];if(c)if(f._necessPage.call(this,a)){if(!b.pageWrap[a]){b.pageWrap[a]=g("<div/>",{"class":"page-wrapper",page:a,css:{position:"absolute",overflow:"hidden"}});this.append(b.pageWrap[a]);b.pagePlace[a]||(b.pagePlace[a]=a,b.pageObjs[a].appendTo(b.pageWrap[a]));var d=f._pageSize.call(this,a,!0);c.css({width:d.width,
height:d.height});b.pageWrap[a].css(d)}b.pagePlace[a]==a&&f._makeFlip.call(this,a)}else b.pagePlace[a]=0,b.pageObjs[a]&&b.pageObjs[a].remove()},hasPage:function(a){return m(a,this.data().pageObjs)},center:function(a){var b=this.data(),c=g(this).turn("size"),d=0;b.noCenter||("double"==b.display&&(a=this.turn("view",a||b.tpage||b.page),"ltr"==b.direction?a[0]?a[1]||(d+=c.width/4):d-=c.width/4:a[0]?a[1]||(d-=c.width/4):d+=c.width/4),d==0?d='auto':d,g(this).css({marginLeft:d}));return this},destroy:function(){var a=
this,b=this.data();if("prevented"!=v("destroying",this)){b.destroying=!0;g.each("end first flip last pressed released start turning turned zooming missing".split(" "),function(b,d){a.off(d)});this.parent().off("start",b.eventHandlers.start);for(g(document).off(w.move,b.eventHandlers.touchMove).off(w.up,b.eventHandlers.touchEnd);0!==b.totalPages;)this.turn("removePage",b.totalPages);b.fparent&&b.fparent.remove();b.shadow&&b.shadow.remove();this.removeData();b=null;return this}},is:function(){return"object"==
typeof this.data().pages},zoom:function(a){var b=this.data();if("number"==typeof a){if(.001>a||100<a)throw t(a+" is not a value for zoom");if("prevented"==v("zooming",this,[a,b.zoom]))return this;var c=this.turn("size"),d=this.turn("view"),e=1/b.zoom,k=Math.round(c.width*e*a);c=Math.round(c.height*e*a);b.zoom=a;g(this).turn("stop").turn("size",k,c);b.opts.autoCenter&&this.turn("center");f._updateShadow.call(this);for(a=0;a<d.length;a++)d[a]&&b.pageZoom[d[a]]!=b.zoom&&(this.trigger("zoomed",[d[a],
d,b.pageZoom[d[a]],b.zoom]),b.pageZoom[d[a]]=b.zoom);return this}return b.zoom},_pageSize:function(a,b){var c=this.data(),d={};if("single"==c.display)d.width=this.width(),d.height=this.height(),b&&(d.top=0,d.left=0,d.right="auto");else{var e=this.width()/2,k=this.height();c.pageObjs[a].hasClass("own-size")?(d.width=c.pageObjs[a].width(),d.height=c.pageObjs[a].height()):(d.width=e,d.height=k);b&&(a%=2,d.top=(k-d.height)/2,"ltr"==c.direction?(d[a?"right":"left"]=e-d.width,d[a?"left":"right"]="auto"):
(d[a?"left":"right"]=e-d.width,d[a?"right":"left"]="auto"))}return d},_makeFlip:function(a){var b=this.data();if(!b.pages[a]&&b.pagePlace[a]==a){var c="single"==b.display,d=a%2;b.pages[a]=b.pageObjs[a].css(f._pageSize.call(this,a)).flip({page:a,next:d||c?a+1:a-1,turn:this}).flip("disable",b.disabled);f._setPageLoc.call(this,a);b.pageZoom[a]=b.zoom}return b.pages[a]},_makeRange:function(){var a;if(!(1>this.data().totalPages)){var b=this.turn("range");for(a=b[0];a<=b[1];a++)f._addPage.call(this,a)}},
range:function(a){var b=this.data();a=a||b.tpage||b.page||1;var c=f._view.call(this,a);if(1>a||a>b.totalPages)throw t('"'+a+'" is not a valid page');c[1]=c[1]||c[0];if(1<=c[0]&&c[1]<=b.totalPages)if(b.totalPages-c[1]>c[0]){a=Math.min(c[0]-1,2);var d=4-a}else d=Math.min(b.totalPages-c[1],2),a=4-d;else d=a=5;return[Math.max(1,c[0]-a),Math.min(b.totalPages,c[1]+d)]},_necessPage:function(a){if(0===a)return!0;var b=this.turn("range");return this.data().pageObjs[a].hasClass("fixed")||a>=b[0]&&a<=b[1]},
_removeFromDOM:function(){var a,b=this.data();for(a in b.pageWrap)m(a,b.pageWrap)&&!f._necessPage.call(this,a)&&f._removePageFromDOM.call(this,a)},_removePageFromDOM:function(a){var b=this.data();if(b.pages[a]){var c=b.pages[a].data();h._moveFoldingPage.call(b.pages[a],!1);c.f&&c.f.fwrapper&&c.f.fwrapper.remove();b.pages[a].removeData();b.pages[a].remove();delete b.pages[a]}b.pageObjs[a]&&b.pageObjs[a].remove();b.pageWrap[a]&&(b.pageWrap[a].remove(),delete b.pageWrap[a]);f._removeMv.call(this,a);
delete b.pagePlace[a];delete b.pageZoom[a]},removePage:function(a){var b=this.data();if("*"==a)for(;0!==b.totalPages;)this.turn("removePage",b.totalPages);else{if(1>a||a>b.totalPages)throw t("The page "+a+" doesn't exist");b.pageObjs[a]&&(this.turn("stop"),f._removePageFromDOM.call(this,a),delete b.pageObjs[a]);f._movePages.call(this,a,-1);--b.totalPages;b.page>b.totalPages?(b.page=null,f._fitPage.call(this,b.totalPages)):(f._makeRange.call(this),this.turn("update"))}return this},_movePages:function(a,
b){var c,d=this,e=this.data(),k="single"==e.display,h=function(a){var c=a+b,h=c%2,g=h?" odd ":" even ";e.pageObjs[a]&&(e.pageObjs[c]=e.pageObjs[a].removeClass("p"+a+" odd even").addClass("p"+c+g));e.pagePlace[a]&&e.pageWrap[a]&&(e.pagePlace[c]=c,e.pageObjs[c].hasClass("fixed")?e.pageWrap[c]=e.pageWrap[a].attr("page",c):e.pageWrap[c]=e.pageWrap[a].css(f._pageSize.call(d,c,!0)).attr("page",c),e.pages[a]&&(e.pages[c]=e.pages[a].flip("options",{page:c,next:k||h?c+1:c-1})),b&&(delete e.pages[a],delete e.pagePlace[a],
delete e.pageZoom[a],delete e.pageObjs[a],delete e.pageWrap[a]))};if(0<b)for(c=e.totalPages;c>=a;c--)h(c);else for(c=a;c<=e.totalPages;c++)h(c)},display:function(a){var b=this.data(),c=b.display;if(void 0===a)return c;if(-1==W.indexOf(a))throw t('"'+a+'" is not a value for display');switch(a){case "single":b.pageObjs[0]||(this.turn("stop").css({overflow:"hidden"}),b.pageObjs[0]=g("<div />",{"class":"page p-temporal"}).css({width:this.width(),height:this.height()}).appendTo(this));this.addClass("shadow");
break;case "double":b.pageObjs[0]&&(this.turn("stop").css({overflow:""}),b.pageObjs[0].remove(),delete b.pageObjs[0]),this.removeClass("shadow")}b.display=a;c&&(a=this.turn("size"),f._movePages.call(this,1,0),this.turn("size",a.width,a.height).turn("update"));return this},direction:function(a){var b=this.data();if(void 0===a)return b.direction;a=a.toLowerCase();if(-1==X.indexOf(a))throw t('"'+a+'" is not a value for direction');"rtl"==a&&g(this).attr("dir","ltr").css({direction:"ltr"});b.direction=
a;b.done&&this.turn("size",g(this).width(),g(this).height());return this},animating:function(){return 0<this.data().pageMv.length},corner:function(){var a,b,c=this.data();for(b in c.pages)if(m(b,c.pages)&&(a=c.pages[b].flip("corner")))return a;return!1},data:function(){return this.data()},disable:function(a){var b,c=this.data(),d=this.turn("view");c.disabled=void 0===a||!0===a;for(b in c.pages)m(b,c.pages)&&c.pages[b].flip("disable",c.disabled?!0:-1==d.indexOf(parseInt(b,10)));return this},disabled:function(a){return void 0===
a?!0===this.data().disabled:this.turn("disable",a)},size:function(a,b){if(void 0===a||void 0===b)return{width:this.width(),height:this.height()};this.turn("stop");var c,d=this.data(),e="double"==d.display?a/2:a;this.css({width:a,height:b});d.pageObjs[0]&&d.pageObjs[0].css({width:e,height:b});for(c in d.pageWrap)m(c,d.pageWrap)&&(a=f._pageSize.call(this,c,!0),d.pageObjs[c].css({width:a.width,height:a.height}),d.pageWrap[c].css(a),d.pages[c]&&d.pages[c].css({width:a.width,height:a.height}));this.turn("resize");
return this},resize:function(){var a,b=this.data();b.pages[0]&&(b.pageWrap[0].css({left:-this.width()}),b.pages[0].flip("resize",!0));for(a=1;a<=b.totalPages;a++)b.pages[a]&&b.pages[a].flip("resize",!0);f._updateShadow.call(this);b.opts.autoCenter&&this.turn("center")},_removeMv:function(a){var b,c=this.data();for(b=0;b<c.pageMv.length;b++)if(c.pageMv[b]==a)return c.pageMv.splice(b,1),!0;return!1},_addMv:function(a){var b=this.data();f._removeMv.call(this,a);b.pageMv.push(a)},_view:function(a){var b=
this.data();a=a||b.page;return"double"==b.display?a%2?[a-1,a]:[a,a+1]:[a]},view:function(a){var b=this.data();a=f._view.call(this,a);return"double"==b.display?[0<a[0]?a[0]:0,a[1]<=b.totalPages?a[1]:0]:[0<a[0]&&a[0]<=b.totalPages?a[0]:0]},stop:function(a,b){if(this.turn("animating")){var c,d=this.data();d.tpage&&(d.page=d.tpage,delete d.tpage);for(c=0;c<d.pageMv.length;c++)if(d.pageMv[c]&&d.pageMv[c]!==a){var e=d.pages[d.pageMv[c]];var k=e.data().f.opts;e.flip("hideFoldedPage",b);b||h._moveFoldingPage.call(e,
!1);k.force&&(k.next=0===k.page%2?k.page-1:k.page+1,delete k.force)}}this.turn("update");return this},pages:function(a){var b=this.data();if(a){if(a<b.totalPages)for(var c=b.totalPages;c>a;c--)this.turn("removePage",c);b.totalPages=a;f._fitPage.call(this,b.page);return this}return b.totalPages},_missing:function(a){var b=this.data();if(!(1>b.totalPages)){var c=this.turn("range",a),d=[];for(a=c[0];a<=c[1];a++)b.pageObjs[a]||d.push(a);0<d.length&&this.trigger("missing",[d])}},_fitPage:function(a){var b=
this.data(),c=this.turn("view",a);f._missing.call(this,a);if(b.pageObjs[a]){b.page=a;this.turn("stop");for(var d=0;d<c.length;d++)c[d]&&b.pageZoom[c[d]]!=b.zoom&&(this.trigger("zoomed",[c[d],c,b.pageZoom[c[d]],b.zoom]),b.pageZoom[c[d]]=b.zoom);f._removeFromDOM.call(this);f._makeRange.call(this);f._updateShadow.call(this);this.trigger("turned",[a,c]);this.turn("update");b.opts.autoCenter&&this.turn("center")}},_turnPage:function(a){var b=this.data(),c=b.pagePlace[a],d=this.turn("view"),e=this.turn("view",
a);if(b.page!=a){var k=b.page;if("prevented"==v("turning",this,[a,e])){k==b.page&&-1!=b.pageMv.indexOf(c)&&b.pages[c].flip("hideFoldedPage",!0);return}-1!=e.indexOf(1)&&this.trigger("first");-1!=e.indexOf(b.totalPages)&&this.trigger("last")}if("single"==b.display){var h=d[0];var g=e[0]}else d[1]&&a>d[1]?(h=d[1],g=e[0]):d[0]&&a<d[0]&&(h=d[0],g=e[1]);c=b.opts.turnCorners.split(",");d=b.pages[h].data().f;e=d.opts;k=d.point;f._missing.call(this,a);b.pageObjs[a]&&(this.turn("stop"),b.page=a,f._makeRange.call(this),
b.tpage=g,e.next!=g&&(e.next=g,e.force=!0),this.turn("update"),d.point=k,"hard"==d.effect?"ltr"==b.direction?b.pages[h].flip("turnPage",a>h?"r":"l"):b.pages[h].flip("turnPage",a>h?"l":"r"):"ltr"==b.direction?b.pages[h].flip("turnPage",c[a>h?1:0]):b.pages[h].flip("turnPage",c[a>h?0:1]))},page:function(a){var b=this.data();if(void 0===a)return b.page;if(!b.disabled&&!b.destroying){a=parseInt(a,10);if(0<a&&a<=b.totalPages)return a!=b.page&&(b.done&&-1==this.turn("view").indexOf(a)?f._turnPage.call(this,
a):f._fitPage.call(this,a)),this;throw t("The page "+a+" does not exist");}},next:function(){return this.turn("page",Math.min(this.data().totalPages,f._view.call(this,this.data().page).pop()+1))},previous:function(){return this.turn("page",Math.max(1,f._view.call(this,this.data().page).shift()-1))},peel:function(a,b){var c=this.data(),d=this.turn("view");b=void 0===b?!0:!0===b;!1===a?this.turn("stop",null,b):"single"==c.display?c.pages[c.page].flip("peel",a,b):(d="ltr"==c.direction?-1!=a.indexOf("l")?
d[0]:d[1]:-1!=a.indexOf("l")?d[1]:d[0],c.pages[d]&&c.pages[d].flip("peel",a,b));return this},_addMotionPage:function(){var a=g(this).data().f.opts,b=a.turn;b.data();f._addMv.call(b,a.page)},_eventStart:function(a,b,c){var d=b.turn.data(),e=d.pageZoom[b.page];a.isDefaultPrevented()||(e&&e!=d.zoom&&(b.turn.trigger("zoomed",[b.page,b.turn.turn("view",b.page),e,d.zoom]),d.pageZoom[b.page]=d.zoom),"single"==d.display&&c&&("l"==c.charAt(1)&&"ltr"==d.direction||"r"==c.charAt(1)&&"rtl"==d.direction?(b.next=
b.next<b.page?b.next:b.page-1,b.force=!0):b.next=b.next>b.page?b.next:b.page+1),f._addMotionPage.call(a.target));f._updateShadow.call(b.turn)},_eventEnd:function(a,b,c){g(a.target).data();a=b.turn;var d=a.data();if(c){if(c=d.tpage||d.page,c==b.next||c==b.page)delete d.tpage,f._fitPage.call(a,c||b.next,!0)}else f._removeMv.call(a,b.page),f._updateShadow.call(a),a.turn("update")},_eventPressed:function(a){a=g(a.target).data().f;var b=a.opts.turn;b.data().mouseAction=!0;b.turn("update");return a.time=
(new Date).getTime()},_eventReleased:function(a,b){var c=g(a.target),d=c.data().f,e=d.opts.turn,k=e.data();b="single"==k.display?"br"==b.corner||"tr"==b.corner?b.x<c.width()/2:b.x>c.width()/2:0>b.x||b.x>c.width();if(200>(new Date).getTime()-d.time||b)a.preventDefault(),f._turnPage.call(e,d.opts.next);k.mouseAction=!1},_flip:function(a){a.stopPropagation();a=g(a.target).data().f.opts;a.turn.trigger("turn",[a.next]);a.turn.data().opts.autoCenter&&a.turn.turn("center",a.next)},_touchStart:function(){var a=
this.data(),b;for(b in a.pages)if(m(b,a.pages)&&!1===h._eventStart.apply(a.pages[b],arguments))return!1},_touchMove:function(){var a=this.data(),b;for(b in a.pages)m(b,a.pages)&&h._eventMove.apply(a.pages[b],arguments)},_touchEnd:function(){var a=this.data(),b;for(b in a.pages)m(b,a.pages)&&h._eventEnd.apply(a.pages[b],arguments)},calculateZ:function(a){var b=this,c=this.data();var d=this.turn("view");var e=d[0]||d[1],k=a.length-1,h={pageZ:{},partZ:{},pageV:{}},f=function(a){a=b.turn("view",a);a[0]&&
(h.pageV[a[0]]=!0);a[1]&&(h.pageV[a[1]]=!0)};for(d=0;d<=k;d++){var g=a[d];var l=c.pages[g].data().f.opts.next;var n=c.pagePlace[g];f(g);f(l);g=c.pagePlace[l]==l?l:g;h.pageZ[g]=c.totalPages-Math.abs(e-g);h.partZ[n]=2*c.totalPages-k+d}return h},update:function(){var a,b=this.data();if(this.turn("animating")&&0!==b.pageMv[0]){var c=this.turn("calculateZ",b.pageMv),d=this.turn("corner"),e=this.turn("view"),h=this.turn("view",b.tpage);for(a in b.pageWrap)if(m(a,b.pageWrap)){var g=b.pageObjs[a].hasClass("fixed");
b.pageWrap[a].css({display:c.pageV[a]||g?"":"none",zIndex:(b.pageObjs[a].hasClass("hard")?c.partZ[a]:c.pageZ[a])||(g?-1:0)});if(g=b.pages[a])g.flip("z",c.partZ[a]||null),c.pageV[a]&&g.flip("resize"),b.tpage?g.flip("hover",!1).flip("disable",-1==b.pageMv.indexOf(parseInt(a,10))&&a!=h[0]&&a!=h[1]):g.flip("hover",!1===d).flip("disable",a!=e[0]&&a!=e[1])}}else for(a in b.pageWrap)m(a,b.pageWrap)&&(c=f._setPageLoc.call(this,a),b.pages[a]&&b.pages[a].flip("disable",b.disabled||1!=c).flip("hover",!0).flip("z",
null));return this},_updateShadow:function(){var a=this.data(),b=this.width(),c=this.height(),d="single"==a.display?b:b/2;var e=this.turn("view");a.shadow||(a.shadow=g("<div />",{"class":"shadow",css:q(0,0,0).css}).appendTo(this));for(var h=0;h<a.pageMv.length&&e[0]&&e[1];h++){e=this.turn("view",a.pages[a.pageMv[h]].data().f.opts.next);var f=this.turn("view",a.pageMv[h]);e[0]=e[0]&&f[0];e[1]=e[1]&&f[1]}switch(e[0]?e[1]?3:"ltr"==a.direction?2:1:"ltr"==a.direction?1:2){case 1:a.shadow.css({width:d,
height:c,top:0,left:d});break;case 2:a.shadow.css({width:d,height:c,top:0,left:0});break;case 3:a.shadow.css({width:b,height:c,top:0,left:0})}},_setPageLoc:function(a){var b=this.data(),c=this.turn("view"),d=0;if(a==c[0]||a==c[1])d=1;else if("single"==b.display&&a==c[0]+1||"double"==b.display&&a==c[0]-2||a==c[1]+2)d=2;if(!this.turn("animating"))switch(d){case 1:b.pageWrap[a].css({zIndex:b.totalPages,display:""});break;case 2:b.pageWrap[a].css({zIndex:b.totalPages-1,display:""});break;case 0:b.pageWrap[a].css({zIndex:0,
display:b.pageObjs[a].hasClass("fixed")?"":"none"})}return d},options:function(a){if(void 0===a)return this.data().opts;var b=this.data();g.extend(b.opts,a);a.pages&&this.turn("pages",a.pages);a.page&&this.turn("page",a.page);a.display&&this.turn("display",a.display);a.direction&&this.turn("direction",a.direction);a.width&&a.height&&this.turn("size",a.width,a.height);if(a.when)for(var c in a.when)if(m(c,a.when))this.off(c).on(c,a.when[c]);return this},version:function(){return"4.1.1"}},h={init:function(a){this.data({f:{disabled:!1,
hover:!1,effect:this.hasClass("hard")?"hard":"sheet"}});this.flip("options",a);h._addPageWrapper.call(this);return this},setData:function(a){var b=this.data();b.f=g.extend(b.f,a);return this},options:function(a){var b=this.data().f;return a?(h.setData.call(this,{opts:g.extend({},b.opts||Z,a)}),this):b.opts},z:function(a){var b=this.data().f;b.opts["z-index"]=a;b.fwrapper&&b.fwrapper.css({zIndex:a||parseInt(b.parent.css("z-index"),10)||0});return this},_cAllowed:function(){var a=this.data().f,b=a.opts.page,
c=a.opts.turn.data(),d=b%2;return"hard"==a.effect?"ltr"==c.direction?[d?"r":"l"]:[d?"l":"r"]:"single"==c.display?1==b?"ltr"==c.direction?u.forward:u.backward:b==c.totalPages?"ltr"==c.direction?u.backward:u.forward:u.all:"ltr"==c.direction?u[d?"forward":"backward"]:u[d?"backward":"forward"]},_cornerActivated:function(a){var b=this.data().f,c=this.width(),d=this.height();a={x:a.x,y:a.y,corner:""};var e=b.opts.cornerSize;if(0>=a.x||0>=a.y||a.x>=c||a.y>=d)return!1;var g=h._cAllowed.call(this);switch(b.effect){case "hard":if(a.x>
c-e)a.corner="r";else if(a.x<e)a.corner="l";else return!1;break;case "sheet":if(a.y<e)a.corner+="t";else if(a.y>=d-e)a.corner+="b";else return!1;if(a.x<=e)a.corner+="l";else if(a.x>=c-e)a.corner+="r";else return!1}return a.corner&&-1!=g.indexOf(a.corner)?a:!1},_isIArea:function(a){var b=this.data().f.parent.offset();a=x&&a.originalEvent?a.originalEvent.touches[0]:a;return h._cornerActivated.call(this,{x:a.pageX-b.left,y:a.pageY-b.top})},_c:function(a,b){b=b||0;switch(a){case "tl":return l(b,b);case "tr":return l(this.width()-
b,b);case "bl":return l(b,this.height()-b);case "br":return l(this.width()-b,this.height()-b);case "l":return l(b,0);case "r":return l(this.width()-b,0)}},_c2:function(a){switch(a){case "tl":return l(2*this.width(),0);case "tr":return l(-this.width(),0);case "bl":return l(2*this.width(),this.height());case "br":return l(-this.width(),this.height());case "l":return l(2*this.width(),0);case "r":return l(-this.width(),0)}},_foldingPage:function(){var a=this.data().f;if(a){var b=a.opts;if(b.turn)return a=
b.turn.data(),"single"==a.display?1<b.next||1<b.page?a.pageObjs[0]:null:a.pageObjs[b.next]}},_backGradient:function(){var a=this.data().f,b=a.opts.turn.data();(b=b.opts.gradients&&("single"==b.display||2!=a.opts.page&&a.opts.page!=b.totalPages-1))&&!a.bshadow&&(a.bshadow=g("<div/>",q(0,0,1)).css({position:"",width:this.width(),height:this.height()}).appendTo(a.parent));return b},type:function(){return this.data().f.effect},resize:function(a){var b=this.data().f,c=b.opts.turn.data(),d=this.width(),
e=this.height();switch(b.effect){case "hard":a&&(b.wrapper.css({width:d,height:e}),b.fpage.css({width:d,height:e}),c.opts.gradients&&(b.ashadow.css({width:d,height:e}),b.bshadow.css({width:d,height:e})));break;case "sheet":a&&(a=Math.round(Math.sqrt(Math.pow(d,2)+Math.pow(e,2))),b.wrapper.css({width:a,height:a}),b.fwrapper.css({width:a,height:a}).children(":first-child").css({width:d,height:e}),b.fpage.css({width:d,height:e}),c.opts.gradients&&b.ashadow.css({width:d,height:e}),h._backGradient.call(this)&&
b.bshadow.css({width:d,height:e})),b.parent.is(":visible")&&(c=B(b.parent[0]),b.fwrapper.css({top:c.top,left:c.left}),c=B(b.opts.turn[0]),b.fparent.css({top:-c.top,left:-c.left})),this.flip("z",b.opts["z-index"])}},_addPageWrapper:function(){var a=this.data().f,b=a.opts.turn.data(),c=this.parent();a.parent=c;if(!a.wrapper)switch(a.effect){case "hard":var d={"transform-style":"preserve-3d","backface-visibility":"hidden"};a.wrapper=g("<div/>",q(0,0,2)).css(d).appendTo(c).prepend(this);a.fpage=g("<div/>",
q(0,0,1)).css(d).appendTo(c);b.opts.gradients&&(a.ashadow=g("<div/>",q(0,0,0)).hide().appendTo(c),a.bshadow=g("<div/>",q(0,0,0)));break;case "sheet":this.width(),this.height(),a.fparent=a.opts.turn.data().fparent,a.fparent||(d=g("<div/>",{css:{"pointer-events":"none"}}).hide(),d.data().flips=0,d.css(q(0,0,"auto","visible").css).appendTo(a.opts.turn),a.opts.turn.data().fparent=d,a.fparent=d),this.css({position:"absolute",top:0,left:0,bottom:"auto",right:"auto"}),a.wrapper=g("<div/>",q(0,0,this.css("z-index"))).appendTo(c).prepend(this),
a.fwrapper=g("<div/>",q(c.offset().top,c.offset().left)).hide().appendTo(a.fparent),a.fpage=g("<div/>",q(0,0,0,"visible")).css({cursor:"default"}).appendTo(a.fwrapper),b.opts.gradients&&(a.ashadow=g("<div/>",q(0,0,1)).appendTo(a.fpage)),h.setData.call(this,a)}h.resize.call(this,!0)},_fold:function(a){var b=this.data().f,c=b.opts.turn.data(),d=h._c.call(this,a.corner),e=this.width(),g=this.height();switch(b.effect){case "hard":a.x="l"==a.corner?Math.min(Math.max(a.x,0),2*e):Math.max(Math.min(a.x,e),
-e);var f=c.totalPages,m=b.opts["z-index"]||f,V={overflow:"visible"},r=d.x?(d.x-a.x)/e:a.x/e,n=90*r,q=90>n;switch(a.corner){case "l":var t="0% 50%";var u="100% 50%";if(q){var y=0;var w=0<b.opts.next-1;var v=1}else y="100%",w=b.opts.page+1<f,v=0;break;case "r":t="100% 50%",u="0% 50%",n=-n,e=-e,q?(y=0,w=b.opts.next+1<f,v=0):(y="-100%",w=1!=b.opts.page,v=1)}V["perspective-origin"]=u;b.wrapper.transform("rotateY("+n+"deg)translate3d(0px, 0px, "+(this.attr("depth")||0)+"px)",u);b.fpage.transform("translateX("+
e+"px) rotateY("+(180+n)+"deg)",t);b.parent.css(V);q?(r=-r+1,b.wrapper.css({zIndex:m+1}),b.fpage.css({zIndex:m})):(--r,b.wrapper.css({zIndex:m}),b.fpage.css({zIndex:m+1}));c.opts.gradients&&(w?b.ashadow.css({display:"",left:y,backgroundColor:"rgba(0,0,0,"+.5*r+")"}).transform("rotateY(0deg)"):b.ashadow.hide(),b.bshadow.css({opacity:-r+1}),q?b.bshadow.parent()[0]!=b.wrapper[0]&&b.bshadow.appendTo(b.wrapper):b.bshadow.parent()[0]!=b.fpage[0]&&b.bshadow.appendTo(b.fpage),R(b.bshadow,l(100*v,0),l(100*
(-v+1),0),[[0,"rgba(0,0,0,0.3)"],[1,"rgba(0,0,0,0)"]],2));break;case "sheet":var x=this,J=0,B,C,D,O,A,P,G,z=l(0,0),S=l(0,0),p=l(0,0),L=h._foldingPage.call(this),Q=c.opts.acceleration,T=b.wrapper.height(),F="t"==a.corner.substr(0,1),E="l"==a.corner.substr(1,1),K=function(){var b=l(0,0),f=l(0,0);b.x=d.x?d.x-a.x:a.x;b.y=d.y?d.y-a.y:a.y;f.x=E?e-b.x/2:a.x+b.x/2;f.y=b.y/2;var k=N-Math.atan2(b.y,b.x),n=Math.max(0,Math.sin(k-Math.atan2(f.y,f.x))*Math.sqrt(Math.pow(f.x,2)+Math.pow(f.y,2)));J=k/M*180;p=l(n*
Math.sin(k),n*Math.cos(k));if(k>N&&(p.x+=Math.abs(p.y*b.y/b.x),p.y=0,Math.round(p.x*Math.tan(M-k))<g))return a.y=Math.sqrt(Math.pow(g,2)+2*f.x*b.x),F&&(a.y=g-a.y),K();k>N&&(b=M-k,f=T-g/Math.sin(b),z=l(Math.round(f*Math.cos(b)),Math.round(f*Math.sin(b))),E&&(z.x=-z.x),F&&(z.y=-z.y));B=Math.round(p.y/Math.tan(k)+p.x);b=e-B;f=b*Math.cos(2*k);n=b*Math.sin(2*k);S=l(Math.round(E?b-f:B+f),Math.round(F?n:g-n));c.opts.gradients&&(A=b*Math.sin(k),b=h._c2.call(x,a.corner),b=Math.sqrt(Math.pow(b.x-a.x,2)+Math.pow(b.y-
a.y,2))/e,G=Math.sin(N*(1<b?2-b:b)),P=Math.min(b,1),O=100<A?(A-100)/A:0,C=l(A*Math.sin(k)/e*100,A*Math.cos(k)/g*100),h._backGradient.call(x)&&(D=l(1.2*A*Math.sin(k)/e*100,1.2*A*Math.cos(k)/g*100),E||(D.x=100-D.x),F||(D.y=100-D.y)));p.x=Math.round(p.x);p.y=Math.round(p.y);return!0};y=function(a,d,f,k){var n=["0","auto"],p=(e-T)*f[0]/100,m=(g-T)*f[1]/100;d={left:n[d[0]],top:n[d[1]],right:n[d[2]],bottom:n[d[3]]};n={};var q=90!=k&&-90!=k?E?-1:1:0,r=f[0]+"% "+f[1]+"%";x.css(d).transform(I(k)+H(a.x+q,a.y,
Q),r);b.fpage.css(d).transform(I(k)+H(a.x+S.x-z.x-e*f[0]/100,a.y+S.y-z.y-g*f[1]/100,Q)+I((180/k-2)*k),r);b.wrapper.transform(H(-a.x+p-q,-a.y+m,Q)+I(-k),r);b.fwrapper.transform(H(-a.x+z.x+p,-a.y+z.y+m,Q)+I(-k),r);c.opts.gradients&&(f[0]&&(C.x=100-C.x),f[1]&&(C.y=100-C.y),n["box-shadow"]="0 0 20px rgba(0,0,0,"+.5*G+")",L.css(n),R(b.ashadow,l(E?100:0,F?0:100),l(C.x,C.y),[[O,"rgba(0,0,0,0)"],[.8*(1-O)+O,"rgba(0,0,0,"+.2*P+")"],[1,"rgba(255,255,255,"+.2*P+")"]],3,0),h._backGradient.call(x)&&R(b.bshadow,
l(E?0:100,F?0:100),l(D.x,D.y),[[.6,"rgba(0,0,0,0)"],[.8,"rgba(0,0,0,"+.3*P+")"],[1,"rgba(0,0,0,0)"]],3))};switch(a.corner){case "tl":a.x=Math.max(a.x,1);K();y(p,[1,0,0,1],[100,0],J);break;case "tr":a.x=Math.min(a.x,e-1);K();y(l(-p.x,p.y),[0,0,0,1],[0,0],-J);break;case "bl":a.x=Math.max(a.x,1);K();y(l(p.x,-p.y),[1,1,0,0],[100,100],-J);break;case "br":a.x=Math.min(a.x,e-1),K(),y(l(-p.x,-p.y),[0,1,1,0],[0,100],J)}}b.point=a},_moveFoldingPage:function(a){var b=this.data().f;if(b){var c=b.opts.turn,d=
c.data(),e=d.pagePlace;a?(d=b.opts.next,e[d]!=b.opts.page&&(b.folding&&h._moveFoldingPage.call(this,!1),h._foldingPage.call(this).appendTo(b.fpage),e[d]=b.opts.page,b.folding=d),c.turn("update")):b.folding&&(d.pages[b.folding]?(c=d.pages[b.folding].data().f,d.pageObjs[b.folding].appendTo(c.wrapper)):d.pageWrap[b.folding]&&d.pageObjs[b.folding].appendTo(d.pageWrap[b.folding]),b.folding in e&&(e[b.folding]=b.folding),delete b.folding)}},_showFoldedPage:function(a,b){var c=h._foldingPage.call(this),
d=this.data(),e=d.f,f=e.visible;if(c){if(!f||!e.point||e.point.corner!=a.corner)if(c="hover"==e.status||"peel"==e.status||e.opts.turn.data().mouseAction?a.corner:null,f=!1,"prevented"==v("start",this,[e.opts,c]))return!1;if(b){var g=this;b=e.point&&e.point.corner==a.corner?e.point:h._c.call(this,a.corner,1);this.animatef({from:[b.x,b.y],to:[a.x,a.y],duration:500,frame:function(b){a.x=Math.round(b[0]);a.y=Math.round(b[1]);h._fold.call(g,a)}})}else h._fold.call(this,a),d.effect&&!d.effect.turning&&
this.animatef(!1);if(!f)switch(e.effect){case "hard":e.visible=!0;h._moveFoldingPage.call(this,!0);e.fpage.show();e.opts.shadows&&e.bshadow.show();break;case "sheet":e.visible=!0,e.fparent.show().data().flips++,h._moveFoldingPage.call(this,!0),e.fwrapper.show(),e.bshadow&&e.bshadow.show()}return!0}return!1},hide:function(){var a=this.data().f,b=a.opts.turn.data(),c=h._foldingPage.call(this);switch(a.effect){case "hard":b.opts.gradients&&(a.bshadowLoc=0,a.bshadow.remove(),a.ashadow.hide());a.wrapper.transform("");
a.fpage.hide();break;case "sheet":0===--a.fparent.data().flips&&a.fparent.hide(),this.css({left:0,top:0,right:"auto",bottom:"auto"}).transform(""),a.wrapper.transform(""),a.fwrapper.hide(),a.bshadow&&a.bshadow.hide(),c.transform("")}a.visible=!1;return this},hideFoldedPage:function(a){var b=this.data().f;if(b.point){var c=this,d=b.point,e=function(){b.point=null;b.status="";c.flip("hide");c.trigger("end",[b.opts,!1])};if(a){var f=h._c.call(this,d.corner);a="t"==d.corner.substr(0,1)?Math.min(0,d.y-
f.y)/2:Math.max(0,d.y-f.y)/2;var g=l(d.x,d.y+a),m=l(f.x,f.y-a);this.animatef({from:0,to:1,frame:function(a){a=L(d,g,m,f,a);d.x=a.x;d.y=a.y;h._fold.call(c,d)},complete:e,duration:800,hiding:!0})}else this.animatef(!1),e()}},turnPage:function(a){var b=this,c=this.data().f,d=c.opts.turn.data();a={corner:c.corner?c.corner.corner:a||h._cAllowed.call(this)[0]};var e=c.point||h._c.call(this,a.corner,c.opts.turn?d.opts.elevation:0),f=h._c2.call(this,a.corner);this.trigger("flip").animatef({from:0,to:1,frame:function(c){c=
L(e,e,f,f,c);a.x=c.x;a.y=c.y;h._showFoldedPage.call(b,a)},complete:function(){b.trigger("end",[c.opts,!0])},duration:d.opts.duration,turning:!0});c.corner=null},moving:function(){return"effect"in this.data()},isTurning:function(){return this.flip("moving")&&this.data().effect.turning},corner:function(){return this.data().f.corner},_eventStart:function(a){var b=this.data().f,c=b.opts.turn;if(!b.corner&&!b.disabled&&!this.flip("isTurning")&&b.opts.page==c.data().pagePlace[b.opts.page]){b.corner=h._isIArea.call(this,
a);if(b.corner&&h._foldingPage.call(this))return this.trigger("pressed",[b.point]),h._showFoldedPage.call(this,b.corner),!1;b.corner=null}},_eventMove:function(a){var b=this.data().f;if(!b.disabled)if(a=x?a.originalEvent.touches:[a],b.corner){var c=b.parent.offset();b.corner.x=a[0].pageX-c.left;b.corner.y=a[0].pageY-c.top;h._showFoldedPage.call(this,b.corner)}else if(b.hover&&!this.data().effect&&this.is(":visible"))if(a=h._isIArea.call(this,a[0])){if("sheet"==b.effect&&2==a.corner.length||"hard"==
b.effect)b.status="hover",b=h._c.call(this,a.corner,b.opts.cornerSize/2),a.x=b.x,a.y=b.y,h._showFoldedPage.call(this,a,!0)}else"hover"==b.status&&(b.status="",h.hideFoldedPage.call(this,!0))},_eventEnd:function(){var a=this.data().f,b=a.corner;!a.disabled&&b&&"prevented"!=v("released",this,[a.point||b])&&h.hideFoldedPage.call(this,!0);a.corner=null},disable:function(a){h.setData.call(this,{disabled:a});return this},hover:function(a){h.setData.call(this,{hover:a});return this},peel:function(a,b){var c=
this.data().f;if(a){if(-1==u.all.indexOf(a))throw t("Corner "+a+" is not permitted");if(-1!=h._cAllowed.call(this).indexOf(a)){var d=h._c.call(this,a,c.opts.cornerSize/2);c.status="peel";h._showFoldedPage.call(this,{corner:a,x:d.x,y:d.y},b)}}else c.status="",h.hideFoldedPage.call(this,b);return this}};g.extend(g.fn,{flip:function(){return G(g(this[0]),h,arguments)},turn:function(){return G(g(this[0]),f,arguments)},transform:function(a,b){var c={};b&&(c["transform-origin"]=b);c.transform=a;return this.css(c)},
animatef:function(a){var b=this.data();b.effect&&b.effect.stop();if(a){a.to.length||(a.to=[a.to]);a.from.length||(a.from=[a.from]);for(var c=[],d=a.to.length,e=!0,f=this,h=(new Date).getTime(),l=function(){if(b.effect&&e){for(var g=[],k=Math.min(a.duration,(new Date).getTime()-h),m=0;m<d;m++)g.push(b.effect.easing(1,k,a.from[m],c[m],a.duration));a.frame(1==d?g[0]:g);k==a.duration?(delete b.effect,f.data(b),a.complete&&a.complete()):window.requestAnimationFrame(l)}},m=0;m<d;m++)c.push(a.to[m]-a.from[m]);
b.effect=g.extend({stop:function(){e=!1},easing:function(a,b,c,d,e){return d*Math.sqrt(1-(b=b/e-1)*b)+c}},a);this.data(b);l()}else delete b.effect}});g.isTouch=x;g.mouseEvents=w;g.findPos=B})(jQuery);