/**
 * Form Validation Module
 * 
 * @author Michael T. Smith (msmith@mcdpartners.com)
 * $Id: validation.js 19 2009-05-07 19:34:45Z msmith $
 */
(function () {

	/**
	 * Form to be validated
	 * 
	 * @var HTMLElement
	 */
	
	var validatableForm = document.getElementById('join_wrecked_community');
	
	
	/**
	 * Fields to be validated
	 * 
	 * @var Object
	 */
	var validatableFields = {
		'firstName' : document.getElementById('fname'),
		'lastName' : document.getElementById('lname'),
		'email' : document.getElementById('email')
	};
	
	/**
	 * Submission Button
	 * 
	 * @var HTMLElement
	 */
	var submissionButton = document.getElementById('join_submit_btn');
	var hidSubmitFlag=document.getElementById('hidSubmitFlag');

	/**
	 * Stores the validation Results
	 * 
	 * @var Array
	 */
	var validationFlag = [];
	
	/**
	 * Method to validate fields
	 * 
	 * @return Boolean
	 */
	var validateFields = function () {
		// Reset the validation flag every run
		validationFlag = [];
		
		// Run checks
		// TODO: Remove the tight coupling of validation type to field name
		if (validatableFields['firstName'].value.length === 0) validationFlag.push('firstName');
		if (validatableFields['lastName'].value.length === 0 ) validationFlag.push('lastName');
		if (!(validatableFields['email'].value.match(/\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,6}/))) validationFlag.push('email');
		
		if (validationFlag.length === 0) {
			return true;
		}
		else {
			return false;
		}
	};
	
	/**
	 * Method to show errors
	 */
	var showErrorMessages = function () {
		for (var i = 0; i < validationFlag.length; i++) {
			if ((validationFlag[i] === 'firstName') ||
				(validationFlag[i] === 'lastName')) {
				mcd.dom.removeClass('empty-field-error', 'hide');
			}
			if (validationFlag[i] === 'email') {
				mcd.dom.removeClass('invalid-email-error', 'hide');
			}
		}
	};
	
	
	//  Initializing Procedure
	var init = function () {
		mcd.event.add(submissionButton, 'click', function (event) {
			mcd.event.preventDefault(event);
			
			if (validateFields()) {
				hidSubmitFlag.value="submitted";
				
validatableForm.action = validatableForm.action.replace('default.asp','wrecked/default.asp');
if(validatableForm.action.indexOf("wrecked/wrecked")!=-1){
	validatableForm.action = validatableForm.action.replace('wrecked/wrecked','wrecked');
}
validatableForm.submit();
			}
			else {
				showErrorMessages();
			}
		});
	};
	
	// Ready? Go!!
	mcd.dom.ready(init);
})();