function initMapFromHash()
{
	var region = hash['region'];
	var theme_menu = hash['theme_menu'];
	var layer1 = hash['layer1'];
	var layer2 = hash['layer2'];
	var center_lat = hash['center_lat'];
	var center_lng = hash['center_lng'];
	var lat_min = hash['lat_min'];
	var lat_max = hash['lat_max'];
	var lng_min = hash['lng_min'];
	var lng_max = hash['lng_max'];
	var scale = hash['scale']; 
	var zone = hash['zone']; 
	var stat_type = hash['stat_type']; 

	if (region == undefined) {region = "Minneapolis--St. Paul, MN--WI";}
	if (region != undefined) {document.getElementById("region").value=region;}
	if (theme_menu == undefined) {theme_menu = '0';}
	if (layer1 != undefined) {document.getElementById('layer1').value=layer1;}
	if (layer2 != undefined) {document.getElementById('layer2').value=layer2;}
	if (layer1 != undefined && layer2 != undefined) {views[1] = "Custom Compare|"+layer1+"|"+layer2;}
	if (center_lat != undefined) {document.getElementById('center_lat').value=center_lat;}
	if (center_lng != undefined) {document.getElementById('center_lng').value=center_lng;}
	if (lat_min != undefined) {document.getElementById('lat_min').value=lat_min;}
	if (lat_max != undefined) {document.getElementById('lat_max').value=lat_max;}
	if (lng_min != undefined) {document.getElementById('lng_min').value=lng_min;}
	if (lng_max != undefined) {document.getElementById('lng_max').value=lng_max;}
	if (scale != undefined) {document.getElementById('ui_scale').value=scale;}
	if (zone != undefined) {document.getElementById('zone').value=zone;}
	
	if (theme_menu == 1) {document.getElementById('highlight').style.display='block';}
//	alert(document.getElementById('highlight').innerHTML);
	
	initComparison(theme_menu);
	if (center_lat == undefined 
		|| center_lng == undefined 
		|| lat_min == undefined
		|| lat_max == undefined
		|| lng_min == undefined
		|| lng_max == undefined
		|| scale == undefined 
		|| zone == undefined
	)
	{
		setRegion(region);
	}
	else
{
		getRegionTitle(region);
		getMap(1);
		getLegend(1);
		getMap(2);
		getLegend(2);
	}
	if (stat_type != undefined) {flipStat(stat_type);}
}

function refreshMapFromHash() //for IE8
{
	var region = hash['region'];
	var theme_menu = hash['theme_menu'];
	var layer1 = hash['layer1'];
	var layer2 = hash['layer2'];

	if (region == undefined) {region = "Minneapolis--St. Paul, MN--WI";}
	if (region != undefined) {document.getElementById("region").value=region;}
	if (theme_menu == undefined) {theme_menu = '0';}
	if (layer1 != undefined) {document.getElementById('layer1').value=layer1;}
	if (layer2 != undefined) {document.getElementById('layer2').value=layer2;}
	if (layer1 != undefined && layer2 != undefined) {views[1] = "Custom Compare|"+layer1+"|"+layer2;}
	
	if (theme_menu == 1) {document.getElementById('highlight').style.display='block';}
//	alert(document.getElementById('highlight').innerHTML);
	
//	initComparison(theme_menu);
	getRegionTitle(region);
	getMap(1);
	getLegend(1);
	getMap(2);
	getLegend(2);
}


function buildPermalink()
{
	var center_lat = document.getElementById('center_lat').value;
	var center_lng = document.getElementById('center_lng').value;
	var lat_min = document.getElementById('lat_min').value;
	var lat_max = document.getElementById('lat_max').value;
	var lng_min = document.getElementById('lng_min').value;
	var lng_max = document.getElementById('lng_max').value;
	var scale = document.getElementById('ui_scale').value;
	var zone = document.getElementById('zone').value;
    var stat_type = '';
	
	var mapurl1 = document.getElementById('map-url1').src;
	var mapurl2 = document.getElementById('map-url2').src;
	mapurl1 = "maps"+mapurl1.substr(mapurl1.lastIndexOf("/"));
	mapurl2 = "maps"+mapurl2.substr(mapurl2.lastIndexOf("/"));
	var thumb1 = mapurl1.replace("maps", "share");
	var thumb2 = mapurl2.replace("maps", "share");
	
	generateThumb(mapurl1, "1");
	generateThumb(mapurl2, "2");
	
	if (document.getElementById('stat_output1').style.display == 'block') 				{stat_type = 'stat_output';}
	else if (document.getElementById('table1').style.display == 'block') 				{stat_type = 'stat_table';}
	else if (document.getElementById('legend_graph_coarse1').style.display == 'block') 	{stat_type = 'graph_coarse';}
	else if (document.getElementById('legend_graph_fine1').style.display == 'block') 	{stat_type = 'graph_fine';}
	else if (document.getElementById('stats1').style.display == 'block') 				{stat_type = 'graph_lines';}
	else if (document.getElementById('stats_pop1').style.display == 'block') 				{stat_type = 'stat_pop';}
	else if (document.getElementById('stats_hhs1').style.display == 'block') 				{stat_type = 'stat_hhs';}
	else if (document.getElementById('stats_cbg1').style.display == 'block') 				{stat_type = 'stat_cbg';}
	
	var hashAdditions = "&center_lat="+center_lat;
	hashAdditions += "&center_lng="+center_lng;
	hashAdditions += "&lat_min="+lat_min;
	hashAdditions += "&lat_max="+lat_max;
	hashAdditions += "&lng_min="+lng_min;
	hashAdditions += "&lng_max="+lng_max;
	hashAdditions += "&scale="+scale;
	hashAdditions += "&zone="+zone;
	hashAdditions += "&stat_type="+stat_type;
	
	var getAdditions = "?thumb1="+thumb1;
	getAdditions += "&thumb2="+thumb2;

	var permalink = document.getElementById('permalink');
	permalink.value = "http://"+document.location.hostname;
	permalink.value += document.location.pathname;
	permalink.value += getAdditions;
	permalink.value += document.location.hash;
	permalink.value += hashAdditions;
	permalink.focus();
	permalink.select();

	embed_href = permalink.value;
	embed_title = document.title;
	embed_text = "The Housing + Transportation Affordability Index is an innovative tool that measures the true affordability of housing based on its location.";
	generateEmbedCode();

	var permalinkopen = document.getElementById('permalinkopen');
	permalinkopen.href = permalink.value;

	var permalinkemail = document.getElementById('permalinkemail');
	permalinkemail.href = "mailto: ?subject="+embed_title+"&body="+encodeURIComponent(permalink.value);

	var fb_share = document.getElementById('fb_share');
	fb_share.href = "http://www.facebook.com/sharer.php?u="+encodeURIComponent(permalink.value)+"&t="+encodeURIComponent(embed_title);

	var links_via_addthis = document.getElementById('links_via_addthis');
	links_via_addthis.innerHTML = " | <a target=\"_blank\" href=\"http://api.addthis.com/oexchange/0.8/forward/twitter/offer?url="+encodeURIComponent(permalink.value)+"\">Twitter</a>";
	links_via_addthis.innerHTML += " | <a target=\"_blank\" href=\"http://api.addthis.com/oexchange/0.8/forward/linkedin/offer?url="+encodeURIComponent(permalink.value)+"\">LinkedIn</a>";
	links_via_addthis.innerHTML += " | <a target=\"_blank\" href=\"http://api.addthis.com/oexchange/0.8/offer?url="+encodeURIComponent(permalink.value)+"\">More</a>";

}

