// Build the link in the DetailBubble to plan the route
function printPreviewRoute(objecttype, objectid, pagenumber, postleitzahl, ort,
		strasse, hausnummer, language, standorttyp) {
	var zoomLevel = getActualZoomLevel();
	var userlat = getActualPosition('lat');
	var userlng = getActualPosition('lng');
	var newURL = 'RoutePlaner?objecttype=' + objecttype + '&objectid='
			+ objectid + '&pagenumber=' + pagenumber + '&postleitzahl='
			+ postleitzahl + '&ort=' + ort + '&strasse=' + strasse
			+ '&hausnummer=' + hausnummer + '&zoomlevel=' + zoomLevel
			+ '&standorttyp=' + standorttyp + '&userlat=' + userlat + '&lang='
			+ language + '&userlng=' + userlng;
	routeWindow = window
			.open(
					newURL,
					"printpreviewroute",
					"width=930,height=900,left=100,top=0,location=no,status=no,resizable=no,scrollbars=yes");
	routeWindow.focus();
	// for omniture
	var wpmsc = s_gi(reportSuiteID);
	wpmsc.linkTrackVars = 'prop30';
	wpmsc.linkTrackEvents = 'None';
	wpmsc.prop30 = '/Route';
	wpmsc.tl(this, 'e', 'Route');
}

// Build to the printlink
function printPreview(objecttype, objectid, pagenumber, markernumber) {
	var zoomLevel = getActualZoomLevel();
	var userlat = getActualPosition('lat');
	var userlng = getActualPosition('lng');
	var oldURL = document.URL;
	oldURL = oldURL.replace(/[\?\&]objectid=\d*/, "");
	oldURL = oldURL.replace(/[\?\&]objecttype=[a-z]*/, "");
	oldURL = oldURL.replace(/[\?\&]lang=[a-zA-Z0-9]*/, "");
	oldURL = oldURL.replace(/Standortsuche\&/, "Standortsuche?");
	var newURL = oldURL + '&objecttype=' + objecttype + '&objectid=' + objectid
			+ '&lang=' + language + '&markernumber=' + markernumber
			+ '&zoomlevel=' + zoomLevel + '&pagenumber=' + pagenumber
			+ '&userlat=' + userlat + '&printtype=locationsearch_print'
			+ '&userlng=' + userlng;
	printWindow = window
			.open(newURL, "printpreview",
					"width=650,height=900,left=100,top=50,location=yes,status=no,resizable=no");
	printWindow.focus();
	// for omniture
	var wpmsc = s_gi(reportSuiteID);
	wpmsc.linkTrackVars = 'prop30';
	wpmsc.linkTrackEvents = 'None';
	wpmsc.prop30 = '/Drucken';
	wpmsc.tl(this, 'e', 'Drucken');

}

