function utf8_decode (utftext) {
	var string = "";
	var i = 0;
	var c = c1 = c2 = 0;

	while ( i < utftext.length ) {

		c = utftext.charCodeAt(i);

		if (c < 128) {
			string += String.fromCharCode(c);
			i++;
		}
		else if((c > 191) && (c < 224)) {
			c2 = utftext.charCodeAt(i+1);
			string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
			i += 2;
		}
		else {
			c2 = utftext.charCodeAt(i+1);
			c3 = utftext.charCodeAt(i+2);
			string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
			i += 3;
		}

	}
	return string;
}
function clt1(){
	document.getElementById("timepicker1").value="";
	document.getElementById("datepicker1").value="";
}
function clt2(){
	document.getElementById("timepicker2").value="";
	document.getElementById("datepicker2").value="";
}

function loadgeodata (cl,fl){
	loaded[cl] = 2;
	$.getJSON("/geoload/"+cl, function(geo){
		var lul = '';
		var ll = '';
		var tp = '';
		var cb = '';
		var cbv = '';
          $.each(geo, function(i,item){
			if (i > 0){
				if (item.Exp != '0'){
					var list = document.getElementById(lul);
					var firstLi = list.getElementsByTagName('LI')[0];
					var newListElem = document.createElement('LI');
					newListElem.id = tp+'li'+item.ID;
					newListElem.innerHTML = '<label class="trlbl"><input type="checkbox" id="'+tp+item.ID+'" name="'+tp+item.ID+'" value="'+item.PID+'" '+cbv+' />'+item.Name+'</label><ul id="'+tp+'ul'+item.ID+'"><li class="liload" id="'+tp+'ll'+item.ID+'">Загружаю данные</li></ul>';
					list.insertBefore(newListElem, firstLi);			
				} else {
					var list = document.getElementById(lul);
					var firstLi = list.getElementsByTagName('LI')[0];
					var newListElem = document.createElement('LI');
					newListElem.id = tp+'li'+item.ID;
					newListElem.innerHTML = '<label class="trlbl"><input type="checkbox" id="'+tp+item.ID+'" name="'+tp+item.ID+'" value="'+item.PID+'" '+cbv+' />'+item.Name+'</label>';
					list.insertBefore(newListElem, firstLi);	
				}
			} else {
				lul = item.lul;
				ll = item.ll;
				tp = item.tp;
				cb = item.cb;
				if (document.getElementById(cb).checked != false)
				cbv = 'checked';
			}
          });          
		$(document).ready(function(){
			$("#"+lul+"").Tree(0);
			loaded[cl] = 1;
			document.getElementById(ll).style.display = 'none';
			fl();
		});
	});	
}

function geo_expand (mod,cid,oid,rid,ctid){
	
	if (mod == 'region') {
		var list = document.getElementById(mod+'li'+rid);		
		if (ctid > 0){
			fl = function (){
				//поскролить к элементу			
				$("#cityli"+ctid).scrollTo();
				document.getElementById('city'+ctid).checked = true;
				document.getElementById('city'+ctid).click();
			};
		} else {
			fl = function (){};
			//а с какой стати мы тут оказались?
		}
	}
	if (mod == 'okrug') {
		var list = document.getElementById(mod+'li'+oid);		
		if (ctid > 0){
			fl = function (){
				//развернем дальше регион
				geo_expand ('region',cid,oid,rid,ctid);
			};
		} else {
			fl = function (){
				//поскролить к элементу
				$("#regionli"+rid).scrollTo();
				document.getElementById('region'+rid).checked = true;
				document.getElementById('region'+rid).click();
			};
		}
	}
	if (mod == 'country') {
		var list = document.getElementById(mod+'li'+cid);
		if (rid > 0){
			fl = function (){
				//развернем дальше округ
				geo_expand ('okrug',cid,oid,rid,ctid);
			};
		} else {
			if (oid > 0){
				fl = function (){
					//поскролить к элементу			
					$("#okrugli"+oid).scrollTo();
					document.getElementById('okrug'+oid).checked = true;
					document.getElementById('okrug'+oid).click();
				};
			} else {
				fl = function (){
					//поскролить к элементу			
					$("#country"+cid).scrollTo();
					document.getElementById('country'+cid).checked = true;
					document.getElementById('country'+cid).click();
				};				
			}
		}
	}
	
	if (oid > 0){
		//alert(list.id);
		var lnode = list.getElementsByTagName('DIV')[0];
		//alert(lnode.className);
		if (list.className != 'jquery-tree-node'){
			//ветка свернута
			if (loaded[list.id] != 1){			
				if (loaded[list.id] != 2){
					//ветка не загружена
					loadgeodata(list.id,fl);
				} else {
					//ветка загружается и вот тут тонкость...
					list.className = 'jquery-tree-node';
					lnode.innerHTML = "&minus;";
					alert('В данный момент продолжается загрузка данных, повторите поиск чуть позже...');
				}
			} else {
				//ветка уже загружена или загружается
				list.className = 'jquery-tree-node';
				lnode.innerHTML = "&minus;";
				fl();			
			}
			list.className = 'jquery-tree-node';
			lnode.innerHTML = "&minus;";
		} else {
			//верка развернута
			if (loaded[list.id] > 1){
				//ветка загружается и вот тут тонкость...
				alert('В данный момент продолжается загрузка данных, повторите поиск чуть позже...');
			} else {
				//ветка уже загружена
				list.className = 'jquery-tree-node';
				lnode.innerHTML = "&minus;";
				fl();
			}
		}
	} else {
		fl();		
	}
}

