var http_request;
var http_request2;
var obalka = "obalka";
var transparent = "transparent";
var notransparent = "notransparent";
var popupbox = "popupbox";
var oddelovac = "FMFMFMFMFMFMFMFMFM";
var AJAXupdate = "AJAXupdate";
var AJAXindex = "AJAXindex";
var AJAXsuffix = "AJAXsuffix";
var temp ="";
var getchar = "znak";
var gps = "gps";
var adress = "address";
var country = "country";
var maxSize = "2000000";

function activate(id, urlNow, urlOposite, labelNow, labelOposite, me){
  http_request = false;
  http_request=GetXmlHttpObject();
	if (http_request==null){
	 alert ("Browser does not support HTTP Request");
	 return false;
	}

  var url=urlNow+id;
	url=url+"&sid="+Math.random();
  http_request.onreadystatechange = function(){
    activatelistener(id, urlNow, urlOposite, labelNow, labelOposite, me);
  };
	http_request.open("GET",url,true);
  http_request.setRequestHeader("Content-Type","text/html; charset=UTF-8"); 
  http_request.setRequestHeader("Connection", "close");
  http_request.send(null);
}

function score(url, update, classes, updatetext, urltext){
  http_request = false;
  http_request=GetXmlHttpObject();
	if (http_request==null){
	 alert ("Browser does not support HTTP Request");
	 return false;
	}

  var url=url+"&sid="+Math.random();
  http_request.onreadystatechange = function(){
    simplelistener(update, classes, updatetext, urltext);
  };
	http_request.open("GET",url,true);
  http_request.setRequestHeader("Content-Type","text/html; charset=UTF-8"); 
  http_request.setRequestHeader("Connection", "close");
  http_request.send(null);
}

function simplelistener(update, classes, idupdate, url){
  if (http_request.readyState == 4 || http_request.readyState=="complete") {
    if (http_request.status == 200) {
      if (http_request.responseText != ""){
        var element = document.getElementById(update);
        if (element){
          element.className = classes+http_request.responseText;
          addandremoveattr(idupdate, url, null, null);
        }
      }
    } else {
      alert('There was a problem with the request.');
    }
  }
}

function score2(url, message){
  http_request = false;
  http_request=GetXmlHttpObject();
	if (http_request==null){
	 alert ("Browser does not support HTTP Request");
	 return false;
	}

  var url=url+"&sid="+Math.random();
  http_request.onreadystatechange = function(){
    simplelistener2(message);
  };
	http_request.open("GET",url,true);
  http_request.setRequestHeader("Content-Type","text/html; charset=UTF-8"); 
  http_request.setRequestHeader("Connection", "close");
  http_request.send(null);
}

function simplelistener2(Message){
  if (http_request.readyState == 4 || http_request.readyState=="complete") {
    if (http_request.status == 200) {
      if (http_request.responseText == ""){
        alert(Message);
      }
    } else {
      alert('There was a problem with the request.');
    }
  }
}

function activatelistener(id, urlNow, urlOposite, labelNow, labelOposite, me){
  if (http_request.readyState == 4 || http_request.readyState=="complete") {
    if (http_request.status == 200) {
      if (http_request.responseText == id){
        //ok
        me.innerHTML = labelOposite;
        me.onclick = function(){
                      activate(id, urlOposite, urlNow, labelOposite, labelNow, me);
                     };
      } else {
        alert(http_request.responseText);
      }
    } else {
      alert('There was a problem with the request.');
    }
  }
}

function addandremoveattr(idupdate, url, linkId, attrname){
  if (attrname && linkId){
    document.getElementById(linkId).removeAttribute(attrname);
  }
  http_request = false;
  http_request=GetXmlHttpObject();
	if (http_request==null){
	 alert ("Browser does not support HTTP Request");
	 return false;
	}

  var url=url+"&sid="+Math.random();
  http_request.onreadystatechange = function(){
    addlistener(idupdate);
  };
	http_request.open("GET",url,true);
  http_request.setRequestHeader("Content-Type","text/html; charset=UTF-8"); 
  http_request.setRequestHeader("Connection", "close");
  http_request.send(null);
}

function display(id, myclass, idlink){
  var element = document.getElementById(id);
  var link = document.getElementById(idlink);
  if (element && link){
    if (element.className == myclass){
      element.style.display = "block";
      link.className = "hover";
      $("#"+id).slideUp("slow", function() {
        element.className = myclass + " nodisplay";
      });
    } else {
      element.style.display = "none";
      link.className = "hover up";
      $("#"+id).slideDown("slow", function() {
        element.className = myclass;
      });
    }
  }

}

function updateHidden(update, name, value, text){
  var tr = document.getElementById(update+'tr');
  var td = tr.childNodes[1];
  td.lastChild.innerHTML = text;
  var input = document.getElementById(update);
  if (input == null){
    input = document.createElement('input');
    input.type = "hidden";
    input.id = update;
    input.name = name;
    input.value = value;
    td.insertBefore(input, td.lastChild);
  }else{
    input.value = value;
  }
  close()
}

function getSimilarLocations(gpsid, adressid, countryid, update, suffix, box, geturl){
  http_request = false;
  http_request=GetXmlHttpObject();
	if (http_request==null){
	 alert ("Browser does not support HTTP Request");
	 return false;
	}
  var gpsinput = document.getElementById(gpsid);
  if (gpsinput != null)
    gpsvalue = gpsinput.value;
  else
    gpsvalue = "";
  var table = gpsinput.parentNode.parentNode.parentNode;
  var trs = [];
  var re = new RegExp(adressid+"tr\\d");
  var idstring = "";
  for(var i in table.childNodes){
    idstring = table.childNodes[i].id;
    if(idstring){
      if (idstring.search(re) != -1){
        trs.push(table.childNodes[i]);
      }
    }
  }

  adressvalue = "";
  for (var i in trs){
    if ((trs[i].childNodes) && (trs[i].childNodes[1].childNodes)){
      var textarea = trs[i].childNodes[1].childNodes[0];
      if (textarea != null){
        adressvalue = adressvalue + oddelovac + textarea.value;
      }
    }
  }

  //var adressinput = document.getElementById(adressid);
  //if (adressinput != null){
  //  adressvalue = adressinput.value;
  //}else
  //  adressvalue = "";
  var countryinput = document.getElementById(countryid);
  if (countryinput != null){
    countryvalue = countryinput.value;
  }else
    countryvalue = "";

  var url=geturl;
	url=url+"?sid="+Math.random();
	url=url+"&"+AJAXupdate+"="+update;
	url=url+"&"+AJAXsuffix+"="+suffix;
  url=url+"&"+gps+"="+gpsvalue;
  url=url+"&"+adress+"="+adressvalue;
  url=url+"&"+country+"="+countryvalue;
  http_request.onreadystatechange = function(){
    addlistener(box);
  };
	http_request.open("GET",url,true);
  http_request.setRequestHeader("Content-Type","text/html; charset=UTF-8"); 
  http_request.setRequestHeader("Connection", "close");
  http_request.send(null);

}