/* Opens the infoWindow popUp */
function openWindow(adress) {
   infoWindow = window
         .open(adress, "Info",
               "width=900,height=650,left=100,top=100,location=no,status=no,resizable=yes");
   infoWindow.focus();
}
/* Opens the SurveyWindow popUp */
function openSurveyWindow(surveyURL) {
   surveyWindow = window
         .open(surveyURL, "Umfrage",
               "width=750,height=580,left=120,top=120,location=no,status=no,resizable=yes, scrollbars=yes");
   surveyWindow.focus();
}
/* Opens the infoWindow popUp of the newslist */
function openWindowNews(adress, showLocationbar) {
   if (showLocationbar=='true') {
      infoWindow = window
         .open(adress, "News",
               "width=900,height=650,left=100,top=100,location=yes,status=yes,resizable=yes,menubar=yes,toolbar=yes, scrollbars=yes");
   }
   else {
      infoWindow = window
         .open(adress, "News",
               "width=900,height=650,left=100,top=100,location=no,status=no,resizable=yes, scrollbars=yes");
   }
   infoWindow.focus();
}
/* Fix the css min-width property in Internet Explorer 6 */
function resizeHeader() {
	var ua = navigator.userAgent.toLowerCase();
	var mozillabrowser = (ua.indexOf("gecko/") != -1);
	var iebrowser = (ua.indexOf("msie") > -1 && ua.indexOf("opera") == -1);
	var av = navigator.appVersion;
	var version2 = av.substring(0, av.indexOf(".")) * 1;
	if (iebrowser) {
		if (version2 == 4 && ua.indexOf("msie 6") > -1) {
			var fontsize;
			if (document.getElementById("testdiv") != null) {
				fontsize = document.getElementById("testdiv").offsetWidth;
			}
			if (document.documentElement.clientWidth <= 50 * fontsize) {
				document.getElementById("header").style.width = "50em";
			} else {
				document.getElementById("header").style.width = "100%";
				document.getElementById("searchquery").style.display = "none";
				document.getElementById("searchquery").style.display = "block";
			}
		}
	}
}
/* Resize the map */
function resizeMap() {
	if (document.getElementById("map") != null) {
		var fontsize = document.getElementById("testdiv").offsetWidth;
      var map = document.getElementById("map");
      var footnote = document.getElementById("footnote");
      var subheadline = document.getElementById("searchresult_subheadline");
		map.style.height = "1px";

		// *************** Handle FireFox ****************
		if (window.innerHeight) {
			var MINWIDTH = fontsize * 50.5;
			var MINHEIGHT = fontsize * 49.9;
         var MAPHEIGHT = 25.56 + "em";
         var FOOTNOTEMARGINTOP = 29.6 + "em";
			var MAPWIDTH = 32.5 + "em";
			if (window.innerHeight > MINHEIGHT) {
            map.style.height = (window.innerHeight - map.offsetTop - 50)
                  + "px";
            if (footnote) {
               footnote.style.marginTop = (window.innerHeight - map.offsetTop - 135)
                  + "px";
            }
			} else {
				map.style.height = MAPHEIGHT;
            if (footnote) {
               footnote.style.marginTop = (FOOTNOTEMARGINTOP);
                  + "px";
            }
			}
			if (window.innerWidth > MINWIDTH) {
				map.style.width = (window.innerWidth - map.offsetLeft - 30)
						+ "px";
            if (subheadline) {
               subheadline.style.width = (window.innerWidth - map.offsetLeft - 30)
                  + "px";
            }
            if (footnote) {
               footnote.style.width = (window.innerWidth - map.offsetLeft - 30)
                  + "px";
            }
			} else {
            map.style.width = MAPWIDTH;
            if (subheadline) {
               subheadline.style.width = MAPWIDTH;
            }
            if (footnote) {
               footnote.style.width = '47.2em';
            }
			}
		}
		// *************** Handle InternetExplorer 6 ****************
		else {
			var MINWIDTH = fontsize * 49;
			var MINHEIGHT = fontsize * 50;
			var MAPHEIGHT = 25 + "em";
         var FOOTNOTEMARGINTOP = 30.6 + "em";
			var MAPWIDTH = 32.55 + "em";
			if (document.body.clientHeight) {
				if (document.documentElement.clientHeight > MINHEIGHT) {
					if (map.offsetParent != null) {
						var parent = map.offsetParent;
						var tmpHeight = (document.documentElement.clientHeight
								- parent.offsetTop - map.offsetTop - 50);
					   if (footnote) {
                     footnote.style.marginTop = (tmpHeight - 68)
                        + "px";
                     //alert('setting footnote.marginTop to ' + footnote.style.marginTop);
                  }
                  map.style.height=tmpHeight+"px";
					}
				} else {
					map.style.height = MAPHEIGHT;
					if (footnote) {
                  footnote.style.marginTop = FOOTNOTEMARGINTOP;
               }
				}

				if (document.documentElement.clientWidth > MINWIDTH + 30) {
					document.getElementById("searchresult").style.width = document.documentElement.clientWidth;
               map.style.width = (document.documentElement.clientWidth
                     - map.offsetLeft - 30)
                     + "px";
               if (subheadline) {
                  subheadline.style.width = (document.documentElement.clientWidth
                     - map.offsetLeft - 30)
                     + "px";
               }
               if (footnote) {
                  footnote.style.width = (document.documentElement.clientWidth
                     - map.offsetLeft - 30)
                     + "px";
               }
				} else {
					document.getElementById("searchresult").style.width = "50em";
               map.style.width = MAPWIDTH;
               if (subheadline) {
                  subheadline.style.width = MAPWIDTH;
               }
               if (footnote) {
                  //footnote.style.width = MAPWIDTH;
                  footnote.style.width = '48.0em';
               }
				}
			}
		}
	}
	resizeHeader();
}

