var profileHome = "https://" + document.location.hostname + "/" + cu_Marche + "/" + cu_Langue
		+ "/common/personnalisation/nonloggue/modifierMonAirfranceFFPSecurise.do";
var siteHome = "https://" + document.location.hostname + "/" + cu_Marche + "/" + cu_Langue
		+ "/common/home/home/HomePageAction.do";
var fbEnrollPopup = null;

/* ************************************************************************** *
 *                               SWITCHTOHTTPS                                *
 * ************************************************************************** */
function swithToHttps(param) {
	// Dans le cas où un utilisateur s'est connecté avec un mauvais
	// mot de passe, il faut recharger la page avec param en bout d'url.
	// Si on est déjà en HTTPS, on rentre dans la fonction ci-dessous
	// sans recharger la page. => Ajout du test !param
	if (document.location.protocol == "https:") {
		if (param) {
			callLoginWidget();
			return;
		}
		if (document.onLoginFB) {
			document.onLoginFB();
		} else if (typeof onLoginFB != "undefined") {
			onLoginFB();
		}
		return;
	}
	var url = "";
	if ("localhost.airfrance.fr" == document.location.hostname)
		url = "https://localhost.airfrance.fr:9443";

	else
		url = "https://" + document.location.hostname;
	url = url + document.location.pathname + document.location.search;
	if (param) {
		if (document.location.search && document.location.search.length > 0) {
			if (url.substr(-1) == "&")
				url += param;
			else
				url += "&" + param;
		} else {
			url += "?" + param;
		}
	}
	document.location.replace(url);
}

/* ************************************************************************** *
 *                               GOTOERRORPAGE                                *
 * ************************************************************************** */
function goToErrorPage() {
	document.location
			.replace("/cgi-bin/AF/" + cu_Marche + "/" + cu_Langue + "/local/transverse/system/erreur_system.jsp");
}

/* ************************************************************************** *
 *                           LAODMYACCOUNTPROFILE                             *
 * ************************************************************************** */
function loadMyAccountProfile() {
	// Chargement du profil
	jQuery.ajax({
		url : "/" + cu_Marche + "/" + cu_Langue + "/local/myaccount/LoadProfileMyAccountAction.do",
		success : function(data) {
			var resultXml = jQuery(data);
			var result = resultXml.children("profil").attr("result");
			/* Login OK */
			if (result == "3") {
				var identity = resultXml.find("identity").text();
				var number = resultXml.find("number").text();
				var solde = resultXml.find("solde").text();
				var lastOperation = resultXml.find("lastOperation").text();
				if (lastOperation == 0 || lastOperation == null) {
					lastOperation = "<code cmsid='properties.ffp.ffp_cmpt_aucune_operation'>Aucune operation</code>";
				}
				var level = resultXml.find("level").text();
				var pnrs = eval(resultXml.find("pnrs").text());
				var lastName = resultXml.find("lastname").text();
				var codeDepPref = resultXml.find("codeDepPref").text();
				var codeArrPref = resultXml.find("codeArrPref").text();
				var iseatzXml = resultXml.find("iseatzParams").text();
				if (iseatzXml && document.iseatzParams) {
					document.iseatzParams = iseatzXml.data;
				}
				var logguedType = loadLoginTypeFromCookie();
				logguedType = (logguedType && logguedType != "null") ? logguedType : "FB";
				jQuery('#contentLogin').removeClass().addClass('loggued' + logguedType);
				document.body.style.cursor = "default";

				if ($('codeDepPref'))
					$('codeDepPref').value = codeDepPref;
				if ($('codeArrPref'))
					$('codeArrPref').value = codeArrPref;
				fillLogguedFBwithParams(identity, number, solde, lastOperation, level, pnrs, lastName);
				sendWebTrendsFBLogin(level, solde);
				sendFiftyFiveFBLogin();
				swithToHttps();
			} else
				goToErrorPage();
		},
		error : function(jqXHR, textStatus, errorThrown) {
			goToErrorPage();
		}

	});
}

/* ************************************************************************** *
 *                           LOGIN TOUT COURT                                 *
 * ************************************************************************** */
AFKL.event.subscribe("mya.login", function() {
	loginHandler();
});
function loginHandler() {
	loadMyAccountProfile();
}

/* ************************************************************************** *
 *                             LOGIN FAILED                                   *
 * ************************************************************************** */
AFKL.event.subscribe("mya.login.success", function(loginType) {
	loginSuccessHandler(loginType);
});
function loginSuccessHandler(loginType) {
	var urlBase = "";
	if ("localhost.airfrance.fr" == document.location.hostname) {
		urlBase = "https://localhost.airfrance.fr:9443";
	} else {
		urlBase = "https://" + document.location.hostname;
	}
	// le cas ou l'utilisateur se loqque avec le pave sur la page d'identification de resa std
	if (loginType == 'ebt') {
		var urlLogin = urlBase + "/" + cu_Marche + "/" + cu_Langue
				+ "/local/process/standardbooking/CheckLoginMyAccountAction.do";
		document.forms['reservationForm'].action = urlLogin;
		document.forms['reservationForm'].submit();
		// le cas ou l'utilisateur se loqque avec le bloc FB
	} else if (loginType == 'abt') {
		var urlFBLogin = urlBase + "/" + cu_Marche + "/" + cu_Langue
				+ "/common/personnalisation/nonloggue/loginMyAccount.do"
		document.forms['LOGIN'].action = urlFBLogin;
		document.forms['LOGIN'].submit();
	} else if (loginType == 'rebook') {
		var urlRebookLogin = urlBase + "/" + cu_Marche + "/" + cu_Langue
				+ "/local/process/standard/rebooking/ValidateSearchPnrRbkAction.do"
		document.forms['rbkSearchPnrForm'].action = urlRebookLogin;
		document.forms['rbkSearchPnrForm'].submit();
	} else if (loginType == 'abonnes') {
		var urlAbonnesLogin = urlBase + "/" + cu_Marche + "/" + cu_Langue
				+ "/local/process/subscriberbooking/CheckLoginMyAccountAction.do"
		document.forms['idMainForm'].action = urlAbonnesLogin;
		document.forms['idMainForm'].submit();
	} else if (loginType == 'abonnesHp') {
		var urlAbonnesLoginHp = urlBase + "/" + cu_Marche + "/" + cu_Langue
				+ "/local/process/subscriberbooking/CheckLoginMyAccountAction.do"
		document.forms['abonneForm'].action = urlAbonnesLoginHp;
		document.forms['abonneForm'].submit();
		// le cas ou l'utilisateur se loqque avec la boite du haut
	} else {
		loadMyAccountProfile();
	}
}

