function redir_frames(){
  var query_str = document.URL.substr(document.URL.indexOf('?')+1);
  var query_arr = query_str.split(new RegExp('\&|\&amp\;'));

  for (var i = 0; i < query_arr.length; i++){
    var key_value_pair = query_arr[i].split('=');
  
    if (key_value_pair[0] == 'id'){
      var id = key_value_pair[1];
      break;
    }
  }

  if (id){
    var current_node = self.TOC.document.getElementById('a'+id);

    while (!current_node.nodeName.match(/^td$/i)){
      if (current_node.getAttribute('id') &&
        current_node.getAttribute('id').match(/^\w\d{4}$/)
      ){
        self.TOC.exp(current_node.getAttribute('id').slice(1)); 
        self.TOC.window.scrollTo(0, find_y_pos(current_node));
      }
  
      current_node = current_node.parentNode;
    }

    self.BODY.location.href=id+'.htm';
  }
}

function find_y_pos(obj){
  var curtop = 0;

  if (obj.offsetParent){
    do {
      curtop += obj.offsetTop;
    } while (obj = obj.offsetParent);
  }

  return curtop;
}