function generateThumb(img_url, nm)
{
	var http = getHTTPObject(); // We create the HTTP Object
	url = "generate_thumbnail.php?img_url="+img_url;

	http.open("GET", url, true);
	http.onreadystatechange = function() 
	{
		if (http.readyState == 4) 
		{      
			var thumb = http.responseText;
			if (nm==1){embed_thumb1 = thumb;} else {embed_thumb2 = thumb;}
			generateEmbedCode();
		}
	 }
	http.send(null);	
}

var embed_href;
var embed_title;
var embed_text;
var embed_thumb1;
var embed_thumb2;

function generateEmbedCode()
{

	var embedcode = "<div style=\"margin: 4px; padding: 8px; border: 1px solid #717171; width: 560px;\">\n";
	embedcode += "<table border=\"0\">\n";
	embedcode += "<tr>\n";
	embedcode += "<td style=\"width: 124px; padding: 3px 6px 3px 0; vertical-align: top; text-align: left;\">\n";
	embedcode += "<a href=\""+embed_href+"\" target=\"_blank\"><img src=\""+"http://"+document.location.hostname+"/"+embed_thumb1+"\" style=\"float: left; border: 1px solid #717171;\"></a>\n";
	embedcode += "</td>\n";
	embedcode += "<td style=\"width: 124px; padding: 3px 6px 3px 0; vertical-align: top; text-align: left;\">\n";
	embedcode += "<a href=\""+embed_href+"\" target=\"_blank\"><img src=\""+"http://"+document.location.hostname+"/"+embed_thumb2+"\" style=\"float: left; border: 1px solid #717171;\"></a>\n";
	embedcode += "</td>\n";
	embedcode += "<td style=\"width: 300px; margin: 0; padding: 3px 6px 3px 0; font: normal 11.5px/14px Arial, Helvetica, sans-serif; color: #fff; vertical-align: top; text-align: left;\"> \n";
	embedcode += "<h4 style=\"margin: 0;\"><a style=\"color: #3256A2;\" href=\""+embed_href+"\" target=\"_blank\">"+embed_title+"</a></h4>\n";
	embedcode += "<div style=\"color: #000000; margin: 3px 0;\">"+embed_text+"</div>\n";
	embedcode += "</td>\n";
	embedcode += "</tr>\n";
	embedcode += "</table>\n";
	embedcode += "<div style=\"clear: both; margin-top: 10px; border-top: 1px solid #ccc; padding: 10px; text-align: left; color: #666; font: normal 9px/11px Arial, Helvetica, sans-serif;background:url(http://"+document.location.hostname+"/images/cntht.gif) 100% 5px no-repeat;padding-right:130px;\">&copy; Copyright 2003-10 <a href=\"http://www.cnt.org/\">Center for Neighborhood Technology</a> <br /> 2125 W North Ave, Chicago, IL 60647 &middot; Tel: (773) 278-4800 &middot; Fax: (773) 278-3840</div>";
	embedcode += "</div>\n";

	document.getElementById('embed').innerHTML = embedcode;
	document.getElementById('embedcode').value = embedcode;
}

function initDrag() {
	var o1 = document.all ? document.all["map-image1"] : document.getElementById("map-image1");
	var o2 = document.all ? document.all["map-image2"] : document.getElementById("map-image2");
//	var idbox1 = document.all ? document.all["identify-box1"] : document.getElementById("identify-box1");
//	var idbox2 = document.all ? document.all["identify-box2"] : document.getElementById("identify-box2");
		
	x_start  = document.all ? document.all["x_start"] : document.getElementById("x_start");
	y_start = document.all ? document.all["y_start"] : document.getElementById("y_start");
	x_end  = document.all ? document.all["x_end"] : document.getElementById("x_end");
	y_end = document.all ? document.all["y_end"] : document.getElementById("y_end");

	Drag.init(o1, null, (-1*half_width), half_width, (-1*half_height), half_height);
	Drag.init(o2, null, (-1*half_width), half_width, (-1*half_height), half_height);
//	Drag.init(idbox1, null, 0, 225, 0, 260);
//	Drag.init(idbox2, null, 0, 225, 0, 260);

	// report stuff
	o1.onDragStart = function(x, y) { 
		reportDragStart(x, y); 
		closeIdentify(1); 
		closeIdentify(2);
		}
	o2.onDragStart = function(x, y) { 
		reportDragStart(x, y); 
		closeIdentify(1); 
		closeIdentify(2);
		}
	o1.onDragEnd = function(x, y) { 
		reportDragEnd(x, y); 
		x_center = half_width - (x - x_start.value);
		y_center = half_height - (y - y_start.value);
		reportCenter(x_center, y_center);
		if (x_end.value==0 && y_end.value==0) {
		}
		else {
			getMap(1);
			getMap(2);
		}
	}
	o2.onDragEnd = function(x, y) { 
		reportDragEnd(x, y); 
		x_center = half_width - (x - x_start.value);
		y_center = half_height - (y - y_start.value);
		reportCenter(x_center, y_center);
		if (x_end.value==0 && y_end.value==0) {
		}
		else {
			getMap(1);
			getMap(2);
		}
	}

}
function reportDragStart(x, y) {
	x_start.value = 0;
	y_start.value = 0;
}
function reportDragEnd(x, y) {
	x_end.value = x;
	y_end.value = y;
}
function reportCenter(x,y) {
	var center_lng = document.getElementById('center_lng');
	var center_lat = document.getElementById('center_lat');
	center_lng.value = convertX('l',x);
	center_lat.value = convertY('l',y);
}
function repositionMap() {
	var mapimage1 = document.getElementById("map-image1");
	var mapimage2 = document.getElementById("map-image2");
	mapimage1.style.top = 0;
	mapimage2.style.top = 0;
	mapimage1.style.left = 0;
	mapimage2.style.left = 0;
}
	
function convertX(mode,x) {
	var lng_min = document.getElementById("lng_min").value;
	var lng_max = document.getElementById("lng_max").value;
	var px_min = 0;
	var px_max = map_width;
	if (mode=="p") {
		new_x = Math.round((x - lng_min) / (lng_max - lng_min) * (px_max - px_min));
	}
	else if (mode=="l") {
		new_x = (x - px_min) / (px_max - px_min) * (lng_max - lng_min) + parseFloat(lng_min);
	}
	new_x = Math.round(1000000000000*new_x)/1000000000000;
	return new_x;
}
function convertY(mode,y) {
		var lat_min = document.getElementById("lat_min").value;
		var lat_max = document.getElementById("lat_max").value;
		var py_min = 0;
		var py_max = map_height;
	if (mode=="p") {
		new_y = Math.round((lat_max - y) / (lat_max - lat_min) * (py_max - py_min));
		}
	else if (mode=="l") {
		new_y = (py_max - y) / (py_max - py_min) * (lat_max - lat_min) + parseFloat(lat_min) ;
		}
	new_y = Math.round(1000000000000*new_y)/1000000000000;
	return new_y;
	}
	
