function addLoadEvent(func) {
  if(typeof window.onload != 'function')
    window.onload = func;
  else {
    if(func) {
      var oldLoad = window.onload;

      window.onload = function() {
        if(oldLoad) oldLoad();
        func();
      }
    }
  }
}

var Links = {
  IsCapable: (document.getElementsByTagName),
  CookieId: 'MyLinkCookie',
  GetCookie: function() {
    var vals = document.cookie.split(';');

    for(var i = 0; i < vals.length; i++) {
      var val = vals[i].replace(/^\s+/, '');

      if(val.indexOf(Links.CookieId) == 0)
        return val.substring(Links.CookieId.length + 1, val.length);
    }

    return null;
  },
  SetCookie: function(bool) {
    var dat = new Date();
    dat.setTime(dat.getTime() + 63072000000); //2 years

    var val = Links.CookieId + '=' + bool;
    var exp = '; expires=' + dat.toGMTString();
    var path = '; path=/';

    document.cookie = val + exp + path;
  },
  RemoveCookie: function() {
    document.cookie = Links.CookieId + '=false; expires=Fri, 02-Jan-1970 00:00:00 GMT; path=/';
  },
  SetExternals: function(bool) {
    Links.SetCookie(bool);
    Links.Scan();
  },
  Scan: function() {
    var bool = Links.GetCookie();

    if(!Links.IsCapable || !bool)
      return;

    var links = document.getElementsByTagName('a');

    for(var i = 0; i < links.length; i++) {
      var href = links[i].getAttribute('href');

      if(href.substring(0, 5) == 'http:' || href.substring(0, 6) == 'https:') {
        var pageUrl = location.protocol + '//' + location.host;

        if(href.substring(0, pageUrl.length) != pageUrl) {
          if(bool == 'true') {
            links[i].onclick = function() {
              var winId = 'win' + Math.random().toString().substring(2);
              var newWin = window.open(this.href, winId);
              newWin.focus();
              return false;
            }
          }
          else
            links[i].onclick = null;

          links[i].removeAttribute('target');
        }
      }
    }    
  }
}

addLoadEvent(Links.Scan);