﻿var valNicknameAsync_requestCount = 0;

function valNicknameAsync_ClientValidate(source, args) {
	valNicknameAsync_requestCount += 1;
	PageMethods.Nickname_ClientValidate(
				args.Value,
				function(result, userContext, methodName) { valNicknameAsync_ClientValidate_Success(result, userContext, methodName, source, args, valNicknameAsync_requestCount); },
				function(error, userContext, methodName) { valNicknameAsync_ClientValidate_Failure(error, userContext, methodName, source, args, valNicknameAsync_requestCount); }
				);
}
function valNicknameAsync_ClientValidate_Success(result, userContext, methodName, source, args, requestCount) {
	// Only update the validator if the result is from the most recent request
	if (requestCount == valNicknameAsync_requestCount) {
		updateValidator(source, args, result);
	}
}
function valNicknameAsync_ClientValidate_Failure(error, userContext, methodName, source, args, requestCount) {
	// Only update the validator if the result is from the most recent request
	if (requestCount == valNicknameAsync_requestCount) {
		// Validation request failed, assume valid
		updateValidator(source, args, true);
	}
}
function valNickname_ClientValidate(source, args) {
	var result = PageMethods.Nickname_ClientValidate(args.Value);
	updateValidator(source, args, result);
}
function updateValidator(source, args, result) {
	args.IsValid = result;
	source.isvalid = result;
	ValidatorUpdateDisplay(source);
	ValidatorUpdateIsValid();
}
function validateNickname() {
	var validators = $('.registrationNicknameValidator');
	for (i = 0; i < validators.length; i++) {
		var validator = validators[i];
		ValidatorValidate(validator, validator.validationGroup, null);
	}
	ValidatorUpdateIsValid();
}
function validateTerms() {
	var validators = $('.registrationTermsValidator');
	for (i = 0; i < validators.length; i++) {
		var validator = validators[i];
		ValidatorValidate(validator, validator.validationGroup, null);
	}
	ValidatorUpdateIsValid();
}
function hideAllHelp() {
	$('#tltpcont1, #tltpcont2, #tltpcont3').hide();
}
function showHelpText(e, controlId){
	hideAllHelp();
	showHelp('#' + controlId);
	e.stopPropagation();
}
$(document).ready(function() {
	hideAllHelp();
	$(document).click(function() {
		hideAllHelp();
	});
	$('#helpNickname').click(function(e) {
		showHelpText(e, 'tltpcont1');
	});
	$('#helpPostcode').click(function(e) {
		showHelpText(e, 'tltpcont3');
	});
	$('#helpMobile').click(function(e) {
		showHelpText(e, 'tltpcont2');
	});
	$('.registrationNickname').keyup(validateNickname);
	$('.registrationTerms').change(validateTerms);
});
