/*
 * Uses /_hbi/_lib/core.js
 */
var Registration							= {
	init : function () {
		if(!document.getElementById||!document.createTextNode){return;}
		
		if (document.getElementById('frmBasicReg')) {
			Registration.loadValidation();
		}
		
		if (document.getElementById('nCountryID')) {
			Registration.loadCountryChangeEvent();
			Registration.countryChanged();
		}
	},
	
	loadValidation : function() {
		var eForm						= document.getElementById('frmBasicReg');
		eForm.onsubmit					= function() {
			return Registration.validate();
		}
	},
	
	loadCountryChangeEvent : function () {
		eCountry						= document.getElementById('nCountryID');
		eCountry.onchange				= function() {
			Registration.countryChanged();
		}
		eCountry.onkeyup				= function() {
			Registration.countryChanged();
		}
	},
	
	validate : function() {
		var bPassed						= true;
		
		var eTitle						= document.getElementById('sTitle');
		if (!FormUtils.checkLength(eTitle, 1)) {
			bPassed						= false;
			FormUtils.showError('titleHelper', 'Please select your title.');
		}
		else {
			FormUtils.hideError('titleHelper');
		}
		
		var eFirstName					= document.getElementById('sFirstName');
		if (!FormUtils.checkLength(eFirstName, 1)) {
			bPassed						= false;
			FormUtils.showError('firstNameHelper', 'Please enter your first name.');
		}
		else {
			FormUtils.hideError('firstNameHelper');
		}
		
		var eLastName					= document.getElementById('sLastName');
		if (!FormUtils.checkLength(eLastName, 1)) {
			bPassed						= false;
			FormUtils.showError('lastNameHelper', 'Please enter your last name.');
		}
		else {
			FormUtils.hideError('lastNameHelper');
		}
		
		var eSector						= document.getElementById('nIndustrySectorID');
		if (eSector) {
			if (eSector.selectedIndex == 0) {
				bPassed					= false;
				FormUtils.showError('industrySectorHelper', 'Please choose your business sector.');
			}
			else {
				FormUtils.hideError('industrySectorHelper');
			}
		}
		
		var eJobTitle					= document.getElementById('sJobTitle');
		if (eJobTitle) {
			if (!FormUtils.checkLength(eJobTitle, 1)) {
				bPassed					= false;
				FormUtils.showError('jobTitleHelper', 'Please enter your job title.');
			}
			else {
				FormUtils.hideError('jobTitleHelper');
			}
		}
		
		var eCompany					= document.getElementById('sCompanyName');
		if (eCompany) {
			if (!FormUtils.checkLength(eCompany, 1)) {
				bPassed					= false;
				FormUtils.showError('companyNameHelper', 'Please enter your company name.');
			}
			else {
				FormUtils.hideError('companyNameHelper');
			}
		}
		
		var ePostCode					= document.getElementById('sPostCode');
		var eCountry					= document.getElementById('nCountryID');
		var oTemp;
		if (ePostCode && eCountry) {
			if (eCountry.value == -1) {
				bPassed					= false;
				FormUtils.showError('countryHelper', 'Please choose a country.');
			}
			else {
				FormUtils.hideError('countryHelper');
				var oTemp				= UserUtils.checkAddressCode(ePostCode, eCountry, 'postCodeLabel');
				if (!oTemp.bPassed) {
					bPassed				= false;
					FormUtils.showError('postCodeHelper', oTemp.sMessage);
				}
				else {
					FormUtils.hideError('postCodeHelper');
				}
			}
			
		}
		
		var eEmail						= document.getElementById('sEmail');
		var eEmailConfirm				= document.getElementById('sEmailConfirm');
		if (eEmailConfirm && eEmail.value != eEmailConfirm.value) {
			bPassed						= false;
			FormUtils.showError('emailHelper', 'The email addresses entered do not match.');
		}
		else if (!FormUtils.checkEmail(eEmail)) {
			bPassed						= false;
			FormUtils.showError('emailHelper', 'Please enter a valid email address.');
		}
		else {
			FormUtils.hideError('emailHelper');
		}
		
		var ePassword					= document.getElementById('sPassword');
		var ePasswordConfirm			= document.getElementById('sPasswordConfirm');
		if (!FormUtils.checkLength(ePassword, 8)) {
			bPassed						= false;
			FormUtils.showError('passwordHelper', 'Your password is too short. It must be at least 8 characters long.');
		}
		else if (ePassword.value != ePasswordConfirm.value) {
			bPassed						= false;
			FormUtils.showError('passwordHelper', 'The passwords you entered do not match.');
		}
		else if (!FormUtils.checkPassword(ePassword)) {
			bPassed						= false;
			FormUtils.showError('passwordHelper', 'Your password should comprise of letters and numbers.');
		}
		else {
			FormUtils.hideError('passwordHelper');
		}
		
		var eTerms						= document.getElementById('bTerms');
		if (eTerms) {
			if (!eTerms.checked) {
				bPassed					= false;
				FormUtils.showError('termsHelper', 'You must agree to the terms and conditions.');
			}
			else {
				FormUtils.hideError('termsHelper');
			}
		}
		
		FormUtils.errorDisplay(bPassed, 'error');
		
		return bPassed;
	},
	
	countryChanged : function () {
		var ePostCode					= document.getElementById('sPostCode');
		var eCountry					= document.getElementById('nCountryID');
		if (ePostCode && eCountry) {
			if (eCountry.value == UserUtils.nUKID) {
				UserUtils.showPostCode(ePostCode, 'postCodeLabel', UserUtils.sPostCodeLabel);
			}
			else if (eCountry.value == UserUtils.nUSID) {
				UserUtils.showPostCode(ePostCode, 'postCodeLabel', UserUtils.sZipCodeLabel);
			}
			else {
				UserUtils.hidePostCode(ePostCode);
			}
		}
	}
}

WindowListener.add("load","Registration.init()");