function centerMap(event) {
	var x = event.layerX ? event.layerX : event.offsetX;
	var y = event.layerY ? event.layerY : event.offsetY;
	reportCenter(x,y);
	getMap(1);
	getMap(2);
	}	

function super_identify(event) {
				 identify(event,1);
				 identify(event,2);
}	

function identify(event,mn) 
{ 
	var lat_min	= document.getElementById("lat_min").value;
	var	lat_max	= document.getElementById("lat_max").value;
	var	lng_min	= document.getElementById("lng_min").value;
	var	lng_max	= document.getElementById("lng_max").value;

	var x = event.layerX ? event.layerX : event.offsetX;
	var y = event.layerY ? event.layerY : event.offsetY;
	
	x_end  = document.all ? document.all['x_end'] : document.getElementById('x_end');
	y_end = document.all ? document.all['y_end'] : document.getElementById('y_end');
	if (x_end.value<2 && x_end.value>-2 && y_end.value<2 && y_end.value>-2) 
	{ //do nothing if dragging
		hourglass();	
		lng = convertX('l',x);
		lat = convertY('l',y);
		var layers = document.getElementById('layer'+mn);
		var http = getHTTPObject(); // We create the HTTP Object
		url = "identify.php?lat_min="+lat_min+"&lat_max="+lat_max+"&lng_min="+lng_min+"&lng_max="+lng_max+"&lat="+lat+"&lng="+lng+"&layers="+layers.value;

		http.open("GET", url, true);
		http.onreadystatechange = function() 
		{
			if (http.readyState == 4) 
			{      
				var jscript = http.responseText;
				show_identify(mn, jscript);	
			}
		 }
		http.send(null);
		hourglass('stop');
	}
}

function super_identify_gid(gid) {
				 identify_gid(gid,1);
				 identify_gid(gid,2);
}	

function identify_gid(gid,mn) 
{ 
	var lat_min	= document.getElementById("lat_min").value;
	var	lat_max	= document.getElementById("lat_max").value;
	var	lng_min	= document.getElementById("lng_min").value;
	var	lng_max	= document.getElementById("lng_max").value;
	var layers = document.getElementById('layer'+mn);
	
	hourglass();	
	var http = getHTTPObject(); // We create the HTTP Object
	url = "identify.php?gid="+gid+"&lat_min="+lat_min+"&lat_max="+lat_max+"&lng_min="+lng_min+"&lng_max="+lng_max+"&layers="+layers.value;

	http.open("GET", url, true);
	http.onreadystatechange = function() 
	{
		if (http.readyState == 4) 
		{
			var jscript = http.responseText;
			show_identify(mn, jscript);	
		}
	}
	http.send(null);
	hourglass('stop');
}

function show_identify(mn, jscript)
{
	var idbox = document.getElementById('identify-box'+mn);
	var closebox = document.getElementById('closebox'+mn);
	var DivElement = document.getElementById('identify'+mn);

    var infobubbledata;
    eval(jscript);
	var nm = infobubbledata.nm;
	var region_name = infobubbledata.region_name;
	var rv = infobubbledata.region_val;
	var county = infobubbledata.county;
	var cv = infobubbledata.county_val;
	var blkgrp = infobubbledata.blkgrp;
	var tx = infobubbledata.tx;
	var val = infobubbledata.val;
	var lat = infobubbledata.lat;
	var lng = infobubbledata.lng;
	var x = infobubbledata.x;
	var y = infobubbledata.y;
	var p = infobubbledata.place_name;
	var pv = infobubbledata.place_val;

	if (val)
	{
		var result = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"dt\">";
		result = result+"<tr><td><strong>"+nm+"</strong></td><td style=\"text-align:right;\"><strong>"+tx+"</strong></td></tr>";
		result = result+"<tr><td style=\"text-align:right;\"><a href=\"javascript: void(0);\" onclick=\"zoomFromBubble("+lat+", "+lng+");\" class=\"showtooltip\" title="+blkgrp+">Blockgroup:</a></td><td style=\"text-align:right;\"><strong>"+val+"</strong></td></tr>";
		if(p != 'None'){
			result = result+"<tr><td style=\"text-align:right;\">"+p+"</td><td style=\"text-align:right;\">"+pv+"</td></tr>";
		}
		result = result+"<tr><td style=\"text-align:right;\">"+county+"</td><td style=\"text-align:right;\">"+cv+"</td></tr>";
		result = result+"<tr><td style=\"text-align:right;\">"+region_name+" Region</td><td style=\"text-align:right;\">"+rv+"</td></tr>";
		result = result+"</table>";
		if (document.getElementById('ui_scale').value!="1")
		{
			result = result+"<a href=\"javascript: void(0);\" onclick=\"zoomFromBubble("+lat+", "+lng+");\" class=\"zoom-blockgroup\">Zoom to Blockgroup</a>";
		}
	}
	else
	{
		var result = "<div style = \"margin:10px;\">Sorry, no data available<br>for this area.</div>";
	}
	
	x=x*1;
	y=y*1;
	if (idbox.style.display == 'block') {
		closeIdentify(mn);
	}

	var boxchoice = "";
	if (y < half_height) 
	{
		y = y+1;
		boxchoice = "t"; // t for tail on top
		closebox.style.marginTop = "24px";
	} 
	else 
	{
		y = y-205-1;  //205 is the height of the info bubble
		boxchoice = "b";  // b for tail on bottom
		closebox.style.marginTop = "8px";
	}
	 
	if (x < half_width) 
	{
		x = x-18;
		boxchoice = boxchoice+"l";  // l for tail on left
	} 
	else 
	{
		x = x-225+18;  //225 is the width of the info bubble
		boxchoice = boxchoice+"r"; // r for tail on right
	} 
	DivElement.innerHTML = result;
	idbox.style.display = "block";
	idbox.style.backgroundImage="url(../images/bg-idbox-"+boxchoice+".gif)";
	idbox.style.top = y + "px";
	idbox.style.left = x + "px";
}


function super_closeIdentify() {
	var idbox = document.getElementById('identify-box1');
	idbox.style.display = "none";
	var idbox = document.getElementById('identify-box2');
	idbox.style.display = "none";
}

function zoomFromBubble(lat, lng)
{
	document.getElementById('ui_scale').value="1";
	document.getElementById('center_lat').value=lat;
	document.getElementById('center_lng').value=lng;
	getMap(1);
	getLegend(1);
	getMap(2);
	getLegend(2);
}


