From: Vincent Vanwaelscappel Date: Thu, 2 Sep 2021 13:42:29 +0000 (+0200) Subject: wip #4662 @1 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=89ec7ed14a6fc6170588fffda88d244200f80d34;p=odl.git wip #4662 @1 --- diff --git a/app/Templates/Base.php b/app/Templates/Base.php new file mode 100644 index 0000000..6dfe1bd --- /dev/null +++ b/app/Templates/Base.php @@ -0,0 +1,18 @@ +addField(['name' => 'content', + 'type' => 'Markdown', + 'label' => 'Contenus', + 'tab'=>'Contenus']); + } +} diff --git a/resources/fluidbook/.gitignore b/resources/fluidbook/.gitignore new file mode 100644 index 0000000..39f0ec9 --- /dev/null +++ b/resources/fluidbook/.gitignore @@ -0,0 +1,6 @@ +data/background/150/* +data/background/300/* +data/contents/* +data/thumbnails/* +data/document.pdf +data/datas.js diff --git a/resources/fluidbook/cover.jpg b/resources/fluidbook/cover.jpg new file mode 100644 index 0000000..b2e309a Binary files /dev/null and b/resources/fluidbook/cover.jpg differ diff --git a/resources/fluidbook/data/aria.js b/resources/fluidbook/data/aria.js new file mode 100644 index 0000000..d5b4bd8 --- /dev/null +++ b/resources/fluidbook/data/aria.js @@ -0,0 +1 @@ +(function($){function JQAriaRadio(element){this.element=element;this.optionSelector='[role="radio"]';this.options=$(element).find(this.optionSelector);this.init()}JQAriaRadio.prototype={init:function(){var $this=this;$(this.element).on("click",this.optionSelector,function(){if($(this).hasClass("disabled")){return true}var r=$(this).find("input[type=radio]");r.prop("checked",true);$this.update();return false});$(this.element).on("keydown",function(e){var active=$(document.activeElement);if(!active.is($this.optionSelector)){return true}if(e.keyCode>=37&&e.keyCode<=40){fluidbook.keyboard._navigate($this.optionSelector,e.keyCode===37||e.keyCode===38?-1:1,["focus","click"]);e.preventDefault();return false}return true});$(this.options).each(function(){$(this).addClass("ignore-tab-children")});this.update()},update:function(){$(this.options).each(function(){var r=$(this).find('input[type="radio"]');if($(r).prop("checked")){$(this).attr("tabindex",0).attr("aria-checked",true)}else{$(this).attr("tabindex",-1).attr("aria-checked",false)}})}};jQuery.fn.AriaRadio=function(){return this.each(function(){var $this=$(this);if($(this).data("AriaRadio")===undefined){$(this).data("AriaRadio",new JQAriaRadio($this))}})}})(jQuery); \ No newline at end of file diff --git a/resources/fluidbook/data/bluebird.js b/resources/fluidbook/data/bluebird.js new file mode 100644 index 0000000..cab099c --- /dev/null +++ b/resources/fluidbook/data/bluebird.js @@ -0,0 +1,32 @@ +/* @preserve + * The MIT License (MIT) + * + * Copyright (c) 2013-2018 Petka Antonov + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + */ +/** + * bluebird build version 3.5.5 + * Features enabled: core, race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each + */ +!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;"undefined"!=typeof window?e=window:"undefined"!=typeof global?e=global:"undefined"!=typeof self&&(e=self),e.Promise=t()}}(function(){var t,e,n;return function r(t,e,n){function i(s,a){if(!e[s]){if(!t[s]){var c="function"==typeof _dereq_&&_dereq_;if(!a&&c)return c(s,!0);if(o)return o(s,!0);var l=new Error("Cannot find module '"+s+"'");throw l.code="MODULE_NOT_FOUND",l}var u=e[s]={exports:{}};t[s][0].call(u.exports,function(e){var n=t[s][1][e];return i(n?n:e)},u,u.exports,r,t,e,n)}return e[s].exports}for(var o="function"==typeof _dereq_&&_dereq_,s=0;s0;)c(t)}function c(t){var e=t.shift();if("function"!=typeof e)e._settlePromises();else{var n=t.shift(),r=t.shift();e.call(n,r)}}var l;try{throw new Error}catch(u){l=u}var p=t("./schedule"),h=t("./queue"),f=t("./util");r.prototype.setScheduler=function(t){var e=this._schedule;return this._schedule=t,this._customScheduler=!0,e},r.prototype.hasCustomScheduler=function(){return this._customScheduler},r.prototype.enableTrampoline=function(){this._trampolineEnabled=!0},r.prototype.disableTrampolineIfNecessary=function(){f.hasDevTools&&(this._trampolineEnabled=!1)},r.prototype.haveItemsQueued=function(){return this._isTickUsed||this._haveDrainedQueues},r.prototype.fatalError=function(t,e){e?(process.stderr.write("Fatal "+(t instanceof Error?t.stack:t)+"\n"),process.exit(2)):this.throwLater(t)},r.prototype.throwLater=function(t,e){if(1===arguments.length&&(e=t,t=function(){throw e}),"undefined"!=typeof setTimeout)setTimeout(function(){t(e)},0);else try{this._schedule(function(){t(e)})}catch(n){throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n")}},f.hasDevTools?(r.prototype.invokeLater=function(t,e,n){this._trampolineEnabled?i.call(this,t,e,n):this._schedule(function(){setTimeout(function(){t.call(e,n)},100)})},r.prototype.invoke=function(t,e,n){this._trampolineEnabled?o.call(this,t,e,n):this._schedule(function(){t.call(e,n)})},r.prototype.settlePromises=function(t){this._trampolineEnabled?s.call(this,t):this._schedule(function(){t._settlePromises()})}):(r.prototype.invokeLater=i,r.prototype.invoke=o,r.prototype.settlePromises=s),r.prototype._drainQueues=function(){a(this._normalQueue),this._reset(),this._haveDrainedQueues=!0,a(this._lateQueue)},r.prototype._queueTick=function(){this._isTickUsed||(this._isTickUsed=!0,this._schedule(this.drainQueues))},r.prototype._reset=function(){this._isTickUsed=!1},e.exports=r,e.exports.firstLineError=l},{"./queue":26,"./schedule":29,"./util":36}],3:[function(t,e,n){"use strict";e.exports=function(t,e,n,r){var i=!1,o=function(t,e){this._reject(e)},s=function(t,e){e.promiseRejectionQueued=!0,e.bindingPromise._then(o,o,null,this,t)},a=function(t,e){0===(50397184&this._bitField)&&this._resolveCallback(e.target)},c=function(t,e){e.promiseRejectionQueued||this._reject(t)};t.prototype.bind=function(o){i||(i=!0,t.prototype._propagateFrom=r.propagateFromFunction(),t.prototype._boundValue=r.boundValueFunction());var l=n(o),u=new t(e);u._propagateFrom(this,1);var p=this._target();if(u._setBoundTo(l),l instanceof t){var h={promiseRejectionQueued:!1,promise:u,target:p,bindingPromise:l};p._then(e,s,void 0,u,h),l._then(a,c,void 0,u,h),u._setOnCancel(l)}else u._resolveCallback(p);return u},t.prototype._setBoundTo=function(t){void 0!==t?(this._bitField=2097152|this._bitField,this._boundTo=t):this._bitField=-2097153&this._bitField},t.prototype._isBound=function(){return 2097152===(2097152&this._bitField)},t.bind=function(e,n){return t.resolve(n).bind(e)}}},{}],4:[function(t,e,n){"use strict";function r(){try{Promise===o&&(Promise=i)}catch(t){}return o}var i;"undefined"!=typeof Promise&&(i=Promise);var o=t("./promise")();o.noConflict=r,e.exports=o},{"./promise":22}],5:[function(t,e,n){"use strict";var r=Object.create;if(r){var i=r(null),o=r(null);i[" size"]=o[" size"]=0}e.exports=function(e){function n(t,n){var r;if(null!=t&&(r=t[n]),"function"!=typeof r){var i="Object "+a.classString(t)+" has no method '"+a.toString(n)+"'";throw new e.TypeError(i)}return r}function r(t){var e=this.pop(),r=n(t,e);return r.apply(t,this)}function i(t){return t[this]}function o(t){var e=+this;return 0>e&&(e=Math.max(0,e+t.length)),t[e]}var s,a=t("./util"),c=a.canEvaluate;a.isIdentifier;e.prototype.call=function(t){var e=[].slice.call(arguments,1);return e.push(t),this._then(r,void 0,void 0,e,void 0)},e.prototype.get=function(t){var e,n="number"==typeof t;if(n)e=o;else if(c){var r=s(t);e=null!==r?r:i}else e=i;return this._then(e,void 0,void 0,t,void 0)}}},{"./util":36}],6:[function(t,e,n){"use strict";e.exports=function(e,n,r,i){var o=t("./util"),s=o.tryCatch,a=o.errorObj,c=e._async;e.prototype["break"]=e.prototype.cancel=function(){if(!i.cancellation())return this._warn("cancellation is disabled");for(var t=this,e=t;t._isCancellable();){if(!t._cancelBy(e)){e._isFollowing()?e._followee().cancel():e._cancelBranched();break}var n=t._cancellationParent;if(null==n||!n._isCancellable()){t._isFollowing()?t._followee().cancel():t._cancelBranched();break}t._isFollowing()&&t._followee().cancel(),t._setWillBeCancelled(),e=t,t=n}},e.prototype._branchHasCancelled=function(){this._branchesRemainingToCancel--},e.prototype._enoughBranchesHaveCancelled=function(){return void 0===this._branchesRemainingToCancel||this._branchesRemainingToCancel<=0},e.prototype._cancelBy=function(t){return t===this?(this._branchesRemainingToCancel=0,this._invokeOnCancel(),!0):(this._branchHasCancelled(),this._enoughBranchesHaveCancelled()?(this._invokeOnCancel(),!0):!1)},e.prototype._cancelBranched=function(){this._enoughBranchesHaveCancelled()&&this._cancel()},e.prototype._cancel=function(){this._isCancellable()&&(this._setCancelled(),c.invoke(this._cancelPromises,this,void 0))},e.prototype._cancelPromises=function(){this._length()>0&&this._settlePromises()},e.prototype._unsetOnCancel=function(){this._onCancelField=void 0},e.prototype._isCancellable=function(){return this.isPending()&&!this._isCancelled()},e.prototype.isCancellable=function(){return this.isPending()&&!this.isCancelled()},e.prototype._doInvokeOnCancel=function(t,e){if(o.isArray(t))for(var n=0;n=0?o[t]:void 0}var i=!1,o=[];return t.prototype._promiseCreated=function(){},t.prototype._pushContext=function(){},t.prototype._popContext=function(){return null},t._peekContext=t.prototype._peekContext=function(){},e.prototype._pushContext=function(){void 0!==this._trace&&(this._trace._promiseCreated=null,o.push(this._trace))},e.prototype._popContext=function(){if(void 0!==this._trace){var t=o.pop(),e=t._promiseCreated;return t._promiseCreated=null,e}return null},e.CapturedTrace=null,e.create=n,e.deactivateLongStackTraces=function(){},e.activateLongStackTraces=function(){var n=t.prototype._pushContext,o=t.prototype._popContext,s=t._peekContext,a=t.prototype._peekContext,c=t.prototype._promiseCreated;e.deactivateLongStackTraces=function(){t.prototype._pushContext=n,t.prototype._popContext=o,t._peekContext=s,t.prototype._peekContext=a,t.prototype._promiseCreated=c,i=!1},i=!0,t.prototype._pushContext=e.prototype._pushContext,t.prototype._popContext=e.prototype._popContext,t._peekContext=t.prototype._peekContext=r,t.prototype._promiseCreated=function(){var t=this._peekContext();t&&null==t._promiseCreated&&(t._promiseCreated=this)}},e}},{}],9:[function(t,e,n){"use strict";e.exports=function(e,n){function r(t,e){return{promise:e}}function i(){return!1}function o(t,e,n){var r=this;try{t(e,n,function(t){if("function"!=typeof t)throw new TypeError("onCancel must be a function, got: "+H.toString(t));r._attachCancellationCallback(t)})}catch(i){return i}}function s(t){if(!this._isCancellable())return this;var e=this._onCancel();void 0!==e?H.isArray(e)?e.push(t):this._setOnCancel([e,t]):this._setOnCancel(t)}function a(){return this._onCancelField}function c(t){this._onCancelField=t}function l(){this._cancellationParent=void 0,this._onCancelField=void 0}function u(t,e){if(0!==(1&e)){this._cancellationParent=t;var n=t._branchesRemainingToCancel;void 0===n&&(n=0),t._branchesRemainingToCancel=n+1}0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function p(t,e){0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function h(){var t=this._boundTo;return void 0!==t&&t instanceof e?t.isFulfilled()?t.value():void 0:t}function f(){this._trace=new O(this._peekContext())}function _(t,e){if(U(t)){var n=this._trace;if(void 0!==n&&e&&(n=n._parent),void 0!==n)n.attachExtraTrace(t);else if(!t.__stackCleaned__){var r=E(t);H.notEnumerableProp(t,"stack",r.message+"\n"+r.stack.join("\n")),H.notEnumerableProp(t,"__stackCleaned__",!0)}}}function d(){this._trace=void 0}function v(t,e,n,r,i){if(void 0===t&&null!==e&&J){if(void 0!==i&&i._returnedNonUndefined())return;if(0===(65535&r._bitField))return;n&&(n+=" ");var o="",s="";if(e._trace){for(var a=e._trace.stack.split("\n"),c=C(a),l=c.length-1;l>=0;--l){var u=c[l];if(!q.test(u)){var p=u.match($);p&&(o="at "+p[1]+":"+p[2]+":"+p[3]+" ");break}}if(c.length>0)for(var h=c[0],l=0;l0&&(s="\n"+a[l-1]);break}}var f="a promise was created in a "+n+"handler "+o+"but was not returned from it, see http://goo.gl/rRqMUw"+s;r._warn(f,!0,e)}}function y(t,e){var n=t+" is deprecated and will be removed in a future version.";return e&&(n+=" Use "+e+" instead."),m(n)}function m(t,n,r){if(at.warnings){var i,o=new N(t);if(n)r._attachExtraTrace(o);else if(at.longStackTraces&&(i=e._peekContext()))i.attachExtraTrace(o);else{var s=E(o);o.stack=s.message+"\n"+s.stack.join("\n")}nt("warning",o)||k(o,"",!0)}}function g(t,e){for(var n=0;n=0;--a)if(r[a]===o){s=a;break}for(var a=s;a>=0;--a){var c=r[a];if(e[i]!==c)break;e.pop(),i--}e=r}}function C(t){for(var e=[],n=0;n0&&"SyntaxError"!=t.name&&(e=e.slice(n)),e}function E(t){var e=t.stack,n=t.toString();return e="string"==typeof e&&e.length>0?j(t):[" (No stack trace)"],{message:n,stack:"SyntaxError"==t.name?e:C(e)}}function k(t,e,n){if("undefined"!=typeof console){var r;if(H.isObject(t)){var i=t.stack;r=e+G(i,t)}else r=e+String(t);"function"==typeof V?V(r,n):("function"==typeof console.log||"object"==typeof console.log)&&console.log(r)}}function F(t,e,n,r){var i=!1;try{"function"==typeof e&&(i=!0,"rejectionHandled"===t?e(r):e(n,r))}catch(o){L.throwLater(o)}"unhandledRejection"===t?nt(t,n,r)||i||k(n,"Unhandled rejection "):nt(t,r)}function T(t){var e;if("function"==typeof t)e="[function "+(t.name||"anonymous")+"]";else{e=t&&"function"==typeof t.toString?t.toString():H.toString(t);var n=/\[object [a-zA-Z0-9$_]+\]/;if(n.test(e))try{var r=JSON.stringify(t);e=r}catch(i){}0===e.length&&(e="(empty array)")}return"(<"+x(e)+">, no stack trace)"}function x(t){var e=41;return t.lengths||0>a||!n||!r||n!==r||s>=a||(it=function(t){if(M.test(t))return!0;var e=S(t);return e&&e.fileName===n&&s<=e.line&&e.line<=a?!0:!1})}}function O(t){this._parent=t,this._promisesCreated=0;var e=this._length=1+(void 0===t?0:t._length);st(this,O),e>32&&this.uncycle()}var A,D,V,I=e._getDomain,L=e._async,N=t("./errors").Warning,H=t("./util"),B=t("./es5"),U=H.canAttachTrace,M=/[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/,q=/\((?:timers\.js):\d+:\d+\)/,$=/[\/<\(](.+?):(\d+):(\d+)\)?\s*$/,Q=null,G=null,z=!1,X=!(0==H.env("BLUEBIRD_DEBUG")||!H.env("BLUEBIRD_DEBUG")&&"development"!==H.env("NODE_ENV")),W=!(0==H.env("BLUEBIRD_WARNINGS")||!X&&!H.env("BLUEBIRD_WARNINGS")),K=!(0==H.env("BLUEBIRD_LONG_STACK_TRACES")||!X&&!H.env("BLUEBIRD_LONG_STACK_TRACES")),J=0!=H.env("BLUEBIRD_W_FORGOTTEN_RETURN")&&(W||!!H.env("BLUEBIRD_W_FORGOTTEN_RETURN"));e.prototype.suppressUnhandledRejections=function(){var t=this._target();t._bitField=-1048577&t._bitField|524288},e.prototype._ensurePossibleRejectionHandled=function(){if(0===(524288&this._bitField)){this._setRejectionIsUnhandled();var t=this;setTimeout(function(){t._notifyUnhandledRejection()},1)}},e.prototype._notifyUnhandledRejectionIsHandled=function(){F("rejectionHandled",A,void 0,this)},e.prototype._setReturnedNonUndefined=function(){this._bitField=268435456|this._bitField},e.prototype._returnedNonUndefined=function(){return 0!==(268435456&this._bitField)},e.prototype._notifyUnhandledRejection=function(){if(this._isRejectionUnhandled()){var t=this._settledValue();this._setUnhandledRejectionIsNotified(),F("unhandledRejection",D,t,this)}},e.prototype._setUnhandledRejectionIsNotified=function(){this._bitField=262144|this._bitField},e.prototype._unsetUnhandledRejectionIsNotified=function(){this._bitField=-262145&this._bitField},e.prototype._isUnhandledRejectionNotified=function(){return(262144&this._bitField)>0},e.prototype._setRejectionIsUnhandled=function(){this._bitField=1048576|this._bitField},e.prototype._unsetRejectionIsUnhandled=function(){this._bitField=-1048577&this._bitField,this._isUnhandledRejectionNotified()&&(this._unsetUnhandledRejectionIsNotified(),this._notifyUnhandledRejectionIsHandled())},e.prototype._isRejectionUnhandled=function(){return(1048576&this._bitField)>0},e.prototype._warn=function(t,e,n){return m(t,e,n||this)},e.onPossiblyUnhandledRejection=function(t){var e=I();D="function"==typeof t?null===e?t:H.domainBind(e,t):void 0},e.onUnhandledRejectionHandled=function(t){var e=I();A="function"==typeof t?null===e?t:H.domainBind(e,t):void 0};var Y=function(){};e.longStackTraces=function(){if(L.haveItemsQueued()&&!at.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");if(!at.longStackTraces&&P()){var t=e.prototype._captureStackTrace,r=e.prototype._attachExtraTrace,i=e.prototype._dereferenceTrace;at.longStackTraces=!0,Y=function(){if(L.haveItemsQueued()&&!at.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");e.prototype._captureStackTrace=t,e.prototype._attachExtraTrace=r,e.prototype._dereferenceTrace=i,n.deactivateLongStackTraces(),L.enableTrampoline(),at.longStackTraces=!1},e.prototype._captureStackTrace=f,e.prototype._attachExtraTrace=_,e.prototype._dereferenceTrace=d,n.activateLongStackTraces(),L.disableTrampolineIfNecessary()}},e.hasLongStackTraces=function(){return at.longStackTraces&&P()};var Z=function(){try{if("function"==typeof CustomEvent){var t=new CustomEvent("CustomEvent");return H.global.dispatchEvent(t),function(t,e){var n={detail:e,cancelable:!0};B.defineProperty(n,"promise",{value:e.promise}),B.defineProperty(n,"reason",{value:e.reason});var r=new CustomEvent(t.toLowerCase(),n);return!H.global.dispatchEvent(r)}}if("function"==typeof Event){var t=new Event("CustomEvent");return H.global.dispatchEvent(t),function(t,e){var n=new Event(t.toLowerCase(),{cancelable:!0});return n.detail=e,B.defineProperty(n,"promise",{value:e.promise}),B.defineProperty(n,"reason",{value:e.reason}),!H.global.dispatchEvent(n)}}var t=document.createEvent("CustomEvent");return t.initCustomEvent("testingtheevent",!1,!0,{}),H.global.dispatchEvent(t),function(t,e){var n=document.createEvent("CustomEvent");return n.initCustomEvent(t.toLowerCase(),!1,!0,e),!H.global.dispatchEvent(n)}}catch(e){}return function(){return!1}}(),tt=function(){return H.isNode?function(){return process.emit.apply(process,arguments)}:H.global?function(t){var e="on"+t.toLowerCase(),n=H.global[e];return n?(n.apply(H.global,[].slice.call(arguments,1)),!0):!1}:function(){return!1}}(),et={promiseCreated:r,promiseFulfilled:r,promiseRejected:r,promiseResolved:r,promiseCancelled:r,promiseChained:function(t,e,n){return{promise:e,child:n}},warning:function(t,e){return{warning:e}},unhandledRejection:function(t,e,n){return{reason:e,promise:n}},rejectionHandled:r},nt=function(t){var e=!1;try{e=tt.apply(null,arguments)}catch(n){L.throwLater(n),e=!0}var r=!1;try{r=Z(t,et[t].apply(null,arguments))}catch(n){L.throwLater(n),r=!0}return r||e};e.config=function(t){if(t=Object(t),"longStackTraces"in t&&(t.longStackTraces?e.longStackTraces():!t.longStackTraces&&e.hasLongStackTraces()&&Y()),"warnings"in t){var n=t.warnings;at.warnings=!!n,J=at.warnings,H.isObject(n)&&"wForgottenReturn"in n&&(J=!!n.wForgottenReturn)}if("cancellation"in t&&t.cancellation&&!at.cancellation){if(L.haveItemsQueued())throw new Error("cannot enable cancellation after promises are in use");e.prototype._clearCancellationData=l,e.prototype._propagateFrom=u,e.prototype._onCancel=a,e.prototype._setOnCancel=c,e.prototype._attachCancellationCallback=s,e.prototype._execute=o,rt=u,at.cancellation=!0}return"monitoring"in t&&(t.monitoring&&!at.monitoring?(at.monitoring=!0,e.prototype._fireEvent=nt):!t.monitoring&&at.monitoring&&(at.monitoring=!1,e.prototype._fireEvent=i)),e},e.prototype._fireEvent=i,e.prototype._execute=function(t,e,n){try{t(e,n)}catch(r){return r}},e.prototype._onCancel=function(){},e.prototype._setOnCancel=function(t){},e.prototype._attachCancellationCallback=function(t){},e.prototype._captureStackTrace=function(){},e.prototype._attachExtraTrace=function(){},e.prototype._dereferenceTrace=function(){},e.prototype._clearCancellationData=function(){},e.prototype._propagateFrom=function(t,e){};var rt=p,it=function(){return!1},ot=/[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/;H.inherits(O,Error),n.CapturedTrace=O,O.prototype.uncycle=function(){var t=this._length;if(!(2>t)){for(var e=[],n={},r=0,i=this;void 0!==i;++r)e.push(i),i=i._parent;t=this._length=r;for(var r=t-1;r>=0;--r){var o=e[r].stack;void 0===n[o]&&(n[o]=r)}for(var r=0;t>r;++r){var s=e[r].stack,a=n[s];if(void 0!==a&&a!==r){a>0&&(e[a-1]._parent=void 0,e[a-1]._length=1),e[r]._parent=void 0,e[r]._length=1;var c=r>0?e[r-1]:this;t-1>a?(c._parent=e[a+1],c._parent.uncycle(),c._length=c._parent._length+1):(c._parent=void 0,c._length=1);for(var l=c._length+1,u=r-2;u>=0;--u)e[u]._length=l,l++;return}}}},O.prototype.attachExtraTrace=function(t){if(!t.__stackCleaned__){this.uncycle();for(var e=E(t),n=e.message,r=[e.stack],i=this;void 0!==i;)r.push(C(i.stack.split("\n"))),i=i._parent;w(r),b(r),H.notEnumerableProp(t,"stack",g(n,r)),H.notEnumerableProp(t,"__stackCleaned__",!0)}};var st=function(){var t=/^\s*at\s*/,e=function(t,e){return"string"==typeof t?t:void 0!==e.name&&void 0!==e.message?e.toString():T(e)};if("number"==typeof Error.stackTraceLimit&&"function"==typeof Error.captureStackTrace){Error.stackTraceLimit+=6,Q=t,G=e;var n=Error.captureStackTrace;return it=function(t){return M.test(t)},function(t,e){Error.stackTraceLimit+=6,n(t,e),Error.stackTraceLimit-=6}}var r=new Error;if("string"==typeof r.stack&&r.stack.split("\n")[0].indexOf("stackDetection@")>=0)return Q=/@/,G=e,z=!0,function(t){t.stack=(new Error).stack};var i;try{throw new Error}catch(o){i="stack"in o}return"stack"in r||!i||"number"!=typeof Error.stackTraceLimit?(G=function(t,e){return"string"==typeof t?t:"object"!=typeof e&&"function"!=typeof e||void 0===e.name||void 0===e.message?T(e):e.toString()},null):(Q=t,G=e,function(t){Error.stackTraceLimit+=6;try{throw new Error}catch(e){t.stack=e.stack}Error.stackTraceLimit-=6})}([]);"undefined"!=typeof console&&"undefined"!=typeof console.warn&&(V=function(t){console.warn(t)},H.isNode&&process.stderr.isTTY?V=function(t,e){var n=e?"":"";console.warn(n+t+"\n")}:H.isNode||"string"!=typeof(new Error).stack||(V=function(t,e){console.warn("%c"+t,e?"color: darkorange":"color: red")}));var at={warnings:W,longStackTraces:!1,cancellation:!1,monitoring:!1};return K&&e.longStackTraces(),{longStackTraces:function(){return at.longStackTraces},warnings:function(){return at.warnings},cancellation:function(){return at.cancellation},monitoring:function(){return at.monitoring},propagateFromFunction:function(){return rt},boundValueFunction:function(){return h},checkForgottenReturns:v,setBounds:R,warn:m,deprecated:y,CapturedTrace:O,fireDomEvent:Z,fireGlobalEvent:tt}}},{"./errors":12,"./es5":13,"./util":36}],10:[function(t,e,n){"use strict";e.exports=function(t){function e(){return this.value}function n(){throw this.reason}t.prototype["return"]=t.prototype.thenReturn=function(n){return n instanceof t&&n.suppressUnhandledRejections(),this._then(e,void 0,void 0,{value:n},void 0)},t.prototype["throw"]=t.prototype.thenThrow=function(t){return this._then(n,void 0,void 0,{reason:t},void 0)},t.prototype.catchThrow=function(t){if(arguments.length<=1)return this._then(void 0,n,void 0,{reason:t},void 0);var e=arguments[1],r=function(){throw e};return this.caught(t,r)},t.prototype.catchReturn=function(n){if(arguments.length<=1)return n instanceof t&&n.suppressUnhandledRejections(),this._then(void 0,e,void 0,{value:n},void 0);var r=arguments[1];r instanceof t&&r.suppressUnhandledRejections();var i=function(){return r};return this.caught(n,i)}}},{}],11:[function(t,e,n){"use strict";e.exports=function(t,e){function n(){return o(this)}function r(t,n){return i(t,n,e,e)}var i=t.reduce,o=t.all;t.prototype.each=function(t){return i(this,t,e,0)._then(n,void 0,void 0,this,void 0)},t.prototype.mapSeries=function(t){return i(this,t,e,e)},t.each=function(t,r){return i(t,r,e,0)._then(n,void 0,void 0,t,void 0)},t.mapSeries=r}},{}],12:[function(t,e,n){"use strict";function r(t,e){function n(r){return this instanceof n?(p(this,"message","string"==typeof r?r:e),p(this,"name",t),void(Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):Error.call(this))):new n(r)}return u(n,Error),n}function i(t){return this instanceof i?(p(this,"name","OperationalError"),p(this,"message",t),this.cause=t,this.isOperational=!0,void(t instanceof Error?(p(this,"message",t.message),p(this,"stack",t.stack)):Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor))):new i(t)}var o,s,a=t("./es5"),c=a.freeze,l=t("./util"),u=l.inherits,p=l.notEnumerableProp,h=r("Warning","warning"),f=r("CancellationError","cancellation error"),_=r("TimeoutError","timeout error"),d=r("AggregateError","aggregate error");try{o=TypeError,s=RangeError}catch(v){o=r("TypeError","type error"),s=r("RangeError","range error")}for(var y="join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "),m=0;m1?t.cancelPromise._reject(e):t.cancelPromise._cancel(),t.cancelPromise=null,!0):!1}function a(){return l.call(this,this.promise._target()._settledValue())}function c(t){return s(this,t)?void 0:(h.e=t,h)}function l(t){var i=this.promise,l=this.handler;if(!this.called){this.called=!0;var u=this.isFinallyHandler()?l.call(i._boundValue()):l.call(i._boundValue(),t);if(u===r)return u;if(void 0!==u){i._setReturnedNonUndefined();var f=n(u,i);if(f instanceof e){if(null!=this.cancelPromise){if(f._isCancelled()){var _=new p("late cancellation observer");return i._attachExtraTrace(_),h.e=_,h}f.isPending()&&f._attachCancellationCallback(new o(this))}return f._then(a,c,void 0,this,void 0)}}}return i.isRejected()?(s(this),h.e=t,h):(s(this),t)}var u=t("./util"),p=e.CancellationError,h=u.errorObj,f=t("./catch_filter")(r);return i.prototype.isFinallyHandler=function(){return 0===this.type},o.prototype._resultCancelled=function(){s(this.finallyHandler)},e.prototype._passThrough=function(t,e,n,r){return"function"!=typeof t?this.then():this._then(n,r,void 0,new i(this,e,t),void 0)},e.prototype.lastly=e.prototype["finally"]=function(t){return this._passThrough(t,0,l,l)},e.prototype.tap=function(t){return this._passThrough(t,1,l)},e.prototype.tapCatch=function(t){var n=arguments.length;if(1===n)return this._passThrough(t,1,void 0,l);var r,i=new Array(n-1),o=0;for(r=0;n-1>r;++r){var s=arguments[r];if(!u.isObject(s))return e.reject(new TypeError("tapCatch statement predicate: expecting an object but got "+u.classString(s)));i[o++]=s}i.length=o;var a=arguments[r];return this._passThrough(f(i,a,this),1,void 0,l)},i}},{"./catch_filter":7,"./util":36}],16:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,n,r){for(var o=0;o0&&"function"==typeof arguments[e]){t=arguments[e];var r}var i=[].slice.call(arguments);t&&i.pop();var r=new n(i).promise();return void 0!==t?r.spread(t):r}}},{"./util":36}],18:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,e,n,r){this.constructor$(t),this._promise._captureStackTrace();var i=l();this._callback=null===i?e:u.domainBind(i,e),this._preservedValues=r===o?new Array(this.length()):null,this._limit=n,this._inFlight=0,this._queue=[],f.invoke(this._asyncInit,this,void 0)}function c(t,n,i,o){if("function"!=typeof n)return r("expecting a function but got "+u.classString(n));var s=0;if(void 0!==i){if("object"!=typeof i||null===i)return e.reject(new TypeError("options argument must be an object but it is "+u.classString(i)));if("number"!=typeof i.concurrency)return e.reject(new TypeError("'concurrency' must be a number but it is "+u.classString(i.concurrency)));s=i.concurrency}return s="number"==typeof s&&isFinite(s)&&s>=1?s:0,new a(t,n,s,o).promise()}var l=e._getDomain,u=t("./util"),p=u.tryCatch,h=u.errorObj,f=e._async;u.inherits(a,n),a.prototype._asyncInit=function(){this._init$(void 0,-2)},a.prototype._init=function(){},a.prototype._promiseFulfilled=function(t,n){var r=this._values,o=this.length(),a=this._preservedValues,c=this._limit;if(0>n){if(n=-1*n-1,r[n]=t,c>=1&&(this._inFlight--,this._drainQueue(),this._isResolved()))return!0}else{if(c>=1&&this._inFlight>=c)return r[n]=t,this._queue.push(n),!1;null!==a&&(a[n]=t);var l=this._promise,u=this._callback,f=l._boundValue();l._pushContext();var _=p(u).call(f,t,n,o),d=l._popContext();if(s.checkForgottenReturns(_,d,null!==a?"Promise.filter":"Promise.map",l),_===h)return this._reject(_.e),!0;var v=i(_,this._promise);if(v instanceof e){v=v._target();var y=v._bitField;if(0===(50397184&y))return c>=1&&this._inFlight++,r[n]=v,v._proxy(this,-1*(n+1)),!1;if(0===(33554432&y))return 0!==(16777216&y)?(this._reject(v._reason()),!0):(this._cancel(),!0);_=v._value()}r[n]=_}var m=++this._totalResolved;return m>=o?(null!==a?this._filter(r,a):this._resolve(r),!0):!1},a.prototype._drainQueue=function(){for(var t=this._queue,e=this._limit,n=this._values;t.length>0&&this._inFlighto;++o)t[o]&&(r[i++]=e[o]);r.length=i,this._resolve(r)},a.prototype.preservedValues=function(){return this._preservedValues},e.prototype.map=function(t,e){return c(this,t,e,null)},e.map=function(t,e,n,r){return c(t,e,n,r)}}},{"./util":36}],19:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){var s=t("./util"),a=s.tryCatch;e.method=function(t){if("function"!=typeof t)throw new e.TypeError("expecting a function but got "+s.classString(t));return function(){var r=new e(n);r._captureStackTrace(),r._pushContext();var i=a(t).apply(this,arguments),s=r._popContext();return o.checkForgottenReturns(i,s,"Promise.method",r),r._resolveFromSyncValue(i),r}},e.attempt=e["try"]=function(t){if("function"!=typeof t)return i("expecting a function but got "+s.classString(t));var r=new e(n);r._captureStackTrace(),r._pushContext();var c;if(arguments.length>1){o.deprecated("calling Promise.try with more than 1 argument");var l=arguments[1],u=arguments[2];c=s.isArray(l)?a(t).apply(u,l):a(t).call(u,l)}else c=a(t)();var p=r._popContext();return o.checkForgottenReturns(c,p,"Promise.try",r),r._resolveFromSyncValue(c),r},e.prototype._resolveFromSyncValue=function(t){t===s.errorObj?this._rejectCallback(t.e,!1):this._resolveCallback(t,!0)}}},{"./util":36}],20:[function(t,e,n){"use strict";function r(t){return t instanceof Error&&u.getPrototypeOf(t)===Error.prototype}function i(t){var e;if(r(t)){e=new l(t),e.name=t.name,e.message=t.message,e.stack=t.stack;for(var n=u.keys(t),i=0;i1){var n,r=new Array(e-1),i=0;for(n=0;e-1>n;++n){var o=arguments[n];if(!f.isObject(o))return p("Catch statement predicate: expecting an object but got "+f.classString(o));r[i++]=o}if(r.length=i,t=arguments[n],"function"!=typeof t)throw new m("The last argument to .catch() must be a function, got "+f.toString(t));return this.then(void 0,P(r,t,this))}return this.then(void 0,t)},i.prototype.reflect=function(){return this._then(u,u,void 0,this,void 0)},i.prototype.then=function(t,e){if(T.warnings()&&arguments.length>0&&"function"!=typeof t&&"function"!=typeof e){var n=".then() only accepts functions but was passed: "+f.classString(t);arguments.length>1&&(n+=", "+f.classString(e)),this._warn(n)}return this._then(t,e,void 0,void 0,void 0)},i.prototype.done=function(t,e){var n=this._then(t,e,void 0,void 0,void 0);n._setIsFinal()},i.prototype.spread=function(t){return"function"!=typeof t?p("expecting a function but got "+f.classString(t)):this.all()._then(t,void 0,void 0,w,void 0)},i.prototype.toJSON=function(){var t={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(t.fulfillmentValue=this.value(),t.isFulfilled=!0):this.isRejected()&&(t.rejectionReason=this.reason(),t.isRejected=!0),t},i.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new E(this).promise()},i.prototype.error=function(t){return this.caught(f.originatesFromRejection,t)},i.getNewLibraryCopy=e.exports,i.is=function(t){return t instanceof i},i.fromNode=i.fromCallback=function(t){var e=new i(b);e._captureStackTrace();var n=arguments.length>1?!!Object(arguments[1]).multiArgs:!1,r=O(t)(S(e,n));return r===R&&e._rejectCallback(r.e,!0),e._isFateSealed()||e._setAsyncGuaranteed(),e},i.all=function(t){return new E(t).promise()},i.cast=function(t){var e=j(t);return e instanceof i||(e=new i(b),e._captureStackTrace(),e._setFulfilled(),e._rejectionHandler0=t),e},i.resolve=i.fulfilled=i.cast,i.reject=i.rejected=function(t){var e=new i(b);return e._captureStackTrace(),e._rejectCallback(t,!0),e},i.setScheduler=function(t){if("function"!=typeof t)throw new m("expecting a function but got "+f.classString(t));return v.setScheduler(t)},i.prototype._then=function(t,e,n,r,o){var s=void 0!==o,a=s?o:new i(b),l=this._target(),u=l._bitField;s||(a._propagateFrom(this,3),a._captureStackTrace(),void 0===r&&0!==(2097152&this._bitField)&&(r=0!==(50397184&u)?this._boundValue():l===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,a));var p=c();if(0!==(50397184&u)){var h,_,d=l._settlePromiseCtx;0!==(33554432&u)?(_=l._rejectionHandler0,h=t):0!==(16777216&u)?(_=l._fulfillmentHandler0,h=e,l._unsetRejectionIsUnhandled()):(d=l._settlePromiseLateCancellationObserver,_=new g("late cancellation observer"),l._attachExtraTrace(_),h=e),v.invoke(d,l,{handler:null===p?h:"function"==typeof h&&f.domainBind(p,h),promise:a,receiver:r,value:_})}else l._addCallbacks(t,e,a,r,p);return a},i.prototype._length=function(){return 65535&this._bitField},i.prototype._isFateSealed=function(){return 0!==(117506048&this._bitField)},i.prototype._isFollowing=function(){return 67108864===(67108864&this._bitField)},i.prototype._setLength=function(t){this._bitField=-65536&this._bitField|65535&t},i.prototype._setFulfilled=function(){this._bitField=33554432|this._bitField,this._fireEvent("promiseFulfilled",this)},i.prototype._setRejected=function(){this._bitField=16777216|this._bitField,this._fireEvent("promiseRejected",this)},i.prototype._setFollowing=function(){this._bitField=67108864|this._bitField,this._fireEvent("promiseResolved",this)},i.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},i.prototype._isFinal=function(){return(4194304&this._bitField)>0},i.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},i.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent("promiseCancelled",this)},i.prototype._setWillBeCancelled=function(){this._bitField=8388608|this._bitField},i.prototype._setAsyncGuaranteed=function(){v.hasCustomScheduler()||(this._bitField=134217728|this._bitField)},i.prototype._receiverAt=function(t){var e=0===t?this._receiver0:this[4*t-4+3];return e===h?void 0:void 0===e&&this._isBound()?this._boundValue():e},i.prototype._promiseAt=function(t){return this[4*t-4+2]},i.prototype._fulfillmentHandlerAt=function(t){return this[4*t-4+0]},i.prototype._rejectionHandlerAt=function(t){return this[4*t-4+1]},i.prototype._boundValue=function(){},i.prototype._migrateCallback0=function(t){var e=(t._bitField,t._fulfillmentHandler0),n=t._rejectionHandler0,r=t._promise0,i=t._receiverAt(0);void 0===i&&(i=h),this._addCallbacks(e,n,r,i,null)},i.prototype._migrateCallbackAt=function(t,e){var n=t._fulfillmentHandlerAt(e),r=t._rejectionHandlerAt(e),i=t._promiseAt(e),o=t._receiverAt(e);void 0===o&&(o=h),this._addCallbacks(n,r,i,o,null)},i.prototype._addCallbacks=function(t,e,n,r,i){var o=this._length();if(o>=65531&&(o=0,this._setLength(0)),0===o)this._promise0=n,this._receiver0=r,"function"==typeof t&&(this._fulfillmentHandler0=null===i?t:f.domainBind(i,t)),"function"==typeof e&&(this._rejectionHandler0=null===i?e:f.domainBind(i,e));else{var s=4*o-4;this[s+2]=n,this[s+3]=r,"function"==typeof t&&(this[s+0]=null===i?t:f.domainBind(i,t)),"function"==typeof e&&(this[s+1]=null===i?e:f.domainBind(i,e))}return this._setLength(o+1),o},i.prototype._proxy=function(t,e){this._addCallbacks(void 0,void 0,e,t,null)},i.prototype._resolveCallback=function(t,e){if(0===(117506048&this._bitField)){if(t===this)return this._rejectCallback(l(),!1);var n=j(t,this);if(!(n instanceof i))return this._fulfill(t);e&&this._propagateFrom(n,2);var r=n._target();if(r===this)return void this._reject(l());var o=r._bitField;if(0===(50397184&o)){var s=this._length();s>0&&r._migrateCallback0(this);for(var a=1;s>a;++a)r._migrateCallbackAt(this,a);this._setFollowing(),this._setLength(0),this._setFollowee(r)}else if(0!==(33554432&o))this._fulfill(r._value());else if(0!==(16777216&o))this._reject(r._reason());else{var c=new g("late cancellation observer");r._attachExtraTrace(c),this._reject(c)}}},i.prototype._rejectCallback=function(t,e,n){var r=f.ensureErrorObject(t),i=r===t;if(!i&&!n&&T.warnings()){var o="a promise was rejected with a non-error: "+f.classString(t);this._warn(o,!0)}this._attachExtraTrace(r,e?i:!1),this._reject(t)},i.prototype._resolveFromExecutor=function(t){if(t!==b){var e=this;this._captureStackTrace(),this._pushContext();var n=!0,r=this._execute(t,function(t){e._resolveCallback(t)},function(t){e._rejectCallback(t,n)});n=!1,this._popContext(),void 0!==r&&e._rejectCallback(r,!0)}},i.prototype._settlePromiseFromHandler=function(t,e,n,r){var i=r._bitField;if(0===(65536&i)){r._pushContext();var o;e===w?n&&"number"==typeof n.length?o=O(t).apply(this._boundValue(),n):(o=R,o.e=new m("cannot .spread() a non-array: "+f.classString(n))):o=O(t).call(e,n);var s=r._popContext();i=r._bitField,0===(65536&i)&&(o===C?r._reject(n):o===R?r._rejectCallback(o.e,!1):(T.checkForgottenReturns(o,s,"",r,this),r._resolveCallback(o)))}},i.prototype._target=function(){for(var t=this;t._isFollowing();)t=t._followee();return t},i.prototype._followee=function(){return this._rejectionHandler0},i.prototype._setFollowee=function(t){this._rejectionHandler0=t},i.prototype._settlePromise=function(t,e,r,o){var s=t instanceof i,a=this._bitField,c=0!==(134217728&a);0!==(65536&a)?(s&&t._invokeInternalOnCancel(),r instanceof x&&r.isFinallyHandler()?(r.cancelPromise=t,O(e).call(r,o)===R&&t._reject(R.e)):e===u?t._fulfill(u.call(r)):r instanceof n?r._promiseCancelled(t):s||t instanceof E?t._cancel():r.cancel()):"function"==typeof e?s?(c&&t._setAsyncGuaranteed(),this._settlePromiseFromHandler(e,r,o,t)):e.call(r,o,t):r instanceof n?r._isResolved()||(0!==(33554432&a)?r._promiseFulfilled(o,t):r._promiseRejected(o,t)):s&&(c&&t._setAsyncGuaranteed(),0!==(33554432&a)?t._fulfill(o):t._reject(o))},i.prototype._settlePromiseLateCancellationObserver=function(t){var e=t.handler,n=t.promise,r=t.receiver,o=t.value;"function"==typeof e?n instanceof i?this._settlePromiseFromHandler(e,r,o,n):e.call(r,o,n):n instanceof i&&n._reject(o)},i.prototype._settlePromiseCtx=function(t){this._settlePromise(t.promise,t.handler,t.receiver,t.value)},i.prototype._settlePromise0=function(t,e,n){var r=this._promise0,i=this._receiverAt(0);this._promise0=void 0,this._receiver0=void 0,this._settlePromise(r,t,i,e)},i.prototype._clearCallbackDataAtIndex=function(t){var e=4*t-4;this[e+2]=this[e+3]=this[e+0]=this[e+1]=void 0},i.prototype._fulfill=function(t){var e=this._bitField;if(!((117506048&e)>>>16)){if(t===this){var n=l();return this._attachExtraTrace(n),this._reject(n)}this._setFulfilled(),this._rejectionHandler0=t,(65535&e)>0&&(0!==(134217728&e)?this._settlePromises():v.settlePromises(this),this._dereferenceTrace())}},i.prototype._reject=function(t){var e=this._bitField;if(!((117506048&e)>>>16))return this._setRejected(),this._fulfillmentHandler0=t,this._isFinal()?v.fatalError(t,f.isNode):void((65535&e)>0?v.settlePromises(this):this._ensurePossibleRejectionHandled())},i.prototype._fulfillPromises=function(t,e){for(var n=1;t>n;n++){var r=this._fulfillmentHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._rejectPromises=function(t,e){for(var n=1;t>n;n++){var r=this._rejectionHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._settlePromises=function(){var t=this._bitField,e=65535&t;if(e>0){if(0!==(16842752&t)){var n=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,n,t),this._rejectPromises(e,n)}else{var r=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,r,t),this._fulfillPromises(e,r)}this._setLength(0)}this._clearCancellationData()},i.prototype._settledValue=function(){var t=this._bitField;return 0!==(33554432&t)?this._rejectionHandler0:0!==(16777216&t)?this._fulfillmentHandler0:void 0},"undefined"!=typeof Symbol&&Symbol.toStringTag&&_.defineProperty(i.prototype,Symbol.toStringTag,{get:function(){return"Object"}}),i.defer=i.pending=function(){T.deprecated("Promise.defer","new Promise");var t=new i(b);return{promise:t,resolve:o,reject:s}},f.notEnumerableProp(i,"_makeSelfResolutionError",l),t("./method")(i,b,j,p,T),t("./bind")(i,b,j,T),t("./cancel")(i,E,p,T),t("./direct_resolve")(i),t("./synchronous_inspection")(i),t("./join")(i,E,j,b,v,c),i.Promise=i,i.version="3.5.5",t("./call_get.js")(i),t("./generators.js")(i,p,b,j,n,T),t("./map.js")(i,E,p,j,b,T),t("./nodeify.js")(i),t("./promisify.js")(i,b),t("./props.js")(i,E,j,p),t("./race.js")(i,b,j,p),t("./reduce.js")(i,E,p,j,b,T),t("./settle.js")(i,E,T),t("./some.js")(i,E,p),t("./timers.js")(i,b,T),t("./using.js")(i,p,j,F,b,T),t("./any.js")(i),t("./each.js")(i,b),t("./filter.js")(i,b),f.toFastProperties(i),f.toFastProperties(i.prototype),a({a:1}),a({b:2}),a({c:3}),a(1),a(function(){}),a(void 0),a(!1),a(new i(b)),T.setBounds(d.firstLineError,f.lastLineError),i}},{"./any.js":1,"./async":2,"./bind":3,"./call_get.js":5,"./cancel":6,"./catch_filter":7,"./context":8,"./debuggability":9,"./direct_resolve":10,"./each.js":11,"./errors":12,"./es5":13,"./filter.js":14,"./finally":15,"./generators.js":16,"./join":17,"./map.js":18,"./method":19,"./nodeback":20,"./nodeify.js":21,"./promise_array":23,"./promisify.js":24,"./props.js":25,"./race.js":27,"./reduce.js":28,"./settle.js":30,"./some.js":31,"./synchronous_inspection":32,"./thenables":33,"./timers.js":34,"./using.js":35,"./util":36}],23:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){function s(t){switch(t){case-2:return[];case-3:return{};case-6:return new Map}}function a(t){var r=this._promise=new e(n);t instanceof e&&r._propagateFrom(t,3),r._setOnCancel(this),this._values=t,this._length=0,this._totalResolved=0,this._init(void 0,-2)}var c=t("./util");c.isArray;return c.inherits(a,o),a.prototype.length=function(){return this._length},a.prototype.promise=function(){return this._promise},a.prototype._init=function l(t,n){var o=r(this._values,this._promise);if(o instanceof e){o=o._target();var a=o._bitField;if(this._values=o,0===(50397184&a))return this._promise._setAsyncGuaranteed(),o._then(l,this._reject,void 0,this,n);if(0===(33554432&a))return 0!==(16777216&a)?this._reject(o._reason()):this._cancel();o=o._value()}if(o=c.asArray(o),null===o){var u=i("expecting an array or an iterable object but got "+c.classString(o)).reason();return void this._promise._rejectCallback(u,!1)}return 0===o.length?void(-5===n?this._resolveEmptyArray():this._resolve(s(n))):void this._iterate(o)},a.prototype._iterate=function(t){var n=this.getActualLength(t.length);this._length=n,this._values=this.shouldCopyValues()?new Array(n):this._values;for(var i=this._promise,o=!1,s=null,a=0;n>a;++a){var c=r(t[a],i);c instanceof e?(c=c._target(),s=c._bitField):s=null,o?null!==s&&c.suppressUnhandledRejections():null!==s?0===(50397184&s)?(c._proxy(this,a),this._values[a]=c):o=0!==(33554432&s)?this._promiseFulfilled(c._value(),a):0!==(16777216&s)?this._promiseRejected(c._reason(),a):this._promiseCancelled(a):o=this._promiseFulfilled(c,a)}o||i._setAsyncGuaranteed()},a.prototype._isResolved=function(){return null===this._values},a.prototype._resolve=function(t){this._values=null,this._promise._fulfill(t)},a.prototype._cancel=function(){!this._isResolved()&&this._promise._isCancellable()&&(this._values=null,this._promise._cancel())},a.prototype._reject=function(t){this._values=null,this._promise._rejectCallback(t,!1)},a.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},a.prototype._promiseCancelled=function(){return this._cancel(),!0},a.prototype._promiseRejected=function(t){return this._totalResolved++,this._reject(t),!0},a.prototype._resultCancelled=function(){if(!this._isResolved()){var t=this._values;if(this._cancel(),t instanceof e)t.cancel();else for(var n=0;nc;c+=2){var u=s[c],p=s[c+1],_=u+e;if(r===k)t[_]=k(u,h,u,p,e,i);else{var d=r(p,function(){return k(u,h,u,p,e,i)});f.notEnumerableProp(d,"__isPromisified__",!0),t[_]=d}}return f.toFastProperties(t),t}function u(t,e,n){return k(t,e,void 0,t,null,n)}var p,h={},f=t("./util"),_=t("./nodeback"),d=f.withAppended,v=f.maybeWrapAsError,y=f.canEvaluate,m=t("./errors").TypeError,g="Async",b={__isPromisified__:!0},w=["arity","length","name","arguments","caller","callee","prototype","__isPromisified__"],C=new RegExp("^(?:"+w.join("|")+")$"),j=function(t){return f.isIdentifier(t)&&"_"!==t.charAt(0)&&"constructor"!==t},E=function(t){return t.replace(/([$])/,"\\$")},k=y?p:c;e.promisify=function(t,e){if("function"!=typeof t)throw new m("expecting a function but got "+f.classString(t));if(i(t))return t;e=Object(e);var n=void 0===e.context?h:e.context,o=!!e.multiArgs,s=u(t,n,o);return f.copyDescriptors(t,s,r),s},e.promisifyAll=function(t,e){if("function"!=typeof t&&"object"!=typeof t)throw new m("the target of promisifyAll must be an object or a function\n\n See http://goo.gl/MqrFmX\n");e=Object(e);var n=!!e.multiArgs,r=e.suffix;"string"!=typeof r&&(r=g);var i=e.filter;"function"!=typeof i&&(i=j);var o=e.promisifier;if("function"!=typeof o&&(o=k),!f.isIdentifier(r))throw new RangeError("suffix must be a valid identifier\n\n See http://goo.gl/MqrFmX\n");for(var s=f.inheritedDataKeys(t),a=0;ao;++o){var s=r[o];e[o]=t[s],e[o+i]=s}}this.constructor$(e),this._isMap=n,this._init$(void 0,n?-6:-3)}function s(t){var n,s=r(t);return l(s)?(n=s instanceof e?s._then(e.props,void 0,void 0,void 0,void 0):new o(s).promise(),s instanceof e&&n._propagateFrom(s,2),n):i("cannot await properties of a non-object\n\n See http://goo.gl/MqrFmX\n")}var a,c=t("./util"),l=c.isObject,u=t("./es5");"function"==typeof Map&&(a=Map);var p=function(){function t(t,r){this[e]=t,this[e+n]=r,e++}var e=0,n=0;return function(r){n=r.size,e=0;var i=new Array(2*r.size);return r.forEach(t,i),i}}(),h=function(t){for(var e=new a,n=t.length/2|0,r=0;n>r;++r){var i=t[n+r],o=t[r];e.set(i,o)}return e};c.inherits(o,n),o.prototype._init=function(){},o.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;if(n>=this._length){var r;if(this._isMap)r=h(this._values);else{r={};for(var i=this.length(),o=0,s=this.length();s>o;++o)r[this._values[o+i]]=this._values[o]}return this._resolve(r),!0}return!1},o.prototype.shouldCopyValues=function(){return!1},o.prototype.getActualLength=function(t){return t>>1},e.prototype.props=function(){return s(this)},e.props=function(t){return s(t)}}},{"./es5":13,"./util":36}],26:[function(t,e,n){"use strict";function r(t,e,n,r,i){for(var o=0;i>o;++o)n[o+r]=t[o+e],t[o+e]=void 0}function i(t){this._capacity=t,this._length=0,this._front=0}i.prototype._willBeOverCapacity=function(t){return this._capacityh;++h){var _=t[h];(void 0!==_||h in t)&&e.cast(_)._then(u,p,void 0,l,null)}return l}var s=t("./util"),a=function(t){return t.then(function(e){return o(e,t)})};e.race=function(t){return o(t,void 0)},e.prototype.race=function(){return o(this,void 0)}}},{"./util":36}],28:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,n,r,i){this.constructor$(t);var s=h();this._fn=null===s?n:f.domainBind(s,n),void 0!==r&&(r=e.resolve(r),r._attachCancellationCallback(this)),this._initialValue=r,this._currentCancellable=null,i===o?this._eachValues=Array(this._length):0===i?this._eachValues=null:this._eachValues=void 0,this._promise._captureStackTrace(),this._init$(void 0,-5)}function c(t,e){this.isFulfilled()?e._resolve(t):e._reject(t)}function l(t,e,n,i){if("function"!=typeof e)return r("expecting a function but got "+f.classString(e));var o=new a(t,e,n,i);return o.promise()}function u(t){this.accum=t,this.array._gotAccum(t);var n=i(this.value,this.array._promise);return n instanceof e?(this.array._currentCancellable=n,n._then(p,void 0,void 0,this,void 0)):p.call(this,n)}function p(t){var n=this.array,r=n._promise,i=_(n._fn);r._pushContext();var o;o=void 0!==n._eachValues?i.call(r._boundValue(),t,this.index,this.length):i.call(r._boundValue(),this.accum,t,this.index,this.length),o instanceof e&&(n._currentCancellable=o);var a=r._popContext();return s.checkForgottenReturns(o,a,void 0!==n._eachValues?"Promise.each":"Promise.reduce",r),o}var h=e._getDomain,f=t("./util"),_=f.tryCatch;f.inherits(a,n),a.prototype._gotAccum=function(t){void 0!==this._eachValues&&null!==this._eachValues&&t!==o&&this._eachValues.push(t)},a.prototype._eachComplete=function(t){return null!==this._eachValues&&this._eachValues.push(t),this._eachValues},a.prototype._init=function(){},a.prototype._resolveEmptyArray=function(){this._resolve(void 0!==this._eachValues?this._eachValues:this._initialValue)},a.prototype.shouldCopyValues=function(){return!1},a.prototype._resolve=function(t){this._promise._resolveCallback(t),this._values=null},a.prototype._resultCancelled=function(t){return t===this._initialValue?this._cancel():void(this._isResolved()||(this._resultCancelled$(),this._currentCancellable instanceof e&&this._currentCancellable.cancel(),this._initialValue instanceof e&&this._initialValue.cancel()))},a.prototype._iterate=function(t){this._values=t;var n,r,i=t.length;if(void 0!==this._initialValue?(n=this._initialValue,r=0):(n=e.resolve(t[0]),r=1),this._currentCancellable=n,!n.isRejected())for(;i>r;++r){var o={accum:null,value:t[r],index:r,length:i,array:this};n=n._then(u,void 0,void 0,o,void 0)}void 0!==this._eachValues&&(n=n._then(this._eachComplete,void 0,void 0,this,void 0)),n._then(c,c,void 0,n,this)},e.prototype.reduce=function(t,e){return l(this,t,e,null)},e.reduce=function(t,e,n,r){return l(t,e,n,r)}}},{"./util":36}],29:[function(t,e,n){"use strict";var r,i=t("./util"),o=function(){throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n")},s=i.getNativePromise();if(i.isNode&&"undefined"==typeof MutationObserver){var a=global.setImmediate,c=process.nextTick;r=i.isRecentNode?function(t){a.call(global,t)}:function(t){c.call(process,t)}}else if("function"==typeof s&&"function"==typeof s.resolve){var l=s.resolve();r=function(t){l.then(t)}}else r="undefined"!=typeof MutationObserver&&("undefined"==typeof window||!window.navigator||!window.navigator.standalone&&!window.cordova)&&"classList"in document.documentElement?function(){var t=document.createElement("div"),e={attributes:!0},n=!1,r=document.createElement("div"),i=new MutationObserver(function(){t.classList.toggle("foo"),n=!1});i.observe(r,e);var o=function(){n||(n=!0,r.classList.toggle("foo"))};return function(n){var r=new MutationObserver(function(){r.disconnect(),n()});r.observe(t,e),o()}}():"undefined"!=typeof setImmediate?function(t){setImmediate(t)}:"undefined"!=typeof setTimeout?function(t){setTimeout(t,0)}:o;e.exports=r},{"./util":36 + }],30:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.constructor$(t)}var o=e.PromiseInspection,s=t("./util");s.inherits(i,n),i.prototype._promiseResolved=function(t,e){this._values[t]=e;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},i.prototype._promiseFulfilled=function(t,e){var n=new o;return n._bitField=33554432,n._settledValueField=t,this._promiseResolved(e,n)},i.prototype._promiseRejected=function(t,e){var n=new o;return n._bitField=16777216,n._settledValueField=t,this._promiseResolved(e,n)},e.settle=function(t){return r.deprecated(".settle()",".reflect()"),new i(t).promise()},e.prototype.settle=function(){return e.settle(this)}}},{"./util":36}],31:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.constructor$(t),this._howMany=0,this._unwrap=!1,this._initialized=!1}function o(t,e){if((0|e)!==e||0>e)return r("expecting a positive integer\n\n See http://goo.gl/MqrFmX\n");var n=new i(t),o=n.promise();return n.setHowMany(e),n.init(),o}var s=t("./util"),a=t("./errors").RangeError,c=t("./errors").AggregateError,l=s.isArray,u={};s.inherits(i,n),i.prototype._init=function(){if(this._initialized){if(0===this._howMany)return void this._resolve([]);this._init$(void 0,-5);var t=l(this._values);!this._isResolved()&&t&&this._howMany>this._canPossiblyFulfill()&&this._reject(this._getRangeError(this.length()))}},i.prototype.init=function(){this._initialized=!0,this._init()},i.prototype.setUnwrap=function(){this._unwrap=!0},i.prototype.howMany=function(){return this._howMany},i.prototype.setHowMany=function(t){this._howMany=t},i.prototype._promiseFulfilled=function(t){return this._addFulfilled(t),this._fulfilled()===this.howMany()?(this._values.length=this.howMany(),1===this.howMany()&&this._unwrap?this._resolve(this._values[0]):this._resolve(this._values),!0):!1},i.prototype._promiseRejected=function(t){return this._addRejected(t),this._checkOutcome()},i.prototype._promiseCancelled=function(){return this._values instanceof e||null==this._values?this._cancel():(this._addRejected(u),this._checkOutcome())},i.prototype._checkOutcome=function(){if(this.howMany()>this._canPossiblyFulfill()){for(var t=new c,e=this.length();e0?this._reject(t):this._cancel(),!0}return!1},i.prototype._fulfilled=function(){return this._totalResolved},i.prototype._rejected=function(){return this._values.length-this.length()},i.prototype._addRejected=function(t){this._values.push(t)},i.prototype._addFulfilled=function(t){this._values[this._totalResolved++]=t},i.prototype._canPossiblyFulfill=function(){return this.length()-this._rejected()},i.prototype._getRangeError=function(t){var e="Input array must contain at least "+this._howMany+" items but contains only "+t+" items";return new a(e)},i.prototype._resolveEmptyArray=function(){this._reject(this._getRangeError(0))},e.some=function(t,e){return o(t,e)},e.prototype.some=function(t){return o(this,t)},e._SomePromiseArray=i}},{"./errors":12,"./util":36}],32:[function(t,e,n){"use strict";e.exports=function(t){function e(t){void 0!==t?(t=t._target(),this._bitField=t._bitField,this._settledValueField=t._isFateSealed()?t._settledValue():void 0):(this._bitField=0,this._settledValueField=void 0)}e.prototype._settledValue=function(){return this._settledValueField};var n=e.prototype.value=function(){if(!this.isFulfilled())throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},r=e.prototype.error=e.prototype.reason=function(){if(!this.isRejected())throw new TypeError("cannot get rejection reason of a non-rejected promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},i=e.prototype.isFulfilled=function(){return 0!==(33554432&this._bitField)},o=e.prototype.isRejected=function(){return 0!==(16777216&this._bitField)},s=e.prototype.isPending=function(){return 0===(50397184&this._bitField)},a=e.prototype.isResolved=function(){return 0!==(50331648&this._bitField)};e.prototype.isCancelled=function(){return 0!==(8454144&this._bitField)},t.prototype.__isCancelled=function(){return 65536===(65536&this._bitField)},t.prototype._isCancelled=function(){return this._target().__isCancelled()},t.prototype.isCancelled=function(){return 0!==(8454144&this._target()._bitField)},t.prototype.isPending=function(){return s.call(this._target())},t.prototype.isRejected=function(){return o.call(this._target())},t.prototype.isFulfilled=function(){return i.call(this._target())},t.prototype.isResolved=function(){return a.call(this._target())},t.prototype.value=function(){return n.call(this._target())},t.prototype.reason=function(){var t=this._target();return t._unsetRejectionIsUnhandled(),r.call(t)},t.prototype._value=function(){return this._settledValue()},t.prototype._reason=function(){return this._unsetRejectionIsUnhandled(),this._settledValue()},t.PromiseInspection=e}},{}],33:[function(t,e,n){"use strict";e.exports=function(e,n){function r(t,r){if(u(t)){if(t instanceof e)return t;var i=o(t);if(i===l){r&&r._pushContext();var c=e.reject(i.e);return r&&r._popContext(),c}if("function"==typeof i){if(s(t)){var c=new e(n);return t._then(c._fulfill,c._reject,void 0,c,null),c}return a(t,i,r)}}return t}function i(t){return t.then}function o(t){try{return i(t)}catch(e){return l.e=e,l}}function s(t){try{return p.call(t,"_promise0")}catch(e){return!1}}function a(t,r,i){function o(t){a&&(a._resolveCallback(t),a=null)}function s(t){a&&(a._rejectCallback(t,p,!0),a=null)}var a=new e(n),u=a;i&&i._pushContext(),a._captureStackTrace(),i&&i._popContext();var p=!0,h=c.tryCatch(r).call(t,o,s);return p=!1,a&&h===l&&(a._rejectCallback(h.e,!0,!0),a=null),u}var c=t("./util"),l=c.errorObj,u=c.isObject,p={}.hasOwnProperty;return r}},{"./util":36}],34:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.handle=t}function o(t){return clearTimeout(this.handle),t}function s(t){throw clearTimeout(this.handle),t}var a=t("./util"),c=e.TimeoutError;i.prototype._resultCancelled=function(){clearTimeout(this.handle)};var l=function(t){return u(+this).thenReturn(t)},u=e.delay=function(t,o){var s,a;return void 0!==o?(s=e.resolve(o)._then(l,null,null,t,void 0),r.cancellation()&&o instanceof e&&s._setOnCancel(o)):(s=new e(n),a=setTimeout(function(){s._fulfill()},+t),r.cancellation()&&s._setOnCancel(new i(a)),s._captureStackTrace()),s._setAsyncGuaranteed(),s};e.prototype.delay=function(t){return u(t,this)};var p=function(t,e,n){var r;r="string"!=typeof e?e instanceof Error?e:new c("operation timed out"):new c(e),a.markAsOriginatingFromRejection(r),t._attachExtraTrace(r),t._reject(r),null!=n&&n.cancel()};e.prototype.timeout=function(t,e){t=+t;var n,a,c=new i(setTimeout(function(){n.isPending()&&p(n,e,a)},t));return r.cancellation()?(a=this.then(),n=a._then(o,s,void 0,c,void 0),n._setOnCancel(c)):n=this._then(o,s,void 0,c,void 0),n}}},{"./util":36}],35:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t){setTimeout(function(){throw t},0)}function c(t){var e=r(t);return e!==t&&"function"==typeof t._isDisposable&&"function"==typeof t._getDisposer&&t._isDisposable()&&e._setDisposable(t._getDisposer()),e}function l(t,n){function i(){if(s>=l)return u._fulfill();var o=c(t[s++]);if(o instanceof e&&o._isDisposable()){try{o=r(o._getDisposer().tryDispose(n),t.promise)}catch(p){return a(p)}if(o instanceof e)return o._then(i,a,null,null,null)}i()}var s=0,l=t.length,u=new e(o);return i(),u}function u(t,e,n){this._data=t,this._promise=e,this._context=n}function p(t,e,n){this.constructor$(t,e,n)}function h(t){return u.isDisposer(t)?(this.resources[this.index]._setDisposable(t),t.promise()):t}function f(t){this.length=t,this.promise=null,this[t-1]=null}var _=t("./util"),d=t("./errors").TypeError,v=t("./util").inherits,y=_.errorObj,m=_.tryCatch,g={};u.prototype.data=function(){return this._data},u.prototype.promise=function(){return this._promise},u.prototype.resource=function(){return this.promise().isFulfilled()?this.promise().value():g},u.prototype.tryDispose=function(t){var e=this.resource(),n=this._context;void 0!==n&&n._pushContext();var r=e!==g?this.doDispose(e,t):null;return void 0!==n&&n._popContext(),this._promise._unsetDisposable(),this._data=null,r},u.isDisposer=function(t){return null!=t&&"function"==typeof t.resource&&"function"==typeof t.tryDispose},v(p,u),p.prototype.doDispose=function(t,e){var n=this.data();return n.call(t,t,e)},f.prototype._resultCancelled=function(){for(var t=this.length,n=0;t>n;++n){var r=this[n];r instanceof e&&r.cancel()}},e.using=function(){var t=arguments.length;if(2>t)return n("you must pass at least 2 arguments to Promise.using");var i=arguments[t-1];if("function"!=typeof i)return n("expecting a function but got "+_.classString(i));var o,a=!0;2===t&&Array.isArray(arguments[0])?(o=arguments[0],t=o.length,a=!1):(o=arguments,t--);for(var c=new f(t),p=0;t>p;++p){var d=o[p];if(u.isDisposer(d)){var v=d;d=d.promise(),d._setDisposable(v)}else{var g=r(d);g instanceof e&&(d=g._then(h,null,null,{resources:c,index:p},void 0))}c[p]=d}for(var b=new Array(c.length),p=0;p0},e.prototype._getDisposer=function(){return this._disposer},e.prototype._unsetDisposable=function(){this._bitField=-131073&this._bitField,this._disposer=void 0},e.prototype.disposer=function(t){if("function"==typeof t)return new p(t,this,i());throw new d}}},{"./errors":12,"./util":36}],36:[function(t,e,n){"use strict";function r(){try{var t=P;return P=null,t.apply(this,arguments)}catch(e){return x.e=e,x}}function i(t){return P=t,r}function o(t){return null==t||t===!0||t===!1||"string"==typeof t||"number"==typeof t}function s(t){return"function"==typeof t||"object"==typeof t&&null!==t}function a(t){return o(t)?new Error(v(t)):t}function c(t,e){var n,r=t.length,i=new Array(r+1);for(n=0;r>n;++n)i[n]=t[n];return i[n]=e,i}function l(t,e,n){if(!F.isES5)return{}.hasOwnProperty.call(t,e)?t[e]:void 0;var r=Object.getOwnPropertyDescriptor(t,e);return null!=r?null==r.get&&null==r.set?r.value:n:void 0}function u(t,e,n){if(o(t))return t;var r={value:n,configurable:!0,enumerable:!1,writable:!0};return F.defineProperty(t,e,r),t}function p(t){throw t}function h(t){try{if("function"==typeof t){var e=F.names(t.prototype),n=F.isES5&&e.length>1,r=e.length>0&&!(1===e.length&&"constructor"===e[0]),i=A.test(t+"")&&F.names(t).length>0;if(n||r||i)return!0}return!1}catch(o){return!1}}function f(t){function e(){}function n(){return typeof r.foo}e.prototype=t;var r=new e;return n(),n(),t}function _(t){return D.test(t)}function d(t,e,n){for(var r=new Array(t),i=0;t>i;++i)r[i]=e+i+n;return r}function v(t){try{return t+""}catch(e){return"[no string representation]"}}function y(t){return t instanceof Error||null!==t&&"object"==typeof t&&"string"==typeof t.message&&"string"==typeof t.name}function m(t){try{u(t,"isOperational",!0)}catch(e){}}function g(t){return null==t?!1:t instanceof Error.__BluebirdErrorTypes__.OperationalError||t.isOperational===!0}function b(t){return y(t)&&F.propertyIsWritable(t,"stack")}function w(t){return{}.toString.call(t)}function C(t,e,n){for(var r=F.names(t),i=0;i10||t[0]>0}(),B.isNode&&B.toFastProperties(process);try{throw new Error}catch(U){B.lastLineError=U}e.exports=B},{"./es5":13}]},{},[4])(4)}),"undefined"!=typeof window&&null!==window?window.P=window.Promise:"undefined"!=typeof self&&null!==self&&(self.P=self.Promise);; + diff --git a/resources/fluidbook/data/clipboard.js b/resources/fluidbook/data/clipboard.js new file mode 100644 index 0000000..da47d08 --- /dev/null +++ b/resources/fluidbook/data/clipboard.js @@ -0,0 +1,8 @@ +/*! + * clipboard.js v2.0.6 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return o={},r.m=n=[function(t,e){t.exports=function(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var o=window.getSelection(),r=document.createRange();r.selectNodeContents(t),o.removeAllRanges(),o.addRange(r),e=o.toString()}return e}},function(t,e){function n(){}n.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var o=this;function r(){o.off(t,r),e.apply(n,arguments)}return r._=e,this.on(t,r,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,r=n.length;o').html(that.buttons[key].text).addClass(that.buttons[key].btnClass).prop("disabled",that.buttons[key].isDisabled).css("display",that.buttons[key].isHidden?"none":"").click(function(e){e.preventDefault();var res=that.buttons[key].action.apply(that,[that.buttons[key]]);that.onAction.apply(that,[key,that.buttons[key]]);that._stopCountDown();if(typeof res==="undefined"||res){that.close();}});that.buttons[key].el=button_element;that.buttons[key].setText=function(text){button_element.html(text);};that.buttons[key].addClass=function(className){button_element.addClass(className);};that.buttons[key].removeClass=function(className){button_element.removeClass(className);};that.buttons[key].disable=function(){that.buttons[key].isDisabled=true;button_element.prop("disabled",true);};that.buttons[key].enable=function(){that.buttons[key].isDisabled=false;button_element.prop("disabled",false);};that.buttons[key].show=function(){that.buttons[key].isHidden=false;button_element.css("display","");};that.buttons[key].hide=function(){that.buttons[key].isHidden=true;button_element.css("display","none");};that["$_"+key]=that["$$"+key]=button_element;that.$btnc.append(button_element);});if(total_buttons===0){this.$btnc.hide();}if(this.closeIcon===null&&total_buttons===0){this.closeIcon=true;}if(this.closeIcon){if(this.closeIconClass){var closeHtml='';this.$closeIcon.html(closeHtml);}this.$closeIcon.click(function(e){e.preventDefault();var buttonName=false;var shouldClose=false;var str;if(typeof that.closeIcon==="function"){str=that.closeIcon();}else{str=that.closeIcon;}if(typeof str==="string"&&typeof that.buttons[str]!=="undefined"){buttonName=str;shouldClose=false;}else{if(typeof str==="undefined"||!!(str)===true){shouldClose=true;}else{shouldClose=false;}}if(buttonName){var btnResponse=that.buttons[buttonName].action.apply(that);shouldClose=(typeof btnResponse==="undefined")||!!(btnResponse);}if(shouldClose){that.close();}});this.$closeIcon.show();}else{this.$closeIcon.hide();}},setTitle:function(string,force){force=force||false;if(typeof string!=="undefined"){if(typeof string==="string"){this.title=string;}else{if(typeof string==="function"){if(typeof string.promise==="function"){console.error("Promise was returned from title function, this is not supported.");}var response=string();if(typeof response==="string"){this.title=response;}else{this.title=false;}}else{this.title=false;}}}if(this.isAjaxLoading&&!force){return;}this.$title.html(this.title||"");this.updateTitleContainer();},setIcon:function(iconClass,force){force=force||false;if(typeof iconClass!=="undefined"){if(typeof iconClass==="string"){this.icon=iconClass;}else{if(typeof iconClass==="function"){var response=iconClass();if(typeof response==="string"){this.icon=response;}else{this.icon=false;}}else{this.icon=false;}}}if(this.isAjaxLoading&&!force){return;}this.$icon.html(this.icon?'':"");this.updateTitleContainer();},updateTitleContainer:function(){if(!this.title&&!this.icon){this.$titleContainer.hide();}else{this.$titleContainer.show();}},setContentPrepend:function(content,force){if(!content){return;}this.contentParsed.prepend(content);},setContentAppend:function(content){if(!content){return;}this.contentParsed.append(content);},setContent:function(content,force){force=!!force;var that=this;if(content){this.contentParsed.html("").append(content);}if(this.isAjaxLoading&&!force){return;}this.$content.html("");this.$content.append(this.contentParsed);setTimeout(function(){that.$body.find("input[autofocus]:visible:first").focus();},100);},loadingSpinner:false,showLoading:function(disableButtons){this.loadingSpinner=true;this.$jconfirmBox.addClass("loading");if(disableButtons){this.$btnc.find("button").prop("disabled",true);}},hideLoading:function(enableButtons){this.loadingSpinner=false;this.$jconfirmBox.removeClass("loading");if(enableButtons){this.$btnc.find("button").prop("disabled",false);}},ajaxResponse:false,contentParsed:"",isAjax:false,isAjaxLoading:false,_parseContent:function(){var that=this;var e=" ";if(typeof this.content==="function"){var res=this.content.apply(this);if(typeof res==="string"){this.content=res;}else{if(typeof res==="object"&&typeof res.always==="function"){this.isAjax=true;this.isAjaxLoading=true;res.always(function(data,status,xhr){that.ajaxResponse={data:data,status:status,xhr:xhr};that._contentReady.resolve(data,status,xhr);if(typeof that.contentLoaded==="function"){that.contentLoaded(data,status,xhr);}});this.content=e;}else{this.content=e;}}}if(typeof this.content==="string"&&this.content.substr(0,4).toLowerCase()==="url:"){this.isAjax=true;this.isAjaxLoading=true;var u=this.content.substring(4,this.content.length);$.get(u).done(function(html){that.contentParsed.html(html);}).always(function(data,status,xhr){that.ajaxResponse={data:data,status:status,xhr:xhr};that._contentReady.resolve(data,status,xhr);if(typeof that.contentLoaded==="function"){that.contentLoaded(data,status,xhr);}});}if(!this.content){this.content=e;}if(!this.isAjax){this.contentParsed.html(this.content);this.setContent();that._contentReady.resolve();}},_stopCountDown:function(){clearInterval(this.autoCloseInterval);if(this.$cd){this.$cd.remove();}},_startCountDown:function(){var that=this;var opt=this.autoClose.split("|");if(opt.length!==2){console.error("Invalid option for autoClose. example 'close|10000'");return false;}var button_key=opt[0];var time=parseInt(opt[1]);if(typeof this.buttons[button_key]==="undefined"){console.error("Invalid button key '"+button_key+"' for autoClose");return false;}var seconds=Math.ceil(time/1000);this.$cd=$(' ('+seconds+")").appendTo(this["$_"+button_key]);this.autoCloseInterval=setInterval(function(){that.$cd.html(" ("+(seconds-=1)+") ");if(seconds<=0){that["$$"+button_key].trigger("click");that._stopCountDown();}},1000);},_getKey:function(key){switch(key){case 192:return"tilde";case 13:return"enter";case 16:return"shift";case 9:return"tab";case 20:return"capslock";case 17:return"ctrl";case 91:return"win";case 18:return"alt";case 27:return"esc";case 32:return"space";}var initial=String.fromCharCode(key);if(/^[A-z0-9]+$/.test(initial)){return initial.toLowerCase();}else{return false;}},reactOnKey:function(e){var that=this;var a=$(".jconfirm");if(a.eq(a.length-1)[0]!==this.$el[0]){return false;}var key=e.which;if(this.$content.find(":input").is(":focus")&&/13|32/.test(key)){return false;}var keyChar=this._getKey(key);if(keyChar==="esc"&&this.escapeKey){if(this.escapeKey===true){this.$scrollPane.trigger("click");}else{if(typeof this.escapeKey==="string"||typeof this.escapeKey==="function"){var buttonKey;if(typeof this.escapeKey==="function"){buttonKey=this.escapeKey();}else{buttonKey=this.escapeKey;}if(buttonKey){if(typeof this.buttons[buttonKey]==="undefined"){console.warn("Invalid escapeKey, no buttons found with key "+buttonKey);}else{this["$_"+buttonKey].trigger("click");}}}}}$.each(this.buttons,function(key,button){if(button.keys.indexOf(keyChar)!==-1){that["$_"+key].trigger("click");}});},setDialogCenter:function(){console.info("setDialogCenter is deprecated, dialogs are centered with CSS3 tables");},_unwatchContent:function(){clearInterval(this._timer);},close:function(onClosePayload){var that=this;if(typeof this.onClose==="function"){this.onClose(onClosePayload);}this._unwatchContent();$(window).unbind("resize."+this._id);$(window).unbind("keyup."+this._id);$(window).unbind("jcKeyDown."+this._id);if(this.draggable){$(window).unbind("mousemove."+this._id);$(window).unbind("mouseup."+this._id);this.$titleContainer.unbind("mousedown");}that.$el.removeClass(that.loadedClass);$("body").removeClass("jconfirm-no-scroll-"+that._id);that.$jconfirmBoxContainer.removeClass("jconfirm-no-transition");setTimeout(function(){that.$body.addClass(that.closeAnimationParsed);that.$jconfirmBg.addClass("jconfirm-bg-h");var closeTimer=(that.closeAnimation==="none")?1:that.animationSpeed;setTimeout(function(){that.$el.remove();var l=w.jconfirm.instances;var i=w.jconfirm.instances.length-1;for(i;i>=0;i--){if(w.jconfirm.instances[i]._id===that._id){w.jconfirm.instances.splice(i,1);}}if(!w.jconfirm.instances.length){if(that.scrollToPreviousElement&&w.jconfirm.lastFocused&&w.jconfirm.lastFocused.length&&$.contains(document,w.jconfirm.lastFocused[0])){var $lf=w.jconfirm.lastFocused;if(that.scrollToPreviousElementAnimate){var st=$(window).scrollTop();var ot=w.jconfirm.lastFocused.offset().top;var wh=$(window).height();if(!(ot>st&&ot<(st+wh))){var scrollTo=(ot-Math.round((wh/3)));$("html, body").animate({scrollTop:scrollTo},that.animationSpeed,"swing",function(){$lf.focus();});}else{$lf.focus();}}else{$lf.focus();}w.jconfirm.lastFocused=false;}}if(typeof that.onDestroy==="function"){that.onDestroy();}},closeTimer*0.4);},50);return true;},open:function(){if(this.isOpen()){return false;}this._buildHTML();this._bindEvents();this._open();return true;},setStartingPoint:function(){var el=false;if(this.animateFromElement!==true&&this.animateFromElement){el=this.animateFromElement;w.jconfirm.lastClicked=false;}else{if(w.jconfirm.lastClicked&&this.animateFromElement===true){el=w.jconfirm.lastClicked;w.jconfirm.lastClicked=false;}else{return false;}}if(!el){return false;}var offset=el.offset();var iTop=el.outerHeight()/2;var iLeft=el.outerWidth()/2;iTop-=this.$jconfirmBox.outerHeight()/2;iLeft-=this.$jconfirmBox.outerWidth()/2;var sourceTop=offset.top+iTop;sourceTop=sourceTop-this._scrollTop();var sourceLeft=offset.left+iLeft;var wh=$(window).height()/2;var ww=$(window).width()/2;var targetH=wh-this.$jconfirmBox.outerHeight()/2;var targetW=ww-this.$jconfirmBox.outerWidth()/2;sourceTop-=targetH;sourceLeft-=targetW;if(Math.abs(sourceTop)>wh||Math.abs(sourceLeft)>ww){return false;}this.$jconfirmBoxContainer.css("transform","translate("+sourceLeft+"px, "+sourceTop+"px)");},_open:function(){var that=this;if(typeof that.onOpenBefore==="function"){that.onOpenBefore();}this.$body.removeClass(this.animationParsed);this.$jconfirmBg.removeClass("jconfirm-bg-h");this.$body.focus();that.$jconfirmBoxContainer.css("transform","translate("+0+"px, "+0+"px)");setTimeout(function(){that.$body.css(that._getCSS(that.animationSpeed,1));that.$body.css({"transition-property":that.$body.css("transition-property")+", margin"});that.$jconfirmBoxContainer.addClass("jconfirm-no-transition");that._modalReady.resolve();if(typeof that.onOpen==="function"){that.onOpen();}that.$el.addClass(that.loadedClass);},this.animationSpeed);},loadedClass:"jconfirm-open",isClosed:function(){return !this.$el||this.$el.parent().length===0;},isOpen:function(){return !this.isClosed();},toggle:function(){if(!this.isOpen()){this.open();}else{this.close();}}};w.jconfirm.instances=[];w.jconfirm.lastFocused=false;w.jconfirm.pluginDefaults={template:'
',title:"Hello",titleClass:"",type:"default",typeAnimated:true,draggable:true,dragWindowGap:15,dragWindowBorder:true,animateFromElement:true,alignMiddle:true,smoothContent:true,content:"Are you sure to continue?",buttons:{},defaultButtons:{ok:{action:function(){}},close:{action:function(){}}},contentLoaded:function(){},icon:"",lazyOpen:false,bgOpacity:null,theme:"light",animation:"scale",closeAnimation:"scale",animationSpeed:400,animationBounce:1,escapeKey:true,rtl:false,container:"body",containerFluid:false,backgroundDismiss:false,backgroundDismissAnimation:"shake",autoClose:false,closeIcon:null,closeIconClass:false,watchInterval:100,columnClass:"col-md-4 col-md-offset-4 col-sm-6 col-sm-offset-3 col-xs-10 col-xs-offset-1",boxWidth:"50%",scrollToPreviousElement:true,scrollToPreviousElementAnimate:true,useBootstrap:true,offsetTop:40,offsetBottom:40,bootstrapClasses:{container:"container",containerFluid:"container-fluid",row:"row"},onContentReady:function(){},onOpenBefore:function(){},onOpen:function(){},onClose:function(){},onDestroy:function(){},onAction:function(){}};var keyDown=false;$(window).on("keydown",function(e){if(!keyDown){var $target=$(e.target);var pass=false;if($target.closest(".jconfirm-box").length){pass=true;}if(pass){$(window).trigger("jcKeyDown");}keyDown=true;}});$(window).on("keyup",function(){keyDown=false;});w.jconfirm.lastClicked=false;$(document).on("mousedown","button, a, [jc-source]",function(){w.jconfirm.lastClicked=$(this);});}));; + diff --git a/resources/fluidbook/data/countup.js b/resources/fluidbook/data/countup.js new file mode 100644 index 0000000..2ea7b18 --- /dev/null +++ b/resources/fluidbook/data/countup.js @@ -0,0 +1,249 @@ +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +// playground: stackblitz.com/edit/countup-typescript +var CountUp = /** @class */ (function () { + function CountUp(target, endVal, options) { + var _this = this; + this.target = target; + this.endVal = endVal; + this.options = options; + this.version = '2.0.4'; + this.defaults = { + startVal: 0, + decimalPlaces: 0, + duration: 2, + useEasing: true, + useGrouping: true, + smartEasingThreshold: 999, + smartEasingAmount: 333, + separator: ',', + decimal: '.', + prefix: '', + suffix: '' + }; + this.finalEndVal = null; // for smart easing + this.useEasing = true; + this.countDown = false; + this.error = ''; + this.startVal = 0; + this.paused = true; + this.count = function (timestamp) { + if (!_this.startTime) { + _this.startTime = timestamp; + } + var progress = timestamp - _this.startTime; + _this.remaining = _this.duration - progress; + // to ease or not to ease + if (_this.useEasing) { + if (_this.countDown) { + _this.frameVal = _this.startVal - _this.easingFn(progress, 0, _this.startVal - _this.endVal, _this.duration); + } + else { + _this.frameVal = _this.easingFn(progress, _this.startVal, _this.endVal - _this.startVal, _this.duration); + } + } + else { + if (_this.countDown) { + _this.frameVal = _this.startVal - ((_this.startVal - _this.endVal) * (progress / _this.duration)); + } + else { + _this.frameVal = _this.startVal + (_this.endVal - _this.startVal) * (progress / _this.duration); + } + } + // don't go past endVal since progress can exceed duration in the last frame + if (_this.countDown) { + _this.frameVal = (_this.frameVal < _this.endVal) ? _this.endVal : _this.frameVal; + } + else { + _this.frameVal = (_this.frameVal > _this.endVal) ? _this.endVal : _this.frameVal; + } + // decimal + _this.frameVal = Math.round(_this.frameVal * _this.decimalMult) / _this.decimalMult; + // format and print value + _this.printValue(_this.frameVal); + // whether to continue + if (progress < _this.duration) { + _this.rAF = requestAnimationFrame(_this.count); + } + else if (_this.finalEndVal !== null) { + // smart easing + _this.update(_this.finalEndVal); + } + else { + if (_this.callback) { + _this.callback(); + } + } + }; + // default format and easing functions + this.formatNumber = function (num) { + var neg = (num < 0) ? '-' : ''; + var result, x, x1, x2, x3; + result = Math.abs(num).toFixed(_this.options.decimalPlaces); + result += ''; + x = result.split('.'); + x1 = x[0]; + x2 = x.length > 1 ? _this.options.decimal + x[1] : ''; + if (_this.options.useGrouping) { + x3 = ''; + for (var i = 0, len = x1.length; i < len; ++i) { + if (i !== 0 && (i % 3) === 0) { + x3 = _this.options.separator + x3; + } + x3 = x1[len - i - 1] + x3; + } + x1 = x3; + } + // optional numeral substitution + if (_this.options.numerals && _this.options.numerals.length) { + x1 = x1.replace(/[0-9]/g, function (w) { return _this.options.numerals[+w]; }); + x2 = x2.replace(/[0-9]/g, function (w) { return _this.options.numerals[+w]; }); + } + return neg + _this.options.prefix + x1 + x2 + _this.options.suffix; + }; + this.easeOutExpo = function (t, b, c, d) { + return c * (-Math.pow(2, -10 * t / d) + 1) * 1024 / 1023 + b; + }; + this.options = __assign({}, this.defaults, options); + this.formattingFn = (this.options.formattingFn) ? + this.options.formattingFn : this.formatNumber; + this.easingFn = (this.options.easingFn) ? + this.options.easingFn : this.easeOutExpo; + this.startVal = this.validateValue(this.options.startVal); + this.frameVal = this.startVal; + this.endVal = this.validateValue(endVal); + this.options.decimalPlaces = Math.max(0 || this.options.decimalPlaces); + this.decimalMult = Math.pow(10, this.options.decimalPlaces); + this.resetDuration(); + this.options.separator = String(this.options.separator); + this.useEasing = this.options.useEasing; + if (this.options.separator === '') { + this.options.useGrouping = false; + } + this.el = (typeof target === 'string') ? document.getElementById(target) : target; + if (this.el) { + this.printValue(this.startVal); + } + else { + this.error = '[CountUp] target is null or undefined'; + } + } + // determines where easing starts and whether to count down or up + CountUp.prototype.determineDirectionAndSmartEasing = function () { + var end = (this.finalEndVal) ? this.finalEndVal : this.endVal; + this.countDown = (this.startVal > end); + var animateAmount = end - this.startVal; + if (Math.abs(animateAmount) > this.options.smartEasingThreshold) { + this.finalEndVal = end; + var up = (this.countDown) ? 1 : -1; + this.endVal = end + (up * this.options.smartEasingAmount); + this.duration = this.duration / 2; + } + else { + this.endVal = end; + this.finalEndVal = null; + } + if (this.finalEndVal) { + this.useEasing = false; + } + else { + this.useEasing = this.options.useEasing; + } + }; + // start animation + CountUp.prototype.start = function (callback) { + if (this.error) { + return; + } + this.callback = callback; + if (this.duration > 0) { + this.determineDirectionAndSmartEasing(); + this.paused = false; + this.rAF = requestAnimationFrame(this.count); + } + else { + this.printValue(this.endVal); + } + }; + // pause/resume animation + CountUp.prototype.pauseResume = function () { + if (!this.paused) { + cancelAnimationFrame(this.rAF); + } + else { + this.startTime = null; + this.duration = this.remaining; + this.startVal = this.frameVal; + this.determineDirectionAndSmartEasing(); + this.rAF = requestAnimationFrame(this.count); + } + this.paused = !this.paused; + }; + // reset to startVal so animation can be run again + CountUp.prototype.reset = function () { + cancelAnimationFrame(this.rAF); + this.paused = true; + this.resetDuration(); + this.startVal = this.validateValue(this.options.startVal); + this.frameVal = this.startVal; + this.printValue(this.startVal); + }; + // pass a new endVal and start animation + CountUp.prototype.update = function (newEndVal) { + cancelAnimationFrame(this.rAF); + this.startTime = null; + this.endVal = this.validateValue(newEndVal); + if (this.endVal === this.frameVal) { + return; + } + this.startVal = this.frameVal; + if (!this.finalEndVal) { + this.resetDuration(); + } + this.determineDirectionAndSmartEasing(); + this.rAF = requestAnimationFrame(this.count); + }; + CountUp.prototype.printValue = function (val) { + var result = this.formattingFn(val); + if (this.el.tagName === 'INPUT') { + var input = this.el; + input.value = result; + } + else if (this.el.tagName === 'text' || this.el.tagName === 'tspan') { + this.el.textContent = result; + } + else { + this.el.innerHTML = result; + } + }; + CountUp.prototype.ensureNumber = function (n) { + return (typeof n === 'number' && !isNaN(n)); + }; + CountUp.prototype.validateValue = function (value) { + var newValue = Number(value); + if (!this.ensureNumber(newValue)) { + this.error = "[CountUp] invalid start or end value: " + value; + return null; + } + else { + return newValue; + } + }; + CountUp.prototype.resetDuration = function () { + this.startTime = null; + this.duration = Number(this.options.duration) * 1000; + this.remaining = this.duration; + }; + return CountUp; +}()); +; + diff --git a/resources/fluidbook/data/cube.js b/resources/fluidbook/data/cube.js new file mode 100644 index 0000000..e7f3cc0 --- /dev/null +++ b/resources/fluidbook/data/cube.js @@ -0,0 +1 @@ +function ucfirst(str){str+="";var f=str.charAt(0).toUpperCase();return f+str.substr(1)}function arrayRemove(array,element){var index=array.indexOf(element);if(index==-1){return}array.splice(index,1);return array}function json_parse(str,info){try{return JSON.parse(str)}catch(err){if(info!=undefined){}console.error("Error parsing json :: "+err+" :: "+str)}}function isOnStage(element){return $(element).closest("body").length>0}function trim(str,charlist){var whitespace,l=0,i=0;str+="";if(!charlist){whitespace=" \n\r\t\f\v            ​\u2028\u2029 "}else{charlist+="";whitespace=charlist.replace(/([\[\]\(\)\.\?\/\*\{\}\+\$\^\:])/g,"$1")}l=str.length;for(i=0;i=0;i--){if(whitespace.indexOf(str.charAt(i))===-1){str=str.substring(0,i+1);break}}return whitespace.indexOf(str.charAt(0))===-1?str:""}(function(){var lastTime=0;var vendors=["ms","moz","webkit","o"];for(var x=0;x>>0).toString(8);break;case"s":r=String(r),r=s.precision?r.substring(0,s.precision):r;break;case"t":r=String(!!r),r=s.precision?r.substring(0,s.precision):r;break;case"T":r=Object.prototype.toString.call(r).slice(8,-1).toLowerCase(),r=s.precision?r.substring(0,s.precision):r;break;case"u":r=parseInt(r,10)>>>0;break;case"v":r=r.valueOf(),r=s.precision?r.substring(0,s.precision):r;break;case"x":r=(parseInt(r,10)>>>0).toString(16);break;case"X":r=(parseInt(r,10)>>>0).toString(16).toUpperCase()}g.json.test(s.type)?d+=r:(!g.number.test(s.type)||c&&!s.sign?l="":(l=c?"+":"-",r=r.toString().replace(g.sign,"")),o=s.pad_char?"0"===s.pad_char?"0":s.pad_char.charAt(1):" ",p=s.width-(l+r).length,a=s.width&&0-1){return true}}return false}function parseGet(){var couples=window.location.search.substr(1).split("&");var res={};var couple=[];for(var i=0;i1){$('svg symbol[id="'+icon+'"]:not(:last)').remove();iconSymbol=$('svg symbol[id="'+icon+'"]')}if(iconSymbol.length==0){return""}if(attrs==undefined){attrs={}}if(attrs.viewBox==null){attrs.viewBox=iconSymbol.get(0).attributes.viewBox.value}if(dimensions===true){var vb=attrs.viewBox.split(" ");attrs.x=vb[0];attrs.y=vb[1];attrs.width=vb[2];attrs.height=vb[3]}if(attrs.class==null){attrs.class=icon}else{attrs.class+=" "+icon}attrs.class+=" nav-icon svg-icon";$.each(attrs,function(k,v){a.push(k+'="'+v+'"')});return"'}function relativeToAbsoluteURL(relative){var link=document.createElement("a");link.href=relative;return link.href}function blur(){if($(":focus").length>0){var tmp=document.createElement("input");document.body.appendChild(tmp);tmp.focus();document.body.removeChild(tmp)}}function array_diff(a,b){return a.filter(function(i){return b.indexOf(i)<0})}function getIframeDocument(iframe){iframe=$(iframe).get(0);var doc=iframe.contentWindow||iframe.contentDocument;if(doc.document){doc=doc.document}return doc}function FluidbookNetworkControl(fluidbook){this.fluidbook=fluidbook;this.pauseDate=null;this.pauseQueue=[];this.pausePriorityQueue=[];this.afterProcessingQueue=[];this.processing=true;this.init()}FluidbookNetworkControl.prototype={init:function(){var $this=this;setInterval(function(){if($this.pauseDate!=null&&$this.pauseDate0){f=this.pausePriorityQueue.shift()}else{f=this.pauseQueue.shift()}var $this=this;f(function(){setTimeout(function(){$this.flushAfterProcessingQueue();$this.processing=false;$this.flushQueue()},100)})}};function FluidbookSplash(fluidbook){this.fluidbook=fluidbook;this.hideSplashTimeout=1;this.isHidding=false;this.init()}FluidbookSplash.prototype={init:function(){this.waitForTimer=true;this.waitForReady=true;var defaultMin=5;var min=parseFloat(this.fluidbook.settings.splashMinimalTime);if(min0){l.removeClass("show");return false}}var showid=[];if(mode==="pickrandom"){while(true){var ids=$(this).data("showid").toString().split(",");var idx=Math.floor(Math.random()*ids.length);showid=[ids[idx]];if($('div.link[data-hidden="1"][data-id$="'+showid+'"].show').length===0||ids.length===0){break}}}else if(mode==="shownext"||mode==="shownextcycle"){var ids=$(this).data("showid").toString().split(",");var current=$(this).data("current-showid");if(current===undefined){showid=[ids[0]]}else{var idx=ids.indexOf(current)+1;if(idx===ids.length){if(mode==="shownext"){return false}else{idx=0}}showid=[ids[idx]]}$(this).data("current-showid",showid[0])}else{showid=$(this).data("showid").toString().split(",")}if(mode==="exclusiveshow"||mode==="shownext"||mode==="shownextcycle"||mode==="pickrandom"){var selector='div.link[data-hidden="1"].show';$.each(showid,function(k,id){selector+=':not([data-id$="'+id+'"])'});$(selector).each(function(){$this.hidePlacedLink(this,mode==="shownext"||mode==="shownextcycle"?500:0)})}var close=$(this).data("showclose");$.each(showid,function(k,id){$('div.link[data-id$="'+id+'"]').each(function(){var l=this;if(close!=="none"){$(l).append('')}$(l).show();if($(l).find("iframe").length>0){$(l).find("iframe").each(function(){this.src=this.src})}$(l).trigger("fluidbook.link.show");if(close!=="none"){$(l).removeClass("notinteractive");$(l).find("img").css("pointer-events","none")}setTimeout(function(){$(l).addClass("show")},10)})});return false});$(document).on("click touchend",".linkshowclose",function(){var id=$(this).closest("[data-id]").data("id");$('div.link[data-id="'+id+'"]').each(function(){$this.hidePlacedLink(this)});return false});$(document).on("click touchend",".textpopup",function(){$this.fluidbook.menu.__openView("text",$(this).data("text"),function(){});return false});$(document).on("click touchend",'a.triggerlink[data-trigger-event="click"]',function(){var ids=$(this).data("trigger-id").split(",");$.each(ids,function(k,id){$this.triggerLinkById(id)});return false});$(document).on("click touchend","[data-action]",function(){var map={pdf:"print",fullScreen:"fullscreen",locales:"localesContainers",basket:"cart"};var action=$(this).data("action");var extra=$(this).data("extra");$this.fluidbook.nav.closeMenu();if(action==="share"){return true}if(map[action]){action=map[action]}if(action==="chapters"&&extra){window.location.hash="#/chapters/"+extra;return false}var navitem=$("#horizontalNav_"+action);if(navitem.length>0){if($(this).data("extra")!=null){$(navitem).data("extra",$(this).data("extra"))}$(navitem).get(0).click()}return false});$(this.fluidbook).one("fluidbook.splash.hide",function(){if($this.fluidbook.settings.openLinkAtStartup!==""){$this.fluidbook.links.triggerLinkById($this.fluidbook.settings.openLinkAtStartup)}})},handleExternalHref:function(link){var href=$(link).is("[data-pseudolink-href]")?$(link).data("pseudolink-href"):$(link).attr("href");var change=false;if(this.fluidbook.stats.relay_url_params!==""&&!$(link).hasClass("relay_appended")){$(link).addClass("relay_appended");href=this.appendParamsToURL(href,this.fluidbook.stats.relay_url_params);change=true}if(this.fluidbook.settings.linkTracker!==""&&(this.fluidbook.settings.linkTrackerRegexp===""||href.indexOf(this.fluidbook.settings.linkTrackerRegexp)>=0)&&!$(link).hasClass("tracking_appended")){$(link).addClass("relay_appended");href=this.appendParamsToURL(href,this.fluidbook.settings.linkTracker);change=true}if(change){if($(link).is("[data-pseudolink-href]")){$(link).attr("[data-pseudolink-href]",href).data("pseudolink-href",href)}else{$(link).attr("href",href)}}return href},appendParamsToURL:function(url,params){var u=new URL(url);var s="";if(u.search===""){s="?"}else{s="&"}u.search=s+params;return u.href},showLinkById:function(id){var s=$('div.link[data-id="'+id+'"]');s.show();setTimeout(function(){s.addClass("show")},10)},hideLinkById:function(id){var s=$('div.link[data-id="'+id+'"]');if($(s).attr("data-hidden")!="1"){$(s).attr("data-hidden","1").addClass("show")}setTimeout(function(){$(s).removeClass("show")},10)},hidePlacedLink:function(p,timeout){if($(p).length===0){return}if(timeout===undefined){timeout=0}setTimeout(function(){$(p).removeClass("show");$(p).find(".linkshowclose").remove();setTimeout(function(){$(p).hide()},1e3)},timeout)},initLinks:function(pageNr){if(pageNr===undefined){pageNr=this.fluidbook.currentPage}var rightPage,leftPage;if(pageNr%2===0){leftPage=pageNr;rightPage=pageNr+1}else{rightPage=pageNr;leftPage=pageNr-1}var links=$("#links").removeClass("right");$(links).html("").show();if(this.fluidbook.displayOnePage&&pageNr%2===1&&this.fluidbook.l10n.dir==="ltr"){$(links).addClass("right")}var leftLinks,rightLinks;leftLinks=rightLinks=true;if(this.fluidbook.displayOnePage){if(pageNr!==rightPage){rightLinks=false}if(pageNr!==leftPage){leftLinks=false}}if(leftLinks){links.prepend('
');var leftContainer=links.find(".leftContainer");leftContainer.html(this.fluidbook.loader.handleExtension(this.fluidbook.settings.links[leftPage]));if(this.fluidbook.settings.bookmark){leftContainer.append(this.fluidbook.bookmarks.getBookmarkForPage(leftPage,this.fluidbook.displayOnePage,this.fluidbook.settings.bookmarkPermanentIcon))}}if(rightLinks){links.prepend('
');var rightContainer=links.find(".rightContainer");rightContainer.html(this.fluidbook.loader.handleExtension(this.fluidbook.settings.links[rightPage]));if(this.fluidbook.settings.bookmark){rightContainer.append(this.fluidbook.bookmarks.getBookmarkForPage(rightPage,this.fluidbook.displayOnePage,this.fluidbook.settings.bookmarkPermanentIcon))}}if(links.find(".link.multimedia iframe").length>0){this.fluidbook.networkControl.pause(3e4)}if(this.lowdef){links.find("iframe[data-ld]").each(function(){$(this).attr("src",$(this).data("ld"))})}links.prepend('
');var $this=this;this.initLottieAnimations();this.animateLinks();$this.initAnimatedContentsLinks();setTimeout(function(){$this.fluidbook.initVideos();$this.fluidbook.audioplayer.initAudios();$this.initInlineSlideshows();$this.fluidbook.l10n.translateAttributes()},200);$(fluidbook).trigger("fluidbook.links.ready");this.resize()},initLottieAnimations:function(){var $this=this;$(".lottie:not([data-lottie-inited])").each(function(){var id=$(this).data("lottie-id");var params=$this.fluidbook.settings.lottieAnimations[id][0];params.animationData=$this.fluidbook.settings.lottieAnimations[id][1];params.container=$(this).get(0);params.rendererSettings={preserveAspectRatio:"none"};lottie.loadAnimation(params);$(this).attr("data-lottie-inited","1")})},animateLinks:function(){if(this.fluidbook.settings.linkBlinkTime==0||this.fluidbook.settings.linkBlinkRepetition==0||!this.fluidbook.settings.mobileLinksRevealAnim||this.fluidbook.menu.viewMode()){return}var $this=this;setTimeout(function(){$this.doAnimateLinks()},650)},initAnimatedContentsLinks:function(){if(this.fluidbook.mobilefirst.enabled||this.fluidbook.splash.isVisible()&&!this.fluidbook.splash.isHidding){return}var $this=this;$("#currentDoublePage,#links").find(".contentLink[data-animations]").each(function(){$this.animateContentLink($(this),true)})},animateContentLink:function(link,autostart){if($(link).data("animation-started")===true){return}if(autostart===undefined){autostart=false}var animations=$(link).data("animations");var $this=this;var defaults=["ease","duration","delay"];var firstDefaults={};if(animations===undefined||animations===null||animations.length===0){return}if(animations[0]["autostart"]===undefined){animations[0]["autostart"]=true}if(animations[0]["autostart"]=="0"||animations[0]["autostart"]=="false"){animations[0]["autostart"]=false}if(autostart&&!animations[0]["autostart"]){return}$.each(defaults,function(k,v){if(animations[0][v]!==undefined){firstDefaults[v]=animations[0][v]}});$(link).data("animation-started",true);$.each(animations,function(k,animation){$this.executeAnimation(link,$.extend({},firstDefaults,animation))})},executeAnimation:function(link,animation){link=$(link);var linkElement=$(link).get(0);if(animation.type===undefined||animation.type===""){animation.type="none"}var defaultParams={};var globalDefault={x:0,y:0,yoyo:0,repeat:0,transformorigin:"50% 50%"};var w=parseFloat(link.css("width"));var cx=w/2;var h=parseFloat(link.css("height"));var cy=h/2;var from={};var to={};var duration=.5;var tweenmax=true;animation=$.extend({},globalDefault,defaultParams,animation);if(animation.duration!==undefined){duration=parseFloat(animation.duration)}to.yoyo=animation.yoyo===true||animation.yoyo===1||animation.yoyo==="1"||animation.yoyo==="true";to.repeat=parseInt(animation.repeat);var css={};if(animation.ease===undefined){animation.ease="Power1.easeOut"}to.ease=animation.ease;if(animation.delay!==undefined){to.delay=parseFloat(animation.delay)}if(animation.type==="scalefrom"){to.display="block";to.visibility="visible";from.scale=animation.scale;to.scale=1;from.transformOrigin=to.transformOrigin=animation.transformorigin}else if(animation.type==="scale"){to.display="block";to.visibility="visible";from.scale=1;to.scale=animation.scale;from.transformOrigin=to.transformOrigin=animation.transformorigin}else if(animation.type==="translatefrom"){from.display="none";to.display="block";to.visibility="visible";from.x=animation.x;from.y=animation.y;to.x=0;to.y=0}else if(animation.type==="translate"){from.display="none";to.display="block";to.visibility="visible";from.x=0;from.y=0;to.x=animation.x;to.y=animation.y}else if(animation.type==="zoomin"||animation.type==="zoomout"){var s=100*animation.scale+"%";from.backgroundPosition=to.backgroudPosition=animation.transformorigin;from.backgroundSize=animation.type==="zoomin"?"100% 100%":s+" "+s;to.backgroundSize=animation.type==="zoomout"?"100% 100%":s+" "+s;if(Modernizr.firefox){to.force3D=true;to.rotation=.01;from.rotation=.01}}else if(animation.type==="fadein"){from.display="none";to.display="block";to.visibility="visible";from.opacity=0;to.opacity=1}else if(animation.type==="fadeout"){from.opacity=1;to.opacity=0}else if(animation.type==="unmask"||animation.type==="reveal"){if(animation.type==="reveal"){from.display="none";to.display="block";to.visibility="visible"}var top=0;var right=w;var bottom=h;var left=0;var rectinit="rect(0px,"+w+"px,"+h+"px,0px)";if(animation.direction==="left"&&animation.type==="unmask"||animation.direction==="right"&&animation.type==="reveal"){right=0}else if(animation.direction==="right"&&animation.type==="unmask"||animation.direction==="left"&&animation.type==="reveal"){left=w}else if(animation.direction==="up"&&animation.type==="unmask"||animation.direction==="down"&&animation.type==="reveal"){bottom=0}else if(animation.direction==="down"&&animation.type==="unmask"||animation.direction==="up"&&animation.type==="reveal"){top=h}var rect="rect("+top+"px,"+right+"px,"+bottom+"px,"+left+"px);";if(animation.type==="unmask"){to.clip=rect;from.clip=rectinit}else if(animation.type==="reveal"){to.clip=rectinit;from.clip=rect}}else if(animation.type==="pie"){defaultParams={startangle:"0",direction:"clockwise",size:"outside",innerradius:"0"};animation=$.extend({},globalDefault,defaultParams,animation);animation.startangle=parseFloat(animation.startangle);animation.innerradius=parseFloat(animation.innerradius);if(animation.direction==="clockwise"){from.angle=animation.startangle+720}else{from.angle=animation.startangle}linkElement.angle=from.angle;var radius;if(animation.size==="outside"){radius=Math.sqrt(cx*cx+cy*cy)}else{radius=Math.min(w,h)/2}var sector=function(paper,cx,cy,r,pct,startAngle,endAngle,params){if(animation.direction==="clockwise"){var sa=startAngle;startAngle=endAngle;endAngle=sa}var rad=Math.PI/180;var x1=cx+r*Math.cos(-startAngle*rad),x2=cx+r*Math.cos(-endAngle*rad),y1=cy+r*Math.sin(-startAngle*rad),y2=cy+r*Math.sin(-endAngle*rad);var r1=r*pct;var x3=cx+r1*Math.cos(-endAngle*rad),y3=cy+r1*Math.sin(-endAngle*rad),x4=cx+r1*Math.cos(-startAngle*rad),y4=cy+r1*Math.sin(-startAngle*rad);var long=+(endAngle-startAngle>180);return paper.path(["M",x4,y4,"L",x1,y1,"A",r,r,0,long,0,x2,y2,"L",x3,y3,"A",r1,r1,0,long,1,x4,y4,"z"]).attr(params)};var paper=new Raphael(link.attr("id"),w,h);var bgc=link.attr("data-color");to.autoCSS=false;to.angle=animation.startangle+360;to.onStart=function(){link.css("background-color","transparent")};to.onUpdate=function(){paper.clear();sector(paper,cx,cy,radius,animation.innerradius,linkElement.angle,to.angle,{fill:bgc,stroke:"none"})}}else if(animation.type==="number"){tweenmax=false;defaultParams={startvalue:"0",decimalseparator:".",decimaldigitnumber:"0",separator:" ",align:"left",letterspacing:"0",prefix:"",suffix:"",scale:1};animation=$.extend({},globalDefault,defaultParams,animation);animation.startvalue=parseFloat(animation.startvalue.replace(/,/,"."));animation.decimaldigitnumber=parseInt(animation.decimaldigitnumber);animation.letterspacing=parseFloat(animation.letterspacing);var ea=to.ease.split(".");var ease=window[ea[0]][ea[1]];var options={duration:duration,useEasing:true,useGrouping:true,separator:animation.separator,decimalPlaces:animation.decimaldigitnumber,decimal:animation.decimalseparator,prefix:animation.prefix,suffix:animation.suffix,easingFn:function(t,b,c,d){return b+ease.getRatio(Math.min(1,Math.max(0,t/d)))*c}};css={textAlign:animation.align,letterSpacing:animation.letterspacing,opacity:0,transform:"scale("+animation.scale+")"};var value=parseFloat(link.text().replace(/,/,"."));link.text("");var countup=new CountUp(link.attr("id"),value,options);setTimeout(function(){link.css("opacity",1);countup.start()},to.delay*1e3)}else{tweenmax=false}link.css(css);if(from.display!==undefined&&from.display!=="none"){link.show()}if(from.display!==undefined&&from.display==="none"){link.hide()}if(tweenmax){TweenMax.fromTo(linkElement,duration,from,to)}this.fluidbook.networkControl.pause((to.delay+duration+.5)*1e3)},getLinkDataById:function(uid){return this.fluidbook.settings.linksData[uid]},getLinkByHref:function(href){for(var i=1;i<=this.fluidbook.settings.pages;i++){var res=$(this.fluidbook.loader.handleExtension(this.fluidbook.settings.links[i])).find('a[href="'+href+'"]');if(res.length>0){return res.eq("0")}}return null},doAnimateLinks:function(linksContainer,additionalDelay){var container=$(document);if(linksContainer!==undefined){container=$(linksContainer)}if(additionalDelay===undefined){additionalDelay=0}if(this.fluidbook.pagetransitions.transitionning){return}var animateBookmarks=this.fluidbook.settings.bookmarkBlinkOnPageChange==true;var $this=this;var links=$(container).find(".link a.displayArea");if(!this.fluidbook.mobilefirst.enabled){$(links).each(function(){$this.animateLink(this,additionalDelay)})}if(animateBookmarks){this._blink($("#links .bookmark:not([data-enabled])"))}},_blink:function(el,delay){if(delay===undefined||delay==0){this.__blink(el);return}var $this=this;setTimeout(function(){$this.__blink(el)},delay)},__blink:function(el){var _complete=function(){el.removeClass("animating").css("opacity","")};var speed=.5;var timeline=new TimelineMax;var repetitions=this.fluidbook.settings.linkBlinkRepetition-1;el.addClass("animating");var d=.1;if(repetitions>0){el.css("opacity",0);timeline.add(TweenMax.to(el,this.fluidbook.settings.linkBlinkTime*speed,{delay:.1,opacity:1,ease:Linear.easeNone}));d=0}else{el.css("opacity",1)}for(var i=0;i-1;this.iOS=Modernizr.ios;this.edge=Modernizr.edge;this.offline=typeof process!=="undefined"&&process.versions["node-webkit"]||window.location.toString().indexOf("file://")==0;switch(this.fluidbook.settings.mobileVersion){case"html5":this.imagesVersion=false;break;case"html5-images":this.imagesVersion=true;break;case"html5-desktop":this.imagesVersion=this.iOS||this.android||this.safari&&this.fluidbook.settings.rasterizeOnSafari||this.IE>0;break;default:this.imagesVersion=false;break}this.transitions2d=Modernizr.csstransforms&&Modernizr.csstransitions;this.transitions3d=this.transitions2d&&Modernizr.csstransforms3d&&Modernizr.preserve3d;this.transitions3dacc=this.transitions2d;this.ie9=$("html").hasClass("ie9");this.androidbrowser=this.android&&this.userAgent.search(/applewebkit/i)>-1;this.transitionEndEvent=this.whichTransitionEvent();if(window.resolution==="auto"){if(Modernizr.mq("(min-device-width : 320px) and (max-device-width : 480px)")){this.resolution=150}else{this.resolution=Modernizr.mq("(-webkit-min-device-pixel-ratio: 2)")?this.fluidbook.settings.retinaResolution:150}}else{this.resolution=window.resolution}this.isMobile=isMobile();this.SVG=true;this.nwjs=typeof process!=="undefined"&&process.versions["node-webkit"];this.screenWidth=Math.min(window.screen.availWidth,window.screen.availHeight);this.screenHeight=Math.max(window.screen.availWidth,window.screen.availHeight);this.fullscreen=screenfull.enabled&&!this.iOS;this._orientation=this.getOrientation();this.initEvents()}FluidbookSupport.prototype={testDataURILoading:function(){var img=new Image;var $this=this;$(img).on("error",function(){$this.datauriallowed=false});$(img).on("load",function(){$this.datauriallowed=true});try{img.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"}catch(err){$this.datauriallowed=false}},getTransitionEndEvent:function(all){if(all==undefined){all=false}if(!all){return this.transitionEndEvent}return"webkitTransitionEnd transitionend oTransitionEnd msTransitionEnd transitionEnd"},hasNetwork:function(){if(navigator.onLine!=undefined){return navigator.onLine}else{return networkState()!="none"}},networkState:function(){var connection=navigator.connection||navigator.mozConnection||navigator.webkitConnection||{type:"unknown"};var t=connetion.type;if(t===undefined){t="unknown"}else if(t===0){t="unknown"}else if(t===1){t="ethernet"}else if(t===2){t="wifi"}else if(t===3){t="2g"}else if(t===4){t="3g"}else if(t===5){t="4g"}else{t="none"}return t},initEvents:function(){var $this=this;if(!isMobile(false)){$(window).on("resize",function(){resize()})}else{if("onorientationchange"in window){window.addEventListener("orientationchange",function(){resize();setTimeout(function(){resize()},750)},false)}else{setInterval(function(){$this.checkOrientation()},100)}}},whichTransitionEvent:function(){var t;var el=document.createElement("fakeelement");var transitions={transition:"transitionend",WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",MSTransition:"msTransitionEnd",OTransition:"oTransitionEnd"};for(t in transitions){if(el.style[t]!==undefined){return transitions[t]}}},checkOrientation:function(){var o=this.getOrientation();if(o!=this._orientation){this._orientation=o;resize()}},getOrientation:function(){try{if(this.fluidbook.pad&&this.fluidbook.pad.enabled||this.fluidbook.mobilefirst.enabled){return 0}else if(this.fluidbook.settings.mobileNavigationType==="landscape"){return 90}else if(this.fluidbook.settings.mobileNavigationType==="portrait"){return 0}}catch(err){}try{return Modernizr.mq("(orientation: portrait)")?0:90}catch(err){}return $("#op").is(":visible")?0:90}};function FluidbookVideo(fluidbook){var $this=this;this.players={};this.fullscreenActive=false;$(fluidbook).on("fluidbook.beforePageTransition",function(){$this.removeAllVideos()});$(fluidbook).on("fluidbook.resize",function(e){$this.resizeControls()});$(window).on("videoFullscreenEntered",function(){$this.fullscreenActive=true});$(window).on("videoFullscreenExited",function(){setTimeout(function(){$this.fluidbook.resize.resize()},250);setTimeout(function(){$this.fullscreenActive=false;$this.fluidbook.resize.resize()},1e3)});this.fluidbook=fluidbook;this.video=(Modernizr.video&&(Modernizr.video.h264||Modernizr.video.webm||Modernizr.video.ogg))!=false;this.videoFormats=[];var probably=[];var maybe=[];var not=[];if(this.video){var formats=this.fluidbook.settings.videoFormats;for(var i=0;i'})}html+="";$(e).html(html);player=videojs(id,setup);player.ready(function(){$this.resizeControls();console.log("autoplay",autoplay);if(autoplay){var promise=player.play();if(promise!==undefined){promise.then(function(){console.log("autoplay ok")}).catch(function(error){console.log("autoplay nok")})}}if(fluidbook.video.players[id]){var settings=fluidbook.video.players[id];player.autoplay(false);player.volume(settings.volume);player.muted(settings.muted);player.currentTime(settings.currentTime);setTimeout(function(){player.play()},50);player.one("play",function(){if(settings.paused){setTimeout(function(){player.pause()},100)}else{$.each(hidelinksonplay,function(k,id){$this.fluidbook.links.hideLinkById(id)})}});player.play();if(settings.paused){player.pause()}setTimeout(function(){$this.fluidbook.contentlock.addAction(linkid,"complete")},(player.duration()-5)*1e3)}});player.on("play",function(){$.each(hidelinksonplay,function(k,id){$this.fluidbook.links.hideLinkById(id)})});player.on("pause",function(){this.bigPlayButton.show();player.one("play",function(){this.bigPlayButton.hide()});$.each(hidelinksonplay,function(k,id){$this.fluidbook.links.showLinkById(id)})});player.on("fullscreenchange",function(){if(player.isFullscreen()){$(window).trigger("videoFullscreenEntered")}else{$(window).trigger("videoFullscreenExited")}});player.on("ended",function(){$this.fluidbook.contentlock.addAction(linkid,"complete")})},openVideo:function(link){if(link===undefined)return false;link=$(link);var popup=$("#videoPopup"),html,width=parseFloat(link.data("width")),height=parseFloat(link.data("height")),name=link.data("name"),controls=link.data("controls"),loop=link.data("loop"),sound=link.data("sound"),autoplay=link.data("autoplay"),path,poster;if(fluidbook.settings.mobileVideosPath==""){path="data/links/"+name}else{path=fluidbook.settings.mobileVideosPath+name;if(!fluidbook.settings.standalone&&path.substr(0,3)=="../"){path="../"+path}}poster=path+".jpg";html='';popup.html(html);videojs($("#videoPopup video"));$("body").addClass("videoPopup");popup.show()},initCache:function(){var $this=this;$("body").append('');$("#videoframe").load(function(){var w=this.contentWindow;var cache=w.applicationCache;cache.addEventListener("downloading",$this.logCacheEvent,false);cache.addEventListener("checking",$this.logCacheEvent,false);cache.addEventListener("cached",$this.logCacheEvent,false);cache.addEventListener("downloading",$this.logCacheEvent,false);cache.addEventListener("noupdate",$this.logCacheEvent,false);cache.addEventListener("updateready",$this.logCacheEvent,false);cache.addEventListener("error",$this.logCacheEvent,false);$(this).hide()})},logCacheEvent:function(e){},pauseAllVideos:function(){$("video").each(function(){this.pause()})},removeAllVideos:function(skipPopupVideos){skipPopupVideos=skipPopupVideos||true;var $this=this,playersToBeRemoved=this.getActivePlayers();if(skipPopupVideos){playersToBeRemoved=playersToBeRemoved.filter(function(player){return!$.contains(document.getElementById("view"),document.getElementById(player.id()))})}playersToBeRemoved.forEach(function(player){$this.disposeVideo(player)})},disposeVideo:function(player){var id=player.id();if(player.hasStarted()){fluidbook.video.players[id]={currentTime:player.currentTime(),volume:player.volume(),muted:player.muted(),paused:player.paused()}}player.dispose();return id},getActivePlayers:function(){var players=[];if(typeof videojs!=="undefined"&&Object.keys(videojs.players).length>0){for(var id in videojs.players){if(videojs.players[id]){players.push(videojs(id))}}}return players},isVideoFullscreen:function(){return this.fullscreenActive},resizeControls:function(){$(".video-js").each(function(){var id=$(this).attr("id");if(videojs(id)&&videojs(id).isFullscreen()){$(this).attr("style","")}else{var scaledFontSize=12/fluidbook.resize.bookScale,scaledWidth=$(this).width()*fluidbook.resize.bookScale,breakpoint=400;if(scaledWidth0){var is="initial-scale="+this.initialScale+", "}var us=this.userScalable==true?"yes":"no";var value=w+h+is+"minimum-scale="+Math.max(.25,this.minScale)+", maximum-scale="+Math.min(10,this.maxScale)+", user-scalable="+us+", shrink-to-fit=no";this.meta.attr("content",value)}};function FluidbookDesktop(fluidbook){this.fluidbook=fluidbook;if(this.fluidbook.support.iOS||this.fluidbook.support.android){return}this.init()}FluidbookDesktop.prototype={init:function(){var $this=this;$(document).on("touchend","#links",function(e){if($(e.target).is("#links")){e.preventDefault()}});$(document).on("click","#links",function(e){if($this.fluidbook.zoom.enabled&&$this.fluidbook.input.isUsingMouse()){$this.clickZoom(e);return false}});$(document).on("click","#links .link:not(.eventOverlayLink)",function(e){e.stopPropagation()});$(document).on("mousemove","body",function(e){if($this.fluidbook.zoom.enabled){$this.moveZoom(e)}})},moveZoom:function(e,force){try{var x=e.pageX/this.fluidbook.resize.ww;var y=e.pageY/this.fluidbook.resize.hh;this.fluidbook.zoom.setOriginPct(x,y,force)}catch(err){}},clickZoom:function(e,way){if(way==undefined){if(this.fluidbook.zoom.zoom==1){way=1}else{way=-1}}var newScale;if(way==1){newScale=this.fluidbook.settings.zoom/100}else if(way==-1){newScale=1}this.moveZoom(e,true);this.fluidbook.zoom.setZoom(newScale);return false}};function FluidbookService(fluidbook,id){this.fluidbook=fluidbook;this.baseURL="https://workshop.fluidbook.com/services/";this.id=id}FluidbookService.prototype={call:function(func,settings,handler,context){settings["id"]=this.id;return $.ajax({url:this.baseURL+func,context:context,format:"xml",crossDomain:true,data:settings,success:function(data){handler.call(this,data)}})},open:function(func,settings,options){settings["id"]=this.id;var u=[];$.each(settings,function(k,v){u.push(k+"="+encodeURIComponent(v))});var url=this.baseURL+func+"?"+u.join("&");this.fluidbook.wopen(url,"_blank",options)}};function FluidbookShare(fluidbook){this.fluidbook=fluidbook;if(this.isEnabled()){var $this=this;if(this.fluidbook.settings.phonegap!=="android"){$(document).on("click",".share",function(){var f="send"+ucfirst($(this).data("service"));var url=$(this).data("url");if(url===undefined||url===null||url==="undefined"){url=""}var context=$(this).data("context")===null?"publication":$(this).data("context");$this[f](url,context);$(this).closest(".mview").find(".back").click();return false})}$(document).on("click touchend",'[data-action="share"]',function(){$this.fluidbook.menu.openView("share",$(this).data("extra"),$(this).data("context"));return false});$(this.fluidbook).on("fluidbook.page.change.end",function(){$('[data-href^="article:"]').each(function(){$(this).attr("data-href",relativeToAbsoluteURL($this.getShareURL($(this).data("href"))))});if($(".fb-like").length>0){try{console.log("try to refresh facebook");FB.XFBML.parse()}catch(e){}}});if(this.fluidbook.settings.phonegap==="android"){$(document).on("click","#shareLinks, #shareLinks a",function(e){e.stopPropagation();e.stopImmediatePropagation();e.preventDefault();$this.intentShare();return false})}}}FluidbookShare.prototype={isEnabled:function(){return this.fluidbook.settings.share&&this.getShareURL("")!==false},getFluidbookURL:function(withPage){var l=window.location.toString();if(this.fluidbook.settings.restrictPrintDownload!==""){l=l.replace("?"+this.fluidbook.settings.restrictPrintDownload,"");l=l.replace(this.fluidbook.settings.restrictPrintDownload,"")}var e=l.split("#");var res=e[0];if(withPage===true){res+="#/page/"+this.fluidbook.currentPage}return res},getShareURL:function(url){if(url==undefined||url=="undefined"||url==null||url==false){url=""}url=url.toString();if(url==""){var res=false;if(this.fluidbook.support.offline||this.fluidbook.settings.phonegap){if(this.fluidbook.settings.offlineLink!==""&&this.fluidbook.settings.offlineLink!=="http://"){res=this.fluidbook.settings.offlineLink}}else if($_GET["hybrid"]!==undefined&&$_GET["hybrid"]==="1"&&$_GET["from"]!==undefined&&$_GET["from"]){res=decodeURIComponent($_GET["from"])}else{res=this.getFluidbookURL()}return res}var e=url.split(":");if(e.length===1){return relativeToAbsoluteURL(url)}else{if(e[0]==="http"||e[0]==="https"){return url}else if(e[0]==="article"){e.shift();var articleTitle=e.join(":");return relativeToAbsoluteURL("./p/"+this.getSEOArticle(articleTitle).url)}}},getShareTitle:function(url){if(url==""){return this.fluidbook.settings.title}else{var e=url.split(":");if(e[0]=="article"){return this.getSEOArticle(e[1]).title}}return this.fluidbook.settings.title},getEmailSubject:function(url,context){if(context==="publication"){if(this.fluidbook.settings.email_title===""){return this.fluidbook.settings.title}return this.fluidbook.settings.email_title}else if(context==="product"){return this.fluidbook.settings.product_email_title}else if(context==="article"){return this.getSEOArticle(url).title}},getEmailBody:function(url,context){var body;var u=this.getShareURL(url);var title=this.fluidbook.settings.title;if(context==="publication"){if(this.fluidbook.settings.email_body===""){body=this.fluidbook.l10n.__("Veuillez cliquer sur le lien suivant pour ouvrir %title%\\n%link%")}else{body=this.fluidbook.settings.email_body}}else if(context==="product"){body=this.fluidbook.settings.product_email_body}else if(context==="article"){body="%title%\\n%link%";title=this.getSEOArticle(url).title}body=body.trim();body=body.replace(/\%title\%/g,title);if(body.indexOf("%link%")===-1&&body.indexOf("http")===-1){body+="\n\n"+u}else{body=body.replace(/\%link\%/g,u)}body=body.replace(/\\r\\n/g,"\n");body=body.replace(/\\r/g,"\n");body=body.replace(/\\n/g,"\r\n");return body},getSEOArticle:function(id){id=id.toString();if(id.indexOf("article:")===0){id=id.substr(8)}if(this.fluidbook.settings.seoArticles[id]!==undefined){return this.fluidbook.settings.seoArticles[id]}var found=false;$.each(this.fluidbook.settings.seoArticles,function(k,v){if(v.id.toString()===id){found=v;return false}});if(found!==false){return found}},getShareLinks:function(hideLabels,url,context){var shareLinks={},shareHTML="";if(url===undefined||url===null||url==="undefined"){url=""}hideLabels=hideLabels||false;if(this.fluidbook.settings.friend){shareLinks["email"]="E-mail"}if(this.fluidbook.settings.facebook){shareLinks["facebook"]="Facebook"}if(this.fluidbook.settings.twitter){shareLinks["twitter"]="Twitter"}if(this.fluidbook.settings.whatsapp){shareLinks["whatsapp"]="WhatsApp"}if(this.fluidbook.settings.linkedin){shareLinks["linkedin"]="LinkedIn"}if(this.fluidbook.settings.pinterest){shareLinks["pinterest"]="Pinterest"}for(var shareType in shareLinks){if(shareLinks.hasOwnProperty(shareType)){shareHTML+='
  • "}}return'
      '+shareHTML+"
    "},openShare:function(url,context,callback){var view;if(url===undefined||url===null||url==="undefined"||!url){url=""}if(context===undefined||context===null){context=url.indexOf("article:")===0?"article":"publication"}view=this.fluidbook.menu.getCaption(this.fluidbook.l10n.__("share"));view+='
    ';view+=this.getShareLinks(false,url,context);view+="
    ";this.fluidbook.menu.viewWrap(view,"share");if(callback!=undefined){callback()}},intentShare:function(subject,body){if(subject==undefined){subject=this.fluidbook.settings.title}if(body==undefined){body=this.fluidbook.settings.title+" : "+this.getShareURL()}body=body.replace(/\r\n/g,"\n");body=body.replace(/\r/g,"\n");body=body.replace(/\n/g,"\r\n");if(this.fluidbook.settings.phonegap==="android"){var extras={};extras[window.plugins.webintent.EXTRA_SUBJECT]=subject;extras[window.plugins.webintent.EXTRA_TEXT]=body;window.plugins.webintent.startActivity({action:window.plugins.webintent.ACTION_SEND,type:"text/plain",extras:extras},function(args){},function(args){})}else{window.location="mailto:?subject="+encodeURIComponent(subject)+"&body="+encodeURIComponent(body)}this.fluidbook.stats.track(5)},getTweetContent:function(url,context){var tweet;if(context==="publication"){tweet=this.fluidbook.settings.twitter_description}else if(context==="product"){tweet=this.fluidbook.settings.product_tweet}else if(context==="article"){tweet="%title% : %short%"}return tweet.replace("%title%",this.getShareTitle(url))},sendEmail:function(url,context){var subject=encodeURIComponent(this.getEmailSubject(url,context));var body=encodeURIComponent(this.getEmailBody(url,context));var mailtoParams=[];if(subject!==""){mailtoParams.push("subject="+subject)}if(body!==""){mailtoParams.push("body="+body)}var mailto="mailto:?"+mailtoParams.join("&");window.location=mailto;this.fluidbook.stats.track(5)},_getShortShare:function(url,context){var tweet=this.getTweetContent(url,context);var hasUrlInTweet=tweet.indexOf("%url%")>=0||tweet.indexOf("%short%")>=0;url=this.getShareURL(url);var escaped_url=encodeURIComponent(url);tweet=tweet.replace("%short%",url);tweet=tweet.replace("%url%",url);var urlshare="";if(!hasUrlInTweet){urlshare="&url="+escaped_url}return{url:urlshare,content:tweet}},sendTwitter:function(url,context){var data=this._getShortShare(url,context);this.fluidbook.wopen("https://twitter.com/intent/tweet?source=webclient"+data.url+"&text="+encodeURIComponent(data.content),"share_twitter","width=650,height=400");this.fluidbook.stats.track(13)},sendWhatsapp:function(url,context){var data=this._getShortShare(url,context);this.fluidbook.wopen("https://api.whatsapp.com/send?text="+encodeURIComponent(data.content),"share_whatsapp","width=600,height=600");this.fluidbook.stats.track(12)},sendFacebook:function(url,context){this.fluidbook.wopen("https://www.facebook.com/sharer/sharer.php?u="+encodeURIComponent(this.getShareURL(url)),"share_facebook","width=650,height=400");this.fluidbook.stats.track(12)},sendLinkedin:function(url,context){this.fluidbook.wopen("https://www.linkedin.com/cws/share?url="+encodeURIComponent(this.getShareURL(url))+"&isFramed=true&_ts="+Date.now(),"share_linkedin","width=650,height=400");this.fluidbook.stats.track(12)},sendPinterest:function(url,context){this.fluidbook.wopen("http://pinterest.com/pin/create/button/?url="+encodeURIComponent(this.getShareURL(url))+"&media="+encodeURIComponent("https://workshop.fluidbook.com/services/facebook_thumbnail?id="+this.fluidbook.settings.id+"&j="+Date.now())+'"',"width=650,height=400");this.fluidbook.stats.track(12)}};function FluidbookL10N(fluidbook,lang){this.translations={};this.multilang=[];this.multilangEnabled=false;this.fluidbook=fluidbook;this.currentLang;this.init(lang);this.initMultilang();this.load()}FluidbookL10N.prototype={init:function(lang){if(lang===undefined||lang===null||lang===""){lang="default"}this.lang=lang;if(this.lang==="default"){this.currentLang=this.fluidbook.settings.defaultLang}else{this.currentLang=this.lang}},translateAttributes:function(){var $this=this;var attrs=["data-tooltip","aria-label"];var selectors=[];$.each(attrs,function(k,attr){selectors.push("["+attr+"]")});$(selectors.join(",")).each(function(){var e=this;$.each(attrs,function(k,attr){if($(e).is("["+attr+"]")){var attrValue=$(e).attr(attr);if(attrValue.substr(0,1)==="~"){$(e).attr(attr,$this.fluidbook.l10n.__(attrValue.substring(1)))}}})})},load:function(){this.dir=this.getLanguageDirection(this.getActiveLang());this.ltr=this.dir=="ltr";this.rtl=!this.ltr;$("html").attr("dir",this.dir);if(this.dir=="rtl"){$("html").removeClass("ltr").addClass("rtl")}else{$("html").removeClass("rtl").addClass("ltr")}if(this.lang==="default"){this.translations=this.fluidbook.settings.l10n[this.fluidbook.settings.defaultLang];$.extend(this.translations,this.fluidbook.settings.l10n[this.lang])}else{this.translations=this.fluidbook.settings.l10n[this.lang]}this.updateTranslations()},getActiveLang:function(){var res=this.lang;if(this.lang==="default"){res=this.fluidbook.settings.defaultLang}if(undefined!==this._langsCount&&this._langsCount[res]>1){res+="_"+this.fluidbook.settings.country}return res},initMultilang:function(){var forceLocales;try{forceLocales=window.localStorage.getItem("locales")}catch(err){}var force=false;if(forceLocales===undefined||forceLocales===null||forceLocales==="undefined"){force=false}else{force=true;try{forceLocales=json_parse(forceLocales)}catch(err){force=false}}if(!force){if(this.fluidbook.settings.multilang==""){return}if(this.fluidbook.settings.multiApp){return}}this.multilangEnabled=true;var $this=this;var ml=this.fluidbook.settings.multilang.replace(/\r/g,"\n").replace(/\n+/g,"\n");var e=ml.split("\n");this._langsCount={};var versions=[];$.each(e,function(k,v){if(v==""){return}var l=v.split(",");if(l[0]==""){return}var url=l[2];if(force){var publications=forceLocales[l[0]];if(publications===undefined||publications===null){publications=forceLocales[l[0]+"_"+l[1].toLocaleUpperCase()]}if(publications===undefined||publications===null){return}var pubid=publications[0];try{url=pubid}catch(err){url=""}}var o={lang:l[0],flag:l[1],url:url,langName:l[3],countryName:l[4]};if($this._langsCount[o.lang]===undefined){$this._langsCount[o.lang]=0}$this._langsCount[o.lang]++;versions.push(o)});$.each(versions,function(k,version){var languageId=version.lang;if($this._langsCount[version.lang]>1){languageId+="_"+version.flag}version.id=languageId;$this.multilang[languageId]=version})},getCurrentLanguageName:function(){return this.getLanguageName(this.getActiveLang())},getLanguageName:function(languageCode){var details=this.multilang[languageCode],name="";if(details===undefined){return name}switch(this.fluidbook.settings.multilangDisplay){case"lang":name=details.langName;break;case"lang_country":name=details.langName+" ("+details.countryName+")";break;case"country_lang":name=details.countryName+" ("+details.langName+")";break}return name},getLanguageDirection:function(languageCode){var e=languageCode.split("_");languageCode=e[0];return languageCode=="ar"||languageCode=="he"?"rtl":"ltr"},updateTranslations:function(){var $this=this;$("#q").attr("placeholder",this.__("search"));$("i.l10n").each(function(){var t=$this.fluidbook.l10n.__($(this).attr("str"));$(this).replaceWith(t)})},translate:function(str,markupIfNonAvailable){return this.__(str,markupIfNonAvailable)},__:function(str,markupIfNonAvailable){if(str===undefined){return}if(str.substr(0,1)=="!"){return str.substr(1)}if(this.translations[str]==undefined||this.translations[str]==null||this.translations[str]==""){if(markupIfNonAvailable==undefined||!markupIfNonAvailable){return str}else{return"~ "+str+" ~"}}return this.translations[str]}};function FluidbookSlider(fluidbook){this.fluidbook=fluidbook;this.sliderWidth=0;this.cursorWidth=0;this.snapsWidth=0;this.snapsCount=0;this.init()}FluidbookSlider.prototype={init:function(){var $this=this;$(document).on("click",function(){$("#slider").removeClass("drag");return true});$(document).on("click","#sliderthumb a[data-page]",function(){if($this.fluidbook.canChangePage()){$this.fluidbook.setCurrentPage(parseInt($(this).attr("data-page")))}return false});$("#interface").append('');$(this.fluidbook).on("fluidbook.page.change.end",function(e,page){$this.updateCursorPosition()});$("#sliderback").on("click",function(e){if($this.fluidbook.pagetransitions.transitionning){return}$this.updatePageByCursorPosition($this.pageToSlider(e.pageX),true,true);$("#slider").removeClass("")});$("#slidercursor").on("mousedown",function(e){$this.dragCursor(e,false,true);return true});var hmf=new Hammer.Manager(document.getElementById("slidercursor"),{domEvents:false});hmf.add(new Hammer.Pan({threshold:0}));hmf.on("panmove",function(event){$this.dragCursor(event,false,true);event.preventDefault()});hmf.on("panend",function(event){$this.dragCursor(event,true,true);event.preventDefault()});$("#slider").on("mouseenter mousemove",function(e){if($this.fluidbook.input.isUsingMouse()){return $this.hover(e.pageX)}});$("#slider").on("mouseleave",function(){if($this.fluidbook.input.isUsingMouse()){$("#slider").removeClass("hover")}})},hover:function(pageX){$("#slider").addClass("hover");var page=this.getPageByX(this.pageToSlider(pageX));this.updateThumb(page)},dragCursor:function(e,end,move){if(move==undefined){move=true}if(!end){$("#slider").addClass("drag")}else{$("#slider").removeClass("drag")}if(move){if(e.center!=undefined){this.updatePageByCursorPosition(this.pageToSlider(e.center.x),end,true)}}},pageToSlider:function(pageX){return pageX-$("#slider").offset().left},updatePageByCursorPosition:function(pos,gotoPage,updateCursor){if(updateCursor==undefined){updateCursor=false}if(gotoPage==undefined){gotoPage=true}var page=this.getPageByX(pos);if(gotoPage&&this.fluidbook.canChangePage()){this.fluidbook.setCurrentPage(page)}if(updateCursor){this.updateCursorPosition(page)}return false},getPageByX:function(pos){var page;if(this.fluidbook.l10n.rtl){pos=Math.max(0,this.sliderWidth-pos)}if(this.fluidbook.resize.orientation=="portrait"){page=Math.floor(pos/(this.sliderWidth/this.snapsCount))+1;pageMin=1}else{page=Math.floor(pos/(this.sliderWidth/this.snapsCount))*2;pageMin=0}return Math.min(this.fluidbook.contentlock.getMaxPage(),Math.max(pageMin,page))},resize:function(ww,hh,single){if(single){this.sliderWidth=ww/2}else{this.sliderWidth=this.fluidbook.resize.getScreenFluidbookWidth()*.4}this.sliderWidth=Math.round(this.sliderWidth);var bottom=26;if(single){bottom=18}bottom*=this.fluidbook.resize.interfaceScale;$("#slider").css({width:this.sliderWidth,left:(ww-this.sliderWidth)/2,top:hh-bottom}).transform({scaleY:this.fluidbook.resize.interfaceScale});$("#sliderthumb").transform({scaleX:this.fluidbook.resize.interfaceScale});this.updateSnaps(single);$("#slidercursor").css("width",this.cursorWidth);this.updateCursorPosition()},updateSnaps:function(single){if(single){this.snapsCount=this.fluidbook.contentlock.getMaxPage()}else{this.snapsCount=Math.floor(this.fluidbook.contentlock.getMaxPage()/2)+1}this.cursorWidth=Math.max(30,this.sliderWidth/this.snapsCount);this.snapsWidth=(this.sliderWidth-this.cursorWidth)/(this.snapsCount-1)},updateCursorPosition:function(page){if(page==undefined){page=this.fluidbook.currentPage}$("#slidercursor").css("left",this.getCursorXByPage(page));if($("#sliderthumb").is(":visible")){if($("#slider").hasClass("hover")&&!$("#slider").hasClass("drag")){}else{this.updateThumb(page)}}},getCursorXByPage:function(page){var left;if(this.fluidbook.l10n.rtl){page=this.fluidbook.contentlock.getMaxPage()-page}if(this.fluidbook.resize.orientation==="portrait"){left=this.snapsWidth*(page-1)}else{var current=Math.floor(page/2);left=this.snapsWidth*current}return Math.max(0,Math.min(left,this.sliderWidth-this.cursorWidth))},updateThumb:function(page){var left=0;var right=0;var single=false;if(this.fluidbook.resize.orientation==="portrait"){single=true;left=page}else{if(page%2===1){page--}if(page>0){left=page}if(page<=this.fluidbook.contentlock.getMaxPage()){right=page+1}}if(single){$("#sliderthumb").addClass("single")}else{$("#sliderthumb").removeClass("single");if(left==0||right==0){$("#sliderthumb .doubleThumb").addClass("simple");if(left==0){$("#sliderthumb .doubleThumb").addClass("right")}else{$("#sliderthumb .doubleThumb").removeClass("right")}if(right==0){$("#sliderthumb .doubleThumb").addClass("left")}else{$("#sliderthumb .doubleThumb").removeClass("left")}}}if(this.fluidbook.l10n.ltr){this.setThumb($("#sliderthumb .doubleThumb").find(".thumb.left"),left,!single);this.setThumb($("#sliderthumb .doubleThumb").find(".thumb.right"),right,!single)}else{this.setThumb($("#sliderthumb .doubleThumb").find(".thumb.left"),right,!single);this.setThumb($("#sliderthumb .doubleThumb").find(".thumb.right"),left,!single)}this.fluidbook.bookmarks.updateBookmarks();$("#sliderthumb").css("left",this.getCursorXByPage(page)+this.cursorWidth/2-$("#sliderthumb").outerWidth()/2)},setThumb:function(thumb,page,shade){thumb.find(".bookmark").attr("data-page",page);if(page>0&&page<=this.fluidbook.contentlock.getMaxPage()){thumb.css("visibility","visible");var img=this.fluidbook.loader.getThumbImage(page,shade);var link=thumb.find("a:not(.bookmark)");if(page!=link.attr("data-page")){link.attr("href","#").attr("data-page",page).html(img);thumb.find(".number").text(this.fluidbook.physicalToVirtual(page))}}else{thumb.css("visibility","hidden")}}};function FluidbookPageTransition(fluidbook){this.fluidbook=fluidbook;this.transitionning=false;this.timeoutAfterTransition=0;this.init()}FluidbookPageTransition.prototype={init:function(){if(this.fluidbook.support.transitions3dacc&&this.fluidbook.settings.mobileTransitions==="flip3d"){this.flip3d=new Fluidbook3DFlip(this.fluidbook)}else{this.flip3d=false}},normalizeTransitionPageNr:function(pageNr){if(pageNr==undefined){pageNr=this.fluidbook.currentPage;if(pageNr==-1){pageNr=1}}return this.fluidbook.normalizePage(pageNr)},getTransitionDuration:function(pageNr){var type=this.getTransitionType(pageNr);var f=0;if(type==="immediate"){return 0}else if(type==="flip3d"){return this.flip3d.animationTime}else{return parseFloat(this.fluidbook.settings.mobileTransitionDuration)}},getTransitionType:function(pageNr){if(pageNr!==undefined){pageNr=this.normalizeTransitionPageNr(pageNr);if(pageNr===this.fluidbook.normalizePage(this.fluidbook.currentPage)||this.fluidbook.currentPage===-1){return"immediate"}}if(this.fluidbook.settings.mobileTransitions==="fade"){if(this.fluidbook.displayOnePage){return"fadeone"}else{return"fade"}}if(!this.fluidbook.support.transitions2d||this.fluidbook.settings.mobileTransitions==="none"){return"immediate"}if(this.fluidbook.displayOnePage){return"portrait"}if(!this.fluidbook.support.transitions3d&&this.fluidbook.settings.mobileTransitions==="flip"){return"slide"}if(this.fluidbook.settings.mobileTransitions==="slide"){return"slide"}if(!this.fluidbook.support.transitions3dacc||!this.fluidbook.support.datauriallowed){if(!this.fluidbook.support.transitions3d){return"slide"}else{return"flipcss"}}if(this.fluidbook.support.transitions3dacc&&this.fluidbook.settings.mobileTransitions==="flip3d"&&this.fluidbook.support.datauriallowed){return"flip3d"}return"flipcss"},pageTransition:function(pageNr,transitionType){var $this=this;if(this.fluidbook.pad.enabled){this.transitionAxis=this.fluidbook.pad.getTransitionAxis(this.fluidbook.currentPage,page)}else{this.transitionAxis="x"}$(this.fluidbook).trigger("fluidbook.beforePageTransition");this.fluidbook.tooltip.hideTooltip();pageNr=this.normalizeTransitionPageNr(pageNr);if(transitionType===undefined){transitionType=this.getTransitionType(pageNr)}if(this.fluidbook.firstTransition||transitionType==="immediate"){this.fluidbook.firstTransition=false;this.fluidbook.zoom.resetZoom();return this.pageTransition1D(pageNr)}if(transitionType==="fade"){this.fluidbook.zoom.resetZoom();return this.pageTransitionFade(pageNr)}if(transitionType==="fadeone"){this.fluidbook.zoom.resetZoom();return this.pageTransitionFadeOne(pageNr)}if(transitionType==="portrait"){this.fluidbook.zoom.resetZoom();return this.pageTransition2DPortrait(pageNr)}if(transitionType==="slide"){this.fluidbook.zoom.resetZoom();return this.pageTransition2D(pageNr)}if(transitionType==="flip3d"){this.fluidbook.zoom.resetZoom(function(){return $this.pageTransition3DFlip(pageNr)});return true}else if(transitionType==="flipcss"){this.fluidbook.zoom.resetZoom();return this.pageTransition3D(pageNr)}},pauseNetworkDuringTransition:function(pageNr){this.fluidbook.networkControl.pause((this.getTransitionDuration(pageNr)+.5)*1e3,true)},pauseNetworkDuringPagesPreload:function(){this.fluidbook.networkControl.pause(3e4)},pageTransition3D:function(pageNr){var $this=this;if($("#pages").hasClass("_3dtransition")){return}this.transitionning=true;var $this=this;var turning=this.getTurningPages(pageNr);$("#pages").prepend('');var doublePage=$("#nextDoublePage");var currentDoublePage=$("#currentDoublePage");if(!this.fluidbook.loader.arePreloadedPages(turning.end)){this.fluidbook.displayLoader()}this.pauseNetworkDuringPagesPreload();this.fluidbook.loader.preloadPagesBeforeTransition(turning.end,function(){$("#pages").addClass("_3dtransition");$this.fluidbook.loader.setContentsInDoublePage(currentDoublePage,turning.flat,false,function(){$this.fluidbook.loader.setContentsInDoublePage(doublePage,turning.flip,false,function(){$this.beforeTransition(pageNr,3,turning);$this.pauseNetworkDuringTransition(pageNr);$(doublePage).addClass(turning.nextFromClass+"end").one($this.fluidbook.support.getTransitionEndEvent(),function(){if($this.transitionning===false){return}if($("#nextDoublePage").length===0){$("#pages").removeClass("_3dtransition");$this.transitionning=false}$this.fluidbook.loader.setContentsInDoublePage(doublePage,turning.end,false,function(){$(doublePage).removeClass("_3d").removeClass(turning.nextFromClass+"start").removeClass(turning.nextFromClass+"end");$("#currentDoublePage").remove();$(doublePage).attr("id","currentDoublePage");$("#pages").removeClass("_3dtransition");$this.afterTransition(pageNr)})})})})})},pageTransition3DFlip:function(pageNr){var $this=this;var turning=this.getTurningPages(pageNr);this.transitionning=true;if(!this.fluidbook.loader.arePreloadedPages(turning.end)){this.fluidbook.displayLoader()}var currentDoublePage=$("#currentDoublePage");var cdir="fwd";if(turning.dir===-1){cdir="bwd"}$("#pages").prepend('');var doublePage=$("#nextDoublePage");this.pauseNetworkDuringPagesPreload();this.fluidbook.loader.preloadPagesBeforeTransition(turning.end,function(){$this.flip3d.clean();$this.flip3d.prepareTurn(turning,function(){$this.beforeTransition(pageNr,3,turning);$this.flip3d.initTurn(turning.dir);setTimeout(function(){$this.fluidbook.loader.setContentsInDoublePage(currentDoublePage,turning.flat,true,function(){$this.fluidbook.loader.setContentsInDoublePage(doublePage,turning.end,true,function(){$this.fluidbook.networkControl.executeAfterProcessing(function(){$this.pauseNetworkDuringTransition(pageNr);$this.fluidbook.hideLoader();$this.flip3d.playTurn(turning.dir,function(){if($this.transitionning===false){return}$("#currentDoublePage").remove();$(doublePage).attr("id","currentDoublePage").removeClass("_3dflip").removeClass("fwd").removeClass("bwd");$this.afterTransition(pageNr)})},true)})})},10)})})},getTurningPages:function(newPage){var res={};res.dir=1;if(newPage0;var move=$("#center-fluidbook,#center-shadow");var currentLeft=$("#center-fluidbook").data("left");var left=0;if(center===undefined){center=$("#center-fluidbook").data("center")}if(center!==0){left=this.fluidbook.resize.centerOffset*center}if(currentLeft===left){return}$("#center-fluidbook").data({left:left,center:center});if(animate){$(move).addClass("animate")}else{$(move).removeClass("animate")}var $this=this;var delay=this.fluidbook.support.android?this.fluidbook.settings.mobileTransitionDuration*1e3:10;setTimeout(function(){move.transform({translateX:left+"px"});$this.fluidbook.resize.updateFluidbookRect()},delay)},pageTransition2D:function(pageNr){this.transitionning=true;var $this=this;var turning=this.getTurningPages(pageNr);$("#pages").append('');var doublePage=$("#nextDoublePage");if(!this.fluidbook.loader.arePreloadedPages(turning.end)){this.fluidbook.displayLoader()}this.pauseNetworkDuringPagesPreload();this.fluidbook.loader.preloadPagesBeforeTransition(turning.end,function(){$this.fluidbook.loader.setContentsInDoublePage(doublePage,turning.end,true,function(){$("#shade").addClass("transition");$this.pauseNetworkDuringTransition(pageNr);$this.beforeTransition(pageNr,2,turning);$("#currentDoublePage").addClass("_2d").addClass("axis_"+$this.transitionAxis).addClass(turning.currentToClass);$(doublePage).removeClass(turning.nextFromClass).one($this.fluidbook.support.getTransitionEndEvent(),function(event){if($this.transitionning===false){return}$("#currentDoublePage").remove();$("#nextDoublePage").attr("id","currentDoublePage");$this.afterTransition(pageNr)})})})},pageTransitionFade:function(pageNr){return this.pageTransitionFadeOne(pageNr)},pageTransitionFadeOne:function(pageNr){this.transitionning=true;var $this=this;var turning=this.getTurningPages(pageNr);console.log(turning);$("#pages").append('');var doublePage=$("#nextDoublePage");if(this.fluidbook.displayOnePage){this.fluidbook.hidePage("right")}if(!this.fluidbook.loader.arePreloadedPages(turning.end)){this.fluidbook.displayLoader()}this.pauseNetworkDuringPagesPreload();this.fluidbook.loader.preloadPagesBeforeTransition(turning.end,function(){$this.fluidbook.loader.setContentsInDoublePage(doublePage,turning.end,true,function(){$("#shade").addClass("fadetransition");$this.pauseNetworkDuringTransition(pageNr);$this.beforeTransition(pageNr,1,turning);if(turning.center&&!$this.fluidbook.displayOnePage){$("#currentDoublePage").css("opacity",0)}$(doublePage).removeClass(turning.nextFromClass).one($this.fluidbook.support.getTransitionEndEvent(),function(){if($this.transitionning===false){return}$("#currentDoublePage").remove();$("#nextDoublePage").attr("id","currentDoublePage");$this.afterTransition(pageNr)})})})},pageTransition2DPortrait:function(pageNr){this.transitionning=true;var $this=this;var turning=this.getTurningPages(pageNr);$("#pages").append('');var doublePage=$("#nextDoublePage");if(this.fluidbook.displayOnePage){this.fluidbook.hidePage("right")}if(!this.fluidbook.loader.arePreloadedPages(turning.end)){this.fluidbook.displayLoader()}this.pauseNetworkDuringPagesPreload();this.fluidbook.loader.preloadPagesBeforeTransition(turning.end,function(){$this.fluidbook.loader.setContentsInDoublePage(doublePage,turning.end,true,function(){$this.pauseNetworkDuringTransition(pageNr);$this.beforeTransition(pageNr,2,turning);$("#currentDoublePage").addClass("axis_"+$this.transitionAxis).addClass("_2d").addClass(turning.currentToClass);$(doublePage).removeClass(turning.nextFromClass).one($this.fluidbook.support.getTransitionEndEvent(),function(){if($this.transitionning===false){return}$("#currentDoublePage").remove();$("#nextDoublePage").attr("id","currentDoublePage");$this.afterTransition(pageNr)})})})},pageTransition1D:function(pageNr){var page=pageNr;var doublePage=$("#currentDoublePage");var $this=this;if(this.fluidbook.displayOnePage){this.fluidbook.hidePage("right")}var turning=this.getTurningPages(pageNr);this.beforeTransition(pageNr,1,turning);this.fluidbook.loader.preloadPagesBeforeTransition(turning.end,function(){$this.fluidbook.loader.setContentsInDoublePage(doublePage,turning.end,true,function(){$this.afterTransition(page)})})},beforeTransition:function(page,transition,turning){if(transition==undefined){transition=1}$(this.fluidbook).trigger("fluidbook.page.change.start",[page,{transition:transition,page:page,turningPages:turning.flip}]);var $this=this;this.fluidbook.tooltip.hideTooltip();$(".axis_y").removeClass("axis_y");$(".axis_x").removeClass("axis_x");$("#links").hide();if(this.fluidbook.mobilefirst.enabled){this.fluidbook.mobilefirst.beforeTransition(page)}if(turning.flip.indexOf(1)>=0&&turning.dir===-1){$("#shade .left").hide()}if(turning.flip.indexOf(this.fluidbook.contentlock.maxPage)>=0&&this.fluidbook.contentlock.maxPage%2===0&&turning.dir===1){$("#shade .right").hide()}this.fluidbook.hideLoader();this.fluidbook.hideUnnecessaryButtons(page);var animationDuration=transition<1?0:parseFloat(this.fluidbook.settings.mobileTransitionDuration);this.fluidbook.updateShadows(page,animationDuration);this.centerBook(turning.center,animationDuration);$("#pagesnumbers").addClass("hidden");this.timeoutAfterTransition=setTimeout(function(){if($this.transitionning){$this.afterTransition(page,true)}},1e3*(animationDuration+2));try{this.fluidbook.search.clearHighlights()}catch(err){}},afterTransition:function(page,timeout){if(timeout===undefined){timeout=false}clearTimeout(this.timeoutAfterTransition);var $this=this;this.fluidbook.currentPage=page;this.fluidbook.setPageNumbers();setTimeout(function(){$this.fluidbook.loader.preloadAround(page)},1e3);this.fluidbook.hideLoader();this.fluidbook.resetWaiters();this.fluidbook.updateShadows(page,0);$("#pages").removeClass("_3dtransition");if($("#nextDoublePage").length>0){$("#currentDoublePage").remove();$("#nextDoublePage").attr("id","currentDoublePage")}if($("#currentDoublePage").length>1){$("#currentDoublePage:gt(0)").remove()}$("#nextDoublePage").remove();if(this.fluidbook.pad.enabled){if(this.fluidbook.currentPage==this.fluidbook.settings.pages){$("#down").css("opacity",0)}else{$("#down").css("opacity",1);if(!this.fluidbook.bookmarks.hasNextPageInGroup(this.fluidbook.currentPage)){$("#down").addClass("right")}else{$("#down").removeClass("right")}}}else{$("#down").css("opacity",0)}if(this.fluidbook.getPhysicalPageNumberOfSide("left",true)===false){$("#shade .left").hide()}else{$("#shade .left").show()}if(this.fluidbook.getPhysicalPageNumberOfSide("right",true)===false){$("#shade .right").hide()}else{$("#shade .right").show()}$("#shade").removeClass("transition").removeClass("fadetransition");setTimeout(function(){$this.transitionning=false},10);$("._3dflip").removeClass("_3dflip").removeClass("fwd").removeClass("bwd");this.fluidbook.links.initLinks();if(this.fluidbook.mobilefirst.enabled){this.fluidbook.mobilefirst.afterTransition(page)}$(this.fluidbook).trigger("fluidbook.page.change.end",[this.fluidbook.currentPage])},canChangePage:function(){return this.fluidbook.canNavigate&&!this.transitionning}};function FluidbookNav(fluidbook){this.fluidbook=fluidbook;this._dimensions=this.fluidbook.settings.iconsDimensions;this.menuIsOpen=false;this.chaptersMenuHTML="";this.searchHTML="";this.shareLinksHTML="";this.menu=$("#menu");this.horizontalNav=$("#horizontalNav");this._inited={};this.setNav("horizontalNav");this.setNav("menu");if(Modernizr.msie){$("#horizontalNav svg").each(function(){var h=25;var viewBox=$(this).attr("viewBox").split(" ");var w=parseFloat(viewBox[2])*(h/parseFloat(viewBox[3]));$(this).css("width",w)})}}FluidbookNav.prototype={initMenu:function(){var $this=this,dir=this.fluidbook.l10n.dir,inverted=this.fluidbook._boolean(this.fluidbook.settings.invertMenuPosition),side=dir==="ltr"&&inverted||dir==="rtl"&&!inverted?"right":"left";var extensions=["pagedim-black","position-front"];if(side==="right"){extensions.push("position-right")}this.menu.mmenu({onClick:{close:function(){if(fluidbook.settings.phonegap==="ios"){return!$(this).is("#menu_download,#menu_print")}return true},preventDefault:function(){return false}},extensions:extensions,offCanvas:{position:side,zposition:"front"},navbar:{title:""},rtl:{use:"detect"}},{offCanvas:{page:{noSelector:["#loader"]}}});this.menuAPI=this.menu.data("mmenu");this.menuAPI.bind("open:finish",function(){$("body").addClass("menu-open");$this.menuIsOpen=true;setInterval(function(){$this.fluidbook.resize.resizeMenu()},500)});this.menuAPI.bind("close:finish",function(){$("body").removeClass("menu-open");$this.menuIsOpen=false});$(document).on("click","#menuOpener",function(e){e.preventDefault();$this.menuAPI.open()});$(document).on("click","#menuSearchResults a",function(e){$this.menuAPI.close()});$(this.fluidbook).on("fluidbook.resize",function(){$this.fluidbook.resize.resizeMenu()});var swipeCloseDirection=this.menuAPI.getInstance().opts.offCanvas.position,menuSwipe=new Hammer(document.getElementById("menu"));menuSwipe.on("swipe"+swipeCloseDirection,function(e){if(!$this.menuIsOpen){return false}$this.menuAPI.close()});$("#menuList").append(this.searchHTML+this.shareLinksHTML);$("#menuList > ul, #chapterList").perfectScrollbar({suppressScrollX:true,minScrollbarLength:40})},closeMenu:function(){this.menuAPI.close()},addLink:function(navType,name,href,id,title,help,keyboardShortcut,before,className,showIcon){var $nav=this.getNavFromType(navType),elementID=navType+"_"+id;if($nav.find("#"+elementID).length>0){return}var l=$(this.getLink(name,href,id,title,help,className,showIcon,navType,keyboardShortcut)),li="
  • "+l[0].outerHTML+"
  • ";if(before===undefined){$nav.find("ul").append(li)}else{$nav.find("ul #"+before).before(li)}return $("#"+elementID).get(0)},getLink:function(name,href,id,title,help,className,showIcon,navType,keyboardShortcut){if(showIcon===undefined){showIcon=true}if(keyboardShortcut===undefined){keyboardShortcut=""}var res="";if(id===undefined){var id=name;if(navType!==undefined){id+="_"+navType}}var elementID=navType===undefined||navType===null||navType===""||navType==="interface"?id:navType+"_"+id;res+=' id="'+elementID+'"';className=className===undefined?"icon-"+id:className+" icon-"+id;if(className!==undefined){res+=' class="'+className+'"'}res+=' role="button"';if(help!==undefined&&help!==""){if(navType==="horizontalNav"){res+=' data-tooltip="'+this.fluidbook.l10n.__(help)+'"'}if(navType==="interface"){res+=' data-keyboard-tooltip="'+this.fluidbook.l10n.__(help)+'"'}res+=' aria-label="'+this.fluidbook.l10n.__(help)+'"'}if(keyboardShortcut!==""){res+=' aria-keyshortcuts="'+keyboardShortcut+'"';this.fluidbook.keyboard.ariaShortcut(keyboardShortcut,function(){console.log("triggers "+elementID+" click");$("#"+elementID).get(0).click()})}res+=">";if(showIcon){res+=getSpriteIcon(name);if(name==="nav-fullscreen"){res+=getSpriteIcon("nav-fullscreen-exit")}}if(navType==="menu"||id==="locales"){if(title!==undefined&&title!==""){res+=' '+this.fluidbook.l10n.__(title)+""}}if(href===""){return""}else{return'"}},getNavFromType:function(navType){switch(navType){case"horizontalNav":return this.horizontalNav;break;case"menu":return this.menu;break;default:console.error("navType "+navType+" not found!");return false}},setNav:function(navType){if(typeof navType==="undefined"){return false}var $nav=this.getNavFromType(navType);if(this._inited[navType]===true){return}this._inited[navType]=true;var $this=this,navOrder=this.fluidbook.settings.navOrder;var v2="";if(this.fluidbook.settings.iconSet<15){v2=' class="v2"'}if(navType==="menu"){if(this.fluidbook.settings.navOrderH.length>0){navOrder=this.fluidbook.settings.navOrderH}var menuOpener=''+getSpriteIcon("interface-menu")+''+this.fluidbook.l10n.__("Menu")+"";$("#main header").append(menuOpener);$nav.append('");var searchElement=this.fluidbook.settings.search?this.getSearch():"";this.searchHTML='"}else if(navType==="horizontalNav"){$nav.append('
      ")}try{var skipHome=window.localStorage.getItem("home")==="0";var forceHome=window.localStorage.getItem("home")==="1";if(forceHome){if(this.fluidbook.settings.navOrder.indexOf("home")===-1){this.fluidbook.settings.navOrder.unshift("home")}}}catch(err){}var all=["extra","index","chapters","search","friend","print","pdf","notes","bookmark","archives","basket","fullscreen","sound","3d","help","lang","extra1","extra2","extra3","extra4","extra5"];if(navOrder.length===0){navOrder=all}var localeIconIndex;if((localeIconIndex=navOrder.indexOf("lang"))!==-1){navOrder.push(navOrder.splice(localeIconIndex,1)[0])}var hide=array_diff(all,navOrder);var thisall=navOrder.concat(hide);var $this=this;var extraNPerURL={};for(var i in thisall){var icon=thisall[i];var visible=hide.indexOf(icon)===-1;if(!visible&&navType==="menu"){continue}var link=null;var link2=null;if(icon==="home"&&!skipHome){var homeURL=this.fluidbook.settings.home;var homeRequireLoader=true;if(this.fluidbook.settings.home==="%apphome%"||forceHome&&this.fluidbook.settings.phonegap){homeURL=decodeURIComponent(window.localStorage.getItem("apphome"))}if($_GET["home"]!==undefined){if($_GET["home"].indexOf("%253A")<=6){$_GET["home"]=decodeURIComponent(decodeURIComponent($_GET["home"]))}if($_GET["home"].indexOf("%3A")<=6){$_GET["home"]=decodeURIComponent($_GET["home"])}homeURL=$_GET["home"]}else if(this.fluidbook.landingpage!==undefined&&this.fluidbook.landingpage.hasLandingPage){homeURL="#/landing";homeRequireLoader=false}try{if(homeURL!==""){link=this.addLink(navType,"nav-home",homeURL,"home","home","home","Control+H")}}catch(err){}$(link).on("click",function(){if(homeRequireLoader){var $thislink=this;fluidbook.displayLoader();setTimeout(function(){window.location=$($thislink).attr("href")},500)}else{$this.menuAPI.close();window.location=$(this).attr("href")}return false})}else if(icon==="index"){link=this.addLink(navType,"nav-index","#/index","index","overview","overview","Control+O")}else if(icon==="chapters"){if(!this.fluidbook.settings.displayChaptersIcon){continue}if(this.fluidbook.settings.externalChaptersHTML){link=this.addLink(navType,"nav-chapters","#/chapters","chapters","chapters","chapters","F2")}else if(this.fluidbook.settings.chaptersPage!==""){link=this.addLink(navType,"nav-chapters","#/page/"+this.fluidbook.settings.chaptersPage,"chapters","chapters","chapters","F2")}else if(this.fluidbook.settings.chapters.length>0){if(navType==="menu"&&this.fluidbook.settings.chaptersCascade&&!this.fluidbook.settings.displayChaptersPopup){link=this.addLink(navType,"nav-chapters","","chapters","chapters","chapters","F2");this.chaptersMenuHTML=this.makeChapterLists(this.fluidbook.settings.chapters)}else{link=this.addLink(navType,"nav-chapters","#/chapters","chapters","chapters","chapters","F2")}}}else if(icon==="friend"){if(this.fluidbook.share.isEnabled()){if(navType==="horizontalNav"){if(this.fluidbook.settings.share){link=this.addLink(navType,"nav-share","#/share","share","share","share","Alt+S")}}else if(navType==="menu"){this.shareLinksHTML='"}}}else if(icon==="bookmark"&&this.fluidbook.settings.bookmark){link=this.addLink(navType,"nav-bookmarks","#/bookmark","bookmarks","bookmarks","bookmarks","Control+B")}else if(icon==="pdf"&&this.fluidbook.settings.pdf){link=this.addLink(navType,"nav-download","#","download","download","download","Control+S")}else if(icon==="print"&&this.fluidbook.settings.print){link=this.addLink(navType,"nav-print","#","print","print","print","Control+P")}else if(icon==="basket"&&this.fluidbook.cart!==undefined&&this.fluidbook.cart.enabled){link=this.addLink(navType,this.fluidbook.settings.cartIcon,"#/cart","cart","basket","basket","Control+Alt+C");$(this.fluidbook).on("fluidbook.cart.updateIcon",{link:link},function(e,data){var n=data.number;var l=$("#"+$(e.data.link).attr("id"));if(n===0){$(l).find("span.number").remove()}else{if($(l).find("span.number").length===0){$(l).append('')}$(l).find("span.number").text(n)}});try{this.fluidbook.cart.instance.updateIcon()}catch(e){}}else if(icon==="lang"&&this.fluidbook.l10n.multilangEnabled){link=this.addLink(navType,"nav-locales","#/locales","locales","!"+this.fluidbook.l10n.getCurrentLanguageName(),"!Select Language","Control+L")}else if(icon==="archives"&&this.fluidbook.settings.externalArchives){link=this.addLink(navType,"nav-archives","#/archives","archives","!"+this.fluidbook.settings.archivesLabel,"!"+this.fluidbook.settings.archivesLabel,"")}else if(icon==="help"){link=this.addLink(navType,"nav-help","#","help","help","help","F1")}else if(icon==="zoom"&&!this.fluidbook.support.isMobile){link=this.addLink(navType,"nav-zoomin","#","zoomin","zoom in","zoom in");link=this.addLink(navType,"nav-zoomut","#","zoomout","zoom out","zoom out")}else if(icon==="fullscreen"&&this.fluidbook.support.fullscreen&&!this.fluidbook.settings.phonegap){link=this.addLink(navType,"nav-"+icon,"#",icon,"full screen","switch between fullscreen and normal","F11")}else if(icon==="sound"&&this.fluidbook.sound.enabled){link=this.addLink(navType,"nav-sound-on","#","sound-on","switch off the sound","switch on / switch off the sound","F10");link2=this.addLink(navType,"nav-sound-off","#","sound-off","switch on the sound","switch on / switch off the sound","F10")}else if(icon==="search"){if(this.fluidbook.settings.search&&navType==="horizontalNav"){link=this.addLink(navType,"nav-search","#","searchIcon","search","search","Control+F")}}else if(icon==="notes"){if(this.fluidbook.notes.enabled){link=this.addLink(navType,"nav-notes","#","notes","notes","notes","Control+Alt+N")}}else if(icon==="extra"){var id="extra",$nav=this.getNavFromType(navType),elementID=navType+"_"+id,navExtraImage,navLinkTarget="";if(typeof this.fluidbook.settings.navExtraLink==="string"&&this.fluidbook.settings.navExtraLink.lastIndexOf("http",0)===0){navLinkTarget=' target="_blank" rel="noopener noreferrer"'}if($nav.find("#"+elementID).length>0){continue}if(navType==="horizontalNav"){if(this.fluidbook.settings.navExtraImage!==""&&this.fluidbook.settings.navExtraLink!==""){navExtraImage=this.fluidbook.settings.navExtraImage;link=''}}else if(navType==="menu"&&(this.fluidbook.settings.navExtraImage!==""||this.fluidbook.settings.navExtraImageMobile!=="")&&this.fluidbook.settings.navExtraLink!==""){navExtraImage=this.fluidbook.settings.navExtraImageMobile||this.fluidbook.settings.navExtraImage;link=' '+this.fluidbook.settings.navExtraTooltip+""}if(link!==null){$nav.find("ul").append("
    • "+link+"
    • ")}}else if(icon.match(/extra\d/)){var n=icon.substr(5,1);var extraURL=this.fluidbook.settings["navExtraLink"+n];var extraIcon=this.fluidbook.settings["navExtraIcon"+n];var extraVisibility=this.fluidbook.settings["navExtraVisibility"+n];var extraType=this.fluidbook.settings["navExtraType"+n];if(extraURL===""||extraIcon===""){continue}if(extraVisibility==="horizontal"&&navType==="menu"||extraVisibility==="burger"&&navType==="horizontalNav"){continue}var linkIcon;if(extraIcon.indexOf(".")===-1){linkIcon=getSpriteIcon(extraIcon)}else{if(extraIcon.indexOf(".addLink")>=0&&extraType==="icon"){if(getSpriteIcon("extra-extra"+n)===""){var url="data/images/"+extraIcon;extraNPerURL[url]=n;$.ajax({url:url,type:"GET",dataType:"xml",success:function(data){var n1=extraNPerURL[this.url];var svg=$(data).find("svg");$(svg).wrapInner("");var viewbox=$(svg).attr("viewBox");var maing=$(svg).children("g").eq(0);if($("#extra-extra"+n1).length===0){$("#svg-container").append(''+$("").append($(maing).clone()).html()+"")}$("#spare_extra"+n1).replaceWith(getSpriteIcon("extra-extra"+n1))}});linkIcon='
      '}else{linkIcon=getSpriteIcon("extra-extra"+n)}}else{linkIcon=''}}if(extraURL.indexOf(":")===-1&&extraURL.indexOf("/")===-1){extraURL="link:"+extraURL}if(extraURL.indexOf("link:")===0){var linkId=extraURL.split(":",2)[1];var foundLink="";$.each(this.fluidbook.settings.links,function(page,plinks){var allLinks="";$.each(plinks,function(blendmode,links){allLinks+=links.join("")});var l=$(""+allLinks+"").find('[data-id="'+linkId+'"]');if(l.length===1){foundLink=l;return false}});if(foundLink===""){console.log("link not found");continue}link=$(foundLink).find("a").append(linkIcon);if(navType==="menu"&&extraType==="icon"){$(link).append(''+$(link).data("tooltip")+"")}link=$(link).get(0).outerHTML}else{link=''+linkIcon+""}console.log(link);var nav=this.getNavFromType(navType);nav.find("ul").append("
    • "+link+"
    • ")}if(!visible){$(link).addClass("hidden");if(link2){$(link2).addClass("hidden")}}}if(navType==="menu"){var credits=$("footer#credits").clone().attr("id","mobile-credits");var a=credits.find("a");var t=a.text();credits.find("a").text(t);$("#menuList").append(credits);if(this.chaptersMenuHTML!==""){$("#menu_chapters").parent().append(this.chaptersMenuHTML)}$("#chapterList li a").each(function(){if($(this).siblings("ul").length>0){$(this).contents().wrap("").parent().unwrap("a")}});if(!this.fluidbook.settings.chaptersCascade){$("#chapterList").wrap('
      ');$("#chaptersPanel ul").addClass("mm-nopanel");$("#chapters").wrap('')}this.menu.append(this.getMenuCloseButton());this.initMenu();this.initEventHandlers();$(this.fluidbook).trigger("fluidbook.navigation.ready");$(document).trigger("fluidbook.navigation.ready")}if(this.fluidbook.settings.afterSearch!==""&&this.fluidbook.settings.afterSearchDisplayForHTML&&this.fluidbook.settings.themeEnableAfterSearch&&navType==="horizontalNav"){var afterSearchContent='
      '+this.fluidbook.loader.getImage("data/images/"+this.fluidbook.settings.afterSearch)+'
      ";$nav.after(afterSearchContent)}},initEventHandlers:function(){var $this=this;$(document).on("click",".icon-home",function(){var $this=this;fluidbook.displayLoader();setTimeout(function(){window.location=$($this).attr("href")},500);return false});$(document).on("click","#horizontalNav_searchIcon",function(event){event.preventDefault();$this.openSearch()});$(document).on("click",".icon-share",function(){if($this.fluidbook.settings.phonegap!=="android"){return true}$this.fluidbook.share.intentShare();return false});$(document).on("click",".icon-download",function(event){event.preventDefault();if($this.fluidbook.settings.pdfComplex&&$this.fluidbook.settings.phonegap===false){$this.fluidbook.menu.openView("download")}else{$this.fluidbook.downloadPDF($(this))}return false});$(document).on("click",".icon-print",function(){if(!$this.fluidbook.printing.advancedPrint()){$this.fluidbook.print($(this));return false}else{$this.fluidbook.menu.openView("print")}return false});$(document).on("click",".icon-bookmarks",function(){if($(this).data("extra")!==null&&$(this).data("extra")!==undefined){$this.fluidbook.menu.openView("bookmark",$(this).data("extra"),null,function(){});return false}});$(document).on("click",".icon-zoomin",function(e){$this.fluidbook.desktop.clickZoom(e,"in");return false});$(document).on("click",".icon-zoomout",function(e){$this.fluidbook.desktop.clickZoom(e,"out");return false});if(this.fluidbook.support.fullscreen){this.initFullScreen()}},initFullScreen:function(){var $this=this;$(document).on("click",".icon-fullscreen",function(){$this.menuAPI.close();screenfull.toggle();return false});screenfull.on("change",function(){resize();setTimeout(function(){if(screenfull.isFullscreen){$(".icon-fullscreen").addClass("active")}else{window.focus();$(".icon-fullscreen").removeClass("active")}resize()},250);setTimeout(function(){resize()},1e3);window.focus()})},openSearch:function(q,cb){if(!fluidbook.search.isSearchActive()){fluidbook.search.initSearchHints();this.menuAPI.closeAllPanels()}this.menuAPI.open();if(q!==undefined){$("#q").val(q);this.fluidbook.search.submitForm()}else{$("#q").focus()}if(cb!==undefined){cb()}},getMenuCloseButton:function(){var $this=this,buttonID="menuClose";$(document).on("click","#"+buttonID,function(e){e.preventDefault();if($this.fluidbook.search.isSearchActive()){$this.fluidbook.search.closeSearch()}else{var sHints=$this.fluidbook.search.menuSearchHints,sResults=$this.fluidbook.search.menuSearchResults;if(sHints&&sHints.html().length===0&&sResults&&sResults.html().length===0){$this.fluidbook.search.closeSearch()}$this.menuAPI.close()}});return''+getSpriteIcon("interface-close")+""},getSearch:function(){var search=$("#search");var $this=this;var res='
      ';res+='';res+=this.getLink("nav-search","#","submitSearch");res+="
      ";res+='';res+='';search.append(res);$(document).on("click","#submitSearch",function(e){$("#searchForm").submit();e.preventDefault();return false});$(document).on("submit","#searchForm",function(){$this.fluidbook.search.submitForm();return false});$(document).on("keyup","#q",function(key){switch(key.which){case 13:case 37:case 38:case 39:case 40:return;default:searchHints()}});$(document).on("click",".hint",function(){var e=$("#q").val().split(" ");e.pop();e.push($(this).attr("term"));$("#q").val(e.join(" "));$("#searchForm").submit();return false});var searchHTML=search.html();search.remove();return searchHTML},setInterface:function(){},makeChapterLists:function(chapters){var currentLevel=0,loopIndex=0,html='
        ';var $this=this;chapters.forEach(function(chapter){loopIndex++;if(chapter.level>currentLevel){html+="
          "}else if(chapter.level
        "}}else{if(loopIndex>1){html+=""}}currentLevel=chapter.level;var page=$this.fluidbook.virtualToPhysical(chapter.page);html+='
      • '+chapter.label+""});html+="
      ";return html},burgerActive:function(){return $("#menuOpener").is(":visible")}};function FluidbookInterface(fluidbook){this.fluidbook=fluidbook;this.interfaceVisible=false;this.visibleTimeout;this.visibleTime=5e3;this.interfaceVisible=false;this.maskToggleEventsTimeout=Date.now();this.init()}FluidbookInterface.prototype={init:function(){var $this=this;if(this.arrowsEnabled()){this.fluidbook.keyboard.initInterfaceShortcuts();var labels=this.getLabels();var res="";if($("html").hasClass("ltr")){res+='
      ';res+=this.fluidbook.nav.getLink("interface-prev","#","previous","",labels.previous,"arrow-top",true,"interface","PageUp");res+=this.fluidbook.nav.getLink("interface-first","#","first","",labels.first,"arrow-bottom",true,"interface","Home");res+="
      ";res+='
      ';res+=this.fluidbook.nav.getLink("interface-next","#","next","",labels.next,"arrow-top",true,"interface","PageDown");res+=this.fluidbook.nav.getLink("interface-last","#","last","",labels.last,"arrow-bottom",true,"interface","End");res+="
      "}else{res+='
      ';res+=this.fluidbook.nav.getLink("interface-next","#","previous","",labels.previous,"arrow-top",true,"interface","PageUp");res+=this.fluidbook.nav.getLink("interface-last","#","first","",labels.first,"arrow-bottom",true,"interface","Home");res+="
      ";res+='
      ';res+=this.fluidbook.nav.getLink("interface-prev","#","next","",labels.next,"arrow-top",true,"interface","PageDown");res+=this.fluidbook.nav.getLink("interface-first","#","last","",labels.last,"arrow-bottom",true,"interface","End");res+="
      "}$("#interface").append(res);$(document).on("click","#next",function(){if($this.fluidbook.help.isVisible()){return false}$this.fluidbook.interface.resetTimeout();if($this.fluidbook.pad.enabled){$this.fluidbook.goNextChapter()}else{$this.fluidbook.goNextPage()}return false});$(document).on("click","#previous",function(){if($this.fluidbook.help.isVisible()){return}$this.fluidbook.interface.resetTimeout();if($this.fluidbook.pad.enabled){$this.fluidbook.goPreviousChapter()}else{$this.fluidbook.goPreviousPage()}return false});$(document).on("click","#first",function(){if($this.fluidbook.help.isVisible()){return false}$this.fluidbook.interface.resetTimeout();$this.fluidbook.goFirstPage();return false});$(document).on("click","#last",function(){if($this.fluidbook.help.isVisible()){return false}$this.fluidbook.interface.resetTimeout();$this.fluidbook.goLastPage();return false});this.initArrowsVisibilityManagement()}$(this.fluidbook).on("fluidbook.resize, fluidbook.resize.orientation",function(){$this.checkHidden()})},getLabels:function(){var next=this.fluidbook.l10n.__("next double page");var previous=this.fluidbook.l10n.__("previous double page");if(this.fluidbook.pad.enabled){next=this.fluidbook.l10n.__("next chapter");previous=this.fluidbook.l10n.__("previous chapter")}if(this.fluidbook.mobilefirst.enabled){next=this.fluidbook.l10n.__("next page");previous=this.fluidbook.l10n.__("previous page")}return{next:next,previous:previous,first:this.fluidbook.l10n.__("frontpage"),last:this.fluidbook.l10n.__("last page")}},arrowsEnabled:function(){switch(this.fluidbook.settings.arrowsEnabled){case"0":return false;case"1":return true;case"2":return!this.fluidbook.input.hasTouch;default:return true}},checkHidden:function(){if(!this.autoHideArrows()){this.displayInterface()}else{this.resetTimeout()}},areArrowsOverlapingPublication:function(){var res=$("#fluidbook").get(0).getBoundingClientRect().left<60;return res},autoHideArrows:function(){var res=this.arrowsEnabled()&&(this.fluidbook.resize===undefined||this.fluidbook.resize.reduceHorizontalMargins())&&this.areArrowsOverlapingPublication()&&$("#helpView:visible").length===0;return res},initArrowsVisibilityManagement:function(){var $this=this;this.getInterfaceSelector().addClass("interfacecomponent");if(this.autoHideArrows()){if(this.fluidbook.touch){this.fluidbook.touch.hm.on("singletap",function(event){var target=$(event.target);if(target.is("a")||target.closest("a").length>0){return true}$this.toggleInterface(1e3);return true})}else{$(document).on("click",":not(a)",function(){var selector="#fluidbook";if(!$(this).is(selector)&&$(this).closest(selector).length===0){return true}$this.toggleInterface(1e3);return true})}}$(this.fluidbook).on("fluidbook.ready",function(){setTimeout(function(){$this.checkHidden()},1e3)});this.checkHidden()},toggleInterface:function(mask){if(mask===undefined){mask=0}var now=Date.now();if(now0){this.maskToggleEventsTimeout=Math.max(this.maskToggleEventsTimeout,Date.now()+mask)}if(this.interfaceVisible&&this.autoHideArrows()){return this.hideInterface()}else{return this.displayInterface()}},displayInterface:function(){this.interfaceVisible=true;this.getInterfaceSelector().removeClass("interfacehidden");this.resetTimeout()},resetTimeout:function(){this.clearTimeout();if(!this.autoHideArrows()){return false}var $this=this;this.visibleTimeout=setTimeout(function(){$this.hideInterface()},this.visibleTime)},hideInterface:function(){if(!this.autoHideArrows()){return}this.interfaceVisible=false;if($("#helpView").is(":visible")||document.activeElement.tagName.toLowerCase()==="input"){this.resetTimeout();return}this.getInterfaceSelector().addClass("interfacehidden");this.clearTimeout()},getInterfaceSelector:function(){var selector="";if(this.arrowsEnabled()){selector="#next-arrows,#prev-arrows"}if(this.fluidbook.pad.enabled){selector="header,#interface"}return $(selector)},clearTimeout:function(){clearTimeout(this.visibleTimeout)}};function FluidbookInput(fluidbook){this.fluidbook=fluidbook;this.usingMouse=false;this.hasMouse=false;this.forceMouse=false;this.usingTouch=false;this.hasTouch=false;this.forceTouch=false;this.hasKeyboard=false;this.usingKeyboard=false;this.forceKeyboard=false;this.init()}FluidbookInput.prototype={init:function(){var $this=this;if(Modernizr.ftouch){this.hasTouch=true}else{this.usingMouse=this.hasMouse=this.forceMouse=true;this.usingKeyboard=this.forceKeyboard=false;this.hasKeyboard=true;this.usingTouch=this.hasTouch=this.forceTouch=false;this.setMouseClasses()}if(Modernizr.ios||Modernizr.android){this.usingTouch=this.hasTouch=this.forceTouch=true;this.usingMouse=this.hasMouse=this.forceMouse=false;this.usingKeyboard=this.hasKeyboard=this.forceKeyboard=false;this.setTouchClasses()}this.forceTouch=this.forceMouse=false;$(document).on("pointermove",function(e){if(e.pointerType==="mouse"){$this.useMouse()}else{$this.useTouch()}return true})},isUsingTouch:function(){return this.usingTouch},isUsingMouse:function(){return this.usingMouse},isUsingKeyboard:function(){return this.usingKeyboard},useTouch:function(){if(!this.usingTouch){this.hasTouch=this.usingTouch=true;this.usingKeyboard=this.usingMouse=false;this.setTouchClasses()}},useMouse:function(){if(!this.usingMouse){this.hasMouse=this.usingMouse=true;this.usingKeyboard=this.usingTouch=false;this.setMouseClasses()}},useKeyboard:function(){if(!this.usingKeyboard){this.hasKeyboard=this.usingKeyboard=true;this.usingMouse=this.usingTouch=false;this.setKeyboardClasses()}},setTouchClasses:function(){$("html").removeClass("using-mouse").removeClass("no-using-touch").removeClass("using-keyboard").addClass("no-using-mouse").addClass("using-touch").addClass("no-using-keyboard")},setMouseClasses:function(){$("html").addClass("using-mouse").addClass("no-using-touch").addClass("no-using-keyboard").removeClass("no-using-mouse").removeClass("using-touch").removeClass("using-keyboard")},setKeyboardClasses:function(){$("html").addClass("using-keyboard").addClass("no-using-touch").addClass("no-using-mouse").removeClass("no-using-keyboard").removeClass("using-touch").removeClass("using-mouse")}};function FluidbookTouch(fluidbook){this.fluidbook=fluidbook;this.startX=0;this.startY=0;this.offsetX=0;this.offsetY=0;this.panX=0;this.panY=0;this.zoomAtPinchStart=0;this.triggerOffset=this.fluidbook.mobilefirst.enabled?.1:.05;this.init()}FluidbookTouch.prototype={init:function(){var $this=this;$(this.fluidbook).on("fluidbook.page.change.end",function(){$this.resetSlide()});$this.initInteract()},initInteract:function(){var tapEnabled=true;var pinchEnabled=true;var doubletapEnabled=true;var panEnabled=true;var touchAction="compute";var elementId="main";var panElementId="fluidbook";if(this.fluidbook.mobilefirst.enabled){touchAction="auto";elementId="scroll";panElementId="scroll"}var $this=this;if(!tapEnabled&&!doubletapEnabled&&!panEnabled&&!pinchEnabled){return}var options={domEvents:this.fluidbook.mobilefirst.enabled,touchAction:touchAction};Hammer.defaults.domEvents=options.domEvents;Hammer.defaults.touchAction=options.touchAction;var hm=new Hammer.Manager(document.getElementById(elementId),options);this.hm=hm;if(doubletapEnabled){hm.add(new Hammer.Tap({event:"doubletap",taps:2,interval:500}))}if(tapEnabled){hm.add(new Hammer.Tap({event:"singletap",taps:1,interval:500}))}if(pinchEnabled){hm.add(new Hammer.Pinch({threshold:0}));hm.get("pinch").set({enable:true})}if(doubletapEnabled){hm.on("doubletap",function(event){if($this.fluidbook.zoom.enabled){if($this.fluidbook.zoom.zoom>1){$this.fluidbook.zoom.setTransition(true);$this.fluidbook.zoom.resetZoom()}else{$this.setZoomOriginFromEvent(event.srcEvent);$this.fluidbook.zoom.setTransition(true);$this.fluidbook.zoom.setZoom($this.fluidbook.settings.zoom/100,1)}}event.preventDefault()})}if(pinchEnabled){hm.on("pinchstart",function(event){if($this.fluidbook.zoom.enabled){if($this.fluidbook.zoom.zoom===1){$this.setZoomOriginFromEvent({pageX:event.center.x,pageY:event.center.y})}$this.zoomAtPinchStart=$this.fluidbook.zoom.zoom;$this.pinchZoom(event.scale,false)}event.preventDefault()});hm.on("pinch",function(event){if($this.fluidbook.zoom.enabled){if($this.zoomAtPinchStart!==0){$this.pinchZoom(event.scale,false);event.preventDefault()}}});hm.on("pinchend pinchcancel",function(event){if($this.fluidbook.zoom.enabled){$this.pinchZoom(event.scale,true);$this.zoomAtPinchStart=$this.fluidbook.zoom.zoom}event.preventDefault()})}if(panEnabled){var hmf=new Hammer.Manager(document.getElementById(panElementId),options);hmf.add(new Hammer.Pan({threshold:0}));hmf.on("pan",function(event){});hmf.on("panstart",function(event){if($this.drag(event,"start")){event.preventDefault()}});hmf.on("panmove",function(event){if($this.drag(event,"move")){event.preventDefault()}});hmf.on("panend",function(event){var prevent=$this.drag(event,"end");$this.startX=$this.startY=-1;$this.panX=$this.panY=0;if(prevent){event.preventDefault()}})}},pinchZoom:function(s,end){if(s===1){return}this.fluidbook.zoom.setTransition(false);var amplitudeRegulation=.2*this.zoomAtPinchStart;var dir;if(s>1){s=1+(s-1)*amplitudeRegulation;dir=1}else if(s<1){s/=1;s=1+(s-1)*amplitudeRegulation;s/=1;dir=-1}this.fluidbook.zoom.setZoom(this.zoomAtPinchStart*s,dir,end)},drag:function(e,type){if($(".mview:visible").length>0){return false}if(this.fluidbook.zoom.zoom===1){if(this.startX===-1||this.startY===-1||type==="start"){this.startX=e.center.x;this.startY=e.center.y}this.offsetX=(e.center.x-this.startX)/this.fluidbook.resize.ww;this.offsetY=(e.center.y-this.startY)/this.fluidbook.resize.hh;return this.testSlideOffset(e)}else{this.resetSlide();if(type==="end"){e.deltaX+=e.velocityX*200;e.deltaY+=e.velocityY*200;this.dragZoom(e,true)}else{this.dragZoom(e,true)}return true}},dragZoom:function(e,inertia){e.dx=e.deltaX-this.panX;e.dy=e.deltaY-this.panY;this.panX=e.deltaX;this.panY=e.deltaY;if(e.dx===0&&e.dy===0){return}var currentX=this.fluidbook.zoom.originpx[0];var currentY=this.fluidbook.zoom.originpx[1];var x=currentX-e.dx;var y=currentY-e.dy;this.fluidbook.zoom.setOrigin(x,y,true,inertia);return false},testSlideOffset:function(e){if(!this.fluidbook.pad.enabled){try{if(e.additionalEvent==="panup"||e.additionalEvent==="pandown"){return false}}catch(e){}try{var angle=Math.abs(e.angle);if(angle>=90&&angle<150){return false}if(angle>30&&angle<90){return false}}catch(e){}if(this.fluidbook.mobilefirst.enabled&&this.fluidbook.mobilefirst.isScrolling){return false}if(Math.abs(this.offsetX)0&&!ltr){this.fluidbook.goNextPage()}else{this.fluidbook.goPreviousPage()}return true}else{var offset=this.offsetX;var way="x";if(Math.abs(this.offsetX)=0){return"vector"}if(this.fluidbook.settings.rasterizePages.indexOf(page)===-1){return"textasvector"}}return"raster"},preloadStart:function(callback){if(this.fluidbook.shortLoading){this.toPreload=[1]}else{this.toPreload=[1,2,3]}this.preloaded=this.toPreload.slice(0);this.preloadPages(callback)},preloadPagesBeforeTransition:function(pages,callback){var preloadedOk=false;this.transitionPages=pages.slice(0);var $this=this;var timeout;var _cb=function(){clearTimeout(timeout);if(preloadedOk===true){return}preloadedOk=true;callback()};timeout=setTimeout(function(){if(preloadedOk===true){return}this.fluidbook.displayLoader();$this._preloadPagesBeforeTransition(pages,_cb)},7e3);this._preloadPagesBeforeTransition(pages,_cb)},_preloadPagesBeforeTransition:function(pages,callback){if(this.arePreloadedPages(pages)){this._cleanPreloaded();callback();return}var $this=this;var $pages=pages.slice(0);if($pages.length==0){this._cleanPreloaded();callback();return}var $callback=callback;var $page=$pages.shift();if($page==undefined||$page=="undefined"||$page>this.fluidbook.contentlock.getMaxPage()||$page<1){this._cleanPreloaded();callback();return}this._preloadPage($page,function(){$this._preloadPagesBeforeTransition($pages,$callback)})},arePreloadedPages:function(pages){for(var i in pages){var page=pages[i];if(this.backgrounds[page]===undefined){return false}}this.preloaded.push(page);return true},preloadPages:function(cb){if(cb===undefined){cb=function(){}}if(this.toPreload.length==0){cb();return}var $this=this;this.fluidbook.networkControl.executeWhenNetwork(function(_cb){var preloadingPage=$this.toPreload.shift();var callback=function(){if($this.toPreload.length===0){cb()}else{$this.preloadPages(cb)}if(_cb!==undefined){_cb()}};$this._preloadPage(preloadingPage,callback)},true)},_preloadPage:function(page,callback){if(page==undefined||page=="undefined"||page>this.fluidbook.contentlock.getMaxPage()||page<1){callback();return}var $this=this;var $_callback;if(this.fluidbook.pagetransitions.flip3d!==false){$_callback=function(){$this.loadTexture(page,function(){if($this.needSeparateTextures(page)){$this.loadTexture(page,callback,false)}else{callback()}},true)}}else{$_callback=callback}var $__callback=function(){if($this.getVersionToLoad(page)==="textasvector"||$this.getVersionToLoad(page)==="vector"){$this.loadTexts(page,$_callback)}else{$_callback()}};if(this.backgrounds[page]!==undefined&&this.backgrounds[page]!==null){$__callback();return}var backgroundURL=this.getBackgroundURL(page);if(backgroundURL===false){this.backgrounds[page]=null;$__callback()}else{this.backgrounds[page]=this.loadImage(backgroundURL,null,null,null,page,function(){$__callback()})}},preloadAround:function(page){if(this.numPreload==0){return}var numPreloadAfter=10;var numPreloadBefore=4;if(this.fluidbook.resize.orientation==="portrait"||this.fluidbook.singleMode){numPreloadAfter/=2;numPreloadBefore/=2}if(this.fluidbook.shortLoading){numPreloadAfter=numPreloadBefore=0}var fmx=this.fluidbook.contentlock.getMaxPage();var max=Math.min(page+numPreloadAfter,fmx);var min=Math.max(1,page-numPreloadBefore);this.toPreload=[1,fmx];for(var i=min;i<=max;i++){if(this.toPreload.indexOf(i)===-1){this.toPreload.push(i)}}this.preloaded=this.toPreload.slice(0);this.preloadPages()},_cleanPreloaded:function(){for(var i=1;i<=this.fluidbook.contentlock.getMaxPage();i++){if(this.preloaded.indexOf(i)===-1&&this.transitionPages.indexOf(i)===-1){this.deletePage(i)}else{this.setOnStage(this.backgrounds[i]);this.setOnStage(this.texts[i])}}},deletePage:function(page){if(this.backgrounds[page]!==undefined){delete this.backgrounds[page]}if(this.texts[page]!==undefined){delete this.texts[page]}if(this.links[page]!==undefined){delete this.links[page]}if(this.textures[page]!==undefined&&this.textures[page]!==null){delete this.textures[page]}if(this.leaveTextures[page]!==undefined&&this.leaveTextures[page]!==null){delete this.leaveTextures[page]}$("#loadedcontents [data-page='"+page+"']").remove()},setContentsInDoublePage:function(doublePage,pages,immediate,callback){var $this=this;var leftPage=pages[0];var rightPage=pages[1];if(immediate){this.loadLeftPage(leftPage,$(doublePage),function(){});this.loadRightPage(rightPage,$(doublePage),function(){});callback()}else{this.loadLeftPage(leftPage,$(doublePage),function(){$this.loadRightPage(rightPage,$(doublePage),function(){callback()})})}},loadPage:function(pageNr,doublePage,position,callback){if(pageNr<=0||pageNr>this.fluidbook.settings.pages){callback();return}if($(doublePage).find("."+position+"#page_"+pageNr).length>0){callback();return}$(doublePage).find("."+position).each(function(){if($(this).attr("id")!="page_"+pageNr||pageNr==0){$(this).remove()}});var page;if($("#page_"+pageNr).length>0){page=$("#page_"+pageNr);if($(doublePage).find("#page_"+pageNr).length===0){$(doublePage).append(page)}if(!$(page).hasClass(position)){if(position==="left"){$(page).removeClass("right")}else{$(page).removeClass("left")}$(page).addClass(position)}if(!$(page).is(":visible")){$(page).show()}this.addCLinks(pageNr);callback();return}this.fluidbook.initPage(pageNr,doublePage,position);var version=this.getVersionToLoad(parseInt(pageNr));page=$("#page_"+pageNr);$(doublePage).append(page);$(page).show();$(page).addClass(position);var $this=this;this.loadDatas(pageNr,function(){$(page).addClass(position);$this.addCLinks(pageNr);callback()})},addCLinks:function(pageNr){var $this=this;var page=$("#page_"+pageNr);$.each(["clinks","ctlinks"],function(k,cont){var normal=$(page).children("."+cont+'[data-blendmode="normal"]');$.each($this.fluidbook.settings[cont][pageNr],function(blendmode,links){var c=$(page).children("."+cont+'[data-blendmode="'+blendmode+'"]');if(c.length===0){$('
      ').insertAfter(normal);c=$(page).children("."+cont+'[data-blendmode="'+blendmode+'"]')}c.html($this.handleExtension(links.join("")))})})},handleExtension:function(content){if(typeof content==="object"&&content!==null){var c="";$.each(content,function(blendode,links){c+=links.join("")});content=c}var ext=this.fluidbook.settings.actualHtmlExtension;if(ext===undefined||ext===null||ext==="html"){return content}var res=content.replace(/data\/([^"]*)\.html/gm,"data/$1."+ext);return res},loadPageShade:function(position){return this.loadImage("images/shadows/pages/"+position+".png",this.fluidbook.settings.width/4,this.fluidbook.settings.height)},loadLeftPage:function(page,doublePage,callback){if(page>0&&page<=this.fluidbook.contentlock.getMaxPage()){this.loadPage(page,doublePage,"left",callback)}else{$(doublePage).find(".left").remove();callback()}},loadRightPage:function(page,doublePage,callback){if(!this.fluidbook.displayOnePage&&page<=this.fluidbook.contentlock.getMaxPage()&&page>0){this.loadPage(page,doublePage,"right",callback)}else{$(doublePage).find(".right").remove();callback()}},getBackgroundURL:function(page){var version=this.getVersionToLoad(page);if(version==="vector"){return false}var prefix=version==="textasvector"?"p":"t";return"data/background/"+this.fluidbook.support.resolution+"/"+prefix+page+"."+this.format},getTextsURL:function(page){return"data/contents/p"+page+".svg"},setBackground:function(page,callback){var $this=this;var back=$("#page_"+page+" .background");this._loadBackground(page,function(){$(back).addClass("r"+$this.fluidbook.support.resolution);$(back).append($this.backgrounds[page]);callback()})},setOnStage:function(element){if(element===undefined||element==null){return}if(!isOnStage(element)){$("#loadedcontents").append($(element))}},_loadBackground:function(page,callback){if(page<=0||page>this.fluidbook.settings.pages){callback();return}if(this.backgrounds[page]!==undefined){callback()}else{var $this=this;if(window.gal!==undefined&&window.gal!==null&&!OFFLINEAPP){window.gal.downloadAndCall("content_"+page,function(){$this.__loadBackground(page,callback)},250)}else{this.__loadBackground(page,callback)}}},__loadBackground:function(page,callback){if(page<=0||page>this.fluidbook.settings.pages){callback();return}var url=this.getBackgroundURL(page);if(url==false){callback();return false}this.backgrounds[page]=this.loadImage(url,null,null,null,page,callback)},needSeparateTextures:function(page){if(this._needSeparateTextures[page]===undefined){var $this=this;this._needSeparateTextures[page]=false;$.each(this.fluidbook.settings.clinks[page],function(blendmode,links){$.each(links,function(k,link){if(link.indexOf("data-animation-hide")>=0||link.indexOf("data-animation-hide-on-leave")>=0){$this._needSeparateTextures[page]=true;return false}});if($this._needSeparateTextures[page]){return false}})}return this._needSeparateTextures[page]},loadTexture:function(page,callback,enter){if(enter===undefined){enter=true}if(!this.needSeparateTextures(page)){enter=true}if(page<=0||page>this.fluidbook.settings.pages){callback();return}if(enter&&this.textures[page]!==undefined&&this.textures[page]!==null||!enter&&this.leaveTextures[page]!==undefined&&this.leaveTextures[page]!==null){callback()}else{try{this._loadTexture(page,callback,enter)}catch(e){callback()}}},_preloadContentLinkTextures:function(page,clinks,enter,callback){var textures={};var cl="";$.each(clinks,function(blendmode,links){cl+=links.join("")});if(cl===""){callback(textures,cl);return}$("body").append('");var loaded=0;var nb=0;var cb=function(){loaded++;if(loaded===nb){callback(textures,cl)}};$('.texture_clinks[data-page="'+page+'"] .contentLink[data-image]').each(function(){if(enter&&$(this).is("[data-animation-hide]")||!enter&&$(this).is("[data-animation-hide-on-leave]")){return}nb++;var i=$(this).data("id");var url=$(this).data("image").replace(/^\.\./,"data")+"?j="+(new Date).getTime();textures[i]=loadImage(url,cb,"i_"+i)});if(nb===0){callback(textures,cl);return}},_loadTexture:function(page,callback,enter){if(enter===undefined){enter=true}if(!this.fluidbook.support.datauriallowed||page<=0||page>this.fluidbook.settings.pages){callback();return}var $this=this;this._preloadContentLinkTextures(page,this.fluidbook.settings.clinks[page],enter,function(textures,clinks){var d=1024;var c=document.getElementById("pscanvas");c.width=d;c.height=d;var ctx=c.getContext("2d");ctx.clearRect(0,0,d,d);var wr=d/$this.fluidbook.settings.width;var hr=d/$this.fluidbook.settings.height;if($this.backgrounds[page]!==undefined&&$this.backgrounds[page]!==null){ctx.drawImage($this.backgrounds[page].get(0),0,0,d*1.002,d)}else{ctx.fillStyle="#FFFFFF";ctx.fillRect(0,0,d,d)}if($this.getVersionToLoad(page)==="textasvector"||$this.getVersionToLoad(page)==="vector"){try{var img=$this.texts[page].get(0);if(img.width===0){$this.deletePage(page);$this._preloadPage(page,callback);return}ctx.drawImage(img,-1,0,d+2,d)}catch(e){}}if(clinks!==""){$('.texture_clinks[data-page="'+page+'"] .contentLink').each(function(){if(enter&&$(this).is("[data-animation-hide]")||!enter&&$(this).is("[data-animation-hide-on-leave]")){return}var left=parseFloat($(this).css("left"))*wr;var top=parseFloat($(this).css("top"))*hr;var width=parseFloat($(this).css("width"))*wr;var height=parseFloat($(this).css("height"))*hr;if($(this).is("[data-color]")){ctx.fillStyle=$(this).attr("data-color");ctx.fillRect(left,top,width,height)}else if($(this).is("[data-image]")){var i=$(this).data("id");if(textures[i]!==undefined&&textures[i]!==null){ctx.drawImage(textures[i],left,top,width,height)}}});$('.texture_clinks[data-page="'+page+'"]').remove()}if($this.fluidbook.settings.shadeAlpha>0){var sw=d*.25;var s,x;if(page%2===0){s=$this.shadeLeft;x=1024-sw}else{s=$this.shadeRight;x=0}ctx.globalAlpha=2*$this.fluidbook.settings.shadeAlpha/100;ctx.drawImage(s.get(0),x,0,sw,d);ctx.globalAlpha=1}var i=new Image;i.onload=function(){if(enter){$this.textures[page]=i}else{$this.leaveTextures[page]=i}callback()};i.src=c.toDataURL("image/png")})},getTexture:function(page,callback,enter){if(enter===undefined){enter=true}var $this=this;var t=enter||!this.needSeparateTextures(page)?"textures":"leaveTextures";if(this[t][page]===undefined||this[t][page]===null){this._preloadPage(page,function(){callback($this[t][page])})}else{callback(this[t][page])}},loadTexts:function(pageNr,callback){if(pageNr<=0||pageNr>this.fluidbook.settings.pages){callback();return}if(this.getVersionToLoad(pageNr)==="raster"){callback();return}var $this=this;if(this.texts[pageNr]!==undefined){$("#page_"+pageNr+" .texts").append(this.texts[pageNr]);callback()}else{this._loadTexts(pageNr,function(){$("#page_"+pageNr+" .texts").append($this.texts[pageNr]);callback()})}},_loadTexts:function(pageNr,callback){if(pageNr<=0||pageNr>this.fluidbook.settings.pages){callback();return}this.texts[pageNr]=this.loadImage(this.getTextsURL(pageNr),null,null,"image/svg+xml",pageNr,callback)},loadDatas:function(pageNr,callback){var $this=this;this.loadTexts(pageNr,function(){$this.setBackground(pageNr,function(){callback()})})},getImage:function(src,width,height,type,callback){var img=this.loadImage(src,width,height,type,null,callback);return $(img).get(0).outerHTML},checkLoadedThumbs:function(){var res=this.loadedThumbnails.length===this.fluidbook.settings.pages;return res},preloadThumbs:function(callback){if(this.checkLoadedThumbs()){callback();return}$(this).one("thumbnails.loaded",function(){callback()});var cb=function(){};for(var i=1;i<=this.fluidbook.settings.pages;i++){this.loadThumb(i,cb)}},loadThumb:function(pageNr,callback){if(this.thumbnails[pageNr]===undefined||this.thumbnails[pageNr]===null){return this._loadThumb(pageNr,callback)}callback(this.thumbnails[pageNr]);return this.thumbnails[pageNr]},_loadThumb:function(pageNr,callback){if(pageNr<=0||pageNr>this.fluidbook.settings.pages){callback();return}var $this=this;var cb=function(){$this.loadedThumbnails.push(pageNr);if($this.checkLoadedThumbs()){$($this).trigger("thumbnails.loaded")}callback()};var img=this.loadImage("data/thumbnails/p"+pageNr+"."+this.format,null,null,this.imageMimeType,pageNr,cb);this.thumbnails[pageNr]=img;return img},getThumbImage:function(page,shade,pageHolderStyle){var s="";if(pageHolderStyle===undefined){pageHolderStyle=""}if(shade){s='
      '}var thumb=this.loadThumb(page,function(){});var thumbhtml="";if(thumb!==undefined&&thumb.length>0){thumbhtml=thumb.get(0).outerHTML}return'
      "+thumbhtml+s+"
      "},loadImage:function(src,width,height,type,page,cb){var $this=this;var callback=function(){if(cb&&typeof cb=="function"){setTimeout(function(){if(!callbackCalled){callbackCalled=true;cb()}},$this.fluidbook.shortLoading?0:10)}};if(src===false){callback();return}var img=new Image;var $this=this;var callbackCalled=false;$(img).one("load",function(){callback()});$(img).one("error",function(){$this.imagesErrors.push(this);callback()});img.src=src;if(width!==undefined&&width!==null){img.width=width}if(height!==undefined&&height!==null){img.height=height}if(type!==undefined&&type!==null){img.type=type}if(img.complete||img.readyState==="complete"||img.readyState===4){callback()}var res=$(img);$(res).attr("aria-hidden",true);if(page!==null){$(res).attr("data-page",page);$("#loadedcontents").append(res)}return res},callWhenLoaded:function(image,callback){$(image).one("load",function(){callback()});$(image).one("error",function(){callback()});if($(image).length===0){callback();return}var img=$(image).get(0);if(img===undefined||img.complete||img.readyState==="complete"||img.readyState===4){callback()}},retryErrorImages:function(){$(this.imagesErrors).each(function(){$(this).attr("src",$(this).attr("src"))});this.imagesErrors=[]}};function FluidbookSearch(fluidbook){this.fluidbook=fluidbook;this.indexLoaded=false;this.termsToHighlight=[];this.highlights=[];this.highlightEnabled=fluidbook.settings.highlightResults;this.resultPages=[];this.resultNavPages=[];this.plugins=[];this.singleMode=fluidbook.singleMode;this.resultsNavID="searchResultsNav";this.hideableElements=$("header,footer,#interface");this.resultsActiveClass="searchResultsNavActive";this.init()}FluidbookSearch.prototype={init:function(){var $this=this;$(this.fluidbook).on("fluidbook.page.change.end",function(e,pageNr){$this.highlightSearchTerms(pageNr)});$(document).on("change","#q",function(){$this.setHighlightTerms([]);$this.clearHighlights();return true});$(document).on("keyup","#q",function(){if($(this).val()==""){$this.setHighlightTerms([]);$this.clearHighlights()}return true});this.initResultsNav()},debugSearch:function(keyword){this._loadLib(function(){console.log('Comparison of page results for keyword "'+keyword+'"');console.log("INDEX:",Object.keys(INDEX[keyword].p).join(", "));console.log("HIGHLIGHTS:",Array.from(new Set(HIGHLIGHTS["loutres"].map(function(h){return h.page}))).join(", "))})},initResultsNav:function(){this.fluidbook.keyboard.initSearchShortcuts();var $this=this;var html="";html+='";$("body").append(html);this.resultsNav=$("#"+this.resultsNavID);$(document).on("click","#menuSearchResults a",function(){var pageNumber=parseInt($(this).parents(".doubleThumb").attr("page"));$this.openResultsNav(pageNumber)});$(document).on("click",".searchResultsNavField",function(){$this.closeResultsNav(true);$this.fluidbook.nav.openSearch()});$(document).on("click",".searchResultsNext",function(){$this.nextResultsPage()});$(document).on("click",".searchResultsPrev",function(){$this.previousResultsPage()});$(document).on("click",".searchResultsNavClose",function(){$this.closeResultsNav()});$(this.fluidbook).on("fluidbook.resize.orientation",function(event,details){if(!$this.resultsNavActive())return;$this.updateResultsNav($this.fluidbook.currentPage)})},resultsNavActive:function(){return $("body").hasClass(this.resultsActiveClass)},updateResultsNav:function(resultPage){if(this.fluidbook.resize.orientation==="landscape"){var noOddPages=this.resultPages.map(function(page){if(page%2===1)page--;return page});this.resultNavPages=noOddPages.filter(function(value,index,self){return self.indexOf(value)===index})}else{this.resultNavPages=this.resultPages}var resultPagePosition=this.resultNavPages.indexOf(resultPage);resultPagePosition=resultPagePosition===-1?1:resultPagePosition+1;var counterText=resultPagePosition+"/"+this.resultNavPages.length;this.resultsNav.find(".searchResultsNavQuery").text($("#q").val());this.resultsNav.find(".searchResultsNavCounter").text(counterText)},openResultsNav:function(resultPage){this.updateResultsNav(resultPage);this.hideableElements.addClass("hidden");this.resultsNav.removeClass("hidden");$("body").addClass(this.resultsActiveClass)},isResultNavOpened:function(){return $("body").hasClass(this.resultsActiveClass)},isHintsNavOpened:function(){return $("#menuSearchHints").is(":visible")},isResultsOverviewOpened:function(){return $("#menuSearchResults").is(":visible")},navigateHint:function(dir){this.fluidbook.keyboard._navigate("#menuSearchHints .hint",dir)},navigateResults:function(dir){this.fluidbook.keyboard._navigate("#menuSearchResults .menuSearchResult",dir)},closeResultsNav:function(keepSearch){keepSearch=keepSearch!=="undefined"?keepSearch:false;this.hideableElements.removeClass("hidden");this.resultsNav.addClass("hidden");if(!keepSearch){this.closeSearch()}$("body").removeClass(this.resultsActiveClass)},nextResultsPage:function(){var currentIndex=this.resultNavPages.indexOf(fluidbook.currentPage);var nextIndex=currentIndex+1;if(nextIndex>=this.resultNavPages.length){nextIndex=0}var nextPage=this.resultNavPages[nextIndex];this.updateResultsNav(nextPage);this.fluidbook.setCurrentPage(nextPage)},previousResultsPage:function(){var currentIndex=this.resultNavPages.indexOf(fluidbook.currentPage);var prevIndex=currentIndex-1;if(prevIndex<0){prevIndex=this.resultNavPages.length-1}var prevPage=this.resultNavPages[prevIndex];this.updateResultsNav(prevPage);this.fluidbook.setCurrentPage(prevPage)},getHints:function(q,callback){var $this=this;this._loadLib(function(){$this._getHints(q,callback)})},find:function(q,callback){var $this=this;this._loadLib(function(){$this._find(q,callback)})},_loadLib:function(callback){if(this.indexLoaded){return callback()}var $this=this;loadJSLibrary("data/search.index.js?j="+this.fluidbook.settings.cacheDate,function(){$this._loadTexts(function(){if($this.highlightEnabled){loadJSLibrary("data/search.highlight.js?j="+this.fluidbook.settings.cacheDate,function(){$this.indexLoaded=true;callback()})}else{$this.indexLoaded=true;callback()}})})},_loadTexts:function(callback){if(this.fluidbook.settings.searchWordSelectionAlgorithm==="expression"){loadJSLibrary("data/search.texts.js?j="+this.fluidbook.settings.cacheDate,function(){callback()})}else{callback()}},_getHints:function(q,callback){var words=this.normalizeQuery(q,true);q=words.pop();var res=[];if(q.length<3){return res}var v;for(var k in INDEX){v=INDEX[k];if(k.indexOf(q)!==0){continue}res.push([k,v.t])}for(var p in this.plugins){var plugin=this.plugins[p];var h=plugin.getHints(q);res=res.concat(h)}res.sort(this.sortHints);callback(res.slice(0,12))},getSearchWordSelectionAlgorithm:function(q){var a=this.fluidbook.settings.searchWordSelectionAlgorithm;if(q.indexOf(" ")===-1&&a==="expression"){a="begins"}return a},_find:function(q,callback){var algo=this.getSearchWordSelectionAlgorithm(q);if(algo==="expression"){return this._findExpression(q,callback)}var searchTerms=this.normalizeQuery(q,true);var res={};var terms=[];var total=0;var doublePages=[];this.resultPages=[];var matchedWord,indexWord,searchTerm,term,page;var maxPage=this.fluidbook.contentlock.getMaxPage();for(searchTerm in searchTerms){term=searchTerms[searchTerm];terms.push(term);for(indexWord in INDEX){if(indexWord.lengthmaxPage){continue}if(doublePages[page]==null||doublePages[page]==undefined){doublePages[page]=[]}if(doublePages[page][searchTerm]==null||doublePages[page][searchTerm]==undefined){doublePages[page][searchTerm]=0}doublePages[page][searchTerm]+=occurrences;total+=occurrences}}}var nbwords=searchTerms.length;total=0;for(var dpNumber in doublePages){var doublePageOccurences=doublePages[dpNumber];if(Object.keys(doublePageOccurences).length===nbwords||this.fluidbook.settings.searchPageSelectionAlgorithm==="OR"){var totalOccurrences=0;for(var ww in doublePageOccurences){totalOccurrences+=doublePageOccurences[ww]}res[dpNumber]=totalOccurrences;this.resultPages.push(parseInt(dpNumber));total+=totalOccurrences}}var returnVal={total:total,results:res,terms:terms};callback(returnVal)},_findExpression:function(q,callback){q=this.normalizeQuery(q,false);var words=this.normalizeQuery(q,true);var res={};var terms=[];var total=0;var doublesPages=[];var maxPage=this.fluidbook.contentlock.getMaxPage();for(var p in TEXTS){var t=TEXTS[p];var regexp=new RegExp(q,"g");var r=t.match(regexp);var nb=0;try{nb=r.length}catch(e){}if(nb==0){continue}page=parseInt(p);if(page>maxPage){continue}if(!this.singleMode&&page%2===1){page--}doublesPages[page]=[];doublesPages[page][q]=nb;res[page]=nb;total+=nb}if(total>0){terms=words}var returnVal={total:total,results:res,terms:terms};callback(returnVal)},sortHints:function(a,b){return b[1]-a[1]},kill:function(){},normalizeQuery:function(q,split){q=this.noAccents(q);q=q.toLowerCase();if(split){return q.split(" ")}return q},noAccents:function(source){source=source.replace(/[àáâãäå]/g,"a");source=source.replace(/[ÀÁÂÃÄÅ]/g,"A");source=source.replace(/[èéêë]/g,"e");source=source.replace(/[ËÉÊÈ]/g,"E");source=source.replace(/[ìíîï]/g,"i");source=source.replace(/[ÌÍÎÏ]/g,"I");source=source.replace(/[ðòóôõöø]/g,"o");source=source.replace(/[ÐÒÓÔÕÖØ]/g,"O");source=source.replace(/[ùúûü]/g,"u");source=source.replace(/[ÙÚÛÜ]/g,"U");source=source.replace(/[ýýÿ]/g,"y");source=source.replace(/[ÝÝŸ]/g,"Y");source=source.replace(/[ç]/g,"c");source=source.replace(/[Ç]/g,"C");source=source.replace(/[ñ]/g,"n");source=source.replace(/[Ñ]/g,"N");source=source.replace(/[š]/g,"s");source=source.replace(/[Š]/g,"S");source=source.replace(/[ž]/g,"z");source=source.replace(/[Ž]/g,"Z");source=source.replace(/[æ]/g,"ae");source=source.replace(/[Æ]/g,"AE");source=source.replace(/[œ]/g,"oe");source=source.replace(/[Œ]/g,"OE");return source},setHighlightTerms:function(terms){if(!this.highlightEnabled||window.HIGHLIGHTS===undefined){return}this.termsToHighlight=terms;this.highlights=[];if(terms.length===0){return}var algo=this.getSearchWordSelectionAlgorithm(terms.join(" "));if(algo==="expression"){return}for(var t in terms){var term=terms[t];for(var w in HIGHLIGHTS){if(algo!=="expression"&&w.length=term.length){break}}}var padding=position.height*.2;var z=this.fluidbook.settings.cssScale;var h=$('
      ');var coords={top:(position.y-position.height-padding*2)*z,left:(position.x+x-padding)*z+offset,width:(width+2*padding)*z,height:(position.height+padding*3)*z};var transform={};if(position.rotation){transform.rotate=-position.rotation+"deg"}var hash=coords.top+"|"+coords.left+"|"+coords.width+"|"+coords.height;if($('[data-hash="'+hash+'"]').length>0){return}$(h).attr("data-hash",hash);$(h).css(coords).transform(transform);$("#searchHighlights").append(h)},initSearchResults:function(){this.menuSearchResults=$("#menuSearchResults");this.fluidbook.resize.resizeMenu();this.menuSearchResults.hide()},initSearchHints:function(){this.menuSearchHints=$("#menuSearchHints");this.fluidbook.hideMenuItems();this.menuSearchHints.fadeIn(300)},getSearchHints:function(q){var $this=this;this.killLastSearchHint();this.getHints(q,function(r){$this.displaySearchHints(r)})},displaySearchHints:function(hints){var $this=this;if(hints.length==0){return}this.menuSearchHints.html("");$.each(hints,function(k,v){var termType="word";if(v.length>2){label=v[2]}else{label=v[0]}$this.menuSearchHints.append(''+label+"")});var qoffset=$("#q").offset();var top=qoffset.top+$("#q").outerHeight()+5;var left=qoffset.left;if(this.fluidbook.l10n.dir==="rtl"){left=-1*($(window).width()-left-$("#q").outerWidth())}this.menuSearchHints.perfectScrollbar({suppressScrollX:true,minScrollbarLength:40});$("#searchHints").css({top:top,left:left}).show()},killLastSearchHint:function(){this.kill()},hideSearchHints:function(){if(this.menuSearchHints!==undefined){this.menuSearchHints.html("").hide()}},hideSearchResults:function(){if(this.menuSearchResults!==undefined){this.menuSearchResults.html("").hide()}},isSearchActive:function(){if(!this.fluidbook.settings.search){return false}return $("#q").val().length>0},closeSearch:function(){$("#q").val("");this.clearHighlights();this.setHighlightTerms([]);this.hideSearchHints();this.hideSearchResults();this.fluidbook.showMenuItems()},submitForm:function(){var q=$("#q").val();if(q===""){return false}this.closeKeyboardonTouchDevices();window.location.hash="/search/"+q;this.fluidbook.stats.track(1,this.fluidbook.currentPage,q);var continueProcessingAfterPlugins=true;for(var p in this.plugins){if(!continueProcessingAfterPlugins){continue}var plugin=this.plugins[p];continueProcessingAfterPlugins=plugin.submitQuery(q)}if(!continueProcessingAfterPlugins){return}var $this=this;this.find(q,function(results){$this.openResults(results)})},openResults:function(results,gotoPageIfOneResult){if(gotoPageIfOneResult===undefined){gotoPageIfOneResult=false}var $this=this;this.closeKeyboardonTouchDevices();if(results.total<=0){this.menuSearchResults.html('
      '+this.fluidbook.l10n.__("no result found")+"
      ");this.hideSearchHints();this.menuSearchResults.fadeIn(300);return false}var hits=[];for(var i=0;i<=this.fluidbook.contentlock.getMaxPage();i++){hits[i]=0}$.each(results.results,function(k,v){hits[k]+=v});if(this.menuSearchResults===undefined){this.initSearchResults()}this.menuSearchResults.html(this.fluidbook.menu.index._getSearchResultsView()).hide();var spreadEnabled=0;this.menuSearchResults.find(".doubleThumb").each(function(){var currentPages=$(this).data("pages").toString().split(","),totalHits=0,pagesWithHits=[];for(var i in currentPages){var pageNum=parseInt(currentPages[i]);if(hits[pageNum]>0){totalHits+=hits[pageNum];pagesWithHits.push(currentPages[i])}}if($(this).find(".hits").length>0){return}if(totalHits===0){if($this.fluidbook.settings.searchShowNoResultsPages){$(this).append('
      ');$(this).append('
      '+$this.fluidbook.l10n.__("no result found")+"
      ")}else{$(this).remove();return}}else{spreadEnabled++;var url="#/page/"+$(this).attr("page");if($this.fluidbook.pad.enabled){if(pagesWithHits.length==1){url="#/page/"+pagesWithHits[0]}else{url="#/search/"+e+"/"+$(this).attr("page")}}$(this).wrap('');$(this).attr("data-enabled","1");$(this).append('
      '+totalHits+" "+$this.fluidbook.l10n.__("hit(s)")+"
      ")}});this.setHighlightTerms(results.terms);this.hideSearchHints();this.highlightSearchTerms(this.fluidbook.currentPage);if(gotoPageIfOneResult&&spreadEnabled===1){setTimeout(function(){fluidbook.setCurrentPage($this.menuSearchResults.find('.doubleThumb[data-enabled="1"]').attr("page"));fluidbook.nav.menuAPI.close()},100);return}this.menuSearchResults.fadeIn(300).scrollTop(0);setTimeout(function(){this.fluidbook.resize.resizeMenu()},500);this.menuSearchResults.perfectScrollbar({suppressScrollX:true,minScrollbarLength:40})},registerPlugin:function(p){this.plugins.push(p)},closeKeyboardonTouchDevices:function(){if(this.fluidbook.support.iOS||this.fluidbook.support.android){$("#q").blur()}}};function FluidbookHelp(fluidbook){this.autoTimeout;this.fluidbook=fluidbook;this.view=$("#helpView");this.overlay=$("#helpViewOverlay");this.initEvents();this.interfaceTop;this.ww=0;this.ns=0;this.ignoreResize=false}FluidbookHelp.prototype={init:function(force){if(force===undefined){force=false}var ww=this.fluidbook.resize.ww;var skip=true;if(this.view.html()===""){skip=false}if(this.ww!==ww&&this.fluidbook.l10n.rtl){skip=false}if(this.ns!==this.fluidbook.resize.navScale){skip=false}if(force){skip=false}this.ww=ww;this.ns=this.fluidbook.resize.navScale;if(skip){return}var $this=this;var help="";var ext="svg";var touchzoom=2;var mousezoom=1;help='
      ';if(this.fluidbook.mobilefirst.enabled){var name="fingers";var text=this.fluidbook.l10n.__("scroll down to read the page content");help+='
      '+getSpriteIcon("help-touch-scroll",{widh:50*touchzoom,height:38*touchzoom});help+="

      "+text+"

      ";help+="
      "}else{var name="fingers";var text=this.fluidbook.l10n.__("tap twice or spread your fingers to zoom in");help+='
      '+getSpriteIcon("help-touch-zoom",{width:180*touchzoom,height:170*touchzoom});help+="

      "+text+"

      ";help+="
      "}help+='
      ';help+='
      Ctrl++
      Ctrl+–
      ';help+="

      "+this.fluidbook.l10n.__("zoom in and zoom out")+"

      ";help+="
      ";name="mouse";if(this.fluidbook.mobilefirst.enabled){text=this.fluidbook.l10n.__("scroll down to read the page content")}else{text=this.fluidbook.l10n.__("click once to zoom in, click again to zoom out");if(this.fluidbook.settings.zoomWheel==="wheel"){text+="
      "+this.fluidbook.l10n.__("roll the mouse wheel to zoom in/out")}else if(this.fluidbook.settings.zoomWheel==="ctrlwheel"){text+="
      "+this.fluidbook.l10n.__("use Ctrl + scroll to zoom in/out")}}help+='
      '+getSpriteIcon("help-mouse",{width:60*mousezoom,height:100*mousezoom});help+="

      "+text+"

      ";help+="
      ";if(this.fluidbook.mobilefirst.enabled){help+='
      '+getSpriteIcon("help-touch-swipe",{width:50*touchzoom,height:38*touchzoom});help+="

      "+this.fluidbook.l10n.__("swipe to change the page")+"

      ";help+="
      "}help+="
      ";help+='
      ';var tooltipSelector="#horizontalNav li > a[data-tooltip]:visible";var tooltips=this.fluidbook._boolean(this.fluidbook.settings.invertMenuPosition)?$(tooltipSelector).get().reverse():$(tooltipSelector);var navScale=this.fluidbook.resize.navScale;var initialHeight=20*navScale;var hStep=25*navScale;var h=initialHeight+($(tooltipSelector).length-1)*hStep;$(tooltips).each(function(){var text=$(this).data("tooltip");if(text===null||text===undefined||text===""||$(this).hasClass("hidden")){return}var shortcuts=$(this).attr("aria-keyshortcuts");if(shortcuts===null||shortcuts===undefined||shortcuts===""){shortcuts=[]}else{shortcuts=shortcuts.split("+")}var icon=$(this).find(".nav-icon:visible:first");if(icon.length>0){var offset=icon.offset();var iconWidth=parseFloat($(icon).width())*navScale;var left;if($this.fluidbook.l10n.dir==="ltr"){left=offset.left+iconWidth/2}else{left=(ww-offset.left-iconWidth/2)*-1}left=left/navScale;var c="nav";if($(this).parents("#afterSearch").length>0){c="afterSearch"}help+='
      '+$this.keyboardShortcut(shortcuts)+text+"
      ";h-=hStep}});help+="
      ";if(this.fluidbook.interface.arrowsEnabled()){var next=this.fluidbook.l10n.__("next double page");var previous=this.fluidbook.l10n.__("previous double page");if(this.fluidbook.pad.enabled){next=this.fluidbook.l10n.__("next chapter");previous=this.fluidbook.l10n.__("previous chapter")}if(this.fluidbook.mobilefirst.enabled){next=this.fluidbook.l10n.__("next page");previous=this.fluidbook.l10n.__("previous page")}}help+='
      ';if(this.fluidbook.interface.arrowsEnabled()){var labels=this.fluidbook.interface.getLabels();help+='
      ';help+='";help+='
      '+labels.last+this.keyboardShortcut(["End"])+"
      ";help+='";help+='
      '+this.keyboardShortcut(["Home"])+labels.first+"
      ";help+="
      "}if($("#slider").length>0){help+='
      '+this.fluidbook.l10n.__("drag handle to switch page")+"
      "}help+=this.bookmarkLabel();help+="
      ";if(this.fluidbook.pad.enabled){help+='
      '+this.fluidbook.l10n.__("read more")+"
      "}this.view.html(help)},initEvents:function(){var $this=this;$(document).on("click",".icon-help",function(e){$this.show();if($this.fluidbook.nav.menuIsOpen){$this.fluidbook.nav.menuAPI.close()}e.preventDefault()});$this.overlay.click(function(e){e.stopImmediatePropagation();e.stopPropagation();e.preventDefault();$this.hide();return false});$(this.fluidbook).on("fluidbook.resize",function(){if(!$this.ignoreResize){$this.hide()}})},isVisible:function(){return this.view.is(":visible")},show:function(time){this.clearTimeout();if(time===undefined){time=0}this.fluidbook.interface.displayInterface();if(this.isVisible()){return false}var $this=this;this.overlay.show();this.view.css("opacity",0).show();this.view.find(".interface").show();$("#help-illustrations").css("opacity","0");if(time!==0){this.autoTimeout=setTimeout(function(){$this.hide()},time*1e3)}this.init(true);setTimeout(function(){$this.resize();$("body,#prev-arrows,#next-arrows").addClass("help");this.fluidbook.showAllButtons();$this.view.css("opacity",1)},50);setTimeout(function(){$this.resize();$("#help-illustrations").css("opacity","1")},100);$(this.fluidbook).trigger("fluidbook.help.show");return false},hide:function(){this.clearTimeout();this.fluidbook.interface.checkHidden();var $this=this;if(this.isVisible()){this.overlay.hide();this.view.hide();$("body,#prev-arrows,#next-arrows").removeClass("help");this.fluidbook.hideUnnecessaryButtons();if(this.fluidbook.support.isMobile){$("*").unbind("click",function(){$this.hide()})}$(this.fluidbook).trigger("fluidbook.help.hide")}return false},toggle:function(){if(this.isVisible()){this.hide()}else{this.show()}},resize:function(){this.view.find("#help-illustrations").css({transform:""});var hh=this.fluidbook.resize.hh;var navScale=this.fluidbook.resize.navScale;var interfaceScale=this.fluidbook.resize.interfaceScale;this.init(false);var $this=this;var dir=this.fluidbook.l10n.dir;var menuHeightScaled=this.fluidbook.settings.menuHeight*navScale;var nextTop;var firstTop;if(this.fluidbook.interface.arrowsEnabled()){var arrow=$("#interface #next-arrows").get(0).getBoundingClientRect();nextTop=Math.round(arrow.top+arrow.height*.35);firstTop=Math.round(arrow.top+arrow.height*.71);this.view.find(".previous, .next").css({top:nextTop});this.view.find(".first, .last").css({top:firstTop});var prevPosition=dir==="ltr"?{left:Math.round(arrow.width)}:{right:Math.round(arrow.width)},nextPosition=dir==="ltr"?{right:Math.round(arrow.width)}:{left:Math.round(arrow.width)};this.view.find(".previous, .first").css(prevPosition);this.view.find(".next, .last").css(nextPosition)}if(this.fluidbook.bookmarks.enabled){var inverted=this.fluidbook._boolean(this.fluidbook.settings.invertMenuPosition);var side=this.fluidbook.l10n.dir==="ltr"&&inverted||this.fluidbook.l10n.dir==="rtl"&&!inverted?"left":"right";if(this.fluidbook.mobilefirst.enabled){side="right"}var baseElement=$("#links .bookmark."+side+":visible");if(baseElement.length>0){var box=baseElement[0].getBoundingClientRect();var circleExtra=25*this.fluidbook.resize.interfaceScale;var circleOffset=circleExtra/2;$(".bookmark-help .bookmark").css({width:Math.round(box.width),height:Math.round(box.height),margin:Math.round(circleOffset)});$(".bookmark-help .bookmark-help-icon").css({width:Math.round(box.width+circleExtra),height:Math.round(box.height+circleExtra)});var css={top:Math.round(box.top-circleOffset)};if(side==="left"){css.transformOrigin="left top";css.flexDirection="row";css.left=Math.round(box.left-circleOffset)}else{css.right=Math.round(this.fluidbook.resize.ww-box.left-box.width-circleOffset);css.transformOrigin="right top";css.flexDirection="row-reverse"}$(".bookmark-help").css(css)}}if($("#slider").length>0){var positionSliderLabel=function(){var sliderHelp=$this.view.find(".slider");var sliderCursor=$("#slidercursor .visible");sliderHelp.css({bottom:Math.round(hh-sliderCursor.offset().top),left:Math.round(sliderCursor.offset().left+sliderCursor.width()/2),transformOrigin:"left bottom"})};positionSliderLabel();setTimeout(positionSliderLabel,250)}this.view.find("#icons").css({top:menuHeightScaled,transform:"scale("+navScale+")"});var s=Math.max(.9,Math.min(1.5,interfaceScale));$("#helpView #icons").css({fontSize:14/navScale*s});var is=Math.min(s,hh*.7/$("#help-illustrations").outerHeight());this.view.find("#help-illustrations").css({transform:"translate(-50%, 0) scale("+is+")"});$("#helpView .interface").find("> div").transform({scale:[s,s]});var top=(hh-$("#help-illustrations").outerHeight())/2;$("#help-illustrations").css("top",top)},clearTimeout:function(){clearTimeout(this.autoTimeout)},displayAtStartup:function(){if(this.fluidbook.settings.helpStartup){var $this=this;var time=parseInt(this.fluidbook.settings.helpStartupTime);this.ignoreResize=true;setTimeout(function(){$this.ignoreResize=false},(time+1)*1e3);this.show(time);if(this.fluidbook.pad.enabled){this.fluidbook.pad.displayInterface()}}else{if(this.fluidbook.settings.landscapeWarning!==""&&(this.fluidbook.support.iOS||this.fluidbook.support.android)){this.fluidbook.menu.openView("text",this.fluidbook.settings.landscapeWarning,function(){})}this.fluidbook.hideUnnecessaryButtons()}},showBookmark:function(){if(!this.fluidbook.bookmarks.enabled){return false}if(this.fluidbook.displayOnePage){return true}if(!this.fluidbook._boolean(this.fluidbook.settings.invertMenuPosition)&&!this.fluidbook.getButtonsVisibility().next&&this.fluidbook.contentlock.getMaxPage()%2===0){return false}return true},bookmarkLabel:function(){if(!this.showBookmark()){return""}var dir=this.fluidbook.l10n.dir;var inverted=this.fluidbook._boolean(this.fluidbook.settings.invertMenuPosition);var side=dir==="ltr"&&inverted||dir==="rtl"&&!inverted?"left":"right";if(this.fluidbook.mobilefirst.enabled){side="right"}var baseElement=$("#links .bookmark."+side);var html="";if(baseElement.length===0){return""}var iconHolder=$('
      ');iconHolder.html(getSpriteIcon("bookmark-corner"));var icon=$(iconHolder).get(0).outerHTML;html+=$('
      '+icon+"
      ")[0].outerHTML;html+=$('
      ')[0].outerHTML;html+=$('
      '+this.keyboardShortcut(["Ctrl","Alt","D"])+this.fluidbook.l10n.__("add / remove bookmark")+"
      ")[0].outerHTML;var wrapper=$('
      '+html+"
      ")[0].outerHTML;if(wrapper===undefined||wrapper==="undefined"){return""}return wrapper},keyboardShortcut:function(keys){if(keys.length===0){return""}var map={Control:"Ctrl"};var norm=[];$.each(keys,function(k,v){if(map[v]!==undefined){norm.push(map[v])}else{norm.push(v)}});return'
      '+norm.join("+")+"
      "}};function FluidbookResize(fluidbook){this.fluidbook=fluidbook;this.setMargins();this.corr=.8;this.referenceWidthLandscape=1024;this.referenceWidthPortrait=400;this.referenceHeight=600;this.orientation="";this.textScale=2;this.bookScale=1;this.interfaceScale=1;this.headerScale=1;this.navScale=1;this.ww=$(window).width();this.hh=$(window).height();this.init();this.navresizeTimeout=0}FluidbookResize.prototype={reduceHorizontalMargins:function(){return this.fluidbook.mobilefirst.enabled||this.orientation==="portrait"&&(this.fluidbook.support.iOS||this.fluidbook.support.android)},setMargins:function(){var marginV=20;var marginY=marginV;var marginX=60;if(this.reduceHorizontalMargins()){marginX=20}this.marginleft=marginX+parseInt(this.fluidbook.settings.extraXSpace);this.margintop=marginY+parseInt(this.fluidbook.settings.extraYSpace);this.marginbottom=marginY+marginV;this.marginright=this.marginleft},init:function(){var ltr=this.fluidbook.l10n.dir==="ltr";var left=ltr?"0%":"100%";var right=ltr?"100%":"0%";$("#nav,#searchHints").transform({origin:[left,"0%"]});$("#footer").transform({origin:[right,"100%"]});if(this.fluidbook.interface.arrowsEnabled()){$("#next-arrows").transform({origin:[right,"50%"]});$("#prev-arrows").transform({origin:[left,"50%"]})}if(this.fluidbook.support.android||this.fluidbook.support.iOS){$(document).on("blur focus","input",function(){setTimeout(resize,1500);setTimeout(resize,3e3)})}if(this.fluidbook.support.IE>9){this.watchForResize()}},watchForResize:function(){var w=Math.max(document.documentElement.clientWidth,window.innerWidth||0);var h=Math.max(document.documentElement.clientHeight,window.innerHeight||0);if(w!==this.ww||h!==this.hh){resize()}var $this=this;window.setTimeout(function(){$this.watchForResize()},1e3)},resize:function(init,forceOrientation){if(init==undefined||init==null){init=false}if(forceOrientation===undefined){forceOrientation=false}var $this=this;this.updateWindow();this.handleOrientation(init||forceOrientation);if(this.fluidbook.support.android){this.fluidbook.viewport.width="device-width";this.fluidbook.viewport.updateViewport();this.updateWindow()}var headerScale=1;var interfaceScale,headerScale;if(this.orientation==="landscape"){interfaceScale=Math.min(1,this.ww/this.referenceWidthLandscape,this.hh/this.referenceHeight)}else if(this.orientation==="portrait"){var nminwidth=$("#nav a").length*51+205+50;var refWidth=Math.max(this.referenceWidthPortrait,nminwidth);headerScale=Math.min(1,this.ww/refWidth,this.hh/this.referenceHeight);interfaceScale=Math.min(1,.7*this.ww/refWidth,.7*this.hh/this.referenceHeight)}if(this.fluidbook.mobilefirst.enabled){interfaceScale=Math.max(.8,interfaceScale);headerScale=Math.max(.8,headerScale)}this.interfaceScale=interfaceScale;this.headerScale=headerScale;var navScale=headerScale*parseInt(this.fluidbook.settings.mobileNavScale)/100;this.navScale=navScale;var cssInterfaceScale=[interfaceScale,interfaceScale];var cssNavScale=[navScale,navScale];var cssHeaderScale=[headerScale,headerScale];$("#main,#z,#scroll").css({width:this.ww,height:this.hh});this.resizeView();this.setMargins();var marginTop,marginBottom,marginLeft,marginRight;if(this.fluidbook.pad.enabled){extraX=0;marginTop=0;marginBottom=0;marginLeft=0;marginRight=0}else{var extraX=parseInt(this.fluidbook.settings.mobileExtraXSpace);if(isNaN(extraX)){extraX=0}marginTop=parseInt(this.fluidbook.settings.menuHeight)*headerScale+this.margintop*interfaceScale;marginBottom=(10+this.marginbottom)*interfaceScale;marginLeft=(this.marginleft+parseInt(extraX))*interfaceScale;marginRight=(this.marginright+parseInt(extraX))*interfaceScale}var aw=this.ww-marginLeft-marginRight;var ah=this.hh-marginTop-marginBottom;var fhh=this.fluidbook.settings.height;var fww=this.fluidbook.settings.width;if(this.orientation==="landscape"){fww*=2}this.bookScale=Math.min(aw/fww,ah/fhh);var origin=["50%","50%"];if(this.fluidbook.mobilefirst.enabled){this.bookScale=this.fluidbook.mobilefirst.getBookScale(aw);origin[1]="0%"}var tabsScale=this.fluidbook.tabs.guessBookScale(this.bookScale,aw,fww);this.bookScale*=tabsScale;var fw=this.bookScale*fww;var fh=this.bookScale*fhh;$("#fluidbook,#shadow").transform({scale:[this.bookScale,this.bookScale],origin:origin});if(this.fluidbook.support.iOS&&this.fluidbook.pagetransitions.getTransitionType()==="flip3d"){$("#fluidbook").css("transform","translate3d(0,0,-1px) scale("+this.bookScale+","+this.bookScale+")")}var top=marginTop+(ah-fhh)/2;var left=marginLeft+(aw-fww)/2;if(this.fluidbook.mobilefirst.enabled){top=marginTop}$("#fluidbook,#shadow").css({top:top,left:left,width:fww,height:fhh});if(this.fluidbook.mobilefirst.enabled){this.fluidbook.mobilefirst.resize()}this.centerOffset=fw/4;this.fluidbook.pagetransitions.centerBook();if($("#pagesnumbers").data("size")==null){$("#pagesnumbers").data("size",parseInt($("#pagesnumbers").css("font-size")))}var pageNumberScale=Math.min(1,1/(this.bookScale/.5));$("#pagesnumbers").css("font-size",$("#pagesnumbers").data("size")*pageNumberScale);if(this.fluidbook._boolean(this.fluidbook.settings.logoHideWhenOverriden)){var availableWidthForLogo=(this.ww-fw)/2;if($("#logo").outerWidth()>availableWidthForLogo){$("#logo").addClass("overridenByFluidbook")}else{$("#logo").removeClass("overridenByFluidbook")}}if(this.fluidbook.interface.arrowsEnabled()){$("#next-arrows").transform({scale:cssInterfaceScale});$("#prev-arrows").transform({scale:cssInterfaceScale})}var audioButtonPosition=Math.max(this.hh/6,30*interfaceScale);$(".audio-description-button").css({scale:cssInterfaceScale,bottom:audioButtonPosition});$("#logo,footer,#searchHints").transform({scale:navScale});$("#horizontalNav, #menuOpener").css({transform:"translateY(-"+50*navScale+"%) scale("+navScale+")"});var headerHeight=this.fluidbook.settings.menuHeight*navScale;$("header").css({height:headerHeight,backgroundSize:"100% "+headerHeight+"px"});this.refw=fw;this.refh=fh;this.updateFluidbookRect();if(this.fluidbook.help){this.fluidbook.help.resize(this.ww,this.hh,interfaceScale,navScale)}$("#loader").css({top:this.hh/2,left:this.ww/2});this.fluidbook.background.resize(this.ww,this.hh);if(this.fluidbook.slider){this.fluidbook.slider.resize(this.ww,this.hh,this.orientation==="portrait")}var timeout=0;if(this.fluidbook.support.android){timeout=1e3}if(timeout>0){clearTimeout(this.navresizeTimeout);this.navresizeTimeout=setTimeout(function(){$this.resizeNav(interfaceScale)},timeout)}else{this.resizeNav(interfaceScale)}this.resizeSplash();if(this.fluidbook.form){try{this.fluidbook.form.resize()}catch(e){}}$("#main").show();if(this.fluidbook.nav){if(this.fluidbook.nav.burgerActive()){$("html").addClass("menu-burger");$("html").removeClass("menu-horizontal")}else{$("html").addClass("menu-horizontal");$("html").removeClass("menu-burger")}}this.checkLogoVisibility();$(window).scrollTop(0);var data={ww:this.ww,hh:this.hh,orientation:this.orientation,bookScale:this.bookScale,fluidbookrect:this.fluidbookrect};if(this.fluidbook.interface.arrowsEnabled()){try{data.arrowLeftRect=$("#prev-arrows").get(0).getBoundingClientRect();data.arrowRightRect=$("#next-arrows").get(0).getBoundingClientRect()}catch(e){}}$(this.fluidbook).trigger("fluidbook.resize",data)},updateFluidbookRect:function(){this.fluidbookrect=$("#fluidbook").get(0).getBoundingClientRect()},resizeNav:function(interfaceScale){var $this=this;if(this.fluidbook.interface.arrowsEnabled()){var topNext=(this.hh-100*interfaceScale)/2;$("#next-arrows,#prev-arrows").css({top:topNext}).show()}if($("#afterSearch:visible").length===1){setTimeout(function(){$this.resizeAfterSearch()},10);this.resizeAfterSearch()}},resizeAfterSearch:function(){var rect=$("#horizontalNav").get(0).getBoundingClientRect();var inverted=this.fluidbook._boolean(this.fluidbook.settings.invertMenuPosition);if(this.fluidbook.l10n.ltr&&!inverted||this.fluidbook.l10n.rtl&&inverted){$("#afterSearch").css({left:rect.left+rect.width,right:"auto"})}else{$("#afterSearch").css({right:this.ww-rect.right+rect.width,left:"auto"})}},checkLogoVisibility:function(){if(this.fluidbook.mobilefirst.enabled){return}var logo=document.getElementById("logo").getBoundingClientRect();var fluidbook=document.getElementById("fluidbook").getBoundingClientRect();var inverted=this.fluidbook._boolean(this.fluidbook.settings.invertMenuPosition);var overlapY=logo.bottom>fluidbook.top;var overlapX;if(this.fluidbook.l10n.rtl&&!inverted||this.fluidbook.l10n.ltr&&inverted){overlapX=logo.right>fluidbook.left-$("#center-fluidbook").data("left")}else{overlapX=logo.left
      "}}index+="
      ";index+='";index+="";return index},getPrintPreview:function(){if(!this.hasBookmarkedPages()){return'
      '}var maxImages=3,count=0,html="",groups=this.getBookmarkedGroups();html+='
      ';for(var g=0;g'+this.fluidbook.loader.getThumbImage(group.page);if(this.fluidbook.bookmarks.enabled){html+=this.fluidbook.bookmarks.getBookmarkForPage(group.page,true,true)}html+="
      ";if(count>=maxImages){break}}html+="";return html}};function FluidbookBackground(fluidbook){this.fluidbook=fluidbook;this.hasLinks=false;this.dynamicBackgroundColor={};this.init()}FluidbookBackground.prototype={init:function(){if(this.fluidbook.settings.links.background!==undefined&&(this.fluidbook.settings.repeat!==Fluidbook.REPEAT||this.fluidbook.tabs.hasTabs())&&this.fluidbook.settings.links.background!==""&&this.fluidbook.settings.mobileIgnoreBackgroundLinks===false){$("#background").prepend('");this.hasLinks=true}if(Object.keys(this.fluidbook.settings.dynamicBackgroundColor).length>0){var $this=this;$(this.fluidbook).on("fluidbook.page.change.start",function(e,page){try{var s=$this.fluidbook.settings.dynamicBackgroundColor[page];var back=s[0];var arrows="";if(s.length>1){arrows=s[1]}}catch(e){back=null;arrows=""}var style;if(back===undefined||back===null||back===""||back==="-"){style=""}else{style="background-image:none !important;background-color:"+back+" !important;"}$("#background").attr("style",style);$("#prev-arrows,#next-arrows,#menuOpener,.audio-description-button").css("color",arrows)})}},resize:function(w,h){if(!this.hasLinks){return}if(this.fluidbook.tabs.hasTabs()){return}var left,top,iw,ih;if(this.fluidbook.settings.backgroundImageDimensions===undefined){}else if(this.fluidbook.settings.repeat===Fluidbook.NONE){iw=this.fluidbook.settings.backgroundImageDimensions.width;ih=this.fluidbook.settings.backgroundImageDimensions.height;if(this.fluidbook.settings.backgroundHAlign===Fluidbook.LEFT){left=0}else if(this.fluidbook.settings.backgroundHAlign===Fluidbook.RIGHT){left=w-iw}else if(this.fluidbook.settings.backgroundHAlign===Fluidbook.CENTER){left=(w-iw)/2}if(this.fluidbook.settings.backgroundVAlign===Fluidbook.TOP){top=0}else if(this.fluidbook.settings.backgroundVAlign===Fluidbook.BOTTOM){top=h-ih}else if(this.fluidbook.settings.backgroundVAlign===Fluidbook.MIDDLE){top=(h-ih)/2}$("#background .links").css({top:top,left:left})}else if(this.fluidbook.settings.repeat===Fluidbook.RATIO||this.fluidbook.settings.repeat===Fluidbook.STRETCH){var origin=["0%","0%","0%"];origin=["0%","0%","0%"];var bw=parseFloat(this.fluidbook.settings.backgroundImageDimensions.width);var bh=parseFloat(this.fluidbook.settings.backgroundImageDimensions.height);var translateX=0;var translateY=0;var css={};var scaleX=w/bw;var scaleY=h/bh;if(this.fluidbook.settings.repeat===Fluidbook.RATIO){if(scaleX0){var transform={scaleX:scaleX,scaleY:scaleY,translateX:translateX,translateY:translateY,origin:origin};$("#background .links").transform(transform).css(css)}}}};function FluidbookPad(fluidbook){this.fluidbook=fluidbook;this.enabled=this.fluidbook.settings.mobileNavigationType=="tab";if(this.enabled){this.init()}}FluidbookPad.prototype={init:function(){this.initEvents()},initEvents:function(){var $this=this;$(document).on("click","#down",function(){if($this.fluidbook.help.isVisible()){return}if($(this).hasClass("right")){$this.fluidbook.goNextChapter()}else{$this.fluidbook.goNextChapterPage()}return false})},getTransitionAxis:function(currentPage,nextPage){var linkedPages=this.fluidbook.bookmarks.getLinkedPages(currentPage);if(linkedPages.indexOf(nextPage)==-1){return"x"}return"y"}};function FluidbookAudioDescription(fluidbook){this.fluidbook=fluidbook;this.dataPath="data/audiodescription/";this.container=$("#interface");this.buttonClass="audio-description-button";this.audioSupport=Modernizr.audio;if(this.audioSupport){try{this.audioplayerLeft=new Audio;this.audioplayerRight=new Audio}catch(err){this.audioSupport=false}}this.buttonLeft=$(''+getSpriteIcon("audiodescription-on")+getSpriteIcon("audiodescription-off")+"");this.buttonRight=$(''+getSpriteIcon("audiodescription-on")+getSpriteIcon("audiodescription-off")+"");if(this.audioSupport){this.init()}}FluidbookAudioDescription.prototype={init:function(){this.container.append(this.buttonLeft);this.container.append(this.buttonRight);var $this=this,buttons=$("."+this.buttonClass);buttons.attr("data-tooltip",this.fluidbook.l10n.__("listen to the page"));buttons.attr("aria-label",this.fluidbook.l10n.__("listen to the page"));buttons.hide();this.audioplayerLeft.addEventListener("ended",this.endPlaying.bind(this,this.audioplayerLeft));this.audioplayerRight.addEventListener("ended",this.endPlaying.bind(this,this.audioplayerRight));$(document).on("click","."+this.buttonClass,function(e){var player,button;if($(this).hasClass("right")){player=$this.audioplayerRight;button=$($this.buttonRight)}else{player=$this.audioplayerLeft;button=$($this.buttonLeft)}if($(this).hasClass("playing")){$this.pauseAllPlayers();return false}$this.pauseAllPlayers();button.addClass("playing");player.play();e.preventDefault()});this.fluidbook.keyboard.keyShortcut("ctrl+shift+left",this.playSide.bind(this,"left"));this.fluidbook.keyboard.keyShortcut("ctrl+shift+right",this.playSide.bind(this,"right"));this.setupPages()},setupPages:function(){if(!this.audioSupport){return}this.pauseAllPlayers();var pageNumLeft=this.fluidbook.getPhysicalPageNumberOfSide("left",true);var pageNumRight=this.fluidbook.getPhysicalPageNumberOfSide("right",true);if(this.hasAudio(pageNumLeft)){$(this.buttonLeft).show();this.audioplayerLeft.src=this.getAudio(pageNumLeft)}else{$(this.buttonLeft).hide()}if(this.hasAudio(pageNumRight)&&!this.fluidbook.displayOnePage){$(this.buttonRight).show();this.audioplayerRight.src=this.getAudio(pageNumRight)}else{$(this.buttonRight).hide()}},pauseAllPlayers:function(){if(!this.audioSupport){return}this.audioplayerLeft.pause();this.audioplayerRight.pause();$("."+this.buttonClass).removeClass("playing")},endPlaying:function(player){this.pauseAllPlayers();player.currentTime=0},hasAudio:function(page){if(!this.audioSupport){return false}if(this.fluidbook.settings.audiodescription===undefined)return false;return this.fluidbook.settings.audiodescription[page]!==undefined},getAudio:function(page){return this.dataPath+this.fluidbook.settings.audiodescription[page]},playSide:function(side){var targetSelector="."+this.buttonClass+"."+side,pageNum=this.fluidbook.getPageNumberOfSide(side);if(this.hasAudio(pageNum)){$(targetSelector).trigger("click")}}};function FluidbookAudioPlayer(fluidbook){this.fluidbook=fluidbook;this.init()}FluidbookAudioPlayer.prototype={init:function(){var $this=this;$(document).on("click","audio + .visualPlayer",function(){var audio=$(this).prev("audio").get(0);if(audio.paused){audio.play();$(audio).addClass("playing");$(this).addClass("playing")}else{audio.pause();$(audio).removeClass("playing");$(this).removeClass("playing")}return false});requestAnimationFrame(function(){$this.updatePlayers()})},initAudios:function(){var $this=this;$("audio.redbull").each(function(){$this.initRedbullPlayer(this)})},updatePlayers:function(){var $this=this;$("audio.playing.redbull").each(function(){$this.updateRedbullPlayer(this)});requestAnimationFrame(function(){$this.updatePlayers()})},updateRedbullPlayer:function(player){var paper=$(player).data(paper);var halfw=$(player).data("halfw");var sw=3;paper.clear();var p=Math.max(0,Math.min(1,player.currentTime/player.duration));var arc=paper.path(this.arc([halfw,halfw],halfw-sw,270,270+p*360));arc.attr("stroke","#d7104e");arc.attr("stroke-width",sw)},initRedbullPlayer:function(player){var vp=$(player).next(".visualPlayer");if($(player).prop("autoplay")){$(player).addClass("playing");$(vp).addClass("playing")}vp.append('
      ');vp.append('
      '+getSpriteIcon("play")+"
      ");vp.append('
      '+getSpriteIcon("pause")+"
      ");vp.append('
      ');var vpw=Math.max($(vp).outerWidth(),$(vp).outerHeight());$(player).data("halfw",vpw/2);var paper=Raphael(vp.find(".arc").get(0),vpw,vpw);$(player).data(paper)},arc:function(center,radius,startAngle,endAngle){angle=startAngle;coords=this.toCoords(center,radius,angle);path="M "+coords[0]+" "+coords[1];while(angle<=endAngle){coords=this.toCoords(center,radius,angle);path+=" L "+coords[0]+" "+coords[1];angle+=1}return path},toCoords:function(center,radius,angle){var radians=angle/180*Math.PI;var x=center[0]+Math.cos(radians)*radius;var y=center[1]+Math.sin(radians)*radius;return[x,y]}};function FluidbookAccessibility(fluidbook){this.fluidbook=fluidbook;this.init()}FluidbookAccessibility.prototype={init:function(){var $this=this;this.audiodescription=new FluidbookAudioDescription(this.fluidbook);$(this.fluidbook).on("fluidbook.page.change.end",function(e,data){$this.endChangePage(data)});$(this.fluidbook).on("fluidbook.splash.hide",function(){$("body").attr("aria-hidden","false");setTimeout(function(){$(this.fluidbook).trigger("fluidbook.splash.hide")},2500)})},endChangePage:function(page){this.audiodescription.setupPages();this.updateTexts()},updateTexts:function(){var $this=this;var texts=[];$.each(this.fluidbook.getDisplayedPages(),function(k,page){var t=$this.getAccessibleTextOfPage(page);if(t!==false){texts.push(t)}});$("#accessible-contents").html(texts.join(""))},getAccessibleTextOfPage:function(page){if(this.fluidbook.settings.accessibleTexts===undefined||this.fluidbook.settings.accessibleTexts===null){return false}page=parseInt(page);if(this.fluidbook.settings.accessibleTexts[page]===undefined||this.fluidbook.settings.accessibleTexts[page]===null){return false}return'
      '+this.fluidbook.settings.accessibleTexts[page]+"
      "}};(function(d){var style_element=d.createElement("STYLE"),dom_events="addEventListener"in d,add_event_listener=function(type,callback){if(dom_events){d.addEventListener(type,callback)}else{d.attachEvent("on"+type,callback)}},set_css=function(css_text){!!style_element.styleSheet?style_element.styleSheet.cssText=css_text:style_element.innerHTML=css_text};d.getElementsByTagName("HEAD")[0].appendChild(style_element);add_event_listener("mousedown",function(){$("body").removeClass("keyboard-navigating");set_css(":focus{outline:0}::-moz-focus-inner{border:0;}")});add_event_listener("keydown",function(e){if(e.keyCode===9||e.keyCode===38||e.keyCode===40){$("body").addClass("keyboard-navigating");fluidbook.input.useKeyboard();set_css("")}})})(document);function FluidbookPrivacy(fluidbook){this.fluidbook=fluidbook;this.storageKey="cookieConsent";if(location.host=="workshop.fluidbook.com"){this.storageKey="fluidbook."+fluidbook.settings.id+"."+this.storageKey}if(!this.fluidbook.settings.cookieConsent){return}this.init()}FluidbookPrivacy.prototype={init:function(){if(localStorage.getItem(this.storageKey)==="1"){return}var $this=this;$(this.fluidbook).on("fluidbook.splash.hide",function(){$this.displayCookieConsent()})},displayCookieConsent:function(){if($("#cookieConsent").length>0){return}var $this=this;$("body").append('

      '+this.fluidbook.settings.cookieConsentMessage+"

      ");if(this.fluidbook.settings.cookieConsentAutoclose>0){setTimeout(function(){$this.close()},this.fluidbook.settings.cookieConsentAutoclose*1e3)}$(document).on("touchend click","#cookieConsent a.close",function(){$this.close();return false})},close:function(){$("#cookieConsent").fadeOut();localStorage.setItem(this.storageKey,"1")}};function FluidbookZoom(fluidbook){this.fluidbook=fluidbook;this.zoom=0;this.originpct=[.5,.5];this.originpx=["0px","0px"];this.initial=this.fluidbook.settings.zoom/100;this.max=this.fluidbook.settings.zoomw/100;this.transition=true;this.enabled=true;this.shadowTimeout;this.hideInterfaceTimeout;this.init()}FluidbookZoom.prototype={init:function(){if(this.fluidbook.mobilefirst.enabled){this.disable();return}var $this=this;this.setTransition(true);this.initMouseWheel();$(this.fluidbook).on("fluidbook.zoom.out.end",function(){$("#z").addClass("nozoom")});$("#z").on(this.fluidbook.support.transitionEndEvent,function(){$this.triggerEvent(($this.zoom===1?"out":"in")+".end")});$(this.fluidbook).on("fluidbook.zoom.out.end,fluidbook.zoom.in.end",function(){clearTimeout($this.shadowTimeout);if($this.zoom===1){$("#shadow").removeClass("hidden")}else{$("#shadow").addClass("hidden")}});this.fluidbook.keyboard.initZoomShortcuts()},initMouseWheel:function(){var $this=this;window.addEventListener("wheel",function(e){var returnValue=true;if(e.ctrlKey){e.preventDefault();e.stopPropagation();e.stopImmediatePropagation();returnValue=false}if(!$this.enabled||$this.fluidbook.settings.zoomWheel==="disabled"){return returnValue}if($this.fluidbook.settings.zoomWheel==="ctrlwheel"&&!e.ctrlKey){return returnValue}if($("body").is(".view, .menu-open")){return returnValue}$this.wheelZoom(e.deltaY*-1);return returnValue},{passive:false})},wheelZoom:function(delta){var dir;if(delta>0){delta=.7;dir=1}else{delta=-.7;dir=-1}this.setZoom(this.zoom+delta,dir)},increaseZoom:function(){var z;if(this.zoom===1){z=this.initial}else{z=this.max}this.setZoom(z,1,true)},decreaseZoom:function(){var z;if(this.zoom===1){return}else if(this.zoom>this.initial){z=this.initial}else{return this.resetZoom()}this.setZoom(z,-1,true)},move:function(direction,amount){amount=amount===undefined?.1:amount;var dir=0;var mult=1;if(direction==="up"||direction==="down"){dir=1}if(direction==="left"||direction==="up"){mult=-1}this.originpct[dir]=Math.min(1,Math.max(0,this.originpct[dir]+amount*mult));this.setOriginPct(this.originpct[0],this.originpct[1],false,true)},disable:function(){this.enabled=false;$("body").addClass("zoom-disabled")},triggerEvent:function(event){var e="fluidbook.zoom."+event;$(this.fluidbook).trigger(e)},setZoom:function(zoom,direction,end){var origZoom=this.zoom;if(end===undefined){end=false}if(direction===undefined){if(this.zoom>zoom){direction=-1}else{direction=1}}zoom=Math.max(Math.min(zoom,this.max),1);if(this.fluidbook.menu.viewMode()){zoom=1}if(end){if(direction===1){if(zoom<1.5){zoom=1.5;this.setTransition(true)}}else if(direction===-1){if(zoom<1.5){zoom=1;this.setTransition(true)}}}if(this.zoom===zoom){return}this.zoom=zoom;this.updateZoom();if(origZoom===1&&this.zoom>1){this.fluidbook.stats.track(2,this.fluidbook.currentPage)}},setTransition:function(transition){if(transition==undefined){transition=true}if(transition==false){$("#z").addClass("notransition").removeClass("transition").removeClass("transition-inertia")}else{$("#z").removeClass("notransition").removeClass("transition-inertia")}this.transition=transition},resetZoom:function(callback){if(this.zoom===1){if(callback){callback()}return}this.setOriginPct(.5,.5,true,true);this.setZoom(1,-1);if(callback){setTimeout(function(){callback()},350)}},setOriginPct:function(x,y,force,inertia){if(force==undefined){force=false}if(inertia==undefined){inertia=false}x=Math.min(1,Math.max(0,x));y=Math.min(1,Math.max(0,y));this.originpct=[x,y];if(!force&&this.fluidbook.zoom.zoom==1){return}else{if(inertia){$("#z").addClass("transition-inertia")}else{$("#z").removeClass("transition-inertia")}$("#z").transform({origin:[this.originpct[0]*100+"%",this.originpct[1]*100+"%"]},{preserve:true})}},setOrigin:function(x,y,force,inertia){if(force===undefined){force=false}if(inertia===undefined){inertia=false}x=Math.max(0,Math.min(x,this.fluidbook.resize.ww));y=Math.max(0,Math.min(y,this.fluidbook.resize.hh));this.originpx=[x,y];if(!force&&this.fluidbook.zoom.zoom===1){return}if(inertia){$("#z").addClass("transition-inertia")}else{$("#z").removeClass("transition-inertia")}$("#z").transform({origin:[this.originpx[0]+"px",this.originpx[1]+"px"]},{preserve:true})},updateZoom:function(){var $this=this;clearTimeout(this.shadowTimeout);if(this.zoom>1){$("#z").removeClass("nozoom")}var animation={scale:[this.zoom,this.zoom]};if(this.desktopScale==1){animation.origin=["50%","50%"]}if(!this.fluidbook.search.resultsNavActive()){var hiddenElements=$("header,footer,#interface,#links a.bookmark");if(this.zoom!==1){if(this.fluidbook.help!==undefined){this.fluidbook.help.hide()}$("#shadow").addClass("hidden");if(!$("header").hasClass("hidden")){$(hiddenElements).addClass("hidden");this.hideInterfaceTimeout=setTimeout(function(){$(hiddenElements).hide()},500)}}else{clearTimeout(this.hideInterfaceTimeout);$(hiddenElements).show().removeClass("hidden");this.shadowTimeout=setTimeout(function(){$("#shadow").removeClass("hidden")},250)}}$("#z").transform(animation,{preserve:true});$this.triggerEvent((this.zoom===1?"out":"in")+".start");if(!this.transition){$this.triggerEvent((this.zoom===1?"out":"in")+".end")}if(this.zoom>1){$("body").addClass("zoomed")}else{$("body").removeClass("zoomed")}return true}};function FluidbookMenu(fluidbook){this.fluidbook=fluidbook;this.init()}FluidbookMenu.prototype={init:function(){this.index=new FluidbookIndex(this.fluidbook);var $this=this;$(document).on("click",".mview .button.back, #viewOverlay",function(e){e.stopImmediatePropagation();e.stopPropagation();e.preventDefault();$this.closeView(function(){},false);return false});if(this.fluidbook.settings.displayChaptersAtStart){$(this.fluidbook).on("fluidbook.splash.hide",function(){$this.openView("chapters","","",function(){})})}},viewMode:function(){return $("#view .mview").length>0},openView:function(view,param1,param2,callback){var $this=this;setTimeout(function(){$this._openView(view,param1,param2,callback)},10)},_openView:function(view,param1,param2,callback){var $this=this;var preload={index:"thumbnails",search:"thumbnails",bookmark:"thumbnails",video:"extras"};if(!OFFLINEAPP&&this.fluidbook.gal!=null&&preload[view]!==undefined){this.fluidbook.displayLoader();this.fluidbook.resetWaiters();var w=this.fluidbook.addWaiter(true);this.fluidbook.gal.downloadAndCall(preload[view],function(){if($this.fluidbook.waiterActive(w)){$this.__openView(view,param1,param2,callback)}})}else{this.__openView(view,param1,param2,callback)}},__openView:function(view,param1,param2,callback){try{if(typeof param1==="string"){param1=decodeURIComponent(param1)}}catch(e){}try{if(typeof param2==="string"){param2=decodeURIComponent(param2)}}catch(e){}var $this=this;var camelView=view.charAt(0).toUpperCase()+view.substr(1);var cb=function(){$this.openingView(callback,view)};if(view==="index"){this.openIndex(this.fluidbook.l10n.__("overview"),undefined,true,cb)}else if(view==="video"){this.openVideo(param1,cb)}else if(view==="audio"){this.openAudio(param1,cb)}else if(view==="webvideo"){this.openWebVideo(param1,param2,cb)}else if(view==="multimedia"){this.openMultimedia(param1,cb)}else if(view==="chapters"){if(param1===undefined||param1==="undefined"||param1===null||param1===""){param1="null"}this.openChapters(param1,cb)}else if(view==="archives"){this.openArchives($("#nav #archives").data("tooltip"),cb)}else if(view==="text"){this.openText(param1,cb)}else if(view==="slideshow"){this.openSlideshow(param1,cb)}else if(view==="iframe"){this.openIframe(param1,cb)}else if(view==="freeiframe"){this.openFreeiframe(param1,cb)}else if(view==="search"){this.openSearch(param1,cb)}else if(view==="print"){this.openPrint(cb)}else if(view==="download"){this.openDownload(cb)}else if(view==="article"){this.fluidbook.articles.openArticle(param1,cb)}else{this["open"+camelView](param1,param2,cb)}},openNotes:function(p1,p2,cb){this.fluidbook.notes.openMenu(cb)},openSearch:function(q,cb){this.fluidbook.nav.openSearch(q,cb)},openingView:function(callback,view){var $this=this;this.fluidbook.resize.resizeView();this.fluidbook.tooltip.hideTooltip();var mview=$("#view .mview:last");$("#view").attr("aria-hidden","false");$("#main").attr("aria-hidden","true");if(!Modernizr.ftouch){$(mview).find(".content:not(.noscroll)").perfectScrollbar()}else{$(mview).find(".content:not(.noscroll)").css({overflowY:"auto"})}var from={y:"-200px",opacity:0};var to={y:"0px",opacity:1};if(mview.hasClass("fs")){from.y="0px"}else if(view!=="search"){this.showOverlay()}$(mview).addClass("notransition").css({opacity:from.opacity}).transform({translateY:from.y}).show().removeClass("notransition");setTimeout(function(){$(mview).css({opacity:to.opacity}).transform({translateY:to.y})},20);setTimeout(function(){if(callback!=undefined){callback()}$this.fluidbook.hideLoader();resize()},420)},viewWrap:function(content,menu,attributes,cls,replace,hash){if(attributes===undefined){attributes=""}if(cls===undefined){cls=""}if(hash!==undefined){hash=' data-hash="'+hash+'"'}else{hash=""}var res='";if(replace===true){$("#view").html(res)}else{$("#view").append(res)}},getCaption:function(caption,close,cls){if(cls===undefined){cls=""}if(close===undefined){close=true}if(caption===undefined){caption=""}var res='
      ';if(close){res+=this.closeButton()}if(caption!==""){res+='

      '+caption+"

      "}res+="
      ";return res},openMultimedia:function(multimedia,callback){var hash="#/multimedia/"+multimedia;var a=$('a[href="'+hash+'"]');var markup=decodeURIComponent($(a).attr("data-multimedia"));var view=this.getCaption("",$(a).attr("data-popup-close")===null||$(a).attr("data-popup-close")===undefined||$(a).attr("data-popup-close")==="1");var links="";var animateLinks=false;var uid=$(a).closest("[data-id]").data("id");if(this.fluidbook.settings.links["link_"+uid]!==undefined){links='";animateLinks=true}view+='
      ';view+=markup+links;view+="
      ";var read=multimedia.indexOf("r_")==0?' data-readmode="1"':"";read+=' dir="ltr"';this.viewWrap(view,"multimedia",read,"",false,hash);if(animateLinks){this.fluidbook.links.doAnimateLinks($("#view"),500)}if(callback!=undefined){callback()}},openFreeiframe:function(url,callback){var markup='
      ';markup+='';markup+="
      ";this._openiframe(markup,"",callback)},_openiframe:function(markup,maxWidth,callback,hash){var $this=this;var view=this.getCaption();view+='
      ';view+=markup;view+="
      ";this.viewWrap(view,"iframe",maxWidth+' dir="ltr"',"",false,hash);if(callback!=undefined){callback()}var t=$("#view .iframeContainer").data("type");$("#view").find(".iframeHolder,.content,.mview").attr("data-type",t);$("#view .iframeContainer iframe").on("load",function(){try{var doc=getIframeDocument(this);doc.body.style.maxWidth="100%";doc.body.style.overflow="auto"}catch(e){}$this.resize()})},openIframe:function(iframe,callback){var hash="#/iframe/"+iframe;var href=hash;var a=$('a[href="'+href+'"]');if($(a).length===0){a=this.fluidbook.links.getLinkByHref(href)}var markup=decodeURIComponent($(a).attr("data-iframe"));var maxWidth="";if($(a).data("max-width")){maxWidth=' data-max-width="'+$(a).data("max-width")+'"'}this._openiframe(markup,maxWidth,callback,hash)},openVideo:function(video,callback){var hash="#/video/"+video;var a=$('a[href="'+hash+'"]');var markup=decodeURIComponent($(a).attr("data-video"));var view=this.getCaption();view+='
      ';view+=markup;view+="
      ";this.viewWrap(view,"video","","",false,hash);this.fluidbook.stats.track(11);this.fluidbook.initVideos();var $this=this;var times=[250,500,750,1e3,1250];$.each(times,function(k,v){setTimeout(function(){$this.resize()},v)});if(callback!=undefined){callback()}this.fluidbook.hideLoader(5)},openSlideshow:function(slideshow,callback){var hash="#/slideshow/"+slideshow;var a=$('a[href="'+hash+'"]');var markup=decodeURIComponent($(a).attr("data-slideshow"));var view=this.getCaption();view+='
      ';view+=markup;view+="
      ";this.viewWrap(view,"slideshow","","",false,hash);this.fluidbook.slideshow.initPopupSlideshow($("#slideshow_"+slideshow));if(callback!=undefined){callback()}this.fluidbook.hideLoader(5)},closeButton:function(c){if(c==undefined){c=""}else{c=" "+c}return''+getSpriteIcon("interface-close")+""},openAudio:function(audio,callback){var hash="#/audio/"+audio;var a=$('a[href="'+hash+'"]');var markup=decodeURIComponent($(a).attr("data-audio"));var view=this.getCaption();view+='
      ';view+=markup;view+="
      ";this.viewWrap(view,"audio","","",false,hash);this.fluidbook.stats.track(11);var $this=this;var times=[250,500,750,1e3,1250];$.each(times,function(k,v){setTimeout(function(){$this.resize()},v)});if(callback!=undefined){callback()}},openWebVideo:function(service,video,callback){var hash="#/webvideo/"+service+"/"+video;var a=$('a[href="'+hash+'"]');var markup=decodeURIComponent($(a).attr("data-video"));var view=this.getCaption();view+='
      ';view+=markup;view+="
      ";this.viewWrap(view,"webvideo","","",false,hash);this.fluidbook.initVideos();this.fluidbook.stats.track(11);if(callback!=undefined){callback()}},openLocales:function(p1,p2,callback){var view=this.getCaption("Select language");view+='
      ';view+='
        ';var $this=this;Object.keys(this.fluidbook.l10n.multilang).forEach(function(langCode){var v=this.fluidbook.l10n.multilang[langCode];var url=v.url;if(url.substr(0,3)=="../"&&!$this.fluidbook.settings.alwaysHTML5&&!$this.fluidbook.settings.standalone&&!$this.fluidbook.support.offline){url="../"+url}var name=$this.fluidbook.l10n.getLanguageName(langCode);var c="";if($this.fluidbook.settings.phonegap){view+='
      • '+name+''+name+"
      • "}else{view+='
      • '+name+''+name+"
      • "}});view+="
      ";view+="
      ";this.viewWrap(view,"locales",[],"",false,"#/locales");if(callback!=undefined){callback()}},openCart:function(p1,p2,callback){this.fluidbook.cart.instance.openMenu(p1,p2,callback)},openShare:function(p1,p2,callback){this.fluidbook.share.openShare(p1,p2,callback)},openBookmarkHelp:function(p1,p2,callback){var message=__("you don't have any bookmark. to add a bookmark, please click on the icon in the page corner");var view="
      "+this.getCaption();view+="
      ";view+='
      ';view+="

      "+message+"

      ";view+='
      ';if(this.fluidbook.mobilefirst.enabled){var dim=this.fluidbook.loader.getPageDimensions(2,147);var h=' style="height:'+dim.height+'px;"';view+='
      "+this.fluidbook.loader.getThumbImage(2,true)+'
      '+getSpriteIcon("bookmark-corner")+"
      "}else{var p1=this.fluidbook.loader.getThumbImage(this.fluidbook.l10n.ltr?2:3,true);var p2=this.fluidbook.loader.getThumbImage(this.fluidbook.l10n.ltr?3:2,true);view+='"}view+="
      ";view+="";view+="
      ";view+="";this.viewWrap(view,"bookmarks-help");if(callback!=undefined){callback()}},openBookmark:function(p1,p2,callback){if(!this.fluidbook.bookmarks.hasBookmarkedPages()){return this.openBookmarkHelp(p1,p2,callback)}var title="";var downloadLabel="";try{title=p1.title}catch(e){}try{downloadLabel=p1.downloadLabel}catch(e){}if(title===undefined){title=""}if(downloadLabel===undefined){downloadLabel=""}this.viewWrap(this.fluidbook.bookmarks.getView(title,downloadLabel),"bookmarks");if(callback!==undefined){callback()}},openChapters:function(submenu,callback){if(this.fluidbook.settings.externalChaptersHTML!=""){this.openExternalChapters(callback);return}if(this.fluidbook.chapters==undefined){this.fluidbook.chapters=new FluidbookChapters(this.fluidbook,this.fluidbook.settings.chapters)}if(submenu==undefined){submenu="null"}var v=this.fluidbook.chapters.getView(submenu);var menuId="mview-chapters-"+v.sub;var c="";if(this.fluidbook.settings.chaptersCaptionDisplay===false){c+=" h0"}var view=this.getCaption(this.fluidbook.settings.chaptersCaptionDisplay?v.title:"",true,c);view+='
      ';view+=v.view;view+="
      ";var color="";if(v.color!="default"){color=" c_"+v.color}this.viewWrap(view,"chapters",'id="'+menuId+'"',color);this.fluidbook.chapters.removeItemsAfterMaxPage();if(callback!=undefined){callback()}this.fluidbook.stats.track(14)},openExternalChapters:function(callback){var view=this.getCaption();view+='
      ';view+='';view+="
      ";var read=' data-readmode="1"';this.viewWrap(view,"externalchapters",read+' dir="ltr"');if(callback!=undefined){callback()}this.fluidbook.stats.track(14)},openIndex:function(title,group,closeAll,callback){this.index.openIndex(title,group,closeAll,callback)},openArchives:function(title,callback){var archives=this.getCaption(title,true,title===undefined||title===""?"h0":"");archives+='
      ";this.viewWrap(archives,"archives","","archives");if(callback!=undefined){callback()}},openText:function(text,callback){var styleMatches=text.match(/\([^\<]*)<\/style>/);var style="";if(styleMatches!==undefined&&styleMatches!==null&&styleMatches.length>1){style=styleMatches[1].replace(/\s/g,"")}text=text.replace(/\([^\<]*)<\/style>/g,"");var t=this.getCaption();t+='
      '+text+"
      ";this.viewWrap(t,"text");if(callback!=undefined){callback()}},openPrint:function(callback){var printDialogue=this.getCaption(__("print"));printDialogue+=this.fluidbook.printing.getView();this.viewWrap(printDialogue,"print");$('.print-dialogue .print-option:first-of-type input[type="radio"]').prop("checked",true);$('[role="radiogroup"]').AriaRadio();if(callback!=undefined){callback()}},openDownload:function(callback){var downloadDialogue=this.getCaption(__("download"));downloadDialogue+=this.fluidbook.printing.getView("download");this.viewWrap(downloadDialogue,"download");$('.print-dialogue .print-option:first-of-type input[type="radio"]').prop("checked",true);if(callback!=undefined){callback()}},closeView:function(callback,all,animate){if(callback===undefined){callback=function(){}}if(all||$("#view .mview").length<=1){var currentHash=window.location.hash;window.location.hash="#/page/"+this.fluidbook.currentPage;if(window.location.hash==currentHash){this._closeView(callback,true,animate)}}else{this._closeView(callback,all,animate)}},_closeView:function(callback,all,animate){var $this=this;if(all==undefined){all=false}if(animate==undefined){animate=true}all=all||$("#view .mview").length<=1;if(!this.viewMode()){this.hideOverlay();callback();return}var mview=$("#view .mview:last");if(all){var s=$("#view .mview:not(:last)");this.fluidbook.video.killVideosIn(s);$(s).remove()}if(mview.length>0){$(mview).css("opacity",0);setTimeout(function(){$this.fluidbook.video.killVideosIn(mview);mview.remove();callback()},420)}if(all){this.hideOverlay();$("#view").attr("aria-hidden","true");$("#main").attr("aria-hidden","false").show();$("body").removeClass("view")}else{window.location.hash=$("#view .mview").eq(-2).data("hash")}resize()},quickCloseView:function(){$("#view .mview").remove()},resize:function(ww,hh){if(ww==undefined){ww=this.fluidbook.resize.ww}if(hh==undefined){hh=this.fluidbook.resize.hh}$("#viewOverlay").css({width:ww,height:hh});var $this=this;$(".mview").each(function(){$this.resizeView($(this),ww,hh)})},resizeView:function(m,ww,hh){var w=ww*.6;var h=hh*.8;var s=1;var forceHeight=false;var contentHeight=null;var fullscreen=m.data("fullscreen")==="1";var nw,nh;var maxWidth=1e5;if(m.data("max-width")){maxWidth=m.data("max-width")}var minWidth=0;switch(m.data("menu")){case"chapters":this.fluidbook.settings.chaptersColumns=Math.max(1,Math.min(6,this.fluidbook.settings.chaptersColumns));if(this.fluidbook.settings.chaptersCascade){this.fluidbook.settings.chaptersColumns=1}if(this.fluidbook.settings.chaptersColumns>1){w=this.fluidbook.settings.chaptersColMaxWidth*this.fluidbook.settings.chaptersColumns}else{w=Math.min(450,this.fluidbook.settings.chaptersColMaxWidth)}fullscreen=w>=ww*.9;if(fullscreen){w=ww}if(this.fluidbook.settings.chaptersCascade){h=hh*.8;forceHeight=true}if(this.fluidbook.settings.chaptersColumns>1){if(w=ww*.9;break;case"index":var indexWidth=Math.floor(ww/230)*230;$(".indexViewHolder").css("width",indexWidth);if(this.fluidbook.mobilefirst.enabled){var cw=10+130*this.fluidbook.settings.pages;fullscreen=cw>=ww*.9;if(!fullscreen){w=Math.max(400,cw+30)}}else{fullscreen=true}break;case"notes":fullscreen=true;break;case"share":w=200;break;case"locales":w=300;break;case"article":h=hh*.9;w=Math.min(ww,1e3);if(ww<800){w=ww;h=hh;fullscreen=true}break;case"iframe":case"freeiframe":w=ww*.8;if(parseInt(this.fluidbook.settings.iframePopupMaxWidth)>0){w=Math.min(w,parseInt(this.fluidbook.settings.iframePopupMaxWidth))}h=hh*.8;if(ww<800){w=ww;h=hh;fullscreen=true}forceHeight=true;w=Math.min(w,maxWidth);var iframe=$("#view .iframeHolder iframe");iframe.css("width",w);try{var doc=getIframeDocument(iframe);doc.body.style.maxWidth=w+"px"}catch(e){}if(!fullscreen){var ih=-1;try{ih=$(iframe).get(0).contentWindow.document.body.getBoundingClientRect().bottom}catch(e){ih=-1}if(ih>0){h=Math.min(ih,h)}}break;case"cart":w=this.fluidbook.cart.getMenuWidth();if(ww=ww*.75||ww<=520;if(!fullscreen){w=Math.max(400,cw)}}else{var max=Math.floor(ww*.8/120)*120+40;w=Math.min(max,Math.max(m.find(".doubleThumb").length,4)*120+40);if(ww<520){fullscreen=true}}break;case"bookmarks-help":w=420;if(ww<520){fullscreen=true}break;case"webvideo":w=Math.max(ww*.8,600);h=w/16*9;if(h>hh*.9){h=hh*.9;w=h/9*16}forceHeight=true;if(w>ww*.9){fullscreen=true;w=ww}break;case"video":var maxVideoScale=1;var video=m.find(".video-js");nw=parseInt($(video).data("width"));nh=parseInt($(video).data("height"));forceHeight=true;w=Math.max(ww*.8);h=Math.max(hh*.8);if(ww<600){w=ww;h=hh;fullscreen=true}s=Math.min(w/nw,h/nh,maxVideoScale);if(!fullscreen){w=nw*s;h=nh*s}else{}m.find(".videoContainer").css({width:w,height:h});contentHeight=h;break;case"multimedia":case"externalchapters":var iframe=m.find("iframe,img");var readmode=m.data("readmode")==1;nw=parseInt($(iframe).data("width"));nh=parseInt($(iframe).data("height"));w=Math.max(ww*.8);h=Math.max(hh*.8);if(ww<600){w=ww;h=hh;fullscreen=true}var x,y;if(readmode){w=nw;forceHeight=false;if(w>ww*.9){fullscreen=true;w=ww;h=hh;s=ww/nw}else{s=w/nw}x=0;y=0}else{forceHeight=true;var ms=parseFloat(m.find("iframe").data("scale"));if(isNaN(ms)){ms=2}s=Math.min(ms,w/nw,h/nh);if(iframe.is("img")||fullscreen){s=Math.min(1,s)}if(!fullscreen){w=nw*s;h=nh*s}x=(w-nw*s)/2;y=(h-nh*s)/2}if(s<1){var css={overflow:"hidden",width:nw*s,height:nh*s,top:y,left:x,position:"absolute"};m.find(".multimediaHolder").css(css)}else{m.find(".multimediaHolder").css({position:"",overflow:"",width:"",height:"",top:"",left:""})}m.find(".multimediaScale").css({width:nw,height:nh,overflow:"hidden"}).transform({scale:[s,s],origin:[0,0]}).css("text-align","left");break;case"slideshow":var res=this.fluidbook.slideshow.popupInstance.resize(ww,hh,m);w=res.w;h=res.h;fullscreen=res.fullscreen;break;case"print":case"download":w=820;if(!this.fluidbook.settings.printFullBrochure){w=560}if(m.find(".print-dialogue").hasClass("compact")){w=500}if(wwdiv").each(function(){$(this).css({top:(hh-$(this).outerHeight())/2,left:(ww-$(this).outerWidth())/2})});if($("#archivesview").length==1){var arw=this.fluidbook.settings.filesInfos.archives.width;var ratio=$("#archivesview img").width()/arw;$("#archivesview .links").transform({scale:[ratio]})}if(m.data("menu")==="index"||m.data("menu")==="bookmarks"){this.fluidbook.mobilefirst.resizeIndex()}},resizePopupAudios:function(){$(".mview audio").each(function(){var w=$(window).width()-200;var h=30;$(this).css({height:h,width:w,display:"block",margin:"40px auto"})})},hideOverlay:function(){$("#viewOverlay").css("opacity",0);setTimeout(function(){$("#viewOverlay").hide()},400)},showOverlay:function(){$("#viewOverlay").css("opacity",0).show();setTimeout(function(){$("#viewOverlay").css("opacity",1)},10)}};function FluidbookSound(fluidbook){this.fluidbook=fluidbook;if(this.fluidbook.settings.soundTheme===""||!Modernizr.audio||this.fluidbook.support.iOS||this.fluidbook.support.android){this.enabled=false;this.on=false;return}this.enabled=true;this.on=!!this.fluidbook.settings.soundOn;this.audios={};this.playing=null;this.simpleTheme=this.fluidbook.settings.simpleSoundTheme;this.preloadSounds();this.initEvents()}FluidbookSound.prototype={initEvents:function(){var $this=this;$(this.fluidbook).on("fluidbook.ready",function(){$this.init()});$(document).on("click touchend",".icon-sound-off,.icon-sound-on",function(){$this.toggle();return false});$(this.fluidbook).on("fluidbook.page.change.start",function(e,page,data){$this.playSoundForPage(data)});$(document).one("click","*",function(){try{$this.audios["empty"].play();$this.playing=$this.audios["empty"]}catch(e){}return true})},preloadSounds:function(){var sounds;if(this.simpleTheme){sounds=["empty","flip"]}else{sounds=["empty","cover-flip","page-flip-1","page-flip-2"]}var $this=this;$.each(sounds,function(k,v){var src;if(v==="empty"){src="sound/"+v+".mp3"}else{src="data/sounds/"+v+".mp3"}var s=new Audio(src);s.volume=1;s.preload="auto";$this.audios[v]=s})},init:function(){if(!this.on){this.disable()}else{this.enable()}},toggle:function(){if(this.on){this.disable()}else{this.enable()}},enable:function(){this.on=true;$(".icon-sound-off").hide();$(".icon-sound-on").show()},disable:function(){this.on=false;$(".icon-sound-on").hide();$(".icon-sound-off").show()},playSoundForPage:function(data){if(!this.enabled||!this.on||data.transition<3){return}var page=data.page;if(page%2===1){page--}var last=this.fluidbook.contentlock.getMaxPage();if(last%2===1){last++}var sound="";if(this.simpleTheme){sound="flip"}else{if(data.turningPages.indexOf(1)>=0||data.turningPages.indexOf(last)>=0){sound="cover-flip"}else{sound="page-flip-"+Math.round(Math.random()+1)}}var transitionDuration=this.fluidbook.pagetransitions.getTransitionDuration(page);if(transitionDuration===0){return}var seek=0;if(transitionDuration<.6){seek=.6-transitionDuration}try{this.audios[sound].volume=1;if(this.audios[sound].fastSeek!==undefined){this.audios[sound].fastSeek(seek)}else{this.audios[sound].currentTime=seek}this.audios[sound].play()}catch(e){console.log(e)}}};function FluidbookContentLock(fluidbook){this.fluidbook=fluidbook;this.maxPage;this.linksActions={};this.locks=this.fluidbook.settings.content_lock}FluidbookContentLock.prototype={init:function(){var $this=this;this.fluidbook.keyboard.keyShortcut("⌘+alt+u, ctrl+alt+u",function(){$this.setMaxPage()});this.maxPage=Math.min(this.getNextLockPage(),this.fluidbook.settings.pages);if(!this.fluidbook.scorm.isActive()&&this.fluidbook.cache.isset("lock_maxpage")){var mp=parseInt(this.fluidbook.cache.get("lock_maxpage"));this.maxPage=Math.max(this.maxPage,mp)}if(this.maxPage<=0){this.maxPage=this.fluidbook.settings.pages}},getNextLockPage:function(){var res=0;$.each(this.locks,function(k,v){if(v.unlocked===1){return true}res=k;return false});return parseInt(res)},setMaxPage:function(p,allowbackwards){var currentMaxPage=this.maxPage;if(allowbackwards===undefined){allowbackwards=false}if(p===undefined||p<=0){p=this.fluidbook.settings.pages}if(!allowbackwards&&pthis.maxPage){this.fluidbook.setCurrentPage(this.maxPage)}var $this=this;$.each(this.locks,function(k,v){if($this.maxPage>k){$this.locks[k].unlocked=1}});this.fluidbook.menu.index.reset();this.fluidbook.hideUnnecessaryButtons();this.fluidbook.mobilefirst.refreshFooterNavigation();resize()},addAction:function(linkId,action){if(this.linksActions[linkId]===undefined){this.linksActions[linkId]=[]}if(this.linksActions[linkId].indexOf(action)===-1){this.linksActions[linkId].push(action)}this.testConditions()},testConditions:function(){var $this=this;var change=false;$.each(this.locks,function(k,v){if(v.unlocked===1){return}if(v.conditions.length===0){return}var conditionsToObserve=v.conditions.length;$.each(v.conditions,function(i,c){if($this.testCondition(c)){conditionsToObserve--}});if(conditionsToObserve===0){$this.locks[k].unlocked=1;change=true}});if(change||this.getNextLockPage()!==this.getMaxPage()){this.setMaxPage(this.getNextLockPage(),false)}},testCondition:function(condition){var linkId=condition[0];var action=condition[1];if(this.linksActions[linkId]===undefined){return false}return this.linksActions[linkId].indexOf(action)>=0},unlockCurrentPage:function(){var $this=this;var change=false;var unlockEvenPages=!this.fluidbook.mobilefirst.enabled;var currentPage=$this.fluidbook.currentPage;$.each(this.locks,function(k,v){if(v.unlocked===1){return}if(unlockEvenPages&¤tPage%2===1){currentPage--}var lockPage=parseInt(k);if(unlockEvenPages&&lockPage%2===1){lockPage--}if(currentPage0){var id=link.data("id");$this.completeLink(id)}return true});$(this.fluidbook).on("fluidbook.links.ready",function(){$this.hideScormLinks()});if(this.fluidbook.settings.scorm_complete_on_last_page){$(this.fluidbook).on("fluidbook.page.change.end",function(){if($this.fluidbook.currentPage===$this.fluidbook.settings.pages){scormMarkAsComplete()}})}},hideScormLinks:function(){if(this.isActive()){return}$('.link[data-scorm="1"]').hide()},completeLink:function(id){var index=this.linksToComplete.indexOf(id);if(index>-1){this.linksToComplete.splice(index,1)}},linksCompleted:function(){return this.linksToComplete.length===0},isActive:function(){if(!this.fluidbook.settings.scorm_enable){return false}if(undefined!==window.FORCE_SCORM&&window.FORCE_SCORM){return true}return SCORM_OK},openLinkIfCompleteOrDisplayImage:function(openLink,openImage){var $this=this;var id=this.linksCompleted()?openLink:openImage;if(!Array.isArray(id)){id=[id]}$.each(id,function(k,v){$this.fluidbook.links.triggerLinkById(v)})}};function Fluidbook3DFlip(fluidbook){var $this=this;this.fluidbook=fluidbook;this.camera=null;this.scene=null;this.renderer=null;this.controls=null;this.action=null;this.clock=new THREE.Clock;this.mesh=null;this.plane=null;this.sizePlane=null;this.loader=null;this.animation=null;this._progressAnimation=0;this._pageRotation=0;this._callbackAfterNextRender=null;this._gapOffset=0;this.jcontainerLeft=0;this.ready=false;this.performancesTestRunning=true;this.performancesFrames=0;this.performancesTestStart=null;this.performancesTestEnd=null;this.performancesMode="";this.benchmark={};this.textures=[];this.jcontainer=$("#flip3dcontainer");this.pw=this.fluidbook.resize.ww;this.ph=this.fluidbook.resize.hh;this.turnRunning=false;this.pi2=Math.PI*2;this.deg2rad=this.pi2/360;this.errorInitWebGL=false;try{this.testBenchmark(function(){$this.init()})}catch(e){this.errorInitWebGL=true;this.init()}}Fluidbook3DFlip.prototype={webglEnabled:function(){return!this.errorInitWebGL&&this.fluidbook.support.IE===0&&Modernizr.webgl},testBenchmark:function(cb){if(!this.webglEnabled()){cb()}var $this=this;try{var canvas=$this.jcontainer.find("canvas").get(0);var gl=canvas.getContext("webgl")||canvas.getContext("experimental-webgl");var debugInfo=gl.getExtension("WEBGL_debug_renderer_info");var renderer=gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL);if(this.fluidbook.settings.gupsc[renderer]!==undefined&&this.fluidbook.settings.gupsc[renderer]!==null){this.benchmark=this.fluidbook.settings.gupsc[renderer];cb()}else{$.ajax({url:"https://workshop.fluidbook.com/services/gup",dataType:"json",data:{gup:btoa(renderer)},success:function(data){$this.benchmark=parseInt(data);cb()},error:function(){cb()}})}}catch(e){console.log(e);cb()}},init:function(){var $this=this;$(this.fluidbook).on("fluidbook.resize",function(){$this.resize()});this.geometryScale=3;this.container=$(this.jcontainer).get(0);var mode;if($_GET["performance"]==null){mode="performancesTest"}else{var map={1:"highPerf",2:"lowPerf",3:"veryLowPerf"};mode=map[$_GET["performance"]]}this.init3D(mode);this.animate(true);$(this.fluidbook).on("fluidbook.ready",function(){$this.guessCameraZoom(true)});this.fluidbook.keyboard.keyShortcut("⌘+alt+w, ctrl+alt+w",function(){$this.debugGPU()});this.resize()},_guessTestMode:function(){var testMode="";if(!this.webglEnabled()){return"veryLowPerf"}if(isNaN(this.benchmark)||this.benchmark<=0){return"lowPerf"}var b=60*(this.benchmark/3580);if(b>50){return"highPerf"}else if(b>30){return"lowPerf"}return"veryLowPerf"},guessTestMode:function(){var mode=this._guessTestMode();if(mode==="highPerf"){if(this.fluidbook.support.edge||this.fluidbook.support.android||this.fluidbook.support.macOs||this.fluidbook.support.iOS){return"lowPerf"}}return mode},debugGPU:function(){console.log("Performances mode",this.performancesMode);console.log("Render engine",this.renderEngine);try{var canvas=this.jcontainer.find("canvas").get(0);var gl=canvas.getContext("webgl")||canvas.getContext("experimental-webgl");debugInfo=gl.getExtension("WEBGL_debug_renderer_info");vendor=gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL);renderer=gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL);console.log("GPU vendor",vendor);console.log("GPU renderer",renderer);console.log(gl)}catch(e){}console.log("Quality ratio: "+this.qualityRatio);console.log("Triangles: "+this.triangles);console.log("Animation time: "+this.animationTime);console.log("Antialias: "+this.antialias);console.log("Lights enabled: "+this.enableLight);console.log("Shadows enabled: "+this.enableShadow)},init3D:function(performanceMode){try{this.dispose3D()}catch(e){}this.performancesMode=performanceMode;if(this.performancesMode==="disable"){return}if(this.performancesMode==="performancesTest"){var testMode=this.guessTestMode();if(testMode==="highPerf"){this.lowPerf=this.veryLowPerf=false}else if(testMode==="lowPerf"){this.lowPerf=true;this.veryLowPerf=false}else if(testMode==="veryLowPerf"){this.veryLowPerf=this.lowPerf=true}}else{if(this.performancesMode===undefined||this.performancesMode==="auto"){this.veryLowPerf=this.fluidbook.support.IE>0;this.lowPerf=!Modernizr.webgl||this.veryLowPerf||this.fluidbook.support.edge||this.fluidbook.support.android||this.fluidbook.support.macOs||this.fluidbook.support.iOS}else if(this.performancesMode==="lowPerf"){this.lowPerf=true;this.veryLowPerf=false}else if(this.performancesMode==="highPerf"){this.lowPerf=this.veryLowPerf=false}else if(this.performancesMode==="veryLowPerf"){this.veryLowPerf=this.lowPerf=true}}this.renderEngine="webgl";if(this.veryLowPerf){this.renderEngine="canvas"}if(this.fluidbook.support.android||this.fluidbook.support.iOS){this.renderEngine="webgl"}if(!this.webglEnabled()){this.renderEngine="canvas"}this.enableLight=!this.lowPerf&&this.renderEngine==="webgl";this.enableShadow=!this.lowPerf&&this.enableLight&&this.renderEngine==="webgl";this.antialias=false;this.animationTime=parseFloat(this.fluidbook.settings.mobileTransitionDuration);if(this.veryLowPerf){this.qualityRatio=.8;this.triangles=3;this.animationTime/=1.5}else if(this.lowPerf||this.veryLowPerf){this.qualityRatio=1.2;this.triangles=3;this.animationTime/=1.25}else{this.qualityRatio=1.5;this.triangles=50}this.animationTime=Math.max(.4,this.animationTime);this.pixelRatio=window.devicePixelRatio*this.qualityRatio;this.frames=0;return this.initThree()},initThree:function(){if(this.scene!==null){return}this.scene=new THREE.Scene;if(this.enableLight){this.scene.add(new THREE.AmbientLight(16777215,1.5))}var zoom=.8;var far=24e3*zoom;var near=1e3;this.camera=new THREE.PerspectiveCamera(20,1,near,far);this.camera.zoom=zoom;this.camera.position.z=8873*2*zoom;this.camera.updateProjectionMatrix();if(this.enableLight){var lightIntensity=.3;var light=new THREE.SpotLight(16777215,lightIntensity,0,1);light.position.set(2e3,0,1.72503*1e4);if(this.enableShadow){light.castShadow=true;light.shadow.mapSize.width=512;light.shadow.mapSize.height=512;light.shadow.camera.near=near;light.shadow.camera.far=far;light.shadow.bias=-.0075;light.shadow.radius=3}this.scene.add(light)}var geometry;if(this.enableShadow){geometry=new THREE.PlaneGeometry(this.fluidbook.settings.width*this.geometryScale*2,this.fluidbook.settings.height*this.geometryScale,1,1,true);var shadowTexture=new THREE.ShadowMaterial({color:0,side:THREE.FrontSide,overdraw:.5,opacity:.1});this.shadowPlane=new THREE.Mesh(geometry,[shadowTexture]);this.shadowPlane.receiveShadow=true;this.shadowPlane.translateZ(-1);this.scene.add(this.shadowPlane)}this.geometryWidth=this.fluidbook.settings.width*this.geometryScale;this.geometryHeight=this.fluidbook.settings.height*this.geometryScale;geometry=new THREE.PlaneGeometry(this.geometryWidth,this.geometryHeight,Math.round(this.triangles*5),Math.round(this.triangles),true);var geometry2=geometry.clone();var geometry3=new THREE.PlaneGeometry(this.geometryWidth,this.geometryHeight,1,1,true);geometry.merge(geometry2,(new THREE.Matrix4).makeRotationY(Math.PI),1);var roughness=.8;var meshSettings={side:THREE.FrontSide};if(this.renderEngine==="canvas"){meshSettings.overdraw=true}if(this.enableLight){meshSettings.roughness=roughness;this.textures=[new THREE.MeshStandardMaterial(meshSettings),new THREE.MeshStandardMaterial(meshSettings)]}else{this.textures=[new THREE.MeshBasicMaterial(meshSettings),new THREE.MeshBasicMaterial(meshSettings)]}geometry.translate(this.fluidbook.settings.width*this.geometryScale*.5,0,0);this.plane=new THREE.Mesh(geometry,this.textures);this.plane.castShadow=this.enableShadow;this.plane.receiveShadow=false;this.sizePlane=new THREE.Mesh(geometry3);this.sizePlane.castShadow=this.sizePlane.receiveShadow=false;this.sizePlane.visible=false;this.scene.add(this.sizePlane);this.scene.add(this.plane);this.modifier=new ModifierStack(this.plane);this.bendAngle=250;this.bendOffset=.65;this.bendForceMultiplicator=1;var ratio=this.fluidbook.settings.width/this.fluidbook.settings.height;if(ratio>1.2){this.bendAngle=15;this.bendOffset=.4;this.bendForceMultiplicator=1.3}else if(ratio>=1){this.bendAngle=20;this.bendOffset=.4;this.bendForceMultiplicator=1.2}this.bend=new Bend(0,this.bendOffset,this.bendAngle*.0174533);this.bend.constraint=-1;this.modifier.reset();this.modifier.addModifier(this.bend);var rendererOptions={antialias:this.antialias,alpha:true};if(this.renderEngine==="webgl"){try{this.renderer=new THREE.WebGLRenderer(rendererOptions)}catch(e){this.errorInitWebGL=true;return this.init3D("performancesTest")}}else if(this.renderEngine==="canvas"){this.renderer=new THREE.CanvasRenderer(rendererOptions)}if(this.enableShadow){this.renderer.shadowMap.enabled=true;this.renderer.shadowMap.type=THREE.PCFSoftShadowMap}this.renderer.setClearColor(0,0);this.renderer.setPixelRatio(this.pixelRatio);this.renderer.setSize(this.pw,this.ph);this.jcontainer.empty();this.container.appendChild(this.renderer.domElement);this.initAnimations()},dispose3D:function(){if(this.scene===undefined){return}if(this.renderer!==null){this.renderer.dispose()}this.disposeHierarchy(this.scene,this.disposeNode);this.scene=null;this.camera=null;this.modifier=null;this.textures=null;this.renderer=null},setBendAngle:function(a){this.bend.angle=a*.0174533},clean:function(){this.disposeTextures()},initAnimations:function(){var force=.65*this.bendForceMultiplicator*1.15;var easeOut=Power0.easeOut;var easeIn=Power0.easeIn;var noease=Linear.easeNone;this.tlright=new TimelineMax;this.tlright.add(TweenMax.fromTo(this.bend,.5,{force:0},{force:force*-1,ease:easeIn}));this.tlright.add(TweenMax.fromTo(this.bend,.5,{force:force*-1},{force:0,ease:easeOut}));this.tlright.add(TweenMax.fromTo(this,1,{_pageRotation:-0},{_pageRotation:-180,ease:easeIn}),0);this.tlright.add(TweenMax.fromTo(this,1,{_gapOffset:-.5},{_gapOffset:1.2,ease:noease}),0);this.tlright.pause();this.tlright.progress(0);this.tlleft=new TimelineMax;this.tlleft.add(TweenMax.fromTo(this.bend,.5,{force:0},{force:force,ease:easeIn}));this.tlleft.add(TweenMax.fromTo(this.bend,.5,{force:force},{force:0,ease:easeOut}));this.tlleft.add(TweenMax.fromTo(this,1,{_pageRotation:-180},{_pageRotation:-0,ease:easeIn}),0);this.tlleft.add(TweenMax.fromTo(this,1,{_gapOffset:1.2},{_gapOffset:-.5,ease:easeOut}),0);this.tlleft.pause();this.tlleft.progress(0)},prepareTurn:function(turning,callback){var $this=this;this.prepareTexture(turning.flip[1],function(t1){$this.prepareTexture(turning.flip[0],function(t2){$this.texturesLoaded(t1,t2,turning.dir,callback)},turning.dir>0)},turning.dir<0)},getPerformancesTestResult:function(){var time=(this.performancesEndTime.getTime()-this.performancesStartTime.getTime())/1e3;return this.performancesFrames/time},performancesTest:function(callback){var _cb;var $this=this;if(this.performancesMode!=="performancesTest"){_cb=callback}else{_cb=function(){$this.performancesEndTime=new Date;$this.adjustPerformancesSettings(callback)}}this.prepareTurn({flip:[1,2]},function(){$this.playTurn(1,function(){_cb()},1)})},adjustPerformancesSettings:function(callback){var $this=this;var newMode;var res=this.getPerformancesTestResult();console.log("perf test",res);if(this.fluidbook.support.iOS){if(res<45){newMode="disable"}}else{if(!this.lowPerf){if(res<5){newMode="disable"}else if(res<20){newMode="veryLowPerf"}else if(res<35){newMode="lowPerf"}else{newMode="highPerf"}}else if(this.veryLowPerf){if(res<30){newMode="disable"}else{newMode="veryLowPerf"}}else{if(res<10){newMode="disable"}else if(res<30){if(this.fluidbook.support.edge){newMode="disable"}else{newMode="veryLowPerf"}}else{newMode="lowPerf"}}}if(newMode!=="disable"){this.init3D(newMode);callback();this.prepareTurn({flip:[1,2]},function(){$this.playTurn(.1,function(){$this.prepareTurn({flip:[2,1]},function(){$this.playTurn(-1,function(){callback()},.1,0)})},1,0)})}else{this.fluidbook.support.transitions3dacc=false;callback()}},texturesLoaded:function(t1,t2,dir,callback){if(this.textures===undefined||this.textures===null||this.textures.length===0){console.warn("Texture object not ready. Waiting");var $this=this;setTimeout(function(){$this.texturesLoaded(t1,t2,dir,callback)},500);return}if(t1!=null){this.textures[0].map=t1}if(t2!=null){this.textures[1].map=t2}this.textures[0].needsUpdate=true;this.textures[1].needsUpdate=true;this.ready=true;this.resize();callback()},disposeTextures:function(){if(this.textures[0].map!==null){this.textures[0].map.dispose()}if(this.textures[1].map!==null){this.textures[1].map.dispose()}},prepareTexture:function(page,callback,enter){if(null===THREE){return}if(enter===undefined){enter=true}this.fluidbook.loader.getTexture(page,function(image){var texture=new THREE.Texture(image);texture.needsUpdate=true;callback(texture)},enter)},initTurn:function(dir){this.turnRunning=true;this.tlname=dir===1?"right":"left";this.tlleft.kill();this.tlright.kill();this.progressAnimation(0);this.animate(false);this.resize()},playTurn:function(dir,callback,timeScale,delay){if(!this.turnRunning){this.initTurn(dir)}if(timeScale===undefined){timeScale=1}var $this=this;if(delay===undefined){delay=this.fluidbook.support.iOS?.15:.06}TweenMax.fromTo(this,this.animationTime*timeScale,{progressAnimation:0},{progressAnimation:1,ease:Power0.easeIn,delay:delay,onStart:function(){if($this.performancesTestRunning){$this.performancesStartTime=new Date}},onComplete:function(){this.tlname="";callback();setTimeout(function(){$this.turnRunning=false},5)}})},animate:function(next){var $this=this;if(next){requestAnimationFrame(function(){$this.animate(true)})}var render=true;var visible;if(this._progressAnimation<1){if(this.turnRunning){if(this.performancesTestRunning){this.performancesFrames++}render=true;visible=true}else{render=false;visible=false}}else{render=false;visible=false}if(render){var d=(720+this._pageRotation)%360;this.plane.rotation.y=d*this.deg2rad;this.renderer.render(this.scene,this.camera);this.modifier&&this.modifier.apply()}if(visible){var offset=0;if(this.jcontainerWidth<=1300||this.jcontainerHeight<=1300){var m=1;offset=this._gapOffset*m}this.jcontainer.css({left:this.jcontainerLeft+offset})}this.setJContainerVisibility(visible);if(this._callbackAfterNextRender!==null){try{var c=this._callbackAfterNextRender;this._callbackAfterNextRender=null;c.apply()}catch(e){}}},setJContainerVisibility:function(visibility){var isVisible=this.jcontainer.css("display")==="block";if(isVisible===visibility){return}if(visibility){this.jcontainer.show()}else{this.jcontainer.hide()}},resize:function(){if(!this.ready){return}this.pw=this.fluidbook.resize.ww;this.ph=this.fluidbook.resize.hh;if(null!==THREE){this.camera.aspect=this.pw/this.ph;this.camera.updateProjectionMatrix()}var fw=$("#fluidbook").get(0).getBoundingClientRect();this.jcontainerLeft=(this.pw-fw.width)/2;this.jcontainerWidth=fw.width;this.jcontainerHeight=fw.height;this.jcontainer.css({left:this.jcontainerLeft,width:fw.width,height:this.ph});this.jcontainer.find("canvas").css({left:-this.jcontainerLeft,width:this.pw,height:this.ph});if(null!==THREE){this.renderer.setSize(this.pw,this.ph);this.guessCameraZoom()}},guessCameraZoom:function(){if(null===THREE){return}if(this._progressAnimation!==0&&this._progressAnimation!==1){return}this.camera.updateProjectionMatrix();var bookBox=$("#currentDoublePage").get(0).getBoundingClientRect();this.sizePlane.scale.x=this.sizePlane.scale.y=1;for(var i=0;i<25;i++){var bbox=(new THREE.Box3).setFromObject(this.sizePlane);var min=this.to2D(bbox.min);var max=this.to2D(bbox.max);var rect={x:Math.min(min.x,max.x),y:Math.min(min.y,max.y),width:Math.abs(min.x-max.x),height:Math.abs(min.y-max.y)};if(rect.width===0||rect.width>1e5){continue}var s=bookBox.width/2/rect.width;this.sizePlane.scale.x*=s;this.sizePlane.scale.y*=s;this.sizePlane.rotateX(0);if(this.enableShadow){this.shadowPlane.scale.x=this.sizePlane.scale.x;this.shadowPlane.scale.y=this.sizePlane.scale.y}bbox=(new THREE.Box3).setFromObject(this.sizePlane);min=this.to2D(bbox.min);max=this.to2D(bbox.max);rect={x:Math.min(min.x,max.x),y:Math.min(min.y,max.y),width:Math.abs(min.x-max.x),height:Math.abs(min.y-max.y)};this.sizePlane.translateY(rect.y-bookBox.top)}this.plane.position.y=this.sizePlane.position.y;this.plane.scale.x=this.sizePlane.scale.x;this.plane.scale.y=this.sizePlane.scale.y;if(this.enableShadow){this.shadowPlane.scale.x=this.sizePlane.scale.x;this.shadowPlane.scale.y=this.sizePlane.scale.y;this.shadowPlane.position.y=this.sizePlane.position.y;this.shadowPlane.rotateX(0)}},to2D:function(point){var widthHalf=.5*this.pw;var heightHalf=.5*this.ph;var vector=new THREE.Vector3(point.x,point.y,point.z);vector.project(this.camera);vector.x=vector.x*widthHalf+widthHalf;vector.y=-(vector.y*heightHalf)+heightHalf;return{x:vector.x,y:vector.y}},progressAnimation:function(val){if(arguments.length===0){return this._progressAnimation}if(this.tlname==="left"){this.tlleft.progress(val);this.tlleft.pause()}else if(this.tlname==="right"){this.tlright.progress(val);this.tlright.pause()}this._progressAnimation=val},disposeNode:function(node){if(node instanceof THREE.Mesh){if(node.geometry){node.geometry.dispose()}if(node.material){if(node.material instanceof THREE.MeshFaceMaterial){$.each(node.material.materials,function(idx,mtrl){if(mtrl.map)mtrl.map.dispose();if(mtrl.lightMap)mtrl.lightMap.dispose();if(mtrl.bumpMap)mtrl.bumpMap.dispose();if(mtrl.normalMap)mtrl.normalMap.dispose();if(mtrl.specularMap)mtrl.specularMap.dispose();if(mtrl.envMap)mtrl.envMap.dispose();mtrl.dispose()})}else{try{if(node.material.map)node.material.map.dispose();if(node.material.lightMap)node.material.lightMap.dispose();if(node.material.bumpMap)node.material.bumpMap.dispose();if(node.material.normalMap)node.material.normalMap.dispose();if(node.material.specularMap)node.material.specularMap.dispose();if(node.material.envMap)node.material.envMap.dispose();node.material.dispose()}catch(e){}}}}},disposeHierarchy:function(node,callback){if(node===null){return}for(var i=node.children.length-1;i>=0;i--){var child=node.children[i];this.disposeHierarchy(child,callback);callback(child)}}};function FluidbookChapters(fluidbook,chapters){this.fluidbook=fluidbook;this.chapters=chapters;this.style="classic";this.cascade=this.fluidbook.settings.chaptersCascade;this.cascadeEventsInited=false;if(this.fluidbook.settings.mobileChaptersStyle){this.style=this.fluidbook.settings.mobileChaptersStyle}this.html=[];this.titles={null:this.fluidbook.l10n.__("chapters")};this.colors={null:"default"};this.lastColor}FluidbookChapters.prototype={getView:function(sub){if(sub==undefined||sub==null||sub==""){sub="null"}if(this.html[sub]==null){this.makeView(sub)}return{sub:sub,view:this.html[sub],title:this.titles[sub],color:this.colors[sub]}},makeView:function(sub){this.makeClassicMenu(sub);if(this.cascade){this.makeCascadeMenu(sub)}},makeCascadeMenu:function(sub){var h=$(this.html[sub]);for(var i=3;i>=0;i--){$(h).find("li[data-level="+i+"]").each(function(){var siblings=$(this).nextUntil("li[data-level!="+(i+1)+"]","li[data-level="+(i+1)+"]");if(siblings.length>0){$(this).append("
        ");var nav=$(this).find("ul");$(nav).append(siblings);$(nav).hide()}})}this.html[sub]=$(h).get(0).outerHTML;if(!this.cascadeEventsInited){this.initCascadeEvents()}},initCascadeEvents:function(){this.cascadeEventsInited=true;if(this.style=="ina"){$(document).on("click","ul.chapters a .right",function(e){var p=$(this).data("page");if(p!=""){$this.fluidbook.setCurrentPage(p);e.stopImmediatePropagation();e.stopPropagation();e.preventDefault();return false}})}$(document).on("click","ul.chapters a",function(){var li=$(this).parent();var subnav=$(li).children("ul");if($(subnav).length){$(subnav).slideToggle();return false}else{return true}})},makeClassicMenu:function(sub){var $this=this;var base;var baseLevel=0;var nbItems=0;var columns=Math.max(1,parseInt(this.fluidbook.settings.chaptersColumns));$.each(this.chapters,function(k,v){if(v.label==="--"||v.label==="++"){}else{nbItems++}});var perCol=Math.round(nbItems/columns);var forgetCut=false;var forceCut=false;var ignore=false;var columnId=0;var i=0;var columnsContainers=[];for(var j=0;jlevel){base.push(v)}else{return false}}})}var $this=this;this.html[sub]='
          ';$.each(base,function(k,v){if(!forgetCut){forgetCut=v.label.indexOf("++")===0;if(forgetCut){return}}forceCut=v.label.indexOf("--")===0||v.label.indexOf("!!!")===0;ignore=forceCut||v.label.indexOf("++")===0;if(!forgetCut&&(columnId+11&&v.level===0&&i>perCol*.8||forceCut&&i>0))){i=0;columnId++}if(forgetCut){forgetCut=false}columnsContainers[columnId].push($this.addItem(v,baseLevel));if(!ignore){i++}});for(j=0;j'+columnsContainers[j].join("")+""}this.html[sub]+="
        "},addItem:function(chapter,baseLevel){if(baseLevel==undefined){baseLevel=0}if(chapter.label=="----"){return'
      • '}var color=chapter.color;if(color==""){if(this.lastColor!=undefined){color=this.lastColor}}if(color!=""){this.lastColor=color}if(chapter.label.substr(0,3)=="!!!"){chapter.label=chapter.label.substring(3);chapter.level="-1"}chapter.label=chapter.label.replace(/\*([^\*]+)\*/g,"$1");var res="";var href;var level=chapter.level-baseLevel;var p="";var pdisplay="";if(chapter.page!=""){if(this.fluidbook.settings.chaptersPagesNumber==="virtual"){p=this.fluidbook.virtualToPhysical(chapter.page);pdisplay=chapter.page}else{p=chapter.page;pdisplay=this.fluidbook.physicalToVirtual(p)}if(p===false){p="";href=this.cascade?'href="#"':"nohref"}else{href='href="#/page/'+p+'"'}}else{href=this.cascade?'href="#"':"nohref"}if(this.style=="classic"){res+='
      • '}else if(this.style=="ina"){res+='
      • '}res+=""+chapter.label+"";if(href!="nohref"){res+='
        ';if(this.style=="classic"){if(color==""){if(chapter.page!=""){res+=''+pdisplay+""}}else{res+='
        '+getSpriteIcon("interface-chevron")+"
        "}}else{if(pdisplay!=""){res+=''+pdisplay+""}res+='
        '}res+="
        "}res+="
      • ";return res},removeItemsAfterMaxPage:function(){var max=this.fluidbook.contentlock.getMaxPage();$('.mview[data-menu="chapters"] ul.chapters li[data-page]').each(function(){var p=parseInt($(this).data("page"));if(isNaN(p)){return}if(p>max){$(this).remove()}});for(var i=0;i<=10;i++){$('.mview[data-menu="chapters"] ul.chapters li[data-page=""]').each(function(){if($(this).find("ul li").length==0){$(this).remove()}})}}};function FluidbookIndex(fluidbook){this.fluidbook=fluidbook;this.init()}FluidbookIndex.prototype={init:function(){this.normalHTML="";this.padHTML="";this.singleMode=this.fluidbook.singleMode},getView:function(group){if(this.fluidbook.pad.enabled){return this.getPadView(group)}else{return this.getNormalView()}},getPadView:function(group){return this.fluidbook.bookmarks.getIndex(true,group)},preloadThumbs:function(callback){this.fluidbook.loader.preloadThumbs(callback)},openIndex:function(title,group,closeAll,callback){var $this=this;this.fluidbook.displayLoader();this.preloadThumbs(function(){$this._openIndex(title,group,closeAll,callback)})},_openIndex:function(title,group,closeAll,callback){var c=!closeAll?" one":"";var index=this.fluidbook.menu.getCaption(title);index+=this.getView(group);this.fluidbook.menu.viewWrap(index,"index");var cp=this.fluidbook.currentPage;if(!this.fluidbook.singleMode){if(cp%2===1){cp--}}$("#view").find('.doubleThumb[page="'+cp+'"]').addClass("here");this.fluidbook.bookmarks.updateBookmarks();if(callback!=undefined){callback()}},reset:function(){this.normalHTML="";this.padHTML=""},getNormalView:function(forceNormal){if(this.normalHTML===""){this.normalHTML=this._getNormalView()}return this.normalHTML},_getSearchResultsView:function(){return this._getNormalView(true,141,false,false)},_getNormalView:function(forceNormal,height,bookmarks,pageLinks){var contentClass="content";if(pageLinks===undefined){pageLinks=true}if(bookmarks===undefined){bookmarks=true}if(forceNormal===undefined){forceNormal=false}if(height===undefined){height="auto"}var mobileFirst=this.fluidbook.mobilefirst.enabled&&!forceNormal;if(mobileFirst){contentClass+=" mobilefirst noscroll"}var res="";res+='
        ';if(this.fluidbook.settings.indexMessage!==""){res+='
        '+this.fluidbook.settings.indexMessage+"
        "}res+='
        ";return res},getPage:function(page,singleMode,height,links,bookmarks,mobileFirst,additionalContent){if(additionalContent===undefined){additionalContent=""}var pages=[];var j=page+1;var ix1="";var ix2="";var ix;var dim=this.getThumbDimensions(page,height);var s1,s2;if(singleMode){var c=" singlemode simple left ";s2=s1="left"}else{c="";if(this.fluidbook.l10n.dir==="ltr"){s1="left";s2="right"}else{s1="right";s2="left"}}if(page>0){ix1+=this._thumb(page,s1,height,undefined,links);if(this.fluidbook.bookmarks.enabled&&bookmarks){ix1+=this.fluidbook.bookmarks.getBookmarkForPage(page,mobileFirst,this.fluidbook.settings.bookmarkPermanentIcon)}pages.push(page);ix1+=""}else{c=" simple "+s2}if(this.fluidbook.l10n.dir==="rtl"){s1="left";s2="right"}else{s1="right";s2="left"}if(!singleMode){if(j<=this.fluidbook.contentlock.getMaxPage()){ix2+=this._thumb(j,s1,height,undefined,links);if(this.fluidbook.bookmarks.enabled&&bookmarks){ix2+=this.fluidbook.bookmarks.getBookmarkForPage(j,true)}ix2+="";pages.push(j)}else{c=" simple "+s2}if(j===1){pages.unshift(0)}ix=ix1+ix2}else{ix=ix1}var res='
        "+ix;res+=additionalContent;res+="
        ";return res},_thumb:function(page,side,height,label,link){if(link===undefined){link=true}var dim=this.getThumbDimensions(page,height);var virtual=this.fluidbook.physicalToVirtual(page);if(label===undefined){label=virtual}var res='
        ";if(link){res+=''}res+=this.fluidbook.loader.getThumbImage(page,true,dim.thumb);if(link){res+=""}res+='";return res},getThumbDimensions:function(page,height){var h="";var pnt="";var dth="";if(height===undefined){height="auto"}if(this.fluidbook.mobilefirst.enabled){var ph;if(height==="auto"){ph=this.fluidbook.loader.getPageDimensions(page,100).height}else{ph=height}h=' style="height:'+ph+'px;"';pnt=' style="top:'+(ph-5)+'px;" data-top="'+(ph-5)+'"';dth=' style="height:'+ph+'px;" data-height="'+ph+'" '}return{thumb:h,pagenumber:pnt,pageheight:ph,doublethumb:dth}}};function FluidbookLandingPage(fluidbook){this.fluidbook=fluidbook;this.hasLandingPage=false;this.init()}FluidbookLandingPage.prototype={init:function(){var $this=this;if(this.fluidbook.settings.landingPage!=undefined&&this.fluidbook.settings.landingPage!=""){this.hasLandingPage=true}setTimeout(function(){$this.setupLandingPage()},10)},setupLandingPage:function(){var $this=this;if(this.hasLandingPage){$("#landingPage").html('');$("#landingPageIframe").on("load",function(){$(this).contents().on("click","a",$this.handleLink)})}},handleLink:function(event){if($(this).data("page")!==undefined){fluidbook.landingpage.hide();fluidbook.setCurrentPage(parseInt($(this).data("page")))}else if($(this).data("link")!==undefined){fluidbook.landingpage.hide();var link=$('[data-id="'+$(this).data("link")+'"] a');if(link.length>0){window.location.hash=link.attr("href")}}else{var href=$(this).attr("href");if(href.indexOf("#")===0){event.preventDefault();window.location.hash=href;fluidbook.landingpage.hide()}else{window.open(href,"_blank")}}event.preventDefault();return false},hide:function(){$("#landingPage").removeClass("visible")},show:function(){$("#landingPage").addClass("visible")},resize:function(w,h){if(!this.hasLandingPage){return}console.log("TODO: landing page resize...")}};function FluidbookPrint(fluidbook){this.fluidbook=fluidbook;this.init()}FluidbookPrint.prototype={init:function(){var $this=this;$(document).on("click","#confirmChoice",function(event){event.preventDefault();var element=$(this);var mode=element.data("mode");var print=mode==="print";var dynamicPDF="https://workshop.fluidbook.com/s/"+(print?"ep":"e")+"/"+$this.fluidbook.settings.cid+"/";var leftPageNumber=$this.fluidbook.getPhysicalPageNumberOfSide("left");var rightPageNumber=$this.fluidbook.getPhysicalPageNumberOfSide("right");var choice=$('input[name="pageChoice"]:checked').val();switch(choice){case"left":$this.fluidbook._openFilePreload(dynamicPDF+leftPageNumber,element,"pdf",leftPageNumber+".pdf",print);break;case"right":$this.fluidbook._openFilePreload(dynamicPDF+rightPageNumber,element,"pdf",rightPageNumber+".pdf",print);break;case"double":var pageRange=leftPageNumber+"-"+rightPageNumber;$this.fluidbook._openFilePreload(dynamicPDF+pageRange,element,"pdf",pageRange+".pdf",print);break;case"all":$this.fluidbook.openPDF(element,print);break;case"bookmarks":$this.fluidbook.bookmarks.openPDF(element,print);break;case"range":var rangeStart=$this.fluidbook.virtualToPhysical($("#pageRangeStart").val());var rangeEnd=$this.fluidbook.virtualToPhysical($("#pageRangeEnd").val());if(isNaN(rangeStart)||isNaN(rangeEnd)||rangeStart<1||rangeEnd>$this.fluidbook.settings.pages||rangeStart>rangeEnd){alert(__("Invalid page range. Please try again."));return false}var pageRange=rangeStart+"-"+rangeEnd;$this.fluidbook._openFilePreload(dynamicPDF+pageRange,element,"pdf",pageRange+".pdf",print);break;default:return false}});$(document).on("focus",".page-range-input",function(){$("#pageRange").prop("checked",true)});$(document).on("click",".bookmarks-option.disabled",function(event){event.preventDefault();$this.fluidbook.menu.quickCloseView();$this.fluidbook.menu.openView("bookmarkHelp")})},getView:function(mode){this.compact=this.fluidbook.mobilefirst.enabled;mode=mode==="download"?mode:"print";this.leftPageNumber=this.fluidbook.getPhysicalPageNumberOfSide("left");this.rightPageNumber=this.fluidbook.getPhysicalPageNumberOfSide("right");this.isFirstPage=this.fluidbook.currentPage===0;this.isLastPage=this.fluidbook.currentPage===this.fluidbook.settings.pages;this.isSinglePageMode=this.fluidbook.resize.orientation==="portrait";this.buttonLabels={print:__("print"),download:__("download")};var view="";view+='
        ';view+='";view+='
        ';view+=''+this.buttonLabels[mode]+"";view+="
        ";view+="
        ";return view},getSinglePage:function(side,pageNumber,label,addMask){var sideMask="";if(addMask){sideMask=side==="left"?"right":"left"}var view="";view+='";return view},getSideMask:function(side){return''},getSinglePages:function(){var view="";var onePage=this.isSinglePageMode||this.isFirstPage||this.isLastPage;var leftPage=this.leftPageNumber;var rightPage=this.rightPageNumber;if(this.fluidbook.l10n.dir==="ltr"){if(this.isFirstPage){leftPage=this.rightPageNumber}view+=this.getSinglePage("left",leftPage,onePage?__("Current page"):__("left page"),!onePage);if(!onePage){view+=this.getSinglePage("right",rightPage,__("right page"),true)}}else{if(this.isFirstPage||this.isSinglePageMode){rightPage=this.leftPageNumber}view+=this.getSinglePage("right",rightPage,onePage?__("Current page"):__("right page"),!onePage);if(!onePage){view+=this.getSinglePage("left",leftPage,__("left page"),true)}}return view},advancedPrint:function(){if(this.fluidbook.settings.phonegap!==false){return false}if(this.fluidbook.support.offline&&!this.fluidbook.settings.offlineEnableAdvancedPrinting){return false}return true}};function FluidbookSecure(fluidbook){this.fluidbook=fluidbook;this.init()}FluidbookSecure.prototype={init:function(){if(this.fluidbook.settings.restrictPrintDownload!==""){if(window.location.search.indexOf(this.fluidbook.settings.restrictPrintDownload)===-1){if(this.fluidbook.settings.restrictPrint){this.fluidbook.settings.print=false}if(this.fluidbook.settings.restrictDownload){this.fluidbook.settings.pdf=false}if(this.fluidbook.settings.restrictSendBookmark){this.fluidbook.settings.bookmarkSendEnable=false}}}},checkSecure:function(callback){if(this.fluidbook.settings.secureURL!=="http://"&&this.fluidbook.settings.secureURL!==""){return this.checkSecureByURL(callback)}if(this.fluidbook.settings.secureClientSidePassword!==""){return this.checkSecureByClientSidePassword(callback)}callback()},checkSecureByURL:function(callback){var $this=this;$.ajax({url:$this.fluidbook.settings.secureURL,crossDomain:true,method:"GET",type:"json",xhrFields:{withCredentials:true},success:function(data){var res=data.data[0]["logged-in"];if(res!==undefined&&res!==null){if(res===true){callback()}else if(res===false){$this.secureByURLNOK()}}},error:function(e){console.log(e);callback()}})},secureByURLNOK:function(){console.warn("Auth failed");window.location=this.fluidbook.settings.secureURLRedirect},checkSecureByClientSidePassword:function(callback){var u=window.sessionStorage.getItem("secureUsername");var p=window.sessionStorage.getItem("securePassword");var ok=false;if(u!==null&&p!==null){$.each(this.fluidbook.settings.secureClientSidePasswordCredentials,function(user,data){if(forge_sha256(data.usersalt+"+"+u)===user&&forge_sha256(data.salt+"-"+p)===data.hash){ok=true}})}if(!ok){window.location="secure.html";return}callback()}};function FluidbookTabs(fluidbook){this.fluidbook=fluidbook;this.hasSVGTabs=false;this.visibility={};if(this.fluidbook.settings.svgTabs){this.hasSVGTabs=true;this.svgLoaded=false;this.cont;this.naturalDimensions={width:0,height:0};this.init()}else if(this.hasTabs()){this.initZip()}}FluidbookTabs.prototype={hasTabs:function(){return this.fluidbook.settings.tabsHTML5!==""},initZip:function(){},checkVisibility:function(types){var res=true;var $this=this;$.each(types,function(k,type){if($this.visibility[type]===false){res=false;return false}});return res},guessTabsWidth:function(bookScale){var fh=this.fluidbook.settings.height*bookScale;var tabsScale=fh/this.naturalDimensions.height;return this.linkWidth*tabsScale},guessBookScale:function(bookScale,aw,fww){if(!this.hasSVGTabs||!this.svgLoaded){return 1}if(this.checkVisibility(["portrait"])===false){this.changeVisibility("priority",true);return 1}var tabsWidth=this.guessTabsWidth(bookScale);var awt=aw-tabsWidth*2;var scale=awt/fww;var ratio=scale/bookScale;var reductionRatio=1-ratio;if(reductionRatio>this.priority){this.changeVisibility("priority",false);return 1}this.changeVisibility("priority",true);return Math.min(1,ratio)},init:function(){if($("#background .links").length===0){$("#background").append('')}this.setOptions();var hidden="";if(this.fluidbook.settings.tabsHiddenAtStartup){hidden=' data-hidden="1"'}$("#background .links").append('");this.element=$("#l_tabs");this.addLinks(this.fluidbook.settings.tabsPages);this.initTabs()},setOptions:function(){this.hideOnPages=this.fluidbook.settings.tabsHideOnPages;this.hideOnLastPage=this.fluidbook.settings.tabsHideOnLastPage;this.hideOnFirstPage=this.fluidbook.settings.tabsHideOnCover;this.hideOnPortrait=this.fluidbook.settings.tabsHideOnPortrait;this.hideOnZoom=this.fluidbook.settings.tabsHideOnZoom;this.hideWhenOverlapingArrows=this.fluidbook.settings.tabsHideWhenOverlapingArrows;this.mode="side";this.side=this.align=this.fluidbook.settings.tabsSide;this.margin=parseFloat(this.fluidbook.settings.tabsMargin);this.hideEdge=this.fluidbook.settings.tabsHideEdges;this.linkWidth=parseFloat(this.fluidbook.settings.tabsLinkWidth);this.priority=parseFloat(this.fluidbook.settings.tabsPriority)/100;this.sections=this.fluidbook.settings.tabsSections.map(function(x){return parseInt(x)})},updateClasses:function(){if(!this.fluidbook.cache.isset("tabsClasses")){return}var $this=this;var classes=this.fluidbook.cache.get("tabsClasses");$.each(classes,function(o,classes){$this.svg.find("#o"+o).attr("class",classes)});this.changePage(this.fluidbook.currentPage)},addLinks:function(pages){pages=pages.map(function(x){if(x==="-"){return"-"}return parseInt(x)});this.links=[];var $this=this;var sections=[];if(this.hasSections()){$.each(this.sections,function(id,limit){var sectionPages=[];var foundOnePage=false;$.each(pages,function(k,p){if(p==="-"&&foundOnePage){sectionPages.push(p)}else{if($this.getSectionByPageNumber(p)-1===id){foundOnePage=true;sectionPages.push(p)}else if(foundOnePage){return false}}});sections.push(sectionPages)})}else{sections.push(pages)}var index=1;$.each(sections,function(k,sectionPages){var nbPages=sectionPages.length;var i=0;$.each(sectionPages,function(k,value){if(value!=="-"){if(!$this.fluidbook.alwaysDisplayOnePage&&value%2===1){value--}$this.links.push({css:{height:100/nbPages+"%",top:100/nbPages*i+"%"},page:parseInt(value),index:index,id:"o"+index})}i++;index++})})},initTabs:function(){var $this=this;this.element.append('
        ');this.cont=this.element.find(".tabs");var svgPath="data/tabs.svg";$.get(svgPath,{},function(data){$this.cont.append(data);$this.naturalDimensions.width=Math.floor(parseFloat($(data).attr("width")));$this.naturalDimensions.height=Math.floor(parseFloat($(data).attr("height")));$this.svg=$this.cont.find("svg");$this.svg.addClass("tabsimg").css({height:"100%",width:"auto"});$this.svgLoaded=true;$this.createLinks();$this.initStandardEvents();$this.updateClasses()},"text")},changePage:function(page){var id="oo";var $this=this;$.each(this.links,function(k,v){if(page>=v.page){try{if(v.last!==undefined&&page>=v.last){id="none"}else{id=v.id}}catch(e){}}});if(id==="none"){this.svg.find('[id^="o"].active').removeClass("active")}else{try{this.svg.find('[id^="o"].active:not(#'+id+")").removeClass("active");this.svg.find("#"+id).addClass("active")}catch(err){}}if(this.hasSections()){this.changeSection(page)}},changeSection:function(page){var currentSection=this.getSectionByPageNumber(page);if(currentSection>0){var sectionSelector="#s"+currentSection;this.svg.find('[id^="s"]').not(sectionSelector).addClass("section_hidden");this.svg.find(sectionSelector).removeClass("section_hidden");this.cont.find("[data-section]").not('[data-section="'+currentSection+'"]').hide();this.cont.find('[data-section="'+currentSection+'"]').show()}},hasSections:function(){return!(this.sections===undefined||this.sections==null||this.sections===""||this.sections.length===0)},getSectionByPageNumber:function(page){if(!this.hasSections()){return 0}var section=0;$.each(this.sections,function(k,v){if(page>=v){section=k+1}});return section},hideEdges:function(hide){if(!hide){$("#edges .edge, #shadow .shadow.side").css("visibility","visible");return}if(this.hideEdge===undefined||this.hideEdge==="none"){return}if(this.hideEdge==="left"||this.hideEdge==="both"){$("#edges .edge.left, #shadow .shadow.side.left").css({visibility:"hidden"})}if(this.hideEdge==="right"||this.hideEdge==="both"){$("#edges .edge.right, #shadow .shadow.side.right").css({visibility:"hidden"})}},createLinks:function(){var $this=this;var commoncss={};commoncss.width=100*(this.linkWidth/this.naturalDimensions.width)+"%";commoncss.left=-100*(this.margin/this.naturalDimensions.width)+"%";$(this.links).each(function(k,v){var l=$('');$this.cont.append(l);l.css(commoncss);l.css(v.css);if(v.page>=0){l.attr("href","#/page/"+v.page)}if($this.hasSections()){l.attr("data-section",$this.getSectionByPageNumber(v.page))}if($this.svg.find("#t"+v.index).length>0){l.attr("data-labelid","t"+v.index)}})},initStandardEvents:function(){var $this=this;$(this.fluidbook).on("fluidbook.resize",function(e,data){$this.resize(data);return true});if(this.hideOnZoom){this.visibility.zoomin=true;$(this.fluidbook).on("fluidbook.zoom.in.start",function(e){$this.changeVisibility("zoomin",false)});$(this.fluidbook).on("fluidbook.zoom.out.end",function(e){$this.changeVisibility("zoomin",true)})}if(this.hideOnPortrait){this.visibility.portrait=true;$(this.fluidbook).on("fluidbook.resize.orientation",function(e,data){if(data.orientation==="portrait"){$this.changeVisibility("portrait",false)}else{$this.changeVisibility("portrait",true)}})}if(this.hideOnLastPage){this.visibility.lastpage=true}if(this.hideOnFirstPage){this.visibility.firstpage=true}$(this.fluidbook).on("fluidbook.page.change.start",function(e,page){$this.checkPageVisibility();$this.changePage(page)});$(this.fluidbook).on("fluidbook.page.change.end",function(e,page){$this.checkPageVisibility()});$(document).on("mouseover",".tablink[data-labelid]",function(){$this.svg.find('[id^="t"].active').removeClass("active");$this.svg.find("#"+$(this).data("labelid")).addClass("active")});$(document).on("mouseout",".tablink[data-labelid]",function(){$this.svg.find('[id^="t"].active').removeClass("active")})},checkPageVisibility:function(){var $this=this;var pages=this.fluidbook.getDisplayedPages();var hide=false;$.each(pages,function(k,p){if($this.hideOnPages.indexOf(p)>=0){hide=true;return false}});this.changeVisibility("firstpage",!hide)},changeVisibility:function(type,visible){this.visibility[type]=visible;var tabsvisible=true;$.each(this.visibility,function(k,v){if(!v){tabsvisible=false;return false}});if(!tabsvisible){this.cont.addClass("hide")}else{this.cont.removeClass("hide")}this.hideEdges(tabsvisible)},resize:function(data){var $this=this;var css={position:"absolute"};var svgcss={height:css.height};if(this.mode==="side"){var scale=data.fluidbookrect.height/this.naturalDimensions.height;var w=this.naturalDimensions.width*scale;css.top=data.fluidbookrect.top;css.height=data.fluidbookrect.height;if(this.fluidbook.support.IE>0){svgcss.width=w}if(this.fluidbook.support.iOS){if(this.svg.get(0).style.height==="100%"){svgcss.height="99.9999%"}else{svgcss.height="100%"}}css.width="auto";if(this.align==="right"){css.left=data.fluidbookrect.left+data.fluidbookrect.width+this.margin*scale}else if(this.align==="left"){css.left=data.fluidbookrect.left-w-this.margin}}try{this.svg.css(svgcss)}catch(e){}this.cont.css(css)}};function FluidbookArticles(fluidbook){this.fluidbook=fluidbook;this.init()}FluidbookArticles.prototype={init:function(){if(!this.isEnabled()){return}var $this=this;$(this.fluidbook).on("fluidbook.resize",function(){console.log("resize");$this.resize()});$(document).on("click touchend",'.mview[data-menu="article"] .articlesPrint',function(){var a=$(this).closest("article").attr("data-id");var print_window=window.open("","print_article","height=400,width=600");print_window.document.write($this.fluidbook.settings.articlesList[a].print);setTimeout(function(){print_window.focus();print_window.print();print_window.close()},1e3);return false});$(document).on("click touchend",'.mview[data-menu="article"] .articlesShare',function(){$(".mview").remove();$this.fluidbook.menu.openView("share","article:"+$(this).attr("data-id"),"article");return false})},openArticle:function(url,callback){var article=this.findArticleByURL(url);if(article===null){callback()}var footer='";var view='
        '+article.contents+"
        "+footer;this.fluidbook.menu.viewWrap(this.fluidbook.menu.closeButton()+view,"article","","",true);if($("#view article").attr("dir")===undefined){$("#view article").attr("dir",this.fluidbook.l10n.dir)}this.fluidbook.silentChangePage(article.page,true);callback();var $this=this;setTimeout(function(){$this.resize()},10)},findArticleByURL:function(url){var res=null;$.each(this.fluidbook.settings.articlesList,function(k,v){if(v.url===url){res=v;return false}});return res},findArticleById:function(id){return this.fluidbook.settings.articlesList[id]},isEnabled:function(){return Object.keys(this.fluidbook.settings.articlesList).length>0},resize:function(){var $this=this;$(".mview article").each(function(){var w=$(this).width();var aw=$(this).find(".actions").outerWidth();if($this.fluidbook.resize.ww<800){aw+=20}$(this).find("h3").eq(0).css("width",w-aw);var $thisart=this;setTimeout(function(){$($thisart).closest(".mview").addClass("visible")},10)})}};function FluidbookWidget(fluidbook){this.fluidbook=fluidbook;this.featureEnabled=true;this.enabled=false;this.init()}FluidbookWidget.prototype={init:function(){if($_GET["widget"]!="1"){return}this.background=false;if($_GET.hasOwnProperty("background")){this.background=$_GET["background"];if(this.background!=="transparent"&&this.background.indexOf("rgb")!==0&&this.background.indexOf("#")!==0){this.background="#"+this.background}}this.action=$_GET.hasOwnProperty("action")?$_GET["action"]:"fullscreen";this.enabled=true;var $this=this;$(this.fluidbook).on("fluidbook.resize",function(){$this.update()});$("#fluidbook").on("click",function(){return $this.click()});this.update(true)},click:function(){var active=this.isWidgetModeActive();if(active){if(this.action==="fullscreen"){screenfull.toggle()}else if(this.action==="tab"){window.open(window.location.toString().replace("widget=1","widget=0"),"_blank")}}return!active},update:function(force){var newMode=this.isWidgetModeActive();if(force!==true&&newMode===this.enabled){return}this.enabled=newMode;if(this.enabled){this.enable()}else{this.disable()}},enable:function(){$("body").addClass("widget");if(this.background!==false){$("#background,#splash").attr("style","background-color: "+this.background+" !important;background-image:none !important")}},disable:function(){$("body").removeClass("widget");$("#background,#splash").attr("style","")},isWidgetModeActive:function(){return this.featureEnabled&&!screenfull.isFullscreen}};function FluidbookKeyboard(fluidbook){this.fluidbook=fluidbook;this.shortcuts=[];this.initKeyboardShortcuts()}FluidbookKeyboard.prototype={initKeyboardShortcuts:function(){var $this=this;hotkeys.filter=function(event){var e=$(event.target||event.srcElement);return!e.is("input:not(#q),select,textarea")};this.keyShortcut("escape",function(){if($this.fluidbook.help.isVisible()){$this.fluidbook.help.hide()}if($this.fluidbook.menu.viewMode()){$this.fluidbook.menu.closeView(function(){},true,true)}$this.fluidbook.search.closeSearch();if($this.fluidbook.nav.menuIsOpen){$this.fluidbook.nav.closeMenu()}if(screenfull.isFullscreen){screenfull.exit()}});this.keyShortcut("tab,shift+tab",function(e,handler){if($this.fluidbook.menu.viewMode()){$this.tabNavigation(".mview",handler.shortcut==="tab"?1:-1);e.preventDefault()}},false,false);if(this.fluidbook.settings.fullscreen){this.keyShortcut("f11",function(){screenfull.toggle()})}if(!this.fluidbook.settings.print){this.keyShortcut("ctrl+p",function(){})}},_navigate:function(list,dir,actions){if(actions===undefined){actions=["focus"]}if(dir===undefined){dir=1}var items=$(list);console.log(list);var nb=items.length;var next;if($(items).has(document.activeElement)){var index=$(items).index(document.activeElement);next=(nb+index+dir)%nb;console.log("n",nb)}else{if(dir===1){next=0}else{next=nb-1}}console.log(next);var ne=$(items).eq(next);console.log(ne,actions);$.each(actions,function(k,action){if(action==="focus"){$(ne).focus()}else if(action==="click"){$(ne).click()}})},tabNavigation:function(selector,dir){var focusableElementsString='a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, [tabindex="0"]:not(.ps__thumb-x):not(.ps__thumb-y), [contenteditable]';var elements=$(selector).find(focusableElementsString);var list=[];$(elements).each(function(){if($(this).parents('[tabindex="-1"],.ignore-tab-children').length===0){list.push(this)}});this._navigate(list,dir)},initBookmarksShortcuts:function(){var $this=this;this.keyShortcut("ctrl+alt+d",function(){$this.fluidbook.bookmarks.toggleSide("right")});this.keyShortcut("ctrl+shift+d",function(){$this.fluidbook.bookmarks.toggleSide("left")})},initSearchShortcuts:function(){var $this=this;this.keyShortcut("f3",function(){if($this.fluidbook.search.isResultNavOpened()){$this.fluidbook.search.nextResultsPage()}else{$this.fluidbook.nav.openSearch()}});this.keyShortcut("shift+f3",function(){if($this.fluidbook.search.isResultNavOpened()){$this.fluidbook.search.previousResultsPage()}});this.keyShortcut("up,down",function(e,handler){if($this.fluidbook.search.isHintsNavOpened()){$this.fluidbook.search.navigateHint(handler.key==="down"?1:-1);e.preventDefault()}else if($this.fluidbook.search.isResultsOverviewOpened()){$this.fluidbook.search.navigateResults(handler.key==="down"?1:-1);e.preventDefault()}},false,false)},initZoomShortcuts:function(){var $this=this;window.addEventListener("keydown",function(e){if(e.ctrlKey){if(e.key==="+"){$this.fluidbook.zoom.increaseZoom();e.preventDefault()}else if(e.key==="-"){$this.fluidbook.zoom.decreaseZoom();e.preventDefault()}else if(e.key==="0"){$this.fluidbook.zoom.resetZoom();e.preventDefault()}}});this.keyShortcut("left,right,up,down",function(e,handler){if($this.fluidbook.zoom.zoom===1){return}$this.fluidbook.zoom.move(handler.key);e.preventDefault()},false,false)},initInterfaceShortcuts:function(){var $this=this;this.keyShortcut("pageup,pagedown,home,end,left,right",function(e,handler){if($this.fluidbook.zoom.zoom>1){return}if(handler.key==="pageup"||handler.key==="pagedown"||handler.key==="left"||handler.key==="right"){var dir="Next";if(handler.key==="pageup"||handler.key==="left"&&this.fluidbook.l10n.ltr||handler.key==="right"&&this.fluidbook.l10n.rtl){dir="Previous"}var func="go"+dir;if(this.fluidbook.pad.enabled){func+="Chapter"}else{func+="Page"}this.fluidbook[func]()}else if(handler.key==="end"){$this.fluidbook.goLastPage()}else if(handler.key==="home"){$this.fluidbook.goFirstPage()}e.preventDefault()},false)},keyShortcut:function(shortcuts,func,preventDefault,check){if(preventDefault===undefined){preventDefault=true}if(check===undefined){check=true}if(shortcuts===""){return}var s={shortcuts:shortcuts,options:{}};if(check){s=this.checkShortcuts(shortcuts)}hotkeys(s.shortcuts,s.options,function(e,handler){func(e,handler);fluidbook.input.useKeyboard();if(preventDefault){e.preventDefault()}})},checkShortcuts:function(shortcuts){var $this=this;var res=[];var splitKey="+";var s=shortcuts.split(",");$.each(s,function(k,shortcut){shortcut=shortcut.trim();if($this.shortcuts.indexOf(shortcut)===-1){$this.shortcuts.push(shortcut);res.push(shortcut)}});return{shortcuts:res.join(", "),options:{splitKey:splitKey}}},ariaShortcut:function(shortcuts,func){if(shortcuts===""){return}this.keyShortcut(this.ariaToKey(shortcuts),func)},ariaToKey:function(shortcuts){var $this=this;shortcuts=shortcuts.split(" ");var res=[];var map={control:"ctrl",arrowleft:"left",arrowright:"right",arrowup:"up",arrowdown:"down"};$.each(shortcuts,function(k,shortcut){if(shortcut===""){return}var keys=shortcut.split("+");var ok=[];$.each(keys,function(kk,key){key=key.toLowerCase();if(map[key]){ok.push(map[key])}else{ok.push(key)}});res.push(ok.join("+"))});return res.join(",")}};function FluidbookPOSAd(fluidbook){this.fluidbook=fluidbook;this.enabled=this.fluidbook.settings.plv;this.direction=1;if(this.enabled){this.init()}}FluidbookPOSAd.prototype={init:function(){$("body").addClass("posad");this.fluidbook.settings.bookmarkBlinkOnPageChange=this.fluidbook.settings.mobileLinksRevealAnim=false;if(this.fluidbook.support.nwjs){win=nw.Window.get();win.enterFullscreen()}var $this=this;$(this.fluidbook).one("fluidbook.splash.hide",function(){$this.launch()})},launch:function(){var $this=this;setTimeout(function(){$this.nextPage()},this.fluidbook.settings.plvTimer*1e3)},nextPage:function(){var bv=this.fluidbook.getButtonsVisibility();if(this.direction===1){if(bv.next){this.fluidbook.goNextPage()}else{if(this.fluidbook.settings.plvMode==="first"){this.fluidbook.goFirstPage()}else{this.fluidbook.goPreviousPage();this.direction=-1}}}else{if(bv.previous){this.fluidbook.goPreviousPage()}else{this.fluidbook.goNextPage();this.direction=1}}var $this=this;$(this.fluidbook).one("fluidbook.page.change.end",function(){$this.launch()})}};function FluidbookNotes(fluidbook){this.fluidbook=fluidbook;this.enabled=!!this.fluidbook.settings.notes;this.allNotes=null;if(this.enabled){this.init()}}FluidbookNotes.prototype={init:function(){var $this=this;$(document).on("click",'#horizontalNav_notes,[data-action="notes"]',function(event){event.preventDefault();var rect=$(this).get(0).getBoundingClientRect();$this.fluidbook.tooltip.showFixedTooltip($("#notesHorizontalSub"),"w","n",{top:rect.y+rect.height+20,left:-30+rect.x+rect.width/2})});$(document).on("click","#notes-add",function(){$this.addNote();return false});$(document).on("click",".note .remove",function(){$this.removeNote($(this).closest(".note"));return false});$(document).on("change keyup resize",".note textarea",function(){$this.updateNote($(this).closest(".note").attr("id"))});$(this.fluidbook).on("fluidbook.resize",function(){$this.resize()});$(this.fluidbook).on("fluidbook.page.change.start",function(){$this.clearNotes();$this.resize()});$(this.fluidbook).on("fluidbook.page.change.end",function(){setTimeout(function(){$this.resize();$this.initNotesFromStorage()},150)});$(document).on("click",".notes-toggle",function(){$this.toggleNotes();return false});$(this.fluidbook).on("fluidbook.zoom.in.start",function(){$("#notesHolder").addClass("hiddenzoom")});$(this.fluidbook).on("fluidbook.zoom.out.end",function(){$("#notesHolder").removeClass("hiddenzoom")});$("header").append(this.horizontalNav());$("body").addClass("notes-no").addClass("notes-unhidden");this.updateMenus()},unhideNotes:function(){if($("body").hasClass("notes-hidden")){this.toggleNotes()}},toggleNotes:function(){$("body").toggleClass("notes-hidden").toggleClass("notes-unhidden")},horizontalNav:function(){var res='";return res},addNote:function(){var name="note_"+Math.round(Math.random()*1e7);$("#notesHolder").append('');this.initNotes();this.createNote(name);this.updateMenus();this.unhideNotes()},removeNote:function(n){var id=$(n).attr("id");$("#"+id).remove();this._unsetNote(id);this.updateMenus()},clearNotes:function(){$("#notesHolder .note").each(function(){interact("#"+$(this).attr("id")).unset()});$("#notesHolder").html("")},initNotesFromStorage:function(){this.clearNotes();var notes=this.getNotesOfPageFromStorage();var $this=this;$.each(notes,function(k,v){v.y=Math.max(0,Math.min(1,v.y));v.x=Math.max(0,Math.min(1,v.x));var w=$this.fluidbook.resize.fluidbookrect.width;if(!$this.fluidbook.displayOnePage){w/=2;if(v.p%2===1){v.x++}}$("#notesHolder").append('")});this.initNotes()},getNotesOfPageFromStorage:function(page){if(page===undefined){page=this.fluidbook.currentPage}var pages=[page];if(!this.fluidbook.displayOnePage){if(this.currentPage===1){pages.unshift(0)}else{pages.push(this.fluidbook.currentPage+1)}}var notes=this.getAllNotes();var res={};$.each(notes,function(k,v){if(pages.indexOf(v.p)===-1){return}res[k]=v});return res},openMenu:function(callback){this.fluidbook.menu.viewWrap(this.getView(this.fluidbook.l10n.__("all notes")),"notes");if(callback!==undefined){callback()}},getView:function(title){var c=this.getIndex();if(c===false){return c}var index='
        ';index+=this.fluidbook.menu.getCaption(title);index+=c;index+="
        ";return index},getIndex:function(){var contentClass="content";if(this.fluidbook.mobilefirst.enabled){contentClass+=" noscroll mobilefirst"}var $this=this;var index='
        ';$.each(this.getPagesWithNotes(),function(k,page){var thumb_notes='
        ';$.each($this.getNotesOfPageFromStorage(page),function(id,n){if(!$this.fluidbook.displayOnePage){n.x/=2;if(n.p%2===1){n.x+=1}}var x=n.x*100;var y=n.y*100;thumb_notes+=''});thumb_notes+="
        ";index+=$this.fluidbook.menu.index.getPage(page,$this.fluidbook.displayOnePage,300,true,false,$this.fluidbook.mobilefirst.enabled,thumb_notes)});index+="
        ";index+="
        ";return index},getPagesWithNotes:function(){var pages=[];var $this=this;$.each(this.getAllNotes(),function(k,note){if(!$this.fluidbook.displayOnePage){if(note.p%2===1){note.p--}}if(pages.indexOf(note.p)===-1){pages.push(note.p)}});pages.sort();return pages},initNotes:function(){var $this=this;$("#notesHolder").find(".note").each(function(){$this.initNote($(this))})},initNote:function(note){if($(note).data("inited")===true){return}$(note).data("inited",true);this.setNotePosition(note,parseFloat($(note).css("left")),parseFloat($(note).css("top")));var $this=this;var options={inertia:true,modifiers:[interact.modifiers.restrict({restriction:"parent",elementRect:{top:0,left:0,right:1,bottom:1},endOnly:true})],ignoreFrom:"textarea",onstart:function(){if(Modernizr.ftouch){$this.fluidbook.touch.externalgesture=true}},onmove:function(event){$this.moveNote(event)},onend:function(){if(Modernizr.ftouch){setTimeout(function(){$this.fluidbook.touch.externalgesture=false},200)}$this.updateNote($(note).attr("id"))}};interact("#"+$(note).attr("id")).draggable(options)},setNotePosition:function(note,x,y){$(note).data("x",x).data("y",y).css({top:y,left:x})},moveNote:function(event){var target=event.target;this.setNotePosition(target,$(target).data("x")+event.dx,$(target).data("y")+event.dy)},getNotes:function(pageNr){if(!this.enabled){return""}},resize:function(){this.fluidbook.resize.updateFluidbookRect();var maxx=this.fluidbook.resize.fluidbookrect.width;var maxy=this.fluidbook.resize.fluidbookrect.height;var minx=this.fluidbook.resize.fluidbookrect.x;var miny=this.fluidbook.resize.fluidbookrect.y;this.dragRestrict={restriction:{x:minx,y:miny,width:maxx,height:maxy}};$("#notesHolder").css({top:this.fluidbook.resize.fluidbookrect.y,left:this.fluidbook.resize.fluidbookrect.x,width:this.fluidbook.resize.fluidbookrect.width,height:this.fluidbook.resize.fluidbookrect.height})},updateNote:function(id){this.fluidbook.resize.updateFluidbookRect();var n=this._getNote(id);var e=$("#"+id);var t=$(e).find("textarea");n.c=$(t).val();n.w=$(t).outerWidth();n.h=$(t).outerHeight();n.x=parseFloat($(e).css("left"))/this.fluidbook.resize.fluidbookrect.width;n.y=parseFloat($(e).css("top"))/this.fluidbook.resize.fluidbookrect.height;n.p=this.fluidbook.currentPage;if(!this.fluidbook.displayOnePage){n.x*=2;if(n.x>=1){n.x--;n.p++}}this._setNote(id,n)},updateMenus:function(){var nb=this.getNotesNumber();if(nb===0){$("body").addClass("notes-no")}else{$("body").removeClass("notes-no")}},getNotesNumber:function(){try{return this.getAllNotes().length}catch(e){}return 0},getAllNotes:function(){if(this.allNotes===null){this.allNotes=this.fluidbook.cache.find("note_")}return this.allNotes},createNote:function(id){this._setNote(id,this._defaultNote());this.updateNote(id)},_defaultNote:function(){return{x:0,y:0,w:0,h:0,p:-1,c:""}},_setNote:function(id,val){this.allNotes=null;this.fluidbook.cache.set(id,val)},_getNote:function(id){return this.fluidbook.cache.get(id,this._defaultNote())},_unsetNote:function(id){this.allNotes=null;this.fluidbook.cache.unset(id)}};function FluidbookGamify(fluidbook){this.fluidbook=fluidbook;this.totalCoins=0;this.init()}FluidbookGamify.prototype={init:function(){this.coinsLinksSeen=this.fluidbook.cache.get("gamify_coins_links_seen",[]);this.addedCoins=this.fluidbook.cache.get("gamify_coins_added",{});this.updateTotalCoins()},linkClicked:function(id){if(this.coinsLinksSeen.indexOf(id)===-1){this.coinsLinksSeen.push(id);this.save();this.updateTotalCoins()}},addCoins:function(id,coins){this.addedCoins[id]=coins;this.save();this.updateTotalCoins()},setMaxCoins:function(id,coins){if(this.addedCoins[id]===undefined){return this.addCoins(id,coins)}this.addCoins(id,Math.max(coins,this.addedCoins[id]))},updateTotalCoins:function(){var $this=this;this.totalCoins=0;$.each(this.coinsLinksSeen,function(k,uid){if($this.fluidbook.settings.gamifyCoins[uid]!==undefined){$this.totalCoins+=$this.fluidbook.settings.gamifyCoins[uid]}});$.each(this.addedCoins,function(id,coins){$this.totalCoins+=coins})},save:function(){this.fluidbook.cache.set("gamify_coins_links_seen",this.coinsLinksSeen);this.fluidbook.cache.set("gamify_coins_added",this.addedCoins)},getTotalCoins:function(){return this.totalCoins}};function Fluidbook(settings){this.init(settings)}Fluidbook.NONE=3;Fluidbook.STRETCH=0;Fluidbook.RATIO=2;Fluidbook.REPEAT=1;Fluidbook.CENTER=4;Fluidbook.LEFT=5;Fluidbook.RIGHT=6;Fluidbook.MIDDLE=7;Fluidbook.TOP=8;Fluidbook.BOTTOM=9;Fluidbook.prototype={init:function(settings){this.flags={};this.canNavigate=false;this.shortLoading=false;this.nointerface=false;this.hideBook=false;if($_GET["nointerface"]!==undefined){$("body").addClass("nointerface");settings.mobileTransitions="none";this.shortLoading=this.nointerface=true}if($_GET["shortLoading"]!==undefined){console.info("Short loading");this.shortLoading=true}this.initSettings(settings);this.secure=new FluidbookSecure(this);var $this=this;this.secure.checkSecure(function(){$this.secureOK()})},_boolean:function(v){if(v===undefined||v===null||v==="0"||v===0||v==="false"||!v){return false}return true},secureOK:function(){this.singleMode=this.settings.mobileNavigationType==="portrait"||this.settings.mobileNavigationType==="mobilefirst";this.junk=this.settings.cacheDate;this.l10n=new FluidbookL10N(this,$_GET["lang"]);this.networkControl=new FluidbookNetworkControl(this);this.input=new FluidbookInput(this);this.keyboard=new FluidbookKeyboard(this);if(this.settings.landingPage!=undefined&&this.settings.landingPage!=""){this.landingpage=new FluidbookLandingPage(this)}this.splash=new FluidbookSplash(this);this.contentlock=new FluidbookContentLock(this);this.menu=new FluidbookMenu(this);this.support=new FluidbookSupport(this);this.search=new FluidbookSearch(this);this.mobilefirst=new FluidbookMobileFirst(this);if(!this.mobilefirst.enabled){this.slider=new FluidbookSlider(this)}this.displayOnePage=this.alwaysDisplayOnePage=this.settings.mobileNavigationType==="portrait"||this.pad&&this.pad.enabled||this.mobilefirst.enabled;this.zoom=new FluidbookZoom(this);this.zoom.resetZoom();this.cache=new FluidbookCache(this.settings);this.service=new FluidbookService(this,this.settings.id);this.loader=new FluidbookLoader(this);this.pad=new FluidbookPad(this);this.scorm=new FluidbookScorm(this);this.links=new FluidbookLinks(this);this.waiters=[];this.viewport=new FluidbookViewport(this);this.viewport.updateViewport();this.desktop=new FluidbookDesktop(this);this.share=new FluidbookShare(this);this.firstTransition=true;if(this.input.hasTouch){this.touch=new FluidbookTouch(this)}this.background=new FluidbookBackground(this);this.video=new FluidbookVideo(this);this.audioplayer=new FluidbookAudioPlayer(this);this.bookmarks=new FluidbookBookmarks(this);this.tooltip=new FluidbookTooltip(this);this.accessibility=new FluidbookAccessibility(this);this.sound=new FluidbookSound(this);if(window.FluidbookSlideshow){this.slideshow=new FluidbookSlideshow(this)}this.printing=new FluidbookPrint(this);this.posad=new FluidbookPOSAd(this);this.notes=new FluidbookNotes(this);this.gamify=new FluidbookGamify(this);if(this.settings.basket){this.cart=new FluidbookCart(this)}if(this.settings.form==="bulle"){this.form=new FluidbookBulleForm(this)}else if(this.settings.form==="bourbon"){this.form=new FluidbookBourbonForm(this)}else if(this.settings.form==="avery"){this.form=new FluidbookAveryForm(this)}else{this.form=false}this.privacy=new FluidbookPrivacy(this);if(typeof window.FluidbookTabs==="function"){this.tabs=new FluidbookTabs(this)}this.widget=new FluidbookWidget(this);this.refw=0;this.refh=0;this.searchString="";this.vectorTexts=!this.support.imagesVersion;this.indexHTML="";this.gal=null;this.isReady=false;this.transitionAxis="x";if(this.support.isMobile){$("body").addClass("mobile")}else{$("body").addClass("desktop")}if(this.pad.enabled){$("body").addClass("pad")}$("html").addClass(this.settings.mobileLVersion);this.currentPage=-1;this.currentPageURL=-1;this.contentlock.init();this.nav=new FluidbookNav(this);this.interface=new FluidbookInterface(this);this.resize=new FluidbookResize(this);this.pagetransitions=new FluidbookPageTransition(this);this.stats=new FluidbookStats(this);this.stats.track(10);this.help=new FluidbookHelp(this);this.articles=new FluidbookArticles(this);this.initTheme();this.initLoading()},initSettings:function(settings){this.settings=settings;if($_GET["transition"]!=null){var map={1:"none",2:"slide",3:"flip",4:"flip3d"};this.settings.mobileTransitions=map[$_GET["transition"]]}if(this.shortLoading){this.settings.mobileTransitions="none"}this.datas=this.settings},setMaxPage:function(p,allowbackwards){return this.contentlock.setMaxPage(p,allowbackwards)},initTheme:function(){var $this=this;if(this.settings.arrowsTheme){$("html").addClass("sharp")}if(this._boolean(this.settings.invertMenuPosition)){$("html").addClass("menu-inverted")}else{$("html").addClass("menu-default")}$(document).on("fluidbook.init",function(){var logoImg=$("#splash .logo img");if($(logoImg).isLoaded()){$this.splashLogoLoaded()}else{$(logoImg).on("load",function(){$this.splashLogoLoaded()})}})},splashLogoLoaded:function(){resize();$("#splash .logo img").css("opacity",1)},initLoading:function(){if($("#loader svg").length>0){return}$("#loader").append(getSpriteIcon("interface-loader"));this.displayLoader();var $this=this;this.loader.preloadStart(function(){$this.ready()})},allowChangePage:function(){var $this=this;setTimeout(function(){$this.canNavigate=true;$($this).trigger("fluidbook.navigation.cannavigate")},1500)},ready:function(){if(this.isReady){return}this.isReady=true;$("#main").css("display","block");resize();$(this).trigger("fluidbook.ready");$(document).trigger("fluidbook.ready");this.changeAddress();var $this=this;setTimeout(function(){$this.help.displayAtStartup()},1500)},loadPlugins:function(){$.each(this.settings.plugins,function(k,plugin){try{var functionName=plugin.replace(/\./g,"_");eval(functionName+"();")}catch(err){}});$.each(this.settings.htmlmultimedia,function(k,code){try{eval(code)}catch(err){}})},initPage:function(pageNr,doublePage,position){if($("#page_"+pageNr).length>0){return}$(doublePage).find("."+position).remove();var page='
        ';$(doublePage).append(page)},hidePage:function(position){$("#pages ."+position).hide()},canChangePage:function(){try{return this.pagetransitions.canChangePage()}catch(e){}return false},initVideos:function(){this.video.initVideos()},getNextOffset:function(){var offset=2;if(this.displayOnePage){offset=1}this.transitionAxis="x";return offset},goNextPage:function(){if(!this.canChangePage()){return}if(this.search.resultsNavActive()){this.search.nextResultsPage()}else{this.transitionAxis="x";this.setCurrentPage(this.normalizePage(this.currentPage)+this.getNextOffset())}},goFirstPage:function(){if(!this.canChangePage()){return}this.transitionAxis="x";this.setCurrentPage(1)},goPreviousPage:function(){if(!this.canChangePage()){return}if(this.search.resultsNavActive()){this.search.previousResultsPage()}else{this.transitionAxis="x";this.setCurrentPage(this.normalizePage(this.currentPage)-this.getNextOffset())}},goLastPage:function(){if(!this.canChangePage()){return}this.transitionAxis="x";this.setCurrentPage(this.contentlock.getMaxPage())},goNextChapter:function(){if(!this.canChangePage()){return}var next=this.bookmarks.getNextGroupCover(this.currentPage);if(next===false){return}this.transitionAxis="x";this.setCurrentPage(this.normalizePage(next))},goPreviousChapter:function(){if(!this.canChangePage()){return}var prev=this.bookmarks.getPreviousGroupCover(this.currentPage);if(prev===false){return}this.transitionAxis="x";this.setCurrentPage(this.normalizePage(prev))},goNextChapterPage:function(){if(!this.canChangePage()){return}var next=this.bookmarks.getNextPageInGroupOfPage(this.currentPage);if(next===false){return}this.transitionAxis="y";this.setCurrentPage(this.normalizePage(next))},goPreviousChapterPage:function(){if(!this.canChangePage()){return}var prev=this.bookmarks.getPreviousPageInGroupOfPage(this.currentPage);if(prev===false){return}this.transitionAxis="y";this.setCurrentPage(this.normalizePage(prev))},normalizePage:function(page){page=Math.max(1,Math.min(page,this.contentlock.getMaxPage()));if(!this.displayOnePage&&page%2===1){page--}return page},setCurrentPage:function(page){window.location.hash="#/page/"+this.normalizePage(page)},changeAddress:function(){var hash=window.location.hash;if($('.mview[data-hash="'+hash+'"]').length>0){return}var $this=this;var page;var args=hash.split("/");var defaultStartPage=1;if(FLUIDBOOK_START_PAGE!==undefined){defaultStartPage=FLUIDBOOK_START_PAGE}if(args.length<=1||args[1]==""||args[1]==undefined){if(this.landingpage!==undefined&&this.landingpage.hasLandingPage){window.location.hash="/landing";return}return this.setCurrentPage(defaultStartPage)}if(args.length>1){var a1=args[1];if(a1.match(/^[0-9]+$/)){args=["#","page",a1]}}$(this).trigger("fluidbook.hashchange",[args.slice()]);if(args[1]==="closeview"){s;return this.setCurrentPage(this.currentPage)}else if(args[1]==="page"){var anchor=false;if(fluidbook.settings.pageLabels[args[2]]!==undefined){page=fluidbook.settings.pageLabels[args[2]];anchor=args[2]}else{page=parseInt(args[2])}if(isNaN(page)||page==undefined){return this.setCurrentPage("1")}this.currentPageURL=page;if(page!==$this.currentPage){$($this).trigger("fluidbook.page.navigation",[page]);$($this).trigger("changePage",[page])}if(this.landingpage!==undefined){this.landingpage.hide()}this.menu._closeView(function(){if(page!==$this.currentPage){$this.pagetransitions.pageTransition(page);$this.stats.track(0,page);if(anchor){$this.scrollToAnchorAfterTransition(anchor)}}else{if(anchor){$this.scrollToAnchor(anchor)}}$this.zoom.resetZoom();$this.splash.hide()},true)}else if(args[1]==="landing"){$this.splash.hide();if(this.landingpage!==undefined){this.landingpage.show()}}else{var view=args[1];if(this.currentPage===-1){if(view==="multimedia"||view==="video"||view==="iframe"||view==="slideshow"){var searchURL=args.join("/");$.each(this.settings.links,function(pageNr,links){var hl=$(""+links+"");if($(hl).find('[href="'+searchURL+'"]').length>0){$this.currentPage=pageNr;return false}});if(this.currentPage===-1){this.currentPage=0}}else{this.currentPage=0}$this.pagetransitions.pageTransition(this.currentPage)}this.menu.openView(view,args[2],args[3],function(){$this.splash.hide()})}return},scrollToAnchor:function(anchor){if(!this.mobilefirst.enabled){return}var id=$('[data-anchor="'+anchor+'"]').attr("id");TweenMax.to($("#scroll"),.5,{scrollTo:{y:"#"+id,offsetY:$("header").outerHeight()+10}})},scrollToAnchorAfterTransition:function(anchor){if(!this.mobilefirst.enabled){return}var $this=this;if(this.splash.isVisible()){$(this).one("fluidbook.splash.hide",function(){$this.scrollToAnchor(anchor)})}else{$(this).one("fluidbook.page.change.end",function(){$this.scrollToAnchor(anchor)})}},silentChangePage:function(page,transition){if(page!==this.currentPage){if(transition!==true){this.currentPage=page}this.pagetransitions.pageTransition(page)}},reloadCurrentPage:function(){this.pageTransition(this.currentPage)},readingPage:function(side){if(!this.displayOnePage){var page=this.currentPage;var change=false;if(side==="left"&&page%2===1){page--;change=true}else if(side==="right"&&page%2===0){page++;change=true}if(change){window.location.hash="/page/"+page}}},getButtonsVisibility:function(page){if(page===undefined){page=this.currentPage}var max=this.contentlock.getMaxPage();if(this.contentlock.getMaxPage()%2===1&&this.settings.mobileNavigationType!=="portrait"&&this.settings.mobileNavigationType!=="mobilefirst"&&this.resize.orientation!=="portrait"){max--}var next=page1;return{previous:previous,next:next}},hideUnnecessaryButtons:function(page){var speed=500;if(page===undefined){page=this.currentPage;speed=0}var visibility=this.getButtonsVisibility(page);if(visibility.next){this.showArrows("#next-arrows")}else{this.hideArrows("#next-arrows")}if(visibility.previous){this.showArrows("#prev-arrows")}else{this.hideArrows("#prev-arrows")}},hideArrows:function(id){$(id).addClass("hidden").attr("aria-hidden","true");$(id).find("a").prop("tabindex",-1)},showArrows:function(id){$(id).removeClass("hidden").attr("aria-hidden","false");$(id).find("a").prop("tabindex",0)},updateShadows:function(page,animationDuration){if(animationDuration===undefined){animationDuration=0}animationDuration*=1e3;var delay;if(animationDuration===0){delay=0}else{delay=animationDuration}var left=true,right=true;if(!this.displayOnePage){if(page<=1&&this.l10n.dir==="ltr"||page>=this.contentlock.getMaxPage()&&this.l10n.dir==="rtl"){left=false}else if(page<=1&&this.l10n.dir==="rtl"||page>=this.contentlock.getMaxPage()&&this.l10n.dir==="ltr"){right=false}}var s=$("#shadow,#edges");var s_in=[];var s_out=[];if(left){s_in.push(".left.hidden")}else{s_out.push(".left:not('.hidden')")}if(right){s_in.push(".right.hidden")}else{s_out.push(".right:not('.hidden')")}if(s_in.length>0){setTimeout(function(){$(s).children(s_in.join(",")).removeClass("hidden")},delay)}if(s_out.length>0){$(s).children(s_out.join(",")).addClass("hidden")}},showAllButtons:function(){$("#next-arrows,#prev-arrows").addClass("help").show()},setPageNumbers:function(){$("#pagesnumbers .left").html(this.getPageNumberOfSide("left",true));$("#pagesnumbers .right").html(this.getPageNumberOfSide("right",true));$("#pagesnumbers").removeClass("hidden")},getPhysicalPageNumberOfSide:function(side,strict){if(undefined===strict){strict=false}var pageSide=$("#currentDoublePage").find("."+side);if(pageSide.length===0){if(strict){return false}pageSide=$("#currentDoublePage").find(".page").eq(0)}return $(pageSide).data("page")},getDisplayedPages:function(){var res=[];var left=this.getPhysicalPageNumberOfSide("left",true);var right=this.getPhysicalPageNumberOfSide("right",true);if(left!==false){res.push(left)}if(right!==false){res.push(right)}return res},getPageNumberOfSide:function(side,strict){if(undefined===strict){strict=false}var physical=this.getPhysicalPageNumberOfSide(side,strict);if(!physical||physical===1){return""}return this.physicalToVirtual(physical)},clickLogo:function(){if(this.settings.url_link==""||this.settings.url_link=="http://"){return}if(this.settings.url_link.indexOf("#")===0){window.location.hash=this.settings.url_link}else{this.wopen(this.settings.url_link,"_blank")}},addWaiter:function(reset){if(reset==undefined){reset=false}if(reset){this.resetWaiters()}var rand=Math.round(Math.random()*1e5);this.waiters.push(rand);return rand},waiterActive:function(id){return this.waiters.indexOf(id)>-1},resetWaiters:function(){this.waiters=[]},physicalToVirtual:function(page){return this.settings.numerotation[page-1]},virtualToPhysical:function(page){if(page===undefined){return false}var i=this.settings.numerotation.indexOf(page.toString());if(i==-1){return false}return i+1},hideMenuItems:function(){$("#menuList > ul > li, #shareLinks,footer#mobile-credits").fadeOut(100)},showMenuItems:function(){$("#menuList > ul > li, #shareLinks,footer#mobile-credits").fadeIn(300)},print:function(button){this.stats.track(3);return this.openPDF(button,true)},downloadPDF:function(button){this.stats.track(7);return this.openPDF(button,false)},openPDF:function(button,print){var $this=this;var pdf;var pdfName;if(this.settings.pages!=this.contentlock.getMaxPage()){pdf="https://workshop.fluidbook.com/s/e/"+this.settings.cid+"/1-"+this.contentlock.getMaxPage()}else if(this.settings.pdfName.substr(0,4)==="http"){pdf=this.settings.pdfName}else{pdf=this.relativeToAbsolute("data/"+this.settings.pdfName)}var e=pdf.split("/");pdfName=e.pop();this._openFile(pdf,button,"pdf",pdfName,print)},_openFile:function(url,e,type,localname,print){if(print===undefined){print=false}var $this=this;if(this.settings.phonegap!=false){if(type==undefined){var e=url.split(".");type=e.pop()}if(url.indexOf("http")===0){return this._downloadFilePhonegap(url,localname,window.TEMPORARY,this._openFilePhonegap,[url,e,type])}else{if(this._openFilePhonegap(url,e,type)){return}}}var w=this.wopen(url,"_blank","");if(print){setTimeout(function(){w.print()},2e3)}},_openFilePreload:function(url,e,type,localname,print){var $this=this;var f=function(){$this._openFile(url,e,type,localname,print)};if(this.settings.phonegap!=false){this.displayLoader();$.ajax({url:url,type:"HEAD",success:function(data){f();$this.hideLoader(1,true)}})}else{f()}},_downloadFilePhonegap:function(url,localname,fs,callback,callbackArgs){console.log("download file phonegap");var $this=this;if(fs===undefined){fs=LocalFileSystem.PERSISTENT}var requestFileSystem=window.requestFileSystem||window.webkitRequestFileSystem;requestFileSystem(fs,0,function(fileSystem){console.log("fs requested");fileSystem.root.getFile("dummy.html",{create:true,exclusive:false},function(fileEntry){console.log("dummy file created");var filePath=fileEntry.toURL().replace("dummy.html","")+localname;var fileTransfer=new FileTransfer;var uri=encodeURI(url);fileTransfer.download(uri,filePath,function(entry){console.log("file donwloaded");if(callback!==undefined){if(callbackArgs===undefined){callbackArgs=[]}callbackArgs[0]=entry.toURL();callback.apply($this,callbackArgs)}},function(error){console.log("file error")})})},function(){})},_openFilePhonegap:function(url,e,type){var $this=this;var types_ios={pdf:"com.adobe.pdf"};var types_android={pdf:"application/pdf"};if(this.settings.phonegap==="ios"){console.log("open download on ios "+type+" -> "+types_ios[type]);this.displayLoader();if(types_ios[type]!==undefined){console.log("intro to open with External file util");try{var offset=$(e).offset();offset.left+=$(e).width()/2;offset.top+=$(e).height()/2;offset.left*=2;offset.top*=2;if($(e).data("ios-preview")==="1"){offset.top=offset.left=0}}catch(err){console.log("error while getting offset")}try{console.log("attempt to open with External file util");ExternalFileUtil.openWith(url,types_ios[type],function(){console.log("ok to open with External file util : "+url);$this.hideLoader()},function(){console.log("failed to open with External file util");$this.wopen(url,"_blank","location=no");$this.hideLoader()},offset)}catch(err){console.error("unable to open with externalfileutil");$this.wopen(url,"_blank","location=no");$this.hideLoader()}return true}}if(this.settings.phonegap==="android"){if(types_android[type]!==undefined){var errorCallback=function(e){$this.bugreport(e);$this.hideLoader()};console.log("open pdf file");this.displayLoader();try{window.requestFileSystem(LocalFileSystem.TEMPORARY,0,function(fileSystem){console.log("got local file system");console.log("try to resolve url");window.resolveLocalFileSystemURL(url,function(entry){console.log("resolved from file");window.resolveLocalFileSystemURL(cordova.file.externalDataDirectory,function(dirEntry){console.log("resolved to dir");entry.copyTo(dirEntry,entry.name,function(copyEntry){console.log("copied file");window.plugins.webintent.startActivity({action:window.plugins.webintent.ACTION_VIEW,type:types_android[type],url:copyEntry.toURL()},function(args){$this.hideLoader(5)},function(args){$this.wopen(copyEntry.toURL(),"_blank","");$this.hideLoader(5)})},errorCallback)},errorCallback)},errorCallback)},errorCallback)}catch(e){$this.bugreport(e);$this.hideLoader()}}return true}return false},relativeToAbsolute:function(relative){var a=document.createElement("a");a.href=relative;return a.cloneNode(false).href},alertInternetRequired:function(){navigator.notification.alert("",function(){},this.l10n.__("an internet connection is required for this action"))},touchOffset:function(offset){offset*=$("#currentDoublePage").width();$("#currentDoublePage").addClass("sliding");$("#currentDoublePage").css({translateX:offset})},displayLoader:function(){$("#loader").addClass("show");if(!this.support.isMobile){$("body").addClass("loading")}},hideLoader:function(delay,force){if(force==undefined){force=false}if(delay==undefined){delay=0}var $this=this;if(delay==0){return this._hideLoader(force)}setTimeout(function(){$this._hideLoader(force)},delay*1e3)},_hideLoader:function(force){if(force==undefined){force=false}if(!force&&$("#splash").css("visibility")=="visible"){return}$("#loader").removeClass("show");if(!this.support.isMobile){$("body").removeClass("loading")}},wopen:function(url,target,options,print){var $this=this;var win;if(this.support.nwjs){win=nw.Window.get().window}else{win=window}url=url.replace("$uuid",this.stats.vid);if(target==undefined){target="_self"}if(options==undefined){options=""}if(target==="_popupiframe"&&Modernizr.ios&&url.search(/\.pdf$/)>=0){target="_blank"}var locationdefault="yes";var mtarget=target;var replace=true;if(this.settings.phonegap){if(target=="_unique"||target=="_new"){mtarget="_blank"}}else{if(target=="_new"){mtarget="fb_"+this.settings.id+"_"+Math.round(Math.random()*1e7);options+=",scrollbars=yes"}else if(target=="_unique"){mtarget="fb_"+this.settings.id;options+=",scrollbars=yes"}else{}}if(this.settings.phonegap){locationdefault="yes"}if(options==""){options="location="+locationdefault}else if(options.indexOf("location=")==-1){options+=",location="+locationdefault}if(this.settings.phonegap&&mtarget=="_blank"){options+=",zoom=yes,enableViewportScale=yes"}if(!this.settings.phonegap&&mtarget=="_blank"){options=undefined;replace=undefined}if(mtarget==="_popupiframe"){this.openInPopupIframe(url);return false}var w;if(options==undefined&&replace==undefined){if(this.support.IE==0){w=win.open(url,mtarget);console.log(w)}else{$("#wopen").remove();$("body").append('');$("#wopen").get(0).click();setTimeout(function(){$("#wopen").remove()},200)}}else{w=win.open(url,mtarget,options,replace)}try{if(target=="_new"||target=="_unique"){w.focus()}}catch(e){}return w},openInPopupIframe:function(url,callback){this.menu.openView("freeiframe",url,"",function(){if(callback!==undefined){callback()}})},setFlag:function(name,value){if(value===undefined){value=true}this.flags[name]=value},hasFlag:function(name){return this.flags[name]===true},hasFlags:function(names){var res=true;var $this=this;$.each(names,function(k,v){if($this.hasFlag(v)){return}res=false;return true});return res},unlockCurrentPage:function(){this.contentlock.unlockCurrentPage()},bugreport:function(e){if(window.confirm("An error occured: "+e.name+". Do you want to send a report ?")){var subject="[Fluidbook error report] "+e.message;var o={name:e.name,message:e.message,stack:e.stack};window.location="mailto:tech@fluidbook.com?subject="+encodeURIComponent(subject)+"&body="+encodeURIComponent(JSON.stringify(o))}}};var DEVICE_READY_BEFORE_JQUERY=false;var JQUERY_READY=false;document.addEventListener("deviceready",_onDeviceReady,false);function _onDeviceReady(){if(JQUERY_READY){onDeviceReady()}else{DEVICE_READY_BEFORE_JQUERY=true}}var fluidbook;var desktopScale;var dektopScaleAmount;var INITED;var $_GET;var maskHashChange=false;var jsLibraries=[];var longpresstime=undefined;var startAfterLoading=false;var gal=null;var home=window.location.toString();var resolution="auto";var OFFLINEAPP=false;var FINISHLOADING=false;var PLATFORM="web";var DEVICE_READY=false;try{$(function(){JQUERY_READY=true;$("#message").hide();$("#splash").show();$_GET=parseGet();INITED=false;if(SETTINGS&&SETTINGS.phonegap){loadPhonegap()}else{setTimeout(function(){init()},10)}});function loadPhonegap(){var cordovaPath="data/cordova.js";var cordovaStorage=window.localStorage.getItem("cordova");OFFLINEAPP=window.localStorage.getItem("offlineapp")=="1";if(window.localStorage.getItem("offline."+SETTINGS.id)=="1"){FINISHLOADING=true}if(cordovaStorage){cordovaPath=window.localStorage.getItem("cordova")}document.addEventListener("resume",onAppResume,false);loadJSLibrary(cordovaPath,cordovaLoaded);if(window.cordova){console.log("cordova already loaded");cordovaLoaded()}if(DEVICE_READY_BEFORE_JQUERY){onDeviceReady()}}function cordovaLoaded(){}function onDeviceOffline(){if(OFFLINEAPP){return}if(FINISHLOADING){return}navigator.notification.alert(__("This publication is not available offline. To read it, an internet connection is required"),function(){window.location=window.localStorage.getItem("apphome")},__("An internet connection is required"))}function onAppResume(){if(!INITED){return}fluidbook.hideLoader(1)}function onDeviceReady(){if(DEVICE_READY){return}DEVICE_READY=true;setInterval(function(){try{StatusBar.hide()}catch(e){}},2e3);console.log("device ready !");document.addEventListener("offline",onDeviceOffline,false);var manifest;var fsprefix=window.localStorage.getItem("galfsprefix");PLATFORM=SETTINGS.phonegap;if(PLATFORM=="ios"){try{window.ExternalFileUtil=cordova.require("com.techblue.cordova.plugin.externalfileutilios.ExternalFileUtilIos")}catch(err){console.error("Error while loading ExternalFileUtil plugin")}}else if(PLATFORM=="android"){}var collection;try{collection=json_parse(window.localStorage.getItem("collection"))}catch(err){console.log("error parsing collection")}if(collection.res!=undefined&&collection.res){resolution=collection.res}if(OFFLINEAPP){resolution=150}if(!OFFLINEAPP){console.log("set manifest from manifest pub");manifest=collection.manifestPub[SETTINGS.id]}if(navigator.onLine&&!OFFLINEAPP){console.log("init online");var readyToLoad=false;var finishedLoading=false;gal=new GameAssetLoader(manifest,fsprefix);gal.init(galLoaded);var timeout=setTimeout(function(){window.location.reload(true)},1e3);gal.onLoaded(function(info){console.log("gal loaded");clearTimeout(timeout);$(window).trigger("GALBundleLoaded",[info])});gal.check("content_4",function(info){if(info.success){fluidbook.changeAddress()}});gal.check("extras",function(info){if(info.success){console.log("set offline flag");FINISHLOADING=true;window.localStorage.setItem("offline."+SETTINGS.id,"1")}});$(window).on("GALBundleLoaded",function(e,info){console.log("Loaded :: "+info.bundleName);if(info.bundleName=="content_4"){fluidbook.changeAddress()}if(info.bundleName=="extras"){console.log("set offline flag");FINISHLOADING=true;window.localStorage.setItem("offline."+SETTINGS.id,"1")}try{if(fluidbook&&fluidbook.loader){fluidbook.loader.retryErrorImages()}}catch(err){}})}else{init()}}function loadJSLibrary(url,callback,error){if(jsLibraries.indexOf(url)>-1){if(callback!=undefined){callback()}return}jsLibraries[jsLibraries.length]=url;var script=document.createElement("script");script.type="text/javascript";if(script.readyState){script.onreadystatechange=function(){if(script.readyState=="loaded"||script.readyState=="complete"){script.onreadystatechange=null;if(callback!=undefined){callback()}}}}else{script.onload=function(){if(callback!=undefined){callback()}};script.onerror=function(){console.error("Error loading "+url);if(error!=undefined){error()}}}script.src=url;document.getElementsByTagName("head")[0].appendChild(script)}function galLoaded(){startAfterLoading=true;init()}function init(){if(INITED==true){return}INITED=true;console.log("init fluidbook");window.fluidbook=new Fluidbook(SETTINGS);if(null!=gal){fluidbook.gal=gal}window.fluidbook.loadPlugins();$(document).trigger("fluidbook.init");desktopScale=1;desktopScaleAmount=1.5;if($_GET.s=="1"){$("html").addClass("screenshot");$("#splash").hide();window.fluidbook.ready()}initEvents()}function initEvents(){resize(true);if(SETTINGS.preventRightClick){$(document).on("contextmenu",function(){return false});$(document).on("mousedown",function(e){if(e.button==2){return false}else{return true}})}$(window).on("hashchange",function(){if(maskHashChange){return}fluidbook.changeAddress();return false});$(document).on("webkitfullscreenchange mozfullscreenchange msfullscreenchange fullscreenchange",function(){resize();setTimeout(function(){resize()},100);for(var i=1;i<=3;i++){setTimeout(function(){resize()},1e3*i)}});$(document).on("click","#popinOverlay",function(){closePopin();return false});$(document).on("click","a.popin",function(){var iframeid="iframe_"+Math.round(Math.random()*1e5);var html='
        ';$("#popinOverlay").append(html).show();var frame=$("#"+iframeid);$(frame).load(function(){var f=$(frame).contents();$(f).click(function(e){if($(e.target).hasClass("closePopup")){closePopin();return}$(e.target).parents().each(function(){if($(this).hasClass("closePopup")){closePopin();return}})})});resize();return false});$(document).on("click","a.appswitchlocale",function(){try{fluidbook.displayLoader();if($(".mview").length>0){$("#main").hide();$("#view").addClass("fadeout")}else{$("#main").addClass("fadeout")}var $this=this;var locale=$(this).data("locale");var id=$(this).data("id");window.localStorage.setItem("locale",locale);if(OFFLINEAPP){window.location=getPublicationURL(id)}else{var topmanifest=window.localStorage.getItem("topmanifest");window.gallocale=new GameAssetLoader(json_parse(topmanifest,"topmanifest"),window.localStorage.getItem("galfsprefix"));window.gallocale.init(function(){window.gallocale.downloadAndCall("p_"+id,function(){window.location=getPublicationURL(id)})})}}catch(err){}return false});$("#logo").click(clickLogo);$(document).on("click",".lazy",function(){return false});$(document).trigger("fluidbook.ready");setTimeout(function(){resize()},1e3)}}catch(err){console.log(err)}function checkScroll(){if(fluidbook.viewMode()){return}if(window.innerWidth==0){return}var left=$(window).width()/2-window.scrollX;var right=window.innerWidth-left;var reading=left>=right?"left":"right";fluidbook.readingPage(reading)}function changeAddress(event){fluidbook.changeAddress(event)}function resize(init){if(init==undefined||init==null){init=false}if(fluidbook.resize===undefined){return}fluidbook.resize.resize(init)}function goNextPage(e){if(fluidbook.help.isVisible()){return}fluidbook.interface.resetTimeout();var y=e.offsetY==undefined?e.originalEvent.layerY:e.offsetY;if(y<65){if(fluidbook.pad.enabled){fluidbook.goNextChapter()}else{fluidbook.goNextPage()}}else{fluidbook.goLastPage()}return false}function goPreviousPage(e){if(fluidbook.help.isVisible()){return}var y=e.offsetY==undefined?e.originalEvent.layerY:e.offsetY;if(y<65){if(fluidbook.pad.enabled){fluidbook.goPreviousChapter()}else{fluidbook.goPreviousPage()}}else{fluidbook.goFirstPage()}return false}function clickLogo(){fluidbook.clickLogo();return false}function preloadBackground(page,resolution){fluidbook.preloadBackground(page,resolution)}function setBackground(page,resolution){fluidbook.setBackground(page,resolution)}function searchHints(){if($("#q").val().length>=1){fluidbook.search.initSearchHints();fluidbook.search.getSearchHints($("#q").val())}else{try{if($("#q").val().length==0){fluidbook.search.hideSearchHints();fluidbook.search.hideSearchResults();fluidbook.showMenuItems()}}catch(err){}}}function lazy(){}function __(str){return fluidbook.l10n.__(str)}function cacheUpdated(e){applicationCache.swapCache();if(window.confirm(fluidbook.l10n.__("An update of the publication is available. Do you want to load it ?"))){window.location.reload()}}function closePopin(){$("#popinOverlay").html("").hide()}(function(){var proxied=window.alert;window.alert=function(){if(navigator.notification){navigator.notification.alert(arguments[0],function(){},"Alert","Ok")}else{return proxied.apply(this,arguments)}}})();function getPublicationURL(id){var url=window.home;var replace="/"+fluidbook.settings.id+"/";var replaceby="/"+id+"/";url=url.replace(replace,replaceby);return url}function escapeHtml(text){return text.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}$(function(){$.fn.isLoaded=function(){if($(this).length===0){return true}var img=$(this).get(0);if(img.readyState===4||img.readyState==="complete"){return true}if(img.complete){return true}return false}}); \ No newline at end of file diff --git a/resources/fluidbook/data/forge.js b/resources/fluidbook/data/forge.js new file mode 100644 index 0000000..5a0e94d --- /dev/null +++ b/resources/fluidbook/data/forge.js @@ -0,0 +1,11 @@ +(function(){function p(a){this.data="";this.a=0;if("string"===typeof a)this.data=a;else if(b.D(a)||b.L(a)){a=new Uint8Array(a);try{this.data=String.fromCharCode.apply(null,a)}catch(f){for(var v=0;vg;++g)f[g]=b.getInt32();for(;64>g;++g)d=f[g-2],d=(d>>>17|d<<15)^ + (d>>>19|d<<13)^d>>>10,c=f[g-15],c=(c>>>7|c<<25)^(c>>>18|c<<14)^c>>>3,f[g]=d+f[g-7]+c+f[g-16]|0;k=a.g;e=a.h;r=a.i;n=a.j;l=a.l;t=a.m;q=a.o;u=a.s;for(g=0;64>g;++g)d=(l>>>6|l<<26)^(l>>>11|l<<21)^(l>>>25|l<<7),h=q^l&(t^q),c=(k>>>2|k<<30)^(k>>>13|k<<19)^(k>>>22|k<<10),m=k&e|r&(k^e),d=u+d+h+x[g]+f[g],c+=m,u=q,q=t,t=l,l=n+d|0,n=r,r=e,e=k,k=d+c|0;a.g=a.g+k|0;a.h=a.h+e|0;a.i=a.i+r|0;a.j=a.j+n|0;a.l=a.l+l|0;a.m=a.m+t|0;a.o=a.o+q|0;a.s=a.s+u|0;p-=64}}var m,y,e,b=m=m||{};b.D=function(a){return"undefined"!==typeof ArrayBuffer&& + a instanceof ArrayBuffer};b.L=function(a){return a&&b.D(a.buffer)&&void 0!==a.byteLength};b.G=p;b.b=p;b.b.prototype.H=function(a){this.v+=a;4096>24&255)+String.fromCharCode(a>>16&255)+String.fromCharCode(a>>8&255)+String.fromCharCode(a&255))}; + b.b.prototype.getInt16=function(){var a=this.data.charCodeAt(this.a)<<8^this.data.charCodeAt(this.a+1);this.a+=2;return a};b.b.prototype.getInt32=function(){var a=this.data.charCodeAt(this.a)<<24^this.data.charCodeAt(this.a+1)<<16^this.data.charCodeAt(this.a+2)<<8^this.data.charCodeAt(this.a+3);this.a+=4;return a};b.b.prototype.B=function(){return this.data.slice(this.a)};b.b.prototype.compact=function(){0b&&(a+="0");a+=b.toString(16)}return a};b.b.prototype.toString=function(){return b.I(this.B())};b.createBuffer=function(a,f){void 0!==a&&"utf8"===(f||"raw")&&(a=b.C(a));return new b.G(a)};b.J=function(){for(var a=String.fromCharCode(0),b=64,e="";0< + b;)b&1&&(e+=a),b>>>=1,0>>8)return!0;return!1};var z=y=y||{};e=e||{};e.A=e.A||{};e.F=e.A.F=z;z.create=function(){A||(n=String.fromCharCode(128),n+=m.J(),x=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103, + 3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187, + 3204031479,3329325298],A=!0);var a=null,b=m.createBuffer(),e=Array(64),d={algorithm:"sha256",O:64,P:32,w:0,f:[0,0],start:function(){d.w=0;d.f=[0,0];b=m.createBuffer();a={g:1779033703,h:3144134277,i:1013904242,j:2773480762,l:1359893119,m:2600822924,o:528734635,s:1541459225};return d}};d.start();d.update=function(c,h){"utf8"===h&&(c=m.C(c));d.w+=c.length;d.f[0]+=c.length/4294967296>>>0;d.f[1]+=c.length>>>0;b.u(c);w(a,e,b);(2048>>28);c.c(d.f[1]<<3);var h={g:a.g,h:a.h,i:a.i,j:a.j,l:a.l,m:a.m,o:a.o,s:a.s};w(h,e,c);c=m.createBuffer();c.c(h.g);c.c(h.h);c.c(h.i);c.c(h.j);c.c(h.l);c.c(h.m);c.c(h.o);c.c(h.s);return c};return d};var n=null,A=!1,x=null;window.forge_sha256=function(a){var f=e.F.create();f.update(a,b.K(a)?"utf8":void 0);return f.digest().N()}})(); +; + diff --git a/resources/fluidbook/data/gal.js b/resources/fluidbook/data/gal.js new file mode 100644 index 0000000..b4535df --- /dev/null +++ b/resources/fluidbook/data/gal.js @@ -0,0 +1 @@ +(function(exports){var GAL=function(manifest,fsprefix){if(fsprefix==undefined){fsprefix=""}this._fsprefix=fsprefix;this._manifest=manifest;this.bundles={};this.bundleOrder=[];this.loaded={};this.progress={};this.error={};this.adapter=null};GAL.prototype.init=function(callback){console.log("gal init");var that=this;console.log(this._manifest);finishInit_.call(that,this._manifest,callback)};GAL.prototype.download=function(bundleName,callback){var bundle=this.bundles[bundleName];if(callback==undefined){callback=function(){}}if(!bundle){throw"Invalid bundle specified :: "+bundleName}var that=this;this.check(bundleName,function(result){if(result.success){fireCallback_(that.loaded,bundleName,{success:true,cached:true,bundleName:bundleName});callback()}else{if(!that.online()){fireCallback_(that.error,bundleName,{error:"Missing resources cant be downloaded while offline"});callback()}else{(function loop(index){if(index==bundle.length){fireCallback_(that.loaded,bundleName,{bundleName:bundleName,success:true});callback();return}var key=bundle[index];var url=encodeURI(that.manifest.assetRoot+key);var cb=function(){fireCallback_(that.progress,bundleName,{current:index+1,total:bundle.length});loop(index+1)};that.adapter.saveAsset(key,url,cb,function(){})})(0)}}})};GAL.prototype.onLoaded=function(opt_bundleName,callback){addCallback_(this.loaded,opt_bundleName,callback)};GAL.prototype.onProgress=function(opt_bundleName,callback){addCallback_(this.progress,opt_bundleName,callback)};GAL.prototype.onError=function(opt_bundleName,callback){addCallback_(this.error,opt_bundleName,callback)};GAL.prototype.downloadAndCall=function(bundleName,callback){console.log("download and call "+bundleName);var $this=this;var timeout=setTimeout(function(){$this.downloadAndCall(bundleName,callback)},1e3);this.check(bundleName,function(info){clearTimeout(timeout);if(info.success){console.log("already downloaded");callback()}else{console.log("i download");$this.download(bundleName,callback)}})};GAL.prototype.check=function(bundleName,callback){var bundle=this.bundles[bundleName];if(!bundle){callback({success:false});return}var adapter=this.adapter;(function loop(index){if(index==bundle.length){callback({success:true});return}var key=bundle[index];adapter.checkAsset(key,function(){loop(index+1)},function(){callback({success:false})})})(0)};GAL.prototype.get=function(assetPath){return this.adapter.getAssetUrl(assetPath)||null};GAL.prototype.cacheTime=function(assetPath){return Math.random()};GAL.prototype.online=function(){return navigator.onLine};GAL.prototype.getRootURL=function(){return this.adapter.root.toURL()};GAL.prototype.getRootNativeURL=function(){try{if(PLATFORM==="ios"){return cordova.file.dataDirectory+"/gal/"}else{return this.adapter.root.toNativeURL()}}catch(err){return this.getRootURL()}};GAL.prototype.initAdapter=function(callback){if(null==this.adapter){this.initAdapter_(callback)}else{callback(this.adapter)}};GAL.prototype.downloadAll=function(){downloadAll_.call(this)};GAL.prototype.clear=function(callback){var $this=this;this.initAdapter(function(adapter){adapter.clear(callback)})};GAL.prototype.initAdapter_=function(callback){console.log("gal init adapter");var $this=this;if(this.adapter!=null){callback(this.adapter);return}this.adapter=new GAL.adapterClass;this.adapter.init(this._fsprefix,function(){console.log("gal adapter inited");callback($this.adapter)})};function setManifest_(manifest){console.log("gal set manifest");this.manifest=manifest;for(var i=0,bundle;bundle=manifest.bundles[i];++i){this.bundles[bundle.name]=bundle.contents;this.bundleOrder.push(bundle.name)}}function finishInit_(manifest,callback){console.log("gal finish init");var context=this;this.initAdapter_.call(context,function(){console.log("gal set manifest");setManifest_.call(context,manifest);if(manifest.autoDownload){downloadAll_.call(context)}callback()})}function addCallback_(callbacks,bundleName,callback){if(typeof bundleName=="function"){callback=bundleName;bundleName="*"}if(!callbacks[bundleName]){callbacks[bundleName]=[]}callbacks[bundleName].push(callback)}function fireCallback_(callbacks,bundleName,params){fireCallbackHelper_(callbacks,bundleName,params);fireCallbackHelper_(callbacks,"*",params)}function fireCallbackHelper_(object,bundleName,params){var callbacks=object[bundleName];if(callbacks){for(var i=0,callback;callback=callbacks[i];++i){callbacks[i](params)}}}function downloadAll_(){var that=this;(function loop(bundleIndex){if(bundleIndex==that.bundleOrder.length){return}var bundleName=that.bundleOrder[bundleIndex];that.onLoaded(bundleName,function(){loop(bundleIndex+1)});that.download(bundleName)})(0)}exports.GameAssetLoader=GAL})(window);(function(gal){var ROOT_DIR;var DEFAULT_QUOTA=1024*1024*100;function onError(error){var message="unknown";switch(error.code){case FileError.NOT_FOUND_ERR:message="not found";break;case FileError.SECURITY_ERR:message="security";break;case FileError.ABORT_ERR:message="abort";break;case FileError.NOT_READABLE_ERR:message="not readable";break;case FileError.ENCODING_ERR:message="encoding";break;case FileError.NO_MODIFICATION_ALLOWED_ERR:message="no modification allowed";break;case FileError.INVALID_STATE_ERR:message="invalid state";break;case FileError.SYNTAX_ERR:message="syntax";break;case FileError.INVALID_MODIFICATION_ERR:message="invalid modification";break;case FileError.QUOTA_EXCEEDED_ERR:message="quota exceeded";break;case FileError.TYPE_MISMATCH_ERR:message="type mismatch";break;case FileError.PATH_EXISTS_ERR:message="path exists";break}console.log("Filesystem error:",error.code+" :: "+message)}function createDir_(root,folders,callback){console.log("createDir_ :: "+root.toURL()+" ;; "+folders.join("/"));if(folders.length&&(folders[0]==="."||folders[0]==="")){folders=folders.slice(1)}if(!folders.length){root.setMetadata(function(){},function(){},{"com.apple.MobileBackup":1});callback(root)}var f=folders.shift();var timeout=setTimeout(function(){window.location.reload(true)},1e3);root.getDirectory(f,{create:true},function(dirEntry){console.log("dirCreated !! "+folders.join("/")+" :: "+folders.length);clearTimeout(timeout);if(folders.length>0){createDir_(dirEntry,folders,callback)}else{callback(dirEntry)}},onError)}function dirname_(path){var match=path.match(/(.*)\//);return match&&match[1]||""}function basename_(path){return path.replace(/.*\//,"")}function GALFS(){this.lookupTable={}}GALFS.prototype.init=function(fsprefix,callback,opt_quota){console.log("gal fs init");if(fsprefix==undefined){fsprefix=""}if(fsprefix!=""){fsprefix+="/"}ROOT_DIR=fsprefix+"gal";var requestFileSystem=window.requestFileSystem||window.webkitRequestFileSystem;var storageInfo=window.storageInfo||window.webkitStorageInfo;var quota=opt_quota||DEFAULT_QUOTA;var that=this;var onInitFs=function(fs){console.log("fs inited");that.fs=fs;that.regenerate(callback)};console.log("request file system");requestFileSystem(LocalFileSystem.PERSISTENT,0,onInitFs,onError);var interval=setInterval(function(){if(that.fs){clearInterval(interval)}else{console.log("request file system again");requestFileSystem(LocalFileSystem.PERSISTENT,0,onInitFs,onError)}},500)};GALFS.prototype.saveAsset=function(key,url,callback,failCallback){var BlobBuilder=window.BlobBuilder||window.WebKitBlobBuilder;var root=this.root;var lookupTable=this.lookupTable;createDir_(root,dirname_(key).split("/"),function(dir){var file=basename_(key);dir.getFile(file,{create:true},function(fileEntry){var fileTransfer=new FileTransfer;var u=fileEntry.toURL();if(PLATFORM=="ios"){u=cordova.file.dataDirectory+fileEntry.fullPath}console.log("download to "+u);fileTransfer.download(url,u,function(entry){var e=entry.toURL();if(PLATFORM=="ios"){e=cordova.file.dataDirectory+entry.fullPath}lookupTable[key]=e;entry.setMetadata(function(entry){},failCallback,{"com.apple.MobileBackup":1});callback()},failCallback)},failCallback)})};GALFS.prototype.getAssetUrl=function(key){return this.lookupTable[key]};GALFS.prototype.checkAsset=function(key,callback,failCallback){var lookupTable=this.lookupTable;this.root.getFile(key,{},function(fileEntry){lookupTable[key]=fileEntry.toURL();callback()},failCallback)};GALFS.prototype.clear=function(cb){var $this=this;this.root.removeRecursively(function(){$this.regenerate(cb)},onError)};GALFS.prototype.regenerate=function(callback){console.log("gal fs regenerate");var that=this;var fs=this.fs;createDir_(fs.root,ROOT_DIR.split("/"),function(res){console.log("root dir created :: "+res.toURL());that.root=res;callback()})};if(!gal){throw"Game asset loader needs to be loaded before loading the fs adapter"}gal.adapterClass=GALFS})(GameAssetLoader); \ No newline at end of file diff --git a/resources/fluidbook/data/hammer.js b/resources/fluidbook/data/hammer.js new file mode 100644 index 0000000..c1113b8 --- /dev/null +++ b/resources/fluidbook/data/hammer.js @@ -0,0 +1,7 @@ +/*! Hammer.JS - v2.0.8 - 2016-04-23 + * http://hammerjs.github.io/ + * + * Copyright (c) 2016 Jorik Tangelder; + * Licensed under the MIT license */ +!function(a,b,c,d){"use strict";function e(a,b,c){return setTimeout(j(a,c),b)}function f(a,b,c){return Array.isArray(a)?(g(a,c[b],c),!0):!1}function g(a,b,c){var e;if(a)if(a.forEach)a.forEach(b,c);else if(a.length!==d)for(e=0;e\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",f=a.console&&(a.console.warn||a.console.log);return f&&f.call(a.console,e,d),b.apply(this,arguments)}}function i(a,b,c){var d,e=b.prototype;d=a.prototype=Object.create(e),d.constructor=a,d._super=e,c&&la(d,c)}function j(a,b){return function(){return a.apply(b,arguments)}}function k(a,b){return typeof a==oa?a.apply(b?b[0]||d:d,b):a}function l(a,b){return a===d?b:a}function m(a,b,c){g(q(b),function(b){a.addEventListener(b,c,!1)})}function n(a,b,c){g(q(b),function(b){a.removeEventListener(b,c,!1)})}function o(a,b){for(;a;){if(a==b)return!0;a=a.parentNode}return!1}function p(a,b){return a.indexOf(b)>-1}function q(a){return a.trim().split(/\s+/g)}function r(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;dc[b]}):d.sort()),d}function u(a,b){for(var c,e,f=b[0].toUpperCase()+b.slice(1),g=0;g1&&!c.firstMultiple?c.firstMultiple=D(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=E(d);b.timeStamp=ra(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=I(h,i),b.distance=H(h,i),B(c,b),b.offsetDirection=G(b.deltaX,b.deltaY);var j=F(b.deltaTime,b.deltaX,b.deltaY);b.overallVelocityX=j.x,b.overallVelocityY=j.y,b.overallVelocity=qa(j.x)>qa(j.y)?j.x:j.y,b.scale=g?K(g.pointers,d):1,b.rotation=g?J(g.pointers,d):0,b.maxPointers=c.prevInput?b.pointers.length>c.prevInput.maxPointers?b.pointers.length:c.prevInput.maxPointers:b.pointers.length,C(c,b);var k=a.element;o(b.srcEvent.target,k)&&(k=b.srcEvent.target),b.target=k}function B(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};b.eventType!==Ea&&f.eventType!==Ga||(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y)}function C(a,b){var c,e,f,g,h=a.lastInterval||b,i=b.timeStamp-h.timeStamp;if(b.eventType!=Ha&&(i>Da||h.velocity===d)){var j=b.deltaX-h.deltaX,k=b.deltaY-h.deltaY,l=F(i,j,k);e=l.x,f=l.y,c=qa(l.x)>qa(l.y)?l.x:l.y,g=G(j,k),a.lastInterval=b}else c=h.velocity,e=h.velocityX,f=h.velocityY,g=h.direction;b.velocity=c,b.velocityX=e,b.velocityY=f,b.direction=g}function D(a){for(var b=[],c=0;ce;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:pa(c/b),y:pa(d/b)}}function F(a,b,c){return{x:b/a||0,y:c/a||0}}function G(a,b){return a===b?Ia:qa(a)>=qa(b)?0>a?Ja:Ka:0>b?La:Ma}function H(a,b,c){c||(c=Qa);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function I(a,b,c){c||(c=Qa);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function J(a,b){return I(b[1],b[0],Ra)+I(a[1],a[0],Ra)}function K(a,b){return H(b[0],b[1],Ra)/H(a[0],a[1],Ra)}function L(){this.evEl=Ta,this.evWin=Ua,this.pressed=!1,x.apply(this,arguments)}function M(){this.evEl=Xa,this.evWin=Ya,x.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function N(){this.evTarget=$a,this.evWin=_a,this.started=!1,x.apply(this,arguments)}function O(a,b){var c=s(a.touches),d=s(a.changedTouches);return b&(Ga|Ha)&&(c=t(c.concat(d),"identifier",!0)),[c,d]}function P(){this.evTarget=bb,this.targetIds={},x.apply(this,arguments)}function Q(a,b){var c=s(a.touches),d=this.targetIds;if(b&(Ea|Fa)&&1===c.length)return d[c[0].identifier]=!0,[c,c];var e,f,g=s(a.changedTouches),h=[],i=this.target;if(f=c.filter(function(a){return o(a.target,i)}),b===Ea)for(e=0;e-1&&d.splice(a,1)};setTimeout(e,cb)}}function U(a){for(var b=a.srcEvent.clientX,c=a.srcEvent.clientY,d=0;d=f&&db>=g)return!0}return!1}function V(a,b){this.manager=a,this.set(b)}function W(a){if(p(a,jb))return jb;var b=p(a,kb),c=p(a,lb);return b&&c?jb:b||c?b?kb:lb:p(a,ib)?ib:hb}function X(){if(!fb)return!1;var b={},c=a.CSS&&a.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach(function(d){b[d]=c?a.CSS.supports("touch-action",d):!0}),b}function Y(a){this.options=la({},this.defaults,a||{}),this.id=v(),this.manager=null,this.options.enable=l(this.options.enable,!0),this.state=nb,this.simultaneous={},this.requireFail=[]}function Z(a){return a&sb?"cancel":a&qb?"end":a&pb?"move":a&ob?"start":""}function $(a){return a==Ma?"down":a==La?"up":a==Ja?"left":a==Ka?"right":""}function _(a,b){var c=b.manager;return c?c.get(a):a}function aa(){Y.apply(this,arguments)}function ba(){aa.apply(this,arguments),this.pX=null,this.pY=null}function ca(){aa.apply(this,arguments)}function da(){Y.apply(this,arguments),this._timer=null,this._input=null}function ea(){aa.apply(this,arguments)}function fa(){aa.apply(this,arguments)}function ga(){Y.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function ha(a,b){return b=b||{},b.recognizers=l(b.recognizers,ha.defaults.preset),new ia(a,b)}function ia(a,b){this.options=la({},ha.defaults,b||{}),this.options.inputTarget=this.options.inputTarget||a,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=a,this.input=y(this),this.touchAction=new V(this,this.options.touchAction),ja(this,!0),g(this.options.recognizers,function(a){var b=this.add(new a[0](a[1]));a[2]&&b.recognizeWith(a[2]),a[3]&&b.requireFailure(a[3])},this)}function ja(a,b){var c=a.element;if(c.style){var d;g(a.options.cssProps,function(e,f){d=u(c.style,f),b?(a.oldCssProps[d]=c.style[d],c.style[d]=e):c.style[d]=a.oldCssProps[d]||""}),b||(a.oldCssProps={})}}function ka(a,c){var d=b.createEvent("Event");d.initEvent(a,!0,!0),d.gesture=c,c.target.dispatchEvent(d)}var la,ma=["","webkit","Moz","MS","ms","o"],na=b.createElement("div"),oa="function",pa=Math.round,qa=Math.abs,ra=Date.now;la="function"!=typeof Object.assign?function(a){if(a===d||null===a)throw new TypeError("Cannot convert undefined or null to object");for(var b=Object(a),c=1;ch&&(b.push(a),h=b.length-1):e&(Ga|Ha)&&(c=!0),0>h||(b[h]=a,this.callback(this.manager,e,{pointers:b,changedPointers:[a],pointerType:f,srcEvent:a}),c&&b.splice(h,1))}});var Za={touchstart:Ea,touchmove:Fa,touchend:Ga,touchcancel:Ha},$a="touchstart",_a="touchstart touchmove touchend touchcancel";i(N,x,{handler:function(a){var b=Za[a.type];if(b===Ea&&(this.started=!0),this.started){var c=O.call(this,a,b);b&(Ga|Ha)&&c[0].length-c[1].length===0&&(this.started=!1),this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:za,srcEvent:a})}}});var ab={touchstart:Ea,touchmove:Fa,touchend:Ga,touchcancel:Ha},bb="touchstart touchmove touchend touchcancel";i(P,x,{handler:function(a){var b=ab[a.type],c=Q.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:za,srcEvent:a})}});var cb=2500,db=25;i(R,x,{handler:function(a,b,c){var d=c.pointerType==za,e=c.pointerType==Ba;if(!(e&&c.sourceCapabilities&&c.sourceCapabilities.firesTouchEvents)){if(d)S.call(this,b,c);else if(e&&U.call(this,c))return;this.callback(a,b,c)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var eb=u(na.style,"touchAction"),fb=eb!==d,gb="compute",hb="auto",ib="manipulation",jb="none",kb="pan-x",lb="pan-y",mb=X();V.prototype={set:function(a){a==gb&&(a=this.compute()),fb&&this.manager.element.style&&mb[a]&&(this.manager.element.style[eb]=a),this.actions=a.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var a=[];return g(this.manager.recognizers,function(b){k(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()))}),W(a.join(" "))},preventDefaults:function(a){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented)return void b.preventDefault();var d=this.actions,e=p(d,jb)&&!mb[jb],f=p(d,lb)&&!mb[lb],g=p(d,kb)&&!mb[kb];if(e){var h=1===a.pointers.length,i=a.distance<2,j=a.deltaTime<250;if(h&&i&&j)return}return g&&f?void 0:e||f&&c&Na||g&&c&Oa?this.preventSrc(b):void 0},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault()}};var nb=1,ob=2,pb=4,qb=8,rb=qb,sb=16,tb=32;Y.prototype={defaults:{},set:function(a){return la(this.options,a),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(a){if(f(a,"recognizeWith",this))return this;var b=this.simultaneous;return a=_(a,this),b[a.id]||(b[a.id]=a,a.recognizeWith(this)),this},dropRecognizeWith:function(a){return f(a,"dropRecognizeWith",this)?this:(a=_(a,this),delete this.simultaneous[a.id],this)},requireFailure:function(a){if(f(a,"requireFailure",this))return this;var b=this.requireFail;return a=_(a,this),-1===r(b,a)&&(b.push(a),a.requireFailure(this)),this},dropRequireFailure:function(a){if(f(a,"dropRequireFailure",this))return this;a=_(a,this);var b=r(this.requireFail,a);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(a){return!!this.simultaneous[a.id]},emit:function(a){function b(b){c.manager.emit(b,a)}var c=this,d=this.state;qb>d&&b(c.options.event+Z(d)),b(c.options.event),a.additionalEvent&&b(a.additionalEvent),d>=qb&&b(c.options.event+Z(d))},tryEmit:function(a){return this.canEmit()?this.emit(a):void(this.state=tb)},canEmit:function(){for(var a=0;af?Ja:Ka,c=f!=this.pX,d=Math.abs(a.deltaX)):(e=0===g?Ia:0>g?La:Ma,c=g!=this.pY,d=Math.abs(a.deltaY))),a.direction=e,c&&d>b.threshold&&e&b.direction},attrTest:function(a){return aa.prototype.attrTest.call(this,a)&&(this.state&ob||!(this.state&ob)&&this.directionTest(a))},emit:function(a){this.pX=a.deltaX,this.pY=a.deltaY;var b=$(a.direction);b&&(a.additionalEvent=this.options.event+b),this._super.emit.call(this,a)}}),i(ca,aa,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[jb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&ob)},emit:function(a){if(1!==a.scale){var b=a.scale<1?"in":"out";a.additionalEvent=this.options.event+b}this._super.emit.call(this,a)}}),i(da,Y,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[hb]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distanceb.time;if(this._input=a,!d||!c||a.eventType&(Ga|Ha)&&!f)this.reset();else if(a.eventType&Ea)this.reset(),this._timer=e(function(){this.state=rb,this.tryEmit()},b.time,this);else if(a.eventType&Ga)return rb;return tb},reset:function(){clearTimeout(this._timer)},emit:function(a){this.state===rb&&(a&&a.eventType&Ga?this.manager.emit(this.options.event+"up",a):(this._input.timeStamp=ra(),this.manager.emit(this.options.event,this._input)))}}),i(ea,aa,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[jb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&ob)}}),i(fa,aa,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Na|Oa,pointers:1},getTouchAction:function(){return ba.prototype.getTouchAction.call(this)},attrTest:function(a){var b,c=this.options.direction;return c&(Na|Oa)?b=a.overallVelocity:c&Na?b=a.overallVelocityX:c&Oa&&(b=a.overallVelocityY),this._super.attrTest.call(this,a)&&c&a.offsetDirection&&a.distance>this.options.threshold&&a.maxPointers==this.options.pointers&&qa(b)>this.options.velocity&&a.eventType&Ga},emit:function(a){var b=$(a.offsetDirection);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a)}}),i(ga,Y,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[ib]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance | http://jaywcjlove.github.io/hotkeys */ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).hotkeys=t()}(this,function(){"use strict";var e="undefined"!=typeof navigator&&0=(parseInt(e.getWindow(g).getComputedStyle(g).zIndex,10)||0)&&(n=o);else n=o}else n=o}var v,g;return n},_.matchesUpTo=function(t,e,n){for(;i.default.element(t);){if(P(t,e))return!0;if((t=S(t))===n)return P(t,e)}return!1},_.getActualElement=function(t){return t.correspondingUseElement||t},_.getScrollXY=T,_.getElementClientRect=M,_.getElementRect=function(t){var n=M(t);if(!b.default.isIOS7&&n){var r=T(e.getWindow(t));n.left+=r.x,n.right+=r.x,n.top+=r.y,n.bottom+=r.y}return n},_.getPath=function(t){for(var e=[];t;)e.push(t),t=S(t);return e},_.trySelector=function(t){return!!i.default.string(t)&&(h.default.document.querySelector(t),!0)};var O=function(t){return t.parentNode||t.host};function E(t,e){for(var n,r=[],o=t;(n=O(o))&&o!==e&&n!==o.ownerDocument;)r.unshift(o),o=n;return r}function T(t){return{x:(t=t||e.window).scrollX||t.document.documentElement.scrollLeft,y:t.scrollY||t.document.documentElement.scrollTop}}function M(t){var e=t instanceof h.default.SVGElement?t.getBoundingClientRect():t.getClientRects()[0];return e&&{left:e.left,right:e.right,top:e.top,bottom:e.bottom,width:e.width||e.right-e.left,height:e.height||e.bottom-e.top}}var j={};Object.defineProperty(j,"__esModule",{value:!0}),j.default=function(t,e){for(var n in e)t[n]=e[n];return t};var k={};function I(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n1?q(e):e[0];U(r,t.page),N(r,t.client),t.timeStamp=n},W.getTouchPair=V,W.pointerAverage=q,W.touchBBox=function(t){if(!t.length)return null;var e=V(t),n=Math.min(e[0].pageX,e[1].pageX),r=Math.min(e[0].pageY,e[1].pageY),o=Math.max(e[0].pageX,e[1].pageX),i=Math.max(e[0].pageY,e[1].pageY);return{x:n,y:r,left:n,top:r,right:o,bottom:i,width:o-n,height:i-r}},W.touchDistance=function(t,e){var n=e+"X",r=e+"Y",o=V(t),i=o[0][n]-o[1][n],a=o[0][r]-o[1][r];return(0,R.default)(i,a)},W.touchAngle=function(t,e){var n=e+"X",r=e+"Y",o=V(t),i=o[1][n]-o[0][n],a=o[1][r]-o[0][r];return 180*Math.atan2(a,i)/Math.PI},W.getPointerType=function(t){return i.default.string(t.pointerType)?t.pointerType:i.default.number(t.pointerType)?[void 0,void 0,"touch","pen","mouse"][t.pointerType]:/touch/.test(t.type)||t instanceof h.default.Touch?"touch":"mouse"},W.getEventTargets=function(t){var e=i.default.func(t.composedPath)?t.composedPath():t.path;return[_.getActualElement(e?e[0]:t.target),_.getActualElement(t.currentTarget)]},W.newCoords=function(){return{page:{x:0,y:0},client:{x:0,y:0},timeStamp:0}},W.coordsToEvent=function(t){return{coords:t,get page(){return this.coords.page},get client(){return this.coords.client},get timeStamp(){return this.coords.timeStamp},get pageX(){return this.coords.page.x},get pageY(){return this.coords.page.y},get clientX(){return this.coords.client.x},get clientY(){return this.coords.client.y},get pointerId(){return this.coords.pointerId},get target(){return this.coords.target},get type(){return this.coords.type},get pointerType(){return this.coords.pointerType},get buttons(){return this.coords.buttons},preventDefault:function(){}}},Object.defineProperty(W,"pointerExtend",{enumerable:!0,get:function(){return F.default}});var $={};function G(t,e){for(var n=0;ns.left&&f.xs.top&&f.y=s.left&&h<=s.right&&g>=s.top&&g<=s.bottom}v&&i.default.number(u)&&(l=Math.max(0,Math.min(s.right,v.right)-Math.max(s.left,v.left))*Math.max(0,Math.min(s.bottom,v.bottom)-Math.max(s.top,v.top))/(v.width*v.height)>=u);return t.options.drop.checker&&(l=t.options.drop.checker(e,n,l,t,a,r,o)),l}(this,t,e,n,r,o,a)},n.dynamicDrop=function(e){return i.default.bool(e)?(t.dynamicDrop=e,n):t.dynamicDrop},(0,j.default)(e.phaselessTypes,{dragenter:!0,dragleave:!0,dropactivate:!0,dropdeactivate:!0,dropmove:!0,drop:!0}),e.methodDict.drop="dropzone",t.dynamicDrop=!1,o.actions.drop=pt.defaults},listeners:{"interactions:before-action-start":function(t){var e=t.interaction;"drag"===e.prepared.name&&(e.dropState={cur:{dropzone:null,element:null},prev:{dropzone:null,element:null},rejected:null,events:null,activeDrops:[]})},"interactions:after-action-start":function(t,e){var n=t.interaction,r=(t.event,t.iEvent);if("drag"===n.prepared.name){var o=n.dropState;o.activeDrops=null,o.events=null,o.activeDrops=lt(e,n.element),o.events=ct(n,0,r),o.events.activate&&(st(o.activeDrops,o.events.activate),e.fire("actions/drop:start",{interaction:n,dragEvent:r}))}},"interactions:action-move":dt,"interactions:after-action-move":function(t,e){var n=t.interaction,r=t.iEvent;"drag"===n.prepared.name&&(ft(n,n.dropState.events),e.fire("actions/drop:move",{interaction:n,dragEvent:r}),n.dropState.events={})},"interactions:action-end":function(t,e){if("drag"===t.interaction.prepared.name){var n=t.interaction,r=t.iEvent;dt(t,e),ft(n,n.dropState.events),e.fire("actions/drop:end",{interaction:n,dragEvent:r})}},"interactions:stop":function(t){var e=t.interaction;if("drag"===e.prepared.name){var n=e.dropState;n&&(n.activeDrops=null,n.events=null,n.cur.dropzone=null,n.cur.element=null,n.prev.dropzone=null,n.prev.element=null,n.rejected=!1)}}},getActiveDrops:lt,getDrop:ut,getDropEvents:ct,fireDropEvents:ft,defaults:{enabled:!1,accept:null,overlap:"pointer"}},vt=pt;at.default=vt;var ht={};function gt(t){var e=t.interaction,n=t.iEvent,r=t.phase;if("gesture"===e.prepared.name){var o=e.pointers.map((function(t){return t.pointer})),a="start"===r,s="end"===r,l=e.interactable.options.deltaSource;if(n.touches=[o[0],o[1]],a)n.distance=W.touchDistance(o,l),n.box=W.touchBBox(o),n.scale=1,n.ds=0,n.angle=W.touchAngle(o,l),n.da=0,e.gesture.startDistance=n.distance,e.gesture.startAngle=n.angle;else if(s){var u=e.prevEvent;n.distance=u.distance,n.box=u.box,n.scale=u.scale,n.ds=0,n.angle=u.angle,n.da=0}else n.distance=W.touchDistance(o,l),n.box=W.touchBBox(o),n.scale=n.distance/e.gesture.startDistance,n.angle=W.touchAngle(o,l),n.ds=n.scale-e.gesture.scale,n.da=n.angle-e.gesture.angle;e.gesture.distance=n.distance,e.gesture.angle=n.angle,i.default.number(n.scale)&&n.scale!==1/0&&!isNaN(n.scale)&&(e.gesture.scale=n.scale)}}Object.defineProperty(ht,"__esModule",{value:!0}),ht.default=void 0;var yt={id:"actions/gesture",before:["actions/drag","actions/resize"],install:function(t){var e=t.actions,n=t.Interactable,r=t.defaults;n.prototype.gesturable=function(t){return i.default.object(t)?(this.options.gesture.enabled=!1!==t.enabled,this.setPerAction("gesture",t),this.setOnEvents("gesture",t),this):i.default.bool(t)?(this.options.gesture.enabled=t,this):this.options.gesture},e.map.gesture=yt,e.methodDict.gesture="gesturable",r.actions.gesture=yt.defaults},listeners:{"interactions:action-start":gt,"interactions:action-move":gt,"interactions:action-end":gt,"interactions:new":function(t){t.interaction.gesture={angle:0,distance:0,scale:1,startAngle:0,startDistance:0}},"auto-start:check":function(t){if(!(t.interaction.pointers.length<2)){var e=t.interactable.options.gesture;if(e&&e.enabled)return t.action={name:"gesture"},!1}}},defaults:{},getCursor:function(){return""}},mt=yt;ht.default=mt;var bt={};function xt(t,e,n,r,o,a,s){if(!e)return!1;if(!0===e){var l=i.default.number(a.width)?a.width:a.right-a.left,u=i.default.number(a.height)?a.height:a.bottom-a.top;if(s=Math.min(s,Math.abs(("left"===t||"right"===t?l:u)/2)),l<0&&("left"===t?t="right":"right"===t&&(t="left")),u<0&&("top"===t?t="bottom":"bottom"===t&&(t="top")),"left"===t)return n.x<(l>=0?a.left:a.right)+s;if("top"===t)return n.y<(u>=0?a.top:a.bottom)+s;if("right"===t)return n.x>(l>=0?a.right:a.left)-s;if("bottom"===t)return n.y>(u>=0?a.bottom:a.top)-s}return!!i.default.element(r)&&(i.default.element(e)?e===r:_.matchesUpTo(r,e,o))}function wt(t){var e=t.iEvent,n=t.interaction;if("resize"===n.prepared.name&&n.resizeAxes){var r=e;n.interactable.options.resize.square?("y"===n.resizeAxes?r.delta.x=r.delta.y:r.delta.y=r.delta.x,r.axes="xy"):(r.axes=n.resizeAxes,"x"===n.resizeAxes?r.delta.y=0:"y"===n.resizeAxes&&(r.delta.x=0))}}Object.defineProperty(bt,"__esModule",{value:!0}),bt.default=void 0;var _t={id:"actions/resize",before:["actions/drag"],install:function(t){var e=t.actions,n=t.browser,r=t.Interactable,o=t.defaults;_t.cursors=function(t){return t.isIe9?{x:"e-resize",y:"s-resize",xy:"se-resize",top:"n-resize",left:"w-resize",bottom:"s-resize",right:"e-resize",topleft:"se-resize",bottomright:"se-resize",topright:"ne-resize",bottomleft:"ne-resize"}:{x:"ew-resize",y:"ns-resize",xy:"nwse-resize",top:"ns-resize",left:"ew-resize",bottom:"ns-resize",right:"ew-resize",topleft:"nwse-resize",bottomright:"nwse-resize",topright:"nesw-resize",bottomleft:"nesw-resize"}}(n),_t.defaultMargin=n.supportsTouch||n.supportsPointerEvent?20:10,r.prototype.resizable=function(e){return function(t,e,n){return i.default.object(e)?(t.options.resize.enabled=!1!==e.enabled,t.setPerAction("resize",e),t.setOnEvents("resize",e),i.default.string(e.axis)&&/^x$|^y$|^xy$/.test(e.axis)?t.options.resize.axis=e.axis:null===e.axis&&(t.options.resize.axis=n.defaults.actions.resize.axis),i.default.bool(e.preserveAspectRatio)?t.options.resize.preserveAspectRatio=e.preserveAspectRatio:i.default.bool(e.square)&&(t.options.resize.square=e.square),t):i.default.bool(e)?(t.options.resize.enabled=e,t):t.options.resize}(this,e,t)},e.map.resize=_t,e.methodDict.resize="resizable",o.actions.resize=_t.defaults},listeners:{"interactions:new":function(t){t.interaction.resizeAxes="xy"},"interactions:action-start":function(t){!function(t){var e=t.iEvent,n=t.interaction;if("resize"===n.prepared.name&&n.prepared.edges){var r=e,o=n.rect;n._rects={start:(0,j.default)({},o),corrected:(0,j.default)({},o),previous:(0,j.default)({},o),delta:{left:0,right:0,width:0,top:0,bottom:0,height:0}},r.edges=n.prepared.edges,r.rect=n._rects.corrected,r.deltaRect=n._rects.delta}}(t),wt(t)},"interactions:action-move":function(t){!function(t){var e=t.iEvent,n=t.interaction;if("resize"===n.prepared.name&&n.prepared.edges){var r=e,o=n.interactable.options.resize.invert,i="reposition"===o||"negate"===o,a=n.rect,s=n._rects,l=s.start,u=s.corrected,c=s.delta,f=s.previous;if((0,j.default)(f,u),i){if((0,j.default)(u,a),"reposition"===o){if(u.top>u.bottom){var d=u.top;u.top=u.bottom,u.bottom=d}if(u.left>u.right){var p=u.left;u.left=u.right,u.right=p}}}else u.top=Math.min(a.top,l.bottom),u.bottom=Math.max(a.bottom,l.top),u.left=Math.min(a.left,l.right),u.right=Math.max(a.right,l.left);for(var v in u.width=u.right-u.left,u.height=u.bottom-u.top,u)c[v]=u[v]-f[v];r.edges=n.prepared.edges,r.rect=u,r.deltaRect=c}}(t),wt(t)},"interactions:action-end":function(t){var e=t.iEvent,n=t.interaction;if("resize"===n.prepared.name&&n.prepared.edges){var r=e;r.edges=n.prepared.edges,r.rect=n._rects.corrected,r.deltaRect=n._rects.delta}},"auto-start:check":function(t){var e=t.interaction,n=t.interactable,r=t.element,o=t.rect,a=t.buttons;if(o){var s=(0,j.default)({},e.coords.cur.page),l=n.options.resize;if(l&&l.enabled&&(!e.pointerIsDown||!/mouse|pointer/.test(e.pointerType)||0!=(a&l.mouseButtons))){if(i.default.object(l.edges)){var u={left:!1,right:!1,top:!1,bottom:!1};for(var c in u)u[c]=xt(c,l.edges[c],s,e._latestPointer.eventTarget,r,o,l.margin||_t.defaultMargin);u.left=u.left&&!u.right,u.top=u.top&&!u.bottom,(u.left||u.right||u.top||u.bottom)&&(t.action={name:"resize",edges:u})}else{var f="y"!==l.axis&&s.x>o.right-_t.defaultMargin,d="x"!==l.axis&&s.y>o.bottom-_t.defaultMargin;(f||d)&&(t.action={name:"resize",axes:(f?"x":"")+(d?"y":"")})}return!t.action&&void 0}}}},defaults:{square:!1,preserveAspectRatio:!1,axis:"xy",margin:NaN,edges:null,invert:"none"},cursors:null,getCursor:function(t){var e=t.edges,n=t.axis,r=t.name,o=_t.cursors,i=null;if(n)i=o[r+n];else if(e){for(var a="",s=["top","bottom","left","right"],l=0;l=1){var c={x:At.x*u,y:At.y*u};if(c.x||c.y){var f=Ct(a);i.default.window(a)?a.scrollBy(c.x,c.y):a&&(a.scrollLeft+=c.x,a.scrollTop+=c.y);var d=Ct(a),p={x:d.x-f.x,y:d.y-f.y};(p.x||p.y)&&e.fire({type:"autoscroll",target:n,interactable:e,delta:p,interaction:t,container:a})}At.prevTime=s}At.isScrolling&&(Tt.default.cancel(At.i),At.i=Tt.default.request(At.scroll))},check:function(t,e){var n=t.options;return n[e].autoScroll&&n[e].autoScroll.enabled},onInteractionMove:function(t){var e=t.interaction,n=t.pointer;if(e.interacting()&&At.check(e.interactable,e.prepared.name))if(e.simulation)At.x=At.y=0;else{var r,o,a,s,l=e.interactable,u=e.element,c=e.prepared.name,f=l.options[c].autoScroll,d=zt(f.container,l,u);if(i.default.window(d))s=n.clientXd.innerWidth-At.margin,a=n.clientY>d.innerHeight-At.margin;else{var p=_.getElementClientRect(d);s=n.clientXp.right-At.margin,a=n.clientY>p.bottom-At.margin}At.x=o?1:s?-1:0,At.y=a?1:r?-1:0,At.isScrolling||(At.margin=f.margin,At.speed=f.speed,At.start(e))}}};function zt(t,n,r){return(i.default.string(t)?(0,k.getStringOptionResult)(t,n,r):t)||(0,e.getWindow)(r)}function Ct(t){return i.default.window(t)&&(t=window.document.body),{x:t.scrollLeft,y:t.scrollTop}}var Rt={id:"auto-scroll",install:function(t){var e=t.defaults,n=t.actions;t.autoScroll=At,At.now=function(){return t.now()},n.phaselessTypes.autoscroll=!0,e.perAction.autoScroll=At.defaults},listeners:{"interactions:new":function(t){t.interaction.autoScroll=null},"interactions:destroy":function(t){t.interaction.autoScroll=null,At.stop(),At.interaction&&(At.interaction=null)},"interactions:stop":At.stop,"interactions:action-move":function(t){return At.onInteractionMove(t)}}};Dt.default=Rt;var Ft={};Object.defineProperty(Ft,"__esModule",{value:!0}),Ft.warnOnce=function(t,n){var r=!1;return function(){return r||(e.window.console.warn(n),r=!0),t.apply(this,arguments)}},Ft.copyAction=function(t,e){return t.name=e.name,t.axis=e.axis,t.edges=e.edges,t};var Xt={};function Yt(t){return i.default.bool(t)?(this.options.styleCursor=t,this):null===t?(delete this.options.styleCursor,this):this.options.styleCursor}function Wt(t){return i.default.func(t)?(this.options.actionChecker=t,this):null===t?(delete this.options.actionChecker,this):this.options.actionChecker}Object.defineProperty(Xt,"__esModule",{value:!0}),Xt.default=void 0;var Lt={id:"auto-start/interactableMethods",install:function(t){var e=t.Interactable;e.prototype.getAction=function(e,n,r,o){var i=function(t,e,n,r,o){var i=t.getRect(r),a={action:null,interactable:t,interaction:n,element:r,rect:i,buttons:e.buttons||{0:1,1:4,3:8,4:16}[e.button]};return o.fire("auto-start:check",a),a.action}(this,n,r,o,t);return this.options.actionChecker?this.options.actionChecker(e,n,i,this,o,r):i},e.prototype.ignoreFrom=(0,Ft.warnOnce)((function(t){return this._backCompatOption("ignoreFrom",t)}),"Interactable.ignoreFrom() has been deprecated. Use Interactble.draggable({ignoreFrom: newValue})."),e.prototype.allowFrom=(0,Ft.warnOnce)((function(t){return this._backCompatOption("allowFrom",t)}),"Interactable.allowFrom() has been deprecated. Use Interactble.draggable({allowFrom: newValue})."),e.prototype.actionChecker=Wt,e.prototype.styleCursor=Yt}};Xt.default=Lt;var Bt={};function Ut(t,e,n,r,o){return e.testIgnoreAllow(e.options[t.name],n,r)&&e.options[t.name].enabled&&$t(e,n,t,o)?t:null}function Nt(t,e,n,r,o,i,a){for(var s=0,l=r.length;s=s)return!1;if(d.interactable===t){if((u+=p===n.name?1:0)>=i)return!1;if(d.element===e&&(c++,p===n.name&&c>=a))return!1}}}return s>0}function Gt(t,e){return i.default.number(t)?(e.autoStart.maxInteractions=t,this):e.autoStart.maxInteractions}function Ht(t,e,n){var r=n.autoStart.cursorElement;r&&r!==t&&(r.style.cursor=""),t.ownerDocument.documentElement.style.cursor=e,t.style.cursor=e,n.autoStart.cursorElement=e?t:null}function Kt(t,e){var n=t.interactable,r=t.element,o=t.prepared;if("mouse"===t.pointerType&&n&&n.options.styleCursor){var a="";if(o.name){var s=n.options[o.name].cursorChecker;a=i.default.func(s)?s(o,n,r,t._interacting):e.actions.map[o.name].getCursor(o)}Ht(t.element,a||"",e)}else e.autoStart.cursorElement&&Ht(e.autoStart.cursorElement,"",e)}Object.defineProperty(Bt,"__esModule",{value:!0}),Bt.default=void 0;var Zt={id:"auto-start/base",before:["actions"],install:function(t){var e=t.interactStatic,n=t.defaults;t.usePlugin(Xt.default),n.base.actionChecker=null,n.base.styleCursor=!0,(0,j.default)(n.perAction,{manualStart:!1,max:1/0,maxPerElement:1,allowFrom:null,ignoreFrom:null,mouseButtons:1}),e.maxInteractions=function(e){return Gt(e,t)},t.autoStart={maxInteractions:1/0,withinInteractionLimit:$t,cursorElement:null}},listeners:{"interactions:down":function(t,e){var n=t.interaction,r=t.pointer,o=t.event,i=t.eventTarget;n.interacting()||qt(n,Vt(n,r,o,i,e),e)},"interactions:move":function(t,e){!function(t,e){var n=t.interaction,r=t.pointer,o=t.event,i=t.eventTarget;"mouse"!==n.pointerType||n.pointerIsDown||n.interacting()||qt(n,Vt(n,r,o,i,e),e)}(t,e),function(t,e){var n=t.interaction;if(n.pointerIsDown&&!n.interacting()&&n.pointerWasMoved&&n.prepared.name){e.fire("autoStart:before-start",t);var r=n.interactable,o=n.prepared.name;o&&r&&(r.options[o].manualStart||!$t(r,n.element,n.prepared,e)?n.stop():(n.start(n.prepared,r,n.element),Kt(n,e)))}}(t,e)},"interactions:stop":function(t,e){var n=t.interaction,r=n.interactable;r&&r.options.styleCursor&&Ht(n.element,"",e)}},maxInteractions:Gt,withinInteractionLimit:$t,validateAction:Ut};Bt.default=Zt;var Jt={};Object.defineProperty(Jt,"__esModule",{value:!0}),Jt.default=void 0;var Qt={id:"auto-start/dragAxis",listeners:{"autoStart:before-start":function(t,e){var n=t.interaction,r=t.eventTarget,o=t.dx,a=t.dy;if("drag"===n.prepared.name){var s=Math.abs(o),l=Math.abs(a),u=n.interactable.options.drag,c=u.startAxis,f=s>l?"x":s0&&(e.autoStartHoldTimer=setTimeout((function(){e.start(e.prepared,e.interactable,e.element)}),n))},"interactions:move":function(t){var e=t.interaction,n=t.duplicate;e.autoStartHoldTimer&&e.pointerWasMoved&&!n&&(clearTimeout(e.autoStartHoldTimer),e.autoStartHoldTimer=null)},"autoStart:before-start":function(t){var e=t.interaction;ee(e)>0&&(e.prepared.name=null)}},getHoldDuration:ee};te.default=ne;var re={};Object.defineProperty(re,"__esModule",{value:!0}),re.default=void 0;var oe={id:"auto-start",install:function(t){t.usePlugin(Bt.default),t.usePlugin(te.default),t.usePlugin(Jt.default)}};re.default=oe;var ie={};Object.defineProperty(ie,"__esModule",{value:!0}),ie.default=void 0,ie.default={};var ae={};function se(t){return/^(always|never|auto)$/.test(t)?(this.options.preventDefault=t,this):i.default.bool(t)?(this.options.preventDefault=t?"always":"never",this):this.options.preventDefault}function le(t){var e=t.interaction,n=t.event;e.interactable&&e.interactable.checkAndPreventDefault(n)}function ue(t){var n=t.Interactable;n.prototype.preventDefault=se,n.prototype.checkAndPreventDefault=function(n){return function(t,n,r){var o=t.options.preventDefault;if("never"!==o)if("always"!==o){if(n.events.supportsPassive&&/^touch(start|move)$/.test(r.type)){var a=(0,e.getWindow)(r.target).document,s=n.getDocOptions(a);if(!s||!s.events||!1!==s.events.passive)return}/^(mouse|pointer|touch)*(down|start)/i.test(r.type)||i.default.element(r.target)&&(0,_.matchesSelector)(r.target,"input,select,textarea,[contenteditable=true],[contenteditable=true] *")||r.preventDefault()}else r.preventDefault()}(this,t,n)},t.interactions.docEvents.push({type:"dragstart",listener:function(e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=Array(e);n1&&void 0!==arguments[1]?arguments[1]:{},n=e.logger,r=t.Interactable,o=t.defaults;t.logger=n||console,o.base.devTools={ignore:{}},r.prototype.devTools=function(t){return t?((0,j.default)(this.options.devTools,t),this):this.options.devTools}},listeners:{"interactions:action-start":function(t,e){for(var n=t.interaction,r=0;rt.length)&&(e=t.length);for(var n=0,r=Array(e);n150)return null;var e=180*Math.atan2(t.prevEvent.velocityY,t.prevEvent.velocityX)/Math.PI;e<0&&(e+=360);var n=112.5<=e&&e<247.5,r=202.5<=e&&e<337.5;return{up:r,down:!r&&22.5<=e&&e<157.5,left:n,right:!n&&(292.5<=e||e<67.5),angle:e,speed:t.prevEvent.speed,velocity:{x:t.prevEvent.velocityX,y:t.prevEvent.velocityY}}}},{key:"preventDefault",value:function(){}},{key:"stopImmediatePropagation",value:function(){this.immediatePropagationStopped=this.propagationStopped=!0}},{key:"stopPropagation",value:function(){this.propagationStopped=!0}}])&&Ae(e.prototype,n),a}($.BaseEvent);Ie.InteractEvent=Xe,Object.defineProperties(Xe.prototype,{pageX:{get:function(){return this.page.x},set:function(t){this.page.x=t}},pageY:{get:function(){return this.page.y},set:function(t){this.page.y=t}},clientX:{get:function(){return this.client.x},set:function(t){this.client.x=t}},clientY:{get:function(){return this.client.y},set:function(t){this.client.y=t}},dx:{get:function(){return this.delta.x},set:function(t){this.delta.x=t}},dy:{get:function(){return this.delta.y},set:function(t){this.delta.y=t}},velocityX:{get:function(){return this.velocity.x},set:function(t){this.velocity.x=t}},velocityY:{get:function(){return this.velocity.y},set:function(t){this.velocity.y=t}}});var Ye={};Object.defineProperty(Ye,"__esModule",{value:!0}),Ye.PointerInfo=void 0,Ye.PointerInfo=function t(e,n,r,o,i){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.id=void 0,this.pointer=void 0,this.event=void 0,this.downTime=void 0,this.downTarget=void 0,this.id=e,this.pointer=n,this.event=r,this.downTime=o,this.downTarget=i};var We,Le,Be={};function Ue(t,e){for(var n=0;nthis.pointerMoveTolerance);var a=this.getPointerIndex(t),s={pointer:t,pointerIndex:a,pointerInfo:this.pointers[a],event:e,type:"move",eventTarget:n,dx:r,dy:o,duplicate:i,interaction:this};i||W.setCoordVelocity(this.coords.velocity,this.coords.delta),this._scopeFire("interactions:move",s),i||this.simulation||(this.interacting()&&(s.type=null,this.move(s)),this.pointerWasMoved&&W.copyCoords(this.coords.prev,this.coords.cur))}},{key:"move",value:function(t){t&&t.event||W.setZeroCoords(this.coords.delta),(t=(0,j.default)({pointer:this._latestPointer.pointer,event:this._latestPointer.event,eventTarget:this._latestPointer.eventTarget,interaction:this},t||{})).phase="move",this._doPhase(t)}},{key:"pointerUp",value:function(t,e,n,r){var o=this.getPointerIndex(t);-1===o&&(o=this.updatePointer(t,e,n,!1));var i=/cancel$/i.test(e.type)?"cancel":"up";this._scopeFire("interactions:".concat(i),{pointer:t,pointerIndex:o,pointerInfo:this.pointers[o],event:e,eventTarget:n,type:i,curEventTarget:r,interaction:this}),this.simulation||this.end(e),this.removePointer(t,e)}},{key:"documentBlur",value:function(t){this.end(t),this._scopeFire("interactions:blur",{event:t,type:"blur",interaction:this})}},{key:"end",value:function(t){var e;this._ending=!0,t=t||this._latestPointer.event,this.interacting()&&(e=this._doPhase({event:t,interaction:this,phase:"end"})),this._ending=!1,!0===e&&this.stop()}},{key:"currentAction",value:function(){return this._interacting?this.prepared.name:null}},{key:"interacting",value:function(){return this._interacting}},{key:"stop",value:function(){this._scopeFire("interactions:stop",{interaction:this}),this.interactable=this.element=null,this._interacting=!1,this._stopped=!0,this.prepared.name=this.prevEvent=null}},{key:"getPointerIndex",value:function(t){var e=W.getPointerId(t);return"mouse"===this.pointerType||"pen"===this.pointerType?this.pointers.length-1:K.findIndex(this.pointers,(function(t){return t.id===e}))}},{key:"getPointerInfo",value:function(t){return this.pointers[this.getPointerIndex(t)]}},{key:"updatePointer",value:function(t,e,n,r){var o=W.getPointerId(t),i=this.getPointerIndex(t),a=this.pointers[i];return r=!1!==r&&(r||/(down|start)$/i.test(e.type)),a?a.pointer=t:(a=new Ye.PointerInfo(o,t,e,null,null),i=this.pointers.length,this.pointers.push(a)),W.setCoords(this.coords.cur,this.pointers.map((function(t){return t.pointer})),this._now()),W.setCoordDeltas(this.coords.delta,this.coords.prev,this.coords.cur),r&&(this.pointerIsDown=!0,a.downTime=this.coords.cur.timeStamp,a.downTarget=n,W.pointerExtend(this.downPointer,t),this.interacting()||(W.copyCoords(this.coords.start,this.coords.cur),W.copyCoords(this.coords.prev,this.coords.cur),this.downEvent=e,this.pointerWasMoved=!1)),this._updateLatestPointer(t,e,n),this._scopeFire("interactions:update-pointer",{pointer:t,event:e,eventTarget:n,down:r,pointerInfo:a,pointerIndex:i,interaction:this}),i}},{key:"removePointer",value:function(t,e){var n=this.getPointerIndex(t);if(-1!==n){var r=this.pointers[n];this._scopeFire("interactions:remove-pointer",{pointer:t,event:e,eventTarget:null,pointerIndex:n,pointerInfo:r,interaction:this}),this.pointers.splice(n,1),this.pointerIsDown=!1}}},{key:"_updateLatestPointer",value:function(t,e,n){this._latestPointer.pointer=t,this._latestPointer.event=e,this._latestPointer.eventTarget=n}},{key:"destroy",value:function(){this._latestPointer.pointer=null,this._latestPointer.event=null,this._latestPointer.eventTarget=null}},{key:"_createPreparedEvent",value:function(t,e,n,r){return new Ie.InteractEvent(this,t,this.prepared.name,e,this.element,n,r)}},{key:"_fireEvent",value:function(t){this.interactable.fire(t),(!this.prevEvent||t.timeStamp>=this.prevEvent.timeStamp)&&(this.prevEvent=t)}},{key:"_doPhase",value:function(t){var e=t.event,n=t.phase,r=t.preEnd,o=t.type,i=this.rect;if(i&&"move"===n&&(k.addEdges(this.edges,i,this.coords.delta[this.interactable.options.deltaSource]),i.width=i.right-i.left,i.height=i.bottom-i.top),!1===this._scopeFire("interactions:before-action-".concat(n),t))return!1;var a=t.iEvent=this._createPreparedEvent(e,n,r,o);return this._scopeFire("interactions:action-".concat(n),t),"start"===n&&(this.prevEvent=a),this._fireEvent(a),this._scopeFire("interactions:after-action-".concat(n),t),!0}},{key:"_now",value:function(){return Date.now()}}]),t}();Be.Interaction=qe;var $e=qe;Be.default=$e;var Ge={};function He(t){t.pointerIsDown&&(Qe(t.coords.cur,t.offset.total),t.offset.pending.x=0,t.offset.pending.y=0)}function Ke(t){Ze(t.interaction)}function Ze(t){if(!function(t){return!(!t.offset.pending.x&&!t.offset.pending.y)}(t))return!1;var e=t.offset.pending;return Qe(t.coords.cur,e),Qe(t.coords.delta,e),k.addEdges(t.edges,t.rect,e),e.x=0,e.y=0,!0}function Je(t){var e=t.x,n=t.y;this.offset.pending.x+=e,this.offset.pending.y+=n,this.offset.total.x+=e,this.offset.total.y+=n}function Qe(t,e){var n=t.page,r=t.client,o=e.x,i=e.y;n.x+=o,n.y+=i,r.x+=o,r.y+=i}Object.defineProperty(Ge,"__esModule",{value:!0}),Ge.addTotal=He,Ge.applyPending=Ze,Ge.default=void 0,Be._ProxyMethods.offsetBy="";var tn={id:"offset",before:["modifiers","pointer-events","actions","inertia"],install:function(t){t.Interaction.prototype.offsetBy=Je},listeners:{"interactions:new":function(t){t.interaction.offset={total:{x:0,y:0},pending:{x:0,y:0}}},"interactions:update-pointer":function(t){return He(t.interaction)},"interactions:before-action-start":Ke,"interactions:before-action-move":Ke,"interactions:before-action-end":function(t){var e=t.interaction;if(Ze(e))return e.move({offset:!0}),e.end(),!1},"interactions:stop":function(t){var e=t.interaction;e.offset.total.x=0,e.offset.total.y=0,e.offset.pending.x=0,e.offset.pending.y=0}}};Ge.default=tn;var en={};function nn(t,e){for(var n=0;nn.minSpeed&&o>n.endSpeed)this.startInertia();else{if(i.result=i.setAll(this.modifierArg),!i.result.changed)return!1;this.startSmoothEnd()}return e.modification.result.rect=null,e.offsetBy(this.targetOffset),e._doPhase({interaction:e,event:t,phase:"inertiastart"}),e.offsetBy({x:-this.targetOffset.x,y:-this.targetOffset.y}),e.modification.result.rect=null,this.active=!0,e.simulation=this,!0}},{key:"startInertia",value:function(){var t=this,e=this.interaction.coords.velocity.client,n=on(this.interaction),r=n.resistance,o=-Math.log(n.endSpeed/this.v0)/r;this.targetOffset={x:(e.x-o)/r,y:(e.y-o)/r},this.te=o,this.lambda_v0=r/this.v0,this.one_ve_v0=1-n.endSpeed/this.v0;var i=this.modification,a=this.modifierArg;a.pageCoords={x:this.startCoords.x+this.targetOffset.x,y:this.startCoords.y+this.targetOffset.y},i.result=i.setAll(a),i.result.changed&&(this.isModified=!0,this.modifiedOffset={x:this.targetOffset.x+i.result.delta.x,y:this.targetOffset.y+i.result.delta.y}),this.onNextFrame((function(){return t.inertiaTick()}))}},{key:"startSmoothEnd",value:function(){var t=this;this.smoothEnd=!0,this.isModified=!0,this.targetOffset={x:this.modification.result.delta.x,y:this.modification.result.delta.y},this.onNextFrame((function(){return t.smoothEndTick()}))}},{key:"onNextFrame",value:function(t){var e=this;this.timeout=Tt.default.request((function(){e.active&&t()}))}},{key:"inertiaTick",value:function(){var t,e,n,r,o,i=this,a=this.interaction,s=on(a).resistance,l=(a._now()-this.t0)/1e3;if(l=0;n--){var r=e[n],o=r.selector,a=r.context,s=r.listeners;o===this.target&&a===this._context&&e.splice(n,1);for(var l=s.length-1;l>=0;l--)this._scopeEvents.removeDelegate(this.target,this._context,t,s[l][0],s[l][1])}else this._scopeEvents.remove(this.target,"all")}}]),t}();vn.Interactable=yn;var mn={};function bn(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=Array(e);n=0;a--){var p=f[a];if(p.selector===t&&p.context===e){for(var v=p.listeners,h=v.length-1;h>=0;h--){var g=Sn(v[h],2),y=g[0],m=g[1],b=m.capture,x=m.passive;if(y===o&&b===c.capture&&x===c.passive){v.splice(h,1),v.length||(f.splice(a,1),s(e,r,l),s(e,r,u,!0)),d=!0;break}}if(d)break}}},delegateListener:l,delegateUseCapture:u,delegatedEvents:n,documents:r,targets:e,supportsOptions:!1,supportsPassive:!1};function a(t,n,r,i){var a=En(i),s=K.find(e,(function(e){return e.eventTarget===t}));s||(s={eventTarget:t,events:{}},e.push(s)),s.events[n]||(s.events[n]=[]),t.addEventListener&&!K.contains(s.events[n],r)&&(t.addEventListener(n,r,o.supportsOptions?a:a.capture),s.events[n].push(r))}function s(t,n,r,i){var a=En(i),l=K.findIndex(e,(function(e){return e.eventTarget===t})),u=e[l];if(u&&u.events)if("all"!==n){var c=!1,f=u.events[n];if(f){if("all"===r){for(var d=f.length-1;d>=0;d--)s(t,n,f[d],a);return}for(var p=0;p=2)continue;if(!o.interacting()&&e===o.pointerType)return o}return null}};function In(t,e){return t.pointers.some((function(t){return t.id===e}))}var Dn=kn;jn.default=Dn;var An={};function zn(t){return(zn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function Cn(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t)){var n=[],r=!0,o=!1,i=void 0;try{for(var a,s=t[Symbol.iterator]();!(r=(a=s.next()).done)&&(n.push(a.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{r||null==s.return||s.return()}finally{if(o)throw i}}return n}}(t,e)||function(t,e){if(t){if("string"==typeof t)return Rn(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Rn(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Rn(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=0;r--){var o=e.interactions.list[r];o.interactable===n&&(o.stop(),e.fire("interactions:destroy",{interaction:o}),o.destroy(),e.interactions.list.length>2&&e.interactions.list.splice(r,1))}}},onDocSignal:Vn,doOnInteractions:Un,methodNames:Bn};An.default=qn;var $n={};function Gn(t){return(Gn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function Hn(t,e,n){return(Hn="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(t,e,n){var r=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=Jn(t)););return t}(t,e);if(r){var o=Object.getOwnPropertyDescriptor(r,e);return o.get?o.get.call(n):o.value}})(t,e,n||t)}function Kn(t,e){return(Kn=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function Zn(t,e){return!e||"object"!==Gn(e)&&"function"!=typeof e?function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t):e}function Jn(t){return(Jn=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function Qn(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function tr(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=Array(e);nMath.abs(l.y),s.coords,s.rect),(0,j.default)(r,s.coords)),s.eventProps},defaults:{ratio:"preserve",equalDelta:!1,modifiers:[],enabled:!1}};function Sr(t,e,n){var r=t.startCoords,o=t.edgeSign;e?n.y=r.y+(n.x-r.x)*o:n.x=r.x+(n.y-r.y)*o}function Pr(t,e,n,r){var o=t.startRect,i=t.startCoords,a=t.ratio,s=t.edgeSign;if(e){var l=r.width/a;n.y=i.y+(l-o.height)*s}else{var u=r.height*a;n.x=i.x+(u-o.width)*s}}mr.aspectRatio=_r;var Or=(0,Te.makeModifier)(_r,"aspectRatio");mr.default=Or;var Er={};Object.defineProperty(Er,"__esModule",{value:!0}),Er.default=void 0;var Tr=function(){};Tr._defaults={};var Mr=Tr;Er.default=Mr;var jr={};Object.defineProperty(jr,"__esModule",{value:!0}),Object.defineProperty(jr,"default",{enumerable:!0,get:function(){return Er.default}});var kr={};function Ir(t,e,n){return i.default.func(t)?k.resolveRectLike(t,e.interactable,e.element,[n.x,n.y,e]):k.resolveRectLike(t,e.interactable,e.element)}Object.defineProperty(kr,"__esModule",{value:!0}),kr.getRestrictionRect=Ir,kr.restrict=kr.default=void 0;var Dr={start:function(t){var e=t.rect,n=t.startOffset,r=t.state,o=t.interaction,i=t.pageCoords,a=r.options,s=a.elementRect,l=(0,j.default)({left:0,top:0,right:0,bottom:0},a.offset||{});if(e&&s){var u=Ir(a.restriction,o,i);if(u){var c=u.right-u.left-e.width,f=u.bottom-u.top-e.height;c<0&&(l.left+=c,l.right+=c),f<0&&(l.top+=f,l.bottom+=f)}l.left+=n.left-e.width*s.left,l.top+=n.top-e.height*s.top,l.right+=n.right-e.width*(1-s.right),l.bottom+=n.bottom-e.height*(1-s.bottom)}r.offset=l},set:function(t){var e=t.coords,n=t.interaction,r=t.state,o=r.options,i=r.offset,a=Ir(o.restriction,n,e);if(a){var s=k.xywhToTlbr(a);e.x=Math.max(Math.min(s.right-i.right,e.x),s.left+i.left),e.y=Math.max(Math.min(s.bottom-i.bottom,e.y),s.top+i.top)}},defaults:{restriction:null,elementRect:null,offset:null,endOnly:!1,enabled:!1}};kr.restrict=Dr;var Ar=(0,Te.makeModifier)(Dr,"restrict");kr.default=Ar;var zr={};Object.defineProperty(zr,"__esModule",{value:!0}),zr.restrictEdges=zr.default=void 0;var Cr={top:1/0,left:1/0,bottom:-1/0,right:-1/0},Rr={top:-1/0,left:-1/0,bottom:1/0,right:1/0};function Fr(t,e){for(var n=["top","left","bottom","right"],r=0;rt.length)&&(e=t.length);for(var n=0,r=Array(e);n-1e4?r:0}})(jQuery,this,this.document);(function($,window,document,undefined){$.extend($.transform.prototype,{safeOuterHeight:function(){return this.safeOuterLength("height")},safeOuterWidth:function(){return this.safeOuterLength("width")},safeOuterLength:function(dim){var funcName="outer"+(dim=="width"?"Width":"Height");if(!$.support.csstransforms&&Modernizr.msie){dim=dim=="width"?"width":"height";if(this.applyingMatrix&&!this[funcName]&&this.matrix){var calc=new $.matrix.calc(this.matrix,1,1),ratio=calc.offset(),length=this.$elem[funcName]()/ratio[dim];this[funcName]=length;return length}else if(this.applyingMatrix&&this[funcName]){return this[funcName]}var side={height:["top","bottom"],width:["left","right"]};var elem=this.$elem[0],outerLen=parseFloat($.curCSS(elem,dim,true)),boxSizingProp=this.boxSizingProperty,boxSizingValue=this.boxSizingValue;if(!this.boxSizingProperty){boxSizingProp=this.boxSizingProperty=_findBoxSizingProperty()||"box-sizing";boxSizingValue=this.boxSizingValue=this.$elem.css(boxSizingProp)||"content-box"}if(this[funcName]&&this[dim]==outerLen){return this[funcName]}else{this[dim]=outerLen}if(boxSizingProp&&(boxSizingValue=="padding-box"||boxSizingValue=="content-box")){outerLen+=parseFloat($.curCSS(elem,"padding-"+side[dim][0],true))||0+parseFloat($.curCSS(elem,"padding-"+side[dim][1],true))||0}if(boxSizingProp&&boxSizingValue=="content-box"){outerLen+=parseFloat($.curCSS(elem,"border-"+side[dim][0]+"-width",true))||0+parseFloat($.curCSS(elem,"border-"+side[dim][1]+"-width",true))||0}this[funcName]=outerLen;return outerLen}return this.$elem[funcName]()}});var _boxSizingProperty=null;function _findBoxSizingProperty(){if(_boxSizingProperty){return _boxSizingProperty}var property={boxSizing:"box-sizing",MozBoxSizing:"-moz-box-sizing",WebkitBoxSizing:"-webkit-box-sizing",OBoxSizing:"-o-box-sizing"},elem=document.body;for(var p in property){if(typeof elem.style[p]!="undefined"){_boxSizingProperty=property[p];return _boxSizingProperty}}return null}})(jQuery,this,this.document);(function($,window,document,undefined){var rfuncvalue=/([\w\-]*?)\((.*?)\)/g,attr="data-transform",rspace=/\s/,rcspace=/,\s?/;$.extend($.transform.prototype,{setAttrs:function(funcs){var string="",value;for(var func in funcs){value=funcs[func];if($.isArray(value)){value=value.join(", ")}string+=" "+func+"("+value+")"}this.attr=$.trim(string);this.$elem.attr(attr,this.attr)},setAttr:function(func,value){if($.isArray(value)){value=value.join(", ")}var transform=this.attr||this.$elem.attr(attr);if(!transform||transform.indexOf(func)==-1){this.attr=$.trim(transform+" "+func+"("+value+")");this.$elem.attr(attr,this.attr)}else{var funcs=[],parts;rfuncvalue.lastIndex=0;while(parts=rfuncvalue.exec(transform)){if(func==parts[1]){funcs.push(func+"("+value+")")}else{funcs.push(parts[0])}}this.attr=funcs.join(" ");this.$elem.attr(attr,this.attr)}},getAttrs:function(){var transform=this.attr||this.$elem.attr(attr);if(!transform){return{}}var attrs={},parts,value;rfuncvalue.lastIndex=0;while((parts=rfuncvalue.exec(transform))!==null){if(parts){value=parts[2].split(rcspace);attrs[parts[1]]=value.length==1?value[0]:value}}return attrs},getAttr:function(func){var attrs=this.getAttrs();if(typeof attrs[func]!=="undefined"){return attrs[func]}if(func==="origin"&&$.support.csstransforms){return this.$elem.css(this.transformOriginProperty).split(rspace)}else if(func==="origin"){return["50%","50%"]}return $.cssDefault[func]||0}});if(typeof $.cssAngle=="undefined"){$.cssAngle={}}$.extend($.cssAngle,{rotate:true,skew:true,skewX:true,skewY:true});if(typeof $.cssDefault=="undefined"){$.cssDefault={}}$.extend($.cssDefault,{scale:[1,1],scaleX:1,scaleY:1,matrix:[1,0,0,1,0,0],origin:["50%","50%"],reflect:[1,0,0,1,0,0],reflectX:[1,0,0,1,0,0],reflectXY:[1,0,0,1,0,0],reflectY:[1,0,0,1,0,0]});if(typeof $.cssMultipleValues=="undefined"){$.cssMultipleValues={}}$.extend($.cssMultipleValues,{matrix:6,origin:{length:2,duplicate:true},reflect:6,reflectX:6,reflectXY:6,reflectY:6,scale:{length:2,duplicate:true},skew:2,translate:2});$.extend($.cssNumber,{matrix:true,reflect:true,reflectX:true,reflectXY:true,reflectY:true,scale:true,scaleX:true,scaleY:true});$.each($.transform.funcs,function(i,func){$.cssHooks[func]={set:function(elem,value){var transform=elem.transform||new $.transform(elem),funcs={};funcs[func]=value;transform.exec(funcs,{preserve:true})},get:function(elem,computed){var transform=elem.transform||new $.transform(elem);return transform.getAttr(func)}}});$.each(["reflect","reflectX","reflectXY","reflectY"],function(i,func){$.cssHooks[func].get=function(elem,computed){var transform=elem.transform||new $.transform(elem);return transform.getAttr("matrix")||$.cssDefault[func]}})})(jQuery,this,this.document);(function($,window,document,undefined){var rfxnum=/^([+\-]=)?([\d+.\-]+)(.*)$/;var _animate=$.fn.animate;$.fn.animate=function(prop,speed,easing,callback){var optall=$.speed(speed,easing,callback),mv=$.cssMultipleValues;optall.complete=optall.old;if(!$.isEmptyObject(prop)){if(typeof optall.original==="undefined"){optall.original={}}$.each(prop,function(name,val){if(mv[name]||$.cssAngle[name]||!$.cssNumber[name]&&$.inArray(name,$.transform.funcs)!==-1){var specialEasing=null;if(jQuery.isArray(prop[name])){var mvlen=1,len=val.length;if(mv[name]){mvlen=typeof mv[name].length==="undefined"?mv[name]:mv[name].length}if(len>mvlen||len-1e4?r:0}var _custom=$.fx.prototype.custom;$.fx.prototype.custom=function(from,to,unit){var multiple=$.cssMultipleValues[this.prop],angle=$.cssAngle[this.prop];if(multiple||!$.cssNumber[this.prop]&&$.inArray(this.prop,$.transform.funcs)!==-1){this.values=[];if(!multiple){multiple=1}var values=this.options.original[this.prop],currentValues=$(this.elem).css(this.prop),defaultValues=$.cssDefault[this.prop]||0;if(!$.isArray(currentValues)){currentValues=[currentValues]}if(!$.isArray(values)){if($.type(values)==="string"){values=values.split(",")}else{values=[values]}}var length=multiple.length||multiple,i=0;while(values.lengthrows||col>rows||row<1||col<1){return 0}return this.elements[(row-1)*cols+col-1]},decompose:function(){var a=this.e(1,1),b=this.e(2,1),c=this.e(1,2),d=this.e(2,2),e=this.e(1,3),f=this.e(2,3);if(Math.abs(a*d-b*c)<.01){return{rotate:0+"deg",skewX:0+"deg",scaleX:1,scaleY:1,translateX:0+"px",translateY:0+"px"}}var tx=e,ty=f;var sx=Math.sqrt(a*a+b*b);a=a/sx;b=b/sx;var k=a*c+b*d;c-=a*k;d-=b*k;var sy=Math.sqrt(c*c+d*d);c=c/sy;d=d/sy;k=k/sy;if(a*d-b*c<0){a=-a;b=-b;sx=-sx}var rad2deg=$.angle.radianToDegree;var r=rad2deg(Math.atan2(b,a));k=rad2deg(Math.atan(k));return{rotate:r+"deg",skewX:k+"deg",scaleX:sx,scaleY:sy,translateX:tx+"px",translateY:ty+"px"}}};$.extend($m.M2x2.prototype,Matrix,{toM3x3:function(){var a=this.elements;return new $m.M3x3(a[0],a[1],0,a[2],a[3],0,0,0,1)},x:function(matrix){var isVector=typeof matrix.rows==="undefined";if(!isVector&&matrix.rows==3){return this.toM3x3().x(matrix)}var a=this.elements,b=matrix.elements;if(isVector&&b.length==2){return new $m.V2(a[0]*b[0]+a[1]*b[1],a[2]*b[0]+a[3]*b[1])}else if(b.length==a.length){return new $m.M2x2(a[0]*b[0]+a[1]*b[2],a[0]*b[1]+a[1]*b[3],a[2]*b[0]+a[3]*b[2],a[2]*b[1]+a[3]*b[3])}return false},inverse:function(){var d=1/this.determinant(),a=this.elements;return new $m.M2x2(d*a[3],d*-a[1],d*-a[2],d*a[0])},determinant:function(){var a=this.elements;return a[0]*a[3]-a[1]*a[2]}});$.extend($m.M3x3.prototype,Matrix,{x:function(matrix){var isVector=typeof matrix.rows==="undefined";if(!isVector&&matrix.rows<3){matrix=matrix.toM3x3()}var a=this.elements,b=matrix.elements;if(isVector&&b.length==3){return new $m.V3(a[0]*b[0]+a[1]*b[1]+a[2]*b[2],a[3]*b[0]+a[4]*b[1]+a[5]*b[2],a[6]*b[0]+a[7]*b[1]+a[8]*b[2])}else if(b.length==a.length){return new $m.M3x3(a[0]*b[0]+a[1]*b[3]+a[2]*b[6],a[0]*b[1]+a[1]*b[4]+a[2]*b[7],a[0]*b[2]+a[1]*b[5]+a[2]*b[8],a[3]*b[0]+a[4]*b[3]+a[5]*b[6],a[3]*b[1]+a[4]*b[4]+a[5]*b[7],a[3]*b[2]+a[4]*b[5]+a[5]*b[8],a[6]*b[0]+a[7]*b[3]+a[8]*b[6],a[6]*b[1]+a[7]*b[4]+a[8]*b[7],a[6]*b[2]+a[7]*b[5]+a[8]*b[8])}return false},inverse:function(){var d=1/this.determinant(),a=this.elements;return new $m.M3x3(d*(a[8]*a[4]-a[7]*a[5]),d*-(a[8]*a[1]-a[7]*a[2]),d*(a[5]*a[1]-a[4]*a[2]),d*-(a[8]*a[3]-a[6]*a[5]),d*(a[8]*a[0]-a[6]*a[2]),d*-(a[5]*a[0]-a[3]*a[2]),d*(a[7]*a[3]-a[6]*a[4]),d*-(a[7]*a[0]-a[6]*a[1]),d*(a[4]*a[0]-a[3]*a[1]))},determinant:function(){var a=this.elements;return a[0]*(a[8]*a[4]-a[7]*a[5])-a[3]*(a[8]*a[1]-a[7]*a[2])+a[6]*(a[5]*a[1]-a[4]*a[2])}});var Vector={e:function(i){return this.elements[i-1]}};$.extend($m.V2.prototype,Vector);$.extend($m.V3.prototype,Vector)})(jQuery,this,this.document);(function($,window,document,undefined){if(typeof $.matrix=="undefined"){$.extend({matrix:{}})}$.extend($.matrix,{calc:function(matrix,outerHeight,outerWidth){this.matrix=matrix;this.outerHeight=outerHeight;this.outerWidth=outerWidth}});$.matrix.calc.prototype={coord:function(x,y,z){z=typeof z!=="undefined"?z:0;var matrix=this.matrix,vector;switch(matrix.rows){case 2:vector=matrix.x(new $.matrix.V2(x,y));break;case 3:vector=matrix.x(new $.matrix.V3(x,y,z));break}return vector},corners:function(x,y){var save=!(typeof x!=="undefined"||typeof y!=="undefined"),c;if(!this.c||!save){y=y||this.outerHeight;x=x||this.outerWidth;c={tl:this.coord(0,0),bl:this.coord(0,y),tr:this.coord(x,0),br:this.coord(x,y)}}else{c=this.c}if(save){this.c=c}return c},sides:function(corners){var c=corners||this.corners();return{top:Math.min(c.tl.e(2),c.tr.e(2),c.br.e(2),c.bl.e(2)),bottom:Math.max(c.tl.e(2),c.tr.e(2),c.br.e(2),c.bl.e(2)),left:Math.min(c.tl.e(1),c.tr.e(1),c.br.e(1),c.bl.e(1)),right:Math.max(c.tl.e(1),c.tr.e(1),c.br.e(1),c.bl.e(1))}},offset:function(corners){var s=this.sides(corners);return{height:Math.abs(s.bottom-s.top),width:Math.abs(s.right-s.left)}},area:function(corners){var c=corners||this.corners();var v1={x:c.tr.e(1)-c.tl.e(1)+c.br.e(1)-c.bl.e(1),y:c.tr.e(2)-c.tl.e(2)+c.br.e(2)-c.bl.e(2)},v2={x:c.bl.e(1)-c.tl.e(1)+c.br.e(1)-c.tr.e(1),y:c.bl.e(2)-c.tl.e(2)+c.br.e(2)-c.tr.e(2)};return.25*Math.abs(v1.e(1)*v2.e(2)-v1.e(2)*v2.e(1))},nonAffinity:function(){var sides=this.sides(),xDiff=sides.top-sides.bottom,yDiff=sides.left-sides.right;return parseFloat(parseFloat(Math.abs((Math.pow(xDiff,2)+Math.pow(yDiff,2))/(sides.top*sides.bottom+sides.left*sides.right))).toFixed(8))},originOffset:function(toOrigin,fromOrigin){toOrigin=toOrigin?toOrigin:new $.matrix.V2(this.outerWidth*.5,this.outerHeight*.5);fromOrigin=fromOrigin?fromOrigin:new $.matrix.V2(0,0);var toCenter=this.coord(toOrigin.e(1),toOrigin.e(2));var fromCenter=this.coord(fromOrigin.e(1),fromOrigin.e(2));return{top:fromCenter.e(2)-fromOrigin.e(2)-(toCenter.e(2)-toOrigin.e(2)),left:fromCenter.e(1)-fromOrigin.e(1)-(toCenter.e(1)-toOrigin.e(1))}}}})(jQuery,this,this.document);(function($,window,document,undefined){if(typeof $.matrix=="undefined"){$.extend({matrix:{}})}var $m=$.matrix,$m2x2=$m.M2x2,$m3x3=$m.M3x3;$.extend($m,{identity:function(size){size=size||2;var length=size*size,elements=new Array(length),mod=size+1;for(var i=0;i").get(0).files,n.formdata=void 0!==window.FormData;var i=!!e.fn.prop;e.fn.attr2=function(){if(!i)return this.attr.apply(this,arguments);var e=this.prop.apply(this,arguments);return e&&e.jquery||"string"==typeof e?e:this.attr.apply(this,arguments)},e.fn.ajaxSubmit=function(t){function r(r){var a,n,i=e.param(r,t.traditional).split("&"),o=i.length,s=[];for(a=0;o>a;a++)i[a]=i[a].replace(/\+/g," "),n=i[a].split("="),s.push([decodeURIComponent(n[0]),decodeURIComponent(n[1])]);return s}function o(a){for(var n=new FormData,i=0;i').val(m.extraData[d].value).appendTo(w)[0]:e('').val(m.extraData[d]).appendTo(w)[0]);m.iframeTarget||v.appendTo("body"),g.attachEvent?g.attachEvent("onload",s):g.addEventListener("load",s,!1),setTimeout(t,15);try{w.submit()}catch(h){var x=document.createElement("form").submit;x.apply(w)}}finally{w.setAttribute("action",i),w.setAttribute("enctype",c),r?w.setAttribute("target",r):f.removeAttr("target"),e(l).remove()}}function s(t){if(!x.aborted&&!F){if(M=n(g),M||(a("cannot access response document"),t=k),t===D&&x)return x.abort("timeout"),void S.reject(x,"timeout");if(t==k&&x)return x.abort("server abort"),void S.reject(x,"error","server abort");if(M&&M.location.href!=m.iframeSrc||T){g.detachEvent?g.detachEvent("onload",s):g.removeEventListener("load",s,!1);var r,i="success";try{if(T)throw"timeout";var o="xml"==m.dataType||M.XMLDocument||e.isXMLDoc(M);if(a("isXml="+o),!o&&window.opera&&(null===M.body||!M.body.innerHTML)&&--O)return a("requeing onLoad callback, DOM not available"),void setTimeout(s,250);var u=M.body?M.body:M.documentElement;x.responseText=u?u.innerHTML:null,x.responseXML=M.XMLDocument?M.XMLDocument:M,o&&(m.dataType="xml"),x.getResponseHeader=function(e){var t={"content-type":m.dataType};return t[e.toLowerCase()]},u&&(x.status=Number(u.getAttribute("status"))||x.status,x.statusText=u.getAttribute("statusText")||x.statusText);var c=(m.dataType||"").toLowerCase(),l=/(json|script|text)/.test(c);if(l||m.textarea){var f=M.getElementsByTagName("textarea")[0];if(f)x.responseText=f.value,x.status=Number(f.getAttribute("status"))||x.status,x.statusText=f.getAttribute("statusText")||x.statusText;else if(l){var p=M.getElementsByTagName("pre")[0],h=M.getElementsByTagName("body")[0];p?x.responseText=p.textContent?p.textContent:p.innerText:h&&(x.responseText=h.textContent?h.textContent:h.innerText)}}else"xml"==c&&!x.responseXML&&x.responseText&&(x.responseXML=X(x.responseText));try{E=_(x,c,m)}catch(y){i="parsererror",x.error=r=y||i}}catch(y){a("error caught: ",y),i="error",x.error=r=y||i}x.aborted&&(a("upload aborted"),i=null),x.status&&(i=x.status>=200&&x.status<300||304===x.status?"success":"error"),"success"===i?(m.success&&m.success.call(m.context,E,"success",x),S.resolve(x.responseText,"success",x),d&&e.event.trigger("ajaxSuccess",[x,m])):i&&(void 0===r&&(r=x.statusText),m.error&&m.error.call(m.context,x,i,r),S.reject(x,"error",r),d&&e.event.trigger("ajaxError",[x,m,r])),d&&e.event.trigger("ajaxComplete",[x,m]),d&&!--e.active&&e.event.trigger("ajaxStop"),m.complete&&m.complete.call(m.context,x,i),F=!0,m.timeout&&clearTimeout(j),setTimeout(function(){m.iframeTarget?v.attr("src",m.iframeSrc):v.remove(),x.responseXML=null},100)}}}var c,l,m,d,p,v,g,x,y,b,T,j,w=f[0],S=e.Deferred();if(S.abort=function(e){x.abort(e)},r)for(l=0;l'),v.css({position:"absolute",top:"-1000px",left:"-1000px"})),g=v[0],x={aborted:0,responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(t){var r="timeout"===t?"timeout":"aborted";a("aborting upload... "+r),this.aborted=1;try{g.contentWindow.document.execCommand&&g.contentWindow.document.execCommand("Stop")}catch(n){}v.attr("src",m.iframeSrc),x.error=r,m.error&&m.error.call(m.context,x,r,t),d&&e.event.trigger("ajaxError",[x,m,r]),m.complete&&m.complete.call(m.context,x,r)}},d=m.global,d&&0===e.active++&&e.event.trigger("ajaxStart"),d&&e.event.trigger("ajaxSend",[x,m]),m.beforeSend&&m.beforeSend.call(m.context,x,m)===!1)return m.global&&e.active--,S.reject(),S;if(x.aborted)return S.reject(),S;y=w.clk,y&&(b=y.name,b&&!y.disabled&&(m.extraData=m.extraData||{},m.extraData[b]=y.value,"image"==y.type&&(m.extraData[b+".x"]=w.clk_x,m.extraData[b+".y"]=w.clk_y)));var D=1,k=2,A=e("meta[name=csrf-token]").attr("content"),L=e("meta[name=csrf-param]").attr("content");L&&A&&(m.extraData=m.extraData||{},m.extraData[L]=A),m.forceSync?o():setTimeout(o,10);var E,M,F,O=50,X=e.parseXML||function(e,t){return window.ActiveXObject?(t=new ActiveXObject("Microsoft.XMLDOM"),t.async="false",t.loadXML(e)):t=(new DOMParser).parseFromString(e,"text/xml"),t&&t.documentElement&&"parsererror"!=t.documentElement.nodeName?t:null},C=e.parseJSON||function(e){return window.eval("("+e+")")},_=function(t,r,a){var n=t.getResponseHeader("content-type")||"",i="xml"===r||!r&&n.indexOf("xml")>=0,o=i?t.responseXML:t.responseText;return i&&"parsererror"===o.documentElement.nodeName&&e.error&&e.error("parsererror"),a&&a.dataFilter&&(o=a.dataFilter(o,r)),"string"==typeof o&&("json"===r||!r&&n.indexOf("json")>=0?o=C(o):("script"===r||!r&&n.indexOf("javascript")>=0)&&e.globalEval(o)),o};return S}if(!this.length)return a("ajaxSubmit: skipping submit process - no element selected"),this;var u,c,l,f=this;"function"==typeof t?t={success:t}:void 0===t&&(t={}),u=t.type||this.attr2("method"),c=t.url||this.attr2("action"),l="string"==typeof c?e.trim(c):"",l=l||window.location.href||"",l&&(l=(l.match(/^([^#]+)/)||[])[1]),t=e.extend(!0,{url:l,success:e.ajaxSettings.success,type:u||e.ajaxSettings.type,iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank"},t);var m={};if(this.trigger("form-pre-serialize",[this,t,m]),m.veto)return a("ajaxSubmit: submit vetoed via form-pre-serialize trigger"),this;if(t.beforeSerialize&&t.beforeSerialize(this,t)===!1)return a("ajaxSubmit: submit aborted via beforeSerialize callback"),this;var d=t.traditional;void 0===d&&(d=e.ajaxSettings.traditional);var p,h=[],v=this.formToArray(t.semantic,h);if(t.data&&(t.extraData=t.data,p=e.param(t.data,d)),t.beforeSubmit&&t.beforeSubmit(v,this,t)===!1)return a("ajaxSubmit: submit aborted via beforeSubmit callback"),this;if(this.trigger("form-submit-validate",[v,this,t,m]),m.veto)return a("ajaxSubmit: submit vetoed via form-submit-validate trigger"),this;var g=e.param(v,d);p&&(g=g?g+"&"+p:p),"GET"==t.type.toUpperCase()?(t.url+=(t.url.indexOf("?")>=0?"&":"?")+g,t.data=null):t.data=g;var x=[];if(t.resetForm&&x.push(function(){f.resetForm()}),t.clearForm&&x.push(function(){f.clearForm(t.includeHidden)}),!t.dataType&&t.target){var y=t.success||function(){};x.push(function(r){var a=t.replaceTarget?"replaceWith":"html";e(t.target)[a](r).each(y,arguments)})}else t.success&&x.push(t.success);if(t.success=function(e,r,a){for(var n=t.context||this,i=0,o=x.length;o>i;i++)x[i].apply(n,[e,r,a||f,f])},t.error){var b=t.error;t.error=function(e,r,a){var n=t.context||this;b.apply(n,[e,r,a,f])}}if(t.complete){var T=t.complete;t.complete=function(e,r){var a=t.context||this;T.apply(a,[e,r,f])}}var j=e("input[type=file]:enabled",this).filter(function(){return""!==e(this).val()}),w=j.length>0,S="multipart/form-data",D=f.attr("enctype")==S||f.attr("encoding")==S,k=n.fileapi&&n.formdata;a("fileAPI :"+k);var A,L=(w||D)&&!k;t.iframe!==!1&&(t.iframe||L)?t.closeKeepAlive?e.get(t.closeKeepAlive,function(){A=s(v)}):A=s(v):A=(w||D)&&k?o(v):e.ajax(t),f.removeData("jqxhr").data("jqxhr",A);for(var E=0;Ec;c++)if(d=u[c],f=d.name,f&&!d.disabled)if(t&&o.clk&&"image"==d.type)o.clk==d&&(a.push({name:f,value:e(d).val(),type:d.type}),a.push({name:f+".x",value:o.clk_x},{name:f+".y",value:o.clk_y}));else if(m=e.fieldValue(d,!0),m&&m.constructor==Array)for(r&&r.push(d),l=0,h=m.length;h>l;l++)a.push({name:f,value:m[l]});else if(n.fileapi&&"file"==d.type){r&&r.push(d);var v=d.files;if(v.length)for(l=0;li;i++)r.push({name:a,value:n[i]});else null!==n&&"undefined"!=typeof n&&r.push({name:this.name,value:n})}}),e.param(r)},e.fn.fieldValue=function(t){for(var r=[],a=0,n=this.length;n>a;a++){var i=this[a],o=e.fieldValue(i,t);null===o||"undefined"==typeof o||o.constructor==Array&&!o.length||(o.constructor==Array?e.merge(r,o):r.push(o))}return r},e.fieldValue=function(t,r){var a=t.name,n=t.type,i=t.tagName.toLowerCase();if(void 0===r&&(r=!0),r&&(!a||t.disabled||"reset"==n||"button"==n||("checkbox"==n||"radio"==n)&&!t.checked||("submit"==n||"image"==n)&&t.form&&t.form.clk!=t||"select"==i&&-1==t.selectedIndex))return null;if("select"==i){var o=t.selectedIndex;if(0>o)return null;for(var s=[],u=t.options,c="select-one"==n,l=c?o+1:u.length,f=c?o:0;l>f;f++){var m=u[f];if(m.selected){var d=m.value;if(d||(d=m.attributes&&m.attributes.value&&!m.attributes.value.specified?m.text:m.value),c)return d;s.push(d)}}return s}return e(t).val()},e.fn.clearForm=function(t){return this.each(function(){e("input,select,textarea",this).clearFields(t)})},e.fn.clearFields=e.fn.clearInputs=function(t){var r=/^(?:color|date|datetime|email|month|number|password|range|search|tel|text|time|url|week)$/i;return this.each(function(){var a=this.type,n=this.tagName.toLowerCase();r.test(a)||"textarea"==n?this.value="":"checkbox"==a||"radio"==a?this.checked=!1:"select"==n?this.selectedIndex=-1:"file"==a?/MSIE/.test(navigator.userAgent)?e(this).replaceWith(e(this).clone(!0)):e(this).val(""):t&&(t===!0&&/hidden/.test(a)||"string"==typeof t&&e(this).is(t))&&(this.value="")})},e.fn.resetForm=function(){return this.each(function(){("function"==typeof this.reset||"object"==typeof this.reset&&!this.reset.nodeType)&&this.reset()})},e.fn.enable=function(e){return void 0===e&&(e=!0),this.each(function(){this.disabled=!e})},e.fn.selected=function(t){return void 0===t&&(t=!0),this.each(function(){var r=this.type;if("checkbox"==r||"radio"==r)this.checked=t;else if("option"==this.tagName.toLowerCase()){var a=e(this).parent("select");t&&a[0]&&"select-one"==a[0].type&&a.find("option").selected(!1),this.selected=t}})},e.fn.ajaxSubmit.debug=!1});!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?module.exports=a:a(jQuery)}(function(a){function b(b){var g=b||window.event,h=i.call(arguments,1),j=0,l=0,m=0,n=0,o=0,p=0;if(b=a.event.fix(g),b.type="mousewheel","detail"in g&&(m=-1*g.detail),"wheelDelta"in g&&(m=g.wheelDelta),"wheelDeltaY"in g&&(m=g.wheelDeltaY),"wheelDeltaX"in g&&(l=-1*g.wheelDeltaX),"axis"in g&&g.axis===g.HORIZONTAL_AXIS&&(l=-1*m,m=0),j=0===m?l:m,"deltaY"in g&&(m=-1*g.deltaY,j=m),"deltaX"in g&&(l=g.deltaX,0===m&&(j=-1*l)),0!==m||0!==l){if(1===g.deltaMode){var q=a.data(this,"mousewheel-line-height");j*=q,m*=q,l*=q}else if(2===g.deltaMode){var r=a.data(this,"mousewheel-page-height");j*=r,m*=r,l*=r}if(n=Math.max(Math.abs(m),Math.abs(l)),(!f||f>n)&&(f=n,d(g,n)&&(f/=40)),d(g,n)&&(j/=40,l/=40,m/=40),j=Math[j>=1?"floor":"ceil"](j/f),l=Math[l>=1?"floor":"ceil"](l/f),m=Math[m>=1?"floor":"ceil"](m/f),k.settings.normalizeOffset&&this.getBoundingClientRect){var s=this.getBoundingClientRect();o=b.clientX-s.left,p=b.clientY-s.top}return b.deltaX=l,b.deltaY=m,b.deltaFactor=f,b.offsetX=o,b.offsetY=p,b.deltaMode=0,h.unshift(b,j,l,m),e&&clearTimeout(e),e=setTimeout(c,200),(a.event.dispatch||a.event.handle).apply(this,h)}}function c(){f=null}function d(a,b){return k.settings.adjustOldDeltas&&"mousewheel"===a.type&&b%120===0}var e,f,g=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],h="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],i=Array.prototype.slice;if(a.event.fixHooks)for(var j=g.length;j;)a.event.fixHooks[g[--j]]=a.event.mouseHooks;var k=a.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var c=h.length;c;)this.addEventListener(h[--c],b,!1);else this.onmousewheel=b;a.data(this,"mousewheel-line-height",k.getLineHeight(this)),a.data(this,"mousewheel-page-height",k.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var c=h.length;c;)this.removeEventListener(h[--c],b,!1);else this.onmousewheel=null;a.removeData(this,"mousewheel-line-height"),a.removeData(this,"mousewheel-page-height")},getLineHeight:function(b){var c=a(b),d=c["offsetParent"in a.fn?"offsetParent":"parent"]();return d.length||(d=a("body")),parseInt(d.css("fontSize"),10)||parseInt(c.css("fontSize"),10)||16},getPageHeight:function(b){return a(b).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};a.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})});(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}Modernizr.msie&&!d&&function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$('