|
Server : Apache/2.4.62 System : FreeBSD fbsdweb2.web.rcn.net 14.1-RELEASE FreeBSD 14.1-RELEASE releng/14.1-n267679-10e31f0946d8 GENERIC amd64 User : www ( 80) PHP Version : 8.3.8 Disable Function : NONE Directory : /domains/gwsolutions/js/ |
Upload File : |
var gmarkers = [];
var bounds = new google.maps.LatLngBounds();
var infowindow = "";
var map;
var borderColor = "Black";
var captionColor = "White";
var titleName = "Street Name";
var isiPhone = (navigator.userAgent.toLowerCase().indexOf("iphone") > -1);
var ua = navigator.userAgent.toLowerCase();
var isAndroid = ua.indexOf("android") > -1;
var ACTUAL_PERCENTAGES = true;
var mapCenter = new google.maps.LatLng(53.347541, -3.829126);
var mobileCenter = new google.maps.LatLng(53.347541, -3.829126);
var lastValidCenter = mapCenter;
var initialZoom = 7;
var bubbleOffsetHeight = 0;
function addPin(data) {
var newLat = data.latitude;
var newLong = data.longitude;
var text = '';
var title = data.city; //+ ': ' + newLat + ',' + newLong;
var myLatlng = new google.maps.LatLng(newLat,newLong);
var icon = gwsPin2();
bounds.extend(myLatlng);
var marker = new google.maps.Marker({
position : myLatlng,
map : map,
icon : icon,
title : title
});
google.maps.event.addListener(marker,'click',function() {
if (isMobile()) hideLegend();
hookBalloon(map, marker, data, text);
});
gmarkers.push(marker);
return marker;
}
function gwsPin2() {
return new google.maps.MarkerImage('images/citySurvey-Pin.png',
new google.maps.Size(28, 40),
new google.maps.Point(0, 0),
new google.maps.Point(14, 40));
}
function toOrdinal (value) {
var s = String(value),
len = s.length,
end = s.substr(len - 1, 1),
teen = len > 1 && s.substr(len - 2, 1) === "1",
ord = "th";
if (end === "1" && !teen) {
ord = "st";
} else if (end === "2" && !teen) {
ord = "nd";
} else if (end === "3" && !teen) {
ord = "rd";
}
return value + '' + ord;
}
String.prototype.replaceAll = function (find,replace) {
var str = this;
return str.replace(new RegExp(find,'g'), replace);
}
var currentMarker = null;
var currentData = null;
function hookBalloon(map, marker, jData, text) {
if (infowindow != "")
infowindow.close();
var disableAutoPan = false; // changed from true to false per Matt mentioning the cards don't always fit on screen
// also removed the line below
var trouble_making_pct = Math.round(jData.trouble_making);
var trouble_receiving_pct = Math.round(jData.trouble_receiving);
var trouble_internet_pct = Math.round(jData.trouble_internet);
var trouble_receiving_cap = (100 - trouble_receiving_pct);
var trouble_making_cap = (100 - trouble_making_pct);
var trouble_internet_cap = (100 - trouble_internet_pct);
var cityUPPER = jData.city.toUpperCase();
var worst_room = jData.worst_room;
var worst_icon = '<img src="images/surveymap-' + worst_room.replace(' ','') + '.png" alt="' + worst_room + '" onclick="javascript:alert(\'Worst room is: ' + worst_room + '\');" />';
var fewest_carrier = jData.fewest_complaints;
var fewest_icon = '<img src="images/surveymap-logo-' + fewest_carrier + '.png" alt="' + fewest_carrier + '" />';
if (fewest_carrier == 'Vodafone')
fewest_icon = '<img src="images/surveymap-logo-vf.png" height="33" />';
var most_carrier = jData.most_complaints;
var most_icon = '<img src="images/surveymap-logo-' + most_carrier + '.png" alt="' + most_carrier + '" />';
if (most_carrier == 'Vodafone')
most_icon = '<img src="images/surveymap-logo-vf.png" />';
else if (most_carrier == '3/O2')
most_icon = '<img src="images/surveymap-logo-3andO2.png" alt="3 and O2" />';
contentString = template.replaceAll('{city}',cityUPPER)
.replaceAll('{trouble_making_pct}',trouble_making_pct)
.replaceAll('{trouble_making_cap}',trouble_making_cap)
.replaceAll('{trouble_receiving_pct}',trouble_receiving_pct)
.replaceAll('{trouble_receiving_cap}',trouble_receiving_cap)
.replaceAll('{trouble_internet_pct}',trouble_internet_pct)
.replaceAll('{trouble_internet_cap}',trouble_internet_cap)
.replace('{worst_room}',worst_icon)
.replace('{fewest_complaints}',fewest_icon)
.replace('{most_complaints}',most_icon);
infowindow = new InfoBubble({
map : map,
content : contentString,
shadowStyle : 1,
padding : 0,
backgroundColor : 'rgb(255,255,255)',
borderRadius : 0,
arrowSize : 10,
borderWidth : 0,
borderColor : borderColor,
disableAutoPan : disableAutoPan,
hideCloseButton : false,
arrowPosition : 50,
backgroundClassName : '',
arrowStyle : 0
});
infowindow.setBubbleOffset(0,bubbleOffsetHeight);
infowindow.open(map, marker);
}
function stopIt(e) {
e.stopPropagation();
}
function hideLegend() {
$("#legend").hide();
}
function showLegend() {
$("#legend").show();
}
function closePopup() {
if (infowindow != "")
infowindow.close();
}
function isMobile() {
var isiPhone = navigator.userAgent.match(/iPhone/i) != null;
var ua = navigator.userAgent.toLowerCase();
var isAndroid = ua.indexOf("android") > -1;
return isiPhone || isAndroid;
}
function getPin(src,top) {
var path = 'pins/' + src;
var y = 109;
if (top == false)
y = 0;
return new google.maps.MarkerImage(path,
new google.maps.Size(100, 99),
new google.maps.Point(0, 0),
new google.maps.Point(50, 99));
}
// bounds of the desired area
var allowedBounds = new google.maps.LatLngBounds(
new google.maps.LatLng(51.4721,-.1829),
new google.maps.LatLng(51.5797,-.0443)
);
function getSize() {
var myWidth = 0, myHeight = 0;
if( typeof( window.innerWidth ) == 'number' ) {
//Non-IE
myWidth = window.innerWidth;
myHeight = window.innerHeight;
} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
//IE 6+ in 'standards compliant mode'
myWidth = document.documentElement.clientWidth;
myHeight = document.documentElement.clientHeight;
} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
//IE 4 compatible
myWidth = document.body.clientWidth;
myHeight = document.body.clientHeight;
}
//window.alert( 'Width = ' + myWidth );
if (myWidth == 0) myWidth = 620;
if (myHeight == 0) myHeight = 500;
return {height: myHeight, width: myWidth};
//window.alert( 'Height = ' + myHeight );
}
function doResize() {
var dimensions = getSize();
var mapHeight = dimensions.height;
var mapWidth = dimensions.width;
//alert('inside page: ' + mapHeight + ',' + mapWidth);
var headerHeight = $("#header").height();
var recenterTop = 20;
if (headerHeight) {
mapHeight = mapHeight - headerHeight;
recenterTop = headerHeight; // removed the + 12 so it's flush with top
}
$("#bg").width(dimensions.width);
$("#bg").height(dimensions.height);
$("#map_canvas").width(mapWidth + 'px');
$("#map_canvas").height(mapHeight + 'px');
$("#recenter_embed").css('top',recenterTop + 'px');
$("#legend").css('top',(headerHeight+1) + 'px');
$("#legend_opener").css('top',recenterTop + 'px');
}
function recenter() {
//showLegend();
doRecenterAction();
if (infowindow != "")
infowindow.close();
}
function doRecenterAction() {
map.fitBounds(bounds);
//alert(map.getZoom());
if (isMobile()) {
map.setZoom(5);
//alert(map.getZoom());
}
}
function initialize() {
if (isMobile()) {
mapCenter = mobileCenter;
$("#back_button").show();
$("#legend_opener").css('right','38px');
$("#recenter_embed").hide();
$("#recenter_right").show();
}
else
{
showLegend();
}
doResize();
var chilled = [{"featureType":"road","elementType":"geometry","stylers":[{"visibility":"simplified"}]},{"featureType":"road.arterial","stylers":[{"hue":149},{"saturation":-78},{"lightness":0}]},{"featureType":"road.highway","stylers":[{"hue":-31},{"saturation":-40},{"lightness":2.8}]},{"featureType":"poi","elementType":"label","stylers":[{"visibility":"off"}]},{"featureType":"landscape","stylers":[{"hue":163},{"saturation":-26},{"lightness":-1.1}]},{"featureType":"transit","stylers":[{"visibility":"off"}]},{"featureType":"water","stylers":[{"hue":3},{"saturation":-24.24},{"lightness":-38.57}]}];
var cleanCut = [{"featureType":"road","elementType":"geometry","stylers":[{"lightness":100},{"visibility":"simplified"}]},{"featureType":"water","elementType":"geometry","stylers":[{"visibility":"on"},{"color":"#C6E2FF"}]},{"featureType":"poi","elementType":"geometry.fill","stylers":[{"color":"#C5E3BF"}]},{"featureType":"road","elementType":"geometry.fill","stylers":[{"color":"#D1D1B8"}]}];
var mine = [{"featureType":"road.highway.controlled_access","elementType":"geometry","stylers":[{"visibility":"on"}]},{"featureType":"poi.government"},{"featureType":"landscape.man_made","stylers":[{"hue":"#22ff00"},{"lightness":17}]},{"featureType":"administrative.country","stylers":[{"visibility":"off"}]},{"featureType":"administrative.province","stylers":[{"visibility":"off"}]},{"featureType":"administrative.locality","stylers":[{"visibility":"off"}]},{"featureType":"administrative.neighborhood","stylers":[{"visibility":"off"}]},{},{"featureType":"landscape.natural","stylers":[{"hue":"#1aff00"},{"saturation":-40}]},{"featureType":"poi","stylers":[{"visibility":"off"}]},{"featureType":"road.highway","stylers":[{"hue":"#ff0000"},{"saturation":-85},{"gamma":1.27}]},{"featureType":"road.arterial","stylers":[{"hue":"#ff0000"},{"saturation":38}]},{"featureType":"road.local","stylers":[{"hue":"#ff0000"},{"saturation":-74},{"lightness":-16}]},{}];
var disablePoi = [
{
featureType: "poi",
stylers: [
{ visibility: "off" }
]
}
];
var oldTimey = [{"featureType":"administrative","stylers":[{"visibility":"off"}]},{"featureType":"poi","stylers":[{"visibility":"off"}]},{"featureType":"road","stylers":[{"visibility":"simplified"}]},{"featureType":"water","stylers":[{"visibility":"simplified"}]},{"featureType":"transit","stylers":[{"visibility":"simplified"}]},{"featureType":"landscape","stylers":[{"visibility":"simplified"}]},{"featureType":"road.highway","stylers":[{"visibility":"off"}]},{"featureType":"road.local","stylers":[{"visibility":"on"}]},{"featureType":"road.highway","elementType":"geometry","stylers":[{"visibility":"on"}]},{"featureType":"water","stylers":[{"color":"#84afa3"},{"lightness":52}]},{"stylers":[{"saturation":-77}]},{"featureType":"road"}];
var mutedBrown = [{"elementType":"geometry","stylers":[{"hue":"#ff4400"},{"saturation":-68},{"lightness":-4},{"gamma":0.72}]},{"featureType":"poi","stylers":[{"visibility":"off"}]},{"featureType":"road","elementType":"labels.icon"},{"featureType":"landscape.man_made","elementType":"geometry","stylers":[{"hue":"#0077ff"},{"gamma":3.1}]},{"featureType":"water","stylers":[{"hue":"#00ccff"},{"gamma":0.44},{"saturation":-33}]},{"featureType":"poi.park","stylers":[{"hue":"#44ff00"},{"saturation":-23}]},{"featureType":"water","elementType":"labels.text.fill","stylers":[{"hue":"#007fff"},{"gamma":0.77},{"saturation":65},{"lightness":99}]},{"featureType":"water","elementType":"labels.text.stroke","stylers":[{"gamma":0.11},{"weight":5.6},{"saturation":99},{"hue":"#0091ff"},{"lightness":-86}]},{"featureType":"transit.line","elementType":"geometry","stylers":[{"lightness":-48},{"hue":"#ff5e00"},{"gamma":1.2},{"saturation":-23}]},{"featureType":"transit","elementType":"labels.text.stroke","stylers":[{"saturation":-64},{"hue":"#ff9100"},{"lightness":16},{"gamma":0.47},{"weight":2.7}]}];
var apple = [{"featureType":"landscape.man_made","elementType":"geometry","stylers":[{"color":"#f7f1df"}]},{"featureType":"landscape.natural","elementType":"geometry","stylers":[{"color":"#d0e3b4"}]},{"featureType":"landscape.natural.terrain","elementType":"geometry","stylers":[{"visibility":"off"}]},{"featureType":"poi","elementType":"labels","stylers":[{"visibility":"off"}]},{"featureType":"poi.business","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"poi.medical","elementType":"geometry","stylers":[{"color":"#fbd3da"}]},{"featureType":"poi.park","elementType":"geometry","stylers":[{"color":"#bde6ab"}]},{"featureType":"road","elementType":"geometry.stroke","stylers":[{"visibility":"off"}]},{"featureType":"road","elementType":"labels","stylers":[{"visibility":"off"}]},{"featureType":"road.highway","elementType":"geometry.fill","stylers":[{"color":"#ffe15f"}]},{"featureType":"road.highway","elementType":"geometry.stroke","stylers":[{"color":"#efd151"}]},{"featureType":"road.arterial","elementType":"geometry.fill","stylers":[{"color":"#ffffff"}]},{"featureType":"road.local","elementType":"geometry.fill","stylers":[{"color":"black"}]},{"featureType":"transit.station.airport","elementType":"geometry.fill","stylers":[{"color":"#cfb2db"}]},{"featureType":"water","elementType":"geometry","stylers":[{"color":"#a2daf2"}]}];
var paper = [{"featureType":"administrative","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"landscape","elementType":"all","stylers":[{"visibility":"simplified"},{"hue":"#0066ff"},{"saturation":74},{"lightness":100}]},{"featureType":"poi","elementType":"all","stylers":[{"visibility":"simplified"}]},{"featureType":"road","elementType":"all","stylers":[{"visibility":"simplified"}]},{"featureType":"road.highway","elementType":"all","stylers":[{"visibility":"off"},{"weight":0.6},{"saturation":-85},{"lightness":61}]},{"featureType":"road.highway","elementType":"geometry","stylers":[{"visibility":"on"}]},{"featureType":"road.arterial","elementType":"all","stylers":[{"visibility":"on"}]},{"featureType":"road.local","elementType":"all","stylers":[{"visibility":"on"}]},{"featureType":"transit","elementType":"all","stylers":[{"visibility":"simplified"}]},{"featureType":"water","elementType":"all","stylers":[{"visibility":"simplified"},{"color":"#5f94ff"},{"lightness":26},{"gamma":5.86}]}];
var mapbox = [{"featureType":"water","stylers":[{"saturation":43},{"lightness":-11},{"hue":"#0088ff"}]},{"featureType":"road","elementType":"geometry.fill","stylers":[{"hue":"#ff0000"},{"saturation":-100},{"lightness":99}]},{"featureType":"road","elementType":"geometry.stroke","stylers":[{"color":"#808080"},{"lightness":54}]},{"featureType":"landscape.man_made","elementType":"geometry.fill","stylers":[{"color":"#ece2d9"}]},{"featureType":"poi.park","elementType":"geometry.fill","stylers":[{"color":"#ccdca1"}]},{"featureType":"road","elementType":"labels.text.fill","stylers":[{"color":"#767676"}]},{"featureType":"road","elementType":"labels.text.stroke","stylers":[{"color":"#ffffff"}]},{"featureType":"poi","stylers":[{"visibility":"off"}]},{"featureType":"landscape.natural","elementType":"geometry.fill","stylers":[{"visibility":"on"},{"color":"#b8cb93"}]},{"featureType":"poi.park","stylers":[{"visibility":"on"}]},{"featureType":"poi.sports_complex","stylers":[{"visibility":"on"}]},{"featureType":"poi.medical","stylers":[{"visibility":"on"}]},{"featureType":"poi.business","stylers":[{"visibility":"simplified"}]}];
var myOptions = {
zoom : initialZoom,
center : mapCenter,
mapTypeId : google.maps.MapTypeId.ROADMAP,
mapTypeControl : false,
panControl: false,
zoomControl: false,
scaleControl: false,
streetViewControl: false,
styles: mapbox
}
if (isAndroid || isiPhone) {
myOptions = {
zoom : initialZoom,
center : mapCenter,
mapTypeId : google.maps.MapTypeId.ROADMAP,
mapTypeControl : false,
panControl: false,
zoomControl: false,
scaleControl: false,
streetViewControl: false,
styles: mapbox
}
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
google.maps.event.addListener(map, "click", function (e) {
if (isMobile()) hideLegend();
closePopup();
});
google.maps.event.addListener(map, "drag", function (e) {
if (isMobile()) hideLegend();
});
for (var i = 0, length = surveyData.length; i < length; i++) {
addPin(surveyData[i]);
}
doRecenterAction();
}
window.onresize = function (event) {
doResize();
}
$(document).ready(function () {
$(window).bind('resize', doResize());
$(window).trigger('resize');
});
$(document).ready(function () {
initialize();
});
var template = '<div class="bubble-main">' +
'<div class="emphasis-bar"></div>' +
'<div class="location-title">{city}</div>' +
'<div class="bubble-inner">' +
'<div class="clearfix divider1"></div>' +
'<div class="signalblock-wrapper">' +
'<div class="stat-row">' +
'<div class="signalblock-column1">' +
'<div class="block-title">Trouble<br />making calls:</div>' +
'</div>' +
'<div class="signalblock-column2">' +
'<div class="pct">{trouble_making_pct}%</div>' +
'</div>' +
'<div class="signalblock-column3">' +
'<div class="block-title">Worst room<br />for blackspots:</div>' +
'</div>' +
'<div class="signalblock-column4">' +
'<div class="block-stat">{worst_room}</div>' +
'</div>' +
'</div>' +
'<div class="clearfix"></div>' +
'<div class="stat-row">' +
'<div class="signalblock-column1">' +
'<div class="block-title">Trouble with<br />mobile data:</div>' +
'</div>' +
'<div class="signalblock-column2">' +
'<div class="pct">{trouble_internet_pct}%</div>' +
'</div>' +
' <div class="signalblock-column3">' +
'<div class="block-title">Most<br />complaints:</div>' +
'</div>' +
'<div class="signalblock-column4">' +
'<div class="block-stat">{most_complaints}</div>' +
'</div>' +
'</div>' +
'<div class="clearfix"></div>' +
'<div class="stat-row">' +
'<div class="signalblock-column1">' +
'<div class="block-title">Trouble<br />receiving calls:</div>' +
'</div>' +
'<div class="signalblock-column2">' +
'<div class="pct">{trouble_receiving_pct}%</div>' +
'</div>' +
'<div class="signalblock-column3">' +
'<div class="block-title">Fewest complaints:</div>' +
'</div>' +
'<div class="signalblock-column4">' +
'<div class="block-stat">{fewest_complaints}</div>' +
'</div>' +
'</div>' +
'<div class="clearfix"></div>' +
'</div>' +
'<div class="clearfix divider1"></div>' +
'<div class="bubble-footer">' +
'<div class="maphook-logo"><a href="http://www.maphook.com" target="_blank"> <img width="71" border="0" height="29" alt="" src="images/mh-small-logo.png" alight="left"> </a></div>' +
'<div class="gws-logo"> <a href="http://www.gwsolutions.com" target="_blank"> <img width="43" border="0" align="right" height="28" style="margin-right: 8px;" src="http://b43be75d9da2bcede307-fe0d0a85cf8322c1eb93c10ee9412de9.r25.cf5.rackcdn.com/gws-logo-forbubble.png"> </a> </div>' +
'<div class="onepoll-logo"><a href="http://news.onepoll.com" target="_blank"><img src="images/logo_onepoll_sm.png" border="0" height="21" style="margin-top: 4px;" /></a></div>' +
'</div>' +
'</div>' +
'</div>';
/* Removed caret portion
'<div class="bubble-carret">' +
'<div style="position: relative; margin-top: 0px;">' +
'<div class="down-arrow"></div>' +
'</div>' +
'</div>';
*/
var surveyData = [{"city":"London","latitude":51.5072,"longitude":-0.1275,"trouble_making":"40.64","trouble_receiving":"35.86","trouble_internet":"34.26","worst_room":"Living room","most_complaints":"3","fewest_complaints":"Vodafone"},
{"city":"Edinburgh","latitude":55.9531,"longitude":-3.1889,"trouble_making":"31.82","trouble_receiving":"27.27","trouble_internet":"31.82","worst_room":"Living room","most_complaints":"EE","fewest_complaints":"Vodafone"},
{"city":"Cardiff","latitude":51.4833,"longitude":-3.1833,"trouble_making":"47.54","trouble_receiving":"47.54","trouble_internet":"36.07","worst_room":"Kitchen","most_complaints":"3/O2","fewest_complaints":"Vodafone"},
{"city":"Belfast","latitude":54.597,"longitude":-5.93,"trouble_making":"34.69","trouble_receiving":"32.65","trouble_internet":"36.73","worst_room":"Kitchen","most_complaints":"O2","fewest_complaints":"3"},
{"city":"Bristol","latitude":51.45,"longitude":-2.5833,"trouble_making":"38.57","trouble_receiving":"32.86","trouble_internet":"38.57","worst_room":"Living room","most_complaints":"O2","fewest_complaints":"EE"},
{"city":"Birmingham","latitude":52.4831,"longitude":-1.8936,"trouble_making":"34.48","trouble_receiving":"31.03","trouble_internet":"30.17","worst_room":"Living room","most_complaints":"EE","fewest_complaints":"Vodafone"},
{"city":"Nottingham","latitude":52.95,"longitude":-1.1333,"trouble_making":"24.24","trouble_receiving":"22.73","trouble_internet":"24.24","worst_room":"Bedroom","most_complaints":"3","fewest_complaints":"O2"},
{"city":"Liverpool","latitude":53.4,"longitude":-3,"trouble_making":"36.36","trouble_receiving":"38.18","trouble_internet":"40","worst_room":"Living room","most_complaints":"3","fewest_complaints":"EE"},
{"city":"Manchester","latitude":53.4667,"longitude":-2.2333,"trouble_making":"29.37","trouble_receiving":"26.19","trouble_internet":"30.95","worst_room":"Living room","most_complaints":"3","fewest_complaints":"Vodafone"},
{"city":"Glasgow","latitude":55.858,"longitude":-4.259,"trouble_making":"16.67","trouble_receiving":"16.67","trouble_internet":"21.21","worst_room":"Kitchen","most_complaints":"Vodafone","fewest_complaints":"EE"},
{"city":"Sheffield","latitude":53.3836,"longitude":-1.4669,"trouble_making":"28.13","trouble_receiving":"25","trouble_internet":"28.13","worst_room":"Kitchen","most_complaints":"Vodafone","fewest_complaints":"3"},
{"city":"Leicester","latitude":52.6333,"longitude":-1.1333,"trouble_making":"34.62","trouble_receiving":"30.77","trouble_internet":"28.85","worst_room":"Kitchen","most_complaints":"Vodafone","fewest_complaints":"3"},
{"city":"Southampton","latitude":50.9,"longitude":-1.4,"trouble_making":"26.58","trouble_receiving":"25.32","trouble_internet":"25.32","worst_room":"Kitchen","most_complaints":"O2","fewest_complaints":"Vodafone"},
{"city":"Leeds","latitude":53.7997,"longitude":-1.5492,"trouble_making":"39.22","trouble_receiving":"31.37","trouble_internet":"29.41","worst_room":"Bedroom","most_complaints":"Vodafone","fewest_complaints":"3"},
{"city":"Norwich","latitude":52.632851,"longitude":1.290969,"trouble_making":"35.82","trouble_receiving":"31.34","trouble_internet":"34.33","worst_room":"Living room","most_complaints":"EE","fewest_complaints":"3"},
];