/**
* this function erase popup div
*/
function close(){
  if (typeof markersLoc === 'undefined' ){
  } else {
    markersLoc = [];
  }
  var obalkaElement = document.getElementById(obalka);
  obalkaElement.parentNode.removeChild(obalkaElement);
  var popupboxElement = document.getElementById(popupbox);
  popupboxElement.parentNode.removeChild(popupboxElement);

}

function addlistenergeneral2(brotherNode, classDiv, index, linkToOpen, linkDisplay2){
  if (http_request.readyState == 4 || http_request.readyState=="complete") {
    if (http_request.status == 200) {
      result = http_request.responseText;
      if (result != ""){
        var myDiv = document.createElement("div");
        myDiv.className = classDiv;
        myDiv.innerHTML = result;

        var element = document.getElementById(brotherNode);
        var elementParent = element.parentNode;
        if (elementParent.lastChild == elementParent){
          elementParent.appendChild(myDiv);
        } else {
          elementParent.insertBefore(myDiv, element.nextSibling);
        }
        if (linkDisplay2 != ""){
          if (document.getElementById(linkDisplay2) != null){
            if (document.getElementById(linkDisplay2).hasAttribute("onclick")){
              document.getElementById(linkDisplay2).onclick();
            }
          }
        }

        if (linkToOpen != ""){
          $("#slider"+index).easySlider({
            auto: false, 
            continuous: false,
            prevId: 		'prevBtn'+index,
            nextId: 		'nextBtn'+index,
          });
          initLytebox();
          myLytebox.start(document.getElementById(linkToOpen), false, false);
        }
      }
    } else {
      alert('There was a problem with the request.');
    }
  }
}

function addsimplelistenergeneral(brotherNode, index, classDiv, linkId, rel, href, slider){
  if (http_request.readyState == 4 || http_request.readyState=="complete") {
    if (http_request.status == 200) {
      result = http_request.responseText;
      if (result != ""){
        var myDiv = document.createElement("div");
        myDiv.className = classDiv;
        myDiv.innerHTML = result;

        var element = document.getElementById(brotherNode);
        var elementParent = element.parentNode;
        if (elementParent.lastChild == elementParent){
          elementParent.appendChild(myDiv);
        } else {
          elementParent.insertBefore(myDiv, element.nextSibling);
        }

        document.getElementById(linkId).className =  document.getElementById(linkId).className + " lytebox";
        var attr = document.createAttribute('data-lyte-options');
        attr.nodeValue = rel;
        document.getElementById(linkId).setAttributeNode(attr);
        /*
        document.getElementById(linkId).rel = rel;
        */
        document.getElementById(linkId).removeAttribute("onclick");
        document.getElementById(linkId).href = href;

        $("#slider"+slider).easySlider({
          auto: false, 
          continuous: false
        });
        initLytebox();
        myLytebox.start(document.getElementById(linkId), false, false);

      }
    } else {
      alert('There was a problem with the request.');
    }
  }
}

function addAndDisplaylistener(brotherNode, linkId, myclass, urlDepth){
  if (http_request2.readyState == 4 || http_request2.readyState=="complete") {
    if (http_request2.status == 200) {
      result = http_request2.responseText;
      if (result != ""){
        var element = document.getElementById(brotherNode);
        element.innerHTML = result;
      }
      if (linkId != ""){
        document.getElementById(linkId).removeAttribute("onclick");
        document.getElementById(linkId).onclick = function(){
                      display(brotherNode, myclass, linkId);
                     };
        document.getElementById(linkId).onclick();
      }
    } else {
      alert('There was a problem with the request.');
    }
  }
}

