var nLandID = -1;
var nRegionID = -1;
var nLandkreisID = -1;
var nGemeindeID = -1;
var nGemarkungID = -1;
var completeSuggestion = "";
var selectedSearchItem = null;
var nDistance = 0;

function SearchStart ()
{
//	YAHOO.util.Event.addListener ('cbLand', 'change', onChangeLand);
	YAHOO.util.Event.addListener ('cbRegion', 'change', onChangeRegion);
	YAHOO.util.Event.addListener ('cbLandkreis', 'change', onChangeLandkreis);
	YAHOO.util.Event.addListener ('cbGemeinde', 'change', onChangeGemeinde);
	YAHOO.util.Event.addListener ('cbGemarkung', 'change', onChangeGemarkung);

	YAHOO.util.Event.addListener ('cbNutzung', 'change', onChangeNutzung);
	YAHOO.util.Event.addListener ('cbErschliessung', 'change', onChangeErschliessung);

	YAHOO.util.Event.addListener ('txtPreisMin', 'change', onPreisFlaeche);
	YAHOO.util.Event.addListener ('txtPreisMax', 'change', onPreisFlaeche);
	YAHOO.util.Event.addListener ('txtFlaecheMin', 'change', onPreisFlaeche);
	YAHOO.util.Event.addListener ('txtFlaecheMax', 'change', onPreisFlaeche);

	YAHOO.util.Event.addListener ('txtEinzelhaus', 'change', onChangeBebauungsart);
	YAHOO.util.Event.addListener ('txtDoppelhaus', 'change', onChangeBebauungsart);
	YAHOO.util.Event.addListener ('txtDoppelhaushaelfte', 'change', onChangeBebauungsart);
	YAHOO.util.Event.addListener ('txtReihenhaus', 'change', onChangeBebauungsart);
	YAHOO.util.Event.addListener ('txtfreiesEinzelhaus', 'change', onChangeBebauungsart);
	YAHOO.util.Event.addListener ('txtHausgruppe', 'change', onChangeBebauungsart);
	YAHOO.util.Event.addListener ('txtMax2', 'change', onChangeBebauungsart);
	YAHOO.util.Event.addListener ('txtMax8', 'change', onChangeBebauungsart);

	YAHOO.util.Event.addListener ('txtDSL', 'change', onChangeZusatz);
	YAHOO.util.Event.addListener ('txtHanglage', 'change', onChangeZusatz);
	YAHOO.util.Event.addListener ('txtAussicht', 'change', onChangeZusatz);
	
	
	nLandID = document.getElementById ('cbLand').value;
	nRegionID = -1;
	nLandkreisID = -1;
	nGemeindeID = -1;
	nGemarkungID = -1;
	clearSearchBox ();
	setHiddenData (nLandID, "land");

	if (bLocked)
	{
		document.getElementById ('cbRegion').disabled = true;
		document.getElementById ('cbLandkreis').disabled = true;
		
		if ((initialSearchData == null) || (initialSearchData.type != "landkreis"))
		{
			document.getElementById ('cbGemeinde').disabled = true;
		}
	}
}

YAHOO.util.Event.onDOMReady (SearchStart);

function updateCombos ()
{
	switch (selectedSearchItem.type)
	{
		case 'landkreis':
			nRegionID = selectedSearchItem.regionID;
			nLandkreisID = selectedSearchItem.id;
			nGemeindeID = -1;
			nGemarkungID = -1;
			updateRegion ();
			updateLandkreis ();
			updateGemeinde ();
			updateGemarkung ();
			break;
		case 'gemeinde':
			nRegionID = selectedSearchItem.regionID;
			nLandkreisID = selectedSearchItem.landkreisID;
			nGemeindeID = selectedSearchItem.id;
			nGemarkungID = -1;
			updateRegion ();
			updateLandkreis ();
			updateGemeinde ();
			updateGemarkung ();
			break;
		case 'gemarkung':
			nRegionID = selectedSearchItem.regionID;
			nLandkreisID = selectedSearchItem.landkreisID;
			nGemeindeID = selectedSearchItem.gemeindeID;
			nGemarkungID = selectedSearchItem.id;
			updateRegion ();
			updateLandkreis ();
			updateGemeinde ();
			updateGemarkung ();
			break;
		default:
			return;
	}
	setHiddenData (selectedSearchItem.id, selectedSearchItem.type);
	updateSearchZentrum ();
//	updateTrefferSearch ();
}

