					// реагируем на изменения селектов
					function IfGeoChange(obj)
					{
						// получаем необходимые переменные
						var what = obj.id.split("_");
						var prefix = what[0];
						var what = what[1];
						var value = obj.value;
						// скрываем блоки, которые не нужны
						if (what == "country")
						{
							CachObjects[prefix + 'sel_region'].innerHTML = "";
							CachObjects[prefix + 'sel_region'].style.display = "none";
							CachObjects[prefix + 'sel_city'].innerHTML = "";
							CachObjects[prefix + 'sel_city'].style.display = "none";
							CachObjects[prefix + 'sel_district'].innerHTML = "";
							CachObjects[prefix + 'sel_district'].style.display = "none";
							CachObjects[prefix + 'sel_area'].innerHTML = "";
							CachObjects[prefix + 'sel_area'].style.display = "none";
							CachObjects[prefix + 'sel_village'].innerHTML = "";
							CachObjects[prefix + 'sel_village'].style.display = "none";
							CachObjects[prefix + 'sel_metro'].innerHTML = "";
							CachObjects[prefix + 'sel_metro'].style.display = "none";
							CachObjects[prefix + 'send'].style.display = (value > 0) ? "block" : "none";
						}
						if (what == "region")
						{
							CachObjects[prefix + 'sel_city'].innerHTML = "";
							CachObjects[prefix + 'sel_city'].style.display = "none";
							CachObjects[prefix + 'sel_district'].innerHTML = "";
							CachObjects[prefix + 'sel_district'].style.display = "none";
							CachObjects[prefix + 'sel_area'].innerHTML = "";
							CachObjects[prefix + 'sel_area'].style.display = "none";
							CachObjects[prefix + 'sel_village'].innerHTML = "";
							CachObjects[prefix + 'sel_village'].style.display = "none";
							CachObjects[prefix + 'sel_metro'].innerHTML = "";
							CachObjects[prefix + 'sel_metro'].style.display = "none";
						}
						if (what == "city")
						{
							CachObjects[prefix + 'sel_district'].innerHTML = "";
							CachObjects[prefix + 'sel_district'].style.display = "none";
							CachObjects[prefix + 'sel_area'].innerHTML = "";
							CachObjects[prefix + 'sel_area'].style.display = "none";
							CachObjects[prefix + 'sel_village'].innerHTML = "";
							CachObjects[prefix + 'sel_village'].style.display = "none";
							CachObjects[prefix + 'sel_metro'].innerHTML = "";
							CachObjects[prefix + 'sel_metro'].style.display = "none";
						}
						if (what == "district")
						{
							CachObjects[prefix + 'sel_area'].innerHTML = "";
							CachObjects[prefix + 'sel_area'].style.display = "none";
						}
						// если в селекте выбрано что-то, то лезем получать продолжение
						if (value > 0)
						{
							doGetGeo(prefix, what, value);
						}
					}
					
					// получаем аяксом результат поиска по выбору в селекте
					// what - тип географического объекта
					// val - значение селекта
					requests['doGetGeo'] = "";
					function doGetGeo(prefix, what, val)
					{
						if (requests['doGetGeo'])
						{
							requests['doGetGeo'].abort;
						}
						value = Array();
						value['prefix'] = prefix;
						value['what'] = what;
						value['val'] = val;
						requests['doGetGeo'] = new JsHttpRequest();
						requests['doGetGeo'].onreadystatechange = function()
						{
							if (requests['doGetGeo'].readyState == 4)
							{
								if (requests['doGetGeo'].responseText)
								{
									CachObjects['pageerror'].innerHTML += requests['doGetGeo'].responseText;
									CachObjects['pageerror'].style.display = "block";
									setTimeout("CachObjects['pageerror'].style.display = 'none'", 15000);
								}
								if (requests['doGetGeo'].responseJS.answer)
								{
									if (what == "country" && requests['doGetGeo'].responseJS.answer.region != "")
									{
										CachObjects[prefix + 'sel_region'].innerHTML = requests['doGetGeo'].responseJS.answer.region;
										CachObjects[prefix + 'sel_region'].style.display = "block";
									}
									if (what == "region" && requests['doGetGeo'].responseJS.answer.city != "")
									{
										CachObjects[prefix + 'sel_city'].innerHTML = requests['doGetGeo'].responseJS.answer.city;
										CachObjects[prefix + 'sel_city'].style.display = "block";
									}
									if (what == "city")
									{
										if (requests['doGetGeo'].responseJS.answer.metro != "")
										{
											CachObjects[prefix + 'sel_metro'].innerHTML = requests['doGetGeo'].responseJS.answer.metro;
											CachObjects[prefix + 'sel_metro'].style.display = "block";
										}
										else
										{
											if (requests['doGetGeo'].responseJS.answer.district != "")
											{
												CachObjects[prefix + 'sel_district'].innerHTML = requests['doGetGeo'].responseJS.answer.district;
												CachObjects[prefix + 'sel_district'].style.display = "block";
											}
											if (requests['doGetGeo'].responseJS.answer.village != "")
											{
												CachObjects[prefix + 'sel_village'].innerHTML = requests['doGetGeo'].responseJS.answer.village;
												CachObjects[prefix + 'sel_village'].style.display = "block";
											}
										}
									}
									if (what == "district" && requests['doGetGeo'].responseJS.answer.area != "")
									{
										CachObjects[prefix + 'sel_area'].innerHTML = requests['doGetGeo'].responseJS.answer.area;
										CachObjects[prefix + 'sel_area'].style.display = "block";
									}
									if (dev_show == 1)
									{
//										CachObjects['ajax_stat'].innerHTML += "<br>doGetGeo\n" + requests['doGetGeo'].responseJS.statistic;
									}
								}
							}
						}
						requests['doGetGeo'].open(null, '/data/templates/serverside/ajax.geography_main.php', true);
						requests['doGetGeo'].send( { g : value } );
					}
					
					// пишем куки и переходим куда нам надо
					function StartSearch(obj)
					{
						var what = obj.id.split("_");
						var side = (what[0] === 'org') ? 'org' : ((what[0] === 'spec') ? 'specialist' : '');
						var tourl = "";
						tourl 	= (gid(what[0] + '_country')) 	? ((gid(what[0] + '_country').value > 0) 	? 'c' + gid(what[0] + '_country').value + '/' 	: tourl) 	: tourl;
						tourl 	= (gid(what[0] + '_region')) 		? ((gid(what[0] + '_region').value > 0) 		? 'r' + gid(what[0] + '_region').value + '/' 		: tourl) 	: tourl;
						tourl 	= (gid(what[0] + '_city')) 			? ((gid(what[0] + '_city').value > 0) 			? 't' + gid(what[0] + '_city').value + '/' 			: tourl) 	: tourl;
						tourl 	= (gid(what[0] + '_metro')) 		? ((gid(what[0] + '_metro').value > 0) 		? 'm' + gid(what[0] + '_metro').value + '/' 		: tourl) 	: tourl;
						tourl 	= (gid(what[0] + '_district')) 	? ((gid(what[0] + '_district').value > 0) 	? 'd' + gid(what[0] + '_district').value + '/' 	: tourl) 	: tourl;
						tourl 	= (gid(what[0] + '_area')) 			? ((gid(what[0] + '_area').value > 0) 			? 'a' + gid(what[0] + '_area').value + '/' 			: tourl) 	: tourl;
						tourl		= (gid(what[0] + '_village')) 	? ((gid(what[0] + '_village').value > 0) 	? 'v' + gid(what[0] + '_village').value + '/' 	: tourl) 	: tourl;
						window.location.href = '/' + side + '/' + tourl;
					}			