function pickhhthemes(hhtype) {

	var r_ami_hh = document.getElementById('r_ami_hh');
	r_ami_hh.style.backgroundColor="#ffffff";
	var r_ami_80_hh = document.getElementById('r_ami_80_hh');
	r_ami_80_hh.style.backgroundColor="#ffffff";
	var r_nation_hh = document.getElementById('r_nation_hh');
	r_nation_hh.style.backgroundColor="#ffffff";
	var t_ami_hh = document.getElementById('t_ami_hh');
	t_ami_hh.style.backgroundColor="#ffffff";
	var t_ami_80_hh = document.getElementById('t_ami_80_hh');
	t_ami_80_hh.style.backgroundColor="#ffffff";
	var t_nation_hh = document.getElementById('t_nation_hh');
	t_nation_hh.style.backgroundColor="#ffffff";
	
	var r_hh = document.getElementById('r_'+hhtype);
	r_hh.style.backgroundColor="#E2E5E9";
	var t_hh = document.getElementById('t_'+hhtype);
	t_hh.style.backgroundColor="#E2E5E9";
	
	var idbox = document.getElementById('ami_hh');
	idbox.style.display = "none";
	var idbox = document.getElementById('ami_80_hh');
	idbox.style.display = "none";
	var idbox = document.getElementById('nation_hh');
	idbox.style.display = "none";
	var idbox = document.getElementById(hhtype);
	idbox.style.display = "block";

	var idbox = document.getElementById('ami_hh_data');
	idbox.style.display = "none";
	var idbox = document.getElementById('ami_80_hh_data');
	idbox.style.display = "none";
	var idbox = document.getElementById('nation_hh_data');
	idbox.style.display = "none";
	var idbox = document.getElementById(hhtype+'_data');
	idbox.style.display = "block";

	var lobj=document.forms['compareform'].elements['left_layer'];
	var robj=document.forms['compareform'].elements['right_layer'];

	var lchecked = getCheckedValue(lobj);
	var rchecked = getCheckedValue(robj);

	var ioff = 0;
	if(hhtype=='ami_80_hh'){ioff=100;}
	if(hhtype=='nation_hh'){ioff=200;}

	var tolcheck = parseInt(lchecked);
	if(tolcheck > 100) {tolcheck=tolcheck-100;}
	if(tolcheck > 100) {tolcheck=tolcheck-100;}
	tolcheck = tolcheck + ioff;

	var torcheck = parseInt(rchecked);
	if(torcheck > 100) {torcheck=torcheck-100;}
	if(torcheck > 100) {torcheck=torcheck-100;}
	torcheck = torcheck + ioff;

	var setleftto = setCheckedValue(lobj,tolcheck);
	var setrightto = setCheckedValue(robj,torcheck);

	if(setleftto==-1){setCheckedValue(lobj,lchecked);}
	if(setrightto==-1){setCheckedValue(robj,rchecked);}
}

// return the value of the radio button that is checked
// return an empty string if none are checked, or
// there are no radio buttons
function getCheckedValue(radioObj) {
    if(!radioObj)
	return "";
    var radioLength = radioObj.length;
    if(radioLength == undefined)
	if(radioObj.checked)
	    return radioObj.value;
	else
	    return "";
    for(var i = 0; i < radioLength; i++) {
	if(radioObj[i].checked) {
	    return radioObj[i].value;
	}
    }
    return "";
}

// set the radio button with the given value as being checked
// do nothing if there are no radio buttons
// if the given value does not exist, all the radio buttons
// are reset to unchecked
function setCheckedValue(radioObj, newValue) {
    var setto = -1;
    if(!radioObj)
	return setto;
    var radioLength = radioObj.length;
    if(radioLength == undefined) {
	radioObj.checked = (radioObj.value == newValue.toString());
	return setto;
    }
    for(var i = 0; i < radioLength; i++) {
	radioObj[i].checked = false;
	if(radioObj[i].value == newValue.toString()) {
	    radioObj[i].checked = true;
	    compareTheme(radioObj[i]);
	    setto = i;
	}
    }
    return setto;
}
function closeIdentify(mn) {
	var idbox = document.getElementById('identify-box'+mn);
	idbox.style.display = "none";
}

function zoomWheel(event) {
	var delta = 0;
	if (!event) {/* For IE. */ 
		event = window.event;
	}
	if (event.wheelDelta) { /* IE/Opera. */
		delta = event.wheelDelta/120;
		/** In Opera 9, delta differs in sign as compared to IE. 
		*/
		if (window.opera) {
			delta = -delta;
    }
	} 
	else if (event.detail) { /** Mozilla case. */
		/** In Mozilla, sign of delta is different than in IE.
		* Also, delta is multiple of 3.
		*/
		delta = -event.detail/3;
	}
	/** If delta is nonzero, handle it.
	* Basically, delta is now positive if wheel was scrolled up,
	* and negative, if wheel was scrolled down.
	*/
	if (delta) {
		if (delta >= 0) {
			zoom('in');
		}
		else if (delta <= 0) {
			zoom('out');
		}
	/** Prevent default actions caused by mouse wheel.
	* That might be ugly, but we handle scrolls somehow
	* anyway, so don't bother here..
	*/
	}
	if (event.preventDefault) {
		event.preventDefault();
	}
	event.returnValue = false;
}


function zoom(scale_new) {
	var scale = document.getElementById('ui_scale').value; if (scale=='') {scale=scale_default;}
	if (scale_new=='out') {
		if (scale < 8) {
			scale_new = eval(scale) + 1;
		}
		else {
			scale_new = scale;
		}
	}
	if (scale_new=='in') { 
		if (scale > 1) {
			scale_new = eval(scale) - 1;
		}
		else {
			scale_new = scale;
		}
	}
	if (scale_new!=scale) {	
		scale = document.getElementById('ui_scale');
		scale.value = scale_new;
		getMap(1);
		getMap(2);
	}
}

function pan(dir) {
	pan_dir = document.getElementById("ui_pan");
	pan_dir.value = dir;
	getMap(1);
	getMap(2);
}
function showfocus(on_off){
    var focus = document.getElementById('focus_div');
    if(on_off == 'on'){
	focus.style.display = 'block';
    }
    if(on_off == 'off'){
	focus.style.display = 'none';
	defaultfocus();
    }
}
function defaultfocus(){
    var focus_state=document.getElementById('focus');
    var subregion_div = document.getElementById('subregion_menu'); 
    if(!(focus_state.value=='map')){
	focus_state.selectedIndex = 0;
	subregion_div.style.display = 'none';
	flipAllLegends();
    }
}

function flipStat(stat_type) {
    
    mn=1;
    while(mn<3){
	var stat_output = document.getElementById('stat_output'+mn);
	var stat_table = document.getElementById('table'+mn);
	var stat_graph_coarse = document.getElementById('legend_graph_coarse'+mn);
	var stat_graph_fine = document.getElementById('legend_graph_fine'+mn);
	var stat_graph_lines = document.getElementById('stats'+mn);
	var stat_pop = document.getElementById('stats_pop'+mn);
	var stat_hhs = document.getElementById('stats_hhs'+mn);
	var stat_cbg = document.getElementById('stats_cbg'+mn);
	
	stat_output.style.display = 'none';
	stat_table.style.display = 'none';
	stat_graph_coarse.style.display = 'none';
	stat_graph_fine.style.display = 'none';
	stat_graph_lines.style.display = 'none';
	stat_pop.style.display = 'none';
	stat_hhs.style.display = 'none';
	stat_cbg.style.display = 'none';
	
	if (stat_type == 'stat_output') {
	    stat_output.style.display = 'block';
	    showfocus('off');
	}
	else if(stat_type == 'stat_table'){
	    stat_table.style.display = 'block';
	    showfocus('off');
	}
	else if(stat_type == 'graph_coarse'){
	    stat_graph_coarse.style.display = 'block';
	    showfocus('off');
	}
	else if(stat_type == 'graph_fine'){
	    stat_graph_fine.style.display = 'block';
	    showfocus('off');
	}
	else if(stat_type == 'stat_pop'){
	    stat_pop.style.display = 'block';
	    showfocus('on');
	}
	else if(stat_type == 'stat_hhs'){
	    stat_hhs.style.display = 'block';
	    showfocus('on');
	}
	else if(stat_type == 'stat_cbg'){
	    stat_cbg.style.display = 'block';
	    showfocus('on');
	}
	else{
	    stat_graph_lines.style.display = 'block';
	    showfocus('off');
	}
	mn=mn+1;
    }
}

