function ajaxXml(name,url) {
  this.name = name;
  this.url = url;
  this.asynchron = false;
  this.afterLoad = false;
  this.beforeLoad = false;
  this.rowIndex = 0;
}

/*
*  Odešle požadavek na zaslání XML dat
*/
ajaxXml.prototype.load = function(param) {

  this.error = false;
  this.arr = false;

  this.xmlhttp = getAjaxObject();

  if (this.asynchron) {
    var sender = this;
    this.xmlhttp.onreadystatechange = function()
            {
              if (sender.xmlhttp.readyState == 4) {
                if (sender.xmlhttp.status == 200) {
                  if (!sender._isAjaxError()) {
                    sender._getData(sender);
                  }
                  if (sender.afterLoad != false) sender.afterLoad(sender);
                }
                else {
                  alert("Chyba při načítání XML dat:" + sender.xmlhttp.statusText);
                }
              }
            }
  }

  if (this.beforeLoad != false) this.beforeLoad(this);
  url = this.url + "?get=" + this.name + "&" + param;

  //alert(url);
  this.xmlhttp.open("GET",url,this.asynchron);
  this.xmlhttp.send(null);

  if (this.asynchron) this.setLoadingVisible(true);
  else {

    if (this._isAjaxError()) alert(this.error);
    else this._getData(this);
  }
}

/*
*  Kontrola jestli ajaxem vrácený XML neobshuje chybové hlášení.
*/
ajaxXml.prototype._isAjaxError = function() {
  // -- pokud je v XML tag s názvem "error", tak došlo na serveru k chybě
  if (this.xmlhttp.responseText.indexOf("<error message") > 0) {
    if (this.browserType() == 'MSIE') {
      var err = this.xmlhttp.responseXML.firstChild.nextSibling.getElementsByTagName("error").item(0);
    }
    else {
      var err = this.xmlhttp.responseXML.firstChild.getElementsByTagName("error").item(0);
    }
    // -- chybové hlášení odeslané ze serveru
    this.error = err.getAttribute("message");
    return true;
  }
  return false;
}

/*
*  Zjištění typu prohlížeče
*/
ajaxXml.prototype.browserType = function() {
  if (navigator.appVersion.indexOf("MSIE")!=-1){
    temp=navigator.appVersion.split("MSIE")
    if (parseFloat(temp[1]) >= 5.5) return 'MSIE';
  }
  return "Mozilla";
}

/*
*  Inicializuje XML objekt obsahující přijatá data
*/
ajaxXml.prototype._getData = function(sender) {
  if (sender.browserType() == 'MSIE') {
    sender.data = sender.xmlhttp.responseXML.firstChild.nextSibling.nextSibling.getElementsByTagName("data").item(0).childNodes;
  }
  else {
    sender.data = sender.xmlhttp.responseXML.firstChild.nextSibling.getElementsByTagName("data").item(0).childNodes;
  }
}

/*
*  Vrátí XML objekt obsahující dodatečné info.
*/
ajaxXml.prototype.getInfo = function() {
  if (this.browserType() == 'MSIE') {
    return this.xmlhttp.responseXML.firstChild.nextSibling.getElementsByTagName("info").item(0).childNodes;
  }
  else {
    return this.xmlhttp.responseXML.firstChild.getElementsByTagName("info").item(0).childNodes;
  }
}

/*
*  Vrátí XML objekt obsahující informace o polích dat
*/
ajaxXml.prototype.getFields = function() {
  if (this.browserType() == 'MSIE') {
    return this.xmlhttp.responseXML.firstChild.nextSibling.getElementsByTagName("meta").item(0).childNodes;
  }
  else {
    return this.xmlhttp.responseXML.firstChild.getElementsByTagName("meta").item(0).childNodes;
  }
}

ajaxXml.prototype.getRow = function(idx) {
  return this.data.item(idx);
}

ajaxXml.prototype.getFieldValue = function(fieldName) {
  var r = this.getRow(this.rowIndex);
  return r.getAttribute(fieldName);
}

ajaxXml.prototype.getFieldValueAsDate = function(fieldName) {
  var v = this.getFieldValue(fieldName).split(' ')[0].split('-');
  s = '';
  for(var i=0; i<v.length; i++) s = '.' + v[i].toString() + s;
  return s.substr(1);
}