// JavaScript Document

function removeMatchList()
{
	document.getElementById('matchList').style.display = 'none';
	document.getElementById('similarAddress').style.display = 'none';
	
}

function copyLastName(last_name)
{
	document.getElementById('last_name').value = last_name;
	document.getElementById('matchList').style.display = 'none';
	removeMatchList();

}
function copyAddress(address)
{
	alert('Are you sure, this may be a duplicate');
	document.getElementById('address').value = address;
	document.getElementById('similarAddress').style.display = 'none';
	removeMatchList();
}

function chooseCustomer()
{	
	var inputBox = 'Last name or Business Name: <input type="text" name="inputText" id="inputText" size="40" onKeyUp="showList();">';

	document.getElementById('inputArea').innerHTML = inputBox;
	
}

function deleteSelected()
{
	var answer = confirm('Are you sure you want to delete the selected customers?');
	if(answer)
	{
		var sbox = 'list[]';
		var n = document.getElementsByName(sbox).length;
		var a = 0;
			for (i = 1; i <= n; i++)
			{
				if (document.getElementById(''+i+'').checked == true)
				{
					
					var customer_id = document.getElementById(i).value;
					deleteSelectedCustomer(customer_id);
					a = a + 1;
				}
			}
			alert('Finished Deleting!');
			if (a == 0)
			{
				
				confirm('You did not check any recipients!');
				
				return false;
			}
			else
			{
				return true;
			}
	}
}

function submitEmail()
{
	var subject = document.getElementById('subject').value;
	var message = document.getElementById('message').value;
	var subjectLength = subject.length;
	var messageLength = message.length;
	
	if((subjectLength > 0) && (messageLength > 0))
	{
			var answer = confirm('Are you sure you want to email the selected customers?');
			if(answer)
			{
				var sbox = 'list[]';
				var n = document.getElementsByName(sbox).length;
				var a = 0;
					for (i = 1; i <= n; i++)
					{
						if (document.getElementById(''+i+'').checked == true)
						{
							
							var customer_id = document.getElementById(i).value;
							emailSelectedCustomer(customer_id);
							a = a + 1;
						}
					}
					alert('Email function complete');
					document.getElementById('get').innerHTML = '';
					if (a == 0)
					{
						
						confirm('You did not check any recipients!');
						
						return false;
					}
					else
					{
						return true;
					}
			}
	}
	else
	{
		alert('Empty Subject '+ subjectLength+ ' and Message '+messageLength);
	}
}

function exportList()
{
	var listOfNames = new Array();
			var answer = confirm('Are you sure you want to export this list?');
			if(answer)
			{
				var sbox = 'list[]';
				var n = document.getElementsByName(sbox).length;
				var a = 0;
					for (i = 1; i <= n; i++)
					{
						if (document.getElementById(''+i+'').checked == true)
						{
							
							var customer_id = document.getElementById(i).value;
							listOfNames[i] = customer_id;
							a = a + 1;
						}
					}
					//alert('Ex function complete');
					document.getElementById('get').innerHTML = '';
					if (a == 0)
					{
						
						confirm('You did not check any recipients!');
						
						return false;
					}
					else
					{
						//exportIdList(listOfNames);
						document.getElementById('result').style.backgroundColor = '#390';
						document.getElementById('result').style.width="180px";
						document.getElementById('result').style.padding="10px";

						document.getElementById('result').innerHTML = '<form method="post" action="getCsv.php"><input type="hidden" value="'+listOfNames+'" name="idList"><input type="submit" value="Open/Download CSV"> </form>'; 
						return true;
					}
			}
}



function emailSelected()
{
	//var startForm = document.getElementById('startForm').style.display = 'block';
	var endForm = document.getElementById('endForm').style.display = 'block';
	var emailInfo = 'Email Subject: <input type="text" name="subject" id="subject" size="20"><br><br>';
	emailInfo += 'Email message:<br><textarea rows="10" cols="40" name="message" id="message"></textarea><br>';
	
	var endForm = '<input type="button" name="submit" value="Send Email to selected customers" onClick="submitEmail();">';
	//document.getElementById('startForm').innerHTML = startForm;
	document.getElementById('get').innerHTML = emailInfo;
	document.getElementById('endForm').innerHTML = endForm;
}


function checkRecipients()
{
var sbox = 'list[]';
var n = document.getElementsByName(sbox).length;
var a = 0;
	for (i = 1; i <= n; i++)
	{
		if (document.getElementById(''+i+'').checked == true)
		{
			a = a + 1;
		}
	}
	if (a == 0)
	{
		
		confirm('You did not check any recipients!');
		
		return false;
	}
	else
	{
		return true;
	}
}

function checkAll()
{
var sbox = 'list[]';
var n = document.getElementsByName(sbox).length;

for (i = 1; i <= n; i++)
	document.getElementById(''+i+'').checked = true;
}

function uncheckAll()
{
var sbox = 'list[]';
var n = document.getElementsByName(sbox).length;

for (i = 1; i <= n; i++)
	document.getElementById(''+i+'').checked = false;
}


function updateYear()
{
	var newYear =  document.getElementById('chooseYear').value;
	document.getElementById('updateYear').innerHTML = newYear;
}

