// JavaScript Document
/*Allgemeine Funktionen */
// --------------------------------------------------------------------------------

function leadingZero(num, digits) {
	var numDigits = num.toString().length;
	if (digits < numDigits) {
		digits = numDigits;
	}
	var txt = '';
	for (i = 0; i < digits; i++)
		txt = txt + "0";
  	txt = txt + num;
  	return txt.substr(txt.length - digits, digits);
}

function trailingZero(num, digits) {
	var numDigits = num.toString().length;
	if (digits < numDigits) {
		digits = numDigits;
	}
	var txt = num;
	for (i = numDigits; i < digits; i++)
		txt = txt + "0";
  	return txt;
}

/* Datumsformatierung */
function formatDate (str) {
	var date = toDateObject (str);
	if (date == null)
		return "";
	else {
		var day = date.getDate();
		var month = date.getMonth() + 1;
		var year = date.getFullYear();
		return "" + leadingZero(day, 2) + "." + leadingZero(month, 2) + "." + leadingZero(year, 4);
	}
}

function string2float(str) {
	var tmp = '';
	var i = 0;
	for (i = 0; i < str.length; i++) 
		if (str.substr(i, 1) == ',')
			tmp = tmp + ".";
		else if (str.substr(i, 1) != '.')
			tmp = tmp + str.substr(i, 1);
	if (tmp == '') tmp=0.00;
  return parseFloat(tmp);
}

function float2string(f) {
	var tmp = '';
	f = ""+f;
	for (i = 0; i < f.length; i++)
		if (f.substr(i, 1) == '.')
			tmp = tmp + ",";
		else 
			tmp = tmp + f.substr(i, 1);
	if(tmp.indexOf(',') == -1)
		tmp = tmp + ',00';
	return tmp;
}


function makeDate (day, month, year) {
	return new Date (year, month - 1, day);
}

function toDateObject(str) {
  if (str.length < 1)
		return null;
	var day = 0;
	var month = 0;
	var shortYear = "";
	var year = 0;

	var da = str.split(".");
	if (da.length == 1) {
		var c = str.substr(0,1);
		if (c == "+" || c == "-") {
			var diff = parseInt(str.substr(1), 10);
			if (isNaN(diff))
			  diff = 0;
			if (c == "-")
			  diff = - diff;
			var date = new Date();
			date.setTime (date.getTime() + diff * 24*60*60*1000);
			return date;
		}
		if (str.length >= 6) {
			str = str.substr(0,2) + "." + str.substr(2,2) + "." + str.substr(4);
			da = str.split(".");
		}
		else if (str.length > 4) {
			str = str.substr(0,2) + "." + str.substr(2);
			da = str.split(".");
		}
		else if (str.length == 4) {
			str = "01.01." + str;
			da = str.split(".");
		}
	}
	if (da.length < 2 || da.length > 3)
	  return null;

	day = parseInt (da[0], 10);
 	month = parseInt (da[1], 10);
 	if (da.length == 3) {
		shortYear = da[2];
		year = parseInt (shortYear, 10);
		if (shortYear.length == 2) {
			shortYear = '20' + shortYear;
			year = parseInt (shortYear, 10);
			if (year - (new Date()).getFullYear() > 20)
				year -= 100;
		}
		else if (isNaN(year))
			year = (new Date()).getFullYear();
	}
  	else
	    year = (new Date()).getFullYear();

	if (isNaN(day) || isNaN(month) || isNaN(year))
		return null;
	if (day < 1 || day > 31 || month < 1 || month > 12 || year < 1900)
	  return null;
	if (day > 30 && (month == 4 || month == 6 || month == 9 || month == 11))
	  return null;
	if (month == 2 && (day > 29 || day == 29 && !isLeap(year)))
	  return null;

  return makeDate(day, month, year);
}

/* Betrag formatieren */
function formatNumber(str, abschneiden) {
	var vollanteil = '';
	var nachkommaanteil = ''; 
	var tmp = '';
	var tmpz = '';
	var formattedStr = '';
	var vorzeichen = '';

	// Tausenderpunkte löschen
	for (i = 0; i < str.length; i++) {
		charCode = str.charCodeAt(i);
		if ((i == 0) && (charCode == 45)) {
			vorzeichen = '-';
		}
		if (((charCode >= 48) && (charCode <= 57)) || (charCode == 44))
			tmp = tmp + str.substr(i, 1);
	}
	tmp = tmp +'';

	if (tmp.indexOf(',') != (-1)) {
		vollanteil = tmp.substr(0, tmp.indexOf(','));
		if (!abschneiden) {
			nachkommaanteil = tmp.substr(tmp.indexOf(',')+1, tmp.length);
		}
		else
			nachkommaanteil = '00';
	}
	else {
		vollanteil = tmp;
		nachkommaanteil = "00";  
	}
  
	// Trennpunkte hinzufügen
	for (i = 0; i < vollanteil.length; i++) {
		tmpz = vollanteil.substr(vollanteil.length - i - 1, 1) + tmpz;
		if ((((i+1) % 3) == 0) && ((i + 1) < vollanteil.length)) {
			tmpz = '.' + tmpz;
		}
	}
	vollanteil = leadingZero(tmpz, 1);
	formattedStr = vorzeichen+vollanteil+","+trailingZero(nachkommaanteil, 2);
	return formattedStr; 
}

/* ACCEDO-spezifische Funktionen */
function checkDate(str) {
	if (str == "")
		return "";
	var result = formatDate(str);
	if (result == "") {
		alert('Das eingegebene Datum konnte nicht erkannt werden. Bitte geben Sie es in der Form TT.MM.JJJJ ein.')
	}
	return result;
}

