$(document).ready(function() {
	var btnLogin = 	{
		'Valider': function() {
			$('#dialog-login #submit_bt').click();
		}
	};
	var btnForgotPass = {
		'Valider': function() {
			validateForgotPassword();
		}
	};

	var btnPassEL = {
		'Valider': function() {
			validatePassword($('.acces_client').attr('UId'), DIR_HTTP+'espace_client/accueil_espace_client.php');
		}
	};

	// Chargement du formulaire de login et des actions dans le formulaire
	if(!$('.userAccount').length > 0) {
		// Création de la boite de dialogue pour le login
		$('body').append('<div id="dialog-login"></div>');
		$('#dialog-login').dialog({
			title: 'Vous êtes déjà client',
			modal: true,
			resizable: false,
			autoOpen: false,
			close: function() {
				hideObjectForDialog(false);
				$('#loginForm').get(0).reset();
				$('#forgotPassTbl').hide();
				$('#loginTbl').show();
			},
			open: function() { hideObjectForDialog(true); },
			width: 500,
			buttons: btnLogin
		});

		$('#dialog-login').load(DIR_HTTP+'adp_2010/tpl/loginForm.php', function() {
			$('#dialog-login #login_email').val($('#email').val());
			$('#dialog-login #login_password').keydown(function(event) {
				if (event.keyCode == '13') {
					event.preventDefault();
					$('#dialog-login #submit_bt').click();
					//validateLogin();
				}
			});
			$('a.forgotPassword').click(function() {
				$('#loginTbl').hide();
				$('#dialog-login').dialog('option', 'buttons', btnForgotPass);
				$('#forgotPassTbl').show();
				$('#frgt_pass_email').val($('#login_email').val());
			});
			$('a.returnToLogin').click(function() {
				$('#forgotPassTbl').hide();
				$('#dialog-login').dialog('option', 'buttons', btnLogin);
				$('#loginTbl').show();
			});
		});
	} else {
		// Création de la boite de dialogue pour la confirmation du mot de passe
		$('body').append('<div id="dialog-login"></div>');
		$('#dialog-login').dialog({
			title: 'Confirmation du mot de passe',
			modal: true,
			resizable: false,
			autoOpen: false,
			close: function() {
				hideObjectForDialog(false);
				$('#passwordForm').get(0).reset();
				$('#forgotPassTbl').hide();
				$('#passwordTbl').show();
			},
			open: function() { hideObjectForDialog(true); },
			width: 500
		});

		$('#dialog-login').load(DIR_HTTP+'adp_2010/tpl/passwordForm.php', function() {
			$('a.forgotPassword').click(function() {
				$('#passwordTbl').hide();
				$('#dialog-login').dialog('option', 'buttons', btnForgotPass);
				$('#forgotPassTbl').show();
				$('#frgt_pass_email').val();
			});
			$('a.returnToLogin').click(function() {
				$('#forgotPassTbl').hide();
				$('#dialog-login').dialog('option', 'buttons', btnLogin);
				$('#passwordTbl').show();
			});
		});
	}

	// Ajout des actions sur les liens de connexion / déconnexion / Compte client
	$('.login').click(function() { $('#dialog-login').dialog('open'); });
	$('.login').click(function() { $('#dialog-login').dialog('open'); });
/*	$('.userAccount').click(function() {
		if($(this).attr('loginFrom') == 'cookie') {
			$('#dialog-login').dialog('option', 'buttons', btnPassEL);
			$('#dialog-login').dialog('open');
		} else {
			goToEspaceClient();
		}
	});
	$('.logout').click(function() { validateLogout(); });*/
	$('.userAccount').click(function() { validateLogout(); });

	$('#stopAbonnement').click(function() {
		var button = {
			'Annuler': function() { $(this).dialog('close'); },
			'Confirmer': function() { window.location.href = DIR_HTTP+'espace_client/abonnement.php?stopAbonnement'; }
		};
		openDialogMessage('Confirmation', 'Etes-vous sur de vouloir annuler la prolongation automatique de votre abonnement ?', button);
	});
});

