var map, mm; var arr_markers = new Array(); // === Create our "tiny" marker icon var icon = new GIcon(); icon.image = "http://www.newhomesforsale.co.uk/media/small_house_marker.png"; icon.shadow = "http://www.newhomesforsale.co.uk/media/small_dot_marker_shadow.png"; // no shadow icon.iconSize = new GSize(28, 15); icon.shadowSize = new GSize(28, 15); icon.iconAnchor = new GPoint(0, 0); icon.infoWindowAnchor = new GPoint(5, 1); // === Create our "tiny" marker icon var icon_clicked = new GIcon(); icon_clicked.image = "http://www.newhomesforsale.co.uk/media/small_house_marker_clicked.png"; icon_clicked.shadow = "http://www.newhomesforsale.co.uk/media/small_dot_marker_shadow.png"; // no shadow icon_clicked.iconSize = new GSize(28, 15); icon_clicked.shadowSize = new GSize(28, 15); icon_clicked.iconAnchor = new GPoint(0, 0); icon_clicked.infoWindowAnchor = new GPoint(5, 1); var dot = new GIcon(); dot.image = "http://www.newhomesforsale.co.uk/media/small_dot_marker.png"; dot.shadow = "http://www.newhomesforsale.co.uk/media/small_dot_marker_shadow.png"; // no shadow dot.iconSize = new GSize(11, 11); dot.shadowSize = new GSize(0, 0); dot.iconAnchor = new GPoint(0, 0); dot.infoWindowAnchor = new GPoint(5, 5); // === Create our "tiny" marker icon var dot_clicked = new GIcon(); dot_clicked.image = "http://www.newhomesforsale.co.uk/media/small_dot_marker_clicked.png"; dot_clicked.shadow = "http://www.newhomesforsale.co.uk/media/small_dot_marker_shadow.png"; // no shadow dot_clicked.iconSize = new GSize(11, 11); dot_clicked.shadowSize = new GSize(0, 0); dot_clicked.iconAnchor = new GPoint(0, 0); dot_clicked.infoWindowAnchor = new GPoint(5, 1); function load_3(tdiv, x, y, zoom, showarea){ function createMarker(point, icon, devid, popupcontent, nhpackage) { var marker = new GMarker(point, icon); GEvent.addListener(marker, "click", function() { $("#saveclicked").load("/includes/save_clicked.php?dev=" + devid); // var newmarker = new GMarker(point, icon_clicked); if(nhpackage==0) var newmarker = new GMarker(point, dot_clicked); if(nhpackage==10) var newmarker = new GMarker(point, icon_clicked); GEvent.addListener(newmarker, "click", function() { newmarker.openInfoWindowHtml(popupcontent); // don't need to update view if clicked on a second time. }); map.addOverlay(newmarker); map.removeOverlay(marker); marker.openInfoWindowHtml(popupcontent); // alert('Added marker'); }); return marker; } map = new GMap2(tdiv); var point = new GLatLng(x,y); map.setCenter(point, zoom); GDownloadUrl("/includes/create_xml.php?nocache=1284136980", function(data, responseCode, showarea) { if(data=='') return true; var xml = GXml.parse(data); var markers = xml.documentElement.getElementsByTagName("marker"); // if too many markers & else was here Array.prototype.inArray = function (value) { var i; for (i=0; i < this.length; i++) { if (this[i] === value) { return true; } } return false; }; var arr_clicked = new Array(0); for (var i = 0; i < markers.length; i++) { var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng"))); var devid=markers[i].getAttribute("devid"); var popupcontent=markers[i].getAttribute("popup"); popupcontent = popupcontent.replace(/!/g,"<"); popupcontent = popupcontent.replace(/%/g,">"); popupcontent = popupcontent.replace(/#pound#/g,"£"); popupcontent = popupcontent.replace(/#at#/g,"@"); popupcontent = popupcontent.replace(/#amp#/g,"&"); var nhpackage = 0; if(popupcontent.indexOf("package='0'")!=-1) nhpackage=0; else if(popupcontent.indexOf("package='10'")!=-1) nhpackage=10; else nhpackage=0; if(arr_clicked[devid]=='clicked'){ if(nhpackage==10) marker=createMarker(point, icon_clicked, devid, popupcontent, nhpackage); else marker=createMarker(point, dot_clicked, devid, popupcontent, nhpackage); }else{ if(nhpackage==10) marker=createMarker(point, icon, devid, popupcontent, nhpackage); else marker=createMarker(point, dot, devid, popupcontent, nhpackage); } arr_markers.push(marker); } mm = new GMarkerManager(map, {borderPadding:1}); mm.addMarkers(arr_markers,9,17); mm.refresh(); map.addControl(new GSmallMapControl()); map.addControl(new GMapTypeControl()); map.addControl(new GScaleControl()); // Are there any points in map bounds? var bounds = map.getBounds(); var southWest = bounds.getSouthWest(); var northEast = bounds.getNorthEast(); var devsonmap=false; var tmppoint; for (var i=0; i < arr_markers.length; i++){ tmppoint=arr_markers[i].getPoint(); if(tmppoint.lat() > southWest.lat() && tmppoint.lng() > southWest.lng() && tmppoint.lat() < northEast.lat() && tmppoint.lng() < northEast.lng()) devsonmap=true; } if(markers.length==0 && showarea==1) alert('Sorry, we don\'t have any developments in the area you selected. please start a new search by clicking on new search above the map'); else if(!devsonmap && showarea==1) alert('There aren\'t any developments on the map, but there are some in the surrounding area.\nTry moving the map around to find them'); }); if(showarea){ /* var screen_x=0.085517882346055; var screen_y=0.171661376953125; var scalar=3; var lat1=x-(scalar*screen_x); var lat2=x+(scalar*screen_x); var lon1=y-(scalar*screen_y); var lon2=y+(scalar*screen_y); */ var point_bl = new GLatLng(52.666389016481, -1.8814086914297); var point_tr = new GLatLng(52.922942663519, -1.3664245605703); var point_tl = new GLatLng(52.666389016481, -1.3664245605703); var point_br = new GLatLng(52.922942663519, -1.8814086914297); GEvent.addListener(map, "dragend", function() { var bounds = map.getBounds(); var SW=bounds.getSouthWest(); var NE=bounds.getNorthEast(); // down, left, up, right if(SW.lat() < point_bl.lat() || SW.lng() < point_bl.lng() || NE.lat() > point_tr.lat() || NE.lng() > point_tr.lng()) alert('You have wandered too far from the starting point.\nPlease start a new search to find developments in this new area'); }); // draw on boundaries of loading var boundaries = new GPolyline([point_bl, point_br, point_tr, point_tl, point_bl], "#ff0000", 25); map.addOverlay(boundaries); } } function load_2(x, y, zoom, showarea){ function createMarker(point, icon, devid, popupcontent, nhpackage) { var marker = new GMarker(point, icon); GEvent.addListener(marker, "click", function() { parent.saveclicked.location.href='/map/save_clicked.php?dev=' + devid; // update clicked array // var newmarker = new GMarker(point, icon_clicked); if(nhpackage==0) var newmarker = new GMarker(point, dot_clicked); if(nhpackage==10) var newmarker = new GMarker(point, icon_clicked); GEvent.addListener(newmarker, "click", function() { newmarker.openInfoWindowHtml(popupcontent); // don't need to update view if clicked on a second time. }); map.addOverlay(newmarker); map.removeOverlay(marker); marker.openInfoWindowHtml(popupcontent); // alert('Added marker'); }); return marker; } map = new GMap2(document.getElementById("map")); var point = new GLatLng(x, y); map.setCenter(point, zoom); map.addControl(new GSmallMapControl()); map.addControl(new GMapTypeControl()); map.addControl(new GScaleControl()); GDownloadUrl("/map/create_xml.php?nocache=1284136980", function(data, responseCode, showarea) { if(data=='') return true; var xml = GXml.parse(data); var markers = xml.documentElement.getElementsByTagName("marker"); // =========================================== too many markers =========================================== // if(markers.length>60 && 0){ alert(markers.length); map.addOverlay(new ELabel(new GLatLng(52.92, -1.475), "DE1 (8)", 'mapelabel')); map.addOverlay(new ELabel(new GLatLng(52.773, -1.554), "DE11 (23)", 'mapelabel')); map.addOverlay(new ELabel(new GLatLng(52.725, -1.553), "DE12 (2)", 'mapelabel')); map.addOverlay(new ELabel(new GLatLng(52.808, -1.688), "DE13 (10)", 'mapelabel')); map.addOverlay(new ELabel(new GLatLng(52.805, -1.64), "DE14 (12)", 'mapelabel')); map.addOverlay(new ELabel(new GLatLng(52.799, -1.608), "DE15 (6)", 'mapelabel')); map.addOverlay(new ELabel(new GLatLng(52.901, -1.494), "DE23 (14)", 'mapelabel')); map.addOverlay(new ELabel(new GLatLng(52.89, -1.451), "DE24 (10)", 'mapelabel')); map.addOverlay(new ELabel(new GLatLng(52.909, -1.54), "DE3 (6)", 'mapelabel')); map.addOverlay(new ELabel(new GLatLng(52.867, -1.61), "DE65 (8)", 'mapelabel')); map.addOverlay(new ELabel(new GLatLng(52.847, -1.435), "DE73 (10)", 'mapelabel')); map.addOverlay(new ELabel(new GLatLng(52.748, -1.468), "LE65 (9)", 'mapelabel')); map.addOverlay(new ELabel(new GLatLng(52.903, -1.868), "ST14 (10)", 'mapelabel')); map.addOverlay(new ELabel(new GLatLng(52.692, -1.818), "WS13 (9)", 'mapelabel')); // =========================================== OK - show markers =========================================== // }else{ Array.prototype.inArray = function (value) { var i; for (i=0; i < this.length; i++) { if (this[i] === value) { return true; } } return false; }; var arr_clicked = new Array(0); for (var i = 0; i < markers.length; i++) { var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng"))); var devid=markers[i].getAttribute("devid"); var popupcontent=markers[i].getAttribute("popup"); popupcontent = popupcontent.replace(/!/g,"<"); popupcontent = popupcontent.replace(/%/g,">"); popupcontent = popupcontent.replace(/#pound#/g,"£"); popupcontent = popupcontent.replace(/#at#/g,"@"); popupcontent = popupcontent.replace(/#amp#/g,"&"); var nhpackage = 0; if(popupcontent.indexOf("package='0'")!=-1) nhpackage=0; else if(popupcontent.indexOf("package='10'")!=-1) nhpackage=10; else nhpackage=0; if(arr_clicked[devid]=='clicked'){ if(nhpackage==10) marker=createMarker(point, icon_clicked, devid, popupcontent, nhpackage); else marker=createMarker(point, dot_clicked, devid, popupcontent, nhpackage); }else{ if(nhpackage==10) marker=createMarker(point, icon, devid, popupcontent, nhpackage); else marker=createMarker(point, dot, devid, popupcontent, nhpackage); } arr_markers.push(marker); } mm = new GMarkerManager(map, {borderPadding:1}); mm.addMarkers(arr_markers,9,17); mm.refresh(); function TextualZoomControl() {} TextualZoomControl.prototype = new GControl(); TextualZoomControl.prototype.initialize = function(map) { var container = document.createElement("div"); this.setButtonStyle_(container); map.getContainer().appendChild(container); return container; } TextualZoomControl.prototype.getDefaultPosition = function() { return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(3, 3)); } TextualZoomControl.prototype.setButtonStyle_ = function(button) { button.style.textDecoration = "none"; button.style.color = "#0000cc"; button.style.backgroundColor = "#455989"; button.style.border = "1px solid black"; button.style.padding = "2px"; button.style.marginBottom = "3px"; button.style.textAlign = "center"; button.style.width = "38px"; button.style.height = "98px"; button.style.cursor = "pointer"; } map.addControl(new TextualZoomControl()); map.addControl(new GSmallMapControl()); map.addControl(new GMapTypeControl()); map.addControl(new GScaleControl()); // Are there any points in map bounds? var bounds = map.getBounds(); var southWest = bounds.getSouthWest(); var northEast = bounds.getNorthEast(); var devsonmap=false; var tmppoint; for (var i=0; i < arr_markers.length; i++){ tmppoint=arr_markers[i].getPoint(); if(tmppoint.lat() > southWest.lat() && tmppoint.lng() > southWest.lng() && tmppoint.lat() < northEast.lat() && tmppoint.lng() < northEast.lng()) devsonmap=true; } if(markers.length==0 && showarea==1) alert('Sorry, we don\'t have any developments in the area you selected. please start a new search by clicking on new search above the map'); else if(!devsonmap && showarea==1) alert('There aren\'t any developments on the map, but there are some in the surrounding area.\nTry moving the map around to find them'); } }); if(showarea){ /* var screen_x=0.085517882346055; var screen_y=0.171661376953125; var scalar=3; var lat1=x-(scalar*screen_x); var lat2=x+(scalar*screen_x); var lon1=y-(scalar*screen_y); var lon2=y+(scalar*screen_y); */ var point_bl = new GLatLng(52.666389016481, -1.8814086914297); var point_tr = new GLatLng(52.922942663519, -1.3664245605703); var point_tl = new GLatLng(52.666389016481, -1.3664245605703); var point_br = new GLatLng(52.922942663519, -1.8814086914297); GEvent.addListener(map, "dragend", function() { var bounds = map.getBounds(); var SW=bounds.getSouthWest(); var NE=bounds.getNorthEast(); // down, left, up, right if(SW.lat() < point_bl.lat() || SW.lng() < point_bl.lng() || NE.lat() > point_tr.lat() || NE.lng() > point_tr.lng()) alert('You have wandered too far from the starting point.\nPlease start a new search to find developments in this new area'); }); // draw on boundaries of loading var boundaries = new GPolyline([point_bl, point_br, point_tr, point_tl, point_bl], "#ff0000", 25); map.addOverlay(boundaries); } } function load_1(x, y, zoom){ map = new GMap2(document.getElementById("map")); var point = new GLatLng(x, y); map.setCenter(point, zoom); function TextualZoomControl() {} TextualZoomControl.prototype = new GControl(); TextualZoomControl.prototype.initialize = function(map) { var container = document.createElement("div"); this.setButtonStyle_(container); map.getContainer().appendChild(container); return container; } TextualZoomControl.prototype.getDefaultPosition = function() { return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(3, 3)); } TextualZoomControl.prototype.setButtonStyle_ = function(button) { button.style.textDecoration = "none"; button.style.color = "#0000cc"; button.style.backgroundColor = "#455989"; button.style.border = "1px solid black"; button.style.padding = "2px"; button.style.marginBottom = "3px"; button.style.textAlign = "center"; button.style.width = "38px"; button.style.height = "98px"; button.style.cursor = "pointer"; } map.addControl(new TextualZoomControl()); map.addControl(new GSmallMapControl()); // map.addControl(new GMapTypeControl()); GEvent.addListener(map, "click", function(marker, point) { if(!marker) { document.refineform.point.value=point; document.refineform.submit(); } }); } var current_dev=''; var current_x='51.6166667'; var current_y='0.0166667'; var current_zoom='12'; function highlightdev(dev, x, y, zoom){ loadmainmap(); // alert('Repositioning to Dev:' + dev + ' at lat:'+x+' lon:'+y + ' Zoom: ' + zoom); // map.setCenter(new GLatLng(x, y), zoom); map.setZoom(zoom); map.panTo(new GLatLng(x, y)); } function unhighlightdev(){ // alert('lat: '+ current_x + ' lon: ' + current_y + ' Zoom: ' + current_zoom); // map.setCenter(new GLatLng(current_x, current_y), eval(current_zoom)); map.setZoom(eval(current_zoom)); map.panTo(new GLatLng(current_x, current_y)); } function devclick(dev, x, y, zoom){ divid=document.getElementById('result'+dev); currentdivid=document.getElementById('result'+current_dev); if(current_dev==dev) unlockdev(current_dev, current_x, current_y, current_zoom, currentdivid); else{ if(current_dev!='') unlockdev(current_dev, current_x, current_y, currentdivid); lockdev(dev, x, y, zoom, divid); } } function lockdev(dev, x, y, zoom, divid){ current_dev=dev; current_x=x; current_y=y; current_zoom=zoom; unhighlightdev(); divid.style.background='#CCCCFF'; } function unlockdev(dev, x, y, zoom, divid){ current_dev=''; current_x=51.6166667; current_y=0.0166667; current_zoom='12'; unhighlightdev(); divid.style.background='#FFFFFF'; } function mapinfo(){ var centre_point = map.getCenter(); // alert(centre_point.toString()); var f=document.infoform; f.lat.value=centre_point.lat(); f.lon.value=centre_point.lng(); f.zoom.value=map.getZoom(); } // functions for /search.php var ismainmaploaded=false; var currentdev_maps=new Array(); var currentdevmap=false; var text_output='results'; function toggledevmap(devid, x, y, zoom){ if(currentdevmap==devid) unloaddevmap(devid); else loaddevmap(devid, x, y, zoom); } function tickdevsl(devid){ document.getElementById('shortlist_'+devid).checked=true; } function loaddevmap(devid, x, y, zoom){ if(devid==currentdevmap){ // alert(devid + "is currently open"); return false; } if(currentdevmap!=false) unloaddevmap(currentdevmap); var mapelement=document.getElementById("devmap_"+devid); if(devid in currentdev_maps){ // alert('making map '+devid+ ' visible'); show_element(mapelement); }else{ // alert('loading map '+devid); mapelement.style.height='250px'; map = new GMap2(mapelement); var point = new GLatLng(x,y); map.setCenter(point, zoom); var marker = new GMarker(point, icon); GEvent.addListener(marker, "click", function() { $("#saveclicked").load("/includes/save_clicked.php?dev=" + devid); var newmarker = new GMarker(point, icon_clicked); var popupcontent="
View Development | Shortlist
"; GEvent.addListener(newmarker, "click", function(){ newmarker.openInfoWindowHtml(popupcontent); }); map.addOverlay(newmarker); map.removeOverlay(marker); marker.openInfoWindowHtml(popupcontent); }); map.addOverlay(marker); map.addControl(new GSmallMapControl()); map.addControl(new GMapTypeControl()); map.addControl(new GScaleControl()); currentdev_maps[devid]=1; } document.getElementById("dv_map_"+devid).innerHTML='Hide local map'; currentdevmap=devid } function unloaddevmap(devid){ var mapelement=document.getElementById("devmap_"+devid); if(mapelement){ mapelement.style.height='1'; hide_element(mapelement); // change text document.getElementById("dv_map_"+devid).innerHTML='View local map'; currentdevmap=''; // added to allow devmap to be re-opened } } function loadmainmap(){ var mapelement=document.getElementById("searchfeatures"); if(mapelement){ show_element(mapelement); mapelement.style.height='400px'; } if(!ismainmaploaded) load_3(mapelement, 52.79466584, -1.623916626, 12, 1); ismainmaploaded=true; unloaddevmap(currentdevmap); document.getElementById("searchtab_map").setAttribute("class", "searchpagetab on"); document.getElementById("searchtab_results").setAttribute("class", "searchpagetab off"); } function hidemainmap(){ var mapelement=document.getElementById("searchfeatures"); if(mapelement.style.display=='block') hide_element(mapelement); document.getElementById("searchtab_map").setAttribute("class", "searchpagetab off"); document.getElementById("searchtab_results").setAttribute("class", "searchpagetab on"); } function togglemap(){ var mapelement=document.getElementById("searchfeatures"); if(!ismainmaploaded || mapelement.style.display=='none') loadmainmap(); else hidemainmap(); } function checkallbeds(){ document.getElementById('beds1').checked=true; document.getElementById('beds2').checked=true; document.getElementById('beds3').checked=true; document.getElementById('beds4').checked=true; document.getElementById('beds5').checked=true; document.getElementById('bedsplus').checked=true; } function multiselectall(tf){ for(i=0; i < tf.elements.length; i++){ if(tf.elements[i].type == "checkbox" && tf.elements[i].id!="signupalerts"){ tf.elements[i].checked=true; } } } function cbshortlist(el){ if(el.checked){ get_div_content('/includes/ajax/shortlist.php?add='+el.value, 'saveclicked'); alert('The development has been saved to your shortlist'); }else{ get_div_content('/includes/ajax/shortlist.php?remove='+el.value, 'saveclicked'); alert('The development has been removed from your shortlist'); } } function checkmultialertform(tf){ var phone_replace=checkPhone(tf.cust_phone.value); var enqtypechecked=false; // loop devs is one id starting medev_ is checked then ok... for(i=0; i < tf.elements.length; i++){ if(tf.elements[i].id.indexOf('medev_')===0 && tf.elements[i].checked) enqtypechecked=true; } missinginfo = ""; if (tf.cust_name.value == "") missinginfo += "\n : Name"; if (ajaxcheckemail(tf.cust_email.value)==false) missinginfo += "\n : E-mail address"; if (tf.cust_phone.value == "" || phone_replace=='') missinginfo += "\n : Valid 11 digit Phone number"; if (tf.comments.value == "") missinginfo += "\n : Message"; if(!enqtypechecked) missinginfo += "\n : Please select at least one development"; if (missinginfo != ""){ missinginfo ="_____________________________\n" + "The following fields have not been entered correctly:\n" + missinginfo + "\n_____________________________" + "\nPlease click the OK button and re-enter details"; alert(missinginfo); return false; }else{ return true; } }