function checkTilgungsrechner() {
	if (!document.tilgungsrechner.darlehensbetrag.value.match(/[0-9]{1,},[0-9]{2}/) || string2float(document.tilgungsrechner.darlehensbetrag.value)<=0) {
		alert('Bitte geben Sie im Feld "Darlehensbetrag" einen gültigen Betrag ein.');
		return false;
	}
	if (!document.tilgungsrechner.auszahlungsdatum.value.match(/[0-9]{1,2}.[0-9]{1,2}.[0-9]{1,4}/)) {
		alert('Bitte geben Sie im Feld "Auszahlungsdatum" ein gültiges Datum ein.');
		return false;
	}
	if (!document.tilgungsrechner.tilgungsbeginn.value.match(/[0-9]{1,2}.[0-9]{1,2}.[0-9]{1,4}/)) {
		alert('Bitte geben Sie im Feld "Tilgungsbeginn" ein gültiges Datum ein.');
		return false;
	}
	if (!document.tilgungsrechner.nominalzins.value.match(/[0-9]{1,2},[0-9]{1,2}/) || string2float(document.tilgungsrechner.nominalzins.value)<=0) {
		alert('Bitte geben Sie im Feld "Nominalzins" einen gültigen Zinssatz ein.');
		return false;
	}
	if (document.tilgungsrechner.rueckzahlung[0].checked) {
		if (!document.tilgungsrechner.anfaengliche_tilgung_prozent.value.match(/[0-9]{1,2},[0-9]{1,2}/) || string2float(document.tilgungsrechner.anfaengliche_tilgung_prozent.value)<=0) {
			alert('Bitte geben Sie im Feld "Anfängliche Tilgung" einen gültigen Prozentsatz ein.');
			return false
		}
	}
	else if (document.tilgungsrechner.rueckzahlung[1].checked) {
		if (!document.tilgungsrechner.anfaengliche_tilgung_euro.value.match(/[0-9]{1,10},[0-9]{1,2}/) || string2float(document.tilgungsrechner.anfaengliche_tilgung_euro.value)<=0) {
			alert('Bitte geben Sie im Feld "Höhe der Rate" einen gültigen Betrag ein.');
			return false
		}
	}
	for (i = 1; i < 3; i++) {
		if ((document.getElementById('sondertilgung'+i).value != '') && (document.getElementById('sondertilgungdatum'+i).value == '')) {
			if (i == 1)
				wort = 'ersten';
			else if (i == 2)
				wort = 'zweiten';
			else if (i == 3)
				wort = 'dritten';
			alert('Bitte geben Sie bei der '+wort+' Sondertilgung ein gültiges Datum ein.');
			return false;
		}
		if (document.tilgungsrechner)
			document.tilgungsrechner.submit();
		
	}

	if ((document.tilgungsrechner.jaehrliche_sondertilgung.value != '') && (!document.tilgungsrechner.jaehrliche_sondertilgung.value.match(/[0-9]{1,10},[0-9]{1,2}/))) {
		alert('Bitte geben Sie im Feld "Jährliche Sondertilgung" einen gültigen Betrag ein.');
		return false;
	}
	if ((document.tilgungsrechner.erste_sondertilgung.value != '') && (!document.tilgungsrechner.erste_sondertilgung.value.match(/[0-9]{1,2}.[0-9]{1,2}.[0-9]{1,4}/))) {
		alert('Bitte geben Sie im Feld "Erste Sondertilgung" ein gültiges Datum ein.');
		return false;
	}
	return true;
}

function checkVolltilgungsrechner() {
  
  if (!document.volltilgungsrechner.darlehensbetrag.value.match(/[0-9]{1,},[0-9]{2}/) || string2float(document.volltilgungsrechner.darlehensbetrag.value)<=0) {
    alert('Bitte geben Sie im Feld "Darlehensbetrag" einen gültigen Betrag ein.');
    return false;
  }
  if (!document.volltilgungsrechner.nominalzins.value.match(/[0-9]{1,2},[0-9]{1,2}/) || string2float(document.volltilgungsrechner.nominalzins.value)<=0) {
    alert('Bitte geben Sie im Feld "Nominalzins" einen gültigen Zinssatz ein.');
    return false;
  }
  if (document.volltilgungsrechner)
  document.volltilgungsrechner.submit();
  return true;
}


function berechne(feld) {
  if (feld = "euro") {
    document.tilgungsrechner.rueckzahlung[0].checked = true;
  } else {
    document.tilgungsrechner.rueckzahlung[1].checked = true;
  }
}

function turnOff(dname) {
  	document.getElementById(dname).style.display = 'none';
  	return true;
}

function turnOn(dname) {
  	document.getElementById(dname).style.display = 'block';
  	return true;
} 


function calc(feld) {
  // Auf Basis einer eingegebenen Monatsrate die anfängl. Tilgung in Prozent bestimmen
  if (feld == 'anfaenglich') {
    var euro;
    var prozent;
    var darlehen;
    var zins;
    euro =  string2float(document.tilgungsrechner.anfaengliche_tilgung_euro.value);
    darlehen =  string2float(document.tilgungsrechner.darlehensbetrag.value);
    zins =  string2float(document.tilgungsrechner.nominalzins.value);
    if ((euro > 0) && (darlehen > 0) && (zins > 0)) {
      prozent = ((((12 * euro) - (zins/100 * darlehen)) / darlehen)*100);
      prozent = runde(prozent, 2);

	    if (prozent <= 0) {
		    mindestbetrag = float2string(runde(zins * darlehen / 100 / 12, 2));
		    alert('Bitte geben Sie einen höheren Prozentsatz ein. Die Zinsbelastung allein beträgt bereits '+mindestbetrag+" Euro."); 
	    } else {
        document.tilgungsrechner.anfaengliche_tilgung_prozent.value = float2string(prozent);
	    }
    } else {
      document.tilgungsrechner.anfaengliche_tilgung_prozent.value = '';
    }
  // Auf Basis eines Tilgungsprozentsatzes, die anfängliche Monatsrate bestimmen
  } else if (feld == 'rate') {
    var euro;
    var prozent;
    var darlehen;
    var zins;
    prozent = string2float(document.tilgungsrechner.anfaengliche_tilgung_prozent.value);
    darlehen =  string2float(document.tilgungsrechner.darlehensbetrag.value);
    zins =  string2float(document.tilgungsrechner.nominalzins.value);
    if ((prozent > 0) && (darlehen > 0) && (zins > 0)) {
    	euro = (((prozent/100 * darlehen) + ((zins * darlehen) / 100 )) / 12);
    	euro = runde(euro, 2);
		document.tilgungsrechner.anfaengliche_tilgung_euro.value = float2string(euro);
    }
	else
		document.tilgungsrechner.anfaengliche_tilgung_euro.value = '';
  // Der Darlehensbetrag oder der Nominalzins wurde geändert. 
  // Wenn bereits eine Tilgung festgelegt ist, muss diese neu berechnet werden
  } else if (feld == 'tilgung') {
    prozent = string2float(document.tilgungsrechner.anfaengliche_tilgung_prozent.value);
    euro =  string2float(document.tilgungsrechner.anfaengliche_tilgung_euro.value);
    // Prozentuale Tilgung ist ausschlaggebend
    if (document.tilgungsrechner.rueckzahlung[0].checked == true && prozent > 0) {
      calc('rate');                     
    // Höhe der Rate ist ausschlaggebend
    } else if (document.tilgungsrechner.rueckzahlung[1].checked == true && euro > 0) {
      calc('anfaenglich');
    }
  }
}

