
function internScrollInit() {
  links = document.getElementsByTagName("a");
  n = links.length;
  for (var i = 0; i < n; i++) {
    links[i].onclick = scrollIntern;
  }
}

function scrollIntern() {
  var ankername = getAnkerFromUrl(this.href);
  if(ankername != null) {
    var currentFilename = getFilenameFromUrl(window.location.href);    
    var newFilename = getFilenameFromUrl(this.href);
    if(newFilename == currentFilename) {
      jumpToElement('content',ankername);
      return false;
    }
  }
  return true;
}

function getFilenameFromUrl(url) {
  var paramPos = url.indexOf('?');
  var hashPos = url.lastIndexOf('#');
  if(paramPos > 1)
    url = url.substring(0,paramPos);
  else if(hashPos > 1)
    url = url.substring(0,hashPos);
  var lastSlashPos = url.lastIndexOf('/');
  var file = url.substring(lastSlashPos+1,url.length);
  var dotPos = file.lastIndexOf('.');
  return file.substring(0,dotPos);
}

function getAnkerFromUrl(url) {
  var hashPos = url.lastIndexOf('#');
  var returnValue = null;
  if(hashPos > 1) { 
    returnValue = url.substring(hashPos+1,url.length);
  }
  return returnValue;
}

function jumpToElement(curContainer, curElement){
  element = document.getElementById(curElement);
  container = document.getElementById(curContainer);

  var x = element.x ? element.x : element.offsetLeft,
      y = element.y ? element.y : element.offsetTop;
  container.scrollLeft=x-(document.all?0:container.offsetLeft );
  container.scrollTop=y-(document.all?0:container.offsetTop);
  return element;
}
