document.write('');
function $(id){
return document.getElementById(id);
}
LastVer = new function()
{
this.event = new Array();
this.tracktrick = new Image();
}
LastVer.initAll = function(){
var inputs = document.getElementsByTagName("input");
var namen = new Array();
var buttons = new Array();
for(var input in inputs){
var type = inputs[input].type;
if(type == "text" || type == "radio" || type == "checkbox" || type == "select"){
namen.push(inputs[input].name);
}
else if(type == "submit" || type == "button"){
buttons.push(inputs[input].name);
}
}
for(var button in buttons){
this.init(namen,buttons[button]);
}
}
LastVer.init = function(inputs,submitname)
{
var form = document.getElementsByTagName("form");
if(form.length == 0 ){
document.getElementsByName(submitname)[0].parentNode.parentNode.style.display = "block";
document.getElementsByName(submitname)[0].parentNode.parentNode.style.visibility = "visible";
}
this.lastv = "-1";
this.event[submitname] = '';
for(var i=0;i Cookie wird gelöscht
return true;
}catch(e){return false;}
}
LastVer.sendToDatabase = function(werte)
{
if(this.lastv)
{
//TODO
}
}
LastVer.sendToDatabase.createLastVerURLvariable = function(variablenname, variablenwert){
var url = "https://banking.degussa-bank.de:443/banking/servlet/com.pagentix.banking.servlet.lastver.CheckboxServlet";
try{
var sessionID=top.action.menu.mystate.sessionID;
if (sessionID != "0") {
url=url+';jsessionid='+sessionID;
}
}catch(e){;}
url += "?lastv="+LastVer.lastv;
url += "&"+variablenname+"="+variablenwert;
LastVer.sendToDatabase.imageLastVer(url);
/** ZUM TESTEN! IN FINALVERSION BITTE ENTFERNEN **/
//$('Tracking').innerHTML = "Tracking-Verhalten:
" + url + "
";
//var fenster = window.open(url, "Tracking");
//fenster.focus();
/** ZUM TESTEN! IN FINALVERSION BITTE ENTFERNEN **/
return url;
}
LastVer.sendToDatabase.createLastVerURL = function(variablen){
var url = "https://banking.degussa-bank.de:443/banking/servlet/com.pagentix.banking.servlet.lastver.CheckboxServlet";
try{
var sessionID=top.action.menu.mystate.sessionID;
if (sessionID != "0") {
url=url+';jsessionid='+sessionID;
}
}catch(e){;}
url += "?lastv="+LastVer.lastv;
for(var i=0;iTracking-Verhalten:
" + url + "
";
//window.open(url, "Tracking");
/** ZUM TESTEN! IN FINALVERSION BITTE ENTFERNEN **/
return url;
}
LastVer.sendToDatabase.imageLastVer = function(LastVerurl){
try{
LastVer.tracktrick = new Image();
LastVer.tracktrick.src = LastVerurl;
}catch(e){return false;}
if( LastVer.tracktrick.src == LastVerurl){
return true;
}
else{
return false;
}
}
LastVer.eventHandler = function(event,variablenname,variablenwert)
{
var variablen = new Array();
var name = event.name;
if(this.event[name]){
try{
eval(this.event[name]);
}catch(e){return false;}
}
else{
this.initAll();
try{
eval(this.event[name]);
}catch(e){return false;}
}
// LastVer.flashcookie("42314314124","23144213");
/*if(LastVer.flashcookie.exist() == true) // Flashcookie wird verwendet: Erste Wahl
{
LastVer.LASTV.create();
alert("keks");
LastVer.flashcookie.read ();
}
else*/ if(LastVer.cookie.exist() == true) // HTTPCookie wird verwendet: 2te Wahl
{
if(LastVer.cookie.read("lastv") == false) // Der User hat noch keine lastv im cookie gespeichert
{
if(LastVer.lastv == "-1" || LastVer.lastv == -1 || typeof LastVer.lastv == "undefined") // Das aktuelle geöffnete Programm hat noch keine lastv erzeugt
{
LastVer.LASTV.create(); // erstellt lastv
}
try{
LastVer.cookie("lastv",this.lastv); // lastv wird in cookie geschrieben
}catch(e){alert("Fataler Fehler: Cookie konnte nicht erstellt werden;");}
}
else
{
this.lastv = LastVer.cookie.read("lastv"); // lastv wird aus cookie ausgelesen und gespeichert
}
if(typeof variablenname == "undefined" || variablenname == "" || typeof variablenwert == "undefined" || variablenwert == "")
{
try{
LastVer.sendToDatabase.createLastVerURL(variablen);
}catch(e){return false;}
}
else
{
LastVer.sendToDatabase.createLastVerURLvariable(variablenname, variablenwert);
}
}
else
{
return false;
}
}
//
//prod.mestmatch (dauer, betrag) returns kondition
// SparenMatrix = array(SPAR_ID, NAME, URL, VORTEILTEXT);
/*
SparenMatrix = new Array();
SparenMatrix[0] = new Sparen("0","Renditensparen **","#link","- Erhöhung des Sparguthabens jederzeit während der Laufzeit möglich
- Flexible Verfügung bis zu EUR 2.000,- pro Monat zur Wahrung des Sonderzinssatzes ist jedoch die Mindestanlagesumme von EUR 2.500,- Voraussetzung. Bei Unterschreitung gilt der jeweilige Zinssatz für Spareinlagen mit 3-monatiger Kündigungsfrist.
");
SparenMatrix[1] = new Sparen("1","Sparplan **","#link","- jährlich steigende Bonuszahlungen auf die Sparleistung des abgelaufenen Vertragsjahres
- - je länger die Vertragsdauer, desto hoeher der Bonus -
");
SparenMatrix[2] = new Sparen("2","VL-Sparen **","#link","- Überschaubare Anlagedauer von 7 Jahren (6 Jahre Einzahlungsdauer + 1 Jahr Sperrfrist)
- 14 % Degussa Bank Bonus auf Ihre Sparleistungen einmalig am Ende der Laufzeit(In der Zinsertragrechnung enthalten)
");
SparenMatrix[3] = new Sparen("3","Sparbrief Typ-V","#link","- Attraktive Verzinsung mit garantierten Zinsen für die gewählte Laufzeit.
");
SparenMatrix[4] = new Sparen("4","Sparbrief Typ-A","#link","- Attraktive Verzinsung mit garantierten Zinsen für die gewählte Laufzeit.
");
SparenMatrix[5] = new Sparen("5","Dynamiksparen","#link","- garantiert jährlich steigende Zinsen
- Flexible Verfügung bis zu EUR 2.000,- pro Monat nach dem ersten Anlagejahr. Der Mindestanlagebetrag von EUR 2.500,- darf dabei jedoch nicht unterschritten werden.
");
SparenMatrix[6] = new Sparen("6","Telegeld V1: Zinsvorteil Pur","#link","- Die Zinsen sind im Jahr des Zuflusses steuerpflichtig. Sofern keine entsprechender Freistellungsauftrag vorliegt, erfolgt ein Steuerabzug auf die Zinsen.
");
SparenMatrix[7] = new Sparen("7","Telegeld V2: Zinsvorteil mit System","#link","- Die Zinsen sind im Jahr des Zuflusses steuerpflichtig. Sofern keine entsprechender Freistellungsauftrag vorliegt, erfolgt ein Steuerabzug auf die Zinsen.
");
SparenMatrix[8] = new Sparen("8","Topzins **","#link","- Täglich verfügbar
- keine Kündigungsfristen
- kein Mindestanlagebetrag
- Verzinsung ab dem ersten Euro
- Jährliche Zinsgutschrift
- Als Verrechnungskonto dient Ihr Degussa Bank Girokonto
");
SparenMatrix[9] = new Sparen("9","FestInvest **","#link","- attraktive 5% Zinsen garantiert für 1 Jahr auf dem FestZins-Konto, täglich verfügbar, plus
- Anlage in Deutschlands besten Rentenfonds mit einer Wertsteigerung von 7,3% in den letzten 3 Jahren im Durchschnitt
");
SparenMatrix[10] = new Sparen("10","Festgeld","#link","- feste und damit kalkulierbare Zinserträge
- mit Option der automatischen Prolongation des Festgelds
");
SparenMatrix[11] = new Sparen("11","Rentenplan","#link","- variabler Sonderzinssatz oder festgeschriebener Zins über die gesamte Laufzeit
- flexible monatliche Auszahlung: wahlweise mit oder ohne Kapitalverzehr
");
SparenMatrix[12] = new Sparen("12","Investmentsparen*","#link","- langfristig überdurchschnittliche Performance durch Cost Averaging (konstante Einzahlung bei schwankenden Anteilswerten) Guthaben ist jederzeit verfügbar anfallende Erträge werden automatisch wiederangelegt, kostenlose Depotverwahrung, auf Wunsch ist eine Kombination von Anspar- und Auszahlplan möglich
");
// SparvarianteMatrix = array(SPAR_ID,MINDESTANLAGEBEITRAG,VARIANTEN_ID,ANLAGE);
SparvarianteMatrix = new Array();
SparvarianteMatrix[0] = new Sparvariante("0","2500","0","einmalig");
SparvarianteMatrix[1] = new Sparvariante("0","5000","1","einmalig");
SparvarianteMatrix[2] = new Sparvariante("1","25","2","monat");
SparvarianteMatrix[3] = new Sparvariante("1","250","3","jahr");
SparvarianteMatrix[4] = new Sparvariante("2","0","4","monat+jahr");
SparvarianteMatrix[5] = new Sparvariante("3","0","5","einmalig");
SparvarianteMatrix[6] = new Sparvariante("4","0","6","einmalig");
SparvarianteMatrix[7] = new Sparvariante("5","2500","7","einmalig"); // Dynamiksparen
SparvarianteMatrix[8] = new Sparvariante("6","5000","8","RAUS"); // Telegeld V1
SparvarianteMatrix[9] = new Sparvariante("7","0","9","RAUS"); // Telefel V2
SparvarianteMatrix[10] = new Sparvariante("8","0","10","monat+jahr+einmalig"); // TopZins
SparvarianteMatrix[11] = new Sparvariante("9","2500","11","einmalig"); // FestInvest
SparvarianteMatrix[12] = new Sparvariante("10","5000","12","einmalig"); // Festgeld
SparvarianteMatrix[13] = new Sparvariante("10","25000","13","einmalig");
SparvarianteMatrix[14] = new Sparvariante("10","50000","14","einmalig");
//SparvarianteMatrix[14] = new Sparvariante("12","5000","15","einmalig");
//SparvarianteMatrix[14] = new Sparvariante("13","25","16","einmalig");
// DauerMatrix = array("Anlagemindestdauer, Anlagemaximaldauer, Dauerid");
DauerMatrix = new Array();
DauerMatrix[0] = new Dauer("6","3000","0");
DauerMatrix[1] = new Dauer("12","3000","1");
DauerMatrix[2] = new Dauer("24","3000","2");
DauerMatrix[3] = new Dauer("36","72","3");
DauerMatrix[4] = new Dauer("96","300","4");
DauerMatrix[5] = new Dauer("72","72","5");
DauerMatrix[6] = new Dauer("12","12","6");
DauerMatrix[7] = new Dauer("24","24","7");
DauerMatrix[8] = new Dauer("36","36","8");
DauerMatrix[9] = new Dauer("48","48","9");
DauerMatrix[10] = new Dauer("60","60","10");
DauerMatrix[11] = new Dauer("84","84","11");
DauerMatrix[12] = new Dauer("96","96","12");
DauerMatrix[13] = new Dauer("120","120","13");
DauerMatrix[14] = new Dauer("60","60","14");
DauerMatrix[15] = new Dauer("0","3000","15");
DauerMatrix[16] = new Dauer("1","3000","16");
DauerMatrix[17] = new Dauer("2","3000","17");
DauerMatrix[18] = new Dauer("3","3000","18");
DauerMatrix[19] = new Dauer("6","3000","19");
DauerMatrix[20] = new Dauer("300","300","20");
// ZinsenMatrix = array(variantenid,dauerid,zinssatz,bonusid);
ZinsenMatrix = new Array();
ZinsenMatrix [0] = new Zinsen("0","0","3.00","");
ZinsenMatrix [1] = new Zinsen("0","1","3.20","");
ZinsenMatrix [2] = new Zinsen("0","2","3.40","");
ZinsenMatrix [3] = new Zinsen("1","0","3.10","");
ZinsenMatrix [4] = new Zinsen("1","1","3.30","");
ZinsenMatrix [5] = new Zinsen("1","2","3.50","");
ZinsenMatrix [6] = new Zinsen("2","3","1.80","var bonusbreak = true; var bonuszinsen = new Array(0,2,4,8,12,16); if(k == 1){ sparleistung -= zinsen; jahreszinsen -= zinsen; temp_sparbetrag = sparbetrag; zinsen = Jahreszinsen(zinssatz, temp_sparbetrag)/12; zinsen = parseFloat(Modellrechner.runde(zinsen)); sparleistung += zinsen; jahreszinsen += zinsen; jahreszinsen = parseFloat(Modellrechner.runde(jahreszinsen));} temp_sparbetrag += sparbetrag; if((k%12) == 0){ temp_sparbetrag += ((sparbetrag*12)*bonuszinsen[((k/12)-1)])/100; sparleistung += ((sparbetrag*12)*bonuszinsen[((k/12)-1)])/100; temp_sparbetrag += jahreszinsen; jahreszinsen = 0;}");
ZinsenMatrix [7] = new Zinsen("2","4","3.20","var bonusbreak = true; var bonuszinsen = new Array(0,0,0,0,0,0,0,8,10,12,15,20,25,30,35,40,45,50,55,60,65,70,75,80,100); if(k == 1){ sparleistung -= zinsen; jahreszinsen -= zinsen; temp_sparbetrag = sparbetrag; zinsen = Jahreszinsen(zinssatz, temp_sparbetrag)/12; zinsen = parseFloat(Modellrechner.runde(zinsen)); sparleistung += zinsen; jahreszinsen += zinsen; jahreszinsen = parseFloat(Modellrechner.runde(jahreszinsen));} temp_sparbetrag += sparbetrag; if((k%12) == 0){ temp_sparbetrag += ((sparbetrag*12)*bonuszinsen[((k/12)-1)])/100; sparleistung += ((sparbetrag*12)*bonuszinsen[((k/12)-1)])/100; temp_sparbetrag += jahreszinsen; jahreszinsen = 0;}");
ZinsenMatrix [44] = new Zinsen("3","3","1.80","var bonuszinsen = new Array(0,2,4,8,12,16); if((k%12) == 0){ temp_sparbetrag += (sparbetrag*bonuszinsen[((k/12)-1)])/100; sparleistung += ((sparbetrag)*bonuszinsen[((k/12)-1)])/100;}");
ZinsenMatrix [45] = new Zinsen("3","4","3.20","var bonuszinsen = new Array(0,0,0,0,0,0,0,8,10,12,15,20,25,30,35,40,45,50,55,60,65,70,75,80,100); if((k%12) == 0){ temp_sparbetrag += (sparbetrag*bonuszinsen[((k/12)-1)])/100; sparleistung += ((sparbetrag)*bonuszinsen[((k/12)-1)])/100;}");
ZinsenMatrix [8] = new Zinsen("4","5","0.75","if(k == zeitspanne){sparleistung += Jahreszinsen(14,temp_sparbetrag)/12*schrittweise;};"); //14.00 nach 7 Jahren
ZinsenMatrix [9] = new Zinsen("5","6","4.25","jahreszinsen = 0;");
ZinsenMatrix [10] = new Zinsen("5","7","4.30","jahreszinsen = 0;");
ZinsenMatrix [11] = new Zinsen("5","8","4.30","jahreszinsen = 0;");
ZinsenMatrix [12] = new Zinsen("5","9","4.30","jahreszinsen = 0;");
ZinsenMatrix [13] = new Zinsen("5","10","4.30","jahreszinsen = 0;");
ZinsenMatrix [14] = new Zinsen("5","11","4.35","jahreszinsen = 0;");
ZinsenMatrix [15] = new Zinsen("5","12","4.40","jahreszinsen = 0;");
ZinsenMatrix [16] = new Zinsen("5","13","4.50","jahreszinsen = 0;");
ZinsenMatrix [17] = new Zinsen("6","6","4.25","");
ZinsenMatrix [18] = new Zinsen("6","7","4.30","");
ZinsenMatrix [19] = new Zinsen("6","8","4.30","");
ZinsenMatrix [20] = new Zinsen("6","9","4.30","");
ZinsenMatrix [21] = new Zinsen("6","10","4.30","");
ZinsenMatrix [22] = new Zinsen("6","11","4.35","");
ZinsenMatrix [23] = new Zinsen("6","12","4.40","");
ZinsenMatrix [24] = new Zinsen("6","13","4.50","");
ZinsenMatrix [25] = new Zinsen("7","14","3.50","var a = new Array(0, 0.25, 0.50, 0.75, 1.25); zinsen = Jahreszinsen(a[(k/12)-1],temp_sparbetrag)/12*schrittweise; sparleistung += zinsen; jahreszinsen += zinsen;"); // 3.50+3.75+4.00+4.25+4.75
ZinsenMatrix [26] = new Zinsen("8","15","3.07","");
ZinsenMatrix [27] = new Zinsen("9","15","3.07","");
ZinsenMatrix [28] = new Zinsen("10","15","3.25","");
ZinsenMatrix [29] = new Zinsen("11","20","5.00","");//+X
ZinsenMatrix [30] = new Zinsen("12","19","3.90","");
ZinsenMatrix [31] = new Zinsen("12","16","2.50","");
ZinsenMatrix [32] = new Zinsen("12","17","2.50","");
ZinsenMatrix [33] = new Zinsen("12","18","3.60","");
ZinsenMatrix [34] = new Zinsen("13","5","2.65","");
ZinsenMatrix [35] = new Zinsen("13","16","2.65","");
ZinsenMatrix [36] = new Zinsen("13","17","3.60","");
ZinsenMatrix [37] = new Zinsen("13","18","3.90","");
ZinsenMatrix [38] = new Zinsen("14","0","2.80","");
ZinsenMatrix [39] = new Zinsen("14","0","2.80","");
ZinsenMatrix [40] = new Zinsen("14","0","3.60","");
ZinsenMatrix [41] = new Zinsen("14","0","3.90","");
ZinsenMatrix [42] = new Zinsen("2","4","3.20","");
ZinsenMatrix [43] = new Zinsen("3","3","1.80","");
*/
Modellrechner = function(){
}
/**
* Funktion die beim Initialisieren aufgerufen wird.
* @params {rechner_inputs} ein array von allen inputfeldern die eingelesen werden sollen
**/
Modellrechner.init = function(rechner_inputs){
this.inputs = rechner_inputs;
/*for(var i in rechner_inputs)
{
try{
for(var x in document.getElementsByName(rechner_inputs[i])){
document.getElementsByName(rechner_inputs[i])[x].checked = false;
}
}catch(e){;}
}*/
document.getElementsByName("anlage")[0].checked = true;
document.getElementsByName("frist")[0].checked = true;
document.getElementsByName("geld_anlage")[0].value = "5000";
document.getElementsByName("anlage_zeiteinheit")[0].checked = true;
$("anlagesub").style.display = "none";
this.Eingabewerte = new Object();
this.GuteVariante = new Array();
this.SchlechtereVariante = new Array();
this.GuteDauer = new Array();
this.SchlechtereDauer = new Array();
this.GuteZinsen = new Array();
}
/**
* Wir aufgerufen wenn auf den Buttom gedrückt wurde.
**/
Modellrechner.submit = function(){
this.Ausgabe("");
Modellrechner.read();
}
/**
* Durchsucht das array Dauer
**/
Modellrechner.SearchDauer = function(){
var min = 0;
var max = 0;
this.GuteDauer = new Array();
for(var i = 0; i < DauerMatrix.length;i++)
{
min = parseInt(DauerMatrix[i].anlagemindestdauer);
max = parseInt(DauerMatrix[i].anlagemaximaldauer);
if(min <= this.Dauer && this.Dauer <= max)
{
this.GuteDauer.push(DauerMatrix[i].dauerid);
}
else if((min <= Math.ceil(this.Dauer*0.5) && Math.ceil(this.Dauer*0.5) <= max) || (min <= this.Dauer*2 && this.Dauer*2 <= max))
{
this.SchlechtereDauer.push(DauerMatrix[i].dauerid);
}
}
}
Modellrechner.SearchArray = function(id,array){
var response = false;
for(var j = 0; j < array.length;j++)
{
if(array[j] == id)
{
response = id;
break;
}
}
return response;
}
Modellrechner.SearchZinsen = function(){
var variantenid="";
var dauerid="";
this.GuteZinsen = new Array();
for(var i = 0; i < ZinsenMatrix.length;i++)
{
dauerid=ZinsenMatrix[i].dauerid;
variantenid=ZinsenMatrix[i].variantenid;
dauer_search = Modellrechner.SearchArray(dauerid,this.GuteDauer);
varianten_search = Modellrechner.SearchArray(variantenid,this.GuteVariante);
if( dauer_search != false && varianten_search != false)
{
this.GuteZinsen.push(i);
}
}
}
Modellrechner.SearchSparvariante = function(){
var search_anlage;
Modellrechner.GuteVariante = new Array();
for(var i = 0; i < SparvarianteMatrix.length;i++)
{
//parseInt(SparvarianteMatrix[i].mindestanlagebeitrag);
search_anlage = SparvarianteMatrix[i].anlage.search(this.Anlage);
if(this.Anlage == SparvarianteMatrix[i].anlage || search_anlage != -1)
{
if(this.MindestAnlageBeitrag >= parseInt(SparvarianteMatrix[i].mindestanlagebeitrag))
{
Modellrechner.GuteVariante.push(SparvarianteMatrix[i].variantenid);
}
else
{
Modellrechner.SchlechtereVariante.push(SparvarianteMatrix[i].variantenid);
}
}
}
}
Modellrechner.Ausgabe = function(ausgabe){
$("ausgabe").style.display = "block";
$("ausgabe").innerHTML = ausgabe;
}
/**
* Rundet einen Zahl kaufmännisch auf 2 Stellen hinterm Komma
* Kriegt eine komma-Zahl übergeben, und gibt einen String mit der gerundeten Zahl wieder
**/
Modellrechner.runde = function(x) {
var k = (Math.round(x * 100) / 100).toString();
k += (k.indexOf('.') == -1)? '.00' : '00';
return k.substring(0, k.indexOf('.') + 3);
}
/*
Modellrechner.datum = function(monate){
var datum = new Date();
monate
var milli = datum.getMilliseconds()
return datum.toGMTString();
}*/
Modellrechner.Sparbetrag = function(){
var Jahreszinsen = function(zinsatz,kapital){ // Funktion die die Jahreszinsen ausrechnet und diese wiedergib, Parameter: Der Zinssatz und das zu verzinsende Kapital
var response = (kapital*zinsatz)/100;
return response;
}
var table_header = function(){ // Funktion die in die Ausgabe eine Tabelle Anfängt und 3 Spaltenüberschriften in diese schreibt;
if(Modellrechner.ausgabeprodukte.length == 0){
ausgabe += 'Leider keine passenden Produkte für ihre eingabe gefunden.
';
}
else
{
ausgabe += '';
ausgabe += 'Produkt Empfehlung | Mindestanlage in ? | ';
ausgabe += "Erwarteter Zinsertrag* | Vorteile/Details |
";
}
}
var table_foot = function(foot){
ausgabe += "";
ausgabe += foot;
ausgabe += "
";
ausgabe += "";
ausgabe += "** Der Zinssatz ist während der Laufzeit variabel und abhängig vom Marktzinssatz. Es wurde bei der Berechnung des Zinsertrages für die gesamte Laufzeit der aktuelle Zinssatz verwendet.";
ausgabe += "
";
}
this.sparleistung_regel = function(schrittweise,sparbetrag,zeitspanne){
var zinssatz = 0;
var variantenid = 0;
var Sparid = 0;
var bonusid = "";
this.ausgabeprodukte = new Array();
for(var i = 0;i < Modellrechner.GuteZinsen.length; i++)
{
var bonusbreak = false;
var jahreszinsen = 0;
var sparleistung = 0;
var zinsen = 0;
var temp_sparbetrag = sparbetrag*12/schrittweise;
zinssatz = parseFloat(ZinsenMatrix[parseInt(Modellrechner.GuteZinsen[i])].zinssatz);
variantenid = parseInt(ZinsenMatrix[parseInt(Modellrechner.GuteZinsen[i])].variantenid);
bonusid = ZinsenMatrix[parseInt(Modellrechner.GuteZinsen[i])].bonusid;
Sparid = parseInt(SparvarianteMatrix[variantenid].Sparid);
this.ausgabeprodukte[i] = new Object();
this.ausgabeprodukte[i]['name'] = SparenMatrix[Sparid].name;
this.ausgabeprodukte[i]['vorteile'] = SparenMatrix[Sparid].vorteile;
this.ausgabeprodukte[i]['link'] = SparenMatrix[Sparid].link;
this.ausgabeprodukte[i]['mindestanlage'] = SparvarianteMatrix[variantenid].mindestanlagebeitrag;
for(var k = schrittweise; k <= zeitspanne; k+=schrittweise)
{
zinsen = Jahreszinsen(zinssatz,temp_sparbetrag)/12*schrittweise;
zinsen = parseFloat(Modellrechner.runde(zinsen));
sparleistung += zinsen;
jahreszinsen += zinsen;
jahreszinsen = parseFloat(Modellrechner.runde(jahreszinsen));
if(bonusid != "" && typeof bonusid != "undefined")
{
eval(bonusid);
}
if((((k%12) == 0) || ((schrittweise == 1) && (k == schrittweise))) && (bonusbreak != true)) // Hier wird das Problem abgefangen dass es nicht Zinseszinsen auf Zinsen gibt die nur ein Teilzinsen der Zinsen eines Jahres sind.
{
temp_sparbetrag += jahreszinsen;
temp_sparbetrag += sparbetrag*12/schrittweise;
jahreszinsen = 0;
}
}
if(this.ausgabeprodukte[i]['sparleistung'] == "" || this.ausgabeprodukte[i]['sparleistung'] == 0 || typeof this.ausgabeprodukte[i]['sparleistung'] == "undefined"){ // Fall dass dieses Produkt schonmal mit Sparleistung drinnen steht
this.ausgabeprodukte[i]['sparleistung'] = sparleistung;
}
else{
if(this.ausgabeprodukte[i]['sparleistung'] < sparleistung)
{
this.ausgabeprodukte[i]['sparleistung'] = sparleistung;
}
}
}
}
this.sparleistung_einmalig = function(schrittweise,sparbetrag,zeitspanne){
var zinssatz = 0;
var variantenid = 0;
var Sparid = 0;
var bonusid ="";
this.ausgabeprodukte = new Array();
for(var i = 0;i < Modellrechner.GuteZinsen.length; i++)
{
var jahreszinsen = 0;
var sparleistung = 0;
var zinsen = 0;
var zinssatz = 0;
var temp_sparbetrag = sparbetrag;
zinssatz = parseFloat(ZinsenMatrix[parseInt(Modellrechner.GuteZinsen[i])].zinssatz);
variantenid = parseInt(ZinsenMatrix[parseInt(Modellrechner.GuteZinsen[i])].variantenid);
bonusid = ZinsenMatrix[parseInt(Modellrechner.GuteZinsen[i])].bonusid;
Sparid = parseInt(SparvarianteMatrix[variantenid].Sparid);
this.ausgabeprodukte[i] = new Object();
this.ausgabeprodukte[i]['name'] = SparenMatrix[Sparid].name;
this.ausgabeprodukte[i]['vorteile'] = SparenMatrix[Sparid].vorteile;
this.ausgabeprodukte[i]['link'] = SparenMatrix[Sparid].link;
this.ausgabeprodukte[i]['mindestanlage'] = SparvarianteMatrix[variantenid].mindestanlagebeitrag;
for(var k = schrittweise; k <= zeitspanne*schrittweise; k+=schrittweise)
{
zinsen = Jahreszinsen(zinssatz,temp_sparbetrag)/12*schrittweise;
zinsen = parseFloat(Modellrechner.runde(zinsen));
sparleistung += zinsen;
jahreszinsen += zinsen;
jahreszinsen = parseFloat(Modellrechner.runde(jahreszinsen));
if(bonusid != "" && typeof bonusid != "undefined")
{
eval(bonusid);
}
if((schrittweise == 12) || ((k%12) == 0) || ((schrittweise == 1) && (k == zeitspanne*schrittweise))) // Hier wird das Problem abgefangen dass es nicht Zinseszinsen auf Zinsen gibt die nur ein Teilzinsen der Zinsen eines Jahres sind.
{
temp_sparbetrag += jahreszinsen;
jahreszinsen = 0;
}
}
this.ausgabeprodukte[i]['sparleistung'] = sparleistung;
}
}
this.sort = function(produkte){
var min = 0;
var temp = new Object();
for(var u = 0; u < produkte.length; u++)
{
min = u;
for(var o = u; o < produkte.length; o++){
if ((parseFloat(produkte[o]['sparleistung'])*100) > (parseFloat(produkte[min]['sparleistung'])*100)){min=o;}
}
tmp = produkte[min];
produkte[min] = produkte[u];
produkte[u] = tmp;
}
return produkte;
}
this.produktdontexist = function(array,produktname){
var response = true;
for(var l = 0; l < array.length; l++){
if(array[l] == produktname){
response = false; break;
}
}
return response;
}
this.ausgabeprodukte = new Array();
var zeitspanne = parseInt(this.Dauer); // Wie lange man sparen möchte
var sparbetrag = parseInt(this.MindestAnlageBeitrag); // Soviel soll p. a. oder pro monat oder einmalig gespart werden
var ausgabe = ""; // Die endausgabe in TabellenForm
if(this.Anlage == "jahr") // Der das jedes Jahr Geld auf das Sparkonto eingezahlt wird
{
var jahre = 0;
if(zeitspanne%12 == 0){ // falls genau ein jahr
jahre = zeitspanne/12;
schrittweise = 12;
}
else{ // zb. 17 monate, hier wird auf die nächstniedrigere jahreszahl runtergekürzt
zeitspanne -= zeitspanne%12;
jahre = zeitspanne/12;
schrittweise = 1;
}
this.sparleistung_regel(schrittweise,sparbetrag,zeitspanne);
table_header();
var foot = "* Empfohlene Produkte mit Zinsertrag bei jährlicher Einzahlung von "+sparbetrag+"? für einen Zeitraum von "+jahre+" Jahren";
}
else if(this.Anlage == "monat") // Der Falll das jeden Monat Geld zum sparen zurück gelegt wird
{
schrittweise = 1;
this.sparleistung_regel(schrittweise,sparbetrag,zeitspanne);
table_header();
var foot ="* Empfohlene Produkte mit Zinsertrag bei monatlicher Einzahlung von "+sparbetrag+"? für einen Zeitraum von "+zeitspanne+" Monaten";
}
else // Der Fall einer einmaligen festanlage von einen batzen geld
{
var jahrmonat = "Monaten";
var schrittweise = 1;
if((zeitspanne>11) && ((zeitspanne%12) == 0)){ // Wenn die Zeitspanne genau ein oder mehrere Jahre enspricht
zeitspanne = zeitspanne/12;
jahrmonat = "Jahren";
schrittweise = 12;
}
this.sparleistung_einmalig(schrittweise,sparbetrag,zeitspanne);
table_header();
var foot = "* mit Zinsertrag bei einmaliger Einzahlung von "+sparbetrag+"? und einer Laufzeit von "+zeitspanne+" "+jahrmonat;
}
this.ausgabeprodukte = this.sort(this.ausgabeprodukte);
var doppelte_produkte = new Array();
for(var x = 0; x < this.ausgabeprodukte.length; x++)
{
if(this.produktdontexist(doppelte_produkte,this.ausgabeprodukte[x]['name']) == true){
doppelte_produkte.push(this.ausgabeprodukte[x]['name']);
if(x == 0){
ausgabe += "";
if(parseFloat(this.ausgabeprodukte[x]['sparleistung']) == 0){ this.Ausgabe("Bitte überprüfen Sie nochmals ihre Eingabe.
"); return;}
}
else if(x == (this.ausgabeprodukte.length-1)){
ausgabe += "
";
}
else{
ausgabe += "
";
}
ausgabe += ""+this.ausgabeprodukte[x]['name']+" | "+this.ausgabeprodukte[x]['mindestanlage']+"? | "+this.runde(this.ausgabeprodukte[x]['sparleistung'])+"? | "+this.ausgabeprodukte[x]['vorteile']+" | |
";
}
}
ausgabe +="
";
table_foot(foot);
this.Ausgabe(ausgabe);
}
Modellrechner.rechne = function(){
this.MindestAnlageBeitrag = Modellrechner.Eingabewerte["geld_anlage"];
//this.Dauer = parseInt(Modellrechner.Eingabewerte["zeitspanne"]);
var anlage = Modellrechner.Eingabewerte["anlage"];
var frist = Modellrechner.Eingabewerte["frist"];
var frist_zeiteinheit = Modellrechner.Eingabewerte["frist_zeiteinheit"];
if(anlage == "regel")
{
var anlage_zeiteinheit = Modellrechner.Eingabewerte["anlage_zeiteinheit"];
this.Anlage = anlage_zeiteinheit;
}
else
{
this.Anlage = anlage;
}
if(frist_zeiteinheit == "Monate")
{
this.Dauer = parseInt(frist);
}
else
{
this.Dauer = parseInt(frist)*12;
}
Modellrechner.SearchSparvariante();
Modellrechner.SearchDauer();
Modellrechner.SearchZinsen();
Modellrechner.Sparbetrag();
}
Modellrechner.read = function(){
var radio = function(input){
radiobuttons= document.getElementsByName(input);
var value = "";
for(var j=0;j 80){
window.clearInterval(Opacity.interval);
}
}
/**
* Fahr
* Parameter: Id: gibt die id des div elemnts and, welches "Fahren" soll, height: gibt an bis zu welcher hoehe das div fahren soll.
**/
Fahr = function(id,height){
try{
$(this.id).style.height = ""; // zur sicherheit wird die Standardhoehe des vorigen Fahrers entfernt
}catch(e){;}
window.clearInterval(this.interval); // zur sicherheit werden alle noch fahrenden Fahrer beendet
this.id = id;
this.i = 1;
this.height = height;
$(this.id).style.display = "block";
$(this.id).style.height = String(this.i)+"px";
this.interval = window.setInterval("Fahr.auf(this)",10);
}
Fahr.auf = function(Fahr){
Fahr.i += 25;
$(Fahr.id).style.height = String(Fahr.i)+"px";
if(Fahr.i > parseInt(Fahr.height)){
$(Fahr.id).style.height = "";
window.clearInterval(Fahr.interval);
}
}
/**
* Fahr
* Parameter: Id: gibt die id des div elemnts and, welches "Fahren" soll, height: gibt an bis zu welcher hoehe das div fahren soll. Doafter: eine Funktion hoeherer ordnung die ausgeführt wenn das driven fertig ist
**/
Drive = function(id,height,doafter){
try{
$(this.id).style.height = ""; // zur sicherheit wird die Standardhoehe des vorigen Fahrers entfernt
}catch(e){;}
window.clearInterval(this.interval); // zur sicherheit werden alle noch fahrenden Fahrer beendet
this.id = id;
this.i = height;
this.height = height;
this.doafter = doafter;
$(this.id).style.height = String(this.i)+"px";
this.interval = window.setInterval("Drive.zu(this)",10);
}
Drive.zu = function(Drive){
Drive.i -= 25;
$(Drive.id).style.height = String(Drive.i)+"px";
if(Drive.i < 5){
$(Drive.id).style.height = "";
$(Drive.id).style.display = "none";
window.clearInterval(Drive.interval);
eval(Drive.doafter);
}
}
Seitenfahr = function(id,width){
try{
$(this.id).style.width = ""; // zur sicherheit wird die Standardhoehe des vorigen Fahrers entfernt
}catch(e){;}
window.clearInterval(this.interval); // zur sicherheit werden alle noch fahrenden Fahrer beendet
this.id = id;
this.i = 1;
this.width = width;
$(this.id).style.display = "block";
$(this.id).style.width = String(this.i)+"px";
this.interval = window.setInterval("Seitenfahr.auf(this)",10);
}
Seitenfahr.auf = function(Seitenfahr){
Seitenfahr.i += 3;
$(Seitenfahr.id).style.width = String(Seitenfahr.i)+"px";
if(Seitenfahr.i > parseInt(Seitenfahr.width)){
$(Seitenfahr.id).style.width = "";
window.clearInterval(Seitenfahr.interval);
}
}
function Fahren(fahrid, pixel, schrittweise,richtung,geschwindigkeit,doafterthis,manuell){
clearIt(fahrid);
// Hier wird eine neue Instanz des zu Fahrenden Elementes Erzeugt
eval("this."+fahrid+" = new Fahren_Instanz(fahrid, pixel, schrittweise,richtung,geschwindigkeit,doafterthis,manuell);");
var richtung = eval("this."+fahrid+".richtung");
var funktion = "this."+fahrid+"."+richtung;
try{
// Hier wird sichergestellt das die Funktion die "fährt" immer wieder aufgerufen wird
eval(fahrid+'.interval = window.setInterval("try{eval('+funktion+');}catch (e){;}",'+geschwindigkeit+');');
}catch(e) {;}
}
// Funktion die alle laufenden Instanzen des jeweiligen Block Elements anhält
function clearIt(id){
try{
eval('window.clearInterval('+id+'.interval)');
}catch (e){;}
}
/**
* Eine Funktion die den Inhalt eines Blockelemnts langsam auf und Zufahren lässt
* @params : {fahrid} :Die id des Blockelements, welches Auf- bzw zfahren soll
* @params : {pixel} :Die Anzahl der Pixel die das Element fahren soll
* @params : {schrittweise} :Die Schrittweise in Pixel die solch ein Element pro Aufruf fahren soll
* @params : {richtung} : Kann "horizontal" oder "vertikal" sein
* @params : {geschwindigkeit| : Geschwindikeit in Millisekunden pro schritt
* @params(optional) : {doafter} : code der durch eval nach abschluss der wiederaufrufe ausgeführt wird
* @params(optional) : {manuell} : Kann "open" oder "close" erhalten.
**/
function Fahren_Instanz(fahrid, pixel, schrittweise, richtung ,geschwindigkeit, doafterthis, manuell){
// Eine Funktion die den ÜbergebenenString als Javascript-Code ausführt
this.doafter = function(dothis){
try{
eval(dothis);
}catch(e){;}
}
// Funktion die, die passende funktion die für die benötigte Richtung zurückgibt
this.welche_richtung = function(richtung,pixel){
if(richtung == "horizontal"){
this.width = pixel;
if(this.manuell == "" || (typeof this.manuell == "undefined")){
try{
// Liest die aktuelle Weite des Blockelementes aus
var weite = $(this.id).style.width;
}catch(e){;}
try{
// Entfernt die Maßeinheit
weite = Number(weite.replace(/px/g, ""));
}catch(e){;}
if(weite > 0){
this.i = pixel;
return "links()";
}
else
{
this.i = 0;
return "rechts()";
}
}
else if(this.manuell == "open")
{
this.i = 0;
return "rechts()";
}
else
{
this.i = pixel;
return "links()";
}
}
else if(richtung == "vertikal"){
this.height = pixel;
if(this.manuell == "" || (typeof this.manuell == "undefined")){
try{
// Liest die aktuelle hoehe des BlockElementes aus
var hoehe = $(this.id).style.height;
}catch(e){;}
try{
// Entfernt die Maßeinheit
hoehe = Number(hoehe.replace(/px/g, ""));
}catch(e){;}
if(hoehe > 0){
this.i = pixel;
return "oben()";
}
else{
this.i = 0;
return "unten()";
}
}
else if(this.manuell == "open")
{
var hoehe = $(this.id).style.height;
hoehe = Number(hoehe.replace(/px/g, ""));
this.i = hoehe;
return "unten()";
}
else
{
this.i = pixel;
return "oben()";
}
}
else // Bei jeder anderen Eingabe bricht das Programm ab
{
return false;
}
}
// Hier wird verhindert dass die selbe Instanz nochmals läuft
clearIt(this.id);
// Die Id des Blockelementes und Gleichzeitig der Name der Instanz
this.id = fahrid;
// Die Schrittweise gibt in Pixel an wie weit das Element pro Intervaaufrufe fahren soll, wenn sie kleiner null ist bricht das Programm ab
if(schrittweise <= 0) return false;
this.schrittweise = schrittweise;
this.manuell = manuell;
// Die Richtung gibt an ob das Element vertikal oder Diagonal fahren soll
this.doafterthis = doafterthis;
this.richtung = this.welche_richtung(richtung,pixel);
//this.interval = window.setInterval(String(this.id)+"."+this.richtung+"()",10);
}
// Funktion die das Element von unten nach Oben fahren lässt
Fahren_Instanz.prototype.oben = function(){
try{
this.i -= this.schrittweise;
}catch(e){;}
try{
$(this.id).style.height = String(this.i)+"px";
}catch(e){;}
try{
var i = this.i;
}catch(e){;}
// Die Abbruchbedingungen
if(i <= 0){
try{
$(this.id).style.height = "1px";
}catch(e){;}
try{
$(this.id).style.display = "none";
}catch(e){;}
clearIt(this.id);
try{
this.doafter(this.doafterthis);
}catch(e){;}
}
}
// Funktion die das Element nach untenFahren lässt
Fahren_Instanz.prototype.unten = function(){
this.i += this.schrittweise;
$(this.id).style.height = String(this.i)+"px";
var i = this.i;
try{
$(this.id).style.display = "block";
}catch(e){;}
var hoehe = this.height;
// Die Abbruchbedingungen
if(i >= hoehe){
try{
$(this.id).style.height = "";
}catch(e){;}
clearIt(this.id);
try{
this.doafter(this.doafterthis);
}catch(e){;}
}
}
// Funktion die das Element nach Links Fahren lässt
Fahren_Instanz.prototype.links = function(){
this.i -= this.schrittweise;
$(this.id).style.width = String(this.i)+"px";
var i = this.i;
// Die Abbruchbedingungen
if(i <= 0){
try{
$(this.id).style.width = "0px";
}catch(e){;}
clearIt(this.id);
try{
this.doafter(this.doafterthis);
}catch(e) {;}
}
}
// Funktion die das Element nach Rechts Fahren lässt
Fahren_Instanz.prototype.rechts = function(){
this.i += this.schrittweise;
$(this.id).style.width = String(this.i)+"px";
var i = this.i;
var weite = this.width;
// Die Abbruchbedingungen
if(i >= weite){
clearIt(this.id);
try{
this.doafter(this.doafterthis);
}catch(e) {;}
}
}
var divs = new Array();
var openedDivs = new Array();
function animatedDivToggle (level,divName, height, step, speed) {
//Close
if ((openedDivs[level]) && (openedDivs[level] != "")) {
Fahren(openedDivs[level],divs[level][openedDivs[level]]['height'],divs[level][openedDivs[level]]['steps'],'vertikal',divs[level][openedDivs[level]]['speed'],'','close');
/*for (var i = 0; i < level; i++) {
$(openedDivs[i]).style.height = divs[i][openedDivs[i]].height-(divs[level][openedDivs[level]].height)+"px";
divs[i][openedDivs[i]].height -= (divs[level][openedDivs[level]].height);
}*/
openedDivs[level] = "";
}
// OpenUP
if (arguments.length > 1) {
/*for (var i = 0; i < level; i++) {
animatedDivToggle(i,openedDivs[i], divs[i][openedDivs[i]].height+height, step, speed);
}*/
Fahren(divName,height,step,'vertikal',speed,'','open');
if (!divs[level]) {divs[level] = new Object();}
divs[level][divName] = {'height' : height, 'steps' : step, 'speed' : speed};
openedDivs[level] = divName;
}
}
/* Funktion zum definieren der Pflichtfelder im Response "Termin vereinbaren" */
function displayItem(ID) {
if (ID.value == "Telefon") {
document.getElementById("value"+ID.value).className = "block";
document.getElementById("valueEmail").className = "none";
}
else if (ID.value == "Email") {
document.getElementById("value"+ID.value).className = "block";
document.getElementById("valueTelefon").className = "none";
}
}