function onChangeSearchText (inputField, selection, curVal, suggestion)
{
	completeSuggestion = suggestion;
	var nIndex = suggestion.indexOf ('<');
	if (nIndex < 0)
	{
		inputField.value = suggestion;
	}
	else
	{
		inputField.value = suggestion.substr (0, nIndex);
	}
	YAHOO.log("onChangeSearchText");
	updateTreffer ();
}

function onChangeLand ()
{
	nLandID = document.getElementById ('cbLand').value;
	nRegionID = -1;
	nLandkreisID = -1;
	nGemeindeID = -1;
	nGemarkungID = -1;
	clearSearchBox ();
	setHiddenData (nLandID, "land");
	
	updateRegion ();
	updateLandkreis ();
	updateGemeinde ();
	updateGemarkung ();
	updateTreffer ();
	updateZentrum ();
	YAHOO.log("onChangeLand");
}

function onChangeRegion ()
{
	nLandID = document.getElementById ('cbLand').value;
	nRegionID = document.getElementById ('cbRegion').value;
	nLandkreisID = -1;
	nGemeindeID = -1;
	nGemarkungID = -1;
	clearSearchBox ();
	if (nRegionID < 0)
	{
		setHiddenData (nLandID, "land");
	}
	else
	{
		setHiddenData (nRegionID, "region");
	}

	updateLandkreis ();
	updateGemeinde ();
	updateGemarkung ();
	YAHOO.log("onChangeRegion");
	updateTreffer ();
	updateZentrum ();
}

function onChangeLandkreis ()
{
	nLandID = document.getElementById ('cbLand').value;
	nRegionID = document.getElementById ('cbRegion').value;
	nLandkreisID = document.getElementById ('cbLandkreis').value;
	nGemeindeID = -1;
	nGemarkungID = -1;
	clearSearchBox ();
	if (nLandkreisID < 0)
	{
		setHiddenData (nRegionID, "region");
	}
	else
	{
		setHiddenData (nLandkreisID, "landkreis");	
	}

	updateGemeinde ();
	updateGemarkung ();
	YAHOO.log("onChangeLandkreis");
	updateTreffer ();
	updateZentrum ();
}

function onChangeGemeinde ()
{
	nLandID = document.getElementById ('cbLand').value;
	nRegionID = document.getElementById ('cbRegion').value;
	nLandkreisID = document.getElementById ('cbLandkreis').value;
	nGemeindeID = document.getElementById ('cbGemeinde').value;
	nGemarkungID = -1;
	clearSearchBox ();
	if (nGemeindeID < 0)
	{
		setHiddenData (nLandkreisID, "landkreis");	
	}
	else
	{
		setHiddenData (nGemeindeID, "gemeinde");	
	}

	updateGemarkung ();
	YAHOO.log("onChangeGemeinde");
	updateTreffer ();
	updateZentrum ();
}

function onChangeGemarkung ()
{
	nLandID = document.getElementById ('cbLand').value;
	nRegionID = document.getElementById ('cbRegion').value;
	nLandkreisID = document.getElementById ('cbLandkreis').value;
	nGemeindeID = document.getElementById ('cbGemeinde').value;
	nGemarkungID = document.getElementById ('cbGemarkung').value;
	clearSearchBox ();
	if (nGemarkungID < 0)
	{
		setHiddenData (nGemeindeID, "gemeinde");	
	}
	else
	{
		setHiddenData (nGemarkungID, "gemarkung");	
	}

	YAHOO.log("onChangeGemarkung");
	updateTreffer ();
	updateZentrum ();
}

function onChangeNutzung ()
{
	var nutzung = document.getElementById ('cbNutzung').value;
	
	switch (nutzung)
	{
		case 'gewerbe':
			if (window.switchToGewerbe)
			{
				window.switchToGewerbe ();
			}
			break;
		case 'wohn':
		case 'beides':
		default:
			if (window.switchToWohn)
			{
				window.switchToWohn ();
			}
			break;
	}
	updateTreffer ();
}

function onChangeErschliessung ()
{
	updateTreffer ();
}

