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); }
	o2.onDragStart = function(x, y) { reportDragStart(x, y); }
	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);
			closeIdentify(1);
			closeIdentify(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);
			closeIdentify(1);
			closeIdentify(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 zone = document.getElementById('zone').value; if (zone=='') {zone='';}
	var idbox = document.getElementById('identify-box'+mn);
	if (idbox.style.display != 'block') {
		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) {
			hourglass();	
			lng = convertX('l',x);
			lat = convertY('l',y);
			var scale = document.getElementById("ui_scale").value; if (scale=="") {scale=scale_default;}
//			var layers = document.all ? document.all['layer'+mn] : document.getElementById('layer'+mn);
			var layers = document.getElementById('layer'+mn);
			var httpID = getHTTPObject(); // We create the HTTP Object
			url = "identify_xml.php?zone=" + zone + "&scale=" + scale + "&lat=" + lat + "&lng=" + lng + "&layers=" + layers.value + "&ms=" + new Date().getTime();
			httpID.open("GET", url, true);
			httpID.onreadystatechange = function() {
				if (httpID.readyState == 4) {      
				var DivElement = document.getElementById('identify'+mn);
				var result = httpID.responseText; 
				lat = y;
				var bottom_bound = map_height + 240;
				var top_bound = 270; // id box height plus some extra
				if (lat<top_bound) { lat = top_bound; }
				if (lat>bottom_bound) { lat = bottom_bound; }
				lat = map_height - lat;
				lng = x;
				var right_bound = map_width - 160;
				var left_bound = 10;
				if (lng>right_bound) { lng = right_bound; }
				if (lng<left_bound) { lng = left_bound; }
				lng = lng - 1;
				DivElement.innerHTML = result;
				idbox.style.display = "block";
				idbox.style.top = "245px";
				idbox.style.left = "210px";
				hourglass('stop');
				}
		 }
			httpID.send(null);
		}
	}
	else {
		closeIdentify(mn);
	}
}

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

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 changeLayer(mn) {
//	getMapTitle(mn);
	getMap(mn);
	getLegend(mn);
}


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);

	    if (stat_type == 'stat_output') {
		stat_output.style.display = 'block';
		stat_table.style.display = 'none';
		stat_graph_coarse.style.display = 'none';
		stat_graph_fine.style.display = 'none';
		stat_graph_lines.style.display = 'none';
	    }
	    else if(stat_type == 'stat_table'){
		stat_output.style.display = 'none';
		stat_table.style.display = 'block';
		stat_graph_coarse.style.display = 'none';
		stat_graph_fine.style.display = 'none';
		stat_graph_lines.style.display = 'none';
	    }
	    else if(stat_type == 'graph_coarse'){
		stat_output.style.display = 'none';
		stat_table.style.display = 'none';
		stat_graph_coarse.style.display = 'block';
		stat_graph_fine.style.display = 'none';
		stat_graph_lines.style.display = 'none';
	    }
	    else if(stat_type == 'graph_fine'){
		stat_output.style.display = 'none';
		stat_table.style.display = 'none';
		stat_graph_coarse.style.display = 'none';
		stat_graph_fine.style.display = 'block';
		stat_graph_lines.style.display = 'none';
	    }
	    else{
		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 = 'block';
	    }
	    mn=mn+1;
	}
}

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 toggleThemes(groupnum) {
	//var themeitem = 'themeitem-' + groupnum;
	//var activethemeitem = document.getElementById(themeitem);
	//activethemeitem.className = 'themeitem-active';
	//var themegroupname = 'themegroup-' + groupnum;
	//var activethemegroup = document.getElementById(themegroupname);
	//activethemegroup.style.display = 'block';
	//for (i=0;i<4;i++) {
	//	if (groupnum!=i) {
	//		var tnum = 'themeitem-' + i;
	//		document.getElementById(tnum).className = 'themeitem-inactive';	
	//		var gnum = 'themegroup-' + i;
	//		document.getElementById(gnum).style.display = 'none';
	//	}
	//}
}

