/*** register events ***************************/
YAHOO.util.Event.addListener(window, 'load', init);

function init() {
	YAHOO.util.Event.on('btnSignUp', 'click', function() {
		var formValidation = validateFrmSignup();
		if (formValidation != 'valid') {
			focusOn(formValidation);
			window.scroll(0, 0);
		} else {
			document.forms[0].submit();
		}
	});

	YAHOO.util.Event.on('txtPassword', 'keyup', function() {
		if(get('txtPassword').length > 6) {
			ajaxFunc('testPwdStrength', [get('txtPassword')]);
		} else {
			setHTML('password_strength', '');
		}
	});

	YAHOO.util.Event.on('txtEmailAddress', 'focus', function() {
		setStyle('hntEmailAddress', 'display', 'block');
	});

	YAHOO.util.Event.on('txtEmailAddress', 'blur', function() {
		setStyle('hntEmailAddress', 'display', 'none');
	});

	YAHOO.util.Event.on('txtPassword', 'focus', function() {
		setStyle('hntPassword', 'display', 'block');
	});

	YAHOO.util.Event.on('txtPassword', 'blur', function() {
		setStyle('hntPassword', 'display', 'none');
	});

	YAHOO.util.Event.on('txtConfirmPassword', 'focus', function() {
		setStyle('hntPassword', 'display', 'block');
	});

	YAHOO.util.Event.on('txtConfirmPassword', 'blur', function() {
		setStyle('hntPassword', 'display', 'none');
	});

	focusOn('txtEmailAddress');
}
/***********************************************/

function validateFrmSignup() {
	// reset error fields
	clearErrorMsgs();

	var focusField = 'valid';

	if (get('txtEmailAddress') == '') {
		focusField = 'txtEmailAddress';
		setStyle('fldEmailAddress', 'color', '#f00');
		setHTML('errEmailAddress', 'Email Address is required');
	} else {
		if (!(isValidEmailAddress(get('txtEmailAddress')))) {
			if(focusField == 'valid') {
				focusField = 'txtEmailAddress';
			}
			setStyle('fldEmailAddress', 'color', '#f00');
			setHTML('errEmailAddress', 'Email Address is invalid');
		} else {
			ajaxFunc('testEmailAddressExists', [get('txtEmailAddress')]);
		}
	}

	if (get('txtPassword') == get('txtConfirmPassword') && get('txtPassword').length > 0 && get('txtPassword').length < 7) {
		if(focusField == 'valid') {
			focusField = 'txtPassword';
		}
		setStyle('fldPassword', 'color', '#f00');
		setStyle('fldConfirmPassword', 'color', '#f00');
		setHTML('errConfirmPassword', 'Password is too short');
	} else {
		if (get('txtPassword') == '' || get('txtConfirmPassword') == '') {
			if (get('txtPassword') == '') {
				if(focusField == 'valid') {
					focusField = 'txtPassword';
				}
				setStyle('fldPassword', 'color', '#f00');
				setHTML('errPassword', 'Password is blank');
			} else {
				if(focusField == 'valid') {
					focusField = 'txtConfirmPassword';
				}
				setStyle('fldConfirmPassword', 'color', '#f00');
				setHTML('errConfirmPassword', 'Password is blank');
			}
		} else {
			if (get('txtPassword') != get('txtConfirmPassword')) {
				if(focusField == 'valid') {
					focusField = 'txtPassword';
				}
				setStyle('fldPassword', 'color', '#f00');
				setStyle('fldConfirmPassword', 'color', '#f00');
				setHTML('errConfirmPassword', 'Passwords do not match');
			}
		}
	}

	if (get('txtFirstName') == '') {
		if(focusField == 'valid') {
			focusField = 'txtFirstName';
		}
		setStyle('fldFirstName', 'color', '#f00');
		setHTML('errFirstName', 'First Name is required');
	}

	if (get('txtLastName') == '') {
		if(focusField == 'valid') {
			focusField = 'txtLastName';
		}
		setStyle('fldLastName', 'color', '#f00');
		setHTML('errLastName', 'Last Name is required');
	}

	if (get('txtCompanyName') == '') {
		if(focusField == 'valid') {
			focusField = 'txtCompanyName';
		}
		setStyle('fldCompanyName', 'color', '#f00');
		setHTML('errCompanyName', 'Business Name is required');
	}

	if (get('txtAddress1') == '') {
		if(focusField == 'valid') {
			focusField = 'txtAddress1';
		}
		setStyle('fldAddress1', 'color', '#f00');
		setHTML('errAddress1', 'Address is required');
	}

	if (get('txtCity') == '') {
		if(focusField == 'valid') {
			focusField = 'txtCity';
		}
		setStyle('fldCity', 'color', '#f00');
		setHTML('errCity', 'City is required');
	}
	return focusField;
}

function clearErrorMsgs() {
	var fieldList = 	['FirstName', 'LastName', 'CompanyName', 'EmailAddress', 'Password', 'ConfirmPassword', 'Address1', 'City'];
	for (var item in fieldList) {
		setStyle('fld' + fieldList[item], 'color', '#333');
		setHTML('err' + fieldList[item], '');
	}
}