//ajax.js
//script for client-server comunication with ajax

/*
 * Post-Request um Marker für einen Kartenausschnitt zu lesen
 */
function getMarkersForArea(southWest, northEast, zoomLevel) {
	
	$.post("ajaxMapAction.do",{ 
       "southWestLat": southWest.lat(), 
       "southWestLng": southWest.lng(), 
       "northEastLat": northEast.lat(), 
       "northEastLng": northEast.lng(),
       "zoom": zoomLevel
     }, function(xml) { 
	   updateMarkers(xml); 
 	}); 
 	return false; 
}

/*
 * Response für getMarkersForArea
 */
function updateMarkers(xml) {
	COOP.Events.unbindResultListEvents();
	if ($("status",xml).text() != "success") {
		if ($("status",xml).text() == "sessionNotValid") {
			window.location = window.location;
		} else {
			alert($("message",xml).text());
		}
	} else {
		//alert(xml.xml);
		var detailMessage = $("detail-message", xml).text();
		var standortList = $("standort",xml);
		for (var i=0; i<standortList.length; i++) {
			var standort = standortList[i];
			var name = $("name",standort).text();
			var lat = $("lat", standort).text();
			var lng = $("lng", standort).text();
			var zoom = ($("zoom", standort).text()) * 1;
			var typ = ($("type", standort).text()) * 1;
			
			if (typ == 1) {
				var street = $("street",standort).text();
				var city = $("city",standort).text();
				var phonedescr = $("phonedescr",standort).text();
				var phone = $("phone",standort).text();
				var chiefdescr = $("chiefdescr",standort).text();
				var chief = $("chief",standort).text();
				var betriebsnummer = $("betriebsnummer",standort).text();
				var closedescr = $("closedescr",standort).text();
				
				COOP.Gui.appendStandortToList(betriebsnummer, name, street, city, phone, chief, lat, lng, phonedescr, chiefdescr, closedescr);	
			} else {
				COOP.Gui.appendRegionToList(name, lat, lng, zoom);
			}
		}
		
		COOP.Gui.setDetailMessage(detailMessage);		
		COOP.Events.bindResultListEvents();
		
		if (COOP.Map.start != "") {
			getVstInfo(COOP.Map.start);
			COOP.Map.start = "";
		}
	}
}

/*
 * POST-Request um VST-Daten zu laden
 */
function getVstInfo(betriebsnummer) {
	
	$.post("ajaxVstInfoAction.do",{ 
       "betriebsnummer": betriebsnummer
     }, function(xml) { 
	   updateVstInfo(xml); 
 	}); 
 	return false; 
}

/*
 * Response für getVST-Info
 */
function updateVstInfo(xml) {
	if ($("status",xml).text() != "success") {
		if ($("status",xml).text() == "sessionNotValid") {
			window.location = window.location;
		} else {
			alert($("message",xml).text());
		}

	} else {
		//alert(xml.xml);
		COOP.Gui.setVstData(xml);
		if($("benzinpreise", xml).size() > 0) {		
			COOP.Gui.showInfoBoxen("InfoBoxBenzin");
		} else {
			COOP.Gui.showInfoBoxen("InfoBox1");
		}
	}
}


function setSearchCriteria(name, checked) {
	var state = "false";
	if (checked) {
		state = true;
	}
	
	$.post("ajaxSearchCriteriaAction.do",{ 
       "name": name,
       "state": state
     }, function(xml) { 
	   searchCriteriaSet(xml); 
 	}); 
}

function searchCriteriaSet(xml) {

	if ($("status",xml).text() != "success") {
		if ($("status",xml).text() == "sessionNotValid") {
			window.location = window.location;
		} else {
			alert($("message",xml).text());
		}

	} else {
		//alert(xml.xml);
	}
	
	COOP.Map.mapChanged();
}

function setTimeSearchCriteria() {

	query = document.getElementById("query").value;
	if (query.length == 0) {
		document.getElementById("queryError").style.visibility = "visible";
		return true;
	} else {
		document.getElementById("queryError").style.visibility = "hidden";
	}
	zoom = document.getElementById("TimeSearchSelectBox").value;
	zeit = document.getElementById("zeit").value;
	datum = document.getElementById("datum").value;
	
	$.post("ajaxTimeSearch.do",{ 
       "query": query,
       "umkreis": zoom,
       "datum": datum,
       "zeit": zeit
     }, function() { 
	   timeSearchCriteriaSet(); 
 	}); 
}

function timeSearchCriteriaSet() {
    opener.document.searchForm.query.value = document.timeSearchForm.query.value;
    opener.document.searchForm.umkreis.value = document.timeSearchForm.umkreis.value;
    opener.showTimeSearchHint();
    opener.document.getElementById("searchButtonImg").click();
    self.close();
    return false;
}

function removeSessionTimeSearchHint() {
	$.post("ajaxTimeSearchRemove.do", null, function() { 
	   hideTimeSearchHint(); COOP.Map.mapChanged();
 	}); 
}

function getVstLocations(zoomLevel, vstName) {
	$.post("ajaxSearchVstAction.do",{ 
       "zoom": zoomLevel,
       "vstName": vstName
     }, function(xml) { 
	   processSearchVstResult(xml); 
 	}); 
}

function doError(originalRequest) {
	
	//alert("Error " + originalRequest.responseText);
}

 