function floor(number)
{
  return Math.floor(number*Math.pow(10,2))/Math.pow(10,2);
}

function calconload()
{
	//alert('hello')
	calccosts()
	calcdownpmt()
	dosum()
}
function calconload_Mortgage()
{
	//alert('hello')
	calcdownpmt_mortgage()
	dosum_mortgage()
}
function commaSplit(srcNumber) {
	var txtNumber = '' + srcNumber;
	if (isNaN(txtNumber) || txtNumber == '') {
	//alert('Oops!  That does not appear to be a valid number.  Please try again.');
	//fieldName.select();
	//fieldName.focus();
	}
	else {
		var rxSplit =  /([0-9])([0-9][0-9][0-9][,.])/; //new RegExp('([0-9])([0-9][0-9][0-9][,.])');
		var rxZero = /([0-9])\0/
		var arrNumber = txtNumber.split('.');
		arrNumber[0] += '.';
		do {
			arrNumber[0] = arrNumber[0].replace(rxSplit, '$1,$2');
		}
		while (rxSplit.test(arrNumber[0]));
		if (arrNumber.length > 1) {
			if(arrNumber[1].length == 1) arrNumber[1] += '0';
			return arrNumber.join('');
		}
		else {
			return arrNumber[0].split('.')[0];
		}
	}
}

function formatZero(txtNumber){
	if (isNaN(txtNumber) || txtNumber == '') return '';
	else {
		var arrNumber = txtNumber.split('.');
		arrNumber[0] += '.';
		if(arrNumber.length == 1){
			if(arrNumber[0] == '0.'){
				return arrNumber[0] = '0.00';
			}
		}
		else return txtNumber;
	}
}

function calccosts()
{
	var purchaseprice;
	var improvementcost;
	
	purchaseprice = floor(document.temps.PS.value.replace(/,/g, '') * document.temps.PPS.value)
	improvementcost = floor(document.temps.ISF.value.replace(/,/g, '') * document.temps.ECI.value)
	document.temps.PP.value = commaSplit(purchaseprice)
	document.temps.TCI.value = commaSplit(improvementcost)
	document.temps.TPP.value = commaSplit(purchaseprice + improvementcost)
	calcdownpmt()
	dosum()
}
function calcdownpmt()
{
	var downpmt;
	var loanamt;
	var totalpurchaseprice;
	var downpmtpercent;
	
	totalpurchaseprice = document.temps.TPP.value.replace(/,/g, '') 
	//alert(totalpurchaseprice)
	downpmtpercent = document.temps.DP.value.replace(/,/g, '')
	downpmt = floor(totalpurchaseprice * (downpmtpercent/100))
	loanamt = floor(totalpurchaseprice - downpmt)
	//alert(loanamt)
	document.temps.DPR.value = commaSplit(downpmt)
	document.temps.LA.value = commaSplit(loanamt)
	dosum()
}
function calcdownpmt_mortgage()
{
	var downpmt;
	var loanamt;
	var totalpurchaseprice;
	var downpmtpercent;
	
	totalpurchaseprice = document.temps.TPP.value.replace(/,/g, '') 
	//alert(totalpurchaseprice)
	downpmtpercent = document.temps.DP.value.replace(/,/g, '')
	downpmt = floor(totalpurchaseprice * (downpmtpercent/100))
	loanamt = floor(totalpurchaseprice - downpmt)
	//alert(loanamt)
	document.temps.DPR.value = commaSplit(downpmt)
	document.temps.LA.value = commaSplit(loanamt)
	dosum_mortgage()
}

