/** 
 * Google Maps functions 
 */

var map = null;
var locMarker;

var gMapKeys = {'localhost' : 'ABQIAAAAIaRjzB3z-KKY6oMgmbca5RQOfV3UcEEbZOhJCn9fU1FvDWYjFhR4JtkJYSVwHDdf-7bJvyr2Txil4Q'};

//loadGmapScript();

function loadGmapScript(){
	var url = 'http://maps.google.com/maps?file=api&amp;v=2&amp;key=';
	var host = document.location.href.split('/')[2];
	url += gMapKeys[host];
	loadScript(url);
}

function loadScript(url){
   var e = document.createElement("script");
   e.src = url;
   e.type="text/javascript";
   document.getElementsByTagName("head")[0].appendChild(e);
}

function setLoc(coords){
	//alert(coords);

	var pos = coords.split(",");
	var latlng = new GLatLng(pos[0],pos[1]);
	locMarker = new GMarker(latlng, {draggable: true});
	GEvent.addListener(locMarker, "dragend", function() {
		var point = locMarker.getPoint();
		setFormValue("AccomMapCoords", point.lat() + "," + point.lng());
	});
	//GEvent.addListener(locMarker, "click", function() {
		//locMarker.showMapBlowup();
	//	locMarker.openInfoWindow("<p><strong>Location Marker</strong><p>This is the location marker for your property, you can drag it to help pin point the location of your property.</p>", {maxWidth:150});
//	});
	if (map != null){
	//	map.panTo(latlng);
	}
	//alert(locMarker);
	setFormValue("AccomMapCoords", coords);
}

function setSaleLoc(coords){
	//alert(coords);

	var pos = coords.split(",");
	var latlng = new GLatLng(pos[0],pos[1]);
	locMarker = new GMarker(latlng, {draggable: true});
	GEvent.addListener(locMarker, "dragend", function() {
		var point = locMarker.getPoint();
		setFormValue("SalepropMapCoords", point.lat() + "," + point.lng());
	});
	//GEvent.addListener(locMarker, "click", function() {
		//locMarker.showMapBlowup();
	//	locMarker.openInfoWindow("<p><strong>Location Marker</strong><p>This is the location marker for your property, you can drag it to help pin point the location of your property.</p>", {maxWidth:150});
//	});
	if (map != null){
	//	map.panTo(latlng);
	}
	//alert(locMarker);
	setFormValue("SalepropMapCoords", coords);
}



function loadMap(listenToSelectId, zoomLevel) {
	
	if (zoomLevel == undefined){
		zoomLevel = 15;
	}
	
	//alert("loadMap called" + setCoords);
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		map.addControl(new GSmallMapControl());
		//map.setCenter(new GLatLng(coords[document.getElementById('AccomPlaceId').value].lat, coords[document.getElementById('AccomPlaceId').value].lng), 15);
		
		//get the lat and lng from the current selected location:
		/*
		if (setCoords && setCoords.length > 0){
			setLoc(setCoords);
		}
		*/
		
		
		if (locMarker){
			map.setCenter(locMarker.getPoint(), zoomLevel);
			map.addOverlay(locMarker);

		}else{
			map.setCenter(new GLatLng(coords[document.getElementById(listenToSelectId).value].lat, coords[document.getElementById(listenToSelectId).value].lng), 15);
		}
		
		

		
		
		GEvent.addListener(map, "moveend", function() {
			  //var center = map.getCenter();
			  //document.getElementById("message").innerHTML = center.toString();
		});
		
		GEvent.addListener(map, "click", function(overlay, point){
			if(!overlay){
					if (!locMarker){
						setLoc(point.lat() + "," + point.lng());
						map.addOverlay(locMarker);
					}else{
						locMarker.setPoint(point);
					}
					setFormValue("AccomMapCoords", point.lat() + "," + point.lng());
			}
		});
		
		GEvent.addDomListener(document.getElementById(listenToSelectId),'change', function(){
			setMapCenter(coords[this.value].lat, coords[this.value].lng);
		});
	}
}

function loadSaleMap(listenToSelectId, zoomLevel) {
	
	if (zoomLevel == undefined){
		zoomLevel = 15;
	}
	
	//alert("loadMap called" + setCoords);
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		map.addControl(new GSmallMapControl());
		//map.setCenter(new GLatLng(coords[document.getElementById('AccomPlaceId').value].lat, coords[document.getElementById('AccomPlaceId').value].lng), 15);
		
		//get the lat and lng from the current selected location:
		/*
		if (setCoords && setCoords.length > 0){
			setLoc(setCoords);
		}
		*/
		
		
		if (locMarker){
			map.setCenter(locMarker.getPoint(), zoomLevel);
			map.addOverlay(locMarker);

		}else{
			map.setCenter(new GLatLng(coords[document.getElementById(listenToSelectId).value].lat, coords[document.getElementById(listenToSelectId).value].lng), 15);
		}
		
		

		
		
		GEvent.addListener(map, "moveend", function() {
			  //var center = map.getCenter();
			  //document.getElementById("message").innerHTML = center.toString();
		});
		
		GEvent.addListener(map, "click", function(overlay, point){
			if(!overlay){
					if (!locMarker){
						setSaleLoc(point.lat() + "," + point.lng());
						map.addOverlay(locMarker);
					}else{
						locMarker.setPoint(point);
					}
					setFormValue("SalepropMapCoords", point.lat() + "," + point.lng());
			}
		});
		
		GEvent.addDomListener(document.getElementById(listenToSelectId),'change', function(){
			setMapCenter(coords[this.value].lat, coords[this.value].lng);
		});
	}
}


function setFormValue(id, val){
	var f = document.getElementById(id);
	f.value = val;
}

function setMapCenter(lat, lng){
	map.panTo(new GLatLng(lat, lng));
}


