var HBN_Contact = new Class({
	Implements								: Log,
	debug									: false,
	
	form_selector							: 'contact_form',
	form_el									: '',
	
	form_overlay_selector					: 'contact_form_overlay',
	form_overlay_el							: '',
	form_overlay_span						: '',
	
	verify_selector							: 'contact_verify',
	verify_el								: '',
	verify_answer							: 4,
	
	initialize : function() {
		
		if(this.debug == true) {
			this.enableLog();
		}
		
		this.log('Initializing Contact...');
		
		window.addEvent("domready", this.dom.bind(this));
		
	},
	
	dom : function(e) {
		this.log('The DOM is ready for contact...');
		
		this.form_el				= $(this.form_selector);
		this.verify_el				= $(this.verify_selector);
		this.form_overlay_el		= $(this.form_overlay_selector);
		this.form_overlay_el.setStyle('display', 'block');
		this.form_overlay_el.fade('hide');
		this.form_overlay_span		= this.form_overlay_el.getChildren('span')[0];
		
		this.form_el.addEvent('submit', this.formSubmitHandler.bind(this));
		
		var extra_input				= new Element('input', {
																'type' 	: 'hidden',
																'name'	: 'js_verify',
																'value'	: 'woot!'
															});
		
		extra_input.inject(this.form_el);
		
	},
	
	formSubmitHandler : function(e) {
		
		if(this.verify_el.get('value') == this.verify_answer) {
			
			this.form_el.set('send', {
										method			: 'post',
										onRequest		: this.formRequestHandler.bind(this),
										onSuccess		: this.formSuccessHandler.bind(this),
										onFailure		: this.formFailureHandler.bind(this),
										evalScripts		: false,
										evalResponse	: false
									});
			this.form_el.send();
			
		}
		else {
			this.form_overlay_span.set('html', 'Wait, how many letters are in the word "bear"???');
			this.form_overlay_span.addClass('error');
			this.form_overlay_span.removeClass('success');
			this.form_overlay_el.fade('in');
			(function() { this.form_overlay_el.fade('out'); }).delay(4000, this);
		}
		
		return false;
		
	},
	
	formRequestHandler : function(e) {
		
		this.form_overlay_span.set('html', 'Sending...');
		this.form_overlay_span.removeClass('error');
		this.form_overlay_span.removeClass('success');
		this.form_overlay_el.fade('in');
		
	},
	
	formSuccessHandler : function(response_text) {
		
		
		
		if(response_text == 'true') {
			this.form_overlay_span.set('html', "Thank you for contacting Hi-BearNation. <br />We will get back to you as soon as we can!");
			this.form_overlay_span.removeClass('error');
			this.form_overlay_span.addClass('success');
			this.form_overlay_el.fade('in');
			(function() { this.form_overlay_el.fade('out'); }).delay(4000, this);
			
			$('contact_name').set('value', '');
			$('contact_email_phone').set('value', '');
			$('contact_subject').set('value', '');
			$('contact_message').set('value', '');
			$('contact_verify').set('value', '');
			
		}
		else {
			this.form_overlay_span.set('html', "There was an error submitting your contact request. <br />Please try again later.");
			this.form_overlay_span.removeClass('success');
			this.form_overlay_span.addClass('error');
			this.form_overlay_el.fade('in');
			(function() { this.form_overlay_el.fade('out'); }).delay(4000, this);
		}
		
	},
	
	formFailureHandler : function(response) {
		
		this.form_overlay_span.set('html', 'There was an error submitting your contact request. Please try again later.');
		this.form_overlay_span.removeClass('success');
		this.form_overlay_span.addClass('error');
		this.form_overlay_el.fade('in');
		(function() { this.form_overlay_el.fade('out'); }).delay(2000, this);
		
	}
	
});

var hbn_contact = new HBN_Contact();