function initdefault(proptype)
{
	if(proptype.value == 'IND') { //for industrial
		document.temps.Est_Taxes_PSF.value = '0.08'
		document.temps.Insurance_PSF.value = '0.04'
		document.temps.Maintenance_PSF.value = '0.04'
		document.temps.Janitorial_PSF.className = 'grey_Not_Applicable'
		document.temps.Utilities_PSF.className = 'grey_Not_Applicable'
		document.temps.Janitorial.className = 'grey_Not_Applicable'
		document.temps.Utilities.className = 'grey_Not_Applicable'
		document.temps.Janitorial_PSF.readOnly = true
		document.temps.Utilities_PSF.readOnly = true
		document.temps.Janitorial.readOnly = true
		document.temps.Utilities.readOnly = true
		dosum();
		document.temps.Janitorial_PSF.value = 'N/A'
		document.temps.Utilities_PSF.value = 'N/A'
		document.temps.Janitorial.value = 'N/A'
		document.temps.Utilities.value = 'N/A'
	}
	else{ // for office
		document.temps.Est_Taxes_PSF.value = '0.16'
		document.temps.Insurance_PSF.value = '0.02'
		document.temps.Maintenance_PSF.value = '0.02'
		document.temps.Janitorial_PSF.value = '0.08'
		document.temps.Utilities_PSF.value = '0.18'
		
		if(document.temps.rads1Assum[0].checked == true) {
			document.temps.Est_Taxes_PSF.className = 'lightblue_result_numeric'
			document.temps.Insurance_PSF.className = 'lightblue_result_numeric'
			document.temps.Maintenance_PSF.className = 'lightblue_result_numeric'
			document.temps.Janitorial_PSF.className = 'lightblue_result_numeric'
			document.temps.Utilities_PSF.className = 'lightblue_result_numeric'
			document.temps.Est_Taxes.className = 'numericentry'
			document.temps.Insurance.className = 'numericentry'
			document.temps.Maintenance.className = 'numericentry'
			document.temps.Janitorial.className = 'numericentry'
			document.temps.Utilities.className = 'numericentry'
			document.temps.Est_Taxes_PSF.readOnly = true
			document.temps.Insurance_PSF.readOnly = true
			document.temps.Maintenance_PSF.readOnly = true
			document.temps.Janitorial_PSF.readOnly = true
			document.temps.Utilities_PSF.readOnly = true
			document.temps.Est_Taxes.readOnly = false
			document.temps.Insurance.readOnly = false
			document.temps.Maintenance.readOnly = false
			document.temps.Janitorial.readOnly = false
			document.temps.Utilities.readOnly = false
		}
		else{
			document.temps.Est_Taxes_PSF.className = 'numericentry'
			document.temps.Insurance_PSF.className = 'numericentry'
			document.temps.Maintenance_PSF.className = 'numericentry'
			document.temps.Janitorial_PSF.className = 'numericentry'
			document.temps.Utilities_PSF.className = 'numericentry'
			document.temps.Est_Taxes.className = 'lightblue_result_numeric'
			document.temps.Insurance.className = 'lightblue_result_numeric'
			document.temps.Maintenance.className = 'lightblue_result_numeric'
			document.temps.Janitorial.className = 'lightblue_result_numeric'
			document.temps.Utilities.className = 'lightblue_result_numeric'
			
			document.temps.Est_Taxes_PSF.readOnly = false
			document.temps.Insurance_PSF.readOnly = false
			document.temps.Maintenance_PSF.readOnly = false
			document.temps.Janitorial_PSF.readOnly = false
			document.temps.Utilities_PSF.readOnly = false
			document.temps.Est_Taxes.readOnly = true
			document.temps.Insurance.readOnly = true
			document.temps.Maintenance.readOnly = true
			document.temps.Janitorial.readOnly = true
			document.temps.Utilities.readOnly = true
		}
		dosum();
	}
}

function changeAssumptions(proptype){
	if(proptype.value == 'MON') {
		document.temps.Est_Taxes_PSF.className = 'lightblue_result_numeric'
		document.temps.Insurance_PSF.className = 'lightblue_result_numeric'
		document.temps.Maintenance_PSF.className = 'lightblue_result_numeric'
		document.temps.Est_Taxes.className = 'numericentry'
		document.temps.Insurance.className = 'numericentry'
		document.temps.Maintenance.className = 'numericentry'
		document.temps.Est_Taxes_PSF.readOnly = true
		document.temps.Insurance_PSF.readOnly = true
		document.temps.Maintenance_PSF.readOnly = true
		document.temps.Est_Taxes.readOnly = false
		document.temps.Insurance.readOnly = false
		document.temps.Maintenance.readOnly = false
		
		if(document.temps.rads1proptype[0].checked == true) {
			document.temps.Janitorial_PSF.className = 'grey_Not_Applicable'
			document.temps.Utilities_PSF.className = 'grey_Not_Applicable'
			document.temps.Janitorial.className = 'grey_Not_Applicable'
			document.temps.Utilities.className = 'grey_Not_Applicable'
			document.temps.Janitorial_PSF.readOnly = true
			document.temps.Utilities_PSF.readOnly = true
			document.temps.Janitorial.readOnly = true
			document.temps.Utilities.readOnly = true
		}
		else {
			document.temps.Janitorial_PSF.className = 'lightblue_result_numeric'
			document.temps.Utilities_PSF.className = 'lightblue_result_numeric'
			document.temps.Janitorial.className = 'numericentry'
			document.temps.Utilities.className = 'numericentry'
			document.temps.Janitorial_PSF.readOnly = true
			document.temps.Utilities_PSF.readOnly = true
			document.temps.Janitorial.readOnly = false
			document.temps.Utilities.readOnly = false
		}
	}
	else {
		document.temps.Est_Taxes_PSF.className = 'numericentry'
		document.temps.Insurance_PSF.className = 'numericentry'
		document.temps.Maintenance_PSF.className = 'numericentry'
		document.temps.Est_Taxes.className = 'lightblue_result_numeric'
		document.temps.Insurance.className = 'lightblue_result_numeric'
		document.temps.Maintenance.className = 'lightblue_result_numeric'
		
		document.temps.Est_Taxes_PSF.readOnly = false
		document.temps.Insurance_PSF.readOnly = false
		document.temps.Maintenance_PSF.readOnly = false
		document.temps.Est_Taxes.readOnly = true
		document.temps.Insurance.readOnly = true
		document.temps.Maintenance.readOnly = true
		
		if(document.temps.rads1proptype[0].checked == true) {
			document.temps.Janitorial_PSF.className = 'grey_Not_Applicable'
			document.temps.Utilities_PSF.className = 'grey_Not_Applicable'
			document.temps.Janitorial.className = 'grey_Not_Applicable'
			document.temps.Utilities.className = 'grey_Not_Applicable'
			document.temps.Janitorial_PSF.readOnly = true
			document.temps.Utilities_PSF.readOnly = true
			document.temps.Janitorial.readOnly = true
			document.temps.Utilities.readOnly = true
		}
		else {
			document.temps.Janitorial_PSF.className = 'numericentry'
			document.temps.Utilities_PSF.className = 'numericentry'
			document.temps.Janitorial.className = 'lightblue_result_numeric'
			document.temps.Utilities.className = 'lightblue_result_numeric'
			document.temps.Janitorial_PSF.readOnly = false
			document.temps.Utilities_PSF.readOnly = false
			document.temps.Janitorial.readOnly = true
			document.temps.Utilities.readOnly = true
		}
	}

}

