// @ฉ (2010-02-12 16:46)
var newwindow;
var map, mm;
var marker;
var markersArray = new Array();

function addmappoint(pt,act) {
	if(act == "add" || act == "edit") {
		var sPT = pt.toString();
		var asPT = sPT.match(/\((.+), (.+)\)/);
		
		oLat.value = asPT[1];
		oLng.value = asPT[2];
		oBtnDelMap.disabled = false;
		
		_g('lat_container').innerHTML = asPT[1];
		_g('lng_container').innerHTML = asPT[2];
		_g('latlng_container').style.display = '';
	} else {
		oLat.value = '';
		oLng.value = '';
		oBtnDelMap.disabled = true;
		
		_g('lat_container').innerHTML = '';
		_g('lng_container').innerHTML = '';
		_g('latlng_container').style.display = 'none';
	}
}

function confirmAdd(point) {
	if(confirm("Are you sure you want to add ?")) {
		addmappoint(point,'add');
		
		return true;
	}
	
	return false;
}

function confirmDelete(point) {
	switch(LANG) {
		case 'th': var sMsg = 'คุณต้องการที่จะลบตำแหน่งที่กำหนดไว้หรือไม่?\n\nคุณสามารถใช้เม้าส์ลากที่ไอคอนเพื่อเปลี่ยนตำแหน่งได้\n';break;
		case 'en': var sMsg = 'Are you sure you want to delete?\n\nYou can drag and move to change your place.\n';break;
	}
	
	if(confirm(sMsg)) {
		addmappoint(point,'del');
		return true;
	}
	
	return false;
}

function EditPoint(point) {
	addmappoint(point,'edit');
}

function ClearPoint() {
	//if(marker) {
	for(var i=0,iLen=markersArray.length; i<iLen; i++) {
		map.removeOverlay(markersArray[i]);
	}
	
	oLat.value = '';
	oLng.value = '';
	oBtnDelMap.disabled = true;
	_g('lat_container').innerHTML = '';
	_g('lng_container').innerHTML = '';
	_g('latlng_container').style.display = 'none';
	
	GEvent.addListener(map, "click", function(marker, point) {
		if(confirmAdd(point)) {
			var marker = new GMarker(point, {draggable: true});
			
			GEvent.addListener(marker, "dragstart", function() {
				var startpoint =  marker.getLatLng();
				map.closeInfoWindow();
			});
			
			GEvent.addListener(marker, "dragend", function() {
				var point = marker.getLatLng();
				EditPoint(point);
			});
			
			map.addOverlay(marker);
			markersArray.push(marker);
			GEvent.clearListeners(map, "click");
		}
	});
}

function MoveTo(loc) {
	var asLoc = loc.split('_');
	
	if(asLoc.length < 4) return;
	
	var asLatLng = asProvinceLatLng[asLoc[3]].match(/^(.+), (.+)$/);
	
	map.panTo(new GLatLng(asLatLng[1], asLatLng[2]));
	map.setZoom(11);
	
	ClearPoint();
}

function load() {
	if(GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		map.setCenter(new GLatLng(13.75, 100.5167), 11);
		
		var mapControl = new GMapTypeControl();
		map.addControl(mapControl);
		map.addControl(new GLargeMapControl());
			
		GEvent.addListener(map, "click", function(marker, point) {
			if(confirmAdd(point)) {
				marker = new GMarker(point, {draggable: true});
				
				GEvent.addListener(marker, "dragstart", function() {
					var startpoint =  marker.getLatLng();
					map.closeInfoWindow();
				});
				
				GEvent.addListener(marker, "dragend", function() {
					var point = marker.getLatLng();
					EditPoint(point);
				});
				
				map.addOverlay(marker);
				markersArray.push(marker);
				GEvent.clearListeners(map, "click");
			} else {
				return;
			}
		});
	}
}


function load_edit() {
	if(GBrowserIsCompatible()) {
		var asLatLng = sLatLng.match(/^\((.+), (.+)\)$/);
		var sLat = parseFloat(asLatLng[1]);
		var sLng = parseFloat(asLatLng[2]);
				
		map = new GMap2(document.getElementById("map"));
		map.setCenter(new GLatLng(sLat, sLng), 11);
		
		var mapControl = new GMapTypeControl();
		map.addControl(mapControl);
		map.addControl(new GLargeMapControl());
			
		GEvent.addListener(map, "click", function(marker, point) {
			if(confirmAdd(point)) {
				var marker = new GMarker(point, {draggable: true});
				
				GEvent.addListener(marker, "dragstart", function() {
					var startpoint =  marker.getLatLng();
					map.closeInfoWindow();
				});
				
				GEvent.addListener(marker, "dragend", function() {
					var point = marker.getLatLng();
					EditPoint(point);
				});
				
				map.addOverlay(marker);
				GEvent.clearListeners(map, "click");
			}
		});
		
		var point = new GLatLng (sLat, sLng);
		marker= new GMarker(point, {draggable: true});
		
		GEvent.addListener(marker, "dragstart", function() {
			var startpoint =  marker.getLatLng();
			map.closeInfoWindow();
		});
		
		GEvent.addListener(marker, "dragend", function() {
			var point = marker.getLatLng();
			EditPoint(point);
		});
		
		map.addOverlay(marker);
		markersArray.push(marker);
		GEvent.clearListeners(map, "click");
	}
}