function changeTax()
{
	var currentTax = document.getElementById('tax').value;
	var other = '';
	var zeroSelected = '';
	var fiveSelected = '';
	var sevenSelected = '';
	switch(currentTax)
	{
		case '0.0': zeroSelected = 'selected ';
		break;
		case '5.5': fiveSelected = 'selected ';
		break;
		case '7.0': sevenSelected = 'selected ';
		break;
		default:
			other = '<option value"'+currentTax+'" selected>'+currentTax+'</option>';
		break;
	}
	var selectTaxRate = '<select name="new_tax" id="new_tax" size="5" style="width: 200px;">';
	selectTaxRate += '<option value="">Choose One</option>';
	selectTaxRate += other;
	selectTaxRate += '<option '+zeroSelected+' value="0.0" onclick="updateTax();">{None}</option>';
	selectTaxRate += '<option '+fiveSelected+' value="5.5" onclick="updateTax();">{5.5}</option>';
	selectTaxRate += '<option '+sevenSelected+' value="7.0" onclick="updateTax();">{7.0}</option>';
	selectTaxRate += '<option value="" onClick="showTaxRates(\''+currentTax+'\');">{Show more rates}</option></select>';
	selectTaxRate += '&nbsp;&nbsp;<a href="javascript: void(0);" onClick="updateTax(); return false;">&nbsp;OK</a>';
	
	document.getElementById('modifyTaxRate').innerHTML = selectTaxRate;

}

function updateTax()
{ 

	var newTax = document.getElementById('new_tax').value;
	if (newTax == '')
	{
		alert('You need to select from one of the valid choices');
		return false;
	}
	var pageName = document.getElementById('page_name').value;
	var text = 'Tax Rate Changed to '+newTax+'. <a href="javascript: void(0);" onclick="changeTax(); return false;">Change Tax Rate</a>';
	
	switch(pageName)
	{
		case 'use_csv':
			alert('The new tax rate of '+newTax+'% is set');
			document.getElementById('tax').value = newTax;
			document.getElementById('modifyTaxRate').innerHTML = '<a href="javascript: void(0);" onclick="changeTax();">Change Tax Rate</a>';
		break;
		case 'lawn_contract':
			alert('The new tax rate of '+newTax+'% is set');
			document.getElementById('tax_rate').innerHTML = newTax;
			document.getElementById('tax').value = newTax;
			document.getElementById('modifyTaxRate').innerHTML = '<a href="javascript: void(0);" onclick="changeTax();">Change Tax Rate</a>';

			totalLawnProgram();
			runTotal();
		break;
		case 'tree_shrub':
			alert('The new tax rate of '+newTax+'% is set');
			document.getElementById('tax').value = newTax;
			document.getElementById('foliar_tax').innerHTML = newTax;
			document.getElementById('soil_tax').innerHTML = newTax;
			getTotalTreeShrub();
		break;
		case 'proposal_invoice':
		//alert('The page will reload with the new tax rate of '+newTax+'%');
		
			var id = document.getElementById('invoice_id').value;
		
			document.getElementById('tax').value = newTax;
	
			// do not do this if the invoice_id is 0
			if(id != 0)
			{
				// we are going to save the new data via ajax and reload the page
				if (saveNewTaxRate(id,newTax) == true)
				{
					
					//var totalPages = document.getElementById('total_pages').value;
				
					var totalPages = document.getElementById('total_pages').value;
					var page = Number(1);
					for(page = 1;page<=totalPages;page++)
					{
						document.getElementById('tax_rate_1_page_'+page).innerHTML = newTax;
						document.getElementById('tax_rate_2_page_'+page).innerHTML = newTax;
						reTotalPage(page);
					}
					 
					// now reload the page
					//location.reload(true);
				}
				else
				{
					alert('Changing the tax DID NOT WORK');
				}
			}
			//else
			//{
				// Update the page  and all the tax fields
			//}
		break;
		default:
		alert('There was a problem updating the tax! Page Name: ' +pageName);
		break;
	}
	
	document.getElementById('modifyTaxRate').innerHTML = text;
}

function showTaxRates(currentTax)
{
	var currentTax = Number(currentTax);

	var selected = '';
	var result = '';
	var i = 5.0;
	while(i <=8)
	{
		if(currentTax == i.toFixed(1))
		{
			
			selected = 'selected="selected"';
		}
		else
		{
			selected = '';
		}

		result +='<option onclick="updateTax(); return false;"  '+selected+' value="'+i.toFixed(1)+'">'+i.toFixed(1)+'&nbsp;&nbsp;</option>';
		i = i+.1;
	}
	document.getElementById('new_tax').innerHTML = result;
	document.getElementById('new_tax').size = 10;
}

// Tax
function figureTax(tax, amount)
{
	var value = 0;
	var total = 0;
	
	value = Number(((tax/100)*amount)+amount);

	total = value.toFixed(2);	
 	return  total;
}

// remove commas from innerHTML so that way the number will be correct.
function removeComma(num)
{
		newNumber = num.toString().replace(/\$|\,/g,'');
		return newNumber;
}



function formatCurrency(num) 
{
	num = num.toString().replace(/\$|\,/g,'');
	
	if(isNaN(num))
	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+','+
	//num = num.substring(0,num.length-(4*i+3))+''+
	num.substring(num.length-(4*i+3));
	return (((sign)?'':'-')+ num + '.' + cents);
	
}

/***********   This section is for the Lawn Program  ****************/
function activateFlagIrrigation()
{
		var a = document.getElementById('flag_irrigation_charge').disabled;
		if (a == true)
		{
			document.getElementById('flag_irrigation_charge').disabled = false;
		}
		else
		{
			document.getElementById('flag_irrigation_charge').disabled = true;
		}
	// update the total for the page.
	runTotal();
}

function mowTotal()
{
	var numberOfMowings = Number(document.getElementById('number_of_mowings').value);
	var amountPerMow = Number(document.getElementById('amount_per_mow').value);
	var total = Number(0.00);
	
	total = numberOfMowings * amountPerMow;
	document.getElementById('mowTotal').innerHTML = total.toFixed(2);
	document.getElementById('mow_total').value = total.toFixed(2);
	
	//update the mowing Totals
	runTotal();
}

