1
0
Fork 0
mirror of https://github.com/futurepress/epub.js.git synced 2025-10-04 15:09:16 +02:00
epub.js/demo/js/reader.min.js
2013-12-20 15:01:03 -08:00

1 line
No EOL
4 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

var EPUBJSR=EPUBJSR||{};EPUBJSR.app={},EPUBJSR.app.init=function(a){"use strict";function b(b){var e=window.location.search.match(/book=(.*)/),b=b||(e?e[1]:"moby-dick");return k=a(window).width(),k>550?a("#main").width(k-m):a("#main").width(k),j=new EPUBJS.Book({bookPath:b,restore:!0}),j.on("book:online",g),j.on("book:offline",h),j.getMetadata().then(c),j.getToc().then(d),j.ready.all.then(f),j.renderTo("area"),a(function(){i()}),j}function c(b){var c=b.bookTitle,d=b.creator,e=a("#book-title"),f=a("#chapter-title"),g=a("#title-seperator");document.title=c+" "+d,e.html(c),f.html(d),g.show()}function d(b){var c,d,f=a("#toc");f.empty(),d=e(b,1),f.append(d),c=a(".toc_link"),c.on("click",function(b){var c=a(this),d=c.data("url");a(".openChapter").removeClass("openChapter"),c.parents("li").addClass("openChapter"),j.goto(d),b.preventDefault()})}function e(b,c){var d=a("<ul>"),f=1==c?"chapter":"section";return b.forEach(function(b){var g,h=a("<li id='toc-"+b.id+"'>"),i=a("<a class='toc_link "+f+"' href='#/"+b.href+"' data-url='"+b.href+"'>"+b.label+"</a>");h.append(i),b.subitems&&b.subitems.length&&(c++,g=e(b.subitems,c),h.append(g)),d.append(h)}),d}function f(){var b=a("#divider"),c=a("#loader");c.hide(),j.single||b.addClass("show")}function g(){var b=a("#store");l=!1,b.attr("src",b.data("save"))}function h(){var b=a("#store");l=!0,b.attr("src",b.data("saved"))}function i(){function b(){n.addClass("open"),h.addClass("closed"),p.attr("src",p.data("close"))}function c(){i.css("pointer-events","visible"),n.removeClass("open"),h.removeClass("closed"),p.attr("src",p.data("open"))}function d(){t.hide(),s.show()}function e(){s.hide(),t.show()}var f=a("#next"),g=a("#prev"),h=a("#main"),i=a("#area"),n=a("#sidebar"),o=a("#open"),p=o.find("img"),q=a("#network"),r=a("#setting"),s=a("#settingsPanel"),t=a("#toc"),u=a("#fullscreen"),v=a("#fullscreenicon"),w=a("#cancelfullscreenicon"),x=a(window);x.on("resize",function(){k=a(window).width(),k>550?h.width(k-m):h.width(k)}),f.on("click",function(){j.nextPage()}),g.on("click",function(){j.prevPage()}),r.on("click",function(){s.is(":visible")?e():d()}),u.on("click",function(){screenfull.toggle(a("#container")[0]),v.toggle(),w.toggle()});var y=!1;a(document).keydown(function(a){return y?void 0:37==a.keyCode?(g.trigger("click"),y=!0,setTimeout(function(){y=!1},100),!1):39==a.keyCode?(f.trigger("click"),y=!0,setTimeout(function(){y=!1},100),!1):void 0}),o.on("click",function(){n.hasClass("open")?c():b()}),q.on("click",function(){l=!l,j.fromStorage(l)})}var j,k,l=!1,m=0;return b}(jQuery),EPUBJSR.search={},EPUBJSR.search.SERVER="http://localhost:5000",EPUBJSR.search.request=function(a,b){var c=$.ajax({dataType:"json",url:EPUBJSR.search.SERVER+"/search?q="+encodeURIComponent(a)});c.fail(function(a){console.error(a)}),c.done(function(a){b(a)})},EPUBJSR.search.View=function(){var a,b=$("#searchBox"),c=$("#searchResults"),d=$("#toc"),e=$("#searchView");b.on("search",function(f){var g=b.val();return f.preventDefault(),""==g?(c.empty(),e.removeClass("shown"),d.removeClass("hidden"),$(a).find("body").unhighlight(),a=!1,void 0):(e.hasClass("shown")||(e.addClass("shown"),d.addClass("hidden")),c.empty(),c.append("<li><p>Searching...</p></li>"),EPUBJSR.search.request(g,function(b){var d=b.results;return c.empty(),a&&$(a).find("body").unhighlight(),0==d.length?(c.append("<li><p>No Results Found</p></li>"),void 0):(a=$("#area iframe")[0].contentDocument,$(a).find("body").highlight(g,{element:"span"}),d.forEach(function(b){var d=$("<li></li>"),e=$("<a href='"+b.href+"' data-cfi='"+b.cfi+"'><span>"+b.title+"</span><p>"+b.highlight+"</p></a>");e.on("click",function(b){var c=$(this),d=c.data("cfi");Book.gotoCfi(d),Book.on("renderer:chapterDisplayed",function(){a=$("#area iframe")[0].contentDocument,$(a).find("body").highlight(g,{element:"span"})}),b.preventDefault()}),d.append(e),c.append(d)}),void 0)}),void 0)})},jQuery.fn.extend({clickOutside:function(a,b){var c=this;return jQuery(document).on("click.offer",function(d){b&&jQuery.inArray(d.target,b)>-1||jQuery.contains(c[0],d.target)||(jQuery(document).off("click.offer"),a(d,c))}),this}});