/* Highlighting der Suchergebnisse */
function setBackground(box, dir) {
	if (box.getAttribute("addressno") || (resultType == 'results')) {
		if (dir == 'in') {
			box.style.backgroundColor = "#e4e4e4";
		} else {
			box.style.backgroundColor = "#ffffff";
		}
	}
}

/* setzt den richtigen Wochentag */
function setWeekday() {
	var actualDate = new Date();
	var weekday = actualDate.getDay();
	if (weekday == 0) {
		weekday = 7;
	}
	if ((document.getElementById('weekday_selection')) && !weekdaypreset) {
		document.getElementById('weekday_selection').options[weekday - 1].selected = 'selected';
	}
}

function enableBox(boxid) {
	document.getElementById(boxid).disabled = "";
	if (boxid == 'time_selection') {
		setClearanceTime();
	}
}

function disableBox(boxid) {
	document.getElementById(boxid).disabled = "disabled";
}

function setServices(box) {
	if (box.checked) {
		enableBox('service_selection');
	} else {
		disableBox('service_selection');
	}
}

function setClearanceTime() {
	if ((document.getElementById('time_selection'))
			&& (document.getElementById('period_time'))
			&& (document.getElementById('period_time').checked)) {
		var selDay = getSelected('weekday_selection', 'value');
		if (selDay < '6') {
			document.getElementById('time_selection').disabled = "";
		} else {
			document.getElementById('time_selection').disabled = "disabled";
		}
	}
}