function flipAllLegends(){
    flipLegend('stat_pop');
    flipLegend('stat_hhs');
    flipLegend('stat_cbg');
}

function flipLegend(stat_type) {

    var focus = document.getElementById('focus').value;

    var lat_min = document.getElementById('lat_min').value;
    var lat_max = document.getElementById('lat_max').value;
    var lng_min = document.getElementById('lng_min').value;
    var lng_max = document.getElementById('lng_max').value;
    var region_part = 'lat_min='+lat_min+'&lat_max='+lat_max+'&lng_min='+lng_min+'&lng_max='+lng_max;

    if(focus == 'county'){
	var county = document.getElementById('county_select').value;
	if(!(county=='none')){var region_part = 'county='+county;}
    }
    else if(focus == 'place'){
	var place = document.getElementById('place_select').value;
	if(!(place=='none')){var region_part = 'place='+place;}
    }
    else if(focus == 'netown'){
	var netown = document.getElementById('netown_select').value;
	if(!(netown=='none')){var region_part = 'netown='+netown;}
    }
    else if(focus == 'zneigh'){
	var zneigh = document.getElementById('zneigh_select').value;
	if(!(zneigh=='none')){var region_part = 'zneigh='+zneigh;}
    }
    else if(focus == 'region'){
	var region = document.getElementById('region').value;
	var region_part = 'region='+region;
    }


    if(stat_type == 'stat_pop'){
	var type = '&stat=population';
	var stat_1 = document.getElementById('stats_pop1');
	var stat_2 = document.getElementById('stats_pop2');
    }
    else if(stat_type == 'stat_hhs'){
	var type = '&stat=households';
	var stat_1 = document.getElementById('stats_hhs1');
	var stat_2 = document.getElementById('stats_hhs2');
    }
    else{
	var type = '&stat=neighborhoods';
	var stat_1 = document.getElementById('stats_cbg1');
	var stat_2 = document.getElementById('stats_cbg2');
    }

    var theme = document.getElementById('layer1').value;
    var url = 'stat_legend.php?'+region_part+type+'&theme='+theme;
    var http1 = getHTTPObject(); // We create the HTTP Object
    http1.open("GET", url, true);
    http1.onreadystatechange = function() {
	if (http1.readyState == 4) {
	    var stat_leg1 = http1.responseText;
	    stat_1.innerHTML = stat_leg1;
	}
    }
    http1.send(null);	

    var theme = document.getElementById('layer2').value;
    var url = 'stat_legend.php?'+region_part+type+'&theme='+theme;
    var http2 = getHTTPObject(); // We create the HTTP Object
    http2.open("GET", url, true);
    http2.onreadystatechange = function() {
	if (http2.readyState == 4) {
	    var stat_leg2 = http2.responseText;
	    stat_2.innerHTML = stat_leg2;
	}
    }
    http2.send(null);
}

function flipHist(hist_type,mn) {

	    var coarse_hist = document.getElementById('legend_graph_coarse'+mn);
	    var fine_hist = document.getElementById('legend_graph_fine'+mn);

	    if (hist_type == 'coarse') {
		coarse_hist.style.display = 'block';
		fine_hist.style.display = 'none';
	    }
	    else{
		coarse_hist.style.display = 'none';
		fine_hist.style.display = 'block';
	    }
}

function flipText(text_type,mn) {

	    var stat_text = document.getElementById('text'+mn);
	    var stat_table = document.getElementById('table'+mn);

	    if (text_type == 'text') {
		stat_text.style.display = 'block';
		stat_table.style.display = 'none';
	    }
	    else{
		stat_text.style.display = 'none';
		stat_table.style.display = 'block';
	    }
}

function flipSubregion() {

    var turn_on = document.getElementById('focus').value;
    var subregion_div = document.getElementById('subregion_menu'); 
    
    if (turn_on == 'county') {
	var region = document.getElementById("region").value;
	var url = 'countyselectlist.php?region='+region;
	var http = getHTTPObject(); // We create the HTTP Object
	http.open("GET", url, true);
	http.onreadystatechange = function() {
	    if (http.readyState == 4) {
		var menu = http.responseText;
		subregion_div.innerHTML = menu;
		subregion_div.style.display = 'block';
		flipAllLegends();
	    }
	}
	http.send(null);	
    }
    else if (turn_on == 'place') {
	var region = document.getElementById("region").value;
	var url = 'placeselectlist.php?region='+region;
	var http = getHTTPObject(); // We create the HTTP Object
	http.open("GET", url, true);
	http.onreadystatechange = function() {
	    if (http.readyState == 4) {
		var menu = http.responseText;
		subregion_div.innerHTML = menu;
		subregion_div.style.display = 'block';
		flipAllLegends();
	    }
	}
	http.send(null);	
    }
    else if (turn_on == 'netown') {
	var region = document.getElementById("region").value;
	var url = 'netownselectlist.php?region='+region;
	var http = getHTTPObject(); // We create the HTTP Object
	http.open("GET", url, true);
	http.onreadystatechange = function() {
	    if (http.readyState == 4) {
		var menu = http.responseText;
		subregion_div.innerHTML = menu;
		subregion_div.style.display = 'block';
		flipAllLegends();
	    }
	}
	http.send(null);	
    }
    else if (turn_on == 'zneigh') {
	var region = document.getElementById("region").value;
	var url = 'zneighselectlist.php?region='+region;
	var http = getHTTPObject(); // We create the HTTP Object
	http.open("GET", url, true);
	http.onreadystatechange = function() {
	    if (http.readyState == 4) {
		var menu = http.responseText;
		subregion_div.innerHTML = menu;
		subregion_div.style.display = 'block';
		flipAllLegends();
	    }
	}
	http.send(null);	
    }
    else if (turn_on == 'region'){
	subregion_div.style.display = 'none';
	flipAllLegends();
	getMap(1);
	getMap(2);
    }
    else{
	subregion_div.style.display = 'none';
	flipAllLegends();
    }
}

function toggleThemes(groupnum) {
	//do nothing - this function is old
	return;
}

function clickTheme(layerOption) {
	//do nothing - this function is old
	return;
}

