home *** CD-ROM | disk | FTP | other *** search
/ Chip 2011 November / CHIP_2011_11.iso / Programy / Narzedzia / Calibre / calibre-0.8.18.msi / file_564 < prev    next >
Text File  |  2011-01-06  |  1KB  |  50 lines

  1. /*
  2.  * bookmarks management
  3.  * Copyright 2008 Kovid Goyal
  4.  * License: GNU GPL v3
  5.  */
  6.  
  7. function selector_in_parent(elem) {
  8.     var num = elem.prevAll().length;
  9.     var sel = " > *:eq("+num+") ";
  10.     return sel;
  11. }
  12.  
  13. function selector(elem) {
  14.     var obj = elem;
  15.     var sel = "";
  16.     while (obj[0] != document) {
  17.         sel = selector_in_parent(obj) + sel;
  18.         obj = obj.parent();
  19.     }
  20.     if (sel.length > 2  && sel.charAt(1) == ">") sel = sel.substring(2);
  21.     return sel;
  22. }
  23.  
  24. function calculate_bookmark(y, node) {
  25.     var elem = $(node);
  26.     var sel = selector(elem);
  27.     var ratio = (y - elem.offset().top)/elem.height();
  28.     if (ratio > 1) { ratio = 1; }
  29.     if (ratio < 0) { ratio = 0; }
  30.     sel = sel + "|" + ratio;
  31.     return sel;
  32. }
  33.  
  34. function animated_scrolling_done() {
  35.     window.py_bridge.animated_scroll_done();
  36. }
  37.  
  38. function scroll_to_bookmark(bookmark) {
  39.     bm = bookmark.split("|");
  40.     var ratio = 0.7 * parseFloat(bm[1]);
  41.     $.scrollTo($(bm[0]), 1000,
  42.         {
  43.             over:ratio,
  44.             axis: 'y', // Do not scroll in the x direction
  45.             onAfter:function(){window.py_bridge.animated_scroll_done()}
  46.         }
  47.     );
  48. }
  49.  
  50.