{"version":3,"file":"68.dc2a3bbbfeda09a21e77.js","mappings":"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","sources":["webpack://realmedia-file-service/./js/lib/turnjs/turn.js","webpack://realmedia-file-service/./js/lib/turnjs/zoom.js","webpack://realmedia-file-service/./js/flipbook/flipbook.js"],"sourcesContent":["/**\n * turn.js 4th release\n * turnjs.com\n * turnjs.com/license.txt\n *\n * Copyright (C) 2012 Emmanuel Garcia\n * All rights reserved\n **/\n\n(function($) {\n\n'use strict';\n\nvar has3d,\n \n hasRot,\n\n vendor = '',\n \n version = '4.1.0',\n\n PI = Math.PI,\n\n A90 = PI/2,\n\n isTouch = 'ontouchstart' in window,\n\n mouseEvents = (isTouch) ?\n {\n down: 'touchstart',\n move: 'touchmove',\n up: 'touchend',\n over: 'touchstart',\n out: 'touchend'\n }\n :\n {\n down: 'mousedown',\n move: 'mousemove',\n up: 'mouseup',\n over: 'mouseover',\n out: 'mouseout'\n },\n\n // Contansts used for each corner\n // | tl * tr |\n // l | * * | r\n // | bl * br |\n\n corners = {\n backward: ['bl', 'tl'],\n forward: ['br', 'tr'],\n all: ['tl', 'bl', 'tr', 'br', 'l', 'r']\n },\n\n // Display values\n\n displays = ['single', 'double'],\n\n // Direction values\n\n directions = ['ltr', 'rtl'],\n\n // Default options\n\n turnOptions = {\n\n // Enables hardware acceleration\n\n acceleration: true,\n\n // Display\n\n display: 'double',\n\n // Duration of transition in milliseconds\n\n duration: 600,\n\n // First page\n\n page: 1,\n \n // Enables gradients\n\n gradients: true,\n\n // Corners used when turning the page\n\n turnCorners: 'bl,br',\n\n // Events\n\n when: null\n },\n\n flipOptions = {\n\n // Size of the active zone of each corner\n\n cornerSize: 100\n\n },\n\n // Number of pages in the DOM, minimum value: 6\n\n pagesInDOM = 6,\n \n\nturnMethods = {\n\n // Singleton constructor\n // $('#selector').turn([options]);\n\n init: function(options) {\n\n // Define constants\n \n has3d = 'WebKitCSSMatrix' in window || 'MozPerspective' in document.body.style;\n hasRot = rotationAvailable();\n vendor = getPrefix();\n\n var i, that = this, pageNum = 0, data = this.data(), ch = this.children();\n\n // Set initial configuration\n\n options = $.extend({\n width: this.width(),\n height: this.height(),\n direction: this.attr('dir') || this.css('direction') || 'ltr'\n }, turnOptions, options);\n\n data.opts = options;\n data.pageObjs = {};\n data.pages = {};\n data.pageWrap = {};\n data.pageZoom = {};\n data.pagePlace = {};\n data.pageMv = [];\n data.zoom = 1;\n data.totalPages = options.pages || 0;\n data.eventHandlers = {\n touchStart: $.proxy(turnMethods._touchStart, this),\n touchMove: $.proxy(turnMethods._touchMove, this),\n touchEnd: $.proxy(turnMethods._touchEnd, this),\n start: $.proxy(turnMethods._eventStart, this)\n };\n\n\n\n // Add event listeners\n\n if (options.when)\n for (i in options.when)\n if (has(i, options.when))\n this.bind(i, options.when[i]);\n\n // Set the css\n\n this.css({position: 'relative', width: options.width, height: options.height});\n\n // Set the initial display\n\n this.turn('display', options.display);\n\n // Set the direction\n\n if (options.direction!=='')\n this.turn('direction', options.direction);\n \n // Prevent blue screen problems of switching to hardware acceleration mode\n // By forcing hardware acceleration for ever\n\n if (has3d && !isTouch && options.acceleration)\n this.transform(translate(0, 0, true));\n\n // Add pages from the DOM\n\n for (i = 0; ilastPage)\n throw turnError('Page \"'+page+'\" cannot be inserted');\n\n } else {\n \n page = lastPage;\n incPages = true;\n\n }\n\n if (page>=1 && page<=lastPage) {\n\n if (data.display=='double')\n className = (page%2) ? ' odd' : ' even';\n else\n className = '';\n\n // Stop animations\n if (data.done)\n this.turn('stop');\n\n // Move pages if it's necessary\n if (page in data.pageObjs)\n turnMethods._movePages.call(this, page, 1);\n\n // Increase the number of pages\n if (incPages)\n data.totalPages = lastPage;\n\n // Add element\n data.pageObjs[page] = $(element).\n css({'float': 'left'}).\n addClass('page p' + page + className);\n\n if (!hasHardPage() && data.pageObjs[page].hasClass('hard')) {\n data.pageObjs[page].removeClass('hard');\n }\n\n // Add page\n turnMethods._addPage.call(this, page);\n\n // Remove pages out of range\n turnMethods._removeFromDOM.call(this);\n }\n\n return this;\n },\n\n // Adds a page\n\n _addPage: function(page) {\n \n var data = this.data(),\n element = data.pageObjs[page];\n\n if (element)\n if (turnMethods._necessPage.call(this, page)) {\n\n if (!data.pageWrap[page]) {\n\n // Wrapper\n data.pageWrap[page] = $('
',\n {'class': 'page-wrapper',\n page: page,\n css: {position: 'absolute',\n overflow: 'hidden'}});\n\n // Append to this flipbook\n this.append(data.pageWrap[page]);\n\n if (!data.pagePlace[page]) {\n \n data.pagePlace[page] = page;\n // Move `pageObjs[page]` to wrapper\n data.pageObjs[page].appendTo(data.pageWrap[page]);\n \n }\n\n // Set the size of the page\n var prop = turnMethods._pageSize.call(this, page, true);\n element.css({width: prop.width, height: prop.height});\n data.pageWrap[page].css(prop);\n\n }\n\n if (data.pagePlace[page] == page) {\n\n // If the page isn't in another place, create the flip effect\n turnMethods._makeFlip.call(this, page);\n\n }\n \n } else {\n\n // Place\n data.pagePlace[page] = 0;\n\n // Remove element from the DOM\n if (data.pageObjs[page])\n data.pageObjs[page].remove();\n\n }\n\n },\n\n // Checks if a page is in memory\n \n hasPage: function(page) {\n\n return has(page, this.data().pageObjs);\n \n },\n\n // Centers the flipbook\n\n center: function(page) {\n \n var data = this.data(),\n size = $(this).turn('size'),\n left = 0;\n\n if (!data.noCenter) {\n if (data.display=='double') {\n var view = this.turn('view', page || data.tpage || data.page);\n\n if (data.direction=='ltr') {\n if (!view[0])\n left -= size.width/4;\n else if (!view[1])\n left += size.width/4;\n } else {\n if (!view[0])\n left += size.width/4;\n else if (!view[1])\n left -= size.width/4;\n }\n \n }\n\n $(this).css({marginLeft: left});\n }\n\n return this;\n\n },\n\n // Destroys the flipbook\n\n destroy: function () {\n\n var page,\n flipbook = this,\n data = this.data(),\n events = [\n 'end', 'first', 'flip', 'last', 'pressed',\n 'released', 'start', 'turning', 'turned',\n 'zooming', 'missing'];\n\n if (trigger('destroying', this)=='prevented')\n return;\n\n data.destroying = true;\n\n $.each(events, function(index, eventName) {\n flipbook.unbind(eventName);\n });\n\n this.parent().unbind('start', data.eventHandlers.start);\n\n $(document).unbind(mouseEvents.move, data.eventHandlers.touchMove).\n unbind(mouseEvents.up, data.eventHandlers.touchEnd);\n \n while (data.totalPages!==0) {\n this.turn('removePage', data.totalPages);\n }\n\n if (data.fparent)\n data.fparent.remove();\n\n if (data.shadow)\n data.shadow.remove();\n\n this.removeData();\n data = null;\n\n return this;\n\n },\n\n // Checks if this element is a flipbook\n\n is: function() {\n\n return typeof(this.data().pages)=='object';\n\n },\n\n // Sets and gets the zoom value\n\n zoom: function(newZoom) {\n \n var data = this.data();\n\n if (typeof(newZoom)=='number') {\n\n if (newZoom<0.001 || newZoom>100)\n throw turnError(newZoom+ ' is not a value for zoom');\n \n if (trigger('zooming', this, [newZoom, data.zoom])=='prevented')\n return this;\n \n var size = this.turn('size'),\n currentView = this.turn('view'),\n iz = 1/data.zoom,\n newWidth = Math.round(size.width * iz * newZoom),\n newHeight = Math.round(size.height * iz * newZoom);\n \n data.zoom = newZoom;\n\n $(this).turn('stop').\n turn('size', newWidth, newHeight);\n /*.\n css({marginTop: size.height * iz / 2 - newHeight / 2});*/\n\n if (data.opts.autoCenter)\n this.turn('center');\n /*else\n $(this).css({marginLeft: size.width * iz / 2 - newWidth / 2});*/\n\n turnMethods._updateShadow.call(this);\n\n for (var i = 0; idata.totalPages)\n throw turnError('\"'+page+'\" is not a valid page');\n\n \n view[1] = view[1] || view[0];\n \n if (view[0]>=1 && view[1]<=data.totalPages) {\n\n remainingPages = Math.floor((pagesInDOM-2)/2);\n\n if (data.totalPages-view[1] > view[0]) {\n left = Math.min(view[0]-1, remainingPages);\n right = 2*remainingPages-left;\n } else {\n right = Math.min(data.totalPages-view[1], remainingPages);\n left = 2*remainingPages-right;\n }\n\n } else {\n left = pagesInDOM-1;\n right = pagesInDOM-1;\n }\n\n return [Math.max(1, view[0]-left),\n Math.min(data.totalPages, view[1]+right)];\n\n },\n\n // Detects if a page is within the range of `pagesInDOM` from the current view\n\n _necessPage: function(page) {\n \n if (page===0)\n return true;\n\n var range = this.turn('range');\n\n return this.data().pageObjs[page].hasClass('fixed') ||\n (page>=range[0] && page<=range[1]);\n \n },\n\n // Releases memory by removing pages from the DOM\n\n _removeFromDOM: function() {\n\n var page, data = this.data();\n\n for (page in data.pageWrap)\n if (has(page, data.pageWrap) &&\n !turnMethods._necessPage.call(this, page))\n turnMethods._removePageFromDOM.call(this, page);\n \n },\n\n // Removes a page from DOM and its internal references\n\n _removePageFromDOM: function(page) {\n\n var data = this.data();\n\n if (data.pages[page]) {\n var dd = data.pages[page].data();\n\n flipMethods._moveFoldingPage.call(data.pages[page], false);\n\n if (dd.f && dd.f.fwrapper)\n dd.f.fwrapper.remove();\n\n data.pages[page].removeData();\n data.pages[page].remove();\n delete data.pages[page];\n }\n\n if (data.pageObjs[page])\n data.pageObjs[page].remove();\n\n if (data.pageWrap[page]) {\n data.pageWrap[page].remove();\n delete data.pageWrap[page];\n }\n\n turnMethods._removeMv.call(this, page);\n\n delete data.pagePlace[page];\n delete data.pageZoom[page];\n\n },\n\n // Removes a page\n\n removePage: function(page) {\n\n var data = this.data();\n\n // Delete all the pages\n if (page=='*') {\n \n while (data.totalPages!==0) {\n this.turn('removePage', data.totalPages);\n }\n\n } else {\n\n if (page<1 || page>data.totalPages)\n throw turnError('The page '+ page + ' doesn\\'t exist');\n \n if (data.pageObjs[page]) {\n\n // Stop animations\n this.turn('stop');\n\n // Remove `page`\n turnMethods._removePageFromDOM.call(this, page);\n\n delete data.pageObjs[page];\n\n }\n\n // Move the pages\n turnMethods._movePages.call(this, page, -1);\n\n // Resize the size of this flipbook\n data.totalPages = data.totalPages-1;\n\n // Check the current view\n\n if (data.page>data.totalPages) {\n\n data.page = null;\n turnMethods._fitPage.call(this, data.totalPages);\n\n } else {\n\n turnMethods._makeRange.call(this);\n this.turn('update');\n\n }\n }\n\n return this;\n \n },\n\n // Moves pages\n\n _movePages: function(from, change) {\n\n var page,\n that = this,\n data = this.data(),\n single = data.display=='single',\n move = function(page) {\n\n var next = page + change,\n odd = next%2,\n className = (odd) ? ' odd ' : ' even ';\n\n if (data.pageObjs[page])\n data.pageObjs[next] = data.pageObjs[page].\n removeClass('p' + page + ' odd even').\n addClass('p' + next + className);\n\n if (data.pagePlace[page] && data.pageWrap[page]) {\n\n data.pagePlace[next] = next;\n \n if (data.pageObjs[next].hasClass('fixed'))\n data.pageWrap[next] = data.pageWrap[page].\n attr('page', next);\n else\n data.pageWrap[next] = data.pageWrap[page].\n css(turnMethods._pageSize.call(that, next, true)).\n attr('page', next);\n \n if (data.pages[page])\n data.pages[next] = data.pages[page].\n flip('options', {\n page: next,\n next: (single || odd) ? next+1 : next-1\n });\n\n if (change) {\n delete data.pages[page];\n delete data.pagePlace[page];\n delete data.pageZoom[page];\n delete data.pageObjs[page];\n delete data.pageWrap[page];\n }\n\n }\n\n };\n\n if (change>0)\n for (page=data.totalPages; page>=from; page--)\n move(page);\n else\n for (page=from; page<=data.totalPages; page++)\n move(page);\n\n },\n\n // Sets or Gets the display mode\n\n display: function(display) {\n\n var data = this.data(),\n currentDisplay = data.display;\n\n if (display===undefined) {\n \n return currentDisplay;\n\n } else {\n\n if ($.inArray(display, displays)==-1)\n throw turnError('\"'+display + '\" is not a value for display');\n \n switch(display) {\n case 'single':\n\n // Create a temporal page to use as folded page\n\n if (!data.pageObjs[0]) {\n this.turn('stop').\n css({'overflow': 'hidden'});\n\n data.pageObjs[0] = $('
',\n {'class': 'page p-temporal'}).\n css({width: this.width(), height: this.height()}).\n appendTo(this);\n }\n\n this.addClass('shadow');\n\n break;\n case 'double':\n\n // Remove the temporal page\n\n if (data.pageObjs[0]) {\n this.turn('stop').css({'overflow': ''});\n data.pageObjs[0].remove();\n delete data.pageObjs[0];\n }\n\n this.removeClass('shadow');\n\n break;\n }\n \n\n data.display = display;\n\n if (currentDisplay) {\n var size = this.turn('size');\n turnMethods._movePages.call(this, 1, 0);\n this.turn('size', size.width, size.height).\n turn('update');\n }\n\n return this;\n\n }\n \n },\n \n // Gets and sets the direction of the flipbook\n\n direction: function(dir) {\n\n var data = this.data();\n\n if (dir===undefined) {\n\n return data.direction;\n\n } else {\n\n dir = dir.toLowerCase();\n\n if ($.inArray(dir, directions)==-1)\n throw turnError('\"' + dir + '\" is not a value for direction');\n\n if (dir=='rtl') {\n $(this).attr('dir', 'ltr').\n css({direction: 'ltr'});\n }\n\n data.direction = dir;\n\n if (data.done)\n this.turn('size', $(this).width(), $(this).height());\n\n return this;\n }\n\n },\n\n // Detects animation\n\n animating: function() {\n\n return this.data().pageMv.length>0;\n\n },\n\n // Gets the current activated corner\n\n corner: function() {\n \n var corner,\n page,\n data = this.data();\n\n for (page in data.pages) {\n if (has(page, data.pages))\n if ((corner = data.pages[page].flip('corner'))) {\n return corner;\n }\n }\n\n return false;\n },\n\n // Gets the data stored in the flipbook\n\n data: function() {\n \n return this.data();\n\n },\n\n // Disables and enables the effect\n\n disable: function(disable) {\n\n var page,\n data = this.data(),\n view = this.turn('view');\n\n data.disabled = disable===undefined || disable===true;\n\n for (page in data.pages) {\n if (has(page, data.pages))\n data.pages[page].flip('disable',\n (data.disabled) ? true : $.inArray(parseInt(page, 10), view)==-1);\n }\n\n return this;\n\n },\n\n // Disables and enables the effect\n\n disabled: function(disable) {\n\n if (disable===undefined) {\n return this.data().disabled===true;\n } else {\n return this.turn('disable', disable);\n }\n\n },\n\n // Gets and sets the size\n\n size: function(width, height) {\n\n if (width===undefined || height===undefined) {\n \n return {width: this.width(), height: this.height()};\n\n } else {\n\n this.turn('stop');\n\n var page, prop,\n data = this.data(),\n pageWidth = (data.display=='double') ? width/2 : width;\n\n this.css({width: width, height: height});\n\n if (data.pageObjs[0])\n data.pageObjs[0].css({width: pageWidth, height: height});\n \n for (page in data.pageWrap) {\n if (!has(page, data.pageWrap)) continue;\n\n prop = turnMethods._pageSize.call(this, page, true);\n\n data.pageObjs[page].css({width: prop.width, height: prop.height});\n data.pageWrap[page].css(prop);\n \n if (data.pages[page])\n data.pages[page].css({width: prop.width, height: prop.height});\n }\n\n this.turn('resize');\n\n return this;\n\n }\n },\n\n // Resizes each page\n\n resize: function() {\n\n var page, data = this.data();\n\n if (data.pages[0]) {\n data.pageWrap[0].css({left: -this.width()});\n data.pages[0].flip('resize', true);\n }\n\n for (page = 1; page <= data.totalPages; page++)\n if (data.pages[page])\n data.pages[page].flip('resize', true);\n\n turnMethods._updateShadow.call(this);\n\n if (data.opts.autoCenter)\n this.turn('center');\n\n },\n\n // Removes an animation from the cache\n\n _removeMv: function(page) {\n\n var i, data = this.data();\n \n for (i=0; i0) ? view[0] : 0,\n (view[1]<=data.totalPages) ? view[1] : 0];\n else\n return [(view[0]>0 && view[0]<=data.totalPages) ? view[0] : 0];\n\n },\n\n // Stops animations\n\n stop: function(ignore, animate) {\n\n if (this.turn('animating')) {\n \n var i, opts, page,\n data = this.data();\n\n if (data.tpage) {\n data.page = data.tpage;\n delete data['tpage'];\n }\n\n for (i = 0; ipages; page--)\n this.turn('removePage', page);\n\n }\n\n data.totalPages = pages;\n turnMethods._fitPage.call(this, data.page);\n\n return this;\n\n } else\n return data.totalPages;\n\n },\n\n // Checks missing pages\n\n _missing : function(page) {\n \n var data = this.data();\n\n if (data.totalPages<1)\n return;\n\n var p,\n range = this.turn('range', page),\n missing = [];\n\n for (p = range[0]; p<=range[1]; p++) {\n if (!data.pageObjs[p])\n missing.push(p);\n }\n\n if (missing.length>0)\n this.trigger('missing', [missing]);\n\n },\n\n // Sets a page without effect\n\n _fitPage: function(page) {\n\n var data = this.data(),\n newView = this.turn('view', page);\n\n turnMethods._missing.call(this, page);\n \n if (!data.pageObjs[page])\n return;\n\n data.page = page;\n \n this.turn('stop');\n\n for (var i = 0; iview[1]) {\n current = view[1];\n next = newView[0];\n } else if (view[0] && pagecurrent) ? 'r' : 'l');\n else\n data.pages[current].flip('turnPage',\n (page>current) ? 'l' : 'r');\n else {\n if (data.direction=='ltr')\n data.pages[current].flip('turnPage',\n optsCorners[(page>current) ? 1 : 0]);\n else\n data.pages[current].flip('turnPage',\n optsCorners[(page>current) ? 0 : 1]);\n }\n\n },\n\n // Gets and sets a page\n\n page: function(page) {\n\n var data = this.data();\n\n if (page===undefined) {\n \n return data.page;\n\n } else {\n\n if (!data.disabled && !data.destroying) {\n\n page = parseInt(page, 10);\n\n if (page>0 && page<=data.totalPages) {\n\n if (page!=data.page) {\n if (!data.done || $.inArray(page, this.turn('view'))!=-1)\n turnMethods._fitPage.call(this, page);\n else\n turnMethods._turnPage.call(this, page);\n }\n \n return this;\n\n } else {\n \n throw turnError('The page ' + page + ' does not exist');\n\n }\n\n }\n\n }\n\n },\n\n // Turns to the next view\n\n next: function() {\n\n return this.turn('page', Math.min(this.data().totalPages,\n turnMethods._view.call(this, this.data().page).pop() + 1));\n \n },\n\n // Turns to the previous view\n\n previous: function() {\n\n return this.turn('page', Math.max(1,\n turnMethods._view.call(this, this.data().page).shift() - 1));\n\n },\n\n // Shows a peeling corner\n\n peel: function(corner, animate) {\n \n var data = this.data(),\n view = this.turn('view');\n\n animate = (animate===undefined) ? true : animate===true;\n\n if (corner===false) {\n \n this.turn('stop', null, animate);\n\n } else {\n \n if (data.display=='single') {\n\n data.pages[data.page].flip('peel', corner, animate);\n\n } else {\n\n var page;\n\n if (data.direction=='ltr') {\n \n page = (corner.indexOf('l')!=-1) ? view[0] : view[1];\n\n } else {\n \n page = (corner.indexOf('l')!=-1) ? view[1] : view[0];\n\n }\n \n if (data.pages[page])\n data.pages[page].flip('peel', corner, animate);\n\n }\n }\n\n return this;\n\n },\n\n // Adds a motion to the internal list\n // This event is called in context of flip\n\n _addMotionPage: function() {\n\n var opts = $(this).data().f.opts,\n turn = opts.turn,\n dd = turn.data();\n\n turnMethods._addMv.call(turn, opts.page);\n\n },\n\n // This event is called in context of flip\n\n _eventStart: function(e, opts, corner) {\n\n var data = opts.turn.data(),\n actualZoom = data.pageZoom[opts.page];\n\n if (e.isDefaultPrevented()) {\n turnMethods._updateShadow.call(opts.turn);\n return;\n }\n\n if (actualZoom && actualZoom!=data.zoom) {\n \n opts.turn.trigger('zoomed',[\n opts.page,\n opts.turn.turn('view', opts.page),\n actualZoom,\n data.zoom]);\n\n data.pageZoom[opts.page] = data.zoom;\n\n }\n\n if (data.display=='single' && corner) {\n\n if ((corner.charAt(1)=='l' && data.direction=='ltr') ||\n (corner.charAt(1)=='r' && data.direction=='rtl'))\n {\n \n opts.next = (opts.nextopts.page) ? opts.next : opts.page+1;\n\n }\n\n }\n\n turnMethods._addMotionPage.call(e.target);\n turnMethods._updateShadow.call(opts.turn);\n },\n\n // This event is called in context of flip\n\n _eventEnd: function(e, opts, turned) {\n \n var that = $(e.target),\n data = that.data().f,\n turn = opts.turn,\n dd = turn.data();\n\n if (turned) {\n\n var tpage = dd.tpage || dd.page;\n \n if (tpage==opts.next || tpage==opts.page) {\n delete dd.tpage;\n\n turnMethods._fitPage.call(turn, tpage || opts.next, true);\n }\n\n } else {\n \n turnMethods._removeMv.call(turn, opts.page);\n turnMethods._updateShadow.call(turn);\n turn.turn('update');\n\n }\n \n },\n \n // This event is called in context of flip\n\n _eventPressed: function(e) {\n\n var page,\n data = $(e.target).data().f,\n turn = data.opts.turn,\n turnData = turn.data(),\n pages = turnData.pages;\n \n turnData.mouseAction = true;\n\n turn.turn('update');\n\n return data.time = new Date().getTime();\n\n },\n\n // This event is called in context of flip\n\n _eventReleased: function(e, point) {\n\n var outArea,\n page = $(e.target),\n data = page.data().f,\n turn = data.opts.turn,\n turnData = turn.data();\n \n if (turnData.display=='single') {\n outArea = (point.corner=='br' || point.corner=='tr') ?\n point.xpage.width()/2;\n } else {\n outArea = point.x<0 || point.x>page.width();\n }\n\n if ((new Date()).getTime()-data.time<200 || outArea) {\n\n e.preventDefault();\n turnMethods._turnPage.call(turn, data.opts.next);\n\n }\n\n turnData.mouseAction = false;\n\n },\n\n // This event is called in context of flip\n \n _flip: function(e) {\n\n e.stopPropagation();\n\n var opts = $(e.target).data().f.opts;\n\n opts.turn.trigger('turn', [opts.next]);\n\n if (opts.turn.data().opts.autoCenter) {\n opts.turn.turn('center', opts.next);\n }\n\n },\n\n //\n _touchStart: function() {\n var data = this.data();\n for (var page in data.pages) {\n if (has(page, data.pages) &&\n flipMethods._eventStart.apply(data.pages[page], arguments)===false) {\n return false;\n }\n }\n },\n \n //\n _touchMove: function() {\n var data = this.data();\n for (var page in data.pages) {\n if (has(page, data.pages)) {\n flipMethods._eventMove.apply(data.pages[page], arguments);\n }\n }\n },\n\n //\n _touchEnd: function() {\n var data = this.data();\n for (var page in data.pages) {\n if (has(page, data.pages)) {\n flipMethods._eventEnd.apply(data.pages[page], arguments);\n }\n }\n },\n\n // Calculate the z-index value for pages during the animation\n\n calculateZ: function(mv) {\n\n var i, page, nextPage, placePage, dpage,\n that = this,\n data = this.data(),\n view = this.turn('view'),\n currentPage = view[0] || view[1],\n total = mv.length-1,\n r = {pageZ: {}, partZ: {}, pageV: {}},\n\n addView = function(page) {\n var view = that.turn('view', page);\n if (view[0]) r.pageV[view[0]] = true;\n if (view[1]) r.pageV[view[1]] = true;\n };\n \n for (i = 0; i<=total; i++) {\n page = mv[i];\n nextPage = data.pages[page].data().f.opts.next;\n placePage = data.pagePlace[page];\n addView(page);\n addView(nextPage);\n dpage = (data.pagePlace[nextPage]==nextPage) ? nextPage : page;\n r.pageZ[dpage] = data.totalPages - Math.abs(currentPage-dpage);\n r.partZ[placePage] = data.totalPages*2 - total + i;\n }\n\n return r;\n },\n\n // Updates the z-index and display property of every page\n\n update: function() {\n\n var page,\n data = this.data();\n\n if (this.turn('animating') && data.pageMv[0]!==0) {\n\n // Update motion\n\n var p, apage, fixed,\n pos = this.turn('calculateZ', data.pageMv),\n corner = this.turn('corner'),\n actualView = this.turn('view'),\n newView = this.turn('view', data.tpage);\n \n for (page in data.pageWrap) {\n\n if (!has(page, data.pageWrap))\n continue;\n\n fixed = data.pageObjs[page].hasClass('fixed');\n\n data.pageWrap[page].css({\n display: (pos.pageV[page] || fixed) ? '' : 'none',\n zIndex:\n (data.pageObjs[page].hasClass('hard') ?\n pos.partZ[page]\n :\n pos.pageZ[page]\n ) || (fixed ? -1 : 0)\n });\n\n if ((p = data.pages[page])) {\n\n p.flip('z', pos.partZ[page] || null);\n\n if (pos.pageV[page])\n p.flip('resize');\n \n if (data.tpage) { // Is it turning the page to `tpage`?\n\n p.flip('hover', false).\n flip('disable',\n $.inArray(parseInt(page, 10), data.pageMv)==-1 &&\n page!=newView[0] &&\n page!=newView[1]);\n\n } else {\n\n p.flip('hover', corner===false).\n flip('disable', page!=actualView[0] && page!=actualView[1]);\n\n }\n\n }\n\n }\n\n } else {\n\n // Update static pages\n\n for (page in data.pageWrap) {\n\n if (!has(page, data.pageWrap))\n continue;\n\n var pageLocation = turnMethods._setPageLoc.call(this, page);\n\n if (data.pages[page]) {\n data.pages[page].\n flip('disable', data.disabled || pageLocation!=1).\n flip('hover', true).\n flip('z', null);\n }\n }\n }\n\n return this;\n },\n\n // Updates the position and size of the flipbook's shadow\n\n _updateShadow: function() {\n \n var view, view2, shadow,\n data = this.data(),\n width = this.width(),\n height = this.height(),\n pageWidth = (data.display=='single') ? width : width/2;\n\n view = this.turn('view');\n\n if (!data.shadow) {\n data.shadow = $('
', {\n 'class': 'shadow',\n 'css': divAtt(0, 0, 0).css\n }).\n appendTo(this);\n }\n\n for (var i = 0; i=width || point.y>=height)\n return false;\n\n var allowedCorners = flipMethods._cAllowed.call(this);\n\n switch (data.effect) {\n case 'hard':\n \n if (point.x>width-csz)\n point.corner = 'r';\n else if (point.x=height-csz)\n point.corner+= 'b';\n else\n return false;\n \n if (point.x<=csz)\n point.corner+= 'l';\n else if (point.x>=width-csz)\n point.corner+= 'r';\n else\n return false;\n \n break;\n }\n\n return (!point.corner || $.inArray(point.corner, allowedCorners)==-1) ?\n false : point;\n\n },\n\n _isIArea: function(e) {\n\n var pos = this.data().f.parent.offset();\n\n e = (isTouch && e.originalEvent) ? e.originalEvent.touches[0] : e;\n\n return flipMethods._cornerActivated.call(this,\n {\n x: e.pageX-pos.left,\n y: e.pageY-pos.top\n });\n\n },\n\n _c: function(corner, opts) {\n\n opts = opts || 0;\n\n switch (corner) {\n case 'tl':\n return point2D(opts, opts);\n case 'tr':\n return point2D(this.width()-opts, opts);\n case 'bl':\n return point2D(opts, this.height()-opts);\n case 'br':\n return point2D(this.width()-opts, this.height()-opts);\n case 'l':\n return point2D(opts, 0);\n case 'r':\n return point2D(this.width()-opts, 0);\n }\n\n },\n\n _c2: function(corner) {\n\n switch (corner) {\n case 'tl':\n return point2D(this.width()*2, 0);\n case 'tr':\n return point2D(-this.width(), 0);\n case 'bl':\n return point2D(this.width()*2, this.height());\n case 'br':\n return point2D(-this.width(), this.height());\n case 'l':\n return point2D(this.width()*2, 0);\n case 'r':\n return point2D(-this.width(), 0);\n }\n\n },\n\n _foldingPage: function() {\n\n var data = this.data().f;\n\n if (!data)\n return;\n\n var opts = data.opts;\n\n if (opts.turn) {\n data = opts.turn.data();\n if (data.display == 'single')\n return (opts.next>1 || opts.page>1) ? data.pageObjs[0] : null;\n else\n return data.pageObjs[opts.next];\n }\n\n },\n\n _backGradient: function() {\n\n var data = this.data().f,\n turnData = data.opts.turn.data(),\n gradient = turnData.opts.gradients && (turnData.display=='single' ||\n (data.opts.page!=2 && data.opts.page!=turnData.totalPages-1));\n\n if (gradient && !data.bshadow)\n data.bshadow = $('
', divAtt(0, 0, 1)).\n css({'position': '', width: this.width(), height: this.height()}).\n appendTo(data.parent);\n\n return gradient;\n\n },\n\n type: function () {\n \n return this.data().f.effect;\n\n },\n\n resize: function(full) {\n \n var data = this.data().f,\n turnData = data.opts.turn.data(),\n width = this.width(),\n height = this.height();\n\n switch (data.effect) {\n case 'hard':\n \n if (full) {\n data.wrapper.css({width: width, height: height});\n data.fpage.css({width: width, height: height});\n if (turnData.opts.gradients) {\n data.ashadow.css({width: width, height: height});\n data.bshadow.css({width: width, height: height});\n }\n }\n\n break;\n case 'sheet':\n\n if (full) {\n var size = Math.round(Math.sqrt(Math.pow(width, 2)+Math.pow(height, 2)));\n\n data.wrapper.css({width: size, height: size});\n data.fwrapper.css({width: size, height: size}).\n children(':first-child').\n css({width: width, height: height});\n\n data.fpage.css({width: width, height: height});\n\n if (turnData.opts.gradients)\n data.ashadow.css({width: width, height: height});\n\n if (flipMethods._backGradient.call(this))\n data.bshadow.css({width: width, height: height});\n }\n\n if (data.parent.is(':visible')) {\n var offset = findPos(data.parent[0]);\n\n data.fwrapper.css({top: offset.top,\n left: offset.left});\n\n //if (data.opts.turn) {\n offset = findPos(data.opts.turn[0]);\n data.fparent.css({top: -offset.top, left: -offset.left});\n //}\n }\n\n this.flip('z', data.opts['z-index']);\n\n break;\n }\n\n },\n\n // Prepares the page by adding a general wrapper and another objects\n\n _addPageWrapper: function() {\n\n var att,\n data = this.data().f,\n turnData = data.opts.turn.data(),\n parent = this.parent();\n\n data.parent = parent;\n\n if (!data.wrapper)\n switch (data.effect) {\n case 'hard':\n \n var cssProperties = {};\n cssProperties[vendor + 'transform-style'] = 'preserve-3d';\n cssProperties[vendor + 'backface-visibility'] = 'hidden';\n\n data.wrapper = $('
', divAtt(0, 0, 2)).\n css(cssProperties).\n appendTo(parent).\n prepend(this);\n\n data.fpage = $('
', divAtt(0, 0, 1)).\n css(cssProperties).\n appendTo(parent);\n \n if (turnData.opts.gradients) {\n data.ashadow = $('
', divAtt(0, 0, 0)).\n hide().\n appendTo(parent);\n\n data.bshadow = $('
', divAtt(0, 0, 0));\n }\n\n break;\n case 'sheet':\n \n var width = this.width(),\n height = this.height(),\n size = Math.round(Math.sqrt(Math.pow(width, 2)+Math.pow(height, 2)));\n \n data.fparent = data.opts.turn.data().fparent;\n\n if (!data.fparent) {\n var fparent = $('
', {css: {'pointer-events': 'none'}}).hide();\n fparent.data().flips = 0;\n fparent.css(divAtt(0, 0, 'auto', 'visible').css).\n appendTo(data.opts.turn);\n \n data.opts.turn.data().fparent = fparent;\n data.fparent = fparent;\n }\n\n this.css({position: 'absolute', top: 0, left: 0, bottom: 'auto', right: 'auto'});\n\n data.wrapper = $('
', divAtt(0, 0, this.css('z-index'))).\n appendTo(parent).\n prepend(this);\n\n data.fwrapper = $('
', divAtt(parent.offset().top, parent.offset().left)).\n hide().\n appendTo(data.fparent);\n\n data.fpage = $('
', divAtt(0, 0, 0, 'visible')).\n css({cursor: 'default'}).\n appendTo(data.fwrapper);\n\n if (turnData.opts.gradients)\n data.ashadow = $('
', divAtt(0, 0, 1)).\n appendTo(data.fpage);\n\n flipMethods.setData.call(this, data);\n\n break;\n }\n\n // Set size\n flipMethods.resize.call(this, true);\n\n },\n\n // Takes a 2P point from the screen and applies the transformation\n\n _fold: function(point) {\n\n var data = this.data().f,\n turnData = data.opts.turn.data(),\n o = flipMethods._c.call(this, point.corner),\n width = this.width(),\n height = this.height();\n\n switch (data.effect) {\n\n case 'hard':\n\n if (point.corner=='l')\n point.x = Math.min(Math.max(point.x, 0), width*2);\n else\n point.x = Math.max(Math.min(point.x, width), -width);\n\n var leftPos,\n shadow,\n gradientX,\n fpageOrigin,\n parentOrigin,\n totalPages = turnData.totalPages,\n zIndex = data.opts['z-index'] || totalPages,\n parentCss = {'overflow': 'visible'},\n relX = (o.x) ? (o.x - point.x)/width : point.x/width,\n angle = relX * 90,\n half = angle<90;\n\n switch (point.corner) {\n case 'l':\n\n fpageOrigin = '0% 50%';\n parentOrigin = '100% 50%';\n\n if (half) {\n leftPos = 0;\n shadow = data.opts.next-1>0;\n gradientX = 1;\n } else {\n leftPos = '100%';\n shadow = data.opts.page+1 A90) {\n tr.x = tr.x + Math.abs(tr.y * rel.y/rel.x);\n tr.y = 0;\n if (Math.round(tr.x*Math.tan(PI-alpha)) < height) {\n point.y = Math.sqrt(Math.pow(height, 2)+2 * middle.x * rel.x);\n if (top) point.y = height - point.y;\n return compute();\n }\n }\n \n if (alpha>A90) {\n var beta = PI-alpha, dd = h - height/Math.sin(beta);\n mv = point2D(Math.round(dd*Math.cos(beta)), Math.round(dd*Math.sin(beta)));\n if (left) mv.x = - mv.x;\n if (top) mv.y = - mv.y;\n }\n\n px = Math.round(tr.y/Math.tan(alpha) + tr.x);\n \n var side = width - px,\n sideX = side*Math.cos(alpha*2),\n sideY = side*Math.sin(alpha*2);\n df = point2D(\n Math.round((left ? side -sideX : px+sideX)),\n Math.round((top) ? sideY : height - sideY));\n \n // Gradients\n if (turnData.opts.gradients) {\n\n gradientSize = side*Math.sin(alpha);\n\n var endingPoint = flipMethods._c2.call(that, point.corner),\n far = Math.sqrt(Math.pow(endingPoint.x-point.x, 2)+Math.pow(endingPoint.y-point.y, 2))/width;\n\n shadowVal = Math.sin(A90*((far>1) ? 2 - far : far));\n\n gradientOpacity = Math.min(far, 1);\n\n \n gradientStartVal = gradientSize>100 ? (gradientSize-100)/gradientSize : 0;\n\n gradientEndPointA = point2D(\n gradientSize*Math.sin(alpha)/width*100,\n gradientSize*Math.cos(alpha)/height*100);\n \n\n if (flipMethods._backGradient.call(that)) {\n\n gradientEndPointB = point2D(\n gradientSize*1.2*Math.sin(alpha)/width*100,\n gradientSize*1.2*Math.cos(alpha)/height*100);\n\n if (!left) gradientEndPointB.x = 100-gradientEndPointB.x;\n if (!top) gradientEndPointB.y = 100-gradientEndPointB.y;\n\n }\n\n }\n\n tr.x = Math.round(tr.x);\n tr.y = Math.round(tr.y);\n\n return true;\n },\n\n transform = function(tr, c, x, a) {\n \n var f = ['0', 'auto'], mvW = (width-h)*x[0]/100, mvH = (height-h)*x[1]/100,\n cssA = {left: f[c[0]], top: f[c[1]], right: f[c[2]], bottom: f[c[3]]},\n cssB = {},\n aliasingFk = (a!=90 && a!=-90) ? (left ? -1 : 1) : 0,\n origin = x[0] + '% ' + x[1] + '%';\n\n that.css(cssA).\n transform(rotate(a) + translate(tr.x + aliasingFk, tr.y, ac), origin);\n\n data.fpage.css(cssA).transform(\n rotate(a) +\n translate(tr.x + df.x - mv.x - width*x[0]/100, tr.y + df.y - mv.y - height*x[1]/100, ac) +\n rotate((180/a - 2)*a),\n origin);\n\n data.wrapper.transform(translate(-tr.x + mvW-aliasingFk, -tr.y + mvH, ac) + rotate(-a), origin);\n\n data.fwrapper.transform(translate(-tr.x + mv.x + mvW, -tr.y + mv.y + mvH, ac) + rotate(-a), origin);\n \n if (turnData.opts.gradients) {\n\n if (x[0])\n gradientEndPointA.x = 100-gradientEndPointA.x;\n\n if (x[1])\n gradientEndPointA.y = (100-gradientEndPointA.y);\n\n cssB['box-shadow'] = '0 0 20px rgba(0,0,0,'+(0.5*shadowVal)+')';\n folding.css(cssB);\n\n gradient(data.ashadow,\n point2D(left?100:0, top?0:100),\n point2D(gradientEndPointA.x, gradientEndPointA.y),\n [[gradientStartVal, 'rgba(0,0,0,0)'],\n [((1-gradientStartVal)*0.8)+gradientStartVal, 'rgba(0,0,0,'+(0.2*gradientOpacity)+')'],\n [1, 'rgba(255,255,255,'+(0.2*gradientOpacity)+')']],\n 3,\n alpha);\n\n if (flipMethods._backGradient.call(that))\n gradient(data.bshadow,\n point2D(left?0:100, top?0:100),\n point2D(gradientEndPointB.x, gradientEndPointB.y),\n [[0.6, 'rgba(0,0,0,0)'],\n [0.8, 'rgba(0,0,0,'+(0.3*gradientOpacity)+')'],\n [1, 'rgba(0,0,0,0)']\n ],\n 3);\n }\n\n };\n\n switch (point.corner) {\n case 'l' :\n\n\n break;\n case 'r' :\n\n\n break;\n case 'tl' :\n point.x = Math.max(point.x, 1);\n compute();\n transform(tr, [1,0,0,1], [100, 0], a);\n break;\n case 'tr' :\n point.x = Math.min(point.x, width-1);\n compute();\n transform(point2D(-tr.x, tr.y), [0,0,0,1], [0, 0], -a);\n break;\n case 'bl' :\n point.x = Math.max(point.x, 1);\n compute();\n transform(point2D(tr.x, -tr.y), [1,1,0,0], [100, 100], -a);\n break;\n case 'br' :\n point.x = Math.min(point.x, width-1);\n compute();\n transform(point2D(-tr.x, -tr.y), [0,1,1,0], [0, 100], a);\n break;\n }\n\n break;\n }\n\n data.point = point;\n \n },\n\n _moveFoldingPage: function(move) {\n\n var data = this.data().f;\n\n if (!data)\n return;\n\n var turn = data.opts.turn,\n turnData = turn.data(),\n place = turnData.pagePlace;\n \n if (move) {\n\n var nextPage = data.opts.next;\n \n if (place[nextPage]!=data.opts.page) {\n\n if (data.folding)\n flipMethods._moveFoldingPage.call(this, false);\n\n var folding = flipMethods._foldingPage.call(this);\n \n folding.appendTo(data.fpage);\n place[nextPage] = data.opts.page;\n data.folding = nextPage;\n }\n\n turn.turn('update');\n\n } else {\n\n if (data.folding) {\n\n if (turnData.pages[data.folding]) {\n \n // If we have flip available\n\n var flipData = turnData.pages[data.folding].data().f;\n \n turnData.pageObjs[data.folding].\n appendTo(flipData.wrapper);\n\n } else if (turnData.pageWrap[data.folding]) {\n \n // If we have the pageWrapper\n\n turnData.pageObjs[data.folding].\n appendTo(turnData.pageWrap[data.folding]);\n\n }\n\n if (data.folding in place) {\n place[data.folding] = data.folding;\n }\n\n delete data.folding;\n\n }\n }\n },\n\n _showFoldedPage: function(c, animate) {\n\n var folding = flipMethods._foldingPage.call(this),\n dd = this.data(),\n data = dd.f,\n visible = data.visible;\n\n if (folding) {\n\n if (!visible || !data.point || data.point.corner!=c.corner) {\n\n var corner = (\n data.status=='hover' ||\n data.status=='peel' ||\n data.opts.turn.data().mouseAction) ?\n c.corner : null;\n\n visible = false;\n\n if (trigger('start', this, [data.opts, corner])=='prevented')\n return false;\n\n }\n\n if (animate) {\n \n var that = this,\n point = (data.point && data.point.corner==c.corner) ?\n data.point : flipMethods._c.call(this, c.corner, 1);\n \n this.animatef({\n from: [point.x, point.y],\n to: [c.x, c.y],\n duration: 500,\n frame: function(v) {\n c.x = Math.round(v[0]);\n c.y = Math.round(v[1]);\n flipMethods._fold.call(that, c);\n }\n });\n\n } else {\n\n flipMethods._fold.call(this, c);\n\n if (dd.effect && !dd.effect.turning)\n this.animatef(false);\n\n }\n\n if (!visible) {\n\n switch(data.effect) {\n case 'hard':\n\n data.visible = true;\n flipMethods._moveFoldingPage.call(this, true);\n data.fpage.show();\n if (data.opts.shadows)\n data.bshadow.show();\n\n break;\n case 'sheet':\n\n data.visible = true;\n data.fparent.show().data().flips++;\n flipMethods._moveFoldingPage.call(this, true);\n data.fwrapper.show();\n if (data.bshadow)\n data.bshadow.show();\n\n break;\n }\n\n }\n\n return true;\n\n }\n\n return false;\n },\n\n hide: function() {\n\n var data = this.data().f,\n turnData = data.opts.turn.data(),\n folding = flipMethods._foldingPage.call(this);\n\n switch (data.effect) {\n case 'hard':\n \n if (turnData.opts.gradients) {\n data.bshadowLoc = 0;\n data.bshadow.remove();\n data.ashadow.hide();\n }\n\n data.wrapper.transform('');\n data.fpage.hide();\n\n break;\n case 'sheet':\n\n if ((--data.fparent.data().flips)===0)\n data.fparent.hide();\n\n this.css({left: 0, top: 0, right: 'auto', bottom: 'auto'}).\n transform('');\n\n data.wrapper.transform('');\n\n data.fwrapper.hide();\n\n if (data.bshadow)\n data.bshadow.hide();\n\n folding.transform('');\n\n break;\n }\n\n data.visible = false;\n\n return this;\n },\n\n hideFoldedPage: function(animate) {\n\n var data = this.data().f;\n\n if (!data.point) return;\n\n var that = this,\n p1 = data.point,\n hide = function() {\n data.point = null;\n data.status = '';\n that.flip('hide');\n that.trigger('end', [data.opts, false]);\n };\n\n if (animate) {\n\n var p4 = flipMethods._c.call(this, p1.corner),\n top = (p1.corner.substr(0,1)=='t'),\n delta = (top) ? Math.min(0, p1.y-p4.y)/2 : Math.max(0, p1.y-p4.y)/2,\n p2 = point2D(p1.x, p1.y+delta),\n p3 = point2D(p4.x, p4.y-delta);\n \n this.animatef({\n from: 0,\n to: 1,\n frame: function(v) {\n var np = bezier(p1, p2, p3, p4, v);\n p1.x = np.x;\n p1.y = np.y;\n flipMethods._fold.call(that, p1);\n },\n complete: hide,\n duration: 800,\n hiding: true\n });\n\n } else {\n\n this.animatef(false);\n hide();\n\n }\n },\n\n turnPage: function(corner) {\n\n var that = this,\n data = this.data().f,\n turnData = data.opts.turn.data();\n\n corner = {corner: (data.corner) ?\n data.corner.corner :\n corner || flipMethods._cAllowed.call(this)[0]};\n\n var p1 = data.point ||\n flipMethods._c.call(this,\n corner.corner,\n (data.opts.turn) ? turnData.opts.elevation : 0),\n p4 = flipMethods._c2.call(this, corner.corner);\n\n this.trigger('flip').\n animatef({\n from: 0,\n to: 1,\n frame: function(v) {\n\n var np = bezier(p1, p1, p4, p4, v);\n corner.x = np.x;\n corner.y = np.y;\n flipMethods._showFoldedPage.call(that, corner);\n\n },\n complete: function() {\n \n that.trigger('end', [data.opts, true]);\n\n },\n duration: turnData.opts.duration,\n turning: true\n });\n\n data.corner = null;\n },\n\n moving: function() {\n\n return 'effect' in this.data();\n \n },\n\n isTurning: function() {\n\n return this.flip('moving') && this.data().effect.turning;\n \n },\n\n corner: function() {\n \n return this.data().f.corner;\n \n },\n\n _eventStart: function(e) {\n\n var data = this.data().f,\n turn = data.opts.turn;\n\n if (!data.corner && !data.disabled && !this.flip('isTurning') &&\n data.opts.page==turn.data().pagePlace[data.opts.page])\n {\n\n data.corner = flipMethods._isIArea.call(this, e);\n\n if (data.corner && flipMethods._foldingPage.call(this)) {\n\n this.trigger('pressed', [data.point]);\n flipMethods._showFoldedPage.call(this, data.corner);\n\n return false;\n\n } else\n data.corner = null;\n\n }\n\n },\n\n _eventMove: function(e) {\n\n var data = this.data().f;\n\n if (!data.disabled) {\n\n e = (isTouch) ? e.originalEvent.touches : [e];\n\n if (data.corner) {\n\n var pos = data.parent.offset();\n data.corner.x = e[0].pageX-pos.left;\n data.corner.y = e[0].pageY-pos.top;\n flipMethods._showFoldedPage.call(this, data.corner);\n\n } else if (data.hover && !this.data().effect && this.is(':visible')) {\n\n var point = flipMethods._isIArea.call(this, e[0]);\n\n if (point) {\n\n if ((data.effect=='sheet' && point.corner.length==2) || data.effect=='hard') {\n data.status = 'hover';\n var origin = flipMethods._c.call(this, point.corner, data.opts.cornerSize/2);\n point.x = origin.x;\n point.y = origin.y;\n flipMethods._showFoldedPage.call(this, point, true);\n }\n \n } else {\n \n if (data.status=='hover') {\n data.status = '';\n flipMethods.hideFoldedPage.call(this, true);\n }\n\n }\n\n }\n\n }\n\n },\n\n _eventEnd: function() {\n\n var data = this.data().f,\n corner = data.corner;\n\n if (!data.disabled && corner) {\n if (trigger('released', this, [data.point || corner])!='prevented') {\n flipMethods.hideFoldedPage.call(this, true);\n }\n }\n\n data.corner = null;\n\n },\n\n disable: function(disable) {\n\n flipMethods.setData.call(this, {'disabled': disable});\n return this;\n\n },\n\n hover: function(hover) {\n \n flipMethods.setData.call(this, {'hover': hover});\n return this;\n\n },\n\n peel: function (corner, animate) {\n\n var data = this.data().f;\n\n if (corner) {\n\n if ($.inArray(corner, corners.all)==-1)\n throw turnError('Corner '+corner+' is not permitted');\n\n if ($.inArray(corner, flipMethods._cAllowed.call(this))!=-1) {\n\n var point = flipMethods._c.call(this, corner, data.opts.cornerSize/2);\n \n data.status = 'peel';\n\n flipMethods._showFoldedPage.call(this,\n {\n corner: corner,\n x: point.x,\n y: point.y\n }, animate);\n\n }\n\n\n } else {\n\n data.status = '';\n\n flipMethods.hideFoldedPage.call(this, animate);\n \n }\n\n return this;\n }\n};\n\n\n// Processes classes\n\nfunction dec(that, methods, args) {\n\n if (!args[0] || typeof(args[0])=='object')\n return methods.init.apply(that, args);\n\n else if (methods[args[0]])\n return methods[args[0]].apply(that, Array.prototype.slice.call(args, 1));\n\n else\n throw turnError(args[0] + ' is not a method or property');\n\n}\n\n\n// Attributes for a layer\n\nfunction divAtt(top, left, zIndex, overf) {\n \n return {'css': {\n position: 'absolute',\n top: top,\n left: left,\n 'overflow': overf || 'hidden',\n zIndex: zIndex || 'auto'\n }\n};\n \n}\n\n// Gets a 2D point from a bezier curve of four points\n\nfunction bezier(p1, p2, p3, p4, t) {\n\n var a = 1 - t,\n b = a * a * a,\n c = t * t * t;\n \n return point2D(Math.round(b*p1.x + 3*t*a*a*p2.x + 3*t*t*a*p3.x + c*p4.x),\n Math.round(b*p1.y + 3*t*a*a*p2.y + 3*t*t*a*p3.y + c*p4.y));\n\n}\n \n// Converts an angle from degrees to radians\n\nfunction rad(degrees) {\n \n return degrees/180*PI;\n\n}\n\n// Converts an angle from radians to degrees\n\nfunction deg(radians) {\n \n return radians/PI*180;\n\n}\n\n// Gets a 2D point\n\nfunction point2D(x, y) {\n \n return {x: x, y: y};\n\n}\n\n// Webkit 534.3 on Android wrongly repaints elements that use overflow:hidden + rotation\n\nfunction rotationAvailable() {\n var parts;\n\n if ((parts = /AppleWebkit\\/([0-9\\.]+)/i.exec(navigator.userAgent))) {\n var webkitVersion = parseFloat(parts[1]);\n return (webkitVersion>534.3);\n } else {\n return true;\n }\n}\n\n// Returns the traslate value\n\nfunction translate(x, y, use3d) {\n \n return (has3d && use3d) ? ' translate3d(' + x + 'px,' + y + 'px, 0px) '\n : ' translate(' + x + 'px, ' + y + 'px) ';\n\n}\n\n// Returns the rotation value\n\nfunction rotate(degrees) {\n \n return ' rotate(' + degrees + 'deg) ';\n\n}\n\n// Checks if a property belongs to an object\n\nfunction has(property, object) {\n \n return Object.prototype.hasOwnProperty.call(object, property);\n\n}\n\n// Gets the CSS3 vendor prefix\n\nfunction getPrefix() {\n\n var vendorPrefixes = ['Moz','Webkit','Khtml','O','ms'],\n len = vendorPrefixes.length,\n vendor = '';\n\n while (len--)\n if ((vendorPrefixes[len] + 'Transform') in document.body.style)\n vendor='-'+vendorPrefixes[len].toLowerCase()+'-';\n\n return vendor;\n\n}\n\n// Detects the transitionEnd Event\n\nfunction getTransitionEnd() {\n\n var t,\n el = document.createElement('fakeelement'),\n transitions = {\n 'transition':'transitionend',\n 'OTransition':'oTransitionEnd',\n 'MSTransition':'transitionend',\n 'MozTransition':'transitionend',\n 'WebkitTransition':'webkitTransitionEnd'\n };\n\n for (t in transitions) {\n if (el.style[t] !== undefined) {\n return transitions[t];\n }\n }\n}\n\n// Gradients\n\nfunction gradient(obj, p0, p1, colors, numColors) {\n\n var j, cols = [];\n\n if (vendor=='-webkit-') {\n\n for (j = 0; j10)\n data.eventQueue.splice(0, 1);\n\n },\n\n _eventSeq: function() {\n\n var data = this.data().zoom,\n list = data.eventQueue,\n lastEvent = list.length-1;\n\n if (lastEvent>0 &&\n list[lastEvent].name=='tap' &&\n list[lastEvent-1].name=='tap' &&\n list[lastEvent].event.pageX == list[lastEvent-1].event.pageX &&\n list[lastEvent].event.pageY == list[lastEvent-1].event.pageY &&\n list[lastEvent].timestamp-list[lastEvent-1].timestamp < 200 &&\n list[lastEvent].timestamp-list[lastEvent-1].timestamp > 50)\n {\n \n return $.extend(list[lastEvent].event, {type: 'zoom.doubleTap'});\n\n } else if (list[lastEvent].name=='tap') {\n \n return $.extend(list[lastEvent].event, {type: 'zoom.tap'});\n\n }\n \n },\n\n _prepareZoom: function () {\n \n var flipPos, offsetLeft = 0,\n data = this.data().zoom,\n invz = 1/this.zoom('value'),\n flip = data.opts.flipbook,\n dir = flip.turn('direction'),\n flipData = flip.data(),\n flipOffset = flip.offset(),\n thisOffset = this.offset(),\n flipSize = {height: flip.height()},\n view = flip.turn('view');\n\n if (flip.turn('display')=='double' && flip.data().opts.autoCenter) {\n if (!view[0]) {\n flipSize.width = flip.width()/2;\n offsetLeft = (dir=='ltr') ? flipSize.width : 0;\n flipPos = point2D(\n (dir=='ltr') ? flipOffset.left-thisOffset.left+flipSize.width : flipOffset.left-thisOffset.left,\n flipOffset.top-thisOffset.top\n );\n\n } else if (!view[1]) {\n flipSize.width = flip.width()/2;\n offsetLeft = (dir=='ltr') ? 0 : flipSize.width;\n flipPos = point2D(\n (dir=='ltr') ? flipOffset.left-thisOffset.left : flipOffset.left-thisOffset.left+flipSize.width,\n flipOffset.top-thisOffset.top\n );\n } else {\n flipSize.width = flip.width();\n flipPos = point2D(\n flipOffset.left-thisOffset.left,\n flipOffset.top-thisOffset.top\n );\n }\n } else {\n flipSize.width = flip.width();\n flipPos = point2D(\n flipOffset.left-thisOffset.left,\n flipOffset.top-thisOffset.top\n );\n }\n\n if (!data.zoomer) {\n data.zoomer = $('
',\n {'class': 'zoomer',\n css: {\n overflow:'hidden',\n position: 'absolute',\n zIndex: '1000000'\n }\n }).\n mousedown(function() {\n return false;\n }).appendTo(this);\n }\n\n\n data.zoomer.css({\n top: flipPos.y,\n left: flipPos.x,\n width: flipSize.width,\n height: flipSize.height\n });\n \n var zoomerView = view.join(',');\n\n if (zoomerView!=data.zoomerView) {\n\n data.zoomerView = zoomerView;\n data.zoomer.find('*').remove();\n\n for (var p = 0; pbound.width || pos.y>bound.height) {\n pos.x = center.x;\n pos.y = center.y;\n }\n\n\n var compose = point2D(\n (pos.x-center.x)*zoom + center.x,\n (pos.y-center.y)*zoom + center.y\n ),\n move = point2D(\n (bound.size.width*zoom>this.width()) ? pos.x-compose.x : 0,\n (bound.size.height*zoom>this.height()) ? pos.y-compose.y : 0\n ),\n maxMove = point2D(\n Math.abs(bound.size.width*zoom-this.width()),\n Math.abs(bound.size.height*zoom-this.height())\n ),\n minMove = point2D(\n Math.min(0, bound.size.width*zoom-this.width()),\n Math.min(0, bound.size.height*zoom-this.height())\n ),\n realPos = point2D(\n center.x*zoom - center.x - flipPos.x - move.x,\n center.y*zoom - center.y - flipPos.y - move.y\n );\n\n if (realPos.y>maxMove.y)\n move.y = realPos.y - maxMove.y + move.y;\n else if (realPos.ymaxMove.x)\n move.x = realPos.x - maxMove.x + move.x;\n else if (realPos.x', {\n css: {\n position: 'relative',\n top: data.flipPosition.y,\n left: data.flipPosition.x,\n width: flip.width()*scaling,\n height: flip.height()*scaling,\n background: 'blue'\n }\n }).appendTo(flip.parent());\n\n flipDesPos = point2D(\n tmp.offset().left-thisOffset.left,\n tmp.offset().top-thisOffset.top\n );\n \n\n tmp.remove();\n\n var autoCenter = flip.data().opts.autoCenter;\n\n if (autoCenter && flip.turn('display')=='double') {\n\n if (!flip.turn('view')[0])\n flipDesPos.x = (flip.turn('direction')=='ltr') ?\n flipDesPos.x-tmp.width()/4 :\n flipDesPos.x+tmp.width()/4;\n else if (!flip.turn('view')[1])\n flipDesPos.x = (flip.turn('direction')=='ltr') ?\n flipDesPos.x+tmp.width()/4 :\n flipDesPos.x-tmp.width()/4;\n }\n\n var flipRealPos = $.findPos(flip[0]);\n \n move = point2D(\n -flip.width()/2 - flipRealPos.left + tmp.width()/2 + flipDesPos.x + thisOffset.left,\n -flip.height()/2 - flipRealPos.top + tmp.height()/2 + flipDesPos.y + thisOffset.top);\n\n var transitionEndCallback = function() {\n \n if (flip[0].style.removeProperty) {\n \n flip[0].style.removeProperty(prefix+'transition');\n flip.transform(\n (flip.turn('options').acceleration) ? translate(0, 0, true) : '').turn('zoom', 1);\n flip[0].style.removeProperty('margin');\n flip.css({\n position: 'relative',\n top: data.flipPosition.y,\n left: data.flipPosition.x\n });\n\n } else {\n \n flip.transform('none').\n turn('zoom', 1).\n css({\n margin: '',\n top: data.flipPosition.y,\n left: data.flipPosition.x,\n position: 'relative'\n });\n\n }\n\n if (autoCenter)\n flip.turn('center');\n\n that.trigger('zoom.zoomOut');\n\n };\n\n if (duration===0) {\n \n transitionEndCallback();\n\n } else if (transitionEnd) {\n\n flip.bind(transitionEnd, function() {\n\n $(this).unbind(transitionEnd);\n transitionEndCallback();\n\n });\n\n flip.transform(translate(move.x, move.y, true) + scale(scaling, true));\n\n } else {\n\n setTimeout(transitionEndCallback, duration);\n flip.transform(translate(move.x, move.y, true) + scale(scaling, true));\n\n }\n\n return this;\n },\n\n flipbookWidth: function() {\n \n var data = this.data().zoom,\n flipbook = data.opts.flipbook,\n view = flipbook.turn('view');\n\n return (flipbook.turn('display')=='double' && (!view[0] || !view[1])) ?\n flipbook.width()/2\n :\n flipbook.width();\n\n },\n\n scroll: function(to, unlimited, animate) {\n \n var data = this.data().zoom,\n flip = data.opts.flipbook,\n flipWidth = this.zoom('flipbookWidth'),\n prefix = $.cssPrefix();\n \n if (has3d) {\n\n var css = {};\n\n if (animate) {\n css[prefix+'transition'] = prefix + 'transform 200ms';\n } else {\n css[prefix+'transition'] = 'none';\n }\n\n flip.css(css);\n flip.transform(translate(-data.axis.x - to.x, -data.axis.y - to.y, true));\n\n } else {\n \n flip.css({top: -data.axis.y - to.y, left: -data.axis.x - to.x});\n\n }\n\n if (!unlimited) {\n\n var out,\n minBound = point2D(\n Math.min(0, (flipWidth-this.width())/2),\n Math.min(0, (flip.height()-this.height())/2)),\n maxBound = point2D(\n (flipWidth>this.width()) ? flipWidth-this.width() : (flipWidth-this.width())/2,\n (flip.height()>this.height()) ? flip.height()-this.height() : (flip.height()-this.height())/2\n );\n\n if (to.ymaxBound.y) {\n to.y = maxBound.y;\n out = true;\n }\n\n if (to.xmaxBound.x) {\n to.x = maxBound.x;\n out = true;\n }\n\n if (out) {\n this.zoom('scroll', to, true, true);\n }\n\n }\n\n data.scrollPos = point2D(to.x, to.y);\n\n },\n\n resize: function() {\n\n var data = this.data().zoom,\n flip = data.opts.flipbook;\n \n if (this.zoom('value')>1) {\n\n var flipOffset = flip.offset(),\n thisOffset = this.offset();\n\n data.axis = point2D(\n (flipOffset.left - thisOffset.left) + (data.axis.x + data.scrollPos.x),\n (flipOffset.top - thisOffset.top) + (data.axis.y + data.scrollPos.y)\n );\n\n if (flip.turn('display')=='double' &&\n flip.turn('direction')=='ltr' &&\n !flip.turn('view')[0])\n data.axis.x = data.axis.x + flip.width()/2;\n\n this.zoom('scroll', data.scrollPos);\n }\n\n },\n\n _eZoom: function() {\n \n var flipPos,\n data = this.data().zoom,\n flip = data.opts.flipbook,\n view = flip.turn('view');\n\n for (var p = 0; pdata.page)\n this.zoom('scroll',\n point2D(0, data.scrollPos.y), false, true);\n \n else if (page1 || data.touch.last.x-data.touch.initial.x>100)){\n \n this.trigger('zoom.swipeRight');\n\n }\n\n }\n },\n\n _eDestroying: function() {\n\n var that = this,\n data = this.data().zoom,\n flip = data.opts.flipbook,\n events = [\n 'tap',\n 'doubleTap',\n 'resize',\n 'zoomIn',\n 'zoomOut',\n 'swipeLeft',\n 'swipeRight'\n ];\n\n this.zoom('zoomOut', 0);\n\n $.each(events, function(index, eventName) {\n that.unbind('zoom.' + eventName);\n });\n \n for (var eventName in data.flipbookEvents) {\n if (Object.prototype.hasOwnProperty.call(data.flipbookEvents, eventName)) {\n flip.unbind(eventName, data.flipbookEvents[eventName]);\n }\n }\n\n flip.unbind('touchstart', data.eventTouchStart ).\n unbind('touchmove', data.eventTouchMove).\n unbind('touchend', data.eventTouchEnd);\n \n this.unbind('touchstart', zoomMethods._tap).\n unbind('click', zoomMethods._tap);\n\n data = null;\n this.data().zoom = null;\n\n }\n};\n\nfunction isPage(element, last) {\n\n if (element[0]==last[0])\n return false;\n\n if (element.attr('page'))\n return true;\n \n return (element.parent()[0]) ?\n isPage(element.parent(), last)\n :\n false;\n\n}\n\nfunction error(message) {\n\n function TurnJsError(message) {\n this.name = \"TurnJsError\";\n this.message = message;\n }\n\n TurnJsError.prototype = new Error();\n TurnJsError.prototype.constructor = TurnJsError;\n return new TurnJsError(message);\n\n}\n\nfunction translate(x, y, use3d) {\n \n return (has3d && use3d) ? ' translate3d(' + x + 'px,' + y + 'px, 0px) '\n : ' translate(' + x + 'px, ' + y + 'px) ';\n\n}\n\nfunction scale(v, use3d) {\n \n return (has3d && use3d) ? ' scale3d(' + v + ', ' + v + ', 1) '\n : ' scale(' + v + ') ';\n\n}\n\nfunction point2D(x, y) {\n \n return {x: x, y: y};\n\n}\n\nfunction bind(func, context) {\n\n return function() {\n return func.apply(context, arguments);\n };\n\n}\n\n$.extend($.fn, {\n zoom: function() {\n \n var args = arguments;\n\n if (!args[0] || typeof(args[0])=='object')\n return zoomMethods.init.apply($(this[0]), args);\n else if (zoomMethods[args[0]])\n return zoomMethods[args[0]].apply($(this[0]), Array.prototype.slice.call(args, 1));\n else\n throw error(args[0] + ' is not a method');\n\n }\n});\n\n})(jQuery);\n","import $ from 'jquery';\nimport 'jquery-ui/ui/widgets/slider';\nimport 'jquery.mousewheel'; // required by turnjs\nimport '../lib/turnjs/turn';\nimport '../lib/turnjs/zoom';\nimport debounce from 'debounce';\nimport { showErrorMessage } from \"../error-message\";\nimport * as pdfjsLib from \"pdfjs-dist\";\npdfjsLib.GlobalWorkerOptions.workerSrc = new URL(\"pdfjs-dist/build/pdf.worker.mjs\", import.meta.url).toString();\n\nif (location.search === \"?debug\") {\n await import('./console');\n}\n\nconst\n viewport = $(\"#FlipbookViewport\"),\n flipbook = $(\"#Flipbook\"),\n container = flipbook.parent(),\n zoomViewport = flipbook.closest(\".zoom-viewport\"),\n slider = viewport.find(\".flipbook-slider\");\n\nviewport.addClass(\"active\");\n\nconst initialPageNo = $(\"#FlipbookContainer\").data(\"pageNo\");\n\n// If there are only two pages, show \"single\" view\n// That also means that maxpagewidth should not be divided by 2...\n// TODO: This should also be done if we're watching in portrait mode!\n\n// Asynchronous download of PDF\nconst pdf = await pdfjsLib.getDocument(flipbook.data(\"url\")).promise\n .catch(ex => {\n $(\".flipbook-loading\").hide();\n $(\".flipbook-toolbar\").hide();\n showErrorMessage(\n \"An error occurred\",\n \"Please try again later.\"\n );\n throw ex;\n });\n\n$(\".flipbook-loading\").hide();\n\nconst [originalPageWidth, originalPageHeight] = await pdf.getPage(1)\n .then(page => page.getViewport({ scale: 1 }))\n .then(viewport => [viewport.width, viewport.height]);\n\nconst pagecount = pdf.numPages;\n\nlet pageWidth = originalPageWidth,\n pageHeight = originalPageHeight,\n factor = 1,\n singleView = true, // pagecount <= 2,\n spreads = [];\n\nconst calculatePageSize = () => {\n // setting singleView should be inside here?\n\n const windowWidth = $(window).width(),\n windowHeight = $(window).height();\n\n const portrait = windowWidth < windowHeight;\n singleView = portrait || pagecount <= 2;\n\n if (singleView) {\n // stupid ie11\n spreads = Array.apply(null, Array(pagecount)).map((x, i) => [i + 1]);\n } else {\n spreads = [[1]];\n for (let i = 2; i <= pagecount; i = i + 2) {\n const a = [i];\n if (pagecount >= i + 1) {\n a.push(i + 1);\n }\n spreads.push(a);\n }\n }\n\n // this method should probably return things to be set\n\n const maxPageWidth = (windowWidth - 100) / (singleView ? 1 : 2),\n maxPageHeight = windowHeight - 100;\n\n factor = Math.min(maxPageWidth / originalPageWidth, maxPageHeight / originalPageHeight);\n\n pageWidth = originalPageWidth * factor;\n pageHeight = originalPageHeight * factor;\n\n container.css({ \"margin-left\": (-(singleView ? pageWidth / 2 : pageWidth)) + \"px\", \"margin-top\": (-pageHeight / 2) + \"px\" });\n};\ncalculatePageSize();\n\nconst showNextPreviousButtons = (e, page, view) => {\n const atfirst = view.includes(1),\n atlast = view.includes(pagecount);\n\n viewport.\n toggleClass(\"flipbook-atfirst\", atfirst).\n toggleClass(\"flipbook-atlast\", atlast);\n\n moveSliderToPage(page);\n};\n\nslider.toggleClass(\"is-hidden\", spreads.length === 1);\n\n\nslider\n .slider({\n value: 0,\n min: 0,\n max: spreads.length - 1,\n change: (e, ui) => {\n const page = spreads[ui.value][0];\n if (!flipbook.turn(\"view\").includes(page)) {\n flipbook.turn('page', page);\n }\n }\n });\n\nconst updateSliderStyle = () => {\n const sliderwidth = slider.width() / spreads.length;\n slider\n .css(\"padding-right\", sliderwidth + \"px\")\n .find(\".ui-slider-handle\").css(\"width\", sliderwidth + \"px\");\n}\nupdateSliderStyle();\n\nconst moveSliderToPage = (page) => {\n if (!spreads[slider.slider(\"value\")].includes(page)) {\n slider.slider(\"value\", spreads.findIndex((v) => v.includes(page)));\n }\n};\n\nconst rendering = {};\n\nconst RenderPdfPage = (pageNo, zoom) => {\n\n // todo: figure out if already rendering\n\n\n if (rendering[pageNo]) {\n rendering[pageNo].then = () => RenderPdfPage(pageNo, zoom);\n } else {\n rendering[pageNo] = {};\n\n pdf.getPage(pageNo).then((page) => {\n const dpr = window.devicePixelRatio;\n //var scale = 1; // scale here needs to be set some other way\n const viewport = page.getViewport({ scale: factor * zoom * dpr });\n\n // wonder if it's possible to create a new canvas here and then switch them out once rendered?\n\n // Prepare canvas using PDF page dimensions\n const canvas = document.createElement(\"canvas\");\n const context = canvas.getContext('2d');\n // todo: these values are wrong in case of zoom?\n // The reason is probably that the devicePixelRatio is there only to map to physical pixels\n // The real size should therefore be smaller\n // But I guess the width height attributes need to be the the physical pixel value,\n // and maybe set the other with style?\n canvas.height = Math.ceil(viewport.height);\n canvas.width = Math.ceil(viewport.width);\n // canvas.style.height = (viewport.height / dpr) + \"px\";\n // canvas.style.width = (viewport.width / dpr) + \"px\";\n //context.scale(dpr, dpr);\n\n // Render PDF page into canvas context\n const renderContext = {\n canvasContext: context,\n viewport: viewport\n };\n\n page.render(renderContext).promise.catch((reason) => {\n console.log(reason);\n }).finally(() => {\n const oldcanvas = flipbook.find(\".page_img.page.p\" + pageNo + \" canvas\");\n oldcanvas.replaceWith(canvas);\n const then = rendering[pageNo].then;\n rendering[pageNo] = null;\n if (then) {\n then();\n }\n });\n });\n }\n};\n\nconst setCanvasWidth = () => {\n flipbook.turn(\"view\").forEach(function (pageno) {\n if (pageno !== 0) {\n flipbook\n .find(\".page_img.page.p\" + pageno + \" canvas\")\n .css(\"width\", \"100%\");\n }\n });\n}\n\nconst updatePageZoom = debounce((zoom) => {\n // TODO: when zooming, only update the current page(s)\n\n flipbook.turn(\"view\").forEach(function (pageno) {\n if (pageno !== 0) {\n RenderPdfPage(pageno, zoom);\n }\n });\n});\n\nflipbook\n .turn({\n pages: pagecount,\n width: singleView ? pageWidth : pageWidth * 2,\n height: pageHeight,\n autoCenter: true,\n display: singleView ? \"single\" : \"double\",\n duration: 1200,\n // turnCorners: 'all',\n when: {\n missing: (e, pages) => {\n for (let i = 0; i < pages.length; i++) {\n flipbook.turn('addPage', $('
'), pages[i]);\n RenderPdfPage(pages[i], 1);\n }\n },\n turning: (e, page, view) => {\n const zoom = flipbook.turn(\"zoom\");\n if (zoom !== 1) {\n // unfortunately this means that we want double click corners to zoom\n e.preventDefault()\n } else {\n showNextPreviousButtons(e, page, view)\n }\n },\n turned: showNextPreviousButtons,\n zooming: (e, newZoomValue, currentZoomValue) => {\n updatePageZoom(newZoomValue);\n }\n },\n page: initialPageNo,\n });\n\nif (spreads.length === 1) {\n flipbook.turn(\"disable\", true);\n}\n\nconst maxZoomLevel = () => {\n return $(window).width() / (flipbook.width() / (singleView ? 1 : 2));\n};\n\nlet zooming = false;\n\nzoomViewport.zoom({\n flipbook: flipbook,\n max: maxZoomLevel,\n when: {\n swipeLeft: () => {\n flipbook.turn('next');\n },\n swipeRight: () => {\n flipbook.turn('previous');\n },\n zoomIn: () => {\n zooming = false;\n // should probably be applied on any zoom level != 1\n viewport.addClass(\"flipbook-zoomed\");\n },\n zoomOut: () => {\n zooming = false;\n // should probably be applied on any zoom level != 1\n viewport.removeClass(\"flipbook-zoomed\");\n },\n change: (e, zoom) => {\n // we can prevent zoom here with e.preventDefault()\n //console.log(\"zoom.change\", zoom);\n setCanvasWidth();\n }\n }\n});\n\nif ('ontouchstart' in window) {\n // zoom.js's doubleTap event is not working at all, simulate one here instead\n zoomViewport.on('click', (() => {\n let tapped;\n let tapTimeout;\n return (e) => {\n clearTimeout(tapTimeout);\n if (tapped) {\n zoomTo({ x: e.pageX, y: e.pageY });\n }\n tapped = true;\n tapTimeout = setTimeout(() => tapped = false, 500)\n }\n })());\n} else {\n zoomViewport.on('zoom.tap', (e) => {\n if (!mousestate.dragged) {\n zoomTo(e);\n }\n });\n}\n\n$(\".flipbook-previous\")\n .on(\"click\", (e) => {\n flipbook.turn('previous');\n })\n .on(\"dblclick\", (e) => {\n flipbook.turn('page', 1);\n });\n\n$(\".flipbook-next\")\n .on(\"click\", (e) => {\n flipbook.turn('next');\n })\n .on(\"dblclick\", (e) => {\n flipbook.turn('page', pagecount);\n });\n\n$(\".flipbook-first\")\n .on(\"click\", (e) => {\n flipbook.turn('page', 1);\n });\n\n$(\".flipbook-last\")\n .on(\"click\", (e) => {\n flipbook.turn('page', pagecount);\n });\n\n$(\".fullscreen-button\")\n .on(\"click\", () => {\n if (!document.fullscreenElement) {\n document.body.requestFullscreen();\n } else {\n document.exitFullscreen();\n }\n });\n\n$(window).on(\"resize\", debounce(() => {\n calculatePageSize();\n\n slider.slider(\"option\", \"max\", spreads.length - 1);\n moveSliderToPage(flipbook.turn(\"page\"));\n updateSliderStyle();\n\n flipbook.turn(\"display\", singleView ? \"single\" : \"double\");\n\n const zoom = flipbook.turn(\"zoom\");\n\n flipbook.turn('size', singleView ? pageWidth * zoom : pageWidth * zoom * 2, pageHeight * zoom);\n\n if (zoom > 1) {\n zoomViewport.zoom(\"zoomOut\");\n }\n\n // need to set the width to 100% here\n // we should really re-render all loaded pages,\n // not just the currently visible ones\n flipbook\n .find(\".page_img.page canvas\")\n .css(\"width\", \"100%\");\n\n updatePageZoom(1);\n}));\n\n//window.onerror = function (msg, url, line, col, error) {\n//\tvar extra = !col ? '' : '\\ncolumn: ' + col;\n//\textra += !error ? '' : '\\nerror: ' + error;\n//\t$(document).showToast(\"Error: \" + msg + \"\\nurl: \" + url + \"\\nline: \" + line + extra, \"error\", 10000);\n//};\n\n$(\"body\").get(0).addEventListener(\"touchmove\", (e) => {\n\n if (!viewport.hasClass(\"active\")) {\n return;\n }\n\n e = e.originalEvent || e;\n // e.scale seems to only be available in safari, but that's where this issue is anyway.\n\n if (!zooming) {\n if (e.scale > 1.5) {\n zooming = true;\n $('.zoom-viewport').zoom('zoomIn', $.event.fix(e));\n } else if (e.scale < 0.8) {\n zooming = true;\n $('.zoom-viewport').zoom('zoomOut');\n }\n }\n\n if (e.scale > 1) { // always allow zoom out, but not zoom in\n e.preventDefault();\n }\n\n}, { passive: false });\n\nconst closeFlipbook = () => {\n if (window.parent != window) {\n window.parent.postMessage(\"closeFlipbook\", \"*\");\n }\n};\n\n$(document)\n .on(\"keyup\", (e) => {\n if (!viewport.hasClass(\"active\")) {\n return;\n }\n\n const isZoomed = flipbook.turn(\"zoom\") > 1;\n\n switch (e.keyCode) {\n case 37: //previous:\n // left arrow\n if (!isZoomed) {\n flipbook.turn('previous');\n }\n e.preventDefault();\n break;\n case 39: //next:\n //right arrow\n if (!isZoomed) {\n flipbook.turn('next');\n }\n e.preventDefault();\n break;\n case 27: //esc:\n if (isZoomed) {\n zoomViewport.zoom('zoomOut');\n }\n else {\n closeFlipbook();\n }\n e.preventDefault(e);\n break;\n }\n });\n\nconst mousestate = {\n mousedown: false,\n dragged: false,\n};\n\n// detect dragging .flipbook\nflipbook\n .on(\"mousedown\", () => {\n mousestate.dragged = false;\n mousestate.mousedown = true;\n viewport.addClass(\"dragging\");\n })\n .on(\"mousemove\", () => {\n if (mousestate.mousedown) {\n mousestate.dragged = true;\n }\n })\n .on(\"mouseup\", () => {\n mousestate.mousedown = false;\n viewport.removeClass(\"dragging\");\n })\n\nviewport\n .on(\"mousewheel\", (e) => {\n if (e.ctrlKey) {\n e.preventDefault();\n\n //var z = (e.deltaY > 0) ? 1.1 : 0.9;\n\n //var zoomlevel = flipbook.turn('zoom') * z;\n //// make sure it's within parameters > 1 < maxZoomLevel()\n //if (zoomlevel < 1)\n //\tzoomlevel = 1;\n //if (zoomlevel >= maxZoomLevel())\n //\tzoomlevel = maxZoomLevel();\n\n //console.log(zoomlevel, maxZoomLevel());\n //// This should into a certain position on the page, i.e. where the pointer is.\n //flipbook.turn('zoom', zoomlevel);\n\n return;\n }\n\n if (!viewport.hasClass(\"active\") || flipbook.turn(\"zoom\") > 1) {\n return;\n }\n\n if (e.deltaY > 0) {\n flipbook.turn(\"previous\");\n }\n else if (e.deltaY < 0) {\n flipbook.turn(\"next\");\n }\n\n });\n\nfunction zoomTo(event) {\n // This event is called on double click. Can we use this to decide how much to zoom in?\n\n setTimeout(() => {\n if ($('.zoom-viewport').zoom('value') === 1) {\n $('.zoom-viewport').zoom('zoomIn', event);\n } else {\n $('.zoom-viewport').zoom('zoomOut');\n }\n }, 1);\n}"],"names":["$","has3d","hasRot","vendor","PI","Math","A90","isTouch","window","mouseEvents","down","move","up","over","out","corners","backward","forward","all","displays","directions","turnOptions","acceleration","display","duration","page","gradients","turnCorners","when","flipOptions","cornerSize","turnMethods","init","options","parts","document","body","style","exec","navigator","userAgent","parseFloat","getPrefix","i","pageNum","data","this","ch","children","extend","width","height","direction","attr","css","opts","pageObjs","pages","pageWrap","pageZoom","pagePlace","pageMv","zoom","totalPages","eventHandlers","touchStart","proxy","_touchStart","touchMove","_touchMove","touchEnd","_touchEnd","start","_eventStart","has","bind","position","turn","transform","translate","length","_eventEnd","_eventPressed","_eventReleased","_flip","parent","done","addPage","element","currentPage","className","incPages","lastPage","destroying","parseInt","turnError","_movePages","call","addClass","indexOf","hasClass","removeClass","_addPage","_removeFromDOM","_necessPage","overflow","append","appendTo","prop","_pageSize","_makeFlip","remove","hasPage","center","size","left","noCenter","view","tpage","marginLeft","destroy","flipbook","trigger","each","index","eventName","unbind","fparent","shadow","removeData","is","newZoom","currentView","iz","newWidth","round","newHeight","autoCenter","_updateShadow","top","right","pageWidth","pageHeight","odd","single","flip","next","disabled","_setPageLoc","_makeRange","range","remainingPages","_view","floor","min","pagesInDOM","max","_removePageFromDOM","dd","flipMethods","_moveFoldingPage","f","fwrapper","_removeMv","removePage","_fitPage","from","change","that","currentDisplay","undefined","inArray","dir","toLowerCase","animating","corner","disable","resize","splice","_addMv","push","stop","ignore","animate","force","_missing","p","missing","newView","_turnPage","current","place","optsCorners","split","flipData","actualPoint","point","effect","pop","previous","shift","peel","_addMotionPage","e","actualZoom","isDefaultPrevented","charAt","target","turned","turnData","mouseAction","time","Date","getTime","outArea","x","preventDefault","stopPropagation","apply","arguments","_eventMove","calculateZ","mv","nextPage","placePage","dpage","total","r","pageZ","partZ","pageV","addView","abs","update","fixed","pos","actualView","zIndex","pageLocation","view2","divAtt","loc","version","hover","_addPageWrapper","setData","d","z","_cAllowed","_cornerActivated","y","csz","allowedCorners","_isIArea","offset","originalEvent","touches","pageX","pageY","_c","point2D","_c2","_foldingPage","_backGradient","gradient","bshadow","type","full","wrapper","fpage","ashadow","sqrt","pow","findPos","cssProperties","prepend","hide","flips","bottom","cursor","_fold","o","leftPos","gradientX","fpageOrigin","parentOrigin","parentCss","relX","angle","half","backgroundColor","opacity","px","gradientEndPointA","gradientEndPointB","gradientStartVal","gradientSize","gradientOpacity","shadowVal","a","df","tr","folding","ac","tan","h","substr","compute","rel","middle","alpha","atan2","gamma","distance","sin","cos","beta","side","sideX","sideY","endingPoint","far","c","mvW","mvH","cssA","cssB","aliasingFk","origin","rotate","_showFoldedPage","visible","status","animatef","to","frame","v","turning","show","shadows","bshadowLoc","hideFoldedPage","p1","p4","delta","p2","p3","np","bezier","complete","hiding","turnPage","elevation","moving","isTurning","dec","methods","args","Array","prototype","slice","overf","t","b","use3d","degrees","property","object","Object","hasOwnProperty","vendorPrefixes","len","obj","p0","colors","numColors","j","cols","join","dx","dy","angle2","diagonal","gradientDiagonal","slope","inverse","segA","context","event","Event","isPropagationStopped","message","TurnJsError","name","Error","constructor","offsetLeft","offsetTop","offsetParent","requestAnim","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","callback","setTimeout","fn","properties","diff","timeDiff","easing","cssPrefix","cssTransitionEnd","el","createElement","transitions","zoomOptions","easeFunction","zoomMethods","error","axis","scrollPos","eventQueue","mouseupEvent","_eMouseUp","eventTouchStart","_eTouchStart","eventTouchMove","_eTouchMove","eventTouchEnd","_eTouchEnd","flipbookEvents","zooming","_eZoom","pressed","_ePressed","released","_eReleased","_eStart","_eTurning","_eTurned","_eDestroying","_tap","mousedown","_mousedown","click","draggingCorner","dragging","isPage","_addEvent","secuence","_eventSeq","eventObject","timestamp","list","lastEvent","_prepareZoom","flipPos","invz","flipOffset","thisOffset","flipSize","zoomer","zoomerView","find","pageElement","clone","value","zoomIn","ev","bound","prefix","transitionEnd","scale","compose","maxMove","minMove","realPos","transitionEndCallback","flipPosition","margin","_eMouseDown","_eMouseMove","_eMouseWheel","zoomOut","scaling","flipDesPos","tmp","background","flipRealPos","removeProperty","flipbookWidth","scroll","unlimited","flipWidth","minBound","maxBound","pageObj","draggingCur","cur","motion","deltaX","deltaY","deltaFactor","finger","touch","initial","last","speed","func","pdfjsLib","workerSrc","URL","toString","location","search","viewport","container","zoomViewport","closest","slider","initialPageNo","pdf","promise","catch","ex","showErrorMessage","originalPageWidth","originalPageHeight","getPage","then","getViewport","pagecount","numPages","factor","singleView","spreads","calculatePageSize","windowWidth","windowHeight","map","maxPageWidth","maxPageHeight","showNextPreviousButtons","atfirst","includes","atlast","toggleClass","moveSliderToPage","ui","updateSliderStyle","sliderwidth","findIndex","rendering","RenderPdfPage","pageNo","dpr","devicePixelRatio","canvas","getContext","ceil","renderContext","canvasContext","render","reason","console","log","finally","replaceWith","setCanvasWidth","forEach","pageno","updatePageZoom","debounce","newZoomValue","currentZoomValue","maxZoomLevel","swipeLeft","swipeRight","on","tapped","tapTimeout","clearTimeout","zoomTo","mousestate","dragged","fullscreenElement","exitFullscreen","requestFullscreen","get","addEventListener","fix","passive","closeFlipbook","postMessage","isZoomed","keyCode","ctrlKey"],"sourceRoot":""}