var req, response;

function loadXMLDoc(url) {
  // branch for native XMLHttpRequest object
  if (window.XMLHttpRequest) {
    req = new XMLHttpRequest();
    req.onreadystatechange = processReqChange;
    req.open("GET", url, true);
    req.send(null);
  // branch for IE/Windows ActiveX version
  }
  else if (window.ActiveXObject) {
    try {
      req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch (e) {
      req = new ActiveXObject("Msxml2.XMLHTTP");
    }
    if (req) {
      req.onreadystatechange = processReqChange;
      req.open("GET", url, true);
      req.send();
    }
  }
}

function processReqChange() 
{
  // only if req shows "complete"
  if (req.readyState == 4) {
    // only if "OK"
    if (req.status == 200) {
      // ...processing statements go here...
      fillSelect('region', req.responseText);
      progress('hidden');
    }
    else {
      alert("There was a problem retrieving the XML data:\n" + req.statusText);
    }
  }
}

function selectChange (select, value) {
  if (value) {
    url  = 'http://weather-in.by/cgi-bin/weather.fcgi?module=search&action=getregions&oblast='+value;
    var lang = document.getElementById('lang');
    progress('');
    if (lang) url += '&lang=' + lang.value; 
    loadXMLDoc(url);
  }
  else {
    fillSelect('region', '');
  }
}

function fillSelect(selectID, data) {
  var sel = document.getElementById(selectID);
  sel.options.length = 1;
  if (data.length == 0) {
    sel.disabled = true;
    return;
  }
  sel.disabled = false;
  var arr = data.split("\n");
  for(var i in arr) {
    if (arr[i]) {
      val = arr[i].split("\t");
      sel.options[sel.options.length] = new Option(val[1], val[0], false, false);
    }
  }
  var rgn = document.getElementById('rgn');
  if (rgn && rgn.value != 0) {
    sel.value = rgn.value;
    rgn.value = 0;
  }
}

function progress(visibility) {
  var img = document.getElementById('progress');
  if (img) img.style.visibility = visibility;
//  alert(visibility);
}
