

var _MSG_ = {

	_CR : false,
	_BR : true,

	form_error : {
		fr: "Le formulaire contient des erreurs !",
		en: "The form contains some errors !",
		es: "El formulario contiene algunos errores"
	},

	email_empty : {
		fr: "- L'adresse Email est obligatoire !",
		en: "- The email address is mandatory !",
		es: "La dirección de correo electrónico es obligatorio"
	},

	email_valid : {
		fr: "- Veuillez saisir une adresse email valide !",
		en: "- Please enter a valid email address !",
		es: "- Por favor, introduzca una dirección de email válida !"
	},

	pwd_empty : {
		fr: "- Le mot de passe est obligatoire !",
		en: "- The password is obligaotry !",
		es: "- La contraseña es obligatoria "
	},

	pwd_format : {
		fr: "- Le format du mot de passe n'est pas valide !",
		en: "- The password format is not valid !",
		es: "- El formato de la contraseña no es válida !"
	},

	pwd_control : {
		fr: "- Erreur de saisie du contrôle de mot de passe !",
		en: "- There is an error with the password confirmation !",
		es: "- Hay un error con la confirmación de la contraseña !"
	},

	pwd_control_empty : {
		fr: "- Vous devez saisir la confirmation du mot de passe !",
		en: "- You must provide the password confirmation !",
		es: "- Debe introducir la contraseña de confirmación !"
	},

	choose_title : {
		fr: "- Vous devez sélectionner votre titre !",
		en: "- You must select your title !",
		es: "- Usted debe seleccionar el título !"
	},

	fname_empty : {
		fr: "- Le prénom est obligatoire !",
		en: "- The first name is obligatory !",
		es: "- El nombre es obligatorio"
	},

	lname_empty : {
		fr: "- Le nom est obligatoire !",
		en: "- The last name is obligatory !",
		es: "- El apellido es obligatorio"
	},

	choose_country : {
		fr: "- Le pays est obligatoire !",
		en: "- The country is mandatory !",
		es: "- El país es obligatorio !"
	},

	choose_lang : {
		fr: "- Vous devez sélectionner la langue du site !",
		en: "- You must select the language of the site !",
		es: "- Usted debe seleccionar el idioma del sitio !"
	},

	town_empty : {
		fr: "- La ville est obligatoire !",
		en: "- The town is obligatory !",
		es: "- La ciudad es obligatoria !"
	},

	cp_empty : {
		fr: "- Le code postal est obligatoire !",
		en: "- The zip code is obligatory !",
		es: "- El código postal es obligatorio !"
	},

	cp_format : {
		fr: "- Le format du code postal n'est pas valide !",
		en: "- The postal code format is not valid !",
		es: "- El formato del código postal no es válido !"
	},

	choose_speciality : {
		fr: "- Vous devez sélectionner une spécialité !",
		en: "- You must select a specialty !",
		es: "- Usted debe seleccionar una especialidad !"
	},

	speciality_other : {
		fr: "- Vous devez préciser votre spécialité !",
		en: "- You must specify your speciality !",
		es: "- Usted debe precisar su especialidad !"
	},

	ordre_empty : {
		fr: "- Veuillez renseigner l'un des deux champs ci-dessus !",
		en: "- Please fill one the fields above !",
		es: "- Por favor, complete uno de los dos campos superiores !"
	},

	ordre_too_much : {
		fr: "- Veuillez renseigner un seul des deux champs ci-dessus !",
		en: "- Please fill only one of the fields above !",
		es: "- Por favor, complete sólo uno de los campos superiores !"
	},

	ordre_other : {
		fr: "- Le champ ci-dessus est obligatoire !",
		en: "- The field above is obligatory !",
		es: "- El campo superior es obligatorio !"
	},

	profession_choose : {
		fr: "- Vous devez sélectionner votre profession !",
		en: "- You must select your profession !",
		es: "- Usted debe seleccionar su profesión !"
	},

	profession_other : {
		fr: "- Vous devez préciser votre profession !",
		en: "- You must specify your profession !",
		es: "- Usted debe precisar su profesión !"
	},

	captcha_empty : {
		fr: "- Le code de sécurité est obligatoire !",
		en: "- The security code is obligatory !",
		es: "- El código de seguridad es obligatorio !"
	},

	captcha_error : {
		fr: "- Erreur de saisi du code de sécurité !",
		en: "- There is an error with the security code !",
		es: "- Error de ingreso del código de seguridad  !"
	}

}