function initComparison(view) {
	var v = views[view].split('|');
	document.getElementById('theme_menu').value=view;
	document.getElementById('layer1').value = v[1];
	document.getElementById('layer2').value = v[2];
	document.getElementById('l_mapOption_'+v[1]).checked=true;
	document.getElementById('r_mapOption_'+v[2]).checked=true;
	var title = v[0];
	displayActiveView(view);
}

function setComparison(view) 
{
		initComparison(view);
		getMap(1);
		getLegend(1);
		getMap(2);
		getLegend(2);
		displayActiveView(view);
}

function toggleBlkgrps(s) 
{
	document.getElementById("show_bgb").value = s;
	getMap(1);
	getLegend(1);
	getMap(2);
	getLegend(2);
}

function closeHighlight() {
	var hl = document.getElementById('highlight');
	hl.style.display = 'none';
}

function displayActiveView(view) {
	for (i=0;i<4;i++) {
		if (i==view) {
			document.getElementById('m'+ i).className = 'active';
		}
		else {
			document.getElementById('m'+ i).className = 'inactive';
		}
	}
}

function toggleRefMap() {
	var refpos = document.getElementById('refmap');
	if (refpos.style.top!='0px') {
		for (i=-201;i<1;i++) {
			refpos.style.top = i + 'px';
			refpos.style.right = i + 'px';
		}
		document.getElementById('refmapbutton').childNodes[0].className = 'open';
		document.getElementById('refmapshadow').style.display = 'block';
	}
	else {
		for (i=0;i>-202;i--) {
			refpos.style.top = i + 'px';
			refpos.style.right = i + 'px';
		}
		document.getElementById('refmapbutton').childNodes[0].className = 'closed';
		document.getElementById('refmapshadow').style.display = 'none';
	}
}
	
function getRegionTitle(region) {
	document.getElementById("regiontitle").innerHTML = region;
}

function getMap(mn) {
    hourglass();	
    
    var scale = document.getElementById("ui_scale").value; if (scale=="") {scale=scale_default;}
    var center_lat = document.getElementById("center_lat").value; if (center_lat=="") {center_lat="";}
    var center_lng = document.getElementById("center_lng").value; if (center_lng=="") {center_lng="";}
    var pinpoint_lat = document.getElementById("ui_pinpoint_lat").value; if (pinpoint_lat=="") {pinpoint_lat="";}
    var pinpoint_lng = document.getElementById("ui_pinpoint_lng").value; if (pinpoint_lng=="") {pinpoint_lng="";}
    var pan_dir = document.getElementById("ui_pan").value; if (pan_dir=="") {pan_dir="";}
    var pixx = document.getElementById("ui_pixx").value; if (pixx=="") {pixx="";}
    var pixy = document.getElementById("ui_pixy").value; if (pixy=="") {pixy="";}
    var zone = document.getElementById("zone").value; if (zone=="") {zone="";}
    var layers = document.getElementById("layer"+mn).value; if (layers=="") {layers="";}
    var region = document.getElementById("region").value; if (region=="") {region="";}
    var ref = document.getElementById("ref").value; if (ref=="") {ref="";}
    var ref_minx = document.getElementById("ref_minx").value; if (ref_minx=="") {ref_minx="";}
    var ref_miny = document.getElementById("ref_miny").value; if (ref_miny=="") {ref_miny="";}
    var ref_maxx = document.getElementById("ref_maxx").value; if (ref_maxx=="") {ref_maxx="";}
    var ref_maxy = document.getElementById("ref_maxy").value; if (ref_maxy=="") {ref_maxy="";}
    var clat_min = document.getElementById("lat_min").value;
    var clat_max = document.getElementById("lat_max").value;
    var clng_min = document.getElementById("lng_min").value;
    var clng_max = document.getElementById("lng_max").value;
    var show_bgb = document.getElementById("show_bgb").value;
    var focus_on = document.getElementById("focus").value;
    if(focus_on == 'county'){
	if(document.getElementById("county_select")){var county_focus = document.getElementById("county_select").value;}
	else{
	    focus_on = 'map';
	    document.getElementById("focus").selectedIndex = 0;
	}
    }
    if(focus_on == 'place'){
	if(document.getElementById("place_select")){var place_focus = document.getElementById("place_select").value;}
	else{
	    focus_on = 'map';
	    document.getElementById("focus").selectedIndex = 0;
	}
    }
    if(focus_on == 'netown'){
	if(document.getElementById("netown_select")){var netown_focus = document.getElementById("netown_select").value;}
	else{
	    focus_on = 'map';
	    document.getElementById("focus").selectedIndex = 0;
	}
    }
    if(focus_on == 'zneigh'){
	if(document.getElementById("zneigh_select")){var zneigh_focus = document.getElementById("zneigh_select").value;}
	else{
	    focus_on = 'map';
	    document.getElementById("focus").selectedIndex = 0;
	}
    }
    
    var http = GetXmlHttpObject(); // We create the HTTP Object
    var url = "map_json.php?scale=" + scale + "&center_lat=" + center_lat + "&center_lng=" + center_lng;
    if (pinpoint_lat && pinpoint_lng) { url = url + "&lat=" + pinpoint_lat + "&lng=" + pinpoint_lng; }
    if (pan_dir) { url = url + "&pan=" + pan_dir;}
    if (pixx && pixy) { url = url + "&pixx=" + pixx + "&pixy=" + pixy;}
    if (zone) { url = url + "&zone=" + zone;}
    if (layers) { url = url + "&layers=" + layers;}
    if (region) { url = url + "&region=" + region;}
    if (ref) { url = url + "&ref=" + ref;}
    if (ref_minx) { url = url + "&ref_minx=" + ref_minx;}
    if (ref_miny) { url = url + "&ref_miny=" + ref_miny;}
    if (ref_maxx) { url = url + "&ref_maxx=" + ref_maxx;}
    if (ref_maxy) { url = url + "&ref_maxy=" + ref_maxy;}
    if (clat_min) { url = url + "&lat_min=" + clat_min;}
    if (clat_max) { url = url + "&lat_max=" + clat_max;}
    if (clng_min) { url = url + "&lng_min=" + clng_min;}
    if (clng_max) { url = url + "&lng_max=" + clng_max;}
    if (show_bgb) { url = url + "&show_bgb=" + show_bgb;}
    if (!(focus_on=='map')){ 
	url = url + "&focus_on=" + focus_on;
	if(county_focus){url = url + "&county=" + county_focus;}
	if(place_focus){url = url + "&place=" + place_focus;}
	if(netown_focus){url = url + "&netown=" + netown_focus;}
	if(zneigh_focus){url = url + "&zneigh=" + zneigh_focus;}
    }
    url = url + "&ms=" + new Date().getTime();
    var mapserver;
    http.open("GET", url, true);
    http.onreadystatechange = function() {
	if (http.readyState == 4) {
	    var jscript = http.responseText;
	    var mapserver;
	    eval(jscript);
	    
			// do something good with those values 
	    var mapImage = document.getElementById("map-image"+mn);
	    mapImage.innerHTML="<img id='map-url"+mn+"' src='" + mapserver.map + "'>";
	    
	    var scalebarImage = document.getElementById("scalebar");
	    scalebarImage.style.backgroundImage="url(" + mapserver.scalebar + ")";
	    
	    var refmapImage = document.getElementById("refmap");
	    refmapImage.innerHTML="<img src='" + mapserver.refmap + "'>";
	    
	    var scaleval = document.getElementById("ui_scale");
	    scaleval.value = mapserver.scale;
	    
	    var latval = document.getElementById("center_lat");
	    latval.value = mapserver.center_lat;
	    
	    var lngval = document.getElementById("center_lng");
	    lngval.value = mapserver.center_lng;
	    
	    var pinpoint_latval = document.getElementById("ui_pinpoint_lat");
	    pinpoint_latval.value = mapserver.pinpoint_lat;
	    
	    var pinpoint_lngval = document.getElementById("ui_pinpoint_lng");
	    pinpoint_lngval.value = mapserver.pinpoint_lng;
	    
	    var pan = document.getElementById("ui_pan");
	    pan.value = "";
	    
	    var stat_output_div = document.getElementById("text"+mn);
	    stat_output_div.innerHTML = mapserver.stat_output;
	    
	    var stat_table_div = document.getElementById("table"+mn);
	    stat_table_div.innerHTML = mapserver.stat_table;
	    
	    var stats_div = document.getElementById("stats"+mn);
	    stats_div.innerHTML = mapserver.stat_graph;
	    
	    var legend_graph_coarse_div = document.getElementById("legend_graph_coarse"+mn);
	    legend_graph_coarse_div.innerHTML = mapserver.legend_graph_coarse;
	    
	    var legend_graph_fine_div = document.getElementById("legend_graph_fine"+mn);
	    legend_graph_fine_div.innerHTML = mapserver.legend_graph_fine;
	    
	    document.getElementById("lat_min").value = mapserver.lat_min;
	    document.getElementById("lat_max").value = mapserver.lat_max;
	    document.getElementById("lng_min").value = mapserver.lng_min;
	    document.getElementById("lng_max").value = mapserver.lng_max;
	    
	    
	    if (mapserver.region != 'none') { 
		document.getElementById("region").value = mapserver.region;		
		document.getElementById("regiontitle").innerHTML = mapserver.region;
	    }
	    else {
		document.getElementById("region").value = "";		
	    }
	    
	    if (mapserver.theme_name != '') { 
		document.getElementById("maptitle"+mn).innerHTML = mapserver.theme_name;		
	    }
	    else {
		document.getElementById("maptitle"+mn).innerHTML = "??";		
	    }
	    
	    if (mapserver.med_hh_income != 'none') { 
		document.getElementById("med_hh_income").innerHTML = FormatCurrency(mapserver.med_hh_income,0, false, false, true);		
		document.getElementById("med_hh_income_80").innerHTML = FormatCurrency(0.8*mapserver.med_hh_income,0, false, false, true);		
	    }
	    else {
		document.getElementById("med_hh_income").innerHTML = "";		
		document.getElementById("med_hh_income_80").innerHTML = "";		
	    }
	    
	    if (mapserver.ave_hh_size != 'none') { 
		document.getElementById("ave_hh_size").innerHTML = mapserver.ave_hh_size;		
		document.getElementById("ave_hh_size_80").innerHTML = mapserver.ave_hh_size;		
	    }
	    else {
		document.getElementById("ave_hh_size").innerHTML = "";		
		document.getElementById("ave_hh_size_80").innerHTML = "";		
	    }
	    
	    if (mapserver.workers_per_hh != 'none') { 
		document.getElementById("workers_per_hh").innerHTML = mapserver.workers_per_hh;		
		document.getElementById("workers_per_hh_80").innerHTML = mapserver.workers_per_hh;		
	    }
	    else {
		document.getElementById("workers_per_hh").innerHTML = "";		
		document.getElementById("workers_per_hh_80").innerHTML = "";		
	    }
	    
	    
	    if (mapserver.gas_pergal_00 != 'none') {
		document.getElementById("gas_pergal_00").innerHTML = FormatCurrency(mapserver.gas_pergal_00, 2, true, false, true);		
	    }
	    else {
		document.getElementById("gas_pergal_00").innerHTML = "********";		
	    }
	    if (mapserver.gas_pergal_08 != 'none') {
		document.getElementById("gas_pergal_08").innerHTML = FormatCurrency(mapserver.gas_pergal_08, 2, true, false, true);			
	    }
	    else {
		document.getElementById("gas_pergal_08").innerHTML = "********Dude";		
	    }
	    if (mapserver.zone != 'none') { 
		document.getElementById("zone").value = zone;		
	    }
	    
	    if(mn==2){buildHistory();}
	    
	    var comparison = "Comparing "+document.getElementById("maptitle1").innerHTML+" to "+document.getElementById("maptitle2").innerHTML;
	    document.title="H+T Affordability Index: "+region+': '+comparison;
	    
	    if(scale < 4)
		{
		    document.getElementById('blkgrp_toggle').style.display = 'block';
		}
	    else
		{
		    document.getElementById('blkgrp_toggle').style.display = 'none';
		}
	    
	    repositionMap();
	    setActiveScale(scale);
	    hourglass('stop');
	    closeIdentify(mn);
	    sweetTitles.init();
	    flipAllLegends();
	}
    }
    http.send(null);
}
	
