function _jso()
{
  this.os = new Array();
  this.evaluateObjects = true;

  this.getContent = function()
  {
    return this.get("_content",null,null);
  }
  this.get = function(name,varnm,jsdbol)
  {
    var o = null;
    var t = "";
    var args = null;
    
    if(arguments.length != 3) {
      alert("jso.get :: incorrect number of arguments:\n  \""+name+"\" :: \""+varnm+"\" :: \""+jsdbol+"\"\n\nCalling Function\n------------------------------------------------------------\n"+arguments.callee.caller);
      return null;
    }

    if(this.evaluateObjects){
      for(var i=0;i<this.os.length;i++){
        if(this.os[i][0] == name){
          o = eval(this.os[i][1]);
          if(o._init_)  o._init_(this,t,varnm);
          else if(o._linit_) o._linit_(this);
          return o;
        }
      }
    }

    try {
      o = eval("new "+name+"();");
      if(o._init_)  o._init_(this,"",varnm);
      else if(o._linit_) o._linit_(this);
      return o;
    }
    catch(e) {
      var x = null;
      if (window.XMLHttpRequest) x = new XMLHttpRequest();
      else if (window.ActiveXObject) x = new ActiveXObject("Microsoft.XMLHTTP");
      if(x != null){
        if(jsdbol){
          args = "jsdbol="+jsdbol;
        }
        x.open ("POST", name, false);
        x.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        x.send(args);
        if (x.readyState == 4){
          if (x.status == 200) {
            t = x.responseText;
            if(this.evaluateObjects) this.os.push([name,t]);
            if(document.getElementById("_jsdbo_output_")){
              if(t.split(" ").length != 3){
                document.getElementById("_jsdbo_output_").innerHTML = "<pre style='background-color:#333366;padding:10px;'>"+t.replace(/</gi,"&lt;")+"</pre>" + document.getElementById("_jsdbo_output_").innerHTML;
              }
            }

            if(this.evaluateObjects){
              try {
                o = eval(t);
                if(o._init_)  o._init_(this,t,varnm);
                else if(o._linit_) o._linit_(this);
                return o;
              }
              catch(e){
                alert(e+"\n"+t);
                return null;
              }
            }
            return t;
          }
          else {
            document.write(x.responseText);
          }
        }
      }
    }
    return null;
  }
}

