// JavaScript Document

//short calculator function

function shortcal(values)
{
	var values=document.getElementById(values);
	var betrag = values.betrag.value;
	var zins =1+(values.zins.value/100);
	var dauer =values.dauer.value;
	if(!isNaN(betrag)&&!isNaN(zins)&&!isNaN(dauer))
	{
	for(var i=0;i<dauer;i++)
	{
		betrag = betrag*zins
	}
	if( betrag < 1000000)
	{
	var resultat = toCurrency(Math.round(betrag))+".00 CHF";
	}
	else
	{
	var resultat = "zu gross";
	}
	}
	else
	{
	var resultat = 'keine zahl!';
	}
	document.getElementById('resultat').innerHTML=resultat;
}

//end short calculator function

//calculator functions

//global vars
var cCurrent = new Array();
var cStored = new Array();
var scale = 1;
var scale_x_array = [
				{dauer:8,div:0},
				{dauer:16,div:0},
				{dauer:24,div:0},
				{dauer:32,div:1},
				{dauer:40,div:1},
				{dauer:48,div:1},
				{dauer:56,div:3},
				{dauer:64,div:3},
				{dauer:72,div:3},
				{dauer:80,div:3},
				{dauer:88,div:3},
				{dauer:96,div:3}
				]

var scale_y_array = [{asset:1000,div:100},
				 {asset:3000,div:500},
				 {asset:9000,div:1000},
				 {asset:27000,div:5000},
				 {asset:81000,div:10000},
				 {asset:243000,div:20000},
				 {asset:729000,div:50000},
				 {asset:2187000,div:200000},
				 {asset:6561000,div:500000}
				 ]
var g;
//end global vars

function cEntrance(year, asset)
{
	this.year=year;
	this.asset=asset;
}
function cStore(anlage, dauer, zins)
{
	this.anlage=anlage;
	this.dauer=dauer;
	this.zins=zins;
	this.id=cStored.length;
}

function rad(radian)
{
	return (Math.PI/180)*radian;
}

function neg(value)
{
	return 0-value;
}

function toCurrency(invalue)
{
	var newValue = "";
	invalue += "";
	for(var z=0;z<invalue.length;z++)
	{
		newValue = invalue.substr(invalue.length-z-1,1) + newValue;
		if(z%3 == 2 && z != 0 && invalue.length-z-1 != 0)
		{
			newValue = "'"+newValue;
		}
	}
	return newValue;
}

