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 writeFrenchDoorOptions( selectName, selectIndex, PanelsIndex ) {
	var sel = selectName;

	var opt = new Option( DoorSize[PanelsIndex][0], FrenchDoorPrice[PanelsIndex][0] );
	sel.options[0] = opt;
	PatioDoor_value = FrenchDoorPrice[PanelsIndex][0];
	for( var i = sel.options.length; i > 0; i-- ) {
		sel.options[i] = null;
	}
	if( selectIndex > FrenchDoorPrice[PanelsIndex].length ) {
		selectIndex = 0;
	}
	limit = ( FrenchDoorPrice[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 = FrenchDoorPrice[PanelsIndex][i];
		} else {
			opt = new Option( DoorSize[PanelsIndex][i], DoorSize[PanelsIndex][i] );
			sel.options[i] = opt;
		}
	}
	return PatioDoor_value;
}

function writeGardenOptions( ) {
	form = document.QuoteForm;
	for( i = 263; i < 277; 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( index = 2; index < 195; index = index + 13 ) {
		quantityIndex = index + 6;
		widthIndex = index + 7;
		heightIndex = index + 8;
		gridsIndex = index + 9;
		priceIndex = index + 10;
		taxCreditIndex = index + 11;
		
		base = 0;
		factor = 0;
		perimeter = 0;
		
		if( form.elements[index].checked == true ) {
			doubleHungs = true;
			doubleSliders = false;
		} else if( form.elements[index+3].checked == true ) {
			doubleHungs = false;
			doubleSliders = true;
		} else {
			doubleHungs = false;
			doubleSliders = false;
		}
		
		for( offset = 0; offset < 6; offset = offset + 1 ) {
			tempIndex = index + offset;
			if( form.elements[tempIndex].checked == true ) {
				factor = factor_values[offset];
				base = 1;
			}
		}
		if( ( form.elements[quantityIndex].value == null || form.elements[quantityIndex].value.length == 0 ) ) {
			form.elements[quantityIndex].value = 1;
		}
		if( ( form.elements[widthIndex].value == null || form.elements[widthIndex].value.length == 0 ) ) {
			form.elements[widthIndex].value = 0;
		}
		if( ( form.elements[heightIndex].value == null || form.elements[heightIndex].value.length == 0 ) ) {
			form.elements[heightIndex].value = 0;
		}
		if( ( form.elements[taxCreditIndex].value == null || form.elements[taxCreditIndex].value.length == 0 ) ) {
			form.elements[taxCreditIndex].value = 0;
		}
		if( ( form.elements[widthIndex].value == 0 || form.elements[heightIndex].value == 0 ) ) {
			base = 0; factor = 0;
		}

		grids_num = form.elements[gridsIndex].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[widthIndex].value ) + parseFloat( form.elements[heightIndex].value ) ) * base );		
		
		form.elements[priceIndex].value = formatPrice( form.elements[quantityIndex].value * ( ( ( parseFloat( perimeter * factor ) + parseFloat( base * baseprice ) ) * markup ) + parseFloat( perimeter * grids_value ) ) );
				
		if( ( doubleHungs != true || grids_num == 0 ) && doubleSliders != true && form.elements[priceIndex].value != 0 ) {
		// there is no tax credit for double hung windows with grids
		// there is no tax credit for double sliders
			form.elements[taxCreditIndex].value = formatPrice( parseFloat( form.elements[priceIndex].value ) * 0.11 );
		} else {
			form.elements[taxCreditIndex].value = '0.00';
		}
	}
// Casement Windows
	for( index = 197; index < 272; index = index + 11 ) {
		quantityIndex =index + 4;
		widthIndex = index + 5;
		heightIndex = index + 6;
		gridsIndex = index + 7;
		priceIndex = index + 8;
		taxCreditIndex = index + 9;
	
		base = 0;
		factor = 0;
		perimeter = 0;
		for( offset = 0; offset < 4; offset = offset + 1 ) {
			tempIndex = index + offset;
			if( form.elements[tempIndex].checked == true ) {
				factor = c_factor_values[offset];
				base = 1;
			}
		}
		if( ( form.elements[quantityIndex].value == null || form.elements[quantityIndex].value.length == 0 ) ) {
			form.elements[quantityIndex].value = 1;
		}
		if( ( form.elements[widthIndex].value == null || form.elements[widthIndex].value.length == 0 ) ) {
			form.elements[widthIndex].value = 0;
		}
		if( ( form.elements[heightIndex].value == null || form.elements[heightIndex].value.length == 0 ) ) {
			form.elements[heightIndex].value = 0;
		}
		if( ( form.elements[taxCreditIndex].value == null || form.elements[taxCreditIndex].value.length == 0 ) ) {
			form.elements[taxCreditIndex].value = 0;
		}
		if( ( form.elements[widthIndex].value == 0 || form.elements[heightIndex].value == 0 ) ) {
			base = 0; factor = 0;
		}
		grids_num = form.elements[gridsIndex].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[widthIndex].value ) + parseFloat( form.elements[heightIndex].value ) ) * base );
		form.elements[priceIndex].value = formatPrice( form.elements[quantityIndex].value * ( ( ( parseFloat( perimeter * factor ) + parseFloat( base * c_baseprice ) ) * c_markup ) + parseFloat( perimeter * grids_value ) ) );
		
		form.elements[taxCreditIndex].value = formatPrice( parseFloat( form.elements[priceIndex].value ) * 0.11 );
	}

