function swapColor() {
	var index = document.QuoteForm.color.selectedIndex;
	switch( index ) {
		case 0:
			document.QuoteForm.colorimage.src = "images/w_w.gif";
			break;
		case 1:
			document.QuoteForm.colorimage.src = "images/w_go.gif";
			break;
		case 2:
			document.QuoteForm.colorimage.src = "images/w_nat.gif";
			break;
		case 3:
			document.QuoteForm.colorimage.src = "images/w_cherry.gif";
			break;
		case 4:
			document.QuoteForm.colorimage.src = "images/cam_cam.gif";
			break;
		case 5:
			document.QuoteForm.colorimage.src = "images/cam_go.gif";
			break;
		case 6:
			document.QuoteForm.colorimage.src = "images/cam_nat.gif";
			break;
		case 7:
			document.QuoteForm.colorimage.src = "images/cam_cherry.gif";
			break;
		case 8:
			document.QuoteForm.colorimage.src = "images/cam_w.gif";
			break;
		case 9:
			document.QuoteForm.colorimage.src = "images/sand_w.gif";
			break;
		case 10:
			document.QuoteForm.colorimage.src = "images/earth_w.gif";
			break;
		case 11:
			document.QuoteForm.colorimage.src = "images/earth_go.gif";
			break;
		case 12:
			document.QuoteForm.colorimage.src = "images/earth_cherry.gif";
			break;
	}
}

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

	var opt = new Option( DoorSize[PanelsIndex][0], EuroGlideDoorPrice[PanelsIndex][0] );
	sel.options[0] = opt;
	PatioDoor_value = EuroGlideDoorPrice[PanelsIndex][0];
	for( var i = sel.options.length; i > 0; i-- ) {
		sel.options[i] = null;
	}
	if( selectIndex > EuroGlideDoorPrice[PanelsIndex].length ) {
		selectIndex = 0;
	}
	limit = ( EuroGlideDoorPrice[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 = EuroGlideDoorPrice[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;
	
	color = form.color.selectedIndex;
	switch( color ) {
		case 0:  // white/white
		case 4:  // camel/camel
		case 8:  // camel/white
		case 9:  // sandstone/white
		case 10: // earthtone/white
			factor_values = new Array( double_factor_2, double_slider_factor_2, slider_3_factor_2, fixed_factor_2 );
			c_factor_values = new Array( c_full_factor_2, c_double_factor_2, c_triple_factor_2 );
			
			DoorPrice = new Array( Door_alt_1, Door_alt_2, Door_alt_3 );
			EuroGlideDoorPrice = new Array( EuroGlide_Door_alt_1, EuroGlide_Door_alt_2, EuroGlide_Door_alt_3 );
			
			DoorRebates = new Array( DoorRebates_alt_1, DoorRebates_alt_2, DoorRebates_alt_3 );
			EuroGlide_DoorRebates = new Array( EuroGlide_DoorRebates_alt_1, EuroGlide_DoorRebates_alt_2, EuroGlide_DoorRebates_alt_3 );
			
			inputs["bay_factor"] = bay_factor_2;
			inputs["bow_factor"] = bow_factor_2;
			break;
		default:
			factor_values = new Array( double_factor, double_slider_factor, slider_3_factor, fixed_factor );
			c_factor_values = new Array( c_full_factor, c_double_factor, c_triple_factor );
			
			DoorPrice = new Array( Door_1, Door_2, Door_3 );
			EuroGlideDoorPrice = new Array( EuroGlide_Door_1, EuroGlide_Door_2, EuroGlide_Door_3 );
			
			DoorRebates = new Array( DoorRebates_1, DoorRebates_2, DoorRebates_3 );
			EuroGlide_DoorRebates = new Array( EuroGlide_DoorRebates_1, EuroGlide_DoorRebates_2, EuroGlide_DoorRebates_3 );
			
			inputs["bay_factor"] = bay_factor;
			inputs["bow_factor"] = bow_factor;
			break;
	}
	
// Windows
	for( index = 3; index < 165; 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 = 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 = classic_grid_factor;
		}
		else if( grids_num == 2 ) {
			grids_value = williamsburg_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 ) ) );
				
		form.elements[taxCreditIndex].value = formatPrice( parseFloat( form.elements[priceIndex].value ) * 0.11 );
	}
// Casement Windows
	for( index = 168; index < 236; index = index + 10 ) {
		quantityIndex = index + 3;
		widthIndex = index + 4;
		heightIndex = index + 5;
		gridsIndex = index + 6;
		priceIndex = index + 7;
		taxCreditIndex = index + 8;
	
		base = 0;
		factor = 0;
		perimeter = 0;
		for( offset = 0; offset < 3; 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 = williamsburg_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 = 238; index < 308; index = index + 9 ) {
		quantityIndex = index + 3;
		dimensionsIndex = index + 4;
		gridsIndex = index + 5;
		priceIndex = index + 6;
		taxCreditIndex = index + 7;
		
		PatioDoors_value = 0;
		PatioDoors_credit = 0;
		selectIndex = form.elements[dimensionsIndex].selectedIndex;
		for( offset = 0; offset < 3; offset++ ) {
			tempIndex = index + offset;
			if( form.elements[tempIndex].checked == true ) {
				if( index > 265 ) {
					PatioDoors_value = writeEuroGlideDoorOptions( form.elements[dimensionsIndex], selectIndex, offset );
					PatioDoors_credit = EuroGlide_DoorRebates[offset][selectIndex];
				} else {
					PatioDoors_value = writeDoorOptions( form.elements[dimensionsIndex], selectIndex, offset );
					PatioDoors_credit = DoorRebates[offset][selectIndex];
				}
			}
		}
		
		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( classic_doorgrid_factor );
		} else if( doorgrids_num == 2 ) {
			doorgrids_value = parseFloat( PatioDoors_value ) * parseFloat( williamsburg_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( form.elements[quantityIndex].value * parseFloat ( PatioDoors_credit ) );
		}
	}
// Bay Windows
	for( index = 310; index < 322; 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 = williamsburg_grid_factor;
		}
		baybase = 1;
		bayfactor = inputs["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 = 324; index < 336; 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 = williamsburg_grid_factor;
		}
		bowbase = 1;
		bowfactor = inputs["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 = 338; index < 360; 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( classic_gardengrid_factor );
		}
		else if( gardengrids_num == 2 ) {
			gardengrids_value = parseFloat( Garden_value ) * parseFloat( williamsburg_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.euroglide_patiocredit1.value ) +
		parseFloat( form.euroglide_patiocredit2.value ) +
		parseFloat( form.euroglide_patiocredit3.value ) +
		parseFloat( form.euroglide_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.euroglidetot1.value ) +
		parseFloat( form.euroglidetot2.value ) +
		parseFloat( form.euroglidetot3.value ) +
		parseFloat( form.euroglidetot4.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 )
	);
}