var geocoder = null;
var map = null; 
var addresslocked = false;

function showMap(sztxt) {
	var header = "";
	var text = "";
	var text2 = "";
	var markerText = "";
	map = new GMap2(document.getElementById("map"));
	map.setCenter(new GLatLng(30.2172, -92.019), 10);
	var request = GXmlHttp.create();
	if (sztxt == "large") {
		map.addControl(new GLargeMapControl());
		map.addControl(new GOverviewMapControl());
	}
	else {
		map.addControl(new GSmallMapControl());
		map.addControl(new GOverviewMapControl(new GSize(100,100)));
	}	
	map.addControl(new GMapTypeControl());
	map.enableDoubleClickZoom();
	map.enableContinuousZoom();
	request.open("GET", "/_rs/xml/getmapdata.cfm", true);
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			var xmlDoc = request.responseXML;
			var billboards = xmlDoc.documentElement.getElementsByTagName("billboard");
			for (var i = 0; i < billboards.length; i++) {
				var mappoint = new GPoint(parseFloat(billboards[i].getAttribute("longitude")), parseFloat(billboards[i].getAttribute("latitude")));
				header = "";
				if (billboards[i].getAttribute("status") != "") {header = header + "<a href=\"/order/orderform/?id=" + billboards[i].getAttribute("id") + "\"><img src=\"/_rs/img/bassicon_" + billboards[i].getAttribute("status").toLowerCase().substr(0,4) + ".png\" width=\"36\" height=\"17\" style=\"vertical-align:middle;\" border=\"0\" /></a>&nbsp;";}
				header = header + "Bass LTD - " + billboards[i].getAttribute("bassid");
				text = billboards[i].getAttribute("width") + "' X " + billboards[i].getAttribute("height") + "'";
				imgtext = "";
				if (billboards[i].getAttribute("stacked") == 1) {text = text + " Stacked";}
				if (billboards[i].getAttribute("trivision") == 1) {text = text + " Tri-Vision";}
				if (billboards[i].getAttribute("location") != "") {text = text + "<br />" + billboards[i].getAttribute("location");}
				if (billboards[i].getAttribute("city") != "") {text = text + "<br />" + billboards[i].getAttribute("city") + ", LA";}
				text2 = "";
				if (billboards[i].getAttribute("status") != "") {text2 = text2 +  "<strong>" + billboards[i].getAttribute("status") + " - <a href=\"/order/orderform/?id=" + billboards[i].getAttribute("id") + "\" style=\"color:blue;\">Order Request Form...</a></strong><br />";}
				if (billboards[i].getAttribute("productioncharges") != "") {text2 = text2 + "Production: " + billboards[i].getAttribute("productioncharges") + "&nbsp;&nbsp;&nbsp;";}
				if (billboards[i].getAttribute("installationcharges") != "") {text2 = text2 + "Installation: " + billboards[i].getAttribute("installationcharges") + "&nbsp;&nbsp;&nbsp;";}
				if (billboards[i].getAttribute("prices") != "") {text2 = text2 + "Price: " + billboards[i].getAttribute("price") + "&nbsp;&nbsp;&nbsp;";}
				if ((billboards[i].getAttribute("frontimage") != "") && (billboards[i].getAttribute("backimage") == "")) {
					imgtext = "<div align=\"center\" style=\"width:245px; float:none;\"><div align=\"center\"><img src=\"" + billboards[i].getAttribute("frontimage") + "\" width=\"100\" height=\"65\" style=\"margin:10px; border:1px solid gray;\" /></div></div>";
				}
				else {
					if ((billboards[i].getAttribute("frontimage") != "") && (billboards[i].getAttribute("backimage") != "")) {
						imgtext = "<div align=\"center\" style=\"width:245px; float:none;\"><div style=\"float:left;\"><img src=\"" + billboards[i].getAttribute("frontimage") + "\" width=\"100\" height=\"65\" style=\"margin:10px; border:1px solid gray;\" /></div><div style=\"float:left;\"><img src=\"" + billboards[i].getAttribute("backimage") + "\" width=\"100\" height=\"65\" style=\"margin:10px; border:1px solid gray;\" /></div></div>";
					}
				}	
				markerText = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tbody><tr><td><div align=\"center\" class=\"mapheader\">" + header + "</div><div align=\"center\" class=\"maptext\">" + text + "</div>" + imgtext + "<div align=\"center\" style=\"clear:both;\" class=\"maptext\">" + text2 + "</div></td></tr></tbody></table>";
				var icon = new GIcon();
				if (billboards[i].getAttribute("status") == "Available") {
					icon.image = "/_rs/img/mapmarkers/green/" + billboards[i].getAttribute("bassid") + ".png";
				}
				else {
					icon.image = "/_rs/img/mapmarkers/red/" + billboards[i].getAttribute("bassid") + ".png";
				}
				icon.iconSize = new GSize(20, 34);
				icon.shadowSize = new GSize(40, 34);
				icon.iconAnchor = new GPoint(10, 34);
				icon.infoWindowAnchor = new GPoint(5, 1);
				icon.shadow = "http://www.google.com/mapfiles/shadow50.png";
				var marker = createMarker(mappoint, markerText, icon);
				map.addOverlay(marker);
			}
		}
	}
	request.send(null);
}	