var validateLogin = function() {
	disableValidateButton();
	var email = $('#dialog-login #login_email').val();
	var pass = $('#dialog-login #login_password').val();
	var cle_cryptage = $('#cle_cryptage').length > 0 ? $('#cle_cryptage').val() : '';
	var siret = $('#siret').length > 0 ? $('#siret').val() : '';
	var source = $('#source').length > 0 ? $('#source').val() : '';


	if(email.length == 0) {
		openDialogMessage('Erreur', 'Merci de renseigner votre e-mail');
//		alert('Merci de renseigner votre e-mail');
		$('#dialog-login #login_email').focus();
		enableValidateButton();
	} else if(!verifEmailAddressFormat(email)) {
		openDialogMessage('Erreur', 'Merci de renseigner une adresse e-mail valide');
//		alert('Merci de renseigner une adresse e-mail valide');
		$('#dialog-login #login_email').focus();
		enableValidateButton();
	} else if (pass.length == 0) {
		openDialogMessage('Erreur', 'Merci de renseigner votre mot de passe');
		$('#dialog-login #login_password').focus();
		enableValidateButton();
	} else {
		var url = DIR_HTTP+'scripts/interface.php';
		var params = {
			email: email,
			pass: pass,
			cle_cryptage: cle_cryptage,
			siret: siret,
			source: source,
			mode: 'LOGIN'
		};

		$.getJSON(url, params, function(data) {
			if(data == 'KO') {
				enableValidateButton();
				openDialogMessage('Erreur','Erreur d\'identification');
				$('#dialog-login #login_password').val('');
				$('#dialog-login #login_password').focus();
			} else {
				refreshPageInfo(data);
				// Si on est sur la page de coordonnées, retour au panier
				// 2011.03.14 MKO => Pad de retour panier ni de recalcul
//				if(window.location.href == DIR_HTTP+'boutique/coordonnees_inscription.php') {
//					openDialogMessage('Redirection vers le panier en cours...', '<div class="waiter">&nbsp;</div>', {});
//					window.location.href = DIR_HTTP+'boutique/panier.php?recalcul';
//				} else if(window.location.href == DIR_HTTP+'boutique/panier.php') {
//					openDialogMessage('Recalcul de votre panier en cours...', '<div class="waiter">&nbsp;</div>', {});
//					recalculPanier();
//					$('#dialog-login').dialog('close');
//				} else {
//					$('#dialog-login').dialog('close');
//				}

				// Vérification du contenu du panier par rapport à l'utilisateur loggué
				var params2 = {
					mode: 'CHECK_PANIER',
					PaId: $('.panier_client').attr('PaId'),
					UId: data.UId
				};
				$.getJSON(url, params2, function(panier){
					if(panier.extra.Error) {
						// Stockage du panier en session et en cookie
						$('body').append('<iframe src="'+DIR_HTTP+'session.php?mode=SAVE_PANIER&PaId='+panier.PaId+'" style="display: none;"></iframe>');
						$.cookie("adp_panier_id", panier.PaId, { expires: 30, path: '/' });

						// Mise à jour du PaId et du nombre d'article dans le panier
						$('.panier_client').attr('PaId', panier.PaId);
						refreshPanierCount(panier.nbArticles);

						if (panier.extra.Error == 'ARTICLE_DEJA_ACHETE') {
							var buttons = {
								'Mon panier': function() { window.location.href = DIR_HTTP+'boutique/panier.php'; },
								'Continuer ma commande': function() { window.location.href = DIR_HTTP+'boutique/coordonnees_inscription.php'; }
							};
							openDialogMessage('Modification de votre panier', 'Votre panier contenait un article que vous ne pouvez plus commander. Il en a été retiré.', buttons);
							$('#dialog-login').dialog('close');
						}
					} else {
						if(window.location.href == DIR_HTTP+'boutique/coordonnees_inscription.php') {
							$('#dialog-login').html('Récupération de vos informations en cours<br><br><div style="text-align: center; width: 100%"><img src="'+DIR_HTTP+'images/wait.gif" /></div>');
							window.location.href = DIR_HTTP+'boutique/coordonnees_inscription.php';
						} else {
							$('#dialog-login').html('Vous allez être redirigé vers votre espace...<br><br><div style="text-align: center; width: 100%"><img src="'+DIR_HTTP+'images/wait.gif" /></div>');
							window.location.href = DIR_HTTP+'espace_client/accueil_espace_client.php';
						}
					}
				});
			}
		});
	}

	return false;
};

var validatePassword = function(UId, urlCallback) {
	disableValidateButton();
	var pass = $('#dialog-login #login_password').val();

	if (pass.length == 0) {
		openDialogMessage('Erreur', 'Merci de renseigner votre mot de passe');
		$('#dialog-login #login_password').focus();
		enableValidateButton();
	} else {
		var url = DIR_HTTP+'scripts/interface.php';
		var params = {
			UId: UId,
			pass: pass,
			mode: 'CHECK_PASSWORD'
		};

		$.getJSON(url, params, function(data) {
			if(data == 'KO') {
				enableValidateButton();
				openDialogMessage('Erreur','Erreur d\'identification');
				$('#dialog-login #login_password').val('');
				$('#dialog-login #login_password').focus();
			} else {
				window.location.href = urlCallback;
				$('#dialog-login').dialog('close');
			}
		});
	}
};