function kaufm(x) {
  var k = (Math.round(x * 100) / 100).toString();
  k += (k.indexOf('.') == -1)? '.00' : '00';
  return k.substring(0, k.indexOf('.') + 3);
}

function runde(x, n) {
  if (n < 1 || n > 14) return false;
  var e = Math.pow(10, n);
  var k = (Math.round(x * e) / e).toString();
  if (k.indexOf('.') == -1) k += '.';
  k += e.toString().substring(1);
  return k.substring(0, k.indexOf('.') + n+1);
}

/* HAUSHALTSRECHNER */
function hideHaushaltsergebnis() {
	if ((document.getElementById('ergebnis')) && (document.getElementById('ergebnis').style.display != 'none'))
		document.getElementById('ergebnis').style.display = 'none';
}

function showHaushaltsergebnis() {
	if ((document.getElementById('ergebnis')) && (document.getElementById('ergebnis').style.display != 'block'))
		document.getElementById('ergebnis').style.display = 'block';
}

function calcHaushaltsrechner() {
	// Array mit den Feldnamen
	var felderEinnahmen = new Array(
		'nettogehalt',
		'nettoeinkuenfte',
		'selbststaendig',
		'kapital',
		'beteiligungen',
		'unterhalt',
		'kindergeld',
		'immobilien',
		'miete',
		'sonstiges');
	var felderAusgaben = new Array(
		'kaltmiete',
		'nebenkosten',
		'lebensmittel',
		'kfz',
		'telefon',
		'kleidung',
		'freizeit',
		'urlaub',
		'moebel',
		'zeitung',
		'versicherung',
		'krankenvers',
		'sonstigevers',
		'sparen',
		'unterhalt',
		'leasing',
		'raten',
		'kosten',
		'kostenfinanz',
		'sonstige'
		);
	
	var gesamtEinnahmen1 = 0;
	var gesamtEinnahmen2 = 0;
	var gesamtAusgaben1 = 0;
	var gesamtAusgaben2 = 0;
	var gesamtEinnahmen = 0;
	var gesamtAusgaben = 0;
	var gesamt = 0;
	var tmp = 0;
	
	if (!document.haushaltsrechner) 
		return false;

	// Einnahmen addieren
	for (i = 0; i < felderEinnahmen.length; i++) {
		if ((document.getElementById('ein_'+felderEinnahmen[i]+"1")) && (document.getElementById('ein_'+felderEinnahmen[i]+"2"))) {
			if ((document.getElementById('ein_'+felderEinnahmen[i]+"1") != "") && (document.getElementById('ein_'+felderEinnahmen[i]+"2") != "")) {
				tmp = string2float(document.getElementById('ein_'+felderEinnahmen[i]+"1").value);
				if (!isNaN(tmp))
					gesamtEinnahmen1 = gesamtEinnahmen1 + tmp;
				tmp = string2float(document.getElementById('ein_'+felderEinnahmen[i]+"2").value);
				if (!isNaN(tmp))
					gesamtEinnahmen2 = gesamtEinnahmen2 + tmp;
			}
		}
	}
	gesamtEinnahmen = gesamtEinnahmen1 + gesamtEinnahmen2;

	// Ausgaben addieren
	for (i = 0; i < felderAusgaben.length; i++) {
		if ((document.getElementById('aus_'+felderAusgaben[i]+"1")) && (document.getElementById('aus_'+felderAusgaben[i]+"2"))) {
			if ((document.getElementById('aus_'+felderAusgaben[i]+"1") != "") && (document.getElementById('aus_'+felderAusgaben[i]+"2") != "")) {
				tmp = string2float(document.getElementById('aus_'+felderAusgaben[i]+"1").value);
				if (!isNaN(tmp))
					gesamtAusgaben1 = gesamtAusgaben1 + tmp;
				tmp = string2float(document.getElementById('aus_'+felderAusgaben[i]+"2").value);
				if (!isNaN(tmp))
					gesamtAusgaben2 = gesamtAusgaben2 + tmp;
			}
		}
	}
	gesamtAusgaben = gesamtAusgaben1 + gesamtAusgaben2;

	document.getElementById('ein_gesamteinnahmen1').value = formatNumber(float2string(gesamtEinnahmen1), false);
	document.getElementById('ein_gesamteinnahmen2').value = formatNumber(float2string(gesamtEinnahmen2), false);
	document.getElementById('ein_summe').value = formatNumber(float2string(gesamtEinnahmen), false);
	document.getElementById('aus_gesamtausgaben1').value = formatNumber(float2string(gesamtAusgaben1), false);
	document.getElementById('aus_gesamtausgaben2').value = formatNumber(float2string(gesamtAusgaben2), false);
	document.getElementById('aus_summe').value = formatNumber(float2string(gesamtAusgaben), false);
	
	hideHaushaltsergebnis();
}