/* Setzt die richtige Seite der Suchergebnisse */
function setPage(target, zooming) {
	if (zooming != true) {
		zooming = false;
	}
	closeInfoWindow();
	var resToHideEnd = (actualResultPage * resultsPerPage);
	var resToHideStart = resToHideEnd - (resultsPerPage - 1);
	if (resultType == 'results') {
		for ( var j = resToHideStart; j <= resToHideEnd; j++) {
			if (document.getElementById('res_' + j)) {
				document.getElementById('res_' + j).style.display = 'none';
			}
		}
	}
	switch (target) {
	case "start":
		actualResultPage = 1;
		break;
	case "end":
		actualResultPage = numberOfPages;
		break;
	case "before":
		actualResultPage--;
		break;
	case "next":
		actualResultPage++;
		break;
	default:
		if (!isNaN(target)) {
			if ((0 < target) && (target <= numberOfPages)) {
				actualResultPage = target;
			}
		}
		break;
	}
	if (document.getElementById("pageselection")) {
		document.getElementById("pageselection").value = actualResultPage;
	}
	var endResultPos = actualResultPage * resultsPerPage;

	var startResultPos = endResultPos - (resultsPerPage - 1);
	// If LocationSearch
	if (document.getElementById("map")) {
		setActualMarkers(startResultPos, endResultPos, zooming);
	}
	if (endResultPos > numberOfResults) {
		endResultPos = numberOfResults;
	}
	if (resultType == 'results') {
		for ( var i = startResultPos; i <= endResultPos; i++) {
			document.getElementById('res_' + i).style.display = 'block';
		}
		document.getElementById("displayResultNumbers").innerHTML = startResultPos
				+ " - " + endResultPos;
	} else {
		for ( var tdCounter = 1; tdCounter < 11; tdCounter++) {
			document.getElementById("zip_" + tdCounter).innerHTML = "";
			document.getElementById("city_" + tdCounter).innerHTML = "";
			document.getElementById("cityAddition_" + tdCounter).innerHTML = "";
			document.getElementById("district_" + tdCounter).innerHTML = "";
			document.getElementById("street_" + tdCounter).innerHTML = "";
			document.getElementById("streetno_" + tdCounter).innerHTML = "";

			document.getElementById("zip_" + tdCounter)
					.removeAttribute("style");
			document.getElementById("city_" + tdCounter).removeAttribute(
					"style");
			document.getElementById("cityAddition_" + tdCounter)
					.removeAttribute("style");
			document.getElementById("district_" + tdCounter).removeAttribute(
					"style");
			document.getElementById("street_" + tdCounter).removeAttribute(
					"style");
			document.getElementById("streetno_" + tdCounter).removeAttribute(
					"style");
		}
		var addressCounter = 1;
		for ( var i = startResultPos; i <= endResultPos; i++) {
			document.getElementById("tbody_" + addressCounter).setAttribute(
					"addressno", (i));
			document.getElementById("zip_" + addressCounter).innerHTML = addressArray[i - 1][0]
					+ "&nbsp;";
			document.getElementById("city_" + addressCounter).innerHTML = addressArray[i - 1][1]
					+ "&nbsp;";
			document.getElementById("cityAddition_" + addressCounter).innerHTML = addressArray[i - 1][2]
					+ "&nbsp;";
			document.getElementById("district_" + addressCounter).innerHTML = addressArray[i - 1][3]
					+ "&nbsp;";
			document.getElementById("street_" + addressCounter).innerHTML = addressArray[i - 1][4]
					+ "&nbsp;";
			document.getElementById("streetno_" + addressCounter).innerHTML = addressArray[i - 1][5]
					+ "&nbsp;";
			document.getElementById("zip_" + addressCounter).setAttribute(
					"style", "border-bottom: 1px solid #ffe88a;");
			document.getElementById("city_" + addressCounter).setAttribute(
					"style", "border-bottom: 1px solid #ffe88a;");
			document.getElementById("cityAddition_" + addressCounter)
					.setAttribute("style", "border-bottom: 1px solid #ffe88a;");
			document.getElementById("district_" + addressCounter).setAttribute(
					"style", "border-bottom: 1px solid #ffe88a;");
			document.getElementById("street_" + addressCounter).setAttribute(
					"style", "border-bottom: 1px solid #ffe88a;");
			document.getElementById("streetno_" + addressCounter).setAttribute(
					"style", "border-bottom: 1px solid #ffe88a;");
			addressCounter++;
		}
	}
	if (document.getElementById("searchresult_paging")) {
		if (actualResultPage == 1) {
			disablePagingLink('start');
			disablePagingLink('before');
		} else {
			enablePagingLink('start');
			enablePagingLink('before');
		}
		if (actualResultPage == numberOfPages) {
			disablePagingLink('end');
			disablePagingLink('next');
		} else {
			enablePagingLink('end');
			enablePagingLink('next');
		}
	}
}

function sendAddressChoice(element) {
	if (element.getAttribute("addressno")) {
		if (showMap) {
			overlayMessage.Set(waitMessage);
		}
		var addressNumber = element.getAttribute("addressno");
		var arrayPos = parseInt(addressNumber);
		var form = document.forms['locsearchform'];
		arrayPos--; // zur Abfrage (if(element.addressNo)) darf nicht 0 im
		// Attribut stehen, im Array ist diese Position aber
		// vergeben
		document.getElementById("zip").value = addressArray[arrayPos][0];
		document.getElementById("city").value = addressArray[arrayPos][1];
		document.getElementById("street").value = addressArray[arrayPos][4];
		document.getElementById("noCalc").value = addressArray[arrayPos][8];
		document.getElementById("streetno").value = document
				.getElementById("noCalc").value;
		document.getElementById("latitude").value = addressArray[arrayPos][6];
		document.getElementById("longitude").value = addressArray[arrayPos][7];
		document.getElementById("original_choosen_district").value = addressArray[arrayPos][3];
		if (addressArray[arrayPos][10]>1) {
		   document.getElementById("show_similar").value = 'true' ;
		}
		else {
         document.getElementById("show_similar").value = '' ;
		}
		disableEmptyElements(form);
		form.submit();
	}
}