function dosum()
{
	var mi = document.temps.IR.value.replace(/,/g, '') / 1200;
	var base = 1;
	var mbase = 1 + mi;
	for (i=0; i<document.temps.YR.value * 12; i++)
	{
		base = base * mbase
	}
	document.temps.PI.value = commaSplit(floor(document.temps.LA.value.replace(/,/g, '') * mi / ( 1 - (1/base))))
	var taxes = document.temps.Est_Taxes_PSF.value * document.temps.PS.value.replace(/,/g, '');
	var dasum = document.temps.LA.value.replace(/,/g, '') * mi / ( 1 - (1/base)) + taxes;
	var insur = document.temps.Insurance_PSF.value * document.temps.PS.value.replace(/,/g, '');
	var maint = document.temps.Maintenance_PSF.value * document.temps.PS.value.replace(/,/g, '');
	var janit = document.temps.Janitorial_PSF.value * document.temps.PS.value.replace(/,/g, '');
	var utili = document.temps.Utilities_PSF.value * document.temps.PS.value.replace(/,/g, '');
  	document.temps.Est_Taxes.value = commaSplit(floor(taxes));
  	document.temps.Insurance.value = commaSplit(floor(insur));
  	document.temps.Maintenance.value = commaSplit(floor(maint));
  	document.temps.Janitorial.value = commaSplit(floor(janit));
  	document.temps.Utilities.value = commaSplit(floor(utili));
  	document.temps.MP.value = commaSplit(floor(dasum));
	document.temps.PI_PSF.value = floor(document.temps.PI.value.replace(/,/g, '') / document.temps.PS.value.replace(/,/g, ''))
	document.temps.MP_PSF.value = floor(document.temps.MP.value.replace(/,/g, '') / document.temps.PS.value.replace(/,/g, ''))
}

function doPSF()
{
	var taxes_PSF = document.temps.Est_Taxes.value.replace(/,/g, '') / document.temps.PS.value.replace(/,/g, '');
	var insur_PSF = document.temps.Insurance.value.replace(/,/g, '') / document.temps.PS.value.replace(/,/g, '');
	var maint_PSF = document.temps.Maintenance.value.replace(/,/g, '') / document.temps.PS.value.replace(/,/g, '');
	var janit_PSF = document.temps.Janitorial.value.replace(/,/g, '') / document.temps.PS.value.replace(/,/g, '');
	var utili_PSF = document.temps.Utilities.value.replace(/,/g, '') / document.temps.PS.value.replace(/,/g, '');
  	document.temps.Est_Taxes_PSF.value = formatZero(commaSplit(floor(taxes_PSF)));
  	document.temps.Insurance_PSF.value = formatZero(commaSplit(floor(insur_PSF)));
  	document.temps.Maintenance_PSF.value = formatZero(commaSplit(floor(maint_PSF)));
  	document.temps.Janitorial_PSF.value = formatZero(commaSplit(floor(janit_PSF)));
  	document.temps.Utilities_PSF.value = formatZero(commaSplit(floor(utili_PSF)));

	var taxes = document.temps.Est_Taxes.value;
	var insur = document.temps.Insurance.value;
	var maint = document.temps.Maintenance.value;
	var janit = document.temps.Janitorial.value;
	var utili = document.temps.Utilities.value;
}

function dosum_mortgage()
{
  var mi = document.temps.IR.value.replace(/,/g, '') / 1200;
  var base = 1;
  var mbase = 1 + mi;
  for (i=0; i<document.temps.YR.value * 12; i++)
  {
    base = base * mbase
  }
  document.temps.PI.value = commaSplit(floor(document.temps.LA.value.replace(/,/g, '') * mi / ( 1 - (1/base))))
}