function showResultHaushaltsrechner() {
	var einnahmen = string2float(document.getElementById('ein_summe').value);
	var ausgaben = string2float(document.getElementById('aus_summe').value);
	var ergebnis = formatNumber(float2string(einnahmen-ausgaben), false);

	document.getElementById('erg_einnahmen').innerHTML = formatNumber(float2string(einnahmen), false) + ' EUR';
	document.getElementById('erg_ausgaben').innerHTML = formatNumber(float2string(ausgaben), false) + ' EUR';
	document.getElementById('erg_ergebnis').innerHTML = ergebnis + ' EUR';
	
	if ((einnahmen - ausgaben) < 0)
		document.getElementById('erg_ergebnis').style.color = '#9A0F1E';
	else
		document.getElementById('erg_ergebnis').style.color = '#000000';
	
	showHaushaltsergebnis();
}

/* KONDITIONEN-BAUFINANZIERUNG */
function checkKonditionenBaufinanzierung() {
  if (!document.baufinanzierung)
    return false;

  if (!document.baufinanzierung.annuitaetendarlehen.checked &&
      !document.baufinanzierung.volltilger.checked &&
      !document.baufinanzierung.forward.checked &&
      !document.baufinanzierung.variabel.checked) {
    alert('Bitte wählen Sie eines der vier Produkte aus.');
    return false;
  }

  document.baufinanzierung.submit();
}

/* KONDITIONEN-RATENKREDIT */
function checkKonditionenRatenkredit () {
  if (!document.ratenkredit)
    return false;

  if (!document.ratenkredit.loan.value) {
    alert('Bitte gaben Sie einen Darlehensbetrag ein.');
    return false;
  }

  document.ratenkredit.submit();
}

/* UNTERLAGENCHECKLISTE */
function checkUnterlagencheckliste() {
  if (!document.unterlagencheckliste) {
    return false;
  }
  if (document.getElementById('objektart').value == '') {
    alert('Bitte wählen Sie die Art des zu finanzierenden Objektes aus.');
    return false;
  }
  if (document.getElementById('finanzierungswunsch').value == '') {
    alert('Bitte wählen Sie die Art des Finanzierungswunsches aus.');
    return false;
  }
  if (document.getElementById('erbbaurecht').value == '') {
    alert('Bitte wählen Sie ob ein Erbbaurecht besteht.');
    return false;
  }
  if (document.getElementById('beschaeftigung').value == '') {
    alert('Bitte wählen Sie die Art der Beschäftigung des ersten Darlehensnehmers aus.');
    return false;
  }
  if (document.getElementById('familienstand').value == '') {
    alert('Bitte wählen Sie den Familienstand des ersten Darlehensnehmer aus.');
    return false;
  }
  if (document.getElementById('gueterstand').value == '') {
    alert('Bitte wählen Sie den Güterstand des ersten Darlehensnehmers aus.');
    return false;
  }
  if (document.getElementById('beschaeftigung2').value == '' && (document.getElementById('familienstand2').value != '' || document.getElementById('gueterstand2').value != '')) {
    alert('Bitte wählen Sie die Art der Beschäftigung des 2. Darlehensnehmers aus.');
    return false;
  }
  if (document.getElementById('familienstand2').value == '' && (document.getElementById('beschaeftigung2').value != '' || document.getElementById('gueterstand2').value != '')) {
    alert('Bitte wählen Sie den Familienstand des 2. Darlehensnehmer aus.');
    return false;
  }
  if (document.getElementById('gueterstand2').value == '' && (document.getElementById('familienstand2').value != '' || document.getElementById('beschaeftigung2').value != '')) {
    alert('Bitte wählen Sie den Güterstand des 2. Darlehensnehmers aus.');
    return false;
  }
    
  document.unterlagencheckliste.submit();
}

/* BUDGETRECHNER */
function checkBudgetrechner() {
	if (!document.budgetrechner)
		return false;

	if (!document.budgetrechner.nominalrate.value.match(/[0-9]{1,2},[0-9]{1,2}/)) {
		alert('Bitte geben Sie im Feld "Nominalzins" einen gültigen Zinssatz ein.');
		return false;
	}

	if (!document.budgetrechner.income_month.value.match(/[0-9]{1,},[0-9]{2}/)) {
		alert('Bitte geben Sie im Feld "Verfügbarer Betrag pro Monat" einen gültigen Betrag ein.');
		return false;
	}

	if (!document.budgetrechner.owncapital.value.match(/[0-9]{1,},[0-9]{2}/)) {
		alert('Bitte geben Sie im Feld "Verfügbares Eigenkapital" einen gültigen Betrag ein.');
		return false;
	}

	document.budgetrechner.submit();
}

/* KONDITIONSRECHNER */
function checkKonditionsrechner() {
  if (!document.konditionsrechner)
    return false;

  if (!document.konditionsrechner.property_value.value.match(/[0-9]{1,},[0-9]{2}/)) {
    alert('Bitte geben Sie im Feld "Objektwert" einen gültigen Betrag ein.');
    return false;
  }

  if (!document.konditionsrechner.loan.value.match(/[0-9]{1,},[0-9]{2}/)) {
    alert('Bitte geben Sie im Feld "Darlehenssumme" einen gültigen Betrag ein.');
    return false;
  }

  document.konditionsrechner.submit();
}

/* Berechnet den prozentualen Anteil von part zu base, formatiert die Ausgabe und schreibt sie in result */
function calcPercent(base, part,result) {
  if (document.getElementById(base) && document.getElementById(part) && document.getElementById(result)) {
    if (document.getElementById(base).value!='' && document.getElementById(base).value!='0,00') {
      ergebnis = ( string2float(document.getElementById(part).value) / string2float(document.getElementById(base).value) ) * 100;
      ergebnis = runde(ergebnis,2);
      ergebnis = formatNumber(float2string(ergebnis), false);
    } else {
      ergebnis = '0,00';
    }
    document.getElementById(result).value = ergebnis;
  } else {
    return false;
  }
}

/* Berechnet den monetaeren Wert part anhand von base und percent, formatiert die Ausgabe und schreibt sie in result */
function calcPart(base,percent,result) {
  if (document.getElementById(base) && document.getElementById(percent) && document.getElementById(result)) {
    ergebnis = ( string2float(document.getElementById(percent).value) / 100 ) * string2float(document.getElementById(base).value);
    ergebnis = runde(ergebnis,2);
    ergebnis = formatNumber(float2string(ergebnis), false);
    document.getElementById(result).value = ergebnis;
  } else {
    return false;
  }
}

