KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /domains/gwsolutions/js/homes_hex.js
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 mapCenterOriginal = new google.maps.LatLng(51.5184,-0.133527);
var mapCenter = new google.maps.LatLng(51.536757, -0.136618);			// new center based on Matt's laptop to make sure to include northern most pin
var mobileCenter = new google.maps.LatLng(51.5184,-0.133527);
var lastValidCenter = mapCenter;
var initialZoom = 11;
var maxZoom = 14;

var bubbleOffsetHeight = 0;


function addPin(data) {
	//var newLat = Math.round(data.Latitude * 150) / 150;
	//var newLong = Math.round(data.Longitude * 150) / 150;
	var newLat = data.Latitude;
	var newLong = data.Longitude;
	var myLatlng = new google.maps.LatLng(newLat,newLong);
	var icon = gwsPinHexHouse();
	
//	alert(icon);
	
	bounds.extend(myLatlng);

	var marker = new google.maps.Marker({
			position : myLatlng,
			map : map,
			icon : icon,
			/*title : data['House_UI']*/
			title: ''
		});

	google.maps.event.addListener(marker,'click',function() {
			if (isMobile()) {
				showData(data);
			}
			else	
				hookBalloon(map, marker, data);
	});	
	
	gmarkers.push(marker);
	return marker;
}

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 = '';
var currentData = '';

// this version loads full screen all the data
function showData(jData) {
	$("#full_popup_content").html(formatData(jData,false));
	$("#full_popup").show();
}

// this versions shows in a popup
function hookBalloon(map, marker, jData) {

	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
	
	//contentString = getSampleData();
	contentString = formatData(jData,true);
	
	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 : 'popbubble',
			arrowStyle : 0
		});
	infowindow.setBubbleOffset(0,bubbleOffsetHeight);
	infowindow.open(map, marker);
	
}


function closePopup() {
	if (infowindow != "")
		infowindow.close();
		
	$("#street-view").hide();
}

function isMobile() {
	var iOS = ( navigator.userAgent.match(/(iPad|iPhone|iPod)/g) ? true : false );
	var ua = navigator.userAgent.toLowerCase();
	var isAndroid = ua.indexOf("android") > -1;
	return iOS || 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));
}

function gwsPin() {
	
	return new google.maps.MarkerImage('images/signalHome-Pin-opt1.png',
		new google.maps.Size(42, 41),
		new google.maps.Point(0, 0),
		new google.maps.Point(42, 41));
}


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 gwsPinHexHouse() {
	
	return new google.maps.MarkerImage('images/signalHome-Pin-opt2.png',
		new google.maps.Size(39, 34),
		new google.maps.Point(0, 0),
		new google.maps.Point(19, 34));
}




// 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;
	var fullPopupHeight = dimensions.height;
	
	//alert(dimensions.height)
	var headerHeight = $("#header").height();
	var recenterTop  = 20;
	if (headerHeight) {
		mapHeight = mapHeight - headerHeight;
		recenterTop = headerHeight; // + 12;
	}
	$("#bg").width(dimensions.width);
	$("#bg").height(dimensions.height);
	$("#map_canvas").width(mapWidth + 'px');
	$("#map_canvas").height(mapHeight + 'px');
	$("#recenter_embed").css('top',recenterTop + 'px');
	$("#full_popup").height(fullPopupHeight + 'px');
	$("#full_popup_content").height((fullPopupHeight - 30) + 'px');
	$("#full_popup_content").width(mapWidth + 'px');
	
	
}
	
function recenter() {
	doRecenterAction(true);
	if (infowindow != "")
		infowindow.close();
}

function doRecenterAction(clicked) {
	
	if (isMobile() && clicked) {
		
		map.fitBounds(bounds);
		map.setZoom(map.getZoom() + 1);
	}
	else {
		map.setCenter(mapCenter);
		map.setZoom(initialZoom);
	}
}

