var map;var centreat="";var mapwidth=550;var mapheight=550;var mapzoom=12;var cdist=20;var domain=document.domain;var deflat=-33.83209212904;var deflong=151.184994183803;var avgLat=0;var avgLong=0;var containerId="map";var zoomLevel;var OFFSET=268435456;var RADIUS=85445659.4471;var clustered=[];var mapMarkers=[];var theseMarkers=[];var props;$(document).ready(function(){if(properties&&properties.property){if(properties.centreat){centreat=properties.centreat}if(properties.width){mapwidth=parseInt(properties.width)}if(properties.height){mapheight=parseInt(properties.width)}if(properties.zoom){mapzoom=parseInt(properties.zoom)}if(properties.domain){domain=properties.domain}container=document.getElementById(containerId);props=properties.property;initialize();$("#map").show()}});function initialize(){container.style.width=mapwidth+"px";container.style.height=mapheight+"px";var a={zoom:mapzoom,center:new google.maps.LatLng(deflat,deflong),mapTypeId:google.maps.MapTypeId.ROADMAP};map=new google.maps.Map(container,a);google.maps.event.addListener(map,"bounds_changed",function(){function b(){google.maps.event.trigger(map,"moveend")}clearTimeout(this.timeout);this.timeout=setTimeout(b,200)});google.maps.event.addListener(map,"moveend",function(){setTimeout("showMarkers()",250)});if(centreat){centreIt(map,centreat)}setAllMarkers(map)}function setAllMarkers(f){var a=props;for(var d=0;d<a.length;d++){var e=getLatLng(a[d].latitude,a[d].longitude,a[d].address);if(e==""){continue}var c=a[d].mapHead;var b=new google.maps.Marker({position:e,title:c,oldtitle:c,id:d});attachInfo(f,b,a[d]);mapMarkers[d]=b}}function showMarkers(){var a=map.getZoom();cluster(map,a)}function getLatLng(e,d,f){myLatLng="";if(e.length==0||d.length==0){if(f.length>0){myLatLng=codeAddress(f)}}else{myLatLng=new google.maps.LatLng(e,d)}return myLatLng}function attachInfo(c,a,e){var d=buildInfo(e);var b=new google.maps.InfoWindow({content:buildInfo(e)});google.maps.event.addListener(a,"click",function(){b.open(c,a)})}function codeAddress(a){geocoder=new google.maps.Geocoder();if(geocoder){geocoder.geocode({address:a},function(c,b){if(b==google.maps.GeocoderStatus.OK){myLatLng=c[0].geometry.location}else{myLatLng=""}})}return myLatLng}function centreIt(b,a){geocoder=new google.maps.Geocoder();geocoder.geocode({address:a},function(d,c){centerMap(b,d[0].geometry.location)})}function centerMap(b,a){if(a!=null){b.setCenter(a)}else{b.setCenter(new google.maps.LatLng(deflat,deflong))}}function buildInfo(a){var b="";b+="<h2>";b+='<a style="text-decoration:none;" href=\'http://'+domain+a.friendlyURL+"' target='_blank'>"+a.mapHead+"</a>";b+="</h2>";if(a.image.length>0){b+="<img style='border: 1px solid #000; float:left; margin-bottom: 10px;' src='http://"+domain+a.image+"' width='120' height='76' />"}b+="<p style='float:left; padding-left:6px; margin-bottom: 10px; margin-top: -4px; width: 114px;'>";b+="<span style='font-size:11px; line-height: 15px; display: block; padding-top: 2px;'>"+a.address.replace("+","<br />").replace(/\+/g," ").replace(" AU","")+"</span>";b+="<span style='display: block;font-size:11px;line-height: 15px;'><a href='http://"+domain+a.friendlyURL+"' target='_blank'>Book Now...</a></span>";b+="</p>";b+="<br style='display:block;clear:both;height:1px;' />";return b}function addToAvgLatLng(a,b){if(avgLat==0){avgLat=a}else{avgLat=(parseFloat(avgLat)+parseFloat(a))/2}if(avgLong==0){avgLong=b}else{avgLong=(parseFloat(avgLong)+parseFloat(b))/2}}function cluster(a,k){var h=a.getBounds();var b=mapMarkers.slice();while(b.length>0){var c=b.pop();var d=false;var g=[];var j=c.id;mapMarkers[j].setTitle(mapMarkers[j].oldtitle);if(!h.contains(c.position)){mapMarkers[j].setMap(null);continue}for(i=0;i<=b.length;i++){if(!b[i]){continue}if(nearAnother(c.position.lat(),c.position.lng(),b[i].position.lat(),b[i].position.lng(),k)){d=true;g.push(i)}}if(d){for(x=0;x<g.length;x++){if(!b[g[x]]){continue}var e=b[g[x]].id;mapMarkers[e].setTitle(mapMarkers[e].oldtitle);mapMarkers[e].setMap(null);b.splice(g[x],1)}mapMarkers[j].setTitle(mapMarkers[j].title+" - Zoom in to see other options in this area")}mapMarkers[j].setMap(a)}}function nearAnother(g,c,e,b,a){var f=getHaversine(g,c,e,b);switch(a){case 0:return(f<3379.2)?true:false;break;case 1:return(f<1689.6)?true:false;break;case 2:return(f<844.8)?true:false;break;case 3:return(f<422.4)?true:false;break;case 4:return(f<211.2)?true:false;break;case 5:return(f<105.6)?true:false;break;case 6:return(f<52.8)?true:false;break;case 7:return(f<26.4)?true:false;break;case 8:return(f<13.2)?true:false;break;case 9:return(f<6.6)?true:false;break;case 10:return(f<3.8)?true:false;break;case 11:return(f<2.2)?true:false;break;case 12:return(f<1)?true:false;break;case 13:return(f<0.2)?true:false;break;case 14:return(f<0.05)?true:false;break;case 15:return(f<0.02)?true:false;break;case 16:return(f<0.01)?true:false;break;case 17:return(f<0.02)?true:false;break;case 18:return(f<0.01)?true:false;break;case 19:return(f<0.01)?true:false;break}}function getHaversine(f,j,e,h){var g=6371;var l=(e-f).toRad();var b=(h-j).toRad();var n=Math.sin(l/2)*Math.sin(l/2)+Math.cos(f.toRad())*Math.cos(e.toRad())*Math.sin(b/2)*Math.sin(b/2);var m=2*Math.atan2(Math.sqrt(n),Math.sqrt(1-n));var k=g*m;return k}Number.prototype.toRad=function(){return this*Math.PI/180};