/* Onlineanfrage - Stufe 2 - Variation 1 */
function oas2v1_init() {
	if (document.getElementById('variante1_grunderwerbssteuerprozent').value == '')
		document.getElementById('variante1_grunderwerbssteuerprozent').value = '3,50';
	if (document.getElementById('variante1_notarprozent').value == '')
		document.getElementById('variante1_notarprozent').value = '1,50';
	oas2v1_calcGesamt()
}

function oas2v1_calcGesamt() {
  var kaufpreis = string2float(document.getElementById('variante1_kaufpreis').value);
	var modernisierung = string2float(document.getElementById('variante1_modernisierung').value); 
	var eigenleistung = string2float(document.getElementById('variante1_eigenleistung').value);
	var maklercourtage = string2float(document.getElementById('variante1_maklercourtageeuro').value);
  var grunderwerbssteuer = string2float(document.getElementById('variante1_grunderwerbssteuereuro').value);
  var notar = string2float(document.getElementById('variante1_notareuro').value);
  var mobiliar = string2float(document.getElementById('variante1_mobiliar').value);

  var gesamt = kaufpreis + modernisierung + eigenleistung + maklercourtage + grunderwerbssteuer + notar + mobiliar;
  if (gesamt == 0) {
    document.getElementById('variante1_gesamtkosten').value = '';
  } else {
    document.getElementById('variante1_gesamtkosten').value = formatNumber(float2string(gesamt), false);
  }
}

/* Onlineanfrage - Stufe 2 - Variation 2 */
function oas2v2_init() {
	if (document.getElementById('variante2_grunderwerbssteuerprozent').value == '')
		document.getElementById('variante2_grunderwerbssteuerprozent').value = '3,50';
	if (document.getElementById('variante2_notarprozent').value == '')
		document.getElementById('variante2_notarprozent').value = '1,50';
	oas2v2_calcGesamt()
}

function oas2v2_calcGesamt() {
	var kaufpreis = string2float(document.getElementById('variante2_kaufpreis').value);
  var maklercourtage = string2float(document.getElementById('variante2_maklercourtageeuro').value);
  var grunderwerbssteuer = string2float(document.getElementById('variante2_grunderwerbssteuereuro').value);
  var notar = string2float(document.getElementById('variante2_notareuro').value);
	var erschliessungskosten = string2float(document.getElementById('variante2_erschliessungskosten').value);
	
  var gesamt = kaufpreis + maklercourtage + grunderwerbssteuer + notar + erschliessungskosten;
  if (gesamt == 0) {
    document.getElementById('variante2_gesamtkosten').value = '';
  } else {
	  document.getElementById('variante2_gesamtkosten').value = formatNumber(float2string(gesamt), false);
  }
}

/* Onlineanfrage - Stufe 2 - Variation 3 */
function oas2v3_init() {
	if (document.getElementById('variante3_grunderwerbssteuerprozent').value == '')
		document.getElementById('variante3_grunderwerbssteuerprozent').value = '3,50';
	if (document.getElementById('variante3_notarprozent').value == '')
		document.getElementById('variante3_notarprozent').value = '1,50';
	oas2v3_calcGesamt()
}

function oas2v3_calcGesamt() {
	var grundstueckskaufpreis = string2float(document.getElementById('variante3_grundstueckskaufpreis').value);
	var erschliessungskosten = string2float(document.getElementById('variante3_erschliessungskosten').value);
	var herstellungskostengebaeude = string2float(document.getElementById('variante3_herstellungskostengebaeude').value);
	var baunebenkosten = string2float(document.getElementById('variante3_baunebenkosten').value);
	var aussenanlagen = string2float(document.getElementById('variante3_aussenanlagen').value);
	var eigenleistungen = string2float(document.getElementById('variante3_eigenleistungen').value);
	var maklercourtage = string2float(document.getElementById('variante3_maklercourtageeuro').value);
  var grunderwerbssteuer = string2float(document.getElementById('variante3_grunderwerbssteuereuro').value);
  var notar = string2float(document.getElementById('variante3_notareuro').value);
  var mobiliar = string2float(document.getElementById('variante3_mobiliar').value);
	 
	 var 	gesamt = grundstueckskaufpreis + erschliessungskosten + herstellungskostengebaeude + baunebenkosten + aussenanlagen + eigenleistungen +
	 		maklercourtage + grunderwerbssteuer + notar + mobiliar;
   if (gesamt == 0) {
     document.getElementById('variante3_gesamtkosten').value = '';
   } else {
	   document.getElementById('variante3_gesamtkosten').value = formatNumber(float2string(gesamt), false);
   }
}

/* Onlineanfrage - Stufe 2 - Variation 4 */
function oas2v4_init() {
	oas2v4_calcGesamt()
}

function oas2v4_calcGesamt() {
	var kaufpreis = string2float(document.getElementById('variante4_kaufpreis').value);
	var modernisierungskosten = string2float(document.getElementById('variante4_modernisierungskosten').value);
	
	 var 	gesamt = kaufpreis + modernisierungskosten;
   if (gesamt == 0) {
     document.getElementById('variante4_gesamtkosten').value = '';
   } else {
	   document.getElementById('variante4_gesamtkosten').value = formatNumber(float2string(gesamt), false);
   }
}

/* Onlineanfrage - Stufe 2 - Variation 5 */
function oas2v5_init() {
oas2v5_calcGesamt()
}

function oas2v5_calcGesamt() {
	var wertimmobilie = string2float(document.getElementById('variante5_wertimmobilie').value);
	var modernisierungskosten = string2float(document.getElementById('variante5_modernisierungskosten').value);
	var eigenleistungen = string2float(document.getElementById('variante5_eigenleistungen').value);
	var mobiliar = string2float(document.getElementById('variante5_mobiliar').value);
	
	 var 	gesamt = wertimmobilie + modernisierungskosten + eigenleistungen + mobiliar;
   if (gesamt == 0) {
     document.getElementById('variante5_gesamtkosten').value = '';
   } else {
	   document.getElementById('variante5_gesamtkosten').value = formatNumber(float2string(gesamt), false);
   }
}

