// (c) 2008-2009 Werner Zauzig

//var svid='sb';

function SparbriefeDaten(csv){
	var i=0;
	this.ID=csv[i++];
	i++;this.aArt="Sparbriefe";//"S"
	this.name=str_replace("&"," & ",csv[i++]);
	this.zinszuLZ=new Array(0,0,0,0,0,0,0,0,0,0);
	for(var j=0;j<10;j++)
		this.zinszuLZ[j]=number_check(csv[i++],0);
	this.stck=number_check(csv[i++],0);
	this.bes=csv[i++];
	this.staffel=(this.bes.indexOf("Staffelzins")>=0);
	this.zinszahlung=csv[i++];
	this.mind=number_check(csv[i++],0);
	this.max=number_check(csv[i++]);
	this.es=csv[i++];
	this.einmGebuehr=number_check(csv[i++],0);
	this.mtlGebFormel=csv[i++].trim();
	this.produktname=csv[i++];
	this.fuer=csv[i++];
	this.urlid=csv[i++];

	//var anbtyp=csv[i++];
	//this.fuerAlle=(anbtyp.indexOf("0")>0?0:1);
	if(!this.einmGeb)this.einmGeb=0;
	this.mtlGeb=0;
	this.info="";

	this.zinszahlungOhneZinseszins=(this.zinszahlung.indexOf("ohne Zinseszins")>=0);
}

SparbriefeDaten.prototype.GetFormelErgebnis=function(formel,betrag,lzj,anz){
	if(formel==null||formel=="")return 0;
	function sel(){
		for(var i=0;i<sel.arguments.length-1;i+=2)
			if(sel.arguments[i])return sel.arguments[i+1];
		return (i<sel.arguments.length?sel.arguments[i]:"");
	}
	var f=str_replace(",",".",str_replace(".","",formel));
	f=str_replace(";",",",f);
	f=str_replace("#",betrag,f);
	f=str_replace("~",lzj,f);
	f=str_replace("^",lzj*12,f);
	f=str_replace("@",anz,f);
//alert("GetFormelErgebnis("+formel+","+betrag+","+lzj+","+anz+")="+f+"="+eval(f));
	return eval(f);
}

SparbriefeDaten.prototype.GetGebuehren=function(lzm){
	this.mtlGeb=this.GetFormelErgebnis(this.mtlGebFormel);
	if(this.mtlGeb<0)
		this.mtlGeb=0;
	if(this.einmGeb<=0)this.einmGeb=0;
	var geb=this.einmGeb+this.mtlGeb*lzm;
//alert("GetGebuehren("+lzm+"): einm="+this.einmGeb+" + mtl="+this.mtlGeb+"="+geb);
	return geb;
}

SparbriefeDaten.prototype.SetErgebnis=function(betrag,lzm){
	betrag=1*betrag;
	lzm=1*lzm;
	this.zins=this.endbetrag="\u00a0";
	if(this.fuer!=""){
		var s=str_replace("Privatpersonen","",str_replace("nur","",this.fuer)).trim();
//alert("this.info.charAt(1)="+this.info.charAt(1)+" this.info.substr(2)="+this.info.substr(2));
		if(s.charAt(0)==",")s=s.substr(1).trim();
		if(s!="")this.info="auch "+s;
	}
//alert("betrag="+betrag+": mind="+this.mind+" max="+this.max);
	if(betrag<this.mind){
		this.info="Anlage mind. "+number_format(this.mind,0)+"\u00a0€";
		return 0;
	}
	if(betrag>this.max && this.max>0){
		this.info="Anlage max. "+number_format(this.max,0)+"\u00a0€";
		return 0;
	}
	var lzj=lzm/12.0;
//alert("lzm="+lzm+": lzj="+lzj+" formel="+this.formel);
	var z;
	if(lzj<1 || lzj>10){
		this.info="kein Angebot für "+lzj+" Jahre Laufzeit";
		return 0;
	}
	if(this.staffel){
		var zf=lzj;
		//alert("Staffelzins: "+this.name+" zf="+zf);
		end=betrag;
		for(var j=1;j<=zf;j++){
			dz=this.zinszuLZ[j - 1];
			end*=pow(1.0+dz/(100.0), 1);
			//alert("ab "+j+": "+end+" z="+dz);
		}
		if(lzm>12)
			this.info+=(this.info?", ":"")+"Staffelzins";
		end-=this.getGebuehren(para);
		return this.endbetrag=end;
	}
//var xxx="";for(var j=0;j<10;j++)xxx+=" "+this.zinszuLZ[j];alert("zinszuLZ=("+xxx+") lzj="+lzj);
	z=this.zinszuLZ[lzj-1];
	if(z)this.zins=str_replace(".",",",z)+"\u00a0%";

//alert("betrag="+betrag+": z="+z+" ("+this.z+";"+this.z10+";"+this.z12+";"+this.z25+","+this.z50+";"+this.z100+";"+this.z200+"): zins="+this.zins);
	z=str_replace(",",".",z);
	if(z<=0){
		this.info="kein Angebot für "+lzj+" Jahre Laufzeit";
		return 0;
	}
	if(lzm<=0)return "";
	this.info=TesteEinlagensicherung(betrag,this.es,this.info);
	var zfak=1.0+z/100.0;
	var end=(this.zinszahlungOhneZinseszins
			?betrag*(1.0+lzj*z/100.0)
			:betrag*Math.pow(zfak,lzj));
	if(this.zinszahlungOhneZinseszins)this.info+=(this.info?", ":"")+this.zinszahlung;
//alert("lzj="+lzj+": zfak="+zfak+" end="+end);
	end-=this.GetGebuehren(lzm);
	//z=(pow(end/betrag,12.0/lzm)-1.0)*100.0;
	end=Math.round(end*100)/100.0;
//alert("z="+z+" lzm="+lzm+" lzj="+lzj+" zfak="+zfak+" end="+end);
	return this.endbetrag=end;
}