function buildHistory()
{

	var scale = document.getElementById("ui_scale").value;
	var center_lat = document.getElementById("center_lat").value;
	var center_lng = document.getElementById("center_lng").value;
	var pinpoint_lat = document.getElementById("ui_pinpoint_lat").value;
	var pinpoint_lng = document.getElementById("ui_pinpoint_lng").value;
	var pan_dir = document.getElementById("ui_pan").value;
	var pixx = document.getElementById("ui_pixx").value;
	var pixy = document.getElementById("ui_pixy").value;
	var zone = document.getElementById("zone").value;
	var ref = document.getElementById("ref").value;
	var ref_minx = document.getElementById("ref_minx").value;
	var ref_miny = document.getElementById("ref_miny").value;
	var ref_maxx = document.getElementById("ref_maxx").value;
	var ref_maxy = document.getElementById("ref_maxy").value;

	var region = document.getElementById('region').value;
	var layer1 = document.getElementById('layer1').value;
	var layer2 = document.getElementById('layer2').value;
	var theme_menu = document.getElementById('theme_menu').value;

	var userAgent = window.navigator.userAgent;
	if(userAgent.indexOf('MSIE 8') == -1)
	{
	dsHistory.setQueryVar('region', region);
	dsHistory.setQueryVar('theme_menu', theme_menu);
	dsHistory.setQueryVar('layer1', layer1);
	dsHistory.setQueryVar('layer2', layer2);

	
	dsHistory.bindQueryVars(function () 
		{
			document.getElementById("ui_scale").value=scale;
			document.getElementById("center_lat").value=center_lat;
			document.getElementById("center_lng").value=center_lng;
			document.getElementById("ui_pinpoint_lat").value=pinpoint_lat;
			document.getElementById("ui_pinpoint_lng").value=pinpoint_lng;
			document.getElementById("ui_pan").value=pan;
			document.getElementById("ui_pixx").value=pixx;
			document.getElementById("ui_pixy").value=pixy;
			document.getElementById("zone").value=zone;
			document.getElementById("ref").value=ref;
			document.getElementById("ref_minx").value=ref_minx;
			document.getElementById("ref_miny").value=ref_miny;
			document.getElementById("ref_maxx").value=ref_maxx;
			document.getElementById("ref_maxy").value=ref_maxy;

			document.getElementById('region').value=region;
			document.getElementById('layer1').value=layer1;
			document.getElementById('layer2').value=layer2;
			document.getElementById('theme_menu').value=theme_menu;
			getMap(1);
			getLegend(1);
			getMap(2);
			getLegend(2);
			displayActiveView(theme_menu);
		});
	}
	else
	{
		document.location.hash = escape('region='+region+'&theme_menu='+theme_menu+'&layer1='+layer1+'&layer2='+layer2).replace(/%26/gi, "&").replace(/%3D/gi,"=");  //uri encode everything but & and =
		//document.location.href = "http://"+document.location.hostname+document.location.pathname+document.location.hash;
	}
}	

