add: } else {  var href; linkNode = target; while (linkNode) { if (linkNode.nodeType == Node.ELEMENT_NODE) { href = linkNode.getAttributeNS("http: break; } linkNode = linkNode.parentNode; } if (href && href != "") { href = makeURLAbsolute(target.baseURI,href); handleLinkClick(event, href); return true; } 
context:   function contentAreaClick(event)   {    var target = event.target;    var linkNode;    var local_name = target.localName;    if (local_name) {      local_name = local_name.toLowerCase();    }    switch (local_name) {      case "a":        linkNode = target;        break;      case "area":        if (target.href)           linkNode = target;        break;      case "input":        if ((event.target.type.toLowerCase() == "text" || event.target.type == "") // text field            && event.detail == 2 // double click            && event.button == 0 // left mouse button            && event.target.value.length == 0) { // no text has been entered          prefillTextBox(target); // prefill the empty text field if possible        }        break;      default:        linkNode = findParentNode(event.originalTarget, "a");        break;    }    if (linkNode) {      handleLinkClick(event, linkNode.href);      return true;    }    if (pref && event.button == 1 &&        !findParentNode(event.originalTarget, "scrollbar") &&        pref.getBoolPref("middlemouse.contentLoadURL")) {      if (middleMousePaste()) {        event.preventBubble();      }    }    return true;  }
meta: 9421	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/9421/61913ac950284f3e81884275738c5333d710553c/contentAreaClick.js/buggy/xpfe/communicator/resources/content/contentAreaClick.js