//kõik kalkulaatori vormid mis alustatakse lehel saavad endale koha kuhu andmeid salvestada
//hea mitme funktsiooni vahet info vahetuseks(nagu globaalne access siis)
var ercObjects = new Array();
var ercVat = 0.20;
var ercRv = new Array();
	ercRv[0] = 10;
	ercRv[1] = 10;
	ercRv[2] = 10;
	ercRv[3] = 5;
	ercRv[4] = 0;
	ercRv[5] = 0;

// preload image for thickbox
var imgLoader = new Image();


function ercRound(nr, x){
	var y = Math.pow(10, x);
	var ret = Math.round(nr * y) / y;
	ret = ret + '';
	
	var pos = ret.indexOf('.');
	
	if(pos == -1){
		ret += '.00';
	} else {
		var lenght = ret.length;
		var missing = lenght - pos - 1;
		missing = x - missing;
		for (i=0; i < missing; i++) {
			ret += '0';
		}
	}
	
	return  ret;
}

function ercAZ(nr){
	
	if(nr < 10){
		return '0' + nr;
	} else {
		return nr;
	}
	var y = Math.pow(10, x);
	var ret = Math.round(nr * y) / y;
	return  ret;
}

function ercGetObject(id){
	
	var obj = false;
	
	try {
		obj = document.getElementById(id);
	} catch(err) {
		ercErrorOccured('');
		return false;
	}
	
	return obj;
}


function ercErrorOccured(ecode){
	//alert('ERROR: ' + ecode);
}

/* modified by Viljar 28.06.2010 */
function calcToEuro(_n,_f) //:Number
{
	var _rate = 15.6466;
	var _r = _n*_rate;
	var _res = _r.toFixed(_f);
	return _res;
}


function str_replace(search, replace, subject, count) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Gabriel Paderni
    // +   improved by: Philip Peterson
    // +   improved by: Simon Willison (http://simonwillison.net)
    // +    revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +   bugfixed by: Anton Ongson
    // +      input by: Onno Marsman
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +    tweaked by: Onno Marsman
    // +      input by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   input by: Oleg Eremeev
    // +   improved by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Oleg Eremeev
    // %          note 1: The count parameter must be passed as a string in order
    // %          note 1:  to find a global variable in which the result will be given
    // *     example 1: str_replace(' ', '.', 'Kevin van Zonneveld');
    // *     returns 1: 'Kevin.van.Zonneveld'
    // *     example 2: str_replace(['[name]', 'l'], ['hello', 'm'], '[name}, lars');
    // *     returns 2: 'hemmo, mars'
 
    var i = 0, j = 0, temp = '', repl = '', sl = 0, fl = 0,
            f = [].concat(search),
            r = [].concat(replace),
            s = subject,
            ra = r instanceof Array, sa = s instanceof Array;
    s = [].concat(s);
    if (count) {
        this.window[count] = 0;
    }
 
    for (i=0, sl=s.length; i < sl; i++) {
        if (s[i] === '') {
            continue;
        }
        for (j=0, fl=f.length; j < fl; j++) {
            temp = s[i]+'';
            repl = ra ? (r[j] !== undefined ? r[j] : '') : r[0];
            s[i] = (temp).split(f[j]).join(repl);
            if (count && s[i] !== temp) {
                this.window[count] += (temp.length-s[i].length)/f[j].length;}
        }
    }
    return sa ? s : s[0];
}


function ercParseInt(input){
	var t = input.toString();
	t = str_replace(' ', '', t);
	t = parseInt(t);
	if(isNaN(t)){
		return 0;
	}
	
	return t;
}


function ercFNumber(input){
	var sep = ' ';
	var val = input.toString();
	var result = '';
	var len = val.length;
	var hasComma = val.indexOf(".");
	var commaNr = '';
	
	if(hasComma > -1){
		commaNr = val.substr(hasComma, (len - hasComma));
		val = val.substr(0, hasComma);
		len = val.length;
	}

	
	
	
	while (len > 3){
		result = sep + val.substr(len-3, 3) + result;
		len -=3;
	}
	
	var out = val.substr(0, len) + result;
	
	out = out + commaNr;
	
	return out;
}

