var currentLocation=null;
var gBusinessName=null;
var gFromBusinessName=null;
var gmarkerStart;
var gmarkerEnd;
var myGmarkerStart;
var myGmarkerEnd;
var currentListingDivId=null;
var geoCodeToAddress=null;
var region=null;
function setRegion(A){region=A
}function myGload(){if(GBrowserIsCompatible()){gdir=new GDirections(map);
GEvent.addListener(gdir,"load",onGDirectionsLoad);
GEvent.addListener(map,"addoverlay",onGMapOverlayAdd);
if(typeof (searchLocation)=="undefined"||searchLocation==null||searchLocation==""){if(typeof (region)=="undefined"||region==null||region==""){setToAustraliaCenter()
}else{geoCoder.getLocations(region+" , Australia",function A(B){if(B&&B.Status.code==200){var C=new GLatLng(B.Placemark[0].Point.coordinates[1],B.Placemark[0].Point.coordinates[0]);
map.setCenter(C,10)
}else{setToAustraliaCenter()
}})
}}}}function getDirections(D,C,B,A){$("#getLocation").hide();
trackSearchArea("/maps.do!mapDirection");
if(B){$("#startaddressDir").val(D.replace(/%27/g,"'"))
}if(A){$("#endaddressDir").val(C.replace(/%27/g,"'"))
}if(C==""&&D==""){showErrors("Please enter both 'Start' and 'End' address.")
}else{if(D==""){showErrors("Please enter the 'Start' address.")
}else{if(C==""){showErrors("Please enter the 'End' address.")
}else{geoCodeToAddress=A;
checkDirectionFromAddress(D,C,B,A)
}}}}function checkDirectionFromAddress(E,D,C,B){if(C){geoCoder.getLocations(E+" , Australia",function A(G){map.clearOverlays();
hideErrors();
if(G&&G.Status.code==200){tmpLocationFrom=G;
if(G.Placemark.length>1){didYouMean(G,false,true,E,D,C,B)
}else{var F=G.Placemark[0].Point.coordinates[1]+","+G.Placemark[0].Point.coordinates[0];
dFromTxt=G.Placemark[0].address;
dFromLL=F;
checkDirectionsToAddress(F,D,false,B)
}}else{showErrors('"Start address" could not be found. Please try again.')
}})
}else{dFromLL=E;
checkDirectionsToAddress(E,D,C,B)
}}function checkDirectionsToAddress(E,D,C,B){if(B){geoCoder.getLocations(D+" , Australia",function A(G){map.clearOverlays();
hideErrors();
if(G&&G.Status.code==200){tmpLocationTo=G;
if(G.Placemark.length>1){didYouMean(G,false,false,E,D,C,B)
}else{var F=G.Placemark[0].Point.coordinates[1]+","+G.Placemark[0].Point.coordinates[0];
dToTxt=G.Placemark[0].address;
dToLL=F;
gdir.load(E+" to "+F,{getSteps:true});
$("#print-direction").show()
}}else{showErrors('"End address" could not be found. Please try again.')
}})
}else{dToLL=D;
gdir.load(E+" to "+D,{getSteps:true});
$("#print-direction").show()
}}function onGDirectionsLoad(){map.clearOverlays();
if(myGmarkerStart){map.removeOverlay(myGmarkerStart)
}if(myGmarkerEnd){map.removeOverlay(myGmarkerEnd)
}hideErrors();
hideDidYouMean();
showDirections();
var D=gdir.getRoute(0);
gmarkerStart=gdir.getMarker(0);
gmarkerEnd=gdir.getMarker(1);
var B=gdir.getGeocode(0);
var F=gdir.getGeocode(gdir.getNumGeocodes()-1);
var A=isEmpty(dFromTxt)?B.address:dFromTxt;
var J=isEmpty(dToTxt)?F.address:dToTxt;
if(gBusinessName!=null){if(gFromBusinessName){A=gBusinessName+"<br />"+$("#startaddressDir").val()
}else{if(!gFromBusinessName){J=gBusinessName+"<br />"+$("#endaddressDir").val()
}}gBusinessName=null
}if(!geoCodeToAddress){J=$("#endaddressDir").val();
dToTxt=J
}var H=$("#getDirections");
H.html("");
var E=document.createElement("div");
E.className="dirFrom";
E.innerHTML=A.replace(/%27/g,"'");
H.append(E);
var K=document.createElement("div");
K.className="dirTotal";
K.innerHTML=gdir.getDistance().html+" (about "+gdir.getDuration().html+")";
H.append(K);
for(var G=0;
G<D.getNumSteps();
G++){var C=D.getStep(G);
H.append(createStep(G+1,C.getDescriptionHtml(),C.getDistance().html))
}var E=document.createElement("div");
E.className="dirTo";
E.innerHTML=J.replace(/%27/g,"'");
H.append(E);
var I=getMarkerIcon("G",false);
var L=getMarkerIcon("R",false);
myGmarkerStart=createGMarker(gmarkerStart.getPoint(),null,I);
myGmarkerEnd=createGMarker(gmarkerEnd.getPoint(),null,L);
GEvent.addListener(myGmarkerStart,"click",function(){map.showMapBlowup(myGmarkerStart.getPoint())
});
GEvent.addListener(myGmarkerEnd,"click",function(){map.showMapBlowup(myGmarkerEnd.getPoint())
});
map.addOverlay(myGmarkerStart);
map.addOverlay(myGmarkerEnd)
}function onGMapOverlayAdd(){if(gmarkerStart){map.removeOverlay(gmarkerStart)
}if(gmarkerEnd){map.removeOverlay(gmarkerEnd)
}}function createStep(D,F,G){var C=document.createElement("div");
C.className="dirDetails clearfix";
C.onclick=new Function("openDirectionsMarker("+D+")");
var B=document.createElement("span");
B.className="dirNum";
B.innerHTML='<a href="#" onclick="openDirectionsMarker('+D+')">'+D+"</a>";
var E=document.createElement("span");
E.className="dirInf";
E.innerHTML=F;
var A=document.createElement("span");
A.className="dirDis";
A.innerHTML=G;
C.appendChild(B);
C.appendChild(E);
C.appendChild(A);
return C
}function openDirectionsMarker(B){var D=gdir.getRoute(0);
var C=D.getStep(B-1).getLatLng();
var A=new GLatLng(C.lat(),C.lng());
map.showMapBlowup(A);
return false
}function showErrors(B,A){hideDidYouMean();
gBusinessName=null;
gBusinessNameReverse=null;
if(typeof A!="undefined"){if(A==G_GEO_UNKNOWN_ADDRESS||A==G_GEO_UNAVAILABLE_ADDRESS||A==G_GEO_UNKNOWN_DIRECTIONS){$("#mapErrors").html("The location could not be found.<br/> Please enter a valid address or suburb.")
}else{$("#mapErrors").html("An internal error occurred. <br/>Please try again later.")
}}else{$("#mapErrors").html(B)
}$("#mapErrors").show()
}function hideErrors(){$("#mapErrors").hide()
}function handleErrors(){showErrors(null,gdir.getStatus().code)
}function showDirections(){$("#getLocationDirection").hide();
$("#getDirections").show()
}function showLocation(){$("#getLocationDirection").hide();
$("#getLocation").show()
}function showDidYouMean(){hideErrors();
$("#didYouMean").show()
}function hideDidYouMean(){$("#didYouMean").hide()
}function geoCodeLocation(A){currentLocation=A;
$("#searchlocation").val(A);
geoCoder.getLocations(A+" , Australia",showLocations)
}function showLocationLatLng(G,I){currentLocation=G;
$("#searchlocation").val(G);
map.clearOverlays();
hideDidYouMean();
hideErrors();
var B=16;
var J=I.split(",");
var H=new GLatLng(J[0],J[1]);
var F=getMarkerIcon("G",false);
organisationIds.push("0.0");
var E="100";
var A=$("#searchlocation").val();
var D='<div class="map-vcard find-location"><h5 class="adr">'+A+"</h5>";
D+='Get directions: <a class="toHere" id="toHereLink'+E+"\" onclick=\"showDirectionInput('to',"+E+')">To here</a>, <a class="fromHere" id="fromHereLink'+E+"\" onclick=\"showDirectionInput('from',"+E+')">From here</a><div id="toHereInput'+E+'" style="display:none" class="toHereInput clearfix"><h5>Start address</h5><form action="#" onsubmit="getDirections(this.from.value, \''+A.replace(/\'/g,"%27")+'\', true, true); return false"><dl class="clearfix"><dt><input name="from" class="medium" type="text" /></dt><dd><button type="submit" class="slideButt" name="submitFrom"><span><em>Go</em></span></button></dd><dd><a class="lBack" href="#" onclick="backDirections('+E+')">&laquo;back</a></dd></dl></form></div><div id="fromHereInput'+E+'" style="display:none" class="fromHereInput clearfix"><h5>Destination address</h5><form action="#" onsubmit="getDirections(\''+A.replace(/\'/g,"%27")+'\', this.to.value, true, true); return false"><dl class="clearfix"><dt><input name="to" class="medium" type="text" /></dt><dd><button type="submit" class="slideButt" name="submitTo"><span><em>Go</em></span></button></dd><dd><a class="lBack" href="#" onclick="backDirections('+E+')">&laquo;back</a></dd></dl></form></div>';
D+='<a class="zLink" onclick="zoomMarker(0.0)">Zoom to street level</a></div>';
var C=createGMarker(H,D,F);
markers.push(C);
map.addOverlay(C);
map.setCenter(H,B)
}function showLocations(H){map.clearOverlays();
hideDidYouMean();
hideErrors();
if(H&&H.Status.code==200){tmpLocation=H;
if(H.Placemark.length>1){didYouMean(H,true,false,null,null)
}else{var E=H.Placemark[0];
var D=getAddress(E);
if(D=="ACT"){zoomLevel=8
}else{if(E.AddressDetails.Accuracy==9){zoomLevel=17
}else{if(E.AddressDetails.Accuracy==8){zoomLevel=16
}else{if(E.AddressDetails.Accuracy==7||E.AddressDetails.Accuracy==6){zoomLevel=15
}else{if(E.AddressDetails.Accuracy==5||E.AddressDetails.Accuracy==4){zoomLevel=14
}else{if(E.AddressDetails.Accuracy==3||E.AddressDetails.Accuracy==2){zoomLevel=6
}else{zoomLevel=4
}}}}}}var I=new GLatLng(E.Point.coordinates[1],E.Point.coordinates[0]);
if(E.AddressDetails.Accuracy>=4){var G=getMarkerIcon("G",false);
organisationIds.push("0.0");
var F="100";
var A=$("#searchlocation").val();
var C='<div class="map-vcard find-location"><h5 class="adr">'+A+"</h5>";
C+='Get directions: <a class="toHere" id="toHereLink'+F+"\" onclick=\"showDirectionInput('to',"+F+')">To here</a>, <a class="fromHere" id="fromHereLink'+F+"\" onclick=\"showDirectionInput('from',"+F+')">From here</a><div id="toHereInput'+F+'" style="display:none" class="toHereInput clearfix"><h5>Start address</h5><form action="#" onsubmit="getDirections(this.from.value, \''+A.replace(/\'/g,"%27")+'\', true, true); return false"><dl class="clearfix"><dt><input name="from" class="medium" type="text" /></dt><dd><button type="submit" class="slideButt" name="submitFrom"><span><em>Go</em></span></button></dd><dd><a class="lBack" href="#" onclick="backDirections('+F+')">&laquo;back</a></dd></dl></form></div><div id="fromHereInput'+F+'" style="display:none" class="fromHereInput clearfix"><h5>Destination address</h5><form action="#" onsubmit="getDirections(\''+A.replace(/\'/g,"%27")+'\', this.to.value, true, true); return false"><dl class="clearfix"><dt><input name="to" class="medium" type="text" /></dt><dd><button type="submit" class="slideButt" name="submitTo"><span><em>Go</em></span></button></dd><dd><a class="lBack" href="#" onclick="backDirections('+F+')">&laquo;back</a></dd></dl></form></div>';
C+='<a class="zLink" onclick="zoomMarker(0.0)">Zoom to street level</a></div>';
var B=createGMarker(I,C,G);
markers.push(B);
map.addOverlay(B)
}map.setCenter(I,zoomLevel)
}}else{showErrors(null,H.Status.code)
}}function didYouMean(G,H,C,A,F,I,E){var K=new GLatLng("-25.335448","135.745076");
map.setCenter(K,4);
var L='<ul class="noBull">';
for(var D=0;
D<G.Placemark.length;
D++){var B=G.Placemark[D];
var J=B.address.substring(0,B.address.length-11);
if(B.AddressDetails.Country.CountryNameCode=="AU"){if(H){L+='<li><a href="#" onclick="geoCodeLocation(\''+J+"')\">"+J+"</a></li>"
}else{if(C){L+='<li><a href="#" onclick="getDirections(\''+J+"', '"+F+"',"+I+","+E+')">'+J+"</a></li>"
}else{L+='<li><a href="#" onclick="getDirections(\''+A+"', '"+J+"',"+I+","+E+')">'+J+"</a></li>"
}}}}L+="</ul>";
$("#didYouMeanResults").html(L);
showDidYouMean()
}function setToAustraliaCenter(){var A=new GLatLng("-25.335448","135.745076");
map.setCenter(A,4)
}function requestBubble(E,A,G,B,F,D){var H={id:A,showDirections:G,markerNumber:B};
if(F!=null){H={id:A,showDirections:G,markerNumber:B,couponId:F}
}if(typeof A!="undefined"){$.get("/googleMapsBubble.do",H,function(J){var I=new Array();
I.push(new GInfoWindowTab("",J));
map.updateInfoWindow(I)
})
}else{var C=new Array();
C.push(new GInfoWindowTab("",D));
map.updateInfoWindow(C)
}}function zoomMarker(B){map.closeInfoWindow();
var A;
var C;
for(var D=0;
D<organisationIds.length;
D++){var E=organisationIds[D];
if(E==B){C=D;
break
}}if(C!=undefined){map.setCenter(markers[C].getPoint(),16);
GEvent.trigger(markers[C],"click");
return 
}}function openMarker(F,B,E){var A;
var C;
if(E==null||E=="undefined"||typeof (E)=="undefined"){E=""
}for(var D=0;
D<organisationIds.length;
D++){var G=organisationIds[D];
if(G==B+E){C=D;
break
}}if(currentListingDivId){$("#"+currentListingDivId+"").removeClass("resultActive")
}if(C!=undefined){$("#"+F+"").addClass("resultActive");
currentListingDivId=F;
GEvent.trigger(markers[C],"click");
return 
}if(map){map.closeInfoWindow()
}}function closeMarker(){map.closeInfoWindow()
}mTest=null;
scrolled=null;
function findScrollDistance(){if(BrowserDetect.browser=="Explorer"&&BrowserDetect.version==6){var A=document.body.scrollTop
}else{if(window.pageYOffset){var A=window.pageYOffset
}else{if(document.documentElement&&document.documentElement.scrollTop){var A=document.documentElement.scrollTop
}else{var A=document.body.scrollTop
}}}return A
}function findPosition(B){var C=null;
var A=null;
if(B.offsetParent){for(C=0,A=0;
B.offsetParent;
B=B.offsetParent){C+=B.offsetLeft;
A+=B.offsetTop
}return[C,A]
}else{C=B.x;
A=B.y;
return[C,A]
}}function findBottomPosition(C){var D=null;
var B=null;
var A=C.offsetHeight;
if(C.offsetParent){for(D=0,B=0;
C.offsetParent;
C=C.offsetParent){D+=C.offsetLeft;
B+=C.offsetTop
}}else{D=C.x;
B=C.y
}B+=A;
return[D,B]
}function findWindowSize(){var B=0,A=0;
if(typeof (window.innerWidth)=="number"){B=window.innerWidth;
A=window.innerHeight
}else{if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight)){B=document.documentElement.clientWidth;
A=document.documentElement.clientHeight
}else{if(document.body&&(document.body.clientWidth||document.body.clientHeight)){B=document.body.clientWidth;
A=document.body.clientHeight
}}}return[B,A]
}function resizeMap(D,I){if(typeof I=="undefined"){I=0
}calcLeftContentHeight(I);
var B=(findWindowSize())[1];
var E=(findWindowSize())[0];
var H=0;
var F=0;
var G=$("#google-map-toolbar");
var L=0;
var K=(findBottomPosition($("#mapsBottom")[0]))[1];
L=K+$("#footer").height()+50;
F+=G.height();
if($("#promos:hidden")[0]){if($("#internalPromo")[0]){H=B-(G.height()+$("#internalPromo").height()+L)+I;
F+=$("#internalPromo").height()
}else{H=B-G.height()+I-L
}}else{H=B-(G.height()+$("#promos").height())+I-L;
F+=$("#promos").height()
}if(H<300){H=300
}if(BrowserDetect.browser=="Explorer"&&BrowserDetect.version==6){if($("#mdScrollable")[0]){F+=H
}else{F+=H+35
}}else{F+=H+15
}$("#contentRight").height(F);
var J=$("#google-map");
J.height(H);
if(BrowserDetect.browser=="Explorer"&&BrowserDetect.version==6){var C=$("#contentLeft");
J.width(E-C.width()-30)
}else{var C=$("#contentRight");
J.width(C.width())
}if(map){var A=map.getCenter();
map.checkResize();
if(A){map.panTo(A)
}}}function ScrollLoad(){$(window).scroll(function(){mapScrollObserver()
});
scrolled=null;
mapScrollObserver(null)
}function mapScrollObserver(A){if(mTest){clearInterval(mTest)
}else{scrolled=document.documentElement.scrollTop
}mTest=setInterval("moveTest()",10)
}function moveBox(A){var D=(findWindowSize())[1];
var C=$("#google-map").height();
var B=(findBottomPosition(document.getElementById("mapsBottom")))[1];
if(A<B){resizeMap(null,A)
}else{resizeMap(null,B)
}}function moveTest(){var A=findScrollDistance();
if(scrolled==A){clearInterval(mTest);
mTest=null;
moveBox(A)
}scrolled=A
}function calcLeftContentHeight(B){var G=(findWindowSize())[1];
if($("#mdScrollable")[0]){var A=(findBottomPosition($("#mapsBottom")[0]))[1];
var F=G-A-$("#footer").height()+B;
if(F<300){F=300
}F-=2;
$("#mdScrollable").height(F)
}if($("#mdResults-wrap")[0]){var C=(findPosition($("#mdResults-wrap")[0]))[1];
var E=(findPosition($("#more-pages")[0]))[1];
var D=G-C-$("#footer").height()-$("#more-page").height()-35+B;
if(D<300){D=300
}$("#mdResults-wrap").height(D)
}}function isEmpty(A){return(typeof (A)=="undefined"||A==null||A=="")?true:false
};
