<!--
var tids;var Ftk=[];var show_others;var follow_name;var base_uri;var map_start_lat;var map_start_lng;var map_start_z=-1;var map_start_label;var kml;var find_addr;var find_locator;var start_maptype;var start_gps=0;var start_fit;
var za_rectangles;var nick;var t_start;var t_end;var timerange=3600;var disable_timerange=0;var stopped;var lastupd=0;var show_track;var show_phg=0;var Xa=1;var Xb=1;var Xc;var Xd='';var line_width;var line_colors;var
ibco,ibad,ibsp,ibcm,ibph,ibpa;var snd=0;var snd_t='tock-low';var snd_configured;var snd_loaded;var sm_avail;var units;var units_temp;var coords;var loc;var tz;var analytics;var is_mobile;var country;var dok;var dmk;var Xf;
var Fi=[];var Xj=[];var Xk=[];var Xl=[];var Xn=[];var Xo=[];var Xq=[];var Xr=[];var Xt=[];var Xv;var Xz=0;var Xaa=0;var Xab=0;var Xac=0;var Xad;var delete_all_unupdated=0;var Xae;var in_areastats;var Xaf;
var Xag=1;var Xah;Xai=0;var d2r=Math.PI/180;var gcoder;var sv;var svs;var gm;var nav;var Xaj;var Xak;var Xal;var Xam;var Xan;function Xao(map,Xap,Xaq,Xar,Xas,Xat){this.Xau=map;this.Xav=Xap;this.Xaw=Xaq;this.Xax=
Xar||"#888888";this.Xay=Xas;this.Xaz=Xat;this.setMap(map);}Xao.prototype=new google.maps.OverlayView();Xao.prototype.onAdd=function(){var Xba=document.createElement("div");var border=this.Xaw+"px solid "+this.Xax;
Xba.style.border=border;Xba.style.position="absolute";if(this.Xay)Xba.style.backgroundColor=this.Xay;if(this.Xaz){Xba.style.opacity=this.Xaz;if(document.all)Xba.style.filter="alpha(opacity="+(this.Xaz*100)+")";}
this.getPanes().mapPane.appendChild(Xba);this.Xbb=Xba;};Xao.prototype.onRemove=function(){this.Xbb.parentNode.removeChild(this.Xbb);this.Xbb=null;};Xao.prototype.draw=function(Xbc){var Xbd=this.getProjection();var Xbe=
Xbd.fromLatLngToDivPixel(this.Xav.getSouthWest());var Xbf=Xbd.fromLatLngToDivPixel(this.Xav.getNorthEast());this.Xbb.style.left=Xbe.x+2+"px";if(this.Xbg)this.Xbb.style.top=Xbe.y-2-this.Xbb.clientHeight+"px";else
this.Xbb.style.top=Xbe.y+2+"px";this.Xbb.style.width=Math.abs(Xbf.x-Xbe.x)+"px";this.Xbb.style.height=Math.abs(Xbf.y-Xbe.y)+"px";this.Xbb.style.left=(Math.min(Xbf.x,Xbe.x)-this.Xaw)+"px";this.Xbb.style.top=
(Math.min(Xbf.y,Xbe.y)-this.Xaw)+"px";};function Textbox(point,text,bgcolor,map,hidden,Xbh,element,border){this.Xbi=point;this.Xbj=text;this.Xbk=bgcolor;this.Xau=map;this.Xbl=hidden;this.Xbg=Xbh;this.Xbm=element;
this.Xbn=border;this.setMap(map);}Textbox.prototype=new google.maps.OverlayView();Textbox.prototype.onAdd=function(){var Xba;if(this.Xbm){this.Xbb=Xba=this.Xbm;this.Xbb.style.visibility='visible';}else{this.Xbb=Xba=
document.createElement("div");this.Xbo();Xba.className=this.Xbg?'nametip_top':'nametip';}Xba.style.position="absolute";if(this.Xbk)Xba.style.backgroundColor=this.Xbk;if(this.Xbn){Xba.style.borderColor=this.Xbn;
Xba.style.borderStyle='dashed';Xba.style.borderWidth='1px';}if(this.Xbg)this.getPanes().floatShadow.appendChild(Xba);else this.getPanes().overlayShadow.appendChild(Xba);};Textbox.prototype.onRemove=function(){
this.Xbb.parentNode.removeChild(this.Xbb);if(!this.Xbm)this.Xbb=null;};Textbox.prototype.draw=function(Xbc){if(!this.Xbb)deb("Textbox draw: ouch, no div_ !");var Xbd=this.getProjection();var Xbe=Xbd.fromLatLngToDivPixel(this.Xbi);
if(!Xbe){return;}this.Xbb.style.left=Xbe.x+2+"px";if(this.Xbg)this.Xbb.style.top=Xbe.y-2-this.Xbb.clientHeight+"px";else this.Xbb.style.top=Xbe.y+2+"px";};Textbox.prototype.Xbo=function(){this.Xbb.innerHTML=
'<div><span>'+this.Xbj+'</span></div>';};Textbox.prototype.hide=function(){if(this.Xbb)this.Xbb.style.visibility="hidden";};Textbox.prototype.show=function(){if(this.Xbb)this.Xbb.style.visibility='visible';};
Textbox.prototype.update=function(point,text){this.Xbj=text;this.Xbi=point;this.Xbo();this.draw(1);this.show();};Textbox.prototype.update_pos=function(point){this.Xbi=point;this.draw(1);this.show();};var Xbp={};function
Xbq(Xbr,tid){Xbp[Xbr]=tid;}function Xbs(){var i;var Xbt={};var e;for(i in Xbp){e=el(i);if(!e||!Fi[Xbp[i]]){Xbt[i]=1;}else{var Xbu=t_now-Fi[Xbp[i]].time;e.innerHTML='('+dur_str(Xbu)+')';}}for(i in Xbt)
delete Xbp[i];}function Xbv(){var Xbw=sv.getPosition();var Xbx=1000;var Xby=Xbx/(1852*60);var Xbz=Xbx/(111120.0*Math.cos(Xbw.lat()*d2r));return new gm.LatLngBounds(new gm.LatLng(Xbw.lat()-Xby,Xbw.lng()-Xbz),new
gm.LatLng(Xbw.lat()+Xby,Xbw.lng()+Xbz));}function Xca(){return(sv&&sv.getVisible());}function Xcb(){return gmap.getCenter();}function Xcc(){return gmap.getBounds();}function Xcd(){var Xap=Xcc();if(isUndefined(Xap)){
return;}if(Xag)Xaf=Xap;var Xce=Xap.getSouthWest();var Xcf=Xap.getNorthEast();var Xcg=new Date();var Xch=(Math.random().toFixed(5)*100000).toFixed(0)+"-"+(Xcg.getTime()%10000);var u='/xml2'+"?n="+nick+"&sw_lat="+
Xce.lat().toFixed(4)+"&sw_lng="+Xce.lng().toFixed(4)+"&ne_lat="+Xcf.lat().toFixed(4)+"&ne_lng="+Xcf.lng().toFixed(4)+"&rid="+Xch+"&winid="+winid;return u;}var Xci;var Xcj=0;var Xck=0;var Xcl;function Xcm(Xcn){if
(Xcn['before']){Xcn['before']();}Xco(Xcn['t']);}function Xco(Xcp){if(Xci)clearTimeout(Xci);Xci=setTimeout(function(){Xcj=1;Xci=0;xmljsreq();Xcj=0;if(Xcl){Xcm(Xcl);delete Xcl;}},Xcp);}function reschedule_next_req(Xcp,
Xcn){if(Xcj){if(Xcn)Xcl=Xcn;return;}if(Xcn)Xcm(Xcn);else Xco(Xcp);}var Xcq=1;function xmljsreq(){var Xcr=5000;var Xcs=10000;if(!Xaf)Xaf=gmap.getBounds();if(!Xaf){Xco(200);return;}if(stopped){if(Xcq&&
in_areastats){Xct("&za="+Xcu);}Fs('stopped');Xae=0;Xco(Xcr);if(Xcq){Xcq=0;Xcv();}return;}var Xcw=setup_xmlhttpreq();if(!Xcw)return;Fs('updating');Xcw.onreadystatechange=function(){if(stopped){if(Xae){}else{Xae
=1;Fs('stopped');Xco(Xcr);}return;}if(Xcw.readyState==4){var e;try{if(!Xcw.status){Fs('Server or network problem: load error');Xco(Xcs);return;}}catch(e){Xco(Xcs);return;}if(Xcw.status!=200){
Fs('Server or network problem: HTTP error '+Xcw.status);Xco(Xcs);return;}execute_xml(Xcw.responseText);if(delete_all_unupdated)redraw();if(Xz||Xaa||Xab)Fs('idle: points updated '+Xaa+', deleted '+Xab);else Fs('idle');if(Xcq)
{Xcq=0;Xcv();}Xz=Xaa=Xab=0;if(Xc&&Fi[Xc]){Xcx(Xc);Xc=0;}if((analytics)&&t_now-Xai>=60){if(Xai>0){var Xcy='/tracking/';if(tids&&!show_others)Xcy+='only/'+tids.join(',');else if(tids&&show_others)Xcy
+='follow/'+tids.join(',');else Xcy+='area/';_gaq.push(['_trackPageview',Xcy]);}Xai=t_now;}Xco(Xcr);}};if((Xaf)&&!Xaf.contains(Xcb())){Xcz(Xcc());reload_timerange();}if(Xad){lastupd=Xad;Xad=0;}var Xda=Xcd()+
"&timerange="+timerange+"&lastupd="+lastupd;if(tids)Xda+="&tids="+tids.join(',');if(show_others)Xda+="&oth=1";if(t_start){Xda+="&t_start="+t_start;Xah=t_start;t_start=0;}if(t_end)Xda+="&t_end="+t_end;if(!Xf)
{if(!t_start&&!t_end&&t_now-Xac>=300)Xda+='&area_wx=1';}Xcw.open("GET",Xda,true);Xcw.send(null);}function Xct(Xdb){var Xcw=setup_xmlhttpreq();if(!Xcw)return;Xcw.onreadystatechange=function(){if(Xcw.readyState==4){
var e;try{if(!Xcw.status){alert("AJAX error: no xmlreq.status!");return;}}catch(e){alert("AJAX error: xmlreq.status check failed!");return;}if(Xcw.status!=200){alert("Service or network error! (HTTP status code:"+Xcw.status+
")");return;}execute_xml(null,Xcw.responseXML);Fs('idle (oneshot)');}};var Xda=Xcd()+Xdb;Fs('updating (oneshot)');Xcw.open("GET",Xda,true);Xcw.send(null);}function Fgo(Xdc){var e=el(Xdc);if(e){var i=e.selectedIndex;
return e.options.item(i).value;}return;}function Xdd(){document.title='Google Maps APRS';}function reload_timerange(){deb("reload_timerange");if(t_now){Xad=Math.floor(t_now-timerange);Xac=1;Xag=1;}}function
timerange_apply(e,Xdc){var s=Fgo(Xdc);if(s<timerange)last_expired=0;timerange=s;reload_timerange();}function Xde(Xdf){var e=el('timerange');if(!e)return;if(Xdf>86400&&!tids){
deb("timerange_set cutting timerange to 86400");Xdf=86400;}e.disabled=(disable_timerange)?true:false;for(i=0;i<e.length;i++){if(Xdf==e.options[i].value){e.selectedIndex=i;timerange=Xdf;}if(e.options[i].value>86400){
if(!tids){e.remove(i);i=i-1;}}}reload_timerange();}function Xcx(tid,name){var Xdg='';var srccall='';if(tid&&Fi[tid]){if(Fi[tid].cla=='a')srccall=Fi[tid].srccall;Xdg=Xdh(tid);}else if(!isUndefined(name))Xdg=
encodeURIComponent(name);upd_el('viewlinks','<ul class="viewlinks" style="margin-bottom: 0px;"> <li><a href="/info/$findcall">Station info</a></li> <li><a href="/?c=raw&call=$srccall">Raw packets</a></li> <li><a href="/?c=status&call=$srccall">Status packets</a>  - <a href="/?c=beacon&call=$srccall">Beacon packets</a></li> <li><a href="/weather/$findcall">APRS/CWOP weather</a>  - <a href="/telemetry/$findcall">Telemetry</a></li> <li><a href="/?c=message&call=$srccall">Messages</a>  - <a href="/bulletin/">Bulletin board</a></li></ul> '.replace(/\$srccall/g,srccall).replace(/\$findcall/g,Xdg));}function pass_settings_url(){var s='';if(gmap)s+='&mt='+gmap.getMapTypeId()+'&z='+gmap.getZoom();s
+="&timerange="+timerange;return s;}function Xdi(Xdj,marker){var Xdk=marker.getPosition();var point=gmap.MapCanvasProjection().fromLatLngToDivPixel(Xdk);var Xdk=new gm.ControlPosition(Xdl,new Xdm(Xdn.x-point.x-anchor.x+width,
Xdn.y-point.y-anchor.y-height));Xdk.Xdp(Xdj);Xdj.style.visibility='visible';}function Xdq(marker){Xdr.update(marker.getPosition(),'<div>'+symbol_img(marker.Xds.symbol)+' <span style="vertical-align:middle">'+
((marker.Xds.showname)?marker.Xds.showname:marker.Xds.name)+'</span></div>');}var Xdt;function Xdu(Xdv){Xdw();Xdt=[];var Xdx=Xdv.Xdy.Xdx.split(',');var Xdz=Xdv.Xdy.latlng;for(var i=0;i<Xdx.length;i++){if(Xdx[i]&&
Fi[Xdx[i]]){var Xea=new gm.LatLng(Fi[Xdx[i]].lat,Fi[Xdx[i]].lng);var Xeb=new gm.Polyline({'path':[Xdz,Xea],'strokeColor':Xdx[i]==Xdv.Xdy.Xec?'#9100ff':'#ff009b','strokeWeight':2,'strokeOpacity':0.8});Xdz=Xea;
Xeb.setMap(gmap);Xdt.push(Xeb);}}}function Xdw(){if(Xdt){for(p in Xdt)Xdt[p].setMap(null);delete Xdt;}}var Xed;var Xee='#ff0fc9';function Xef(Xdv){Xeg();if(!Xdv.Xds.posamb)return;var i=Xdv.Xds;var Xeh=new
gm.LatLngBounds(new gm.LatLng(Xdv.Xdy.lat-amb_dim[i.posamb],Xdv.Xdy.lng-amb_dim[i.posamb]),new gm.LatLng(Xdv.Xdy.lat+amb_dim[i.posamb],Xdv.Xdy.lng+amb_dim[i.posamb]));Xed=new Xao(gmap,Xeh,0,Xee,Xee,0.2);}function Xeg(){if
(Xed){Xed.setMap(null);Xed=null;}}function Xdh(tid){return Fi[tid].cla+'/'+encodeURIComponent(Fi[tid].name);}function Xei(tid){return encodeURIComponent(Fi[tid].cla+'/'+Fi[tid].name);}function Xej(s){var Xek=
s.replace(/(http|https|telnet|ftp):\/\/([^ \(\)\>]*)/i,"<a rel='nofollow' href='$1://$2' target='_blank' onclick='link_popup(this); return false'>$1://$2</a>");return Xek.replace(/([\w\.\-\+\%\=]+@[\w\.\-]+\.[\w\.\-]+)/i,
"<a rel='nofollow' href='mailto:$1' onclick='link_popup(this); return false'>$1</a>");}function Xem(i){var Xen=(Xf)?'em':'mb';var info='<div class=\'text\'><div style="float:left;">'+symbol_img(i.symbol)+' <b><a href="/?call='+
Xei(i.tid)+'&amp;_s='+Xen+'"'+Xd+'>'+((i.showname)?i.showname:i.name)+'</a></b>';if(i.srccall!=i.name&&i.type!='a'&&i.cla!='s')info+=' (from <a href="/?call='+encodeURIComponent(i.srccall)+'&amp;_s='+Xen+'"'+
Xd+'>'+i.srccall+'</a>)';if(i.cla=='s')info+=' (squawk '+i.dstcall+')';info+=' · <a href="javascript:track_jump_hipop('+i.tid+')">center</a>'+' · <a href="javascript:track_jump_hipop('+i.tid+
', 15)">zoom</a>'+" · <a href='/info/"+Xdh(i.tid)+"'"+Xd+">info</a></div>"+"<div style='width:14px;float:left;'></div>"+'<div style="clear:left;background-color:'+i.linecolor+
';opacity:0.6;height: 2px;"></div>';return info;}function Xeo(i){var info='<small>';if(Ftk[i.tid]){info+='being tracked · <a href="javascript:track_stop('+i.tid+');">stop tracking</a>';}else{info+=
'<a href="javascript:track_start('+i.tid+');">start tracking</a>';}if(sv)info+=' · <a href="javascript:track_sv('+i.tid+');">track in Street View</a>';if(i.cla=='s')info+=' · <a target="_blank" href="/?c=fps&amp;tid='+
i.tid+'">FPS</a>';info+='</small>';return info;}function Xep(i,Xeq,Xer){var info=Xem(i);if(ibco)info+=lat_str(Xeq.lat)+' '+lng_str(Xeq.lng)+'<br />';info+=timestr(Xeq.t_start);if(Xeq.t_start!=Xeq.t_end)info+=' - '+
timestr(Xeq.t_end);info+='<br />';if(ibsp){var Xes='';if(Xeq.speed>0)Xes+=speed_str(Xeq.speed)+' ';if(!isUndefined(Xeq.course)&&Xeq.speed>0)Xes+=Xeq.course+'° ';if(Xeq.Xet)Xes+='alt '+altitude_str(Xeq.Xet);if
(Xes)info+='<b>'+Xes+'</b><br />';}if(Xer)info+=Xer;if(i.cla=='i')info+='AIS:'+((i.length)?' length '+i.length+'m':'')+((i.width)?' width '+i.width+'m':'')+((i.draught)?
' draught '+i.draught+'m':'')+((i.length)||(i.width)||(i.draught)?'<br />':'')+((i.symbol=='ar')?' receiver':' MMSI '+i.name)+((i.imo)?' IMO '+i.imo:'')+((i.srccall)?' Call '+i.srccall:'')+
'<br />'+((i.navstat&i.navstat<15)?'Navstat: '+Xeu[i.navstat]+'<br />':'')+((i.vesselclass)?i.vesselclass:'')+((i.persons)?' – '+i.persons+' persons':'')+((i.vesselclass||i.persons)?'<br />':'');
if(Xeq.t_end==i.time&&i.wxtime){info+="APRS/CWOP weather "+timestr(i.wxtime)+': <small>[<a href="/weather/'+Xdh(i.tid)+'"'+Xd+'>show weather charts</a>]</small><br />';if(!isUndefined(i.temp))info+='Temperature <b>'+
temperature_str(i.temp)+'</b>';if(!isUndefined(i.humidity))info+=' Humidity <b>'+i.humidity+'%</b>';if(!isUndefined(i.pressure))info+=' Pressure <b>'+i.pressure+' mbar</b>';if(!isUndefined(i.wind_direction)){
info+='<br /> Wind <b>'+i.wind_direction+'°</b>';if(!isUndefined(i.wind_speed))info+=' <b>'+windspeed_str(i.wind_speed)+'</b>';if(!isUndefined(i.wind_gust))info+=' (Gusts <b>'+windspeed_str(i.wind_gust)+
'</b>)';}if(!isUndefined(i.rain_1h)||!isUndefined(i.rain_24h)||!isUndefined(i.rain_mn)){info+='<br /> Rain<b>';if(!isUndefined(i.rain_1h))info+=' '+rainfall_str(i.rain_1h)+'/1h';if(!isUndefined(i.rain_24h))info+=' '+
rainfall_str(i.rain_24h)+'/24h';if(!isUndefined(i.rain_mn))info+=' '+rainfall_str(i.rain_mn)+'/since midnight';info+='</b>';}info+='<br />';}if(ibcm&&Xeq.Xev){info+=
'<span style="color:#0a7100; font-style:italic;" title="Comment text">'+Xej(Xeq.Xev)+'</span><br />';}if(ibcm&&i.status&&Xeq.t_end==i.time){info+=
'<span style="color:#b400ff; font-style:italic;" title="Status message">'+Xej(i.status)+'</span><br />';}if(ibcm&&i.mice_msg&&Xeq.t_end==i.time){info+='Mic-E: <i>'+mice_msg_types[i.mice_msg]+'</i><br />';}
if(ibph&&i.phg_p){info+='power $1'.replace('$1',i.phg_p+'W')+', antenna HAAT $1'.replace('$1',altitude_str(i.phg_h))+', gain $1 '.replace('$1',i.phg_g+' dBi')+' '+((i.phg_d==-1)?'omni':i.phg_d+'°')+
',<br />range $1'.replace('$1',distance_str(i.phg_dim)+((i.phg_r>0)?', rate $1 packets/hour'.replace('$1',i.phg_r):'')+'<br />');}if(ibpa&&Xeq.Xew){info+='<small>[';if(Xeq.dstcall=='')info+='APRS';else info+=Xeq.dstcall;
info+=' via '+Xex(Xeq)+']</small><br />';}if(Xf)return info+"</div>";info+=Xeo(i);info+='</div>';return info;}function Xex(Xeq){var Xey=[];var Xdx=Xeq.Xdx.split(',');var Xez=Xeq.Xew.split(',');for(i=0;i<
Xez.length;i++){if(Xdx[i]){Xey[i]="<a href='/?call="+encodeURIComponent(Xez[i].replace('*',''))+"&amp;_s="+((Xf)?'em':'mb')+"'"+Xd+">"+Xez[i]+"</a>";}else{Xey[i]=Xez[i];}}return Xey.join(',');}function Xfa(Xfb,
status,Xfc){if(!Xfb||status!=gm.GeocoderStatus.OK)return;Xfd.setContent(Xep(Xfc.Xds,Xfc.Xdy,'<span class="address">'+Xfb[0].formatted_address+'</span><br />'));}function Xfe(Xdv){if(ibad&&!is_mobile){if(!gcoder)gcoder=new
gm.Geocoder();gcoder.geocode({'latLng':Xdv.Xdy.latlng,'language':'en'},function(Xfb,status){Xfa(Xfb,status,Xdv);});}Xfd.setContent(Xep(Xdv.Xds,Xdv.Xdy,''));Xfd.open(Xdv.getMap(),Xdv);if(Xca())Xff(Xdv.Xds,Xdv.Xdy);}function
Xfg(event,i){Xfd.close();Xfd.setContent(Xem(i)+Xeo(i)+'</div>');Xfd.setPosition(event.latLng);Xfd.open(gmap);}function Xfh(point,name,Xfi,Xfj,bgcolor,i,Xeq){var m=new gm.Marker({'position':point,'map':gmap,'icon':Xfi,
'zIndex':3,'draggable':(i.my&&Xfj)});m.Xds=i;m.Xdy=Xeq;var s=gm.event.addListener;var Xfk;var Xfl;var Xfm;if(!Xfj){Xfk=function(){Xdq(m);Xdu(m);Xef(m);};Xfl=function(){Xdr.hide();Xdw();Xeg();};Xfm=function(){
Xdr.hide();Xfe(m);};}else{m.Xfn=new Textbox(point,name,bgcolor,gmap,null,null,null,(i.posamb)?Xee:null);Xfk=function(){Xdu(m);Xef(m);};Xfl=function(){Xdw();Xeg();};Xfm=function(){Xfe(m);};if(i.my){s(m,
'dragend',function(){ui_loc_upl(m.getPosition());});}}s(m,'mouseover',Xfk);s(m,'mouseout',Xfl);s(m,'click',Xfm);return m;}function Xfo(){return new gm.MarkerImage(static_url1+'/img/symbols/wpt.png',new gm.Size(4,4),Xal,new
gm.Point(2,2));}function Xfp(Xfq){var Xfr;var Xfs=Xfq.charCodeAt(0);var Xft=Xfq.charCodeAt(1);if(Xfs==47)Xfr='p'+dec2hex[Xft];else if(Xfs==92)Xfr='a'+dec2hex[Xft];else if(Xfs==97)Xfr='ia'+Xfq.charAt(1);else if
((Xfs>=48&&Xfs<=57)||(Xfs>=65&&Xfs<=90))Xfr=Xfq.charAt(0)+dec2hex[Xft];if(Xfr)return Xfr+Xfr+'.png';return;}function Xfu(Xfq){var Xfs=Xfq.charCodeAt(0);var Xfv=Xfq.charCodeAt(1);if(Xfs==47||Xfs==92){var
Xfw=static_url1+symbol_ver;if(Xfs==47)Xfw+='sprite_pri.png';else Xfw+='sprite_alt.png';var Xfx=6;var Xfy=16;var Xfz=21;var Xga=16;var Xgb=3;if(Xfv>=33&&Xfv<=126){var Xdk=Xfv-33;var Xgc=Math.floor(Xdk/
Xfy);var Xgd=(Xdk==0)?0:Xdk%Xfy;var Xge=Xgd*Xfz+Xgb;var Xgf=Xgc*Xfz+Xgb;return[Xfw,Xge,Xgf,Xga,Xga];}}}function Xgg(Xfq){var u=Xfp(Xfq);if(u)return static_url1+symbol_ver+'f16/'+u;return;}function
symbol_img(Xfq){var s=Xfq;var Xfs=Xfq.charCodeAt(0);if(Xfs!=47&&Xfs!=97)s=String.fromCharCode(92)+Xfq.charAt(1);var Xgh="";if(!isUndefined(symbol_descr[s]))Xgh="onmouseover='ttip(event, this, \""+symbol_descr[s]+
"\")' ";var u=Xfu(Xfq);if(u)return "<span "+Xgh+"style='background:url(\""+u[0]+"\") no-repeat -"+u[1]+"px -"+u[2]+"px; width: "+u[3]+"px; height: "+u[4]+
"px; margin: 0px; vertical-align:middle; display:inline-block;'></span>";u=Xgg(Xfq);if(u)return "<img "+Xgh+"width='16' height='16' style='vertical-align:middle' src='"+u+"' />";return '';}function Xgi(Xfq,course){var u;var Xgj;
var Xgk;u=Xfp(Xfq);if(symbol_rot[Xfq])Xgk=1;if(u){if(!isUndefined(course)&&Xgk&&course>=0&&course<359){u=static_url2+symbol_ver+course+'/'+u;var i=new gm.MarkerImage(u,Xak,Xal,Xan);return i;}var s=
Xfu(Xfq);if(s)return new gm.MarkerImage(s[0],new gm.Size(s[3],s[4]),new gm.Point(s[1],s[2]),Xam);u=static_url1+symbol_ver+'f16/'+u;var i=new gm.MarkerImage(u,Xaj,Xal,Xam);return i;}return new gm.MarkerImage(static_url1+
'/img/mm_20_blue.png',new gm.Size(12,20),Xal,new gm.Point(6,10));}za_rectangles=[];function Xgl(){for(p in za_rectangles)za_rectangles[p].setMap(null);za_rectangles=[];}var Xgn;function za(Xgp,Xgq,Xby,Xbz,Xgr){if
(!in_areastats||za_rectangles[Xgp+"/"+Xgq])return;var Xeh=new gm.LatLngBounds(new gm.LatLng(Xgp,Xgq),new gm.LatLng(Xgp+Xby,Xgq+Xbz));if(!Xgn)Xgn=Math.log(za_max_targets_c)/Math.LN10;var Xgs=Math.log(Xgr==1?2:
Xgr)/Math.LN10/Xgn;Xgs*=1.8;if(Xgs<0)Xgs=0;if(Xgs>1)Xgs=1;var Xgt=Xgs*0.7+0.2;var Xgu=dec2hex[Math.round(255*Xgs)];var Xgv=dec2hex[Math.round(255-(255*Xgs))];var color="#"+Xgu+"00"+Xgv;za_rectangles[Xgp
+"/"+Xgq]=new Xao(gmap,Xeh,0,color,color,Xgt);}function Xgw(Xgx){var Xby=2000/(1852*60);var x;for(i in Xgx){x=Xgx[i];var Xbz=2000/(111120*Math.cos(x[0]*d2r));za(x[0],x[1],Xby,Xbz,x[2]);}}function Xgy(Xgz,
Xha){var Xhb;if(Xgz<0){Xgz*=-1;Xhb=1;}var Xhc=Math.floor(Xgz);var Xhd=60*(Xgz-Xhc);var min=Math.floor(Xhd);var Xhe=60*(Xhd-min);var Xhf=Math.round(Xhe);if(Xhf==60){min++;Xhf=0;}if(min==60){Xhc++;
min=0;}var Xhg;if(Xhb)Xhg=(Xha=='lat')?'S':'W';else Xhg=(Xha=='lat')?'N':'E';return Xhc.toFixed(0)+'°'+min.toFixed(0)+"'"+Xhf.toFixed(0)+'" '+Xhg;}function Xhh(Xgz,Xha){var Xhb;if(Xgz<0){Xgz*=-1;Xhb
=1;}var Xhc=Math.floor(Xgz);var Xhd=60*(Xgz-Xhc);if(Xhd>=59.995){Xhc++;Xhd=0;}var Xhg;if(Xhb)Xhg=(Xha=='lat')?'S':'W';else Xhg=(Xha=='lat')?'N':'E';return Xhc.toFixed(0)+'°'+Xhd.toFixed(2)+"' "+
Xhg;}function lat_str(Xgs){if(coords=='m')return Xgy(Xgs,'lat');if(coords=='a')return Xhh(Xgs,'lat');if(Xgs>=0)return Xgs.toFixed(4)+' N';return Xgs.toFixed(4)*-1+' S';}function lng_str(Xgs){if(coords=='m')
return Xgy(Xgs,'lng');if(coords=='a')return Xhh(Xgs,'lng');if(Xgs>=0)return Xgs.toFixed(4)+' E';return Xgs.toFixed(4)*-1+' W';}var ext_target_info;function Xhi(tid){var Xcp=Fi[tid];if(ext_target_info){ext_target_info(Xcp);
return;}var s='<div><div class="left"><span class="ti_name"><a href="javascript:track_jump('+Xcp.tid+')">'+((Xcp.showname)?Xcp.showname:Xcp.name)+'</a> '+symbol_img(Xcp.symbol)+'</span></div>'+'<div class="right">'+
"<div style='background:url(\"http://d1dhsh1i77j8ju.cloudfront.net/img/icon_sprite5.png\") no-repeat -15px -86px; width: 15px; height: 16px; margin: 1px; float:right;' onclick='track_menu(event, "+Xcp.tid+");'></div>"+
"<div style='background:url(\"http://d1dhsh1i77j8ju.cloudfront.net/img/icon_sprite5.png\") no-repeat 0 -86px; width: 15px; height: 16px; margin: 1px; float:right;' onclick='track_stop("+Xcp.tid+");'></div>"+'</div></div>'+'<div style="clear: left;">'+'Updated: '+timestr(Xcp.time)
+' <span id="itt'+Xcp.tid+'"></span><br />'+'Position: '+lat_str(Xcp.lat)+' '+lng_str(Xcp.lng)+'</div>';var id='info.'+Xcp.tid;var element=el(id);if(element){upd_el(id,s);return;}var Xhj=el('info');if(!Xhj)
return;var Xgj=document.createElement("div");Xgj.id=id;Xgj.className='ti';Xgj.innerHTML=s;Xhj.appendChild(Xgj);Xbq('itt'+Xcp.tid,Xcp.tid);}function Xhk(){var Xhl='';if(t_start||Xah||t_end){Xhl=
'<b>Showing:</b>';if(t_start)Xhl+='<br />from: '+timestr(t_start);else if(Xah)Xhl+='<br />from: '+timestr(Xah);if(t_end)Xhl+='<br />to: '+timestr(t_end);}
upd_el('daterange_info',Xhl);}function it(Xcp){var tid=Xcp['tid'];Xcp.linecolor='#'+line_colors[tid%5];if(Ftk[tid]){if(!Fi[tid]||Fi[tid].lat!=Xcp.lat||Fi[tid].lng!=Xcp.lng){if(snd>0&&snd_t&&snd_loaded)
sound_play(snd_t);}}Fi[tid]=Xcp;Xz++;}function pnt(Xhm,t_start,t_end,lat,lng,course,speed,Xet,dstcall,Xew,Xev,Xdx,Xec){if(!Xj[Xhm])Xj[Xhm]=[];Xo[Xhm]=1;if(Xj[Xhm][t_start]&&Xj[Xhm][t_start].t_end==t_end)return;p=
new Object;p.t_start=t_start;p.t_end=t_end;p.lat=lat;p.lng=lng;p.latlng=new gm.LatLng(lat,lng);if(course>=0)p.course=course;p.speed=speed;p.Xet=Xet;p.dstcall=dstcall;p.Xew=Xew;p.Xev=Xev;p.Xdx=Xdx;p.Xec=Xec;
p.Xhn=1;Xj[Xhm][t_start]=p;Xn[Xhm]=1;Xaa++;}function Xho(tid){var Xhp=[];for(p in Xj[tid])Xhp.push(p);Xhp.sort();return Xj[tid][Xhp[Xhp.length-1]];}function area_wx(w){Xac=t_now;var e=el('area_wx');if(!e)return;var s
='Wx:';if(!isUndefined(w.temp))s+=' '+temperature_str(w.temp);if(!isUndefined(w.humidity))s+=' '+Math.round(w.humidity)+'%';if(!isUndefined(w.pressure))s+=' '+Math.round(w.pressure)+' mbar';if(!isUndefined(w.wind_speed))
s+=' '+windspeed_str(w.wind_speed);if(!isUndefined(w.wind_dir))s+=' '+w.wind_dir;if(s!='Wx:')e.innerHTML='<div style="margin-top: 3px; font-size: 9px">'+s+'</div>';else e.innerHTML='';}var Xeu=['Under way (engine)',
'At anchor','Not under command','Restricted manoeuvrability','Constrained by draught','Moored','Aground','Engaged in fishing','Under way (sailing)','Reserved (carrying hazard class C)','Reserved (carrying hazard class A)','Reserved (11)',
'Reserved (12)','Reserved (13)','Reserved (14)','Undefined/default'];function Xhq(tid,Xhr){if(!Fi[tid])return;var Xhs;var i=Fi[tid];var Xht;if(i.type=='l')Xht='#b4b4b4';else if(i.type=='a')Xht='#b7ffbc';else if(i.type
=='w')Xht='#ffff6a';else if(i.type=='i')Xht='#cf00cf';else if(i.type=='o')Xht='#ee82ee';if(i.msgcap)Xht='#ffffff';if(!Xl[tid])Xl[tid]=[];var Xhp=[];for(p in Xj[tid])Xhp.push(p);Xhp.sort();var Xhu=lastupd-
timerange;if(Xah){Xhu=Xah;}else if(Ftk.length>0){if(Ftk[i.tid]){Xhu=i.time-timerange;}}else{}var Xhv;var Xhw=0;var Xeq;var Xew=[];while(p=Xhp.shift()){if(Xj[tid][p].t_end<Xhu||(Xj[tid][p].Xhx&&((!Xhp[0])
||Xj[tid][Xhp[0]].Xhx))||(show_track=='p'&&Xj[tid][p].t_end!=i.time)){if(Xl[tid]&&Xl[tid][p]){if(Xl[tid][p].Xfn)Xl[tid][p].Xfn.setMap(null);Xl[tid][p].setMap(null);delete Xl[tid][p];}delete Xj[tid][p];Xab++;continue;}Xeq=
Xj[tid][p];if(Xeq.Xhn&&i.posamb){Xeq.latlng=new gm.LatLng(Xeq.latlng.lat()+(Math.random()-0.5)*amb_dim[i.posamb],Xeq.latlng.lng()+(Math.random()-0.5)*amb_dim[i.posamb]);}if(!Xeq.Xhn&&Xhp[0]&&Xj[tid][Xhp[0]].Xhn)Xeq.Xhn
=1;Xhw++;Xew.push(Xeq.latlng);if(show_track!='w'&&Xeq.t_end!=i.time){if(Xl[tid]&&Xl[tid][p]){if(Xl[tid][p].Xfn)Xl[tid][p].Xfn.setMap(null);Xl[tid][p].setMap(null);Xl[tid][p]=null;}}else if(Xeq.Xhn||Xhr){if(Xl[tid]&&
Xl[tid][p]){if(Xl[tid][p].Xfn)Xl[tid][p].Xfn.setMap(null);Xl[tid][p].setMap(null);Xl[tid][p]=null;}if(Xeq.t_end==i.time){if(isUndefined(Xeq.course)){if(!Xq[i.symbol])Xq[i.symbol]=Xgi(i.symbol);Xhs=Xq[i.symbol];}else{var
Xhy=(Math.round(Xeq.course/10)*10)%360;if(!Xr[i.symbol])Xr[i.symbol]=[];if(!Xr[i.symbol][Xhy])Xr[i.symbol][Xhy]=Xgi(i.symbol,Xhy);Xhs=Xr[i.symbol][Xhy];}if(show_phg&&i.phg_dim){if(Xt[tid]&&Xt[tid].Xhz==i.phg_dim&&
Xt[tid].Xia==i.phg_d&&!Xhr){}else{if(Xt[tid]){Xt[tid].setMap(null);delete Xt[tid];}Xt[tid]=phg_circle(i);Xt[tid].Xhz=i.phg_dim;Xt[tid].Xia=i.phg_d;Xt[tid].setMap(gmap);}}else if(Xt[tid]){Xt[tid].setMap(null);delete
Xt[tid];}}else{Xhs=Xv;}Xhv=Xeq.t_end;var m=Xfh(Xeq.latlng,(i.showname)?i.showname:i.name,Xhs,(Xeq.t_end==i.time),Xht,i,Xeq);Xl[tid][p]=m;if(Ftk[tid]&&Xeq.t_end==i.time&&Xb)Xfe(m);Xj[tid][p].Xhn=0;}}if
(Xk[tid])Xk[tid].setMap(null);if(Xhw<1){delete Xk[tid];delete Xj[tid];delete Xl[tid];delete Fi[tid];if(Xt[tid]){Xt[tid].setMap(null);delete Xt[tid];}return;}if(Ftk[tid]){i.lat=Xeq.lat;i.lng=Xeq.lng;Xhi(tid);}if(Xhw<2)
{return;}var Xib=new gm.Polyline({'path':Xew,'strokeColor':i.linecolor,'strokeWeight':line_width,'strokeOpacity':line_width<2?1.0:0.6});if(!Xib){}else{gm.event.addListener(Xib,'click',function(event){Xfg(event,i);});
Xib.setMap(gmap);Xk[tid]=Xib;}}function Xic(Xap){var Xie=Xap.getNorthEast();var Xig=Xap.getSouthWest();var Xih=Xig.lng();var Xii=Xie.lng();var Xij=Xig.lat();var Xik=Xie.lat();var Xbu=Xii-Xih;if(Xbu<0)Xbu+=360;Xih
-=Xbu/2;Xii+=Xbu/2;Xbu=(Xik-Xij)/2;Xik+=Xbu;Xij-=Xbu;var Xil=new gm.LatLngBounds(new gm.LatLng(Xij,Xih),new gm.LatLng(Xik,Xii));return Xil;}function Xcz(Xap){Xap=Xic(Xap);var show;for(var tid in Xj){if(Ftk[tid])
continue;for(var p in Xj[tid]){if(!Xap.contains(Xj[tid][p].latlng)){Xj[tid][p].Xhx=1;Xn[tid]=1;}}}}function Xim(){for(var tid in Xj)for(var p in Xj[tid])if(Xj[tid][p].Xhx)delete Xj[tid][p].Xhx;}function Xio(tid){for(var
p in Xj[tid])Xj[tid][p].Xhx=1;}function Xip(){var Xhu=lastupd-timerange;var show;for(var tid in Fi){if(show_track==''||show_track=='p'){Xn[tid]=1;}else{for(p in Xj[tid]){if(Xj[tid][p].t_end<Xhu){Xn[tid]=1;
break;}}}}}last_expired=0;function redraw(Xbc){if(t_now-last_expired>121){Xip();last_expired=t_now;}for(var tid in Xn)Xhq(tid,Xbc);if(delete_all_unupdated){delete_all_unupdated=0;for(var tid in Xj){if(!Xo[tid]){
for(var p in Xj[tid])Xj[tid][p].Xhx=1;Xn[tid]=1;Xhq(tid,1);}}}Xn=[];Xo=[];}function redraw_all(Xbc){for(var tid in Fi)Xhq(tid,Xbc);Xn=[];Xo=[];}function Xiq(){deb("clear_all()");Fs("clearing all");Xgl();for(var
i in Xl){for(var p in Xl[i])if(Xl[i][p]){if(Xl[i][p].Xfn)Xl[i][p].Xfn.setMap(null);Xl[i][p].setMap(null);}if(Xt[i]){Xt[i].setMap(null);delete Xt[i];}}for(var i in Xk)Xk[i].setMap(null);Xdw();Xk=[];Xj=[];Fi=[];Xn=[];
Xo=[];Xl=[];Xt=[];}function track_show_all(){if(!show_others){show_others=1;if(timerange>86400)timerange=3600;Xde(timerange);Xir();reschedule_next_req(200);}}function Xis(){var Xiu;var Xiv;if(tids){Xiu=tids;
tids=Xiv;Ftk=[];}if(!show_others)track_show_all();if(Xiu)for(var i=0;i<Xiu.length;i++)Xhq(Xiu[i],1);}var Xiw;function Xix(){var Xgj=document.createElement("div");Xgj.className='track_menu';Xgj.oncontextmenu=
function(){return false;};if(browser_type=='msie'){Xgj.unselectable='on';Xgj.onselectstart=function(){return false;};}else{Xgj.style.MozUserSelect='none';}document.body.appendChild(Xgj);return Xgj;}function hide_popups(){
if(Xfd)Xfd.close();track_menu_hide();if(dmk)contextmenu_hide();}function track_menu_hide(){if(Xiw)Xiw.style.visibility='hidden';}function track_menu_show(e,tid,s,coordinates){if(!coordinates)coordinates=Fecc(e);if(e)
bubblepop(e);var Xgj;if(Xiw){Xgj=Xiw;}else{Xiw=Xgj=Xix();}if(Xgj.style.visibility=='visible'&&Xgj.Xiy==tid){track_menu_hide();return;}Xgj.Xiy=tid;deb("track_menu_show at "+coordinates[0]+","+coordinates[1]);var
Xiz=win_size();Xgj.innerHTML=s;if(is_mobile){Xgj.style.top=Xgj.style.left="3px";}else{Xgj.style.right=(Xiz[0]-coordinates[0]+10)+"px";Xgj.style.top=coordinates[1]+"px";}Xgj.style.visibility='visible';}function
track_menu(e,tid){var Xew=Xdh(tid);var Xja=encodeURIComponent(Fi[tid].srccall);var s='<div class="track_menu_item" onclick="top.location.href = \'/info/'+Xew+'\';">info</div>'+
'<div class="track_menu_item" onclick="top.location.href = \'/?c=message&amp;call='+Xja+'\';">messages</div>'+'<div class="track_menu_item" onclick="top.location.href = \'/?c=status&amp;call='+Xja+'\';">status</div>'+
'<div class="track_menu_item" onclick="top.location.href = \'/telemetry/'+Xew+'\';">telemetry</div>'+'<div class="track_menu_item" onclick="top.location.href = \'/weather/'+Xew+'\';">weather</div>'+
'<div class="track_menu_item" onclick="top.location.href = \'/static/'+Xew+'\';">static map</div>'+'<div class="track_menu_item" onclick="top.location.href = \'/?c=raw&amp;call='+Xja+'\';">raw</div>';track_menu_show(e,
tid,s);}function Xjb(){var Xey=[];for(i=0;i<tids.length;i++)if(Fi[tids[i]])Xey.push(Fi[tids[i]].name);el_val('call',follow_name=Xey.join(','));}function Xjc(tid){var Xjd;var Xje=[];var Xjf=[];if(!tids)return;for(i
=0;i<tids.length;i++){if(tids[i]!=tid){Xje.push(tids[i]);Xjf[tids[i]]=1;}else{Xjd=tid;}}if(Xjd){if(!show_others)Xio(Xjd);tids=Xje;Ftk=Xjf;Xhq(Xjd,1);}if(tids.length<1)track_show_all();}function
track_stop(tid){hide_popups();Xgl();Xjc(tid);Xjb();upd_el('status','');del_el('info.'+tid);upd_el('datebrowse','');if(!tids){if(timerange>86400)timerange=3600;Xde(timerange);}Xdd();Xcx();Xir();}function Xjg(tid){
hide_popups();if(!Fi[tid])return-1;if(Ftk[tid])return 0;if(!tids){tids=[tid];Ftk=[];}else{tids.push(tid);}Ftk[tid]=1;show_others=1;Xhq(tid,1);Xjb();if(tids.length==1)Xcx(tid);else Xcx();return 0;}function
track_start(tid){if(Xjg(tid))return;if(!is_mobile)tgt_datebrowse(tids);}function track_sv(tid){if(Xjg(tid))return;Xff(Fi[tid]);if(!is_mobile)tgt_datebrowse(tids);}var Xjh;function Xff(it,Xji){if(!Xji){Xji=Xho(it.tid);
deb("last_point returned "+Xji+" with course "+Xji.course);}svs.getPanoramaByLocation(Xji.latlng,300,function(data,status){Xjj(data,status,Xji);});}function Xjj(data,status,Xji){if(status==gm.StreetViewStatus.OK){
sv.setPano(data.location.pano);if(!isUndefined(Xji.course)){sv.setPov({'heading':Xji.course,'zoom':1,'pitch':0});}else{var Xjk=direction(data.location.latLng,Xji.latlng);sv.setPov({'heading':Xjk,'zoom':1,'pitch':0});}
sv.setVisible(true);}else{upd_el('status','<div class="msg_e">Street View is not available at this location.</div>');}}function track_jump(tid,Xjl){if(!Fi[tid])return;if(Xjl)gmap.setZoom(Xjl);gmap.panTo(new gm.LatLng(Fi[tid].lat,Fi[tid].lng));if(Xca())
Xff(Fi[tid]);}function track_jump_hipop(tid,Xjl){hide_popups();track_jump(tid,Xjl);}function Xjm(Xey){var i=new gm.LatLng(Xey[0][0],Xey[0][1]);var s=new gm.LatLngBounds(i,i);for(i in Xey)s.extend(new gm.LatLng(Xey[i][0],
Xey[i][1]));i=0.003;s.extend(new gm.LatLng(Xey[0][0]+i,Xey[0][1]+i));s.extend(new gm.LatLng(Xey[0][0]-i,Xey[0][1]-i));gmap.fitBounds(s);}var Xcu;function Xir(){var Xjn=gmap.getZoom();Xac=1;if(tids&&!show_others){}else if(Xjn
<=2){upd_el('status','');stopped=1;in_areastats=0;Xgl();Xiq();}else if(Xjn<8){upd_el('status','<div class="msg_i">Showing most active areas within last 24 hours (blue: less activity, red: most activity)</div>');stopped=1;in_areastats=Xjn;Xiq();deb("za xmlreq");if(Xcc())Xct("&za="+
Xjn);}else{Xae=stopped=0;if(in_areastats){in_areastats=0;Xiq();reload_timerange();upd_el('status','');reschedule_next_req(200);}else if(Xjn<Xcu){reload_timerange();}else{var s=gmap.getBounds();if(s)Xcz(s);}}Xcu=
Xjn;}var Xjo;var Xjp;var Xjq;var Xjr=null;function Xjs(){if(navigator.geolocation)nav=navigator.geolocation;}function Xjt(){if(Xjr!==null)return;if(nav)Xjr=nav.watchPosition(Xju,Xjv,{'enableHighAccuracy':1,'maximumAge':
38400,'timeout':10000});else Xjv();}function Xjw(){if(Xjr){nav.clearWatch(Xjr);Xjr=0;}}var Xjx=0;function loc_upl(Xjy){if((Xjy.timestamp==Xjx||Xjy.timestamp-Xjx<35000)&&Xjy.timestamp!=-2)return;var i=Xjy.coords;
if(i.accuracy>1000)return;Xjx=Xjy.timestamp;download_url('/xml2?view=ls&lat='+i.latitude+'&lng='+i.longitude+'&acc='+i.accuracy+'&alt='+i.altitude+'&course='+i.heading+'&speed='+i.speed+((Xjy.timestamp==-2)?
'&man=1':''),function(data,i){if(i==200)execute_xml(data);});}var Xjz;function Xka(){if(Xjz){Xjz=0;if(gmap.getZoom()<13)gmap.setZoom(13);}gmap.panTo(new gm.LatLng(Xjq.coords.latitude,Xjq.coords.longitude));}var Xkb;
function Xju(Xjy){Xjq=Xjy;var i=Xjy.coords;if(Xjo)Xka();if(i.accuracy<30000){var s={'center':new gm.LatLng(i.latitude,i.longitude),'radius':i.accuracy,'fillColor':(i.accuracy<1000)?'#0000ff':'#ff0000','fillOpacity':
0.2,'strokeWeight':0};if(!Xkb){Xkb=new gm.Circle(s);Xkb.setMap(gmap);}else{Xkb.setOptions(s);}}else{if(Xkb){Xkb.setMap(null);Xkb=0;}}if(Xjp)loc_upl(Xjy);}function Xkc(){if(!nav){
alert("Location service not available. Your web browser does not support the Geolocation API.");return 1;}return 0;}function loc_center(i){if(Xkc())return;if(Xjo){Xjo=0;sprite_set('-60px 0px','i_cent_r','i_cent_s');}else if(!Xjo&&!i){Xjo=1;
sprite_set('-60px -20px','i_cent_r','i_cent_s');Xjz=1;if(Xjq)Xka();Xjt();}}function loc_share_reqs(){if(Flr())return;if(!cookie_get('shok')){if(confirm('This will upload your current location to aprs.fi, making it visible to everyone. Are you sure?')==true)
cookie_set('shok',1,365);else return;}return 1;}function loc_share(i){if(Xjp||i){Xjp=0;sprite_set('-80px 0px','i_share_r','i_share_s');}else{if(Xkc())return;if(!loc_share_reqs())return;Xjp=1;
sprite_set('-80px -20px','i_share_r','i_share_s');if(Xjq)loc_upl(Xjq);Xjt();}}function Xjv(i){loc_share(1);loc_center(1);Xjw();var s;if(i){if(i.code==1)s='Permission denied';else if(i.code==2)s=
'Position unavailable';else if(i.code==3)s='Timeout';else s='Unknown error';}else s='Location API unsupported';alert('Your web browser failed to provide your location. ('+s+')');}var Xfd;var Xkd;function Xke(point,str){var Xkf=
'<div class="text" style="margin-top: 6px; max-width: 250px;"><p>'+str+'</p><a href="javascript:fres_del();">Delete</a></div>';Xkd=new gm.Marker({'position':point,'map':gmap,'icon':Xgi('')});var Xkg=function(){
Xfd.setContent(Xkf);Xfd.open(gmap,Xkd);};gm.event.addListener(Xkd,'click',Xkg);Xkg();}function fres_del(){Xfd.close();Xkd.setMap(null);Xkd=null;}function Xkh(Xki,status){var Xkj=[];var s=gm.GeocoderStatus;Xkj[s.OK]=
"Success";Xkj[s.INVALID_REQUEST]="<b>Missing Address</b>: The address was either missing or had no value.";Xkj[s.ZERO_RESULTS]="<b>Unknown Address</b>: No corresponding geographic location could be found for the specified address. Please try specifying the country (\'Turku, Finland\').";Xkj[s.REQUEST_DENIED]="<b>Google Server error: The geocoding request could not be successfully processed.</b>";Xkj[s.OVER_QUERY_LIMIT]="<b>Google: Too Many Queries: The daily geocoding quota for this site has been exceeded.</b>";if(status==s.OK){
Fs('geocoding ok');var Xkk=Xki[0];var Xkl=Xkk.geometry.location;if(!start_z||start_z<0)start_z=11;map_start_label='<b>'+Xkk.formatted_address+'</b><br />'+'Latitude: '+lat_str(Xkl.lat())+'<br />'+
'Longitude: '+lng_str(Xkl.lng());upd_el('status','<div class="msg_s">Found: <b>'+Xkk.formatted_address+'</div>');Yge('init_map','addr_ok');Xkm(Xkl);}else{Fs('geocoding failed');var Xkn;if(Xkj[status])Xkn=Xkj[status];
else Xkn='Geocoder error '+status;upd_el('status','<div class="msg_e">'+Xkn+'</div>');Yge('init_fail','addr_fail');}}function Xko(){Fs('geocoding');upd_el('status','<div class="msg_i">Searching...</div>');gcoder=new
gm.Geocoder();gcoder.geocode({'address':find_addr,'language':'en','region':country},Xkh);}function Xkp(point){upd_el('status','<div class="msg_s">Locator: <b>'+find_locator+'</b></div>');var lat=point.lat();var lng=
point.lng();Xke(point,'Locator: <b>'+find_locator+'</b><br />'+'Latitude: '+lat_str(lat)+'<br />'+'Longitude: '+lng_str(lng));var i=find_locator_info;if(find_locator_info['lat_d_deg']){var s=gm.LatLng;var
Xew=[new s(lat-i['lat_d_deg'],lng-i['lng_d_deg']),new s(lat-i['lat_d_deg'],lng+i['lng_d_deg']),new s(lat+i['lat_d_deg'],lng+i['lng_d_deg']),new s(lat+i['lat_d_deg'],lng-i['lng_d_deg']),new s(lat-i['lat_d_deg'],lng-
i['lng_d_deg'])];var Xib=new gm.Polyline({'path':Xew,'strokeColor':'#ff0000','strokeWeight':line_width});Xib.setMap(gmap);}}var Xkq;function load(){deb("loading, t_now "+t_now);Fs('loading');gm=google.maps;Xaj=new
gm.Size(16,16);Xak=new gm.Size(32,32);Xal=new gm.Point(0,0);Xam=new gm.Point(8,8);Xan=new gm.Point(16,16);if(find_addr){Xko();}else{Yge('init_map','normal');Xkm();}focus('call');}function Xkm(Xkl){if(tz=='guessed')
tzset('local');else tzset('utc');if(!Xde(timerange))reload_timerange();last_expired=t_now;var Xkr=el('emap');if(Xkr)Xf=1;else Xkr=el('map');if(!Xkr){return;}Xjs();if(is_mobile){Xa=0;}if(browser_os=="iphone"){
setTimeout(function(){window.scrollTo(0,1);},500);}if(Xf){if(Xkr.clientWidth<200||Xkr.clientHeight<100){alert("Minimum usable map size is 200x100.\nCurrently: "+Xkr.clientWidth+"x"+Xkr.clientHeight);return;}Xd=
" target='_blank' onclick='link_popup(this); return false'";}Xv=Xfo();{var start_z;if(map_start_z>=0)start_z=map_start_z;else start_z=11;if(Xkl){}else if(map_start_lat&&map_start_lng){Xkl=new gm.LatLng(map_start_lat,
map_start_lng);}else{Xkl=new gm.LatLng(60.188107,24.956638);}if(!start_maptype)start_maptype=gm.MapTypeId.ROADMAP;}var Xks=gm.event.addListener;if(!Xf){sv=new google.maps.StreetViewPanorama((is_mobile)?Xkr:el('sv'),{
'visible':false,'enableCloseButton':true,'addressControl':false});svs=new google.maps.StreetViewService();if(!is_mobile)Xks(sv,'visible_changed',function(){var Xkt=sv.getVisible();if(Xkt==Xkq)return;Xkq=Xkt;
deb("streetview visibility switch: "+Xkt);var Xku=el('sv').style;var Xkv=el('map').style;if(Xkt){Xkv.height='50%';Xku.height='50%';}else{Xkv.height='100%';Xku.height='0%';}google.maps.event.trigger(sv,'resize');
google.maps.event.trigger(gmap,'resize');});}var Xkw=new gm.ImageMapType({'getTileUrl':function(Xkx,Xjl){return "http://tile.openstreetmap.org/"+Xjl+"/"+Xkx.x+"/"+Xkx.y+".png";},'tileSize':new gm.Size(256,256),'isPng':
true,'alt':"Show OpenStreetMap maps",'name':"OSM",'maxZoom':19});var Xky={'zoom':start_z,'center':Xkl,'mapTypeId':start_maptype,'streetViewControl':(!Xf),'scaleControl':(Xkr.clientWidth>=340),'mapTypeControlOptions':{
'mapTypeIds':[gm.MapTypeId.ROADMAP,'osm',gm.MapTypeId.SATELLITE,gm.MapTypeId.HYBRID,gm.MapTypeId.TERRAIN],'style':gm.MapTypeControlStyle.DROPDOWN_MENU}};if(sv)Xky['streetView']=sv;gmap=new gm.Map(Xkr,Xky);if(!gmap){
deb("gmap init failed");return;}gmap.mapTypes.set('osm',Xkw);loaded=1;deb("loaded");if(start_fit)Xjm(start_fit);else if(start_gps)loc_center();if(Xkr.clientWidth<300||Xkr.clientHeight<260||((tids)&&tids.length>1))Xb=0;
Xfd=new gm.InfoWindow({'content':''});if(!is_mobile){if(!Xf)Xks(gmap,'rightclick',function(event){contextmenu(event);});}if(nav)Xks(gmap,'dragstart',function(){loc_center(1);});Xcu=start_z;Xir();Xks(gmap,
'zoom_changed',function(){Xir();});Xks(gmap,'bounds_changed',function(){if(!stopped&&!in_areastats){if((Xaf)&&!Xaf.contains(gmap.getCenter())){reschedule_next_req(500);}}else if(stopped&&in_areastats){if((Xaf)&&
!Xaf.contains(gmap.getCenter())){deb("za xmlreq");Xct("&za="+gmap.getZoom());}}});Xks(gmap,'click',function(){hide_popups();});Xdr=new Textbox(new gm.LatLng(0,0),'','#ffffff',gmap,1,1);if(tids){Ftk=[];for(var i=0;i<
tids.length;i++)Ftk[tids[i]]=1;}if((tids)&&tids.length==1){Xcx(0,follow_name);Xc=tids[0];}else{Xcx();}Xhk();if(find_locator)Xkp(Xkl);if(Xkl&&!isUndefined(map_start_label))Xke(Xkl,map_start_label);if(za_rectangles)
Xgw(za_rectangles);setInterval(Xbs,1000);reschedule_next_req(200);Xkz();if(kml){var Xla=new gm.KmlLayer(kml,{'preserveViewport':true});Xla.setMap(gmap);}ga_timing("init_map end");}function Xcv(){var e=el('mloading');if(e)
e.style.display='none';}function Xlb(s){var element=document.createElement('script');element.src=static_url1+s;document.body.appendChild(element);}function Xkz(){window.SM2_DEFER=true;if(!is_mobile&&!Xf)Xlb(js_paths['sm']);
Xlb(js_paths['deferred']);if(!is_mobile)Xlb(js_paths['deferred_nonmob']);}

// -->

