﻿function startRequestMiejscowosc(wojewodztwo, powiat, gmina, tylkomiejscowosc){
  var url = "data/katalog_miejscowosci.php?wojewodztwo=" + wojewodztwo + "&powiat=" + powiat + "&gmina=" + gmina;
  document.getElementById("miejscowosc").disabled = true;
  document.getElementById("miejscowosc").options.length = 0;
  if (tylkomiejscowosc == false) {
    document.getElementById("ulica").disabled = true;
    document.getElementById("ulica").options.length = 0;
    document.getElementById("poczta").disabled = true;
    document.getElementById("poczta").options.length = 0;
    startGETRequest(url, onCompleteMiejscowosc, onEndMiejscowosc);
  } else {
    startGETRequest(url, onCompleteOnlyMiejscowosc, onEndOnlyMiejscowosc);
  }
}

function onEndMiejscowosc(){
document.getElementById("miejscowosc").disabled = false;
document.getElementById("ulica").disabled = false;
document.getElementById("poczta").disabled = false;
}

function onEndOnlyMiejscowosc(){
document.getElementById("miejscowosc").disabled = false;
}

function przetwarzajXMLMiejscowosc(xml, fulldata){
  var opcjefull = xml.documentElement.childNodes;

  var opcje = opcjefull[0].childNodes;
  var listaOpcji = document.getElementById("miejscowosc");
  listaOpcji.options.length = 0;
  listaOpcji[0] = new Option("Wybierz miejscowość", "");
  for(var i = 0; i < opcje.length; i++){
    if(opcje[i].nodeType == 1){
    var opcja = opcje[i].firstChild.nodeValue;
	  var nazwa= opcje[i].getAttribute("nazwa"); 
     listaOpcji[i + 1] = new Option(opcja, nazwa);
    }
  }
  if (fulldata == true) {
    var opcje = opcjefull[1].childNodes;
    var listaOpcji = document.getElementById("ulica");
    listaOpcji.options.length = 0;
    listaOpcji[0] = new Option("Wybierz ulicę", "");
    for(var i = 0; i < opcje.length; i++){
      if(opcje[i].nodeType == 1){
      var opcja = opcje[i].firstChild.nodeValue;
      var nazwa= opcje[i].getAttribute("nazwa"); 
       listaOpcji[i + 1] = new Option(opcja, nazwa);
      }
    }
    var opcje = opcjefull[2].childNodes;
    var listaOpcji = document.getElementById("poczta");
    listaOpcji.options.length = 0;
    listaOpcji[0] = new Option("Wybierz pocztę", "");
    for(var i = 0; i < opcje.length; i++){
      if(opcje[i].nodeType == 1){
      var opcja = opcje[i].firstChild.nodeValue;
      var kod= opcje[i].getAttribute("kod"); 
       listaOpcji[i + 1] = new Option(opcja, kod);
      }
    }
  }
}

function onCompleteMiejscowosc(text, xml){
  if (!xml || !xml.documentElement){
    alert(text);
  }
  else if (xml.documentElement.nodeName == "parsererror"){
    alert(text);
  }
  else{
    przetwarzajXMLMiejscowosc(xml, true);
	
  }
}

function onCompleteOnlyMiejscowosc(text, xml){
  if (!xml || !xml.documentElement){
    alert(text);
  }
  else if (xml.documentElement.nodeName == "parsererror"){
    alert(text);
  }
  else{
    przetwarzajXMLMiejscowosc(xml, false);
	
  }
}
