// (c) 2001 - 2010 Netsilik
// Internet : http://www.netsilik.nl
// E-mail   : info (at) netsilik x nl

function check(event) {
	var regEx = /\W/;
	if (getElemnt('usernameField').value.length < 5) {
		return dialog.alert(event, 'Your username must be at least 5 characters long', 'Notice', setFocus, ['usernameField']);
	} else if (regEx.test(getElemnt('usernameField').username.value)) {
		return dialog.alert(event, 'Only letters, numbers and the underscore character are allowed in your Username', 'Notice', setFocus, ['usernameField']);
	} else if ( ! basicEmailSyntax(getElemnt('emailField').value)) {	
		return dialog.alert(event, 'Your email adress does not appear to be valid', 'Notice', setFocus, ['emailField']);
	} else if (getElemnt('emailField').value.length == 0) {	
		return dialog.alert(event, 'Please enter a valid e-mail address', 'Notice', setFocus, ['emailField']);
	} else if (getElemnt('captchaField').value.length != 5) {
		return dialog.alert(event, 'You have not enterd the Validation Code yet', 'Notice', setFocus, ['captchaField']);
	} else if ( ! getElemnt('agreeToTerms').checked) {
		return dialog.alert(event, 'You have not accepted the Terms and Conditions yet', 'Notice', setFocus, ['agreeToTerms']);
	}
	return true;
}

function basicEmailSyntax(email) {
	var atPos, dotPos, domain;
	atPos = email.lastIndexOf('@');
	if (atPos > 0) {
		domain = email.substr(atPos + 1);
		dotPos = domain.indexOf('.', 1);
		if (dotPos > 0 && domain.length > dotPos + 2 && domain.match(/[^a-z0-9_\-\.]/i) === null) {
			return true;
		}
	}
	return false;
}

function toggleTerms(event) {
	if (css.hasClass('terms', 'hidden')) {
		css.replaceClass('terms', 'hidden', '');
	} else {
		css.replaceClass('terms', '', 'hidden');
	}
	return stopEvent(event);
}
function keyUp() {
	getElemnt('captchaField').value = getElemnt('captchaField').value.toUpperCase();
}
preLoad.onAvailable('signUpForm', attachEventHandler, ['signUpForm', 'submit', check, true]);
preLoad.onAvailable('usernameField', setFocus, ['usernameField']);
preLoad.onAvailable('captchaField', attachEventHandler, ['captchaField', 'keyup', keyUp]);
preLoad.onAvailable('toggleTermsAnchor', attachEventHandler, ['toggleTermsAnchor', 'click', toggleTerms, true]);