var ss = {
  fixAllLinks: function() {
    var allLinks = document.getElementsByTagName('a');
    for (var i=0;i<allLinks.length;i++) {
      var lnk = allLinks[i];
//	  alert(lnk.innerHTML +" ("+lnk.pathname +") = "+location.pathname);
//      if ((lnk.href && lnk.href.indexOf('#') != -1) && (lnk.pathname == location.pathname || lnk.pathname == '') )/// && 
      if ((lnk.href && lnk.href.indexOf('#') != -1))/// && 
		{
		  var fpth = lnk.protocol+'://'+lnk.hostname;
		  if(lnk.port && lnk.port != 80) {
			  fpth = fpth + ':' + lnk.port;
		  }
		  fpth = fpth+'/';
		  var hashPos = lnk.href.indexOf('#')+1;
		  if(fpth.length == hashPos) {
			if(location.href.indexOf('#') != -1) {
				lnk.href = location.href.substring(0,location.href.indexOf('#')) + lnk.href.substring(lnk.href.indexOf('#'));
			} else {
				lnk.href = location.href + lnk.href.substring(lnk.href.indexOf('#'));
			}
		  }
		}
    }
  },
  addEvent: function(elm, evType, fn, useCapture) {
    // addEvent and removeEvent
    // cross-browser event handling for IE5+,  NS6 and Mozilla
    // By Scott Andrew
    if (elm.addEventListener){
      elm.addEventListener(evType, fn, useCapture);
      return true;
    } else if (elm.attachEvent){
      var r = elm.attachEvent("on"+evType, fn);
      return r;
    } else {
      alert("Handler could not be removed");
    }
  } 
}

ss.STEPS = 25;

ss.addEvent(window,"load",ss.fixAllLinks);
