var map;var centreat="";var mapwidth=550;var mapheight=550;var mapzoom=12;var cdist=20;var domain=document.domain;var deflat=-47.93106;var deflong=111.5332;var avgLat=0;var avgLong=0;var container, containerId="map";var zoomLevel;var OFFSET=268435456;var RADIUS=85445659.4471;var markerImagePath="../images/marker-images/";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}if(properties.markerImagePath){markerImagePath=properties.markerImagePath}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(a){var h=props;var c=new google.maps.MarkerImage(markerImagePath+"/roundpin-image.png",new google.maps.Size(20,34),new google.maps.Point(0,0),new google.maps.Point(10,34));var j=new google.maps.MarkerImage(markerImagePath+"/roundpin-shadow.png",new google.maps.Size(40,34),new google.maps.Point(0,0),new google.maps.Point(10,34));var g={coord:[15,0,17,1,18,2,18,3,19,4,19,5,19,6,19,7,19,8,19,9,18,10,18,11,17,12,16,13,13,14,15,15,11,16,11,17,11,18,10,19,10,20,10,21,10,22,10,23,9,24,9,25,9,26,9,27,9,28,8,29,8,30,8,31,8,32,8,33,5,33,6,32,6,31,6,30,6,29,6,28,7,27,7,26,7,25,7,24,7,23,8,22,8,21,8,20,8,19,9,18,9,17,9,16,9,15,10,14,8,13,4,12,6,11,6,10,5,9,5,8,5,7,5,6,5,5,5,4,6,3,7,2,7,1,9,0,15,0],type:"poly"};for(var f=0;f<h.length;f++){var e=getLatLng(h[f].latitude,h[f].longitude,h[f].address);if(e==""){continue}var b=h[f].mapHead;var d=new google.maps.Marker({icon:c,shadow:j,shape:g,position:e,title:b,oldtitle:b,id:f});attachInfo(a,d,h[f]);mapMarkers[f]=d}}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();if(c){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};
