Added some profiling sections for expensive functions
[mediawiki.git] / skins / common / rightclickedit.js
blob83d552a2c6497a4d21296eb491d994bd10fd18c6
1 function setupRightClickEdit() {
2         if (document.getElementsByTagName) {
3                 var spans = document.getElementsByTagName('span');
4                 for (var i = 0; i < spans.length; i++) {
5                         var el = spans[i];
6                         if(el.className == 'editsection') {
7                                 addRightClickEditHandler(el);
8                         }
9                 }
10         }
13 function addRightClickEditHandler(el) {
14         for (var i = 0; i < el.childNodes.length; i++) {
15                 var link = el.childNodes[i];
16                 if (link.nodeType == 1 && link.nodeName.toLowerCase() == 'a') {
17                         var editHref = link.getAttribute('href');
18                         // find the enclosing (parent) header
19                         var prev = el.parentNode;
20                         if (prev && prev.nodeType == 1 &&
21                         prev.nodeName.match(/^[Hh][1-6]$/)) {
22                                 prev.oncontextmenu = function(e) {
23                                         if (!e) { e = window.event; }
24                                         // e is now the event in all browsers
25                                         var targ;
26                                         if (e.target) { targ = e.target; }
27                                         else if (e.srcElement) { targ = e.srcElement; }
28                                         if (targ.nodeType == 3) { // defeat Safari bug
29                                                 targ = targ.parentNode;
30                                         }
31                                         // targ is now the target element
33                                         // We don't want to deprive the noble reader of a context menu
34                                         // for the section edit link, do we?  (Might want to extend this
35                                         // to all <a>'s?)
36                                         if (targ.nodeName.toLowerCase() != 'a'
37                                         || targ.parentNode.className != 'editsection') {
38                                                 document.location = editHref;
39                                                 return false;
40                                         }
41                                         return true;
42                                 };
43                         }
44                 }
45         }
48 hookEvent("load", setupRightClickEdit);