function mowingTotal()
{
	var mowTotal = Number(document.getElementById('mow_total').value);
	var totalLawnProgram = Number(document.getElementById('total_lawn_program').value);
	var leafDebrisCleanUp = Number(document.getElementById('leaf_debris_clean_up').value);
	var perMowingCleanUp = Number(document.getElementById('per_mowing_clean_up').value);
	var total = Number(0.00);
	var x = document.getElementById('flag_irrigation_charge').disabled;
	if (x == true)
	{
		var flagIrrigationCharge = Number(0.00);
	}
	else
	{
		var flagIrrigationCharge = Number(document.getElementById('flag_irrigation_charge').value);
	}

	
	total = ( (mowTotal) + ((totalLawnProgram)) + (leafDebrisCleanUp) + (perMowingCleanUp) + (flagIrrigationCharge));
	//alert("Mow: "+(mowTotal) + "Lawn: "+(totalLawnProgram) + "Leaf: "+(leafDebrisCleanUp) + " Pre Mow clean: "+(perMowingCleanUp) + " flag: "+ (flagIrrigationCharge));
	
	var newTotal = Number(total).toFixed(2);
	document.getElementById('lawnProgramAndMowingTotal').innerHTML = newTotal;
	
}

function optionalTotal()
{
	var total = Number(0.00);
	var seedTotal = 	Number(document.getElementById('seed_total_price').value);
	var nutsedgeSprays = Number(document.getElementById('nutsedge_sprays').value);
	var nutsedgePrice = Number(document.getElementById('nutsedge_price').value);
	var fungusSprays = Number(document.getElementById('fungus_sprays').value);
	var fungusPrice = Number(document.getElementById('fungus_price').value);
	
	total = (seedTotal + (nutsedgeSprays * nutsedgePrice) + (fungusSprays * fungusPrice) );

	document.getElementById('optional_total').innerHTML = total.toFixed(2);
}

function runTotal()
{
	// update the mowing totals
	mowingTotal();
	// update the total for the page.
	totalForLawn();
	// Update the optional total
	optionalTotal();
}

function seedTotal()
{
	var seedLbs = Number(document.getElementById('seed_lbs').value);
	var seedPrice = Number(document.getElementById('seed_price').value);
	var tax = Number(document.getElementById('tax').value);
	var amount = Number(0.00);
	var total = Number(0.00);
	
	amount = (seedLbs * seedPrice);
	total = figureTax(tax, amount);
	document.getElementById('seed_total').innerHTML = total;
	document.getElementById('seed_total_price').value = total;
	
	// Output the current totals
	runTotal();
}

function totalForLawn()
{
	var total = Number(0.00);
	var totalLawnProgram = Number(document.getElementById('total_lawn_program').value);
	var tax = Number(document.getElementById('tax').value);
	var leafDebrisCleanUp = Number(document.getElementById('leaf_debris_clean_up').value);
	var perMowingCleanUp = Number(document.getElementById('per_mowing_clean_up').value);
	var seedTotalPrice = Number(document.getElementById('seed_total_price').value);
	var nutsedgeSprays = Number(document.getElementById('nutsedge_sprays').value);
	var nutsedgePrice = Number(document.getElementById('nutsedge_price').value);
	var fungusSprays = Number(document.getElementById('fungus_sprays').value);
	var fungusPrice = Number(document.getElementById('fungus_price').value);
	var mowTotal = Number(document.getElementById('mow_total').value);

	var x = document.getElementById('flag_irrigation_charge').disabled;
	if (x == true)
	{
		var flagIrrigationCharge = Number(0.00);
	}
	else
	{
		var flagIrrigationCharge = Number(document.getElementById('flag_irrigation_charge').value);
	}

	nutsedgeTotal =(nutsedgeSprays *nutsedgePrice);
	fungusTotal =(fungusSprays *fungusPrice);
	
	total =  (totalLawnProgram + flagIrrigationCharge + leafDebrisCleanUp + perMowingCleanUp + seedTotalPrice + nutsedgeTotal + fungusTotal + mowTotal);
	document.getElementById('formTotal').innerHTML = total.toFixed(2);
	
}

function totalLawnProgram()
{
	//alert('total Lawn Program');
	var tax = Number(document.getElementById('tax').value);
	var sub_total = Number(document.getElementById('lawn_sub_total').value); 
	var amount = 0;
	var result = 0;

	amount = Number(sub_total / 5);
	amount.toFixed(2);
	result = Number(((tax/100)*amount)+sub_total);
	//alert("Tax: "+tax+" Sub: "+sub_total+" Amount: "+amount+" Result: "+result);
	document.getElementById('totalLawnProgram').innerHTML = result.toFixed(2);
	document.getElementById('total_lawn_program').value = result.toFixed(2);
	// update the total for the page.
	 runTotal();
}
/****************** End Lawn Program ***********************/


/****************** Proposal and Invoices **********************/
function saveAndPrint(id)
{
	var email;
	// call the ajax to print this via PDF
	//alert('The document was saved, printing is not working, use control P for now.');
	
	// This creates a copy for us to email in our tmp_pdf folder
	if(document.getElementById('email_to_customer').checked == true)
	{
		 email = 'true';
		 
	}
	else
	{
		 email = 'false';
	}
	
	window.open( 'pdf_proposal_invoice.php?id='+id+'&email='+email );

	document.proposal_invoice.submit();
}



