
	
	
function initDrag() {
		var o = document.all ? document.all["map-image"] : document.getElementById("map-image");
		var idbox = document.all ? document.all["identify-box"] : document.getElementById("identify-box");
		
		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(o, null, (-1*half_width), half_width, (-1*half_height), half_height);
		Drag.init(idbox, null, 0, 225, 0, 260);

		// report stuff
		o.onDragStart = function(x, y) { reportDragStart(x, y); }
		o.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();
				getLegend();
				closeIdentify();
				}
			}

	}
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 mapimage = document.getElementById("map-image");
	mapimage.style.top = 0;
	mapimage.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();
	}	
	
	
	
function identify(event) {
	var zone = document.getElementById("zone").value; if (zone=="") {zone="";}
	var idbox = document.getElementById("identify-box");
	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"] : document.getElementById("layer");
			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");
				var result = httpID.responseText; 
				lat = y;
				if (lat<270) { lat = 270; }
				if (lat>690) { lat = 690; }
				lat = map_height - lat;
				lng = x;
				if (lng>290) { lng = 290; }
				if (lng<10) { lng = 10; }
				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();
	}
}


function closeIdentify() {
	var idbox = document.getElementById("identify-box");
	idbox.style.display = "none";
	}
	

function zoom(scale_new) {
	var scale = document.getElementById("ui_scale").value; if (scale=="") {scale=scale_default;}
	if (scale_new=='out') {
		if (scale < 10) {
		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;}
		}
	scale = document.getElementById("ui_scale");
	scale.value = scale_new;
	getMap();
	getLegend();
	}

function pan(dir) {
	pan_dir = document.getElementById("ui_pan");
	pan_dir.value = dir;
	getMap();
	getLegend();
	}
	
	

function changeLayer() {
	getMap();
	getLegend();
	}

function changeRegion(region) {
	setRegion(region);
	getMap();
	getLegend();
	}

