var ZIP_LENGTH = 5;
	var DELIMETER = '-';
	var DELIMETER_POS = -1;	// -1 = no delimeter
	var FORM_NAME = "searchForm";
	var NAME_RADIUS = "umkreis";

	var COLOR_ERROR = "#FFBBBB";
	var COLOR_NO_ERROR = "#FFFFFF";
	var TYPE_NUMBER = 1;
	var TYPE_CHAR = 2;

	var zipLength = 0;
	var oldText = "";


	function checkZip($obj)
	{
		var error = false;
		var completeZip = false;
		val = trim($obj.value);
		var newval = val;

		if (val != null && val.length > 0)
		{
			type = checkType(val);
			if (type == TYPE_NUMBER + TYPE_CHAR)
			{
				error = true;
			}
			else if (type == TYPE_NUMBER)
			{
				if (oldText != null && val.length > oldText.length)
				{
					newval = delimeter(val);
				}
				else
				{
					oldText = val;
				}

				if (newval != val)
				{
					$obj.value = newval;
					oldText = newval;
				}
				if (zipLength == ZIP_LENGTH) completeZip = true;
				if (zipLength > ZIP_LENGTH) error = true;
			}
		}
		setZipDisabled(!completeZip);
		setBackgroundColor(error, $obj);
	}

	function setBackgroundColor(error, $obj)
	{
		$obj.style.backgroundColor = error ? COLOR_ERROR : COLOR_NO_ERROR;
	}

	function setZipDisabled(disable)
	{
		document[FORM_NAME].elements[NAME_RADIUS].disabled = disable;
	}

	function delimeter(txt)
	{
		if(DELIMETER_POS == -1 || txt == null || txt.length == 0) return txt;

		// delete delimeters
		var newTxt = "";
		for (var i=0; i<txt.length; i++)
		{
			if(txt.charAt(i) != DELIMETER) newTxt += txt.charAt(i);
		}
		txt = newTxt;
		if(txt.length >= DELIMETER_POS - 1)
		{
			txt = txt.substring(0, 2) + DELIMETER + txt.substring(2, txt.length)
		}
		return txt;
	}

	function checkType(txt)
	{
		if (txt == null || txt.length ==0) return 0;
		var numberPresent = false;
		var charPresent = false;

		zipLength = 0;

   		var s = "" + txt;
   		var ziffern = "0123456789";
   		for (var i=0; i<s.length; i++)
		{
      		if (ziffern.indexOf(s.charAt(i))==-1)
			{
				if (DELIMETER_POS > -1 && s.charAt(i) == DELIMETER) continue;
				charPresent = true;
			}
			else
			{
				zipLength++;
				numberPresent = true;
			}
		}

		returnValue = 0;
		if (numberPresent) returnValue += TYPE_NUMBER;
		if (charPresent) returnValue += TYPE_CHAR;
		return returnValue;
	}

	function trim(sString)
	{
		while (sString.substring(0,1) == ' ')
		{
			sString = sString.substring(1, sString.length);
		}
		while (sString.substring(sString.length-1, sString.length) == ' ')
		{
			sString = sString.substring(0,sString.length-1);
		}
		return sString;
	}



