var XML_url = 'xmlhttp/data_get.php'; 
var XHG_dropDown = getHTTPObject(); 
var selectedCityID = 0;

function recordTyping(ev, oInput, type)	{
	var keyCode = ev.keyCode ? ev.keyCode : ev.which ? ev.which : ev.charCode;
	if (keyCode == 13) {
		return;
	}
	fillResults(oInput.value, type);
}

function fillResults(inputText, type)  {
  var resultsDIVName;
  var resultsDIV;
  var mainCMD;
  var prefixXMLEntity;
  switch (type) {
    case 'city':
      resultsDIVName = 'plaatsBox';
      mainCMD = 'fetch_plaats'; 
      prefixXMLEntity = 'cities';
      break;
    case 'street':
      resultsDIVName = 'straatBox';
      mainCMD = 'fetch_straats';
      prefixXMLEntity = 'streets';
      break;
  }

  obj = XHG_dropDown;
	if (obj.readyState == 4 || obj.readyState == 0) {
    resultsDIV = document.getElementById(resultsDIVName);
    resultsDIV.style.visibility = 'visible';
    var oTable = resultsDIV.childNodes[0]; 
    tableDelRecords(oTable, 0);
		url = XML_url;
		param = '?cmd=' + mainCMD + '&keyword=' + inputText + '&city_id=' + selectedCityID + '&hash=' + GetUniqueVal();
		obj.open('GET', url + param, true);
		obj.onreadystatechange = function ()	{
			if (obj.readyState == 4) {
        var xmldoc = obj.responseXML;
        var recAr = GetXMLValue(xmldoc.getElementsByTagName(prefixXMLEntity + 'STR')).split('|');
        var recNo = parseInt(GetXMLValue(xmldoc.getElementsByTagName(prefixXMLEntity + 'Count')));
        var keysAr = GetXMLValue(xmldoc.getElementsByTagName(prefixXMLEntity + 'ID')).split('|');
        
        for (i=0;i<recAr.length;i++) {
          tableAddRecord(oTable, i, recAr[i], 1, [type,keysAr[i]]);
        }
			}
		}; 
		obj.send(null);
	}
}


function tableDelRecords(oTable, start)	{
	if (oTable.rows.length > start)	{
		for (j2=start;j2<oTable.rows.length;j2++)	{
			oTable.rows[j2].style.display = 'none';
		}	
	}
}

function tableAddRecord(oTable, rowPos, recStr, recType, oP)  {
  var resultsDIVName;
  var resultsDIV;
  var resultsINPUTName;
  var resultsINPUT;
  var resultsINPUTHidden;
  var resultsINPUTIds;
  switch (oP[0]) {
    case 'city':
      resultsDIVName = 'plaatsBox'; 
      resultsINPUTName = 'city_name';
      resultsINPUTHidden = 'city_id';
      break;
    case 'street':
      resultsDIVName = 'straatBox';
      resultsINPUTName = 'street_name';
      resultsINPUTHidden = 'street_id';
      break;
  }

  var oTR = oTable.insertRow(rowPos);
  var oTD = oTR.insertCell(0);
  oTD.innerHTML = recStr;
  oTD.className = 'searchCity';
  if (recType == 1) {
    oTR.onmouseover = function()	{
      oTR.className = 'searchMouseOver';
  	}
  	oTR.onmouseout = function()	{
      oTR.className = 'searchMouseOut';
  	}
    oTR.onclick = function()	{
      if (oP[0] == 'city') {
        selectedCityID = oP[1];
      }
    
      resultsDIV = document.getElementById(resultsDIVName);
      resultsDIV.style.visibility = 'hidden';
      
      resultsINPUT = document.getElementById(resultsINPUTName);
      resultsINPUT.value = oTD.innerHTML;
      
      resultsINPUTIds = document.getElementById(resultsINPUTHidden);
      resultsINPUTIds.value = oP[1];
      //alert(resultsINPUT.value);
  	}  
  }
  if (recType == 2) {
    oTR.className = 'searchStatsDown';
  }
}
