function log(a){}function ReallyLocationService(){}ReallyLocationService.prototype=new ReallyService({methods:[{name:"getLocations",serviceURL:"/jsonrpc/location/provider",parameters:[{name:"siteID",type:"string"},{name:"queryParams",type:"object",optional:"true"}]},{name:"getLocationInfo",serviceURL:"/jsonrpc/location/provider",parameters:[{name:"locationID",type:"any"},{name:"query",type:"array"}]},{name:"getCityLocationBounds",serviceURL:"/jsonrpc/location/provider",parameters:[{name:"siteID",type:"string"},{name:"city",type:"string"},{name:"citypart",type:"string"}]},{name:"addMemoItem",serviceURL:"/jsonrpc/location/provider",parameters:[{name:"itemID",type:"any"},{name:"itemType",type:"string"}]},{name:"removeMemoItem",serviceURL:"/jsonrpc/location/provider",parameters:[{name:"itemID",type:"any"},{name:"itemType",type:"string"}]},{name:"clearMemoRows",serviceURL:"/jsonrpc/location/provider"}]});ReallyLocations=function(b){this.mapElement=b.mapElement;this.mapOptions=b.mapOptions?b.mapOptions:{};this.styleOptions=b.styleOptions?b.styleOptions:{};this.language=b.language;this.center=b.center;this.locationsUrl=b.locationsUrl;this.siteID=b.siteID;this.queryParams=b.queryParams;this.icons={};this._isLoaded=false;if(b.icons){for(k in b.icons){var a=b.icons[k];var c=new GIcon();c.image=a.iconUrl;c.iconSize=new GSize(a.iconWidth,a.iconHeight);c.shadow=a.shadowUrl;c.shadowSize=new GSize(a.shadowWidth,a.shadowHeight);c.iconAnchor=new GPoint(a.iconAnchorX,a.iconAnchorY);c.infoWindowAnchor=new GPoint(a.infoAnchorX,a.infoAnchorY);this.icons[k]=c}}this.init()};ReallyLocations.prototype={};ReallyLocations.prototype._query={minsize:0,maxsize:1000000,types:4294967295,tradetypes:4294967295};ReallyLocations.prototype._markerShowLevel=7;ReallyLocations.prototype._markers=new Array();ReallyLocations.prototype.init=function(){ReallyLocations._maps[this.mapElement]=this;var b=document.getElementById(this.mapElement);this._map=new GMap2(b,this.mapOptions);this._map.styleOptions=this.styleOptions;this._map.addControl(new ReallyZoomControl());this._map.addControl(new ReallyMapTypeControl());this._map.enableDoubleClickZoom();var c=new GLatLng(this.center.lat,this.center.lon);this._map.setCenter(c,this.center.zoom);this._geocoder=new GClientGeocoder();this._geocoder.setBaseCountryCode("fi");this._service=new ReallyLocationService();var d={borderPadding:50,trackMarkers:false};this._mgr=new MarkerManager(this._map,d);var a=this;this._service.getLocations(this.siteID,this.queryParams,function(e){log("Locations: ",e);for(var g=0;g<e.length;g++){var f=a._createMarker(e[g]);GEvent.addListener(f,"click",GEvent.callbackArgs(f,function(i){var h=this;a._service.getLocationInfo(i,a._query,function(j){h.openExtInfoWindow(a._map,"locationWindow",j,{borderSize:12,beakOffset:-2,paddingX:5,paddingY:5})})},e[g].locationID));a._markers.push(f)}a._mgr.addMarkers(a._markers,a._markerShowLevel,17);a._mgr.refresh();a._isLoaded=true;a._fireEvent("onload")})};ReallyLocations.prototype._fireEvent=function(a,b){GEvent.trigger(this,a,b)};ReallyLocations.prototype.addOnLoad=function(b,a){return(this.addListener("onload",b,a))};ReallyLocations.prototype.addListener=function(c,b,a){var d;if(!a){if(!b){return}d=b}else{d=GEvent.callback(b,a)}if((c=="onload")&&this._isLoaded){d()}return(GEvent.addListener(this,c,d))};ReallyLocations.prototype._createMarker=function(d){var a=new GLatLng(d.lat,d.lon);var c={};if(d.icon&&this.icons[d.icon]){c.icon=this.icons[d.icon]}var b=new GMarker(a,c);b.locationID=d.locationID;b.city=d.city;b.citypart=d.citypart;b.minsize=d.minsize;b.maxsize=d.maxsize;b.types=d.types;b.tradetypes=d.tradetypes;b.items=d.items;b.visibility=true;return(b)};ReallyLocations.prototype.centerToCity=function(c,b){if(!c){return}b=b||"";var a=this;this._service.getCityLocationBounds(this.siteID,c,b,function(g){var e=new GLatLng(g.swLat,g.swLon);var h=new GLatLng(g.neLat,g.neLon);var f=a._map.getBoundsZoomLevel(new GLatLngBounds(e,h));if(f>16){f=16}var d=new GLatLng(g.centerLat,g.centerLon);a._map.setCenter(d,f)})};ReallyLocations.prototype.setQuery=function(q){if(q.city&&q.city!=""){var o="";if(q.citypart){o=q.citypart}this.centerToCity(q.city,o)}if(q.address&&q.address!=""){var t=this;var r=q.address;this._geocoder.getLocations(r,function(n){if(!n||n.Status.code!=200){alert("Osoitetta ei löytynyt.");t._fireEvent("onunknownlocation",r);return}var l=n.Placemark[0];var i=new GLatLng(l.Point.coordinates[1],l.Point.coordinates[0]);t._map.setCenter(i,13);t._map.openInfoWindowHtml(i,"Osoite: <br />"+l.address+"<br/>");t._fireEvent("onshowlocation",l)})}if(q.minsize==""){q.minsize=0}else{q.minsize=parseInt(q.minsize);if(isNaN(q.minsize)){q.minsize=0}}if(q.maxsize==""){q.maxsize=1000000}else{q.maxsize=parseInt(q.maxsize);if(isNaN(q.maxsize)){q.maxsize=1000000}}if(q.types==0){q.types=4294967295}if(q.tradetypes==0){q.tradetypes=4294967295}var p=q.minsize;var g=q.maxsize;var c=q.types;var h=q.tradetypes;for(var m=0,f=this._markers.length;m<f;m++){var j=this._markers[m];if(0===j.maxsize){j.maxsize=j.minsize}var d=((((j.minsize>=p)&&(j.minsize<=g))||((j.maxsize>=p)&&(j.maxsize<=g))||((p>=j.minsize)&&(p<=j.maxsize)))&&((j.types&c)!=0)&&((j.tradetypes&h)!=0));if((q.city&&j.city!=q.city)||(q.citypart&&q.citypart!=j.citypart)){d=false}if(d){d=false;var a=j.items.length;for(var e=0;e<a;e++){var s=j.items[e];var b=((((s.minsize>=p)&&(s.minsize<=g))||((s.maxsize>=p)&&(s.maxsize<=g))||((p>=s.minsize)&&(p<=s.maxsize)))&&((s.types&c)!=0)&&((s.tradetypes&h)!=0));if(b){d=true;break}}}if(d!=j.visibility){if(d){this._mgr.addMarker(j,this._markerShowLevel,17)}else{this._mgr.removeMarker(j)}j.visibility=d}}this._query=q};ReallyLocations.getMap=function(a){if(!ReallyLocations._maps[a]){return(false)}return(ReallyLocations._maps[a])};ReallyLocations._maps={};function log(a){}function ReallyLocationService(){}ReallyLocationService.prototype=new ReallyService({methods:[{name:"getLocations",serviceURL:"/jsonrpc/location/provider",parameters:[{name:"siteID",type:"string"},{name:"queryParams",type:"object",optional:"true"}]},{name:"getLocationInfo",serviceURL:"/jsonrpc/location/provider",parameters:[{name:"locationID",type:"any"},{name:"query",type:"array"}]},{name:"getCityLocationBounds",serviceURL:"/jsonrpc/location/provider",parameters:[{name:"siteID",type:"string"},{name:"city",type:"string"},{name:"citypart",type:"string"}]},{name:"addMemoItem",serviceURL:"/jsonrpc/location/provider",parameters:[{name:"itemID",type:"any"},{name:"itemType",type:"string"}]},{name:"removeMemoItem",serviceURL:"/jsonrpc/location/provider",parameters:[{name:"itemID",type:"any"},{name:"itemType",type:"string"}]},{name:"clearMemoRows",serviceURL:"/jsonrpc/location/provider"}]});ReallyLocations=function(b){this.mapElement=b.mapElement;this.mapOptions=b.mapOptions?b.mapOptions:{};this.styleOptions=b.styleOptions?b.styleOptions:{};this.language=b.language;this.center=b.center;this.locationsUrl=b.locationsUrl;this.siteID=b.siteID;this.queryParams=b.queryParams;this.icons={};this._isLoaded=false;if(b.icons){for(k in b.icons){var a=b.icons[k];var c=new GIcon();c.image=a.iconUrl;c.iconSize=new GSize(a.iconWidth,a.iconHeight);c.shadow=a.shadowUrl;c.shadowSize=new GSize(a.shadowWidth,a.shadowHeight);c.iconAnchor=new GPoint(a.iconAnchorX,a.iconAnchorY);c.infoWindowAnchor=new GPoint(a.infoAnchorX,a.infoAnchorY);this.icons[k]=c}}this.init()};ReallyLocations.prototype={};ReallyLocations.prototype._query={minsize:0,maxsize:1000000,types:4294967295,tradetypes:4294967295};ReallyLocations.prototype._markerShowLevel=7;ReallyLocations.prototype._markers=new Array();ReallyLocations.prototype.init=function(){ReallyLocations._maps[this.mapElement]=this;var b=document.getElementById(this.mapElement);this._map=new GMap2(b,this.mapOptions);this._map.styleOptions=this.styleOptions;this._map.addControl(new ReallyZoomControl());this._map.addControl(new ReallyMapTypeControl());this._map.enableDoubleClickZoom();var c=new GLatLng(this.center.lat,this.center.lon);this._map.setCenter(c,this.center.zoom);this._geocoder=new GClientGeocoder();this._geocoder.setBaseCountryCode("fi");this._service=new ReallyLocationService();var d={borderPadding:50,trackMarkers:false};this._mgr=new MarkerManager(this._map,d);var a=this;this._service.getLocations(this.siteID,this.queryParams,function(e){log("Locations: ",e);for(var g=0;g<e.length;g++){var f=a._createMarker(e[g]);GEvent.addListener(f,"click",GEvent.callbackArgs(f,function(i){var h=this;a._service.getLocationInfo(i,a._query,function(j){h.openExtInfoWindow(a._map,"locationWindow",j,{borderSize:12,beakOffset:-2,paddingX:5,paddingY:5})})},e[g].locationID));a._markers.push(f)}a._mgr.addMarkers(a._markers,a._markerShowLevel,17);a._mgr.refresh();a._isLoaded=true;a._fireEvent("onload")})};ReallyLocations.prototype._fireEvent=function(a,b){GEvent.trigger(this,a,b)};ReallyLocations.prototype.addOnLoad=function(b,a){return(this.addListener("onload",b,a))};ReallyLocations.prototype.addListener=function(c,b,a){var d;if(!a){if(!b){return}d=b}else{d=GEvent.callback(b,a)}if((c=="onload")&&this._isLoaded){d()}return(GEvent.addListener(this,c,d))};ReallyLocations.prototype._createMarker=function(d){var a=new GLatLng(d.lat,d.lon);var c={};if(d.icon&&this.icons[d.icon]){c.icon=this.icons[d.icon]}var b=new GMarker(a,c);b.locationID=d.locationID;b.city=d.city;b.citypart=d.citypart;b.minsize=d.minsize;b.maxsize=d.maxsize;b.types=d.types;b.tradetypes=d.tradetypes;b.items=d.items;b.visibility=true;return(b)};ReallyLocations.prototype.centerToCity=function(c,b){if(!c){return}b=b||"";var a=this;this._service.getCityLocationBounds(this.siteID,c,b,function(g){var e=new GLatLng(g.swLat,g.swLon);var h=new GLatLng(g.neLat,g.neLon);var f=a._map.getBoundsZoomLevel(new GLatLngBounds(e,h));if(f>16){f=16}var d=new GLatLng(g.centerLat,g.centerLon);a._map.setCenter(d,f)})};ReallyLocations.prototype.setQuery=function(q){if(q.city&&q.city!=""){var o="";if(q.citypart){o=q.citypart}this.centerToCity(q.city,o)}if(q.address&&q.address!=""){var t=this;var r=q.address;this._geocoder.getLocations(r,function(n){if(!n||n.Status.code!=200){alert("Osoitetta ei löytynyt.");t._fireEvent("onunknownlocation",r);return}var l=n.Placemark[0];var i=new GLatLng(l.Point.coordinates[1],l.Point.coordinates[0]);t._map.setCenter(i,13);t._map.openInfoWindowHtml(i,"Osoite: <br />"+l.address+"<br/>");t._fireEvent("onshowlocation",l)})}if(q.minsize==""){q.minsize=0}else{q.minsize=parseInt(q.minsize);if(isNaN(q.minsize)){q.minsize=0}}if(q.maxsize==""){q.maxsize=1000000}else{q.maxsize=parseInt(q.maxsize);if(isNaN(q.maxsize)){q.maxsize=1000000}}if(q.types==0){q.types=4294967295}if(q.tradetypes==0){q.tradetypes=4294967295}var p=q.minsize;var g=q.maxsize;var c=q.types;var h=q.tradetypes;for(var m=0,f=this._markers.length;m<f;m++){var j=this._markers[m];if(0===j.maxsize){j.maxsize=j.minsize}var d=((((j.minsize>=p)&&(j.minsize<=g))||((j.maxsize>=p)&&(j.maxsize<=g))||((p>=j.minsize)&&(p<=j.maxsize)))&&((j.types&c)!=0)&&((j.tradetypes&h)!=0));if((q.city&&j.city!=q.city)||(q.citypart&&q.citypart!=j.citypart)){d=false}if(d){d=false;var a=j.items.length;for(var e=0;e<a;e++){var s=j.items[e];var b=((((s.minsize>=p)&&(s.minsize<=g))||((s.maxsize>=p)&&(s.maxsize<=g))||((p>=s.minsize)&&(p<=s.maxsize)))&&((s.types&c)!=0)&&((s.tradetypes&h)!=0));if(b){d=true;break}}}if(d!=j.visibility){if(d){this._mgr.addMarker(j,this._markerShowLevel,17)}else{this._mgr.removeMarker(j)}j.visibility=d}}this._query=q};ReallyLocations.getMap=function(a){if(!ReallyLocations._maps[a]){return(false)}return(ReallyLocations._maps[a])};ReallyLocations._maps={};