function initialize() {
	
	if (isMobile()) {
		mapCenter = mobileCenter;
	}
	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) {
		closePopup();
	});
	
	google.maps.event.addListener(map,"zoom_changed", function() {
		
		if (map.getZoom() > maxZoom) map.setZoom(maxZoom);
		
			/*
		var width = 20 + (8 *(map.getZoom() - 9));		// 8 was 5
		var ratio = width / 40;
		var height = 26.6 * ratio;
	
		//alert(width + ',' + ratio + ',' + height);
		width = 70;
		height = 120;
		for(i=0; i< gmarkers.length; i++ ) {
			var icon = gmarkers[i].getIcon();
			gmarkers[i].setIcon(
				icon.url,
				new google.maps.Size(width, height),
				new google.maps.Point(0, 0),
				new google.maps.Point(0, 0),
				new google.maps.Size(width, height)
			);
		}*/

	});
	
	for (var i = 0, length = homeData.length; i < length; i++) {
		addPin(homeData[i]);
	}
	
	doRecenterAction(false);
}

window.onresize = function (event) {
	doResize();
}		

$(document).ready(function () {
    $(window).bind('resize', doResize());
    $(window).trigger('resize');


});


$(document).ready(function () {
	initialize();
	//loadSample();
});

function loadSample() {
	
	$("#full_popup_content").html(getSampleData());
	$("#full_popup").show();
}


var carrierBlockOpen = '<div class="signalblock-wrapper">' +
						'<div class="stat-row">';
     
var carrierBlockClose = '</div>' + 
						'</div>';

var statBlock = '<div class="signalblock-column1">{logo}</div>' +
      '<div class="signalblock-column2">{measure}</div>' +
      '<div class="signalblock-column3">' +
        '<div class="bargraph indoor" style="width:{in}%" title="{in_value}"></div>' +
        '<div class="bargraph outdoor" style="width:{out}%" title="{out_value}"></div>' +
      '</div>' +
      '<div class="clearfix"></div>';					
	  
var statBlockNoOutside = '<div class="signalblock-column1">{logo}</div>' +
      '<div class="signalblock-column2">{measure}</div>' +
      '<div class="signalblock-column3">' +
        '<div class="bargraph indoor" style="width:{in}%" title="{in_value}"></div>' +
        '<div class="bargraph outdoor_na" style="width:100%"><!--not tested--></div>' +
      '</div>' +
      '<div class="clearfix"></div>';	

var speedBlock = 	'<div class="signalblock-column1"></div>' +
      '<div class="signalblock-column2">{measure}</div>' +
      '<div class="signalblock-column3"><div class="indoor_text">{in_value}</div> <div class="outdoor_text">{out_value}</div>' +
      '</div>' +
      '<div class="clearfix"></div>';	  
	  
var bubbleBottom = '<div class="bubble-key">' +
		'<div class="keybox indoor"></div>' +
		'<div class="key-label">Inside House</div>' +
		'<div class="keybox"></div>' +
		'<div class="keybox outdoor"></div>' +
		'<div class="key-label">Outside House</div>' +
	  '</div>' +
	  '<div class="clearfix"></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>' +
	'</div>';
	/*
	 removed arrow
	'<div class="bubble-carret">' +
	  '<div style="position: relative; margin-top: 0px;">' +
		'<div class="down-arrow"></div>' +
	  '</div>' +
	'</div>';
	  */