function addlistenergeneral(brotherNode, index, classDiv, linkId, linkId2, rel, href, href2, geturl2, urlDepth, linkToOpen, linkDisplay, linkDisplay2){
  if (http_request.readyState == 4 || http_request.readyState=="complete") {
    if (http_request.status == 200) {
      result = http_request.responseText;
      if (result != ""){
        var myDiv = document.createElement("div");
        myDiv.className = classDiv;
        myDiv.innerHTML = result;

        var element = document.getElementById(brotherNode);
        var elementParent = element.parentNode;
        if (elementParent.lastChild == elementParent){
          elementParent.appendChild(myDiv);
        } else {
          elementParent.insertBefore(myDiv, element.nextSibling);
        }
      }

      if (linkId != ""){
        if (rel != ""){
          document.getElementById(linkId).className =  document.getElementById(linkId).className + " lytebox";
          var attr = document.createAttribute('data-lyte-options');
          attr.nodeValue = rel;
          document.getElementById(linkId).setAttributeNode(attr);
        }
        document.getElementById(linkId).removeAttribute("onclick");
        if (href != ""){
          document.getElementById(linkId).href = href;
        }
      }
      if (linkId2 != ""){
        if (rel != ""){
          document.getElementById(linkId2).className = document.getElementById(linkId2).className + " lytebox";
          var attr = document.createAttribute('data-lyte-options');
          attr.nodeValue = rel;
          document.getElementById(linkId2).setAttributeNode(attr);
        }
        document.getElementById(linkId2).removeAttribute("onclick");
        if (href2 != ""){
          document.getElementById(linkId2).href = href2;
        }
      }
      /*
      if (linkId != ""){
        if (rel != ""){
          document.getElementById(linkId).rel = rel;
        }
        document.getElementById(linkId).removeAttribute("onclick");
        if (href != ""){
          document.getElementById(linkId).href = href;
        }
      }
      if (linkId2 != ""){
        if (rel != ""){
          document.getElementById(linkId2).rel = rel;
        }
        document.getElementById(linkId2).removeAttribute("onclick");
        if (href2 != ""){
          document.getElementById(linkId2).href = href2;
        }
      }
      */
      if (linkDisplay != ""){
        if (document.getElementById(linkDisplay) != null){
          if (document.getElementById(linkDisplay).hasAttribute("onclick")){
            document.getElementById(linkDisplay).onclick();
          }
        }
      }
      if (geturl2 != ""){
        http_request=false;
        http_request=GetXmlHttpObject();
        if (http_request==null){
         alert ("Browser does not support HTTP Request");
         return false;
        }

        var url=geturl2;
        url=url+"?sid="+Math.random();
        url=url+"&"+AJAXindex+"="+index;
        url=url+"&sud="+encodeURI(urlDepth);
        http_request.onreadystatechange = function(){
          addlistenergeneral2(brotherNode, classDiv, index, linkToOpen, linkDisplay2);
        };
        http_request.open("GET",url,true);
        http_request.setRequestHeader("Content-Type","text/html; charset=UTF-8"); 
        http_request.setRequestHeader("Connection", "close");
        http_request.send(null);
      }

    } else {
      alert('There was a problem with the request.');
    }
  }
}

function addsimple(brotherNode, classDiv, geturl, index, linkId, rel, href, urlDepth, slider){
  http_request = false;
  http_request=GetXmlHttpObject();
	if (http_request==null){
	 alert ("Browser does not support HTTP Request");
	 return false;
	}

  var url=geturl;
	url=url+"?sid="+Math.random();
	url=url+"&"+AJAXindex+"="+index;
  url=url+"&sud="+encodeURI(urlDepth);
  http_request.onreadystatechange = function(){
    addsimplelistenergeneral(brotherNode, index, classDiv, linkId, rel, href, slider);
  };
	http_request.open("GET",url,true);
  http_request.setRequestHeader("Content-Type","text/html; charset=UTF-8"); 
  http_request.setRequestHeader("Connection", "close");
  http_request.send(null);

}

function addAndDisplay(brotherNode, geturl, linkId, myclass, index, urlDepth){
  http_request2 = false;
  http_request2=GetXmlHttpObject();
	if (http_request2==null){
	 alert ("Browser does not support HTTP Request");
	 return false;
	}

  var url=geturl;
  if (geturl.indexOf("?") < 0){
	  url=url+"?sid="+Math.random();
  } else {
	  url=url+"&sid="+Math.random();
  }
	url=url+"&"+AJAXindex+"="+index;
  url=url+"&sud="+encodeURI(urlDepth);
  http_request2.onreadystatechange = function(){
    addAndDisplaylistener(brotherNode, linkId, myclass);
  };
	http_request2.open("GET",url,true);
  http_request2.setRequestHeader("Content-Type","text/html; charset=UTF-8"); 
  http_request2.setRequestHeader("Connection", "close");
  http_request2.send(null);


}

function rolldown(linkToOpen, link, detail, href){
  document.getElementById(linkToOpen).removeAttribute("onclick");
  if (linkToOpen != ""){
    document.getElementById(linkToOpen).className =  document.getElementById(linkToOpen).className + " lytebox";
  }

  if (linkToOpen != ""){
    if (href != ""){
      document.getElementById(linkToOpen).href = href;
    }
  }

  if (document.getElementById(detail).className != "detail"){
    document.getElementById(link).onclick();
  }

  initLytebox();
  document.getElementById(linkToOpen).onclick();

}

function add(key, brotherNode, classDiv, geturl, index, linkId, linkId2, rel, href, href2, geturl2, urlDepth, linkToOpen, linkDisplay, linkDisplay2){
  if (document.getElementById(key+'detail') != null){
    if (document.getElementById(key+'detail').className != "detail"){
      document.getElementById(key+'link').onclick();
    }
  }

  if (document.getElementById(linkId) != null){
    document.getElementById(linkId).removeAttribute("onclick");
  }
  http_request = false;
  http_request=GetXmlHttpObject();
	if (http_request==null){
	 alert ("Browser does not support HTTP Request");
	 return false;
	}

  var url=geturl;
  if (geturl.indexOf("?") < 0){
	  url=url+"?sid="+Math.random();
  } else {
	  url=url+"&sid="+Math.random();
  }
	url=url+"&"+AJAXindex+"="+index;
  url=url+"&sud="+encodeURI(urlDepth);
  http_request.onreadystatechange = function(){
    addlistenergeneral(brotherNode, index, classDiv, linkId, linkId2, rel, href, href2, geturl2, urlDepth, linkToOpen, linkDisplay, linkDisplay2);
  };
	http_request.open("GET",url,true);
  http_request.setRequestHeader("Content-Type","text/html; charset=UTF-8"); 
  http_request.setRequestHeader("Connection", "close");
  http_request.send(null);

}

/**
*/
function addmissing(update, geturl, index){
  //vytvorit na strance formular
  var body = document.getElementsByTagName("body");
  //body[0] a pred poslendni prvek vlozime...
  var obalkaElement = document.createElement('div');
  obalkaElement.className = obalka + " " + transparent;
  obalkaElement.id = obalka;
  obalkaElement.onclick = close;
  var popupboxElement = createPopUpBox();
//  var popupboxElement = document.createElement('div');
//  popupboxElement.className = popupbox + " " + notransparent;
//  popupboxElement.id = popupbox;
//  var popupboxContent = document.createElement('div');
//  popupboxContent.className = popupbox + "_content";
//  popupboxContent.id = popupbox + "_content";
//
//  var proportions = getproportions();
//  var windowHeight = proportions[0];
//  var windowWidth = proportions[1];
//  var offsetY = proportions[2];
//  var offsetX = proportions[3];
//
//  popupboxElement.style.top =  offsetY + "px";// windowHeight/6 +
  body[0].appendChild(obalkaElement);
//  popupboxElement.appendChild(popupboxContent);
  body[0].appendChild(popupboxElement);

  http_request = false;
  http_request=GetXmlHttpObject();
	if (http_request==null){
	 alert ("Browser does not support HTTP Request");
	 return false;
	}

  var url=geturl;
	url=url+"?sid="+Math.random();
	url=url+"&"+AJAXupdate+"="+update.join(",");
	url=url+"&"+AJAXindex+"="+index;
  http_request.onreadystatechange = popupboxcontent;
	http_request.open("GET",url,true);
  http_request.setRequestHeader("Content-Type","text/html; charset=UTF-8"); 
  http_request.setRequestHeader("Connection", "close");
  http_request.send(null);

}

