diff options
Diffstat (limited to 'org/madore/damlengine/included.js')
-rw-r--r-- | org/madore/damlengine/included.js | 109 |
1 files changed, 0 insertions, 109 deletions
diff --git a/org/madore/damlengine/included.js b/org/madore/damlengine/included.js deleted file mode 100644 index 1bf6db7..0000000 --- a/org/madore/damlengine/included.js +++ /dev/null @@ -1,109 +0,0 @@ -"use strict"; - -var textNodeType; - -function textContent(n) { - if ( n.nodeType == textNodeType ) { - return n.data; - } else { - var children = n.childNodes; - var t = ""; - for ( var i=0 ; i<children.length ; i++ ) { - t = t.concat(textContent(children.item(i))); - } - return t; - } -} - -function despam() { - // MSIE seems to barf... Deactivate for now - if ( (/MSIE *[1-6]\./).test(navigator.userAgent) ) - return; - // Now replace as appropriate. - var elts = document.getElementsByTagName("span"); - for ( var i=0 ; i<elts.length ; i++ ) { - var elt = elts.item(i); - if ( elt.className == "replace-commercial-at" ) { - elt.parentNode.replaceChild(document.createTextNode("@"),elt); - i--; // Semi-bugware - } else if ( elt.className == "replace-full-stop" ) { - elt.parentNode.replaceChild(document.createTextNode("."),elt); - i--; // Semi-bugware - } - } - // Merge adjacent text nodes. - try { - document.normalize(); // Your DOM is BROKEN! - } catch (exn) { - document.documentElement.normalize(); - } - // Next, process all <a> elements having class="despammed-address". - elts = document.getElementsByTagName("a"); - for ( var i=0 ; i<elts.length ; i++ ) { - var elt = elts.item(i); - if ( elt.className == "despammed-address" ) { - var addr = "mailto:".concat(textContent(elt)); - elt.setAttribute("href",addr); // (abstract) - elt.href = addr; // (semantic) - } - } -} - -function permuteWord(s) { - if ( s.length <= 3 ) - return s; - var tab = s.split(""); - var n = tab.length - 1; - for ( var i=1 ; i<n ; i++ ) { - var j = i + Math.floor(Math.random()*(n-i)); - if ( j == i ) - continue; - var tmp = tab[j]; - tab[j] = tab[i]; - tab[i] = tmp; - } - return tab.join(""); -} - -function permuteString(s) { - return s.replace(/[A-Za-zÀ-ÿ]+/g, permuteWord); -} - -function permuteDoc(doc) { - var body = doc.body; - var walker = doc.createTreeWalker(body, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT, null, false); - var node = walker.nextNode(); - while ( node ) { - if ( node.nodeType == Node.TEXT_NODE ) { - var thisnode = node; - node = walker.nextNode(); - var str = permuteString(thisnode.nodeValue); - thisnode.parentNode.replaceChild(doc.createTextNode(str), thisnode); - } else if ( node.nodeType == Node.ELEMENT_NODE - && ( node.localName == "pre" - || node.localName == "code" - || node.localName == "script" - || node.localName == "style" ) ) { - do { - node = walker.nextSibling(); - if ( node ) - break; - node = walker.parentNode(); - if ( ! node ) - break; - } while ( true ); - } else - node = walker.nextNode(); - } -} - -function onLoad() { - // Start with some bugware... - try { - textNodeType = Node.TEXT_NODE; - } catch (exn) { // Your DOM is BROKEN! - textNodeType = 3; - } - // Now despam email adresses. - despam(); -} |