function forgotpasswordSendMail() {
	var emailAddress = document.getElementById('forgotpassword_email').value;
	
	if (emailAddress == '')	{
		showInfoMsg('forgotpassword_response', 'S.V.P. veuillez fournir une adresse e-mail.');
		return;
	}
	
	var reqPassword = createRequestObject();
	if (reqPassword == null) return;
	
	reqPassword.onreadystatechange = function()	{
		if (reqPassword.readyState == 4 && reqPassword.status == 200)
			showInfoMsg('forgotpassword_response', reqPassword.responseText);
	}
	
	reqPassword.open("GET", "index.php?task=user&view=forgotpassword_send&email=" + emailAddress, true);
	
	showInfoMsg('forgotpassword_response', 'Envois du e-mail...');
	
	reqPassword.send(null);
}

function registerMemberIDCheck() {
	var memberID = document.getElementById('register_memberid').value;
	
	if (memberID.length == 0) {
		showInfoMsg('register_response', 'S.V.P. entrez votre numéro de membre.');
		return;
	}
	
	var reqCheck = createRequestObject();
	if (reqCheck == null) return;
	
	reqCheck.onreadystatechange = function() {
		if (reqCheck.readyState == 4 && reqCheck.status == 200)	{
			if (reqCheck.responseText == 'true')
				window.location = "index.php?task=user&view=register_account";
			else
				showInfoMsg('register_response', reqCheck.responseText);
		}
	}
	
	reqCheck.open("GET", "index.php?task=user&view=register_memberid_check&member_id=" + memberID, true);
	reqCheck.send(null);
}

function registerUserNameCheck(userName) {
	var reqCheck = createRequestObject();
	if (reqCheck == null) {
		showInfoMsg('register_response', 'Error...');
		return;
	}

	reqCheck.open("GET", "index.php?task=user&view=register_username_check&user_name=" + userName, false);
	reqCheck.send(null);
	
	if (reqCheck.responseText == 'true')
		return true;
	else
		return false;
}

