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 removeEvent( obj, type, fn )
{
     if (obj.removeEventListener)
          obj.removeEventListener( type, fn, false );
     else if (obj.detachEvent)
     {
          obj.detachEvent( "on"+type, obj[type+fn] );
          obj[type+fn] = null;
          obj["e"+type+fn] = null;
     }
}

function openInNewWindow() {
    var newWindow = window.open(this.getAttribute('href'), '_blank');
    newWindow.focus();
    return false;
}

function getNewWindowLinks() {
     if (document.getElementById && document.createElement && document.appendChild) {
          var strNewWindowAlert = "";
          var links = document.getElementsByTagName('a');
          var objWarningText;
          var strWarningText;
          var link;
          for (var i = 0; i < links.length; i++) {
               link = links[i];
               // Find all links with a class name of "non-html"
               if (/\bexternal\b/.exec(link.className)) {
                    objWarningText = document.createElement("em");
                    strWarningText = document.createTextNode(strNewWindowAlert);
                    objWarningText.appendChild(strWarningText);
                    link.appendChild(objWarningText);
                    link.onclick = openInNewWindow;
               }
          }
          objWarningText = null;
     }
}

addEvent(window, 'load', getNewWindowLinks);