// Patio Doors
	for( index = 274; index < 344; index = index + 9 ) {
		quantityIndex = index + 3;
		dimensionsIndex = index + 4;
		gridsIndex = index + 5;
		priceIndex = index + 6;
		taxCreditIndex = index + 7;
		
		PatioDoors_value = 0;
		selectIndex = form.elements[dimensionsIndex].selectedIndex;
		for( offset = 0; offset < 3; offset++ ) {
			tempIndex = index + offset;
			if( form.elements[tempIndex].checked == true ) {
				if( index > 308 ) {
					PatioDoors_value = writeFrenchDoorOptions( form.elements[dimensionsIndex], selectIndex, offset );
				} else {
					PatioDoors_value = writeDoorOptions( form.elements[dimensionsIndex], selectIndex, offset );
				}
			}
		}
		
		if( ( form.elements[quantityIndex].value == null || form.elements[quantityIndex].value.length == 0 ) ) {
			form.elements[quantityIndex].value = 1;
		}
		if( ( form.elements[taxCreditIndex].value == null || form.elements[taxCreditIndex].value.length == 0 ) ) {
			form.elements[taxCreditIndex].value = 0;
		}
		
		doorgrids_num = form.elements[gridsIndex].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 );
		}
		form.elements[priceIndex].value = formatPrice( form.elements[quantityIndex].value * ( parseFloat( PatioDoors_value ) + parseFloat( doorgrids_value ) ) );
		
		
		for( offset = 0; offset < 3; offset++ ) {
			tempIndex = index + offset;
			form.elements[taxCreditIndex].value = formatPrice( parseFloat( form.elements[priceIndex].value ) * 0.11 );
		}
	}
// Bay Windows
	for( index = 346; index < 358; index = index + 7 ) {
		quantityIndex = index + 0;
		widthIndex = index + 1;
		heightIndex = index + 2;
		gridsIndex = index + 3;
		priceIndex = index + 4;
		taxCreditIndex = index + 5;
		
		bay_perimeter = 0;
		baygrids_num = form.elements[gridsIndex].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[quantityIndex].value == null || form.elements[quantityIndex].value.length == 0 ) ) {
			form.elements[quantityIndex].value = 1;
		}
		if ( ( form.elements[widthIndex].value == null || form.elements[widthIndex].value.length == 0 ) ) {
			form.elements[widthIndex].value = 0;
		}
		if ( ( form.elements[heightIndex].value == null || form.elements[heightIndex].value.length == 0 ) ) {
			form.elements[heightIndex].value = 0;
		}
		if( ( form.elements[taxCreditIndex].value == null || form.elements[taxCreditIndex].value.length == 0 ) ) {
			form.elements[taxCreditIndex].value = 0;
		}
		if ( ( form.elements[widthIndex].value == 0 || form.elements[heightIndex].value == 0 ) ) {
			baybase = 0; bayfactor = 0;
		}

		bay_perimeter = ( ( parseFloat( form.elements[widthIndex].value ) + parseFloat( form.elements[heightIndex].value ) ) * baybase );
		form.elements[priceIndex].value = formatPrice( form.elements[quantityIndex].value * ( ( ( parseFloat( bay_perimeter * bayfactor ) + parseFloat( baybase * baybase_price ) ) * bay_markup ) + parseFloat( bay_perimeter * baygrids_factor ) ) );
		
		form.elements[taxCreditIndex].value = '0.00';
	}