function geosearchload (stext){
	if (ots == stext){
		var list = document.getElementById('sresults');
		list.innerHTML = '<img src="/js/images/liload.gif">';
		$.getJSON("/geosearch/"+encodeURIComponent(stext), function(geo){
			var geolist = '';
			var toti = 0;
			if (geo === null){
			} else {
	          $.each(geo, function(i,item){
	          	if (item.ctID > 0){
	          		//город
	          		geolist = geolist+'<div class="mfel"><a href="#flag" id="sfnd'+i+'" onClick="geo_expand(\'country\','+item.cID+','+item.oID+','+item.rID+','+item.ctID+');">'+item.ctName+'</a><div class="fel">находится: <a href="#flag" id="sfnd'+i+'" onClick="geo_expand(\'country\','+item.cID+','+item.oID+','+item.rID+',0);">'+item.rName+'</a> / <a href="#flag" id="sfnd'+i+'" onClick="geo_expand(\'country\','+item.cID+','+item.oID+',0,0);">'+item.oName+'</a> / <a href="#flag" id="sfnd'+i+'" onClick="geo_expand(\'country\','+item.cID+',0,0,0);">'+item.cName+'</a></div></div>';
	          	} else {
		          	if (item.rID > 0){
		          		//регион
		          		geolist = geolist+'<div class="mfel"><a href="#flag" id="sfnd'+i+'" onClick="geo_expand(\'country\','+item.cID+','+item.oID+','+item.rID+',0);">'+item.rName+'</a><div class="fel">находится: <a href="#flag" id="sfnd'+i+'" onClick="geo_expand(\'country\','+item.cID+','+item.oID+',0,0);">'+item.oName+'</a> / <a href="#flag" id="sfnd'+i+'" onClick="geo_expand(\'country\','+item.cID+',0,0,0);">'+item.cName+'</a></div></div>';
		          	} else {
			          	if (item.oID > 0){
			          		//округ
			          		//geolist = geolist+''+'округ:'+item.oID+'<br>';
			          		geolist = geolist+'<div class="mfel"><a href="#flag" id="sfnd'+i+'" onClick="geo_expand(\'country\','+item.cID+','+item.oID+',0,0);">'+item.oName+'</a><div class="fel">находится: <a href="#flag" id="sfnd'+i+'" onClick="geo_expand(\'country\','+item.cID+',0,0,0);">'+item.cName+'</a></div></div>';
			          	} else {
				          	if (item.cID > 0){
				          		//страна
				          		geolist = geolist+'<div class="mfel"><a href="#flag" id="sfnd'+i+'" onClick="geo_expand(\'country\','+item.cID+','+item.oID+','+item.rID+','+item.ctID+');">'+item.cName+'</a></div>';
				          	}
			          	}
		          	}
	          	}
	          	toti = i;
	          });  
			}       
			$(document).ready(function(){
				var list = document.getElementById('sresults');
				list.innerHTML = geolist;
			});
		});	
	}
}

function geosearch (fld){
	if (ots != fld.value){
		ots = fld.value;
		var lngt = fld.value.length;
		if (lngt > 1){
			setTimeout('geosearchload("'+fld.value+'")', 200);
		}
	}
}