function ercCreate(formid){
	ercObjects[formid] = new Array();
	ercObjects[formid]['resultDetailDone'] = false;
}


function ercResidualValueChanged(formid){
	var rv = ercRv;
	
	try {
		//get residual value
		var objResidualValue = ercGetObject(formid + '_residual_value');
		var intResidualValue = rv[objResidualValue.value];
		
		//show it
		var objValDiv = ercGetObject(formid + '_residual_value_show');
		objValDiv.innerHTML = intResidualValue + '%';
		
		ercCalculate(formid);
	} catch(err) {
		ercErrorOccured('');
	}
	
}



function ercCalculate(formid){
	
	ercObjects[formid]['resultDetailDone'] = false;
	var monthlyPaymentCapitalRent = 0;
	var monthlyPaymentUseRent = 0;
	
	
	//get input data
	try {
		//get residual value
		var rv = ercRv;
		var objResidualValue = ercParseInt(ercGetObject(formid + '_residual_value').value);
		var inp_residualValue = rv[objResidualValue];
		
		var inp_sum = ercParseInt(ercGetObject(formid + '_sum').value);
		var inp_downpayment = ercParseInt(ercGetObject(formid + '_downpayment').value);
		var inp_downpayment_out = inp_downpayment;
		var inp_downpayment_type = ercParseInt(ercGetObject(formid + '_downpayment_type').value);
		var inp_period = ercParseInt(ercGetObject(formid + '_period').value);
		var inp_interest = ercGetObject(formid + '_interest').value;
		inp_interest = inp_interest.toString().replace(',', '.');
	} catch(err) {
		ercErrorOccured(err.description + ' -> ' + err.message);
		return false;
	}
	
	//pre calculations
	var sumWithoutVat = inp_sum / (1 + ercVat);
	var residualValueInCash = sumWithoutVat * (inp_residualValue / 100);
	var downPaymentInCashWithoutVat = 0;
	var inp_interestPercent = inp_interest / 100;
	
	if(inp_downpayment_type == 1){
		downPaymentInCashWithoutVat = inp_downpayment / (1 + ercVat);
		downPaymentInCashWithVat = inp_downpayment;
	} else {
		var temp1 = inp_downpayment;
		if(inp_downpayment > 100){
			var temp1 = 100;
		} else if(inp_downpayment < 0){
			var temp1 = 0;
		}
		
		downPaymentInCashWithoutVat = (temp1 / 100) * sumWithoutVat;
		downPaymentInCashWithVat = (temp1 / 100) * inp_sum;
	}
	
	var interestVat = (inp_interest / (1 + ercVat)) / 100; // C4
	var interestVat12 = interestVat / 12; // C5
	var D1 = inp_interest * (1 / (1+((ercVat * 100)/100)) );
	var D3 = sumWithoutVat * (1 + ercVat);
	var D6 = (residualValueInCash / sumWithoutVat) * 100;
	var D9 = downPaymentInCashWithoutVat * (1 + ercVat);
	var arrDataUse = new Array();
	var year = 1;
	var ycnt = 0;
	
	for(var i = 1; i <= inp_period; i++){
	
		ycnt++;
		if(ycnt > 11){
			year++;
			ycnt = 0;
		}
		
		var arrData = new Array();
		arrData['year'] = year;
		
		var aa = (D1 / 100 / 12);
		var bb = (D3 - D9) - ( (D3 * D6 / 100 ) / Math.pow( ( D1 / 100 / 12 ) + 1, inp_period ) );
		var cc = 1 - ( 1 / Math.pow( ( D1 / 100 / 12 ) + 1, inp_period ) );
		arrData['F'] = aa * bb / cc;
		monthlyPaymentUseRent = arrData['F'];
		
		if(i == 1){
			arrData['B'] = sumWithoutVat - downPaymentInCashWithoutVat;
			arrData['D'] = arrData['B'] * (inp_interestPercent / 12);
			arrData['C'] = (arrData['F'] - arrData['D']) / (1 + ercVat);
		} else {
			arrData['B'] = arrDataUse[(i - 1)]['B'] - arrDataUse[(i - 1)]['C'];
			arrData['D'] = arrData['B'] * (inp_interestPercent / 12);
			arrData['C'] = (arrData['F'] - arrData['D']) / (1 + ercVat);
		}
		
		arrData['E'] = arrData['F'] - arrData['D'] - arrData['C'];

		arrDataUse[i] = arrData;
		
	}
	
	ercObjects[formid]['usedata'] = arrDataUse;
	
	// CAPITAL RENT //
	var residualValueSumWithVat = 0;
	if(inp_residualValue > 0){
		var residualValueSumWithVat = (inp_residualValue / 100) * inp_sum;
	} 
	var arrDataCapital = new Array();
	var year = 1;
	var ycnt = 0;
	var D3 = sumWithoutVat * (1 + ercVat);
	var G9 = downPaymentInCashWithoutVat * (1 + ercVat);
	var G7 = 0; 
	var E7 = 0;
	var F3 = sumWithoutVat - E7;
	var F4 = F3 - downPaymentInCashWithoutVat;
	
	for(var i = 1; i <= inp_period; i++){
	
		ycnt++;
		if(ycnt > 11){
			year++;
			ycnt = 0;
		}
		
		var arrData = new Array();
		arrData['year'] = year;
		
		var bb = (D3 - G9)- ((D3 * G7 / 100)/(Math.pow((inp_interestPercent / 12) + 1, inp_period)));
		var cc = 1- (1 / Math.pow((inp_interestPercent/12) + 1, inp_period) );
		arrData['E'] = (inp_interestPercent / 12) * bb / cc;
		monthlyPaymentCapitalRent = arrData['E'];
		
		
		if(i == 1){
			arrData['B'] = (F4 + E7) * (1 + ercVat);
		} else {
			arrData['B'] = arrDataCapital[(i - 1)]['B'] - arrDataCapital[(i - 1)]['C'];
		}
		
		arrData['D'] = arrData['B'] * inp_interestPercent / 12;
		arrData['C'] = arrData['E'] - arrData['D'];
		
		arrDataCapital[i] = arrData;
		

	}
	
	
	ercObjects[formid]['capitaldata'] = arrDataCapital;
	
	
	//and input data data
	var data = new Array();
	data['downPaymentInCashWithoutVat'] = downPaymentInCashWithoutVat;
	data['downPaymentInCashWithVat'] = downPaymentInCashWithVat;
	data['sumWithoutVat'] = sumWithoutVat;
	data['inp_interest'] = inp_interest;
	data['inp_residualValue'] = inp_residualValue;
	data['residualValueSumWithVat'] = residualValueSumWithVat;
	data['inp_sum'] = inp_sum;
	data['inp_period'] = inp_period;
	data['inp_downpayment_out'] = inp_downpayment_out;
	data['inp_downpayment_type'] = inp_downpayment_type;
	data['inp_downpayment'] = inp_downpayment;
	
	data['monthlyPaymentUseRent'] = monthlyPaymentUseRent;
	data['monthlyPaymentCapitalRent'] = monthlyPaymentCapitalRent;
	
	ercObjects[formid]['data'] = data;
	
}


