Advertisement
Guest User

Untitled

a guest
May 28th, 2022
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /**
  2.  * Copyright (c) 2012 Emmanuel Garcia
  3.  * All rights reserved
  4.  *
  5.  * turnjs.com
  6.  * turnjs.com/license.txt
  7. **/
  8. const prefix = document.currentScript.src.replace(/\/buecherregal\/js\/.*\.js.*/, '');
  9. const samples = {
  10.   'magazine1': {
  11.     'path': `${prefix}/buecherregal/samples/magazine1/`
  12.   },
  13.   'magazine2': {
  14.     'path': `${prefix}/buecherregal/samples/magazine2/`
  15.   },
  16.   'magazine3': {
  17.     'path': `${prefix}/buecherregal/samples/magazine3/`
  18.   }
  19. };
  20.  
  21. (function ($) {
  22.  
  23.   var currentDemo,
  24.     lastDemo,
  25.     previewDemo,
  26.     previewNumPages,
  27.     zoomOutButton,
  28.     scrollTimer,
  29.     scrollPage,
  30.     scrollX = null,
  31.     demoHash = '',
  32.     sections = '^(getting-started|features|api|licensing|about)$',
  33.     scrolling = false,
  34.     sid = Math.round(Math.random() * 100000),
  35.     /*
  36.     samples = {
  37.       'magazine1': { 'path': '/typo3conf/ext/rcdesign9/Resources/Public/buecherregal/samples/magazine1/' },
  38.       'magazine2': { 'path': '/typo3conf/ext/rcdesign9/Resources/Public/buecherregal/samples/magazine2/' },
  39.       'magazine3': { 'path': '/typo3conf/ext/rcdesign9/Resources/Public/buecherregal/samples/magazine3/' }
  40.     },
  41.     */
  42.     status = {
  43.       'unloaded': 0,
  44.       'loading': 1,
  45.       'loaded': 2
  46.     };
  47.  
  48.   bookshelf = {
  49.     loadSample: function (demoName, callback) {
  50.  
  51.       samples[demoName].callback = callback;
  52.  
  53.     },
  54.  
  55.     loaded: function (demoName) {
  56.  
  57.       $('.shelf .sample[sample="' + demoName + '"]').
  58.         removeClass('loading').
  59.         html('');
  60.  
  61.       samples[demoName].loading = status.loaded;
  62.  
  63.     },
  64.  
  65.     currentSample: function () {
  66.  
  67.       return samples[currentDemo];
  68.  
  69.     },
  70.  
  71.     currentSampleName: function () {
  72.  
  73.       return currentDemo;
  74.  
  75.     },
  76.  
  77.     showSample: function () {
  78.  
  79.       if (!currentDemo)
  80.         return;
  81.  
  82.       var sample = samples[currentDemo];
  83.  
  84.       if (Modernizr.csstransforms) {
  85.  
  86.         $('.splash').
  87.           removeClass('no-transition').
  88.           addClass('preview show-samples sample-' + currentDemo);
  89.  
  90.         $('#book-zoom').
  91.           css({ visibility: 'hidden' }).
  92.           removeClass('animate').
  93.           transform('');
  94.  
  95.         var transitionEnd = $.cssTransitionEnd(),
  96.           actualDemo = currentDemo,
  97.           thumbnail = $('.shelf .sample[sample="' + currentDemo + '"]'),
  98.           bookWidth = $('#book-zoom').width() / 2,
  99.           bookHeight = $('#book-zoom').height() / 2,
  100.           targetPosition = thumbnail.offset(),
  101.           position = $('#book-zoom').offset(),
  102.           scaleFrom = thumbnail.height() * 1.1 / $('#book-zoom').height(),
  103.           posX = (-bookWidth + sample.flipbook.width() / 4) * scaleFrom + bookWidth + position.left,
  104.           posY = -bookHeight * scaleFrom + bookHeight + position.top,
  105.           moveX = targetPosition.left - posX,
  106.           moveY = targetPosition.top - posY,
  107.           showBars = function (e) {
  108.  
  109.             if (currentDemo == actualDemo) {
  110.               $('.splash').addClass('show-bar');
  111.               if (typeof (_gaq) != 'undefined')
  112.                 _gaq.push(['_trackEvent', 'Sample', currentDemo]);
  113.             }
  114.  
  115.           };
  116.  
  117.         thumbnail.css({ visibility: 'hidden' });
  118.  
  119.         $('#book-zoom').
  120.           removeClass('animate').
  121.           transform('translate(' + moveX + 'px, ' + moveY + 'px)' +
  122.             'scale(' + scaleFrom + ',' + scaleFrom + ')').
  123.           css({ visibility: 'visible' });
  124.  
  125.         setTimeout(function () {
  126.           $('#book-zoom').addClass('animate').transform('');
  127.           sample.flipbook.turn('page', sample.startPage || 2);
  128.         }, 0);
  129.  
  130.         if (!$('.splash .details').is(':visible')) {
  131.  
  132.           showBars();
  133.  
  134.         } else {
  135.  
  136.           if (!transitionEnd || isIE()) {
  137.  
  138.             setTimeout(function () {
  139.               showBars();
  140.             }, 1000);
  141.  
  142.           } else {
  143.             $('.details').bind(transitionEnd, function () {
  144.               $(this).unbind(transitionEnd);
  145.               //Chrome has another bug, it doesn't read new css rules after transitionEnd
  146.               setTimeout(showBars, 0);
  147.             });
  148.           }
  149.         }
  150.  
  151.       } else {
  152.  
  153.         $('.splash').addClass('preview show-samples show-bar');
  154.         sample.flipbook.turn('page', sample.startPage || 2);
  155.         if (typeof (_gaq) != 'undefined')
  156.           _gaq.push(['_trackEvent', 'Sample', currentDemo]);
  157.  
  158.       }
  159.  
  160.     },
  161.  
  162.     close: function () {
  163.  
  164.       if (!currentDemo)
  165.         return;
  166.  
  167.       var smpl = currentDemo,
  168.         sample = samples[currentDemo],
  169.         thumbnail = $('.shelf .sample[sample="' + currentDemo + '"]');
  170.  
  171.       if ($('.splash').data().zoom)
  172.         $('.splash').zoom('zoomOut', 0);
  173.  
  174.       sample.startPage = null;
  175.  
  176.       currentDemo = null;
  177.  
  178.       ///Hash.go('');
  179.  
  180.       if (Modernizr.csstransforms) {
  181.  
  182.         thumbnail.removeClass('hover');
  183.         $('.splash').removeClass('no-transition');
  184.         $('.bookshelf').addClass('no-transition no-transform');
  185.         $('.splash').removeClass('show-bar');
  186.  
  187.         sample.flipbook.turn('page', 1);
  188.  
  189.         var bookWidth = $('#book-zoom').width() / 2,
  190.           bookHeight = $('#book-zoom').height() / 2,
  191.           targetPosition = thumbnail.offset(),
  192.           position = $('#book-zoom').offset(),
  193.           scaleFrom = thumbnail.height() / $('#book-zoom').height(),
  194.           posX = (-bookWidth + sample.flipbook.width() / 4) * scaleFrom + bookWidth + position.left,
  195.           posY = -bookHeight * scaleFrom + bookHeight + position.top,
  196.           moveX = targetPosition.left - posX,
  197.           moveY = targetPosition.top - posY;
  198.  
  199.         $('.bookshelf').removeClass('no-transform');
  200.  
  201.         setTimeout(function () {
  202.           $('.bookshelf').removeClass('no-transition');
  203.           $('.splash').removeClass('preview');
  204.           $('#book-zoom').
  205.             addClass('animate').
  206.             transform('translate(' + moveX + 'px, ' + moveY + 'px) ' +
  207.               'scale3d(' + scaleFrom + ',' + scaleFrom + ',1)');
  208.         }, 0);
  209.  
  210.         setTimeout(function () {
  211.           if (!currentDemo) {
  212.             $('.splash').removeClass('show-samples sample-' + smpl);
  213.             thumbnail.css({ visibility: 'visible' });
  214.           }
  215.         }, 1000);
  216.  
  217.       } else {
  218.         $('.splash').removeClass('preview show-samples show-bar sample-' + smpl);
  219.       }
  220.  
  221.     },
  222.  
  223.  
  224.     open: function (demoName) {
  225.  
  226.       var sample = samples[demoName];
  227.  
  228.       if (lastDemo != demoName) {
  229.  
  230.         if (lastDemo && samples[lastDemo].flipbook) {
  231.           samples[lastDemo].flipbook.turn('destroy').remove();
  232.           samples[lastDemo].flipbook = null;
  233.         }
  234.  
  235.         lastDemo = demoName;
  236.       }
  237.  
  238.       if (sample.loading == status.unloaded || sample.loading == status.loading) {
  239.         $('.shelf .sample[sample="' + demoName + '"]').
  240.           addClass('loading').
  241.           html('<div class="loader"><i></i></div>');
  242.       }
  243.  
  244.       if (sample.callback) {
  245.  
  246.         if (currentDemo == demoName)
  247.           return;
  248.  
  249.         currentDemo = demoName;
  250.         sample.callback();
  251.  
  252.       } else {
  253.  
  254.         if (sample.loading == status.loading) {
  255.           setTimeout(function () {
  256.             bookshelf.open(demoName);
  257.           }, 100);
  258.           return;
  259.         }
  260.  
  261.         sample.loading = status.loading;
  262.  
  263.         yepnope({
  264.           load: [
  265.             sample.path + 'css/' + demoName + '.css?' + sid,
  266.             sample.path + 'js/' + demoName + '.js?' + sid
  267.           ]
  268.         });
  269.  
  270.         bookshelf.open(demoName);
  271.       }
  272.  
  273.     },
  274.  
  275.     preloadImgs: function (pics, path, callback) {
  276.  
  277.       var loaded = 0,
  278.         load = function (src) {
  279.           var tmp = $('<img />').
  280.             bind('load', function () {
  281.               loaded++;
  282.               if (loaded == pics.length && typeof (callback) == 'function')
  283.                 callback();
  284.               tmp = null;
  285.             }).attr('src', path + src);
  286.         };
  287.  
  288.       if (pics.length === 0) {
  289.         if (typeof (callback) == 'function')
  290.           callback();
  291.       } else
  292.         for (var i = 0; i < pics.length; i++)
  293.           load(pics[i]);
  294.  
  295.     },
  296.  
  297.     preload: function () {
  298.  
  299.       var test = [],
  300.         current = 0,
  301.         loadNextTest = function () {
  302.           if (current > test.length - 1)
  303.             return;
  304.  
  305.           var demoName = test[current],
  306.             sample = samples[demoName];
  307.  
  308.           if (sample.loading == status.loading) {
  309.  
  310.             current++;
  311.             loadNextTest();
  312.  
  313.           } else {
  314.  
  315.             sample.loading = status.loading;
  316.  
  317.             yepnope({
  318.               load: [
  319.                 sample.path + 'css/' + demoName + '.css?' + sid,
  320.                 sample.path + 'js/' + demoName + '.js?' + sid
  321.               ],
  322.               complete: function () {
  323.  
  324.                 if (sample.callback)
  325.                   sample.callback('preload');
  326.  
  327.                 current++;
  328.                 loadNextTest();
  329.               }
  330.             });
  331.           }
  332.         };
  333.  
  334.       for (var sample in samples)
  335.         test.push(sample);
  336.  
  337.       loadNextTest();
  338.     },
  339.  
  340.     // This function is here only for one reason
  341.     // Fixes the bug of slider z-index position resulted
  342.     // from combining position relative/absolute, z-index and transformations
  343.  
  344.     moveBar: function (yes) {
  345.  
  346.       if (Modernizr.csstransforms) {
  347.         $('#slider .ui-slider-handle').css({ zIndex: yes ? -1 : 0 });
  348.       }
  349.  
  350.     },
  351.  
  352.     zoomOutButton: function (show) {
  353.  
  354.       if (!zoomOutButton) {
  355.         zoomOutButton = $('<i />', { 'class': 'icon zoom-out' }).
  356.           appendTo($('.splash')).
  357.           mouseover(function () {
  358.             zoomOutButton.addClass('zoom-out-hover');
  359.           }).
  360.           mouseout(function () {
  361.             zoomOutButton.removeClass('zoom-out-hover');
  362.           }).
  363.           click(function () {
  364.             $('.splash').zoom('zoomOut');
  365.             $(this).hide();
  366.           });
  367.       }
  368.  
  369.       zoomOutButton.css({ display: (show) ? '' : 'none' });
  370.  
  371.     }
  372.   };
  373.  
  374.   function setCurrentHash() {
  375.     var top = $(window).scrollTop();
  376.  
  377.     if (top === 0)
  378.       Hash.go(demoHash);
  379.   }
  380.  
  381.   function splashHeight() {
  382.     return ($('.splash').hasClass('preview')) ? 800 : 700;
  383.   }
  384.   /*
  385.   function scrollTop(top, speed) {
  386.     scrolling = true;
  387.  
  388.     $('html,body').animate({scrollTop: top}, speed, function() {
  389.       scrolling = false;
  390.       setCurrentHash();
  391.     });
  392.  
  393.   }
  394.   */
  395.   function setPreview(view) {
  396.     if (!currentDemo)
  397.       return;
  398.  
  399.     var preview = $(_thumbPreview.children(':first')),
  400.       sample = samples[currentDemo],
  401.       numPages = (view == 0 || view == $('#slider').slider('option', 'max')) ? 1 : 2;
  402.  
  403.     if (previewDemo != currentDemo || previewNumPages != numPages) {
  404.  
  405.       var width = (numPages == 1) ? sample.previewWidth / 2 : sample.previewWidth;
  406.  
  407.       _thumbPreview.
  408.         addClass('no-transition').
  409.         css({
  410.           width: width + 15,
  411.           height: sample.previewHeight + 15,
  412.           top: -sample.previewHeight - 30,
  413.           left: ($($('#slider').children(':first')).width() - width - 15) / 2
  414.         });
  415.  
  416.       preview.css({
  417.         backgroundImage: 'url(' + sample.previewSrc + ')',
  418.         width: width,
  419.         height: sample.previewHeight
  420.       });
  421.  
  422.       previewDemo = currentDemo;
  423.       previewNumPages = numPages;
  424.  
  425.       setTimeout(function () {
  426.         _thumbPreview.removeClass('no-transition');
  427.       }, 0);
  428.     }
  429.  
  430.     preview.css({
  431.       backgroundPosition:
  432.         '0px -' + ((view - 1) * sample.previewHeight) + 'px'
  433.     });
  434.   }
  435.  
  436.   function navigation(where) {
  437.  
  438.     var sample = samples[currentDemo];
  439.  
  440.     switch (where) {
  441.       /*
  442.       case 'zoom-in' :
  443.  
  444.         $('.splash').zoom('zoomIn', event);
  445.  
  446.       break;
  447.   */
  448.       case 'table-contents':
  449.  
  450.         sample.flipbook.turn('page', sample.tableContents);
  451.  
  452.         break;
  453.       case 'share-facebook':
  454.  
  455.         window.open('https://www.facebook.com/sharer.php?' +
  456.           'u=' + encodeURIComponent(sample.shareLink) +
  457.           '&t=' + encodeURIComponent(sample.shareText));
  458.  
  459.         break;
  460.       case 'share-twitter':
  461.  
  462.         window.open('https://twitter.com/intent/tweet?' +
  463.           'original_referer=' + encodeURIComponent(sample.shareLink) +
  464.           '&url=' + encodeURIComponent(sample.shareLink) +
  465.           '&text=' + encodeURIComponent(sample.shareText));
  466.  
  467.         break;
  468.       case 'share-pinterest':
  469.  
  470.         window.open('http://pinterest.com/pin/create/button/?url=' +
  471.           'url=' + encodeURIComponent(sample.shareLink) +
  472.           '&media=' + encodeURIComponent(sample.shareText));
  473.  
  474.         break;
  475.       case 'share-plus':
  476.  
  477.         window.open('https://plusone.google.com/_/+1/confirm?' +
  478.           'url=' + encodeURIComponent(sample.shareLink));
  479.  
  480.         break;
  481.     }
  482.  
  483.   }
  484.  
  485.   // DOMReady
  486.  
  487.   $(document).ready(function () {
  488.  
  489.     if (!$.isTouch) {
  490.       $('.go-up').click(function (e) {
  491.         scrollTop(0, 'fast');
  492.         e.preventDefault();
  493.       });
  494.  
  495.       $('.splash').click(function () {
  496.         if ($(window).scrollTop() > 100)
  497.           scrollTop(0, 'fast');
  498.       });
  499.     }
  500.  
  501.     // Books and magazines
  502.  
  503.     clickElement($('.bookshelf'), function (e) {
  504.       if (e.target && $(e.target).hasClass('sample')) {
  505.         Hash.go('samples/' + $(e.target).attr('sample'));
  506.         e.preventDefault();
  507.         e.stopPropagation();
  508.       }
  509.     });
  510.  
  511.     // Samples in the bookshelf
  512.  
  513.     $('.loc .sample, .bookshelf-row .sample').bind($.mouseEvents.over, function (e) {
  514.  
  515.       $(this).addClass('hover');
  516.       e.preventDefault();
  517.  
  518.     }).bind($.mouseEvents.out, function (e) {
  519.  
  520.       $(this).removeClass('hover');
  521.  
  522.     });
  523.  
  524.     $('nav li a').bind($.mouseEvents.over, function (e) {
  525.  
  526.       $(this).addClass('hover');
  527.  
  528.     }).bind($.mouseEvents.out, function (e) {
  529.  
  530.       $(this).removeClass('hover');
  531.  
  532.     });
  533.  
  534.     // Share icons
  535.  
  536.     $('.share .icon').bind($.mouseEvents.over, function (e) {
  537.  
  538.       var className = $.trim($(this).
  539.         attr('class').
  540.         replace(/\b([a-z-]*hover|icon)\b/g, ''));
  541.       $(this).addClass(className + '-hover');
  542.  
  543.     }).bind($.mouseEvents.out, function (e) {
  544.  
  545.       var className = $.trim($(this).
  546.         attr('class').
  547.         replace(/\b([a-z-]*hover|icon)\b/g, ''));
  548.       $(this).removeClass(className + '-hover');
  549.  
  550.     });
  551.  
  552.     clickElement($('.share .icon'), function (e) {
  553.  
  554.       navigation($.trim($(this).
  555.         attr('class').
  556.         replace(/\b([a-z-]*hover|icon)\b/g, '')));
  557.  
  558.     });
  559.  
  560.  
  561.     // Slider
  562.  
  563.     $("#slider").slider({
  564.       min: 1,
  565.       max: 100,
  566.  
  567.       start: function (event, ui) {
  568.         if (!window._thumbPreview) {
  569.           _thumbPreview = $('<div />', { 'class': 'thumbnail' }).html('<div></div>');
  570.           setPreview(ui.value);
  571.           _thumbPreview.appendTo($(ui.handle));
  572.         } else
  573.           setPreview(ui.value);
  574.  
  575.         bookshelf.moveBar(false);
  576.       },
  577.  
  578.       slide: function (event, ui) {
  579.         setPreview(ui.value);
  580.       },
  581.  
  582.       stop: function () {
  583.         if (window._thumbPreview)
  584.           _thumbPreview.removeClass('show');
  585.  
  586.         if (currentDemo)
  587.           samples[currentDemo].
  588.             flipbook.
  589.             turn('page', Math.max(1, $(this).slider('value') * 2 - 2));
  590.       }
  591.     });
  592.  
  593.     // Close button
  594.     clickElement($('.quit'), function () {
  595.       Hash.go();
  596.     });
  597.  
  598.     // Mousewheel
  599.  
  600.     $('#book-zoom').mousewheel(function (event, delta, deltaX, deltaY) {
  601.  
  602.       if (!currentDemo)
  603.         return;
  604.  
  605.       event.preventDefault();
  606.  
  607.       var flipbook = samples[currentDemo].flipbook;
  608.  
  609.       if (flipbook.turn('zoom') != 1)
  610.         return;
  611.  
  612.       var step = 30,
  613.         actualPos = $("#slider").slider('value') * step;
  614.  
  615.       if (scrollX === null) {
  616.         scrollX = actualPos;
  617.         scrollPage = flipbook.turn('page');
  618.       }
  619.  
  620.       scrollX = Math.min($("#slider").slider('option', 'max') * step,
  621.         Math.max(0, scrollX + deltaX));
  622.  
  623.       var actualView = Math.round(scrollX / step),
  624.         page = Math.min(flipbook.turn('pages'), Math.max(1, actualView * 2 - 2));
  625.  
  626.       if ($.inArray(scrollPage, flipbook.turn('view', page)) == -1) {
  627.         scrollPage = page;
  628.         flipbook.turn('page', page);
  629.       }
  630.  
  631.       if (scrollTimer)
  632.         clearInterval(scrollTimer);
  633.  
  634.       scrollTimer = setTimeout(function () {
  635.         scrollX = null;
  636.         scrollPage = null;
  637.       }, 1000);
  638.  
  639.     });
  640.  
  641.   });
  642.  
  643.   // Window events
  644.  
  645.   $(window).load(function () {
  646.  
  647.     bookshelf.preload();
  648.  
  649.     // Url Hashes
  650.     // Samples
  651.     Hash.on('samples\/([^\/]+)(?:\/([0-9]*))?$', {
  652.       yep: function (path, parts) {
  653.         var sample = parts[1],
  654.           page = parts[1];
  655.  
  656.         if (page !== undefined) {
  657.           samples[sample].startPage = page;
  658.           if (samples[sample].flipbook)
  659.             samples[sample].flipbook.turn('page', page);
  660.         }
  661.  
  662.         if (samples[sample]) {
  663.           bookshelf.open(sample);
  664.           //$('body').scrollTop(0);
  665.         }
  666.  
  667.         demoHash = path;
  668.  
  669.       },
  670.       nop: function (path) {
  671.         if (!(new RegExp(sections)).test(path)) {
  672.           if (currentDemo)
  673.             samples[currentDemo].startPage = 2;
  674.           bookshelf.close();
  675.           demoHash = '';
  676.         }
  677.       }
  678.     });
  679.  
  680.     // Sections and navigation
  681.  
  682.     Hash.on(sections, {
  683.       yep: function (path, parts) {
  684.         var section = parts[1],
  685.           content = $('#section-' + section),
  686.           splashOffTop = (splashHeight() + 100) / 2 - parseInt(content.css('marginTop'), 10);
  687.  
  688.         $('nav a[href!="#' + section + '"]').removeClass('on');
  689.         $('nav a[href="#' + section + '"]').addClass('on');
  690.  
  691.         if ($.isTouch || $('.splash').height() >= $(window).height()) {
  692.           scrollTop(content.offset().top - 50);
  693.         } else {
  694.           scrollTop(content.offset().top - $('.splash').height() + splashOffTop, 'fast');
  695.         }
  696.  
  697.       },
  698.       nop: function () {
  699.         $('nav a').removeClass('on');
  700.       }
  701.     });
  702.  
  703.     if ($('.bookshelf-row').is(':visible'))
  704.       window.scrollTo(0, 1);
  705.  
  706.   }).scroll(function (e) {
  707.  
  708.     e.preventDefault();
  709.  
  710.     if ($('.bookshelf-row').is(':visible'))
  711.       return;
  712.  
  713.     if ($.isTouch || $('.splash').height() >= $(window).height()) {
  714.  
  715.       if (!scrolling)
  716.         setCurrentHash();
  717.  
  718.     } else {
  719.  
  720.       var from = 100,
  721.         height = splashHeight(),
  722.         top = Math.min((height + from) / 2, $(window).scrollTop()),
  723.         progress = Math.max(0, Math.min(1, (top * 2 - from) / height));
  724.  
  725.       if (progress != window._scrollProgress) {
  726.  
  727.         if (top > from) {
  728.  
  729.           $('.splash').
  730.             addClass('no-transition').
  731.             css({ height: height - top + from });
  732.  
  733.           if (progress == 1) {
  734.             $('body').addClass('fixed');
  735.           } else {
  736.             $('body').removeClass('fixed');
  737.           }
  738.  
  739.         } else {
  740.           $('.splash').css({ height: '' });
  741.           $('body').removeClass('fixed');
  742.         }
  743.  
  744.         if (!scrolling)
  745.           setCurrentHash();
  746.  
  747.         var shadow = '0px -20px ' + (100 * progress) + 'px rgba(0,0,0,' + (0.5 * progress) + ')';
  748.  
  749.         $('.splash > .gradient').css({
  750.           '-webkit-box-shadow': shadow,
  751.           '-moz-box-shadow': shadow,
  752.           'box-shadow': shadow
  753.         });
  754.  
  755.         _scrollProgress = progress;
  756.       }
  757.     }
  758.  
  759.   }).resize(function (e) {
  760.  
  761.     if (!currentDemo)
  762.       return;
  763.  
  764.     var sample = samples[currentDemo];
  765.  
  766.     if (sample.flipbook.turn('zoom') != 1) {
  767.  
  768.       $('.splash').height($(window).height()).
  769.         zoom('resize');
  770.     }
  771.  
  772.   });
  773.  
  774.   $(document).keydown(function (e) {
  775.  
  776.     if (!currentDemo)
  777.       return;
  778.  
  779.     var sample = samples[currentDemo];
  780.  
  781.     switch (e.keyCode) {
  782.       case 37:
  783.  
  784.         if (sample.flipbook.turn('page') == 1)
  785.           bookshelf.close();
  786.         else
  787.           sample.flipbook.turn('previous');
  788.  
  789.         break;
  790.       case 39:
  791.  
  792.         sample.flipbook.turn('next');
  793.  
  794.         break;
  795.     }
  796.  
  797.   });
  798.  
  799. })(jQuery);
  800.  
  801. function clickElement(element, func) {
  802.   if ($.isTouch) {
  803.     element.bind($.mouseEvents.up, func);
  804.   } else {
  805.     element.click(func);
  806.   }
  807. }
  808.  
  809. function isIE() {
  810.   return navigator.userAgent.indexOf('MSIE') != -1;
  811. }
  812.  
  813. // Why this?  Chrome has the fault:
  814. // http://code.google.com/p/chromium/issues/detail?id=128488
  815. function isChrome() {
  816.   return navigator.userAgent.indexOf('Chrome') != -1;
  817. }
  818.  
  819.  
  820. function numberOfViews(book) {
  821.   return book.turn('pages') / 2 + 1;
  822. }
  823.  
  824. function getViewNumber(book, page) {
  825.   return parseInt((page || book.turn('page')) / 2 + 1, 10);
  826. }
  827.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement