if (!window.WM)
{
    var WM = function(){alert("192.168.0.1");};
    WM.toString = function(){return "192.168.0.1";}
}
WM.editStat = false;
/***/
//var icons = new Array();
//icon = {'build':'/icon/build.jpg', 'park':'/icon/park.jpg','undefind':'/icon/default.jpg'};
WM.icons = new Array();

WM.mapInit = function(){
	this.map = new GMap2($("map"));
	this.map.addControl(new GLargeMapControl());
	this.map.addControl(new GScaleControl());
	this.map.addControl(new MapAddControl());
	this.map.addControl(new MapAreaMarkerShowControl());
	var overviewMap = new GOverviewMapControl(new GSize(150,120));
	this.map.addControl(overviewMap);
	this.map.setCenter(new GLatLng(defaultLat, defaultLng), defaultZoom , defaultType);
	this.map.setMapType(G_SATELLITE_MAP);
	new GKeyboardHandler(this.map);
	$('monitor_centerLat').innerHTML = parseFloat(WM.map.getCenter().lat());
	$('monitor_centerLng').innerHTML = parseFloat(WM.map.getCenter().lng());
	$('monitor_zoom').innerHTML = WM.map.getZoom();
	
	var baseIcon = new GIcon();
	baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
	baseIcon.iconSize = new GSize(20, 34);
	baseIcon.shadowSize = new GSize(37, 34);
	baseIcon.iconAnchor = new GPoint(9, 34);
	baseIcon.infoWindowAnchor = new GPoint(9, 2);
	baseIcon.infoShadowAnchor = new GPoint(18, 25);
	for(var i=0;i<15;i++)
	{
		var letter = String.fromCharCode("A".charCodeAt(0) + i);
		var icon = new GIcon(baseIcon);
		icon.image = "http://www.google.com/mapfiles/marker" + letter + ".png";
		WM.icons[i] = icon;
	}
	
	GEvent.addListener(WM.map, "moveend", mapmove);
	GEvent.addListener(WM.map, "zoomend", mapmove);
	if(location.search != "")
	{
		var pos = -1;
		pos = location.search.indexOf("id=");
		if(pos != -1)
		{
			var id = location.search.substring(pos+3);
			WM.showOneMarker(id);
		}		
		pos = location.search.indexOf("username=");
		if(pos != -1)
		{
			var username = location.search.substring(pos+9);
			WM.showPeople(username);
		}
		pos = location.search.indexOf("tag=");
		if(pos != -1)
		{
			var tag = location.search.substring(pos+4);
			WM.openTag(tag);
		}
		pos = location.search.indexOf("topic=")
		if(pos != -1)
		{
			var topic = location.search.substring(pos+6);
			WM.openTopic(topic);
		}
	}
	else
	{
		WM.getMapMarks();
	}
	
}

function mapmove()
{
	$('monitor_centerLat').innerHTML = WM.map.getCenter().lat();
	$('monitor_centerLng').innerHTML = WM.map.getCenter().lng();
	$('monitor_zoom').innerHTML = WM.map.getZoom();
	//WM.getAreaMarks();
}

function addMarkerOver(xml){
	//var totalMark = WM.getXmlData(xml, "result");
	WM.getMapMarks();
	GEvent.removeListener(WM.opaqueListener);
	WM.editStat = false;
}

WM.addMarker = function(marker, point) {
	if (marker)
	{
		marker.openInfoWindowTabsHtml(infoTabs);
		quit;
	} 
	else
	{
		var lat = point.lat();
		var lng = point.lng();
		WM.map.clearOverlays();
		if(WM.map.getZoom()<11)
		{
			alert("You can not add a marker below the zoom lever at 11!");
			quit;
		}
		var marker = new GMarker(point);
		WM.map.addOverlay(marker);
		WM.map.panTo(new GLatLng(lat,lng));	
  	}
}

WM.mediumMap = function() {
	Element.show('info_container');
    $('map_container').style.width = "64%";
	//$('info_container').style.width = "35%";
	Element.show('largeSpan');
	Element.hide('mediumSpan');
};
  
WM.largeMap = function() {
	Element.hide('info_container');
    $('map_container').style.width = "99%";	
	Element.show('mediumSpan');
	Element.hide('largeSpan');
};

WM.getXmlTag = function(xml, tag)
{
	//alert(xml);
    var xmlNode = xml.getElementsByTagName(tag);
    if(xmlNode.length == 0)
    {
        //alert("There occured some errors,can't find the "  + tag + "node");
        return false;
    }
    return xmlNode;
}
WM.getXmlData = function(xml, tag)
{
    var xmlNode = xml.getElementsByTagName(tag);
    if(xmlNode.length == 0)
    {
        return false;
    }
    return xmlNode[0].firstChild.data;
}

