function HttpRequest(){
 var req;
 req = false;
 //branch for native object
 if(window.XMLHttpRequest && !(window.ActiveXObject)){
  try{
   req = new XMLHttpRequest();
   }
  catch(e){
   req = false;
   }
  }

 //branch for IE/Windows ActiveX version
 else if(window.ActiveXObject){
  try{
   req = new ActiveXObject("Msxml2.XMLHTTP");
   }
  catch(e){
   try{
    req = new ActiveXObject("Microsoft.XMLHTTP");
    }
   catch(e){
    req = false;
    }
	 	}
  }

 return req;
 }

function LoadTestData(){
 map = DataMap();
 document.getElementById(map["input_zip"]).value = "09-012";
 document.getElementById(map["input_city"]).value = "Lodź";
 document.getElementById(map["input_street"]).value = "Wiecznosć";
 document.getElementById(map["input_building"]).value = "46 A";
 document.getElementById(map["input_flat"]).value = "31 (I piętro)";
 }

function DataMap(){
 var map = new Array()
 map["input_zip"]      = "i_kod";
 map["input_city"]     = "i_miasto";
 map["input_street"]   = "i_ulica";
 map["input_building"] = "i_budynek";
 map["input_flat"]     = "i_lokal";

 map["label_zip"]      = "l_kod";
 map["label_city"]     = "l_miasto";
 map["label_street"]   = "l_ulica";
 map["label_building"] = "l_budynek";
 map["label_flat"]     = "l_lokal";
 map["label_correct_all"] = "l_correct_all";

 map["msg_zip"] = "kod pocztowy";
 map["msg_city"] = "miejscowość";
 map["msg_street"] = "ulica";
 map["msg_building"] = "budynek";
 map["msg_flat"] = "lokal";

 map["msg_ok"] = "OK. Adres nie zawiera błędów.";
 map["msg_err"] = "Błąd. Nieprawidłowe wartości w polach: ";
 map["msg_correct"] = "Kliknij podawaną poprawną odpowiedź aby poprawić dane.";
 map["msg_correct_all"] = "Popraw wszystkie elementy.";
 return map;
 }


function UpdateDataBatch(){
 UpdateData('zip');
 UpdateData('city');
 UpdateData('street');
 UpdateData('building');
 UpdateData('flat');
 }

function UpdateData(type){
 map = DataMap();
 sVal = document.getElementById(map["label_" + type]).innerHTML;

 if(sVal != ''){
  document.getElementById(map["input_" + type]).value = sVal;
  }
 }


//function ValidateAddress(zipcode, city, street_name, street_number, street_flat){
function ValidateAddress(){
 map = DataMap();

 document.getElementById(map["label_zip"]).innerHTML = '';
 document.getElementById(map["label_city"]).innerHTML = '';
 document.getElementById(map["label_street"]).innerHTML = '';
 document.getElementById(map["label_building"]).innerHTML = '';
 document.getElementById(map["label_flat"]).innerHTML = '';
 document.getElementById(map["label_correct_all"]).innerHTML = '';


 zipcode       = document.getElementById(map["input_zip"]).value;
 city          = document.getElementById(map["input_city"]).value;
 street_name   = document.getElementById(map["input_street"]).value;
 street_number = document.getElementById(map["input_building"]).value;
 street_flat   = document.getElementById(map["input_flat"]).value;

 var oRequest = HttpRequest();
 var sResponse = new String();
 var sQuery = new String();
 var sLok = new String();
 sLok = '';
 if(street_flat != ''){
  sLok = ' lok ';
  }

 sQuery = 'zipcode=' + zipcode +
          '&city=' + city +
          '&street_name=' + street_name +
          '&street_number=' + street_number + sLok + street_flat;

 document.getElementById('status').innerHTML = 'Standaryzacja adresu via webservice...';
 oRequest.open('get', 'ws_proxy.php?' + sQuery, false);
 oRequest.send(null);
 sResponse = oRequest.responseText;
 eval(sResponse);

 //document.getElementById('debug').innerHTML = sQuery + '<br>' + sResponse;


 var sDiagnostic = new String();
 sDiagnostic = '';

 if(zipcode != hd_result['zipcode']){
  document.getElementById(map["label_zip"]).innerHTML = hd_result['zipcode'];
  sDiagnostic =  sDiagnostic + ' ' + map["msg_zip"];
  }

 if(city != hd_result['city']){
  document.getElementById(map["label_city"]).innerHTML = hd_result['city'];
  sDiagnostic =  sDiagnostic + ' ' + map["msg_city"];
  }

 if(street_name != hd_result['street_name']){
  document.getElementById(map["label_street"]).innerHTML = hd_result['street_name'];
  sDiagnostic =  sDiagnostic + ' ' + map["msg_street"];
  }

 if(street_number != hd_result['street_building']){
  document.getElementById(map["label_building"]).innerHTML = hd_result['street_building'];
  sDiagnostic =  sDiagnostic + ' ' + map["msg_building"];
  }

 if(street_flat != hd_result['street_flat']){
  document.getElementById(map["label_flat"]).innerHTML = hd_result['street_flat'];
  sDiagnostic =  sDiagnostic + ' ' + map["msg_flat"];
  }

 if(sDiagnostic != ''){
  document.getElementById('status').className = 's_err';
  msg = map["msg_err"] + sDiagnostic + "<br />" + map["msg_correct"];
  document.getElementById('status').innerHTML = msg;
  document.getElementById('l_correct_all').innerHTML = map["msg_correct_all"];
  }
 else{
  document.getElementById('status').className = 's_ok';
  document.getElementById('status').innerHTML = map["msg_ok"];
  }
 return sResponse;
 }