function getLegend(ln) {
	hourglass();
  var httpLegend = GetXmlHttpObject(); // We create the HTTP Object
	var scale = document.getElementById("ui_scale").value; if (scale=="") {scale=scale_default;}
	var lat = document.getElementById("center_lat").value; if (lat=="") {lat="";}
	var lng = document.getElementById("center_lng").value; if (lng=="") {lng="";}
	var layers = document.getElementById("layer"+ln).value; if (layers=="") {layers="";}
  var url = "map_legend.php?scale=" + scale + "&lat=" + lat + "&lng=" + lng + "&layers=" + layers + "&ms=" + new Date().getTime();	
  httpLegend.open("GET", url, true);
  httpLegend.onreadystatechange = function() {
	  if (httpLegend.readyState == 4) {     
		var DivElement =  document.getElementById("legend"+ln);
		DivElement.innerHTML = httpLegend.responseText; 
		hourglass('stop');
	  }
 }
	httpLegend.send(null);
}


function setActiveScale(scale) {
		for (i=1;i<9;i++) {
			document.getElementById("z" + i).parentNode.className = "z";
			}
		var activescale = document.getElementById("z" + scale);
		activescale.parentNode.className="za";
		}


function GetXmlHttpObject()
{ 
var objXMLHttp=null;
if (window.XMLHttpRequest)
{
objXMLHttp=new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
return objXMLHttp;
} 
	

function FormatCurrency(num,decimalNum,bolLeadingZero,bolParens,bolCommas)
/**********************************************************************
	IN:
		NUM - the number to format
		decimalNum - the number of decimal places to format the number to
		bolLeadingZero - true / false - display a leading zero for
										numbers between -1 and 1
		bolParens - true / false - use parenthesis around negative numbers
		bolCommas - put commas as number separators.										
 
	RETVAL:
		The formatted number!		
 **********************************************************************/
{
	var tmpStr = new String(FormatNumber(num,decimalNum,bolLeadingZero,bolParens,bolCommas));

	if (tmpStr.indexOf("(") != -1 || tmpStr.indexOf("-") != -1) {
		// We know we have a negative number, so place '$' inside of '(' / after '-'
		if (tmpStr.charAt(0) == "(")
			tmpStr = "($"  + tmpStr.substring(1,tmpStr.length);
		else if (tmpStr.charAt(0) == "-")
			tmpStr = "-$" + tmpStr.substring(1,tmpStr.length);
			
		return tmpStr;
	}
	else
		return "$" + tmpStr;		// Return formatted string!
}	


function FormatNumber(num, decimalNum, bolLeadingZero, bolParens, bolCommas, trailDecimal, prefix) {
/**********************************************************************
  Original by www.4guysfromrolla.com, modify by www.developerutility.com
  
  IN:
    NUM            - the number to format
    decimalNum     - the number of decimal places to format the number to
    bolLeadingZero - true / false - display a leading zero for numbers between -1 and 1
    bolParens      - true / false - use parenthesis around negative numbers
    bolCommas      - put commas as number separators
    trailDecimal   - number of decimal show
    prefix         - symbol to add with formating
 **********************************************************************/
  if (!trailDecimal) { var trailDecimal = decimalNum; }
  if (!prefix) { var prefix = ''; }
  if (isNaN(parseInt(num))) return "NaN";

  var tmpNum = num;
  var iSign = num < 0 ? -1 : 1;    // Get sign of number
  
  // Adjust number so only the specified number of numbers after the decimal point are shown
  tmpNum *= Math.pow(10,decimalNum);
  tmpNum = Math.round(Math.abs(tmpNum))
  tmpNum /= Math.pow(10,decimalNum);
  tmpNum *= iSign;               // Readjust for sign
  
  // Add digit value
  tmpNum = tmpNum.toFixed(trailDecimal);
  
  // Create a string object to do our formatting on
  var tmpNumStr = new String(tmpNum);
  
  // See if we need to strip out the leading zero or not.
  if (!bolLeadingZero && num < 1 && num > -1 && num != 0)
    if (num > 0) {
      tmpNumStr = tmpNumStr.substring(1,tmpNumStr.length);
    } else {
        tmpNumStr = "-" + tmpNumStr.substring(2,tmpNumStr.length);
      }
  
  // See if we need to put in the commas
  if (bolCommas && (num >= 1000 || num <= -1000)) {
    var iStart = tmpNumStr.indexOf(".");
    if (iStart < 0) { iStart = tmpNumStr.length; }

    iStart -= 3;
    while (iStart >= 1) {
      tmpNumStr = tmpNumStr.substring(0,iStart) + "," + tmpNumStr.substring(iStart,tmpNumStr.length);
      iStart -= 3;
    }    
  }

  // See if we need to use parenthesis
  if (bolParens && num < 0) {
    tmpNumStr = "(" + tmpNumStr.substring(1,tmpNumStr.length) + ")";
  }
  
  // Add prefix
  if(prefix.length > 0) { tmpNumStr = prefix + tmpNumStr; }
  
  return tmpNumStr;
}


// For Compare div
var l = "";
var r = "";
var lclk=0;
var rclk=0;
function compareTheme(obj)
{
	if (obj.id.substr(0,1)=="l") 
	{
		l=obj.value;
		lclk=1; //1 click for left
	}
	else 
	{
		r=obj.value;
		rclk=1; //1 click for right
	}
	var clks=lclk+rclk;
	
	if (l=="") {l = document.getElementById('layer1').value;}
	if (r=="") {r = document.getElementById('layer2').value;}
	
	document.getElementById('cust_compare').value="Custom Compare|"+l+"|"+r;

	if (l!="" && r!="" && clks>1) 
	{
		toggleOverlay('compare');
		compareComplete(l,r);
	}
	else
	{
		document.getElementById('closebuttontext').style.display="block";
	}
}
function compareComplete(layer1, layer2)
{
	views[1] = document.getElementById('cust_compare').value;
	var clks=lclk+rclk;
	if (clks>0) 
	{
		setComparison(1);
	}
	document.getElementById('closebuttontext').style.display="none";
}
function ltrim(stringToTrim) {
	return stringToTrim.replace(/^\s+/,"");
}