function wait(page,row)
{
	var qty = Number(document.getElementById('page'+page+'_qty'+row).value);
	if (qty == 0)
	{
		var t = document.getElementById('page'+page+'_qty'+row).value = 1;
	}
	else
	{
		clearTimeout(t);
	}
}
function clearLine(page,row)
{
		document.getElementById('page'+page+'_row'+row+'_total').innerHTML = '';
		document.getElementById('page'+page+'_qty'+row).value = '';
		document.getElementById('page'+page+'_size'+row).value = '';
		document.getElementById('page'+page+'_type'+row).value = '';
		document.getElementById('page'+page+'_description'+row).value = '';
		document.getElementById('page'+page+'_taxable_price'+row).disabled = false;
		document.getElementById('page'+page+'_untaxed_price'+row).disabled = false;
		document.getElementById('page'+page+'_taxable_price'+row).style.background = '';
		document.getElementById('page'+page+'_untaxed_price'+row).style.background = '';
		document.getElementById('page'+page+'_taxable_price'+row).value = '';
		document.getElementById('page'+page+'_untaxed_price'+row).value = '';
		document.getElementById('page'+page+'row'+row+'_total').value = '';
		reTotalPage(page, row);
}

function updateLineTotal(page, row)
{
	var qty = Number(document.getElementById('page'+page+'_qty'+row).value);
	var untaxed = Number(document.getElementById('page'+page+'_untaxed_price'+row).value);
	var taxable = Number(document.getElementById('page'+page+'_taxable_price'+row).value);
	var newTotal = Number(0.00);
	var type = '';
	var tax = document.getElementById('tax').value;
	
	// If qty has a value, but untaxed and taxable are both blank, do nothing
	if ((qty > 0) && (untaxed == '') && (taxable == ''))
	{
		document.getElementById('page'+page+'_row'+row+'_total').innerHTML = '';
//		document.getElementById('page'+page+'_qty'+row).value = '';
		// now make sure both taxable and non taxable can be typed into
		document.getElementById('page'+page+'_taxable_price'+row).disabled = false;
		document.getElementById('page'+page+'_untaxed_price'+row).disabled = false;
		document.getElementById('page'+page+'_taxable_price'+row).style.background = '';
		document.getElementById('page'+page+'_untaxed_price'+row).style.background = '';
		// retotal the page
		reTotalPage(page);
		
		return false;
	}
	
	if ((qty == 0) && ((untaxed > 0) || (taxable > 0)) )
	{
		var t = setTimeout("wait("+page+","+row+");",2000);
		
		qty = 1;
	}
	
	if (untaxed > .01)
	{
		newTotal = qty * untaxed;
		document.getElementById('page'+page+'_taxable_price'+row).disabled = true;
		document.getElementById('page'+page+'_taxable_price'+row).style.background = '#CCC';
		document.getElementById('page'+page+'_taxable_price'+row).className = 'noValue';
		document.getElementById('page'+page+'_untaxed_price'+row).style.background = '';
		type = 'untaxed';
		
	}
	if (taxable > .01)
	{
		newTotal = qty * taxable;
		newTotal = figureTax(tax, newTotal);
		document.getElementById('page'+page+'_untaxed_price'+row).disabled = true;
		document.getElementById('page'+page+'_untaxed_price'+row).style.background = '#CCC';
		document.getElementById('page'+page+'_untaxed_price'+row).className = 'noValue';
		document.getElementById('page'+page+'_taxable_price'+row).style.background = '';
		type = 'taxed';
		
	}
	if ((untaxed < .01) && (taxable < .01))
	{
		newTotal = '';
		// allow both fields to be typed into
		document.getElementById('page'+page+'_taxable_price'+row).disabled = false;
		document.getElementById('page'+page+'_untaxed_price'+row).disabled = false;
		document.getElementById('page'+page+'_taxable_price'+row).style.background = '';
		document.getElementById('page'+page+'_untaxed_price'+row).style.background = '';
		type = 'none';
	}
		var convertedTotal = formatCurrency(newTotal);
		
		var newHtml;
		if(removeComma(convertedTotal) > 0)
		{
			newHtml = '&nbsp;<span class="printPage"><a href="javascript: void(0);" onClick="clearLine('+page+','+row+');">Clear Line</a></span>';
		}
		else
		{
			// do nothing for now
			//newHtml = '';
		}
		// update the rows total.
		document.getElementById('page'+page+'_row'+row+'_total').innerHTML = convertedTotal+newHtml;
		// retotal the page
		reTotalPage(page);
		
}


