var formObj = null;
var formObjTyp = "";
var request=null;

function generateList(obj){
   if (obj == null ) { return; }
   if(obj.checked) {
      formObj=obj;
      formObjTyp =formObj.tagName.toLowerCase();
      var url = "http://www.parkerriver.com/s/selectl?countryType="+
         encodeURIComponent(obj.value);
      httpRequest("GET",url,true);
   }
}

// Obsuga zdarze dla obiektu XMLHttpRequest.
function handleResponse(){
   try{
      if(request.readyState == 4){
         if(request.status == 200){
            if(formObjTyp.length > 0 && formObjTyp == "input") {
               if (resp != null){
                  // Warto zwrotna jest tablic.
                  var objt = eval(resp);
                  // Tworzenie nowego elementu select.
                  var sel = document.createElement("select");
                  sel.setAttribute("name","countries");
                  // Nadanie atrybutowi select kilku opcji na podstawie
                  // otrzymanej z serwera listy krajw.
                  createOptions(sel,objt);
                  // Element div, wewntrz ktrego
                  // pojawia si lista select.
                  var newsel = document.getElementById("newsel");
                  reset(newsel);
                  newsel.appendChild(sel);
               }
            } else if(formObjTyp.length > 0 && formObjTyp == "select"){
               // Kod zosta skrcony w celu zachowania zwizoci...
            }
         } else {
            // Jeeli aplikacja nie jest dostpna, wtedy stan dania wynosi 503,
            // natomiast w przypadku bdu w aplikacji stan dania wynosi 500.
            alert(
               " Wystpi problem z komunikacj midzy obiektem 
                 XMLHttpRequest, "+
               "a programem serwera.");
         }
      }// Koniec zewntrznej ptli if.
   } catch (err) {
      alert("Serwer nie jest dostpny "+
         "dla tej aplikacji. Prosz wkrtce sprbowa"+
         " ponownie. \nBd: "+err.message);

   }
}

function createOptions(sel,_options) {
   // Zmienna _options jest tablic cigw tekstowych, ktre przedstawiaj wartoci
   // listy select, jakie s w kadym elemencie option listy. 
   // sel jest obiektem select.
   if(_options == null || _options.length==0) { return;}
   var opt = null;
   for(var i = 0; i < _options.length; i++) {
      opt = document.createElement("option");
      opt.appendChild(document.createTextNode(_options[i]));
      sel.appendChild(opt);
   }
}
// Usunicie wszystkich istniejcych elementw potomnych z obiektu Element.
function reset(elObject){
   if(elObject != null && elObject.hasChildNodes()){
      for(var i = 0; i < elObject.childNodes.length; i++){
         elObject.removeChild(elObject.firstChild);
      }
   }
}
/* Inicjalizacja obiektu dania; kod zosta pominity, zobacz sposb 1. lub 2. */