/////////////////////////////////////////////////window.onload////////////////////////////////////////////////////////////
window.onload = function(e)
{
	WM.mapInit();
    Element.hide('opacity');
    Event.observe('mapItemList', 'click', WM.itemClick, false);
    Event.observe('pageUp', 'click', WM.takePageUp, false);
    Event.observe('pageDown', 'click', WM.takePageDown, false);
	Event.observe('searchButton', 'click', WM.search, false);
	//Event.observe('where', 'focus', WM.change, false);
	Event.observe('what', 'focus', WM.change, false);
	//Event.observe(document.getElementById("alert_mapType"),'click',alertMapType,false);
	//window.alert = function(msg){WM.showMessageBox(msg)};
    Element.addClassName('opacity', 'opacity');
	//window.alert = function(msg){WM.showMessageBox(msg)};
	//Event.observe('toolBar', 'click', WM.clickToolBar, false);

}

WM.showMessageBox = function(msg)
{
    WM.openOpacity();
    var messageBox = '<div id="messageBox"><br/>' + msg + '<br/><br/><input id="closeMessageBox" type="button" value="'+ 'ok' +'"/></div>';
    $('overopacity').innerHTML = messageBox;
    Event.observe('closeMessageBox', 'click', WM.closeOpacity, true);
}

WM.openOpacity = function()
{
    var ox = 1003;
    var oy = 620;
    var bodyX = $('opacity').offsetWidth;
    var bodyY = $('opacity').offsetHeight;
    if(bodyX > ox)
        ox = bodyX;
    if(bodyY > oy)
        oy = bodyY;
    $('opacity').style.width = ox + 'px';
    $('opacity').style.height = oy + 'px';
    Element.show('overopacity');
	Element.show('opacity');
}

WM.closeOpacity = function()
{
    $('overopacity').innerHTML = "";
    Element.hide('opacity');
	Element.hide('overopacity');
}

WM.itemClick = function(event)
{
	
    var cName = (Event.element(event).id);
    switch(cName.split('-')[0])
    {
        case 'mi':
            WM.showMarker(cName.split('-')[2]);
            break;
        case 'mt':
        case 'mu':
        case 'mf':
    }
}


WM.takePageUp = function()
{
    var currPage = parseInt($("currPage").innerHTML);
	var totalPage = parseInt($("totalPage").innerHTML);
    if(currPage > 1)
    {
        var toPage = currPage - 1;
        //WM.map.setCenter(new GLatLng(21.4419, 83.1419), 1 , G_MAP_TYPE);
		var url = "/getmarks.php";
		var pars = "act=page&page="+toPage;
		$('mapItemList').innerHTML = "Loading...";
        var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars, onComplete: WM.showMapItems, onFailure: showError});
    }
}

WM.takePageDown = function()
{
    var currPage = parseInt($("currPage").innerHTML);
    var totalPage = parseInt($("totalPage").innerHTML);
    if(currPage < totalPage)
    {
        var toPage = currPage + 1;
        var url = "/getmarks.php";		
		var pars = "act=page&page="+toPage;
		$('mapItemList').innerHTML = "Loading...";
        var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars, onComplete: WM.showMapItems, onFailure: showError});
    }
}



WM.code = new Array();
WM.getCode = function(event)
{
    var src = Event.element(event).id;
    var codeid = "";
    switch (src)
    {
		case 'loginLink':
			codeid = 'login';
			break;
		case 'reguestLink':
			codeid = 'login';
			break;
		case 'exitLink':
			codeid = 'logout';
			break;
		case 'selectArae':
			Event.stopObserving('mapName', 'click', WM.getCode, false);
			codeid = 'area';
			break;
		default :
			return false;
    }
    if(WM.code[codeid] != null)
        eval(WM.code[codeid]);
    else
	{
		var url = codeid + ".php";
		var pars = "";
		var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars, onComplete: WM.evalCode, onFailure: showError});
	}
}
WM.evalCode = function(xmlHttp)
{
	var xml = xmlHttp.responseXML;
    var code = WM.getXmlData(xml, "code");
    eval(code);
}

WM.showTip = function(msg)
{
	Element.show('tip');
	$("tip").innerHTML = msg;
	setTimeout(WM.hideTip, 2000);
}
WM.hideTip = function()
{	
	Element.hide('tip');
}

WM.infoContainer = new Array('all_updateList_container', 'search_container', 'map_list_container', 'markerInfo_container', 'personal_container','people_container','tag_container','topic_container','id_container');

WM.showOneTab = function(tab,tabs)
{
	var len = tabs.length;
	for(var i=0; i<len; i++)
	{
		if(tabs[i] == tab)
		{
			Element.show(tabs[i]);
		}
		else
		{
			Element.hide(tabs[i]);
		}
	}
}

function showError()
{
	alert('Error!');
}