function conditionalinsertandaddlistener(update, name){
  if (http_request.readyState == 4 || http_request.readyState=="complete") {
    if (http_request.status == 200) {
      result = http_request.responseText;
      if (result != ""){
        if (result.indexOf(oddelovac) > -1){
          results = result.split(oddelovac);
          if (results.length == 2){
            document.getElementById(popupbox + "_content").innerHTML = "";
            text = results[0];
            value = results[1];
            var tr = document.getElementById(update+'tr');
            var td = tr.childNodes[1];
            td.lastChild.innerHTML = text;
            var input = document.getElementById(update);
            if (input == null){
              input = document.createElement('input');
              input.type = "hidden";
              input.id = update;
              input.name = name;
              input.value = value;
              td.insertBefore(input, td.lastChild);
            }else{
              input.value = value;
            }
            close()
          }
        }else{
          alert(result);
        }
      }else{
          document.getElementById(popupbox + "_content").innerHTML = result;            
          close();
      }
    } else {
      alert('There was a problem with the request.');
    }
  }

}

function insertandaddlistener(update, name){
  if (http_request.readyState == 4 || http_request.readyState=="complete") {
    if (http_request.status == 200) {
      result = http_request.responseText;
      if (result.indexOf(oddelovac) > -1){
        results = result.split(oddelovac);
        text = results[0];
        value = results[1];
        var tr = document.getElementById(update+'tr');
        var td = tr.childNodes[1];
        td.lastChild.innerHTML = text;
        var input = document.getElementById(update);
        if (input == null){
          input = document.createElement('input');
          input.type = "hidden";
          input.id = update;
          input.name = name;
          input.value = value;
          td.insertBefore(input, td.lastChild);
        }else{
          input.value = value;
        }

        //update, index)
        close()
      }else{
        document.getElementById(popupbox + "_content").innerHTML = result;            
      }
    } else {
      alert('There was a problem with the request.');
    }
  }

}

function addlistener(box){
  if (http_request.readyState == 4 || http_request.readyState=="complete") {
    if (http_request.status == 200) {
      if (http_request.responseText.length > 0){
        document.getElementById(box).innerHTML = http_request.responseText;
      } else {
        document.getElementById(box).innerHTML = "";
      }
    } else {
      alert('There was a problem with the request.');
    }
  }
}

function insetItemAndClose(){
  if (http_request.readyState == 4 || http_request.readyState=="complete") {
    if (http_request.status == 200) {
      result = http_request.responseText;
      if (result.indexOf(oddelovac) > -1){
        close()
      }else{
        document.getElementById(popupbox + "_content").innerHTML = result;            
      }
    } else {
      alert('There was a problem with the request.');
    }
  }
}

function addmissingitemslistener(update, index){
  if (http_request.readyState == 4 || http_request.readyState=="complete") {
    if (http_request.status == 200) {
      result = http_request.responseText;
      if (result.indexOf(oddelovac) > -1){
        results = result.split(oddelovac);
        updatemissingitems(results[0], results[1], update, index)
        close()
      }else{
        document.getElementById(popupbox + "_content").innerHTML = result;            
      }
    } else {
      alert('There was a problem with the request.');
    }
  }
}

function popupboxcontentLocation(places, details, urlDepth){
  if (http_request.readyState == 4 || http_request.readyState=="complete") {
    if (http_request.status == 200) {
      results = http_request.responseText.split(oddelovac);
      result = results[0];
      document.getElementById(popupbox + "_content").innerHTML = result;            
      if (results.length > 2){
        googlemapinitialize(urlDepth, places, details, results[1], parseInt(results[2]), true);
      } else {
        googlemapinitialize(urlDepth, places, details, null, null, true);
      }
    } else {
      alert('There was a problem with the request.');
    }
  }
}

function popupboxcontent(){
  if (http_request.readyState == 4 || http_request.readyState=="complete") {
    if (http_request.status == 200) {
      result = http_request.responseText;
      document.getElementById(popupbox + "_content").innerHTML = result;
    } else {
      alert('There was a problem with the request.');
    }
  }
}

function selectcontent(){
  if (http_request.readyState == 4 || http_request.readyState=="complete") {
    if (http_request.status == 200) {
      result = http_request.responseText;
      document.getElementById(temp).innerHTML = result;
    } else {
      alert('There was a problem with the request.');
    }
  }
}

function updatemissingitems(text, value, update, index){
  update = update.split(",");
  for (var key in update) {  
    var tr = document.getElementById(update[key]+'tr'+index);
    var table = tr.parentNode;
    var trs = [];
    var re = new RegExp(update[key]+"tr\\d");
    var idstring = "";
    for(var i in table.childNodes){
      idstring = table.childNodes[i].id;
      if(idstring){
        if (idstring.search(re) != -1){
          trs.push(table.childNodes[i]);
        }
      }
    }
    for (var i in trs){
      var select = trs[i].childNodes[1].childNodes[0];
      select.options[select.options.length] = new Option(text, value);
    }
  }

}

///////////////////////////////////////////////////////////////////////////////////////
function makePOSTRequestSimple(url, parameters) {
  http_request = false;
  http_request=GetXmlHttpObject();
	if (http_request==null){
	 alert ("Browser does not support HTTP Request");
	 return false;
	}

  http_request.onreadystatechange = function(){
    insetItemAndClose();
  };
  http_request.open('POST', url, true);
  http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  http_request.setRequestHeader("Content-length", parameters.length);
  http_request.setRequestHeader("Connection", "close");
  http_request.send(parameters);
}

