var defOwnWin	= new Array(0,	128,	160,	180,	192,	195);
var def1Win		= new Array(0,	0,		0,		0,		0,		0);
var def2Win		= new Array(0,	32,		0,		0,		0,		0);
var def3Win		= new Array(0,	52,		20,		0,		0,		0);
var def4Win		= new Array(0,	64,		32,		12,		0,		0);
var def5Win		= new Array(0,	67,		35,		15,		3,		0);

function calcTele(){
	this.fId="1";
	this.clients=0;
	this.ownClients=0;
	this.range=1;
	this.level=0;
	this.childsNumber=0;
	this.arrChilds = new Array();
	this.arrWins = new Array();
	this.win=0;
	this.ownWin=0;

	this.getClients=function(){
		var i=0; childClients=0;fval="";
		if(this.childsNumber>0){
			for(i=0;i<this.childsNumber;i++){
				childClients=childClients + this.arrChilds[i].getClients();
			}
		}
		fval="0"+$$("l_"+this.fId).value;
		this.ownClients=parseInt(fval, 10);
		this.clients=this.ownClients+childClients;
		$$("t_"+this.fId).innerHTML=String(this.clients);
		this.setRange();
		this.ownWin=this.ownClients*defOwnWin[this.range];
		$$("w_"+this.fId).innerHTML="Eigene Provision: "+String(this.ownWin);
		return this.clients;
	};
	this.getWins=function(){
		var i=0; 
		if(this.childsNumber>0){
			for(i=0;i<this.childsNumber;i++){
				this.win=this.win + this.arrChilds[i].clients*this.arrWins[this.arrChilds[i].range];
				//this.arrChilds[i].getWins();
			}
			//$$("w_"+this.fId).innerHTML="Gesamt Provision: "+String(this.ownWin)+" + "+String(this.win) + " = " + String(this.ownWin+this.win);
			
			$$("wOwn_"+this.fId).innerHTML=String(number_format(this.ownWin, 2, ",", ".")) + " EUR";
			$$("wStr_"+this.fId).innerHTML=String(number_format(this.win, 2, ",", ".")) + " EUR";
			$$("w_"+this.fId).innerHTML=String(number_format(this.ownWin+this.win, 2, ",", ".")) + " EUR";
		}
		
	};


	this.setRange=function(){
		if(this.clients<500){
			this.range=1;
			this.rangeR="I";
			this.arrWins=def1Win;
		}else if((this.clients<1500)&&(this.clients>499)){
			this.range=2;
			this.rangeR="II";
			this.arrWins=def2Win;
		}else if((this.clients<2500)&&(this.clients>1499)){
			this.range=3;
			this.rangeR="III";
			this.arrWins=def3Win;
		}else if((this.clients<6250)&&(this.clients>2499)){
			this.range=4;
			this.rangeR="IV";
			this.arrWins=def4Win;
		}else if(this.clients>6250){
			this.range=5;
			this.rangeR="V";
			this.arrWins=def5Win;
		}
		$$("s_"+this.fId).innerHTML=String(this.rangeR);
		$$("gs_1").innerHTML=$$("s_1").innerHTML;
	};
	
	
	this.addChild=function(){
		this.childsNumber++;
		objPartner=new calcTele();
		objPartner.fId=this.fId+"_"+String(this.childsNumber);
		objPartner.level=this.level+1;
		this.arrChilds.push(objPartner);
	}

};

function $$(id) { 
  return document.getElementById(id); 
}


function calculate(){
	var struct=new calcTele();
	struct.addChild();
	struct.addChild();
	struct.addChild();
	struct.arrChilds[0].addChild();
	struct.arrChilds[0].addChild();
	struct.arrChilds[0].addChild();
	struct.arrChilds[1].addChild();
	struct.arrChilds[1].addChild();
	struct.arrChilds[1].addChild();
	struct.arrChilds[2].addChild();
	struct.arrChilds[2].addChild();
	struct.arrChilds[2].addChild();
	cl=struct.getClients();
	struct.getWins();
}



function number_format (zahl,decimal_num,dec_point,mill_sep) {
  var sign = '';
  if(zahl < 0) {sign = '-';}
  zahl = Math.abs(zahl);
  var divisor = 1;
  for(var i = 0; i < decimal_num; i++) {zahl *= 10; divisor *= 10;}
  zahl = Math.floor(zahl);
  var decimals= zahl % divisor;
  decimals = '' + decimals;
  for(var i = 0; i < decimal_num; i++) {zahl /= 10;}
  zahl = Math.floor(zahl);
  zahl = '' + zahl;
  zahl_grp = '';
  while(zahl.length > 3) {
    zahl_grp = mill_sep + zahl.substr(zahl.length-3,3) + zahl_grp;
    zahl = zahl.substr(0,zahl.length-3);
  }
  var str = zahl + zahl_grp;
  if(decimal_num > 0) {
    str = str + dec_point;
    while(decimals.length != decimal_num) {decimals= decimals+ '0';}
    str = str + decimals
  }
  return sign + str;
}