function Models() {

  this.request = null;
  this.target = null;
  this.sAll = null;

  this.load = function(markID, target, sAll, selected) {
    request = getXMLHTTPObject();
    if (request != null) {
      this.request = request;
      this.target = target;
      this.sAll = sAll;
      this.selected = selected;
      var url = "ajax.php?request=models&markID=" + markID + "&sAll=" + sAll;

      request.onreadystatechange = this.onstatechanged;
      try {
        request.open("GET", url, true);
        request.send(null);
      } catch(e) {
      }
    }
  }
  
  this.useradsload = function(markID, target, sAll, selected) {
    request = getXMLHTTPObject();
    if (request != null) {
      this.request = request;
      this.target = target;
      this.sAll = sAll;
      this.selected = selected;
      var url = "ajax.php?request=useradsmodels&markID=" + markID + "&sAll=" + sAll;

      request.onreadystatechange = this.onstatechanged;
      try {
        request.open("GET", url, true);
        request.send(null);
      } catch(e) {
      }
    }
  }
  
  _self = this;
  this.onstatechanged = function() {

    if ((_self.request.readyState == 4 || _self.request.readyState == "complete")) {
      if (_self.request.responseXML) {
        var target = document.getElementById(_self.target);
        var xmlDoc = _self.request.responseXML.documentElement;
        xmodels = xmlDoc.getElementsByTagName("model");

        if (target && xmodels) {
          target.options.length = 0;

          if (xmodels.length > 0) {
            for(i = 0; i < xmodels.length; i++) {
              ids = xmodels[i].getElementsByTagName("id");
              names = xmodels[i].getElementsByTagName("name");

              var option = new Option(names[0].childNodes[0].nodeValue, ids[0].childNodes[0].nodeValue);

              target.options[i] = option;
              if (_self.selected == ids[0].childNodes[0].nodeValue) {
                target.options[i].selected=true;
              }
            }
          }
        }
      }

      _self.target = null;
      _self.request = null;
    }
  }

}


function getXMLHTTPObject() {
  var object = null;

  try {
    object = new XMLHttpRequest();

  } catch (e) {
    try {
      object = new ActiveXObject("Msxml2.XMLHTTP");

    } catch (e) {
      object = new ActiveXObject("Microsoft.XMLHTTP");
    }
  }

  return object;
}