/* Onlineanfrage - Schritt 4 */
function calcStep4() {
	var summeEinAnst = 0;
	var summeEinMitanst = 0;
	var summeAusAnst = 0;
	var summeAusMitanst = 0;

	// Feld-IDs Einnahmen Antragssteller
	var felderAnstEinnahmen = new Array(
		'anst_ein_nettoeinkommen',
		'anst_ein_selbstarbeit',
		'anst_ein_kindergeld',
		'anst_ein_mieteinnahmen',
		'anst_ein_kindesunterhalt',
		'anst_ein_sonstigeeinnahmen'
	);
	
	// Feld-IDs Einnahmen Mitantragssteller
	var felderMitanstEinnahmen = new Array(
		'mitanst_ein_nettoeinkommen',
		'mitanst_ein_selbstarbeit',
		'mitanst_ein_kindergeld',
		'mitanst_ein_mieteinnahmen',
		'mitanst_ein_kindesunterhalt',
		'mitanst_ein_sonstigeeinnahmen'
	);
	
	// Feld-IDs Ausgaben Antragssteller
	var felderAnstAusgaben = new Array(
		'anst_aus_miete',
		'anst_aus_beitraegeprivatkv',
		'anst_aus_bauspardarlehensraten',
		'anst_aus_leasingkredit',
		'anst_aus_unterhalt',
		'anst_aus_immobiliendarlehen'
	);

	// Feld-IDs Ausgaben Antragssteller
	var felderMitanstAusgaben = new Array(
		'mitanst_aus_miete',
		'mitanst_aus_beitraegeprivatkv',
		'mitanst_aus_bauspardarlehensraten',
		'mitanst_aus_leasingkredit',
		'mitanst_aus_unterhalt',
		'mitanst_aus_immobiliendarlehen'
	);
	// Einnahmen Antragssteller
	for (i = 0; i < felderAnstEinnahmen.length; i++) {
		if (document.getElementById(felderAnstEinnahmen[i])) {
			if (document.getElementById(felderAnstEinnahmen[i]).value != '') {
				tmp = string2float(document.getElementById(felderAnstEinnahmen[i]).value);
				if (!isNaN(tmp)) {
					// Sonderfall Selbstst?ndige Arbeit
					if (felderAnstEinnahmen[i] == 'anst_ein_selbstarbeit')
						tmp = tmp / 12; 
					summeEinAnst = summeEinAnst + tmp;
				}
			}
		}
	}
	if (document.getElementById('anst_ein_summe')) {
		document.getElementById('anst_ein_summe').value = formatNumber(float2string(summeEinAnst), true);
	}
	
	// Einnahmen Mitantragssteller
	for (i = 0; i < felderMitanstEinnahmen.length; i++) {
		if (document.getElementById(felderMitanstEinnahmen[i])) {
			if (document.getElementById(felderMitanstEinnahmen[i]).value != '') {
				tmp = string2float(document.getElementById(felderMitanstEinnahmen[i]).value);
				if (!isNaN(tmp)) {
					// Sonderfall Selbstst?ndige Arbeit
					if (felderMitanstEinnahmen[i] == 'mitanst_ein_selbstarbeit')
						tmp = tmp / 12; 
					summeEinMitanst = summeEinMitanst + tmp;
				}
			}
		}
	}
	if (document.getElementById('mitanst_ein_summe')) {
		document.getElementById('mitanst_ein_summe').value = formatNumber(float2string(summeEinMitanst), true);
	}

	// Ausgaben Antragssteller
	for (i = 0; i < felderAnstAusgaben.length; i++) {
		if (document.getElementById(felderAnstAusgaben[i])) {
			if (document.getElementById(felderAnstAusgaben[i]).value != '') {
				tmp = string2float(document.getElementById(felderAnstAusgaben[i]).value);
				if (!isNaN(tmp)) {
					// Sonderfall Mietausgaben entfallen
					if (!((felderAnstAusgaben[i] == 'anst_aus_miete') && (document.getElementById('anst_aus_mieteentfaellt').value == 'Ja')))
						summeAusAnst = summeAusAnst + tmp;
				}
			}
		}
	}
	if (document.getElementById('anst_aus_summe')) {
		document.getElementById('anst_aus_summe').value = formatNumber(float2string(summeAusAnst), true);
	}

	// Ausgaben Mitantragssteller
	for (i = 0; i < felderMitanstAusgaben.length; i++) {
		if (document.getElementById(felderMitanstAusgaben[i])) {
			if (document.getElementById(felderMitanstAusgaben[i]).value != '') {
				tmp = string2float(document.getElementById(felderMitanstAusgaben[i]).value);
				if (!isNaN(tmp)) {
					// Sonderfall Mietausgaben entfallen
					if (!((felderMitanstAusgaben[i] == 'mitanst_aus_miete') && (document.getElementById('mitanst_aus_mieteentfaellt').value == 'Ja')))
						summeAusMitanst = summeAusMitanst + tmp;
				}
			}
		}
	}
	if (document.getElementById('mitanst_aus_summe')) {
		document.getElementById('mitanst_aus_summe').value = formatNumber(float2string(summeAusMitanst), true);
	}

	// Zusammenfassung
	if (document.getElementById('gesamteinnahmen')) {
    if (document.getElementById('mitanst_ein_summe')) {
      tmpEinnahmen = string2float(document.getElementById('anst_ein_summe').value) + string2float(document.getElementById('mitanst_ein_summe').value);
    } else {
		  tmpEinnahmen = string2float(document.getElementById('anst_ein_summe').value);
    }
		document.getElementById('gesamteinnahmen').value = formatNumber(float2string(tmpEinnahmen), true);
	}
	if (document.getElementById('gesamtausgaben')) {
    if (document.getElementById('mitanst_aus_summe')) {
		  tmpAusgaben = string2float(document.getElementById('anst_aus_summe').value) + string2float(document.getElementById('mitanst_aus_summe').value);
    } else {
      tmpAusgaben = string2float(document.getElementById('anst_aus_summe').value);
    }
		document.getElementById('gesamtausgaben').value = formatNumber(float2string(tmpAusgaben), true); 
	}

	if (document.getElementById('gesamtausgaben')) {
		document.getElementById('gesamtdifferenz').value = formatNumber(float2string(tmpEinnahmen - tmpAusgaben), true); 
	}
}