function setPageByNumber(key) {
	if (key.keyCode == 13) {
		setPage(document.getElementById('pageselection').value, true);
	}
}

function disablePagingLink(name) {
	var objToDisable = document.getElementById('pag_' + name);
	document.getElementById('pag_' + name + '_img').src = 'images/paging/paging_arrows_' + name + '_na.gif';
	objToDisable.href = 'javascript:void(0)';
	objToDisable.style.cursor = 'auto';
}

function enablePagingLink(name) {
	var objToDisable = document.getElementById('pag_' + name);
	document.getElementById('pag_' + name + '_img').src = 'images/paging/paging_arrows_' + name + '.gif';
	objToDisable.href = 'javascript:setPage("' + name + '", true)';
	objToDisable.style.cursor = 'pointer';
}

function loadLocType(element) {
	if (showMap) {
		overlayMessage.Set(waitMessage);
	}
	var newLocType = getSelected(element.id, 'value');
	if (document.getElementById('locsearchform')) {
		var newLocType = getSelected(element.id, 'value');
		var form = document.forms['locsearchform'];
		document.getElementById('standorttyp').value = newLocType;
		if (!(typeof objectNumberToShow=="undefined") && objectNumberToShow>=0) {
        form.lat.value=objectLatitude;
        form.lng.value=objectLongitude;
        form.objectid.value='';
      }
		disableEmptyElements(form);
		form.submit();
	} else {
	   if (delete_button && delete_button!='') {
        document.location.href = "Standortsuche?standorttyp=" + newLocType
            + "&lang=" + language +  "&delete_button=" + delete_button;
	   }
	   else {
	     document.location.href = "Standortsuche?standorttyp=" + newLocType
				+ "&lang=" + language;
		}
	}
}

function sendSearch() {
	if (showMap) {
		overlayMessage.Set(waitMessage);
	}
	var form = document.forms['locsearchform'];
	form.original_entered_city.value = form.city.value;
	form.show_similar.value='';
	form.original_choosen_district.value='';
	if (!(typeof objectNumberToShow=="undefined") && objectNumberToShow>=0) {
	   form.lat.value=objectLatitude;
	   form.lng.value=objectLongitude;
	   form.objectid.value='';
	}
	disableEmptyElements(form);
	form.submit();
}

function sendSearchForDistricts() {
        if (showMap) {
             overlayMessage.Set(waitMessage);
        }
        var form = document.forms['locsearchform'];
        form.show.value = 'show_districts';
        form.city.value = getCityRoot(form.city.value);
        if (form.original_entered_city.value!=null && form.original_entered_city.value.length>0) {
           form.city.value = getCityRoot(form.original_entered_city.value);
        }
        form.zip.value = '';
        disableEmptyElements(form);
        form.submit();
}

