@dearhive/dearflip-jquery-flipbook
Version:
DearFlip - Create realistic 3D FlipBook from PDF using jQuery.
9 lines • 131 kB
JavaScript
/**
* @preserve
* Plugin Name: dflip
* Description: dflip - 3D & 2D FlipBook
*
* Author: Deepak Ghimire
* Author URI: http://codecanyon.net/user/dearhive?ref=dearhive
*/
"use strict";var DFLIP=DFLIP||{};var PRESENTATION=DFLIP;(function e(t,i){t.version="1.7.3.5";t.PAGE_MODE={SINGLE:1,DOUBLE:2,AUTO:null};t.SINGLE_PAGE_MODE={ZOOM:1,BOOKLET:2,AUTO:null};t.CONTROLSPOSITION={HIDDEN:"hide",TOP:"top",BOTTOM:"bottom"};t.DIRECTION={LTR:1,RTL:2};t.LINK_TARGET={NONE:0,SELF:1,BLANK:2,PARENT:3,TOP:4};t.CORNERS={TL:"tl",TR:"tr",BL:"bl",BR:"br",L:"l",R:"r",NONE:null};t.SOURCE_TYPE={IMAGE:"image",PDF:"pdf",HTML:"html"};t.DISPLAY_TYPE={WEBGL:"3D",HTML:"2D"};t.PAGE_SIZE={AUTO:0,SINGLE:1,DOUBLEINTERNAL:2};var n=t.defaults={webgl:true,webglShadow:true,soundEnable:true,search:false,height:"auto",autoEnableOutline:false,autoEnableThumbnail:false,overwritePDFOutline:false,enableDownload:true,duration:800,direction:t.DIRECTION.LTR,pageMode:t.PAGE_MODE.AUTO,singlePageMode:t.SINGLE_PAGE_MODE.AUTO,backgroundColor:"#fff",forceFit:true,transparent:false,hard:"none",openPage:1,annotationClass:"",autoPlay:false,autoPlayDuration:5e3,autoPlayStart:false,maxTextureSize:1600,minTextureSize:256,rangeChunkSize:524288,icons:{altnext:"ti-angle-right",altprev:"ti-angle-left",next:"ti-angle-right",prev:"ti-angle-left",end:"ti-angle-double-right",start:"ti-angle-double-left",share:"ti-sharethis",help:"ti-help-alt",more:"ti-more-alt",download:"ti-download",zoomin:"ti-zoom-in",zoomout:"ti-zoom-out",fullscreen:"ti-fullscreen",fitscreen:"ti-arrows-corner",thumbnail:"ti-layout-grid2",outline:"ti-menu-alt",close:"ti-close",search:"ti-search",doublepage:"ti-book",singlepage:"ti-file",sound:"ti-volume",facebook:"ti-facebook",google:"ti-google",twitter:"ti-twitter-alt",mail:"ti-email",play:"ti-control-play",pause:"ti-control-pause"},text:{toggleSound:"Turn on/off Sound",toggleThumbnails:"Toggle Thumbnails",toggleOutline:"Toggle Outline/Bookmark",previousPage:"Previous Page",nextPage:"Next Page",toggleFullscreen:"Toggle Fullscreen",zoomIn:"Zoom In",zoomOut:"Zoom Out",toggleHelp:"Toggle Help",singlePageMode:"Single Page Mode",doublePageMode:"Double Page Mode",downloadPDFFile:"Download PDF File",gotoFirstPage:"Goto First Page",gotoLastPage:"Goto Last Page",play:"Start AutoPlay",pause:"Pause AutoPlay",share:"Share",mailSubject:"I wanted you to see this FlipBook",mailBody:"Check out this site {{url}}",loading:"Loading"},allControls:"altPrev,pageNumber,altNext,play,outline,thumbnail,zoomIn,zoomOut,fullScreen,share,download,search,more,pageMode,startPage,endPage,sound",moreControls:"download,pageMode,startPage,endPage,sound",hideControls:"",controlsPosition:t.CONTROLSPOSITION.BOTTOM,paddingTop:30,paddingLeft:20,paddingRight:20,paddingBottom:30,enableAnalytics:false,scrollWheel:true,onCreate:function(e){},onCreateUI:function(e){},onFlip:function(e){},beforeFlip:function(e){},onReady:function(e){},zoomRatio:1.5,pageSize:t.PAGE_SIZE.AUTO,pdfjsSrc:"js/libs/pdf.min.js",pdfjsCompatibilitySrc:"js/libs/compatibility.js",pdfjsWorkerSrc:"js/libs/pdf.worker.min.js",threejsSrc:"js/libs/three.min.js",mockupjsSrc:"js/libs/mockup.min.js",soundFile:"sound/turn2.mp3",imagesLocation:"images",imageResourcesPath:"images/pdfjs/",cMapUrl:"cmaps/",enableDebugLog:false,canvasToBlob:false,enableAnnotation:true,pdfRenderQuality:.9,textureLoadFallback:"blank",stiffness:3,backgroundImage:"",pageRatio:null,pixelRatio:window.devicePixelRatio||1,thumbElement:"div",spotLightIntensity:.22,ambientLightColor:"#fff",ambientLightIntensity:.8,shadowOpacity:.15,linkTarget:t.LINK_TARGET.BLANK,sharePrefix:"flipbook-"};var a="WebKitCSSMatrix"in window||document.body&&"MozPerspective"in document.body.style,o="onmousedown"in window,r="ontouchstart"in window;var s=navigator.userAgent;var l=t.utils={drag:{left:0,right:1,none:-1},mouseEvents:o?{type:"mouse",start:"mousedown",move:"mousemove",end:"mouseup"}:{type:"touch",start:"touchstart",move:"touchmove",end:"touchend"},html:{div:"<div/>",img:"<img/>",a:"<a>",input:"<input type='text'/>"},getSharePrefix:function(){var e=l.getSharePrefixes();return e[0]},getSharePrefixes:function(){var e=(t.defaults.sharePrefix+",dflip-,flipbook-,dearflip-").split(",").filter(function(e){return e});return e},toRad:function(e){return e*Math.PI/180},isset:function(e,t){return e==null?t:e},isnull:function(e){return e==null||e==null},toDeg:function(e){return e*180/Math.PI},transition:function(e,t){return e?t/1e3+"s ease-out":"0s none"},hasCompatibility:function(){var e=false;if(window.dFlipLocation!=null){if(window.dFlipLocation.indexOf("lip-lit")>0)e=true}return e},scrollIntoView:function(e,t,i){t=t||e.parentNode;t.scrollTop=e.offsetTop-t.offsetTop+(i===false?e.offsetHeight-t.offsetHeight:0);t.scrollLeft=e.offsetLeft-t.offsetLeft},display:function(e){return e?"block":"none"},resetTranslate:function(){return w(0,0)},translateStr:function(e,t){return a?" translate3d("+e+"px,"+t+"px, 0px) ":" translate("+e+"px, "+t+"px) "},httpsCorrection:function(e){var t=window.location;if(t.href.indexOf("https://")>-1&&e.indexOf(t.hostname)>-1){e=e.replace("http://","https://")}if(t.href.indexOf("http://")>-1&&e.indexOf(t.hostname)>-1){e=e.replace("https://","http://")}return e},resetBoxShadow:function(){return"rgba(0, 0, 0, 0) 0px 0px 20px"},rotateStr:function(e){return" rotateZ("+e+"deg) "},bg:function(e){return"#fff"+C(e)},bgImage:function(e){return e==null||e=="blank"?"":" url("+e+")"},src:function(e){return e!=null?""+e+"":""},limitAt:function(e,t,i){return e<t?t:e>i?i:e},distOrigin:function(e,t){return Math.sqrt(Math.pow(e,2)+Math.pow(t,2))},distPoints:function(e,t,i,n){return Math.sqrt(Math.pow(i-e,2)+Math.pow(n-t,2))},calculateScale:function(e,t){var i=I(e[0].x,e[0].y,e[1].x,e[1].y),n=I(t[0].x,t[0].y,t[1].x,t[1].y);return n/i},getVectorAvg:function(e){return{x:e.map(function(e){return e.x}).reduce(l.sum)/e.length,y:e.map(function(e){return e.y}).reduce(l.sum)/e.length}},sum:function(e,t){return e+t},getTouches:function(e,t){t=t||{left:0,top:0};return Array.prototype.slice.call(e.touches).map(function(e){return{x:e.pageX-t.left,y:e.pageY-t.top}})},angleByDistance:function(e,t){var i=t/2;var n=S(e,0,t);return n<i?m(Math.asin(n/i)):90+m(Math.asin((n-i)/i))},log:function(e){if(n.enableDebugLog==true&&window.console)console.log(e)},lowerPowerOfTwo:function(e){return Math.pow(2,Math.floor(Math.log(e)/Math.LN2))},nearestPowerOfTwo:function(e,t){return Math.min(t||2048,Math.pow(2,Math.ceil(Math.log(e)/Math.LN2)))},zoomStops:function(e,t,i,n,a){if(n==null)n=256;if(a==null)a=2048;var o=Math.log(e/n)/Math.log(t);return n*Math.pow(t,i==null?Math.round(o):i==true?Math.ceil(o):Math.floor(o))},extendOptions:function(e,t){return i.extend(true,{},e,t)},getFullscreenElement:function(){return document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement},hasFullscreenEnabled:function(){return document.fullscreenEnabled||document.mozFullScreenEnabled||document.webkitFullscreenEnabled||document.msFullscreenEnabled},getBasePage:function(e){return Math.floor(e/2)*2},loadResources:function e(t,i,n){var a=document,o=a.createElement(t),r=a.getElementsByTagName(t)[0];o.async=true;if(n){o.addEventListener("load",function(e){n(null,e)},false)}o.src=i;r.parentNode.insertBefore(o,r)},getScriptCallbacks:[],getScript:function(e,t,n){var a=l.getScriptCallbacks[e],o;function r(e,t){if(o!=null){if(t||!o.readyState||/loaded|complete/.test(o.readyState)){o.onload=o.onreadystatechange=null;o=null;o=null;if(!t){for(var i=0;i<a.length;i++){if(a[i])a[i]();a[i]=null}n=null}}}}if(i("script[src='"+e+"']").length===0){a=l.getScriptCallbacks[e]=[];a.push(t);o=document.createElement("script");var s=document.body.getElementsByTagName("script")[0];o.async=1;o.setAttribute("data-cfasync",false);if(s!=null){s.parentNode.insertBefore(o,s);s=null}else{document.body.appendChild(o)}o.addEventListener("load",r,false);o.addEventListener("readystatechange",r,false);o.addEventListener("complete",r,false);if(n){o.addEventListener("error",n,false)}o.src=e+(N.dom=="MS"?"?"+Math.random(1):"")}else{a.push(t)}},isHardPage:function(e,t,i,n){if(e!=null){if(e=="cover"){return t==0||n&&t==1||t==Math.ceil(i/(n?1:2))-(n?0:1)}else if(e=="all"){return true}else{var a=(","+e+",").indexOf(","+(t*2+1)+",")>-1;var o=(","+e+",").indexOf(","+(t*2+2)+",")>-1;return a||o}}return false},fixMouseEvent:function(e){if(e){var t=e.originalEvent||e;if(t.changedTouches&&t.changedTouches.length>0){var n=i.event.fix(e);var a=t.changedTouches[0];n.clientX=a.clientX;n.clientY=a.clientY;n.pageX=a.pageX;n.touches=t.touches;n.pageY=a.pageY;n.movementX=a.movementX;n.movementY=a.movementY;return n}else{return e}}else{return e}},hasWebgl:function(){try{var e=document.createElement("canvas");return!!(window.WebGLRenderingContext&&(e.getContext("webgl")||e.getContext("experimental-webgl")))}catch(e){return false}}(),isBookletMode:function(e){return e.pageMode==t.PAGE_MODE.SINGLE&&e.singlePageMode==t.SINGLE_PAGE_MODE.BOOKLET},isRTLMode:function(e){return e.direction==t.DIRECTION.RTL},isMobile:function(){var e=false;(function(t){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4)))e=true})(s||navigator.vendor||window.opera);return e}(),isIOS:/(iPad|iPhone|iPod)/g.test(s),isSafari:/constructor/i.test(window.HTMLElement)||function(e){return e.toString()==="[object SafariRemoteNotification]"}(!window["safari"]||safari.pushNotification),prefix:function(){var e=window.getComputedStyle(document.documentElement,""),t=Array.prototype.slice.call(e).join("").match(/-(moz|webkit|ms)-/)[1],i="WebKit|Moz|MS".match(new RegExp("("+t+")","i"))[1];return{dom:i,lowercase:t,css:"-"+t+"-",js:t[0].toUpperCase()+t.substr(1)}}(),__extends:function(e,t){for(var i in t)if(t.hasOwnProperty(i))e[i]=t[i];function n(){this.constructor=e}n.prototype=t.prototype;e.prototype=new n;e.__super=t.prototype;return e}};var c=t.SOURCE_TYPE,u=t.DISPLAY_TYPE,d=l.drag,f=l.mouseEvents,h=l.html,p=l.isset,g=l.isnull,v=l.toRad,m=l.toDeg,b=l.transition,w=l.translateStr,x=l.resetBoxShadow,P=l.rotateStr,y=l.bg,C=l.bgImage,L=l.src,S=l.limitAt,E=l.distOrigin,I=l.distPoints,T=l.angleByDistance,k=l.log,O=l.nearestPowerOfTwo,R=l.extendOptions,F=l.getBasePage,M=l.getScript,D=l.fixMouseEvent,N=l.prefix,A=l.isBookletMode,z=l.isRTLMode,B=l.isMobile,j=l.hasWebgl,_=l.isSafari,U=l.isIOS,H=l.__extends;(function e(){if(window.CanvasPixelArray){if(typeof window.CanvasPixelArray.prototype.set!=="function"){window.CanvasPixelArray.prototype.set=function(e){for(var t=0,i=this.length;t<i;t++){this[t]=e[t]}}}}else{var t=false,i;if(_){i=s.match(/Version\/([0-9]+)\.([0-9]+)\.([0-9]+) Safari\//);t=i&&parseInt(i[1])<6}if(t){var n=window.CanvasRenderingContext2D.prototype;var a=n.createImageData;n.createImageData=function(e,t){var i=a.call(this,e,t);i.data.set=function(e){for(var t=0,i=this.length;t<i;t++){this[t]=e[t]}};return i};n=null}}})();(function e(){function t(e){window.setTimeout(e,20)}if("requestAnimationFrame"in window){return}window.requestAnimationFrame=window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||t})();(function e(){if(typeof Uint8Array!=="undefined"){if(typeof Uint8Array.prototype.subarray==="undefined"){Uint8Array.prototype.subarray=function e(t,i){return new Uint8Array(this.slice(t,i))};Float32Array.prototype.subarray=function e(t,i){return new Float32Array(this.slice(t,i))}}if(typeof Float64Array==="undefined"){window.Float64Array=Float32Array}return}function t(e,t){return new n(this.slice(e,t))}function i(e,t){if(arguments.length<2){t=0}for(var i=0,n=e.length;i<n;++i,++t){this[t]=e[i]&255}}function n(e){var n,a,o;if(typeof e==="number"){n=[];for(a=0;a<e;++a){n[a]=0}}else if("slice"in e){n=e.slice(0)}else{n=[];for(a=0,o=e.length;a<o;++a){n[a]=e[a]}}n.subarray=t;n.buffer=n;n.byteLength=n.length;n.set=i;if(typeof e==="object"&&e.buffer){n.buffer=e.buffer}return n}window.Uint8Array=n;window.Int8Array=n;window.Uint32Array=n;window.Int32Array=n;window.Uint16Array=n;window.Float32Array=n;window.Float64Array=n})();var W=function(e){return i.extend(true,{},n,e)};var V=function(e,n){var a="df-ui";var o="df-ui-wrapper";var r=a+"-"+"btn";var s=z(n.target);var c=n.ui=i(h.div,{class:a});var u=n.options;c.dispose=function(){e.find("."+r).each(function(){i(this).off()});P.off();f.off();p.off();g.off();v.off();m.off();b.off();w.off();y.off();E.off();M.off();D.off();j.off();_.off();H.off();W.off();V.off();G.off();q.off();Z.off();N.remove();x.remove();p.remove();f.remove();v.remove();if(c.shareBox){if(c.shareBox.dispose)c.shareBox.dispose();c.shareBox=null}document.removeEventListener("keyup",be,false);window.removeEventListener("click",I,false);c.update=null;n=null};var d=function(e){if(isNaN(e))e=n.target._activePage;else if(e<1)e=1;else if(e>n.target.pageCount)e=n.target.pageCount;return e};var f=c.next=i(h.div,{class:r+" "+a+"-next "+u.icons["next"],title:s?u.text.previousPage:u.text.nextPage,html:"<span>"+u.text.nextPage+"</span>"}).on("click",function(){n.next()});var p=c.prev=i(h.div,{class:r+" "+a+"-prev "+u.icons["prev"],title:s?u.text.nextPage:u.text.previousPage,html:"<span>"+u.text.previousPage+"</span>"}).on("click",function(){n.prev()});var g=i(h.div,{class:r+" "+a+"-play "+u.icons["play"],title:u.text.play,html:"<span>"+u.text.play+"</span>"}).on("click",function(){var e=i(this);n.setAutoPlay(!e.hasClass(u.icons["pause"]))});if(u.autoPlay==true){c.play=g;n.setAutoPlay(u.autoPlayStart)}var v=i(h.div,{class:o+" "+a+"-zoom"});var m=c.zoomIn=i(h.div,{class:r+" "+a+"-zoomin "+u.icons["zoomin"],title:u.text.zoomIn,html:"<span>"+u.text.zoomIn+"</span>"}).on("click",function(){n.zoom(1);c.update();if(n.target.startPoint&&n.target.pan)n.target.pan(n.target.startPoint)});var b=c.zoomOut=i(h.div,{class:r+" "+a+"-zoomout "+u.icons["zoomout"],title:u.text.zoomOut,html:"<span>"+u.text.zoomOut+"</span>"}).on("click",function(){n.zoom(-1);c.update();if(n.target.startPoint&&n.target.pan)n.target.pan(n.target.startPoint)});v.append(m).append(b);var w=c.pageNumber=i(h.div,{class:r+" "+a+"-page"}).on("change",function(){var e=parseInt(c.pageInput.val(),10);e=d(e);n.gotoPage(e)}).on("keyup",function(e){if(e.keyCode==13){var t=parseInt(c.pageInput.val(),10);t=d(t);if(t!==d(n.target._activePage||n._activePage))n.gotoPage(t)}});c.pageInput=i('<input id="df_book_page_number" type="text"/>').appendTo(w);c.pageLabel=i('<label for="df_book_page_number"/>').appendTo(w);var x=i(h.div,{class:o+" "+a+"-size"});var P=i(h.div,{class:r+" "+a+"-help "+u.icons["help"],title:u.text.toggleHelp,html:"<span>"+u.text.toggleHelp+"</span>"}).on("click",function(){});var y=c.sound=i(h.div,{class:r+" "+a+"-sound "+u.icons["sound"],title:u.text.toggleSound,html:"<span>"+u.text.toggleSound+"</span>"}).on("click",function(){u.soundEnable=!u.soundEnable;c.updateSound()});c.updateSound=function(){if(u.soundEnable==false||u.soundEnable=="false")y.addClass("disabled");else y.removeClass("disabled")};c.updateSound();function C(e){c.search.removeClass("df-active")}if(typeof u.source=="string"&&u.search==true){var L=c.search=i(h.div,{class:r+" "+a+"-search "+u.icons["search"]}).on("click",function(e){if(!L.hasClass("df-active")){i(this).addClass("df-active");e.stopPropagation()}});window.addEventListener("click",C,false);var S=i(h.div,{class:"search-container"});L.append(S)}var E=c.more=i(h.div,{class:r+" "+a+"-more "+u.icons["more"]}).on("click",function(e){if(!E.hasClass("df-active")){i(this).addClass("df-active");e.stopPropagation()}});function I(e){E.removeClass("df-active")}window.addEventListener("click",I,false);var T=i(h.div,{class:"more-container"});E.append(T);if(typeof u.source=="string"&&u.enableDownload==true){var O=r+" "+a+"-download "+u.icons["download"];var R=c.download=i('<a download target="_blank" class="'+O+'"><span>'+u.text.downloadPDFFile+"</span></a>");R.attr("href",u.source).attr("title",u.text.downloadPDFFile)}var F=l.hasFullscreenEnabled();if(!F){e.addClass("df-custom-fullscreen")}c.switchFullscreen=function(){var e=l.getFullscreenElement();var t=n.container[0];if(c.isFullscreen!=true){n.container.addClass("df-fullscreen");if(t.requestFullscreen){t.requestFullscreen()}else if(t.msRequestFullscreen){t.msRequestFullscreen()}else if(t.mozRequestFullScreen){t.mozRequestFullScreen()}else if(t.webkitRequestFullscreen){t.webkitRequestFullscreen()}c.isFullscreen=true}else{n.container.removeClass("df-fullscreen");c.isFullscreen=false;if(document.exitFullscreen){if(document.fullscreenElement)document.exitFullscreen()}else if(document.msExitFullscreen){document.msExitFullscreen()}else if(document.mozCancelFullScreen){if(document.fullscreenElement)document.mozCancelFullScreen()}else if(document.webkitExitFullscreen){document.webkitExitFullscreen()}}if(!l.hasFullscreenEnabled()){setTimeout(function(){n.resize()},50)}};var M=c.fullScreen=i(h.div,{class:r+" "+a+"-fullscreen "+u.icons["fullscreen"],title:u.text.toggleFullscreen,html:"<span>"+u.text.toggleFullscreen+"</span>"}).on("click",c.switchFullscreen);var D=c.fit=i(h.div,{class:r+" "+a+"-fit "+u.icons["fitscreen"]}).on("click",function(){i(this).toggleClass("df-button-fit-active")});x.append(M);var N=i(h.div,{class:o+" "+a+"-controls"});var A=c.shareBox=new t.Share(e,u);var j=c.share=i(h.div,{class:r+" "+a+"-share "+u.icons["share"],title:u.text.share,html:"<span>"+u.text.share+"</span>"}).on("click",function(e){if(c.shareBox.isOpen==true)c.shareBox.close();else{c.shareBox.update(n.getURLHash());c.shareBox.show()}});var _=c.startPage=i(h.div,{class:r+" "+a+"-start "+(s?u.icons["end"]:u.icons["start"]),title:u.text.gotoFirstPage,html:"<span>"+u.text.gotoFirstPage+"</span>"}).on("click",function(){n.start()});var H=c.endPage=i(h.div,{class:r+" "+a+"-end "+(s?u.icons["start"]:u.icons["end"]),title:u.text.gotoLastPage,html:"<span>"+u.text.gotoLastPage+"</span>"}).on("click",function(){n.end()});var W=c.pageMode=i(h.div,{class:r+" "+a+"-pagemode "+u.icons["singlepage"],html:"<span>"+u.text.singlePageMode+"</span>"}).on("click",function(){var e=i(this);n.setPageMode(!e.hasClass(u.icons["doublepage"]))});n.setPageMode(n.target.pageMode==t.PAGE_MODE.SINGLE);var V=c.altPrev=i(h.div,{class:r+" "+a+"-prev"+" "+a+"-alt "+u.icons["prev"],title:s?u.text.nextPage:u.text.previousPage,html:"<span>"+u.text.previousPage+"</span>"}).on("click",function(){n.prev()});var G=c.altNext=i(h.div,{class:r+" "+a+"-next"+" "+a+"-alt "+u.icons["next"],title:s?u.text.previousPage:u.text.nextPage,html:"<span>"+u.text.nextPage+"</span>"}).on("click",function(){n.next()});var q=c.thumbnail=i(h.div,{class:r+" "+a+"-thumbnail "+u.icons["thumbnail"],title:u.text.toggleThumbnails,html:"<span>"+u.text.toggleThumbnails+"</span>"}).on("click",function(){var e=i(this);if(n.target.thumbContainer){var t=n.target.thumbContainer;t.toggleClass("df-sidemenu-visible");e.toggleClass("df-active")}else{n.contentProvider.initThumbs();e.toggleClass("df-active")}if(e.hasClass("df-active")){e.siblings(".df-active").trigger("click")}c.update(true)});var Z=c.outline=i(h.div,{class:r+" "+a+"-outline "+u.icons["outline"],title:u.text.toggleOutline,html:"<span>"+u.text.toggleOutline+"</span>"}).on("click",function(){var e=i(this);if(n.target.outlineContainer){var t=n.target.outlineContainer;e.toggleClass("df-active");t.toggleClass("df-sidemenu-visible");if(e.hasClass("df-active")){e.siblings(".df-active").trigger("click")}c.update(true)}});var Y=u.allControls.replace(/ /g,"").split(","),K=","+u.moreControls.replace(/ /g,"")+",",X=","+u.hideControls.replace(/ /g,"")+",";if(U&&B){X+=",fullScreen,"}var Q=K.split(",");for(var $=0;$<Y.length;$++){var J=Y[$];if(X.indexOf(","+J+",")<0){var ee=c[J];if(ee!=null&&typeof ee=="object"){if(K.indexOf(","+J+",")>-1&&J!=="more"&&J!=="pageNumber"){T.append(ee)}else{N.append(ee)}}}}e.append(N).append(p).append(f).append(v);var te=false,ie=false,ne=false;var ae=16,oe=17,re=18,se=83,le=86,ce=67,ue=69,de=71,fe=78,he=79,pe=46,ge=39,ve=37,me=27;document.addEventListener("keyup",be,false);function be(e){switch(e.keyCode){case me:if(c.isFullscreen==true){c.fullScreen.trigger("click")}else if(window.dfLightBox&&window.dfActiveLightBoxBook){window.dfLightBox.closeButton.trigger("click")}break;case ae:ie=false;break;case oe:te=false;break;case re:ne=false;break;case ve:n.prev();break;case ge:n.next();break;default:break}}c.update=function(i){k("ui update");var a=n.target;var o=d(a._activePage||n._activePage);var r=a.pageCount||n.pageCount;var s=a.direction==t.DIRECTION.RTL,l=o==1||o==0,u=o==r;c.next.show();c.prev.show();c.altNext.removeClass("disabled");c.altPrev.removeClass("disabled");if(l&&!s||u&&s){c.prev.hide();c.altPrev.addClass("disabled")}if(u&&!s||l&&s){c.next.hide();c.altNext.addClass("disabled")}c.pageInput.val(o);c.pageLabel.html(o+"/"+r);if(e.find(".df-sidemenu-visible").length>0){e.addClass("df-sidemenu-open")}else{e.removeClass("df-sidemenu-open")}if(i==true)n.resize();if(a.contentProvider.zoomScale==a.contentProvider.maxZoom){c.zoomIn.addClass("disabled")}else{c.zoomIn.removeClass("disabled")}if(a.contentProvider.zoomScale==1){c.zoomOut.addClass("disabled")}else{c.zoomOut.removeClass("disabled")}};if(n.target!=null){n.target.ui=c}if(u.onCreateUI!=null)u.onCreateUI(n)};var G=null;function q(){G=function(e){H(t,e);function t(t){t=t||{};var a=this;e.call(this,t);a.options=t;a.canvas=i(a.renderer.domElement).addClass("df-3dcanvas");a.container=t.container;a.container.append(a.canvas);a.type="PreviewStage";a.mouse=new THREE.Vector2;a.raycaster=new THREE.Raycaster;a.camera.position.set(0,20,600);a.camera.lookAt(new THREE.Vector3(0,0,0));a.spotLight.position.set(-220,330,550);a.spotLight.castShadow=B?false:t.webglShadow;if(a.spotLight.shadow){a.spotLight.shadow.bias=-8e-4}a.spotLight.intensity=p(t.spotLightIntensity,n.spotLightIntensity);a.ambientLight.color=new THREE.Color(p(t.ambientLightColor,n.ambientLightColor));a.ambientLight.intensity=p(t.ambientLightIntensity,n.ambientLightIntensity);var o=new THREE.ShadowMaterial;o.opacity=p(t.shadowOpacity,n.shadowOpacity);a.ground.material=o;a.ground.position.z=-2;a.orbitControl.maxAzimuthAngle=0;a.orbitControl.minAzimuthAngle=0;a.orbitControl.minPolarAngle=Math.PI/2;a.orbitControl.maxPolarAngle=2.2;a.orbitControl.mouseButtons.ORBIT=THREE.MOUSE.RIGHT;a.orbitControl.mouseButtons.PAN=-1;a.orbitControl.maxDistance=5e3;a.orbitControl.minDistance=50;a.orbitControl.noZoom=true;a.selectiveRendering=true;a.orbitControl.zoomSpeed=5;a.orbitControl.keyPanSpeed=0;a.orbitControl.center.set(0,0,0);a.orbitControl.update();a.swipe_threshold=B?15:20;var r=a.cssRenderer=new THREE.CSS3DRenderer;i(r.domElement).css({position:"absolute",top:0,pointerEvents:"none"}).addClass("df-3dcanvas df-csscanvas");a.container[0].appendChild(r.domElement);var s=a.cssScene=new THREE.Scene;var c=document.createElement("div");c.className="df-page-content df-page-content-left";var u=document.createElement("div");u.className="df-page-content df-page-content-right";var d=s.divLeft=new THREE.CSS3DObject(c);var h=s.divRight=new THREE.CSS3DObject(u);s.add(d);s.add(h);a.resizeCallback=function(){r.setSize(a.canvas.width(),a.canvas.height())};function g(){a.renderRequestPending=true}window.addEventListener(f.move,g,false);window.addEventListener("keyup",g,false);a.dispose=function(){-a.clearChild();a.render();window.removeEventListener(f.move,g,false);if(a.options.scrollWheel==true){a.container[0].removeEventListener("mousewheel",v,false);a.container[0].removeEventListener("DOMMouseScroll",v,false)}window.removeEventListener("keyup",g,false);a.renderer.domElement.removeEventListener("mousemove",m,false);a.renderer.domElement.removeEventListener("touchmove",m,false);a.renderer.domElement.removeEventListener("mousedown",b,false);a.renderer.domElement.removeEventListener("touchstart",b,false);a.renderer.domElement.removeEventListener("mouseup",x,false);a.renderer.domElement.removeEventListener("touchend",x,false);a.canvas.remove();r.domElement.parentNode.removeChild(r.domElement);r=null;a.renderCallback=null;a.renderCallback=null;a.orbitControl.dispose();a.orbitControl=null;a.renderer.dispose();a.cancelRAF()};a.renderCallback=function(){if(TWEEN.getAll().length>0)a.renderRequestPending=true;TWEEN.update();r.render(s,a.camera)};var v=function(e){var t=0;if(e.wheelDelta!=null){t=e.wheelDelta}else if(e.detail!=null){t=-e.detail}if(t){var i=a.previewObject.contentProvider.zoomScale;if(t>0&&i==1||t<0&&i>1){e.preventDefault()}a.previewObject.zoom(t>0?1:-1)}g()};var m=function(e){a.renderRequestPending=true;e=D(e);if(a.isMouseDown&&e.movementX!=0&&e.movementY!=0){a.isMouseMoving=true}if(e.touches!=null&&e.touches.length==2&&a.startTouches!=null){a.zoomDirty=true;var t=l.getVectorAvg(l.getTouches(e,a.container.offset())),i=l.calculateScale(a.startTouches,l.getTouches(e)),n=i/a.lastScale;var o=a.previewObject.contentProvider.zoomScale,r=t.x,s=t.y;a.camera.position.z=a.originalZ/i;a.lastScale=i;a.lastZoomCenter=t;e.preventDefault();return}if(a.isMouseDown==true&&a.previewObject.contentProvider.zoomScale==1){var c=e.pageX-a.lastPos,u=performance.now()-a.lastTime;if(Math.abs(c)>a.swipe_threshold){if(c<0){a.target.next()}else{a.target.prev()}e.preventDefault();a.isMouseDown=false}a.lastPos=e.pageX;a.lastTime=performance.now()}};var b=function(e){e=D(e);if(e.touches!=null&&e.touches.length==2&&a.startTouches==null){a.startTouches=l.getTouches(e);a.lastScale=1;a.originalZ=a.camera.position.z*1}document.activeElement.blur();a.mouseValue=e.pageX+","+e.pageY;a.isMouseMoving=false;a.isMouseDown=true;a.lastPos=e.pageX;a.lastTime=performance.now()};var w=function(e){a.isMouseDown=false;if(e.button!==0)return this;var t=e.pageX+","+e.pageY;if(a.isMouseMoving){}else if(t==a.mouseValue){e=e||window.event;e=i.event.fix(e);var n=a.mouse,o=a.raycaster;n.x=e.offsetX/a.canvas.innerWidth()*2-1;n.y=1-e.offsetY/a.canvas.innerHeight()*2;o.setFromCamera(n,a.camera);var r=o.intersectObjects(a.target instanceof MOCKUP.Bundle?a.target.children:[a.target],true);if(r.length>0){var s,l=0;do{s=r[l]!=null?r[l].object:null;l++}while((s instanceof THREE.BoxHelper||!(s instanceof MOCKUP.Paper)||s.isFlipping==true)&&l<r.length);if(s.userData.object!=null){}else{if(s.angles[1]>90){if(s.isEdge!=true)a.target.next()}else{if(s.isEdge!=true)a.target.prev()}}}else{}}};var x=function(e){e=D(e);if(e.touches!=null&&e.touches.length==0){var t=a.previewObject.contentProvider.zoomScale;if(a.zoomDirty==true){a.previewObject.contentProvider.zoomScale=l.limitAt(a.previewObject.contentProvider.zoomScale*a.lastScale,1,a.previewObject.contentProvider.maxZoom);a.previewObject.zoomValue=a.previewObject.contentProvider.zoomScale*1;a.previewObject.resize();a.zoomDirty=false}a.lastScale=null;a.startTouches=null}if(e.touches!=null&&e.touches.length>1)return;w(e)};a.renderer.domElement.addEventListener("mousemove",m,false);a.renderer.domElement.addEventListener("touchmove",m,false);a.renderer.domElement.addEventListener("mousedown",b,false);a.renderer.domElement.addEventListener("touchstart",b,false);a.renderer.domElement.addEventListener("mouseup",x,false);a.renderer.domElement.addEventListener("touchend",x,false);if(a.options.scrollWheel==true){a.container[0].addEventListener("mousewheel",v,false);a.container[0].addEventListener("DOMMouseScroll",v,false)}i(a.renderer.domElement).css({display:"block"});i(window).trigger("resize");return this}t.prototype.width=function(){return this.container.width()};t.prototype.height=function(){return this.container.height()};return t}(MOCKUP.Stage);MOCKUP.PreviewStage=G;var e=function(e){H(i,e);function i(t,i){t=t||{};t.folds=1;e.call(this,t,i);this.angle=0;this.isFlipping=false;this.material.materials[5].transparent=true;this.material.materials[4].transparent=true;this.type="BookPaper"}i.prototype.tween=function(e,i){var n=this;var a=1e-5;n.originalStiff=n.stiffness;var o=n.newStiffness;var r=A(n.parent);var s=i-e;var l=e>90;var c=n.parent.direction==t.DIRECTION.RTL;n.init={angle:e,angle2:e<90?0:180,stiff:n.originalStiff,index:l&&!c||!l&&c?1:0};n.first={angle:e+s/4,angle2:e<90?90:90,stiff:n.originalStiff,index:l&&!c||!l&&c?1:.25};n.mid={angle:e+s*2/4,angle2:e<90?135:45,stiff:n.newStiffness,index:l&&!c||!l&&c?.5:.5};n.mid2={angle:e+s*3/4,angle2:e<90?180:0,stiff:n.newStiffness,index:l&&!c||!l&&c?.25:1};n.end={angle:i,angle2:e<90?180:0,stiff:n.newStiffness,index:l&&!c||!l&&c?0:1};n.isFlipping=true;var u=function(e,t){n.angles[1]=e.angle;n.angles[4]=n.isHard?e.angle:e.angle2;if(n.isHard==true){n.stiffness=0}else{n.stiffness=e.stiff/(o+a)*(n.newStiffness+a);n.stiffness=isNaN(n.stiffness)?0:e.stiff}if(r){n.material.materials[5].opacity=n.material.materials[4].opacity=e.index;n.castShadow=l&&!c||!l&&c?e.index>.5:e.index>.5}n.updateAngle(true)};if(r&&(!l&&!c||l&&c)){n.material.materials[5].opacity=n.material.materials[4].opacity=0;n.castShadow=false}n.currentTween=new TWEEN.Tween(n.init).to({angle:[n.first.angle,n.mid.angle,n.mid2.angle,n.end.angle],angle2:[n.first.angle2,n.mid.angle2,n.mid2.angle2,n.end.angle2],stiff:[n.first.stiff,n.mid.stiff,n.mid2.stiff,n.end.stiff],index:[n.first.index,n.mid.index,n.mid2.index,n.end.index]},n.parent.duration).onUpdate(function(e){u(this,e)}).easing(TWEEN.Easing.Sinusoidal.Out).onComplete(function(e){n.stiffness=n.newStiffness;n.updateAngle();n.material.materials[5].opacity=n.material.materials[4].opacity=1;n.castShadow=true;n.isFlipping=false;if(n.parent&&n.parent.refresh)n.parent.refresh()}).start()};return i}(MOCKUP.FlexBoxPaper);MOCKUP.BookPaper=e;var a=function(e){H(i,e);function i(i,n){i=i||{};i.segments=i.segments||50;this.pageCount=i.pageCount;this.height=i.height;this.width=i.width;this.direction=i.direction||t.DIRECTION.LTR;this.startPage=1;this.endPage=this.pageCount;this.stackCount=i.stackCount||6;this.materials=[];e.call(this,i,n);this.angles=[0,0,0,0,0,0];this.stiffness=i.stiffness==null?1.5:i.stiffness;this.hardConfig=i.hard;this._activePage=i.openPage||this.startPage;this.createStack(i);this.pageMode=i.pageMode||(B||this.pageCount<=2?t.PAGE_MODE.SINGLE:t.PAGE_MODE.DOUBLE);this.singlePageMode=i.singlePageMode||(B?t.SINGLE_PAGE_MODE.BOOKLET:t.SINGLE_PAGE_MODE.ZOOM);this.type="Book"}i.prototype.getPageByNumber=function(e){var t=A(this)?z(this)?e+1:e:Math.floor((e-1)/2);return this.getObjectByName(t.toString())};i.prototype.isPageHard=function(e){return l.isHardPage(this.hardConfig,e,this.pageCount)};i.prototype.activePage=function(e){if(e==null)return this._activePage;this.gotoPage(e)};i.prototype.gotoPage=function(e){e=parseInt(e,10);this._activePage=e;if(this.autoPlay==true){this.previewObject.setAutoPlay(this.autoPlay)}this.updatePage(e);if(this&&this.thumblist&&this.thumblist.review)this.thumblist.review()};i.prototype.moveBy=function(e){var t=this._activePage+e;t=S(t,this.startPage,this.endPage);if(this.firstFlipped!=true){this.previewObject.analytics({eventAction:"First Page Flip",options:this.previewObject.options});this.firstFlipped=true}this.gotoPage(t)};i.prototype.next=function(e){if(e==null)e=this.direction==t.DIRECTION.RTL?-this.pageMode:this.pageMode;this.moveBy(e)};i.prototype.prev=function(e){if(e==null)e=this.direction==t.DIRECTION.RTL?this.pageMode:-this.pageMode;this.moveBy(e)};i.prototype.updateAngle=function(){var e=this.angles[1];var t=this.angles[4];var i=t-e;var n=this.stackCount;for(var a=0;a<n;a++){var o=this.children[a];o.angles[1]=e+a*i/(n*100);o.stiffness=this.stiffness;o.updateAngle()}};i.prototype.refresh=function(){this.updatePage(this._activePage);if(this.flipCallback!=null)this.flipCallback()};i.prototype.updatePage=function(e){var i=this.direction==t.DIRECTION.RTL,a=A(this),o=F(e);var r=a?1:2;e=Math.floor(e/r);if(i)e=Math.ceil(this.pageCount/r)-e;var s=this.oldBaseNumber||0;var l=this.pageCount/r;var c=this.stackCount;var u=.02;var d=.4;var f=a?0:(.5-Math.abs(l/2-e)/l)/this.stiffness;var h=1;var p=Math.floor(c/2);var g=false;if(s>e){g=true;this.children[c-1].skipFlip=true;this.children.unshift(this.children.pop())}else if(s<e){this.children[0].skipFlip=true;this.children.push(this.children.shift())}var v=l-e;var m=5/l;var b=m*e/2;var w=m*v/2;var x=b<w?w:b;for(var P=0;P<c;P++){var y=this.children[P];var C=y.color;var L=y.angles[1];var S;var E=e-p+P;if(i)E=a?this.pageCount-E:Math.ceil(this.pageCount/2)-E-1;var I=y.isHard=this.isPageHard(E);var T=y.name;y.isEdge=false;if(P==0){y.depth=b<d?d:b}else if(P==c-1){y.depth=w<d?d:w}else{y.depth=d;y.isEdge=false}if(y.isFlipping==true){y.depth=d}y.position.x=0;var k=u*P,O=180-u*(P-p)+u*P;if(P<p){y.newStiffness=I||this.stiffness==0?0:f/(e/l)/4;S=k;y.position.z=x-(-P+p)*d;if(g==true)y.position.z-=d}else{S=O;y.newStiffness=I||this.stiffness==0?0:f/(Math.abs(l-e)/l)/4;y.position.z=x-(-c+P+p+1)*d-y.depth}if(y.isFlipping==false){if(Math.abs(L-S)>20&&y.skipFlip==false){y.depth=d;var R=y.stiffness;if(L>S){R=f/(Math.abs(l-e)/l)/4}else{R=f/(e/l)/4}y.position.z+=d;y.stiffness=isNaN(R)?y.stiffness:R;y.updateAngle(true);y.targetStiffness=I?0:P<e?f/(Math.abs(l-e)/l)/4:f/(e/l)/4;y.targetStiffness=I?0:isNaN(y.targetStiffness)?y.stiffness:y.targetStiffness;y.isFlipping=true;y.tween(L,S);if(this.preFlipCallback!=null)this.preFlipCallback()}else{y.skipFlip=false;y.newStiffness=isNaN(y.newStiffness)?0:y.newStiffness;if(y.angles[1]!=S||y.stiffness!=y.newStiffness||y.depth!=y.oldDepth){y.angles[1]=y.angles[4]=S;y.stiffness=y.newStiffness;y.updateAngle(true)}else{}}}y.visible=a?i?P<p||y.isFlipping:P>=p||y.isFlipping:E>=0&&E<l||a&&E==l;if(this.requestPage!=null){y.name=E.toString();if(y.name!=T){y.textureLoaded=false;y.frontImage(n.textureLoadFallback);y.frontPageStamp="-1";y.frontTextureLoaded=false;y.thumbLoaded=false;y.backImage(n.textureLoadFallback);y.backPageStamp="-1";y.backTextureLoaded=false;this.requestPage()}}y.oldDepth=y.depth;var M=Math.abs(y.geometry.boundingBox.max.x)<Math.abs(y.geometry.boundingBox.min.x)?y.geometry.boundingBox.max.x:y.geometry.boundingBox.min.x;y.position.x=y.isEdge==true&&y.isFlipping==false?P<p?M:-M:0}this.oldBaseNumber=e;if(this.updatePageCallback!=null)this.updatePageCallback()};i.prototype.createCover=function(e){e.width=e.width*2;this.cover=new MOCKUP.BiFold(e);this.add(this.cover)};i.prototype.createStack=function(e){var t="red,green,blue,yellow,orange,black".split(",");for(var i=0;i<this.stackCount;i++){e.angles=[,this.stackCount-i];e.stiffness=(this.stackCount-i)/100;var n=new MOCKUP.BookPaper(e);n.angles[1]=180;n.index=i;n.updateAngle();n.textureReady=false;n.textureRequested=false;this.add(n);n.color=t[i];n.position.z=-1*i}};i.prototype.shininess=function(e){if(e==null){return this.mainObject.shininess()}else{this.mainObject.shininess(e)}};i.prototype.bumpScale=function(e){if(e==null){return this.mainObject.bumpScale()}else{this.mainObject.bumpScale(e)}};i.prototype.frontImage=function(e){if(e==null){return this.mainObject.frontImage()}else{this.mainObject.frontImage(e)}};i.prototype.backImage=function(e){if(e==null){return this.mainObject.backImage()}else{this.mainObject.backImage(e)}};return i}(MOCKUP.Bundle);MOCKUP.Book=a}var Z=function(e){function n(e){e=e||{};this.type="PreviewObject";var i=this;i.zoomValue=1;function n(){setTimeout(function(){i.resize()},50)}window.addEventListener("resize",n,false);this.sound=document.createElement("audio");this.sound.setAttribute("src",e.soundFile+"?ver="+t.version);this.sound.setAttribute("type","audio/mpeg");this.autoPlayFunction=function(){if(i&&i.target.autoPlay){if(i.target.direction==t.DIRECTION.RTL)i.target.prev();else i.target.next()}};this.dispose=function(){clearInterval(this.autoPlayTimer);this.autoPlayTimer=null;this.autoPlayFunction=null;if(this.target&&this.target.children){for(var e=0;e<this.target.children.length;e++){var t=this.target.children[e];if(t&&t.currentTween)t.currentTween.stop()}}if(this.zoomTween){if(this.zoomTween.stop)this.zoomTween.stop();this.zoomTween=null}if(this.container&&this.container.info&&this.container.info.remove)this.container.info.remove();if(this.target&&this.target.dispose)this.target.dispose();this.target=null;if(this.stage&&this.stage.dispose)this.stage.dispose();this.stage=null;if(this.ui&&this.ui.dispose)this.ui.dispose();this.ui=null;if(this.contentProvider&&this.contentProvider.dispose)this.contentProvider.dispose();this.contentProvider=null;window.removeEventListener("resize",n)}}n.prototype={start:function(){this.target.gotoPage(this.target.startPage)},end:function(){this.target.gotoPage(this.target.endPage)},next:function(){},prev:function(){},getPageTextContent:function(e){return this.contentProvider.pdfDocument.getPage(e+1).then(function(e){return e.getTextContent({normalizeWhitespace:true})})},calculateSize:function(e,t,i,n,a,o,r,s){var l=e;var c=t-a;var u=l-n;var d=Math.ceil(s?c:c/2);var f=d/r;var h=null;if(o){h=Math.min(f,i-n);l=h}else{h=Math.min(u,i-n)}var p=f>h;var g,v;if(p){v=h;g=Math.floor(v*r)}else{g=d;v=Math.ceil(d/r)}if(o){l=Math.max(v+n,320)}return{stageHeight:l,isWide:p,height:v,width:g}},zoom:function(e){this.pendingZoom=true;this.zoomDelta=e;this.resize();if(this.ui)this.ui.update()},resize:function(){var e=this;if(e.target==null||e.target.ui==null||e.target.contentProvider==null||e.target.contentProvider.viewport==null||e.target.stage==null)return;if(this.ui&&this.ui.isFullscreen==true&&l.hasFullscreenEnabled()==true&&l.getFullscreenElement()==null){this.ui.switchFullscreen()}var n=e.target,a=e.container,o=e.options,r=n.stage,s=n.contentProvider,u=s.pageRatio,d=s.zoomViewport,f=z(n),h=n.mode!=="css",p=s.pageRatio>1,g=this.ui.isFullscreen==true?false:o.height==="auto",v,m,b,w,x,P,y,C=a.hasClass("df-sidemenu-open")?220:0,L=this.target.pageMode==t.PAGE_MODE.SINGLE;var I=a.width();if(I<400){e.container.addClass("df-xs")}else{e.container.removeClass("df-xs")}var T=a.find(".df-ui-controls").height();var k=o.paddingTop+(o.controlsPosition==t.CONTROLSPOSITION.TOP?T:0),O=o.paddingRight,R=o.paddingBottom+(o.controlsPosition==t.CONTROLSPOSITION.BOTTOM?T:0),F=o.paddingLeft;k=isNaN(k)?0:S(k,0,k),R=isNaN(R)?0:S(R,0,R),F=isNaN(F)?0:S(F,0,F),O=isNaN(O)?0:S(O,0,O);var M=k+R,D=F+O;var N=I-C;a.height(o.height);var A=i(window).height();var B=Math.min(a.height(),A);var j=e.calculateSize(B,N,A,M,D,g,u,L);if(g){B=_=e.calculateSize(B,N+C,A,M,D,g,u,L).stageHeight}else{B=_=j.stageHeight}a.height(B);var _=B;var U=N-D,H=_-M;b=Math.floor(L?U:U/2);m=Math.floor(b/u);v=m>H;if(v){m=H;b=m*u}y=s.maxZoom=s.zoomViewport.height/m;if(e.zoomValue==null)e.zoomValue=1;if(s.zoomScale==null)s.zoomScale=1;if(e.pendingZoom==true&&e.zoomDelta!=null){var W=e.zoomDelta,V,G=Math.max(m,b);e.zoomValue=e.zoomDelta>0?e.zoomValue*e.options.zoomRatio:e.zoomValue/e.options.zoomRatio;e.zoomValue=S(e.zoomValue,1,y);if(e.zoomValue==1){s.zoomScale=1}else{s.zoomScale=S(e.zoomValue,1,y)}}P=s.zoomScale;s.checkViewportSize(b,m,P);if(s.contentSourceType==c.PDF){b=s.imageViewport.width/P;m=s.imageViewport.height/P}if(s.zoomScale!=1){this.target.container.addClass("df-zoom-enabled")}var q=n.zoomWidth=Math.floor(b*P),Z=n.zoomHeight=Math.floor(m*P);var Y=q*2;if(h){var K=Z/n.height,X=N/_;var Q=P*(m+M)/K,$=P*(b*(L?1:2)+D)/K;var J=v?Q:$/X;r.resizeCanvas(N,_);w=1/(2*Math.tan(Math.PI*r.camera.fov*.5/180)/(J/P))+2.2;r.camera.updateProjectionMatrix();r.renderRequestPending=true;var ee=(k-R)*(n.height/m)/P/2;var te=s.zoomScale==1;if(r.camera.position.z!==w&&e.pendingZoom==true){if(e.zoomTween!=null)e.zoomTween.stop();e.zoomTween=new TWEEN.Tween({campos:r.camera.position.z,otx:r.orbitControl.target.x,oty:r.orbitControl.target.y,otz:r.orbitControl.target.z}).delay(0).to({campos:w,otx:0,oty:ee,otz:0},100).onUpdate(function(){r.camera.position.z=this.campos;if(te){r.camera.position.y=this.oty;r.orbitControl.target=new THREE.Vector3(this.otx,this.oty,this.otz)}r.orbitControl.update()}).easing(TWEEN.Easing.Linear.None).onComplete(function(){r.camera.position.z=w;if(s.zoomScale==1){r.camera.position.set(0,ee,w);r.orbitControl.target=new THREE.Vector3(0,ee,0)}r.orbitControl.update()}).start()}else{if(s.zoomScale==1){r.camera.position.set(0,ee,w);r.orbitControl.target=new THREE.Vector3(0,ee,0)}r.orbitControl.update()}r.orbitControl.update();r.orbitControl.mouseButtons.ORBIT=P!=1?-1:THREE.MOUSE.RIGHT;r.orbitControl.mouseButtons.PAN=P!=1?THREE.MOUSE.LEFT:-1}else{n.pageWidth=Math.round(b);n.fullWidth=n.pageWidth*2;n.height=Math.round(m);var ie=n.shiftHeight=Math.round(S((Z-_+M)/2,0,Z)),ne=n.shiftWidth=Math.round(S((Y-N+D)/2,0,Y));if(P==1){n.left=0;n.top=0}n.stage.css({top:-ie,bottom:-ie,right:-ne+(f?C:0),left:-ne+(f?0:C),paddingTop:k,paddingRight:O,paddingBottom:R,paddingLeft:F,transform:"translate3d("+n.left+"px,"+n.top+"px,0)"});n.stageHeight=r.height();n.wrapper.css({width:Y,height:Z,marginTop:B-Z-M>0?(B-M-Z)/2:0});var ae=Math.floor(E(b,m)*P);n.stage.find(".df-page-wrapper").width(ae).height(ae);n.stage.find(".df-book-page, .df-page-front , .df-page-back, .df-page-fold-inner-shadow").height(Z).width(q)}e.checkCenter({type:"resize"});if(s.zoomScale==1){this.target.container.removeClass("df-zoom-enabled")}if(n.thumblist){n.thumblist.reset(i(n.thumblist.container).height())}e.pendingZoom=false},playSound:function(){try{if(this.options&&this.options.soundEnable==true){this.sound.currentTime=0;this.sound.play()}}catch(e){}},setPageMode:function(e){if(e==true){this.ui.pageMode.addClass(this.options.icons["doublepage"]);this.ui.pageMode.html("<span>"+this.options.text.doublePageMode+"</span>");this.ui.pageMode.attr("title",this.options.text.doublePageMode);this.target.pageMode=t.PAGE_MODE.SINGLE}else{this.ui.pageMode.removeClass(this.options.icons["doublepage"]);this.ui.pageMode.html("<span>"+this.options.text.singlePageMode+"</span>");this.ui.pageMode.attr("title",this.options.text.singlePageMode);this.target.pageMode=t.PAGE_MODE.DOUBLE}if(this.target&&this.target.singlePageMode==t.SINGLE_PAGE_MODE.BOOKLET){this.target.reset()}this.resize()},setAutoPlay:function(e){if(this.options.autoPlay){e=e==true;var t=e?this.options.text.pause:this.options.text.play;this.ui.play.toggleClass(this.options.icons["pause"],e);this.ui.play.html("<span>"+t+"</span>");this.ui.play.attr("title",t);clearInterval(this.autoPlayTimer);if(e){this.autoPlayTimer=setInterval(this.autoPlayFunction,this.options.autoPlayDuration)}this.target.autoPlay=e}},height:function(e){if(e==null){return this.container.height()}else{this.options.height=e;this.container.height(e);this.resize()}},checkCenter:function(e){e=e==null?{}:e;this.centerType=this.centerType||"start";var i=this.target;var n=0,a=0,o=0;var r=l.getBasePage(i._activePage);var s=i._activePage%2==0;var c=i.direction==t.DIRECTION.RTL;var u=i.pageMode==t.PAGE_MODE.SINGLE,d=u&&i.singlePageMode==t.SINGLE_PAGE_MODE.BOOKLET;var f=i.stage.width(),h;if(i.mode=="css"){h=i.wrapper.width();n=Math.max((h-f)/2,0);a=-h/4;o=h/4;if(r==0||d){i.wrapper.css({left:u?c?o-n:a-n:c?o:a});i.shadow.css({width:"50%",left:c?0:"50%",transitionDelay:""})}else if(r==i.pageCount){i.wrapper.css({left:u?c?a-n:o-n:c?a:o});i.shadow.css({width:"50%",left:c?"50%":0,transitionDelay:""})}else{i.wrapper.css({left:u?c?s?a-n:o-n:s?o-n:a-n:0});i.shadow.css({width:"100%",left:0,transitionDelay:parseInt(i.duration,10)+50+"ms"})}i.wrapper.css({transition:e.type=="resize"?"none":""})}else if(i.stage!=null){var p=i.position.x,g;n=i.width/4;h=i.width;a=-h/2;o=h/2;if(r==0||d){g=c?o:a}else if(r==i.pageCount){g=c?a:o}else{g=u?c?s?a:o:s?o:a:0}if(g!==this.centerEnd){this.centerTween=new TWEEN.Tween({x:p}).delay(0).to({x:g},i.duration).onUpdate(function(){i.position.x=this.x;i.stage.cssScene.position.x=this.x}).easing(i.ease).start();this.centerEnd=g}}},width:function(e){if(e==null){return this.container.width()}else{this.options.width=e;this.container.width(e);this.resize()}}};return n}({});t.PreviewObject=Z;var Y=function(e){H(a,e);function a(e,a,o,r){o=o||{};var s=this;s.contentRawSource=e||[n.textureLoadFallback];s.contentSource=s.contentRawSource;s.contentSourceType=null;s.minDimension=o.minTextureSize||256;s.maxDimension=o.maxTextureSize||2048;s.pdfRenderQuality=o.pdfRenderQuality||t.defaults.pdfRenderQuality;s.flipbook=r;s.waitPeriod=50;s.maxLength=297;s.enableDebug=false;s.zoomScale=1;s.maxZoom=2;s.options=o;s.outline=o.outline;s.links=o.links;s.html=o.html;s.isCrossOrigin=o.isCrossOrigin;s.normalViewport={height:297,width:210,scale:1};s.viewport={height:297,width:210,scale:1};s.imageViewport={height:297,width:210,scale:1};s.bookSize={height:297,width:210};s.zoomViewport={height:297,width:210};s.thumbsize=128;s.cacheIndex=256;s.cache=[];s.pageRatio=o.pageRatio||s.viewport.width/s.viewport.height;s.textureLoadTimeOut=null;s.type="TextureLibrary";if(Array===s.contentSource.constructor||Array.isArray(s.contentSource)||s.contentSource instanceof Array){s.contentSourceType=c.IMAGE;s.pageCount=s.contentSource.length;for(var u=0;u<s.contentSource.length;u++){s.contentSource[u]=l.httpsCorrection(s.contentSource[u].toString())}i("<img/>").attr("src",s.contentSource[0]).on("load",function(){s.viewport.height=this.height;s.viewport.width=this.width;s.pageRatio=s.viewport.width/s.viewport.height;s.bookSize={width:(s.pageRatio>1?1:s.pageRatio)*s.maxLength,height:s.maxLength/(s.pageRatio<1?1:s.pageRatio)};s.zoomViewport={width:(s.pageRatio>1?1:s.pageRatio)*s.maxDimension,height:s.maxDimension/(s.pageRatio<1?1:s.pageRatio)};s.linkService=new PDFLinkService;i(this).off();if(s.options.pageSize==t.PAGE_SIZE.DOUBLEINTERNAL){s.pageCount=s.contentSource.length*2-2;if(s.options.webgl==true)s.requiresImageTextureScaling=true}if(a!=null){a(s);a=null}k(this.height+":"+this.width)})}else if(typeof s.contentSource=="string"||s.contentSource instanceof String){var d=function(){if(s.contentSource.indexOf(".base64")>1){i.ajax({url:s.contentSource,xhrFields:{onprogress:function(e){if(e.lengthComputable){var t=100*e.loaded/e.total;s.updateInfo(s.options.text.loading+" PDF "+t.toString().split(".")[0]+"% ...")}}},success:function(e){s.options.docParameters={data:atob(e)};f()}})}else{f()}};var f=function(){if(s){pdfjsLib.GlobalWorkerOptions.workerSrc=n.pdfjsWorkerSrc;s.contentSourceType=c.PDF;var i=s.options.disableFontFace;if(_||U||s.options.disableFontFace==true){}var o=s.loading=pdfjsLib.getDocument(s.options.docParameters?s.options.docParameters:{url:l.httpsCorrection(e),rangeChunkSize:isNaN(s.options.rangeChunkSize)?524288:s.options.rangeChunkSize,cMapUrl:n.cMapUrl,cMapPacked:true,imageResourcesPath:n.imageResourcesPath,disableAutoFetch:true,disableStream:true,disableFontFace:i});o.promise.then(function e(i){s.pdfDocument=i;i.getPage(1).then(function(e){s.normalViewport=e.getViewport({scale:1});s.viewport=e.getViewport({scale:1});s.viewport.height=s.viewport.height/10;s.viewport.width=s.viewport.width/10;s.pageRatio=s.viewport.width/s.viewport.height;s.bookSize={width:(s.pageRatio>1?1:s.pageRatio)*s.maxLength,height:s.maxLength/(s.pageRatio<1?1:s.pageRatio)};s.zoomViewport={width:(s.pageRatio>1?1:s.pageRatio)*s.maxDimension,height:s.maxDimension/(s.pageRatio<1?1:s.pageRatio)};s.refPage=e;if(i.numPages>1){i.getPage(2).then(function(e){if(s.options.pageSize==t.PAGE_SIZE.AUTO){var n=e.getViewport({scale:1});var o=n.width/n.height;if(o>s.pageRatio*1.5){s.options.pageSize=t.PAGE_SIZE.DOUBLEINTERNAL;s.pageCount=i.numPages*2-2}else{s.options.pageSize=t.PAGE_SIZE.SINGLE}}if(a!=null){a(s);a=null}})}else{if(a!=null){a(s);a=null}}});s.linkService=new PDFLinkService;s.linkService.setDocument(i,null);s.pageCount=i.numPages;s.contentSource=i},function e(t){if(s){var i="",n=document.createElement("a");n.href=s.contentSource;if(n.hostname!==window.location.hostname)i="CROSS ORIGIN!! ";s.updateInfo(i+"Cannot access file! "+s.contentSource)}});o.onProgress=function e(t){if(s){var i=100*t.loaded/t.total;if(isNaN(i)){if(t&&t.loaded){s.updateInfo(s.options.text.loading+" PDF "+(Math.ceil(t.loaded/1e4)/100).toString()+"MB ...")}else{s.updateInfo(s.options.text.loading+" PDF ...")}}else{s.updateInfo(s.options.text.loading+" PDF "+i.toString().split(".")[0]+"% ...")}}}}};var h=function(){if(s){if(n.pdfjsWorkerSrc.indexOf("?ver")<0)n.pdfjsWorkerSrc+="?ver="+t.version;s.updateInfo(s.options.text.loading+" PDF Worker ...");var e=document.createElement("a");e.href=n.pdfjsWorkerSrc;if(e.hostname!==window.location.hostname){s.updateInfo(s.options.text.loading+" PDF Worker CORS ...");i.ajax({url:n.pdfjsWorkerSrc,cache:true,success:function(e){n.pdfjsWorkerSrc=t.cre