/*------------------------------------------------------------------------
/*
/* DRAW REQUEST FUNCTIONS
/* 
/* - functions with '2' variant names are for older versions of loan tracking still being used by lenders
/*------------------------------------------------------------------------*/	

function totalRequest(line_counter, line_type)
	{
		if(line_counter != 'start'){
			if(($F($('request_line_' + line_type + line_counter))) == ''){
				$('request_line_' + line_type + line_counter).value = 0;
			}
			
			var line_request = parseFloat($F($('request_line_' + line_type + line_counter)));
			if(line_request == '') line_request = 0;
			if(isNaN(line_request)){
				/*$('request_line_error' + line_counter).innerHTML = 'Error';*/
			} else {
				var total_disbursed = parseFloat($F($('total_line_request_amount_' + line_type + line_counter)));
				var total_approved = parseFloat($F($('line_approved_total_' + line_type + line_counter)));
				var total_contingencies = parseFloat($F($('line_contingencies_total_' + line_type + line_counter)));
				if((total_disbursed + line_request) > total_approved){
					
					var iwant = total_disbursed + line_request;
					var overage = iwant - total_approved;
					var cont_msg = 'Note: you are requesting ' + addCommas(overage.toFixed(2)) + ' more than the available amount.<br />The extra will be requested as a contingency<br />';
					$('request_line_error_' + line_type + line_counter).innerHTML = cont_msg;
				} else {
					$('request_line_error_' + line_type + line_counter).innerHTML = '';
				}
			}
		}
		
		var breakLoop = false;
		var textInputs = Form.getInputs('request_form', 'text');
		var requestTotal = 0;
		for (var index = 0, len = textInputs.length; index < len; ++index) {
  			var item = textInputs[index];
  			if(item.id.search(/^request_line_labor\d+$/) != -1 || item.id.search(/^request_line_material\d+$/) != -1){
  				if($F(item) == '') $(item).value = 0;
  				if(isNaN(parseFloat($F(item)))){
  					breakLoop = true;
  					break;
  				} 
  				requestTotal = requestTotal + parseFloat($F(item));
  			}
		}
		if(breakLoop){
			$('page_total').innerHTML = 'Error: a non-numerical value was entered below';
			$('page_total').className = 'page_total_error';
			$('page_total_2').innerHTML = 'Error: a non-numerical value was entered below';
			$('page_total_2').className = 'page_total_error';
		} else {
			$('page_total').innerHTML = addCommas(requestTotal.toFixed(2));
			$('page_total').className = 'page_total';
			$('page_total_2').innerHTML = addCommas(requestTotal.toFixed(2));
			$('page_total_2').className = 'page_total';
		}
	}
	
	function totalRequest2(line_counter)
	{
		if(line_counter != 'start'){
			if(($F($('request_line' + line_counter))) == ''){
				$('request_line' + line_counter).value = 0;
			}
			var line_request = parseFloat($F($('request_line' + line_counter)));
			if(line_request == '') line_request = 0;
			if(isNaN(line_request)){
				/*$('request_line_error' + line_counter).innerHTML = 'Error';*/
			} else {
				var total_disbursed = parseFloat($F($('total_line_request_amount' + line_counter)));
				var total_approved = parseFloat($F($('line_approved_total' + line_counter)));
				var total_contingencies = parseFloat($F($('line_contingencies_total' + line_counter)));
				if((total_disbursed + line_request) > total_approved){
					
					var iwant = total_disbursed + line_request;
					var overage = iwant - total_approved;
					var cont_msg = 'Note: you are requesting ' + addCommas(overage.toFixed(2)) + ' more than the available amount.<br />The extra will be requested as a contingency';
					$('request_line_error' + line_counter).innerHTML = cont_msg;
				} else {
					$('request_line_error' + line_counter).innerHTML = '';
				}
			}
		}
		
		var breakLoop = false;
		var textInputs = Form.getInputs('request_form', 'text');
		var requestTotal = 0;
		for (var index = 0, len = textInputs.length; index < len; ++index) {
  			var item = textInputs[index];
  			if(item.id.search(/^request_line\d+$/) != -1 ){
  				if($F(item) == '') $(item).value = 0;
  				if(isNaN(parseFloat($F(item)))){
  					breakLoop = true;
  					break;
  				} 
  				requestTotal = requestTotal + parseFloat($F(item));
  			}
		}
		if(breakLoop){
			$('page_total').innerHTML = 'Error: a non-numerical value was entered below';
			$('page_total').className = 'page_total_error';
		} else {
			$('page_total').innerHTML = addCommas(requestTotal.toFixed(2));
			$('page_total').className = 'page_total';
		}
	}
	
	
	
	/*------------------------------------------------------------------------*/
	
	
	
	function updateSummary()
	{
		var loanTotal = parseFloat($F($('loan_total')));
		var equity = parseFloat($F($('equity')));
		if(isNaN(equity)) { equity = 0.0; }
		var contingency = parseFloat($F($('contingency')));
		var structTotal = loanTotal + equity;
		var conTotal = structTotal + (structTotal * contingency);
		
		
		if(isNaN(conTotal)){
			
		
		} else {
			var final_structTotal = addCommas(structTotal.toFixed(2));
			var final_loanTotal = addCommas(loanTotal.toFixed(2));
			var final_conTotal = addCommas(conTotal.toFixed(2));
			var final_contingency = parseFloat(contingency).toFixed(4);
			$('construction_total').value = final_structTotal;
			$('loan_total_summary').innerHTML = final_structTotal;
			$('contingency_summary').innerHTML = final_contingency;
			$('total_wcont_summary').innerHTML = final_conTotal;
		}
	}
	
	function custRound(x,places) {
		return (Math.round(x*Math.pow(10,places)))/Math.pow(10,places)
	}

	function addMe(line_counter, line_type)
	{
		var sub_heading_count = $F('sub_heading_count');
		if(line_counter == 'start'){
			for(line_counter = 1; line_counter < 45; line_counter++){
				var material = $F($('material' + line_counter));
				var labor = $F($('labor' + line_counter));
				var total = parseFloat(material) + parseFloat(labor);
				if(isNaN(total)){
					$('total' + line_counter).className = 'total_numbers_error';
					$('total' + line_counter).innerHTML = 'Error';
				} else {
					var final_total = addCommas(total.toFixed(2));
					$('total' + line_counter).className = 'total_numbers';
					$('total' + line_counter).innerHTML = final_total;
				}
			}
			
			for(line_counter = 0; line_counter < sub_heading_count; line_counter++){
				var current_heading_count = $F($('current_custom_heading_count_' + line_counter));
				for(custom_line_counter = 0; custom_line_counter < current_heading_count; custom_line_counter++){
					var material = $F($('custom_material_' + line_counter + '_' + custom_line_counter));
					var labor = $F($('custom_labor_' + line_counter + '_' + custom_line_counter));
					var total = parseFloat(material) + parseFloat(labor);
					if(isNaN(total)){
						$('custom_total_' + line_counter + '_' + custom_line_counter).className = 'total_numbers_error';
						$('custom_total_' + line_counter + '_' + custom_line_counter).innerHTML = 'Error';
					} else {
						var final_total = addCommas(total.toFixed(2));
						$('custom_total_' + line_counter + '_' + custom_line_counter).className = 'total_numbers';
						$('custom_total_' + line_counter + '_' + custom_line_counter).innerHTML = final_total;
					}
				}
			}
		} else {
			if(line_type == 'normal'){
				var custom = "";
			} else {
				var custom = "custom_";
			}
			if(($F($(custom + 'material' + line_counter))) == ''){
				$(custom + 'material' + line_counter).value = 0;
			}
			if(($F($(custom + 'labor' + line_counter))) == ''){
				$(custom + 'labor' + line_counter).value = 0;
			}
			var material = $F($(custom + 'material' + line_counter));
			var labor = $F($(custom + 'labor' + line_counter));
			var total = parseFloat(material) + parseFloat(labor);
			if(isNaN(total)){
				$(custom + 'total' + line_counter).className = 'total_numbers_error';
				$(custom + 'total' + line_counter).innerHTML = 'Error';
			} else {
				var final_total = addCommas(total.toFixed(2));
				$(custom + 'total' + line_counter).className = 'total_numbers';
				$(custom + 'total' + line_counter).innerHTML = final_total;
			}
		}
		
		var breakLoop = false;
		var textInputs = Form.getInputs('loan_form', 'text');
		var pageTotal = 0.00;
		for (var index = 0, len = textInputs.length; index < len; ++index) {
  			var item = textInputs[index];
  			if(item.id.search(/^labor\d+$/) != -1 || item.id.search(/^material\d+$/) != -1){
  				if($F(item) == '') $(item).value = 0;
  				if(isNaN(parseFloat($F(item)))){
  					breakLoop = true;
  					break;
  				}
  				pageTotal = pageTotal + parseFloat($F(item));
  			} else if(item.id.search(/^custom_labor_\d+_\d+$/) != -1 || item.id.search(/^custom_material_\d+_\d+$/) != -1){
  				if($F(item) == '') $(item).value = 0;
  				if(isNaN(parseFloat($F(item)))){
  					breakLoop = true;
  					break;
  				}
  				pageTotal = pageTotal + parseFloat($F(item));
  			}
		}
		
		
		if(breakLoop){
			$('page_total').innerHTML = 'Error: a non-numerical value was entered below';
			$('page_total').className = 'page_total_error';
		} else {
			var previousTotal = $F($('defacto_total'));
			var remaining		= parseFloat(previousTotal) - pageTotal;
			
			$('page_total').innerHTML = addCommas(custRound(pageTotal, 2));
			$('page_total').className = 'page_total';
			$('remaining').innerHTML = addCommas(custRound(remaining, 2));
			if(remaining == 0){
				$('remaining').className = 'remaining_match';
			} else {
				$('remaining').className = 'remaining';
			}
			
			
			if(custRound(pageTotal, 2) > custRound(parseFloat(previousTotal), 2)  ){
				$('total_mismatch').innerHTML = 'Warning: the line-item total is greater than the approved loan amount';
			} else {
				$('total_mismatch').innerHTML = '';
			}
		}
	}
	
	function prepFieldAddMeEdit(name)
	{
		if(($F($(name))) == 0){
				$(name).value = '';
			}
	}
	
	function leaveFieldAddMeEdit(name)
	{
		if(($F($(name))) == ''){
				$(name).value = 0;
			}
	}
	