function openNews() {
	var retval = document.getElementById('news').style.display;
	//alert('1');
	document.getElementById('news').style.display = 'none';
   document.getElementById('news_button').style.display = 'block';

	if ('none' == retval) {
	   //alert('2');
	   document.getElementById('news').style.display = 'block';
	   document.getElementById('news').style.position='absolute';

	   var ie = false;
	   var agent = navigator.userAgent.toLowerCase();
      if (agent.indexOf('MSIE 6'.toLowerCase())>-1) {
         ie = true;
      }
      if (!ie) {
	      //alert('no ie: setting top to ' + document.getElementById('news_button').offsetTop);
	      document.getElementById('news').style.top = document.getElementById('news_button').offsetTop +  "px";
      }
      /*else if (agent.indexOf('MSIE 7'.toLowerCase())>-1 &&) {
         alert('2a');
         // calulacting the offset for ie.
         var elem = document.getElementById('news_button');
         var topOffset = elem.offsetTop;
         alert('2b ' + topOffset);
         var parent = elem.parentNode.parentNode;
         var j=0;
         while (parent != document.body && j<5)
         {
             j++;
             topOffset += parent.offsetTop;
             alert(j+' offSetTop+: ' + parent.offsetTop + ' topOffset: ' + topOffset + ' Name: ' + parent.nodeName + ' id: ' + parent.getAttribute('id'));
             parent = parent.parentNode;
         }
         alert('ie: setting top to ' +topOffset);
         document.getElementById('news').style.top = topOffset +  "px";
      }*/
      else {
         //alert('2c');
         // calulacting the offset for ie.
         var elem = document.getElementById('news_button');
         var topOffset = elem.offsetTop;
         var parent = elem.offsetParent;
         while (parent != document.body)
         {
            topOffset += parent.offsetTop;
            parent = parent.offsetParent;
         }
         document.getElementById('news').style.top = topOffset +  "px";
      }

	   document.getElementById('news').style.left = document.getElementById('news_button').offsetLeft +  "px";
	   document.getElementById('news_button').style.display = 'none';
      //send statistic-counter to omniture
      sendNewsLinkToOmniture('opened');
	}
	else {
	   //alert('3');
	   document.getElementById('news').style.display = 'none';
	   document.getElementById('news_button').style.display = 'block';
      //send statistic-counter to omniture
      sendNewsLinkToOmniture('closed');
	}
}

function sendNewsLinkToOmniture(linkName) {
   var wpmsc=s_gi(reportSuiteID);
   wpmsc.linkTrackVars='prop31';
   wpmsc.linkTrackEvents='None';
   wpmsc.prop31=linkName;
   wpmsc.tl(this,'e','Newsleiste');
}

function changeNews(direction) {
   if (direction>0) {
      currentElement++;
   }
   else {
      currentElement--;
   }
   if (currentElement < 0) {
      currentElement=array.length-1;
   }
	if (array.length <= currentElement) {
	   currentElement=0;
	}
   // the array has 2 dimensions: The first dimension holds the diferent news, the second dimension contains the text of the news (element 0), the link(element 1)
   // and the name of the link (element 2), and the information if the news should be opened in a popup (element 3).
	document.getElementById("news_link").href=array[currentElement][1];
	document.getElementById("news_link_name").firstChild.data =  array[currentElement][2];
	document.getElementById("news_name").firstChild.data=array[currentElement][0];
   if (array[currentElement][3] == 'true') {
      if (array[currentElement][4] == 'false') {
         document.getElementById("news_link").onclick=function() {openWindowNews(this.href,'false'); sendNewsLinkToOmniture(array[currentElement][0]); return false;};
      }
      else {
         document.getElementById("news_link").onclick=function() {openWindowNews(this.href, 'true'); sendNewsLinkToOmniture(array[currentElement][0]); return false;};
      }
   }
   else {
      document.getElementById("news_link").onclick=function() {sendNewsLinkToOmniture(array[currentElement][0]); return true;};
   }
   //send news-counter to omniture
   if (direction>0) {
      sendNewsLinkToOmniture('up');
   }
   else {
      sendNewsLinkToOmniture('down');
   }

}

/**
 * Disable all input fields which are empty, so that the parameter does't appear
 * in the url
 * 
 * @param form
 *            the specified formular on which the fields should be disabled
 * @return
 */
function disableEmptyElements(form) {
	var fieldCount = form.elements.length;
	for ( var i = 0; i < fieldCount; i++) {
		if (form.elements[i].value == '') {
			form.elements[i].disabled = "disabled";
		}
	}
}

