		
		// XMLHttp Ajax Object
		var xmlhttp;
		function loadXMLDoc(url, selectObject, isSelect, isText)
		{
			xmlhttp = null;
			if (window.XMLHttpRequest)
				xmlhttp = new XMLHttpRequest();
			else if (window.ActiveXObject)
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			if (xmlhttp != null)
			{
				xmlhttp.onreadystatechange = function()
				{
					if (xmlhttp.readyState == 4)
					{
						if (xmlhttp.status == 200)
						{
							if(isSelect)
							{
								var selects = xmlhttp.responseText.split(",");
								for(var i in selects)
								{
									if(selects[i] != "")
									{
										try
										{
											selectObject.add(new Option(selects[i], selects[i]), null);
										}
										catch (e)
										{
											selectObject.add(new Option(selects[i], selects[i]));
										}
									}
								}
							}
							else if(isText)
								getPriceR();
							else
								selectObject.innerHTML = xmlhttp.responseText;
						}
						else
							alert("Problem retrieving XML data");
					}
				};
				xmlhttp.open("GET", url, true);
				xmlhttp.send(null);
			}
			else
				alert("Your browser does not support XMLHTTP.");
		}

		function getModels(selectObject)
		{
			var year = document.getElementById('selYear').options[document.getElementById('selYear').selectedIndex].value;
			var make = document.getElementById('selMake').options[document.getElementById('selMake').selectedIndex].value;
			select = document.getElementById(selectObject);

			if(make != "Select a Make")
			{
				removeAllOptions(select);
				removeAllOptions(document.getElementById("selTrim"));
				loadXMLDoc(url+"getModels.php?make="+escape(make)+"&year="+year, select, true, false);
				select.disabled = false;
			}
		}

		function getTrims(selectObject)
		{
			var year = document.getElementById('selYear').options[document.getElementById('selYear').selectedIndex].value;
			var make = document.getElementById('selMake').options[document.getElementById('selMake').selectedIndex].value;
			var model = document.getElementById('selModel').options[document.getElementById('selModel').selectedIndex].value;
			select = document.getElementById(selectObject);

			if(make != "Select a Make" && model != "Select a Model")
			{
				removeAllOptions(select);
				loadXMLDoc(url+"getModels.php?make="+escape(make)+"&year="+year+"&model="+escape(model), select, true, false);

				select.disabled = false;
			}
		}

		function getMeasures(selectObject, textonly)
		{
			var txto = "";
			if(textonly != null)
				txto = "&to="+textonly;
			var year = document.getElementById('selYear').options[document.getElementById('selYear').selectedIndex].value;
			var make = document.getElementById('selMake').options[document.getElementById('selMake').selectedIndex].value;
			var model = document.getElementById('selModel').options[document.getElementById('selModel').selectedIndex].value;
			var trim = document.getElementById('selTrim').options[document.getElementById('selTrim').selectedIndex].value;
			select = document.getElementById(selectObject);

			if(make != "Select a Make" && model != "Select a Model" && trim != "Select a Trim")
			{
				loadXMLDoc(url+"getModels.php?make="+make+"&year="+year+"&model="+model+"&trim="+trim+txto, select, false, false);
			}
		}

		function setCheckBoxes(ds, dd, dbd, dbdw, dbw, dbp, df, dwp, ps, pd, pbd, pbdw, pbw, pbp, pf, pwp, fb, rb, ff, rf, h, r, rs, fs, m, bw)
		{
			var cbs = new Array(new Array("DS", ds), new Array("DD", dd), new Array("BDD", dbd), new Array("BDDW", dbdw), new Array("BDW", dbw), new Array("BDP", dbp), new Array("DF", df), new Array("PS", ps), new Array("PD", pd), new Array("BPD", pbd), new Array("BPDW", pbdw), new Array("BPW", pbw), new Array("BPP", pbp), new Array("PF", pf), new Array("FB", fb), new Array("RB", rb), new Array("H", h), new Array("R", r), new Array("RS", rs), new Array("FS", fs), new Array("M", m), new Array("BW", bw), new Array("DWP", dwp), new Array("PWP", pwp));
			for(i = 0; i < cbs.length; i++)
			{
				document.getElementById("cb"+cbs[i][0]).checked = cbs[i][1];
				if(cbs[i][0] == "DS" && !cbs[i][1])
					document.getElementById("tdDS").style.display = "table-cell";
				else if(cbs[i][0] == "DS" && cbs[i][1])
					document.getElementById("tdDS").style.display = "none";
				else if(cbs[i][0] == "PS" && !cbs[i][1])
					document.getElementById("tdPS").style.display = "table-cell";
				else if(cbs[i][0] == "PS" && cbs[i][1])
					document.getElementById("tdPS").style.display = "none";
				else if(cbs[i][0] == "DWP" && !cbs[i][1])
					document.getElementById("tdDWP").style.display = "table-cell";
				else if(cbs[i][0] == "DWP" && cbs[i][1])
					document.getElementById("tdDWP").style.display = "none";
				else if(cbs[i][0] == "PWP" && !cbs[i][1])
					document.getElementById("tdPWP").style.display = "table-cell";
				else if(cbs[i][0] == "PWP" && cbs[i][1])
					document.getElementById("tdPWP").style.display = "none";
			}
		}

		function setWrapType(obj)
		{
			switch(obj.options[obj.selectedIndex].value)
			{
				// Window Decal
				case "1":
					setCheckBoxes(false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true);
					alert("Please select a window, or windows, below. Alternatively, you may enter a flat dimension.");
					break;

				// Door Decal
				case "2":
					setCheckBoxes(false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false);
					alert("Please select a panel below. Alternatively, you may enter a flat dimension.");
					break;

				// Partial
				case "3":
					setCheckBoxes(false, false, true, false, false, true, false, false, false, false, true, false, false, true, false, false, false, false, false, false, false, false, true, false, false, false);
					alert("Commmon options have been set. Please select side options below. If wrapping the bumpers, please make sure they are painted before continuing.");
					break;

				// Full
				case "4":
					setCheckBoxes(true, false, false, false, false, false, false, false, true, false, false, false, false, false, false, false, true, true, true, true, true, false, true, true, false, true);
					alert("Commmon options have been set. Please select other options below. Please make sure bumpers are painted before continuing.");
					break;

				// Complete
				case "5":
					setCheckBoxes(true, false, false, false, false, false, false, false, true, false, false, false, false, false, false, false, true, true, true, true, true, true, true, true, false, true);
					alert("All options have been selected. Please make sure bumpers are painted before continuing.");
					break;

				// Other
				case "6":
					setCheckBoxes(false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false);
					alert("No options have been selected; please select which options you want below.");
					break;
			}
		}

		var cCount = 0;
		function addCustom()
		{
			cCount++;

			var tbody = document.getElementById("tblTotal").getElementsByTagName("TBODY")[0];
			var row = document.createElement("tr");
			
			var td = document.createElement("td");
			var input = document.createElement("input");
			input.setAttribute("type", "text");
			input.setAttribute("name", "txtSide"+cCount);
			input.setAttribute("id", "txtSide"+cCount);
			input.setAttribute("value", "Side "+cCount);
			td.appendChild(input);
			row.appendChild(td);

			td = document.createElement("td");
			input = document.createElement("input");
			input.setAttribute("type", "text");
			input.setAttribute("name", "txtSide"+cCount+"L");
			input.setAttribute("id", "txtSide"+cCount+"L");
			input.setAttribute("value", "0");
			input.setAttribute("onkeyup", "javascript:getSquareFootage(this.value, document.getElementById('txtSide"+cCount+"H').value, 'Side"+cCount+"SF');");
			input.setAttribute("style", "width: 40px;");
			td.appendChild(input);
			td.appendChild(document.createTextNode(" in."));
			row.appendChild(td);

			td = document.createElement("td");
			input = document.createElement("input");
			input.setAttribute("type", "text");
			input.setAttribute("name", "txtSide"+cCount+"H");
			input.setAttribute("id", "txtSide"+cCount+"H");
			input.setAttribute("value", "0");
			input.setAttribute("onkeyup", "javascript:getSquareFootage(this.value, document.getElementById('txtSide"+cCount+"L').value, 'Side"+cCount+"SF');");
			input.setAttribute("style", "width: 40px;");
			td.appendChild(input);
			td.appendChild(document.createTextNode(" in."));
			row.appendChild(td);

			td = document.createElement("td");
			var element = document.createElement("span");
			var newAttr = document.createAttribute("id");
			newAttr.nodeValue = "Side"+cCount+"SF";
			element.setAttributeNode(newAttr);
			element.innerHTML = "0.00";
			td.appendChild(element);
			row.appendChild(td);

			tbody.appendChild(row);
		}

		var qtyArray = new Array(26); // array of quantities for each line item
		var lineItemsArr; // array of line items
		var isFleet = false;
		// Generate button pressed, get required parameters and send the lineitems to the Estimator class
		function genPrice(fleet)
		{
			isFleet = fleet; // set global value so can use it again in next method
			var ordertype = 1;
			var ot = document.forms[0]["txtOrderType"];
			if(ot != undefined)
				ordertype = ot.value;
			
			var discountf = 0.00;
			if(document.getElementById("txtDiscountFlat") != undefined)
				discountf = document.getElementById("txtDiscountFlat").value;
			var discountp = 0.00;
			if(document.getElementById("txtDiscountPCT") != undefined)
				discountp = document.getElementById("txtDiscountPCT").value;

			var cb1 = false;
			var cb2 = false;
			if(document.getElementById("cbType1") != undefined)
			{
				cb1 = document.getElementById("cbType1").checked;
				cb2 = document.getElementById("cbType2").checked;
			}
			if(fleet)
				cb2 = true;
			
			var qty = document.getElementById("txtQuantity").value;
			var items = "";
			var tier = parseInt(document.getElementById("selIType").options[document.getElementById("selIType").selectedIndex].value)

			if(cb1 || ordertype == 2)
			{
				var count = cCount;
				if(ordertype == 2)
					count = sideCount;
				
				if(count <= 0)
					return alert("You need to add sides to your custom quote first!");
				else
				{
					lineItemsArr = new Array(count);
					for(i = 1; i <= count; i++)
					{
						var desc = "txtSide"+i;
						var width = "txtSide"+i+"L";
						var height = "txtSide"+i+"H";
						if(ordertype == 2)
						{
							desc = i + "sideD";
							width = i + "sideW";
							height = i + "sideH";
						}
						var obj = document.getElementById(desc);
						if(obj != null)
						{
							if(parseFloat(document.getElementById(width).value) <= 0 || parseFloat(document.getElementById(height).value) <= 0)
								return alert("The '" + obj.value + "' line item has a zero filled dimension. Please correct this to include it in the estimate.");
							else
							{
								if(qtyArray[i-1] == null)
									qtyArray[i-1] = 1;
	
								var ll = parseFloat(document.getElementById(width).value);
								var lh = parseFloat(document.getElementById(height).value)
	
								items = items + obj.value + "," + obj.value + ":" + ll + ":" + lh + "|," + qtyArray[i-1] + ";";
								lineItemsArr[i-1] = obj.value + "," + obj.value + ":" + ll + ":" + lh + "|," + qtyArray[i-1];
							}
						}
					}
				}
			}
			else if(cb2)
			{
				lineItemsArr = new Array(13);
				var lineItems = new Array(13);
				//	Types:  1 = NonWindow = Only can have ControlTac V3
				//			2 = Window = Can have ControlTacV3 or Perforation
				//			3 = Other = Calendered Vinyl / Die Cut
				lineItems[0] = new Array(1, "FB", "Front Bumper", parseFloat(document.getElementById("txtFBL").value), parseFloat(document.getElementById("txtFBH").value), null);
				lineItems[1] = new Array(1, "RB", "Rear Bumper", parseFloat(document.getElementById("txtRBL").value), parseFloat(document.getElementById("txtRBH").value), null);
				lineItems[2] = new Array(1, "H", "Hood", parseFloat(document.getElementById("txtHL").value), parseFloat(document.getElementById("txtHH").value), null);
				lineItems[3] = new Array(1, "R", "Roof", parseFloat(document.getElementById("txtRL").value), parseFloat(document.getElementById("txtRH").value), null);
				lineItems[4] = new Array(1, "FS", "Front Side", parseFloat(document.getElementById("txtFSL").value), parseFloat(document.getElementById("txtFSH").value), null);
				lineItems[5] = new Array(1, "RS", "Cargo/Trunk", parseFloat(document.getElementById("txtRSL").value), parseFloat(document.getElementById("txtRSH").value), null);
				lineItems[6] = new Array(parseInt(document.getElementById("selMatBW")[document.getElementById("selMatBW").selectedIndex].value), "BW", "Cargo Window", parseFloat(document.getElementById("txtBWL").value), parseFloat(document.getElementById("txtBWH").value), null);
				lineItems[7] = new Array(1, "M", "Mirror", parseFloat(document.getElementById("txtML").value), parseFloat(document.getElementById("txtMH").value), null);
				lineItems[8] = new Array(1, "DS", "Driver Side", parseFloat(document.getElementById("txtDSL").value), parseFloat(document.getElementById("txtDSH").value), new Array(
																new Array(1, "DF", "Driver Fender", parseFloat(document.getElementById("txtDFL").value), parseFloat(document.getElementById("txtDFH").value)),
																new Array(1, "DD", "Driver Door", parseFloat(document.getElementById("txtDDL").value), parseFloat(document.getElementById("txtDDH").value)),
																new Array(1, "BDD", "Driver Second-row Door", parseFloat(document.getElementById("txtBDDL").value), parseFloat(document.getElementById("txtBDDH").value)),
																new Array(1, "BDP", "Driver Qtr-panel", parseFloat(document.getElementById("txtBDPL").value), parseFloat(document.getElementById("txtBDPH").value))
										));
				lineItems[9] = new Array(1, "PS", "Passenger Side", parseFloat(document.getElementById("txtPSL").value), parseFloat(document.getElementById("txtPSH").value), new Array(
																new Array(1, "PF", "Passenger Fender", parseFloat(document.getElementById("txtPFL").value), parseFloat(document.getElementById("txtPFH").value)),
																new Array(1, "PD", "Passenger Door", parseFloat(document.getElementById("txtPDL").value), parseFloat(document.getElementById("txtPDH").value)),
																new Array(1, "BPD", "Passenger Second-row Door", parseFloat(document.getElementById("txtBPDL").value), parseFloat(document.getElementById("txtBPDH").value)),
																new Array(1, "BPP", "Passenger Qtr-panel", parseFloat(document.getElementById("txtBPPL").value), parseFloat(document.getElementById("txtBPPH").value))
										));
				lineItems[10] = new Array(2, "DWP", "Driver Side Window Perforation", parseFloat(document.getElementById("txtDWPL").value), parseFloat(document.getElementById("txtDWPH").value), new Array(
					
																new Array(2, "BDDW", "Driver Second-row Window", parseFloat(document.getElementById("txtBDDWL").value), parseFloat(document.getElementById("txtBDDWH").value)),
																new Array(2, "BDW", "Driver Qtr-panel Window", parseFloat(document.getElementById("txtBDWL").value), parseFloat(document.getElementById("txtBDWH").value))
										));
				lineItems[11] = new Array(2, "PWP", "Passenger Side Window Perforation", parseFloat(document.getElementById("txtPWPL").value), parseFloat(document.getElementById("txtPWPH").value), new Array(
																new Array(2, "BPDW", "Passenger Second-row Window", parseFloat(document.getElementById("txtBPDWL").value), parseFloat(document.getElementById("txtBPDWH").value)),
																new Array(2, "BPW", "Passenger Qtr-panel Window", parseFloat(document.getElementById("txtBPWL").value), parseFloat(document.getElementById("txtBPWH").value))
										));
				lineItems[12] = new Array(parseInt(document.getElementById("selMatO")[document.getElementById("selMatO").selectedIndex].value), "O", document.getElementById("txtOther").value, parseFloat(document.getElementById("txtOL").value), parseFloat(document.getElementById("txtOH").value), null);

				// get sides
				var counta = 0;
				for(i = 0; i < lineItems.length; i++)
				{
					//if(lineItems[i][1] == "M" && qtyArray[counta] == null)
					//	qtyArray[counta] = "2";
					//else
					//{
						if(qtyArray[counta] == null)
							qtyArray[counta] = "1";
					//}

					// No lineitems, side is lineitem, if checkbox is checked, add to items
					if(lineItems[i][5] == null && document.getElementById("cb" + lineItems[i][1]).checked)
					{
						if(i == 12)
						{
							items = items + lineItems[i][2] + "," + lineItems[i][2] + ":" + lineItems[i][3] + ":" + lineItems[i][4] + "|," + parseInt(qtyArray[counta]) + ";";
							lineItemsArr[counta] = "Other," + lineItems[i][2] + ":" + lineItems[i][3] + ":" + lineItems[i][4] + "|," + parseInt(qtyArray[counta]);
						}
						else
						{
							items = items + lineItems[i][2] + "," + lineItems[i][2] + ":" + lineItems[i][3] + ":" + lineItems[i][4] + "|," + parseInt(qtyArray[counta]) + ";";
							lineItemsArr[counta] = lineItems[i][2] + "," + lineItems[i][2] + ":" + lineItems[i][3] + ":" + lineItems[i][4] + "|," + parseInt(qtyArray[counta]);
						}
						counta++;
					}
					// Has line items; add side and go through each line item
					else if(lineItems[i][5] != null)
					{
						if(document.getElementById("cb" + lineItems[i][1]).checked)
						{
							items = items + lineItems[i][2] + "," + lineItems[i][2] + ":" + lineItems[i][3] + ":" + lineItems[i][4] + "|," + parseInt(qtyArray[counta]) + ";";
							lineItemsArr[counta] = lineItems[i][2] + "," + lineItems[i][2] + ":" + lineItems[i][3] + ":" + lineItems[i][4] + "|," + parseInt(qtyArray[counta]);
							counta++;
						}
						else
						{
							var items2 = "";
							var count = 0;
							for(j = 0; j < lineItems[i][5].length; j++)
							{
								if(document.getElementById("cb" + lineItems[i][5][j][1]).checked)
								{
									items2 = items2 + lineItems[i][5][j][2] + ":" + lineItems[i][5][j][3] + ":" + lineItems[i][5][j][4] + "|";
									count++;
								}
							}
							if(count > 0)
							{
								items = items + lineItems[i][2] + "," + items2 + "," + parseInt(qtyArray[counta]) + ";";
								lineItemsArr[counta] = lineItems[i][2] + "," + items2 + "," + parseInt(qtyArray[counta]);
								counta++;
							}
						}
					}
				}
			}
			else
				return alert("Please select a estimate pricing type. (Either total square footed-based or per-side)");

			loadXMLDoc(url+"getModels.php?getPrice=true&ordertype="+ordertype+"&tier="+tier+"&discountf="+discountf+"&discountp="+discountp+"&qty="+qty+"&items="+items+"", null, false, true);
		}

		function getPriceR()
		{
			var materials = 0.00;
			var subtotal = 0.00;
			var discounts = 0.00;
			var profit = 0.00;
			var grandtotal = 0.00;
			var totalsqft = 0.00;

			// line items input
			var liinput = document.getElementById("txtlineItems");
			liinput.value = "";
			
			var qty = document.getElementById("txtQuantity").value;
			
			var pricingdiv = document.getElementById("divPricing");
			pricingdiv.innerHTML = "";
			var rtntxt = "<table style='width: 100%;' id='tblItems' cellspacing=\"0\" cellpadding=\"0\"><tr><td class=\"head\">Qty</td><td class=\"head\">Description</td><td class=\"head\">Materials</td><td class=\"head\">Sub-Total</td><td class=\"head\">Discounts</td><td class=\"head\">Margin</td><td class=\"head\">Total</td></tr>"

			var discountFlat = 0.00;
			var discountFlatobj = document.getElementById("txtDiscountFlat");
			if(discountFlatobj != null)
				discountFlat = parseFloat(discountFlatobj.value);

			var lines = String(xmlhttp.responseText).split(";");
			var pricing2 = lines[0].split(",");

			var sqftp = parseFloat(pricing2[0]);
			var sqftm = parseFloat(pricing2[1]);
			var graphic_design_price = parseFloat(pricing2[2]);
			var rush_price = parseFloat(pricing2[3]);

			// side, sqft, mats, subtotal, discounts, profit, grand-total
			for(i = 1; i < lines.length; i++)
			{
				String(lines[i]);
				if(lines[i] != "")
				{
					var items = lines[i].split(",", 7);
					// Add to grand totals
					totalsqft += parseFloat(items[1])*qty;
					materials += parseFloat(items[2])*qty;
					subtotal += parseFloat(items[3])*qty;
					discounts += parseFloat(items[4])*qty;
					profit += parseFloat(items[5])*qty;
					grandtotal += parseFloat(items[6])*qty;

					// Output
					rtntxt += "<tr><td class=\"item\"><input type=\"text\" style=\"width: 20px; margin: 2px;\" onkeyup=\"javascript:updateQTY("+(i-1)+", this.value)\" value=\""+qtyArray[(i-1)]+"\" /></td><td class=\"item\">" + items[0] + "</td><td class=\"item\">" + formatCurrency(items[2]) + "</td><td class=\"item\">" + formatCurrency(items[3]) + "</td><td class=\"item\">" + formatCurrency(items[4]) + "</td><td class=\"item\">" + formatCurrency(items[5]) + "</td><td class=\"item\">" + formatCurrency(items[6]) + "</td></tr><tr><td colspan=\"6\" style=\"padding: 0px 0 20px 20px; font-size: 9pt;\">Material: ";
					
					/*switch(lineItems[i][0])
					{
						case 1:
							rtntxt += matPrice[0][0] + "<br />Laminate: " + matPrice[1][0];
							break;

						case 2:
							rtntxt += matPrice[2][0];
							break;

						case 3:
							rtntxt += matPrice[3][0] + "<br />Laminate: " + matPrice[1][0];
							break;
					}*/

					rtntxt += "</td></tr>";
					
					// Add to line items input
					liinput.value += lineItemsArr[i-1]+","+items[2]+","+items[3]+","+items[4]+","+items[5]+","+items[6]+","+1+";";
				}
			}

			// Graphic Design
			if(document.getElementById("cbGD").checked)
			{
				rtntxt += "<tr><td class=\"item single\" style=\"text-align: center;\">1</td><td class=\"item single\">Graphic Design</td><td class=\"item single\">" + formatCurrency(0) + "</td><td class=\"item single\">" + formatCurrency(500) + "</td><td class=\"item single\">" + formatCurrency(0) + "</td><td class=\"item single\">" + formatCurrency(0) + "</td><td class=\"item single\">" + formatCurrency(500) + "</td></tr>";
				subtotal += graphic_design_price;
				grandtotal += graphic_design_price;
			}

			// Rush fee
			if(document.getElementById("cbRush").checked)
			{
				rtntxt += "<tr><td class=\"item single\" style=\"text-align: center;\">1</td><td class=\"item single\">Rush Fee</td><td class=\"item single\">" + formatCurrency(0) + "</td><td class=\"item single\">" + formatCurrency(100) + "</td><td class=\"item single\">" + formatCurrency(0) + "</td><td class=\"item single\">" + formatCurrency(50) + "</td><td class=\"item single\">" + formatCurrency(100) + "</td></tr>";
				subtotal += rush_price;
				profit += rush_price/2;
				grandtotal += rush_price;
			}

			// Get Installation type and add it to line items
			rtntxt += "<tr><td class=\"item single\" style=\"text-align: center;\">1</td><td class=\"item single\">" + document.getElementById("selIType").options[document.getElementById("selIType").selectedIndex].text + "</td><td class=\"item single\">$0.00</td><td class=\"item single\">$0.00</td><td class=\"item single\">$0.00</td><td class=\"item single\">$0.00</td><td class=\"item single\">$0.00</td></tr><tr><td colspan=\"6\" style=\"padding: 0px 0 20px 20px; font-size: 9pt; font-style: italic;\">Price is factored into grand total</td></tr>";

			if(isNaN(grandtotal))
				alert("Please make sure all side quantities are filled in.  If you are not using a side, place a '0' in the square footage box");
			else
				pricingdiv.innerHTML += rtntxt+"<tr><td colspan=\"7\" style=\"border-top: 2px solid black;\"></td></tr><tr><td colspan=\"5\" rowspan=\"5\"><p><span style=\"font-weight: bold;\">Total Feet<span style=\"position: relative; bottom: 0.5em; font-size: 0.8em;\">2</span></span>: "+(parseInt(totalsqft*100)/100)+"</p><p><span style=\"font-weight: bold;\">Price per Feet<span style=\"position: relative; bottom: 0.5em; font-size: 0.8em;\">2</span></span>: " + formatCurrency(sqftp + sqftm) + "<input type=\"hidden\" name=\"txtPPSQFT\" value=\"" + (sqftp + sqftm) + "\" /></p></td><td style=\"text-align: right; font-weight: bold;\">Materials:</td><td style=\"text-align: left;\">" + formatCurrency(materials) + "</td></tr>"
									+ "<tr><td style=\"text-align: right; font-weight: bold;\">Sub-Total:</td><td style=\"text-align: left;\">" + formatCurrency(subtotal) + "</td></tr>"
									+ "<tr><td style=\"text-align: right; font-weight: bold;\">Discounts:</td><td style=\"text-align: left;\">" + formatCurrency(discounts + discountFlat) + "</td></tr>"
									+ "<tr><td style=\"text-align: right; font-weight: bold;\">Grand Total*:</td><td style=\"text-align: left;\">" + formatCurrency(grandtotal - discountFlat) + "</td></tr>"
									+ "<tr><td style=\"text-align: right; font-weight: bold;\">Gross Margin:</td><td style=\"text-align: left;\">" + formatCurrency(profit - discountFlat) + "</td></tr>"
									+ "<tr><td colspan=\"7\" style=\"font-style: italic; font-size: 8pt; text-align: left;\">* Please note that tax is not included in this estimate. Taxes must be added when customer pays for order.</td></tr>"
									+ "</table>";
			if(isFleet)
				pricingdiv.innerHTML = "<p style=\"font-weight: bold; font-size: 14pt; text-align: center;\">Total: " + formatCurrency(grandtotal - discountFlat) + "</p>";
		}

		function updateQTY(objID, qty)
		{
			qtyArray[objID] = qty;
		}

		function showSide(objTD)
		{
			var dtypes = new Array("DD", "BDD", "BDP", "DF");
			var ptypes = new Array("PD", "BPD", "BPP", "PF");
			var wtypes = new Array("BDDW", "BDW", "BPDW", "BPW");

			var display = document.getElementById("td"+objTD);
			if(display.style.display == "none")
			{
				display.style.display = "table-cell";
				document.getElementById("txt"+objTD+"L").disabled = "true";
				document.getElementById("txt"+objTD+"H").disabled = "true";
				document.getElementById("cb"+objTD).checked = false;
				
				if(objTD == "DS")
				{
					for(i = 0; i < dtypes.length; i++)
					{
						document.getElementById("cb"+dtypes[i]).checked = true;
					}
				}
				else if(objTD == "PS")
				{
					for(i = 0; i < ptypes.length; i++)
					{
						document.getElementById("cb"+ptypes[i]).checked = true;
					}
				}
				else if(objTD == "WP")
				{
					for(i = 0; i < wtypes.length; i++)
					{
						document.getElementById("cb"+wtypes[i]).checked = true;
					}
				}
			}
			else
			{
				display.style.display = "none";
				document.getElementById("txt"+objTD+"L").disabled = null;
				document.getElementById("txt"+objTD+"H").disabled = null;
				document.getElementById("cb"+objTD).checked = true;

				if(objTD == "DS")
				{
					for(i = 0; i < dtypes.length; i++)
					{
						document.getElementById("cb"+dtypes[i]).checked = false;
					}
				}
				else if(objTD == "PS")
				{
					for(i = 0; i < ptypes.length; i++)
					{
						document.getElementById("cb"+ptypes[i]).checked = false;
					}
				}
				else if(objTD == "WP")
				{
					for(i = 0; i < wtypes.length; i++)
					{
						document.getElementById("cb"+wtypes[i]).checked = false;
					}
				}
			}
		}

		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.substring(num.length-(4*i+3));
			return (((sign)?'':'-') + '$' + num + '.' + cents);
		}

		function removeAllOptions(selectObject)
		{
			if(selectObject.name == "divMeasures")
				selectObject.innerHTML = "";
			else
			{
				var len = selectObject.length;
				for(var i = 1; i <= len; i++)
				{
					if(selectObject.options[len-i].text != "Select a Trim" && selectObject.options[len-i].text != "Select a Model")
					{
						selectObject.remove(len-i);
					}
				}
			}
		}

		function getSquareFootage(val1, val2, obj)
		{
			
			document.getElementById(obj).innerHTML = parseInt((val1 * val2)/144);
		}

		function checkSubmit(values)
		{
			var errors = "";
			for(i = 0; i < values.length; i++)
			{
				var obj = document.getElementById("txt"+values[i]);
				if(obj != null)
				{
					if(obj.value.length < 1)
						errors += "- "+values[i] + "\n";
				}
			}
			if(errors.length > 0)
			{
				alert("The following fields were not filled in. Please correct these before continuing.\n\n"+errors);
				return false;
			}
			return true;

		}