		
function display_more_options(box_id, action){
	$$('div.' + box_id).setStyle('display', action);
}
		
function checkform(){

	// Validation optin
	var nbrViral = 	0;
	var aErrMsg = 	new Array();			
	var error_messages = 	{
			global_message : {	
				fr : "Le formulaire ne peut être transmis pour la (les) raison(s) suivante(s).\r\n",
				en : "Informations are missing to complete the subscription.\r\n" },
			email_required : {	
				fr : "Votre courriel est obligatoire.",
				en : "Your email address is mandatory." },
			email_valid : {	
				fr : "Votre courriel est invalide.",
				en : "Your email address format is not valid." },
			firstname_required : {	
				fr : "Votre prénom est obligatoire.",
				en : "Your fisrt name is mandatory." },
			lastname_required : {	
				fr : "Votre nom est obligatoire.",
				en : "Your last name is mandatory." },
			gender_required : {	
				fr : "Vous devez identifier votre sexe.",
				en : "Your gender is mandatory." },
			birthdate_required : {	
				fr : "Vous devez entrer votre date de naissance.",
				en : "Your birth date is mandatory." },
			birthdate_valid : {	
				fr : "Votre date de naissance est invalide. (JJ-MM-AAAA)",
				en : "The format of your birth date is not valid. (DD-MM-YYYY)" },
			zip_required : {	
				fr : "Votre code postal obligatoire. (A1B2C3)",
				en : "Your postal code is mandatory. (A1B2C3)" },
			zip_valid : {	
				fr : "Votre code postal est invalide. (X1X2X6)",
				en : "The format of your postal code is not valid. (X1X2X6)" },
			phone_required : {	
				fr : "Votre numéro de téléphone est obligatoire.",
				en : "Your phone number is mandatory." },
			phone_valid :{
       			fr : "Votre numéro de téléphone est invalide. (000-123-4567)",
				en : "Your phone number is not valid. (000-123-4567)" },
			nbchildren_required :{
        		fr : "Merci d'indiquer combien d'enfants vous avez.",
				en : "Please indicate how many children you have." },
			agechildren_required :{
        		fr : "Merci d'indiquer l'âge de vos enfants.",
				en : "Please indicate the age of your children." },
			shoppedfor_required :{
        		fr : "Merci d'indiquer pour qui vous avez magasiné à l'Aubainerie.",
				en : "Please indicate for whom you have shopped at L'Aubainerie." }
		};
	
	// -- Validation Email
	if ($('OFC4_Optin_OptinField_EMail').value == ""){
		aErrMsg[aErrMsg.length] = error_messages['email_required'][langue];
	}else{
		if(!checkEMail($('OFC4_Optin_OptinField_EMail').value)){
			aErrMsg[aErrMsg.length] = error_messages['email_valid'][langue];
		}
	}	
	// -- Validation Prénom
	if ($('OFC4_Optin_OptinField_FirstName').value == ""){
		aErrMsg[aErrMsg.length] = error_messages['firstname_required'][langue];
	}
	// -- Validation Nom
	if ($('OFC4_Optin_OptinField_LastName').value == ""){
		aErrMsg[aErrMsg.length] = error_messages['lastname_required'][langue];
	}
	// -- Validation Sexe
	if (!checkRadio($(document.body).getElements('input[name=OFC4_Optin_OptinField_Sexe]'))){
		aErrMsg[aErrMsg.length] = error_messages['gender_required'][langue];
	}
	// -- Validation Date de naissance
	var format_day;
	if ($('dt_day').value.length < 2){
		format_day = '0' + $('dt_day').value;
	}else{
		format_day = $('dt_day').value;
	}
	
	var format_month;
	if ($('dt_month').value.length < 2){
		format_month = '0' + $('dt_month').value;
	}else{
		format_month = $('dt_month').value;
	}
	
	if ($('dt_day').value == "JJ" || $('dt_day').value == "DD" || $('dt_month').value == "MM" || $('dt_year').value == "AAAA" || $('dt_year').value == "YYYY"){
		aErrMsg[aErrMsg.length] = error_messages['birthdate_required'][langue];
	}else{
		if (!checkDate($('dt_year').value + format_month + format_day)){
			aErrMsg[aErrMsg.length] = error_messages['birthdate_valid'][langue];
		}else{
			$('OFC4_Optin_OptinField_Date_naissance').value = $('dt_year').value + "." + format_month + "." + format_day;
		}
	}
	
	// -- Validation Code postal
	if ($('dt_zip1-3').value != "" || $('dt_zip4-6').value != ""){
		if(!checkPostalCode($('dt_zip1-3').value + $('dt_zip4-6').value)){
			aErrMsg[aErrMsg.length] = error_messages['zip_valid'][langue];
		}else{
			$('OFC4_Optin_OptinField_Code_postal').value = $('dt_zip1-3').value + $('dt_zip4-6').value;
		}
	}
	// -- Validation Numéro de téléphone
	if ($('dt_tel1-3').value != "" || $('dt_tel4-6').value != "" || $('dt_tel7-10').value != ""){
		if (!checkTelephoneNumber($('dt_tel1-3').value + $('dt_tel4-6').value + $('dt_tel7-10').value)){
      aErrMsg[aErrMsg.length] = error_messages['phone_valid'][langue];
		}else{
      $('OFC4_Optin_OptinField_Telephone').value = $('dt_tel1-3').value +"-"+ $('dt_tel4-6').value +"-"+ $('dt_tel7-10').value;
		}		
	}
	
	// -- Validation infos enfants
	if ($('OFC4_Optin_OptinField_Enfant_0').checked){
    if ($('OFC4_Optin_OptinField_Combien').value == ''){
      aErrMsg[aErrMsg.length] = error_messages['nbchildren_required'][langue];
    }
    if (!checkGroupMinimumOneChecked(new Array('OFC4_Optin_OptinField_m02', 'OFC4_Optin_OptinField_m36', 'OFC4_Optin_OptinField_m716', 'OFC4_Optin_OptinField_m16plus', 'OFC4_Optin_OptinField_f02', 'OFC4_Optin_OptinField_f36', 'OFC4_Optin_OptinField_f716', 'OFC4_Optin_OptinField_f16plus'))){
      aErrMsg[aErrMsg.length] = error_messages['agechildren_required'][langue];
    }
	}
	
	// -- Validation infos client
	if($('OFC4_Optin_OptinField_Client_0').checked){
      if (!checkGroupMinimumOneChecked(new Array('OFC4_Optin_OptinField_PourMoi', 'OFC4_Optin_OptinField_PourMonConjoint', 'OFC4_Optin_OptinField_PourMesEnfants'))){
      aErrMsg[aErrMsg.length] = error_messages['shoppedfor_required'][langue];
    }
	}
	
	// -- Affichage erreurs
	if(aErrMsg.length > 0){
		var szMsgErr = error_messages['global_message'][langue];
		for(var idx=0; idx < aErrMsg.length; idx++){
			szMsgErr += "\n - " + aErrMsg[idx];
		}
		alert(szMsgErr);
		return false;
	}	
	$('OptForm').submit();
}