function registerAccountSave() {	
	var user_name = document.frmAccount.user_name.value;
	var password = document.frmAccount.password.value;
	var retypepwd = document.frmAccount.retypepwd.value;
	
	var first_name = document.frmAccount.first_name.value;
	var middle_name = document.frmAccount.middle_name.value;
	var last_name = document.frmAccount.last_name.value;
	var address = document.frmAccount.address.value;
	var city = document.frmAccount.city.value;
	var zip_code = document.frmAccount.zip_code.value;
	var province = document.frmAccount.province.value;
	var home_phone = document.frmAccount.home_phone.value;
	var cell_phone = document.frmAccount.cell_phone.value;
	var email = document.frmAccount.email.value;
	
	var employer = document.frmAccount.employer.value;
	var employer_site = document.frmAccount.employer_site.value;
	var work_address = document.frmAccount.work_address.value;
	var work_phone = document.frmAccount.work_phone.value;
	var work_fax = document.frmAccount.work_fax.value;
	var work_email = document.frmAccount.work_email.value;
	
	var acct_type;
	for (i = 0; i < document.frmAccount.acct_type.length; i++) {
		if (document.frmAccount.acct_type[i].checked == true) {
			acct_type = document.frmAccount.acct_type[i].value;
			break;
		}
	}
	
	var payment_mode;

	try {
		for (i = 0; i < document.frmAccount.payment_mode.length; i++) {
			if (document.frmAccount.payment_mode[i].checked == true) {
				payment_mode = document.frmAccount.payment_mode[i].value;
				break;
			}
		}
	} catch (err) {
		payment_mode = 3;
	}
	
	document.getElementById('register_response').style.display = 'none';
	
	//Check whether all the information are provided.
	if (user_name == '' || password == '' || retypepwd == '' || first_name == '' ||  
		last_name == '' || address == '' || city == '' || zip_code == '' || province == '' || 
		home_phone == '' || email == '') {
		showInfoMsg('register_response', 'S.V.P. Veuillez fournir toutes les informations requises');
		return;
	}
	
	if (registerUserNameCheck(user_name) == false) {
		showInfoMsg('register_response', 'The user name you have specified is already in use.');
		return;	
	}
	
	//Check whether the password and confirmed password match.
	if (password != retypepwd) {
		showInfoMsg('register_response', 'Les deux mots de passes doivent être identique.');
		return;
	}
	
	//Check whether the password is strong or not
	if (password.length < 6 || password.length > 64) {
		showInfoMsg('register_response', 'Votre mot de passe doit contenir au moins 6 caractères et un maximum de 64 caractères.');
		return;
	}
	
	//Check whether the correct zip code has been entered.
	if (zip_code.length != 6 || zip_code.search(/[a-zA-Z]\d[a-zA-Z]\d[a-zA-Z]\d/) == -1) {
		showInfoMsg('register_response', 'S.V.P. Veuillez entrer un code postal valide.');
		return;
	}
	
	//Check whether the correct phone numbers have been entered.
	var home_phone = home_phone.replace(/-/g, '');
	var home_phone = home_phone.replace(/\s/g, '');
	if (home_phone.length != 10 || home_phone.search(/\d{10}/) == -1) {
		showInfoMsg('register_response', 'S.V.P. veuillez entrer votre numéro de téléphone à la maison dans un format valide.(###-###-####)');
		return;
	}
	
	if (cell_phone != '') {
		var cell_phone = cell_phone.replace(/-/g, '');
		var cell_phone = cell_phone.replace(/\s/g, '');
		if (cell_phone.length != 10 || cell_phone.search(/\d{10}/) == -1) {
			showInfoMsg('register_response', 'S.V.P. veuillez entrer votre numéro de téléphone cellulaire dans un format valide.(###-###-####)');
			return;
		}
	}
	
	if (work_phone != '') {
		var work_phone = work_phone.replace(/-/g, '');
		var work_phone = work_phone.replace(/\s/g, '');
		var work_phone = work_phone.replace(/\x28/g, '');
		var work_phone = work_phone.replace(/\x29/g, '');
		
		if ((work_phone.length != 10 && work_phone.length != 13 && work_phone.length != 14) ||
			(work_phone.length == 10 && work_phone.search(/\d{10}/) == -1) || 
			(work_phone.length == 13 && work_phone.search(/\d{13}/) == -1) || 
			(work_phone.length == 14 && work_phone.search(/\d{14}/) == -1)) {
			showInfoMsg('register_response', 'S.V.P. veuillez entrer votre numéro de téléphone au travail dans un format valide.[###-###-####(####)]');
			return;
		}
	}

	if (work_fax != '') {
		var work_fax = work_fax.replace(/-/g, '');
		var work_fax = work_fax.replace(/\s/g, '');
		if (work_fax.length != 10 || work_fax.search(/\d{10}/) == -1) {
			showInfoMsg('register_response', 'S.V.P. veuillez entrer votre numéro de fax dans un format valide.(###-###-####)');
			return;
		}
	}
	
	//Check whether the correct email address has been entered.
	if (email.search(/.+@.+\x2e.+/) == -1) {
		showInfoMsg('register_response', 'S.V.P. veuillez entrer un format d\'adresse email valide.');
		return;
	}
	
	if (work_email != '') {
		if (work_email.search(/.+@.+\x2e.+/) == -1) {
			showInfoMsg('register_response', 'S.V.P. veuillez entrer un format d\'adresse email valide.');
			return;
		}
	}
	
	var reqRegister = createRequestObject();
	
	if (reqRegister == null) {
		showInfoMsg('register_response', 'Le nouveau compte n’a pu être créé.');
		return;
	}
	
	reqRegister.onreadystatechange = function() {
		if (reqRegister.readyState == 4 && reqRegister.status == 200) {
			if (reqRegister.responseText == 'true')
				window.location = "index.php?task=user&view=register_payment&payment_mode=" + payment_mode;
			else
				showInfoMsg('register_response', reqRegister.responseText);
		}
	}
	
	var szQuery = "task=user&view=register_account_update" + 
				"&user_name=" + encodeQuery(user_name) + "&acct_type=" + encodeQuery(acct_type) + 
				"&password=" + encodeQuery(password) + "&first_name=" + encodeQuery(first_name) + 
				"&middle_name=" + encodeQuery(middle_name) + "&last_name=" + encodeQuery(last_name) + 
				"&address=" + encodeQuery(address) + "&city=" + encodeQuery(city) + 
				"&zip_code=" + encodeQuery(zip_code) + "&province=" + encodeQuery(province) + 
				"&home_phone=" + encodeQuery(home_phone) + "&cell_phone=" + encodeQuery(cell_phone) + 
				"&email=" + encodeQuery(email) + "&employer=" + encodeQuery(employer) + 
				"&employer_site=" + encodeQuery(employer_site) + "&work_email=" + encodeQuery(work_email) + 
				"&work_address=" + encodeQuery(work_address) + "&work_phone=" + encodeQuery(work_phone) + 
				"&work_fax=" + encodeQuery(work_fax) + "&payment_mode=" + encodeQuery(payment_mode);
				
	reqRegister.open("GET", "index.php?" + szQuery, true);
	reqRegister.send(null);
}

