// JavaScript Document
WM.startAddMarker = function(){
	//WM.overlaysStat = false;
	if(WM.getCookie("cwiki_autologin_user") == null)
    {
		alert("Add a place mark, you have to log in");
        return false;
    }
	WM.map.clearOverlays();
    if(WM.editStat == true)
    {
        GEvent.removeListener(WM.opaqueListener);
    }
	WM.showMarkerAddInfo();
	WM.editStat = true;
	return true;
}

WM.showMarkerAddInfo = function()
{
	var url = '/pointinfo.php';
	var pars = "action=add";
	Element.show('info_container');
	WM.showOneTab('markerInfo_container',WM.infoContainer);
	$('markerInfo_detail').innerHTML = "Loading...";
	Element.hide('mapItemList');
	Element.hide('mapItemList_tail');
	WM.mediumMap();
	$('map_container').style.width = "64%";
	//Element.show('markerInfo_detail');
	var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars, onComplete: displayMarkerInfo, onFailure: showError});
	WM.opaqueListener = GEvent.addListener(WM.map, "click", WM.getMarkerPosition);
}

WM.showMarkerDetailInfo = function(id)
{
	Element.show('info_container');
	WM.showOneTab('markerInfo_container',WM.infoContainer);
	$('markerInfo_detail').innerHTML = "Loading...";
	Element.hide('mapItemList');
	Element.hide('mapItemList_tail');
	WM.mediumMap();
	var url = '/pointinfo.php';
	var pars = "action=get&id="+id;	
	var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars, onComplete: displayMarkerInfo, onFailure: showError});
}

WM.editMarkerInfo = function(index)
{
	if(WM.getCookie("cwiki_autologin_user") == null)
    {
		alert("Edit a place mark, you have to log in");
        return false;
    }
	WM.showMarker(index);
	var url = '/pointinfo.php';
	var pars = "action=edit&id="+WM.markers[index][3];
	WM.showOneTab('markerInfo_container',WM.infoContainer);
	$('markerInfo_detail').innerHTML = "Loading...";
	Element.hide('mapItemList');
	Element.hide('mapItemList_tail');
	WM.mediumMap();
	var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars, onComplete: displayMarkerInfo, onFailure: showError});
}

function displayMarkerInfo(pointInfoXML)
{
	$('markerInfo_detail').innerHTML = pointInfoXML.responseText;
}

WM.keepMessage = function(){
	var url = "/addinfo.php";
	var zoom = WM.map.getZoom();
	var t =$("markerInfo_title").value;
	var m =$("markerInfo_content").value;
	var tags =$("markerInfo_tags").value;
	var lat = parseFloat($("markerInfo_lat").innerHTML);
	var lng = parseFloat($("markerInfo_lng").innerHTML);
	if(t == "" || tags == "" || isNaN(lat) || isNaN(lng))
	{
		alert("Some Infomation is needed!");
		return false;
	}
	var pars = "lat=" + lat + "&lng=" + lng + "&title=" + t + "&content=" + m +"&tags=" + tags  + "&zoom=" + zoom;
	var myAjax = new Ajax.Request(url, {method: 'post', parameters: pars, onComplete: WM.keepComplete, onFailure: showError});
	return true;
}

WM.keepMessage_goon = function()
{
	if(!WM.keepMessage())
	{
		return false;
	}
	$("markerInfo_title").value = "";
	$("markerInfo_content").value = "";
	$("markerInfo_tags").value = "";
	$("markerInfo_lat").innerHTML = 0;
	$("markerInfo_lng").innerHTML = 0;
}

WM.keepMessage_cancel = function()
{
	if(!WM.keepMessage())
	{
		return false;
	}
	GEvent.removeListener(WM.opaqueListener);
	WM.closeMarkerInfo();
}