function cDraw(form, ziel)
{
	//initialise data and check if correct
	var f = document.getElementById(form);
	var zins = f.zins.value;
	var anlage = f.anlage.value;
	var dauer = f.dauer.value;
	if(isNaN(zins)||isNaN(anlage)||isNaN(dauer))					//check if values are not numbers
	{
		alert (unescape("ihre angeben sind ung%FCltig%21 \npr%FCfen sie ob alle eingaben zahlen sind"));
	}
	
	else															//if values are numbers...
	{
	zins = Number(zins);
	anlage = Number(anlage);
	dauer = Number(dauer);
	zins=1+(zins/100);
	//end initialise data and check if correct
	
	
	//create object array
	var hold = anlage;
	
	for(var i=0;i<=dauer;i++)
	{
		cCurrent[i] = new cEntrance(i, hold);
		hold = hold*zins;
		
	}
	cCurrent.length = dauer+1; 					//clean cCurrent Array
	//end crate object array
	
	
	//get canvas dimensions
	var height=document.getElementById(ziel).height; 
	var width=document.getElementById(ziel).width;
	//end get canvas dimensions
	
	
	//eval scale factores
	for(var l=0; l<scale_x_array.length;l++)
	{
		if(scale_x_array[l].dauer>=cCurrent[cCurrent.length-1].year)
		{
			scale_x=(width-40)/scale_x_array[l].dauer;
			break;
		}
		else
		{
			scale_x=(width-40)/scale_x_array[scale_x_array.length-1].dauer;
		}
	}
	for(var k=0;k<scale_y_array.length;k++)
	{
		if(scale_y_array[k].asset>=cCurrent[cCurrent.length-1].asset)
		{
			scale_y=(height-20)/scale_y_array[k].asset;
			break;
		}
		else
		{
			scale_y=(height-20)/scale_y_array[scale_y_array.length-1].asset;
		}
	}	
	//end eval scale factores
	
	
	//canvas pre settings
	g = document.getElementById(ziel).getContext('2d');
	g.clearRect(-20,neg(-20),width+20, neg(height+20));
	g.strokeStyle="#ffffff";
	g.fillStyle="#ffffff";
	g.lineWidth=1;
	g.lineCap="round";
	g.lineJoin="round";
	//end canvas pre settings
	
	//draw v lines
	
	g.lineWidth=1;
	g.strokeStyle="#777777";
	g.globalCompositeOperation="lighter";
	g.fillStyle="#aaaaaa";
	g.font="11px sans-serif";
	g.textBaseline="bottom";
	for(var m1 = 0; m1<scale_x_array.length;m1++)
		{
			if(scale_x_array[m1].dauer>=dauer)
			{
				var year_multi = scale_x_array[m1].div;
				break;
			}
			else
			{
				var year_multi = scale_x_array[scale_x_array.length-1].div;
			}
		}
		
	for(var m=0;m*scale_x<=width-40;m++)
	{
		if(m!=0)
		{
		g.beginPath();
		g.moveTo(m*scale_x,0);
		g.lineTo(m*scale_x,neg(height-20));
		g.stroke();
		g.fillText(m+". j",m*scale_x,neg(height-15));
		}
		m+=year_multi;
	}
	
	//end draw v lines


	//draw h lines
	g.lineWidth=1;
	g.strokeStyle="#777777";
	g.fillStyle="#aaaaaa";
	g.globalCompositeOperation="lighter";
	g.font="11px sans-serif";
	g.textBaseline="bottom";
	
	for(var n1=0;n1<scale_y_array.length;n1++)
		{
			if(cCurrent[cCurrent.length-1].asset<=scale_y_array[n1].asset)
			{
				var asset_multi = scale_y_array[n1].div;
				break;
			}
			else
			{
				var asset_multi = scale_y_array[scale_y_array.length-1].div;
			}
		}
	for(var n=1;n*asset_multi*scale_y<=height-20;n++)
	{
		g.beginPath();
		g.moveTo(0,neg(n*asset_multi*scale_y));
		g.lineTo(width-40,neg(n*asset_multi*scale_y));
		g.stroke();
		g.fillText(toCurrency(n*asset_multi),2,neg(n*asset_multi*scale_y));
	}
	
	
	//end draw h lines
	
	
	//draw end lines
	g.strokeStyle="#b20d6b";
	g.lineWidth=2;
	g.globalCompositeOperation="source-over";
	g.fillStyle="#ffffff";
	g.font="14px sans-serif";
	g.textBaseline="bottom";
	g.beginPath();
	
	g.moveTo(0,neg(cCurrent[cCurrent.length-1].asset*scale_y));					//draw h line
	g.lineTo(width-40,neg(cCurrent[cCurrent.length-1].asset*scale_y));
	
	g.moveTo(cCurrent[cCurrent.length-1].year*scale_x,0);					// draw v line
	g.lineTo(cCurrent[cCurrent.length-1].year*scale_x,neg(height-20));
	
	g.stroke();
	
	g.fillText(toCurrency(Math.round(cCurrent[cCurrent.length-1].asset))+".00 CHF nach "+cCurrent[cCurrent.length-1].year+" jahren", cCurrent[cCurrent.length-1].year*scale_x-240, neg(cCurrent[cCurrent.length-1].asset*scale_y+5));
	//end draw end lines
	
	
	//draw money line
	g.strokeStyle="#ffffff";
	g.lineWidth=3;
	g.globalCompositeOperation="source-over";
	g.beginPath();
	g.moveTo(cCurrent[0].year*scale_x, neg(cCurrent[0].asset*scale_y));
	for(var j=1;j < cCurrent.length;j++)
	{
		g.lineTo(cCurrent[j].year*scale_x, neg(cCurrent[j].asset*scale_y));
	}
	g.stroke();
	//end draw money line
	
	
	//draw dots
	g.globalCompositeOperation="source-over";
	g.fillStyle="#ffffff";
	g.beginPath();
	
	for(var j=0;j < cCurrent.length;j++)
	{
		g.moveTo(cCurrent[j].year*scale_x, neg(cCurrent[j].asset*scale_y));
		g.arc(cCurrent[j].year*scale_x, neg(cCurrent[j].asset*scale_y), 5, rad(0) ,rad(360) ,false);
	}
	g.fill();
	//end draw dots

	}											//close else numbers
}												//close function	


//end calculator functions






//begin cms mietobjekt functions
var img_num = 2;
function cms_add_img()
{
	var tbl = document.getElementById('mbImage').getElementsByTagName('table')[0];
	document.getElementById('mbImage').style.overflowY="auto";
	var insRow = tbl.rows.length-1;
	var row = tbl.insertRow(insRow);
	
	//first cell
	var cellzero = row.insertCell(0);
	cellzero.valign = 'top';
	cellzero.align = 'right';
	cellzero.innerHTML = "bild"+img_num+": ";
	
	//second cell
	var cellone = row.insertCell(1);
	cellone.valign = 'top';
	var img_input = document.createElement('input');
	img_input.type="file";
	img_input.name="images[]";
	img_input.style.width="174px";
	cellone.appendChild(img_input);
	
	img_num++;
}

function cms_edit_mietobjekt(self)
{
	document.getElementById('mbImage').style.overflowY='auto';
	var br = document.createElement('br');
	var input = document.createElement('input');
	input.name='images[]';
	input.type='file';
	input.style.width='auto';
	self.getParent().appendChild(br);
	self.getParent().appendChild(input);
}




//end cms mietobkelt functions
