
function getXmlHttp(){
  var xmlhttp;
  try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
    try {
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
      xmlhttp = false;
    }
  }
  if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
    xmlhttp = new XMLHttpRequest();
  }

  return xmlhttp;
}


function rg_zapros()
{

if (!selected_id) return;

rg_request.open('POST', post_to, false);
rg_request.setRequestHeader ("Content-Type", "application/x-www-form-urlencoded");

rg_request.send( 'id=' + selected_id );

abortRequest = setTimeout('rg_request.abort();', 10000);

for(i=0;i<50;i++)
{
timetick= setTimeout('ttt= processRequestChange(rg_request, '+0+')',100);
if (ttt)
	break;
}

}


function processRequestChange(rq)	/*  , n) */

{

var rty= 'loc_'+to_select_reg_type;
var rtyelem= document.getElementById(rty);

// document.getElementById('vyb_region').innerText = rqst(rq.readyState);

  // если выполнен


if (rq.readyState == 4)
{ 
	clearInterval(timetick);
    clearTimeout(abortRequest);

    // если успешно
    if (rq.status == 200)
	{	
//		alert(rq.responseText +' ы '+ selected_id);
		
//		document.getElementById(rty).innerHTML = rq.responseText;

		if ( rq.responseText.indexOf('list;')>-1 )
		{
			// удалить список, который возможно остался от предыдущего выбора
			rtyelem.childNodes;
			while ( rtyelem.childNodes.length>1)
			{
				y= rtyelem.childNodes[1];
				rtyelem.removeChild(y);
			}

			if (rty=='loc_region')
			{
				document.getElementById('loc_city').childNodes;
				while ( document.getElementById('loc_city').childNodes.length>1)
				{
					y= document.getElementById('loc_city').childNodes[1];
					document.getElementById('loc_city').removeChild(y);
				}
			}
			//-- конец удаления

			loclist= rq.responseText.split(';');
			if (loclist.length>2)
			{
				for (i=1;i<loclist.length;i=i+2)
				{
					op= document.createElement('OPTION');
					op.innerHTML = loclist[i+1];
					op.value = loclist[i];
					rtyelem.appendChild(op);
				}
				rtyelem.removeAttribute('disabled');
			}
		}

		else
		{
			document.getElementById(rty).innerHTML = 'Статус: ' + rq.statusText + '. ' + rq.responseText.substr(0,20);
		}

	}
	selected_id= null;
	return true;
}

  // иначе, если идет загрузка или в процессе - показываем слой 'Загружаются данные'
  else if (rq.readyState == 3 || rq.readyState == 1) {
   document.getElementById(rty).innerHTML = rqst(rq.readyState);
	  return false;
  }

}

function rqst(code) {
  switch (code) {
    case 0: return "Uninitialized."; break;
    case 1: return "Loading..."; break;
    case 2: return "Loaded."; break;
    case 3: return "Interactive..."; break;
    case 4: return "Complete."; break;
  }
}

