//
// Valide si la variable est un nombre
function IsNumeric(sText){
	//
	var Char; 
	var IsNumber = true;
	var ValidChars = "0123456789.";
	//
	for (i = 0; i < sText.length && IsNumber == true; i++){ 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1){
			IsNumber = false;
        }
	}
	return IsNumber;
}

// Désactive ou active les champs du formulaire
function enableFormFilling(strFormID, strKeyID1, strKeyID2, boolAction){
	//
	if (strFormID == "partnerinfo"){
		var x = document.getElementById("partnerinfo");
	} else if (strFormID == "bussinessinfo"){
		var x = document.getElementById("bussinessinfo");
	} else {
		return false;
	}
	//
	for (var i = 0; i < x.length; i++){
		if ((strKeyID1 != x.elements[i].id) && (strKeyID2 != x.elements[i].id) && ('submit' != x.elements[i].id) && ('send' != x.elements[i].id)){
			if (boolAction == true) {
				document.getElementById(x.elements[i].id).disabled = true;
			} else if (boolAction == false) {
				document.getElementById(x.elements[i].id).disabled = false;
			}		
		}
	}
}  
  
// checkDate()
function checkDate(birthDay){
	//
	var regExp = '^[0-9]{4}\-[0-9]{2}\-[0-9]{2}$'; 
	if (birthDay == null || birthDay == "") return false;
	if (!birthDay.match(regExp)) return false;
	//
	var year = birthDay.substring(0, 4);
	var month = birthDay.substring(5, 7)-1;
	var day = birthDay.substring(8);
	var myDate = new Date();
	//
	myDate.setDate(day);
	myDate.setMonth(month);
	myDate.setYear(year);
	//
	day = myDate.getDate(day);
	month = myDate.getMonth(month)+1;
	year = myDate.getFullYear(year);
	//
	if (day < 10) day = '0' + day;
	if (month < 10) month = '0' + month;
	//
	var newDate = year + '-' + month + '-' + day;
	if (newDate != birthDay) return false;
	//
	return true;
}

// JavaScript Document
function enableCanadianFamilyZone(){
	//
	// Active la zone << FAMILLE AU QUEBEC >>
	document.getElementById("qc_name").disabled = false;
	document.getElementById("qc_relation").disabled = false;
	document.getElementById("qc_region").disabled = false;
	document.getElementById("qc_address").disabled = false;
	document.getElementById("qc_phone").disabled = false;
}