function changeLanguage(newLanguage) {
	var oldLanguage;
	if (newLanguage == 'de') {
		oldLanguage = 'en';
	} else {
		oldLanguage = 'de'
	}
	var oldUrlArr = location.href.split("lang=" + oldLanguage);
	var newUrl = oldUrlArr[0];
	var lastSignOfNewUrl = newUrl.substr(newUrl.length - 1);
	if ((lastSignOfNewUrl != "&") && (lastSignOfNewUrl != "?")) {
		if (newUrl.lastIndexOf("?") == -1) {
			newUrl += "?";
		} else {
			newUrl += "&";
		}
	}
	newUrl += "lang=" + newLanguage;
	if (oldUrlArr[1]) {
		newUrl += oldUrlArr[1];
	}
	document.location.href = newUrl;
}

function getSelected(box, type) {
	var boxPath;
	if (document.getElementById(box)) {
		boxPath = document.getElementById(box);
	} else {
		boxPath = parent.document.getElementById(box);
	}
	if (type == 'value') {
		for ( var i = 0; i < boxPath.length; i++) {
			if (boxPath.options[i].selected == true) {
				return boxPath.options[i].value;
			}
		}
	} else if (type == 'multivalues') {
		var content = "";
		for ( var i = 0; i < boxPath.length; i++) {
			if (boxPath.options[i].selected == true) {
				if (content != "") {
					content += ",";
				}
				content += boxPath.options[i].value;
			}
		}
		return content;
	} else if (type == 'multivalues_position') {
		var content = "";
		for ( var i = 0; i < boxPath.length; i++) {
			if (boxPath.options[i].selected == true) {
				if (content != "") {
					content += ",";
				}
				content += i;
			}
		}
		return content;
	} else if (type == 'position') {
		for ( var i = 0; i < boxPath.length; i++) {
			if (boxPath.options[i].selected == true) {
				return i;
			}
		}
	} else {
		for ( var i = 0; i < boxPath.length; i++) {
			if (boxPath.options[i].selected == true) {
				return boxPath.options[i].text;
			}
		}
	}
}

function getSelectedRadio(id, type) {
	var idPath;
	if (document.getElementById(id)) {
		idPath = document.getElementsByName(id);
	} else {
		idPath = parent.document.getElementsByName(id);
	}
	var buttonlength = idPath.length;
	if (type == 'value') {
		if (!buttonlength) {
			if (idPath.checked == true)
				return idPath.value;
		} else {
			for ( var i = 0; i < idPath.length; i++) {
				if (idPath[i].checked == true) {
					return idPath[i].value;

				}
			}
		}
	} else if (type == 'position') {
		if (buttonlength == undefined) {
			if (idPath.checked == true)
				return 0;
		} else {
			for ( var i = 0; i < idPath.length; i++) {
				if (idPath[i].checked == true) {
					return i;
				}
			}
		}
	}
}

/**
 * Clear the form
 * 
 * @return
 */
function deleteForm() {
	var form = document.forms['locsearchform'];
	var fields = [ "postleitzahl", "ort", "ortsteil", "strasse", "hausnummer" ];
	for ( var i = 0; i < fields.length; i++) {
		form.elements[fields[i]].value = "";
	}

	var period = document.getElementById("period0");
	if (period != null) {
		period.checked = true;
	}

	var service_selection = document.getElementById("service_selection");
	if (service_selection != null) {
		service_selection.value = "-1";
		service_selection.disabled = "disabled";
	}

	var restservice = document.getElementById("restservice");
	if (restservice != null) {
		restservice.checked = false;
	}

	var restpacketmachine = document.getElementById("restpacketmachine");
	if (restpacketmachine != null) {
		restpacketmachine.checked = true;
	}

	var weekday_selection = document.getElementById("weekday_selection");
	if (weekday_selection != null) {
		weekday_selection.disabled = "disabled";
	}

	var time_selection = document.getElementById("time_selection");
	if (time_selection != null) {
		time_selection.value = "12:15";
		time_selection.disabled = "disabled";
	}
}

/*
 * This function checks if all parts of the map has been loaded and displayed.
 * The wait_message is shown while not all parts are loaded.
 * 
 * An examle: http://www.provide.net/~bratliff/uglyhack/
 */
