var __rootDir__ = false;
__rootDir__ = "";function handleString () {var str = arguments[0];;
 
str = str.replace(/%/g, '%25');
  str = str.replace(/\$/g, '%24');
  str = str.replace(/&/g, '%26');
  str = str.replace(/\+/g, '%2B');
  str = str.replace(/,/g, '%2C');
  str = str.replace(/:/g, '%3A');
  str = str.replace(/;/g, '%3B');
  str = str.replace(/\?/g, '%3F');
  str = str.replace(/@/g, '%40');
  str = str.replace(/=/g, '%3D');
 return '"' + str.replace(/"/g, '\\"') + '"';}
;function breakListDown () {var lst = arguments[0];;
 
var accum = "(";
  for (var i = 0 ; i < lst.length ; i++) {
    accum = accum + handleArg (lst[i]) + " ";
  }
  return accum + ")";}
;function handleArg () {var arg = arguments[0];;
 
if (arg === true) {
    return "t";
  } else if (arg === false) {
    return "nil";
  } else if (typeof(arg) == "string") {
    return handleString(arg);
  } else if (typeof(arg) == "object" && arg.length) {
    return breakListDown (arg);
  } else {
    return arg;
  }}
;function handleReturningArg () {var arg = arguments[0];;
 
if (arg.attributes &&
    arg.attributes[0]) {
    if (arg.attributes[0].nodeValue == 'string') {
      if ((arg.childNodes.length == 0) ||
          !arg.childNodes[0].nodeValue) {
        return "";
      }
      return arg.childNodes[0].nodeValue;
    } else if (arg.attributes[0].nodeValue == 'list') {
      if(arg.childNodes.length == 0) {
        return false;
      } else {
        var retn = new Array();
        for (var i = 0, j = 0 ; i < arg.childNodes.length ; i ++) {
          if (arg.childNodes[i].nodeName == "ARG") {
            retn[j] = handleReturningArg (arg.childNodes[i]);
            j++;
          }
        }
        return retn;
      }
    } else {
      return window.eval (arg.childNodes[0].nodeValue);
    }
  } else {
    return window.eval (arg.childNodes[0].nodeValue);
  }}
;function makeServerCall () {var callback = arguments[0];;
var serverFunc = arguments[1];;
var serverArgs = arguments[2];;
 

  var xmlHttp;
  try { xmlHttp=new XMLHttpRequest(); } catch (e) {
    try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {
      try { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {
        alert("Your browser does not support AJAX!");
        return false;
      }
    }
  }
  xmlHttp.onreadystatechange = function() {
    if(xmlHttp.readyState == 4 && callback) {
      var arglist = new Array();
      var serverArgList = xmlHttp.responseXML.documentElement.childNodes;
      for (var i = 0, j = 0; i < serverArgList.length ; i++) {
        if (serverArgList[i].nodeName == "ARG") {
          arglist[j] = handleReturningArg(serverArgList[i]);
          j++;
        }
      }
      callback.apply(window, arglist);
    }
  }
  var serverget = __rootDir__ + "/servercall?";
  var params = "func=" + serverFunc;
  for (var i = 0 ; i < serverArgs.length ; i++) {
    serverArg = handleArg(serverArgs[i]);
    params = params +  "&" + "arg" + "=" + serverArg;
  }

  xmlHttp.open("POST",serverget,true);
  xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  xmlHttp.setRequestHeader("Content-length", params.length);
  xmlHttp.setRequestHeader("Connection", "close");
  xmlHttp.send(params);}
;