function checkEMail(emailAddress){
	var re = new RegExp("([a-zA-Z0-9_\\-\\.]+)@((\\[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})");
	return emailAddress.match(re) ? true : false;
}

function checkDate(dateNaissance){
	var re = new RegExp("[0-9]{4}[0-9]{2}[0-9]{2}");
	return dateNaissance.match(re) ? true : false;
}

function checkTelephoneNumber(telNumber){
	var re = new RegExp("[0-9]{3}[0-9]{3}[0-9]{4}");
	return telNumber.match(re) ? true : false;
}

function checkRadio(radio){
	var selected = false;
	for (i=0; i<radio.length; i++){
		if (radio[i].checked){
			selected = true;
			break;
		}
	}
	return selected;
}

function checkPostalCode(postalCode){
	var CodePostal = postalCode.toUpperCase();
	var re = new RegExp("^[A-Z]\\d[A-Z]\\d[A-Z]\\d$"); //G1G 1G1

	if(CodePostal.match(re)) {
		document.OptForm.OFC4_Optin_OptinField_Code_postal.value = CodePostal;
		return true
	}else{
		return false
	}
}

function checkGroupMinimumOneChecked(aFields){
	var selected = false;
	for (i=0; i<aFields.length; i++){
		if ($(aFields[i]).checked){
			selected = true;
			break;
		}
	}
	return selected;
}