// Get the HTTP Object
function getHTTPObject(){
if (window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP");
else if (window.XMLHttpRequest) return new XMLHttpRequest();
else {
alert("Your browser does not support AJAX.");
return null;
}
}
function setOutput(){
	if(httpObject.readyState == 4){
		var response = httpObject.responseText;
		var obj = response.split(":::::::");
		for (i = 0; i < obj.length; i++)
		{
			var elem = obj[i].split(":::::");
			switch (elem[0]){
				case "image":
					$("#mapholder").html("");
					$("#mapholder").load("mapimage", {}, function(){ 
																if ($.browser.msie && $.browser.version.substr(0, 1) < 7)
																{
																	fixmapimage();
																} 
															});
					break;
				case "searchResults":
					$("div.mapsearch img").addClass("loading");
					$("#searchholder").load("mapsearch", function(){
							$("#addresslist").tablesorter({ 
								sortList: [[2,0]],
								widgets: ['zebra'],
								headers: { 
									0: { 
										sorter: false 
									}
								}
							})
							.tablesorterPager({container: $("#pager")});
							
							$(".searchgoto").bind("click", function(){
								var params;
								params = "6/"+$(this).parents("tr")[0].id;
								doWork(params);
							});
							$("div.mapsearch img").removeClass("loading");
						});
					break;
				case "gpsinfo":
					if (elem[1] != "-1")
					{
						$('#gpsInfoDiv').children('span').html(elem[1]);
						$('#gpsInfoDiv').children('span').removeClass("yellow");
						$('#gpsInfoDiv').children('span').removeClass("green");
						if (elem[2] == 0)
							$('#gpsInfoDiv').children('span').addClass("yellow");
						else 
							$('#gpsInfoDiv').children('span').addClass("green");
						$('#gpsInfoDiv')[0].style.left = elem[3]+"px";
						$('#gpsInfoDiv')[0].style.top = elem[4]+"px";
						$('#gpsInfoDiv').show();
					}
					if ($.browser.msie)
						$("#mapholder").load("mapimage");
					break;
				case "topo":
					if (elem[1] == "1")
						$('div.topomap a').removeClass('disabled');
					else
						$('div.topomap a').addClass('disabled');
					break;
				case "gpstime":
					if ($('#gpslist')[0])
					{
						if (elem[1])
						{
							var gpstime = elem[1].split(":::");
							for (j = 0; j < gpstime.length; j++){
								var gps = gpstime[j].split("-");
								$('tr#' + gps[0] + ' > td#time').html(gps[1]);	
							}
						}
					}
					break;
				case "aditionalPoints":
					if ($("input#pointX")[0])
					{
						var point = elem[1].split(":::");
						$("input#pointX")[0].value = point[0];
						$("input#pointY")[0].value = point[1];	
						setObjectPointXY();
						showLoading(false);
	
						return;
					}
					break;
			}
		}
		showLoading(false);
		resetZoomDiv();
	}
}
function setZoneOutput()
{
	if(httpObject.readyState == 4){
		var response = httpObject.responseText;

		var elem = response.split(":::::");
		if (elem[0] == "setValues")
		{
			$('div#zonevalues input#zonename').val(elem[1]);
			$('div#zonevalues input#zoneemail').val(elem[2]);
			//$('div#zonevalues input#zonephone').val(elem[3]);
			$('div#zonevalues input#zonecoords').val(elem[4]);
			$('div#zonevalues input#zoneradius').val(elem[5]);
			$('div#zonevalues input#zoneid').val(elem[6]);
			$('div#zonetable').hide();
			$('div#zonevalues').show();	
		}
	}
}

// Implement business logic
function doWork(params)
{
	showLoading(true);
	httpObject = getHTTPObject();
	if (httpObject != null) {
		httpObject.open("GET", "mapajax/action/"+params, true);
		httpObject.send(null);
		httpObject.onreadystatechange = setOutput;
	}
}

function gpsWork(params)
{
	showLoading(true);
	httpObject = getHTTPObject();
	if (httpObject != null) {
		httpObject.open("GET", "mapajax/gps/"+params, true);
		httpObject.send(null);
		httpObject.onreadystatechange = setOutput;
	}
}
function zoneWork(params)
{
	httpObject = getHTTPObject();
	if (httpObject != null) {
		httpObject.open("GET", "mapajax/zone/"+params, true);
		httpObject.send(null);
		httpObject.onreadystatechange = setZoneOutput;
	}
}

function gpsInfo(params)
{
	showLoading(true);
	httpObject = getHTTPObject();
	if (httpObject != null) {
		httpObject.open("GET", "mapajax/infogps/"+params, true);
		httpObject.send(null);
		httpObject.onreadystatechange = setOutput;
	}
}
function searchWork(params)
{
//	$("#searchholder")[0].innerHTML = "";
//	$("#searchholder").html("");
	$("div.mapsearch img").addClass("loading");
	httpObject = getHTTPObject();
	if (httpObject != null) {
		httpObject.open("GET", "mapajax/search?"+params, true);
		httpObject.send(null);
		httpObject.onreadystatechange = setOutput;
	}
}

var httpObject = null;
function showLoading(value)
{
	if (value){
		$('#gpsInfoDiv').hide();
		$("#mapLoading").show();
	}
	else
		$("#mapLoading").hide();
}





