var RetailerLocatorModule = Class.extend( {

form : null,
cityTextField : null,
stateTextField : null,
zipTextField : null,
cityTextBufferField : null,
stateTextBufferField : null,
zipTextBufferField : null,
goBtn : null,

emptyTextColor : '#666666',
filledTextColor : '#000000',

// Initializer.
//
init : function() {

	this.form = $( '#rlm_retailerLocatorForm' )[ 0 ];
	this.cityTextField = $( '#rlm_cityField' )[ 0 ];
	this.stateTextField = $( '#rlm_stateField' )[ 0 ];
	this.zipTextField = $( '#rlm_zipField' )[ 0 ];
	this.cityBufferField = $( '#rlm_cityBufferField' )[ 0 ];
	this.stateBufferField = $( '#rlm_stateBufferField' )[ 0 ];
	this.zipBufferField = $( '#rlm_zipBufferField' )[ 0 ];
	this.goBtn = $( '#rlm_retailerLocatorGoBtn' )[ 0 ];

	this.form.reset();

	var thisRLMObj = this;

	$( this.goBtn ).click(
		function( e ) {
			thisRLMObj.onSubmit();
		}
	);

	this.initTextField( this.cityTextField );
	this.initTextField( this.zipTextField );

}, // End init().

initTextField : function( textField ) {

	textField.initLabel = textField.value;
	textField.style.color = this.emptyTextColor;

	var thisRLMObj = this;

	$( textField ).focus(
		function( e ) {
			thisRLMObj.onTextFieldFocus( e.target );
		}
	);

	$( textField ).blur(
		function( e ) {
			thisRLMObj.onTextFieldBlur( e.target );
		}
	);

}, // End initTextField().

onTextFieldFocus : function( textField ) {

	if ( textField.value == textField.initLabel ) {
		textField.value = '';
		textField.style.color = this.filledTextColor;
	} // End if.

}, // End onTextFieldFocus().

onTextFieldBlur : function( textField ) {

	if ( textField.value == '' ) {
		textField.value = textField.initLabel;
		textField.style.color = this.emptyTextColor;
	} // End if.

}, // End onTextFieldBlur().

onSubmit : function() {

	this.onSubmitTextField( this.cityTextField, this.cityBufferField );
	this.onSubmitTextField( this.stateTextField, this.stateBufferField );
	this.onSubmitTextField( this.zipTextField, this.zipBufferField );

	if ( this.zipBufferField.value == '' ) {
		
		if ( ( this.cityBufferField.value ) == '' || ( this.stateBufferField.value == '' ) ) {
			
			alert( 'City and State OR ZIP/Postal Code are required fields.' );
			return;
			
		} // End if.

	} // End if.

	this.form.submit();

}, // End onSubmit().

onSubmitTextField : function( textField, bufferField ) {

	if ( textField.value == textField.initLabel ) {
		bufferField.value = '';
	} else {
		bufferField.value = textField.value;
	} // End if.

} // End onSubmitTextField().

} ); // End class RetailerLocatorModule.
