DWREngine.setErrorHandler(dwrError);
DWREngine.setTimeout(30000);
function dwrError(){}String.prototype.startsWith=function(a){return(this.match("^"+a)==a)
};
Maps=function(){var d=LMI.Mapping;
var b=LMI.Element;
var c=null;
var a=null;
d.Tile.config={defaultTile:"/kartat/lmi/img/pixel_trans.gif",brokenTile:"/kartat/lmi/img/map_unavailable.gif"};
if("OverlayTile" in d){d.OverlayTile.config={brokenTile:"/kartat/lmi/img/pixel_trans.gif"}
}d.TileUrl.config={baseUrl:tileUrl,locale:"fi_FI",suffix:"&c=25dc5c29-8b0a-421f-9bf7-762eddec94dc"};
d.TileManager.config={tileLevels:[5,6,8,10,11,13,14,15,16,17,18],totalLevels:11,minLevel:1,maxLevel:11,copyright:"copyright_kartta".localize()};
if("AerialTileManager" in d){d.AerialTileManager.config={tileUrlOptions:{baseUrl:tileUrlAerial,extension:".jpeg"},copyright:"copyright_ilmakuva".localize()}
}if("HybridTileManager" in d){d.HybridTileManager.config={tileUrlOptions:{baseUrl:tileUrlAerial,extension:".jpeg"},overlayUrlOptions:{baseUrl:tileUrlHybrid},copyright:"copyright_hybrid".localize()}
}if("TopoTileManager" in d){d.TopoTileManager.config={tileUrlOptions:{baseUrl:tileUrlTopo,fallBackUrl:tileUrl,minTopoLevel:14,maxTopoLevel:16},copyright:"copyright_maasto".localize(),tileUrlStrategy:LMI.Mapping.TopoTileUrl}
}return{createInteractiveMap:function(h,f){new Asset.css("/kartat/lmi/css/flyouts.css");
new Asset.css("/kartat/lmi/css/map.css");
var e=null;
if(f!="undefined"&&f!=null){e=f
}else{e=Maps.options
}e.pixelUrl="/kartat/lmi/img/pixel_trans.gif";
e.brokenUrl="/kartat/lmi/img/map_unavailable.gif";
var g=new LMI.Mapping.FIMap("#"+h,e);
if(e.smallControls){g.addControls(LMI.Mapping.Controls.DS_SMALL_CONTROLS)
}else{if((document.getElementById("MapArea").style.width==""&&(Window.getWidth()<300||Window.getHeight()<300))||parseInt(document.getElementById("MapArea").style.width)<300){g.enableDragging()
}else{g.addControls()
}}if(e.tileSwitcher){LMI.Mapping.TileSwitcher.init(g)
}g.bestFit();
g.addEventListener("recenter",function(j,i){c=i
});
g.addEventListener("zoom",function(j,i){c=i
});
c=g
},applyNewSize:function(f,e){var g=c;
document.getElementById("MapArea").style.width=f+"px";
document.getElementById("MapArea").style.height=e+"px";
g.resizeLayers();
c=g
},resizeLayers:function(){var e=c;
e.resizeLayers();
c=e
},removePointsFromMap:function(e){var f=c;
f.removeAll();
if(typeof e!=="undefined"&&e!=null){f.addObject(e)
}c=f
},addEventListener:function(e,f){if(c!=null){var g=c;
g.addEventListener(e,f);
c=g
}},options:{emptyZoom:11,singleZoom:5,defaultLat:65.5,defaultLng:27.5,imageBase:"/kartat/lmi/img/",pixelUrl:"/kartat/lmi/img/pixel_trans.gif",brokenUrl:"/kartat/lmi/img/map_unavailable.gif",enableResize:true,enableOverview:true,mapImageUrl:tileUrl,smallControls:false,tileSwitcher:true,contextMenuItems:[{text:"keskita_tahan".localize(),className:"map_cm_center",onclick:{fn:InteractiveMap.contextCenterHere}},{text:"lahenna".localize(),className:"map_cm_zoomIn",onclick:{fn:InteractiveMap.contextZoomIn}},{text:"loitonna".localize(),className:"map_cm_zoomOut",onclick:{fn:InteractiveMap.contextZoomOut}}]},flyoutContentCreator:function(f){var e=null;
if(typeof f.getProperty("content")==="object"){e=f.getProperty("content")
}else{e=b.create("div",null,{children:[{tag:"p",text:f.getProperty("content")}]});
e.innerHTML=replaceAllNl2Br(e.innerHTML)
}return e
},flyoutStyle:function(h,j){var g=j.map.getOption("imageBase"),e=g+"flyout_box.png";
var i=b.create("div",null,{className:"flyout",id:"LMIMapFlyout",children:[{tag:"img",src:g+"flyout_close.gif",alt:"",className:"flyoutClose",events:{click:function(){j.hideFlyout()
}}},{tag:"div",className:j.type=="business"?"content mapBusiness":"content attraction"},{tag:"div",className:"flyoutCorner flyoutBL",children:[{tag:"img",src:e,alt:""}]},{tag:"div",className:"flyoutCorner flyoutTR",children:[{tag:"img",src:e,alt:""}]},{tag:"div",className:"flyoutCorner flyoutBR",children:[{tag:"img",src:e,alt:""}]},{tag:"img",src:g+"flyout_pointy_corner_tl.png",alt:"",className:"flyoutTL"},{tag:"div",className:"flyoutCap"},{tag:"div",className:"flyoutBoot"}]});
b.getOne("div.content",i).appendChild(h);
return i
},defaultAmbigContent:function(j){var h,e,g,f,i=b.create("div",null,{className:"ambigFlyout"});
b.create("div",i,{textValue:"useita_kohteita".localize(),className:"flyoutName"});
h=b.create("ul",i);
LMI.Lang.forEach([j].concat(j.collisions),function(l,k){if(typeof j.getProperty("content")==="object"&&j.getProperty("title")!=null){g=l.getProperty("title")
}else{g=l.getProperty("content")
}e=b.create("li",h,{className:k===0?"first":""});
f=b.create("a",e,{textValue:g,href:"#"});
YAHOO.util.Event.on(f,"click",function(n){if(l.type=="streetView"){var m=window.open(l.imgUrl,"_blank");
m.focus();
return false
}else{l.showFlyout()
}YAHOO.util.Event.stopEvent(n)
})
});
return i
},tipContentCreator:function(e){return b.create("div",null,{text:e.getProperty("content")})
},tipStyleCreator:function(e,g){var f=b.create("div",null,{style:"background-color: #fff;border:1px solid #ccc"});
f.appendChild(e);
return f
},addLocsWithFlyoutsToMap:function(q,h,p){var g=c;
Maps.IconWithFlyout.flyoutFactory.addContentCreator("ambig",Maps.defaultAmbigContent);
Maps.IconWithFlyout.flyoutFactory.addContentCreator("default",Maps.flyoutContentCreator);
Maps.IconWithFlyout.flyoutFactory.addStyle("default",Maps.flyoutStyle,{xOffset:-10,yOffset:-8,zOffset:5});
if(h){Maps.IconWithFlyout.flyoutFactory.addContentCreator("tip",Maps.tipContentCreator);
Maps.IconWithFlyout.flyoutFactory.addStyle("tip",Maps.tipStyleCreator,{xOffset:0,yOffset:0})
}var f=new Array();
for(var n=0;
n<q.length;
++n){var m=q[n];
var t=null;
var s="default";
if(typeof m.type!=="undefined"&&m.type!=null){s=m.type
}if(m.content==null||m.content.length==0){t=new Maps.Icon(new d.Point(m.lat,m.lon),s,m.number,m.useLabels)
}else{var u=m.imageUrl!=undefined?m.imageUrl:null;
t=new Maps.IconWithFlyout(new d.Point(m.lat,m.lon),s,m.number,m.useLabels,u);
if(typeof m.title!=="undefined"&&m.title!=null){t.setProperty("title",m.title)
}t.setProperty("content",m.content)
}if($defined(m.companyId)){t.companyId=m.companyId
}if(typeof m.events!=="undefined"&&m.events!=null){for(var k in m.events){t.addEventListener(k,m.events[k])
}}if(h){t.addEventListener("mouseover",function(l,v){var i=v.getActiveFlyout(v);
if(!i){v.showFlyout("tip","tip")
}});
t.addEventListener("mouseout",function(l,v){var i=v.getActiveFlyout(v);
if(i&&i.type==="tip"){v.hideFlyout()
}})
}try{var j=g.addObject(t);
f.push(j)
}catch(r){}}if(p===true||typeof p==="undefined"){g.bestFit()
}c=g;
return f
},addLocsWithFlyoutsAndTipsToMap:function(e){Maps.addLocsWithFlyoutsToMap(e,true)
},getMapObject:function(){if(typeof c==="undefined"){return null
}return c
},addRouteImage:function(j,f,e,i){var h=c;
var g=new Maps.RouteHilite(j,f,e,i);
a=h.addObject(g);
c=h;
return g
},removeRouteImage:function(){if(a!=null){var e=c;
e.removeObject(a);
c=e
}},getZoomLevel:function(){var e=c;
return e.zoomLevel
},getScaledZoomLevel:function(){var e=c;
return e.tileManager.getScaledZoomLevel(e.zoomLevel)
},getWidth:function(){var e=c;
return e.viewport.offsetWidth
},zoomToCenter:function(f,g,h){var e=c;
e.centerAndZoom(new LMI.Mapping.Point(f,g),h)
},getIconFromMap:function(e){var f=c;
if(f.objects!=null){return f.objects.getByIndex(e)
}else{return null
}},switchTileSet:function(f){try{var h=c;
if(h.options!=null&&h.options.tileSwitcher){alert(LMI.Mapping.TileSwitcher.init(h))
}}catch(g){alert(g)
}}}
}();
Maps.Icon=(function(){var d={"default":"/karttahaku/static/gfx/ico/map_icon_blank2.png",star:"/karttahaku/static/gfx/ico/map_icon_star.png",etuovi:"/kartat/kuvat/etuovi_pun.png",greenstar:"/kartat/kuvat/map_icon_star_green.png",info:"/kartat/kuvat/map_icon_traffic.png",parking:"/kartat/kuvat/map_icon_parking.png",inoa:"/kartat/kuvat/kyltti_inoa.gif",gray:"/kartat/kuvat/kyltti_gray.gif",finder:"/kartat/kuvat/kyltti_finder.gif","1":"/kartat/kuvat/neula_1_plus_vihrea.png",A:"/kartat/lmi/img/nodes/red/map_icon_a.gif",B:"/kartat/lmi/img/nodes/red/map_icon_b.gif",bluecircle:"/kartat/kuvat/sininen_pallukka.png",routeTurnMarker:"/karttahaku/static/gfx/ico/ico_directionPoint.png",streetView:"/karttahaku/static/images/map_icon_streetView.png",attraction:"/karttahaku/static/images/map_icon_attraction.png",companyVideo:"/karttahaku/static/images/map_icon_companyVideos.png",virtualsc:"/karttahaku/static/images/map_icon_virtualSC.png",business:"/karttahaku/static/gfx/ico/icobusiness.png",ravintola:"/karttahaku/static/images/map_icon_foodrestaurants.png",alko:"/karttahaku/static/images/map_icon_alcohol.png",pankkiautomaatti:"/karttahaku/static/images/map_icon_atm.png",huoltoasema:"/karttahaku/static/images/map_icon_gas.png",rautatieasema:"/karttahaku/static/images/map_icon_railway.png",hotelli:"/karttahaku/static/images/map_icon_hotel.png",along_route:"/karttahaku/static/gfx/ico/mapsearch2.png",trafficdis:"/karttahaku/static/images/map_icon_trafficDis.png",trafficcensus:"/karttahaku/static/images/map_icon_trafficCensus.png",traveltime:"/karttahaku/static/images/map_icon_travelTime.png",roadweather:"/karttahaku/static/images/map_icon_roadWeather.png",weathercam:"/karttahaku/static/images/map_icon_weatherCam.png",autoliike:"/karttahaku/static/images/autoliike.png",home:"/karttahaku/static/images/map_home.png",kindergarten:"/karttahaku/static/images/map_kindergarten.png",other:"/karttahaku/static/images/map_other.png",school:"/karttahaku/static/images/map_school.png",work:"/karttahaku/static/images/map_work.png",etuovi_aa:"/karttahaku/static/images/etuovi/ala_aste.png",etuovi_aa_rk:"/karttahaku/static/images/etuovi/ala_aste_rk.png",etuovi_ak:"/karttahaku/static/images/etuovi/ammattikoulu.png",etuovi_kp:"/karttahaku/static/images/etuovi/koirapuisto.png",etuovi_lkp:"/karttahaku/static/images/etuovi/liikuntapaikka.png",etuovi_l:"/karttahaku/static/images/etuovi/lukio.png",etuovi_l_rk:"/karttahaku/static/images/etuovi/lukio_rk.png",etuovi_nla:"/karttahaku/static/images/etuovi/neuvola.png",etuovi_pk:"/karttahaku/static/images/etuovi/paivakoti.png",etuovi_py:"/karttahaku/static/images/etuovi/pysakki.png",etuovi_s:"/karttahaku/static/images/etuovi/sairaala.png",etuovi_th:"/karttahaku/static/images/etuovi/terveydenhoitaja.png",etuovi_va:"/karttahaku/static/images/etuovi/viheralue.png",etuovi_ya:"/karttahaku/static/images/etuovi/yla_aste.png",etuovi_ya_rk:"/karttahaku/static/images/etuovi/yla_aste_rk.png"};
var e=24;
var b=28;
var g=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"];
function c(h,j,k,l){if(typeof d[j]==="undefined"&&typeof g[j]==="undefined"){j="default"
}if(typeof k!=="undefined"&&k!=null){this.number=k
}else{this.number=""
}if(typeof l!=="undefined"&&l!=null&&l){this.useNumberLabels=true
}else{this.useNumberLabels=false
}if(typeof g[j]==="undefined"){this.pinniSrc=d[j]
}else{this.pinniSrc=d["default"]
}this.init(h,j)
}LMI.Lang.extend(c,LMI.Mapping.MapObject);
var f=c.prototype,i=c.superclass;
f.init=function(p,n){try{var k=18;
var j=24;
if(typeof g[n]!=="undefined"||n=="star"){k=10;
j=25;
e=27;
b=20
}else{if(n=="inoa"||n=="finder"||n=="gray"){k=8;
j=24;
e=24;
b=17
}else{if(n=="etuovi"){k=15;
j=42;
e=44;
b=30
}else{if((n+"").startsWith("etuovi_")){k=16;
j=41;
e=41;
b=33
}else{if(parseInt(n)<4){k=14;
j=42;
e=44;
b=22
}else{if(n==4){k=7;
j=22;
e=22;
b=14
}else{if(parseInt(n)>=10){k=22;
j=54;
e=56;
b=45
}else{if(n=="A"){k=18;
j=23;
e=24;
b=18
}else{if(n=="B"){k=18;
j=23;
e=24;
b=18
}else{if(n=="bluecircle"){k=9;
j=9;
e=18;
b=18
}else{if(n=="routeTurnMarker"){k=13;
j=13;
e=32;
b=31
}else{if(n=="autoliike"){k=22;
j=43;
e=43;
b=43
}else{if(n=="home"||n=="kindergarten"||n=="other"||n=="school"||n=="work"){k=19;
j=40;
e=40;
b=38
}}}}}}}}}}}}}var q=null;
if(this.number!=null&&this.useNumberLabels){q=[{tag:"p",textValue:this.number!=null?this.number:"",style:"border:1px solid black; background-color:white; font-size:11px; font-weight:bold; color:black; margin:0 -5px 0 0; padding:0; position:absolute; bottom:0px; right:0px;"}]
}else{if(this.pinniSrc==d["default"]&&n!="default"){q=[{tag:"p",textValue:g[n],style:"text-align:center; font-size:12px; font-weight:bold; color:white; margin:0; padding:5px 0px 0px 8px; position: absolute; top:1px; left:0px; text-transform:uppercase;"}]
}else{q=[{tag:"p",textValue:this.number!=null?this.number:"",style:"font-size:11px; font-weight:bold; color:white; margin:0; padding:3px 0px 0px "+(this.number!=null&&this.number<10?"7px":"3px")+"; position: absolute; top:2px; left:0px;"}]
}}var r=this.getRecommendedIconSrc();
if(typeof theme!="undefined"){if(theme.indexOf("nokia")>-1){if(r=="/karttahaku/static/gfx/ico/map_icon_blank2.png"){r="/karttahaku/static/nokia/static/gfx/ico/map_icon_blank_blue.png"
}if(n=="business"){r="/karttahaku/static/nokia/static/gfx/ico/mapsearch2.png"
}}}var h=LMI.Element.create("div",null,{children:q,style:"text-align: center;"});
h.id=n+"ja"+this.number;
var l=LMI.Element.create("img");
this.image=l;
h.appendChild(l);
YAHOO.util.Event.on(l,"error",a,this,true);
i.init.call(this,p,h);
this.setIconSrc(r);
this.setXOffset(k);
this.setYOffset(j);
if(n=="streetView"){this.bindEvent("mouseover",this,function(s){streetviewTooltip.setStyle("top",$(this.image).getPosition().y-parseInt(streetviewTooltip.getStyle("height"))-5);
streetviewTooltip.setStyle("left",$(this.image).getPosition().x+25);
streetviewTooltip.setStyle("display","block")
});
this.bindEvent("mouseout",this,function(s){streetviewTooltip.setStyle("display","none")
})
}this.bindEvent("mouseover",this,this.toggleHilite);
this.bindEvent("mouseout",this,this.toggleHilite);
this.hiliteElement=LMI.Element.create("img",null,{src:"/kartat/kuvat/halo.png",style:"position: absolute",className:"halo"})
}catch(m){}};
f.showHilite=function(){if(!this.hiliteShown){this.hiliteShown=true;
this.element.parentNode.appendChild(this.hiliteElement);
this.hiliteElement.style.left=parseInt(this.element.style.left,10)-12+"px";
this.hiliteElement.style.top=parseInt(this.element.style.top,10)-12+"px";
this.hiliteElement.style.zIndex=this.z;
this.setZIndex(this.z+1)
}};
f.hideHilite=function(){if(this.hiliteShown){this.hiliteShown=false;
this.hiliteElement.parentNode.removeChild(this.hiliteElement);
this.setZIndex(this.z)
}};
f.toggleHilite=function(h){if(h.type==="mouseover"){this.showHilite()
}else{this.hideHilite()
}};
f.setZIndex=function(h){this.element.style.zIndex=h
};
f.remove=function(){i.remove.apply(this,arguments);
this.hideHilite()
};
f.update=function(){i.update.apply(this,arguments);
if(this.hiliteShown){this.hideHilite();
this.showHilite()
}};
f.getIconSrc=function(){return LMI.Element.getImageSrc(this.image)
};
f.setIconSrc=function(h){LMI.Element.setImageSrc(this.image,h)
};
f.getRecommendedIconSrc=function(){return this.pinniSrc
};
f.getHeight=function(){return e
};
f.getWidth=function(){return b
};
f.getDefaultIcon=function(){return"/kartat/lmi/img/nodes/red/map_icon_blank.png"
};
function a(j){try{var h=this.image,l=this.getDefaultIcon();
if(LMI.Element.getImageSrc(h).match(l)){h.alt="X"
}else{LMI.Element.setImageSrc(h,l)
}}catch(k){}}return c
})();
Maps.IconWithFlyout=(function(){var a={"default":"/karttahaku/static/gfx/ico/map_icon_blank2.png",star:"/karttahaku/static/gfx/ico/map_icon_star.png",etuovi:"/kartat/kuvat/etuovi_pun.png",greenstar:"/kartat/kuvat/map_icon_star_green.png",info:"/kartat/kuvat/map_icon_traffic.png",parking:"/kartat/kuvat/map_icon_parking.png",inoa:"/kartat/kuvat/kyltti_inoa.gif",gray:"/kartat/kuvat/kyltti_gray.gif",finder:"/kartat/kuvat/kyltti_finder.gif","1":"/kartat/kuvat/neula_1_plus_vihrea.png",A:"/kartat/lmi/img/nodes/red/map_icon_a.gif",B:"/kartat/lmi/img/nodes/red/map_icon_b.gif",bluecircle:"/kartat/kuvat/sininen_pallukka.png",routeTurnMarker:"/karttahaku/static/gfx/ico/ico_directionPoint.png",streetView:"/karttahaku/static/images/map_icon_streetView.png",attraction:"/karttahaku/static/images/map_icon_attraction.png",companyVideo:"/karttahaku/static/images/map_icon_companyVideos.png",virtualsc:"/karttahaku/static/images/map_icon_virtualSC.png",business:"/karttahaku/static/gfx/ico/icobusiness.png",ravintola:"/karttahaku/static/images/map_icon_foodrestaurants.png",alko:"/karttahaku/static/images/map_icon_alcohol.png",pankkiautomaatti:"/karttahaku/static/images/map_icon_atm.png",huoltoasema:"/karttahaku/static/images/map_icon_gas.png",rautatieasema:"/karttahaku/static/images/map_icon_railway.png",hotelli:"/karttahaku/static/images/map_icon_hotel.png",along_route:"/karttahaku/static/gfx/ico/mapsearch2.png",trafficdis:"/karttahaku/static/images/map_icon_trafficDis.png",trafficcensus:"/karttahaku/static/images/map_icon_trafficCensus.png",traveltime:"/karttahaku/static/images/map_icon_travelTime.png",roadweather:"/karttahaku/static/images/map_icon_roadWeather.png",weathercam:"/karttahaku/static/images/map_icon_weatherCam.png",autoliike:"/karttahaku/static/images/autoliike.png",home:"/karttahaku/static/images/map_home.png",kindergarten:"/karttahaku/static/images/map_kindergarten.png",other:"/karttahaku/static/images/map_other.png",school:"/karttahaku/static/images/map_school.png",work:"/karttahaku/static/images/map_work.png",etuovi_aa:"/karttahaku/static/images/etuovi/ala_aste.png",etuovi_aa_rk:"/karttahaku/static/images/etuovi/ala_aste_rk.png",etuovi_ak:"/karttahaku/static/images/etuovi/ammattikoulu.png",etuovi_kp:"/karttahaku/static/images/etuovi/koirapuisto.png",etuovi_lkp:"/karttahaku/static/images/etuovi/liikuntapaikka.png",etuovi_l:"/karttahaku/static/images/etuovi/lukio.png",etuovi_l_rk:"/karttahaku/static/images/etuovi/lukio_rk.png",etuovi_nla:"/karttahaku/static/images/etuovi/neuvola.png",etuovi_pk:"/karttahaku/static/images/etuovi/paivakoti.png",etuovi_py:"/karttahaku/static/images/etuovi/pysakki.png",etuovi_s:"/karttahaku/static/images/etuovi/sairaala.png",etuovi_th:"/karttahaku/static/images/etuovi/terveydenhoitaja.png",etuovi_va:"/karttahaku/static/images/etuovi/viheralue.png",etuovi_ya:"/karttahaku/static/images/etuovi/yla_aste.png",etuovi_ya_rk:"/karttahaku/static/images/etuovi/yla_aste_rk.png"};
var c=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"];
var e=new DSMapObject_Collection();
function d(h,j,k,l,i){if(typeof a[j]==="undefined"&&typeof c[j]==="undefined"){j="default"
}if(typeof k!=="undefined"){this.number=k
}else{this.number=null
}if(typeof l!=="undefined"&&l!=null&&l){this.useNumberLabels=true
}else{this.useNumberLabels=false
}if(typeof c[j]==="undefined"){this.pinniSrc=a[j]
}else{this.pinniSrc=a["default"]
}if(j=="business"){if(typeof theme!="undefined"){if(theme.indexOf("nokia")>-1){pinni="/karttahaku/static/nokia/static/gfx/ico/mapsearch2.png";
this.pinniSrc=pinni
}}}this.imgUrl=i;
this.init(h,j)
}LMI.Lang.extend(d,Maps.Icon);
var b=d.prototype,g=d.superclass;
function f(k,j,s,l){var w=k.element,u=j.element,q=k.getWidth()/2,m=j.getWidth()/2,r=k.getHeight()/2,p=j.getHeight()/2,i=parseInt(w.style.left,10)+q,x=parseInt(w.style.top,10)+r,h=parseInt(u.style.left,10)+m,v=parseInt(u.style.top,10)+p,t=(q+m)-Math.abs(h-i),n=(r+p)-Math.abs(v-x);
if(!s){s=0
}if(!l){l=0
}return(t>s&&n>l)
}b.init=function(h,i){this.flyouts={};
g.init.call(this,h,i);
this.initEvents("mouseup");
this.bindEvent("mouseup",this,this.iconClick);
this.type=i;
var j=this;
if($("SearchFormDiv")!=null&&c[i]!=undefined){$(this.element).addEvent("mousedown",function(n){var p=new Event(n);
p.stop();
var m=$(p.target);
var l=new Element("div",{styles:{position:"absolute",top:m.getPosition().y,left:m.getPosition().x,"z-index":0,background:"url(/karttahaku/static/gfx/ico/map_icon_blank2.png) top left no-repeat",width:"20px",height:"27px",padding:"2px 0",color:"white","font-weight":"bold"}});
if(i==0){l.id="startpointdraggableimg";
l.set("text","A")
}else{if(i==(viaPoints!=null?viaPoints.length:0)+1){l.id="endpointdraggableimg";
l.set("text",c[viaPoints!=null?viaPoints.length+1:1].toUpperCase())
}else{l.id="via"+(i-1)+"pointdraggableimg";
l.set("text",c[viaPoints!=null?viaPoints.length:1].toUpperCase())
}}document.body.appendChild(l);
var k=new Drag.Move(l,{onStart:function(){Maps.getMapObject().removeObject(j);
l.setStyle("z-index","9999999");
if(!Browser.Engine.trident){l.setOpacity(1)
}currentPointDraggingStarted=true
},onComplete:function(){l.setOpacity(1);
haePiste(l.id)
}});
k.start(n)
})
}};
b.addEventListener=function(h,j){var i;
switch(h){case"click":case"mouseup":YAHOO.util.Dom.setStyle(this.element,"cursor","pointer");
case"mouseout":case"mouseover":if(this.getListeners(h).length===0){i=this;
YAHOO.util.Event.on(this.element,h,function(k){i.triggerEvent(h,k,i)
})
}break
}return this._addEventListener(h,j)
};
b.update=function(){if(!this.shownOnMap){this._id=e.add(this)
}g.update.apply(this,arguments)
};
b.remove=function(){this.hideFlyout();
this.flyouts={};
if(this.shownOnMap){e.remove(this._id)
}g.remove.apply(this,arguments)
};
b.scrollMapToFlyout=function(k){var i=0,p=0,h=this.map.mapLayer,j=this.map.viewport,n=parseInt(k.element.style.left,10)+parseInt(h.style.left,10),l=parseInt(k.element.style.top,10)+parseInt(h.style.top,10);
if(n-this.getLeftBuffer()<0){i=n-this.getLeftBuffer()
}else{if(n+k.element.offsetWidth+this.getRightBuffer()>j.offsetWidth){i=k.element.offsetWidth-j.offsetWidth+n+this.getRightBuffer();
if(n-i<0){i=n-this.getLeftBuffer()
}}}if(l-this.getTopBuffer()<0){p=l-this.getTopBuffer()
}else{if(l+k.element.offsetHeight+this.getBottomBuffer()>j.offsetHeight){p=k.element.offsetHeight-j.offsetHeight+l+this.getBottomBuffer();
if(l-p<0){p=l-this.getTopBuffer()
}}}if(i!==0||p!==0){this.map.slideBy(-i,-p)
}};
b.getBottomBuffer=function(){return 30
};
b.getTopBuffer=function(){return 30
};
b.getLeftBuffer=function(){return 30
};
b.getRightBuffer=function(){return 30
};
b.findCollisions=function(){this.collisions=[];
for(var h=new DSMapObject_Iterator(e);
h.hasNext();
){o=h.next();
if(o!==this&&f(this,o,(o.getWidth()/3),(o.getHeight()/3))){this.collisions.push(o)
}}};
b.iconClick=function(h){if(typeof viaPoints!=="undefined"){var i;
if(this.type==0){i="startpointdraggableimg"
}else{if(this.type==(viaPoints!=null?viaPoints.length:0)+1){i="endpointdraggableimg"
}else{i="via"+this.type+"pointdraggableimg"
}}while($(i)!=null){$(i).getParent().removeChild($(i))
}}if(this.getActiveFlyout()){this.hideFlyout()
}else{this.findCollisions();
if(this.collisions.length){this.showFlyout("ambig")
}else{this.showFlyout("default")
}}};
b.showFlyout=function(i,h){if(typeof doUpdatePOIs!=="undefined"){doUpdatePOIs=false
}if((this.type=="streetView"||this.type=="virtualsc")&&i!=="ambig"){if(this.imgUrl==undefined||this.imgUrl==null){return
}var k=window.open(this.imgUrl,"_blank");
k.focus()
}else{var j;
i=i||"default";
d.hideFlyouts();
this.setZIndex(this.z+1);
j=this.flyouts[i]={type:i,id:null,flyout:this.getFlyoutFactory().getFlyout(this.point,this,i,h)};
j.id=this.map.addObject(j.flyout);
this.scrollMapToFlyout(j.flyout);
if($defined(this.companyId)){trackEventFlyout(this.companyId)
}}this.showHilite()
};
b.hideFlyout=function(){var h=this.getActiveFlyout();
if(h){this.map.removeObject(h.id);
h.id=null
}this.setZIndex(this.z);
this.hideHilite()
};
b.getActiveFlyout=function(){var j,h;
for(h in this.flyouts){if(this.flyouts.hasOwnProperty(h)){j=this.flyouts[h];
if(typeof j==="object"&&j.id){return j
}}}return null
};
d.getActiveFlyouts=function(){var j,h=[],i=new DSMapObject_Iterator(e);
while(i.hasNext()){j=i.next().getActiveFlyout();
if(j){h.push(j)
}}return h
};
d.hideFlyouts=function(){var h=new DSMapObject_Iterator(e);
while(h.hasNext()){h.next().hideFlyout()
}};
d.flyoutFactory=new LMI.Mapping.FlyoutFactory();
b.getFlyoutFactory=function(){return d.flyoutFactory
};
return d
})();
Maps.RouteHilite=(function(){var e=LMI.Element;
function c(){this.style.display="block";
this.style.height="auto";
this.style.width="auto"
}function d(f){return function(g){if(g.url){f.setLineUrl(g.url);
f.setVisibleArea(g.visibleRouteArea);
f.map.positionObject(f)
}}
}function b(i,g,f,h){this.init(i,g,f,h)
}YAHOO.lang.extend(b,LMI.Mapping.MapObject,{init:function(j,g,f,i){this.shapePoints=j;
this.routeArea=f;
this.routeRect=null;
this.setVisibleArea(i);
this.boundingBox={upper:new LMI.Mapping.Point(f[3],f[2]),lower:new LMI.Mapping.Point(f[1],f[0])};
this.timeout=null;
var h;
if(g){h=e.create("img",null,{events:{load:c}});
b.superclass.init.call(this,this.point,h);
this.setZOffset(-1);
this.setLineUrl(g);
this.url=g
}else{h=e.create("div",null);
b.superclass.init.call(this,this.point,h,0,0,-1)
}},setVisibleArea:function(f){this.visibleArea=f;
this.setPoint(new LMI.Mapping.Point(f[3],f[0]));
this.visibleRect=null
},setLineUrl:function(g){var h,f,i=YAHOO.env.ua.ie;
this.url=g;
if(i&&i<7){h=this.element;
f=g.split("?",2);
e.setAlphaImageLoader(h,f[0]+"?"+f[1].replace(/%/g,"%25"))
}else{this.element.src=g
}},updateHandler:function(l,k){var r,n,q,h,f,j,i,g,p;
if(l.eventType==="zoom"&&l.previousZoomLevel!==k.zoomLevel){this.routeRect=null;
this.doUpdateLine(k)
}else{if(l.eventType=="recenter"){f=k.tileManager.getGrid();
r=f.toXY(k.getULPoint());
q=f.toXY(k.getLRPoint());
j=new a(r.y,r.x,q.y,q.x);
if(!this.routeRect){n=f.toXY(this.boundingBox.upper);
h=f.toXY(this.boundingBox.lower);
this.routeRect=new a(n.y,h.x,h.y,n.x)
}if(!this.visibleRect){this.visibleRect=this.calculateRect(this.visibleArea)
}i=j.intersection(this.routeRect);
g=j.intersection(this.visibleRect);
p=i.intersection(g);
if(!i.equals(p)){this.doUpdateLine(k)
}}}},doUpdateLine:function(f){if(this.timeout){window.clearTimeout(this.timeout)
}var g=this;
this.timeout=window.setTimeout(function(){g.timeout=null;
g.element.style.display="none";
var j=f.getURPoint(),i=f.getLLPoint(),h=[i.lng,i.lat,j.lng,j.lat];
MapRemote.getRouteImageUrl(g.shapePoints,g.routeArea,h,Maps.getScaledZoomLevel(),d(g))
},250)
},calculateRect:function(i){var h=this.map.tileManager.getGrid(),f=h.toXY(new LMI.Mapping.Point(i[0],i[3])),g=h.toXY(new LMI.Mapping.Point(i[2],i[1]));
return new a(f.y,f.x,g.y,g.x)
},update:function(){b.superclass.add.apply(this,arguments);
this.visibleRect=null;
this.routeRect=null
},add:function(){b.superclass.add.apply(this,arguments);
var f=this;
this.updateFunc=function(h,g){f.updateHandler(h,g)
};
this.map.addEventListener("zoom",this.updateFunc);
this.map.addEventListener("recenter",this.updateFunc)
},remove:function(){this.map.removeEventListener("zoom",this.updateFunc);
this.map.removeEventListener("recenter",this.updateFunc);
b.superclass.remove.apply(this,arguments)
}});
function a(i,h,f,g){this.top=i;
this.left=h;
this.bottom=f;
this.right=g
}a.prototype.intersection=function(k,h){var g=Math.max(this.left,k.left);
var j=Math.max(this.top,k.top);
var f=Math.min(this.right,k.right);
var i=Math.min(this.bottom,k.bottom);
if(!h){h=new a()
}h.top=j;
h.left=g;
h.bottom=i;
h.right=f;
return h
};
a.prototype.equals=function(f){return this.left==f.left&&this.top==f.top&&this.right==f.right&&this.bottom==f.bottom
};
return b
})();
function storeLocation(){var d=Maps.getMapObject();
if(d!=null){var b=d.getCenterPoint();
var c=d.getLLPoint();
var a=d.getURPoint();
MapRemote.storeLocation(c.lat,c.lng,a.lat,a.lng,b.lng,b.lat,d.zoomLevel)
}}function sendLocation(c){var e=Maps.getMapObject();
var b=e.getCenterPoint();
var d=e.getLLPoint();
var a=e.getURPoint();
MapRemote.sendLocation(c,d.lat,d.lng,a.lat,a.lng,b.lng,b.lat)
}function replaceAllNl2Br(b){if(b!=null){var a=b.indexOf("\n");
while(a>-1){b=b.replace("\n","<br />");
a=b.indexOf("\n")
}}return b!=null?b:""
};