function ercShowResult(formid){
	ercCalculate(formid);
	
	var objC = ercGetObject(formid + '_capitalrent');
	objC.innerHTML = ercFNumber(ercRound(ercObjects[formid]['data']['monthlyPaymentCapitalRent'], 2));
	
	var objC = ercGetObject(formid + '_userent');
	objC.innerHTML = ercFNumber(ercRound(ercObjects[formid]['data']['monthlyPaymentUseRent'], 2));
	
	// euro
	var _objC = ercGetObject(formid + '_capitalrent_eur');
	var _capRentInEur = calcToEuro(ercFNumber(ercRound(ercObjects[formid]['data']['monthlyPaymentCapitalRent'], 2)), 2);
	_objC.innerHTML = _capRentInEur;
	
	var _objC = ercGetObject(formid + '_userent_eur');
	var _useRentInEur = calcToEuro(ercFNumber(ercRound(ercObjects[formid]['data']['monthlyPaymentUseRent'], 2)), 2);
	_objC.innerHTML = _useRentInEur;
	
	document.getElementById('tables').style.display = 'block';
	
	/*var objR = ercGetObject(formid + '_result');
	objR.style.display = 'inline';*/
}




function ercShowDetail(formid, wich){
	
	ercObjects[formid]['resultDetailDone'] = false;
	//and put result HTML into hidden div
	try {
		var strResult = '';
		if(wich == 'userent'){
			strResult = ercCreateUseRentHtml(formid);
		} else if(wich == 'capitalrent'){
			strResult = ercCreateCapitalRentHtml(formid)
		}
		
		/* show layer */
		 //$("#div_leasing_results").openPopup({closeClass:'bClose', zIndex: 2, opacity:0.75, modalColor: bgColor });
		 $("#div_leasing_results").bPopup({closeClass:'bClose', zIndex: 2, opacity:0.75, modalColor: bgColor });
		 offerLayerCorners();
		
		document.getElementById(formid + '_detailresult').innerHTML = strResult;
		//document.getElementById('calclayer').innerHTML = strResult;
		ercObjects[formid]['resultDetailDone'] = true;
	} catch(err) {
		ercErrorOccured(err.description + ' -> ' + err.message);
	}
	
	
	/*if(ercObjects[formid]['resultDetailDone']){
			
		//use thickbox at moment
		var t = null;
		var a = "#TB_inline?height=400&width=700&inlineId=" + formid + '_detailresult';
		var g = false;
		
		tb_show(t,a,g);
		return false;
	
	}*/
	
}






