/*
	Rental Return Calculator code
	Author Whale Informatics - info@whale-informatics.com
*/

// strip separator from floatstring
function stripFloatString(fltstr) {
	fltstr=fltstr.replace(',','').replace(' ','');
	return fltstr;
}

// calcs rental return based upon input fields
function calc_return() {
	
	// parse and display input values
	var prop_value=parseFloat(stripFloatString(document.form.prop_value.value));
	document.form.prop_value.value=formatNumber(prop_value,"### ### ##0");
	
	var rent=parseFloat(stripFloatString(document.form.rent.value));
	document.form.rent.value=formatNumber(rent,"### ##0");
	
	var rental_return=(rent*52)/prop_value*100;
	
	writeInner('rental_return',formatNumber(rental_return,"#0.0")+' %');
	
	// hide recalc button
	setVisible('calc_button',false);
	
	// process recommendations
	
	if (rental_return<5) {
		document.getElementById('result_nogo').style.display='block';
		document.getElementById('result_longterm').style.display='none';
		document.getElementById('result_go').style.display='none';
	}
	if (rental_return>=5 && rental_return<6) {
		document.getElementById('result_nogo').style.display='none';
		document.getElementById('result_longterm').style.display='block';
		document.getElementById('result_go').style.display='none';
	}
	if (rental_return>=6) {
		document.getElementById('result_nogo').style.display='none';
		document.getElementById('result_longterm').style.display='none';
		document.getElementById('result_go').style.display='block';
	}
}

function changeValue(field,value) {
	var old_value=parseFloat(stripFloatString(document.form[field].value));
	document.form[field].value=formatNumber(old_value+value,"### ### ##0");
	
	calc_return();
}

function invalidate_result() {
	// show the recalc button
	setVisible('calc_button',true);
}

// catch input field Enter/TAB and Keypress
// if Enter/TAB -> submit calc_return()
// if other Keypress -> submit invalidate_result()
function catchKey(e) {
	var keyCode;

	// fetch keypress code
	if (!e) var e = window.event
		if (e.keyCode) keyCode = e.keyCode;
		else if (e.which) keyCode = e.which;

	// alert(keyCode);
		
	// check if Enter was pressed
 	if((keyCode==13) || (keyCode==9))
 		// submit action
 		calc_return();
 	
 	// check whether any digit/space/comma/period/backspace/delete character key was pressed (change of content)
 	if ( ((keyCode>=48) && (keyCode<=57)) || (keyCode==32) || (keyCode==188) || (keyCode==190) || (keyCode==8) || (keyCode==46) )
 		invalidate_result();
 	
 	if ((keyCode==13)) {
 		e.cancelBubble = true;
 		if (e.stopPropagation) e.stopPropagation();
 			return false;
 	}

	// cancel out any alphabetical characters pressed
 	if ((keyCode>=65) && (keyCode<=90)) {
 		e.cancelBubble = true;
 		if (e.stopPropagation) e.stopPropagation();
 			return false;
 	}
 	
 	// alert('true');
	return true;
}