		// Ensure the user of this form has entered the required fields.
		function validateData()
		{
			var txtFirstName		= getElementById( "FIRST_NAME"			);
			var txtLastName			= getElementById( "LAST_NAME"			);
			var txtEmail			= getElementById( "EMAIL"				);
			var txtPhoneAreaCode	= getElementById( "PHONE_AREA_CODE"	);
			var txtPhoneLocalCode	= getElementById( "PHONE_LOCAL_CODE"	);
			var txtPhoneNumber		= getElementById( "PHONE_NUMBER"		);
			var txtComments			= getElementById( "COMMENTS"			);
			var sPhoneValue			= txtPhoneAreaCode.value + txtPhoneLocalCode.value + txtPhoneNumber.value;
			var bRequirementsMet	= true;
			var txtFocusField;

			if( txtFirstName.value.length == 0 && txtLastName.value.length == 0 ) {
				txtFocusField = txtFirstName;
				bRequirementsMet = false;
			}
			if( bRequirementsMet && ( txtEmail.value.length == 0 && sPhoneValue.length == 0 ) ) {
				txtFocusField = txtEmail;
				bRequirementsMet = false;
			}

			var txtZip = getElementById( "ZIP" );
			txtZip.value = txtZip.value.toUpperCase();

			txtZip = getElementById( "SELLER_ZIP" );
			txtZip.value = txtZip.value.toUpperCase();

			if( !bRequirementsMet ) {
				window.alert( "\nPlease enter your FIRST NAME or LAST NAME\nand\nPHONE NUMBER or EMAIL ADDRESS.\n" );
				txtFocusField.focus();
			} else {
				if( sPhoneValue.length > 0 && ( txtPhoneAreaCode.value.length != 3 || txtPhoneLocalCode.value.length != 3 || txtPhoneNumber.value.length != 4 ) ) {
					bRequirementsMet = false;
					window.alert( "\nYou have entered an invalid phone number. Please enter a correct phone number.\n" );
					txtPhoneAreaCode.focus();
				}
				if( bRequirementsMet && txtEmail.value.length > 0 ) {
					var nAtSymbolIndex = txtEmail.value.indexOf( "@" );
					var sUserName      = "";
					var sServerName    = "";

					if( nAtSymbolIndex > 0 && nAtSymbolIndex < txtEmail.value.length - 1 ) {
						sUserName = txtEmail.value.substring( 0, nAtSymbolIndex );
						sServerName = txtEmail.value.substring( nAtSymbolIndex + 1 );
						nAtSymbolIndex = sServerName.indexOf( "." );
					}
					if( nAtSymbolIndex == -1 || sUserName.length == 0 || sServerName.length == 0 ) {
						window.alert( "You have entered an invalid email address. Please enter a correct email address." );
						txtEmail.focus();
						bRequirementsMet = false;
					}
				}
				if( bRequirementsMet && typeof( txtComments ) != "undefined" && txtComments.value.length > 2900 ) {
					bRequirementsMet = false;
					window.alert( "\nYour comments are too long.  Please try to limit the length of your comments to 2900 characters.\n" );
					txtComments.focus();
				}
			}

			// The SELLER minimum price must be less than or equal to the maximum price.
			if( bRequirementsMet ) {
				var txtMinPrice = getElementById( "SELLER_MIN_PRICE" );
				var txtMaxPrice = getElementById( "SELLER_MAX_PRICE" );
				if( typeof( txtMinPrice ) != "undefined" && typeof( txtMaxPrice ) != "undefined" ) {
					var sMinPrice = txtMinPrice.value;
					var sMaxPrice = txtMaxPrice.value;
					// Pre-parse the string to remove any non digit characters
					sMinPrice = sMinPrice.replace( /\$|\+|,/g,			"" );
					sMaxPrice = sMaxPrice.replace( /\$|\+|,/g,			"" );

					// Convert from a string to a number.
					var nMinPrice = new Number( sMinPrice );
					var nMaxPrice = new Number( sMaxPrice );

					if (sMinPrice.length != 0 && sMaxPrice.length != 0) {
						if( nMinPrice != Number.NaN && nMaxPrice != Number.NaN && nMinPrice > nMaxPrice ) {
							window.alert( "\nYou have specified an invalid minimum or maximum price.  Please\nensure that the minimum price is not greater than the maximum price\nin the price range section.\n" )
							txtMaxPrice.focus();
							bRequirementsMet = false;
						}
					}
				}
			}

			// The BUYER minimum price must be less than or equal to the maximum price.
			if( bRequirementsMet ) {
				var txtMinPrice = getElementById( "BUYER_MIN_PRICE" );
				var txtMaxPrice = getElementById( "BUYER_MAX_PRICE" );
				if( typeof( txtMinPrice ) != "undefined" && typeof( txtMaxPrice ) != "undefined" ) {
					var sMinPrice = txtMinPrice.value;
					var sMaxPrice = txtMaxPrice.value;
					// Pre-parse the string to remove any non digit characters
					sMinPrice = sMinPrice.replace( /\$|\+|,/g,			"" );
					sMaxPrice = sMaxPrice.replace( /\$|\+|,/g,			"" );

					// Convert from a string to a number.
					var nMinPrice = new Number( sMinPrice );
					var nMaxPrice = new Number( sMaxPrice );

					if( nMinPrice != Number.NaN && nMaxPrice != Number.NaN && nMinPrice > nMaxPrice ) {
						window.alert( "\nYou have specified an invalid minimum or maximum price.  Please\nensure that the minimum price is not greater than the maximum price\nin the price range section.\n" )
						txtMaxPrice.focus();
						bRequirementsMet = false;
					}
				}
			}

			return bRequirementsMet;
		}


		// Retrieve an element by it's ID attribute
		// NOTE: This function is used in place of
		//  'document.getElementById() to support
		//  Internet Explorer 4.01.
		function getElementById( id ) {
			if( typeof( document.getElementById ) == "undefined" ) {
				for( var i = 0; i < document.all.length; i++ ) {
					var el = document.all( i );
					if( el.id == id ) {
						return el;
					}
				}
			}
			else {
				return document.getElementById( id );
			}
		}


		// Initialize the document
		function init() {
			var statusSeller	= getElementById( "STATUS_SELLER"	);
			var statusBoth		= getElementById( "STATUS_BOTH"		);

			var status = "Buyer";
			if( statusSeller.checked ) {
				status = "Seller";
			} else if ( statusBoth.checked ) {
				status = "Both";
			}

			enableSection( status );
			size( getElementById( "TABLE_PICTURES" ) );
			var backgroundImage = getElementById( "BACKGROUND_IMAGE" );
			if( typeof( backgroundImage ) != "undefined" && backgroundImage != null ) {
				backgroundImage.style.visibility = "visible";
			}
			enableAddressFields( false );

			window.moveTo( 0, 0 );
			window.resizeTo( screen.availWidth, screen.availHeight );

			getElementById( "FIRST_NAME" ).onkeypress = Capitalize;
			getElementById( "LAST_NAME" ).onkeypress = Capitalize;
			getElementById( "STREET_NAME" ).onkeypress = Capitalize;
			getElementById( "CITY" ).onkeypress = Capitalize;
			getElementById( "STATE" ).onkeypress = Capitalize;
			getElementById( "LAST_NAME" ).onkeypress = Capitalize;
			getElementById( "BUYER_CITY" ).onkeypress = Capitalize;
			getElementById( "BUYER_STATE" ).onkeypress = Capitalize;
			getElementById( "BUYER_COUNTY" ).onkeypress = Capitalize;
			getElementById( "BUYER_AREA" ).onkeypress = Capitalize;
			getElementById( "SELLER_STREET_NAME" ).onkeypress = Capitalize;
			getElementById( "SELLER_CITY" ).onkeypress = Capitalize;
			getElementById( "SELLER_STATE" ).onkeypress = Capitalize;
			getElementById( "SELLER_COUNTY" ).onkeypress = Capitalize;
			getElementById( "SELLER_AREA" ).onkeypress = Capitalize;
		}



		// Enable the Buyer, Seller or both sections
		function enableSection( section ) {
			setControl( getElementById( "SELLER_MIN_PRICE"					), section == "Buyer" );
			setControl( getElementById( "SELLER_MAX_PRICE"					), section == "Buyer" );
			setControl( getElementById( "SELLER_SQUAREFEET"					), section == "Buyer" );
			setControl( getElementById( "SELLER_BEDROOMS"					), section == "Buyer" );
			setControl( getElementById( "SELLER_BATHROOMS"					), section == "Buyer" );
			setControl( getElementById( "SELLER_AGE"						), section == "Buyer" );
			setControl( getElementById( "SELLER_FEATURES"					), section == "Buyer" );
			setControl( getElementById( "SELLER_LOCATION_SAME_ADDRESS"		), section == "Buyer" );
			setControl( getElementById( "SELLER_HOUSE_NO"					), section == "Buyer" );
			setControl( getElementById( "SELLER_STREET_NAME"				), section == "Buyer" );
			setControl( getElementById( "SELLER_SUITE_NO"					), section == "Buyer" );
			setControl( getElementById( "SELLER_CITY"						), section == "Buyer" );
			setControl( getElementById( "SELLER_STATE"						), section == "Buyer" );
			setControl( getElementById( "SELLER_ZIP"						), section == "Buyer" );
			setControl( getElementById( "SELLER_COUNTY"						), section == "Buyer" );
			setControl( getElementById( "SELLER_AREA"						), section == "Buyer" );
			setControl( getElementById( "SELLER_LOCATION"					), section == "Buyer" );
			setControl( getElementById( "TXT_SELLER"						), section == "Buyer" );
			setControl( getElementById( "TXT_SELLER_MIN_PRICE"				), section == "Buyer" );
			setControl( getElementById( "TXT_SELLER_MAX_PRICE"				), section == "Buyer" );
			setControl( getElementById( "TXT_SELLER_SQUAREFEET"				), section == "Buyer" );
			setControl( getElementById( "TXT_SELLER_BEDROOMS"				), section == "Buyer" );
			setControl( getElementById( "TXT_SELLER_BATHROOMS"				), section == "Buyer" );
			setControl( getElementById( "TXT_SELLER_AGE"					), section == "Buyer" );
			setControl( getElementById( "TXT_SELLER_FEATURES"				), section == "Buyer" );
			setControl( getElementById( "TXT_SELLER_LOCATION"				), section == "Buyer" );

			setControl( getElementById( "BUYER_MIN_PRICE"		), section == "Seller", "$0" );
			setControl( getElementById( "BUYER_MAX_PRICE"		), section == "Seller", "no maximum" );
			setControl( getElementById( "BUYER_SQUAREFEET"		), section == "Seller", "0-999"	);
			setControl( getElementById( "BUYER_BEDROOMS"		), section == "Seller", "1"		);
			setControl( getElementById( "BUYER_BATHROOMS"		), section == "Seller", "1"		);
			setControl( getElementById( "BUYER_AGE"				), section == "Seller", "0-9"	);
			setControl( getElementById( "BUYER_FEATURES"		), section == "Seller" );
			setControl( getElementById( "BUYER_LOCATION"		), section == "Seller" );
			setControl( getElementById( "BUYER_CITY"			), section == "Seller" );
			setControl( getElementById( "BUYER_STATE"			), section == "Seller" );
			setControl( getElementById( "BUYER_COUNTY"			), section == "Seller" );
			setControl( getElementById( "BUYER_AREA"			), section == "Seller" );
			setControl( getElementById( "TXT_BUYER"				), section == "Seller" );
			setControl( getElementById( "TXT_BUYER_MIN_PRICE"	), section == "Seller" );
			setControl( getElementById( "TXT_BUYER_MAX_PRICE"	), section == "Seller" );
			setControl( getElementById( "TXT_BUYER_SQUAREFEET"	), section == "Seller" );
			setControl( getElementById( "TXT_BUYER_BEDROOMS"	), section == "Seller" );
			setControl( getElementById( "TXT_BUYER_BATHROOMS"	), section == "Seller" );
			setControl( getElementById( "TXT_BUYER_AGE"			), section == "Seller" );
			setControl( getElementById( "TXT_BUYER_FEATURES"	), section == "Seller" );
			setControl( getElementById( "TXT_BUYER_LOCATION"	), section == "Seller" );

			enableAddressFields( false );
		}

		function enableAddressFields( clearValues ) {
			var disable = getElementById( "STATUS_BUYER" ).checked || getElementById( "SELLER_LOCATION_SAME_ADDRESS" ).checked;


			var ctrlHouseNo		= getElementById( "SELLER_HOUSE_NO"    );
			var ctrlStreetName	= getElementById( "SELLER_STREET_NAME" );
			var ctrlSuiteNo		= getElementById( "SELLER_SUITE_NO"    );
			var ctrlCity		= getElementById( "SELLER_CITY"        );
			var ctrlState		= getElementById( "SELLER_STATE"       );
			var ctrlZip			= getElementById( "SELLER_ZIP"         );

			setControl( ctrlHouseNo,	disable );
			setControl( ctrlStreetName,	disable );
			setControl( ctrlSuiteNo,	disable );
			setControl( ctrlCity,		disable );
			setControl( ctrlState,		disable );
			setControl( ctrlZip,		disable );

			setControl( getElementById( "TXT_SELLER_HOUSE_NO"		), disable );
			setControl( getElementById( "TXT_SELLER_STREET_NAME"	), disable );
			setControl( getElementById( "TXT_SELLER_SUITE_NO"		), disable );
			setControl( getElementById( "TXT_SELLER_CITY"			), disable );
			setControl( getElementById( "TXT_SELLER_STATE"			), disable );
			setControl( getElementById( "TXT_SELLER_ZIP"			), disable );


			if( disable ) {
				setValue( ctrlHouseNo,		"HOUSE_NO"		);
				setValue( ctrlStreetName,	"STREET_NAME"	);
				setValue( ctrlSuiteNo,		"SUITE_NO"		);
				setValue( ctrlCity,			"CITY"			);
				setValue( ctrlState,		"STATE"			);
				setValue( ctrlZip,			"ZIP"			);
			}
			else if( typeof( clearValues ) == "undefined" ) {
				clearValue( ctrlHouseNo		);
				clearValue( ctrlStreetName	);
				clearValue( ctrlSuiteNo		);
				clearValue( ctrlCity		);
				clearValue( ctrlState		);
				clearValue( ctrlZip			);
			}

		}

		function clearValue( obj ) {
			if( typeof( obj ) != "undefined" ) {
				obj.value = "";
			}
		}


		function setValue( obj, name ) {
			var obj2 = getElementById( name );
			if( typeof( obj ) != "undefined" && typeof( obj2 ) != "undefined" ) {
				var width = obj.offsetWidth;
				obj.value = obj2.value;
				obj.style.width = width;
			}
		}


		function setControl( control, disable, value ) {
			if( typeof( control ) != "undefined" ) {
				control.disabled = disable;
				if( disable ) {
					control.value = typeof( value ) == "undefined" ? "" : value;
					if( control.checked ) {
						control.checked = false;
					}
				}
			}
		}


		function moveToNextField( id ) {
			if( window.event.keyCode != 9 ) {
				if( getElementById( id ).value.length == 3 ) {
					if( id == "PHONE_AREA_CODE" ) {
						getElementById( "PHONE_LOCAL_CODE" ).focus();
					}
					else if( id == "PHONE_LOCAL_CODE" ) {
						getElementById( "PHONE_NUMBER" ).focus();
					}
				}
			}
		}


		function allowKeys( obj, keys ) {
			var bAllowKey = false;
			for( var i = 0; i < keys.length; i++ ) {
				if( keys.charAt( i ) == String.fromCharCode( window.event.keyCode ) ) {
					bAllowKey = true;
					break;
				}
			}
			if( !bAllowKey ) {
				window.event.cancelBubble = true;
				window.event.keyCode = 0;
			}
		}


		function validateInput( obj, keys ) {
			if( typeof( window.clipboardData ) != "undefined" ) {
				var sData = window.clipboardData.getData( "Text" )
				var sTemp = "";
				if( typeof( sData ) != "undefined" ) {
					for( var i = sData.length; --i >= 0; ) {
						for( var j = keys.length; --j >= 0; ) {
							if( sData.charAt( i ) == keys.charAt( j ) ) {
								sTemp += sData.charAt( i );
							}
						}
					}
				}

				window.clipboardData.setData( "Text", sTemp );
			}
		}




		function Capitalize()
		{
			var el = window.event.srcElement;
			if( el == null ) return;

			if( el.getAttribute( "CAP" ) == null )
			{
				el.setAttribute( "CAP", "1" );
				if( el.value == "" ) {
					var nUCharCode = String.fromCharCode( window.event.keyCode ).toUpperCase().charCodeAt(0);
					window.event.keyCode = nUCharCode;
				}
			}
		}