function makePOSTRequest(url, parameters, update, index) {
  http_request = false;
  http_request=GetXmlHttpObject();
	if (http_request==null){
	 alert ("Browser does not support HTTP Request");
	 return false;
	}

  http_request.onreadystatechange = function(){
    addmissingitemslistener(update, index);
  };
  http_request.open('POST', url, true);
  http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  http_request.setRequestHeader("Content-length", parameters.length);
  http_request.setRequestHeader("Connection", "close");
  http_request.send(parameters);
}

function makePOSTRequest2(url, parameters, update, name) {
  http_request = false;
  http_request=GetXmlHttpObject();
	if (http_request==null){
	 alert ("Browser does not support HTTP Request");
	 return false;
	}

  http_request.onreadystatechange = function(){
    insertandaddlistener(update, name);
  };
  http_request.open('POST', url, true);
  http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  http_request.setRequestHeader("Content-length", parameters.length);
  http_request.setRequestHeader("Connection", "close");
  http_request.send(parameters);
}

function makePOSTRequest3(url, parameters, update, name) {
  http_request = false;
  http_request=GetXmlHttpObject();
	if (http_request==null){
	 alert ("Browser does not support HTTP Request");
	 return false;
	}

  http_request.onreadystatechange = function(){
    conditionalinsertandaddlistener(update, name);
  };

  http_request.open('POST', url, true);
  http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  http_request.setRequestHeader("Content-length", parameters.length);
  http_request.setRequestHeader("Connection", "close");
  http_request.send(parameters);
}

function alertContents() {
  if (http_request.readyState == 4) {
    if (http_request.status == 200) {
      //alert(http_request.responseText);
      result = http_request.responseText;
      document.getElementById('myspan').innerHTML = result;            
    } else {
      alert('There was a problem with the request.');
    }
  }
}

function getsimple(obj, getscript, idnamearray) {
  //predam dane hodnoty jako polozky pole...
  first = true;
  var poststr = "";
  var i = 0;
  while(i < idnamearray.length){
    if (first){
      first = false;
      poststr += idnamearray[i][1]+"="+encodeURI( document.getElementById(idnamearray[i][0]).value )
    }else{
      poststr += "&"+idnamearray[i][1]+"="+encodeURI( document.getElementById(idnamearray[i][0]).value )
    }
    i = i + 1;
  }

  makePOSTRequestSimple(getscript, poststr);
}

function get(obj, getscript, idnamearray, update, index) {
  //predam dane hodnoty jako polozky pole...
  first = true;
  var poststr = "";
  var i = 0;
  while(i < idnamearray.length){
    if (first){
      first = false;
      poststr += idnamearray[i][1]+"="+encodeURI( document.getElementById(idnamearray[i][0]).value )
    }else{
      alert(idnamearray[i][0]);
      poststr += "&"+idnamearray[i][1]+"="+encodeURI( document.getElementById(idnamearray[i][0]).value )
    }
    i = i + 1;
  }

  //var poststr = "mytextarea1=" + encodeURI( document.getElementById("mytextarea1").value ) + "&mytextarea2=" + encodeURI( document.getElementById("mytextarea2").value );
  //alert(poststr);
  makePOSTRequest(getscript, poststr, update, index);
}

function get2(obj, getscript, idnamearray, update, name) {
  //predam dane hodnoty jako polozky pole...
  first = true;
  var poststr = "";
  var i = 0
  while(i < idnamearray.length){
    if (first){
      first = false;
      if (idnamearray[i][2] == "-1"){
        poststr += idnamearray[i][1]+"="+encodeURI( document.getElementById(idnamearray[i][0]).value );
      }else{
        //pole
        var index = idnamearray[i][2];
        var tr = document.getElementById(idnamearray[i][0]+'tr'+index);
        var table = tr.parentNode;
        var trs = [];
        var re = new RegExp(idnamearray[i][0]+"tr\\d");
        var idstring = "";
        for(var i2 in table.childNodes){
          idstring = table.childNodes[i2].id;
          if(idstring){
            if (idstring.search(re) != -1){
              trs.push(table.childNodes[i2]);
            }
          }
        }
        var j = 0;
        while (j < trs.length){
          var input = trs[j].childNodes[1].childNodes[0];
          //poststr += idnamearray[i][1]+"="+encodeURI( input.value );
            poststr += input.name+"="+encodeURI( input.value );
          j = j + 1;
        }
      }
    }else{
      if (idnamearray[i][2] == "-1"){
        poststr += "&"+idnamearray[i][1]+"="+encodeURI( document.getElementById(idnamearray[i][0]).value )
      }else{
        //pole
        var index = idnamearray[i][2];
        var tr = document.getElementById(idnamearray[i][0]+'tr'+index);
        var table = tr.parentNode;
        var trs = [];
        var re = new RegExp(idnamearray[i][0]+"tr\\d");
        var idstring = "";
        for(var i2 in table.childNodes){
          idstring = table.childNodes[i2].id;
          if(idstring){
            if (idstring.search(re) != -1){
              trs.push(table.childNodes[i2]);
            }
          }
        }
        var j = 0;
        while (j < trs.length){
          var input = trs[j].childNodes[1].childNodes[0];
          poststr += "&"+input.name+"="+encodeURI( input.value );
          j = j + 1;
        }
      }
    }
    i = i + 1;
  }

  //var poststr = "mytextarea1=" + encodeURI( document.getElementById("mytextarea1").value ) + "&mytextarea2=" + encodeURI( document.getElementById("mytextarea2").value );
  makePOSTRequest2(getscript, poststr, update, name);
}

