    function toggleBibtex(e) {
      try {
        var target;
        if (window.event) {
          target = window.event.srcElement;
        } else if (e) {
          target = e.currentTarget;
        } 
        
        if (target) {     
          var parent;
          var textNode;
          
          if (target.nodeName == 'A') {
            parent = target.parentNode;
            textNode = target.childNodes[1].childNodes[0];
          } else if (target.nodeName == 'SPAN') {
            textNode = target.childNodes[0];
            var anchorTag = target.parentNode;
            if (anchorTag) {
              parent = anchorTag.parentNode;
            }
          }
          
          if (textNode && textNode.nodeName == '#text') {
            var currentArrow = textNode.nodeValue;
            if (currentArrow == '\u25BC') {
              textNode.nodeValue = '\u25B2';
            } else {
             textNode.nodeValue = '\u25BC';
            }
          }
          
          if (parent) {
            var bibtexNode = parent.nextElementSibling || parent.nextSibling;
            if (bibtexNode) {
              bibtexNode.style.display = (bibtexNode.style.display == "none") ? "block" : "none";
            }
          }
        }
      } catch (ex) {
      }        
      return false;
    }
    
