	function addEvent(obj, evtName, handler)
	{
		if (obj.addEventListener) { obj.addEventListener(evtName, handler, false); }
		else if (obj.attachEvent) { obj.attachEvent('on' + evtName, handler); }
		else { obj.onchange = handler; }
	}
	function cleanup(obj){
		if(obj.options.length>1)
			while(obj.options.length>1)
				obj.removeChild(obj.options[obj.options.length-1]);
	}
	function fill(obj, params){
		var url = 'http://obcity.ru/connect/connect.php';
		HttpRequest.get(url, params, function(response){
			var isSelected=false;
			var opt;
			for(var key in response) 
			if (obj != null && obj.options != null)
			{ obj.options[obj.options.length] = 
				new Option(response[key], key, false, isSelected); opt += response[key] + ' : '; }
//			alert(opt);
		});
	}
	function building_selected(){
		var params;
		var street=document.getElementById('street');
		var building=document.getElementById('building');
		var obj=document.getElementById('tariff');
		// cleanup tariff
		cleanup(obj);
		if(building[building.selectedIndex].value > 0)
			params = { 'street' : street[street.selectedIndex].value, 'building' : building[building.selectedIndex].value };
		else {
			document.getElementById('step3').style.display='none';
			return;
		}
		fill(obj,params);
		if(street[street.selectedIndex].value > 0 && building[building.selectedIndex].value > 0)
		{ document.getElementById('step3').style.display='block'; };
		if(obj)addEvent(obj, 'change', function(){var t=document.getElementById('tariff'); if(t[t.selectedIndex].value > 0) document.getElementById('connect').submit();});
	}
	function street_selected(){
		var params;
		var street=document.getElementById('street');
		var tariff=document.getElementById('tariff');
		var obj=document.getElementById('building');
		// cleanup tariff and building
		cleanup(tariff); cleanup(obj);
		// hide tariff
		if(document.getElementById('step3').style.display=='block') document.getElementById('step3').style.display='none';
		// if selected street is NONE, hide building and return
		if(street[street.selectedIndex].value > 0)
			params = { 'street' : street[street.selectedIndex].value };
		else{
			document.getElementById('step2').style.display='none';
			return;
		}
		fill(obj,params);
		if(street[street.selectedIndex].value > 0)
		{ document.getElementById('step2').style.display='block'; };
		if(obj)addEvent(obj, 'change', building_selected);
	}
	function connect_form(){
		var params;
		var obj=document.getElementById('street');
		document.getElementById('step0').style.display='none';
		document.getElementById('step1').style.display='block';
		fill(obj,params);
		if(obj)addEvent(obj, 'change', street_selected);
	}
	function finalFill(){
		var params = {
		'street' : document.getElementById('nstreet').value,
		'building' : document.getElementById('nbuilding').value,
		'tariff' : document.getElementById('ntariff').value
		};
		var url = 'http://obcity.ru/connect/connect.php';
		HttpRequest.get(url, params, function(response){
			for(var key in response){document.getElementById(key).value=response[key];document.getElementById(key);}
			document.getElementById('fName').focus();
			var o=document.getElementById('tariff'); if(o.value.length>23)o.style.width=6*o.value.length + 'px';
		});
	}

