function button_activate(id) {
  document.getElementById('button_' + id).className='big_button_active'; 
}
function button_deactivate(id) {
  document.getElementById('button_' + id).className='big_button';
}

function doTilgungsrechnerSubmit() {
    document.tilgungsrechner.submit();
}

function tilgungsrechnerSubmit() {
    setTimeout('doTilgungsrechnerSubmit();', 50);
}

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)
			tilgungsrechnerSubmit();
		
	}

	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 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 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);
}

function doVolltilgungsrechnerSubmit() {
    document.volltilgungsrechner.submit();
}

function volltilgungsrechnerSubmit() {
    setTimeout('doVolltilgungsrechnerSubmit();', 50);
}

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)
    volltilgungsrechnerSubmit();
  return true;
}

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();
}

/* BUDGETRECHNER */
function doBudgetrechnerSubmit() {
  document.budgetrechner.submit();
}


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;
	}

    setTimeout("doBudgetrechnerSubmit();", 50);
	
}


function doKonditionsrechnerSubmit() {
  document.konditionsrechner.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;
  }

  setTimeout("doKonditionsrechnerSubmit();", 50);
}


this.tooltip = function(){	
	/* CONFIG */		
		xOffset = -20;
		yOffset = -10;
		// these 2 variable determine popup's distance from the cursor
		// you might want to adjust to get the right result		
	/* END CONFIG */		
	$(".tooltip").hover(function(e){											  
		this.t = this.title;
		this.title = "";									  
		$("body").append("<p id='tooltip'><iframe frameborder='0' style='display:none; display/**/>"+ this.t +"</iframe></p>");
		$("#tooltip")
			.css("top",(e.pageY - xOffset) + "px")
			.css("left",(e.pageX + yOffset) + "px")
            .css("z-index", 60001)
			.fadeIn("fast");		
    },
	function(){
		this.title = this.t;		
		$("#tooltip").remove();
    });	
	$(".tooltip").mousemove(function(e){
		$("#tooltip")
			.css("top",(e.pageY - xOffset) + "px")
			.css("left",(e.pageX + yOffset) + "px");
	});			
};

// starting the script on page load
$(document).ready(function(){
	tooltip();
});


function turnOff(dname) {
  	document.getElementById(dname).style.display = 'none';
  	return true;
}

function turnOn(dname) {
  	document.getElementById(dname).style.display = 'block';
  	return true;
} 

/* 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();
}