function checkMapReady() {
	var layer, child, files, ready;
	Status = [ 0, 0 ];
	Loaded = clearTimeout(Loaded);
	layer = this.map.getContainer().childNodes[0].childNodes[0];

	for ( var i = 0; child = layer.childNodes[i]; i++) {
		if (child.style.display == "none")
			continue;
		if (child.style.visibility == "hidden")
			continue;

		for ( var j = 0; files = child.childNodes[j]; j++) {
			for ( var k = 0; ready = files.childNodes[k]; k++) {
				if (!(child.style.zIndex - 0))
					if (ready.tagName == "IMG")
						Status[(/mapfiles\/transparent\.png/.test(ready.src)) - 0]++;
			}
		}
	}

	if (Status[1]) {
		overlayMessage.Set(waitMessage);
		Loaded = setTimeout("checkMapReady('" + waitMessage + "')", 700);
	} else {
		overlayMessage.Clear();
	}
}

function bubble_next() {
   document.getElementById('bubble_2').style.display = 'block';
   document.getElementById('bubble_1').style.display = 'none';
}

function bubble_before() {
   document.getElementById('bubble_2').style.display = 'none';
   document.getElementById('bubble_1').style.display = 'block';
}


function changeIcon (iconNo, iconObject) {
  window.document.images[iconNo].src = iconObject.src;
}

// click on radio-buttons of short survey -> show textfield
function ss_click() {
  document.getElementById("ss_textfield_div").style.display = "block";
  document.getElementById("ss_background").style.height='140px';
}

// delete defaulttext in textfield of short survey
function deleteDefaultTextShortSurvey() {
  if (ssFirstVisited==0) {
    ssFirstVisited=1;
    document.getElementById("ss_textfield").innerHTML="";
  }
}

// send short survey to server
function sendShortSurvey() {
  get(document.getElementById('ss_shortsurvey_form'));
  document.getElementById("ss_background").innerHTML=ssThankYou;
  document.getElementById("ss_background").style.height='55px';
}

// function for counting characters in textarea
function countCharactersShortSurvey ()
{
   textareaShortSurvey=document.getElementById('ss_textfield');
   var charactersInTextArea = textareaShortSurvey.value.length;
   var charactersLeft = maxCharactersInTextArea - charactersInTextArea;
   if (charactersLeft < 0) {
      var inhalt = textareaShortSurvey.value;
      var newContent = inhalt.substr(0, maxCharactersInTextArea);
      textareaShortSurvey.value = newContent;
      charactersLeft = 0;
      alert(hintMaxCharactersReached);
   }
}

function getCityRoot(text) {
   text=text.match(/^[a-zA-ZÄÖÜöäüß]*/);
   return text;
}




/**
 * Generates a overlay message
 * 
 */
OverlayMessage = function(container) {
	// Get the parent.
	var parent = container.parentNode;

	// Make the wrapper div.
	var wrapper = document.createElement('div');
	wrapper.style.cssText = container.style.cssText;
	parent.insertBefore(wrapper, container);

	// Move the container into the wrapper.
	parent.removeChild(container);
	wrapper.appendChild(container);

	// Add the overlay div.
	this.overlay = document.createElement('div');

	var id = document.createAttribute('id');
	id.nodeValue = 'overlay_message';
	this.overlay.setAttributeNode(id);

	wrapper.appendChild(this.overlay);
};

OverlayMessage.prototype.Set = function(message) {
	// comment in this two lines for update 2.0
	// this.overlay.innerHTML = message;
	// this.overlay.style.display = 'block';
};

OverlayMessage.prototype.Clear = function() {
	// comment in this line for update 2.0
	// this.overlay.style.display = 'none';
};

OverlayMessage.prototype.SetBackgroundColor = function(color) {
	this.backgroundColor = this.overlay.style.backgroundColor = color;
};

OverlayMessage.prototype.SetBorderColor = function(color) {
	this.borderColor = this.overlay.style.borderColor = color;
};