function desableCanadianFamilyZone(){
	document.getElementById("qc_name").value = '';
	document.getElementById("qc_phone").value = '';
	document.getElementById("qc_address").value = '';
	//
	document.getElementById("qc_name").disabled = true;
	document.getElementById("qc_relation").disabled = true;
	document.getElementById("qc_region").disabled = true;
	document.getElementById("qc_address").disabled = true;
	document.getElementById("qc_phone").disabled = true;
}
//
function validateGeneralInfoStep(){
	//
	var error_status = false; // Statut de l'erreur
	var error_content = ''; //  Contenu du message d'erreur
	//
	var lastname = document.getElementById("lastname").value; // Non vide
	var firstname = document.getElementById("firstname").value; // Non vide
	var birthday = document.getElementById("birthday").value; // Non vide, Ne peut-etre qu'une date au format YYYY-MM-DD
	var birthcity = document.getElementById("birthcity").value; // Non vide
	var address = document.getElementById("address").value; // Non vide
	//
	var city = document.getElementById("city").value; // Non vide
	var phone = document.getElementById("phone").value; // Ne doit contenir que des chiffres
	var fax = document.getElementById("fax").value; // Peut-etre vide, Ne doit contenir que des chiffres
	var email = document.getElementById("email").value; // Doit respecter le format des emails
	//
	var checkedFr = document.getElementById("langue_fr").checked;
	var checkedEn = document.getElementById("langue_en").checked;
	var langue_other = document.getElementById("langue_other").value;
	//
	var exp_job = document.getElementById("exp_job").value; // Peut etre vide
	var exp_years = document.getElementById("exp_years").value; // Peut-etre vide, Sinon ne peut-etre qu'un nombre
	
	//
	// Variables de la ZONE PARENT au Québec	
	var qc_name = document.getElementById("qc_name").value;
	var qc_phone = document.getElementById("qc_phone").value;
	var qc_address = document.getElementById("qc_address").value;
	var withfamily_yes = document.getElementById("withfamily_yes").checked;
	//
	// Traitement des saisies
	if (lastname.length < 1){
		error_status = true;
		error_content += 'Veuillez entrer votre nom<br>';
	}
	if (firstname.length < 1){
		error_status = true;
		error_content += 'Veuillez entrer votre prenom<br>';
	}
	
	if (!checkDate(birthday)){
		error_status = true;
		error_content += 'Veuillez entrer une date de naissance valide<br>';	
	}
	if (birthcity.length < 1){
		error_status = true;
		error_content += 'Ville de naissance manquante<br>';
	}
	if (address.length < 1){
		error_status = true;
		error_content += 'Adresse manquante<br>';
	}
	if (city.length < 1){
		error_status = true;
		error_content += 'Ville de de r&eacute;sidence manquante<br>';
	}
	
	if (phone.length < 1){ // Si le numéro de téléphone ne contient pas de chiffres
		error_status = true;
		error_content += 'Num&eacute;ro de t&eacute;l&eacute;phone manquant<br>';
	}
	//
	// Validation de l'email
	at_Index = email.indexOf("@");
	dot_Index = email.lastIndexOf(".");
	if ((at_Index < 1) || (dot_Index - at_Index < 2)){
		error_status = true;
		error_content += 'Veuillez entrer un email valide<br>';
	}
	
	//
	if ((checkedFr == false) && (checkedEn == false) && langue_other.length < 1){
		error_status = true;		
		error_content += 'Veuillez mentionner au moins une langue ma&icirc;tris&eacute;e<br>';
	}

	if (exp_job.length > 0){ // Si une expérience a été mentionnée, spécifier la durée de l'expérience
		if (!IsNumeric(exp_years)){
			error_status = true;		
			error_content += 'Vous avez mentionn&eacute;e une exp&eacute;rience de travail, veuillez sp&eacute;cifier la dur&eacute;e en nombre d\'ann&eacute;es<br>';
		} else if (exp_years < 0 || exp_years > 90){
			error_status = true;		
			error_content += 'Nombre d\'ann&eacute;es d\'expérience invalides<br>';
		}
	} else if (exp_years.length > 0){ //  Si une durée de travail a été mentionnée, spécifier la description de l'expérience de travail
		if (exp_job.length < 1){
			error_status = true;		
			error_content += 'Veuillez mentionn&eacute;e votre exp&eacute;rience de travail<br>';
		}
		if (!IsNumeric(exp_years) || !(exp_years >= 0 && exp_years <= 90)){
			error_status = true;		
			error_content += 'Vous avez mentionn&eacute;e une exp&eacute;rience de travail, veuillez sp&eacute;cifier la dur&eacute;e en nombre d\'ann&eacute;es<br>';
		}
	}
	
	//
	// Traitement de la zone FAMILLE AU QUÉBEC
	if (withfamily_yes){
		var family_error = '';
		var withfamily_error = false;
		//
		if (qc_name.length < 1){
			error_status = true;
			withfamily_error = true;
			family_error += 'Veuillez sp&eacute;cifier le nom du membre de votre famille au Qu&eacute;bec<br>';
		}
		if (qc_address.length < 1){
			error_status = true;
			withfamily_error = true;
			family_error += 'Veuillez sp&eacute;cifier une adresse valide du membre de votre famille au Qu&eacute;bec<br>';
		}
		if (qc_phone.length < 1){
			error_status = true;
			withfamily_error = true;
			family_error += 'Veuillez sp&eacute;cifier le num&eacute;ro de t&eacute;l&eacute;phone du membre de votre famille au Qu&eacute;bec';
		}		
		if (withfamily_error){ // Si une erreur est détectée dans la zone FAMILLE AU CANADA, alors insérer une ligne avec le messsage d'erreur
			error_content = error_content + '<br>' + family_error;
		}
		
	}
	//
	document.getElementById('toppage').focus();
	document.getElementById('error_panel').innerHTML = error_content;
	//
	return !error_status;
}