WM.keepComplete = function(xmlHttp)
{
	xml = xmlHttp.responseXML;
	var result = WM.getXmlData(xml, "result");
	if(result==1)
	{
		WM.showTip("Add a place mark successfully!");
	}
	else
	{
		WM.showTip("Add failed");
	}
}

WM.editMarkerPosition = function(lat, lng) {
	WM.map.clearOverlays();
	//var oldMarker = new GMarker(new GPoint(lat,lng));
	var oldIcon = new GIcon(G_DEFAULT_ICON);
	oldIcon.image = "http://labs.google.com/ridefinder/images/mm_20_gray.png";
  	var oldMarker = new GMarker(new GLatLng(lat,lng), oldIcon);
	WM.map.addOverlay(oldMarker);
	WM.map.panTo(new GLatLng(lat,lng));
	if(WM.editStat == true)
    {
		GEvent.removeListener(WM.opaqueListener);
	}
	WM.opaqueListener = GEvent.addListener(this.map, "click", WM.getMarkerPosition);
	WM.editStat = true;
}

WM.editMarkerPosition_lastestMarker = null;
WM.getMarkerPosition = function(marker, point)
{
	if(point != null)
	{
		var lat = point.lat();
		var lng = point.lng();
	}
	if(marker != null)
	{
		WM.map.removeOverlay(marker);
		quit;
	}
	else
	{
		if(WM.map.getZoom()<11)
		{
			alert("You can not add a marker below the zoom lever at 11!");
			quit;
		}
		marker = new GMarker(point);
		if(WM.editMarkerPosition_lastestMarker)
		{
			WM.map.removeOverlay(WM.editMarkerPosition_lastestMarker);
		}
		WM.editMarkerPosition_lastestMarker = marker;
		WM.map.addOverlay(marker);
		WM.map.panTo(new GLatLng(lat,lng));
		$("markerInfo_lat").innerHTML = lat;
		$("markerInfo_lng").innerHTML = lng;
		//Element.show("markerInfoBox");
	}
}

WM.editMarkerInfo_post = function(){
	$('d_action').innerHTML = 'Loading...';
	var id = $("markerInfo_id").innerHTML;
	var url = "/modifyinfo.php";
	var zoom = WM.map.getZoom();
	//var title =$("markerInfo_title").value;
	var content =$("markerInfo_content").value;
	var tags =$("markerInfo_tags").value;
	var lat = $("markerInfo_lat").innerHTML;
	var lng = $("markerInfo_lng").innerHTML;
	var pars = "id=" + id + "&lat=" + lat + "&lng=" + lng + "&content=" + content + "&tags=" + tags + "&zoom=" + zoom;
	var myAjax = new Ajax.Request(url, {method: 'post', parameters: pars, onComplete: WM.editComplete_cancel, onFailure: showError});
	WM.editMarkerPosition_lastestMarker = null;
}

WM.editComplete_cancel = function(xmlHttp)
{
	if(WM.opaqueListener)
	{
		GEvent.removeListener(WM.opaqueListener);
	}
	//alert(1);
	WM.editComplete(xmlHttp);
}

WM.editComplete = function(xmlHttp)
{
	//alert(xmlHttp.responseText);
	var xml = xmlHttp.responseXML;
	var result = WM.getXmlData(xml, "result");
	//alert(2);
	if(result==1)
	{
		WM.showTip("Edit a place mark successfully");
	}
	else
	{
		WM.showTip("Edit failed");
	}
	WM.closeMarkerInfo();
	//alert(2);
}

//Event.observe('markerInfo_close', 'click', WM.closeMarkerInfo, false);
WM.closeMarkerInfo = function() {
	Element.show('info_container');
	WM.showOneTab('all_updateList_container',WM.infoContainer);
	$('markerInfo_detail').innerHTML = "Loading...";
	Element.show('mapItemList_tail');
	if(WM.opaqueListener)
	{
		GEvent.removeListener(WM.opaqueListener);
	}
	WM.editState == false;
	WM.updateMapItemList();
}