function reTotalPage(page)
{
	
		// Get the tax for this page
		var tax = Number(document.getElementById('tax').value);
		
		// Get the amount paid down for this page
		var paidDown = Number(document.getElementById('paid_down').value);
		
		// Set the qty to 0;
		var qty = 0;
		
		// This will sum up the non taxable totals: page1_untaxed_price1, etc
		// It will update page1_non_taxable_total, etc
		var untaxedTotal = 0;
		var updatedUntaxedTotal = 0;
		
		// This will sum up the taxable totals: page1_taxable_price1, etc
		// It will update page1_taxable_total, etc
		var taxableTotal = 0;
		var updatedTaxableTotal = 0;
		
		// General page totals
		var value = 0;
		var updatedPageTotal = 0;
				
		for(row=1;row<=20;row++)
		{
			// this is the quantity for the row
			qty = document.getElementById('page'+page+'_qty'+row).value;
			if(qty == 0)
			{
				// make sure that it is at least 1 needed if new entry
				qty = 1;
			}
			// This is for the untaxed total for the page
			untaxedTotal = document.getElementById('page'+page+'_untaxed_price'+row).value;
			untaxedTotal = Number(untaxedTotal);
			updatedUntaxedTotal = updatedUntaxedTotal + (untaxedTotal * qty);
			
			// This is for the taxable total for the page
			taxableTotal = document.getElementById('page'+page+'_taxable_price'+row+'').value;
			taxableTotal = Number(taxableTotal);
			updatedTaxableTotal = updatedTaxableTotal + (taxableTotal * qty);
					
			// This is for the general page totals
			value = document.getElementById('page'+page+'_row'+row+'_total').innerHTML;
			if(value > 0)
			{
				alert(value);
			}
			value = removeComma(value);
			value = Number(value);
			updatedPageTotal = updatedPageTotal + value;
			
		}
		
		
		//  Take the updateTaxableTotal and only get the total tax paid for the page
		var totalTaxPaid = ((tax/100)*updatedTaxableTotal).toFixed(2);
		
		// This formats the output to be currency for the untaxed page total
		var convertedUntaxedTotal = (updatedUntaxedTotal);

		// This formats the output to be currency for the untaxed page total
		var convertedTaxableTotal = (updatedTaxableTotal);
		
		
		// This formats the output to be currency for the page total
		
		var pageTotal = (Number(convertedUntaxedTotal)) + (Number(convertedTaxableTotal)) + (Number(totalTaxPaid));
		
		//alert("PAGE TOTAL: "+ (pageTotal)+" Untaxed total: "+convertedUntaxedTotal+" Taxable total: "+convertedTaxableTotal+" Total Tax Paid: "+totalTaxPaid);
		
		// output the new value for the total tax paid for the page
		document.getElementById('total_tax_paid_page'+page).innerHTML = totalTaxPaid;
		
		// output the new value to the untaxed total for the page
		document.getElementById('page'+page+'_non_taxable_total').innerHTML = formatCurrency(convertedUntaxedTotal);
		
		// output the new value to the taxable total for the page
		document.getElementById('page'+page+'_taxable_total').innerHTML = formatCurrency(convertedTaxableTotal);
		
		// output the new value for the page total
		document.getElementById('page'+page+'_total').innerHTML = formatCurrency(pageTotal);
		
		// now update all the page totals
		getPageTotals();
}


function getPageTotals()
{
	var paidDown = document.getElementById('paid_down').value;
	var totalPages = document.getElementById('total_pages').value;
	var formatedGrandTotal = 0;
	var subGrandTotal = 0;
	var grandTotal = 0;
	for(i = 1;i<=totalPages;i++)
	{
		var currentPage = 'page'+i+'_total';
		var pageTotal = document.getElementById('page'+i+'_total').innerHTML;
			pageTotal = removeComma(pageTotal);
			pageTotal = pageTotal - 0;
			subGrandTotal = (pageTotal + subGrandTotal);
	}	

		grandTotal = formatCurrency(subGrandTotal - paidDown);
		
	for(page = 1;page<=totalPages;page++)
	{
		document.getElementById('total_balance_due_'+page).innerHTML = grandTotal;
		document.getElementById('paid_down_page'+page).innerHTML = paidDown;
	}
}

function deleteThisPage(pageNumber)
{
	document.getElementById('deletePage'+pageNumber).innerHTML = '<a href="javascript: void(0); return false;" onClick="recoverThisPage('+pageNumber+');"><img src="images/recoverPage.jpg" border="0"></a><span id="showText'+pageNumber+'" <a href="javascript: void(0);" onClick="showHiddenTable('+pageNumber+'); return false;">Show page that is ready to be deleted.</a>';
	document.getElementById('tableOnPage'+pageNumber).style.display = 'none';
	document.getElementById(pageNumber).style.color = '#CCC';
	for(i = 1; i<=20;i++)
	{
		document.getElementById('page'+pageNumber+'_qty'+i).disabled = 'true';
		document.getElementById('page'+pageNumber+'_size'+i).disabled = 'true';
		document.getElementById('page'+pageNumber+'_type'+i).disabled = 'true';
		document.getElementById('page'+pageNumber+'_description'+i).disabled = 'true';
		document.getElementById('page'+pageNumber+'_untaxed_price'+i).disabled = 'true';
		document.getElementById('page'+pageNumber+'_taxable_price'+i).disabled = 'true';
	}
}
function showHiddenTable(pageNumber)
{
	document.getElementById('tableOnPage'+pageNumber).style.display = 'block';
	document.getElementById('showText'+pageNumber).innerHTML = '<a href="javascript: void(0);" onClick="hideTable('+pageNumber+')">Hide this page again.</a>';
	return false;
}
function hideTable(pageNumber)
{
	document.getElementById('deletePage'+pageNumber).innerHTML = '<a href="javascript: void(0); return false;" onClick="recoverThisPage('+pageNumber+');"><img src="images/recoverPage.jpg" border="0"></a><span id="showText'+pageNumber+'" <a href="javascript: void(0);" onClick="showHiddenTable('+pageNumber+'); return false;">Show page that is ready to be deleted.</a>';
	document.getElementById('tableOnPage'+pageNumber).style.display = 'none';
}
function recoverThisPage(pageNumber)
{
	document.getElementById('deletePage'+pageNumber).innerHTML = '<span id="deletePage'+pageNumber+'"><a href="javascript:void(0);" onClick="deleteThisPage('+pageNumber+');"><img src="images/deletePage.jpg" border="0" height="50" width="50" alt="Delete this page"></a></span>';
	document.getElementById('tableOnPage'+pageNumber).style.display = 'block';
	document.getElementById(pageNumber).style.color = '#000';
	for(i = 1; i<=20;i++)
	{
		document.getElementById('page'+pageNumber+'_qty'+i).disabled = '';
		document.getElementById('page'+pageNumber+'_size'+i).disabled = '';
		document.getElementById('page'+pageNumber+'_type'+i).disabled = '';
		document.getElementById('page'+pageNumber+'_description'+i).disabled = '';
		document.getElementById('page'+pageNumber+'_untaxed_price'+i).disabled = '';
		document.getElementById('page'+pageNumber+'_taxable_price'+i).disabled = '';
	}
}