//
//
function validatePartnerInfoStep(){
	//
	var error_status = false; // Statut de l'erreur
	var error_content = ''; //  Contenu du message d'erreur
	var apply_for = document.getElementById("apply_for").checked;
	if (apply_for === true) return true;
	//
	var partner_lastname = document.getElementById("partner_lastname").value; // Non vide
	var partner_firstname = document.getElementById("partner_firstname").value; // Non vide
	var partner_birthday = document.getElementById("partner_birthday").value; // Non vide, Ne peut-etre qu'une date au format YYYY-MM-DD
	var partner_birthcity = document.getElementById("partner_birthcity").value; // Non vide
	//
	var checkedFr = document.getElementById("partner_langue_fr").checked;
	var checkedEn = document.getElementById("partner_langue_en").checked;
	var otherLang = document.getElementById("partner_langue_other").value;
	//
	var partner_exp = document.getElementById("partner_exp").value;
	var partner_exp_years = document.getElementById("partner_exp_years").value;
	//
	// Traitement des saisies
	if (partner_lastname.length < 1){
		error_status = true;
		error_content += 'Veuillez entrer le nom de votre partenaire<br>';
	}
	if (partner_firstname.length < 1){
		error_status = true;
		error_content += 'Veuillez entrer votre prenom de votre partenaire<br>';
	}
	//
	if (!checkDate(partner_birthday)){
		error_status = true;
		error_content += 'Veuillez entrer une date de naissance valide<br>';	
	}
	//
	if (partner_birthcity.length < 1){
		error_status = true;
		error_content += 'Ville de naissance manquante<br>';
	}
	//
	if (partner_exp.length > 0){
		if (!isFinite(partner_exp_years)){
			error_status = true;		
			error_content += 'Vous avez mentionn&eacute;e une exp&eacute;rience de travail, veuillez sp&eacute;cifier la dur&eacute;e en nombre d\'ann&eacute;es<br>';
		} else if (partner_exp_years < 0 || partner_exp_years > 90){
			error_status = true;		
			error_content += 'Nombre d\'ann&eacute;es d\'expérience invalides<br>';
		}
	}
	if (partner_exp.length > 0){ // Si une expérience a été mentionnée, spécifier la durée de l'expérience
		if (!IsNumeric(partner_exp_years)){
			error_status = true;		
			error_content += 'Vous avez mentionn&eacute;e une exp&eacute;rience de travail, veuillez sp&eacute;cifier la dur&eacute;e en nombre d\'ann&eacute;es<br>';
		} else if (partner_exp_years < 0 || partner_exp_years > 90){
			error_status = true;		
			error_content += 'Nombre d\'ann&eacute;es d\'expérience invalides<br>';
		}
	} else if (partner_exp_years.length > 0){ //  Si une durée de travail a été mentionnée, spécifier la description de l'expérience de travail
		if (partner_exp.length < 1){
			error_status = true;		
			error_content += 'Veuillez mentionn&eacute;e votre exp&eacute;rience de travail<br>';
		}
		if (!IsNumeric(partner_exp_years) || !(partner_exp_years >= 0 && partner_exp_years <= 90)){
			error_status = true;		
			error_content += 'Vous avez mentionn&eacute;e une exp&eacute;rience de travail, veuillez sp&eacute;cifier la dur&eacute;e en nombre d\'ann&eacute;es<br>';
		}
	}
	//
	if ((checkedFr == false) && (checkedEn == false) && (otherLang.length < 1) ){
		error_status = true;		
		error_content += 'Veuillez mentionner au moins une langue ma&icirc;tris&eacute;e<br>';
	}
	//
	document.getElementById('toppage').focus();
	document.getElementById('error_panel').innerHTML = error_content;
	//
	return !error_status;
}

//
//
function validateBusinessInfoStep(){
	//
	var error_status = false; // Statut de l'erreur
	var error_content = ''; //  Contenu du message d'erreur
	//
	var apply_for = document.getElementById("apply_for").checked;
	var business_detail = document.getElementById("business_detail").value; // Non vide
	if (apply_for == true) return true;
	//
	if (business_detail.length < 1){
		error_status = true;
		error_content += 'Veuillez d&eacute;crire la nature de votre projet d\'affaire';
	}
	//
	document.getElementById('toppage').focus();
	document.getElementById('error_panel').innerHTML = error_content;
	//
	return !error_status;
}