var externalize = function(container) {
    if(container == null) {
        var container = document;
    }
    if (!document.getElementsByTagName('a')[0]) return;

    var ls = container.getElementsByTagName('a');
    var lsl = ls.length;
    var tld;
    while (lsl--) {
        var l = ls[lsl];
        if (l.getAttribute('href') && l.getAttribute('href').match(/^(http|https|mailto|ftp)/)) {
            tld = l.getAttribute('href').replace(/^.*?:\/\/.*?\.(.*?)($|\/.*$)/, "$1");
            if (location.hostname.indexOf(tld) == -1) {
                l.setAttribute('target','_blank');
                l.className = 'external';
            }
        };
    };
};

var elementHasClassName = function(element, className) {
    var has_classname = false;
    var all_classes = element.className.split(' ');
    var il = all_classes.length;
    for(var i = 0; i<il; i++) {
        var current_class = all_classes[i];
        if(current_class.indexOf(className) != -1) {
            has_classname = true;
        }
    }
    return has_classname;
};
