function validateQuoteform(theForm)
{
if (theForm.email.value == "")
 {
   alert("Please enter a value in the email field.");
   theForm.email.focus();
   return (false);
 }

 if (theForm.email.value.length < 6)
 {
   alert("Please enter at least 6 characters in the email field.");
   theForm.email.focus();
   return (false);
 }
 return (true);
}

function listElements(formName)
{
	  document.write("<table border=1><tr><th>Number</th><th>Name</th><th>Type</th><th>Value</th><th>Checked</th></tr>");
	   for(i = 0; i < formName.elements.length; i++)
	   {
							   document.write( "<tr><td>" + i +
							   "</td><td>" + formName.elements[i].name +
							   "</td><td>" + formName.elements[i].type +
							   "</td><td>" + formName.elements[i].value +
							   "</td><td>" + formName.elements[i].checked +
							   "</td></tr>");
	   }
	   document.write("</table>");
}

function changeURL(winSize, winName, newURL) {
 win = window.open(newURL, winName, winSize);
 return false;
}

function checkDoorButtons(button)
{
	   button2 = button + 1;
	   button3 = button + 2;
	   if((	document.QuoteForm.elements[button].checked == false &&
			   document.QuoteForm.elements[button2].checked == false &&
			   document.QuoteForm.elements[button3].checked == false))
	   {
			   alert("Please select the number of panels for your door before selecting the size.");
	   }
}

function writeDoorOptions (selectName,selectIndex,PanelsIndex)
{
var sel = selectName;

var opt = new Option(DoorSize[PanelsIndex][0],DoorPrice[PanelsIndex][0]);
sel.options[0] = opt;
PatioDoor_value = DoorPrice[PanelsIndex][0];
for (var i = sel.options.length; i > 0; i--)
	   sel.options[i] = null;
if(selectIndex > DoorPrice[PanelsIndex].length) { selectIndex = 0; }
limit = (DoorPrice[PanelsIndex].length - 1);
for (var i = limit; i > 0; i--)
	   if(selectIndex == i){
			   opt = new Option(DoorSize[PanelsIndex][i], DoorSize[PanelsIndex][i], false, true);
			   sel.options[i] = opt;
			   PatioDoor_value = DoorPrice[PanelsIndex][i];
			   } else {
			   opt = new Option(DoorSize[PanelsIndex][i], DoorSize[PanelsIndex][i]);
			   sel.options[i] = opt;
			   }
return PatioDoor_value;
}

function writeFrenchOptions (selectName,selectIndex,PanelsIndex)
{
var sel = selectName;

var opt = new Option(FrenchSize[PanelsIndex][0],FrenchPrice[PanelsIndex][0]);
sel.options[0] = opt;
FrenchDoor_value = FrenchPrice[PanelsIndex][0];
for (var i = sel.options.length; i > 0; i--)
	   sel.options[i] = null;
if(selectIndex > FrenchPrice[PanelsIndex].length) { selectIndex = 0; }
limit = (FrenchPrice[PanelsIndex].length - 1);
for (var i = limit; i > 0; i--)
	   if(selectIndex == i){
			   opt = new Option(FrenchSize[PanelsIndex][i], FrenchSize[PanelsIndex][i], false, true);
			   sel.options[i] = opt;
			   FrenchDoor_value = FrenchPrice[PanelsIndex][i];
			   } else {
			   opt = new Option(FrenchSize[PanelsIndex][i], FrenchSize[PanelsIndex][i]);
			   sel.options[i] = opt;
			   }
return FrenchDoor_value;
}

function writeGardenOptions()
{
form = document.QuoteForm;
for(i = 291; i < 305; i = i + 4)
{
	   sel = form.elements[i];
	   limit = (GardenSize.length - 1);
	   for(j = limit; j > 0; j--)
	   {
			   opt = new Option(GardenSize[j], GardenSize[j]);
			   sel.options[j] = opt;
	   }
}
}

function formatPrice(input)
{
var dollars = Math.floor(input);
var cents  = '' + Math.round(input * 100);
cents = cents.substring(cents.length-2, cents.length);
if (parseInt(cents) == 0)
{
  cents = '00';
}
input = dollars + '.' + cents;
return input;
}