function onChangeBebauungsart ()
{
	var arrBebauungsart = new Array ();
	
	var arrFields = ['txtEinzelhaus', 
	                 'txtDoppelhaus', 
	                 'txtDoppelhaushaelfte', 
	                 'txtReihenhaus', 
	                 'txtfreiesEinzelhaus',
	                 'txtHausgruppe',
	                 'txtMax2',
	                 'txtMax8'];
	
	for (var nIndex = 0; nIndex < arrFields.length; nIndex++)
	{
		if (!isChecked (arrFields [nIndex]))
		{
			continue;
		}
		var strValue = getValue (arrFields [nIndex]);
		if (strValue != '')
		{
			arrBebauungsart.push (strValue);
		}
	}
	setValue ('bebauungsart', arrBebauungsart.join (","));
	
	updateTreffer ();
}

function onChangeZusatz ()
{
	var arrZusatz = new Array ();
	
	var arrFields = ['txtDSL', 
	                 'txtHanglage', 
	                 'txtAussicht'];
	
	for (var nIndex = 0; nIndex < arrFields.length; nIndex++)
	{
		if (!isChecked (arrFields [nIndex]))
		{
			continue;
		}
		var strValue = getValue (arrFields [nIndex]);
		if (strValue != '')
		{
			arrZusatz.push (strValue);
		}
	}
	setValue ('zusatz', arrZusatz.join (","));
	
	updateTreffer ();
}

function onPreisFlaeche ()
{
	updateTreffer ();
}

function updateRegion ()
{
	var AjaxObject = 
	{
		handleSuccess: function(o) 
		{
			// This member handles the success response
			// and passes the response object o to AjaxObject's
			// processResult member.
			this.processResult(o);
		},
		handleFailure: function (o) 
		{
			// Failure handler
		},
		processResult: function (o) 
		{
			// This member is called by handleSuccess
			if (o.responseText <= 0)
			{
				return;
			}
			document.getElementById ('divRegion').innerHTML = o.responseText;
			YAHOO.util.Event.addListener ('cbRegion', 'change', onChangeRegion);
		},
		startRequest: function () 
		{
			YAHOO.util.Connect.asyncRequest ('POST', 
											'/gis/ajaxSearchFunction.php', 
											callback, 
											"update=region&landID=" + nLandID + "&regionID=" + nRegionID);
		}
	};
	 
	/*
	 * Define the callback object for success and failure
	 * handlers as well as object scope.
	 */
	var callback = 
	{
		success:
			AjaxObject.handleSuccess,
		failure:
			AjaxObject.handleFailure,
		scope:
			AjaxObject
	};
	 
	// Start the transaction.
	AjaxObject.startRequest ();
}

function updateLandkreis ()
{
	var AjaxObject = 
	{
		handleSuccess: function(o) 
		{
			// This member handles the success response
			// and passes the response object o to AjaxObject's
			// processResult member.
			this.processResult(o);
		},
		handleFailure: function (o) 
		{
			// Failure handler
		},
		processResult: function (o) 
		{
			// This member is called by handleSuccess
			if (o.responseText <= 0)
			{
				return;
			}
			document.getElementById ('divLandkreis').innerHTML = o.responseText;
			YAHOO.util.Event.addListener ('cbLandkreis', 'change', onChangeLandkreis);
		},
		startRequest: function () 
		{
			YAHOO.util.Connect.asyncRequest ('POST', 
											'/gis/ajaxSearchFunction.php', 
											callback, 
											"update=landkreis&landID=" + nLandID + 
											"&regionID=" + nRegionID + 
											"&landkreisID=" + nLandkreisID);
		}
	};
	 
	/*
	 * Define the callback object for success and failure
	 * handlers as well as object scope.
	 */
	var callback = 
	{
		success:
			AjaxObject.handleSuccess,
		failure:
			AjaxObject.handleFailure,
		scope:
			AjaxObject
	};
	 
	// Start the transaction.
	AjaxObject.startRequest ();
}

function updateGemeinde ()
{
	var AjaxObject = 
	{
		handleSuccess: function(o) 
		{
			// This member handles the success response
			// and passes the response object o to AjaxObject's
			// processResult member.
			this.processResult(o);
		},
		handleFailure: function (o) 
		{
			// Failure handler
		},
		processResult: function (o) 
		{
			// This member is called by handleSuccess
			if (o.responseText <= 0)
			{
				return;
			}
			document.getElementById ('divGemeinde').innerHTML = o.responseText;
			YAHOO.util.Event.addListener ('cbGemeinde', 'change', onChangeGemeinde);
		},
		startRequest: function () 
		{
			YAHOO.util.Connect.asyncRequest ('POST', 
											'/gis/ajaxSearchFunction.php', 
											callback, 
											"update=gemeinde&landID=" + nLandID + 
												"&regionID=" + nRegionID + 
												"&landkreisID=" + nLandkreisID + 
												"&gemeindeID=" + nGemeindeID);
		}
	};
	 
	/*
	 * Define the callback object for success and failure
	 * handlers as well as object scope.
	 */
	var callback = 
	{
		success:
			AjaxObject.handleSuccess,
		failure:
			AjaxObject.handleFailure,
		scope:
			AjaxObject
	};
	 
	// Start the transaction.
	AjaxObject.startRequest ();
}

