function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
};
var objBookmarker = new Object();
objBookmarker.doBookmark = function(){ 
      var title=document.getElementsByTagName("title")[0].text; 
      if(window.sidebar) window.sidebar.addPanel(title,location.href,""); 
      else if(window.external) window.external.AddFavorite(location.href,title); 

      // optional, but won't fire due to support checks at start of object 
      else alert("Please bookmark this site manually using your browser."); 
};
objBookmarker.init = function(){ 
      // support 
      if(!window.sidebar && !window.external) return; 
      if(!document.getElementById || !document.getElementsByTagName || !document.createTextNode) return; 

      // find container element, e.g. 
      var container=document.getElementById("bookmark"); 
      if(!container) return; 

      // add link 
      var aBookmark=document.createElement("a"); 
      aBookmark.appendChild(document.createTextNode("Bookmark This Page")); 
      aBookmark.setAttribute("href","javascript:;"); 
      aBookmark.onclick = function(e){ 
         objBookmarker.doBookmark(); 

         // prevent default 
         if(typeof e == "undefined") e = window.event; 
         if (window.event) { 
            window.event.cancelBubble = true; 
            window.event.returnValue = false; 
         } 
         if (e && e.preventDefault && e.stopPropagation) { 
            e.preventDefault(); 
            e.stopPropagation(); 
         } 
      } 
      if(aBookmark.captureEvents) aBookmark.captureEvents(Event.CLICK); 
      container.appendChild(aBookmark); 
};
addLoadEvent(objBookmarker.init);