function setActiveMap(mn) {
	document.getElementById('activemap').value = mn;
	}

function selectTheme(layerOption) {
	toggleOverlay('themes');
	var mn = document.getElementById('activemap').value;
	document.getElementById('layer'+mn).value = layerOption;
	changeLayer(mn);
}
function clickTheme(layerOption) {
	toggleOverlay('themes');
	var mn = document.getElementById('activemap').value;
	var layerOptionButton = document.getElementById('layerOption_' + layerOption); 
	if (layerOptionButton.checked==true) {
		document.getElementById('layer'+mn).value = layerOption;
		changeLayer(mn);
	}
	else {
		layerOptionButton.checked = true;
		document.getElementById('layer'+mn).value = layerOption;
		changeLayer(mn);
	}
}
function setComparison(view) {
	var v = views[view].split('|');
	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];
	getTitle(title);
	changeRegion();
	displayActiveView(view);
	//if (view>1) { //this is not necessary anymore since the themes are not grouped in tabs
	//	toggleThemes(view);
	//}
	//else {
	//	toggleThemes(0);
	//}		
}

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 getTitle(title) {
	if (!title) {
		var title = "Housing + Transportation Affordability Index";
	}
	// document.getElementById('maptitle').innerHTML = title;
	}
	
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 getMapTitle(mn) {
//	var layer = document.getElementById('layer'+mn).value;
//	if (themes[layer]) {
//		var title = themes[layer];
//	}
//	else {
//		title = "H+T Affordability Index";
//	}
//	document.getElementById("maptitle"+mn).innerHTML = title;
//}
	
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 http = GetXmlHttpObject(); // We create the HTTP Object
  var url = "map_xml.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;}

	url = url + "&ms=" + new Date().getTime();
  http.open("GET", url, true);
  http.onreadystatechange = function() {
	  if (http.readyState == 4) {      
			var xmlDocument = http.responseXML; 
			// set map image
			var map = xmlDocument.getElementsByTagName("map").item(0);
			var mapHref = map.attributes[0].nodeValue;
			// set scalebar
			var scalebar = xmlDocument.getElementsByTagName("scalebar").item(0);
			var scalebarHref = scalebar.attributes[0].nodeValue;
			// set reference map
			var refmap = xmlDocument.getElementsByTagName("refmap").item(0);
			var refmapHref = refmap.attributes[0].nodeValue;
			// set legend
			var legend = xmlDocument.getElementsByTagName("legend").item(0);
			var legendHref = legend.attributes[0].nodeValue;
			// set stat output
			var stat_output = xmlDocument.getElementsByTagName("stat_output").item(0);
			stat_output = stat_output.childNodes[0].nodeValue;
			// set stat table
			var stat_table = xmlDocument.getElementsByTagName("stat_table").item(0);
			stat_table = stat_table.childNodes[0].nodeValue;
			// set stat graph
			var stats = xmlDocument.getElementsByTagName("stat_graph").item(0);
			stats = stats.childNodes[0].nodeValue;
			// legend graph coarse
			var legend_graph_coarse = xmlDocument.getElementsByTagName("legend_graph_coarse").item(0);
			legend_graph_coarse = legend_graph_coarse.childNodes[0].nodeValue;
			// set stat graph
			var legend_graph_fine = xmlDocument.getElementsByTagName("legend_graph_fine").item(0);
			legend_graph_fine = legend_graph_fine.childNodes[0].nodeValue;
			// set scale
			var scale = xmlDocument.getElementsByTagName("scale").item(0);
			scale = scale.childNodes[0].nodeValue;
			// get center
			var center = xmlDocument.getElementsByTagName("center").item(0);
			// set center lat
			var center_lat = center.getElementsByTagName("lat").item(0);
			center_lat = center_lat.childNodes[0].nodeValue;
			// set center lng
			var center_lng = center.getElementsByTagName("lng").item(0);
			center_lng = center_lng.childNodes[0].nodeValue;
			// set min and max lat, min and max lng
			var edge = xmlDocument.getElementsByTagName("edge").item(0);
			if (edge.childNodes.length>2) {
				var lat_min = edge.childNodes[1].childNodes[1].childNodes[0].nodeValue;
				var lat_max = edge.childNodes[1].childNodes[3].childNodes[0].nodeValue;
				var lng_min = edge.childNodes[3].childNodes[1].childNodes[0].nodeValue;
				var lng_max = edge.childNodes[3].childNodes[3].childNodes[0].nodeValue;
				}
			else {
				var edge = xmlDocument.getElementsByTagName("edge").item(0);
				var lat_min = edge.childNodes[0].childNodes[0].childNodes[0].nodeValue;
				var lat_max = edge.childNodes[0].childNodes[1].childNodes[0].nodeValue;
				var lng_min = edge.childNodes[1].childNodes[0].childNodes[0].nodeValue;
				var lng_max = edge.childNodes[1].childNodes[1].childNodes[0].nodeValue;
				}
			// get pinpoint
			var pinpoint = xmlDocument.getElementsByTagName("pinpoint").item(0);
			if (pinpoint) {
			// set pinpoint lat
			var pinpoint_lat = pinpoint.getElementsByTagName("lat").item(0);
			pinpoint_lat = pinpoint_lat.childNodes[0].nodeValue;
			// set pinpoint lng
			var pinpoint_lng = pinpoint.getElementsByTagName("lng").item(0);
			pinpoint_lng = pinpoint_lng.childNodes[0].nodeValue;
			}
			else {
			var pinpoint_lat = "";
			var pinpoint_lng = "";
			}
			// do something good with those values 
			var mapImage = document.getElementById("map-image"+mn);
			mapImage.innerHTML="<img src='" + mapHref + "'>";
//			mapImage.style.backgroundImage= "url(" + mapHref + ")";
			var scalebarImage = document.getElementById("scalebar");
			scalebarImage.style.backgroundImage="url(" + scalebarHref + ")";
			var refmapImage = document.getElementById("refmap");
			refmapImage.innerHTML="<img src='" + refmapHref + "'>";
//			refmapImage.style.backgroundImage="url(" + refmapHref + ")";

// add some stats...
	 		var stat_output_div = document.getElementById("text"+mn);
			stat_output_div.innerHTML = stat_output;
	 		var stat_table_div = document.getElementById("table"+mn);
			stat_table_div.innerHTML = stat_table;
	 		var stats_div = document.getElementById("stats"+mn);
			stats_div.innerHTML = stats;
	 		var legend_graph_coarse_div = document.getElementById("legend_graph_coarse"+mn);
			legend_graph_coarse_div.innerHTML = legend_graph_coarse;
	 		var legend_graph_fine_div = document.getElementById("legend_graph_fine"+mn);
			legend_graph_fine_div.innerHTML = legend_graph_fine;
			var scaleval = document.getElementById("ui_scale");
			scaleval.value = scale;
			var latval = document.getElementById("center_lat");
			latval.value = center_lat;
			var lngval = document.getElementById("center_lng");
			lngval.value = center_lng;
			var pinpoint_latval = document.getElementById("ui_pinpoint_lat");
			pinpoint_latval.value = pinpoint_lat;
			var pinpoint_lngval = document.getElementById("ui_pinpoint_lng");
			pinpoint_lngval.value = pinpoint_lng;
			var pan = document.getElementById("ui_pan");
			pan.value = "";
			var region = xmlDocument.getElementsByTagName("region").item(0);
			region = region.childNodes[0].nodeValue;
			var theme_name = xmlDocument.getElementsByTagName("theme_name").item(0);
			theme_name = theme_name.childNodes[0].nodeValue;
			var med_hh_income = xmlDocument.getElementsByTagName("med_hh_income").item(0);
			med_hh_income = med_hh_income.childNodes[0].nodeValue;
			var ave_hh_size = xmlDocument.getElementsByTagName("ave_hh_size").item(0);
			ave_hh_size = ave_hh_size.childNodes[0].nodeValue;
			var workers_per_hh = xmlDocument.getElementsByTagName("workers_per_hh").item(0);
			workers_per_hh = workers_per_hh.childNodes[0].nodeValue;
			var gas_pergal_00 = xmlDocument.getElementsByTagName("gas_pergal_00").item(0);
			gas_pergal_00 = gas_pergal_00.childNodes[0].nodeValue;
			var gas_pergal_08 = xmlDocument.getElementsByTagName("gas_pergal_08").item(0);
			gas_pergal_08 = gas_pergal_08.childNodes[0].nodeValue;
			var zone = xmlDocument.getElementsByTagName("zone").item(0);
			zone = zone.childNodes[0].nodeValue;
			var ref_minx = xmlDocument.getElementsByTagName("ref_minx").item(0);
			ref_minx = ref_minx.childNodes[0].nodeValue;
			var ref_miny = xmlDocument.getElementsByTagName("ref_miny").item(0);
			ref_miny = ref_miny.childNodes[0].nodeValue;
			var ref_maxx = xmlDocument.getElementsByTagName("ref_maxx").item(0);
			ref_maxx = ref_maxx.childNodes[0].nodeValue;
			var ref_maxy = xmlDocument.getElementsByTagName("ref_maxy").item(0);
			ref_maxy = ref_maxy.childNodes[0].nodeValue;
			var ref = xmlDocument.getElementsByTagName("ref").item(0);
			ref = ref.childNodes[0].nodeValue;

			document.getElementById("lat_min").value = lat_min;
			document.getElementById("lat_max").value = lat_max;
			document.getElementById("lng_min").value = lng_min;
			document.getElementById("lng_max").value = lng_max;

			if (region != 'none') { 
				document.getElementById("region").value = region;		
				document.getElementById("regiontitle").innerHTML = region;		
			}
			else {
				document.getElementById("region").value = "";		
			}
			
			if (theme_name != '') { 
				document.getElementById("maptitle"+mn).innerHTML = theme_name;		
			}
			else {
				document.getElementById("maptitle"+mn).innerHTML = "??";		
			}
			
			if (med_hh_income != 'none') { 
				document.getElementById("med_hh_income").innerHTML = FormatCurrency(med_hh_income,0, false, false, true);		
			}
			else {
				document.getElementById("med_hh_income").innerHTML = "";		
			}

			if (ave_hh_size != 'none') { 
				document.getElementById("ave_hh_size").innerHTML = ave_hh_size;		
			}
			else {
				document.getElementById("ave_hh_size").innerHTML = "";		
			}

			if (workers_per_hh != 'none') { 
				document.getElementById("workers_per_hh").innerHTML = workers_per_hh;		
			}
			else {
				document.getElementById("workers_per_hh").innerHTML = "";		
			}


			if (gas_pergal_00 != 'none') {
				document.getElementById("gas_pergal_00").innerHTML = FormatCurrency(gas_pergal_00, 2, true, false, true);		
			}
			else {
				document.getElementById("gas_pergal_00").innerHTML = "********";		
			}
			if (gas_pergal_08 != 'none') {
				document.getElementById("gas_pergal_08").innerHTML = FormatCurrency(gas_pergal_08, 2, true, false, true);			
			}
			else {
				document.getElementById("gas_pergal_08").innerHTML = "********";		
			}
			if (zone != 'none') { 
				document.getElementById("zone").value = zone;		
			}

			repositionMap();
			setActiveScale(scale);
			hourglass('stop');
			closeIdentify(mn);
			sweetTitles.init();
	  	}
 		}
	http.send(null);
	}
	
		

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();
	}
}
function compareComplete()
{
	views[1] = document.getElementById('cust_compare').value;
	var clks=lclk+rclk;
	if (clks>0) 
	{
		setComparison(1);
	}
}