var base64s = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
function encode(a)
{
    var b;
    var c;
    var i = 0;
    var d = '';
    while (a.length >= i + 3)
    {
        b = (a.charCodeAt(i++) & 0xff) << 16 | (a.charCodeAt(i++) & 0xff) << 8 | a.charCodeAt(i++) & 0xff;
        d += base64s.charAt((b & 0x00fc0000) >> 18) + base64s.charAt((b & 0x0003f000) >> 12) + base64s.charAt((b & 0x00000fc0) >> 6) + base64s.charAt((b & 0x0000003f))
    }
    if (a.length - i > 0 && a.length - i < 3)
    {
        c = Boolean(a.length - i - 1);
        b = ((a.charCodeAt(i++) & 0xff) << 16) | (c ? (a.charCodeAt(i) & 0xff) << 8 : 0);
        d += base64s.charAt((b & 0x00fc0000) >> 18) + base64s.charAt((b & 0x0003f000) >> 12) + (c ? base64s.charAt((b & 0x00000fc0) >> 6) : '=') + '='
    }
    return (d)
}
function decode(a)
{
    var b;
    var c = '';
    var i = 0;
    for (; i < a.length; i += 4)
    {
        b = (base64s.indexOf(a.charAt(i)) & 0xff) << 18 | (base64s.indexOf(a.charAt(i + 1)) & 0xff) << 12 | (base64s.indexOf(a.charAt(i + 2)) & 0xff) << 6 | base64s.indexOf(a.charAt(i + 3)) & 0xff;
        c += String.fromCharCode((b & 0xff0000) >> 16, (b & 0xff00) >> 8, b & 0xff)
    }
    if (a.charCodeAt(i - 2) == 61) {
        return (c.substring(0, c.length - 2))
    }
    else if (a.charCodeAt(i - 1) == 61) {
        return (c.substring(0, c.length - 1))
    }
    else {
        return (c);
    }
}
function cleanInt(a)
{
    a = a.replace(",", ".");
    return Number(a.replace(/[^0-9\.]/g, ""))
}
function cleanValues()
{
    document.entnahmerechner.entnahmedauer_result.value = "";
    document.entnahmerechner.monatEntnahme_result.value = ""
}
function fZinsGewinnrechner()
{
    var a, vZins, vAnsparzeit, vMonatsEntnahme, vEntnahmeDauer, vBerechnungsArt, vMonatsSteigerungsZins, 
    vEntnahmeZins;
    document.entnahmerechner.anlage.value = cleanInt(document.entnahmerechner.anlage.value);
    document.entnahmerechner.zins.value = cleanInt(document.entnahmerechner.zins.value);
    document.entnahmerechner.dauer.value = cleanInt(document.entnahmerechner.dauer.value);
    document.entnahmerechner.monatEntnahme.value = cleanInt(document.entnahmerechner.monatEntnahme.value);
    document.entnahmerechner.entnahmedauer.value = cleanInt(document.entnahmerechner.entnahmedauer.value);
    a = document.entnahmerechner.anlage.value;
    vZins = document.entnahmerechner.zins.value / 100;
    vMonatsSteigerungsZins = 1 + (vZins / 12);
    vAnsparzeit = document.entnahmerechner.dauer.value * 12;
    vMonatsEntnahme = document.entnahmerechner.monatEntnahme.value;
    vEntnahmeDauer = document.entnahmerechner.entnahmedauer.value * 12;
    vBerechnungsArt = document.entnahmerechner.berechnungsart.value;
    a = Number(a) + Number((a * Math.pow((1 + vZins), (vAnsparzeit / 12)) - a));
    error = false;
    if (vBerechnungsArt == 1)
    {
        maximalerZinsZuBeginn = a * (vZins / 12);
        vEntnahmeDauer = Math.round(10 * Math.log(-vMonatsEntnahme / (a - a / vMonatsSteigerungsZins - vMonatsEntnahme)) / Math.log(vMonatsSteigerungsZins) / 12) / 10;
        if (vMonatsEntnahme > maximalerZinsZuBeginn) {
            document.entnahmerechner.entnahmedauer_result.value = vEntnahmeDauer;
        }
        else {
            document.entnahmerechner.entnahmedauer_result.value = "endlos";
        }
    }
    else
    {
        vEntnahmeZins = Math.pow(vMonatsSteigerungsZins, vEntnahmeDauer);
        ergebnis = a * vEntnahmeZins * (1 - 1 / vMonatsSteigerungsZins) / (vEntnahmeZins - 1);
        if (vEntnahmeDauer == "0") {
            error = true
        }
        if (error != true) {
            document.entnahmerechner.monatEntnahme_result.value = Math.round(ergebnis);
        }
    }
    if (error == true) {
        alert("Der Entnahmezeitraum ist unsinnig!");
        return - 1;
    }
}
function changeArt()
{
    id_on = document.entnahmerechner.berechnungsart.value;
    id_off = 3 - Number(document.entnahmerechner.berechnungsart.value);
    document.getElementById('selectA_' + id_off).style.display = 'none';
    document.getElementById('selectB_' + id_off).style.display = 'none';
    document.getElementById('selectA_' + id_on).style.display = '';
    document.getElementById('selectB_' + id_on).style.display = ''
}