function updateGemarkung ()
{
	var AjaxObject = 
	{
		handleSuccess: function(o) 
		{
			// This member handles the success response
			// and passes the response object o to AjaxObject's
			// processResult member.
			this.processResult(o);
		},
		handleFailure: function (o) 
		{
			// Failure handler
		},
		processResult: function (o) 
		{
			// This member is called by handleSuccess
			if (o.responseText <= 0)
			{
				return;
			}
			document.getElementById ('divGemarkung').innerHTML = o.responseText;
			YAHOO.util.Event.addListener ('cbGemarkung', 'change', onChangeGemarkung);
		},
		startRequest: function () 
		{
			YAHOO.util.Connect.asyncRequest ('POST', 
											'/gis/ajaxSearchFunction.php', 
											callback, 
											"update=gemarkung&landID=" + nLandID + 
												"&regionID=" + nRegionID + 
												"&landkreisID=" + nLandkreisID + 
												"&gemeindeID=" + nGemeindeID + 
												"&gemarkungID=" + nGemarkungID);
		}
	};
	 
	/*
	 * Define the callback object for success and failure
	 * handlers as well as object scope.
	 */
	var callback = 
	{
		success:
			AjaxObject.handleSuccess,
		failure:
			AjaxObject.handleFailure,
		scope:
			AjaxObject
	};
	 
	// Start the transaction.
	AjaxObject.startRequest ();
}

function updateZentrum ()
{
	updateSearchZentrum ();
	return;
}

function updateSearchZentrum ()
{
	if (window.showCenter == null)
	{
		return;
	}
	showCenter (null);
	if (selectedSearchItem == null)
	{
		return;
	}
	var landkreis = nLandkreisID;
	var gemeinde = nGemeindeID;
	var gemarkung = nGemarkungID;
	switch (selectedSearchItem.type)
	{
		case 'landkreis':
			landkreis = selectedSearchItem.id;
			break;
		case 'gemeinde':
			gemeinde = selectedSearchItem.id;
			break;
		case 'gemarkung':
			gemarkung = selectedSearchItem.id;
			break;
		default:
			return;
	}
	
	var AjaxObject = 
	{
		handleSuccess: function(o) 
		{
			// This member handles the success response
			// and passes the response object o to AjaxObject's
			// processResult member.
			this.processResult(o);
		},
		handleFailure: function (o) 
		{
			// Failure handler
		},
		processResult: function (o) 
		{
			// This member is called by handleSuccess
			if (window.showCenter != undefined)
			{
				showCenter (o.responseText);
			}
		},
		startRequest: function () 
		{
			YAHOO.util.Connect.asyncRequest ('POST', 
											'/gis/ajaxSearchFunction.php', 
											callback, 
											"update=zentrum" + 
												"&landkreisID=" + landkreis + 
												"&gemeindeID=" + gemeinde +
												"&gemarkungID=" + gemarkung);
		}
	};
	 
	/*
	 * Define the callback object for success and failure
	 * handlers as well as object scope.
	 */
	var callback = 
	{
		success:
			AjaxObject.handleSuccess,
		failure:
			AjaxObject.handleFailure,
		scope:
			AjaxObject
	};
	 
	// Start the transaction.
	AjaxObject.startRequest ();
}

function findNearestZentrum (point)
{
	if (point == null)
	{
		return;
	}
	var AjaxObject = 
	{
		handleSuccess: function(o) 
		{
			// This member handles the success response
			// and passes the response object o to AjaxObject's
			// processResult member.
			this.processResult(o);
		},
		handleFailure: function (o) 
		{
			// Failure handler
		},
		processResult: function (o) 
		{
			// This member is called by handleSuccess
			var data = YAHOO.lang.JSON.parse (o.responseText);
			selectedSearchItem = data;
			document.getElementById ('txtFreeSearch').value = data.name;
			updateCombos ();
			if (window.updateTreffer != undefined)
			{
				updateTreffer ();
			}
		},
		startRequest: function () 
		{
			YAHOO.util.Connect.asyncRequest ('POST', 
											'/gis/ajaxSearchFunction.php', 
											callback, 
											"update=findZentrum&lat=" +point.lat () + "&lon=" + point.lng());
		}
	};
	 
	/*
	 * Define the callback object for success and failure
	 * handlers as well as object scope.
	 */
	var callback = 
	{
		success:
			AjaxObject.handleSuccess,
		failure:
			AjaxObject.handleFailure,
		scope:
			AjaxObject
	};
	 
	// Start the transaction.
	AjaxObject.startRequest ();
}

