if(typeof Hos=="undefined"){Hos={};}Hos.MaxiMap={MAP_CANVAS_ID:"map_canvas",map:null,startingpoint:"",count:0,data:{center:{lat:0,lng:0},freeTypeLocation:{lat:0,lng:0},minZoom:3,maxZoom:14,zoom:6,clusterMarkers:{},singleMarkers:{},siteData:{},airportsAndPorts:[],proximitySearch:false},overlays:[],airportsAndPortsOn:false,mapLoad:function(){if(GBrowserIsCompatible()){Hos.MaxiMap.localSearch=new GlocalSearch();Hos.MaxiMap.map=new GMap2(document.getElementById(this.MAP_CANVAS_ID));GEvent.addListener(Hos.MaxiMap.map,"load",Hos.MaxiMap.addLoadingReport);Hos.MaxiMap.map.addControl(new GMapTypeControl());Hos.MaxiMap.map.addControl(new GLargeMapControl());Hos.MaxiMap.map.addControl(new GScaleControl());G_PHYSICAL_MAP.getMinimumResolution=function(){return Hos.MaxiMap.data.minZoom;};G_NORMAL_MAP.getMinimumResolution=function(){return Hos.MaxiMap.data.minZoom;};G_SATELLITE_MAP.getMinimumResolution=function(){return Hos.MaxiMap.data.minZoom;};G_HYBRID_MAP.getMinimumResolution=function(){return Hos.MaxiMap.data.minZoom;};G_PHYSICAL_MAP.getMaximumResolution=function(){return Hos.MaxiMap.data.maxZoom;};G_NORMAL_MAP.getMaximumResolution=function(){return Hos.MaxiMap.data.maxZoom;};G_SATELLITE_MAP.getMaximumResolution=function(){return Hos.MaxiMap.data.maxZoom;};G_HYBRID_MAP.getMaximumResolution=function(){return Hos.MaxiMap.data.maxZoom;};Hos.MaxiMap.PlotPointOnMap();scrollTo(0,180);}GEvent.addListener(Hos.MaxiMap.map,"zoomend",Hos.MaxiMap.mapOnZoomEnd);GEvent.addListener(Hos.MaxiMap.map,"dragend",Hos.MaxiMap.mapOnDragEnd);},addLoadingReport:function(){var a="Loading Map...";var b=document.createElement("div");b.appendChild(document.createTextNode(a));b.setAttribute("id","mapLoading");b.style.position="relative";b.style.padding="2em";b.style.fontWeight="bold";b.style.fontSize="12px";b.style.color="#333";this.getContainer().insertBefore(b,this.getContainer().firstChild);},PlotPointOnMap:function(){Hos.MaxiMap.startingpoint=new GLatLng(Hos.MaxiMap.data.center.lat,Hos.MaxiMap.data.center.lng);Hos.MaxiMap.map.setCenter(Hos.MaxiMap.startingpoint,parseInt(Hos.MaxiMap.data.zoom));if(Hos.MaxiMap.data.proximitySearch){Hos.MaxiMap.map.addOverlay(new GMarker(new GLatLng(Hos.MaxiMap.data.freeTypeLocation.lat,Hos.MaxiMap.data.freeTypeLocation.lng),Hos.MaxiMap.GetCentreIcon()));}Hos.MaxiMap.CallSuccess();},setmapcenter:function(){Hos.MaxiMap.map.setCenter(Hos.MaxiMap.startingpoint,parseInt(Hos.MaxiMap.zoom));},GetIcon:function(){var a=new GIcon();a.image="../../Images/EUVilla/GoogleMapIcons/Complex.png";a.iconAnchor=new GPoint(24,15);a.infoWindowAnchor=new GPoint(16,0);a.iconSize=new GSize(49,31);return a;},GetClusterIcon:function(b){if(b>15){b=15;}var a=new GIcon();a.image="../../Images/EUVilla/GoogleMapIcons/ComplexCluster"+b+".png";a.iconAnchor=new GPoint(29,15);a.infoWindowAnchor=new GPoint(16,0);a.iconSize=new GSize(58,30);return a;},GetCentreIcon:function(){var a=new GIcon();a.image="../../Images/EUVilla/GoogleMapIcons/CenterMarker.png";a.iconAnchor=new GPoint(16,16);a.infoWindowAnchor=new GPoint(16,0);a.iconSize=new GSize(54,44);return a;},createMarkerClickHandler:function(a){var b=a.introText+"...";return function(){try{if(!a.marker.overlayOn){Hos.MaxiMap.map.addOverlay(a.marker);a.marker.overlayOn=true;Hos.MaxiMap.map.setCenter(a.marker.getLatLng(),Hos.MaxiMap.viewOnMapZoom);}a.marker.openInfoWindowHtml('<table id="balloon">            <tr>              <td>                <a id="balloonTitle" href="ProductDetailPage.aspx?ISDLNK=1&amp;SCODE='+a.siteCode+"&ACODE="+a.accommodationCode+'&TID=villaComplex                  ">'+a.name+'</a>                <br/>                <span class="SleepLbl">Sleeps: </span><span class="SleepText">'+a.sleepText+"</span><br/>                "+(a.price?'<span class="PriceLbl">Price from: </span><span class="PriceText">'+a.price+"</span>":"")+'                <p id="introText">'+a.introText+'</p>              </td>              <td>                <a href="ProductDetailPage.aspx?ISDLNK=1&amp;SCODE='+a.siteCode+"&ACODE="+a.accommodationCode+'&TID=villaComplex                   "><img id="searchResultImage" src="'+a.image+'"></a>              </td>            </tr>            <tr >              <td>                <div id="viewComplex">                  <a href="ProductDetailPage.aspx?ISDLNK=1&amp;SCODE='+a.siteCode+"&ACODE="+a.accommodationCode+'&TID=villaComplex">Read more>></a>                </div>              </td>            </tr>          </table>');}catch(c){}return false;};},createClusterMarkerClickHandler:function(a){return function(){Hos.MaxiMap.map.setCenter(a.getLatLng());Hos.MaxiMap.map.zoomIn();return false;};},mapOnZoomEnd:function(b,a){Hos.MaxiMap.zoom=a;Hos.MaxiMap.drawOverlays();},mapOnDragEnd:function(){Hos.MaxiMap.drawOverlays();},CallSuccess:function(){var c=0;for(i in Hos.MaxiMap.data.siteData){var b=Hos.MaxiMap.data.siteData[i];Hos.MaxiMap.data.siteData[i].marker=Hos.MaxiMap.createMarker(parseFloat(b.lat),parseFloat(b.lng));var d=Hos.MaxiMap.createMarkerClickHandler(Hos.MaxiMap.data.siteData[i]);GEvent.addListener(Hos.MaxiMap.data.siteData[i].marker,"click",d);Hos.MaxiMap.data.siteData[i].clickHandler=d;c++;}Hos.MaxiMap.count=c;for(i in Hos.MaxiMap.data.clusterMarkers){for(var a=0;a<Hos.MaxiMap.data.clusterMarkers[i].length;a++){Hos.MaxiMap.data.clusterMarkers[i][a].marker=Hos.MaxiMap.createClusterMarker(Hos.MaxiMap.data.clusterMarkers[i][a].lat,Hos.MaxiMap.data.clusterMarkers[i][a].lng,Hos.MaxiMap.data.clusterMarkers[i][a].count);}}if(Hos.MaxiMap.data.airportsAndPorts){Hos.MaxiMap.plotAirportsAndPorts(Hos.MaxiMap.data.airportsAndPorts);}Hos.MaxiMap.drawOverlays();},drawOverlays:function(){try{var l=0;var a=0;var d=Hos.MaxiMap.map.getBounds();var b=d.getSouthWest();var c=d.getNorthEast();var m=Hos.MaxiMap.map.getZoom();if(Hos.MaxiMap.airportsAndPortsOn&&m<5){Hos.MaxiMap.airportsAndPortsOn=false;for(var e=0;e<Hos.MaxiMap.data.airportsAndPorts.length;e++){Hos.MaxiMap.map.removeOverlay(Hos.MaxiMap.data.airportsAndPorts[e].marker);}}if(!Hos.MaxiMap.airportsAndPortsOn&&m>4){Hos.MaxiMap.airportsAndPortsOn=true;for(var e=0;e<Hos.MaxiMap.data.airportsAndPorts.length;e++){Hos.MaxiMap.map.addOverlay(Hos.MaxiMap.data.airportsAndPorts[e].marker);}}for(var e=0;e<Hos.MaxiMap.overlays.length;e++){Hos.MaxiMap.overlays[e].overlayOn=false;Hos.MaxiMap.map.removeOverlay(Hos.MaxiMap.overlays[e]);}Hos.MaxiMap.overlays=[];var f=Hos.MaxiMap.data.clusterMarkers[m];var j=Hos.MaxiMap.data.singleMarkers[m];var h={};for(var e=0;e<j.length;e++){if(Hos.MaxiMap.data.siteData[j[e]]){h=Hos.MaxiMap.data.siteData[j[e]];if(h.lng>b.lng()&&h.lng<c.lng()&&h.lat>b.lat()&&h.lat<c.lat()){Hos.MaxiMap.drawSingleOverlay(h);}}}for(var e=0;e<f.length;e++){clusterMarkerData=f[e];if(clusterMarkerData.lng>b.lng()&&clusterMarkerData.lng<c.lng()&&clusterMarkerData.lat>b.lat()&&clusterMarkerData.lat<c.lat()){Hos.MaxiMap.drawClusterMarker(clusterMarkerData);}}}catch(g){}},drawSingleOverlay:function(a){Hos.MaxiMap.map.addOverlay(a.marker);a.marker.overlayOn=true;Hos.MaxiMap.overlays.push(a.marker);},drawClusterMarker:function(a){Hos.MaxiMap.map.addOverlay(a.marker);a.marker.overlayOn=true;Hos.MaxiMap.overlays.push(a.marker);},createClusterMarker:function(f,c,e){var a=new GLatLng(f,c);var b=new GMarker(a,Hos.MaxiMap.GetClusterIcon(e));var d=Hos.MaxiMap.createClusterMarkerClickHandler(b);GEvent.addListener(b,"click",d);return b;},createMarker:function(c,b){var a=new GLatLng(c,b);return new GMarker(a,Hos.MaxiMap.GetIcon());},viewOnMapClick:function(a){try{Hos.MaxiMap.data.siteData[a].clickHandler();}catch(b){}},plotAirportsAndPorts:function(d){var f=new GIcon(G_DEFAULT_ICON);f.shadow="http://www.google.com/mapfiles/shadow50.png";f.iconSize=new GSize(24,24);f.shadowSize=new GSize(37,24);f.iconAnchor=new GPoint(12,12);f.infoWindowAnchor=new GPoint(9,2);for(var c=0;c<d.length;c++){var e=new GIcon(f);e.image=d[c].type=="airport"?"../../Images/EUVilla/GoogleMapIcons/airportIcon.png":"../../Images/EUVilla/GoogleMapIcons/ferryIcon.png";var b=new GMarker(new GLatLng(d[c].lat,d[c].lng),e);GEvent.addListener(b,"click",a(b,d[c]));d[c].marker=b;}function a(g,h){return function(){g.openInfoWindowHtml('<table id="balloon">            <tr>              <td>                <h3>'+h.name+(h.code?" ("+h.code+")":"")+"</h3>              </td>            </tr>          </table>");};}}};
