QuickSale.EmailAlertsForm = function(){
	var ea_email_defaulVal = 'Enter email';
	var that;
	return {
		init: function(){
			that = this;
			
			jQuery('#emailAlertsForm').submit(function(){
				return that.onSubmit();
			});
			
			jQuery('#ea_email')
				.blur(function(){ that.onEmailBlur(); })
				.focus(function(){ that.onEmailFocus(); });
		},
		
		validate: function(){
			var errors = [];
			var email = jQuery('#ea_email').val();
			
			if(jQuery('#ea_selectedStates').val() == ''){
				errors.push("Please select the state(s) you would like to receive notifications about.");
			}
			if(email == '' || email == ea_email_defaulVal){
				errors.push("Please enter your email address.");
			} else {
				if(! /^((?:(?:(?:[a-zA-Z0-9][\.\-\+_]?)*)[a-zA-Z0-9])+)\@((?:(?:(?:[a-zA-Z0-9][\.\-_]?){0,62})[a-zA-Z0-9])+)\.([a-zA-Z0-9]{2,6})$/.test(email)){
					errors.push("Please enter a valid email address.");
				}
			}			
			
			if(errors.length > 0){
				that.displayErrors(errors);
				return false;
			}
			
			return true;
		},
		
		onSubmit: function(){
			var selectedStates = [];
			jQuery('#emailAlertsForm .state_selector').each(function(i){
				if(this.checked){
					selectedStates.push(jQuery(this).val());
				}
			});
			jQuery('#ea_selectedStates').val(selectedStates.join(','));
			
			return that.validate();
		},
		
		onEmailFocus: function (){
			var elem = jQuery('#ea_email');
			elem.css('color', '#666666');
			if(elem.val() == ea_email_defaulVal){
				elem.val('');
			}
		},
		
		onEmailBlur: function(){
			var elem = jQuery('#ea_email');
			if(elem.val() == ''){
				elem.css('color', '#CCCCCC');
				elem.val(ea_email_defaulVal);
			}
		},
		
		displayErrors: function(errors){
			var errorDiv = jQuery('#ea_errors');
			errorDiv.empty();
			jQuery(errors).each(function(i){
				errorDiv.append("<li> - "+errors[i]+"</li>");
			});
			errorDiv.show("fast");
		}
	}
}();