/* Onlineanfrage - Schritt 5 */
function calcStep5() {
	var summeVermoegen = 0;
	var summeVerbindlichkeiten = 0;

	// Feld-IDs Verm?gen
	var felderVermoegen = new Array(
		'vermoegen_bankguthaben',
		'vermoegen_bausparguthaben',
		'vermoegen_lebensversicherung',
		'vermoegen_wertpapiere',
		'vermoegen_immobilien'
	);
	
	var felderVerbindlichkeiten = new Array(
		'vermoegen_ratenkredite',
		'vermoegen_immobiliendarlehen',
		'vermoegen_buergschaften'
	);
	
	// Summe Verm?gen
	for (i = 0; i < felderVermoegen.length; i++) {
		if (document.getElementById(felderVermoegen[i])) {
			if (document.getElementById(felderVermoegen[i]).value != '') {
				tmp = string2float(document.getElementById(felderVermoegen[i]).value);
				if (!isNaN(tmp)) {
					summeVermoegen= summeVermoegen + tmp;
				}
			}
		}
	}
	if (document.getElementById('summe_vermoegen')) {
		document.getElementById('summe_vermoegen').value = formatNumber(float2string(summeVermoegen), true);
	}

	if (document.getElementById('summe2_vermoegen')) {
		document.getElementById('summe2_vermoegen').value = formatNumber(float2string(summeVermoegen), true);
	}
	// Summe Verm?gen
	for (i = 0; i < felderVerbindlichkeiten.length; i++) {
		if (document.getElementById(felderVerbindlichkeiten[i])) {
			if (document.getElementById(felderVerbindlichkeiten[i]).value != '') {
				tmp = string2float(document.getElementById(felderVerbindlichkeiten[i]).value);
				if (!isNaN(tmp)) {
					summeVerbindlichkeiten = summeVerbindlichkeiten + tmp;
				}
			}
		}
	}
	if (document.getElementById('summe_verbindlichkeiten')) {
		document.getElementById('summe_verbindlichkeiten').value = formatNumber(float2string(summeVerbindlichkeiten), true);
	}
	if (document.getElementById('summe2_verbindlichkeiten')) {
		document.getElementById('summe2_verbindlichkeiten').value = formatNumber(float2string(summeVerbindlichkeiten), true);
	}

	tmpVermoegen = string2float(document.getElementById('summe_vermoegen').value);
	tmpVerbindlichkeiten = string2float(document.getElementById('summe_verbindlichkeiten').value);
	
	if (document.getElementById('differenz')) {
		document.getElementById('differenz').value = formatNumber(float2string(tmpVermoegen - tmpVerbindlichkeiten), true); 
	}

	if (document.getElementById('vermoegen_ueberschuss')) {
		document.getElementById('vermoegen_ueberschuss').value = formatNumber(float2string(tmpVermoegen - tmpVerbindlichkeiten), true);
	}

}

// TIPPS & TRICKS
var actTippkategorie;
var actTipp;

function turnOnTippkategorie(id) {
	for (var i = 0; i < 200; i++) {
		if (document.getElementById('tipps_'+i))
			document.getElementById('tipps_'+i).style.display = 'none';
	}
	if (id != actTippkategorie) {
		document.getElementById('tipps_'+id).style.display = 'block';
		actTippkategorie = id;
	}
	else {
		actTippkategorie = '';
	} 
}

function turnOnFragen(id) {
	for (var i = 0; i < 600; i++) {
		if (document.getElementById('tippantwort_'+i))
			document.getElementById('tippantwort_'+i).style.display = 'none';
	}

	if (id != actTipp) {
		document.getElementById('tippantwort_'+id).style.display = 'block';
		actTipp = id;
	}
	else {
		actTipp = '';
	}
	
}

function bookmarkSite(title, url) {
	if (document.all)
		window.external.AddFavorite(url, title);
	else if (window.sidebar)
		window.sidebar.addPanel(title, url, "")
}