function changepwdChange() {
	document.getElementById('changepwd_response').style.display = 'none';
	
	var password = document.frmChangePwd.password.value;
	var retypepwd = document.frmChangePwd.retypepwd.value;
	
	if (password == '' || retypepwd == '') {
		showInfoMsg('changepwd_response', 'S.V.P. Veuillez fournir les informations requises.');
		return;
	}
		
	//Check whether the password and confirmed password match.
	if (password != retypepwd) {		
		showInfoMsg('changepwd_response', 'Les deux mots de passes doivent être identique.');
		return;
	}
	
	//Check whether the password is strong or not
	if (password.length < 6 || password.length > 64) {
		showInfoMsg('changepwd_response', 'Votre mot de passe doit contenir au moins 6 caractères et un maximum de 64 caractères.');
		return;
	}
	
	var reqChange = createRequestObject();
	if (reqChange == null) {
		showInfoMsg('changepwd_response', 'La mise à jour a échoué..');
		return;
	}
	
	reqChange.open("GET", "index.php?task=user&view=changepwd_update&password=" + password, false);
	reqChange.send(null);
	
	if (reqChange.responseText == 'true')
		window.location = "index.php?task=user&view=account";
	else
		showInfoMsg('changepwd_response', reqChange.responseText);
}

function editperinfoUpdate() {
	document.getElementById('editperinfo_response').style.display = 'none';
	
	var first_name = document.frmEditPerInfo.first_name.value;
	var middle_name = document.frmEditPerInfo.middle_name.value;
	var last_name = document.frmEditPerInfo.last_name.value;
	var address = document.frmEditPerInfo.address.value;
	var city = document.frmEditPerInfo.city.value;
	var zip_code = document.frmEditPerInfo.zip_code.value;
	var province = document.frmEditPerInfo.province.value;
	var home_phone = document.frmEditPerInfo.home_phone.value;
	var cell_phone = document.frmEditPerInfo.cell_phone.value;
	var email = document.frmEditPerInfo.email.value;
	
	//Check whether all the information are provided.
	if (first_name == '' ||  last_name == '' || address == '' || city == '' || 
		zip_code == '' || province == '' || home_phone == '' || email == '') {
		showInfoMsg('editperinfo_response', 'S.V.P. Veuillez fournir toutes les informations requises.');
		return;
	}
	
	//Check whether the correct zip code has been entered.
	if (zip_code.length != 6 || zip_code.search(/[a-zA-Z]\d[a-zA-Z]\d[a-zA-Z]\d/) == -1) {
		showInfoMsg('editperinfo_response', 'S.V.P. Veuillez entrer un code postal valide.');
		return;
	}
	
	//Check whether the correct phone numbers have been entered.
	var home_phone = home_phone.replace(/-/g, '');
	var home_phone = home_phone.replace(/\s/g, '');
	if (home_phone.length != 10 || home_phone.search(/\d{10}/) == -1) {
		showInfoMsg('editperinfo_response', 'S.V.P. veuillez entrer votre numéro de téléphone à la maison dans un format valide.(###-###-####)');
		return;
	}
	
	if (cell_phone != '') {
		var cell_phone = cell_phone.replace(/-/g, '');
		var cell_phone = cell_phone.replace(/\s/g, '');
		if (cell_phone.length != 10 || cell_phone.search(/\d{10}/) == -1) {
			showInfoMsg('editperinfo_response', 'S.V.P. veuillez entrer votre numéro de téléphone cellulaire dans un format valide.(###-###-####)');
			return;
		}
	}
	
	//Check whether the correct email address has been entered.
	if (email.search(/.+@.+\x2e.+/) == -1) {
		showInfoMsg('editperinfo_response', 'S.V.P. veuillez entrer un format d\'adresse email valide.');
		return;
	}
	
	var reqUpdate = createRequestObject();
	if (reqUpdate == null) {
		showInfoMsg('editperinfo_response', 'La mise à jour a échoué.');
		return;
	}
	
	reqUpdate.open("GET", "index.php?task=user&view=editperinfo_update" + 
				"&first_name=" + encodeQuery(first_name) + 
				"&middle_name=" + encodeQuery(middle_name) + "&last_name=" + encodeQuery(last_name) + 
				"&address=" + encodeQuery(address) + "&city=" + encodeQuery(city) + 
				"&zip_code=" + encodeQuery(zip_code) + "&province=" + encodeQuery(province) + 
				"&home_phone=" + encodeQuery(home_phone) + "&cell_phone=" + encodeQuery(cell_phone) + 
				"&email=" + encodeQuery(email), false);
	reqUpdate.send(null);
	
	if (reqUpdate.responseText == 'true')
		window.location = "index.php?task=user&view=account";
	else
		showInfoMsg('editperinfo_response', reqUpdate.responseText);
}