function get3(obj, getscript, idnamearray, update, name) {
  //predam dane hodnoty jako polozky pole...
  first = true;
  var poststr = "";
  var i;
  for(i=0; i<idnamearray.length; i++){
    if (first){
      first = false;
      if (idnamearray[i][2] == "-1"){
        poststr += idnamearray[i][1]+"="+encodeURI( document.getElementById(idnamearray[i][0]).value );
      }else{
        //pole
        var index = idnamearray[i][2];
        var tr = document.getElementById(idnamearray[i][0]+'tr'+index);
        var table = tr.parentNode;
        var trs = [];
        var re = new RegExp(idnamearray[i][0]+"tr\\d");
        var idstring = "";
        for(var k in table.childNodes){
          idstring = table.childNodes[k].id;
          if(idstring){
            if (idstring.search(re) != -1){
              trs.push(table.childNodes[k]);
            }
          }
        }
        var j;
        for (j = 0; j<trs.length; j++){
          var input = trs[j].childNodes[1].childNodes[0];
          //poststr += idnamearray[i][1]+"="+encodeURI( input.value );
            poststr += input.name+"="+encodeURI( input.value );
        }
      }
    }else{
      if (idnamearray[i][2] == "-1"){
        poststr += "&"+idnamearray[i][1]+"="+encodeURI( document.getElementById(idnamearray[i][0]).value )
      }else{
        //pole
        var index = idnamearray[i][2];
        var tr = document.getElementById(idnamearray[i][0]+'tr'+index);
        var table = tr.parentNode;
        var trs = [];
        var re = new RegExp(idnamearray[i][0]+"tr\\d");
        var idstring = "";
        for(var k in table.childNodes){
          idstring = table.childNodes[k].id;
          if(idstring){
            if (idstring.search(re) != -1){
              trs.push(table.childNodes[k]);
            }
          }
        }
        var j;
        for (j = 0; j<trs.length; j++){
          var input = trs[j].childNodes[1].childNodes[0];
          //poststr += "&"+idnamearray[i][1]+"="+encodeURI( input.value );
            poststr += "&"+input.name+"="+encodeURI( input.value );
        }
      }
    }
  }
  if (first){
    poststr += "?" + AJAXupdate+"="+encodeURI( update);
    poststr += "&" + AJAXsuffix+"="+encodeURI( name);
  } else {
    poststr += "&" + AJAXupdate+"="+encodeURI( update);
    poststr += "&" + AJAXsuffix+"="+encodeURI( name);
  }

  //var poststr = "mytextarea1=" + encodeURI( document.getElementById("mytextarea1").value ) + "&mytextarea2=" + encodeURI( document.getElementById("mytextarea2").value );
  makePOSTRequest3(getscript, poststr, update, name);
}
/////////////////////////////////////////////////////////////////////////////////////////

/**
*/

function addmoreAutocomplete(show, before, index, acprefix, url){
  var beforetr = document.getElementById(before+'tr');
  var newtr = document.createElement("tr");
  var newtd = document.createElement("td");
  newtr.appendChild(newtd);
  var newtd2 = document.createElement("td");
  var oldtr = document.getElementById(show+'tr'+index);
  var content = oldtr.childNodes[1].childNodes[0].cloneNode(true);
  var content2 = oldtr.childNodes[1].childNodes[1].cloneNode(true);


  var i=0;
  while (document.getElementById(show+i)){
    i++;
  }
  content.id=show+i;
  content.name=show+"["+i+"]";
  content2.id=show+i+acprefix;
  content2.value = "";

  newtd2.appendChild(content);
  newtd2.appendChild(content2);

  newtr.appendChild(newtd2);
  newtr.id=show+'tr'+i;

  beforetr.parentNode.insertBefore(newtr,beforetr); 

  $("#"+content2.id).autocomplete({source: url
      ,focus: function(event, ui){
        if (ui.item.label){
            $("#"+content2.id).val(ui.item.label);
        } else {
            $("#"+content2.id).val(ui.item.value);
        }
        return false;
      }
      ,select: function(e, ui){
        if (ui.item.label){
            $("#"+content2.id).val(ui.item.label);
            $("#"+content.id).val(ui.item.value);
        } else {
            $("#"+content2.id).val(ui.item.value);
            $("#"+content.id).val(ui.item.value);
        }
        return false;
      }
      }); 

}

function addmoreinput(show, before, index){
  var beforetr = document.getElementById(before+'tr');
  var newtr = document.createElement("tr");
  var newtd = document.createElement("td");
  newtr.appendChild(newtd);
  var newtd2 = document.createElement("td");
  var input = document.createElement('input');

  var i=0;
  while (document.getElementById(show+i)){
    i++;
  }
  input.id=show+i;
  input.name=show+"["+i+"]";
  input.type = "text";

  newtd2.appendChild(input);
  newtr.appendChild(newtd2);
  newtr.id=show+'tr'+i;

  beforetr.parentNode.insertBefore(newtr,beforetr); 

}

function addmoreinputAutocomplete(show, before, index, acprefix, url){
  var beforetr = document.getElementById(before+'tr');
  var newtr = document.createElement("tr");
  var newtd = document.createElement("td");
  newtr.appendChild(newtd);
  var newtd2 = document.createElement("td");
  var input = document.createElement('input');
  var input2 = document.createElement('input');



  var i=0;
  while (document.getElementById(show+i)){
    i++;
  }
  input.id=show+i;
  input.name=show+"["+i+"]";
  input.type = "hidden";
  input2.id=show+i+acprefix;
  input2.type = "text";

  newtd2.appendChild(input);
  newtd2.appendChild(input2);
  newtr.appendChild(newtd2);
  newtr.id=show+'tr'+i;

  beforetr.parentNode.insertBefore(newtr,beforetr); 

  $("#"+input2.id).autocomplete({source: url
      ,focus: function(event, ui){
        if (ui.item.label){
            $("#"+input2.id).val(ui.item.label);
        } else {
            $("#"+input2.id).val(ui.item.value);
        }
        return false;
      }
      ,select: function(e, ui){
        if (ui.item.label){
            $("#"+input2.id).val(ui.item.label);
            $("#"+input.id).val(ui.item.value);
        } else {
            $("#"+input2.id).val(ui.item.value);
            $("#"+input.id).val(ui.item.value);
        }
        return false;
      }
      }); 

}