var validateLogout = function() {
	$('body').append('<iframe src="'+DIR_HTTP+'session.php?mode=USER_LOGOUT" style="display: none;"></iframe>');
	$.cookie("adp_user_id", '', { expires: 30, path: '/' });
	document.location.href = DIR_HTTP+'index.php?logout';
};

var validateLoginRevendeur = function (codeRevendeur) {
	var url = DIR_HTTP+'scripts/interface.php';
	var params = {
		codeRevendeur: codeRevendeur,
		mode: 'LOGIN_REVENDEUR'
	};

	$.getJSON(url, params, function(data) {
		if(data == 'KO') {
			openDialogMessage('Erreur','Erreur d\'identification');
		} else {
			refreshPageInfo(data);
		}
	});
};

var validateForgotPassword = function() {
	disableValidateButton();
	var email = $('#dialog-login #frgt_pass_email').val();

	if(email.length == 0) {
		openDialogMessage('Erreur', 'Merci de renseigner votre e-mail');
		$('#dialog-login #login_email').focus();
		enableValidateButton();
	} else if(!verifEmailAddressFormat(email)) {
		openDialogMessage('Erreur', 'Merci de renseigner une adresse e-mail valide');
		$('#dialog-login #login_email').focus();
		enableValidateButton();
	} else {
		var url = DIR_HTTP+'scripts/interface.php';
		var params = {
			email: email,
			mode: 'FORGOT_PASS'
		};

		$.getJSON(url, params, function(data) {
			if(data == 'KO') {
				enableValidateButton();
				openDialogMessage('Erreur','Erreur lors de l\'envoi de votre mot de passe', dialBtnCloseForgotPass);
			} else {
				openDialogMessage('Mot de passe envoyé', 'Votre mot de passe vous a été envoyé à l\'adresse '+email, dialBtnCloseForgotPass);
			}
			enableValidateButton();
		});
	}
};

var disableValidateButton = function () {
	// Masque le bouton Valider
	$(':button:contains("Valider")').attr('disabled','disabled');
	$(':button:contains("Valider")').addClass('ui-state-disabled');
};

var enableValidateButton = function () {
	// Affiche le bouton Valider
	$(':button:contains("Valider")').removeAttr('disabled');
	$(':button:contains("Valider")').removeClass('ui-state-disabled');
};

var refreshPageInfo = function (infos) {
	// Stockage de l'utilisateur en session et en cookie
	$('body').append('<iframe src="'+DIR_HTTP+'session.php?mode=USER_LOGIN&UId='+infos.UId+'" style="display: none;"></iframe>');
	$.cookie("adp_user_id", infos.UId, { expires: 30, path: '/' });

/*	var userInfo = '<span class="userAccount">'+infos.MYTLV_prenomcontact+' '+infos.MYTLV_nomcontact+'</span>';
		userInfo += '<div class="logout" title="Déconnexion">&nbsp;</div>';

	$('.acces_client').html(userInfo);*/
	$('.acces_client').attr('UId', infos.UId);
	$('.userAccount').click(function() {
		goToEspaceClient();
	});
	$('.logout').click(function() { validateLogout(); });
	if($('#dialog-login #loginForm').length > 0) {
		$('#dialog-login #loginForm').get(0).reset();
	}

	// Procédure BATIGEST
	if($('#lien_identification_log_externe').length > 0) {
		$('#lien_identification_log_externe').remove();
	}
	if($('#choix_action #code_precommande').val() != '') {
		$('#idClientFinal').val(infos.id);
		$('#valideCodePrecommande').click();
	}
};

var verifEmailAddressFormat = function (email) {
	// 2011.09.06 MKO : L'ancienn expression ne permettait pas les tiret après l'@ notamment. Récupération de l'expression utilisée dans jquery validate (plugin)
	return /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(email);
/*	var reg = new RegExp('^[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*@[a-z0-9]+([_|\.|-]­{1}[a-z0-9]+)*[\.]{1}[a-z]{2,6}$', 'i');
	if(reg.test(email)==true) {
		return true;
	} else {
		return false;
	}*/
};

var checkEmailInDatabase = function (email) {
	var url = DIR_HTTP+'scripts/interface.php';
	var params = {
		email: email,
		mode: 'CHECK_EMAIL'
	};

	var result = false;

	$.ajax({ url: url, data: params, success: function(data) {
		if(data == 'EXIST') {
			result = true;
		} else {
			result = false;
		}
	}, async: false, dataType: 'json' });

	return result;
};

var goToEspaceClient = function() {
//	window.location.href = DIR_HTTP+'boutique/espace_client.php';
	window.location.href = DIR_HTTP+'espace_client/accueil_espace_client.php';
};