function computeForm(input)
{
	   form = input.form;
	   form.browser.value=navigator.appName;
	   form.version.value=navigator.appVersion;

// Windows
	   for(i = 2; i < 150; i = i + 10)
	   {
			   base = 0;
			   factor = 0;
			   perimeter = 0;
			   for(j = 0; j < 5; j++)
			   {	   x = i + j;
					   if(form.elements[x].checked == true)
					   {
							   factor = factor_values[j];
							   base = 1;
					   }
			   }
			   w = i + 5; h = i + 6;
			   if ((form.elements[w].value == null || form.elements[w].value.length == 0))
					   { form.elements[w].value = 0; }
			   if ((form.elements[h].value == null || form.elements[h].value.length == 0))
					   { form.elements[h].value = 0; }
			   if ((form.elements[w].value == 0 || form.elements[h].value == 0))
					   { base = 0; factor = 0; }
			   g = i + 7;
			   grids_num = form.elements[g].selectedIndex;
		if(grids_num == 0)
		{
			grids_value = 0;
		}
		else if(grids_num == 1)
		{
			grids_value = grid_factor;
		}
		else if(grids_num == 2)
		{
			grids_value = sculptured_grid_factor;
		}
			   perimeter = ((   parseFloat(form.elements[w].value) +
								parseFloat(form.elements[h].value)) * base);
			   t = i + 8;
			   form.elements[t].value = ((	(parseFloat(perimeter * factor) +
											   parseFloat(base * baseprice)) * markup) +
											   parseFloat(perimeter * grids_value)	 );
	   }
// Casement Windows
	   for(i = 152; i < 213; i = i + 9)
	   {
			   base = 0;
			   factor = 0;
			   perimeter = 0;
			   for(j = 0; j < 4; j++)
			   {	   x = i + j;
					   if(form.elements[x].checked == true)
					   {
							   factor = c_factor_values[j];
							   base = 1;
					   }
			   }
			   w = i + 4; h = i + 5;
			   if ((form.elements[w].value == null || form.elements[w].value.length == 0))
					   { form.elements[w].value = 0; }
			   if ((form.elements[h].value == null || form.elements[h].value.length == 0))
					   { form.elements[h].value = 0; }
			   if ((form.elements[w].value == 0 || form.elements[h].value == 0))
					   { base = 0; factor = 0; }
			   g = i + 6;
			   grids_num = form.elements[g].selectedIndex;
		if(grids_num == 0)
		{
			grids_value = 0;
		}
		else if(grids_num == 1)
		{
			grids_value = c_grid_factor;
		}
		else if(grids_num == 2)
		{
			grids_value = sculptured_grid_factor;
		}
			   perimeter = ((   parseFloat(form.elements[w].value) +
								parseFloat(form.elements[h].value)) * base);
			   t = i + 7;
			   form.elements[t].value = ((	(parseFloat(perimeter * factor) +
											   parseFloat(base * c_baseprice)) * c_markup) +
											   parseFloat(perimeter * grids_value)	 );
	   }
// Patio Doors
	   for(i = 215; i < 239; i = i + 7)
	   {
			   PatioDoors_value = 0;
			   pd = i + 3;
			   selectIndex = form.elements[pd].selectedIndex;
			   for(j = 0; j < 3; j++)
			   {	   x = i + j;
					   if(form.elements[x].checked == true)
					   { PatioDoors_value = writeDoorOptions(form.elements[pd], selectIndex, j); }
			   }
			   dg = i + 4;
			   doorgrids_num = form.elements[dg].selectedIndex;
		if(doorgrids_num == 0)
		{
			doorgrids_value = 0;
		}
		else if(doorgrids_num == 1)
		{
			doorgrids_value = parseFloat(PatioDoors_value) * parseFloat(doorgrid_factor);
		}
		else if(doorgrids_num == 2)
		{
			doorgrids_value = parseFloat(PatioDoors_value) * parseFloat(sculptured_doorgrid_factor);
		}
			   dt = i + 5;
			   form.elements[dt].value = (parseFloat(PatioDoors_value) + parseFloat(doorgrids_value));
	   }

// French Doors
	   for(i = 243; i < 269; i = i + 7)
	   {
			   FrenchDoors_value = 0;
			   pd = i + 3;
			   selectIndex = form.elements[pd].selectedIndex;
			   for(j = 0; j < 3; j++)
			   {	   x = i + j;
					   if(form.elements[x].checked == true)
					   { FrenchDoors_value = writeFrenchOptions(form.elements[pd], selectIndex, j); }
			   }
			   dg = i + 4;
			   Frenchgrids_num = form.elements[dg].selectedIndex;
		if(Frenchgrids_num == 0)
		{
			Frenchgrids_value = 0;
		}
		else if(Frenchgrids_num == 1)
		{
			Frenchgrids_value = parseFloat(FrenchDoors_value) * parseFloat(doorgrid_factor);
		}
		else if(Frenchgrids_num == 2)
		{
			Frenchgrids_value = parseFloat(FrenchDoors_value) * parseFloat(sculptured_doorgrid_factor);
		}
			   dt = i + 5;
			   form.elements[dt].value = (parseFloat(FrenchDoors_value) + parseFloat(Frenchgrids_value));
	   }

// Bay Windows
	for(w = 271;w < 279; w = w + 5)
	{
		bay_perimeter = 0;
		h = w + 1;
		byg = w + 2;
		baygrids_num = form.elements[byg].selectedIndex;
		if(baygrids_num == 0)
		{
			baygrids_factor = 0;
		}
		else if(baygrids_num == 1)
		{
			baygrids_factor = baygrid_factor;
		}
		else if(baygrids_num == 2)
		{
			baygrids_factor = sculptured_grid_factor;
		}
		baybase = 1;
		bayfactor = bay_factor;
			   if ((form.elements[w].value == null || form.elements[w].value.length == 0))
					   { form.elements[w].value = 0; }
			   if ((form.elements[h].value == null || form.elements[h].value.length == 0))
					   { form.elements[h].value = 0; }
			   if ((form.elements[w].value == 0 || form.elements[h].value == 0))
					   { baybase = 0; bayfactor = 0; }

		bay_perimeter = ((   parseFloat(form.elements[w].value) +
									   parseFloat(form.elements[h].value)) * baybase);
		byt = w + 3;
	form.elements[byt].value = ((  (parseFloat(bay_perimeter * bayfactor) +
									   parseFloat(baybase * baybase_price)) * bay_markup) +
									   parseFloat(bay_perimeter * baygrids_factor)	);
	}	
// Bow Windows
	for(w = 281; w < 289; w = w + 5)
	{
		bow_perimeter = 0;
		h = w + 1;
		bwg = w + 2;
		bowgrids_num = form.elements[bwg].selectedIndex;
		if(bowgrids_num == 0)
		{
			bowgrids_factor = 0;
		}
		else if(bowgrids_num == 1)
		{
			bowgrids_factor = bowgrid_factor;
		}
		else if(bowgrids_num == 2)
		{
			bowgrids_factor = sculptured_grid_factor;
		}
		bowbase = 1;
		bowfactor = bow_factor;
			   if ((form.elements[w].value == null || form.elements[w].value.length == 0))
					   { form.elements[w].value = 0; }
			   if ((form.elements[h].value == null || form.elements[h].value.length == 0))
					   { form.elements[h].value = 0; }
			   if ((form.elements[w].value == 0 || form.elements[h].value == 0))
					   { bowbase = 0; bowfactor = 0; }

		bow_perimeter = (( parseFloat(form.elements[w].value) +
									   parseFloat(form.elements[h].value)) * bowbase);
		bwt = w + 3;
	form.elements[bwt].value = ((  (parseFloat(bow_perimeter * bowfactor) +
									   parseFloat(bowbase * bowbase_price)) * bow_markup) +
									   parseFloat(bow_perimeter * bowgrids_factor)	);
	}	

// Garden Aire Windows
	   for(i = 291; i < 305; i = i + 4)
	   {
			   selectIndex = form.elements[i].selectedIndex;
			   Garden_value = GardenPrice[selectIndex];
			   gg = i + 1;
			   gardengrids_num = form.elements[gg].selectedIndex;
		if(gardengrids_num == 0)
		{
			gardengrids_value = 0;
		}
		else if(gardengrids_num == 1)
		{
			gardengrids_value = parseFloat(Garden_value) * parseFloat(gardengrid_factor);
		}
		else if(gardengrids_num == 2)
		{
			gardengrids_value = parseFloat(Garden_value) * parseFloat(sculptured_gardengrid_factor);
		}
			   if(selectIndex == 0){ gardengrids_value = 0; }
			   gt = i + 2;
			   form.elements[gt].value = (parseFloat(Garden_value) + parseFloat(gardengrids_value));
	   }
// Add up total
		 form.ordertotal.value = (
		parseFloat(form.tot1.value) +
		parseFloat(form.tot2.value) +
		parseFloat(form.tot3.value) +
		parseFloat(form.tot4.value) +
		parseFloat(form.tot5.value) +
		parseFloat(form.tot6.value) +
		parseFloat(form.tot7.value) +
		parseFloat(form.tot8.value) +
		parseFloat(form.tot9.value) +
		parseFloat(form.tot10.value) +
		parseFloat(form.tot11.value) +
		parseFloat(form.tot12.value) +
		parseFloat(form.tot13.value) +
		parseFloat(form.tot14.value) +
		parseFloat(form.tot15.value) +
		parseFloat(form.casetot1.value) +
		parseFloat(form.casetot2.value) +
		parseFloat(form.casetot3.value) +
		parseFloat(form.casetot4.value) +
		parseFloat(form.casetot5.value) +
		parseFloat(form.casetot6.value) +
		parseFloat(form.casetot7.value) +
		parseFloat(form.doortot1.value) +
		parseFloat(form.doortot2.value) +
		parseFloat(form.doortot3.value) +
		parseFloat(form.doortot4.value) +
			   parseFloat(form.frenchtot1.value) +
			   parseFloat(form.frenchtot2.value) +
			   parseFloat(form.frenchtot3.value) +
			   parseFloat(form.frenchtot4.value) +
			parseFloat(form.baytot1.value) +
			parseFloat(form.baytot2.value) +
			parseFloat(form.bowtot1.value) +
			parseFloat(form.bowtot2.value) +
		parseFloat(form.gardentot1.value) +
		parseFloat(form.gardentot2.value) +
		parseFloat(form.gardentot3.value) +
		parseFloat(form.gardentot4.value)
			);
// Express all prices as XXX.XX
	form.tot1.value = formatPrice(form.tot1.value); 
	form.tot2.value = formatPrice(form.tot2.value);
	form.tot3.value = formatPrice(form.tot3.value); 
	form.tot4.value = formatPrice(form.tot4.value);
	form.tot5.value = formatPrice(form.tot5.value); 
	form.tot6.value = formatPrice(form.tot6.value);
	form.tot7.value = formatPrice(form.tot7.value); 
	form.tot8.value = formatPrice(form.tot8.value);
	form.tot9.value = formatPrice(form.tot9.value); 
	form.tot10.value = formatPrice(form.tot10.value);
	form.tot11.value = formatPrice(form.tot11.value); 
	form.tot12.value = formatPrice(form.tot12.value);
	form.tot13.value = formatPrice(form.tot13.value); 
	form.tot14.value = formatPrice(form.tot14.value);
	form.tot15.value = formatPrice(form.tot15.value);
	form.casetot1.value = formatPrice(form.casetot1.value); 
	form.casetot2.value = formatPrice(form.casetot2.value);
	form.casetot3.value = formatPrice(form.casetot3.value); 
	form.casetot4.value = formatPrice(form.casetot4.value);
	form.casetot5.value = formatPrice(form.casetot5.value); 
	form.casetot6.value = formatPrice(form.casetot6.value);
	form.casetot7.value = formatPrice(form.casetot7.value); 
	form.doortot1.value = formatPrice(form.doortot1.value); 
	form.doortot2.value = formatPrice(form.doortot2.value);
	form.doortot3.value = formatPrice(form.doortot3.value); 
	form.doortot4.value = formatPrice(form.doortot4.value);
	   form.frenchtot1.value = formatPrice(form.frenchtot1.value);
	   form.frenchtot2.value = formatPrice(form.frenchtot2.value);
	   form.frenchtot3.value = formatPrice(form.frenchtot3.value);
	   form.frenchtot4.value = formatPrice(form.frenchtot4.value);
	   form.baytot1.value = formatPrice(form.baytot1.value);
	   form.baytot2.value = formatPrice(form.baytot2.value);
	   form.bowtot1.value = formatPrice(form.bowtot1.value);
	   form.bowtot2.value = formatPrice(form.bowtot2.value);
	form.gardentot1.value = formatPrice(form.gardentot1.value); 
	form.gardentot2.value = formatPrice(form.gardentot2.value);
	form.gardentot3.value = formatPrice(form.gardentot3.value); 
	form.gardentot4.value = formatPrice(form.gardentot4.value);

		form.ordertotal.value = formatPrice(form.ordertotal.value);
}