function ercCreateCapitalRentHtml(formid){
	var str = '';
	
	//get header
	var objH = ercGetObject(formid + '_capital_header');
	var d = ercObjects[formid]['data'];
	
	var extreaPercentString = '';
	if(d['inp_downpayment_type'] == 0){
		extreaPercentString = d['inp_downpayment_out'] + '% / ';
	}
	
	str =  str_replace(
		[
			'[downPaymentPercent]', 
			'[inp_interest]', 
			'[inp_period]', 
			'[inp_sum_eur]',
			'[inp_sum]',
			'[sumWithoutVat]',
			'[sumWithoutVat_eur]', 
			'[downPaymentInCashWithoutVat_eur]',
			'[downPaymentInCashWithoutVat]',
			'[downPaymentInCashWithVat_eur]',
			'[downPaymentInCashWithVat]'
		], [
			extreaPercentString,
			d['inp_interest'],
			d['inp_period'],
			ercFNumber( ercRound(d['inp_sum'], 2)),
			calcToEuro(d['inp_sum'],2),
			ercFNumber( ercRound(d['sumWithoutVat'], 2)),
			calcToEuro(d['sumWithoutVat'],2),
			ercFNumber( ercRound(d['downPaymentInCashWithoutVat'], 2)),
			calcToEuro(d['downPaymentInCashWithoutVat'],2),
			ercFNumber( ercRound(d['downPaymentInCashWithVat'], 2)),	
			calcToEuro(d['downPaymentInCashWithVat'],2)
		],
		objH.innerHTML);
	//get wrapper table
	var objTable = ercGetObject(formid + '_capital_table_ontents');
	var strTable= objTable.innerHTML;
	
	//get rows
	var period = ercObjects[formid]['data']['inp_period'];
	var objRow = ercGetObject(formid + '_capital_monthrow');
	var strRow = objRow.innerHTML;
	var tableContents = '';
	
	var objFRow = ercGetObject(formid + '_capital_firstrow');
	tableContents = objFRow.innerHTML;
	
	var sumData = new Array();
	sumData['B'] = 0;
	sumData['EURO_B'] = 0;
	sumData['C'] = 0;
	sumData['EURO_C'] = 0;
	sumData['D'] = 0;
	sumData['EURO_D'] = 0;
	sumData['E'] = 0;
	sumData['EURO_E'] = 0;
	var cnt = 1;
	var year = 1;
	var sumYData = new Array();
	sumYData['C'] = 0;
	sumYData['EURO_C'] = 0;
	sumYData['D'] = 0;
	sumYData['EURO_D'] = 0;
	sumYData['E'] = 0;
	sumYData['EURO_E'] = 0;
	
	var myDate = new Date();
	
	myDate.setDate(22);
	

	
	for(var i = 1; i <= period; i++){
		cnt++;
		
		myDate.setMonth(myDate.getMonth() + 1);
		var strDate = ercAZ(myDate.getDate()) + '.' + ercAZ(myDate.getMonth() + 1) + '.' + myDate.getFullYear();
		var d = ercObjects[formid]['capitaldata'][i];
		tableContents +=  str_replace(
			[
				'[date]', 
				'[B]', 
				'[EURO_B]', 
				'[C]', 
				'[EURO_C]', 
				'[D]', 
				'[EURO_D]', 
				'[E]',
				'[EURO_E]'
			], [
				strDate,
				calcToEuro(d['B'], 2),
				ercFNumber( ercRound(d['B'], 2)),
				calcToEuro(d['C'], 2),
				ercFNumber( ercRound(d['C'], 2)),
				calcToEuro(d['D'], 2),
				ercFNumber( ercRound(d['D'], 2)),
				calcToEuro(d['E'], 2),
				ercFNumber( ercRound(d['E'], 2))
			],
			strRow
		);
		

		sumYData['C'] += d['C'];
		sumYData['EURO_C'] += calcToEuro(d['C'], 2);
		sumYData['D'] += d['D'];
		sumYData['EURO_D'] += calcToEuro(d['D'], 2);
		sumYData['E'] += d['E'];
		sumYData['EURO_E'] += calcToEuro(d['E'], 2);
		
		/*
		at moment not needed
		if(cnt > 12){
			//year row
			var objFRow = ercGetObject(formid + '_capital_yearrow');
				tableContents +=  str_replace(
					[
						'[year]', 
						'[C]', 
						'[D]', 
						'[E]'
					], [
						year,
						ercFNumber( ercRound(sumYData['C'], 2)),
						ercFNumber( ercRound(sumYData['D'], 2)),
						ercFNumber( ercRound(sumYData['E'], 2))
					],
					objFRow.innerHTML
				);
			year++;
			sumYData['C'] = 0;sumYData['D'] = 0;sumYData['E'] = 0;
			cnt = 1;
		}
		*/
		
		sumData['B'] += d['B'];
		sumData['EURO_B'] += calcToEuro(d['B'], 2);
		sumData['C'] += d['C'];
		sumData['EURO_C'] += calcToEuro(d['C'], 2);
		sumData['D'] += d['D'];
		sumData['EURO_D'] += calcToEuro(d['D'], 2);
		sumData['E'] += d['E'];
		sumData['EURO_E'] += calcToEuro(d['E'], 2);
		
	}
	
		myDate.setMonth(myDate.getMonth() + 1);
	//lastrow
	var objFRow = ercGetObject(formid + '_capital_lastrow');
		tableContents +=  str_replace(
			[
				'[B]', 
				'[EURO_B]', 
				'[C]', 
				'[EURO_C]', 
				'[D]', 
				'[EURO_D]', 
				'[E]',
				'[EURO_E]'
			], [
				
				calcToEuro(sumData['B'], 2),
				ercFNumber( ercRound(sumData['B'], 2)),
				calcToEuro(sumData['C'], 2),
				ercFNumber( ercRound(sumData['C'], 2)),
				calcToEuro(sumData['D'], 2),
				ercFNumber( ercRound(sumData['D'], 2)),
				calcToEuro(sumData['E'], 2),
				ercFNumber( ercRound(sumData['E'], 2))
			],
			objFRow.innerHTML
		);
		
	//and insert into wrapping
	str += str_replace('[contents]', tableContents, strTable);
	
	//add footer
	var objF = ercGetObject(formid + '_capital_footer');
	str += objF.innerHTML;
	
	
	return str;
}