// This adds a page to the proposals / invoices
      function addElementBefore(node,tag,id,htm)
      {
		  
        var ne = document.createElement(tag);
        if(id) ne.id = id;
        if(htm) ne.innerHTML = htm;
        node.parentNode.insertBefore(ne,node);
      }

      function addElementAfter(node,tag,id)
      {
		var tax = document.getElementById('tax').value;
		var status = document.getElementById('h_status').value;
		var number = document.getElementById('invoice_id').value;
		var previousPage = id - 1;
		var balance_due = Number(removeComma(document.getElementById('total_balance_due_'+previousPage).innerHTML));
		
		
		var paid_down = Number(document.getElementById('paid_down').value);
		var invoiceTotal = (balance_due + paid_down);
		//alert("balance_due"+balance_due+" Paid Down:"+paid_down+" Invoice Total: "+invoiceTotal);
		document.getElementById('total_pages').value = id;
		var next = Number(id) + 1;
		if (status == 1)
		{
			var statusNumber = 'Proposal '+number;
		}
		if (status == 2)
		{
			var statusNumber = 'Invoice '+number;
		}
		
		var htm ='<div id="mooresLogo"><img src="images/moores_header.jpg"/></div>';
		htm += '<div class="printPage"><a onclick="saveAndPrint(\''+number+'\');" href="javascript:void(0);"><img width="50" height="50" border="0" alt="Print this page" src="images/printer.jpg"/></a></div>';
		htm += '<div class="deletePage"><span id="deletePage'+id+'"><a href="javascript:void(0);" onClick="deleteThisPage('+id+');"><img src="images/deletePage.jpg" border="0" height="50" width="50" alt="Delete this page"></a></span></div>';
		htm += '<div  id="tableOnPage'+id+'">';
		htm +='<table style="width: 100%">';
		htm +='<tr>';
      	htm +='<td style="width: 33%">www.mooresnursery.com</td>';
		htm +='<td style="width: 33%">blake@mooresnursery.com</td>';
		htm +='<td style="width: 33%">suzanne@mooresnursery.com</td>';
		htm +='</tr>';
		htm +='<tr><td colspan="3" style="text-align:center;">'+statusNumber+'</td></tr>';
		htm +='<tr>';
		htm +='<td style="width: 33%">';
		htm +='<div><span class="boldText">'+document.getElementById('h_company').value+'</span></div>';
		htm +='<div><span class="boldText">'+document.getElementById('h_name').value+'</span></div>';
		htm +='<div>Address: <span class="boldText">'+document.getElementById('h_address').value+'</span></div>';
        htm +='<div><span class="boldText">'+document.getElementById('h_city').value+'</span>&nbsp;';
        htm +=' <span class="boldText">&nbsp;'+document.getElementById('h_state').value+'</span>&nbsp;';
		htm +='<span class="boldText">&nbsp;'+document.getElementById('h_zip').value+'</span></div></td>';
		htm +='<td style="width: 33%">';
		
		htm +='<div>Phone 1: <span class="boldText">'+document.getElementById('h_phone_1').value+' |  ';
		htm +='Phone 2: '+document.getElementById('h_phone_2').value+' </span></div> ';
		htm +='<div>Cell Phone: <span class="boldText">'+document.getElementById('h_cell_phone').value+'</span></div>';
		htm +='<div>Fax: <span class="boldText">'+document.getElementById('h_fax').value+'</span></div>';
        htm +='<div>Home Email: <span class="boldText">'+document.getElementById('h_home_email').value+'</span></div>';
        htm +='<div>Work Email: <span class="boldText">'+document.getElementById('h_work_email').value+'</span></div></td>';
      	htm +='<td style="width: 33%">';
        htm +='<div>Estimated Date:<span id="estimated_date" class="boldText">'+document.getElementById('h_estimated_date').value+'</span></div>';
		htm +='<div>Proposal Date: <span id="proposal_date" class="boldText">'+document.getElementById('h_proposal_date').value+'</span></div>';
        htm +='<div>Invoice Date: <span id="invoice_date" class="boldText">'+document.getElementById('h_invoice_date').value+'</span></div>';
        htm +='<div>Completed Date: <span id="completed_date" class="boldText">'+document.getElementById('h_completed_date').value+'</span></div>';
        htm +='<div>Completed By:  <span class="boldText">'+document.getElementById('h_completed_by_name').value+'</span></div></tr>';
		htm +='<tr><td colspan="3">Notes: '+document.getElementById('h_notes').value+'</td></tr>';
		htm +='</table>';
		htm +='<table border="1">';
		htm +='<tr>';
      	htm +='<td class="qty centerText">Qty</td>';
      	htm +='<td class="size centerText">Size</td>';
     	htm +='<td class="type centerText">Type</td>';
     	htm +='<td class="description centerText">Description</td>';
      	htm +='<td class="untaxed_price centerText">Untaxable</td>';
      	htm +='<td class="taxed_price centerText">Taxable</td>';
      	htm +='<td class="total_price centerText">Total</td>';
		htm +='</tr>';
	    for(i=1;i<=20;i++)
	    {
			htm +='<tr>';
			htm +='<td class="qty centerText"><input onKeyUp="updateLineTotal(\''+id+'\', \''+i+'\');"  type="text" size="4" maxlength="11" name="page'+id+'_qty'+i+'" id="page'+id+'_qty'+i+'" value=""></td>';
			htm +='<td class="size centerText"><input type="text" size="4" maxlength="10" name="page'+id+'_size'+i+'" id="page'+id+'_size'+i+'" value=""></td>';
			htm +='<td class="type centerText"><input type="text" size="4" maxlength="50" name="page'+id+'_type'+i+'" id="page'+id+'_type'+i+'" value=""></td>';
			htm +='<td class="description centerText"><input type="text" size="50"  maxlength="60" name="page'+id+'_description'+i+'" id="page'+id+'_description'+i+'" value=""></td>';
			htm +='<td class="untaxed_price centerText txt'+i+'"><input  class="ntxt'+id+'" onKeyUp="updateLineTotal(\''+id+'\', \''+i+'\');" type="text" size="6"  maxlength="12" name="page'+id+'_untaxed_price'+i+'" id="page'+id+'_untaxed_price'+i+'" value=""></td>';
			htm +='<td class="taxed_price centerText"><input class="txt'+id+'" onKeyUp="updateLineTotal(\''+id+'\', \''+i+'\');" type="text" size="6" maxlength="12" name="page'+id+'_taxable_price'+i+'" id="page'+id+'_taxable_price'+i+'" value=""></td>';
			htm +='<td class="total_price centerText"><div id="page'+id+'_row'+i+'_total"></div></td>';
			htm +='</tr>';
	    }
		htm +='<tr>';
     	htm +='<td></td>';
		htm +='<td></td>';
		htm +='<td></td>';
		htm +='<td>Total Tax (@ <span id="tax_rate_1_page_'+id+'">'+tax+'</span>%) Paid for page '+id+'</td>';
		htm +='<td></td>';
        htm +='<td></td>';
		htm +='<td class="centerText"><div>$&nbsp;<span id="total_tax_paid_page'+id+'"></span></div></td>';
		htm +='</tr>';
		htm +='<tr>';
		htm +='<td colspan="4">';
		htm +='<div>Terms: 25% downpayment, NET on completion.  Payment as work progresses.</div><div>Please read reverse side for guarantee and instructions for the care of your</div><div>landscape.  We are not responsible for customers underground connections.</div>';
		htm +='</td>';
		htm +='<td class="untaxed_price centerText">';
		htm +='<div>Untaxable</div>';
		htm +='<div>$&nbsp;<span id="page'+id+'_non_taxable_total"></span><div id="nonTaxableSum'+id+'"></div></div>';
		htm +='</td>';
		htm +='<td class="taxed_price centerText">';
		htm +='<div>Taxable</div>';
		htm +='<div>$&nbsp;<span id="page'+id+'_taxable_total"></span><div id="taxableSum'+id+'"></div></div>';
		htm +='</td><td>&nbsp;</td></tr>';
		htm +='<tr>';
		htm +='<td colspan="6" class="textRight boldText">Page '+id+' total w/ <span id="tax_rate_2_page_'+id+'">'+tax+'</span>  % tax&nbsp;</td>';
		htm +='<td class="centerText">$&nbsp;<span id="page'+id+'_total"></span></td>';
		htm +='</td>';
		htm +='</tr>';
		htm +='<tr>';
		htm +='<td colspan="6" class="textRight boldText">Invoice Total&nbsp;&nbsp;</td>';
		htm +='<td class="centerText">$&nbsp;'+invoiceTotal+'</td>';
		htm +='</tr>';
		htm +='<tr>';
		htm +='<td colspan="6" class="textRight boldText">Paid Down&nbsp;&nbsp;</td>';
		htm +='<td class="centerText">$&nbsp;<span id="paid_down_page'+id+'">'+paid_down.toFixed(2)+'</span></td>';
		htm +='</tr>';
		htm +='<tr>';
		htm +='<td colspan="6" class="textRight boldText">Total Balance Due&nbsp;&nbsp;</td>';
		htm +='<td class="centerText">$&nbsp;<span id="total_balance_due_'+id+'">'+balance_due.toFixed(2)+'</span></td>';
		htm +='</tr>';
		htm +='<tr>';
		htm +='<td colspan="7">';
		htm +='<div>By signing below indicates that I have read and understood this is a legally binding contract which includes supplemental contitions on the reverse side.</div>';
		htm +='<div class="smallText">By purchasers signature below, purchaser agrees to all terms and conditions of the landscape contract</div>';
		htm +='<div>&nbsp;</div>';
		htm +='<div>Purchaser&rsquo;s Signature: _______________________________________________   Date: _________________________</div>';
		htm +='<div>&nbsp;</div>';
		htm +='<div>Salesman&rsquo;s Signature: ________________________________________________  Date: _________________________</div>';
		htm +='<div>Sign and return the white copy with payment * Customer retains yellow copy</div>';
		htm +='</td>';
		htm +='</tr>';
		htm +='<tr>';
		htm +='<td colspan="7" class="centerText"><div>Page '+id+' of '+id+'</div></td>';
		htm +='</tr>';
		htm +='</table></div>';
		
		
        var ne = document.createElement(tag);
        if(id) ne.id = id;
        if(htm) ne.innerHTML = htm;
        node.parentNode.insertBefore(ne,node.nextSibling);
		var newButton = '<input id="nextButton" type="button" value="Add Another Page" onclick="addElementAfter(document.getElementById(\''+id+'\'),\'div\','+next+')"; />';
		
		document.getElementById('addAnother').innerHTML = newButton;
      }
	  
