/* Copyright (c) 2006-2009 Position s.r.o. */T_CITY_STATUS_KOD_1='hlavní město';T_CITY_STATUS_KOD_2='krajské město';T_CITY_STATUS_KOD_3='okresní město';T_CITY_STATUS_KOD_4='město';T_CITY_STATUS_KOD_5='obec';T_CITY_STATUS_KOD_6='část obce';T_CITY_STATUS_KOD_7='ostatní';T_SEARCH_ERROR_1='Žádný záznam neodpovídá zadání.';T_SEARCH_ERROR_2='Vrstva není na tomto území k dispozici.';T_SEARCH_START='Probíhá hledání...';T_POPUP_CENTER='Centrovat &raquo;';T_POPUP_MAX='Maximální detail mapy &raquo;';T_POPUP_NEAREST='Najdi nejbližší &raquo;';T_POPUP_200='Mapa 1 : 200 000';NG_SEARCH_PLACES=null;function ngSearchFnc_GEBI(id){if(typeof(id=='string')){var o=document.getElementById(id);if(o)return o}return false}function ngSearchFnc_ST(s){if(typeof(s)=='string')if(s!='')return true;return false}function ngSearchFnc_DT(o){if(typeof(o)!='undefined')if(o)return true;return false}function ngSearchFnc_OT(p){if(typeof(p)=='object')if(p)return true;return false}function ngGuiSearchApi(){this.searchInputTitle=new Array();this.searchInput=new Array();this.searchInputFocusCN=new Array();this.searchInputBlurCN=new Array();this.country='CR';this.places=null;this.dynamicCntLine=true;this.pageSize=0;this.counterMax=15;this.isCounter=0;this.id='';this.errorId='';this.ulId='';this.counterId='';this.btnPrevId='';this.btnNextId='';this.locateIcon='';this.resultsWindow=null;this.onBeforeStart=false;this.counterVisible=0;this.imgWidth=0;this.imgHeight=0;this.imgShift=0;this.rightSpacing=0;this.lineSpacing=3;this.bottomSpacing=0;this.marginUl_T=0;this.marginUl_R=0;this.marginUl_B=0;this.marginUl_L=0;this.classOdd='';this.classEven='';this.classOverText='';this.classOutText='';this.classNameText='';this.classActiveLine='';this.activeLineKey='';this.setExample=ngSearchGui_setSearchExample;this.setInput=ngSearchGui_setSearchInput;this.setButton=ngSearchGui_setSearchButton;this.inputKeyPress=ngSearchFnc_inputKeyPress;this.search=ngSearchFnc_search;this.setFocus=ngSearchGui_setInputFocus;this.setPlaces=ngSearchFnc_setPlaces;this.displaySearchResults=ngSearchGui_displaySearchResults;this.displaySearchError=ngSearchGui_displaySearchError;this.searchPopupMenu=ngSearchGui_popupMenu;this.setResults=ngSearchGui_setResults;this.setSearchParams=ngSearchGui_setSearchParams;this.addResults=ngSearchGui_addResults;this.addCounter=ngSearchGui_addCounter;this.setResultsTextClass=ngSearchGui_setResultsTextClass;this.setErrorTextClass=ngSearchGui_setErrorTextClass;this.setResultsTextImg=ngSearchGui_setResultsTextImg;this.setColor2ResultsTextUnderline=ngSearchGui_setColor2ResultsTextUnderline;this.setUlMargin=ngSearchGui_setUlMargin;this.getResultCntLine=ngSearchGui_getResultCntLine;this.setResultsTextWithoutImg=ngSearchGui_setResultsTextWithoutImg;this.setLineSpacing=ngSearchGui_setLineSpacing;this.setRightSpacing=ngSearchGui_setRightSpacing;this.setBottomSpacing=ngSearchGui_setBottomSpacing;this.setOddAndEvenLine=ngSearchGui_setOddAndEvenLine;this.setOverOutText=ngSearchGui_setOverOutText;this.setClassActiveLine=ngSearchGui_setClassActiveLine;this.setClassLi=ngSearchGui_setClassLi;this.setClassText=ngSearchGui_setClassText;this.setActiveLine=ngSearchGui_setActiveLine;this.setLocateIcon=ngSearchGui_setLocateIcon;this.setPageSize=ngSearchGui_setPageSize;this.createBtn=ngSearchGui_createBtn;this.nextPage=ngSearchGui_nextPage;this.prevPage=ngSearchGui_prevPage;this.LocateItem=ngSearchGui_LocateItem;this.onStartSearch=ngSearchFnc_startSearch;this.sizeRefresh=ngSearchGui_sizeRefresh;}function ngSearchFnc_controlText(t){var s='';var ch=0;for(var i=0;i<t.length;i++){ch=t.charAt(i);if(ch==' ')s+='&nbsp;';else s+=ch}return s}function ngSearchGui_setSearchExample(id,s,cn){var o=ngSearchFnc_GEBI(id);if(o){if(ngSearchFnc_ST(s)){o.innerHTML=ngSearchFnc_controlText(s);o.style.cursor='pointer';var srch=this;o.onclick=function(){if(ngSearchFnc_DT(srch.searchInput['cmdline'])){var i=ngSearchFnc_GEBI(srch.searchInput['cmdline']);if(i){i.value=s;if(ngSearchFnc_DT(srch.searchInputFocusCN[i.id]))i.className=srch.searchInputFocusCN[i.id];srch.search('cmdline');}}};if(ngSearchFnc_ST(cn)){o.onmouseover=function(){var ex=ngSearchFnc_GEBI(id);if(ex)ex.className=cn};o.onmouseout=function(){var ex=ngSearchFnc_GEBI(id);if(ex)ex.className=''}}}}return}function ngSearchGui_setSearchInput(id,i,s,cn){var o=ngSearchFnc_GEBI(id);if(o){var srch=this;o.setAttribute('type','text');if(typeof(s)=='string'||typeof(s)=='number'){o.onfocus=function(){srch.setFocus(id,1);};o.onblur=function(){srch.setFocus(id,0);};o.setAttribute('value',s);this.searchInputTitle[id]=s;if(typeof(cn)=='string')this.searchInputFocusCN[id]=cn;this.searchInputBlurCN[id]=o.className}else{o.setAttribute('value','');}var keypress='';if(typeof(i)=='string'){switch(i.toLowerCase()){case'cmdline':keypress='cmdline';break;case'city':case'street':case'co':case'cp':case'psc':keypress='advanced';break;case'highway':case'km':keypress='highway';break;default:break}this.searchInput[i]=id}if(keypress!=''){o.onkeypress=function(e){srch.inputKeyPress(e,keypress);}}}return}function ngSearchGuiFnc_setImgButton(o,src){if(o){if(typeof(src)=='string')o.src=src;}return}function ngSearchGuiFnc_setDivButton(o,src,val){if(o){var s='';if(typeof(val)=='string')s=val;if(typeof(src)=='string')o.style.background="transparent url("+src+") repeat-x scroll 0 0";o.innerHTML=s;o.unselectable='on';o.style.MozUserSelect='none'}}function ngSearchGuiFnc_setInputButton(o,val){if(o){if(ngSearchFnc_OT(o.offsetParent)){var p=ngSearchFnc_GEBI(o.offsetParent.id);if(ngSearchFnc_OT(p)){var id=o.id;p.removeChild(o);var s='';if(typeof(val)=='string')s=val;var t='<input id="'+id+'" type="button" value="'+s+'" />';p.innerHTML+=t;}}}return}function ngSearchGui_setSearchButton(id,i,src,s,val,cn){var o=ngSearchFnc_GEBI(id);if(o){switch(o.nodeName.toLowerCase()){case'img':ngSearchGuiFnc_setImgButton(o,src);break;case'input':ngSearchGuiFnc_setInputButton(o,val);break;case'div':ngSearchGuiFnc_setDivButton(o,src,val);break;default:break}}var o=ngSearchFnc_GEBI(id);if(o){if(typeof(s)=='string'){o.setAttribute('alt',s);o.setAttribute('title',s);}if(typeof(cn)=='string')o.className=cn;o.style.cursor='pointer';var srch=this;if(!ngSearchFnc_ST(i))i='';o.onclick=function(){srch.search(i);}}return}function ngSearchFnc_inputKeyPress(e,i){if(!e)e=window.event;if((e.which?e.which:e.keyCode)==13){this.search(i);return false}return true}function ngSearchFnc_search(i){if(this.places){switch(i.toLowerCase()){case'cmdline':var o=ngSearchFnc_GEBI(this.searchInput['cmdline']);if(o){this.setSearchParams();if(o.value.indexOf(';')>=0)this.places.SearchCoords(o.value,this.country);else this.places.Search(o.value,this.country);}break;case'advanced':break;case'highway':break;default:break}}return}function ngSearchGui_setInputFocus(id,i){var o=ngSearchFnc_GEBI(id);if(o){if(i){if(ngSearchFnc_DT(this.searchInputTitle[id])){if(this.searchInputTitle[id]==o.value){o.value='';this.searchInputBlurCN[id]=o.className;if(ngSearchFnc_DT(this.searchInputFocusCN[id]))o.className=this.searchInputFocusCN[id];}}}else{if(ngSearchFnc_DT(this.searchInputTitle[id])){if(o.value==''){o.value=this.searchInputTitle[id];if(ngSearchFnc_DT(this.searchInputBlurCN[id]))o.className=this.searchInputBlurCN[id];}}}}return}function ngSearchFnc_setPlaces(pl){if(typeof(pl)=='object'){if(pl){this.places=pl;NG_SEARCH_PLACES=pl;pl.PageSize=this.pageSize;var w=this;if(this.locateIcon!='')pl.LocateIcon=this.locateIcon;pl.OnSearch=function(o){return w.onStartSearch(o);};pl.OnSearchResults=function(o,loc){return w.displaySearchResults(o,loc);};pl.OnSearchError=function(o,err){return w.displaySearchError(o,err);};pl.OnItemPopupMenu=function(map,ic){return w.searchPopupMenu(map,ic);}}}return}function ngSearchGui_setResults(id,fce){var o=ngSearchFnc_GEBI(id);var t='';if(o){if(typeof(fce)=='function')this.onBeforeStart=fce;this.id=id;this.errorId=id+'_error';this.ulId=id+'_ul';this.counterId=id+'_counter';t='<div id="'+this.errorId+'" style="position:absolute;"></div><ul id="'+this.ulId+'" style="overflow:auto;position:absolute;margin:0;"></ul><div style="position:absolute;" class="counter" id="'+this.counterId+'"></div><div id="search_scroll">search_scroll</div>';o.innerHTML=t;}return}function ngSearchFnc_startSearch(places){this.activeLineKey='';var o=ngSearchFnc_GEBI(this.ulId);if(o)o.style.display='none';var c=ngSearchFnc_GEBI(this.counterId);if(c)c.style.display='none';var e=ngSearchFnc_GEBI(this.errorId);if(e){e.style.display='block';e.innerHTML=T_SEARCH_START;this.sizeRefresh();}var isScroll=false;if((typeof(places['Params'])=='object')&&(places['Params'])){if((places.Params.NextVisible==false)&&(places.Params.PrevVisible==false))isScroll='scroll'}if(typeof(this.onBeforeStart)=='function')this.onBeforeStart(isScroll);return true;}function ngSearchFnc_getStatusText(stat){var t='';switch(stat){case'1':t=T_CITY_STATUS_KOD_1;break;case'2':t=T_CITY_STATUS_KOD_2;break;case'3':t=T_CITY_STATUS_KOD_3;break;case'4':t=T_CITY_STATUS_KOD_4;break;case'5':t=T_CITY_STATUS_KOD_5;break;case'6':t=T_CITY_STATUS_KOD_6;break;case'7':t=T_CITY_STATUS_KOD_7;break;default:break}return t}function ngSearchFnc_setResultDesripton(res){var t='';if(ngSearchFnc_OT(res)){if(ngSearchFnc_ST(res.street))t=res.street;if(ngSearchFnc_ST(res.city)){if(t!='')t+=', ';t+=res.city;if(ngSearchFnc_ST(res.statusKod)){var stat=ngSearchFnc_getStatusText(res.statusKod);if(stat!='')t+=', '+stat}}if(ngSearchFnc_ST(res.psc)){if(t!='')t+=', ';t+=res.psc}}if(t==''){if(ngSearchFnc_ST(res.descr))t=res.descr}return t}function ngSearchGui_addResults(res){var o=ngSearchFnc_GEBI(this.ulId);if(o){o.innerHTML='';var li=null;var sp=null;var w=this;var even=false;for(var key in res){if((li=document.createElement('LI'))){li.id=this.ulId+'_li_'+key;li.even=even;even=!even;li.active_line=false;if((sp=document.createElement('SPAN'))){sp.id=this.ulId+'_'+key;sp.key=key;var cas=key;sp.onclick=function(){w.LocateItem(this.key);};var descr=ngSearchFnc_setResultDesripton(res[key]);sp.innerHTML=descr;res[key].descr=descr;sp.style.cursor='pointer';sp.style.position='relative';sp.style.top='-'+this.imgHeight+'px';this.setClassText(sp);sp.style.margin='0 0 0 '+this.imgShift+'px';sp.style.display='block';sp.mouse_over=false;sp.onmouseover=function(){var ot=ngSearchFnc_GEBI(w.ulId+'_'+this.key);if(ot){ot.mouse_over=true;w.setClassText(ot);}};sp.onmouseout=function(){var ot=ngSearchFnc_GEBI(w.ulId+'_'+this.key);if(ot){ot.mouse_over=false;w.setClassText(ot);}};li.appendChild(sp);}this.setClassLi(li);li.style.margin='0 0 '+this.lineSpacing+'px 0';o.appendChild(li);}}o.style.display='block';}return}function ngSearchGui_displaySearchResults(places,loc){if(ngSearchFnc_OT(places)){var e=ngSearchFnc_GEBI(this.errorId);if(e)e.style.display='none';this.addResults(places.Results);if((typeof(loc)=='undefined')||loc==true){if(places.Params.Page==0)if(places.Results.length==1)this.LocateItem(0);}this.addCounter(places.Params);}this.sizeRefresh();}function ngSearchGui_createBtn(key,obr,obrover,cn,t){var c=ngSearchFnc_GEBI(this.counterId);if(c){var btn=document.createElement('SPAN');if(btn){var w=this;id=this.counterId+'_'+key;btn.id=id;if(typeof(cn)=='string')btn.className=cn;if(key=='previous'){this.btnPrevId=id;btn.onclick=function(){w.prevPage();}}else if(key=='next'){this.btnNextId=id;btn.onclick=function(){w.nextPage();}}btn.onmouseover=function(){this.className+="_"};btn.onmouseout=function(){this.className=cn};btn.style.visibility='hidden';btn.unselectable='on';btn.style.MozUserSelect='none';btn.innerHTML='<span unselectable="on">'+t+'</span><img id="'+key+'_img" src="'+obr+'" class="counter_img" /><img id="'+key+'_imgover" src="'+obrover+'" class="counter_img_over" />';c.appendChild(btn);}}return}function ngSearchGui_addCounter(params){var c=ngSearchFnc_GEBI(this.counterId);if(c){if(typeof(params)=='object'){var sp=null;var w=this;var o=ngSearchFnc_GEBI(this.btnPrevId);if(o){if(params.Page>0)o.style.visibility='visible';else o.style.visibility='hidden'}var o=ngSearchFnc_GEBI(this.btnNextId);if(o){if(params.NextVisible)o.style.visibility='visible';else o.style.visibility='hidden'}c.style.display='block';this.counterVisible=1}}return}function ngSearchGui_displaySearchError(places,err){var o=ngSearchFnc_GEBI(this.ulId);if(o)o.style.display='none';var c=ngSearchFnc_GEBI(this.counterId);if(c)c.style.display='none';var e=ngSearchFnc_GEBI(this.errorId);if(e){e.style.display='block';var t='';switch(err){case-1:t=T_SEARCH_ERROR_1;break;case-2:t=T_SEARCH_ERROR_2;break;default:break}e.innerHTML=t;this.sizeRefresh();}return true}function ngSearchGui_popupMenu(map,ic){menu='<a href="javascript:ngSearchGui_PopupMaxDetail(\''+ic.pos+'\')">'+T_POPUP_MAX+'</a>';menu+='<br /><a href="javascript:ngSearchGui_PopupCenter()">'+T_POPUP_CENTER+'</a>';menu+='<br /><a href="javascript:ngSearchGui_Nearest(\''+ic.pos+'\')">'+T_POPUP_NEAREST+'</a>';return map.CreatePopupHTML(ic.descr,menu);}function ngSearchGui_PopupCenter(){if(map){map.Center(map.PopupX,map.PopupY);map.HideMapMenu();}}function ngSearchGui_PopupMaxDetail(pos){if(map){map.LocateScaleXY('max',pos);map.HideMapMenu();}}function ngSearchGui_PopupScale200(){if(map){map.SetScale(200000,map.PopupX,map.PopupY);map.HideMapMenu();}}function ngSearchGui_Nearest(pos){if(map){NEAREST_POS=pos;if(!NEAREST_MENU.visible)setNearestMenuXY(map.MapPopupX,map.MapPopupY,POPUPARROW_DOWN,POPUPARROW_RIGHT,map.MapWidth,map.MapHeight,POPUP_HEIGHT);NEAREST_MENU.openMenu();}}function ngSearchGui_sizeRefresh(){var L=0;var T=0;var W=0;var H=0;var p=ngSearchFnc_GEBI(this.id);if(p){W=p.clientWidth;H=p.clientHeight}var CT=0;var CH=0;var BH=12;var c=ngSearchFnc_GEBI(this.counterId);if(c){if(this.counterVisible){CH=23;CT=H-CH-BH;}c.style.left=(L+this.marginUl_L)+'px';c.style.top=CT+'px';var w_=(W-this.imgWidth-this.marginUl_L-this.marginUl_R);if(w_<0)w_=0;c.style.width=w_+'px';c.style.height=CH+'px';if(CH>0)CH+=5}var o=ngSearchFnc_GEBI(this.ulId);if(o){o.style.left=(L+this.marginUl_L)+'px';o.style.top=(T+this.marginUl_T)+'px';var w_=(W-this.imgWidth-this.marginUl_L-this.marginUl_R);if(w_<0)w_=0;var h_=(H-this.imgHeight-this.marginUl_T-this.marginUl_B-CH-BH-5);if(h_<0)h_=0;o.style.width=w_+'px';o.style.height=h_+'px'}var e=ngSearchFnc_GEBI(this.errorId);if(e){e.style.left=(L+this.marginUl_L)+'px';e.style.top=(T+this.marginUl_T)+'px';var w_=(W-this.marginUl_L-this.marginUl_R);if(w_<0)w_=0;var h_=(H-this.marginUl_T-this.marginUl_B);if(h_<0)h_=0;e.style.width=w_+'px';e.style.height=h_+'px'}return}function ngSearchGui_setColor2ResultsTextUnderline(col){var o=ngSearchFnc_GEBI(this.ulId);if(o){if(typeof(col)=='string'){o.style.textDecoration='underline';o.style.color=col}}return}function ngSearchGui_setResultsTextClass(cn){if(typeof(cn)=='string')this.classNameText=cn;return}function ngSearchGui_setErrorTextClass(cn){var e=ngSearchFnc_GEBI(this.errorId);if(e){if(typeof(cn)=='string')e.className=cn}return}function ngSearchGui_setResultsTextImg(obr,w,h,ods){var o=ngSearchFnc_GEBI(this.ulId);if(o){if(typeof(obr)=='string'){var mag_hodn=10;if(typeof(w)=='number')this.imgWidth=w+mag_hodn;if(typeof(h)=='number')this.imgHeight=Math.floor(h/2);if(typeof(ods)=='number')this.imgShift=ods-mag_hodn;if(typeof(document.all)=='undefined'){this.imgHeight=0;this.imgShift=0}o.style.listStyle='disc url("'+obr+'") outside';o.style.padding=this.imgHeight+'px 0 0 '+this.imgWidth+'px';}}return}function ngSearchGui_setUlMargin(top,right,bottom,left){if(typeof(top)=='number')this.marginUl_T=top;if(typeof(right)=='number')this.marginUl_R=right;if(typeof(bottom)=='number')this.marginUl_B=bottom;if(typeof(left)=='number')this.marginUl_L=left;return}function ngSearchGui_setClassLi(li){if(li){var cnOE=this.classOdd;if(li.even)cnOE=this.classEven;var cnAL='';if(li.active_line)cnAL=this.classActiveLine;li.className=cnOE+' '+cnAL}return}function ngSearchGui_setClassText(sp){if(sp){var cnOT=this.classOutText;if(sp.mouse_over)cnOT=this.classOverText;sp.className=this.classNameText+' '+cnOT}return}function ngSearchGui_setActiveLine(key){var o=ngSearchFnc_GEBI(this.ulId+'_li_'+key);if(o){o.active_line=true;this.setClassLi(o);this.activeLineKey=key}return}function ngSearchGui_LocateItem(key){var ao=ngSearchFnc_GEBI(this.ulId+'_li_'+this.activeLineKey);if(ao){ao.active_line=false;this.setClassLi(ao);this.activeLineKey=''}var o=ngSearchFnc_GEBI(this.ulId+'_li_'+key);if(o){o.active_line=true;this.setClassLi(o);this.activeLineKey=key}if(NG_SEARCH_PLACES){key=parseInt(key);NG_SEARCH_PLACES.LocateItem(key);}return}function ngSearchGui_nextPage(){this.setSearchParams();if(NG_SEARCH_PLACES){NG_SEARCH_PLACES.Params.Offset=NG_SEARCH_PLACES.Params.PageTo;NG_SEARCH_PLACES.NextPage();}return}function ngSearchGui_prevPage(){this.setSearchParams();if(NG_SEARCH_PLACES){NG_SEARCH_PLACES.PrevPage();}return}function ngSearchGui_getResultCntLine(){if(this.dynamicCntLine){var H=0;var o=ngSearchFnc_GEBI(this.id);if(o)H=o.clientHeight;H-=30;var lh=13+this.lineSpacing+this.bottomSpacing;var num=Math.floor(H/lh);num--;if(num<5)num=5;this.pageSize=num}return this.pageSize}function ngSearchGui_setSearchParams(){if(NG_SEARCH_PLACES)NG_SEARCH_PLACES.PageSize=this.getResultCntLine();return}function ngSearchGui_setResultsTextWithoutImg(is,ls,rs){var o=ngSearchFnc_GEBI(this.ulId);if(o){o.style.listStyleType='none';o.style.margin='0';o.style.padding='0';if(typeof(is)=='number')this.imgShift=is;if(typeof(rs)=='number')this.rightSpacing=rs;if(typeof(ls)=='number')this.lineSpacing=ls}return}function ngSearchGui_setLineSpacing(ls){if(typeof(ls)=='number')this.lineSpacing=ls;return}function ngSearchGui_setRightSpacing(rs){if(typeof(rs)=='number')this.rightSpacing=rs;return}function ngSearchGui_setBottomSpacing(bs){if(typeof(bs)=='number')this.bottomSpacing=bs;return}function ngSearchGui_setOddAndEvenLine(cn_odd,cn_even){if(ngSearchFnc_ST(cn_odd))this.classOdd=cn_odd;if(ngSearchFnc_ST(cn_even))this.classEven=cn_even;return}function ngSearchGui_setOverOutText(cn_over,cn_out){if(ngSearchFnc_ST(cn_over))this.classOverText=cn_over;if(ngSearchFnc_ST(cn_out))this.classOutText=cn_out;return}function ngSearchGui_setClassActiveLine(cn){if(ngSearchFnc_ST(cn))this.classActiveLine=cn;return}function ngSearchGui_setPageSize(i){if(typeof(i)=='number')if(i>0){this.pageSize=i;this.dynamicCntLine=false}return}function ngSearchGui_setLocateIcon($url){if(typeof($url)=='string')this.locateIcon=$url;return}