function _TR(key, lang) {
	if (typeof lang === 'undefined') lang = _LANG_;
	if (_MSG_._CR) return _MSG_[key][lang] + "\n";
	if (_MSG_._BR) return _MSG_[key][lang] + '<br/>';
	return _MSG_[key][lang];
}








function checkForm() {

	var hasFormError = false;

	// -----------------------------------------
	// Block Auth.
	// -----------------------------------------

	var errMsg = '';

	// Check email.
	// ---------------------

	var elm = jQuery('#email');

	if (elm.isEmpty()) {
		errMsg += _TR('email_empty');
		_EH(elm);
	}
	else {
		if ( ! elm.isEmail()) {
			errMsg += _TR('email_valid');
			_EH(elm);
		}
		else _DH(elm);
	}


	// Password.
	// ---------------------

	var elm = jQuery('#pwd');
	var celm = jQuery('#cpwd');


	if (elm.isEmpty()) {
		errMsg += _TR('pwd_empty');
		_EH(elm);
	}
	else if ( ! elm.matchRegexp(/^[a-zA-Z0-9]{4,15}$/)) {
		errMsg += _TR('pwd_format');
		_EH(elm);
	}
	else {
		if (elm.attr('value') != celm.attr('value')) {
			errMsg += _TR('pwd_control');
			_EH(elm, celm);
		}
		else _DH(elm, celm);
	}

	if (celm.isEmpty()) {
		errMsg += _TR('pwd_control_empty');
		_EH(celm);
	}
	else _DH(celm);


	// Check if we have some errors and display message if necessary.
	var hasFormError = checkForError(jQuery('#auth-err'), errMsg);



	// -----------------------------------------
	// Block personal informations.
	// -----------------------------------------

	var errMsg = '';

	// Titre.
	// ---------------------

	var elms = jQuery("input[name='titre']");
	var e = jQuery('#radio_titre');

	if ( ! elms.assertChecked()) {
		errMsg += _TR('choose_title');
		_BORDER(e);
		_EH(e);
	}
	else {
		_NO_BORDER(e);
		_DH(e);
	}

	// Is it doctor ?
	var titre = '';
	elms.each(function() { if (this.checked) titre = this; });
	var is_doc = (titre.id == 'titre_docteur' ||
        titre.id == 'titre_professeur' || titre.id == 'titre_interne');


	// Prénom.
	// ---------------------

	var elm = jQuery('#prenom');

	if (elm.isEmpty()) {
		errMsg += _TR('fname_empty');
		_EH(elm);
	}
	else _DH(elm);


	// Nom.
	// ---------------------

	var elm = jQuery('#nom');

	if (elm.isEmpty()) {
		errMsg += _TR('lname_empty');
		_EH(elm);
	}
	else _DH(elm);


	// Pays.
	// ---------------------

	var elm = jQuery('#pays');
	var e = elm[0];
	var pays = e.options[e.selectedIndex].value;
	if ( ! elm.selectExclude('-no-')) {
		errMsg += _TR('choose_country');
		_EH(elm);
	}
	else _DH(elm);


	// Lang.
	// ---------------------

	var elm = jQuery('#lang');
	if ( ! elm.selectExclude('-no-')) {
		errMsg += _TR('choose_lang');
		_EH(elm);
	}
	else _DH(elm);


	// Ville.
	// ---------------------

	var elm = jQuery('#ville');
	if (elm.isEmpty()) {
		errMsg += _TR('town_empty');
		_EH(elm);
	}
	else _DH(elm);


	// Code postal.
	// ---------------------

	if (pays == 22) {    // France
		var elm = jQuery('#cp');
		if (elm.isEmpty()) {
			errMsg += _TR('cp_empty');
			_EH(elm);
		}
		else {
			if ( ! elm.matchRegexp(/^[0-9]{5}$/)) {
				errMsg += _TR('cp_format');
				_EH(elm);
			}
			else _DH(elm);
		}
	}


	if (is_doc) {
		// Specialite.
		// ---------------------

		var elm = jQuery('#specialite');
		if ( ! elm.selectExclude('-no-')) {
			errMsg += _TR('choose_speciality');
			_EH(elm);
		}
		else _DH(elm);


		// Specialite Autre.
		// ---------------------

		if (elm.selectExclude('-no-')) {
			var value = elm.getSelectedValue();
			if (value == 75) {
				elm = jQuery('#a_specialite');
				if (elm.isEmpty()) {
					errMsg += _TR('speciality_other');
					_EH(elm);
				}
				else _DH(elm);
			}
		}
	}

	// Check if we have some errors and display message if necessary.
	var hasFormError = checkForError(jQuery('#info-err'), errMsg) || hasFormError;



	// -----------------------------------------
	// Block french doctor.
	// -----------------------------------------

	var errMsg = '';

	if (pays == 22 && is_doc) {

		// No ordre.
		// ---------------------

		var elm = jQuery('#numero_ordre');
		var oelm = jQuery('#no_ordre');

		if (elm.isEmpty() && ! oelm.selectExclude('-no-')) {
			errMsg += _TR('ordre_empty');
			_EH(elm, oelm);
		}
		else _DH(elm, oelm);

		if ( ! elm.isEmpty() && oelm.selectExclude('-no-')) {
			errMsg += _TR('ordre_too_much');
			_EH(elm, oelm);
		}
		else _DH(elm, oelm);

		// Field other.
		if (elm.isEmpty() && oelm.selectExclude('-no-')) {
			var value = oelm.getSelectedValue();
			if (value == 'autre') {
				elm = jQuery('#a_no_ordre');
				if (elm.isEmpty()) {
					errMsg += _TR('ordre_other');
					_EH(elm);
				}
				else _DH(elm);
			}
		}

		// Check if we have some errors and display message if necessary.
		var hasFormError = checkForError(jQuery('#doc-err'), errMsg) || hasFormError;
	}



	// -----------------------------------------
	// Block not doctor.
	// -----------------------------------------

	var errMsg = '';

	if ( ! is_doc) {

		// Profession.
		// ---------------------

		var elm = jQuery('#profession_de_sante');

		if ( ! elm.selectExclude('-no-')) {
			errMsg += _TR('profession_choose');
			_EH(elm);
		}
		else _DH(elm);

		// Field other.
		if (elm.selectExclude('-no-')) {
			var value = elm.getSelectedValue();
			if (value == 'autre') {
				elm = jQuery('#a_prof');
				if (elm.isEmpty()) {
					errMsg += _TR('profession_other');
					_EH(elm);
				}
				else _DH(elm);
			}
		}
		else _DH(elm);

		// Check if we have some errors and display message if necessary.
		var hasFormError = checkForError(jQuery('#notdoc-err'), errMsg) || hasFormError;
	}



	// -----------------------------------------
	// Block captcha
	// -----------------------------------------

	var errMsg = '';

	// Captcha.
	// ---------------------

	if (_CODE_ != '-no-') {
		var elm = jQuery('#cpta');

		if (elm.isEmpty()) {
			errMsg += _TR('captcha_empty');
			_EH(elm);
		}
		else {
			if (elm.attr('value') != _CODE_) {
				errMsg += _TR('captcha_error');
				_EH(elm);
			}
			else _DH(elm);
		}

		var hasFormError = checkForError(jQuery('#cpta-err'), errMsg) || hasFormError;
	}


	// -----------------------------------------
	// Can we post the form ?
	// -----------------------------------------

	if (hasFormError) {
		_MSG_._BR = false;
		alert(_TR('form_error'));
	}
	else {
		jQuery('#form_inscription')[0].submit();
	}
}