/*------------------------------------------------------------------------
/*
/* EDIT LOAN FUNCTIONS
/* 
/* - functions with '2' variant names are for older versions of loan tracking still being used by lenders
/*------------------------------------------------------------------------*/	
	function addMeEdit(line_counter, line_type)
	{
		var total_line_item_count = $F('total_line_quantity');
		if(line_counter == 'start'){
			/*for(line_counter = 0; line_counter < total_line_item_count; line_counter++){
				var material = $F($('material' + line_counter));
				var labor = $F($('labor' + line_counter));
				var total = parseFloat(material) + parseFloat(labor);
				if(isNaN(total)){
					$('total' + line_counter).className = 'total_numbers_error';
					$('total' + line_counter).innerHTML = 'Error';
				} else {
					var final_total = addCommas(total.toFixed(2));
					$('total' + line_counter).className = 'total_numbers';
					$('total' + line_counter).innerHTML = final_total;
				}
			}*/
		} else {
			if(($F($('material' + line_counter))) == ''){
				$('material' + line_counter).value = 0;
			}
			if(($F($('labor' + line_counter))) == ''){
				$('labor' + line_counter).value = 0;
			}
			var material = $F($('material' + line_counter));
			var labor = $F($('labor' + line_counter));
			if( line_type == 'material'){
				total = parseFloat(material);
			} else {
				total = parseFloat(labor);
			}
			/*var total = parseFloat(material) + parseFloat(labor);*/
			/*if(isNaN(total)){*/
			if(isNaN(material)){
				/*$('material' + line_counter).innerHTML = 'Please enter a valid number';*/
			} else if(isNaN(labor)) { 
/*				$('labor' + line_counter).innerHTML = 'Please enter a valid number';*/
			} else {
				var total_line_request_amount = $F($('total_line_request_amount_' + line_type + line_counter));
				
				if(total < total_line_request_amount){
					$('err_' + line_type + line_counter).innerHTML = 'Can not reduce to less than previous draws<br />';
/*					alert('err_' + line_type + line_counter);*/
				} else {
					var final_total = addCommas(total.toFixed(2));
					$('err_' + line_type + line_counter).innerHTML = '';
				}
			}
		}
		
		var breakLoop = false;
		var textInputs = Form.getInputs('loan_form', 'text');
		var pageTotal = 0;
		for (var index = 0, len = textInputs.length; index < len; ++index) {
  			var item = textInputs[index];
  			if(item.id.search(/^labor\d+$/) != -1 || item.id.search(/^material\d+$/) != -1){
  				if($F(item) == '') $(item).value = 0;
  				if(isNaN(parseFloat($F(item)))){
  					breakLoop = true;
  					break;
  				}
  				pageTotal = pageTotal + parseFloat($F(item));
  			}
		}
		if(breakLoop){
			$('error_non_number').innerHTML = 'Error: a non-numerical value was entered in the form';
		} else {
			$('error_non_number').innerHTML = '';
			var loanTotal = $F($('loan_total'));
			var equity = $F($('equity'));
			var contingency = $F($('contingency'));
			var contingency_disbursed = $F($('contingency_disbursed'));
			
			var old_contingency = contingency * loanTotal;
			var adjusted_contingency = contingency * pageTotal;
			var adjusted_loan = pageTotal - equity;
			
//			$('page_total').innerHTML = addCommas(pageTotal.toFixed(2));
			$('adjusted_loan').innerHTML = addCommas(adjusted_loan.toFixed(2));
			$('adjusted_total').innerHTML = addCommas(pageTotal.toFixed(2));
			$('adjusted_contingency').innerHTML = addCommas(adjusted_contingency.toFixed(2));
			
			if(adjusted_contingency < contingency_disbursed){
				$('error_contingency').innerHTML = 'Unable to reduce available contingency to below previously disbursed contingency dollars';
			} else {
				$('error_contingency').innerHTML = '';
			}
			
			
		}
	}
	
	function addMeEdit2(line_counter)
	{
		var total_line_item_count = $F('total_line_quantity');
		if(line_counter == 'start'){
			for(line_counter = 0; line_counter < total_line_item_count; line_counter++){
				var material = $F($('material' + line_counter));
				var labor = $F($('labor' + line_counter));
				var total = parseFloat(material) + parseFloat(labor);
				if(isNaN(total)){
					$('total' + line_counter).className = 'total_numbers_error';
					$('total' + line_counter).innerHTML = 'Error';
				} else {
					var final_total = addCommas(total.toFixed(2));
					$('total' + line_counter).className = 'total_numbers';
					$('total' + line_counter).innerHTML = final_total;
				}
			}
		} else {
			if(($F($('material' + line_counter))) == ''){
				$('material' + line_counter).value = 0;
			}
			if(($F($('labor' + line_counter))) == ''){
				$('labor' + line_counter).value = 0;
			}
			var material = $F($('material' + line_counter));
			var labor = $F($('labor' + line_counter));
			var total = parseFloat(material) + parseFloat(labor);
			if(isNaN(total)){
				$('total' + line_counter).className = 'total_numbers_error';
				$('total' + line_counter).innerHTML = 'Error';
			} else {
				var total_line_request_amount = $F($('total_line_request_amount' + line_counter));
				if(total < total_line_request_amount){
					$('total' + line_counter).className = 'total_numbers_error';
					$('total' + line_counter).innerHTML = 'Can not reduce to less than previous draws';
				} else {
					var final_total = addCommas(total.toFixed(2));
					$('total' + line_counter).className = 'total_numbers';
					$('total' + line_counter).innerHTML = final_total;
				}
			}
		}
		
		var breakLoop = false;
		var textInputs = Form.getInputs('loan_form', 'text');
		var pageTotal = 0;
		for (var index = 0, len = textInputs.length; index < len; ++index) {
  			var item = textInputs[index];
  			if(item.id.search(/^labor\d+$/) != -1 || item.id.search(/^material\d+$/) != -1){
  				if($F(item) == '') $(item).value = 0;
  				if(isNaN(parseFloat($F(item)))){
  					breakLoop = true;
  					break;
  				}
  				pageTotal = pageTotal + parseFloat($F(item));
  			}
		}
		if(breakLoop){
			$('error_non_number').innerHTML = 'Error: a non-numerical value was entered in the form';
		} else {
			$('error_non_number').innerHTML = '';
			var loanTotal = $F($('loan_total'));
			var equity = $F($('equity'));
			var contingency = $F($('contingency'));
			var contingency_disbursed = $F($('contingency_disbursed'));
			
			var old_contingency = contingency * loanTotal;
			var adjusted_contingency = contingency * pageTotal;
			var adjusted_loan = pageTotal - equity;
			
			$('page_total').innerHTML = addCommas(pageTotal.toFixed(2));
			$('adjusted_loan').innerHTML = addCommas(adjusted_loan.toFixed(2));
			$('adjusted_total').innerHTML = addCommas(pageTotal.toFixed(2));
			$('adjusted_contingency').innerHTML = addCommas(adjusted_contingency.toFixed(2));
			
			if(adjusted_contingency < contingency_disbursed){
				$('error_contingency').innerHTML = 'Unable to reduce available contingency to below previously disbursed contingency dollars';
			} else {
				$('error_contingency').innerHTML = '';
			}
			
			
		}
	}
	
	/*-------------------------------------------------------------------------*/
	
	
	
	
	
	function addCommas(nStr)
	{
		nStr += '';
		x = nStr.split('.');
		x1 = x[0];
		x2 = x.length > 1 ? '.' + x[1] : '';
		var rgx = /(\d+)(\d{3})/;
		while (rgx.test(x1)) {
			x1 = x1.replace(rgx, '$1' + ',' + '$2');
		}
		return x1 + x2;
	}