function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

function insertAfter(newElement,targetElement) {
  var parent = targetElement.parentNode;
  if (parent.lastChild == targetElement) {
    parent.appendChild(newElement);
  } else {
    parent.insertBefore(newElement,targetElement.nextSibling);
  }
}

function faviconize() { 
  if (!document.getElementsByTagName) return false;
  if (!document.createElement) return false;
  var links = document.getElementsByTagName("a");
  	for (var j=0; j<links.length; j++) {
  		var hoststring = /^http:/;
    if(links[j].childNodes.length==1 && links[j].childNodes[0].tagName!=null && (links[j].childNodes[0].tagName=='IMG' || links[j].childNodes[0].tagName=='img'))
       continue;
  		var hrefvalue = links[j].getAttribute("href",2);
        if(hrefvalue==null) hrefvalue='';
		if (hrefvalue.search(hoststring) != -1) {
			var domain = hrefvalue.match(/(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/);
			domain = RegExp.$2;
			var cue = document.createElement("img");
			cue.className = "faviconimg";
			var cuesrc = "http://"+domain+"/favicon.ico";
			cue.setAttribute("src",cuesrc);
			cue.onerror = function () {
				this.src = rootDir+"/fo/images/icons/external.gif";
				}
			insertAfter(cue,links[j]);
		}
       //} catch(e){}
	}
}
addLoadEvent(faviconize);