/* KURZANFRAGE */
function checkKurzanfrage() {
	fehler = false;
	kontaktaufnahme = document.getElementById('kontaktaufnahme');
	finanzierungsvorschlag = document.getElementById('finanzierungsvorschlag');
	
	if (kontaktaufnahme.checked || finanzierungsvorschlag.checked) {
		anrede = document.getElementById('anst_person_anrede');
		vorname = document.getElementById('anst_person_vorname');
		nachname = document.getElementById('anst_person_nachname');
		adresse = document.getElementById('anst_person_adresse');
		postleitzahl = document.getElementById('anst_person_plz');
		ort = document.getElementById('anst_person_ort');
		telefon = document.getElementById('anst_person_telefon');
		email = document.getElementById('anst_person_email');
    zustimmung_speicherung = document.getElementById('zustimmung_speicherung');
		
		if (anrede.value == "") {
			alert('Bitte geben Sie eine Anrede an.');
			fehler = true;
		}
		else
		if (vorname.value == "") {
			alert('Bitte geben Sie Ihren Vornamen ein.');
			fehler = true;
		}
		else
		if (nachname.value == "") {
			alert('Bitte geben Sie Ihren Nachnamen ein.');
			fehler = true;
		}
		else
		if (adresse.value == "") {
			alert('Bitte geben Sie eine Postanschrift ein.');
			fehler = true;
		}
		else
		if (postleitzahl.value == "") {
			alert('Bitte geben Sie eine Postleitzahl ein.');
			fehler = true;
		}
		else
		if (ort.value == "") {
			alert('Bitte geben Sie einen Ort an.');
			fehler = true;
		}
		else
		if (telefon.value == "") {
			alert('Bitte geben Sie eine Telefonnummer an.');
			fehler = true;
		}
		else
		if (email.value == "") {
			alert('Bitte geben Sie eine E-Mail-Adresse an.');
			fehler = true;
    }
    else
    if (zustimmung_speicherung.checked==false) {
      alert('Bitte stimmen Sie einer Speicherung Ihrer Daten zu, damit wir Ihre Anfrage bearbeiten können.');
      fehler = true;      
		} else {
	  
	    if (finanzierungsvorschlag.checked) {
		    finanzierungswunsch = document.getElementById('finanzierungswunsch');
		    nutzungsart = document.getElementById('nutzungsart');
		    objektart = document.getElementById('objektart');
		    postleitzahl_objekt = document.getElementById('postleitzahl_objekt');
		    kaufpreis_immobilienwert = document.getElementById('kaufpreis_immobilienwert');
		    darlehenssumme = document.getElementById('darlehenssumme');
        zinsbindung = document.getElementById('zinsbindung');
        tilgung_prozent = document.getElementById('tilgung_prozent');
        monatliche_rate = document.getElementById('monatliche_rate');
          
		    if (finanzierungswunsch.value == "") {
			    alert('Bitte treffen Sie unter \'Mein Vorhaben\' eine Auswahl.');
			    fehler = true;
		    }
		    else
		    if (nutzungsart.value == "") {
			    alert('Bitte treffen Sie unter \'Nutzungsart\' eine Auswahl.');
			    fehler = true;
		    }
		    else
		    if (objektart.value == "") {
			    alert('Bitte treffen Sie unter \'Objektart\' eine Auswahl.');
			    fehler = true;
		    }
		    else
		    if (postleitzahl_objekt.value == "") {
			    alert('Bitte geben Sie eine Postleitzahl des Objekts an.');
			    fehler = true;
		    }
		    else
		    if (kaufpreis_immobilienwert.value == "") {
			    alert('Bitte geben Sie einen Kaufpreis / Immobilienwert an.');
			    fehler = true;
		    }
		    else
		    if (darlehenssumme.value == "") {
			    alert('Bitte geben Sie die gewünschte Darlehenssumme an.');
			    fehler = true;
		    }
		    else
		    if (zinsbindung.value == "") {
          alert('Bitte geben Sie die gewünschte Zinsbindung an.');
          fehler = true;
        }
        else
        if (tilgung_prozent.value == "" && monatliche_rate.value == "") {
          alert('Bitte geben Sie für die Rückzahlung eine Tilgung in Prozent oder eine monatliche Rate an.');
          fehler = true;
        }
      }
    }
	} else {
    alert('Bitte kreuzen Sie an, ob wir mit Ihnen Kontakt aufnehmen sollen oder ob Sie einen Finanzierungsvorschlag von uns erhalten möchten.');
    fehler = true;
  }

	if (!fehler) {
		document.kurzanfrage.submit();
	}
}


function button_activate(id) {
  document.getElementById('button_' + id).className='big_button_active'; 
  /*
  document.getElementById('button_' + id).style.background='url(img/big_button_over.jpg)';
  document.getElementById('button_' + id).style.cursor='pointer';
  document.getElementById('header_' + id).style.color='#1A4E52';
  document.getElementById('txt_' + id).style.color='#FFF';
  */
}
function button_deactivate(id) {
  document.getElementById('button_' + id).className='big_button';
  /*
  document.getElementById('button_' + id).style.background='url(img/big_button.jpg)';
  document.getElementById('header_' + id).style.color='#9A0F1E';
  document.getElementById('txt_' + id).style.color='#000';
  */
}

function small_button_activate(id) {
  document.getElementById('button_' + id).className='small_button_active'; 
}
function small_button_deactivate(id) {
  document.getElementById('button_' + id).className='small_button';
}

function mini_button_activate(id) {
  document.getElementById('button_' + id).className='mini_button_active'; 
}
function mini_button_deactivate(id) {
  document.getElementById('button_' + id).className='mini_button';
}

// Topzins-Detailseite
function topzins_select(id) {
	// Tabelle einblenden
	for (i = 0; i < 10; i++) {
		if (document.getElementById('topzinstabelle-'+i)) 
			document.getElementById('topzinstabelle-'+i).style.display = 'none';
	}
	if (document.getElementById('topzinstabelle-'+id))
		document.getElementById('topzinstabelle-'+id).style.display = 'block';
		
	// Tabellenreiter aktiv setzen
	for (i = 0; i < 10; i++) {
		if (document.getElementById('topzinsreiter-'+i)) 
			document.getElementById('topzinsreiter-'+i).className = '';
	}
	if (document.getElementById('topzinsreiter-'+id))
		document.getElementById('topzinsreiter-'+id).className = 'aktiv';
} 

// Onlineanfrage - Stufe 3 - Variante 2
function checkNutzungsart() {
	value = document.getElementById('objektvariante2_nutzungsart').value;
	if ((value == 'vermietung') || (value == 'teilvermietung')) {
		document.getElementById('reihe_wohnflaechevermietet').style.display = 'table-row';
		document.getElementById('reihe_nettokaltmiete').style.display = 'table-row';
	}
	else {
		document.getElementById('reihe_wohnflaechevermietet').style.display = 'none';
		document.getElementById('reihe_nettokaltmiete').style.display = 'none';
	}
}

// Onlineanfrage - Stufe 3 - Variante 1
function checkNutzungsart1() {
	value = document.getElementById('objektvariante1_nutzungsart').value;
	if ((value == 'vermietung') || (value == 'teilvermietung')) {
		document.getElementById('reihe_wohnflaechevermietet').style.display = 'table-row';
		document.getElementById('reihe_nettokaltmiete').style.display = 'table-row';
		document.getElementById('reihe_gewerbeflaechevermietet').style.display = 'table-row';
		document.getElementById('reihe_gewerbenettokaltmiete').style.display = 'table-row';
	}
	else {
		document.getElementById('reihe_wohnflaechevermietet').style.display = 'none';
		document.getElementById('reihe_nettokaltmiete').style.display = 'none';
		document.getElementById('reihe_gewerbeflaechevermietet').style.display = 'none';
		document.getElementById('reihe_gewerbenettokaltmiete').style.display = 'none';
	}
}