function updateTreffer ()
{
	YAHOO.log("updateTreffer");
	
	if (window.updateTrefferSearch != undefined)
	{
		updateTrefferSearch ();
	}
}
var nLandID = -1;
var nRegionID = -1;
var nLandkreisID = -1;
var nGemeindeID = -1;
var nGemarkungID = -1;
var completeSuggestion = "";
var defaultLat = 50.343556992468514;
var defaultLong =  9.530543088912964;
var map;
var markerCenter = null;
var markerRadius = null;
var selectedSearchItem = null;
var nDistance = 0;

function initFreeSearch ()
{
	YAHOO.util.Event.addListener ('distance', 'change', onChangeDistance);

	if ((bLocked == undefined) || (!bLocked))
	{
		var searchDS = new YAHOO.util.XHRDataSource ("/gis/ajaxSearchFunction.php");
		searchDS.responseType = YAHOO.util.XHRDataSource.TYPE_JSON;
		searchDS.connMethodPost = true;
		searchDS.responseSchema = {
			    resultsList : "Response", // String pointer to result data
			    fields : [
			        { key: "name" },
			        { key: "id" },
			        { key: "type" },
			        { key: "landID" },
			        { key: "regionID" },
			        { key: "landkreisID" },
			        { key: "gemeindeID" },
			        { key: "gemarkungID" },
			        { key: "zusatz" }
			    ],
			    metaFields : {
			    }
			};
	
		var myAutoComp = new YAHOO.widget.AutoComplete ("txtFreeSearch", "entryContainer", searchDS);
		myAutoComp.maxResultsDisplayed = 25;
		myAutoComp.minQueryLength = 3;
		myAutoComp.queryDelay = 0.1;
		myAutoComp.generateRequest = function (sQuery) 
		{
		    return "update=search&search=" + sQuery;
		};
		myAutoComp.resultTypeList = false;
		myAutoComp.formatResult = function (oResultData, sQuery, sResultMatch) 
		{
			var sKey = sResultMatch;
			var sKeyLower = sKey.toLowerCase ();
			var sQueryLower = sQuery.toLowerCase ();
			   
			var nIndex = sKeyLower.indexOf (sQueryLower);
			
			// Extract the part of the match that the user did not type
			var sKeyPrefix = "";
			if (nIndex > 0)
			{
				sKeyPrefix = sKey.substr (0, nIndex);
			}
			var sKeyRemainder = sKey.substr (sQuery.length + nIndex);
			
			sKey = sKey.substr (nIndex, sQuery.length);
		 
			// some other piece of data defined by schema
			var zusatz = oResultData.zusatz; 
			var aMarkup = ["<div class='myCustomResult'>",
			               sKeyPrefix,
			               "<span style='font-weight:bold'>",
			               sKey,
			               "</span>",
			               sKeyRemainder,
			               " [",
			               zusatz,
			               "]</div>"];
			return (aMarkup.join(""));
		};
		myAutoComp.itemSelectEvent.subscribe (selectionChanged, null, this);
	}

	setValue ('jsenabled', 'true');
	if (initialSearchData != null)
	{
		if ((bLocked == undefined) || (!bLocked))
		{
			document.getElementById ('txtFreeSearch').value = initialSearchData.name;
		}
		selectionChanged (null, [null, null, initialSearchData], true);
	}
	else
	{
		onChangeDistance ();
	}
}

YAHOO.util.Event.onDOMReady (initFreeSearch);

function selectionChanged (eventSource, data, bInitialRun)
{
	selectedSearchItem = data [2];
	if (!bInitialRun)
	{
		if (window.updateCombos != undefined)
		{
			updateCombos ();
		}
	}
	//YAHOO.log("selectionChanged");
	
	updateTrefferSearch ();
	setHiddenData (selectedSearchItem.id, selectedSearchItem.type);
	if (bInitialRun)
	{
		if (window.updateSearchZentrum != undefined)
		{
			updateSearchZentrum ();
		}
	}
}

