var Translit={Ukr:'АаБбВвГгҐґДдЕеЄєЖжЗзИиІіЇїЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЬьЮюЯя\'',Caps:'АБВГҐДЕЄЖЗИІЇЙКЛМНОПРСТУФХЦЧШЩЬЮЯ',Rule1:[['є','ye'],['ї','yi'],['й','y'],['ю','yu'],['я','ya'],['Є','Ye'],['Ї','Yi'],['Й','Y'],['Ю','Yu'],['Я','Ya']],Rule2:[['а','a'],['б','b'],['в','v'],['г','h'],['ґ','g'],['д','d'],['е','e'],['є','ie'],['ж','zh'],['з','z'],['и','y'],['і','i'],['ї','i'],['й','i'],['к','k'],['л','l'],['м','m'],['н','n'],['о','o'],['п','p'],['р','r'],['с','s'],['т','t'],['у','u'],['ф','f'],['х','kh'],['ц','ts'],['ч','ch'],['ш','sh'],['щ','sch'],['ь',''],['ю','iu'],['я','ia'],['\'',''],['А','A'],['Б','B'],['В','V'],['Г','H'],['Ґ','G'],['Д','D'],['Е','E'],['Є','Ie'],['Ж','Zh'],['З','Z'],['И','Y'],['І','I'],['Ї','I'],['Й','I'],['К','K'],['Л','L'],['М','M'],['Н','N'],['О','O'],['П','P'],['Р','R'],['С','S'],['Т','T'],['У','U'],['Ф','F'],['Х','Kh'],['Ц','Ts'],['Ч','Ch'],['Ш','Sh'],['Щ','Sch'],['Ь',''],['Ю','Iu'],['Я','Ia']],UseRule:function(c,rule){for(var i=0;i<rule.length;i++){if(rule[i][0]==c){return rule[i][1];}}return'';},Char:function(c,c0,c1){var ret='';if(c0==''){var ret=Translit.UseRule(c,Translit.Rule1);if(ret==''){ret=Translit.UseRule(c,Translit.Rule2);}}else{if(c=='г'&&(c0=='З'||c0=='з')){ret='gh';}else{ret=Translit.UseRule(c,Translit.Rule2);}}if((Translit.Caps.indexOf(c)!=-1)&&(ret.length>1)){if(!(c0==''&&c1=='')&&((c1!=''&&Translit.Caps.indexOf(c1)!=-1)||(c0!=''&&Translit.Caps.indexOf(c0)!=-1))){ret=ret.toUpperCase();}}return ret;},Word:function(word){var ret='';var len=word.length;for(var i=0;i<len;i++){var c=word.charAt(i);var c0=i>0?word.charAt(i-1):'';var c1=i<(len-1)?word.charAt(i+1):'';ret+=Translit.Char(c,c0,c1);}return ret;},Text:function(text){var ret='';var len=text.length;var word='';for(var i=0;i<len;i++){var c=text.charAt(i);if(Translit.Ukr.indexOf(c)==-1){if(word.length>0){ret+=Translit.Word(word);word='';}ret+=c;}else{word+=c;if(i==len-1){ret+=Translit.Word(word);}}}return ret;}};if(!this.JSON){JSON={};}(function(){function f(n){return n<10?'0'+n:n;}if(typeof Date.prototype.toJSON!=='function'){Date.prototype.toJSON=function(key){return this.getUTCFullYear()+'-'+f(this.getUTCMonth()+1)+'-'+f(this.getUTCDate())+'T'+f(this.getUTCHours())+':'+f(this.getUTCMinutes())+':'+f(this.getUTCSeconds())+'Z';};String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(key){return this.valueOf();};}var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'},rep;function quote(string){escapable.lastIndex=0;return escapable.test(string)?'"'+string.replace(escapable,function(a){var c=meta[a];return typeof c==='string'?c:'\\u'+('0000'+a.charCodeAt(0).toString(16)).slice(-4);})+'"':'"'+string+'"';}function str(key,holder){var i,k,v,length,mind=gap,partial,value=holder[key];if(value&&typeof value==='object'&&typeof value.toJSON==='function'){value=value.toJSON(key);}if(typeof rep==='function'){value=rep.call(holder,key,value);}switch(typeof value){case'string':return quote(value);case'number':return isFinite(value)?String(value):'null';case'boolean':case'null':return String(value);case'object':if(!value){return'null';}gap+=indent;partial=[];if(Object.prototype.toString.apply(value)==='[object Array]'){length=value.length;for(i=0;i<length;i+=1){partial[i]=str(i,value)||'null';}v=partial.length===0?'[]':gap?'[\n'+gap+partial.join(',\n'+gap)+'\n'+mind+']':'['+partial.join(',')+']';gap=mind;return v;}if(rep&&typeof rep==='object'){length=rep.length;for(i=0;i<length;i+=1){k=rep[i];if(typeof k==='string'){v=str(k,value);if(v){partial.push(quote(k)+(gap?': ':':')+v);}}}}else{for(k in value){if(Object.hasOwnProperty.call(value,k)){v=str(k,value);if(v){partial.push(quote(k)+(gap?': ':':')+v);}}}}v=partial.length===0?'{}':gap?'{\n'+gap+partial.join(',\n'+gap)+'\n'+mind+'}':'{'+partial.join(',')+'}';gap=mind;return v;}}if(typeof JSON.stringify!=='function'){JSON.stringify=function(value,replacer,space){var i;gap='';indent='';if(typeof space==='number'){for(i=0;i<space;i+=1){indent+=' ';}}else if(typeof space==='string'){indent=space;}rep=replacer;if(replacer&&typeof replacer!=='function'&&(typeof replacer!=='object'||typeof replacer.length!=='number')){throw new Error('JSON.stringify');}return str('',{'':value});};}if(typeof JSON.parse!=='function'){JSON.parse=function(text,reviver){var j;function walk(holder,key){var k,v,value=holder[key];if(value&&typeof value==='object'){for(k in value){if(Object.hasOwnProperty.call(value,k)){v=walk(value,k);if(v!==undefined){value[k]=v;}else{delete value[k];}}}}return reviver.call(holder,key,value);}cx.lastIndex=0;if(cx.test(text)){text=text.replace(cx,function(a){return'\\u'+('0000'+a.charCodeAt(0).toString(16)).slice(-4);});}if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,'@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,''))){j=eval('('+text+')');return typeof reviver==='function'?walk({'':j},''):j;}throw new SyntaxError('JSON.parse');};}})();(function(c){var a=["DOMMouseScroll","mousewheel"];c.event.special.mousewheel={setup:function(){if(this.addEventListener){for(var d=a.length;d;){this.addEventListener(a[--d],b,false)}}else{this.onmousewheel=b}},teardown:function(){if(this.removeEventListener){for(var d=a.length;d;){this.removeEventListener(a[--d],b,false)}}else{this.onmousewheel=null}}};c.fn.extend({mousewheel:function(d){return d?this.bind("mousewheel",d):this.trigger("mousewheel")},unmousewheel:function(d){return this.unbind("mousewheel",d)}});function b(f){var d=[].slice.call(arguments,1),g=0,e=true;f=c.event.fix(f||window.event);f.type="mousewheel";if(f.wheelDelta){g=f.wheelDelta/120}if(f.detail){g=-f.detail/3}d.unshift(f,g);return c.event.handle.apply(this,d)}})(jQuery);jQuery.searchSuggest=function(input,options){var $input=$(input);var $inputContainer=$('#searchForm');if(options.inputClass)$input.addClass(options.inputClass);var results=document.createElement("div");var $results=$(results).hide().addClass(options.resultsClass).css("position","absolute");$("body").append(results);var timeout=null;var prev="";var active=-1;var altcache={};var keyb=false;var hasFocus=false;var lastKeyPressCode=null;var mouseDownOnSelect=false;var hidingResults=false;if(options.data!=null){for(var i=0;i<options.data.length;i++){var ukr=options.data[i];if(ukr.length>0){var eng=Translit.Text(ukr);pushToCache(ukr);pushToCache(eng);}}}$input.keydown(function(e){lastKeyPressCode=e.keyCode;switch(e.keyCode){case 38:e.preventDefault();moveSelect(-1);break;case 40:e.preventDefault();moveSelect(1);break;case 13:if(selectCurrent()){hideResults();e.preventDefault();}else{hideResults();tbSearch.Search();}break;default:active=-1;if(timeout)clearTimeout(timeout);timeout=setTimeout(function(){onChange();},options.delay);break;}}).focus(function(){hasFocus=true;}).blur(function(){hasFocus=false;if(!mouseDownOnSelect){hideResults();}});hideResultsNow();function onChange(){if(lastKeyPressCode==46||(lastKeyPressCode>8&&lastKeyPressCode<32))return $results.hide();var v=$input.val();if(v==prev)return;prev=v;if(v.length>=options.minChars){$input.addClass(options.loadingClass);requestData(v);}else{$input.removeClass(options.loadingClass);$results.hide();}};function moveSelect(step){var lis=$("li",results);if(!lis)return;active+=step;if(active<0){active=0;}else if(active>=lis.size()){active=lis.size()-1;}lis.removeClass("ac_over");$(lis[active]).addClass("ac_over");};function selectCurrent(){var li=$("li.ac_over",results)[0];if(!li){var $li=$("li",results);if(options.selectOnly){if($li.length==1)li=$li[0];}else if(options.selectFirst){li=$li[0];}}if(li){selectItem(li);return true;}else{return false;}};function selectItem(li){if(!li){li=document.createElement("li");li.selectValue="";}var v=$.trim(li.selectValue?li.selectValue:li.innerHTML);input.lastSelected=v;prev=v;$results.empty();$input.val(v);hideResultsNow();if(options.onItemSelect){setTimeout(function(){options.onItemSelect(li)},1);}};function createSelection(start,end){var field=$input.get(0);if(field.createTextRange){var selRange=field.createTextRange();selRange.collapse(true);selRange.moveStart("character",start);selRange.moveEnd("character",end);selRange.select();}else if(field.setSelectionRange){field.setSelectionRange(start,end);}else{if(field.selectionStart){field.selectionStart=start;field.selectionEnd=end;}}field.focus();};function autoFill(sValue){if(lastKeyPressCode!=8){$input.val($input.val()+sValue.substring(prev.length));createSelection(prev.length,sValue.length);}};function showResults(){var offset=$inputContainer.offset();$results.css({width:parseInt($inputContainer.outerWidth()-2)+"px",top:parseInt(offset.top+$inputContainer.outerHeight()-1)+"px",left:parseInt(offset.left)+"px"}).show();};function hideResults(){if(timeout)clearTimeout(timeout);timeout=setTimeout(hideResultsNow,200);};function hideResultsNow(){if(hidingResults){return;}hidingResults=true;if(timeout){clearTimeout(timeout);}var v=$input.removeClass(options.loadingClass).val();if($results.is(":visible")){$results.hide();}if(options.mustMatch){if(!input.lastSelected||input.lastSelected!=v){selectItem(null);}}hidingResults=false;};function receiveData(q,data){if(data){$input.removeClass(options.loadingClass);results.innerHTML="";if(!hasFocus||data.length==0)return hideResultsNow();results.appendChild(dataToDom(data));if(options.autoFill&&($input.val().toLowerCase()==q.toLowerCase()))autoFill(data[0][0]);showResults();}else{hideResultsNow();}};function dataToDom(data){var ul=document.createElement("ul");var num=data.length;if((options.maxItemsToShow>0)&&(options.maxItemsToShow<num))num=options.maxItemsToShow;for(var i=0;i<num;i++){var row=data[i];if(!row)continue;var li=document.createElement("li");if(true){li.innerHTML=row;li.selectValue=row;}var extra=null;if(row.length>1){extra=[];for(var j=1;j<row.length;j++){extra[extra.length]=row[j];}}ul.appendChild(li);$(li).hover(function(){$("li",ul).removeClass("ac_over");$(this).addClass("ac_over");active=$("li",ul).indexOf($(this).get(0));},function(){$(this).removeClass("ac_over");}).click(function(e){e.preventDefault();e.stopPropagation();selectItem(this)});}$(ul).mousedown(function(){mouseDownOnSelect=true;}).mouseup(function(){mouseDownOnSelect=false;});return ul;};function requestData(q){q=q.toLowerCase();var data=loadFromCache(q);if(data)receiveData(q,data);else $input.removeClass(options.loadingClass);};function loadFromCache(q){if(!q)return null;var arrq=q.split(' ');var reFilter=/(вул.|пров.|vul.|prov.)/;var tmp=[];for(var i=0;i<Math.min(arrq.length,5);i++){var subq=arrq[i].replace(/^\s+|\s+$/g,'');if(subq.length>0){var c=subq.substring(0,1).toLowerCase();if(altcache[c]){if(subq.length==1){tmp=tmp.concat(altcache[subq]);continue;}else{var cache=altcache[c];for(var j=0;j<cache.length;j++){var test=cache[j].replace(reFilter,'').toLowerCase();if(test.indexOf(subq)!=-1){tmp[tmp.length]=cache[j];}}}}}}var tmp2=[];var l=tmp.length;for(var i=0;i<l;i++){for(var j=i+1;j<l;j++){if(tmp[i]===tmp[j])j=++i;}tmp2.push(tmp[i]);}tmp2.sort(tbSearch.CompareStreets);return tmp2;};function pushToCache(str){var tmp=str.split(' ');for(var i=0;i<tmp.length;i++){var w=tmp[i];if(w!='вул.'&&w!='vul.'&&w!='prov.'&&w!='пров.'){var c=w.substring(0,1).toLowerCase();if(c!='('){if(!altcache[c])altcache[c]=[];altcache[c].push(str);}}}};};jQuery.fn.searchSuggset=function(data,options){if($.browser.msie&&parseInt($.browser.version)<6)return this;options=options||{};options.data=data;options=$.extend({inputClass:"ac_input",resultsClass:"ac_results",loadingClass:"ac_loading",minChars:1,delay:400,mustMatch:0,selectFirst:false,selectOnly:false,maxItemsToShow:10,autoFill:false,width:0},options);options.width=parseInt(options.width,10);this.each(function(){var input=this;new jQuery.searchSuggest(input,options);});return this;};jQuery.fn.indexOf=function(e){for(var i=0;i<this.length;i++){if(this[i]==e)return i;}return-1;};var _canLog=true;function _log(mode,msg){if(!_canLog)return;var args=Array.prototype.slice.apply(arguments,[1]);var dt=new Date();var tag=dt.getHours()+":"+dt.getMinutes()+":"+dt.getSeconds()+"."+dt.getMilliseconds();args[0]=tag+" - "+args[0];try{switch(mode){case"info":window.console.info.apply(window.console,args);break;case"warn":window.console.warn.apply(window.console,args);break;default:window.console.log.apply(window.console,args);}}catch(e){if(!window.console)_canLog=false;}}function logMsg(msg){Array.prototype.unshift.apply(arguments,["debug"]);_log.apply(this,arguments);}var getDynaTreePersistData=undefined;var DTNodeStatus_Error=-1;var DTNodeStatus_Loading=1;var DTNodeStatus_Ok=0;;(function($){var Class={create:function(){return function(){this.initialize.apply(this,arguments);}}};var DynaTreeNode=Class.create();DynaTreeNode.prototype={initialize:function(parent,tree,data){this.parent=parent;this.tree=tree;if(typeof data=="string")data={title:data};if(data.key==undefined)data.key="_"+tree._nodeCount++;this.data=$.extend({},$.ui.dynatree.nodedatadefaults,data);this.div=null;this.span=null;this.childList=null;this.isLoading=false;this.hasSubSel=false;},toString:function(){return"dtnode<"+this.data.key+">: '"+this.data.title+"'";},toDict:function(recursive,callback){var dict=$.extend({},this.data);dict.activate=(this.tree.activeNode===this);dict.focus=(this.tree.focusNode===this);dict.expand=this.bExpanded;dict.select=this.bSelected;if(callback)callback(dict);if(recursive&&this.childList){dict.children=[];for(var i=0;i<this.childList.length;i++)dict.children.push(this.childList[i].toDict(true,callback));}else{delete dict.children;}return dict;},_getInnerHtml:function(){var opts=this.tree.options;var cache=this.tree.cache;var rootParent=opts.rootVisible?null:this.tree.tnRoot;var bHideFirstExpander=(opts.rootVisible&&opts.minExpandLevel>0)||opts.minExpandLevel>1;var bHideFirstConnector=opts.rootVisible||opts.minExpandLevel>0;var res="";var p=this.parent;while(p){if(bHideFirstConnector&&p==rootParent)break;res=(p.isLastSibling()?cache.tagEmpty:cache.tagVline)+res;p=p.parent;}if(bHideFirstExpander&&this.parent==rootParent){}else if(this.childList||this.data.isLazy){res+=cache.tagExpander;}else{res+=cache.tagConnector;}if(opts.checkbox&&this.data.hideCheckbox!=true&&!this.data.isStatusNode){res+=cache.tagCheckbox;}if(this.data.icon){res+="<img src='"+opts.imagePath+this.data.icon+"' alt='' />";}else if(this.data.icon==false){}else{res+=cache.tagNodeIcon;}var tooltip=(this.data&&typeof this.data.tooltip=="string")?" title='"+this.data.tooltip+"'":"";res+="<a href='#' class='"+opts.classNames.title+"'"+tooltip+">"+this.data.title+"</a>";return res;},_fixOrder:function(){var cl=this.childList;if(!cl)return;var childDiv=this.div.firstChild.nextSibling;for(var i=0;i<cl.length-1;i++){var childNode1=cl[i];var childNode2=childDiv.firstChild.dtnode;if(childNode1!==childNode2){this.tree.logDebug("_fixOrder: mismatch at index "+i+": "+childNode1+" != "+childNode2);this.div.insertBefore(childNode1.div,childNode2.div);}else{childDiv=childDiv.nextSibling;}}},render:function(bDeep,bHidden){var opts=this.tree.options;var cn=opts.classNames;var isLastSib=this.isLastSibling();if(!this.div){this.span=document.createElement("span");this.span.dtnode=this;if(this.data.key)this.span.id=this.tree.options.idPrefix+this.data.key;this.div=document.createElement("div");this.div.appendChild(this.span);if(this.parent){this.parent.div.appendChild(this.div);}if(this.parent==null&&!this.tree.options.rootVisible)this.span.style.display="none";}this.span.innerHTML=this._getInnerHtml();this.div.style.display=(this.parent==null||this.parent.bExpanded?"":"none");var cnList=[];cnList.push((this.data.isFolder)?cn.folder:cn.document);if(this.bExpanded)cnList.push(cn.expanded);if(this.childList!=null)cnList.push(cn.hasChildren);if(this.data.isLazy&&this.childList==null)cnList.push(cn.lazy);if(isLastSib)cnList.push(cn.lastsib);if(this.bSelected)cnList.push(cn.selected);if(this.hasSubSel)cnList.push(cn.partsel);if(this.tree.activeNode===this)cnList.push(cn.active);if(this.data.addClass)cnList.push(this.data.addClass);cnList.push(cn.combinedExpanderPrefix+(this.bExpanded?"e":"c")+(this.data.isLazy&&this.childList==null?"d":"")+(isLastSib?"l":""));cnList.push(cn.combinedIconPrefix+(this.bExpanded?"e":"c")+(this.data.isFolder?"f":""));this.span.className=cnList.join(" ");if(bDeep&&this.childList&&(bHidden||this.bExpanded)){for(var i=0;i<this.childList.length;i++){this.childList[i].render(bDeep,bHidden)}this._fixOrder();}},hasChildren:function(){return this.childList!=null;},isLastSibling:function(){var p=this.parent;if(!p)return true;return p.childList[p.childList.length-1]===this;},prevSibling:function(){if(!this.parent)return null;var ac=this.parent.childList;for(var i=1;i<ac.length;i++)if(ac[i]===this)return ac[i-1];return null;},nextSibling:function(){if(!this.parent)return null;var ac=this.parent.childList;for(var i=0;i<ac.length-1;i++)if(ac[i]===this)return ac[i+1];return null;},_setStatusNode:function(data){var firstChild=(this.childList?this.childList[0]:null);if(!data){if(firstChild){this.div.removeChild(firstChild.div);if(this.childList.length==1)this.childList=null;else this.childList.shift();}}else if(firstChild){data.isStatusNode=true;firstChild.data=data;firstChild.render(false,false);}else{data.isStatusNode=true;firstChild=this.addChild(data);}},setLazyNodeStatus:function(lts,opts){var tooltip=(opts&&opts.tooltip)?opts.tooltip:null;var info=(opts&&opts.info)?" ("+opts.info+")":"";switch(lts){case DTNodeStatus_Ok:this._setStatusNode(null);this.isLoading=false;this.render(false,false);if(this.tree.options.autoFocus){if(this===this.tree.tnRoot&&!this.tree.options.rootVisible&&this.childList){this.childList[0].focus();}else{this.focus();}}break;case DTNodeStatus_Loading:this.isLoading=true;this._setStatusNode({title:this.tree.options.strings.loading+info,tooltip:tooltip,addClass:this.tree.options.classNames.nodeWait});break;case DTNodeStatus_Error:this.isLoading=false;this._setStatusNode({title:this.tree.options.strings.loadError+info,tooltip:tooltip,addClass:this.tree.options.classNames.nodeError});break;default:throw"Bad LazyNodeStatus: '"+lts+"'.";}},_parentList:function(includeRoot,includeSelf){var l=[];var dtn=includeSelf?this:this.parent;while(dtn){if(includeRoot||dtn.parent)l.unshift(dtn);dtn=dtn.parent;};return l;},getLevel:function(){var level=0;var dtn=this.parent;while(dtn){level++;dtn=dtn.parent;};return level;},_getTypeForOuterNodeEvent:function(event){var cns=this.tree.options.classNames;var target=event.target;if(target.className.indexOf(cns.folder)<0&&target.className.indexOf(cns.document)<0){return null}var eventX=event.pageX-target.offsetLeft;var eventY=event.pageY-target.offsetTop;for(var i=0;i<target.childNodes.length;i++){var cn=target.childNodes[i];var x=cn.offsetLeft-target.offsetLeft;var y=cn.offsetTop-target.offsetTop;var nx=cn.clientWidth,ny=cn.clientHeight;if(eventX>=x&&eventX<=(x+nx)&&eventY>=y&&eventY<=(y+ny)){if(cn.className==cns.title)return"title";else if(cn.className==cns.expander)return"expander";else if(cn.className==cns.checkbox)return"checkbox";else if(cn.className==cns.nodeIcon)return"icon";}}return"prefix";},getEventTargetType:function(event){var tcn=event&&event.target?event.target.className:"";var cns=this.tree.options.classNames;if(tcn==cns.title)return"title";else if(tcn==cns.expander)return"expander";else if(tcn==cns.checkbox)return"checkbox";else if(tcn==cns.nodeIcon)return"icon";else if(tcn==cns.empty||tcn==cns.vline||tcn==cns.connector)return"prefix";else if(tcn.indexOf(cns.folder)>=0||tcn.indexOf(cns.document)>=0)return this._getTypeForOuterNodeEvent(event);return null;},isVisible:function(){var parents=this._parentList(true,false);for(var i=0;i<parents.length;i++)if(!parents[i].bExpanded)return false;return true;},makeVisible:function(){var parents=this._parentList(true,false);for(var i=0;i<parents.length;i++)parents[i]._expand(true);},focus:function(){this.makeVisible();try{$(this.span).find(">a").focus();}catch(e){}},_activate:function(flag,fireEvents){this.tree.logDebug("dtnode._activate(%o, fireEvents=%o) - %o",flag,fireEvents,this);var opts=this.tree.options;if(this.data.isStatusNode)return;if(fireEvents&&opts.onQueryActivate&&opts.onQueryActivate.call(this.span,flag,this)==false)return;if(flag){if(this.tree.activeNode){if(this.tree.activeNode===this)return;this.tree.activeNode.deactivate();}if(opts.activeVisible)this.makeVisible();this.tree.activeNode=this;if(opts.persist)$.cookie(opts.cookieId+"-active",this.data.key,opts.cookie);this.tree.persistence.activeKey=this.data.key;$(this.span).addClass(opts.classNames.active);if(fireEvents&&opts.onActivate)opts.onActivate.call(this.span,this);}else{if(this.tree.activeNode===this){var opts=this.tree.options;if(opts.onQueryActivate&&opts.onQueryActivate.call(this.span,false,this)==false)return;$(this.span).removeClass(opts.classNames.active);if(opts.persist){$.cookie(opts.cookieId+"-active","",opts.cookie);}this.tree.persistence.activeKey=null;this.tree.activeNode=null;if(fireEvents&&opts.onDeactivate)opts.onDeactivate.call(this.span,this);}}},activate:function(){this._activate(true,true);},deactivate:function(){this._activate(false,true);},isActive:function(){return(this.tree.activeNode===this);},_userActivate:function(){var activate=true;var expand=false;if(this.data.isFolder){switch(this.tree.options.clickFolderMode){case 2:activate=false;expand=true;break;case 3:activate=expand=true;break;}}if(this.parent==null&&this.tree.options.minExpandLevel>0){expand=false;}if(expand){this.toggleExpand();this.focus();}if(activate){this.activate();}},_setSubSel:function(hasSubSel){if(hasSubSel){this.hasSubSel=true;$(this.span).addClass(this.tree.options.classNames.partsel);}else{this.hasSubSel=false;$(this.span).removeClass(this.tree.options.classNames.partsel);}},_fixSelectionState:function(){if(this.bSelected){this.visit(function(dtnode){dtnode.parent._setSubSel(true);dtnode._select(true,false,false);});var p=this.parent;while(p){p._setSubSel(true);var allChildsSelected=true;for(var i=0;i<p.childList.length;i++){var n=p.childList[i];if(!n.bSelected&&!n.data.isStatusNode){allChildsSelected=false;break;}}if(allChildsSelected)p._select(true,false,false);p=p.parent;}}else{this._setSubSel(false);this.visit(function(dtnode){dtnode._setSubSel(false);dtnode._select(false,false,false);});var p=this.parent;while(p){p._select(false,false,false);var isPartSel=false;for(var i=0;i<p.childList.length;i++){if(p.childList[i].bSelected||p.childList[i].hasSubSel){isPartSel=true;break;}}p._setSubSel(isPartSel);p=p.parent;}}},_select:function(sel,fireEvents,deep){var opts=this.tree.options;if(this.data.isStatusNode)return;if(this.bSelected==sel){return;}if(fireEvents&&opts.onQuerySelect&&opts.onQuerySelect.call(this.span,sel,this)==false)return;if(opts.selectMode==1&&sel){this.tree.visit(function(dtnode){if(dtnode.bSelected){dtnode._select(false,false,false);return false;}});}this.bSelected=sel;if(sel){if(opts.persist)this.tree.persistence.addSelect(this.data.key);$(this.span).addClass(opts.classNames.selected);if(deep&&opts.selectMode==3)this._fixSelectionState();if(fireEvents&&opts.onSelect)opts.onSelect.call(this.span,true,this);}else{if(opts.persist)this.tree.persistence.clearSelect(this.data.key);$(this.span).removeClass(opts.classNames.selected);if(deep&&opts.selectMode==3)this._fixSelectionState();if(fireEvents&&opts.onSelect)opts.onSelect.call(this.span,false,this);}},select:function(sel){if(this.data.unselectable)return this.bSelected;return this._select(sel!=false,true,true);},toggleSelect:function(){return this.select(!this.bSelected);},isSelected:function(){return this.bSelected;},_loadContent:function(){try{var opts=this.tree.options;this.tree.logDebug("_loadContent: start - %o",this);this.setLazyNodeStatus(DTNodeStatus_Loading);if(true==opts.onLazyRead.call(this.span,this)){this.setLazyNodeStatus(DTNodeStatus_Ok);this.tree.logDebug("_loadContent: succeeded - %o",this);}}catch(e){this.setLazyNodeStatus(DTNodeStatus_Error);this.tree.logWarning("_loadContent: failed - %o",e);}},_expand:function(bExpand){if(this.bExpanded==bExpand){return;}var opts=this.tree.options;if(!bExpand&&this.getLevel()<opts.minExpandLevel){this.tree.logDebug("dtnode._expand(%o) forced expand - %o",bExpand,this);return;}if(opts.onQueryExpand&&opts.onQueryExpand.call(this.span,bExpand,this)==false)return;this.bExpanded=bExpand;if(opts.persist){if(bExpand)this.tree.persistence.addExpand(this.data.key);else this.tree.persistence.clearExpand(this.data.key);}this.render(false);if(this.bExpanded&&this.parent&&opts.autoCollapse){var parents=this._parentList(false,true);for(var i=0;i<parents.length;i++)parents[i].collapseSiblings();}if(opts.activeVisible&&this.tree.activeNode&&!this.tree.activeNode.isVisible()){this.tree.activeNode.deactivate();}if(bExpand&&this.data.isLazy&&this.childList==null&&!this.isLoading){this._loadContent();return;}var fxDuration=opts.fx?(opts.fx.duration||200):0;if(this.childList){for(var i=0;i<this.childList.length;i++){var $child=$(this.childList[i].div);if(fxDuration){if(bExpand!=$child.is(':visible'))$child.animate(opts.fx,fxDuration);}else{if(bExpand)$child.show();else $child.hide();}}}if(opts.onExpand)opts.onExpand.call(this.span,bExpand,this);},expand:function(flag){if(!this.childList&&!this.data.isLazy&&flag)return;if(this.parent==null&&this.tree.options.minExpandLevel>0&&!flag)return;this._expand(flag);},toggleExpand:function(){this.expand(!this.bExpanded);},collapseSiblings:function(){if(this.parent==null)return;var ac=this.parent.childList;for(var i=0;i<ac.length;i++){if(ac[i]!==this&&ac[i].bExpanded)ac[i]._expand(false);}},onClick:function(event){var targetType=this.getEventTargetType(event);if(targetType=="expander"){this.toggleExpand();this.focus();}else if(targetType=="checkbox"){this.toggleSelect();this.focus();}else{this._userActivate();this.span.getElementsByTagName("a")[0].focus();}return false;},onDblClick:function(event){},onKeydown:function(event){var handled=true;switch(event.which){case 107:case 187:if(!this.bExpanded)this.toggleExpand();break;case 109:case 189:if(this.bExpanded)this.toggleExpand();break;case 32:this._userActivate();break;case 8:if(this.parent)this.parent.focus();break;case 37:if(this.bExpanded){this.toggleExpand();this.focus();}else if(this.parent&&(this.tree.options.rootVisible||this.parent.parent)){this.parent.focus();}break;case 39:if(!this.bExpanded&&(this.childList||this.data.isLazy)){this.toggleExpand();this.focus();}else if(this.childList){this.childList[0].focus();}break;case 38:var sib=this.prevSibling();while(sib&&sib.bExpanded&&sib.childList)sib=sib.childList[sib.childList.length-1];if(!sib&&this.parent&&(this.tree.options.rootVisible||this.parent.parent))sib=this.parent;if(sib)sib.focus();break;case 40:var sib;if(this.bExpanded&&this.childList){sib=this.childList[0];}else{var parents=this._parentList(false,true);for(var i=parents.length-1;i>=0;i--){sib=parents[i].nextSibling();if(sib)break;}}if(sib)sib.focus();break;default:handled=false;}return!handled;},onKeypress:function(event){},onFocus:function(event){var opts=this.tree.options;if(event.type=="blur"||event.type=="focusout"){if(opts.onBlur)opts.onBlur.call(this.span,this);if(this.tree.tnFocused)$(this.tree.tnFocused.span).removeClass(opts.classNames.focused);this.tree.tnFocused=null;if(opts.persist)$.cookie(opts.cookieId+"-focus","",opts.cookie);}else if(event.type=="focus"||event.type=="focusin"){if(this.tree.tnFocused&&this.tree.tnFocused!==this){this.tree.logDebug("dtnode.onFocus: out of sync: curFocus: %o",this.tree.tnFocused);$(this.tree.tnFocused.span).removeClass(opts.classNames.focused);}this.tree.tnFocused=this;if(opts.onFocus)opts.onFocus.call(this.span,this);$(this.tree.tnFocused.span).addClass(opts.classNames.focused);if(opts.persist)$.cookie(opts.cookieId+"-focus",this.data.key,opts.cookie);}},visit:function(fn,data,includeSelf){var n=0;if(includeSelf==true){if(fn(this,data)==false)return 1;n++;}if(this.childList)for(var i=0;i<this.childList.length;i++)n+=this.childList[i].visit(fn,data,true);return n;},remove:function(){if(this===this.tree.root)return false;return this.parent.removeChild(this);},removeChild:function(tn){var ac=this.childList;if(ac.length==1){if(tn!==ac[0])throw"removeChild: invalid child";return this.removeChildren();}if(tn===this.tree.activeNode)tn.deactivate();if(this.tree.options.persist){if(tn.bSelected)this.tree.persistence.clearSelect(tn.data.key);if(tn.bExpanded)this.tree.persistence.clearExpand(tn.data.key);}tn.removeChildren(true);this.div.removeChild(tn.div);for(var i=0;i<ac.length;i++){if(ac[i]===tn){this.childList.splice(i,1);delete tn;break;}}},removeChildren:function(isRecursiveCall,retainPersistence){var tree=this.tree;var ac=this.childList;if(ac){for(var i=0;i<ac.length;i++){var tn=ac[i];if(tn===tree.activeNode&&!retainPersistence)tn.deactivate();if(this.tree.options.persist&&!retainPersistence){if(tn.bSelected)this.tree.persistence.clearSelect(tn.data.key);if(tn.bExpanded)this.tree.persistence.clearExpand(tn.data.key);}tn.removeChildren(true,retainPersistence);this.div.removeChild(tn.div);delete tn;}this.childList=null;}if(!isRecursiveCall){this.isLoading=false;this.render(false,false);}},reload:function(force){if(this.parent==null)return this.tree.reload();if(!this.data.isLazy)throw"node.reload() requires lazy nodes.";if(this.bExpanded){this.expand(false);this.removeChildren();this.expand(true);}else{this.removeChildren();if(force)this._loadContent();}},_addChildNode:function(dtnode,beforeNode){var tree=this.tree;var opts=tree.options;var pers=tree.persistence;dtnode.parent=this;if(this.childList==null){this.childList=[];}else if(!beforeNode){$(this.childList[this.childList.length-1].span).removeClass(opts.classNames.lastsib);}if(beforeNode){var iBefore=$.inArray(beforeNode,this.childList);if(iBefore<0)throw"<beforeNode> must be a child of <this>";this.childList.splice(iBefore,0,dtnode);}else{this.childList.push(dtnode);}var isInitializing=tree.isInitializing();if(opts.persist&&pers.cookiesFound&&isInitializing){if(pers.activeKey==dtnode.data.key)tree.activeNode=dtnode;if(pers.focusedKey==dtnode.data.key)tree.focusNode=dtnode;dtnode.bExpanded=($.inArray(dtnode.data.key,pers.expandedKeyList)>=0);dtnode.bSelected=($.inArray(dtnode.data.key,pers.selectedKeyList)>=0);}else{if(dtnode.data.activate){tree.activeNode=dtnode;if(opts.persist)pers.activeKey=dtnode.data.key;}if(dtnode.data.focus){tree.focusNode=dtnode;if(opts.persist)pers.focusedKey=dtnode.data.key;}dtnode.bExpanded=(dtnode.data.expand==true);if(dtnode.bExpanded&&opts.persist)pers.addExpand(dtnode.data.key);dtnode.bSelected=(dtnode.data.select==true);if(dtnode.bSelected&&opts.persist)pers.addSelect(dtnode.data.key);}if(opts.minExpandLevel>=dtnode.getLevel()){this.bExpanded=true;}if(dtnode.bSelected&&opts.selectMode==3){var p=this;while(p){if(!p.hasSubSel)p._setSubSel(true);p=p.parent;}}if(tree.bEnableUpdate)this.render(true,true);return dtnode;},addChild:function(obj,beforeNode){if(!obj||obj.length==0)return;if(obj instanceof DynaTreeNode)return this._addChildNode(obj,beforeNode);if(!obj.length)obj=[obj];var prevFlag=this.tree.enableUpdate(false);var tnFirst=null;for(var i=0;i<obj.length;i++){var data=obj[i];var dtnode=this._addChildNode(new DynaTreeNode(this,this.tree,data),beforeNode);if(!tnFirst)tnFirst=dtnode;if(data.children)dtnode.addChild(data.children,null);}this.tree.enableUpdate(prevFlag);return tnFirst;},append:function(obj){this.tree.logWarning("node.append() is deprecated (use node.addChild() instead).");return this.addChild(obj,null);},appendAjax:function(ajaxOptions){this.removeChildren(false,true);this.setLazyNodeStatus(DTNodeStatus_Loading);var self=this;var orgSuccess=ajaxOptions.success;var orgError=ajaxOptions.error;var options=$.extend({},this.tree.options.ajaxDefaults,ajaxOptions,{success:function(data,textStatus){var prevPhase=self.tree.phase;self.tree.phase="init";self.addChild(data,null);self.tree.phase="postInit";self.setLazyNodeStatus(DTNodeStatus_Ok);if(orgSuccess)orgSuccess.call(options,self);self.tree.phase=prevPhase;},error:function(XMLHttpRequest,textStatus,errorThrown){self.tree.logWarning("appendAjax failed:",textStatus,":\n",XMLHttpRequest,"\n",errorThrown);self.setLazyNodeStatus(DTNodeStatus_Error,{info:textStatus,tooltip:""+errorThrown});if(orgError)orgError.call(options,self,XMLHttpRequest,textStatus,errorThrown);}});$.ajax(options);},lastentry:undefined};var DynaTreeStatus=Class.create();DynaTreeStatus._getTreePersistData=function(cookieId,cookieOpts){var ts=new DynaTreeStatus(cookieId,cookieOpts);ts.read();return ts.toDict();};getDynaTreePersistData=DynaTreeStatus._getTreePersistData;DynaTreeStatus.prototype={initialize:function(cookieId,cookieOpts){this._log("DynaTreeStatus: initialize");if(cookieId===undefined)cookieId=$.ui.dynatree.defaults.cookieId;cookieOpts=$.extend({},$.ui.dynatree.defaults.cookie,cookieOpts);this.cookieId=cookieId;this.cookieOpts=cookieOpts;this.cookiesFound=undefined;this.activeKey=null;this.focusedKey=null;this.expandedKeyList=null;this.selectedKeyList=null;},_log:function(msg){Array.prototype.unshift.apply(arguments,["debug"]);_log.apply(this,arguments);},read:function(){this._log("DynaTreeStatus: read");this.cookiesFound=false;var cookie=$.cookie(this.cookieId+"-active");this.activeKey=(cookie==null)?"":cookie;if(cookie!=null)this.cookiesFound=true;cookie=$.cookie(this.cookieId+"-focus");this.focusedKey=(cookie==null)?"":cookie;if(cookie!=null)this.cookiesFound=true;cookie=$.cookie(this.cookieId+"-expand");this.expandedKeyList=(cookie==null)?[]:cookie.split(",");if(cookie!=null)this.cookiesFound=true;cookie=$.cookie(this.cookieId+"-select");this.selectedKeyList=(cookie==null)?[]:cookie.split(",");if(cookie!=null)this.cookiesFound=true;},write:function(){this._log("DynaTreeStatus: write");$.cookie(this.cookieId+"-active",(this.activeKey==null)?"":this.activeKey,this.cookieOpts);$.cookie(this.cookieId+"-focus",(this.focusedKey==null)?"":this.focusedKey,this.cookieOpts);$.cookie(this.cookieId+"-expand",(this.expandedKeyList==null)?"":this.expandedKeyList.join(","),this.cookieOpts);$.cookie(this.cookieId+"-select",(this.selectedKeyList==null)?"":this.selectedKeyList.join(","),this.cookieOpts);},addExpand:function(key){this._log("addExpand(%o)",key);if($.inArray(key,this.expandedKeyList)<0){this.expandedKeyList.push(key);$.cookie(this.cookieId+"-expand",this.expandedKeyList.join(","),this.cookieOpts);}},clearExpand:function(key){this._log("clearExpand(%o)",key);var idx=$.inArray(key,this.expandedKeyList);if(idx>=0){this.expandedKeyList.splice(idx,1);$.cookie(this.cookieId+"-expand",this.expandedKeyList.join(","),this.cookieOpts);}},addSelect:function(key){this._log("addSelect(%o)",key);if($.inArray(key,this.selectedKeyList)<0){this.selectedKeyList.push(key);$.cookie(this.cookieId+"-select",this.selectedKeyList.join(","),this.cookieOpts);}},clearSelect:function(key){this._log("clearSelect(%o)",key);var idx=$.inArray(key,this.selectedKeyList);if(idx>=0){this.selectedKeyList.splice(idx,1);$.cookie(this.cookieId+"-select",this.selectedKeyList.join(","),this.cookieOpts);}},isReloading:function(){return this.cookiesFound==true;},toDict:function(){return{cookiesFound:this.cookiesFound,activeKey:this.activeKey,focusedKey:this.activeKey,expandedKeyList:this.expandedKeyList,selectedKeyList:this.selectedKeyList};},lastentry:undefined};var DynaTree=Class.create();DynaTree.version="$Version: 0.5.3$";DynaTree.prototype={initialize:function($widget){this.phase="init";this.$widget=$widget;this.options=$widget.options;this.$tree=$widget.element;this.divTree=this.$tree.get(0);},_load:function(){var $widget=this.$widget;var opts=this.options;this.bEnableUpdate=true;this._nodeCount=1;this.activeNode=null;this.focusNode=null;if(opts.classNames!==$.ui.dynatree.defaults.classNames){opts.classNames=$.extend({},$.ui.dynatree.defaults.classNames,opts.classNames);}if(!opts.imagePath){$("script").each(function(){if(this.src.search(_rexDtLibName)>=0){if(this.src.indexOf("/")>=0)opts.imagePath=this.src.slice(0,this.src.lastIndexOf("/"))+"/skin/";else opts.imagePath="skin/";return false;}});}this.persistence=new DynaTreeStatus(opts.cookieId,opts.cookie);if(opts.persist){if(!$.cookie)_log("warn","Please include jquery.cookie.js to use persistence.");this.persistence.read();}this.logDebug("DynaTree.persistence: %o",this.persistence.toDict());this.cache={tagEmpty:"<span class='"+opts.classNames.empty+"'></span>",tagVline:"<span class='"+opts.classNames.vline+"'></span>",tagExpander:"<span class='"+opts.classNames.expander+"'></span>",tagConnector:"<span class='"+opts.classNames.connector+"'></span>",tagNodeIcon:"<span class='"+opts.classNames.nodeIcon+"'></span>",tagCheckbox:"<span class='"+opts.classNames.checkbox+"'></span>",lastentry:undefined};if(opts.children||(opts.initAjax&&opts.initAjax.url)||opts.initId)$(this.divTree).empty();else if(this.divRoot)$(this.divRoot).remove();this.tnRoot=new DynaTreeNode(null,this,{title:opts.title,key:"root"});this.tnRoot.data.isFolder=true;this.tnRoot.render(false,false);this.divRoot=this.tnRoot.div;this.divRoot.className=opts.classNames.container;this.divTree.appendChild(this.divRoot);var root=this.tnRoot;var isReloading=(opts.persist&&this.persistence.isReloading());var isLazy=false;var prevFlag=this.enableUpdate(false);this.logDebug("Dynatree._load(): read tree structure...");if(opts.children){root.addChild(opts.children);}else if(opts.initAjax&&opts.initAjax.url){isLazy=true;root.data.isLazy=true;this._reloadAjax();}else if(opts.initId){this._createFromTag(root,$("#"+opts.initId));}else{var $ul=this.$tree.find(">ul").hide();this._createFromTag(root,$ul);$ul.remove();}this._checkConsistency();this.logDebug("Dynatree._load(): render nodes...");this.enableUpdate(prevFlag);this.logDebug("Dynatree._load(): bind events...");this.$widget.bind();this.logDebug("Dynatree._load(): postInit...");this.phase="postInit";if(opts.persist){this.persistence.write();}if(this.focusNode&&this.focusNode.isVisible()){this.logDebug("Focus on init: %o",this.focusNode);this.focusNode.focus();}if(!isLazy&&opts.onPostInit){opts.onPostInit.call(this,isReloading,false);}this.phase="idle";},_reloadAjax:function(){var opts=this.options;if(!opts.initAjax||!opts.initAjax.url)throw"tree.reload() requires 'initAjax' mode.";var pers=this.persistence;var ajaxOpts=$.extend({},opts.initAjax);if(ajaxOpts.addActiveKey)ajaxOpts.data.activeKey=pers.activeKey;if(ajaxOpts.addFocusedKey)ajaxOpts.data.focusedKey=pers.focusedKey;if(ajaxOpts.addExpandedKeyList)ajaxOpts.data.expandedKeyList=pers.expandedKeyList.join(",");if(ajaxOpts.addSelectedKeyList)ajaxOpts.data.selectedKeyList=pers.selectedKeyList.join(",");if(opts.onPostInit){if(ajaxOpts.success)this.tree.logWarning("initAjax: success callback is ignored when onPostInit was specified.");if(ajaxOpts.error)this.tree.logWarning("initAjax: error callback is ignored when onPostInit was specified.");var isReloading=pers.isReloading();ajaxOpts["success"]=function(dtnode){opts.onPostInit.call(dtnode.tree,isReloading,false);};ajaxOpts["error"]=function(dtnode){opts.onPostInit.call(dtnode.tree,isReloading,true);};}this.logDebug("Dynatree._init(): send Ajax request...");this.tnRoot.appendAjax(ajaxOpts);},toString:function(){return"DynaTree '"+this.options.title+"'";},toDict:function(){return this.tnRoot.toDict(true);},getPersistData:function(){return this.persistence.toDict();},logDebug:function(msg){if(this.options.debugLevel>=2){Array.prototype.unshift.apply(arguments,["debug"]);_log.apply(this,arguments);}},logInfo:function(msg){if(this.options.debugLevel>=1){Array.prototype.unshift.apply(arguments,["info"]);_log.apply(this,arguments);}},logWarning:function(msg){Array.prototype.unshift.apply(arguments,["warn"]);_log.apply(this,arguments);},isInitializing:function(){return(this.phase=="init"||this.phase=="postInit");},isReloading:function(){return(this.phase=="init"||this.phase=="postInit")&&this.options.persist&&this.persistence.cookiesFound;},isUserEvent:function(){return(this.phase=="userEvent");},redraw:function(){this.logDebug("dynatree.redraw()...");this.tnRoot.render(true,true);this.logDebug("dynatree.redraw() done.");},reloadAjax:function(){this.logWarning("tree.reloadAjax() is deprecated since v0.5.2 (use reload() instead).");},reload:function(){this._load();},getRoot:function(){return this.tnRoot;},getNodeByKey:function(key){var el=document.getElementById(this.options.idPrefix+key);return(el&&el.dtnode)?el.dtnode:null;},getActiveNode:function(){return this.activeNode;},reactivate:function(setFocus){var node=this.activeNode;if(node){this.activeNode=null;node.activate();if(setFocus)node.focus();}},getSelectedNodes:function(stopOnParents){var nodeList=[];this.tnRoot.visit(function(dtnode){if(dtnode.bSelected){nodeList.push(dtnode);if(stopOnParents==true)return false;}});return nodeList;},activateKey:function(key){var dtnode=(key===null)?null:this.getNodeByKey(key);if(!dtnode){if(this.activeNode)this.activeNode.deactivate();this.activeNode=null;return null;}dtnode.focus();dtnode.activate();return dtnode;},selectKey:function(key,select){var dtnode=this.getNodeByKey(key);if(!dtnode)return null;dtnode.select(select);return dtnode;},enableUpdate:function(bEnable){if(this.bEnableUpdate==bEnable)return bEnable;this.bEnableUpdate=bEnable;if(bEnable)this.redraw();return!bEnable;},visit:function(fn,data,includeRoot){return this.tnRoot.visit(fn,data,includeRoot);},_createFromTag:function(parentTreeNode,$ulParent){var self=this;$ulParent.find(">li").each(function(){var $li=$(this);var $liSpan=$li.find(">span:first");var title;if($liSpan.length){title=$liSpan.html();}else{title=$li.html();var iPos=title.search(/<ul/i);if(iPos>=0)title=$.trim(title.substring(0,iPos));else title=$.trim(title);}var data={title:title,isFolder:$li.hasClass("folder"),isLazy:$li.hasClass("lazy"),expand:$li.hasClass("expanded"),select:$li.hasClass("selected"),activate:$li.hasClass("active"),focus:$li.hasClass("focused")};if($li.attr("title"))data.tooltip=$li.attr("title");if($li.attr("id"))data.key=$li.attr("id");if($li.attr("data")){var dataAttr=$.trim($li.attr("data"));if(dataAttr){if(dataAttr.charAt(0)!="{")dataAttr="{"+dataAttr+"}";try{$.extend(data,eval("("+dataAttr+")"));}catch(e){throw("Error parsing node data: "+e+"\ndata:\n'"+dataAttr+"'");}}}childNode=parentTreeNode.addChild(data);var $ul=$li.find(">ul:first");if($ul.length){self._createFromTag(childNode,$ul);}});},_checkConsistency:function(){},lastentry:undefined};$.widget("ui.dynatree",{init:function(){_log("warn","ui.dynatree.init() was called; you should upgrade to ui.core.js v1.6 or higher.");return this._init();},_init:function(){if(parseFloat($.ui.version)<1.8){_log("warn","ui.dynatree._init() was called; you should upgrade to jquery.ui.core.js v1.8 or higher.");return this._create();}_log("debug","ui.dynatree._init() was called; no current default functionality.");},_create:function(){if(parseFloat($.ui.version)>=1.8){this.options=$.extend(true,$[this.namespace][this.widgetName].defaults,this.options);}logMsg("Dynatree._create(): version='%s', debugLevel=%o.",DynaTree.version,this.options.debugLevel);var opts=this.options;this.options.event+=".dynatree";var divTree=this.element.get(0);this.tree=new DynaTree(this);this.tree._load();this.tree.logDebug("Dynatree._create(): done.");},bind:function(){var $this=this.element;var o=this.options;this.unbind();function __getNodeFromElement(el){var iMax=5;while(el&&iMax--){if(el.dtnode)return el.dtnode;el=el.parentNode;};return null;}var eventNames="click.dynatree dblclick.dynatree";if(o.keyboard)eventNames+=" keypress.dynatree keydown.dynatree";$this.bind(eventNames,function(event){var dtnode=__getNodeFromElement(event.target);if(!dtnode)return true;var prevPhase=dtnode.tree.phase;dtnode.tree.phase="userEvent";try{dtnode.tree.logDebug("bind(%o): dtnode: %o",event,dtnode);switch(event.type){case"click":return(o.onClick&&o.onClick(dtnode,event)===false)?false:dtnode.onClick(event);case"dblclick":return(o.onDblClick&&o.onDblClick(dtnode,event)===false)?false:dtnode.onDblClick(event);case"keydown":return(o.onKeydown&&o.onKeydown(dtnode,event)===false)?false:dtnode.onKeydown(event);case"keypress":return(o.onKeypress&&o.onKeypress(dtnode,event)===false)?false:dtnode.onKeypress(event);};}catch(e){var _=null;}finally{dtnode.tree.phase=prevPhase;}});function __focusHandler(event){event=arguments[0]=$.event.fix(event||window.event);var dtnode=__getNodeFromElement(event.target);return dtnode?dtnode.onFocus(event):false;}var div=this.tree.divTree;if(div.addEventListener){div.addEventListener("focus",__focusHandler,true);div.addEventListener("blur",__focusHandler,true);}else{div.onfocusin=div.onfocusout=__focusHandler;}},unbind:function(){this.element.unbind(".dynatree");},enable:function(){this.bind();$.widget.prototype.enable.apply(this,arguments);},disable:function(){this.unbind();$.widget.prototype.disable.apply(this,arguments);},getTree:function(){return this.tree;},getRoot:function(){return this.tree.getRoot();},getActiveNode:function(){return this.tree.getActiveNode();},getSelectedNodes:function(){return this.tree.getSelectedNodes();},lastentry:undefined});$.ui.dynatree.getter="getTree getRoot getActiveNode getSelectedNodes";$.ui.dynatree.defaults={title:"Dynatree root",rootVisible:false,minExpandLevel:1,imagePath:null,children:null,initId:null,initAjax:null,autoFocus:true,keyboard:true,persist:false,autoCollapse:false,clickFolderMode:3,activeVisible:true,checkbox:false,selectMode:2,fx:null,onClick:null,onDblClick:null,onKeydown:null,onKeypress:null,onFocus:null,onBlur:null,onQueryActivate:null,onQuerySelect:null,onQueryExpand:null,onPostInit:null,onActivate:null,onDeactivate:null,onSelect:null,onExpand:null,onLazyRead:null,ajaxDefaults:{cache:false,dataType:"json"},strings:{loading:"Loading&#8230;",loadError:"Load error!"},idPrefix:"ui-dynatree-id-",cookieId:"dynatree",cookie:{expires:null},classNames:{container:"ui-dynatree-container",folder:"ui-dynatree-folder",document:"ui-dynatree-document",empty:"ui-dynatree-empty",vline:"ui-dynatree-vline",expander:"ui-dynatree-expander",connector:"ui-dynatree-connector",checkbox:"ui-dynatree-checkbox",nodeIcon:"ui-dynatree-icon",title:"ui-dynatree-title",nodeError:"ui-dynatree-statusnode-error",nodeWait:"ui-dynatree-statusnode-wait",hidden:"ui-dynatree-hidden",combinedExpanderPrefix:"ui-dynatree-exp-",combinedIconPrefix:"ui-dynatree-ico-",hasChildren:"ui-dynatree-has-children",active:"ui-dynatree-active",selected:"ui-dynatree-selected",expanded:"ui-dynatree-expanded",lazy:"ui-dynatree-lazy",focused:"ui-dynatree-focused",partsel:"ui-dynatree-partsel",lastsib:"ui-dynatree-lastsib"},debugLevel:1,lastentry:undefined};$.ui.dynatree.nodedatadefaults={title:null,key:null,isFolder:false,isLazy:false,tooltip:null,icon:null,addClass:null,activate:false,focus:false,expand:false,select:false,hideCheckbox:false,unselectable:false,children:null,lastentry:undefined};})(jQuery);var _rexDtLibName=/.*dynatree[^/]*\.js$/i;var Icons={Tree:[],Plane:{},Cells:[null,{},{},{},{},{},{},{}],FSelect:[],Img:{Yellow:'yellow.png',Green:'green.png',Red1:'red1.png',Pink:'pink.png',Red:'red.png',Orange:'orange.png',Blue:'blue.png',Gray:'gray.png',White:'white.png',Purple:'purple.png'},Data:[{title:{uk:'Транспорт',ru:'Транспорт',en:'Transport'},type:'group',expand:false,children:[{title:{uk:'Міський транспорт',ru:'Городской транспорт',en:'City transport'},type:'inform',key:'stop',fi:0,view:{img:'Yellow',dx:0,dy:0,w:24,h:24},select:true},{title:{uk:'Автовокзали',ru:'Автовокзалы',en:'Bus stations'},type:'inform',key:'astation',fi:1,view:{img:'Yellow',dx:0,dy:-48,w:24,h:24}},{title:{uk:'Залізничні вокзали',ru:'Ж/д вокзалы',en:'Railway stations'},type:'inform',key:'rstation',fi:2,view:{img:'Yellow',dx:0,dy:-72,w:24,h:24}}]},{title:{uk:'Освіта та наука',ru:'Образование',en:'Education'},type:'group',key:'education',expand:false,children:[{title:{uk:'Дитячі садочки',ru:'Детские садики',en:'Kindergartens'},type:'inform',key:'kindergarten',fi:3,view:{img:'Green',dx:0,dy:0,w:24,h:24}},{title:{uk:'Школи',ru:'Школы',en:'Elementary schools'},type:'inform',key:'school',select:true,fi:4,view:{img:'Green',dx:0,dy:-24,w:24,h:24}},{title:{uk:'Профтехосвіта',ru:'Профтехобразование',en:'Vocational training'},type:'inform',key:'ptu',fi:5,view:{img:'Green',dx:0,dy:-96,w:24,h:24}},{title:{uk:'Вищі навчальні заклади',ru:'ВУЗы',en:'Higher education'},type:'inform',key:'hschool',fi:6,view:{img:'Green',dx:0,dy:-48,w:24,h:24}},{title:{uk:'Інтернати',ru:'Интернаты',en:'Boarding schools'},type:'inform',key:'internat',fi:7,view:{img:'Green',dx:0,dy:-120,w:24,h:24}},{title:{uk:'Бібліотеки',ru:'Библиотеки',en:'Libraries'},type:'inform',key:'library',fi:8,view:{img:'Green',dx:0,dy:-72,w:24,h:24}},{title:{uk:'Позашкільна освіта',ru:'Внешкольное образование',en:'Out-of-School'},type:'inform',key:'outschool',fi:9,view:{img:'Green',dx:0,dy:-144,w:24,h:24}}]},{title:{uk:'Культура',ru:'Культура',en:'Culture'},type:'group',expand:true,children:[{title:{uk:'Музеї',ru:'Музеи',en:'Museums'},type:'inform',key:'museums',fi:37,view:{img:'Purple',dx:0,dy:0,w:24,h:24}},{title:{uk:'Церкви і храми',ru:'Церкви и храмы',en:'Churches and temples'},type:'group',key:'religion',children:[{title:{uk:'Християнство',ru:'Христианство',en:'Christianity'},type:'inform',key:'christianity',fi:40,view:{img:'Blue',dx:0,dy:-240,w:24,h:24}},{title:{uk:'Іслам',ru:'Ислам',en:'Islam'},type:'inform',key:'islam',fi:41,view:{img:'Blue',dx:0,dy:-264,w:24,h:24}},{title:{uk:'Буддизм',ru:'Буддизм',en:'Buddhism'},type:'inform',key:'buddhism',fi:43,view:{img:'Blue',dx:0,dy:-288,w:24,h:24}},{title:{uk:'Іудаїзм',ru:'Иудаизм',en:'Judaism'},type:'inform',key:'judaism',fi:44,view:{img:'Blue',dx:0,dy:-312,w:24,h:24}},{title:{uk:'Індуїзм',ru:'Индуизм',en:'Hinduism'},type:'inform',key:'hinduism',fi:45,view:{img:'Blue',dx:0,dy:-336,w:24,h:24}}]}]},{title:{uk:'Медицина',ru:'Медицина',en:'Medicine'},type:'group',key:'medicine',expand:false,children:[{title:{uk:'Лікарні та поліклініки',ru:'Больницы и поликлиники',en:'Hospitals and clinics'},type:'inform',key:'medins',fi:11,view:{img:'White',dx:0,dy:0,w:24,h:24}},{title:{uk:'Пологові будинки',ru:'Роддомы',en:'Maternity hospitals'},type:'inform',key:'maternity',fi:12,view:{img:'White',dx:0,dy:0,w:24,h:24}},{title:{uk:'Диспансери',ru:'Диспансеры',en:'Dispensaries'},type:'inform',key:'dispensary',fi:13,view:{img:'White',dx:0,dy:0,w:24,h:24}},{title:{uk:'Медичні центри',ru:'Медицинские центры',en:'Medical Centers'},type:'inform',key:'medcenter',fi:14,view:{img:'White',dx:0,dy:0,w:24,h:24}},{title:{uk:'Санаторії',ru:'Санатории',en:'Sanatoriums'},type:'inform',key:'sanatoriums',fi:15,view:{img:'White',dx:0,dy:0,w:24,h:24}}]},{title:{uk:'Відпочинок',ru:'Отдых',en:'Recreation'},type:'group',expand:true,children:[{title:{uk:'Кінотеатри',ru:'Кинотеатры',en:'Cinema'},type:'inform',key:'cinema',fi:38,select:true,view:{img:'Blue',dx:0,dy:-192,w:24,h:24}},{title:{uk:'Клуби',ru:'Клубы',en:'Clubs'},type:'inform',key:'club',fi:16,view:{img:'Orange',dx:0,dy:0,w:24,h:24}},{title:{uk:'Кав\'ярні',ru:'Кафе',en:'Cafe'},type:'inform',key:'cafe',fi:17,view:{img:'Orange',dx:0,dy:-48,w:24,h:24}},{title:{uk:'Ресторани',ru:'Рестораны',en:'Restaurants'},type:'inform',key:'restaurants',fi:18,view:{img:'Blue',dx:0,dy:-96,w:24,h:24}},{title:{uk:'Бари',ru:'Бары',en:'Bars'},type:'inform',key:'bars',fi:36,view:{img:'Orange',dx:0,dy:-72,w:24,h:24}},{title:{uk:'Піцерії',ru:'Пиццерии',en:'Pizza'},type:'inform',key:'pizza',fi:19,view:{img:'Orange',dx:0,dy:-24,w:24,h:24}}]},{title:{uk:'Послуги',ru:'Услуги',en:'Services'},type:'group',expand:true,children:[{title:{uk:'Реклама',ru:'Реклама',en:'Advertising'},type:'group',expand:false,children:[{title:{uk:'Рекламні конструкції',ru:'Рекламные конструкции',en:'Advertising constructions'},type:'group',children:[{title:{uk:'РА «Бюро ЕкоКонтроль»',ru:'РА «Бюро ЕкоКонтроль»',en:'РА "Бюро ЕкоКонтроль"'},type:'inform',key:'billboard',fi:25,view:{img:'Red1',dx:0,dy:0,w:24,h:24}}]}]},{title:{uk:'Готелі',ru:'Гостиницы',en:'Hotels'},type:'inform',key:'hotel',fi:35,view:{img:'Blue',dx:0,dy:-168,w:24,h:24}}]},{title:{uk:'Магазини',ru:'Магазины',en:'Shops'},type:'group',children:[{title:{uk:'Комп’ютери',ru:'Компьютеры',en:'Computers'},type:'inform',key:'computers',fi:39,view:{img:'Red',dx:0,dy:-192,w:24,h:24}}]},{title:{uk:'Будівництво',ru:'Строительство',en:'Building'},type:'group',children:[{title:{uk:'Дорожнє будівництво',ru:'Дорожное строительство',en:'Road-building'},type:'inform',key:'roadbuilding',fi:34,view:{img:'Gray',dx:0,dy:0,w:24,h:24}}]},{title:{uk:'Громадські організації',ru:'Общественные организации',en:'Community organizations'},type:'inform',key:'community',fi:42,view:{img:'Blue',dx:0,dy:-216,w:24,h:24}}],PlantTree:function(){var _branch=function(arr,_level){var level=_level?_level:1;var ret=[];for(i in arr){var data=arr[i];var branch={title:data.title[eMap.Lang.Value],type:data.type,key:data.key,expand:new Boolean(data.expand),select:new Boolean(data.select),icon:false};if(typeof data.fi!='undefined'){branch.fi=data.fi;for(i in Icons.FSelect){if(Icons.FSelect[i]==data.fi){branch.select=true;break;}}}switch(data.type){case'group':branch.addClass='strong';break;case'inform':branch.isLazy=true;break;case'bn':break;}if(data.children){branch.children=_branch(data.children,level+1);}ret.push(branch);}return ret;};Icons.Tree=_branch(Icons.Data);},PlaneData:function(){var _branch=function(arr){for(i in arr){var data=arr[i];if(data.key){var branch={title:data.title['uk'],view:data.view,tree:[],data:[],loaded:false,visible:false};Icons.Plane[data.key]=branch;}if(data.children)_branch(data.children);}};_branch(Icons.Data);},PushToCell:function(inf,code){for(zoom=1;zoom<8;zoom++){var bitmask=zoom<3?zoom:2<<(zoom-2);if(inf.zoom&bitmask){var x=eMap.Coord.Scale(inf.x,zoom);var y=eMap.Coord.Scale(inf.y,zoom);var a=eMap.Size.Grid[zoom];var left=Math.ceil((x+1)/256);var top=Math.ceil((y+1)/256);var cell_id=(top-1)*a+left;if(Icons.Cells[zoom][cell_id]==undefined)Icons.Cells[zoom][cell_id]=[];Icons.Cells[zoom][cell_id].push({name:inf.title,x:x,y:y,code:code,html:(inf.html!=undefined?inf.html:''),extra:(inf.extra!=undefined?inf.extra:{})});}}},CompleteJSON:function(json){var node=Icons.Plane[json.code].dtnode;if(Icons.Plane[json.code].loaded)return;if(json.data&&json.data.length){var tree=Icons.Plane[json.code].tree;var icons=Icons.Plane[json.code].data;for(i in json.data){var J=json.data[i];tree.push({title:J.short,type:'move',x:J.x,y:J.y,hideCheckbox:true,icon:false});Icons.PushToCell(J,json.code);};var _sort=function(a,b){return tbSearch.CompareStreets(a.title,b.title);};tree.sort(_sort);}Icons.Plane[json.code].loaded=true;}};var Streets=["","вул. Миру","пров. Скобелєва","вул. Самоцвітна","вул. Харчовиків","пров. Гайдаренка","вул. Каштанова","вул. Менжинського","вул. Ватутіна","вул. Пролетарська","вул. Монастирська","пров. Весняний","вул. Гетьманська","вул. 9-й Проїзд","бульвар Боровиковського","пров. Гречаний","пров. Барвінківський","пров. Брестський","вул. Залізняка","пров. Дніпропетровський","вул. Степового Фронту","вул. Сурикова","вул. Петровського","Павленківська площа","вул. Лісозахисна","вул. Софії Ковалевської","вул. 9-та Лінія","вул. Амундсена","вул. Щорса","вул. Зигіна","пров. Деревообробний","пров. Заньковецької","вул. Танкістів","вул. Володимира Козака","пров. Суничний","пров. Луценка","вул. Паротягова","вул. 7-й Проїзд","вул. Адміністративна","вул. Коперника","пров. Металістів","пров. Зайкевича","вул. Мітенка","Комсомольський майдан","вул. Лисенка","пров. Розсошинський","вул. Вознесенська","пров. Пролетарський","вул. Світанкова","вул. Панянка","пров. Бумажний","пров. Вишневий","вул. Квіткова","вул. Яценка","вул. Лісна","вул. Добролюбова","пров. 8 Березня","вул. Левадна","вул. Фурманова","вул. Пирогова","вул. Посьолкова","вул. Карла Лібкнехта","пров. Тиловий","пров. Кротенківський","пров. Максима Рильського","вул. Юнацька","вул. Гоголя","вул. Юрівська","вул. Героїв Сталінграда","вул. Нахімова","вул. Артема","Першотравневий проспект","вул. Кричевського","пров. Абрикосовий","пров. Вільний","пров. Комісарівський","вул. Демократична","вул. Мальовнича","пров. Лікарський","пров. Скіфський","вул. Щемилівська","пров. Горбанівський","пров. Метеорологічний","пров. Прирічний","вул. Рябушанська","вул. Колоскова","пров. Ногіна","вул. Малобудищанська","вул. Правди","пров. Стекольний","вул. Визволення","пров. Рилєєва","пров. Риночний","вул. Театральна","пров. Міняйлівський","пров. Садовий","вул. Рахівнича","просп. Миколи Вавилова","пров. Глінки","вул. Профінтерну","вул. Желябова","вул. Нижньофабриканська","пров. Вернадського","вул. Генерала Духова","вул. Рози Люксембург","вул. Пілотська","вул. Головка","вул. Короленка","пров. Джерельний","пров. Ярослава Галана","вул. 1-й Проспект","бульвар Богдана Хмельницького","вул. Баумана","пров. Степовика","вул. Червонополянська","пров. Побутовий","пров. Панянський","вул. Стешенка","вул. Кучеренка","пров. Цитовський","вул. Зоряна","вул. Зоресвітна","вул. Богуна","пров. Косий","вул. Нариманівська","вул. Лідова","пров. Космічний","вул. Паризької Комуни","пров. Український","вул. 5-та Лінія","вул. Кравецька","вул. ПРЗ","вул. Нечуя-Левицького","площа Зигіна","вул. Лихачова","вул. Мазурівська","вул. Котляревського","вул. 23 Вересня","вул. 9 Травня","вул. Привокзальна","вул. 2-га Лінія","пров. Московський","пров. Будівельний","пров. Тихий","пров. Паторжинського","вул. Гладкого","пров. Інтернаціональний","пров. Андріївський","пров. Високий","вул. Жовтнева","вул. Коцюбинського","вул. Сакко","вул. Дендропаркова","вул. Аркадія Гайдара","вул. Світла","пров. Перекопський","пров. Вічний","пров. Белінського","вул. Паркова","вул. Пригородня","вул. Бородая","пров. Малий","вул. Кругла","вул. Рєпіна","вул. Островського","пров. 1-й Річковий","пров. Прияружний","пров. Цегляний","вул. Луценка","вул. Чутівська","бульвар Маршала Конєва","пров. Пасічний","пров. Микитенка","вул. Запорізька","вул. Гаражна","пров. Грабовського","вул. Кільцева","вул. Пушкіна","вул. Тобілевича","вул. Бібліотечна","бульвар Юрія Побєдоносцева","пров. 1-й Тупик","вул. Свободи","вул. Іванівська","вул. Донченка","пров. Нафтовий","пров. Тунельний","вул. Півненка","пров. Капельгородського","вул. Енгельса","вул. Балкова","пров. Залізний","вул. Корчагінська","вул. 5-й Проїзд","вул. Літературна","вул. Володарського","вул. Ліхтарна","вул. Ціолковського","вул. Бакинських Комісарів","пров. 2-й Тупик","пров. Кленовий","пров. Радищева","вул. Остроградського","вул. Низова","вул. Сільськогосподарська","вул. Сковороди","вул. Красногорівська","пров. Барвистий","вул. Серьогіна","вул. Хімічна","вул. Хвойна","вул. Картинна","вул. Комінтерну","вул. Квітуча","Панянський бульвар","пров. Окопний","вул. Річкова","пров. 1-й Театральний","вул. Баяна","вул. Лізи Чайкіної","вул. Червоноармійська","вул. Кузнечна","пров. Челябінський","пров. Шевченка","вул. Берегова","пров. Шкільний","пров. 1-й Веселий","вул. Спаська","вул. Зелена","вул. Балакіна","пров. Парниковий","пров. Ветеринарний","пров. Мясоєдова","вул. Тікунова","вул. Тургенєва","вул. Декабристів","вул. Лазурна","Красноградське шосе","вул. Челюскіна","пров. Войкова","вул. Будьонного","вул. Нафтовиків","вул. Шолом-Алейхема","вул. Авіаційна","пров. Щербанівський","вул. Локомотивна","вул. Калініна","пров. Добролюбова","вул. Путьова","вул. Трояндова","вул. Білоцерківська","вул. Яківчанська","вул. Горбанівська","вул. Степана Халтуріна","пров. Чапаєва","вул. Осіння","вул. Профспілкова","вул. Лавчанська","вул. Новозіньківська","пров. Блакитний","вул. Курчатова","Інститутський проріз","вул. Медична","вул. Ляхова","вул. Гвардійська","вул. Комарова (Розсошенці)","площа Калініна","вул. Гайового","вул. Кобзарська","вул. Кагамлика","вул. Дружби","вул. Новозапорізька","вул. Мироненка","вул. Молодіжна","вул. Панаса Мирного","пров. Ставковий","вул. Бугрова","вул. Вакулинцівська","вул. Музейна","вул. Сонячна","вул. Мате Залки","пров. Марата","вул. 1-й Проїзд","вул. Старий Поділ","вул. Довженка","пров. Волинський","вул. Зіньківська","вул. Грушева","пров. Грунтовий","вул. Маяковського","вул. Літописна","вул. 2-й Проспект","вул. Володимирівська","вул. Хрестовоздвиженська","вул. Кривоносівська","вул. 8-й Проїзд","вул. Олександра Бідного","вул. Радгоспна","вул. Макаренка","вул. Автоагрегатчиків","вул. 3-й Проспект","вул. Тунельна","вул. Геращенка","вул. Гулака-Артемовського","пров. Фруктовий","вул. Космічна","вул. Огородня","вул. Гастелла","пров. Колективний","вул. Співоча","пров. Миргородський","вул. Шишкіна","вул. Рожева","вул. Семафорна","пров. Вузький","вул. Чкалова","вул. Патлаївська","вул. Освітянська","вул. Хасанівська","вул. Грабчака","вул. Вільхова","пров. Запасний","вул. Покровська","пров. Моторний","вул. Зелений Острів","пров. Комунарів","пров. Федька","вул. Художня","вул. Радищева","вул. Курганна","пров. Геодезичний","вул. Жуківська","пров. Пашенної","вул. Ветеринарна","пров. Дослідний","вул. Героїв Праці","вул. Пост-Острівська","пров. Токарний","пров. Госпітальний","Соборний майдан","пров. Кооперативний","пров. Підйомний","вул. Шилівська","вул. Аеронавтів","вул. Автобазівська","вул. Росяна","пров. Димський","вул. Червнева","пров. Куликова","пров. Карла Лібкнехта","пров. Очеретянський","вул. Військова","вул. Яблунева","вул. Чапаєва","вул. 9 Січня","вул. 8-ма Лінія","Воскресенський узвіз","пров. Спортивний","майдан Незалежності","пров. Яровий","вул. Колоритна","вул. Комсомольська","пров. Колекторний","пров. Фадєєва","вул. Толстого","вул. Олега Кошового","пров. Михайличенка","вул. Безвірницька","пров. Нахімова","вул. Червонофлотська","пров. Трудовий","вул. Пересічна","пров. Бойовий","вул. Леніна (Розсошенці)","пров. Монтажний","пров. Рогізнянський","пров. 2-й Прорізний","вул. Навроцького","вул. Мічуріна","пров. Пугачова","пров. Арктичний","Київське шосе","вул. Новаторська","пров. Тесленка","вул. Прозора","вул. Ковпака","пров. Піонерський","вул. Баленка","пров. Собінова","вул. Революційна","вул. 6-та Лінія","вул. Стрілочна","вул. Індустріальна","вул. Чернігівська","вул. Далека","вул. Павла Тичини","вул. Тернова","вул. Ползунова","пров. Першопрохідців","пров. Товарний","вул. Південна","вул. Дунаєвського","вул. Комарова","вул. Докучаєва","вул. Малинова","пров. ХТЗ","вул. Святкова","вул. Тимірязєва","вул. Кругова","вул. Академіка Квасницького","пров. Травневий","вул. Янтарна","вул. Степана Кондратенка","вул. 3-й Проїзд","вул. Куйбишева","вул. 7-ма Лінія","площа Слави","вул. Хлібозаводська","вул. Гната Хоткевича","пров. Воронянський","пров. Левадний","вул. Тополина","пров. Давидовського","вул. Грибоєдова","вул. Липова","вул. Нагірна","пров. Сніжний","вул. Грабинівська","пров. Закритий","пров. 2-й Театральний","вул. Серафимовича","вул. 1-ша Черепична","вул. Плеханова","вул. Щорса (Горбанівка)","вул. Гончарова","пров. Каховський","вул. Огнівська","вул. 2-й Проїзд","вул. Громадська","вул. Шевченка","вул. Космонавтів","пров. Авіаційний","пров. Великий","вул. Садова","пров. Комунальний","пров. Пейзажний","вул. Верховинця","вул. 6-й Проїзд","вул. Партизанська","пров. Спільчанський","пров. Глиняний","вул. Свердлова","вул. В'ячеслава Чорновола","пров. Торф'яний","вул. Спартака","вул. Гайдаренка","пров. Дарвіна","пров. Позена","пров. Челюскіна","пров. Сосновий","вул. Чистопрудна","вул. Радянської Армії","пров. Тупий","вул. Ягідна","вул. Ракова","вул. Ставицького","пров. Диканський","вул. Кінноармійська","вул. Ярошенка","пров. Депутатський","пров. Баварський","вул. Республіканська","пров. Оксамитовий","вул. Овочева","вул. Молодогвардійська","вул. Аеродромна","вул. Остапа Вишні","пров. Меліоративний","вул. Підгірна","вул. Реміснича","пров. Крутобережанський","вул. Федора Матвієнка","вул. Коломенська","вул. Шведська Могила","пров. Стефаника","пров. Ботанічний","вул. Черняховського","вул. Примакова","вул. Михайла Грушевського","пров. Рельсовий","проспект Миру","вул. Вузька","пров. Бистровський","вул. Леваневського","пров. Муравйова","пров. Незабутній","вул. Воровського","пров. Робітничий","вул. Муранова","вул. Дублянська","пров. Гурамішвілі","вул. Світла (Щербані)","вул. Сорочинська","вул. Осипенка","пров. Старицького","вул. Леніна","вул. Сєрова","пров. Островського","вул. Лагоди","вул. Геодезична","вул. Вільямса","вул. Затуринська","вул. Уютна","вул. Вороніна","вул. 4-й Проїзд","вул. Рогізнянська","вул. 1100-річчя Полтави","вул. Нікітченка","вул. Боженка","вул. Щербакова","пров. Луганський","бульвар Щепотьєва","вул. Путилівська","вул. Черешнева","пров. Козацький","пров. Красіна","пров. Візничий","вул. Преображенська","вул. Пирятинська","пров. Човновий","вул. Кучеренка (Нижні Млини)","пров. Бестужева","вул. Семенівська","вул. Павлика Морозова","вул. Лубенська","вул. Клубнична","пров. Латишева","пров. Глибокий","вул. Фестивальна","пров. Суворовський","вул. Механізаторів","пров. Ламаний","пров. Нежданової","пров. Ольги Кобилянськоі","пров. Романтичний","вул. Красіна","пров. Суконний","вул. Малорудчанська","пров. Вітряний","Харківське шосе","вул. Новий Базар","пров. Вугловий","пров. Заячий","пров. Подорожний","вул. Лялі Убийвовк","вул. Ломоносова","вул. Гожулівська","вул. Єднання","вул. П'ятирічки","пров. Рибальський","вул. Кременчуцька","пров. 2-й Веселий","вул. Федора Моргуна","вул. Весняна","бульвар Нестерова","вул. Коп'яка","пров. Радгоспівський","вул. Середня","пров. Нижній","пров. Серпанковий","вул. Великорогізнянська","пров. Верхній","вул. Патріотична","вул. Набережна","пров. Хорольський","вул. Озерна","вул. Новопроектована","пров. Лізи Чайкіної","вул. Гагаріна","вул. Конституції","пров. Першотравневий","вул. Перемоги","вул. Лютневої Революції","вул. Юрія Кондратюка","пров. Перспективний","пров. Крутий","пров. Вантажний","вул. Калинова","вул. Харківська","вул. Астрономічна","вул. Черепанова","вул. 1-ша Лінія","вул. Тельмана","вул. Желвакова","вул. Водяна","вул. Великотирнівська","пров. Червоний","пров. Новозіньківський","пров. Градижський","вул. Пейзажна","вул. Маршала Бірюзова","пров. Тракторний","вул. Олександра Лютого","вул. Сортувальна","пров. Родниковий","пров. Телефонний","вул. Ювілейна","вул. Редутна","вул. Чумака","вул. Челябінська","площа 1100-річчя Полтави","вул. Верхолянська","вул. Васильківського","вул. Герцена","вул. Рибчанська","вул. Сінна","вул. Червонозоряна","вул. Ранкова","пров. Кустарний","пров. Хліборобів","вул. Лесі Українки","вул. Львівська","пров. Ягідний","пров. Гаршина","вул. Новостепова","вул. Гребінківська","пров. Лижний","вул. Крутобережанська","вул. Кавказька","вул. Загородня","вул. Крамського","вул. Шліхтера","вул. Затонського","вул. Нижньомлинська","пров. Сінний","пров. Чайковського","пров. Сазанова","вул. Панфілова","вул. Чураївни","пров. Карпенка-Карого","вул. Полярна","вул. Іскрівська","пров. Сковороди","вул. Газова","вул. Залізнична","вул. Фізкультурна","вул. Богдана Хмельницького","пров. Цілинний","вул. Дніпрової Чайки","вул. Марата","пров. Поштовий","пров. Промисловий","пров. Сумський","вул. Червоного Хреста","вул. Чорнухинська","пров. 2-й Річковий","вул. Берестова","вул. Малиновського","вул. Яружна","пров. Гористий","вул. Фрунзе","вул. Дундича","пров. Мальовничий","пров. Кришталевий","вул. Коцюбинського (Розсошенці)","пров. Матросова","вул. Бригадна","вул. Попова","вул. Шевченка (Розсошенці)","вул. Пушкарівська","бульвар Котляревського","пров. Гулака-Артемовського","пров. Навої","вул. Селянська","вул. Барикадна","вул. Надворсклянська","вул. Коваля","пров. Фіалковий","вул. Шведська","вул. Центральна (Щербані)","вул. Сергія Сапіга","пров. Опішнянський","вул. Тевелєва","вул. Алмазна","вул. Горького","вул. Писарєва","пров. Панфілова","вул. Франка","вул. Кармалюка","вул. Гребінки","вул. Соснова","вул. Історична","пров. Лінійний","вул. Дослідна","вул. Магістральна","вул. Клінкерна","пров. Крайній","вул. Скіфська","вул. 3-тя Лінія","вул. Піщана","пров. Кропивницького","пров. Грабинівський","вул. Степовика","вул. Лобачевського","вул. Зернова","вул. Полюсна","пров. Вагонний","пров. Корзуна","вул. Івончанська","вул. Половка","вул. Центральна","вул. Натуралістів","вул. Деповська","пров. Бульварний","вул. 4-та Лінія","вул. Повітрофлотська","вул. Комбайнерів","вул. Кар'єрна","пров. 1-й Радянський","пров. Толстого","вул. Лугова","пров. Заїжджий","вул. Станіславського","пров. Соколова","пров. Тимірязєва","вул. Кожевна","пров. Кобеляцький","пров. Паскаля","вул. Занасипна","пров. Лозівський","пров. Вербовий","вул. 2-га Черепична","пров. 1-й Трубний","пров. 3-й Тупик","вул. Гагаріна (Розсошенці)","вул. Велика","вул. Фруктова","пров. Чернишевського","пров. 2-й Трубний","вул. Некрасова","пров. Виборзький","пров. Памірський","вул. Реконструктивна","вул. Мясоєдова","пров. Мусоргського","вул. Чехова","вул. Сосюри","вул. Мартина Пушкаря","пров. Крилова","вул. Клари Цеткін","вул. Залізна","вул. Глібова","вул. Менделєєва","пров. Радянської Армії","пров. Ясний","пров. Декоративний","пров. Метеоритний","пров. Металозаводський","пров. Піддубного","пров. Гвардійський","пров. Прямокутний","пров. Степана Халтуріна","пров. Гнєдича","пров. Урожайний","пров. Зелений Яр","пров. Марка Вовчка","пров. Степовий","пров. Степовий (Рибці)","пров. Квітки-Основ'яненка","вул. Заводська","вул. Міщенка","вул. Раїси Кириченко","вул. Ударна","вул. Винахідницька","вул. Петра Юрченка","вул. Комарницького","вул. Глущенка","вул. Виноградна","пров. Талалихіна","пров. Любові Шевцової","пров. Клубний","вул. Гетьмана","вул. Братів Майбородів","вул. Олександра Засядька","вул. Олександра Сазонова","вул. Єлизавети Милорадович","вул. Марії Башкирцевої","пров. Половчанський","пров. Яблуневий","пров. Юрівський","вул. Павлова","вул. Шмиглівська","пров. Керамічний","пров. Ткачів","вул. Можайського","пров. Тюленіна","пров. Смирнова","вул. Краснодонська","вул. Ульянових","пров. Бригадний","вул. Супрунівська","вул. Степова","пров. Променистий","вул. Повстанська","пров. Авіахімівський","пров. Рожевий","пров. Майфета Григорія","пров. Новорибцівський","вул. Академіка Гришка","пров. Руднинського","пров. Хіммашівський","пров. Пробивний","пров. Пелюстковий","пров. Щасливий","вул. Кишинівська","вул. Оржицька","вул. Краєвидна","вул. Глобинська","вул. Коровайна","вул. Ясенева","вул. Серпнева","пров. Автомобілістів","пров. Ароматичний","пров. Вечірній","вул. Інженерна","вул. Гостинна","пров. Дачний","пров. Кам'яний","вул. Геофізична","вул. Лермонтова","вул. Роксолани","вул. Архітектурна","вул. Чураївни (Горбанівка)","вул. Гоголя (Розсошенці)","вул. Фрунзе (Розсошенці)","вул. Шкільна (Розсошенці)","вул. Пушкіна (Горбанівка)","вул. Зоряна (Горбанівка)","вул. Фурманова (Горбанівка)","вул. Південна (Щербані)","вул. Пестеля","вул. Коломацька","вул. Подолянська","пров. Самоцвітний","вул. Соняшникова","пров. Календарний","вул. Проліскова","пров. Ялинковий","вул. Волошкова","пров. Трикотажний","пров. Прядильний","пров. Підлісний","пров. Парашутний","пров. 2-й Радянський","пров. Струмковий","проїзд Червоний Хімік","вул. Староруслянська","пров. Коцюбинського","вул. Жасмінова","вул. Ромашкова","вул. Медова","пров. Кизиловий","вул. Айвова","пров. Низовий","пров. Дублянський","пров. Машиністів","вул. Садибна","пров. Північний","вул. Зої Космодем'янської","вул. Піднасипна","пров. Перевізний","пров. Проїзний","пров. Кондукторський","пров. Скороходівський","вул. Лісова","пров. Слов'янський","пров. Бібліотечний","вул. Продовольча","вул. Прохідна","пров. Червонополянський","пров. Коп'яка","вул. Польова","пров. Донецький","пров. Прожекторний","пров. Журавлиний","вул. Журавлина","вул. Горова","вул. Ольхова","вул. Динамівська","пров. Агрономічний","пров. Сорочинський","пров. Бузковий","пров. Пісенний","пров. Силікатний","вул. Тахтаулівська","вул. Агітаційна","вул. Бесарабська","пров. Черемховий","пров. Мате Залки","вул. Зарічна","вул. Прогресивна","пров. Береговий","вул. Шкільна","пров. Залізничний","пров. Волочаївський","пров. Жовтневий","пров. Дружби","пров. Бугровий","пров. Ажурний","пров. Покровський","вул. Слобідська","вул. 23-го З'їзду КПРС","пров. Затишний","пров. Затуринський","пров. Вакулинцівський","пров. Троїцький","вул. Кованьківська","вул. Марківська","пров. Піщаний","вул. Енергетична","вул. Будьонного (Горбанівка)","вул. Ковалівська","вул. Старокотелевська","пров. Птичий","вул. Кармелюка","вул. Шота Руставелі","пров. Щепкіна","пров. Тополиний","пров. Набережний","пров. Скліфосовського","вул. Разіна","пров. Лисенка","вул. Мікеріна","вул. Роз'їзна","пров. Достоєвського","пров. Вороніна","вул. Транспортна","вул. Буровиків","вул. Домобудівельна","вул. Ливарна","вул. Пролетарська (Гожули)","вул. Польова (Гожули)","вул. Космічна (Гожули)","вул. 70-річчя Великого Жовтня","вул. Чорноглазівська (Гожули)","вул. Шишацька (Гожули)","вул. Славна (Гожули)","вул. Гостинна (Гожули)","пров. Александрівський","пров. Сухомлинського","вул. Олімпійська","пров. Олімпійський","пров. Миру","пров. Чарівний","пров. Балтійський","вул. Геологічна","пров. Азимутний","вул. Перепелина","вул. Балтійська","вул. Лісогірська","пров. Індивідуальний","вул. Чумаківська","вул. Стрілецька","вул. Лучниківська","пров. Березовий","пров. Ліричний","вул. КІМ","вул. Черкаська","вул. Тіньова","пров. Братський","пров. Єрмака","пров. Героїчний","пров. Метростроївський","вул. Вітрика","вул. Ставкова","вул. Санжарівська","вул. Дундича","вул. Червоних Партизан","вул. Червоної Зірки","пров. Правденка","вул. Генерала Жадова","вул. Текстильна","пров. Бавовняний","вул. Тимурівська","пров. Тимурівський","пров. Кореспондентський","вул. Артільна","пров. Дундича 1-й","пров. Дундича 2-й","пров. Дундича 3-й","пров. Фізкультурний 1-й","пров. Фізкультурний 2-й","пров. Фізкультурний 3-й","пров. Реконструктивний","пров. Польовий","вул. Петрашева","вул. Листопадна","пров. Класичний","пров. Поетичний","вул. Зоологічна","пров. Продмашівський","пров. Дружній","пров. Борців","пров. Археологічний","пров. Амбарний","вул. Наукова","пров. Науковий","пров. Гороховий","пров. Рушниковий","вул. Леоніда Бразова","вул. Дмитра Балацького","вул. Грицька Коваленка","вул. Дмитра Ахшарумова","вул. Тамари Кислякової","вул. Йозефа Хмелевського","вул. Льва Падалки","вул. Яр","пров. Кольоровий","пров. Криничний","пров. Музичний","пров. Мистецький","вул. Новоселицька","вул. Чапаєва (Розсошенці)","вул. Дзержинського","вул. Калинова (Горбанівка)","пров. Квітковий","вул. Роксолани (Горбанівка)","вул. Весняна (Горбанівка)","вул. Молодіжна (Горбанівка)","вул. Грушевського (Горбанівка)","вул. Степна (Розсошенці)","вул. Садовського","пров. Казковий","вул. Ланова","пров. Ясний (Гожули)"];var StreetsRus=["","ул. Мира","пер. Скобелева","ул. Самоцветная","ул. Пищевиков","пер. Гайдаренко","ул. Каштановая","ул. Менжинского","ул. Ватутина","ул. Пролетарская","ул. Монастырская","пер. Весенний","ул. Гетманская","ул. 9-й Проезд","бульвар Боровиковского","пер. Гречневый","пер. Барвинковский","пер. Брестский","ул. Зализняка","пер. Днепропетровский","ул. Степного Фронта","ул. Сурикова","ул. Петровского","Павленковская площадь","ул. Лесозащитная","ул. Софии Ковалевской","ул. 9-я Линия","ул. Амундсена","ул. Щорса","ул. Зыгина","пер. Деревообрабатывающий","пер. Заньковецкой","ул. Танкистов","ул. Владимира Козака","пер. Земляничний","пер. Луценко","ул. Паровозная","ул. 7-й Проезд","ул. Административная","ул. Коперника","пер. Металлистов","пер. Зайкевича","ул. Митенко","Комсомольскай площадь","ул. Лысенко","пер. Рассошенский","ул. Вознесенская","пер. Пролетарский","ул. Рассветная","ул. Панянка","пер. Бумажный","пер. Вишневый","ул. Цветочная","ул. Яценко","ул. Лесная","ул. Добролюбова","пер. 8 Марта","ул. Левадная","ул. Фурманова","ул. Пирогова","ул. Поселковая","ул. Карла Либкнехта","пер. Тыловой","пер. Кротенковский","пер. Максима Рыльского","ул. Юношеская","ул. Гоголя","ул. Юровская","ул. Героев Сталинграда","ул. Нахимова","ул. Артема","Первомайский проспект","ул. Кричевского","пер. Абрикосовий","пер. Свободный","пер. Комиссаровский","ул. Демократическая","ул. Живописная","пер. Больничный","пер. Скифский","ул. Щемиловская","пер. Горбаневский","пер. Метеорологический","пер. Приречный","ул. Рябушанская","ул. Колоскова","пер. Ногина","ул. Малобудищанская","ул. Правды","пер. Стекольный","ул. Освобождения","пер. Рылеева","пер. Рыночный","ул. Театральная","пер. Меняйловский","пер. Садовый","ул. Счетоводная","просп. Николая Вавилова","пер. Глинки","ул. Профинтерну","ул. Желябова","ул. Нижнефабриканская","пер. Вернадского","ул. Генерала Духова","ул. Розы Люксембург","ул. Пилотская","ул. Головка","ул. Короленко","пер. Джерельный","пер. Ярослава Галана","ул. 1-й Проспект","бульвар Богдана Хмельницкого","ул. Баумана","пер. Степовика","ул. Краснополянская","пер. Бытовой","пер. Панянский","ул. Стешенко","ул. Кучеренко","пер. Цитовский","ул. Звездная","ул. Зоресветная","ул. Богуна","пер. Косой","ул. Наримановская","ул. Лидова","пер. Космический","ул. Парижской Коммуны","пер. Украинский","ул. 5-я Линия","ул. Кравецкая","ул. ПРЗ","ул. Нечуя-Левицкого","площадь Зыгина","ул. Лихачова","ул. Мазуровская","ул. Котляревского","ул. 23 Сентября","ул. 9 Мая","ул. Привокзальная","ул. 2-я Линия","пер. Московский","пер. Строительный","пер. Тихий","пер. Паторжинского","ул. Гладкого","пер. Интернациональный","пер. Андреевский","пер. Высокий","ул. Октябрьская","ул. Коцюбинского","ул. Сакко","ул. Дендропарковая","ул. Аркадия Гайдара","ул. Светлая","пер. Перекопский","пер. Вечный","пер. Белинского","ул. Парковая","ул. Пригородная","ул. Бородая","пер. Малый","ул. Круглая","ул. Репина","ул. Островского","пер. 1-й Речной","пер. Прияружный","пер. Кирпичный","ул. Луценко","ул. Чутовская","бульвар Маршала Конева","пер. Пасечный","пер. Микитенко","ул. Запорожская","ул. Гаражная","пер. Грабовского","ул. Кольцевая","ул. Пушкина","ул. Тобилевича","ул. Библиотечная","бульвар Юрия Победоносцева","пер. 1-й Тупик","ул. Свободы","ул. Івановская","ул. Донченко","пер. Нафтовый","пер. Туннельный","ул. Пивненко","пер. Капельгородского","ул. Энгельса","ул. Балочная","пер. Железная","ул. Корчагинская","ул. 5-й Проезд","ул. Литературная","ул. Володарского","ул. Фонарная","ул. Циолковского","ул. Бакинских Комиссаров","пер. 2-й Тупик","пер. Кленовый","пер. Радищева","ул. Остроградского","ул. Низовая","ул. Сельскохозяйственная","ул. Сковороды","ул. Красногоровская","пер. Красочный","ул. Серегина","ул. Химическая","ул. Хвойная","ул. Картинная","ул. Коминтерну","ул. Цветущая","Панянский бульвар","пер. Окопный","ул. Речная","пер. 1-й Театральный","ул. Баяна","ул. Лизы Чайкиной","ул. Красноармейская","ул. Кузнечная","пер. Челябинский","пер. Шевченко","ул. Береговая","пер. Школьный","пер. 1-й Веселый","ул. Спаская","ул. Зеленая","ул. Балакина","пер. Парниковий","пер. Ветеринарный","пер. Мясоедова","ул. Тикунова","ул. Тургенева","ул. Декабристов","ул. Лазурная","Красноградское шоссе","ул. Челюскина","пер. Войкова","ул. Буденного","ул. Нефтяников","ул. Шолом-Алейхема","ул. Авиационная","пер. Щербаневский","ул. Локомотивная","ул. Калинина","пер. Добролюбова","ул. Путевая","ул. Трояндовая","ул. Белоцерковская","ул. Яковчанская","ул. Горбаневская","ул. Степана Халтурина","пер. Чапаева","ул. Осенняя","ул. Профсоюзная","ул. Лавчанская","ул. Новозеньковская","пер. Голубой","ул. Курчатова","Институтский прорез","ул. Медицинская","ул. Ляхова","ул. Гвардейская","ул. Комарова (Рассошенцы)","площадь Калинина","ул. Гаевого","ул. Кобзарская","ул. Кагамлыка","ул. Дружбы","ул. Новозапорожская","ул. Мироненко","ул. Молодежная","ул. Панаса Мирного","пер. Ставочный","ул. Бугровая","ул. Вакуленцевская","ул. Музейная","ул. Солнечная","ул. Мате Залки","пер. Марата","ул. 1-й Проезд","ул. Старый Подол","ул. Довженко","пер. Волынский","ул. Зеньковская","ул. Грушевая","пер. Грунтовый","ул. Маяковского","ул. Летописная","ул. 2-й Проспект","ул. Владимирская","ул. Крестовоздвиженская","ул. Кривоносовская","ул. 8-й Проезд","ул. Александра Бидного","ул. Совхозная","ул. Макаренко","ул. Автоагрегатчиков","ул. 3-й Проспект","ул. Туннельная","ул. Геращенко","ул. Гулака-Артемовского","пер. Фруктовый","ул. Космическая","ул. Огородная","ул. Гастелло","пер. Коллективный","ул. Певчая","пер. Миргородский","ул. Шишкина","ул. Розовая","ул. Семафорная","пер. Узкий","ул. Чкалова","ул. Патлаивская","ул. Просвещенская","ул. Хасановская","ул. Грабчака","ул. Ольховая (Яр)","пер. Запасной","ул. Покровская","пер. Моторный","ул. Зеленый Остров","пер. Коммунаров","пер. Федька","ул. Художественная","ул. Радищева","ул. Курганная","пер. Геодезический","ул. Жуковская","пер. Пашенной","ул. Ветеринарная","пер. Опытный","ул. Героев Труда","ул. Пост-Островская","пер. Токарный","пер. Госпитальный","Соборная площадь","пер. Кооперативный","пер. Подъемный","ул. Шиловская","ул. Аэронавтов","ул. Автобазовская","ул. Росяная","пер. Дымский","ул. Июньская","пер. Куликова","пер. Карла Либкнехта","пер. Очеретянский","ул. Военная","ул. Яблоневый","ул. Чапаева","ул. 9 Января","ул. 8-я Линия","Воскресенский подъем","пер. Спортивный","площадь Независимости","пер. Яровой","ул. Колоритная","ул. Комсомольская","пер. Коллекторный","пер. Фадеева","ул. Толстого","ул. Олега Кошевого","пер. Михайличенко","ул. Безбожницкая","пер. Нахимова","ул. Краснофлотская","пер. Трудовой","ул. Пересечная","пер. Боевой","ул. Ленина (Рассошенцы)","пер. Монтажный","пер. Рогозненский","пер. 2-й Прорезной","ул. Навроцкого","ул. Мичурина","пер. Пугачова","пер. Арктический","Киевское шоссе","ул. Новаторская","пер. Тесленко","ул. Прозрачная","ул. Ковпака","пер. Пионерский","ул. Баленко","пер. Собинова","ул. Революционная","ул. 6-я Линия","ул. Стрелочная","ул. Индустриальная","ул. Черниговская","ул. Далекая","ул. Павла Тычины","ул. Терновая","ул. Ползунова","пер. Первопроходцев","пер. Товарный","ул. Южная","ул. Дунаевского","ул. Комарова","ул. Докучаева","ул. Малиновая","пер. ХТЗ","ул. Праздничная","ул. Тимирязева","ул. Круговая","ул. Академика Квасницкого","пер. Майский","ул. Янтарная","ул. Степана Кондратенко","ул. 3-й Проезд","ул. Куйбышева","ул. 7-я Линия","площадь Славы","ул. Хлебозаводская","ул. Гната Хоткевича","пер. Воронянский","пер. Левадный","ул. Тополина","пер. Давидовского","ул. Грибоедова","ул. Липовая","ул. Нагорная","пер. Снежный","ул. Грабиновская","пер. Закрытий","пер. 2-й Театральный","ул. Серафимовича","ул. 1-я Черепичная","ул. Плеханова","ул. Щорса (Горбаневка)","ул. Гончарова","пер. Каховский","ул. Огнивская","ул. 2-й Проезд","ул. Громадская","ул. Шевченко","ул. Космонавтов","пер. Авиационный","пер. Большой","ул. Садовая","пер. Коммунальный","пер. Пейзажный","ул. Верховинца","ул. 6-й Проезд","ул. Партизанская","пер. Спилчанский","пер. Глиняный","ул. Свердлова","ул. Вячеслава Черновола","пер. Торфяной","ул. Спартака","ул. Гайдаренко","пер. Дарвина","пер. Позена","пер. Челюскина","пер. Сосновый","ул. Чистопрудная","ул. Советской Армии","пер. Тупой","ул. Ягодная","ул. Ракова","ул. Ставицкого","пер. Диканьский","ул. Конноармейская","ул. Ярошенко","пер. Депутатский","пер. Баварский","ул. Республиканская","пер. Бархатный","ул. Овощная","ул. Молодогвардейская","ул. Аэродромная","ул. Остапа Вишни","пер. Мелиоративный","ул. Подгорная","ул. Ремесленная","пер. Крутобережанский","ул. Федора Матвиенко","ул. Коломенская","ул. Шведская Могила","пер. Стефаника","пер. Ботанический","ул. Черняховского","ул. Примакова","ул. Михаила Грушевского","пер. Рельсовый","проспект Мира","ул. Узкая","пер. Быстровский","ул. Леваневского","пер. Муравьева","пер. Незабвенный","ул. Воровского","пер. Рабочий","ул. Муранова","ул. Дублянская","пер. Гурамишвили","ул. Светлая (Щербани)","ул. Сороченская","ул. Осипенко","пер. Старицкого","ул. Ленина","ул. Серова","пер. Островского","ул. Лагоды","ул. Геодезическая","ул. Вильямса","ул. Затуринская","ул. Уютная","ул. Воронина","ул. 4-й Проезд","ул. Рогозненская","ул. 1100-летия Полтавы","ул. Никитченко","ул. Боженко","ул. Щербакова","пер. Луганский","бульвар Щепотьева","ул. Путиловская","ул. Черешневый","пер. Казацкий","пер. Красина","пер. Возничий","ул. Преображенская","ул. Пирятинская","пер. Лодочный","ул. Кучеренко (Нижние Млыни)","пер. Бестужева","ул. Семеновская","ул. Павлика Морозова","ул. Лубенская","ул. Клубничная","пер. Латышева","пер. Глубокий","ул. Фестивальная","пер. Суворовский","ул. Механизаторов","пер. Ломанный","пер. Неждановой","пер. Ольги Кобылянской","пер. Романтичный","ул. Красина","пер. Суконный","ул. Малорудчанская","пер. Ветренный","Харьковское шоссе","ул. Новый Базар","пер. Угловой","пер. Заячий","пер. Подорожный","ул. Ляли Убийвовк","ул. Ломоносова","ул. Гожулянская","ул. Единения","ул. Пятилетки","пер. Рыбальский","ул. Кременчуцкая","пер. 2-й Веселый","ул. Федора Моргуна","ул. Весенняя","бульвар Нестерова","ул. Копяка","пер. Совхозный","ул. Средняя","пер. Нижний","пер. Кисейный","ул. Великорогозненская","пер. Верхний","ул. Патриотическая","ул. Набережная","пер. Хорольский","ул. Озерная","ул. Новопроектируемая","пер. Лизы Чайкиной","ул. Гагарина","ул. Конституции","пер. Первомайский","ул. Победы","ул. Февральской Революции","ул. Юрия Кондратюка","пер. Перспективный","пер. Крутой","пер. Грузовой","ул. Калиновая","ул. Харьковская","ул. Астрономическая","ул. Черепанова","ул. 1-я Линия","ул. Тельмана","ул. Желвакова","ул. Водяная","ул. Великотырновская","пер. Красный","пер. Новозеньковский","пер. Градижский","ул. Пейзажная","ул. Маршала Бирюзова","пер. Тракторный","ул. Александра Лютого","ул. Сортировочная","пер. Родниковый","пер. Телефонный","ул. Юбилейная","ул. Редутная","ул. Чумака","ул. Челябинская","площадь 1100-летия Полтавы","ул. Верхолянская","ул. Васильковского","ул. Герцена","ул. Рыбчанская","ул. Сенная","ул. Краснозвездная","ул. Утренняя","пер. Кустарный","пер. Хлеборобов","ул. Леси Украинки","ул. Львовская","пер. Ягодный","пер. Гаршина","ул. Новостеповая","ул. Гребенковская","пер. Лыжный","ул. Крутобережанская","ул. Кавказская","ул. Загородная","ул. Крамского","ул. Шлихтера","ул. Затонского","ул. Нижнемлинская","пер. Сенной","пер. Чайковского","пер. Сазанова","ул. Панфилова","ул. Чураивны","пер. Карпенка-Карого","ул. Полярная","ул. Искровская","пер. Сковороды","ул. Газовая","ул. Железнодорожная","ул. Физкультурная","ул. Богдана Хмельницкого","пер. Целинный","ул. Днепровой Чайки","ул. Марата","пер. Почтовый","пер. Промышленный","пер. Сумской","ул. Красного Хреста","ул. Чернухинская","пер. 2-й Речной","ул. Берестовая","ул. Малиновского","ул. Яружная","пер. Гористый","ул. Фрунзе","ул. Дундича","пер. Живописный","пер. Хрустальный","ул. Коцюбинского (Рассошенцы)","пер. Матросова","ул. Бригадная","ул. Попова","ул. Шевченко (Рассошенцы)","ул. Пушкаревская","бульвар Котляревского","пер. Гулака-Артемовского","пер. Навои","ул. Сельская","ул. Барикадная","ул. Надворсклянская","ул. Коваля","пер. Фиалковый","ул. Шведская","ул. Центральная (Щербани)","ул. Сергия Сапиго","пер. Опошнянский","ул. Тевелева","ул. Алмазная","ул. Горького","ул. Писарева","пер. Панфилова","ул. Франко","ул. Кармалюка","ул. Гребинки","ул. Сосновая","ул. Историческая","пер. Линейная","ул. Опытная","ул. Магистральная","ул. Клинкерна","пер. Крайний","ул. Скифская","ул. 3-я Линия","ул. Песчаная","пер. Кропивницкого","пер. Грабиновский","ул. Степовика","ул. Лобачевского","ул. Зерновая","ул. Полюсная","пер. Вагонный","пер. Корзуна","ул. Ивончанская","ул. Половка","ул. Центральная","ул. Натуралистов","ул. Деповская","пер. Бульварный","ул. 4-я Линия","ул. Воздушнофлотская","ул. Комбайнеров","ул. Карьерная","пер. 1-й Советский","пер. Толстого","ул. Лугова","пер. Заезжий","ул. Станиславского","пер. Соколова","пер. Тимирязева","ул. Кожевная","пер. Кобеляцкий","пер. Паскаля","ул. Занасыпная","пер. Лозовский","пер. Вербовый","ул. 2-я Черепичная","пер. 1-й Трубный","пер. 3-й Тупик","ул. Гагарина (Рассошенцы)","ул. Большая","ул. Фруктовая","пер. Чернышевского","пер. 2-й Трубный","ул. Некрасова","пер. Выборжский","пер. Памирский","ул. Реконструктивная","ул. Мясоедова","пер. Мусоргского","ул. Чехова","ул. Сосюри","ул. Мартына Пушкаря","пер. Крылова","ул. Клары Цеткин","ул. Железная","ул. Глебова","ул. Менделеева","пер. Советской Армии","пер. Ясный","пер. Декоративный","пер. Метеоритный","пер. Металлозаводской","пер. Поддубного","пер. Гвардейский","пер. Прямоугольный","пер. Степана Халтурина","пер. Гнедича","пер. Урожайный","пер. Зеленый Яр","пер. Марка Вовчка","пер. Степной","пер. Степной (Рыбцы)","пер. Квитки-Основяненко","ул. Заводская","ул. Мищенко","ул. Раиси Кириченко","ул. Ударная","ул. Изобретательская","ул. Петра Юрченко","ул. Комарницкого","ул. Глущенко","ул. Виноградная","пер. Талалихина","пер. Любви Шевцовой","пер. Клубный","ул. Гетмана","ул. Братьев Майбород","ул. Александра Засядька","ул. Александра Сазонова","ул. Елизавети Милорадович","ул. Марии Башкирцевой","пер. Половчанский","пер. Яблоневый","пер. Юровская","ул. Павлова","ул. Шмиглевская","пер. Керамичный","пер. Ткачей","ул. Можайского","пер. Тюленина","пер. Смирнова","ул. Краснодонская","ул. Ульяновых","пер. Бригадный","ул. Супруновская","ул. Степовая","пер. Лучистый","ул. Повстанческая","пер. Авиахимовский","пер. Розовый","пер. Майфета Григория","пер. Новорыбцовский","ул. Академика Гришка","пер. Руднинского","пер. Химмашевский","пер. Пробивной","пер. Лепестковый","пер. Счастливый","ул. Кишиневская","ул. Оржицкая","ул. Краевидная","ул. Глобинская","ул. Коровайная","ул. Ясеновая","ул. Августовая","пер. Автомобилистов","пер. Ароматичный","пер. Вечерний","ул. Инженерная","ул. Гостинная","пер. Дачный","пер. Каменный","ул. Геофизическая","ул. Лермонтова","ул. Роксоланы","ул. Архитектурная","ул. Чураивны (Горбаневка)","ул. Гоголя (Рассошенцы)","ул. Фрунзе (Рассошенцы)","ул. Школьная (Рассошенцы)","ул. Пушкина (Горбаневка)","ул. Звездная (Горбаневка)","ул. Фурманова (Горбаневка)","ул. Южная (Щербани)","ул. Пестеля","ул. Коломацкая","ул. Подолянская","пер. Самоцветный","ул. Подсолнечная","пер. Календарный","ул. Пролисковая","пер. Елочный","ул. Васильковая","пер. Трикотажный","пров. Прядильный","пер. Подлесный","пер. Парашютный","пер. 2-й Советский","пер. Струмочный","проезд Красный Химик","ул. Старорусленская","пер. Коцюбинского","ул. Жасминовая","ул. Ромашковая","ул. Медовая","пер. Кизиловый","ул. Айвовая","пер. Низовой","пер. Дублянский","пер. Машинистов","ул. Усадебная","пер. Северный","ул. Зои Космодемьянской","ул. Поднасыпная","пер. Перевозный","пер. Проездной","пер. Кондукторский","пер. Скороходовский","ул. Лесовая","пер. Славянский","пер. Библиотечный","ул. Продовольственная","ул. Проходная","пер. Краснополянский","пер. Копяка","ул. Полевая","пер. Донецкий","пер. Прожекторный","пер. Журавлиный","ул. Журавлиная","ул. Горовая","ул. Ольховая (Ивонченцы)","ул. Динамовская","пер. Агрономический","пер. Сороченский","пер. Бузковый","пер. Песенный","пер. Силикатный","ул. Тахтауловская","ул. Агитационная","ул. Бессарабская","пер. Черемушный","пер. Мате Залки","ул. Заречная","ул. Прогрессивная","пер. Береговой","ул. Школьная","пер. Железнодорожный","пер. Волочаевский","пер. Октябрьский","пер. Дружбы","пер. Бугровый","пер. Ажурный","пер. Покровский","ул. Слободская","ул. 23-го Съезда КПСС","пер. Уютный","пер. Затуринский","пер. Вакулинцевский","пер. Троицкий","ул. Кованьковская","ул. Марковская","пер. Песочный","ул. Энергетическая","ул. Буденного (Горбаневка)","ул. Ковалевская","ул. Старокотелевская","пер. Птичий","ул. Кармелюка","ул. Шота Руставели","пер. Щепкина","пер. Тополиный","пер. Набережный","пер. Склифосовского","ул. Разина","пер. Лысенко","ул. Микерина","ул. Разъездная","пер. Достоевского","пер. Воронина","ул. Транспортная","ул. Буровиков","ул. Домостроительная","ул. Литейная","ул. Пролетарская (Гожулы)","ул. Полевая (Гожулы)","ул. Космическая (Гожулы)","ул. 70-летия Великого Октября","ул. Черноглазовская (Гожулы)","ул. Шишацкая (Гожулы)","ул. Славная (Гожулы)","ул. Гостинная (Гожулы)","пер. Александровский","пер. Сухомлинского","ул. Олимпийская","пер. Олимпийский","пер. Мира","пер. Волшебный","пер. Балтийский","ул. Геологическая","пер. Азимутный","ул. Перепелиная","ул. Балтийская","ул. Лисогорская","пер. Индивидуальный","ул. Чумаковская","ул. Стрелецкая","ул. Лучниковская","пер. Березовый","пер. Лирический","ул. КИМ","ул. Черкасская","ул. Теневая","пер. Братский","пер. Ермака","пер. Героический","пер. Метростроительный","ул. Витрыка","ул. Ставковая","ул. Санжаровская","ул. Дундича","ул. Красных Партизан","ул. Красной Звезды","пер. Правденко","ул. Генерала Жадова","ул. Текстильная","пер. Хлопчатобумажный","ул. Тимуровская","пер. Тимуровский","пер. Корреспондентский","ул. Артельная","пер. Дундича 1-й","пер. Дундича 2-й","пер. Дундича 3-й","пер. Физкультурный 1-й","пер. Физкультурный 2-й","пер. Физкультурный 3-й","пер. Реконструктивный","пер. Полевой","ул. Петрашева","ул. Листопадная","пер. Классический","пер. Поэтический","ул. Зоологическая","пер. Продмашевский","пер. Дружный","пер. Борцов","пер. Археологический","пер. Амбарный","ул. Научная","пров. Науковий","пер. Гороховый","пер. Рушниковый","ул. Леонида Бразова","ул. Дмитрия Балацкого","ул. Грицка Коваленко","ул. Дмитрия Ахшарумова","ул. Тамары Кисляковой","ул. Йозефа Хмелевского","ул. Льва Падалки","ул. Яр","пер. Цветной","пер. Криничный","пер. Музыкальный","пер. Художественный","ул. Новосельская","ул. Чапаева (Рассошенцы)","ул. Дзержинского (Рассошенцы)","ул. Калиновая (Горбаневка)","пер. Цветочный (Горбаневка)","ул. Роксоланы (Горбаневка)","ул. Весенняя (Горбаневка)","ул. Молодежная (Горбаневка)","ул. Грушевского (Горбаневка)","ул. Степная (Рассошенцы)","ул. Садовского","пер. Сказочный","ул. Лановая","пер. Ясный (Гожулы)"];var Banners=[{Map:[{L:0,R:43004,T:0,B:43004}],Width:433,Height:60,Code:'<a href="mailto:info@navigator.pl.ua"><img src="http://map.navigator.pl.ua/images/syrkin.png" alt="Розміщення інформації на веб-карті" width="433" height="60" border="0" style="display:block;" /></a>'}];var eMap={BaseURL:'http://map.navigator.pl.ua',DOM:{mapMenu:null,mapHolder:null,mapWindow:null,mapBounds:null,mapCanvas:null,mapBackground:null,mapCells:null,mapInformers:null,mapToolbar:null,mapBanner:null},Layers:[],Zoom:2,X:22430,Y:22556,CenterX:22428,CenterY:22562,Status:null,URL:{Controls:'http://map.navigator.pl.ua/style/controls.gif',MiniMap:'http://map.navigator.pl.ua/style/minimap.png',Flags:'http://map.navigator.pl.ua/style/language-flags.gif',Transparent:'http://map.navigator.pl.ua/style/1.gif',LogoBackground:'http://map.navigator.pl.ua/style/logo-background.png',BClose:'http://map.navigator.pl.ua/style/banner-close.png'},Size:{Grid:[168,84,42,21,11,6,3,2],Total:[43008,21504,10752,5376,2816,1536,768,512],Real:[43008,21504,10752,5376,2688,1344,672,336]},Mode:'Normal',Location:{Inf:'',Load:function(){try{var reLoc=/#(.*)$/.exec(window.location.href);if(reLoc){var loc=reLoc[1]+':';var reX=/x:(\d+):/;var reY=/y:(\d+):/;var reZoom=/zoom:(\d+):/;var reInf=/inf:([0-9a-z-]+):/;if(temp=reX.exec(loc))eMap.X=(temp[1]<0)?0:(temp[1]>43007?43007:temp[1]);if(temp=reY.exec(loc))eMap.Y=(temp[1]<0)?0:(temp[1]>43007?43007:temp[1]);if(temp=reZoom.exec(loc))eMap.Zoom=(temp[1]<1)?1:(temp[1]>7?7:temp[1]);if(reInf.test(loc))eMap.Location.Inf=RegExp.$1;}}catch(error){}},Set:function(){var url_location='#x:'+eMap.X+':y:'+eMap.Y+':zoom:'+eMap.Zoom;if(eMap.Location.Inf)url_location+=':inf:'+eMap.Location.Inf;window.location=url_location;if(eMap.DOM.mapMenu!=null)eMap.DOM.mapMenu.find('#printLink').attr('href','?print#x:'+eMap.X+':y:'+eMap.Y+':zoom:'+eMap.Zoom);if(eMap.Mode=='Print')$('#mapLocationLink').html(eMap.BaseURL+'/<strong>'+url_location+'</strong>');}},Lang:{DOM:null,Value:'uk',Menu:{uk:{name:'українська',title:'Мова інтерфейсу:',offset:4},ru:{name:'русский',title:'Язык интерфейса:',offset:-21},en:{name:'english',title:'Interface language:',offset:-46}},Create:function(){try{eMap.Lang.Value=Intro.Lang;}catch(error){var lc=$.cookie('lang');if(lc=='ru'||lc=='uk'||lc=='en')eMap.Lang.Value=lc;}var menu=eMap.Lang.Menu[eMap.Lang.Value];var $tr=$(document.createElement('tr')).append($(document.createElement('td')).css('padding-right','3px').append(menu.title));for(l in eMap.Lang.Menu){var lang=eMap.Lang.Menu[l];$tr.append($(document.createElement('td')).css({'width':'24px','padding-left':'2px'}).append($(document.createElement('span')).attr('id','lang_'+l).css({'display':'block','width':'22px','height':'19px','position':'relative','overflow':'hidden','cursor':'pointer','border':(l==eMap.Lang.Value?'1px solid gray':'0px none'),'background':(l==eMap.Lang.Value?'#dddddd':'transparent'+(($.browser.msie?' url('+eMap.URL.Transparent+')':'')))}).bind('click',eMap.Lang.Update).append($(document.createElement('img')).attr('src',eMap.URL.Flags).attr('title',lang.name).css({'position':'absolute','left':(lang.offset-1)+'px','top':'4px'}))));}eMap.Lang.DOM=$(document.createElement('table')).attr('cellspacing','0px').attr('cellpadding','0px').attr('border','0px').css('float','right').append($tr);},Update:function(event){eMap.Lang.Value=(this.id=='lang_en'?'en':(this.id=='lang_ru'?'ru':'uk'));$.cookie('lang',eMap.Lang.Value,{expires:30,path:'/',domain:'navigator.pl.ua'});window.location.reload(false);}},Menu:{BaseHTML:'',Lang:{Print:{uk:'Підготувати до друку',ru:'Подготовить к печати',en:'Print preview'},Contact:{uk:'Тех. підтримка',ru:'Тех. поддержка',en:'Support'},Links:{uk:'Посилання',ru:'Ссылки',en:'Links'},Title:{uk:'Веб-карта Полтави',ru:'Веб-карта Полтавы',en:'Web-map of Poltava'}},Print:function(event){$(this).attr('href',eMap.BaseURL+'/?print#x:'+eMap.X+':y:'+eMap.Y+':zoom:'+eMap.Zoom);},Create:function(){eMap.Lang.Create();eMap.DOM.mapMenu.empty().css({'height':'30px','background':'#eeeeee url('+eMap.BaseURL+'/style/menu-gradient.png) repeat-x left bottom','line-height':'28px','padding':'0px 10px 0px 10px','overflow':'hidden'}).append(eMap.Lang.DOM,$(document.createElement('div')).append($(document.createElement('strong')).css({'color':'#000'}).append(eMap.Menu.Lang.Title[eMap.Lang.Value]),$(document.createElement('span')).append(' | '+eMap.Menu.Lang.Contact[eMap.Lang.Value]+': <a href="mailto:support@navigator.pl.ua">support@navigator.pl.ua</a> | '+eMap.Menu.Lang.Links[eMap.Lang.Value]+': <a href="http://www.poltava.pl.ua/" title="Новости Полтавы" target="_blank">Новости Полтавы</a> | <a href="http://forum.poltava.pl.ua/viewforum.php?f=3&start=0" title="Наш форум" target="_blank">Наш форум</a> | <a href="http://puls.poltava.ua" title="Puls Radio" target="_blank">Puls Radio</a>')));}},Canvas:{StartX:0,StartY:0,Create:function(){eMap.DOM.mapWindow=$(document.createElement('div')).attr('id','mapWindow');eMap.DOM.mapBounds=$(document.createElement('div')).attr('id','mapBounds');eMap.DOM.mapCanvas=$(document.createElement('div')).attr('id','mapCanvas');eMap.DOM.mapBackground=$(document.createElement('div')).attr('id','mapBackground');eMap.DOM.mapCells=$(document.createElement('div')).attr('id','mapCells');eMap.DOM.mapInformers=$(document.createElement('div')).attr('id','mapInformers');var map_cursor=$.browser.mozilla?'-moz-grab':'move';eMap.DOM.mapHolder.append(eMap.DOM.mapWindow.css({'width':'78%','position':'absolute','overflow':'hidden','left':'0px','top':(eMap.DOM.mapMenu?eMap.DOM.mapMenu.height():0)+'px','z-index':1}).append(eMap.DOM.mapBounds.css({'position':'absolute','z-index':1}).append(eMap.DOM.mapCanvas.css({'position':'absolute','left':'0px','top':'0px','z-index':1,'overflow':'hidden','cursor':map_cursor}).append(eMap.DOM.mapBackground.css({'position':'absolute','left':'0px','top':'0px','z-index':1,'overflow':'hidden','width':'100%','height':'100%','background-image':'url('+eMap.URL.LogoBackground+')'}),eMap.DOM.mapCells.css({'position':'absolute','left':'0px','top':'0px','z-index':2,'overflow':'hidden','width':'100%','height':'100%'}),eMap.DOM.mapInformers.css({'position':'absolute','left':'0px','top':'0px','z-index':90,'width':'0px','height':'0px'})))));},Resize:function(){var a=eMap.Size.Real[eMap.Zoom];var b=(a*2-1)+'px';var dX=(Math.floor(eMap.DOM.mapWindow.width()/2)-a+1)+'px';var dY=(Math.floor(eMap.DOM.mapWindow.height()/2)-a+1)+'px';eMap.DOM.mapBounds.css({'overflow':'hidden','width':b,'height':b,'left':dX,'top':dY});var w=eMap.DOM.mapBounds.width();var h=eMap.DOM.mapBounds.height();eMap.DOM.mapCanvas.css({'width':a+'px','height':a+'px'});},Locate:function(){var x=eMap.Coord.Scale(eMap.X);var y=eMap.Coord.Scale(eMap.Y);x=eMap.Coord.Reverse(x);y=eMap.Coord.Reverse(y);eMap.DOM.mapCanvas.css({'left':x+'px','top':y+'px'});},AddEvents:function(){eMap.DOM.mapCanvas.draggable({containment:($.browser.opera?null:eMap.DOM.mapBounds),start:function(){eMap.Status='drag';if($.browser.mozilla)eMap.DOM.mapCanvas.css({'cursor':'-moz-grabbing'});},stop:function(){if($.browser.mozilla)eMap.DOM.mapCanvas.css({'cursor':'-moz-grab'});var c=eMap.Coord.Canvas();eMap.MoveTo(c.left,c.top);eMap.Status=null;}});if(eMap.Mode=='Normal'){eMap.DOM.mapBounds.bind('mousewheel',function(event,delta){var sign=delta/Math.abs(delta);eMap.ZoomTo(eMap.Zoom-sign);});}eMap.DOM.mapCanvas.bind('dblclick',function(e){var node=eMap.DOM.mapCanvas;var left=(node.offset().left);var top=(node.offset().top);var x=e.pageX-left;var y=e.pageY-top;var size=eMap.Size.Real[eMap.Zoom];var x0=x*43008/size;var y0=y*43008/size;eMap.MoveTo(x0,y0);eMap.ZoomTo(eMap.Zoom-1);});},SlideTo:function(x,y){var c=eMap.Coord.Canvas();var x0=eMap.Coord.Scale(c.left);var y0=eMap.Coord.Scale(c.top);var x1=eMap.Coord.Scale(x);var y1=eMap.Coord.Scale(y);var d=Math.sqrt((x0-x1)*(x0-x1)+(y0-y1)*(y0-y1));if(true){eMap.Status='move';eMap.DOM.mapCanvas.stop();var dX=x0-x1;dX=dX>0?'+='+dX:'-='+Math.abs(dX);var dY=y0-y1;dY=dY>0?'+='+dY:'-='+Math.abs(dY);var dT=d;eMap.DOM.mapCanvas.animate({'left':dX+'px','top':dY+'px'},{duration:dT,queue:false,complete:eMap.Controls.CompleteMoving});}else{eMap.MoveTo(x,y);}},Update:function(){eMap.DOM.mapCanvas.find('.mapCell').not('.mapZoom_'+eMap.Zoom).css('visibility','hidden');eMap.DOM.mapCanvas.find('.mapZoom_'+eMap.Zoom).css('visibility','visible');for(i in eMap.Layers)eMap.Layers[i].Update();}},Cache:{Cells:new Array(50),Pointer:0,Push:function(block){var cache_id=this.Search(block.id,block.zoom);if(cache_id==-1){this.ClearCell(this.Pointer);this.Cells[this.Pointer]=block;this.AddCell(block);}else{this.ShiftCell(cache_id);}this.Pointer++;this.Pointer=(this.Pointer>=this.Cells.length)?0:this.Pointer;},AddCell:function(block){block.cell=$(document.createElement('div')).addClass('mapCell').addClass('mapZoom_'+block.zoom).css({'position':'absolute','left':block.left+'px','top':block.top+'px','width':'256px','height':'256px','-moz-user-select':'none'});eMap.DOM.mapCells.append(block.cell);for(i in eMap.Layers){var l=eMap.Layers[i];if(l.Cache&&l.Cache.AddCell)l.Cache.AddCell(block);}},ShiftCell:function(cell_id){if(cell_id==this.Pointer)return;var temp=this.Cells[cell_id];var i=cell_id;var p=this.Pointer;while(i!=p){var prev=(i-1<0)?(this.Cells.length-1):(i-1);this.Cells[i]=this.Cells[prev];i=prev;}this.Cells[p]=temp;},ClearCell:function(cell_id){if(this.Cells[cell_id]!=undefined){var block=this.Cells[cell_id];block.cell.remove();for(i in eMap.Layers){var l=eMap.Layers[i];if(l.Cache&&l.Cache.ClearCell)l.Cache.ClearCell(block);}this.Cells[cell_id]=undefined;}},Search:function(id,zoom){for(var i=0;i<this.Cells.length;i++){if(this.Cells[i]!=undefined&&this.Cells[i].id==id&&this.Cells[i].zoom==zoom)return i;}return-1;},ResetLayer:function(layer){for(var i=0;i<this.Cells.length;i++){if(this.Cells[i]!=undefined){if(layer.Cache&&layer.Cache.ClearCell)layer.Cache.ClearCell(this.Cells[i]);if(layer.Cache&&layer.Cache.AddCell)layer.Cache.AddCell(this.Cells[i]);}}}},Area:{Bounds:{Top:0,Right:0,Bottom:0,Left:0},Blocks:[],Size:{Width:0,Height:0},Update:function(){var x=eMap.Coord.Scale(eMap.X);var y=eMap.Coord.Scale(eMap.Y);var width=eMap.DOM.mapWindow.width();var height=eMap.DOM.mapWindow.height();var left=x-Math.floor(width/2);var right=x+Math.floor(width/2);var top=y-Math.floor(height/2);var bottom=y+Math.floor(height/2);var limit=eMap.Size.Real[eMap.Zoom]-1;this.Bounds.Left=left<0?0:left;this.Bounds.Top=top<0?0:top;this.Bounds.Right=right>limit?limit:right;this.Bounds.Bottom=bottom>limit?limit:bottom;this.Size.Width=this.Bounds.Right-this.Bounds.Left+1;this.Size.Height=this.Bounds.Bottom-this.Bounds.Top+1;var a=eMap.Size.Grid[eMap.Zoom];var n_left=Math.ceil((this.Bounds.Left+1)/256);var n_right=Math.ceil((this.Bounds.Right+1)/256);var n_top=Math.ceil((this.Bounds.Top+1)/256);var n_bottom=Math.ceil((this.Bounds.Bottom+1)/256);var blocks=[];for(var i=n_top;i<=n_bottom;i++){for(var j=n_left;j<=n_right;j++){var n=(i-1)*a+j;var left=(j-1)*256;var top=(i-1)*256;var visio=1.0;var cropX=0.0;var cropY=0.0;if(left<this.Bounds.Left)cropX=(this.Bounds.Left-left)/256;if(left+255>this.Bounds.Right)cropX+=(left+255-this.Bounds.Right)/256;if(top<this.Bounds.Top)cropY=(this.Bounds.Top-top)/256;if(top+255>this.Bounds.Bottom)cropY+=(top+255-this.Bounds.Bottom)/256;visio=(1.0-cropX)*(1.0-cropY);var zoom_id=parseInt(eMap.Zoom)+2;zoom_id=zoom_id>7?7:zoom_id;var bn=Math.floor(top/ 1024) * eMap.Size.Grid[zoom_id] + Math.floor(left /1024)+1;var block={id:n,left:left,top:top,visio:visio,zoom:eMap.Zoom,bn:bn};blocks.push(block);}}blocks.sort(this.Sort);this.Blocks=blocks;for(var i=0;i<blocks.length;i++)eMap.Cache.Push(blocks[i]);},Sort:function(block1,block2){return block1.visio<block2.visio?1:(block1.visio>block2.visio?-1:0);}},Controls:{Buttons:[{id:'emapAUp',action:'up',x:20,y:0},{id:'emapARight',action:'right',x:40,y:20},{id:'emapADown',action:'down',x:20,y:40},{id:'emapALeft',action:'left',x:0,y:20},{id:'emapACenter',action:'center',x:20,y:20},{id:'emapZoomIn',action:'zoomin',x:20,y:65},{id:'emapZoomOut',action:'zoomout',x:20,y:149}],Create:function(){eMap.DOM.mapWindow.append($(document.createElement('div')).attr('id','mapCenter').css({'position':'absolute','overflow':'hidden','width':'11px','height':'11px','background':'transparent url('+eMap.URL.Controls+') no-repeat -46px -180px','z-index':'100'}),$(document.createElement('div')).attr('id','mapControls').css({'position':'absolute','left':'20px','overflow':'hidden','top':'20px','width':'57px','height':'174px','background-image':'url('+eMap.URL.Controls+')','background-repeat':'no-repeat','z-index':'100'}).append($(document.createElement('div')).attr('id','emapSliderBounds').css({'position':'absolute','width':'17px','height':'57px','left':'20px','top':'87px','background-color':'transparent'}).append($(document.createElement('div')).attr('id','emapZoomSlider').css({'position':'absolute','overflow':'hidden','width':'17px','height':'9px','background-image':'url('+eMap.URL.Controls+')','background-repeat':'no-repeat','background-position':'0px -182px','z-index':'100'}))));$('#emapZoomSlider').draggable({containment:$('#emapSliderBounds'),grid:[8,8],stop:function(e,ui){eMap.ZoomTo(parseInt(parseInt($('#emapZoomSlider').css('top'))/8)+1);}});},Locate:function(){var width=eMap.DOM.mapWindow.width();var height=eMap.DOM.mapWindow.height();var left=Math.floor(width/2)-5;var top=Math.floor(height/2)-5;$('#mapCenter').css({'left':left+'px','top':top+'px'});for(i in eMap.Controls.Buttons){var b=eMap.Controls.Buttons[i];$('#mapControls').append($(document.createElement('div')).attr('id',b.id).css({'position':'absolute','left':b.x+'px','top':b.y+'px','width':'17px','height':'17px','cursor':'pointer'}).bind('click',{exec:b.action},eMap.Controls.Exec));}},UpdateSlider:function(){var top=((eMap.Zoom-1)*8)+'px';$('#emapZoomSlider').css('top',top);},Exec:function(event){switch(event.data.exec){case'up':eMap.Controls.StartMoving('up');break;case'right':eMap.Controls.StartMoving('right');break;case'down':eMap.Controls.StartMoving('down');break;case'left':eMap.Controls.StartMoving('left');break;case'center':eMap.Canvas.SlideTo(eMap.CenterX,eMap.CenterY);break;case'zoomin':eMap.ZoomTo(eMap.Zoom-1);break;case'zoomout':eMap.ZoomTo(parseInt(eMap.Zoom)+1);break;}},StartMoving:function(dir){eMap.Status='move';eMap.DOM.mapCanvas.stop();var delta=512;var c=eMap.Coord.Canvas();var limit=eMap.Size.Real[eMap.Zoom];var left=eMap.Coord.Scale(c.left);var top=eMap.Coord.Scale(c.top);switch(dir){case'left':delta=(left-delta)<0?left:delta;dir={'left':'+='+delta+'px'};break;case'right':delta=(left+delta)>limit?(limit-left-1):delta;dir={'left':'-='+delta+'px'};break;case'up':delta=(top-delta)<0?top:delta;dir={'top':'+='+delta+'px'};break;case'down':delta=(top+delta)>limit?(limit-top-1):delta;dir={'top':'-='+delta+'px'};break;}if(delta==0)eMap.Status=null;else eMap.DOM.mapCanvas.animate(dir,{duration:1000,queue:false,complete:eMap.Controls.CompleteMoving});},CompleteMoving:function(){var c=eMap.Coord.Canvas();eMap.MoveTo(c.left,c.top);eMap.Status=null;}},CornerText:{DOM:null,Lang:{Text:{uk:'Умови використання',ru:'Условия использования',en:'Terms of use'},Title:{uk:'Угода користувача сервісу "Веб-карта Полтави"',ru:'Пользовательское соглашение сервиса "Веб-карта Полтавы"',en:'Web-map of Poltava - Terms of use'}},Create:function(){eMap.CornerText.DOM=$(document.createElement('div')).css({'position':'absolute','z-index':100,'font-size':'10px','line-height':'10px'}).append($(document.createElement('a')).attr('href','http://map.navigator.pl.ua/rules/').append(eMap.CornerText.Lang.Text[eMap.Lang.Value]).bind('click',eMap.CornerText.LoadRules));eMap.DOM.mapWindow.append(eMap.CornerText.DOM);},LoadRules:function(){eMap.InfoPage.Load('iframe',{title:eMap.CornerText.Lang.Title[eMap.Lang.Value],url:'http://map.navigator.pl.ua/rules/'});return false;},Locate:function(){var height=eMap.DOM.mapWindow.height();eMap.CornerText.DOM.css({'left':'10px','top':(height-22)+'px'});}},Mini:{Visible:true,DOM:{Window:null,Toggle:null},Create:function(){eMap.Mini.DOM.Window=$(document.createElement('div')).attr('id','mapMini').css({'position':'absolute','z-index':100,'overflow':'hidden','width':'160px','height':'120px','border':'1px solid black'});eMap.Mini.DOM.Toggle=$(document.createElement('div')).attr('id','mapMiniToggle').css({'position':'absolute','z-index':101,'width':'17px','height':'17px','background-image':'url('+eMap.URL.Controls+')','background-repeat:':'no-repeat','cursor':'pointer'});eMap.DOM.mapWindow.append(eMap.Mini.DOM.Window,eMap.Mini.DOM.Toggle);this.SetImgButton();eMap.Mini.DOM.Bounds=$(document.createElement('div')).attr('id','mapMiniBounds').css({'position':'absolute','width':(672+672-160)+'px','height':(672+672-120)+'px','left':(160-672)+'px','top':(120-672)+'px','background-color':'white'});eMap.Mini.DOM.Img=$(document.createElement('div')).attr('id','mapMiniImg').css({'position':'absolute','width':'672px','height':'672px','z-index':1,'background-image':'url('+eMap.URL.MiniMap+')','background-repeat':'no-repeat','left':'200px','top':'200px'});eMap.Mini.DOM.Sel=$(document.createElement('div')).attr('id','mapMiniSel').css({'position':'absolute','z-index':2,'width':'40px','height':'30px','background-color':'#009966','border':'1px solid black','opacity':0.5,'left':'160px','top':'140px'});eMap.Mini.DOM.Window.append(eMap.Mini.DOM.Bounds.append(eMap.Mini.DOM.Img.append(eMap.Mini.DOM.Sel)));},SetImgButton:function(){var pad=this.Visible?-20:0;eMap.Mini.DOM.Toggle.css({'background-position':pad+'px -198px'});},Locate:function(){var width=eMap.DOM.mapWindow.width();var height=eMap.DOM.mapWindow.height();eMap.Mini.DOM.Window.css({'left':(width-172)+'px','top':(height-132)+'px'});eMap.Mini.DOM.Toggle.css({'left':(width-27)+'px','top':(height-27)+'px'});},Update:function(){if(eMap.Mini.DOM.Window==null)return;if(eMap.Zoom<=5){var x=Math.floor(eMap.Coord.Real(eMap.Area.Bounds.Left)*672/43008);var y=Math.floor(eMap.Coord.Real(eMap.Area.Bounds.Top)*672/43008);var w=Math.ceil(eMap.Coord.Real(eMap.Area.Size.Width)*672/43008)-2;var h=Math.ceil(eMap.Coord.Real(eMap.Area.Size.Height)*672/43008)-2;eMap.Mini.DOM.Sel.css('visibility','visible').stop().animate({'left':x+'px','top':y+'px','width':w+'px','height':h+'px'},{duration:700,queue:false,complete:function(){}});}else{eMap.Mini.DOM.Sel.css('visibility','hidden');}var x0=Math.round(eMap.X*672/43008+80);var y0=Math.round(eMap.Y*672/43008+60);x0=x0<160?160:(x0>(672)?(672):x0);y0=y0<120?120:(y0>(672)?(672):y0);eMap.Mini.DOM.Img.css({'left':(672-x0)+'px','top':(672-y0)+'px'});},AddEvents:function(){$('#mapMiniImg').draggable({containment:$('#mapMiniBounds')});$('#mapMiniImg').bind('dblclick',function(e){var node=$('#mapMiniImg');var left=(node.offset().left);var top=(node.offset().top);var x=e.pageX-left;var y=e.pageY-top;var x0=x*43008/672;var y0=y*43008/672;eMap.MoveTo(x0,y0);});$('#mapMiniToggle').bind('click',function(){var x=$('#mapMiniToggle').css('left');var y=$('#mapMiniToggle').css('top');if(eMap.Mini.Visible==true){$('#mapMini').hide();eMap.Mini.Visible=false;}else{$('#mapMini').show();eMap.Mini.Visible=true;}eMap.Mini.SetImgButton();});}},Banner:{Id:null,Create:function(){eMap.DOM.mapBanner=$(document.createElement('div')).css({'position':'absolute','top':'10px','background-color':'#f0f0f0','padding':'3px','z-index':100,'display':'none'}).append($(document.createElement('div')).attr('id','mapBannerCode').css({'border':'1px solid #cccccc'}),$(document.createElement('img')).attr('id','mapBClose').css({'position':'absolute','top':'0px','z-index':101,'cursor':'pointer'}).attr('src',eMap.URL.BClose).bind('click',eMap.Banner.Close));eMap.DOM.mapWindow.append(eMap.DOM.mapBanner);eMap.Banner.Update();},Test:function(Maps){for(var i=0;i<Maps.length;i++){var Map=Maps[i];if(eMap.X>=Map.L&&eMap.X<=Map.R&&eMap.Y>=Map.T&&eMap.Y<=Map.B)return true;}return false;},ChangeTo:function(banner_id){eMap.Banner.Id=banner_id;if(banner_id===null){eMap.DOM.mapBanner.hide();}else{var B=Banners[banner_id];if(B){if(B.Canceled!=undefined){eMap.DOM.mapBanner.hide();}else{eMap.DOM.mapBanner.show().find('#mapBannerCode').html(B.Code);eMap.DOM.mapBanner.find('#mapBClose').css('left',(B.Width+4)+'px');eMap.Banner.Locate();}}}},Update:function(){if(eMap.DOM.mapBanner==null)return;var id=null;for(i in Banners){var B=Banners[i];if(eMap.Banner.Test(B.Map)){id=i;break;}}if(eMap.Banner.Id!=id)eMap.Banner.ChangeTo(id);},Locate:function(){if(eMap.Banner.Id!=null){var B=Banners[eMap.Banner.Id];eMap.DOM.mapBanner.css('left',(eMap.DOM.mapWindow.width()-B.Width-30)+'px');}},Close:function(){if(eMap.Banner.Id!==null){if(Banners[eMap.Banner.Id]!=undefined){Banners[eMap.Banner.Id].Canceled=true;eMap.DOM.mapBanner.hide();}}}},Toolbar:{Tools:[],Img:{Max:null,Min:null},SlideDown:function(id){var $panel=eMap.DOM.mapToolbar.find('#'+id);var $tbControl=$panel.find('.tbControl');var $tbData=$panel.find('.tbData');$panel.css({'display':'block'});$tbData.removeClass('tbHide').slideDown('fast');$tbControl.attr('src',eMap.Toolbar.Img.Min.src);},Constructor:function(id,title,is_visible,ord){this.Visible=is_visible;this.Panel=$(document.createElement('div')).addClass('tbBlock').attr('id',id).css({'margin':'0px','padding':'0px 0px 3px 0px'}).append($(document.createElement('div')).css({'border':'1px solid #cccccc','overflow':'hidden'}).append($(document.createElement('div')).append($(document.createElement('img')).addClass('tbControl').attr('src',(this.Visible?eMap.Toolbar.Img.Min.src:eMap.Toolbar.Img.Max.src)).css({'display':'block','float':'right','cursor':'pointer'}).bind('click',function(){var $tb=$(this).parent().parent();var $tbData=$tb.find('.tbData');var $tbControl=$tb.find('.tbControl');if($tbData.hasClass('tbHide')){$tbData.removeClass('tbHide').slideDown('fast');$tbControl.attr('src',eMap.Toolbar.Img.Min.src);}else{$tbData.addClass('tbHide').slideUp('fast');$tbControl.attr('src',eMap.Toolbar.Img.Max.src);}}),$(document.createElement('strong')).addClass('tbTitle').css({'display':'block','margin':'0px','padding':'3px 0px 3px 5px'}).append(title),$(document.createElement('div')).css({'clear':'both','height':'0px','overflow':'hidden'})),$(document.createElement('div')).css({'padding':'3px 5px 3px 5px','display':(this.Visible?'block':'none')}).addClass('tbData').addClass(this.Visible?'':'tbHide')));this.Data=this.Panel.find('.tbData');$('#mapToolbarContainer').append(this.Panel);},Create:function(){eMap.DOM.mapToolbar=$(document.createElement('div')).attr('id','mapToolbar').css({'width':'22%','float':'right','background-color':'#f0f0f0','overflow':'auto','position':'relative','left':'0px','top':'0px'}).append($(document.createElement('div')).attr('id','mapToolbarContainer').css({'padding':'3px 3px 0px 3px'}));this.Img.Max=new Image();this.Img.Max.src=eMap.BaseURL+'/style/menu-max.gif';this.Img.Min=new Image();this.Img.Min.src=eMap.BaseURL+'/style/menu-min.gif';eMap.DOM.mapHolder.append(eMap.DOM.mapToolbar);}},InfoPage:{DOM:{Window:null,Title:null,Content:null,Iframe:null},Create:function(){eMap.InfoPage.DOM.Title=$(document.createElement('div')).css({'height':'20px','background-color':'#eeeeee','line-height':'18px','font-weight':'bold','padding':'0px 7px 0px 7px'}).append('Poltava Navigator');eMap.InfoPage.DOM.Content=$(document.createElement('div')).css({'width':'100%','overflow':'auto','display':'none'});eMap.InfoPage.DOM.Iframe=$('<iframe frameborder="0" scrolling="yes"></iframe>').css({'width':'100%','border':'0 none','display':'none'});eMap.InfoPage.DOM.Window=$(document.createElement('div')).css({'position':'absolute','overflow':'hidden','background-color':'#f0f0f0','z-index':2,'padding':'3px 3px 5px 3px','display':'none'}).append($(document.createElement('div')).css({'background-color':'white','border':'1px solid #cccccc','height':'100%','position':'relative','left':0,'top':0}).append(eMap.InfoPage.DOM.Title,eMap.InfoPage.DOM.Content,eMap.InfoPage.DOM.Iframe,$('<img src="http://map.navigator.pl.ua/style/inform-close.gif" />').css({'position':'absolute','right':'0px','top':'0px','cursor':'pointer'}).bind('click',function(){eMap.InfoPage.DOM.Content.empty();eMap.InfoPage.DOM.Title.empty();eMap.InfoPage.DOM.Window.hide();})));eMap.DOM.mapHolder.append(eMap.InfoPage.DOM.Window);},Load:function(type,options){eMap.InfoPage.DOM.Content.add(eMap.InfoPage.DOM.Iframe).hide();if(type=='image'||type=='photo'){var $img=$(document.createElement('img')).attr({'src':options.url,'width':options.width,'height':options.height}).css({'display':'block','margin':'0 auto 0 auto'});var $table=$('<table cellspacing="0" cellpadding="0" border="0" style="width:100%; height:100%"><tr><td></td></tr></table>');$table.find('td').append($img);eMap.InfoPage.DOM.Content.empty().show().append($table);}else if(type=='jquery'){eMap.InfoPage.DOM.Content.empty().show().append(options.obj);}else if(type=='iframe'){eMap.InfoPage.DOM.Iframe.show().attr('src',options.url);}eMap.InfoPage.DOM.Title.html(options.title?options.title:'Poltava Navigator');eMap.InfoPage.DOM.Window.show();},Test:function(){eMap.InfoPage.Load('iframe',{title:'iframe',url:'http://navigator.pl.ua/rules/'});},Locate:function(){eMap.InfoPage.DOM.Window.css({'left':'10px','top':((eMap.DOM.mapMenu?eMap.DOM.mapMenu.height():0)+10)+'px','width':(eMap.DOM.mapWindow.width()-26)+'px','height':(eMap.DOM.mapWindow.height()-28)+'px'});eMap.InfoPage.DOM.Content.add(eMap.InfoPage.DOM.Iframe).css({'height':(eMap.DOM.mapWindow.height()-48)+'px'});}},Coord:{Real:function(x,zoom){if(this.Real.arguments.length==1)zoom=eMap.Zoom;var sign=1;if(x<0){sign=-1;x=-x;}var c=parseInt(Math.pow(2,zoom));return parseInt(sign*x*c);},Scale:function(x,zoom){if(this.Scale.arguments.length==1)zoom=eMap.Zoom;x=(x<0)?0:x;x=(x>43007)?43007:x;zoom=(zoom<1)?1:(zoom>7?7:zoom);var c=parseInt(Math.pow(2,zoom));return parseInt(Math.floor(x/c));},Reverse:function(x,zoom){if(this.Reverse.arguments.length==1)zoom=eMap.Zoom;var real=eMap.Size.Real[eMap.Zoom];var limit=real-1;return limit-x;},Canvas:function(){return{'left':this.Real(this.Reverse(parseInt(eMap.DOM.mapCanvas.css('left')))),'top':this.Real(this.Reverse(parseInt(eMap.DOM.mapCanvas.css('top'))))};},Distance:function(x0,y0,x1,y1){return Math.round(Math.sqrt((x0-x1)*(x0-x1)+(y0-y1)*(y0-y1))/2.584728)}},Create:function(){eMap.Location.Load();eMap.DOM.mapMenu=$('#mapMenu');eMap.DOM.mapHolder=$('#mapHolder');eMap.Menu.Create();eMap.Canvas.Create();eMap.Toolbar.Create();eMap.GlobalStretch();eMap.Canvas.Resize();eMap.Canvas.Locate();eMap.Controls.Create();eMap.Controls.Locate();eMap.Controls.UpdateSlider();eMap.CornerText.Create();eMap.CornerText.Locate();eMap.Banner.Create();eMap.Area.Update();eMap.Mini.Create();eMap.Mini.Locate();eMap.Mini.Update();eMap.InfoPage.Create();eMap.InfoPage.Locate();eMap.Canvas.AddEvents();eMap.Mini.AddEvents();eMap.Canvas.Update();$(window).bind('resize',function(){eMap.GlobalStretch();eMap.Area.Update();eMap.Canvas.Resize();eMap.Controls.Locate();eMap.CornerText.Locate();eMap.Mini.Locate();eMap.Banner.Locate();eMap.InfoPage.Locate();});},GlobalStretch:function(){var innerHeight=window.innerHeight?window.innerHeight:0;var H=Math.max($(window).height(),innerHeight);eMap.DOM.mapWindow.add('#mapToolbar').height(H-eMap.DOM.mapMenu.height());},MoveTo:function(x,y){eMap.X=(x<0)?0:(x>43007?43007:x);eMap.Y=(y<0)?0:(y>43007?43007:y);eMap.Canvas.Locate();eMap.Area.Update();eMap.Canvas.Update();eMap.Mini.Update();eMap.Banner.Update();eMap.Location.Set();},ZoomTo:function(zoom){if(eMap.Status!=null)return;eMap.Status='zoom';eMap.Zoom=(zoom<1)?1:(zoom>7?7:zoom);eMap.Controls.UpdateSlider();eMap.Canvas.Resize();eMap.Canvas.Locate();eMap.Area.Update();eMap.Canvas.Update();eMap.Mini.Update();eMap.Location.Set();eMap.Status=null;},AddLayer:function(layer){if(layer.Create()){eMap.Layers.push(layer);eMap.Cache.ResetLayer(layer);layer.Update();}}};Informer={Src:{Close:'http://map.navigator.pl.ua/style/inform-close.gif'},Switch:function(container_id,slide){var $inform_slide=eMap.DOM.mapInformers.find('#'+container_id);if($inform_slide.length>0){var $informer=$inform_slide.parent().parent().parent().parent();var old_width=$informer.width();var old_height=$informer.height();var old_left=parseInt($informer.css('left'));var old_top=parseInt($informer.css('top'));$inform_slide.find('.inform_slide').hide();$inform_slide.find('.inform_slide_'+slide).show();$informer.css({'left':(old_left-$informer.width()+old_width)+'px','top':(old_top-$informer.height()+old_height)+'px'});}},Show:function(data,autoclose){var inf=data.inf;var $informer=$(document.createElement('div')).addClass('mapInformer').css({'position':'absolute','left':'-1000px','top':'-1000px','width':(inf.extra.width?inf.extra.width+'px':'240px'),'z-index':100,'cursor':'auto'}).append($(document.createElement('div')).css({'background-color':'#f0f0f0','padding':'3px'}).append($(document.createElement('div')).css({'background-color':'white','border':'1px solid #cccccc'}).append($(document.createElement('div')).css({}).append($(document.createElement('img')).attr('src',Informer.Src.Close).attr('height',14).attr('width',41).css({'float':'right','cursor':'pointer'}).bind('click',Informer.Close),$(document.createElement('div')).css({'font-weight':'bold','padding':'3px'}).append(inf.name)),$(document.createElement('div')).css({'clear':'both','padding':'0px 3px 3px 3px'}).html(inf.html)))).bind('click dblclick',function(event){event.stopPropagation();});if($.browser.msie&&$.browser.version==8)$informer.hide().fadeIn(5);if(data.className)$informer.addClass(data.className);if(data.ID)$informer.attr('id',data.ID);eMap.DOM.mapInformers.append($informer);var inf_h=$informer.height();var inf_w=$informer.width();var area=eMap.Area.Bounds;var format='';if(inf.y-area.Top>inf_h+16){format='bl';if(inf.x+inf_w-39>area.Right)format='br';}else{format='t';}var $pointer=$(document.createElement('div')).css({'position':'relative','left':'0px','top':(format=='t'?'4px':'-4px'),'height':'31px','width':inf_w+'px','background':'url(http://map.navigator.pl.ua/style/inform.gif) no-repeat '+(format=='br'?inf_w-58:20)+'px '+(format=='t'?12:-18)+'px'});$informer.css({'left':(format=='br'?inf.x-inf_w+39:inf.x-38)+'px','top':(format=='t'?inf.y-16:inf.y-inf_h-15)+'px'});format=='t'?$informer.prepend($pointer):$informer.append($pointer);if(autoclose){$informer.bind('mouseleave',Informer.Autoclose);}$informer.bind('click dblclick',Informer.Fix);$informer.bind('mousemove mousedown',function(e){e.stopPropagation();});},Autoclose:function(event){$(this).remove();},Close:function(){$(this).parent().parent().parent().parent().remove();},Fix:function(event){$(this).unbind('mouseleave');}};var layerVector={Src:'vector/',GlobalVisio:0,Streams:3,Timeout:100,Loaders:[],Q:[],Loader:function(id){this.id=id;this.img=new Image();this.status=0;this.interval=null;this.cell=null;this.Work=function(){if(this.status==1)return;this.Stop();this.status=1;var get_id=0;var get_visio=0;for(var i=0;i<layerVector.Q.length;i++){if(layerVector.Q[i].visio>get_visio){get_visio=layerVector.Q[i].visio;get_id=i;}}this.obj=layerVector.Q.splice(get_id,1)[0];if(this.obj){this.img=new Image();this.img.src=layerVector.Src+this.obj.block.zoom+'/'+this.obj.block.id+'.png';if(this.img.complete){layerVector.ApplyImage(this.id);}else{this.img.loader=this.id;this.img.onload=layerVector.LoadComplete;this.img.onerror=layerVector.LoadError;}}else{this.status=0;this.Start();}};this.Start=function(){this.interval=setInterval('layerVector.Loaders['+id+'].Work();',layerVector.Timeout);};this.Stop=function(){clearInterval(this.interval);};},ApplyImage:function(loader_id){var loader=layerVector.Loaders[loader_id];loader.obj.block.img.attr('src',loader.img.src).show();loader.status=0;loader.Start();},LoadComplete:function(){layerVector.ApplyImage(this.loader);},LoadError:function(){var loader=layerVector.Loaders[this.loader];loader.obj.visio=0;layerVector.Q.push(loader.obj);loader.status=0;loader.Work();},Cache:{AddCell:function(block){layerVector.Cache.ClearCell(block);block.img=$(document.createElement('img')).addClass('mapCell').addClass('mapZoom_'+block.zoom).css({'position':'absolute','left':block.left+'px','top':block.top+'px','width':'256px','height':'256px','-moz-user-select':'none','border':'0px none','display':'none'});eMap.DOM.mapBackground.append(block.img);var obj={block:block,visio:(block.visio+layerVector.GlobalVisio)};layerVector.Q.push(obj);},ClearCell:function(block){var q=layerVector.Q;for(var i=0,len=q.length-1;i<len;i++){var o=q[i];if(o.id&&o.zoom&&o.id==block.id&&o.zoom==block.zoom){q.splice(i,1);i--;}}if(block.img)block.img.remove();}},Create:function(){for(var i=0;i<layerVector.Streams;i++){setTimeout('layerVector.Loaders['+i+'] = new layerVector.Loader('+i+'); layerVector.Loaders['+i+'].Work();',i*layerVector.Timeout);}return true;},Update:function(){layerVector.GlobalVisio++;}};var layerBN={Src:'bn/',Data:[],Cache:{AddCell:function(block){if(block.zoom==1)layerBN.LoadData(block.bn);block.layerBN=false;}},LoadData:function(bn_id){if(bn_id<1||bn_id>441)return;if(this.Data[bn_id]==undefined||this.Data[bn_id]=='fail'){this.Data[bn_id]={BN:[],Status:'wait'};$.ajax({type:'GET',url:layerBN.Src+bn_id+'.json',dataType:'json',timeout:10000,error:function(){layerBN.Data[bn_id].Status='fail';layerBN.LoadData(bn_id);},success:layerBN.CompleteJSON});}else if(this.Data[bn_id].Status=='ok'){layerBN.ApplyData(bn_id);}},CompleteJSON:function(json){if(json.id&&layerBN.Data[json.id].Status=='wait'){if(json.data!=undefined&&json.length>0)layerBN.Data[json.id].BN=json.data;for(i in json.data)layerBN.Data[json.id].BN.push(json.data[i]);layerBN.Data[json.id].Status='ok';layerBN.ApplyData(json.id);}},ApplyData:function(bn_id){for(var i=0;i<eMap.Cache.Cells.length;i++){if(eMap.Cache.Cells[i]){var cell=eMap.Cache.Cells[i];if(cell.zoom==1&&cell.bn==bn_id&&cell.layerBN==false){layerBN.Numerate(cell);cell.layerBN=true;}}}},Numerate:function(block){var data=layerBN.Data[block.bn].BN;for(var i=0;i<data.length;i++){var build=data[i];var x1=Math.floor(build.x/2);var y1=Math.floor(build.y/2);if((block.left<=x1&&x1<block.left+256)&&(block.top<=y1&&y1<block.top+256)){var title=Streets[build.sid]+', '+build.name;if(eMap.Lang.Value=='en')title=Translit.Text(title);var $bn=$(document.createElement('div')).addClass('mapBN').css({'position':'absolute','font-size':'10px','color':'#444444','line-height':'10px','white-space':'nowrap','z-index':5}).attr('title',title).append(build.name);block.cell.append($bn);$bn.css({'left':((x1%256)-Math.floor($bn.width()/2))+'px','top':((y1%256)-Math.floor($bn.height()/2))+'px'});}}},Create:function(){return true;},Update:function(){}};var layerInform={Cells:[null,{},{},{},{},{},{},{}],Cache:{AddCell:function(block){var cells=Icons.Cells[block.zoom][block.id];if(cells!=undefined){for(i in cells){var inf=cells[i];layerInform.CreateIcon(inf,block);}}},ClearCell:function(block){eMap.DOM.mapInformers.find('.mapCell_'+block.zoom+'_'+block.id).remove();}},CreateIcon:function(inf,block){var icon=Icons.Plane[inf.code];if(!icon||icon.visible==false)return;if(icon.view){block.cell.append($(document.createElement('div')).addClass('inf_'+inf.code).css({'position':'absolute','left':+(inf.x%256-(icon.view.w/2))+'px','top':(inf.y%256-(icon.view.h/2))+'px','height':icon.view.h+'px','width':icon.view.w+'px','background':'url('+eMap.BaseURL+'/style/icons/'+Icons.Img[icon.view.img]+') no-repeat '+icon.view.dx+'px '+icon.view.dy+'px','z-index':5}).bind('mouseover click dblclick',{inf:inf,className:'mapInformer mapZoom_'+block.zoom+' mapCell_'+block.zoom+'_'+block.id},layerInform.Interact));}},Apply:function(key){for(i in eMap.Cache.Cells){var block=eMap.Cache.Cells[i];if(block!=undefined){var cells=Icons.Cells[block.zoom][block.id];if(cells!=undefined){for(i in cells){var inf=cells[i];if(inf.code==key)layerInform.CreateIcon(inf,block);}}}}},Hide:function(key){eMap.DOM.mapCanvas.find('div.inf_'+key).remove();},Interact:function(event){var autoclose=(event.type=='mouseover')?true:false;Informer.Show(event.data,autoclose);},Update:function(){var $informers=eMap.DOM.mapInformers.find('.mapInformer');$informers.not('.mapZoom_'+eMap.Zoom).css('visibility','hidden');$informers.find('.mapZoom_'+eMap.Zoom).css('visibility','visible');},Create:function(){return true;}};var layerErrors={Status:false,Src:{Icons:'http://map.navigator.pl.ua/style/icons/error.png'},DOM:null,Lang:{Title:{ru:'В этом месте неточность!',uk:'В цьому місці неточність!'},ToDo:{ru:'Кратко опишите найденную ошибку для того чтобы разработчики смогли исправить её.',uk:'Стисло опишіть знайдену помилку для того щоб розробники змогли її виправити.'},ToDo:{ru:'Кратко опишите найденную ошибку для того чтобы разработчики смогли исправить её.',uk:'Стисло опишіть знайдену помилку для того щоб розробники змогли її виправити.'},Button:{ru:'Отправить',uk:'Надіслати'},Label:{ru:'Обратить внимание!',uk:'Звернути увагу!'},Del:{ru:'Удалить метку',uk:'Видалити мітку'},Ok:{ru:'Спасибо за исправление',uk:'Дякуємо за виправлення'}},Cells:[null,{},{},{},{},{},{},{}],Line:[],LineCur:null,Cache:{AddCell:function(block){var cells=layerErrors.Cells[block.zoom][block.id];if(cells!=undefined){for(i in cells){var obj=cells[i];layerErrors.CreateIcon(obj,block);}}},ClearCell:function(block){layerErrors.DOM.find('.mapCell_'+block.zoom+'_'+block.id).remove();}},CreateIcon:function(obj,block){var del=obj.id?'<div style="font-size:11px;margin-top:5px;border-top:1px solid #ccc;padding-top:2px;"><a href="#" onclick="layerErrors.Del('+obj.id+'); return false;">'+layerErrors.Lang.Del[eMap.Lang.Value]+'</a></div>':'';var $icon=$(document.createElement('div')).addClass('mapError').addClass('mapCell_'+block.zoom+'_'+block.id).addClass('mapZoom_'+block.zoom).css({'position':'absolute','left':+(obj.x-8)+'px','top':(obj.y-8)+'px','height':'16px','width':'16px','background':'url('+layerErrors.Src.Icons+') no-repeat 0px 0px'}).bind('mouseover click dblclick',{inf:{name:layerErrors.Lang.Label[eMap.Lang.Value],html:obj.info+del,x:obj.x,y:obj.y,extra:{}},className:'mapInformer mapZoom_'+block.zoom+' mapCell_'+block.zoom+'_'+block.id,ID:(obj.id?'errorInformer_'+obj.id:'')},layerErrors.Informer);if(obj.id)$icon.attr('id','mapError_'+obj.id);layerErrors.DOM.append($icon);},Informer:function(event){var autoclose=(event.type=='mouseover')?true:false;Informer.Show(event.data,autoclose);},Del:function(id){if(id>0){layerErrors.DOM.find('#mapError_'+id).remove();eMap.DOM.mapInformers.find('#errorInformer_'+id).remove();try{$.ajax({type:'GET',data:{id:id},url:'ajax/del-error.php',dataType:'text',success:layerErrors.DelComplete});}catch(err){}}},DelComplete:function(text){var id=parseInt(text);if(id>0){var cells=layerErrors.Cells;for(zoom in cells){for(i in cells[zoom]){for(j in cells[zoom][i]){var obj=cells[zoom][i][j];if(obj.id&&obj.id==id)cells[zoom][i].splice(j,1);}}}for(i in layerErrors.Line){if(layerErrors.Line[i].id==id)layerErrors.Line.splice(i,1);}}tbErrors.DOM.Data.find('#errLine').html(layerErrors.Line.length);},Create:function(){layerErrors.DOM=$(document.createElement('div')).css({'position':'absolute','left':'0px','top':'0px','cursor':'crosshair','visibility':'hidden','z-index':5,'background-image':'url('+eMap.URL.Transparent+')'}).bind('dblclick',layerErrors.ShowDialog);eMap.DOM.mapCanvas.append(layerErrors.DOM);if(tbErrors.Extra){$.ajax({type:'GET',url:'data/load-errors.php',dataType:'json',error:layerErrors.LoadDataError,success:layerErrors.LoadDataComplete});}layerErrors.Status=true;return true;},LoadDataComplete:function(json){for(i in json){var obj=json[i];var x=eMap.Coord.Scale(obj.x,obj.zoom);var y=eMap.Coord.Scale(obj.y,obj.zoom);var a=eMap.Size.Grid[obj.zoom];var left=Math.ceil((x+1)/256);var top=Math.ceil((y+1)/256);var cell_id=(top-1)*a+left;if(layerErrors.Cells[obj.zoom][cell_id]==undefined)layerErrors.Cells[obj.zoom][cell_id]=[];layerErrors.Cells[obj.zoom][cell_id].push({id:(obj.id?obj.id:0),info:obj.info,x:x,y:y});layerErrors.Line.push({id:(obj.id?obj.id:0),x:obj.x,y:obj.y,zoom:obj.zoom});}tbErrors.DOM.Data.find('#errLine').html(layerErrors.Line.length);eMap.Cache.ResetLayer(layerErrors);},LoadDataError:function(){},ShowDialog:function(event){eMap.DOM.mapInformers.find('.mapError').remove();var x=event.pageX-layerErrors.DOM.offset().left;var y=event.pageY-layerErrors.DOM.offset().top;var html='<div style="margin-bottom:3px">'+layerErrors.Lang.ToDo[eMap.Lang.Value]+'</div><div style="text-align:center"><textarea style="width:340px;height:100px"></textarea></div><div style="margin-top:3px;text-align:center;"><input type="button" value="'+layerErrors.Lang.Button[eMap.Lang.Value]+'" onclick="layerErrors.Submit('+eMap.Coord.Real(x,eMap.Zoom)+','+eMap.Coord.Real(y,eMap.Zoom)+','+eMap.Zoom+'); return false;" /></div>';Informer.Show({inf:{name:layerErrors.Lang.Title[eMap.Lang.Value],html:html,x:x,y:y,zoom:eMap.Zoom,extra:{width:360}},className:'mapError'},false);eMap.DOM.mapInformers.find('textarea').focus();event.stopPropagation();},Submit:function(x,y,zoom){var $dialog=eMap.DOM.mapInformers.find('.mapError');var info=$dialog.find('textarea').val();if(info.length>0){var $btn=$dialog.find('input').attr('disabled','disabled');$.ajax({type:'GET',url:'ajax/add-error.php',data:{x:x,y:y,zoom:zoom,info:info},dataType:'json',error:layerErrors.AjaxError,success:layerErrors.AjaxSuccess});}$dialog.remove();},AjaxError:function(){},AjaxSuccess:function(json){layerErrors.LoadDataComplete([json]);layerErrors.DOM.empty();eMap.Cache.ResetLayer(layerErrors);alert(layerErrors.Lang.Ok[eMap.Lang.Value]);tbErrors.ChangeMode();},Next:function(d){var _cur=layerErrors.LineCur;var len=layerErrors.Line.length;d=parseInt(d);var cur=len>0?(_cur===null?0:((_cur+d)<0?len-1:((_cur+d)<len?(_cur+d):0))):null;layerErrors.LineCur=cur;if(cur!==null){tbErrors.DOM.Data.find('#errLine').html((cur+1)+' из '+len);var coord=layerErrors.Line[cur];if(eMap.Zoom!=coord.zoom)eMap.ZoomTo(parseInt(coord.zoom));eMap.Canvas.SlideTo(coord.x,coord.y);}},Update:function(){var a=eMap.Size.Real[eMap.Zoom];layerErrors.DOM.css({'visibility':tbErrors.Mode?'visible':'hidden','width':a+'px','height':a+'px'});layerErrors.DOM.find('.mapError').not('.mapZoom_'+eMap.Zoom).css('visibility','hidden');layerErrors.DOM.find('.mapError').find('.mapZoom_'+eMap.Zoom).css('visibility','visible');}};tbErrors={DOM:null,Extra:false,Lang:{Title:{ru:'Ошибки и неточности',uk:'Помилки та неточності',en:'Errors'},Info:{ru:'Если Вы заметили на карте ошибки или неточности, сообщите о них разработчикам на <a href="mailto:support@navigator.pl.ua" style="white-space:nowrap">e-mail</a> или укажите непосредственно на карте.',uk:'Якщо Ви помітили на карті помилки або неточності, повідомте про них розробникам через <a href="mailto:support@navigator.pl.ua" style="white-space:nowrap">e-mail</a> або безпосередньо вкажіть на карті.',en:''},Btn:{ru:'Показать ошибку',uk:'Показати помилку',en:'Point an error'},Cancel:{ru:'Отменить',uk:'Відмніти',en:'Cancel'},HowTo:{ru:'Сделайте двойной щелчок мышью в том месте карты, где есть неточность, и опишите ее в открывшемся окне.',uk:'Двічі клацніть мишею в тому місці карти, де є неточність, та опишіть її у вікні, що відкриється.',en:''}},Mode:false,ChangeMode:function(event){tbErrors.Mode=!tbErrors.Mode;var $spec=tbErrors.DOM.Data.find('.errSpec');var $btn=tbErrors.DOM.Data.find('#btnErrors');if(tbErrors.Mode==true){$btn.attr('value',tbErrors.Lang.Cancel[eMap.Lang.Value]);$spec.fadeIn('fast');if(layerErrors.Status==false){eMap.AddLayer(layerErrors);}else{eMap.Cache.ResetLayer(layerErrors);layerErrors.Update();}}else{$btn.attr('value',tbErrors.Lang.Btn[eMap.Lang.Value]);$spec.fadeOut('fast');if(layerErrors.DOM!=null){layerErrors.DOM.empty();layerErrors.Update();}}},Create:function(extra){if(extra&&extra==true)tbErrors.Extra=true;tbErrors.DOM=new eMap.Toolbar.Constructor('tbErrors',tbErrors.Lang.Title[eMap.Lang.Value],false,5);tbErrors.DOM.Data.append($(document.createElement('p')).css({'margin':'0px 0px 3px 0px'}).append(tbErrors.Lang.Info[eMap.Lang.Value]),$(document.createElement('div')).css({'text-align':'center'}).append($(document.createElement('input')).attr('id','btnErrors').attr('type','button').attr('value',tbErrors.Lang.Btn[eMap.Lang.Value]).bind('click',tbErrors.ChangeMode)),$(document.createElement('p')).addClass('errSpec').css({'margin':'3px 0px 0px 0px','font-size':'11px','color':'gray','display':'none'}).append(tbErrors.Lang.HowTo[eMap.Lang.Value]));if(tbErrors.Extra){tbErrors.DOM.Data.append($(document.createElement('p')).addClass('errSpec').css({'margin':'5px 0px 2px 0px','text-align':'center','display':'none'}).html('&laquo; <a href="#" onclick="layerErrors.Next(-1);return false;">Предыдущая</a> | <span id="errLine">...</span> | <a href="#" onclick="layerErrors.Next(1);return false;">Следующая</a> &raquo;'));}return true;}};tbInform={DOM:null,Src:'inform/',Lang:{Title:{ru:'Информационные слои',en:'Information layers',uk:'Інформаційні шари'},Load:{ru:'Загрузка...',en:'Loading...',uk:'Завантаження...'},Error:{ru:'Нет данных',en:'No data',uk:'Немає даних'}},Tree:null,Conf:{BaseConvert:function(number,frombase,tobase){return parseInt(number+'',frombase+0).toString(tobase+0);},Encode:function(){var nodes=tbInform.Tree.getSelectedNodes();var indexes=[];for(i in nodes){var node=nodes[i];if(node.data.fi)indexes.push(node.data.fi);}if(indexes.length>0){var max=Math.max.apply(Math,indexes);var num_blocks=Math.ceil((max+1)/52);var blocks=new Array(num_blocks);for(i=0;i<num_blocks;i++)blocks[i]=new Array(53).join('0');for(i in indexes){var index=indexes[i];var block_i=Math.ceil((index+1)/52)-1;var mask=blocks[block_i];var re_index=51-index%52;var mask=mask.substr(0,re_index)+'1'+mask.substr(re_index+1);blocks[block_i]=mask;}for(i in blocks)blocks[i]=tbInform.Conf.BaseConvert(blocks[i].toString(),2,36);var str_z=blocks.join('-');if(eMap.Location.Inf!=str_z){eMap.Location.Inf=str_z;eMap.Location.Set();}}},Decode:function(){var indexes=[];var zBlocks=eMap.Location.Inf.split('-');if(zBlocks.length>0){for(i in zBlocks){var zBlock=zBlocks[i];var mask=tbInform.Conf.BaseConvert(zBlock,36,2);if(mask.length>0){var re_mask=mask.split('').reverse().join('');for(j=0;j<re_mask.length;j++){if(re_mask.charAt(j)=='1')indexes.push(i*52+j);}}}}Icons.FSelect=indexes;}},SelectNode:function(key,flag){Icons.Plane[key].visible=flag;if(flag==true&&Icons.Plane[key].loaded==false){$.ajax({url:eMap.BaseURL+'/inform/'+eMap.Lang.Value+'/'+key+'.json',dataType:'json',success:function(json){Icons.CompleteJSON(json);layerInform.Apply(key);},error:function(){var re=/\/([^\/]*).json$/;if(re.test(this.url)){Icons.Plane[RegExp.$1].loaded=true;}}});}else if(flag&&Icons.Plane[key].loaded){layerInform.Apply(key);}else{layerInform.Hide(key);}tbInform.Conf.Encode();},WalkTree:function(dtnode_data,flag){if(dtnode_data.type=='group'){if(dtnode_data.children){for(i in dtnode_data.children){tbInform.WalkTree(dtnode_data.children[i],flag);}}}else if(dtnode_data.type=='inform')tbInform.SelectNode(dtnode_data.key,flag);},Create:function(){eMap.AddLayer(layerInform);tbInform.DOM=new eMap.Toolbar.Constructor('tbInform',tbInform.Lang.Title[eMap.Lang.Value],true,3);tbInform.Conf.Decode();Icons.PlantTree();Icons.PlaneData();tbInform.DOM.Data.dynatree({checkbox:true,selectMode:3,children:Icons.Tree,strings:{loading:tbInform.Lang.Load[eMap.Lang.Value],loadError:tbInform.Lang.Error[eMap.Lang.Value]},onDblClick:function(dtnode,event){dtnode.toggleSelect();},onActivate:function(dtnode){if(dtnode.data.type&&dtnode.data.type=='move'){var key=dtnode.parent.data.key;if(key){tbInform.Tree.selectKey(key,true);}eMap.Canvas.SlideTo(dtnode.data.x-24,dtnode.data.y+24);}},onSelect:function(flag,dtnode){tbInform.WalkTree(dtnode.data,flag);},onLazyRead:function(dtnode){Icons.Plane[dtnode.data.key].dtnode=dtnode;if(Icons.Plane[dtnode.data.key].loaded==false){$.getJSON(eMap.BaseURL+'/inform/'+eMap.Lang.Value+'/'+dtnode.data.key+'.json',function(json){if(Icons.Plane[json.code].loaded==false){Icons.CompleteJSON(json);var node=Icons.Plane[json.code].dtnode;node.append(Icons.Plane[json.code].tree);node.setLazyNodeStatus(DTNodeStatus_Ok);}});}else{dtnode.append(Icons.Plane[dtnode.data.key].tree);dtnode.setLazyNodeStatus(DTNodeStatus_Ok);}}});tbInform.Tree=tbInform.DOM.Data.dynatree("getTree");var nodes=tbInform.Tree.getSelectedNodes();for(i in nodes){var node=nodes[i];if(node.data.type=='inform')tbInform.SelectNode(node.data.key,true);}return true;}};var tbSearch={DOM:{Form:null,Result:null},Searching:false,Data:[],Lang:{ru:{title:'Поиск по веб-карте',results:'Результаты поиска',noresults:'Ничего не найдено',action:'Искать'},uk:{title:'Пошук по веб-карті',results:'Результати пошуку',noresults:'Нічого не знайдено',action:'Шукати'},en:{title:'Search',results:'Search results',noresults:'Search did not match any results',action:'Search'}},Img:{Loader:null,Search:null,Preload:function(){this.Loader=new Image(16,16);this.Loader.src=eMap.BaseURL+'/style/ajax-loader.gif';this.Search=new Image(16,16);this.Search.src=eMap.BaseURL+'/style/search.gif';}},SetMode:function(val){tbSearch.Searching=val;tbSearch.DOM.Form.Data.find('img:first').attr('src',val?tbSearch.Img.Loader.src:tbSearch.Img.Search.src);},ParseAddr:function(q){var str=q.toLowerCase().replace(/[^\sа-яa-z0-9'іїєґ\/-]/g,' ');var arr1=str.split(' ');var arr2=[];var filter='вул|пров|ул|пер|майдан|площа|площадь|vul|prov|maidan|ploscha|вулиця|улица|провулок|переулок|';for(var i in arr1){if(arr1[i].length>0){if(filter.indexOf(arr1[i]+'|')==-1)arr2.push(arr1[i]);}}var arr3=[];var Streets=tbSearch.Data;for(var i in Streets){var Match=null;for(var j in arr2){var a=arr2[j];if(a.length>2&&((Streets[i].ukr.indexOf(a)!=-1)||(Streets[i].rus.indexOf(a)!=-1)||(Streets[i].eng.indexOf(a)!=-1))){if(Match==null)Match={sid:Streets[i].id,value:1,bn:[]};else Match.value++;}else if(Match!=null){Match.bn.push(a);}}if(Match!=null){arr3.push(Match);}}var arr4=[];if(arr3.length>0){arr3.sort(function(w1,w2){return(w1.value<w2.value)?1:(w1.value>w2.value?-1:0);});var match=-1;for(var i in arr3)if(arr3[i].value>match)match=arr3[i].value;var limit=5;for(var i in arr3)if(i<limit&&arr3[i].value==match)arr4.push(arr3[i]);}return arr4;},ClearQuery:function(q){var str=q.toLowerCase();var str1=str.replace(/[^\sа-яa-z0-9'іїєґ\/-]/g,' ');var str2=str1.replace(/0/g,'ноль').replace(/1/g,'один').replace(/2/g,'дваа').replace(/3/g,'трии').replace(/4/g,'четыре').replace(/5/g,'пять').replace(/6/g,'шесть').replace(/7/g,'семь').replace(/8/g,'восемь').replace(/9/g,'девять');var arr1=str2.split(' ');var arr2=[];for(i in arr1){var word=arr1[i];if(word.length>0){if(word.length<4){var c=word.charAt(word.length-1);for(i=0;i<5-word.length;i++)word+=c;}arr2.push(word);}}return arr2.join(' ');},Search:function(){if(tbSearch.Searching==true)return;tbSearch.SetMode(true);var query=tbSearch.DOM.Form.Data.find('input').val();var addr=tbSearch.ParseAddr(query);$.ajax({url:'ajax/search.php',type:'POST',dataType:'json',data:{q:tbSearch.ClearQuery(query),addr:JSON.stringify(addr),lang:eMap.Lang.Value},timeout:10000,error:tbSearch.AjaxError,success:tbSearch.AjaxAddr});},ResultRow:function(title,x,y,zoom){$row=$(document.createElement('li')).append($(document.createElement('a')).attr('href',eMap.BaseURL+'/#x:'+x+':y:'+y+':zoom:'+zoom).attr('x',parseInt(x)-24).attr('y',parseInt(y)+24).attr('zoom',zoom).append(title).bind('click',tbSearch.Move));return $row;},NearestCoord:function(coord){if(coord.length==0)return false;min=0;minD=Infinity;for(j=0;j<coord.length;j++){var tempD=eMap.Coord.Distance(eMap.X,eMap.Y,coord[j].x,coord[j].y);if(tempD<minD){min=j;minD=tempD;}}return{x:coord[min].x,y:coord[min].y};},AjaxAddr:function(json){tbSearch.DOM.Result.show();$result=tbSearch.DOM.Result.find('ol').empty();if(json.length==0){tbSearch.DOM.Result.find('p.noresults').show();$result.hide();tbSearch.SetMode(false);return;}else{tbSearch.DOM.Result.find('p.noresults').hide();$result.show();}for(i in json){var result=json[i];if(result.type){switch(result.type){case'bn':if(result.sid&&result.bn&&result.x&&result.y){var street=eMap.Lang.Value=='ru'?StreetsRus[result.sid]:Streets[result.sid];if(street){var title=street+', '+result.bn;if(eMap.Lang.Value=='en')title=Translit.Text(title);$result.append(tbSearch.ResultRow(title,result.x,result.y,1));}}break;case'street':if(result.sid&&result.coords){var street=Streets[result.sid];if(street){if(eMap.Lang.Value=='en')street=Translit.Text(street);else if(eMap.Lang.Value=='ru')street=StreetsRus[result.sid];var coords=tbSearch.NearestCoord(result.coords);if(coords)$result.append(tbSearch.ResultRow(street,coords.x,coords.y,1));}}break;case'inform':var $row=tbSearch.ResultRow(result.name,result.x,result.y,1);$row.find('a').bind('click',function(){tbInform.Tree.selectKey(result.inform_type);});if(result.name&&result.x&&result.y)$result.append($row);break;}}}tbSearch.SetMode(false);},AjaxError:function(){tbSearch.SetMode(false);},Move:function(){var x=parseInt($(this).attr('x'));var y=parseInt($(this).attr('y'));var zoom=parseInt($(this).attr('zoom'));if(eMap.Zoom!=zoom)eMap.ZoomTo(zoom);eMap.Canvas.SlideTo(x,y);},CompareStreets:function(a,b){var abc='АБВГҐДЕЄЖЗИІЇЙКЛМНОПРСТУФХЦЧШЩЬЮЯABCDEFGHIJKLMNOPQRSTUVWXYZ123456789';var reCut=new RegExp('(['+abc+'].*)$');reCut.exec(a);var aa=RegExp.$1;reCut.exec(b);var bb=RegExp.$1;abc+=abc.toLowerCase();for(var i=0;i<Math.min(aa.length,bb.length);i++){var ia=abc.indexOf(aa.charAt(i));var ib=abc.indexOf(bb.charAt(i));if(ia<ib)return-1;else if(ia>ib)return 1;}return 0;},GenerateData:function(){if(Streets){for(var i=0,len=Streets.length;i<len;i++){var tmp=Streets[i];if(tmp!=''){this.Data.push({'id':i,'ukr':tmp.toLowerCase(),'rus':StreetsRus[i].toLowerCase(),'eng':Translit.Text(tmp).toLowerCase()});}}}},Create:function(){this.Img.Preload();this.GenerateData();tbSearch.DOM.Form=new eMap.Toolbar.Constructor('tbSearch',tbSearch.Lang[eMap.Lang.Value].title,true,1);tbSearch.DOM.Result=$(document.createElement('div')).css({'margin':'5px 0px 3px 0px','display':'none','left':0,'top':0}).append($(document.createElement('div')).css({'position':'relative','height':'1.3em'}).append($(document.createElement('strong')).css({'position':'absolute','left':0,'top':0}).append(tbSearch.Lang[eMap.Lang.Value].results),$(document.createElement('img')).attr('src',eMap.BaseURL+'/style/search-close.gif').css({'float':'right','cursor':'pointer'}).bind('click',function(){tbSearch.DOM.Result.hide();})),$(document.createElement('p')).addClass('noresults').css({'clear':'both','margin':'3px 0px 3px 0px','display':'none'}).append(tbSearch.Lang[eMap.Lang.Value].noresults),$(document.createElement('ol')).css({'clear':'both','list-style':'decimal inside','margin':'3px','padding':'0px 0px 0px 0px'}));$form=$(document.createElement('table')).attr('id','searchForm').attr('cellspacing','0').attr('cellpadding','0').css({'margin':'0px','border':'1px solid gray','background-color':'white','width':'100%'}).append($(document.createElement('tr')).append($(document.createElement('td')).css('padding-left','2px').append($('<input id="searchQuery" type="text" />').attr('maxlength',40).css({'padding':'0px','border':'0px none','width':'100%','height':'16px'})),$(document.createElement('td')).css({'width':'17px','padding':'2px 3px 2px 3px'}).append($(document.createElement('img')).attr('src',tbSearch.Img.Search.src).css({'display':'block','float':'right','cursor':'pointer'}).attr('title',tbSearch.Lang[eMap.Lang.Value].action).bind('click',tbSearch.Search))));tbSearch.DOM.Form.Data.append($form,tbSearch.DOM.Result);tbSearch.SetMode(false);$('#searchQuery').searchSuggset(Streets);return true;}};tbLog={DOM:null,Add:function(str){tbLog.DOM.Data.append(str+'<br />');},Pre:function(str){tbLog.DOM.Data.prepend(str+'<br />');},Clear:function(){tbLog.DOM.Data.empty();},Create:function(){tbLog.DOM=new eMap.Toolbar.Constructor('tbLog','Log',true,2);tbLog.DOM.Data.empty();return true;}};