
window.onload=function(){getmarkers();}
window.onunload=function(){GUnload();}
gid("srch_where").onchange=function(){checkQuick();}
var zoomBrowser;spinner=new Image(50,30);spinner.src="images/loading.gif";star0=new Image(60,11);star0.src="images/small_0.0.png";star0_5=new Image(60,11);star0_5.src="images/small_0.5.png";star1=new Image(60,11);star1.src="images/small_1.png";star1_5=new Image(60,11);star1_5.src="images/small_1.5.png";star2=new Image(60,11);star2.src="images/small_2.png";star2_5=new Image(60,11);star2_5.src="images/small_2.5.png";star3=new Image(60,11);star3.src="images/small_3.png";star3_5=new Image(60,11);star3_5.src="images/small_3.5.png";star4=new Image(60,11);star4.src="images/small_4.png";star4_5=new Image(60,11);star4_5.src="images/small_4.5.png";star5=new Image(60,11);star5.src="images/small_5.png";if((navigator.userAgent.indexOf("MSIE")!=-1)||(navigator.userAgent.indexOf("Firefox")!=-1)){zoomBrowser=1;}
function gid(i){return document.getElementById(i);}
function createCookie(name,value,days){if(days){var date=new Date();date.setTime(date.getTime()+(days*24*60*60*1000));var expires="; expires="+date.toGMTString();}
else var expires="";document.cookie=name+"="+value+expires+"; path=/";}
function readCookie(name){var nameEQ=name+"=";var ca=document.cookie.split(';');for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==' ')c=c.substring(1,c.length);if(c.indexOf(nameEQ)==0)return c.substring(nameEQ.length,c.length);}
return null;}
function checkPostCode(postCode){var alpha="[abdefghjlnpqrstuwxyz]";var pcexp=new Array();pcexp.push(new RegExp("^(e{1}h?[0-9]{1,2})(\\s*)([0-9]{1}"+alpha+"{2})$","i"));var valid=false;for(var i=0;i<pcexp.length;i++){if(pcexp[i].test(postCode)){pcexp[i].exec(postCode);postCode=RegExp.$1.toUpperCase()+" "+RegExp.$3.toUpperCase();valid=true;break;}}
if(valid){createCookie("area",postCode,"7");return postCode;}
else{return false;}}
function checkQuick(){if(checkPostCode(gid("srch_where").value)){gid('srch_where').value=checkPostCode(gid("srch_where").value);}
else{gid('srch_where').value=cpt(gid("srch_where").value);}}
function cpt(xx){var yy=xx.split(" ");for(x=0;x<yy.length;x++){yy[x]=yy[x].substring(0,1).toUpperCase()+yy[x].substring(1);}
xx=yy.join(" ");return xx;}
function testArea(){var areaVar=gid('srch_what').value;if(checkPostCode(areaVar)){gid('srch_what').value=checkPostCode(areaVar);}
else{gid('srch_what').value=cpt(areaVar);}
gid('srch_loctype').value="user";gid('srch_where').value=gid('srch_what').value;}
if(GBrowserIsCompatible()){sidebar_html="";points=[];currentHover="";gmarkers=[];icons=[];i=0;GMap2.prototype.wheelZoom=function(event){if(event.cancelable)event.preventDefault();return false;}
var map=new GMap2(gid("mapdetail"));map.enableContinuousZoom();map.enableScrollWheelZoom();map.enableDoubleClickZoom();var baselat=gid('baselat').value;var baselng=gid('baselng').value;map.setCenter(new GLatLng(baselat,baselng),13)
GEvent.addDomListener(gid("mapdetail"),"DOMMouseScroll",map.wheelZoom);GEvent.addDomListener(gid("mapdetail"),"mousewheel",map.wheelZoom);var tooltip=document.createElement("div");document.getElementById("mapdetail").appendChild(tooltip);tooltip.style.visibility="hidden";function showTooltip(marker){var centreLat=map.getCenter().lat();var markerLat=marker.getPoint().lat();if(markerLat<=centreLat){var offset=0;}
else{var offset=135;}
var pos=new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize(23,offset+10));tooltip.innerHTML="<div class='tooltip'>"+marker.tooltip+"</div>";pos.apply(tooltip);tooltip.style.visibility="visible";}
function showHover(i){showTooltip(gmarkers[i])}
function removeHover(){tooltip.style.visibility="hidden";}
function createMarker(point,label,phone,icontype,number,url,name,address,foodlist,rating,reviews){var i=number;if(rating!=0){var ratingtext="<img src='images/small_"+rating+".png' width=60 height=11> from "+reviews+" review";if(reviews>1){ratingtext=ratingtext+"s";}}
else{var ratingtext="<img src='images/small_0.0.png' width=60 height=11> No reviews yet";}
var basehtml=foodlist+"<br /><em>"+ratingtext+"</em><br />"+address+"<br />"+phone+"<br />";var hoverhtml="<div class='popupbg'><strong>"+name+"</strong><span class='popupsmall'><br/>"+basehtml+"</span></div>";marker=new GMarker(point,{icon:icons[icontype]});marker.tooltip=hoverhtml;gmarkers[i]=marker;sidebar_html+=label;i++;var url=url+"/";GEvent.addListener(marker,"click",function(){window.open(url,"_self");});GEvent.addListener(marker,"mouseover",function(){showTooltip(gmarkers[(i-1)]);});GEvent.addListener(marker,"mouseout",function(){tooltip.style.visibility="hidden"});return marker;}
function showDetail(i){removeHover();var zoomedin=17;var currentzoom=map.getZoom();var maplat=(Math.round((map.getCenter().lat())*1000000)/1000000);var maplng=(Math.round((map.getCenter().lng())*1000000)/1000000);var pointlat=(Math.round((points[i].lat())*1000000)/1000000);var pointlng=(Math.round((points[i].lng())*1000000)/1000000);if((currentzoom==zoomedin)&&(maplat==pointlat)&&(maplng==pointlng)){showHover(i);}
else if((map.getBounds().contains(points[i]))&&(currentzoom==zoomedin)){map.panTo(points[i]);GEvent.addListener(map,"moveend",function(){showHover(i);GEvent.clearListeners(map,"moveend");});}
else if(currentzoom<zoomedin){for(var j=map.getZoom();j<zoomedin;j++){map.zoomIn(points[i],true,true);}
GEvent.addListener(map,"zoomend",function(){map.panTo(points[i]);GEvent.clearListeners(map,"zoomend");});GEvent.addListener(map,"moveend",function(){showHover(i);GEvent.clearListeners(map,"moveend");});}
else{map.setCenter(points[i],zoomedin);showHover(i);}}
keyLoaded=0;function getmarkers(){var bounds=new GLatLngBounds();map.clearOverlays();var pagetoget="markers_home.php";loadinghtml="<p class='float_centre'>Loading...</p>";gid("randoms").innerHTML=loadinghtml;sidebar_html='';var resultsRequest=GXmlHttp.create();resultsRequest.open("GET",pagetoget,true);resultsRequest.onreadystatechange=function(){if(resultsRequest.readyState==4){var xmlDoc=resultsRequest.responseXML;var markers=xmlDoc.documentElement.getElementsByTagName("marker");var bounds=new GLatLngBounds();var i=0;while(i<markers.length){var thisicon=new GIcon();var iconfile=markers[i].getAttribute("iconfile");thisicon.image=iconfile;thisicon.shadow="markers/shadow.png";thisicon.iconSize=new GSize(23,23);thisicon.shadowSize=new GSize(45,23);thisicon.iconAnchor=new GPoint(11,23);icons[i]=thisicon;var lat=parseFloat(markers[i].getAttribute("lat"));var lng=parseFloat(markers[i].getAttribute("lng"));var point=new GLatLng(lat,lng);var id=markers[i].getAttribute("id");var url=markers[i].getAttribute("url");var phone=markers[i].getAttribute("phone");var foodlist=markers[i].getAttribute("foodlist");var name=markers[i].getAttribute("name");var number=markers[i].getAttribute("number");var address=markers[i].getAttribute("address");var colour=markers[i].getAttribute("colour");var rating=markers[i].getAttribute("rating");var reviews=markers[i].getAttribute("reviews");points[number]=point;var name2=name.replace("'","");var label="<span class='clearfix'><label><span class='colour "+colour+"'>"+number+"</span><span class='resttitle'><a href='business/"+id+"' onmouseover='showHover("+number+");' onmouseout='removeHover();' title='Get full details on "+name2+"'>"+name+"</a><a href='#' onmouseover='showHover("+number+");' onmouseout='removeHover();' onclick='showDetail("+number+"); return false;' title='Zoom map to this business'><img src='images/zoom.gif' width='15' height='12' alt='Zoom map to this business'></a></span></label></span>";var icontype=i;var marker=createMarker(point,label,phone,icontype,number,url,name,address,foodlist,rating,reviews);map.addOverlay(marker);bounds.extend(point);i++;}
var clat=(bounds.getNorthEast().lat()+bounds.getSouthWest().lat())/2;var clng=(bounds.getNorthEast().lng()+bounds.getSouthWest().lng())/2;newcentre=(new GLatLng(clat,clng));var currentzoom=map.getZoom();newzoom=map.getBoundsZoomLevel(bounds);if(zoomBrowser=="1"){if(currentzoom>newzoom){for(var i=map.getZoom();i>newzoom;i--){map.zoomOut("",true);}
GEvent.addListener(map,"zoomend",function(){map.panTo(newcentre);GEvent.clearListeners(map,"zoomend");});}
else if(currentzoom<newzoom){for(var i=map.getZoom();i<newzoom;i++){map.zoomIn(newcentre,true,true);}
GEvent.addListener(map,"zoomend",function(){map.panTo(new GLatLng(clat,clng));GEvent.clearListeners(map,"zoomend");});}
else{map.panTo(newcentre);}}
else{map.setZoom(newzoom);map.setCenter(newcentre);}
gid("randoms").innerHTML="<p class='float_centre'><a href='#' onclick='getmarkers(); return false;'>Show 5 more random businesses</a></p>";}}
resultsRequest.send(null);}}
else{alert("Sorry, Google Maps is not compatible with your browser.");}