function ercCreateUseRentHtml(formid){
	var str = '';
	
	//get header
	var objH = ercGetObject(formid + '_use_header');
	var d = ercObjects[formid]['data'];

	var extreaPercentString = '';
	if(d['inp_downpayment_type'] == 0){
		extreaPercentString = d['inp_downpayment_out'] + '% / ';
	}
	
	str =  str_replace(
		[
			'[downPaymentPercent]', 
			'[inp_interest]', 
			'[inp_period]', 
			'[inp_sum_eur]',
			'[inp_sum]',
			'[sumWithoutVat]',
			'[sumWithoutVat_eur]',
			'[downPaymentInCashWithoutVat_eur]',
			'[downPaymentInCashWithoutVat]',
			'[downPaymentInCashWithVat_eur]',
			'[downPaymentInCashWithVat]',
			/*'[inp_residualValue_eur]',*/
			'[inp_residualValue]',
			'[residualValueSumWithVat_eur]',
			'[residualValueSumWithVat]'
		], [
			extreaPercentString,
			d['inp_interest'],
			d['inp_period'],
			calcToEuro(d['inp_sum'], 2),
			ercFNumber( ercRound(d['inp_sum'], 2)),
			calcToEuro(d['sumWithoutVat'], 2),
			ercFNumber( ercRound(d['sumWithoutVat'], 2)),
			calcToEuro(d['downPaymentInCashWithoutVat'], 2),
			ercFNumber( ercRound(d['downPaymentInCashWithoutVat'], 2)),
			calcToEuro(d['downPaymentInCashWithVat'], 2),
			ercFNumber( ercRound(d['downPaymentInCashWithVat'], 2)),
			/*calcToEuro(d['inp_residualValue'], 2),*/
			ercFNumber( ercFNumber(d['inp_residualValue'])),
			calcToEuro(d['residualValueSumWithVat'], 2),
			ercFNumber( ercRound(d['residualValueSumWithVat'], 2)),
		],
		objH.innerHTML);
	
	//get wrapper table
	var objTable = ercGetObject(formid + '_use_table_ontents');
	var strTable= objTable.innerHTML;
	
	//get rows
	var period = ercObjects[formid]['data']['inp_period'];
	var objRow = ercGetObject(formid + '_use_monthrow');
	var strRow = objRow.innerHTML;
	var tableContents = '';
	
	var objFRow = ercGetObject(formid + '_use_firstrow');
	tableContents = objFRow.innerHTML;
	
	var sumData = new Array();
	sumData['B'] = 0;
	sumData['EURO_B'] = 0;
	sumData['C'] = 0;
	sumData['EURO_C'] = 0;
	sumData['D'] = 0;
	sumData['EURO_D'] = 0;
	sumData['E'] = 0;
	sumData['EURO_E'] = 0;
	sumData['F'] = 0;
	sumData['EURO_F'] = 0;
	var cnt = 1;
	var year = 1;
	var sumYData = new Array();
	sumYData['C'] = 0;
	sumYData['EURO_C'] = 0;
	sumYData['D'] = 0;
	sumYData['EURO_D'] = 0;
	sumYData['E'] = 0;
	sumYData['EURO_E'] = 0;
	sumYData['F'] = 0;
	sumYData['EURO_F'] = 0;
	
	var myDate = new Date();
	myDate.setDate(22);
	
	for(var i = 1; i <= period; i++){
		cnt++;
		

		myDate.setMonth(myDate.getMonth() + 1);
		var strDate = ercAZ(myDate.getDate()) + '.' + ercAZ(myDate.getMonth() + 1) + '.' + myDate.getFullYear();
		var d = ercObjects[formid]['usedata'][i];
		tableContents +=  str_replace(
			[
				'[date]', 
				'[B]', 
				'[EURO_B]', 
				'[C]', 
				'[EURO_C]', 
				'[D]', 
				'[EURO_D]', 
				'[E]',
				'[EURO_E]',
				'[F]',
				'[EURO_F]'
			], [
				strDate,
				calcToEuro(d['B'], 2),
				ercFNumber( ercRound(d['B'], 2)),
				calcToEuro(d['C'], 2),
				ercFNumber( ercRound(d['C'], 2)),
				calcToEuro(d['D'], 2),
				ercFNumber( ercRound(d['D'], 2)),
				calcToEuro(d['E'], 2),
				ercFNumber( ercRound(d['E'], 2)),
				calcToEuro(d['F'],2),
				ercFNumber( ercRound(d['F'], 2))
			],
			strRow
		);
		

		sumYData['C'] += d['C'];
		sumYData['EURO_C'] += calcToEuro(d['C'], 2);
		sumYData['D'] += d['D'];
		sumYData['EURO_D'] += calcToEuro(d['D'], 2);
		sumYData['E'] += d['E'];
		sumYData['EURO_E'] += calcToEuro(d['E'], 2);
		sumYData['F'] += d['F'];
		sumYData['EURO_F'] += calcToEuro(d['F'],2);
		
		/*
		at moment not needed
		if(cnt > 12){
			//year row
			var objFRow = ercGetObject(formid + '_use_yearrow');
				tableContents +=  str_replace(
					[
						'[year}', 
						'[C}', 
						'[D}', 
						'[E}',
						'[F}'
					], [
						year,
						ercFNumber( ercRound(sumYData['C'], 2)),
						ercFNumber( ercRound(sumYData['D'], 2)),
						ercFNumber( ercRound(sumYData['E'], 2)),
						ercFNumber( ercRound(sumYData['F'], 2))
					],
					objFRow.innerHTML
				);
			year++;
			sumYData['C'] = 0;sumYData['D'] = 0;sumYData['E'] = 0;sumYData['Y'] = 0;
			cnt = 1;
		}
		*/
		
		sumData['B'] += d['B'];
		sumData['EURO_B'] += calcToEuro(d['B'], 2);
		sumData['C'] += d['C'];
		sumData['EURO_C'] += calcToEuro(d['C'], 2);
		sumData['D'] += d['D'];
		sumData['EURO_D'] += calcToEuro(d['D'], 2);
		sumData['E'] += d['E'];
		sumData['EURO_E'] += calcToEuro(d['E'], 2);
		sumData['F'] += d['F'];
		sumData['EURO_F'] += calcToEuro(d['F'],2);
	}
	myDate.setMonth(myDate.getMonth() + 1);
	//lastrow
	var objFRow = ercGetObject(formid + '_use_lastrow');
		tableContents +=  str_replace(
			[
				'[B]', 
				'[EURO_B]', 
				'[C]', 
				'[EURO_C]', 
				'[D]', 
				'[EURO_D]', 
				'[E]',
				'[EURO_E]',
				'[F]',
				'[EURO_F]'
			], [
				
				calcToEuro(sumData['B'], 2),
				ercFNumber( ercRound(sumData['B'], 2)),
				calcToEuro(sumData['C'], 2),
				ercFNumber( ercRound(sumData['C'], 2)),
				calcToEuro(sumData['D'], 2),
				ercFNumber( ercRound(sumData['D'], 2)),
				calcToEuro(sumData['E'], 2),
				ercFNumber( ercRound(sumData['E'], 2)),
				calcToEuro(sumData['F'],2),
				ercFNumber( ercRound(sumData['F'], 2))
			],
			objFRow.innerHTML
		);
		
	//and insert into wrapping
	str += str_replace('[contents]', tableContents, strTable);
	
	//add footer
	var objF = ercGetObject(formid + '_use_footer');
	str += objF.innerHTML;
	
	
	return str;
}

