/*
 * Connexion/deconnexion espace prive
 *
 * @require jquery
 * @require jquery.form
 * @require jquery.blockUI
 * @require jquery.curvycorners
 * @require jquery.callout
 */

$(document).ready(function()
{

	// ********************************************* connexion espace prive *********************************************

	//on commence par masquer les div qui ne doivent pas apparaitre
	$('#envois_en_cours_header').hide();
	$('#envois_en_cours_header_first').hide();
	$('#envois_en_cours_header_lost').hide();
	$('#envois_en_cours_header_change_pass').hide();

	//Contraintes en temps réel des champs de saisie
	$('#code_app').onlyNumeric();
	$('#cp').onlyNumeric();

	// vide la case password lorsqu'on y accède
	$('#form_login input[type=password]').bind('focus', function() {
		$(this).val('');
	});

	// verification du formulaire de login avant envoi
	function VerifPage_login(_formData, _jqForm, _options)
	{
		var _error = new Array();

		//on ferme toute les infos bulles des inputs et des selects
		$('#form_login input').each(function() { $(this).closeCallout(); });


		if ($.trim($('#code_app').val())== '')
		{
			$(this).closeCallout();
			_error = new Array('code_app','Vous devez indiquer votre code apporteur', 200);
		}

		if ($.trim($('#pass').val())== '')
		{
			$(this).closeCallout();
			_error = new Array('pass','Vous devez mettre un mot de passe', 200);
		}

		if (_error.length > 0)
		{
			AfficheErreur(_error);
			return false;
		} else {
			return true;
		}
	}

	//Déclenchements dans le cas d'un submit du formulaire
	$('#form_login').bind('submit', function() {
	//comme il n'y a pas d'action dans le HTML, on le rajoute ici
	$(this).attr('action','template/header_t_login.php');
		if (VerifPage_login())
		{
			$(this).ajaxSubmit({
				//avant envoi, on affiche la fenetre "en cours...."
				//et on masque les erreurs générales deja affichée
				beforeSubmit: function() {
					$('#submit').attr('disabled', 'disabled');
					$('#envois_en_cours_header').show();
					$('#erreur').hide();
					return true;
				},

				success: function(_responseText, _statusText)
				{
					//si l'execution de la page de traitement est correct
					if (_statusText == 'success') {
						//traitement des differentes réponses possible
						switch (_responseText)
						{
							case 'session:expired':
								window.location = '.';
							break;

							case 'ok':
								$('#envois_en_cours_header').hide();
								$('#submit').removeAttr('disabled');
								window.location = '.';
								return true;
							break;

							case 'err_codeapp_vide':
								$('#envois_en_cours_header').hide();
								$('#submit').removeAttr('disabled');
								alert('erreur : Vous avez oublié de saisir votre code apporteur.');
								return false;
							break;

							case 'err_pass_vide':
								$('#envois_en_cours_header').hide();
								$('#submit').removeAttr('disabled');
								alert('erreur : Vous avez oublier de saisir votre mot de passe.');
								return false;
							break;

							case 'err_pass_mauvais':
								$('#envois_en_cours_header').hide();
								$('#submit').removeAttr('disabled');
								alert('erreur : Le mot de passe est incorrect.');
								return false;
							break;

							case 'err_droit_bloque':
								$('#envois_en_cours_header').hide();
								$('#submit').removeAttr('disabled');
								alert('erreur : Vous n\'avez pas le droit de vous connecter avec ce code apporteur.');
								return false;
							break;

							case 'err_droit_paspass':
								$('#envois_en_cours_header').hide();
								$('#submit').removeAttr('disabled');
								alert('erreur : Vous n\'avez pas encore choisit de mot de passe\nVous devez passer par "1ere connection".');
								return false;
							break;

							//en cas de reponse inconnu, on affiche un pblm durant le traitement
							default:
								$('#envois_en_cours_header').hide();
								$('#submit').removeAttr('disabled');
								alert('erreur : Nous rencontrons actuellement un problème de traitement, merci de réessayer ultérieurement.');
								return false;
							break;
						}
					//si l'execution de la page de traitement est incorrect
					} else {
						$('#envois_en_cours_header').hide();
						$('#submit').removeAttr('disabled');
						alert('erreur : Nous rencontrons actuellement un problème technique, merci de réessayer ultérieurement.');
					}
				}
			});
		}
		return false;
	});




	// comportement suivant retour de post
	function responseFrmLogin(_responseText, _statusText)
	{
		if (_statusText == 'success')
		{
			// reinit de l'attente
			$('#frmLoginWait').hide();
			$('#submit').removeAttr('disabled');
			// traitement de la reponse
			if (_responseText.indexOf('login:yes') != -1) {
				var _droit = _responseText.substr(_responseText.indexOf('droit:') + 6, 1);
				if (_droit == 'A') {
					alert("update_pass");
				} else {
					// masquage de la page
					$('#site').fadeOut(50, logLoadContent);
				}
			} else {
				//alert(_responseText);
				$('#frmLogin #code_app').callout({
					orient: 'above',
					align: 'right',
					arrowHeight: 4,
					//nudgeHorizontal: -135,
					width: 140,
					className: 'validationCallout',
					text: 'Connexion incorrecte'
				});
				$('#frmLogin #code_app').focus();
			}
		}
	}
	// ********************************************* gestion premiere connexion *********************************************
	// verification du formulaire de login avant envoi
	function VerifPage_login_first(_formData, _jqForm, _options)
	{
		var _error = new Array();

		//on ferme toute les infos bulles des inputs et des selects
		$('form_login_first input').each(function() { $(this).closeCallout(); });
		$('#form_login_first select').each(function() { $(this).closeCallout(); });

		if ($.trim($('#code_app').val())== '')
		{
			_error = new Array('code_app','Vous devez indiquer votre code apporteur', 200);
		}

		if ($.trim($('#cp').val())== '')
		{
			_error = new Array('pass','Vous devez mettre un code postal', 200);
		}

		if (_error.length > 0)
		{
			AfficheErreur(_error);
			return false;
		} else {
			return true;
		}
	}
	//Déclenchements dans le cas d'un submit du formulaire
	$('#form_login_first').bind('submit', function() {
	//comme il n'y a pas d'action dans le HTML, on le rajoute ici
	$(this).attr('action','template/header_t_login_cp.php');
		if (VerifPage_login_first())
		{
			$(this).ajaxSubmit({
				//avant envoi, on affiche la fenetre "en cours...."
				//et on masque les erreurs générales deja affichée
				beforeSubmit: function() {
					$('#submit').attr('disabled', 'disabled');
					$('#envois_en_cours_header_first').show();
					$('#erreur').hide();
					return true;
				},

				success: function(_responseText, _statusText)
				{
					//si l'execution de la page de traitement est correct
					if (_statusText == 'success') {
						//traitement des differentes réponses possible
						switch (_responseText)
						{
							case 'ok':
								$('#envois_en_cours_header_first').hide();
								$('#submit').removeAttr('disabled');
								window.location = 'template/header_t_change_pass.php';
								return true;
							break;

							case 'err_codeapp_vide':
								$('#envois_en_cours_header_first').hide();
								$('#submit').removeAttr('disabled');
								alert('erreur : Vous avez oublié de saisir votre code apporteur.');
								return false;
							break;

							case 'err_cp_vide':
								$('#envois_en_cours_header_first').hide();
								$('#submit').removeAttr('disabled');
								alert('erreur : Vous avez oublier de saisir votre code postal.');
								return false;
							break;

							case 'err_cp_mauvais':
								$('#envois_en_cours_header_first').hide();
								$('#submit').removeAttr('disabled');
								alert('erreur : Le code postal est incorrect.');
								return false;
							break;

							case 'err_droit_bloque':
								$('envois_en_cours_header_first').hide();
								$('#submit').removeAttr('disabled');
								alert('erreur : Vous n\'avez pas le droit de vous connecter avec ce code apporteur.');
								return false;
							break;

							case 'err_droit_pascp':
								$('#envois_en_cours_header_first').hide();
								$('#submit').removeAttr('disabled');
								alert('erreur : Vous avez déjà un mot de passe, et ne pouvez plus vous connecter avec un code postal.');
								return false;
							break;

							//en cas de reponse inconnu, on affiche un pblm durant le traitement
							default:
								$('#envois_en_cours_header_first').hide();
								$('#submit').removeAttr('disabled');
								alert('erreur : Nous rencontrons actuellement un problème de traitement, merci de réessayer ultérieurement.');
								return false;
							break;
						}
					//si l'execution de la page de traitement est incorrect
					} else {
						$('#envois_en_cours_header_first').hide();
						$('#submit').removeAttr('disabled');
						alert('erreur : Nous rencontrons actuellement un problème technique, merci de réessayer ultérieurement.');
					}
				}
			});
		}
		return false;
	});

	// ********************************************* gestion mot de passe obligatoire *********************************************

		//Contraintes des champs de saisie lors d'une validation via un click de bouton (post)
	//on les mets dans une fonction car ils pourront être rapellé plus tard
	function VerifPage_change_pass()
	{
		//on initialise un tabeau qui contiendra toute les erreurs
		var _error = new Array();

		//conditions d'affichage des info-bulles
		if (($('#pass').val().length) < 4)
		{
		//	_error = new Array('pass', 'le mot de passe doit faire plus de 4 caractères', 200);
		}
		if (($('#pass2').val().length) < 4)
		{
		//	_error = new Array('pass2', 'le mot de passe doit faire plus de 4 caractères', 200);
		}
		if ($.trim($('#nom').val()) == '')
		{
			_error = new Array('nom', 'un nom/prénom est obligatoire', 200);
		}
		if ($.trim($('#pass').val()) == '')
		{
		//	_error = new Array('pass', 'un mot de passe est obligatoire', 200);
		}
		if ($.trim($('#pass2').val()) == '')
		{
			_error = new Array('pass2', 'vous devez obligatoirement retaper le mot de passe', 200);
		}
		if ($.trim($('#pass2').val()) != $.trim($('#pass').val()))
		{
			_error = new Array('pass', 'les 2 mots de passe ne correspondent pas', 200);
		}

		if (_error.length > 0)
		{
			var _focus = true;
			AfficheErreur(_error, _focus);
			return false;
		} else {
			return true;
		}
	}

	//Déclenchements dans le cas d'un submit du formulaire
	$('#form_login_change_pass').bind('submit', function() {
		//comme il n'y a pas d'action dans le HTML, on le rajoute ici
		$(this).attr('action','extranet/mon_compte/changer_pass/changer_pass_t_changement.php');
					if (VerifPage_change_pass())
					{
						$(this).ajaxSubmit({
						//avant envoi, on affiche la fenetre "en cours...."
						//et on masque les erreurs générales deja affichée
						beforeSubmit: function() {
							$('#envois_en_cours_header_change_pass').show();
							$('#erreur').hide();
							return true;
						},

						success: function(_responseText, _statusText)
						{
							//si l'execution de la page de traitement est correct
							if (_statusText == 'success') {
								//traitement des differentes réponses possible
								//a cause des alertes en temps réel, il n'est pas necessaire d'avoir un message d'erreur
								//pour toute les réponses de le page de traitement
								switch (_responseText)
								{
									case 'ok':
										$('#envois_en_cours_header_change_pass').hide();
										alert('votre mot de passe a été créé');
										//window.location = 'template/header_t_normal.php';
										window.location = '.';
										return true;
									break;

									case 'err_reponses_vide':
										$('#envois_en_cours_header_change_pass').hide();
										alert('erreur : vous n\'avez rien remplit');
										return false;
									break;

									case 'err_coer_pass':
										$('#envois_en_cours_header_change_pass').hide();
										alert('erreur : les 2 mots de passe ne correspondent pas');
										return false;
									break;

									case 'err_pass_court':
										$('#envois_en_cours_header_change_pass').hide();
										alert('erreur : votre mot de passe doit faire plus de 4 caractères');
										return false;
									break;


									case 'coer_pass_simple':
										$('#envois_en_cours_header_change_pass').hide();
										alert('erreur : votre mot de passe est trop simple\nil ne peut contenir une suite de chiffre ou un nom generique d\'assurances');
										return false;
									break;

									case 'coer_pass_compagnie':
										$('#envois_en_cours_header_change_pass').hide();
										alert('erreur : votre mot de passe est trop simple\nil ne peut contenir un nom de compagnie d\'assurance.');
										return false;
									break;

									case 'coer_pass_soc':
										$('#envois_en_cours_header_change_pass').hide();
										alert('erreur : votre mot de passe est trop simple\nil ne peut contenir le nom d\'une société.');
										return false;
									break;

									case 'coer_pass_codeapp':
										$('#envois_en_cours_header_change_pass').hide();
										alert('erreur : votre mot de passe est trop simple\nil ne peut contenir votre code apporteur.');
										return false;
									break;

									case 'coer_pass_nomapp':
										$('#envois_en_cours_header_change_pass').hide();
										alert('erreur : votre mot de passe est trop simple\nil ne peut contenir votre nom apporteur.');
										return false;
									break;

									case 'coer_pass_villeapp':
										$('#envois_en_cours_header_change_pass').hide();
										alert('erreur : votre mot de passe est trop simple\nil ne peut contenir votre ville.');
										return false;
									break;

									case 'coer_pass_cpapp':
										$('#envois_en_cours_header_change_pass').hide();
										alert('erreur : votre mot de passe est trop simple\nil ne peut contenir votre code postal.');
										return false;
									break;

									//en cas de reponse inconnu, on affiche un pblm durant le traitement
									default:
										$('#envois_en_cours_header_change_pass').hide();
										alert('Nous rencontrons actuellement un problème de traitement, merci de réessayer ultérieurement.');
										return false;
									break;
								}
							//si l'execution de la page de traitement est incorrect
							} else {
								$('#envois_en_cours_header_change_pass').hide();
								alert('Nous rencontrons actuellement un problème technique, merci de réessayer ultérieurement.');
							}
						}
					});
					}
	return false;
	});


	// ********************************************* gestion mot de passe perdu *********************************************

	// verification du formulaire de mot de passe perdu avant envoi
	function VerifPage_lost_pass(_formData, _jqForm, _options)
	{
		var _error = new Array();

		//on ferme toute les infos bulles des inputs et des selects
		$('form_lost_pass input').each(function() { $(this).closeCallout(); });
		$('#form_lost_pass select').each(function() { $(this).closeCallout(); });


		if ($.trim($('#code_app').val())== '')
		{
			_error = new Array('code_app','Vous devez indiquer votre code apporteur', 200);
		}

		if (_error.length > 0)
		{
			AfficheErreur(_error);
			return false;
		} else {
			return true;
		}
	}

	//Déclenchements dans le cas d'un submit du formulaire
	$('#form_lost_pass').bind('submit', function() {
	//comme il n'y a pas d'action dans le HTML, on le rajoute ici
	$(this).attr('action','template/header_t_envoi_pass.php');
		if (VerifPage_lost_pass())
		{
			$(this).ajaxSubmit({
				//avant envoi, on affiche la fenetre "en cours...."
				//et on masque les erreurs générales deja affichée
				beforeSubmit: function() {
					$('#submit').attr('disabled', 'disabled');
					$('#envois_en_cours_header_lost').show();
					$('#erreur').hide();
					return true;
				},

				success: function(_responseText, _statusText)
				{
					//si l'execution de la page de traitement est correct
					if (_statusText == 'success') {
						//traitement des differentes réponses possible
						switch (_responseText)
						{
							case 'ok':
								$('#envois_en_cours_header_lost').hide();
								$('#submit').removeAttr('disabled');
								alert('votre mot de passe vous a été envoyé.');
								return false;
							break;

							case 'err_codeapp_vide':
								$('#envois_en_cours_header_lost').hide();
								$('#submit').removeAttr('disabled');
								alert('vous avez oublié de saisir votre code apporteur.');
								return false;
							break;

							//en cas de reponse inconnue, on affiche un pblm durant le traitement
							default:
								$('#envois_en_cours_header_lost').hide();
								$('#submit').removeAttr('disabled');
								alert('Nous rencontrons actuellement un problème de traitement, merci de réessayer ultérieurement.');
								return false;
							break;
						}
					//si l'execution de la page de traitement est incorrect
					} else {
						$('#envois_en_cours_header_lost').hide();
						$('#submit').removeAttr('disabled');
						alert('Nous rencontrons actuellement un problème technique, merci de réessayer ultérieurement.');
					}
				}
			});
		}
		return false;
	});

	//******************************************* deconnexion espace prive ***************************************************

	//Déclenchements dans le cas d'un submit du formulaire
	$('#form_logout').bind('submit', function()
	{
		//comme il n'y a pas d'action dans le HTML, on le rajoute ici
		$(this).attr('action','template/header_t_logout.php');
		$(this).ajaxSubmit({
			//avant envoi, on affiche la fenetre "en cours...."
			//et on masque les erreurs générales deja affichée
			beforeSubmit: function() {
				$('#submit').attr('disabled', 'disabled');
				$('#envois_en_cours').show();
				$('#erreur').hide();
				return true;
			},

			success: function(_responseText, _statusText)
			{
				//si l'execution de la page de traitement est correct
				if (_statusText == 'success') {
					//traitement des differentes réponses possible
					switch (_responseText)
					{
						case 'ok':
							$('#envois_en_cours').hide();
							$('#submit').removeAttr('disabled');
							window.location = '.';
							return true;
						break;

						//en cas de reponse inconnu, on affiche un pblm durant le traitement
						default:
							$('#envois_en_cours').hide();
							$('#submit').removeAttr('disabled');
							alert('Nous rencontrons actuellement un problème de traitement, merci de réessayer ultérieurement.');
							return false;
						break;
					}
				//si l'execution de la page de traitement est incorrect
				} else {
					$('#envois_en_cours').hide();
					$('#submit').removeAttr('disabled');
					alert('Nous rencontrons actuellement un problème technique, merci de réessayer ultérieurement.');
				}
			}
		});

		return false;
	});

})