function setRegion(region)
{
	switch (region)
	{
	case "Anchorage, AK": document.getElementById("ref").value="anchorage"; document.getElementById("zone").value="06V"; document.getElementById("center_lat").value="61.1088"; document.getElementById("center_lng").value="-149.268"; document.getElementById("ui_scale").value="7"; break;
	case "Atlanta, GA": document.getElementById("ref").value="atlanta"; document.getElementById("zone").value="16S"; document.getElementById("center_lat").value="33.763547429184"; document.getElementById("center_lng").value="-84.379044759264"; document.getElementById("ui_scale").value="7"; break;
	case "Austin--San Marcos, TX": document.getElementById("ref").value="austin"; document.getElementById("zone").value="14R"; document.getElementById("center_lat").value="30.270452672605"; document.getElementById("center_lng").value="-97.710204574801"; document.getElementById("ui_scale").value="7"; break;
	case "Boston--Worcester--Lawrence, MA--NH--ME--CT": document.getElementById("ref").value="boston"; document.getElementById("zone").value="19T"; document.getElementById("center_lat").value="42.39662248295"; document.getElementById("center_lng").value="-71.31173981675"; document.getElementById("ui_scale").value="7"; break;
	case "Buffalo--Niagara Falls, NY": document.getElementById("ref").value="buffalo"; document.getElementById("zone").value="17T"; document.getElementById("center_lat").value="42.9064"; document.getElementById("center_lng").value="-78.7986"; document.getElementById("ui_scale").value="7"; break;
	case "Champaign--Urbana, IL": document.getElementById("ref").value="champaign"; document.getElementById("zone").value="16T"; document.getElementById("center_lat").value="40.1399"; document.getElementById("center_lng").value="-88.1961"; document.getElementById("ui_scale").value="7"; break;
	case "Charlotte--Gastonia--Rock Hill, NC--SC": document.getElementById("ref").value="charlotte"; document.getElementById("zone").value="17S"; document.getElementById("center_lat").value="35.1607463265"; document.getElementById("center_lng").value="-80.8278317246"; document.getElementById("ui_scale").value="7"; break;
	case "Chicago--Gary--Kenosha, IL--IN--WI": document.getElementById("ref").value="chicago"; document.getElementById("zone").value="16T"; document.getElementById("center_lat").value="41.8324"; document.getElementById("center_lng").value="-87.9358"; document.getElementById("ui_scale").value="7"; break;
	case "Cincinnati--Hamilton, OH--KY--IN": document.getElementById("ref").value="cincinnati"; document.getElementById("zone").value="16S"; document.getElementById("center_lat").value="39.1304277418"; document.getElementById("center_lng").value="-84.5140415539"; document.getElementById("ui_scale").value="7"; break;
	case "Cleveland--Akron, OH": document.getElementById("ref").value="cleveland"; document.getElementById("zone").value="17T"; document.getElementById("center_lat").value="41.4640927305"; document.getElementById("center_lng").value="-81.6618224975"; document.getElementById("ui_scale").value="7"; break;
	case "Columbus, OH": document.getElementById("ref").value="columbus"; document.getElementById("zone").value="17S"; document.getElementById("center_lat").value="40.0018123092"; document.getElementById("center_lng").value="-82.9558089323"; document.getElementById("ui_scale").value="7"; break;
	case "Dallas--Fort Worth, TX": document.getElementById("ref").value="dallas"; document.getElementById("zone").value="14S"; document.getElementById("center_lat").value="32.8713632154"; document.getElementById("center_lng").value="-96.9378298796"; document.getElementById("ui_scale").value="7"; break;
	case "Denver--Boulder--Greeley, CO": document.getElementById("ref").value="denver"; document.getElementById("zone").value="13T"; document.getElementById("center_lat").value="39.7981606568"; document.getElementById("center_lng").value="-104.998260974"; document.getElementById("ui_scale").value="7"; break;
	case "Detroit--Ann Arbor--Flint, MI": document.getElementById("ref").value="detroit"; document.getElementById("zone").value="17T"; document.getElementById("center_lat").value="42.4377867674"; document.getElementById("center_lng").value="-83.276436771"; document.getElementById("ui_scale").value="7"; break;
	case "Fort Collins--Loveland, CO": document.getElementById("ref").value="fortcollins"; document.getElementById("zone").value="13T"; document.getElementById("center_lat").value="40.5079666415"; document.getElementById("center_lng").value="-105.077944092"; document.getElementById("ui_scale").value="7"; break;
	case "Fort Wayne, IN": document.getElementById("ref").value="fortwayne"; document.getElementById("zone").value="16T"; document.getElementById("center_lat").value="41.0485"; document.getElementById("center_lng").value="-85.2443"; document.getElementById("ui_scale").value="7"; break;
	case "Harrisburg--Lebanon--Carlisle, PA": document.getElementById("ref").value="harrisburg"; document.getElementById("zone").value="18T"; document.getElementById("center_lat").value="40.3021"; document.getElementById("center_lng").value="-76.9116"; document.getElementById("ui_scale").value="7"; break;
	case "Hartford, CT": document.getElementById("ref").value="hartford"; document.getElementById("zone").value="18T"; document.getElementById("center_lat").value="41.7262"; document.getElementById("center_lng").value="-72.6316"; document.getElementById("ui_scale").value="7"; break;
	case "Honolulu, HI": document.getElementById("ref").value="honolulu"; document.getElementById("zone").value="04Q"; document.getElementById("center_lat").value="21.4852"; document.getElementById("center_lng").value="-157.966"; document.getElementById("ui_scale").value="7"; break;
	case "Houston--Galveston--Brazoria, TX": document.getElementById("ref").value="houston"; document.getElementById("zone").value="15R"; document.getElementById("center_lat").value="29.7658930066"; document.getElementById("center_lng").value="-95.4022636994"; document.getElementById("ui_scale").value="7"; break;
	case "Kansas City, MO--KS": document.getElementById("ref").value="kansascity"; document.getElementById("zone").value="15S"; document.getElementById("center_lat").value="39.0703088699"; document.getElementById("center_lng").value="-94.6296737071"; document.getElementById("ui_scale").value="7"; break;
	case "Lancaster, PA": document.getElementById("ref").value="lancaster"; document.getElementById("zone").value="18T"; document.getElementById("center_lat").value="40.0185"; document.getElementById("center_lng").value="-76.2976"; document.getElementById("ui_scale").value="7"; break;
	case "Las Vegas, NV--AZ": document.getElementById("ref").value="lasvegas"; document.getElementById("zone").value="11S"; document.getElementById("center_lat").value="36.1093761086"; document.getElementById("center_lng").value="-115.089756642"; document.getElementById("ui_scale").value="7"; break;
	case "Little Rock--North Little Rock, AR": document.getElementById("ref").value="littlerock"; document.getElementById("zone").value="15S"; document.getElementById("center_lat").value="34.7663893911"; document.getElementById("center_lng").value="-92.2914089794"; document.getElementById("ui_scale").value="7"; break;
	case "Los Angeles--Riverside--Orange County, CA": document.getElementById("ref").value="losangeles"; document.getElementById("zone").value="11S"; document.getElementById("center_lat").value="34.0597610901"; document.getElementById("center_lng").value="-118.022783627"; document.getElementById("ui_scale").value="7"; break;
	case "Memphis, TN--AR--MS": document.getElementById("ref").value="memphis"; document.getElementById("zone").value="16S"; document.getElementById("center_lat").value="35.1362642059"; document.getElementById("center_lng").value="-89.9601433637"; document.getElementById("ui_scale").value="7"; break;
	case "Miami--Fort Lauderdale, FL": document.getElementById("ref").value="miami"; document.getElementById("zone").value="17R"; document.getElementById("center_lat").value="25.8072790637"; document.getElementById("center_lng").value="-80.3068475534"; document.getElementById("ui_scale").value="7"; break;
	case "Milwaukee--Racine, WI": document.getElementById("ref").value="milwaukee"; document.getElementById("zone").value="16T"; document.getElementById("center_lat").value="43.0772"; document.getElementById("center_lng").value="-88.1545"; document.getElementById("ui_scale").value="7"; break;
	case "Minneapolis--St. Paul, MN--WI": document.getElementById("ref").value="minneapolis"; document.getElementById("zone").value="15T"; document.getElementById("center_lat").value="45.0067815588"; document.getElementById("center_lng").value="-93.2251797444"; document.getElementById("ui_scale").value="7"; break;
	case "Nashville, TN": document.getElementById("ref").value="nashville"; document.getElementById("zone").value="16S"; document.getElementById("center_lat").value="36.1356"; document.getElementById("center_lng").value="-86.7907"; document.getElementById("ui_scale").value="7"; break;
	case "New Orleans, LA": document.getElementById("ref").value="neworleans"; document.getElementById("zone").value="16R"; document.getElementById("center_lat").value="30.0389577747"; document.getElementById("center_lng").value="-89.9362935302"; document.getElementById("ui_scale").value="7"; break;
	case "New York--Northern New Jersey--Long Island, NY--NJ--CT--PA": document.getElementById("ref").value="newyork"; document.getElementById("zone").value="18T"; document.getElementById("center_lat").value="40.74964121495"; document.getElementById("center_lng").value="-74.0269651892"; document.getElementById("ui_scale").value="7"; break;
	case "Norfolk--Virginia Beach--Newport News, VA--NC": document.getElementById("ref").value="norfolk"; document.getElementById("zone").value="18S"; document.getElementById("center_lat").value="36.8716328708"; document.getElementById("center_lng").value="-76.3806920214"; document.getElementById("ui_scale").value="7"; break;
	case "Philadelphia--Wilmington--Atlantic City, PA--NJ--DE--MD": document.getElementById("ref").value="philadelphia"; document.getElementById("zone").value="18S"; document.getElementById("center_lat").value="39.9812755799"; document.getElementById("center_lng").value="-75.132702532"; document.getElementById("ui_scale").value="7"; break;
	case "Phoenix--Mesa, AZ": document.getElementById("ref").value="pheonix"; document.getElementById("zone").value="12S"; document.getElementById("center_lat").value="33.5642897279"; document.getElementById("center_lng").value="-112.068626604"; document.getElementById("ui_scale").value="7"; break;
	case "Pittsburgh, PA": document.getElementById("ref").value="pittsburgh"; document.getElementById("zone").value="17T"; document.getElementById("center_lat").value="40.4611760018"; document.getElementById("center_lng").value="-79.9461555806"; document.getElementById("ui_scale").value="7"; break;
	case "Portland, ME": document.getElementById("ref").value="portland_me"; document.getElementById("zone").value="19T"; document.getElementById("center_lat").value="43.6695597101"; document.getElementById("center_lng").value="-70.3902262828"; document.getElementById("ui_scale").value="7"; break;
	case "Portland--Salem, OR--WA": document.getElementById("ref").value="portland_or"; document.getElementById("zone").value="10T"; document.getElementById("center_lat").value="45.539048401"; document.getElementById("center_lng").value="-122.608883024"; document.getElementById("ui_scale").value="7"; break;
	case "Providence--Fall River--Warwick, RI--MA": document.getElementById("ref").value="providence"; document.getElementById("zone").value="19T"; document.getElementById("center_lat").value="41.7825771815"; document.getElementById("center_lng").value="-71.3816128291"; document.getElementById("ui_scale").value="7"; break;
	case "Raleigh--Durham--Chapel Hill, NC": document.getElementById("ref").value="raleigh"; document.getElementById("zone").value="17S"; document.getElementById("center_lat").value="35.8773497639"; document.getElementById("center_lng").value="-78.8029353322"; document.getElementById("ui_scale").value="7"; break;
	case "Reading, PA": document.getElementById("ref").value="reading"; document.getElementById("zone").value="18T"; document.getElementById("center_lat").value="40.2743541019"; document.getElementById("center_lng").value="-75.9438480893"; document.getElementById("ui_scale").value="7"; break;
	case "Sacramento--Yolo, CA": document.getElementById("ref").value="sacramento"; document.getElementById("zone").value="10S"; document.getElementById("center_lat").value="38.5573089336"; document.getElementById("center_lng").value="-121.44423269"; document.getElementById("ui_scale").value="7"; break;
	case "Salt Lake City--Ogden, UT": document.getElementById("ref").value="saltlakecity"; document.getElementById("zone").value="12T"; document.getElementById("center_lat").value="40.7917767218"; document.getElementById("center_lng").value="-111.966708926"; document.getElementById("ui_scale").value="7"; break;
	case "San Diego, CA": document.getElementById("ref").value="sandiego"; document.getElementById("zone").value="11S"; document.getElementById("center_lat").value="32.9603872035"; document.getElementById("center_lng").value="-116.911703242"; document.getElementById("ui_scale").value="7"; break;
	case "San Francisco--Oakland--San Jose, CA": document.getElementById("ref").value="sanfrancisco"; document.getElementById("zone").value="10S"; document.getElementById("center_lat").value="37.7923101448"; document.getElementById("center_lng").value="-122.09714697"; document.getElementById("ui_scale").value="7"; break;
	case "Seattle--Tacoma--Bremerton, WA": document.getElementById("ref").value="seattle"; document.getElementById("zone").value="10T"; document.getElementById("center_lat").value="47.5207261988"; document.getElementById("center_lng").value="-122.26700404"; document.getElementById("ui_scale").value="7"; break;
	case "Stockton--Lodi, CA": document.getElementById("ref").value="stocton"; document.getElementById("zone").value="10S"; document.getElementById("center_lat").value="37.9350263042"; document.getElementById("center_lng").value="-121.306310905"; document.getElementById("ui_scale").value="7"; break;
	case "Syracuse, NY": document.getElementById("ref").value="syracruse"; document.getElementById("zone").value="18T"; document.getElementById("center_lat").value="43.0631362988"; document.getElementById("center_lng").value="-76.163761334"; document.getElementById("ui_scale").value="7"; break;
	case "Tampa--St. Petersburg--Clearwater, FL": document.getElementById("ref").value="tampa"; document.getElementById("zone").value="17R"; document.getElementById("center_lat").value="28.154"; document.getElementById("center_lng").value="-82.4526"; document.getElementById("ui_scale").value="7"; break;
	case "Washington--Baltimore, DC--MD--VA--WV": document.getElementById("ref").value="washington"; document.getElementById("zone").value="18S"; document.getElementById("center_lat").value="39.0664254804"; document.getElementById("center_lng").value="-76.8871408616"; document.getElementById("ui_scale").value="7"; break;
	case "West Palm Beach--Boca Raton, FL": document.getElementById("ref").value="westpalmbeach"; document.getElementById("zone").value="17R"; document.getElementById("center_lat").value="26.6236043147"; document.getElementById("center_lng").value="-80.3102587104"; document.getElementById("ui_scale").value="7"; break;
	case "St. Louis, MO--IL": document.getElementById("ref").value="stlouis"; document.getElementById("zone").value="15S"; document.getElementById("center_lat").value="38.6328"; document.getElementById("center_lng").value="-90.2785"; document.getElementById("ui_scale").value="7"; break;
	}
}
	
