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');
            }
        };
    };
};


var has_js = function(){

    var old_class = document.getElementsByTagName('body')[0].className;
    var new_class = document.getElementsByTagName('body')[0].className = old_class + ' has_js';

};