function addmoreselect(show, before, index, options){
  var beforetr = document.getElementById(before+'tr');
  var newtr = document.createElement("tr");
  var newtd = document.createElement("td");
  newtr.appendChild(newtd);
  var newtd2 = document.createElement("td");
  var select = document.createElement('select');
  for(i in options){
    var option = document.createElement('option');
    option.value = i;
    option.innerHTML = options[i];
    select.appendChild(option);
  }

  var i=0;
  while (document.getElementById(show+i)){
    i++;
  }
  select.id=show+i;
  select.name=show+"["+i+"]";
  newtd2.appendChild(select);
  newtr.appendChild(newtd2);
  newtr.id=show+'tr'+i;

  beforetr.parentNode.insertBefore(newtr,beforetr); 

}

function addmore(show, before, index){
  var beforetr = document.getElementById(before+'tr');
  var newtr = document.createElement("tr");
  var newtd = document.createElement("td");
  newtr.appendChild(newtd);
  var newtd2 = document.createElement("td");
  var oldtr = document.getElementById(show+'tr'+index);
  var content = oldtr.childNodes[1].childNodes[0].cloneNode(true);

  var i=0;
  while (document.getElementById(show+i)){
    i++;
  }
  content.id=show+i;
  content.name=show+"["+i+"]";
  newtd2.appendChild(content);
  newtr.appendChild(newtd2);
  newtr.id=show+'tr'+i;

  beforetr.parentNode.insertBefore(newtr,beforetr); 

}

function addmoreNew(show, before, index, type){
  /*
  <a onclick="addmore('picturepieceedit', 'addmorepicturepieceedit', '0');">Přidej další.</a>
  */
  var beforetr = document.getElementById(before+'tr');
  var newtr = document.createElement("tr");
  var newtd = document.createElement("td");
  newtr.appendChild(newtd);
  var newtd2 = document.createElement("td");
  var oldtr = document.getElementById(show+'tr'+index);
  /*var content = oldtr.childNodes[1].childNodes[0].cloneNode(true);*/
  if (type == "file"){
    var content = document.createElement("input");
    content.type = "file";
    var content2 = document.createElement("input");
    content2.type = "hidden";
    content2.name = "MAX_FILE_SIZE";
    content2.value = maxSize;

  }

  var i=0;
  while (document.getElementById(show+'tr'+i)){
    i++;
  }
  content.id=show+i;
  content.name=show+"["+i+"]";
  newtd2.appendChild(content);
  if (type == "file"){
    newtd2.appendChild(content2);

  }
  newtr.appendChild(newtd2);
  newtr.id=show+'tr'+i;

  beforetr.parentNode.insertBefore(newtr,beforetr); 

}

