function log(A){}function ReallyLocationService(){}ReallyLocationService.prototype=new ReallyService({methods:[{name:"getLocations",serviceURL:"/jsonrpc/location/provider",parameters:[{name:"siteID",type:"string"}]},{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:"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.language=B.language;this.center=B.center;this.locationsUrl=B.locationsUrl;this.siteID=B.siteID;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._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.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,maxZoom:17,trackMarkers:false};this._mgr=new MarkerManager(this._map,D);var A=this;this._service.getLocations(this.siteID,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,width:440})})},E[G].locationID));A._markers.push(F)}A._mgr.addMarkers(A._markers,7,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.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.setQuery=function(L){if(L.city&&L.city!=""){var O=this;this._service.getCityLocationBounds(this.siteID,L.city,function(S){var Q=new GLatLng(S.swLat,S.swLon);var T=new GLatLng(S.neLat,S.neLon);var R=O._map.getBoundsZoomLevel(new GLatLngBounds(Q,T));var P=new GLatLng(S.centerLat,S.centerLon);O._map.setCenter(P,R)})}if(L.address&&L.address!=""){var O=this;var M=L.address;this._geocoder.getLocations(M,function(R){if(!R||R.Status.code!=200){alert("Osoitetta ei löytynyt.");O._fireEvent("onunknownlocation",M);return }var Q=R.Placemark[0];var P=new GLatLng(Q.Point.coordinates[1],Q.Point.coordinates[0]);O._map.setCenter(P,13);O._map.openInfoWindowHtml(P,"Osoite: <br />"+Q.address+"<br/>");O._fireEvent("onshowlocation",Q)})}if(L.minsize==""){L.minsize=0}else{L.minsize=parseInt(L.minsize);if(isNaN(L.minsize)){L.minsize=0}}if(L.maxsize==""){L.maxsize=1000000}else{L.maxsize=parseInt(L.maxsize);if(isNaN(L.maxsize)){L.maxsize=1000000}}if(L.types==0){L.types=4294967295}if(L.tradetypes==0){L.tradetypes=4294967295}var K=L.minsize;var G=L.maxsize;var C=L.types;var H=L.tradetypes;for(var J=0,F=this._markers.length;J<F;J++){var I=this._markers[J];var D=((((I.minsize>=K)&&(I.minsize<=G))||((I.maxsize>=K)&&(I.maxsize<=G))||((K>=I.minsize)&&(K<=I.maxsize)))&&((I.types&C)!=0)&&((I.tradetypes&H)!=0));if(D){D=false;var A=I.items.length;for(var E=0;E<A;E++){var N=I.items[E];var B=((((N.minsize>=K)&&(N.minsize<=G))||((N.maxsize>=K)&&(N.maxsize<=G))||((K>=N.minsize)&&(K<=N.maxsize)))&&((N.types&C)!=0)&&((N.tradetypes&H)!=0));if(B){D=true;break}}}if(D!=I.visibility){if(D){this._mgr.addMarker(I,7,17)}else{this._mgr.removeMarker(I)}I.visibility=D}}this._query=L};ReallyLocations.getMap=function(A){if(!ReallyLocations._maps[A]){return(false)}return(ReallyLocations._maps[A])};ReallyLocations._maps={};