function onChangeSearchText (inputField, selection, curVal, suggestion)
{
	completeSuggestion = suggestion;
	var nIndex = suggestion.indexOf ('<');
	if (nIndex < 0)
	{
		inputField.value = suggestion;
	}
	else
	{
		inputField.value = suggestion.substr (0, nIndex);
	}
//	YAHOO.log("onChangeSearchText");
	updateTrefferSearch ();
}

function setHiddenData (nID, strType)
{
	if (selectedSearchItem == null)
	{
		selectedSearchItem = {id: nID, type: strType};
	}
	
	document.getElementById ('searchType').value = strType;
	document.getElementById ('searchID').value = nID;
	if (nID <= 0)
	{
		document.getElementById ('searchBau').enabled = false;
	}
	else
	{
		document.getElementById ('searchBau').enabled = true;
	}
}

function clearSearchBox ()
{
	selectedSearchItem = null;
	if ((bLocked == undefined) || (!bLocked))
	{
		document.getElementById ('txtFreeSearch').value = "";
	}
}

function onChangeDistance ()
{
	nDistance = parseInt (document.getElementById ('distance').value);
	if (window.updateMapRadius != undefined)
	{
		updateMapRadius (nDistance);
	}
//	YAHOO.log("onChangeDistance");
	updateTrefferSearch ();
}

function addParameter (strName, strField)
{
	var field = document.getElementById (strField);
	if (field == null)
	{
		return '';
	}
	return strName + "=" + field.value;
}

function getValue (strField)
{
	var field = document.getElementById (strField);
	if (field == null)
	{
		return '';
	}
	return field.value;
}

function isChecked (strField)
{
	var field = document.getElementById (strField);
	if (field == null)
	{
		return false;
	}
	return field.checked;
}

function setValue (strField, strValue)
{
	var field = document.getElementById (strField);
	if (field == null)
	{
		return;
	}
	field.value = strValue;
}