// Bow Windows
	for( index = 360; index < 372; index = index + 7 ) {
		quantityIndex = index + 0;
		widthIndex = index + 1;
		heightIndex = index + 2;
		gridsIndex = index + 3;
		priceIndex = index + 4;
		taxCreditIndex = index + 5;
		
		bow_perimeter = 0;
		bowgrids_num = form.elements[gridsIndex].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[quantityIndex].value == null || form.elements[quantityIndex].value.length == 0 ) ) {
			form.elements[quantityIndex].value = 1;
		}
		if ( ( form.elements[widthIndex].value == null || form.elements[widthIndex].value.length == 0 ) ) {
			form.elements[widthIndex].value = 0;
		}
		if ( ( form.elements[heightIndex].value == null || form.elements[heightIndex].value.length == 0 ) ) {
			form.elements[heightIndex].value = 0;
		}
		if( ( form.elements[taxCreditIndex].value == null || form.elements[taxCreditIndex].value.length == 0 ) ) {
			form.elements[taxCreditIndex].value = 0;
		}
		if ( ( form.elements[heightIndex].value == 0 || form.elements[heightIndex].value == 0 ) ) {
			bowbase = 0; bowfactor = 0;
		}

		bow_perimeter = ( ( parseFloat( form.elements[widthIndex].value ) + parseFloat( form.elements[heightIndex].value ) ) * bowbase );
		form.elements[priceIndex].value = formatPrice( form.elements[quantityIndex].value * ( ( ( parseFloat( bow_perimeter * bowfactor ) + parseFloat( bowbase * bowbase_price ) ) * bow_markup ) + parseFloat( bow_perimeter * bowgrids_factor ) ) );
		
		form.elements[taxCreditIndex].value = '0.00';
	}
// Garden Aire Windows
	for( index = 374; index < 396; index = index + 6 ) {
		quantityIndex = index + 0;
		dimensionsIndex = index + 1;
		gridsIndex = index + 2;
		priceIndex = index + 3;
		taxCreditIndex = index + 4;
		
		selectIndex = form.elements[dimensionsIndex].selectedIndex;
		Garden_value = GardenPrice[selectIndex];
		gardengrids_num = form.elements[gridsIndex].selectedIndex;
		
		if( ( form.elements[quantityIndex].value == null || form.elements[quantityIndex].value.length == 0 ) ) {
			form.elements[quantityIndex].value = 1;
		}
		if( ( form.elements[taxCreditIndex].value == null || form.elements[taxCreditIndex].value.length == 0 ) ) {
			form.elements[taxCreditIndex].value = 0;
		}
		
		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;
		}
		
		form.elements[priceIndex].value = formatPrice( form.elements[quantityIndex].value * ( parseFloat( Garden_value ) + parseFloat( gardengrids_value ) ) );
		
		form.elements[taxCreditIndex].value = '0.00';
		
	}
	
// Add up total
	taxcredittotal = (
		parseFloat( form.hungcredit1.value ) +
		parseFloat( form.hungcredit2.value ) +
		parseFloat( form.hungcredit3.value ) +
		parseFloat( form.hungcredit4.value ) +
		parseFloat( form.hungcredit5.value ) +
		parseFloat( form.hungcredit6.value ) +
		parseFloat( form.hungcredit7.value ) +
		parseFloat( form.hungcredit8.value ) +
		parseFloat( form.hungcredit9.value ) +
		parseFloat( form.hungcredit10.value ) +
		parseFloat( form.hungcredit11.value ) +
		parseFloat( form.hungcredit12.value ) +
		parseFloat( form.hungcredit13.value ) +
		parseFloat( form.hungcredit14.value ) +
		parseFloat( form.hungcredit15.value ) +
		parseFloat( form.casementcredit1.value ) +
		parseFloat( form.casementcredit2.value ) +
		parseFloat( form.casementcredit3.value ) +
		parseFloat( form.casementcredit4.value ) +
		parseFloat( form.casementcredit5.value ) +
		parseFloat( form.casementcredit6.value ) +
		parseFloat( form.casementcredit7.value ) +
		parseFloat( form.patiocredit1.value ) +
		parseFloat( form.patiocredit2.value ) +
		parseFloat( form.patiocredit3.value ) +
		parseFloat( form.patiocredit4.value ) +
		parseFloat( form.french_patiocredit1.value ) +
		parseFloat( form.french_patiocredit2.value ) +
		parseFloat( form.french_patiocredit3.value ) +
		parseFloat( form.french_patiocredit4.value ) /*+
		parseFloat( form.baycredit1.value ) +
		parseFloat( form.baycredit2.value ) +
		parseFloat( form.bowcredit1.value ) +
		parseFloat( form.bowcredit2.value ) +
		parseFloat( form.gardencredit1.value ) +
		parseFloat( form.gardencredit2.value ) +
		parseFloat( form.gardencredit3.value ) +
		parseFloat( form.gardencredit4.value )*/
	);
	if( taxcredittotal > 1500.00 ) {
		form.taxcredittotal.value = '1500.00';
	} else {
		form.taxcredittotal.value = formatPrice( taxcredittotal );
	}
	
	form.ordertotal.value = formatPrice(
		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 )
	);
}