select fragment on click
[wolnelektury.git] / wolnelektury / static / js / book.js
index 598ef2e..d6dfec9 100644 (file)
@@ -1,10 +1,14 @@
 $(function() {
     function scrollToAnchor(anchor) {
         if (anchor) {
-            var element = $('a[name="' + anchor.slice(1) + '"]');
+            var anchor_name = anchor.slice(1);
+            var element = $('a[name="' + anchor_name + '"]');
             if (element.length > 0) {
                 $.scrollTo(element, 500, {offset: {top: -50, left: 0}});
-                $(element).highlightFade('yellow');
+                foot_elem = $('#footnotes a[name="' + anchor_name + '"]');
+                if (foot_elem.length > 0) {
+                    $(element).parent().highlightFade('yellow');
+                }
                 window.location.hash = anchor;
             }
         }
@@ -15,6 +19,9 @@ $(function() {
     if ($('#toc li').length == 0) {
         $('#menu li a[href="#toc"]').remove();
     }
+    if ($('#nota_red').length == 0) {
+        $('#menu li a[href="#nota_red"]').remove();
+    }
 
     // On page load, scroll to anchor
     scrollToAnchor(window.location.hash)
@@ -33,4 +40,22 @@ $(function() {
         $(this).removeClass('selected');
         $($(this).attr('href')).slideUp('fast');
     });
+    
+
+    if (window.getSelection) {
+        $('.theme-begin').click(function() {
+            var selection = window.getSelection();
+            selection.removeAllRanges();
+            var range = document.createRange();
+
+            var e = $(".theme-end[fid='" + $(this).attr('fid') + "']")[0];
+
+            if (e) {
+                range.setStartAfter(this);
+                range.setEndBefore(e);
+                selection.addRange(range);
+            }
+        });
+    }
+
 });