var default_target = "_blank";
var window_props = 'menubar=yes,toolbar=yes,location=yes,scrollbars=yes,status=yes,resizable=1';
var win_list_names = new Array();
var win_list = new Array();


function
setmain(deftarget, defprops)
{
  if (deftarget) {
    default_target = deftarget;
  }
  if (defprops) {
    window_props = defprops;
  }
  var parenthash = parent.location.hash;
  if (parenthash == "") {
    var parentsearch = parent.location.search;
    if (parentsearch != "" && parentsearch.indexOf('=') < 0) {
      if (parentsearch.charAt(0) != '?') {
        parenthash = "#" + parentsearch;
      }
      else {
        parenthash = "#" + parentsearch.substring(1);
      }
    }
  }
  if (document.location.hash == "" && parenthash != "") {
    if (parenthash.charAt(0) != '#') {
      parenthash = "#" + parenthash.substring;
    }
    document.location.replace(document.location.href + parenthash);
  }
}


function
open_window(url, target)
{
  if (!target) {
    target = default_target;
  }
  var ver = parseInt(navigator.appVersion);
  if (ver <= 2) {
    // Support for old browsers
    window.open(url, target);
    return;
  }

  var width = (ver > 3 ?  screen.availWidth - 315 : 500);
  var height = (ver > 3 ? screen.availHeight - 55 : 400);
  if (width > 800) {
    width = 800;
  }
  if (height > 500) {
    height = 500;
  }
  var positionprops = 'left=300,top=50,screenX=300,screenY=50,width=' +
      width + ',height=' + height;

  var win_index = get_window_index(target);
  if (win_index >= 0) {
    if (win_list[win_index].closed) {
      win_list[win_index] = window.open(url, target,
              window_props + ',' + positionprops);
    }
    else {
      win_list[win_index] = window.open(url, target);
    }
  }
  else {
    win_index = win_list.length;
    win_list_names[win_index] = target;
    win_list[win_index] = window.open(url, target,
            window_props + ',' + positionprops);
  }
  window.setTimeout("win_list[" + win_index + "].focus()", 100);
}


function
get_window_index(target)
{
  for (i = 0; i < win_list.length; i++) {
    if (win_list_names[i] == target) {
      return i;
    }
  }
  return -1;
}