function changePaidDown()
{
	var currentValue = document.getElementById('paid_down').value;
	var currentStatus = document.getElementById('changePaidDownDiv').style.display;
	if (currentStatus == 'none')
	{
		document.getElementById('changePaidDownDiv').style.display = 'block';
		document.getElementById('updatedPaidDownAmount').value = currentValue;
	}
	else
	{
		document.getElementById('changePaidDownDiv').style.display = 'none';
	}
}
function copyNewAmount()
{
	var newAmount = document.getElementById('updatedPaidDownAmount').value;
			document.getElementById('paid_down').value = newAmount;
			document.getElementById('changePaidDownDiv').style.display = 'none';
	getPageTotals();
}


function formatDecimal() {
	var addzero = true;
	decimaln = 2;
 	var argvalue = removeComma(document.getElementById('updatedPaidDownAmount').value);
	argvalue.replace(/[^0-9]/, '');
 	var numOfDecimal = (decimaln == null) ? 2 : decimaln;
  	var number = 1;

  number = Math.pow(10, numOfDecimal);

  argvalue = Math.round(parseFloat(argvalue) * number) / number;
  // If you're using IE3.x, you will get error with the following line.
  // argvalue = argvalue.toString();
  // It works fine in IE4.
  argvalue = "" + argvalue;

  if (argvalue.indexOf(".") == 0)
    argvalue = "0" + argvalue;

  if (addzero == true) {
    if (argvalue.indexOf(".") == -1)
      argvalue = argvalue + ".";

    while ((argvalue.indexOf(".") + 1) > (argvalue.length - numOfDecimal))
      argvalue = argvalue + "0";
  }
	// lastly update the field before submitting
 	document.getElementById('updatedPaidDownAmount').value = argvalue;
}
function changeDate(div,updatedDiv)
{
	var currentStatus = document.getElementById(div).style.display;
	if (currentStatus == 'none')
	{
		document.getElementById(div).style.display = 'block';
	}
	else
	{
		document.getElementById(div).style.display = 'none';
	}
}

