diff options
Diffstat (limited to 'lib/scripts/script.js')
-rw-r--r-- | lib/scripts/script.js | 41 |
1 files changed, 29 insertions, 12 deletions
diff --git a/lib/scripts/script.js b/lib/scripts/script.js index ccba82144..b611f980a 100644 --- a/lib/scripts/script.js +++ b/lib/scripts/script.js @@ -538,24 +538,41 @@ addInitEvent(function(){ var break_classes = new RegExp('secedit|toc|page'); var btns = getElementsByClass('btn_secedit',document,'form'); for(var i=0; i<btns.length; i++){ - addEvent(btns[i],'mouseover',function(e){ - var tgt = e.target; - if(tgt.form) tgt = tgt.form; - tgt = tgt.parentNode.previousSibling; - if(tgt.nodeName != "DIV") tgt = tgt.previousSibling; - while(!break_classes.test(tgt.className)) { - tgt.className += ' section_highlight'; - if (tgt.tagName == 'H1') break; - tgt = (tgt.previousSibling != null) ? tgt.previousSibling : tgt.parentNode; - } - }); + switch(btns[i].parentNode.className.match(/editbutton_(\w+)/)[1]) { + case 'plain': + addEvent(btns[i],'mouseover',function(e){ + var tgt = e.target.form.parentNode; + do { + tgt = tgt.previousSibling; + } while (tgt && !tgt.tagName); + if (!tgt) return; + if(tgt.nodeName != "DIV") tgt = tgt.previousSibling; + while(!break_classes.test(tgt.className)) { + tgt.className += ' section_highlight'; + if (tgt.tagName == 'H1') break; + tgt = (tgt.previousSibling != null) ? tgt.previousSibling : tgt.parentNode; + } + }); + break; + + case 'table': + addEvent(btns[i],'mouseover',function(e){ + var tgt = e.target.form.parentNode; + do { + tgt = tgt.previousSibling; + } while (tgt && !tgt.tagName); + if (tgt && tgt.tagName === 'TABLE') { + tgt.className += ' section_highlight'; + } + }); + break; + } addEvent(btns[i],'mouseout',function(e){ var secs = getElementsByClass('section_highlight'); for(var j=0; j<secs.length; j++){ secs[j].className = secs[j].className.replace(/section_highlight/,''); } - var secs = getElementsByClass('section_highlight'); }); } }); |