function getRegionZone() {

	var center_lng = document.getElementById("center_lng").value;
	var center_lat = document.getElementById("center_lat").value;
	var zone = document.getElementById("zone").value;
	
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	{
		alert ("Browser does not support HTTP Request");
		return;
	} 
	var url="get_region_zone.php";
	url=url+"?center_lng="+center_lng;
	url=url+"&center_lat="+center_lat;
	url=url+"&zone="+zone;
	xmlHttp.open("GET",url,true);
	xmlHttp.onreadystatechange = function() 
	{
		if (xmlHttp.readyState == 4) 
		{      
			var xmlDocument = xmlHttp.responseXML; 
			var region = xmlDocument.getElementsByTagName("region").item(0);
			region = region.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 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;
			
			if (region != 'none') { 
				document.getElementById("region").value = region;		
				setRegion(region);		
			}
			else {
				document.getElementById("region").value = "";		
			}
			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 (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;		
			}
		}
	}
	xmlHttp.send(null);
} 
	
function getMap() {
	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").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 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");
			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 + ")";
			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 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 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;		
			}
			else {
				document.getElementById("region").value = "";		
			}
			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 (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();
	  	}
 		}
	http.send(null);
	}
		

function getLegend() {
	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").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");
		var table_start = '<table border="0" cellpadding="0" cellspacing="0" class="dt">';
		var table_end = '</table>';
		DivElement.innerHTML = table_start + httpLegend.responseText + table_end; 
		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 toggleThemeLinks(i) {
	var alink = "";
	var ilink = "theme-" + i;
	for (n=0;n<=2;n=n+1) {
		alink = "theme-" + n;
		document.getElementById(alink).className='t-active';
	}
	document.getElementById(ilink).className='t-inactive';
}


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;
}