function formatData(obj,showTitleBar) {
	var carriers = ["EE","3","O2","Vodafone"];
	var carrier_tag = ["ee","3","o2","vf"];
	var output = "";
	
	if (isMobile()) {
		output += '<div class="bubble-main-mobile">';
	}
	else {
		output += '<div class="bubble-main">';
	}
	
	
	if (showTitleBar)
		output += '<div class="signalblock-wrapper">' +
					'<div class="test-result-title">Test Results</div></div>' +
					'<div class="clearfix"></div>';
	/* SCALE BARS  */
	output += '<div class="signalblock-wrapper">' + 
		'<div class="stat-row" style="height:8px">' + 
		'<div class="signalblock-column1" style="height:11px"></div>' + 
		'<div class="signalblock-column2" style="height:11px">&nbsp;</div>' + 
		'<div class="signalblock-column3" style="height:11px">' + 
        '<div class="scale" style="width:100%; height:11px; color:#777777"><div style="float:left">50%</div><div style="float:right">100%</div></div>' + 
		'</div>' + 
		'</div>' + 
		'<div class="stat-row" style="height:8px">' + 
		'<div class="signalblock-column1" style="height:8px"></div>' + 
		'<div class="signalblock-column2" style="height:8px">&nbsp;</div>' + 
		'<div class="signalblock-column3" style="height:8px">' + 
        '<div class="scale" style="width:100%; height:8px; border-left:1px solid #999999; border-right:1px solid #999999"></div>' + 
		'</div>' + 
		'</div>' + 
		'</div>' +
		'<div class="clearfix divider1 nomargin-top"></div>';
					
	for (var i = 0; i < carriers.length; i++) {
		var carrier = carriers[i];
		var carrstr = carrier_tag[i];
		//output += '<div class="carrier_stats">' +
		//		'<div class="carrier_name">' + carrier + '</div><br />';
		
		output += carrierBlockOpen;
		
		for (var j = 0; j < measurements.length; j++) {
			var caption = measurements[j].name;
			var measureIN = carrstr + '_' + measurements[j].data + '_in';
			var measureOUT = carrstr + '_' + measurements[j].data + '_out';
			var inValue = obj[measureIN];
			var outValue = obj[measureOUT];
			var inValText = inValue;
			var outValText = outValue;
			var maxText = caption;
			var label = '%';
			var carrier_logo = '<img src="images/housemap-logo-' + carrstr + '.png" alt="' + carrier + '" title="' + carrier + '" />';
			// For throughputs, we need to divide by the max, so we can plot out of 100%
			if (measurements[j].data == 'data_dl')
			{
				maxText = 'dl (' + obj.max_down + ')';
				//inValue = (inValue / obj.max_down) * 100;
				//outValue = (outValue / obj.max_down) * 100;
				inValue = Math.round(inValText * 10)/10;
				outValue = Math.round(outValText * 10)/10;
				label = 'Mbps';
			}
			else if (measurements[j].data == 'data_ul')
			{
				maxText = 'ul (' + obj.max_up + ')';
				//inValue = (inValue / obj.max_up) * 100;
				//outValue = (outValue / obj.max_up) * 100;
				inValue = Math.round(inValText * 10)/10;
				outValue = Math.round(outValText * 10)/10;
				label = 'Mbps';
			}
			else {
				//inValue = (Math.exp((inValue/100) * 3) / Math.exp(3)) * 100;	
				
				if (Math.round(eval(inValue)) <= 50) {
					inValue = 5;
					inValText = '';
				}
				else {
					inValue = (inValue - 50)*2;
					inValText = Math.round(inValText*10)/10;
				}
				
				if (outValue == '') { 
					outValue = 5;
					outValText = '';
				}
				else if (Math.round(eval(outValue)) <= 50) {
					outValue = 5;
					if (outValue.toString() == '50')
						outValtext = '50';
					else
						outValtext = 'Less than 50%';
				}
				else
				{
					//outValue = (Math.exp((outValue/100) * 3) / Math.exp(3)) * 100;
					outValue = (outValue - 50)*2;
					outValText = Math.round(outValText*10)/10;
				}
				
				
			}
			
			var statInfo = '';
			
			if (measurements[j].data == 'data_ul' || measurements[j].data == 'data_dl') 
			{
				
				statInfo = speedBlock.replace('{measure}',measurements[j].name)
										   .replace('{in_value}',inValue + 'Mbps');
				
				if (outValue.toString() == '0') statInfo = statInfo.replace('{out_value}','')
				else statInfo = statInfo.replace('{out_value}',outValue + 'Mbps');
				
			}
			else {
				statInfo = generateBarsNew(measurements[j].name,inValue,outValue,inValText,outValText,label);
				
			}
			if (j == 0) statInfo = statInfo.replace('{logo}',carrier_logo);
				else statInfo = statInfo.replace('{logo}','');
				output += statInfo;
			
		}
		
		output += carrierBlockClose;
		
		if (isMobile())
			output = output.replaceAll('Data upload','Upload')
						.replaceAll('Data download','Download');
						
		//if (i < carriers.length - 1)
			output += '<div class="clearfix divider1"></div>';
	}
	
	output += bubbleBottom;
	
	return output;
}

