// prepare calculator and get values from CMS

			// usage: format_zahl( number [, number]  [, bool]  )
			function formatZahl(zahl, k, fix) {
				if(!k) k = 0;
				var neu = '';
				// Runden
				var f = Math.pow(10, k);
				zahl = '' + parseInt( zahl * f + (.5 * (zahl > 0 ? 1 : -1)) ) / f ;
				// Komma ermittlen
				var idx = zahl.indexOf('.');
				// fehlende Nullen einfuegen
				if(fix){
					zahl += (idx == -1 ? '.' : '' )
					+ f.toString().substring(1);
				}
				// Nachkommastellen ermittlen
				idx = zahl.indexOf('.');
				if( idx == -1) idx = zahl.length;
				else neu = ',' + zahl.substr(idx + 1, k);
				// Tausendertrennzeichen
				while(idx > 0) {
					if(idx - 3 > 0)
					neu = '.' + zahl.substring( idx - 3, idx) + neu;
					else
					neu = zahl.substring(0, idx) + neu;
					idx -= 3;
				}
				return neu;
			}
			// ################  ACHTUNG!  #######################################
			// Dieser statische Rechner enthaelt Zinssaetze, die durch die PMs gepflegt werden m ssen. 
			// Eine Auslagerung der Rechen-Funktion in ein separates JS-File ist daher nur nach R cksprache vorzunehmen!!
			function rechnen() {
				if (document.getElementById("Standort").checked == true) {
					document.getElementById("Sonstkosten").value = formatZahl(6,1,1);
				} else {
					document.getElementById("Sonstkosten").value = formatZahl(5,1,1);
				}
				
				// check for invalid input
				var tempWunsch = removeComma(document.getElementById("Wunschrate").value);
				var tempEigen  = removeComma(document.getElementById("Eigenkapital").value);
				(isNaN(tempWunsch) || tempWunsch == "") ?  document.getElementById("Wunschrate").value = "0" : false;
				(isNaN(tempEigen)|| tempEigen == "") ? document.getElementById("Eigenkapital").value = "0" : false;
				
				wunrat = 0 + eval(document.getElementById("Wunschrate").value);
				eigkap = 0 + eval(document.getElementById("Eigenkapital").value);
				sonst2 = document.getElementById("Sonstkosten").value;
				markcour2 = document.getElementById("Makler").value;
				
				sonst = eval(sonst2.replace(/,/g, "."));
				markcour = eval(markcour2.replace(/,/g, "."));
				
				// get zins and tilgung from hidden form fields
				var v_zins = Number(document.getElementById("hiddenZins").value);
				var v_tilgung = Number(document.getElementById("hiddenTilgung").value);
					
				kresum = (wunrat * 100 * 12) / (v_zins + v_tilgung);
				maxkresum = ((kresum + eigkap) * 100) / (100 + markcour + sonst);
				
				document.getElementById("Maxkauf").value = formatZahl(kresum,2,1);
				document.getElementById("Maxkauf2").value = formatZahl(maxkresum,2,1);				
				
			}
			// if illegal character was inputed, then delete this character immediately - onkeyup event
			function CheckZahl (Wert) {
				tmpsonst = Wert.replace(/,/,".");
				if (isNaN(tmpsonst)) {
					document.getElementById("Makler").value = tmpsonst.substr(0,tmpsonst.length-1);
				}
			}
			
			function removeComma(zahl){
				return zahl.replace(/,/,".");
			}

			function checkForUrlValues(){
				if(document.location.href.indexOf("verfuegbar=") != -1){
					var part = document.location.href.substring(document.location.href.indexOf("verfuegbar="));
					if(part.indexOf("&") != -1){
						part = part.substring(part.indexOf("=")+1,part.indexOf("&"));
					}
					else{
						part = part.substring(part.indexOf("=")+1); // take part after the = sign
					}
					document.getElementById("Wunschrate").value = part;
					rechnen();
				}
			}
	checkForUrlValues(); // in case that the user comes from another form
	
	function setPriceForSearch() {
		var tempMaxPrice = document.getElementById("Maxkauf2").value;
		tempMaxPrice = tempMaxPrice.replace(/\./g, "");
		tempMaxPrice = tempMaxPrice.replace(/\,/g, ".")
		document.getElementById("preisMax").value = tempMaxPrice; 
		if (document.getElementById("Stadt").value == "") {
			document.getElementById("errorText").style.display = 'block';
			document.getElementById("errorText").innerHTML = "<h3>Fehlende Eingabe</h3><p>Bitte geben Sie einen Ort ein.</p>";
			return false;
		}
	}
	