﻿var spamSpanMainClass = 'mspan';
var spamSpanUserClass = 'uspan';
var spamSpanDomainClass = 'dspan';
var spamSpanAnchorTextClass = 'tspan';

addEvent(window, 'load', spamSpan);

function spamSpan() {
    var allSpamSpans = getElementsByClass(spamSpanMainClass, document, 'span');
    for (var i = 0; i < allSpamSpans.length; i++) {
        var user = getSpanValue(spamSpanUserClass, allSpamSpans[i]);
        var domain = getSpanValue(spamSpanDomainClass, allSpamSpans[i]);
        var anchorText = getSpanValue(spamSpanAnchorTextClass, allSpamSpans[i]);
        var at = String.fromCharCode(32 * 2);
        var email = cleanSpan(user) + at + cleanSpan(domain);
        var anchorTagText = document.createTextNode(anchorText ? anchorText : email);
        var mto = String.fromCharCode(109, 97, 105, 108, 116, 111, 58);
        var anchorTag = document.createElement('a');
        anchorTag.className = spamSpanMainClass;
        anchorTag.setAttribute('href', mto + email);
        anchorTag.appendChild(anchorTagText);
        allSpamSpans[i].parentNode.replaceChild(anchorTag, allSpamSpans[i]);
    }
}

function getElementsByClass(searchClass, scope, tag) {
    var classElements = new Array();
    if (scope == null) node = document;
    if (tag == null) tag = '*';
    var els = scope.getElementsByTagName(tag);
    var elsLen = els.length;
    var pattern = new RegExp("(^|\s)" + searchClass + "(\s|$)");
    for (var i = 0, j = 0; i < elsLen; i++) {
        if (pattern.test(els[i].className)) {
            classElements[j] = els[i];
            j++;
        }
    }
    return classElements;
}

function getSpanValue(searchClass, scope) {
    var span = getElementsByClass(searchClass, scope, 'span');
    if (span[0]) return span[0].firstChild.nodeValue;
    else return false;
}

function cleanSpan(string) {
    string = string.replace(/[\[\(\{]?[dD][oO0][tT][\}\)\]]?/g, '.');
    string = string.replace(/\s+/g, '');
    return string;
}

function addEvent(obj, type, fn) {
    if (obj.addEventListener)
        obj.addEventListener(type, fn, false);
    else if (obj.attachEvent) {
        obj['e' + type + fn] = fn;
        obj[type + fn] = function () { obj['e' + type + fn](window.event); }
        obj.attachEvent('on' + type, obj[type + fn]);
    }
}

function contactlink() {
    self.location ="mailto:support@morpheustrading.com";
}
