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=1284137015", 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=1284137015", 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.49720215';
var current_y='-0.016393661';
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.49720215;
current_y=-0.016393661;
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="
";
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;
}
}