--- FootNote.py.orig    2014-03-13 13:52:37.726570158 +0000
+++ FootNote.py 2014-03-13 13:50:40.165168131 +0000
@@ -50,7 +50,7 @@

         return "%s%s%s%s%s" % (
             formatter.sup(1),
-            formatter.anchorlink(1, fwdlink_id, id=backlink_id),
+            formatter.anchorlink(1, fwdlink_id, id=backlink_id, onclick="return gotoFootnote('{0}')".format(fwdlink_id)),
             formatter.text(str(showidx+1)),
             formatter.anchorlink(0),
             formatter.sup(0), )
@@ -62,7 +62,21 @@
 def emit_footnotes(request, formatter):
     # emit collected footnotes
     if request.footnotes:
-        result = []
+        result = ['''<script type="text/javascript">
+function gotoFootnote(name) {
+  var search_term=new RegExp(name+'$');
+  all_a=document.getElementsByTagName('a');
+  for(var i=0; i<=all_a.length; i++) {
+    cur_a=all_a[i];
+    if (cur_a == undefined) continue;
+    if (cur_a.id != '' && cur_a.id.match(search_term) != null) {
+      cur_a.scrollIntoView(true);
+      break;
+    }
+  }
+  return false;
+}
+</script>''']

         result.append(formatter.div(1, css_class='footnotes'))

@@ -90,7 +104,8 @@
                 item = formatter.anchorlink(1, backlink_id)
                 item += formatter.text(str(subidx+1))
                 item += formatter.anchorlink(0)
-                items.append(item)
+                #items.append(item)
+                items.append('''<a href="#" onclick="return gotoFootnote('{0}')">{1}</a>'''.format(backlink_id, str(subidx+1)))
                 subidx += 1

             result.append(formatter.text(" ("))
