/*
	V�rifie la disponibilit� d'un identifiant de connexion
*/
function checkIDAvailability(idToCheck, resultContainer) {

	$('label#checkIDResult').remove();			
	
	if ($.trim(idToCheck) != "")
	{
		var url = $('input#checkIDUrl').val();		
		$.ajax({
			async: false, 
			type: "POST",
			data: "idToCheck=" + idToCheck,
			url: url,
			success: function(content){
					$(resultContainer).append(content);
					$('label#checkIDResult').show();
				}
			});
			
		checked = $('label#checkIDResult').hasClass('success');
	}
	else
	{
		checked = true;
	}
	return checked;
};

/*
	V�rifie la validit� de l'ancien mot de passe
*/
function checkOldPassword(password, resultContainer) {

	$('label#checkOldPassword').remove();			
	
	if ($.trim(password) != "")
	{
		var url = $('input#checkOldPasswordUrl').val();		
		$.ajax({
			async: false, 
			type: "POST",
			data: "passwordToCheck=" + password,
			url: url,
			success: function(content){
					$(resultContainer).append(content);
					$('label#checkOldPassword').show();
				}
			});
			
		checked = $('label#checkOldPassword').hasClass('success');
	}
	else
	{
		checked = true;
	}
	return checked;
};

function checkDuplicatedEmail(email)
{
	if(email!='')
	{
		$.ajax({
			async: false,
			type: "POST",
			data: "email="+email,
			url:  $('input#urlDuplicateEmail').val(),
			success:function(msg) {
				//alert(msg);
				if(msg=='1')
				{
					$('input[name="alternativeEmail"]').addClass('error');
					$('label#checkEmail').addClass('duplicateEntry');
					$('label#checkEmail').css('display','block');
				} else {
					if($('label#checkEmail').hasClass('duplicateEntry'))
						$(this).removeClass('duplicateEntry');
				}
			}
		});
	}
	checked = $('label#checkEmail').hasClass('duplicateEntry');
	return checked;
};

/*
	Ajoute une m�thode de validation pour les emails
*/
$.validator.addMethod("banEmail", function(value) { 
		
	return (isValidEmail(value) == false);
		 
}, "Please do not indicate a email value");

/*
	Ajoute une m�thode de validation pour interdire les espaces libres
*/
$.validator.addMethod("noSpaces", function(value) { 
		
	var result = true;	
	if (value.indexOf(String.fromCharCode(32)) != -1) {
		result = false;
	}
	return result;	 
}, "Please do not enter free spaces");
	
/*
	Ajoute une m�thode de validation pour les caract�res valides
*/	
$.validator.addMethod("validChars", function (value) {

    var result = true;

    //unwanted characters
    var iChars = getInvalidChars();

    for (var i = 0; i < value.length; i++) {

        if (iChars.indexOf(value.charAt(i)) != -1) {
            return false;
        }
    }
    return result;
}, jQuery.format("Unwanted characters  '{0}'", getInvalidChars()));
	
/**
 * Possibilité d'entrer des caractères alphanumériques avec une ponctiation basique
 * source: additional_methods.js sur http://bassistance.de/jquery-plugins/jquery-plugin-validation/
 */
jQuery.validator.addMethod("letterswithbasicpunc", function(value, element) {
	return this.optional(element) || /^[0-8,a-z-.,()'\"\s]+$/i.test(value);
}, "Caractère invalide");

/*
	Ajoute une m�thode de validation pour interdire les espaces libres
*/
$.validator.addMethod("validateLoginSyntax", function(value, element) {
	return /^([\w\d]+(?:[._-]?[\w\d])*)+$/i.test(value); 
}, "La syntaxe de l'identifiant est invalide !");
