$(function(){
	// supporter la langue arabe
	$.tools.validator.localize("ar", {
		':email'  	: 'أدخل بريدا إلكترونيا صحيحا',
		'[maxlength]'	: 'العبارة لا تتجوز 1$ حرفا',
		'[minlength]'	: 'العبارة تتكون على الأقل من 1$ حرفا',
		'[required]'	: 'يجب إدخال قيمة',
		'[pattern]'	: 'أدخل قيمة صحيحة'
	});
	// supporter la langue française
	$.tools.validator.localize("fr", {
		':email'  	: 'Entrez un email valide',
		'[maxlength]'	: 'La chaine ne doit pas dépasser $1 caractères',
		'[minlength]'	: 'La chaine contient au moins $1 caractères',
		'[required]'	: 'Entrez une valeur pour ce champ',
		'[pattern]'	: 'Corrigez la valeur de ce champ'
	});
	
	$("#formsend").attr('novalidate', 'novalidate').validator({ 
		position: 'top left', 
		offset: [-8, 0],
		lang: 'fr',	// utiliser la langue arabe pour le validateur
		message: '<div><em/></div>', // l'element em est un flèche !
		errorClass: 'invalid'
	});
	
	// Le gestionnaire API du Validateur
	var api = $("#formsend").data("validator");

	// En cas d'erreur :
	$("#formsend").bind("onFail", function(e, errors)  {

		// traitement seulement en cas d'envoi (l'evenement submit)
		//if (e.originalEvent.type == 'submit') {

			// Parcourir l'objet des erreur et traiter les inputs
			$.each(errors, function()  {
				var input = this.input;
				input
				.parent()
				.css({paddingTop: '25px'});
			});
		//}
	});
	
	// En cas de succès :
	if (api != null) {
		api.onSuccess(function(e, els) {
			els
			.parent()
			.css({paddingTop: '0'});
			
			// repositionner les messages d'erreur correctement
			this.reflow();
	
			// n'envoyer pas le formulaire.
			return !e.isDefaultPrevented();
		});
	}

	var close_elem = true;
	$("#wait_envoi").overlay({

		// some mask tweaks suitable for modal dialogs
		mask: {
			color: '#ffffff',
            loadSpeed: 200,
            opacity: 0.9
		},
		top : '35%',
		closeOnClick: true,
		onClose : function(){
			new_phpcap(); 
		},
		onBeforeLoad : function() {
			$('#wait_envoi').empty();
			$('#wait_envoi').html('<img src="/public/images/large-loading.gif"  />');
		},
		onClose : function (){
			if (close_elem) window.parent.$("#yoxview_popupWrap").css({"display":"none"});
		}
	});
	
	//Gestionnaire d'envoi du formulaire 
	$("#formsend").submit(function(e) {

		var form = $(this);
		
		// validation coté client est passée
		if (!e.isDefaultPrevented()) {
			$("#wait_envoi").overlay().load();
			/*$('#wait_envoi').empty();
			$('#wait_envoi').html('<img src="'+BaseUrl+'images/large-loading.gif"  />');
			$.blockUI({ message: $('#wait_envoi'), css: { cursor: 'default',width: '370px' }, overlayCSS: { cursor: 'pointer' }});
			 */
			// envoyer les données au serveur par AJAX
			$.ajax({ url:form.attr("action"), data:form.serialize(), dataType:"json", 
				success: function(json) {
					// traitement selon la valeur de retour state
					switch (json.state){
						// Erreur coté client
						case "localError":
							form.data("validator").invalidate(json.message);
							new_phpcap(); 
							$("#wait_envoi").overlay().close();
							close_elem = false;
							//$.unblockUI();
							break;
						// Succès
						case "success":
							close_elem = true;
							$('#reset').click();						
						// Erreur coté serveur
						case "serverError":
	 						$('#wait_envoi').empty();
							$('#wait_envoi').html(json.message);
							break;
						case "errorConnexion" :
							$('#wait_envoi').empty();
							$('#wait_envoi').html(json.message);
							break;
						case "entrerEspace"	:
							document.location.href = json.message;
					}
					$('.blockOverlay').attr('title','Cliquer pour dévérrouiller').click(function(){
						new_phpcap(); 
						$.unblockUI();
					});
				},
				error: function(data, status, e) {
						$('#reset').click();						
 						$('#wait_envoi').empty();
 						d = data.responseText.split('{"message":"');
 						d = d[1].split('","state":');
 						if (d[1] == '"entrerEspace"}'){
 							document.location.href = d[0];
 							return;
 						}	
						$('#wait_envoi').html(d[0]);
						$('.blockOverlay').attr('title','Cliquer pour dévérrouiller').click(function(){
							new_phpcap(); 
							$.unblockUI();
						});
				}
			});

			// éviter l'envoi standard du formulaire
			e.preventDefault();
		}
	});	
});