jQuery(document).ready(function() {

	// Attach event for french doctor without order number.
	jQuery('#specialite').change(function() {
		var v = this.options[this.selectedIndex].value;
		if (v == 75)   jQuery('#o_specialite').show();
		else           jQuery('#o_specialite').hide();
	});

	// Attach events for Title change.
	jQuery("input[type='radio'][name='titre']").change(function() {
		var is_doc = (this.id == 'titre_docteur' || this.id == 'titre_professeur' || this.id == 'titre_interne');
		var pays = jQuery('#pays')[0];
		var is_fr = (pays.options[pays.selectedIndex].value == 22 ? true : false);
		jQuery('#medecin, #non_medecin').hide();
		if (is_fr && is_doc)  jQuery('#medecin').show();
		if ( ! is_doc)        jQuery('#non_medecin').show();

		if (is_doc) {
			jQuery('#doc_specialite').show();
			var value = jQuery('#specialite').getSelectedValue();
			if (value == 75) jQuery('#o_specialite').show();
		}
		else {
			jQuery('#doc_specialite').hide();
			var value = jQuery('#specialite').getSelectedValue();
			if (value == 75) jQuery('#o_specialite').hide();
			
			jQuery('#non_medecin').show();
		}


	});

	// Attach event for language change.
	jQuery('#pays').change(function() {
		var is_fr = (this.options[this.selectedIndex].value == 22 ? true : false);
		var titre = '';
		jQuery("input[type='radio'][name='titre']").each(function() {
			if (this.checked) titre = this;
		});
		// var is_doc = (titre.id == 'titre_docteur' || titre.id == 'titre_professeur');
		var is_doc = (titre.id == 'titre_docteur' || titre.id == 'titre_professeur' || titre.id == 'titre_interne');
		if (is_fr)  jQuery('#tdcp1, #tdcp2').show();
		else        jQuery('#tdcp1, #tdcp2').hide();
		jQuery('#medecin, #non_medecin').hide();
		if (titre != '') {
			if (is_fr && is_doc)  jQuery('#medecin').show();
			if ( ! is_doc)        jQuery('#non_medecin').show();
		}
	});

	// Attach event for french doctor without order number.
	jQuery('#no_ordre').change(function() {
		var v = this.options[this.selectedIndex].value;
		if (v == 'autre')   jQuery('#o_no_ordre').show();
		else                jQuery('#o_no_ordre').hide();
	});

	// Attach event for not doctor without profession.
	jQuery('#profession_de_sante').change(function() {
		var v = this.options[this.selectedIndex].value;
		if (v == 'autre')  jQuery('#o_prof').show();
		else               jQuery('#o_prof').hide();
	});





});





function _BORDER(elm) {
	elm.css('border', 'solid').css('border-width', '1px');
}

function _NO_BORDER(elm) {
	elm.css('border', 'none').css('border-width', '0px');
}


function _EH() {
	for (var i = 0; i < arguments.length; i++) {
		arguments[i].css('color', '#ff0000').css('border-color', '#ff0000');
  }
}

function _DH() {
	for (var i = 0; i < arguments.length; i++) {
		arguments[i].css('color', '#093a54').css('border-color', '#7e9cb8');
  }
}


function checkForError(elm, msg) {
	if (msg == '')  {
		elm.hide().find('div').html('');
		return false;
	}
	elm.show().find('div').html(msg);
	return true;
}




/*
jQuery(window).load(function () {
	var now = new Date();
	var img = jQuery('img#captcha').get(0);
	img.src = '/public/cdwbv3/html/toolkit/php/captcha.php?c=' + _CODE_ + '&t=' + now.getTime();
});
*/