function GetXmlHttpObject(){
  var xmlHttp=null;
  try{
    // Firefox, Opera 8.0+, Safari
    xmlHttp = false;
    xmlHttp=new XMLHttpRequest();
  }catch (e){
    //Internet Explorer
    try{
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }catch (e){
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
  return xmlHttp;
}

function getproportions(){
	var windowHeight, windowWidth, offsetY, offsetX;
	if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    windowWidth = window.innerWidth - 16;
    windowHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    windowWidth = document.documentElement.clientWidth;
    windowHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    windowWidth = document.body.clientWidth;
    windowHeight = document.body.clientHeight;
  }

	if (this.pageYOffset != null){
		offsetY = this.pageYOffset;
	}else if (document.body.scrollTop != null){
		offsetY = document.documentElement.scrollTop;
	if (offsetY == 0)
		offsetY = document.body.scrollTop;
	}if (this.pageXOffset != null)
		offsetX = this.pageXOffset;
	else if (document.body.scrollLeft != null)
		offsetX = document.documentElement.scrollLeft;

  var returnArray = [windowHeight, windowWidth, offsetY, offsetX];
  return returnArray;

}

/**
*
*
*
*/
function allLanguages(show, hide, languages){
  try{
    var lang = 0;
    while (lang < languages.length){
      var tr = document.getElementById(show+'tr'+languages[lang]);
      if (tr == null)
        throw "Error a";
      tr.className = '';
      lang = lang + 1;
    }
    var tr = document.getElementById(hide+'tr');
    if (tr == null)
      throw "Error b";
    tr.className = 'nodisplay';
  }catch(err){
    alert (err);
  }
}

function choosedPieceItem(value, options, id, name){
  for (var i = 0; i < options.length; i++){
    option = options[i];
    if (option.value == value){
      text = option.text;
      break;
    }
  }

  /*
  vytvorime odkaz
  */
  var tr = document.getElementById(id+'tr');
  var td = tr.childNodes[1];
  /*
  var anchor = document.createElement('a');
  anchor.onclick = deletePieceItem;
  anchor.innerHTML = text
  td.insertBefore(anchor, td.lastChild);
  td.lastChild.style.display = "none";
  */
  td.lastChild.innerHTML = text;
  /*
  a input hidden
  */
  var input = document.getElementById(id);
  if (input == null){
    input = document.createElement('input');
    input.type = "hidden";
    input.id = id;
    input.name = name;
    input.value = value;
    td.insertBefore(input, td.lastChild);
  }else{
    input.value = value;
  }

  var obalkaElement = document.getElementById(obalka);
  obalkaElement.parentNode.removeChild(obalkaElement);
  var popupboxElement = document.getElementById(popupbox);
  popupboxElement.parentNode.removeChild(popupboxElement);

}

/**
*
*/
function insertandadd(id, name, geturl){
  var obalkaElement = document.getElementById(obalka);
  if (obalkaElement == null){
    var body = document.getElementsByTagName("body");
    //body[0] a pred poslendni prvek vlozime...
    var obalkaElement = document.createElement('div');
    obalkaElement.className = obalka + " " + transparent;
    obalkaElement.id = obalka;
    obalkaElement.onclick = close;
    var popupboxElement = createPopUpBox();
//    var popupboxElement = document.createElement('div');
//    popupboxElement.className = popupbox + " " + notransparent;
//    popupboxElement.id = popupbox;
//
//    var proportions = getproportions();
//    var windowHeight = proportions[0];
//    var windowWidth = proportions[1];
//    var offsetY = proportions[2];
//    var offsetX = proportions[3];
//
//    popupboxElement.style.top = windowHeight/6 + "px";// + offsetY
    body[0].appendChild(obalkaElement);
    body[0].appendChild(popupboxElement);
  }
  var tr = document.getElementById(id+'tr');
  var td = tr.childNodes[1];
  var input = document.getElementById(id);
  if (input == null){
    input = document.createElement('input');
    input.type = "hidden";
    input.id = id;
    input.name = name;
    td.insertBefore(input, td.lastChild);
  }

  http_request = false;
  http_request=GetXmlHttpObject();
	if (http_request==null){
	 alert ("Browser does not support HTTP Request");
	 return false;
	}

  var url=geturl;
	url=url+"?sid="+Math.random();
	url=url+"&"+AJAXupdate+"="+id;
	url=url+"&"+AJAXsuffix+"="+name;
  http_request.onreadystatechange = popupboxcontent;
	http_request.open("GET",url,true);
  http_request.setRequestHeader("Content-Type","text/html; charset=UTF-8"); 
  http_request.setRequestHeader("Connection", "close");
  http_request.send(null);

}

function showLocationForm(name, id, geturl, places, details, urlDepth, idplace){
  var body = document.getElementsByTagName("body");
  //body[0] a pred poslendni prvek vlozime...
  var obalkaElement = document.createElement('div');
  obalkaElement.className = obalka + " " + transparent;
  obalkaElement.id = obalka;
  obalkaElement.onclick = close;
  var popupboxElement = createPopUpBox();

  body[0].appendChild(obalkaElement);
  body[0].appendChild(popupboxElement);

  http_request = false;
  http_request=GetXmlHttpObject();
  if (http_request==null){
   alert ("Browser does not support HTTP Request");
   return false;
  }

  var url=geturl;
  url=url+"?sid="+Math.random();
  url=url+"&"+AJAXupdate+"="+id;
  url=url+"&"+AJAXsuffix+"="+name;
  if (idplace != null){
    url=url+"&id="+idplace;
  }
  http_request.onreadystatechange = function(){
    popupboxcontentLocation(places, details, urlDepth);
  };
  http_request.open("GET",url,true);
  http_request.setRequestHeader("Content-Type","text/html; charset=UTF-8"); 
  http_request.setRequestHeader("Connection", "close");
  http_request.send(null);
}

function chooseLocation(name, id, geturl, places, details, urlDepth, geturlplace){
  //get info about place...
  var input = document.getElementById(id);
  if (input == null){
    showLocationForm(name, id, geturl, places, details, urlDepth);
  } else {
    showLocationForm(name, id, geturl, places, details, urlDepth, input.value);
  }
}

/**
*
*
*
*/
function choosePieceItem(name, id, geturl){
  //vytvorit na strance formular
  var body = document.getElementsByTagName("body");
  //body[0] a pred poslendni prvek vlozime...
  var obalkaElement = document.createElement('div');
  obalkaElement.className = obalka + " " + transparent;
  obalkaElement.id = obalka;
  obalkaElement.onclick = close;
  var popupboxElement = createPopUpBox();
//  var popupboxElement = document.createElement('div');
//  popupboxElement.className = popupbox + " " + notransparent;
//  popupboxElement.id = popupbox;
//
//  var proportions = getproportions();
//  var windowHeight = proportions[0];
//  var windowWidth = proportions[1];
//  var offsetY = proportions[2];
//  var offsetX = proportions[3];
//
//  popupboxElement.style.top = windowHeight/6 + "px";// + offsetY
  body[0].appendChild(obalkaElement);
  body[0].appendChild(popupboxElement);

  http_request = false;
  http_request=GetXmlHttpObject();
	if (http_request==null){
	 alert ("Browser does not support HTTP Request");
	 return false;
	}

  var url=geturl;
	url=url+"?sid="+Math.random();
  url=url+"&"+AJAXupdate+"="+id;
  url=url+"&"+AJAXsuffix+"="+name;
  http_request.onreadystatechange = popupboxcontent;
	http_request.open("GET",url,true);
  http_request.setRequestHeader("Content-Type","text/html; charset=UTF-8"); 
  http_request.setRequestHeader("Connection", "close");
  http_request.send(null);

}

function loadPieceItems(character, idselect, geturl){
  temp = idselect
  http_request = false;
  http_request=GetXmlHttpObject();
	if (http_request==null){
	 alert ("Browser does not support HTTP Request");
	 return false;
	}

  var url=geturl;
	url=url+"?sid="+Math.random();
	url=url+"&"+getchar+"="+character;
  http_request.onreadystatechange = selectcontent;
	http_request.open("GET",url,true);
  http_request.setRequestHeader("Content-Type","text/html; charset=UTF-8"); 
  http_request.setRequestHeader("Connection", "close");
  http_request.send(null);

}

function isArray(obj) {
  //returns true is it is an array
  if (obj.constructor.toString().indexOf("Array") == -1)
    return false;
  else
   return true;
}

function detectItem(originalArray, itemToDetect) {
    var j = 0;
    while (j < originalArray.length) {
      if (originalArray[j] == itemToDetect) {
        return true;
      } else {
        j++;
      }   
    }
    return false;
}

function createPopUpBox() {
  var popupboxElement = document.createElement('div');
  popupboxElement.className = popupbox + " " + notransparent;
  popupboxElement.id = popupbox;
  var popupboxContent = document.createElement('div');
  popupboxContent.className = popupbox + "_content";
  popupboxContent.id = popupbox + "_content";

  var proportions = getproportions();
//  var windowHeight = proportions[0];
//  var windowWidth = proportions[1];
  var offsetY = proportions[2];
//  var offsetX = proportions[3];

  popupboxElement.style.top =  offsetY + "px";// windowHeight/6 +
  popupboxElement.appendChild(popupboxContent);

  return popupboxElement;
}

function clearLink(trid, id, submitText){
  var input = document.getElementById(id);
  input.value = "";

  var tr = document.getElementById(trid);
  var a = tr.childNodes[1].lastChild;
  a.innerHTML = submitText;

}