function copyNewDate(updateDiv, getValue, oldDiv)
{
	
	var newValue = document.getElementById(getValue).value;
	document.getElementById(updateDiv).innerHTML = newValue;
	document.getElementById('h_'+updateDiv).value = newValue;
	document.getElementById(oldDiv).style.display = 'none';
}


function verifyDelete(option)
{
	var newHtml = '';
	if(option == 'yes')
	{
		newHtml += '<div class="errorMessage">';
		newHtml += 'Are you sure you want to delete this Invoice?<br>';
		newHtml += 'Yes <input type="checkbox" name="deleteThis"><br>';
		newHtml += 'No <input type="checkbox" onClick="verifyDelete(\'no\');">';
		newHtml +='</div>';
	}
	if(option == 'no')
	{
		if(document.getElementById('radioDelete').checked == true)
		{
			newHtml += '<div class="success">';
			newHtml += 'Change status of this to either proposal or invoice<br>';
			newHtml += '<input name="updateLink" type="radio" onClick="deleteNo(\'radioProposal\');"> Proposal<br>';
			newHtml += '<input name="updateLink" type="radio" onClick="deleteNo(\'radioInvoice\');"> Invoice<br>';
			newHtml += '</div>';
			// disable the submit button until they make a choice.
			document.getElementById('submitButton').disabled = true;
		}
		else
		{
			newHtml += '';
		}
	}
	
	document.getElementById('verifyDelete').innerHTML = newHtml;
}

function verifyDeleteTreeShrub()
{
	var checkStatus = document.getElementById('deleteTreeShrub').checked;
	// disable the submit button until yes is checked
	document.getElementById('submitButton').disabled = true;
	if(checkStatus == true)
	{
		var newHtml = '<div class="errorMessage">';
		newHtml += 'Are you sure you want to delete this Tree Shrub program?<br>';
		newHtml += 'Yes <input type="checkbox" name="deleteThis" id="deleteThis" onClick="approveDelete()" value="TRUE"><br>';
		newHtml += 'No <input type="checkbox" onClick="cancelDelete(\'no\');">';
		newHtml +='</div>';
	}
	else
	{
		document.getElementById('submitButton').disabled = false;

		var newHtml = '';
	}
	document.getElementById('verifyDelete').innerHTML = newHtml;
}

function verifyDeleteLawnContract()
{
	var checkStatus = document.getElementById('deleteLawnContract').checked;
	// disable the submit button until yes is checked
	document.getElementById('submitButton').disabled = true;
	if(checkStatus == true)
	{
		var newHtml = '<div class="errorMessage">';
		newHtml += 'Are you sure you want to delete this Lawn Contract?<br>';
		newHtml += 'Yes <input type="checkbox" name="deleteThis" id="deleteThis" onClick="approveDelete()" value="TRUE"><br>';
		newHtml += 'No <input type="checkbox" onClick="cancelDelete(\'no\');">';
		newHtml +='</div>';
	}
	else
	{
		document.getElementById('submitButton').disabled = false;

		var newHtml = '';
	}
	document.getElementById('verifyDelete').innerHTML = newHtml;
}

function cancelDelete()
{
	var newHtml = '';
	document.getElementById('verifyDelete').innerHTML = newHtml;
	if (document.getElementById('deleteTreeShrub') != null)
	{
		document.getElementById('deleteTreeShrub').checked = false;
	}
	if (document.getElementById('deleteLawnContract') != null)
	{
		document.getElementById('deleteLawnContract').checked = false;
	}
	document.getElementById('submitButton').disabled = false;
	
}
function approveDelete()
{
	var checkStatus = document.getElementById('deleteThis').checked;
	if (checkStatus == true)
	{
		document.getElementById('submitButton').disabled = false;
	}
	else
	{
		document.getElementById('submitButton').disabled = true;
	}
}

function deleteNo(option)
{
	document.getElementById(option).checked = true;
	document.getElementById('verifyDelete').innerHTML = '';
	document.getElementById('submitButton').disabled = false;
}

/****************** End Proposals and Invoices ******************/