function createMarker(location, text, icon) {
	var marker = new GMarker(location, icon);
	GEvent.addListener(marker, "click", function() {marker.openInfoWindowHtml(text);});
	return marker;
}

function showLatLngMap() {
	geocoder = new GClientGeocoder();
	map = new GMap2(document.getElementById("map"));
	map.setCenter(new GLatLng(30.2172, -92.019), 10);
	map.addControl(new GSmallMapControl());
	map.addControl(new GMapTypeControl());
	map.enableDoubleClickZoom();
	map.enableContinuousZoom();
	GEvent.addListener(map, "click", function(marker, point) {
		if (marker && addresslocked) {
			point = marker.getPoint();
			var lat = Math.round(point.lat()*1000000)/1000000;
			var lng = Math.round(point.lng()*1000000)/1000000;
			marker.openInfoWindowHtml("<div style='font-family:arial,sans-serif; font-size:11px;'><br>" + document.getElementById("address").value + "<br><strong>Latitude</strong>: " + lat + "<br><strong>Longitude</strong>: " + lng + "</div>");
		}
		else if (marker && !addresslocked) {
			point = marker.getPoint();
			var lat = Math.round(point.lat()*1000000)/1000000;
			var lng = Math.round(point.lng()*1000000)/1000000;
			marker.openInfoWindowHtml("<div style='font-family:arial,sans-serif; font-size:11px;'><br>" + "<strong>Latitude</strong>: " + lat + "<br><strong>Longitude</strong>: " + lng + "</div>");
		}
		else {
			var lat = Math.round(point.lat()*1000000)/1000000;
			var lng = Math.round(point.lng()*1000000)/1000000;
			document.getElementById("address").value = "";
			addresslocked = false;
			map.clearOverlays();
			map.addOverlay(new GMarker(point));
			window.opener.document.forms["appform"]["latitude"].value = lat;
			window.opener.document.forms["appform"]["longitude"].value = lng;
		}	
	});
	GEvent.addListener(map, "mousemove", function(latlng) {
		var lat = Math.round(latlng.lat()*1000000)/1000000;
		var lng = Math.round(latlng.lng()*1000000)/1000000;
		document.getElementById("lat").innerHTML = lat;
		document.getElementById("lng").innerHTML = lng;
	});
	map.clearOverlays();
	if ((window.opener.document.forms["appform"]["latitude"].value != "") && (window.opener.document.forms["appform"]["longitude"].value != "")) {
		var latlng = new GLatLng(window.opener.document.forms["appform"]["latitude"].value, window.opener.document.forms["appform"]["longitude"].value);
		map.addOverlay(new GMarker(latlng));
		map.setCenter(latlng, 10);
	}	
}

function gotoAddress(address) {
  geocoder.getLatLng(address, function(point) {
		if (!point) {
			alert("\"" + address + "\" could not be located.");
		} 
		else {
			map.clearOverlays();
			map.setCenter(point, 13);
			map.addOverlay(new GMarker(point));
			var lat = Math.round(point.lat()*1000000)/1000000;
			var lng = Math.round(point.lng()*1000000)/1000000;
			window.opener.document.forms["appform"]["latitude"].value = lat;
			window.opener.document.forms["appform"]["longitude"].value = lng;
			addresslocked = true;
		}
	});	
}