$(document).ready(function(){load()});var map;var markers=[];var alreadyLocated=false;var infoWindow;var centreLat=55;var centreLong=-4.5;function showDefault(){var a=document.getElementById("postcode").value;if(a!==null&&a.length>0){searchLocationsNearPostcode(a)}hideMessage()}function showMessage(a){$("#loading").text(a).show()}function hideMessage(){$("#loading").hide()}function load(){$("#searchBtn").click(searchLocations);$("#sidebar").attr("style","width:320px;height:350px");$("#map").attr("style","display:block");$(".instructions").attr("style","margin-left:0");$(".instructions").attr("style","margin-top:30px");$("#searchform").submit(function(){return false});infoWindow=new google.maps.InfoWindow();var b=new google.maps.LatLng(centreLat,centreLong);var a={zoom:5,center:b,mapTypeId:google.maps.MapTypeId.ROADMAP,mapTypeControlOptions:{style:google.maps.MapTypeControlStyle.DROPDOWN_MENU}};map=new google.maps.Map(document.getElementById("map"),a);showDefault()}function searchLocationsNearPostcode(b){var a=$("#radius").val();var c=$("#filter").val();var d="/outlet/searchxml/postcode/"+b+"/radius/"+a+"/limit/100/filter/"+c;searchLocationsNear(d,true)}function searchLocationsNearLatLng(a){var b="/outlet/searchxml/lat/"+a.coords.latitude+"/long/"+a.coords.longitude+"/radius/3/limit/100";searchLocationsNear(b,false)}function searchLocations(){var a=$("#radius").val();var c=$("#filter").val();var b=document.getElementById("postcode").value;if(b.length<=0){var e=document.getElementById("sidebar");e.innerHTML='<p class="message">No postcode was entered.</p>'}else{var d="/outlet/searchxml/postcode/"+b+"/radius/"+a+"/limit/100/filter/"+c;searchLocationsNear(d,true)}}function doNothing(){}function downloadUrl(a,c){var b=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();b.onreadystatechange=function(){if(b.readyState==4){b.onreadystatechange=doNothing;c(b.responseText,b.status)}};b.open("GET",a,true);b.send(null)}function parseXml(b){if(window.ActiveXObject){var a=new ActiveXObject("Microsoft.XMLDOM");a.loadXML(b);return a}else{if(window.DOMParser){return(new DOMParser()).parseFromString(b,"text/xml")}}}function clearLocations(){infoWindow.close();for(var a=0;a<markers.length;a++){markers[a].setMap(null)}markers.length=0}function searchLocationsNear(d,c){clearLocations();var a=$("#radius").val();var b=$("#filter").val();showMessage("Finding outlets...");downloadUrl(d,function(u){var o=document.getElementById("sidebar");if(u=="Invalid postcode"){o.innerHTML='<p class="message">An invalid postcode was entered.</p>'}else{var h=parseXml(u);var q=h.documentElement.getElementsByTagName("marker");o.innerHTML="";if(q.length===0){o.style.overflow="auto";o.innerHTML='<p class="message">No results found.</p>';map.setCenter(new google.maps.LatLng(centreLat,centreLong));map.setZoom(5);return}else{o.style.overflow="scroll"}var l=new google.maps.LatLngBounds();var e=document.createElement("Table");e.className="outletTable";e.cellSpacing="0";for(var r=0;r<q.length;r++){var g,t="",f="",s=0;switch(q[r].getAttribute("type")){case"PZ":g="PayZone";t="pz-bubble.gif";f="pz-icon.gif";s=85;imgWidth=66;break;case"PO":g="PostOffice";t="po-bubble.gif";f="po-icon.gif";s=63;imgWidth=85;break;case"EP":g="ePay";t="ep-bubble.gif";f="ep-icon.gif";s=63;imgWidth=62;break;case"PP":g="PayPoint";t="pp-bubble.gif";f="pp-icon.gif";s=65;imgWidth=62;break}if(t!==""){t="/images/outlets/"+t}if(f!==""){f="/images/outlets/"+f}var w=q[r].getAttribute("name");var v=q[r].getAttribute("postcode");var j=q[r].getAttribute("distance");if(j!="NULL"){j=parseFloat(q[r].getAttribute("distance"))}var p=new google.maps.LatLng(parseFloat(q[r].getAttribute("lat")),parseFloat(q[r].getAttribute("lng")));var k=q[r].getAttribute("address").replace(/,/g,"<br />");var m=createMarker(p,w,k,v,g,t,s,j);var n=createSidebarEntry(m,w,v,j,g,r,f,e);l.extend(p)}o.appendChild(e);if(c){map.fitBounds(l)}hideMessage()}})}function createMarker(i,b,h,e,f,j,g,a){var c=new google.maps.Marker({map:map,position:i});var d='<div class="bubble"><img src="'+j+'" alt="'+f+'" title="'+f+'" height="'+g+'" /><div class="name" style="margin-top:10px">'+b+'</div><div class="address">'+h+'</div><div class="postcode">'+e+"</div><br />";if(a!="NULL"){d+='<a class="directions" href="http://maps.google.co.uk/maps?saddr='+document.getElementById("postcode").value+"&daddr="+e+"("+f+" - "+b+')" target="_blank">Get directions</a>'}d+="</div>";google.maps.event.addListener(c,"click",function(k){infoWindow.setContent(d);infoWindow.open(map,c)});markers.push(c);return c}function createSidebarEntry(e,b,i,a,h,g,c,f){var d=f.insertRow(g);d.style.cursor="pointer";if(g%2==1){d.className="alternate"}d.onclick=function(){google.maps.event.trigger(e,"click")};var j=d.insertCell(0);j.className="logo";j.innerHTML='<img style="vertical-align:middle" src="'+c+'" />';j=d.insertCell(1);j.className="name";j.innerHTML=b;j=d.insertCell(2);j.className="distance";if(a!="NULL"){j.innerHTML=a.toFixed(1)+"&nbsp;miles"}else{j.innerHTML=""}return d};