/* ************************************************************************** *
 *                             LOGIN FAILED                                   *
 * ************************************************************************** */
AFKL.event.subscribe("mya.login.fail", function() {
	loginFailedHandler();
});
function loginFailedHandler() {
	swithToHttps("authFailed=true");
}

/* ************************************************************************** *
 *                            PROFILECHANGED                                  *
 * ************************************************************************** */
AFKL.event.subscribe("mya.profilechanged", function() {
	profileChangedHandler();
});
function profileChangedHandler() {
	loadMyAccountProfile();
}

/* ************************************************************************** *
 *                            OPENCOMPARISON                                  *
 * ************************************************************************** */
AFKL.event.subscribe("mya.opencomparison", function(parameters) {
	openComparisonHandler(parameters);
});
function openComparisonHandler(parameters) {
	jQuery('#enroll-fb span').live('click', function (e) {
		e.preventDefault();
		e.stopPropagation();
		if (fbEnrollPopup) return false;
		if (!e) e = window.event;
		AFKL.event.publish('mya.closelightboxes');
		var parametersUrl = "";
		if (parameters) {
			if (parameters.firstName)
				parametersUrl += ((parametersUrl.length > 0) ? "&" : "") + "firstName=" + escape(parameters.firstName);
			if (parameters.lastName)
				parametersUrl += ((parametersUrl.length > 0) ? "&" : "") + "lastName=" + escape(parameters.lastName);
			if (parameters.dateOfBirth)
				parametersUrl += ((parametersUrl.length > 0) ? "&" : "") + "dateOfBirth=" + escape(parameters.dateOfBirth);
			if (parameters.email)
				parametersUrl += ((parametersUrl.length > 0) ? "&" : "") + "email=" + escape(parameters.email);
			if (parameters.emailConfirmation)
				parametersUrl += ((parametersUrl.length > 0) ? "&" : "") + "emailConfirmation=" + escape(parameters.emailConfirmation);
			if (parameters.mobilePhone)
				parametersUrl += ((parametersUrl.length > 0) ? "&" : "") + "mobilePhone=" + escape(parameters.mobilePhone);
			if (parameters.phone)
				parametersUrl += ((parametersUrl.length > 0) ? "&" : "") + "phone=" + escape(parameters.phone);
			if (parameters.title)
				parametersUrl += ((parametersUrl.length > 0) ? "&" : "") + "title=" + escape(parameters.title);
			if (parameters.specialOffers)
				parametersUrl += ((parametersUrl.length > 0) ? "&" : "") + "specialOffers=" + escape(parameters.specialOffers);
		}
		if (parametersUrl.length > 0)
			parametersUrl = "?" + parametersUrl;
		var url = "https://" + document.location.hostname + "/cgi-bin/AF/" + cu_Marche + "/" + cu_Langue
				+ "/local/myaccount/popin/popin_enroll_fb.jsp#/klm/passage/account/common/registerFlyingBlueMember.htm"
				+ parametersUrl;
		fbEnrollPopup = window.open(url, "", "menubar=no, status=no, scrollbars=yes, menubar=no, width=780, height=600");
		var fbEnrollPopupTimer = setInterval(function() {
			if (fbEnrollPopup.closed) {
				clearInterval(fbEnrollPopupTimer);
				fbEnrollPopup = null;
			}
		}, 500);
		swithToHttps();
		return false;
	});
}

/* ************************************************************************** *
 *                           ENROLLSUCCESSFUL                                 *
 * ************************************************************************** */
AFKL.event.subscribe('mya.enrollsuccessful', function(result) {
	enrollSuccessfulHandler(result);
});
function enrollSuccessfulHandler(result) {
	if (! window.opener) {
		if (result.customerType == "FB" && result.flyingBlueNumber) {
			/* Permits to change account type in the login box */
			saveLoginTypeInCookie('FB');
			saveLoginInCookie(result.flyingBlueNumber);
		}
		if (typeof insertMyAccountRemark != "undefined")
			insertMyAccountRemark(result);
		/*
		 * On ne charge pas le profil pour les enrol autre qu'en fin de résa
		 * car l'événement mya.login déclanché plus tôt s'en occupe...
		 * Les deux lignes suivantes sont donc érronées.
		 * else
		 *     loadMyAccountProfile();
		 */
		return;
	}
	try {
		window.opener.AFKL.event.publish('mya.enrollsuccessful', [result]);
	} catch(e) {
		window.opener.location = "https://" + cu_Serveur + "/" + cu_Marche + "/"
			+ cu_Langue + "/local/home/home/HomePageAction.do";
	} finally {
		self.close();
	}
}