function updateTrefferSearch ()
{
	if (selectedSearchItem == null)
	{
		return;
	}
//	YAHOO.log("updateTrefferSearch");

	var AjaxObject = 
	{
		handleSuccess: function(o) 
		{
			// This member handles the success response
			// and passes the response object o to AjaxObject's
			// processResult member.
			this.processResult(o);
		},
		handleFailure: function (o) 
		{
			// Failure handler
		},
		processResult: function (o) 
		{
			// This member is called by handleSuccess
			if (o.responseText == undefined)
			{
				return;
			}
			
			var obData = YAHOO.lang.JSON.parse (o.responseText);
			
			var wohnDiv = document.getElementById ('search_result_top_left');
			var gewerbeDiv = document.getElementById ('search_result_top_right');
			var gesamtDiv = document.getElementById ('trefferText');
			var nCount = 0;
			
			nCount = obData.wohn + obData.gewerbe;
			if (gesamtDiv != undefined)
			{
				var strTreffer = "";
				if (obData.wohn > 0)
				{
					strTreffer += obData.wohn + " ";  
					if (obData.wohn == 1)
					{
						strTreffer += "Wohngebiet"
					}
					else
					{
						strTreffer += "Wohngebiete"
					}
				}
				if (obData.gewerbe > 0)
				{
					if (strTreffer != "")
					{
						strTreffer += " - ";
					}
					strTreffer += obData.gewerbe + " ";  
					if (obData.gewerbe == 1)
					{
						strTreffer += "Gewerbegebiet"
					}
					else
					{
						strTreffer += "Gewerbegebiete"
					}
				}
				if (nCount <= 0)
				{
					strTreffer += "0 Treffer"
				}
				gesamtDiv.innerHTML = strTreffer;
			}
			if (wohnDiv != undefined)
			{
				if ((obData.wohn != undefined) || (obData.wohn <= 0))
				{
					if (obData.wohn == 1)
					{
						strTreffer = obData.wohn + " Baugebiet";
					}
					else
					{
						strTreffer = obData.wohn + " Baugebiete";
					}
				}
				else
				{
					strTreffer = "0 Baugebiete";
				}
				wohnDiv.innerHTML = strTreffer;
			}
			if (gewerbeDiv != undefined)
			{
				if ((obData.gewerbe != undefined) || (obData.gewerbe <= 0))
				{
					strTreffer = obData.gewerbe + " Treffer";
				}
				else
				{
					strTreffer = "0 Treffer";
				}
				gewerbeDiv.innerHTML = strTreffer;
			}
			
			if (nCount > 0)
			{
				if (window.updateFlurPositions != undefined)
				{
					updateFlurPositions ();
				}
				document.getElementById ('searchBau').disabled = false;
			}
			else
			{
				if (window.clearFlurMarker != undefined)
				{
					clearFlurMarker (arrFlurMarker);
					arrFlurMarker = new Array ();
				}
				document.getElementById ('searchBau').disabled = true;
			}
		},
		startRequest: function () 
		{
			document.getElementById ('searchBau').disabled = true;

			var arrParams = new Array ();

			arrParams.push ("update=trefferSearch");
			arrParams.push ("searchid=" + selectedSearchItem.id);
			arrParams.push ("searchtype=" + selectedSearchItem.type);
			if ((bLocked == undefined) || (!bLocked))
			{
				var strParam = addParameter ('search', 'txtFreeSearch');
				if (strParam != "")
				{
					arrParams.push (strParam);
				}
				strParam = addParameter ('umkreis', 'distance');
				if (strParam != "")
				{
					arrParams.push (strParam);
				}
			}
			strParam = addParameter ('txtPreisMin', 'txtPreisMin');
			if (strParam != "")
			{
				arrParams.push (strParam);
			}
			strParam = addParameter ('txtPreisMax', 'txtPreisMax');
			if (strParam != "")
			{
				arrParams.push (strParam);
			}
			strParam = addParameter ('txtFlaecheMin', 'txtFlaecheMin');
			if (strParam != "")
			{
				arrParams.push (strParam);
			}
			strParam = addParameter ('txtFlaecheMax', 'txtFlaecheMax');
			if (strParam != "")
			{
				arrParams.push (strParam);
			}
			strParam = addParameter ('cbNutzung', 'cbNutzung');
			if (strParam != "")
			{
				arrParams.push (strParam);
			}
			strParam = addParameter ('txtGRZ', 'txtGRZ');
			if (strParam != "")
			{
				arrParams.push (strParam);
			}
			strParam = addParameter ('txtGFZ', 'txtGFZ');
			if (strParam != "")
			{
				arrParams.push (strParam);
			}
			strParam = addParameter ('cbErschliessung', 'cbErschliessung');
			if (strParam != "")
			{
				arrParams.push (strParam);
			}
			strParam = addParameter ('bebauungsart', 'bebauungsart');
			if (strParam != "")
			{
				arrParams.push (strParam);
			}
			strParam = addParameter ('zusatz', 'zusatz');
			if (strParam != "")
			{
				arrParams.push (strParam);
			}

			YAHOO.util.Connect.asyncRequest ('POST', 
											'/gis/ajaxSearchFunction.php', 
											callback, 
											arrParams.join ("&")
											);
		}
	};
	 
	/*
	 * Define the callback object for success and failure
	 * handlers as well as object scope.
	 */
	var callback = 
	{
		success:
			AjaxObject.handleSuccess,
		failure:
			AjaxObject.handleFailure,
		scope:
			AjaxObject
	};
	 
	// Start the transaction.
	AjaxObject.startRequest ();
}
function TooltipsStart ()
{
	YAHOO.namespace("kewbee.gis.tooltips");

	YAHOO.kewbee.gis.tooltips.tooltip1 = new YAHOO.widget.Tooltip ("tooltip1", 
			                        { context:"txtFreeSearch",  
			                          text:"Hier können Sie nach Landkreisen, Gemeinden, Ortsteilen oder Postleitzahlen suchen" }); 
	YAHOO.kewbee.gis.tooltips.tooltip2 = new YAHOO.widget.Tooltip ("tooltip2", 
            { context:"distance",  
              text:"Wählen Sie die Reichweite, welche bei der Suche berücksichtigt werden soll." }); 

	YAHOO.kewbee.gis.tooltips.tooltip3 = new YAHOO.widget.Tooltip ("tooltip3", 
            { context:"divTreffer",  
              text:"Anzeige der Trefferanzahl, welche anhand der aktuellen Sucheinstellungen ermittelt wird." }); 

	YAHOO.kewbee.gis.tooltips.tooltip4 = new YAHOO.widget.Tooltip ("tooltip4", 
            { context:"searchBau",  
              text:"Führt die eigentliche Suche aus und leitet zur Seite mit den Suchergebnissen." }); 

	YAHOO.kewbee.gis.tooltips.tooltip5 = new YAHOO.widget.Tooltip ("tooltip5", 
            { context:"divRegion",  
              text:"Wählt das Bundesland aus." }); 

	YAHOO.kewbee.gis.tooltips.tooltip6 = new YAHOO.widget.Tooltip ("tooltip6", 
            { context:"divLandkreis",  
              text:"Wählt den Landkreis aus." }); 

	YAHOO.kewbee.gis.tooltips.tooltip7 = new YAHOO.widget.Tooltip ("tooltip7", 
            { context:"divGemeinde",  
              text:"Wählt den Ort / die Gemeinde aus." }); 

	YAHOO.kewbee.gis.tooltips.tooltip8 = new YAHOO.widget.Tooltip ("tooltip8", 
            { context:"divGemarkung",  
              text:"Wählt den Ortsteil / die Gemarkung aus." }); 

	YAHOO.kewbee.gis.tooltips.tooltip9 = new YAHOO.widget.Tooltip ("tooltip9", 
            { context:"preise",  
              text:"Legt die Preisspanne, bzw. den Maximal- oder Mindestpreis fest" }); 

	YAHOO.kewbee.gis.tooltips.tooltip10 = new YAHOO.widget.Tooltip ("tooltip10", 
            { context:"flaechen",  
              text:"Schränkt die gewünschte Grundstücksgröße ein, bzw. legt die Maximal- oder Mindestfläche fest" }); 

	YAHOO.kewbee.gis.tooltips.tooltip11 = new YAHOO.widget.Tooltip ("tooltip11", 
            { context:"divBebauungsartShow",  
              text:"Welche Bebauungsarten sollen auf den Grundstücken erlaubt sein?<br/>Es werden nur Bauplätze angezeigt, die alle gewählte Bebauungsarten erlauben." }); 

	YAHOO.kewbee.gis.tooltips.tooltip12 = new YAHOO.widget.Tooltip ("tooltip12", 
            { context:"cbNutzung",  
              text:"Schänkt die Suche auf Wohngebiete und/oder Gewerbegebiete ein." }); 
	
	YAHOO.kewbee.gis.tooltips.tooltip13 = new YAHOO.widget.Tooltip ("tooltip13", 
            { context:"txtGRZ",  
              text:"Die Grundstücksflächenzahl gibt das Verhältnis zwischen Grundstücksgröße und bebaubarer Fläche an.<br>Sie kann Werte zwischen 0,0 und 1,0 annehmen.<br>Bei Eingabe von z.B. 0,6 werden Grundstücke gesucht, welche eine GRZ von mindestens 0,6 oder höher besitzen." }); 

	YAHOO.kewbee.gis.tooltips.tooltip14 = new YAHOO.widget.Tooltip ("tooltip14", 
            { context:"txtGFZ",  
              text:"Die Geschossflächenzahl gibt das Verhältnis zwischen Grundstücksgröße und der Summe der Flächen aller Geschosse an.<br>Sie kann Werte ab 0,0 annehmen (z.B. 0,1 bedeutet die Summe alle Vollgeschosse darf maximal 10% der Grundstücksfläche entsprechen)<br>Bei Eingabe von z.B. 1,2 werden Grundstücke gesucht, welche eine GFZ von mindestens 1,2 oder höher besitzen." }); 

	YAHOO.kewbee.gis.tooltips.tooltip15 = new YAHOO.widget.Tooltip ("tooltip15", 
            { context:"cbErschliessung",  
              text:"Wählt Grundstücke aus, die bereits erschlossen sind, noch nicht erschlossen sind, oder deren Erschliessung unbekannt ist." }); 

	YAHOO.kewbee.gis.tooltips.tooltip16 = new YAHOO.widget.Tooltip ("tooltip16", 
            { context:"txtDSL",  
              text:"Wählt Grundstücke aus, für die ein DSL-Anschluss möglich ist." });
	
	YAHOO.kewbee.gis.tooltips.tooltip17 = new YAHOO.widget.Tooltip ("tooltip17", 
            { context:"txtHanglage",  
              text:"Wählt Grundstücke aus, die an einem Hang liegen" });
	
	YAHOO.kewbee.gis.tooltips.tooltip18 = new YAHOO.widget.Tooltip ("tooltip18", 
            { context:"txtAussicht",  
              text:"Wählt Grundstücke aus, die eine schöne Aussicht besitzen." }); 


}

YAHOO.util.Event.onDOMReady (TooltipsStart);