function getSampleData()
{
	return formatData(dummyRecord);
	
}

function closeFullPopup()
{
	$("#full_popup").hide();
}

function generateBarsNew(type,in_value, out_value,in_text, out_text, label) {
	var output = "";

	
	
	
	if (out_text == '') output = statBlockNoOutside;
	else output = statBlock;
	
	if (out_text == '') out_text = 'Outside: Not tested';
	else if (out_text == 'Less than 50%') out_text = 'Outside: Less than 50%'; 
	else out_text = 'Outside: ' + out_text + label;
	
	if (in_text == '') in_text = 'Inside: Less than 50%';
	else in_text = 'Inside: '+ in_text + label;
	
	output = output.replace('{measure}',type)
					  .replace('{in}',in_value)
					  .replace('{out}',out_value)
					  .replace('{in_value}',in_text)
					  .replace('{out_value}',out_text)
	return output;
}

function generateBars(type, in_value, out_value,in_text, out_text, label) {
	var output = "";
	var fullWidth = 250;
	var caption = 'Inside: '+ in_text + label + ', Outside: ' ;
	if (out_text == 'Failed') caption += out_text;
	else caption += out_text + label;

	var inLine = '<div class="bar bars_' + type + '_in" style="width:' + in_value*fullWidth + 'px;" title="' + caption + '"></div>';
	var outLine = '<div class="bar bars_' + type + '_out" style="width:' + out_value*fullWidth + 'px;" title="' + caption + '"></div>';
	
	// draw whichever one has a higher number first, so the smaller one goes on top
	output = '<div class="bars">';
	if (in_value > out_value)
		output += inLine + outLine;
	else 
		output += outLine + inLine;

	output += '</div>';
	return output;
}

var measurements = [
	{"type": "Voice", "name": "Voice reliability", "data": "voice_rel"},
	/*{"type": "Voice", "name": "Voice quality", "data": "voice_qual"},*/		// removed per Matt e-amil 6/11/2015
	{"type": "Data", "name": "Data reliability", "data": "data_rel"},
	{"type": "Data", "name": "Data upload speed", "data": "data_ul"},
	{"type": "Data", "name": "Data download speed", "data": "data_dl"},
	
	
];

var dummyRecord = {
	"ee_voice_rel_in": 		.45,
	"ee_voice_rel_out": 	.75,
	"ee_voice_qual_in":		.78, 
	"ee_voice_qual_out":	.98,
	"ee_data_ul_in":		.82,
	"ee_data_ul_out":		.88,
	"ee_data_dl_in":		.55,
	"ee_data_dl_out":		.66,
	"ee_data_rel_in":		.65,
	"ee_data_rel_out":		.76,
	"3_voice_rel_in": 		.45,
	"3_voice_rel_out": 		.75,
	"3_voice_qual_in":		.78, 
	"3_voice_qual_out":		.90,
	"3_data_ul_in":			.82,
	"3_data_ul_out":		.88,
	"3_data_dl_in":			.65,
	"3_data_dl_out":		.90,
	"3_data_rel_in":		.65,
	"3_data_rel_out":		.76,
	"o2_voice_rel_in": 		.45,
	"o2_voice_rel_out": 	.75,
	"o2_voice_qual_in":		.88, 
	"o2_voice_qual_out":	.98,
	"o2_data_ul_in":		.82,
	"o2_data_ul_out":		.88,
	"o2_data_dl_in":		.58,
	"o2_data_dl_out":		.42,
	"o2_data_rel_in":		.65,
	"o2_data_rel_out":		.76,
	"vodafone_voice_rel_in": 	.45,
	"vodafone_voice_rel_out": 	.75,
	"vodafone_voice_qual_in":	.78, 
	"vodafone_voice_qual_out":	.98,
	"vodafone_data_ul_in":		.82,
	"vodafone_data_ul_out":		.88,
	"vodafone_data_dl_in":		.65,
	"vodafone_data_dl_out":		.76,
	"vodafone_data_rel_in":		.68,
	"vodafone_data_rel_out":	.71,
};

Anon7 - 2021