function editproinfoUpdate() {
	document.getElementById('editproinfo_response').style.display = 'none';
	
	var employer = document.frmEditProInfo.employer.value;
	var work_address = document.frmEditProInfo.work_address.value;
	var work_phone = document.frmEditProInfo.work_phone.value;
	var work_fax = document.frmEditProInfo.work_fax.value;
	var work_email = document.frmEditProInfo.work_email.value;
	var employer_site = document.frmEditProInfo.employer_site.value;
	
	//Check whether the correct phone numbers have been entered.
	if (work_phone != '') {
		var work_phone = work_phone.replace(/-/g, '');
		var work_phone = work_phone.replace(/\s/g, '');
		var work_phone = work_phone.replace(/\x28/g, '');
		var work_phone = work_phone.replace(/\x29/g, '');
		
		if ((work_phone.length != 10 && work_phone.length != 13 && work_phone.length != 14) ||
			(work_phone.length == 10 && work_phone.search(/\d{10}/) == -1) || 
			(work_phone.length == 13 && work_phone.search(/\d{13}/) == -1) || 
			(work_phone.length == 14 && work_phone.search(/\d{14}/) == -1)) {
			showInfoMsg('editproinfo_response', 'S.V.P. veuillez entrer votre numéro de téléphone au travail dans un format valide.[###-###-####(####)]');
			return;
		}
	}
	
	if (work_fax != '') {
		var work_fax = work_fax.replace(/-/g, '');
		var work_fax = work_fax.replace(/\s/g, '');
		if (work_fax.length != 10 || work_fax.search(/\d{10}/) == -1) {
			showInfoMsg('editproinfo_response', 'S.V.P. veuillez entrer votre numéro de fax dans un format valide.(###-###-####)');
			return;
		}
	}
	
	if (work_email != '') {
		if (work_email.search(/.+@.+\x2e.+/) == -1) {
			showInfoMsg('editproinfo_response', 'S.V.P. veuillez entrer un format d\'adresse email valide.');
			return;
		}
	}
	
	var reqUpdate = createRequestObject();
	if (reqUpdate == null) {
		showInfoMsg('editproinfo_response', 'La mise à jour a échoué.');
		return;
	}
	
	reqUpdate.open("GET", "index.php?task=user&view=editproinfo_update" + 
				"&employer=" + encodeQuery(employer) + 
				"&work_address=" + encodeQuery(work_address) + 
				"&work_phone=" + encodeQuery(work_phone) + 
				"&work_fax=" + encodeQuery(work_fax) + 
				"&work_email=" + encodeQuery(work_email) + 
				"&employer_site=" + encodeQuery(employer_site), false);
				
	reqUpdate.send(null);
	
	if (reqUpdate.responseText == 'true')
		window.location = "index.php?task=user&view=account";
	else
		showInfoMsg('editproinfo_response', reqUpdate.responseText);
}