function AjaxManager(params) {
this.typeArray = [ "POST", "GET" ], this.update(params), this.clear();
}
function compareLabel(a, b) {
return $(a).data("label") < $(b).data("label") ? -1 : $(a).data("label") > $(b).data("label") ? 1 : 0;
}
function compareOrder(a, b) {
return $(a).data("order") < $(b).data("order") ? -1 : $(a).data("order") > $(b).data("order") ? 1 : 0;
}
function extractnotificationFromButton(button) {
return button.attr("id").replace("validate-notifs-", "").trim();
}
function validateNotification(notificationType) {
var params = {
type: "POST",
url: Routing.generate("genybet_myaccount_ajax_notifications_validation", {
notificationsType: notificationType
})
};
am.update(params), am.flush(notificationsCallback);
}
function availableFraction() {
"SIMPLE" == Betslip.bet ? $("#clavier .fractions").addClass("disable") : $("#clavier .fractions").removeClass("disable");
}
function cleanBetslip() {
updatePositionCheckboxes(), clearCheckboxes(), clearBetHorse(), clearBetHorseComplexe(),
Betslip.reset(), BetslipSimple.init(), BetslipOrder.init(), removeAmount(), sortAndShowDesignation(),
disableSorting($(".sortable")), resetBetslipLabel(), saveBetSlipTemp(Betslip), saveStackSimple(BetslipSimple);
}
function isBaseDisable() {
Betslip.disable ? $(".checkbox-wrap .checkbox").not(".champ, .checked").each(function() {
$(this).addClass("disable");
}) : $(".checkbox-wrap .checkbox").not(".champ, .checked").each(function() {
$(this).hasClass("np") || $(this).removeClass("disable");
});
}
function toggleChecked(elmt) {
elmt.hasClass("disable") || elmt.hasClass("np") || (elmt.toggleClass("checked"),
elmt.next().removeClass("checked").addClass("disable"));
}
function sortDesignation() {
Betslip.sortDesignation(), console.warn("[sortDesignation] Betslip.isOrder() " + Betslip.isOrder()),
!Betslip.isOrder() || "PART_WHEEL" != Betslip.formula && "WHEEL" != Betslip.formula ? $("#betslip .header .combinaison").html(Betslip.showDesignation()) : $("#betslip .header .combinaison").html(BetslipOrder.showDesignation());
}
function sortAndShowDesignation() {
sortDesignation(), "SIMPLE" == Betslip.bet && (clearBetHorse(), createBetSimple(Betslip.designation.base)),
Betslip.showDesignation();
}
function clearCheckboxes() {
$(".checkbox-wrap .checkbox").each(function() {
$(this).removeClass("checked").removeClass("disable");
});
}
function clearCheckboxesBase() {
$(".checkbox-wrap .checkbox").not(".champ").each(function() {
$(this).removeClass("checked").removeClass("disable").html(" ");
});
}
function clearDaCheckbox(numHorse) {
$(".checkbox-wrap .checkbox").each(function() {
$(this).data("numhorse") == numHorse && $(this).removeClass("checked").removeClass("disable");
});
}
function clearChampDisableCheckbox() {
$(".checkbox-wrap .checkbox.champ").each(function() {
$(this).prev().hasClass("checked") || $(this).removeClass("disable");
});
}
function displayAmount(amount) {
$(".amount-wrap .amount").html(number_format(amount, 2, ",", " ") + " €");
}
function removeAmount() {
$(".amount-wrap .amount").html("0,00 €"), $(".amount-wrap .stake").val("");
}
function removeTrashMode() {
$(".logo-basket").removeClass("on");
}
function enableButton() {
$(".amount-wrap button#validateBtn").removeClass("disable");
}
function disableButton() {
$(".amount-wrap button#validateBtn").not(".login").addClass("disable");
}
function showDepositBtn() {
$(".amount-wrap button#validateBtn").not(".login").addClass("hidden"), $(".amount-wrap button#DepositBtn").removeClass("hidden disable");
}
function hideDepositBtn() {
$(".amount-wrap button#validateBtn").removeClass("hidden"), $(".amount-wrap button#DepositBtn").addClass("hidden");
}
function isEmpty(obj) {
for (var prop in obj) if (obj.hasOwnProperty(prop)) return !1;
return !0;
}
function hideForBetAuto() {
Betslip.isAuto ? ($(".logo-basket").hide(), $(".sel-formula-key").hide(), "MULTI" != Betslip.bet ? $(".formula-wrap").hide() : $(".formula-wrap").show()) : ($(".sel-formula-key").show(),
$(".formula-wrap").show());
}
function resetBetslipLabel() {
$(".my-horse-base").hide(), $(".my-horses-base").show();
}
function getPathList() {
return [ Routing.generate("genybet_grid_bet"), Routing.generate("genybet_sport_program"), Routing.generate("genybet_sport_all_sports"), Routing.generate("genybet_grid_list"), Routing.generate("genybet_sport_paris_stars"), Routing.generate("genybet_sport_paris_live"), Routing.generate("genybet_sport_event"), Routing.generate("genybet_sport_event_live") ];
}
function checkSportPage(longPath) {
return -1 != longPath.indexOf("/sport") ? "sport" : "turf";
}
function refreshHeader() {
var statePath = checkSportPage(window.location.href), params = {
type: "POST",
url: Routing.generate("genybet_ajax_header_path", {
currentPath: statePath
}),
dataType: "html"
};
refreshAm.update(params), refreshAm.flush(refreshHeaderCallBack);
}
function refreshGridHeader() {
$.get(Routing.generate("genybet_ajax_header"), function(data) {
data = data.replace("sb-toggle-left", "back"), $("#header").html(data);
});
}
function backToList() {
$("#grille-wrap").removeClass("shown"), setTimeout(function() {
$("html,body").scrollTop(0), $("#grille-wrap").removeClass("shown").hide(), $("#grille-list").parent().fadeIn(200);
}, 300);
}
function goBack() {
window.history.back();
}
function refreshBandeau() {
$("#betslip .header").removeAttr("style");
}
function displayNotifications(notificationsList) {
$.each(notificationsList, function(key, currentelement) {
$("#notifications-popup-wrapper").append(returnNotificationHtml(currentelement, key));
}), showCurrentPopUp("#notifications-popup-wrapper");
}
function returnNotificationHtml(notificationsElement, notificationType) {
return notificationTemplate(notificationsElement, notificationType);
}
function notificationTemplate(notificationsElement, notificationType) {
var descriptionList = "", montant = "", dateNotificaiton = "";
return $.each(notificationsElement, function(key, currentelement) {
"transaction" == notificationType.trim() && (montant = " (" + currentelement.montant + " €) ",
montant = montant.replace(".", ",")), dateNotificaiton = currentelement.date, "limiteur" == notificationType.trim() && (dateNotificaiton = ""),
descriptionList = descriptionList + '
' + currentelement.description + montant + " " + dateNotificaiton + "
";
}), '';
}
function showCurrentPopUp(wrapperId) {
if ($(wrapperId).children().length > 0) {
var currentNotification = $(wrapperId).children().first();
showPopup(currentNotification.attr("id"), $("#" + currentNotification.attr("id")).html());
}
}
function hideModalPopUp(button) {
$(".greyed-out").remove(), button.closest(".popup-container").remove();
}
function removeShowedPop(button) {
var PopUpToClose = button.closest(".popup-container"), parentId = PopUpToClose.attr("id");
$("#" + parentId).remove();
}
function createSession(name, value) {
sessionStorage.setItem(name, value);
}
function readSession(name) {
return sessionStorage.getItem(name);
}
function eraseSession(name) {
sessionStorage.removeItem(name);
}
function resetBetslipAftervalidation() {
void 0 !== $("#partants-list").attr("data-bet-selected") && "null null" == $("#partants-list").attr("data-bet-selected").trim() && (eraseSession("tiket-race-" + currentRaceId()),
eraseSession("selected-bet-type-race-" + currentRaceId()), eraseSession("simple-bet-race-" + currentRaceId()),
eraseSession("order-bet-race-" + currentRaceId()));
}
function animateSportTitles() {
function isEllipsisActive(e) {
return e.offsetWidth < e.scrollWidth;
}
$(".betslip-sport-scroll-text").each(function() {
var scrollWidth = $(this)[0].parentElement.scrollWidth, offsetWidth = $(this)[0].parentElement.offsetWidth, margin = scrollWidth - offsetWidth + 10;
isEllipsisActive($(this)[0].parentElement) && $(this).delay(500).animate({
"margin-left": -margin
}, 5e3, "easeInOutCubic", function() {
$(this).css("margin-left", "0px");
});
}), $(".txt-scroll").each(function() {
var scrollWidth = $(this)[0].scrollWidth, offsetWidth = $(this)[0].offsetWidth, margin = scrollWidth - offsetWidth + 10;
isEllipsisActive($(this)[0]) && $(this).delay(500).animate({
"margin-left": -margin
}, 5e3, "easeInOutCubic", function() {
$(this).css("margin-left", "0px");
});
}), setTimeout(animateSportTitles, 6e3);
}
function resizeLongTexts() {
var container = $("#sport-event-label-container"), text = $("#sport-event-label");
if (container && text) {
var fontsize = text.css("font-size"), lineHeight = text.css("line-height");
container.css("fontSize", parseFloat(fontsize) - 1), container.css("line-height", parseFloat(lineHeight) - 1 + "px"),
text.height() > 45 && resizeLongTexts();
}
}
function disableSwipe() {
$("html,body").css("overscroll-behavior-x", "none"), $("html,body").css("overscroll-behavior-y", "none");
}
function enableSwipe() {
$("html,body").css("overscroll-behavior-x", "auto"), $("html,body").css("overscroll-behavior-y", "auto");
}
function confirmationGridBet() {
showPopup("confirmation-sport-grid-popup", $("#confirmation-sport-grid-popup").html());
}
function resetGridState() {
$(".split.secondary.grey-xdark.clean").trigger("click"), disableValidateBtn();
}
function getGridBetParameter(gridId) {
var choiceArray = [];
return $("span[id^='choice-" + gridId + "-']").filter(".selected").each(function() {
var currentId = this.id.split("-")[2];
choiceArray.push(currentId);
}), {
mode: "grid",
grid_id: gridId,
bettingslip: choiceArray
};
}
function setBack() {
var pageUrl = document.URL.split("/");
if ("liste-des-grilles" == (pageUrl = pageUrl[pageUrl.length - 1])) {
$(".sb-toggle-left").remove(), allGrid = $("#all-grid"), backParent = $(".user-controls"),
backParent.append(allGrid), allGrid.addClass("back"), allGrid.addClass("smart");
}
}
function ableValidationBtn() {
$(".swiper-slide-active").find("button.bet-grid").removeClass("disable");
}
function disableValidateBtn() {
$(".swiper-slide-active").find("button.bet-grid").addClass("disable");
}
function modifyAmount(field, amount) {
amount > 0 ? ableValidationBtn() : disableValidateBtn(), field.text((Math.round(100 * amount) / 100).toFixed(2).replace(".", ",") + " €");
}
function countSelected(gameGrid) {
var totalSelected = 0;
return gameGrid.children().each(function() {
$(this).hasClass("selected") && (totalSelected += 1);
}), totalSelected;
}
function defineAmount(gameBlock) {
var totalAmount = 1;
return gameBlock.each(function(index, value) {
var gridSelectNumber = countSelected($(this));
totalAmount *= gridSelectNumber;
}), totalAmount;
}
function setBetAmount() {
modifyAmount($(".swiper-slide-active").find(".amount-grid"), defineAmount($(".swiper-slide-active").find(".game-grid")));
}
function BetResponse(response) {
var defaultData = {
betType: "",
formulaKey: "",
formulaRisk: "NOT_AVAILABLE",
stake: 0,
betDesignation: null,
status: "KO",
bettingError: "EPDP000_BASE_ERROR",
errorMessage: ""
};
this.errorList = {
EPDP_CANCEL_REQUEST_ERROR: "Vous ne pouvez pas annuler ce pari.",
EPDP_PMC_RECORD_TRANSACTION_NON_RUNNER_ERROR: "Vous ne pouvez pas effectuer ce pari.",
EPDP000_RACE_NOT_FOUND: "Cette course n'est plus ouverte aux paris.",
EPDP000_EMPTY_RACE_FORMULATIONS: "Formulation du pari incorrecte.",
EPDP000_INVALID_RACE_FORMULATION: "Formulation du pari incorrecte.",
EPDP000_INVALID_FORMULATION_STATE: "Formulation du pari incorrecte.",
EPDP000_INVALID_BET_BASE_LENGTH: "Formulation du pari incorrecte.",
EPDP000_INVALID_BET_PART_WHEEL_LENGTH: "Formulation du pari incorrecte.",
EPDP000_RACE_ID_ERROR: "Cette course n'est plus ouverte aux paris.",
EPDP000_ACCOUNT_ID_ERROR: "Vous ne pouvez pas effectuer de pari.",
EPDP000_BET_TYPE_ERROR: "Vous ne pouvez pas effectuer ce pari.",
EPDP000_FORMULA_KEY_ERROR: "Le type de pari est manquant.",
EPDP000_AMOUNT_ERROR: "La mise minimale pour un pari est de 1€.",
EPDP000_AMOUNT_ERROR_ROYAL5: "Le montant total de votre pari doit être d’au moins 2€.",
EPDP000_UNIT_AMOUNT_LIMIT_EXCEEDED: "Votre mise unitaire dépasse le maximum autorisé pour ce type de pari.",
EPDP000_AMOUNT_LIMIT_ERROR: "Le montant de votre pari dépasse la limite autorisée par combinaison.",
EPDP000_MAX_STAKES_LIMIT_EXCEEDED: "Ce pari entrainerait le dépassement des enjeux maximum autorisés par client sur une même combinaison.",
EPDP000_BASE_ERROR: "Vous ne pouvez pas effectuer ce pari.",
EPDP000_RACE_NOT_IN_SALE: "Cette course n'est pas ouverte aux paris.",
EPDP000_HR_TRANSAC_ACHAT_PARI_ERROR: "Le montant de votre solde/vos limiteurs ne permettent pas de prendre le pari.",
EPDP000_EMPTY_ASSOCIATED_FOR_WHEEL_OR_PART_WHEEL: "Vous devez sélectionner des numéros associés pour un champ réduit ou total.",
EPDP_ZETOTE_RECORD_TRANSACTION_ERROR: "Vous ne pouvez pas effectuer ce pari.",
EPDP_TOTE_CANCEL_TRANSACTION_ERROR: "Vous ne pouvez pas annuler ce pari.",
EPDP_ZETOTE_BREAK_INTO_UNIT_BETS_ERROR: "Vous ne pouvez pas effectuer ce pari.",
EPDP_TOTE_CONTACT_WEBSERVICE: "Vous ne pouvez pas effectuer ce pari.",
EPDP_TOTE_CONTACT_WEBSERVICE_ROYAL5: "La mise de votre pari doit être d'au moins 0,50€.",
EPDP_TOTE_BET_REFUSED: "Vous ne pouvez pas effectuer ce pari.",
EPDP_BET_ALREADY_CANCELED: "Votre pari a déjà été annulé.",
EPDP_GEANT_SAME_BASES_AND_COMPLEMENT: "Un même cheval ne peut pas être une base et un complémentaire",
EPDP_GEANT_NOT_ENOUGH_BASES: "Vous devez choisir au moins un cheval par course",
EPDP_CANCEL_RACE_STARTED: "Impossible d'annuler un pari après le départ de la course",
EPDP_CANCEL_RACE_STARTS_IN_10_MIN: "Impossible d'annuler un pari moins de 10 minutes avant le départ de la course"
}, this.data = response.data || defaultData, "ROYAL5" == this.data.betType && ("EPDP000_AMOUNT_ERROR" == this.data.bettingError && (this.data.bettingError = "EPDP000_AMOUNT_ERROR_ROYAL5"),
"EPDP_TOTE_CONTACT_WEBSERVICE" == this.data.bettingError && -1 != this.data.errorMessage.search("Invalid amount") && (this.data.bettingError = "EPDP_TOTE_CONTACT_WEBSERVICE_ROYAL5")),
this["@Type"] = response["@Type"] || "com.geny.pdp.firebirds.domainmodel.bet.impl.BetResponse",
this.errors = response.errors || null, this.horse = response.horse || null, this.$popup = $("#betslip-popup") || null;
}
function getSavedAccept() {
return void 0 !== Cookies.get("ticketSportAccept") ? Cookies.get("ticketSportAccept") : 2;
}
function updateAllSimpleBets() {
$("#betslip-simple .betting-wrap .button").each(function() {
var stake = $(this).parents(".betting-wrap").find("input[name=stake]").val(), event = $(this).parents(".choiceItem").data("event"), uid = $(this).parents(".choiceItem").data("unique-id");
BetSlipSport.updateStakeSimple(stake, event, uid);
var odd = $(this).parents(".choiceItem").find(".odd-betslip").data("odds"), gains = computeTruncateAndFormatWinnings(odd, stake);
updateTotal($(this).parents(".betting-wrap").find(".amount-wrap .amount"), gains),
checkValidateButton();
});
}
function generateAmountPopup() {
$("#liste-soldes").clone().prop("id", "liste-soldes-sport-betslip").prependTo($("#sport-betslip-amount").parent()).css("z-index", 400),
$("#liste-soldes-sport-betslip .greyed-out").fadeIn(200), $("#liste-soldes-sport-betslip .content").delay(200).slideDown(200),
BetSlipSport.amountPopUp = !0;
}
function removeAmountPopup() {
$("#liste-soldes-sport-betslip").remove(), BetSlipSport.amountPopUp = !1;
}
function toggleAmountPopup() {
BetSlipSport.amountPopUp ? removeAmountPopup() : generateAmountPopup();
}
function stakeSpiner(elmt) {
var input = elmt.parent().find("input"), value = input.attr("value") || 1, operator = elmt.hasClass("more") ? "+" : "-";
if (value < 1 || 1 == value && elmt.hasClass("less")) var number = .1; else if (value >= 1 && value < 10 || 10 == value && elmt.hasClass("less")) var number = 1; else if (value >= 10 && value < 100 || 100 == value && elmt.hasClass("less")) var number = 10; else if (value >= 100 && value < 500 || 500 == value && elmt.hasClass("less")) var number = 100; else var number = 500;
var newValue = parseFloat(eval(value + operator + number));
newValue > 0 && newValue <= 3e3 && input.attr("value", newValue.toFixed(2));
}
function generateBetslip() {
var betslipSimple = "", betslipSystem = "", betslip = "";
if (Object.keys(BetSlipSport.ticket.designation).length > 0) {
$("#betslip-simple > .content").html('
'), $("#betslip-combine > .content").html('
'),
$("#betslip-systeme > .content").html('
');
for (var event in BetSlipSport.ticket.designation) for (var choice in BetSlipSport.ticket.designation[event]) betslip += generateListBets(event, choice, BetSlipSport.ticket.designation[event][choice], !1),
betslipSimple += generateListBets(event, choice, BetSlipSport.ticket.designation[event][choice], !0),
betslipSystem += generateListBets(event, choice, BetSlipSport.ticket.designation[event][choice], !1);
}
if ("" != betslip && "" != betslipSimple && "" != betslipSystem) {
var totalOdds = computeThenFormatTruncatedCombinedOdd(), totalStake = computeThenFormatTotalStakes();
$("#betslip-simple .betList").html(betslipSimple), $(generateBetslipFooter(!0, totalOdds, totalStake, !1)).insertAfter("#betslip-simple > .content"),
totalStake = BetSlipSport.ticket.stake, $("#betslip-combine .betList").html(betslip),
$(generateBetslipFooter(!1, totalOdds, totalStake, !1)).insertAfter("#betslip-combine > .content"),
$("#betslip-systeme .betList").html(betslip);
var totalStakeSystem = BetSlipSport.ticket.stakeSystem, totalStakeByCombi = computeTotalStakeSystem(totalStakeSystem);
$(generateBetslipFooter(!1, totalStakeByCombi, totalStakeSystem, !0)).insertAfter("#betslip-systeme > .content"),
BetSlipSport.enableCombineSystem(), BetSlipSport.activateTab();
}
checkValidateButton();
}
function generateListBets(event, uid, choice, isSimple) {
betslip = "", betslip += '',
betslip += '
', betslip += '
',
betslip += '
',
betslip += '
',
betslip += '' + choice.eventTitle + " ",
betslip += "
", betslip += '
',
betslip += "
", betslip += '
', betslip += '
' + decodeURIComponent(choice.question) + "
",
betslip += '
', betslip += "" + decodeURI(choice.actor) + " ";
var oddFormated = "";
return oddFormated = choice.odd >= 100 ? number_format(choice.odd, 0, "", " ") : number_format(choice.odd, 2, ".", " "),
betslip += '' + oddFormated + " ",
betslip += "
", 1 == isSimple && (betslip += '
',
betslip += '
', betslip += ' ',
betslip += '', betslip += ' ',
betslip += '€ ', betslip += " ", betslip += ' ',
betslip += "
", betslip += '
', betslip += '
' + Translator.trans("bet.potential.gains") + "
",
betslip += '
' + computeTruncateAndFormatWinnings(choice.odd, choice.stake) + " €
",
betslip += "
", betslip += "
"), betslip += "
", betslip;
}
function generateBetslipFooter(isSimple, oddOrStakeToDisplay, sumStakes, isSystem) {
var stakeTypeBet = 1 == isSystem ? "totalStakeSystem" : "totalStakeCombine", oddsTypeBet = 1 == isSystem ? "totalOddsSystem" : "totalOddsCombine", solde = document.getElementById("betslip-sport").dataset.soldeSport;
if (betslip = '", betslip;
}
function generateFreebetSwithcerHtml() {
var disableClass = getFreebetBalance() <= 0 ? "disable" : "", html = ' ';
return html += '
Parier en pari gratuit
', html += '
',
1 == BetSlipSport.ticket.useFreeBet ? (html += '
',
html += '
') : (html += '
',
html += '
'),
html += "
", html += "
";
}
function showFreebetSwitcher(isSimple, isSystem) {
return !(isSimple && BetSlipSport.choiceCount() > 1) && !isSystem;
}
function getFreebetBalance() {
var formattedSoldeFreebet = null, freebetSolde = $("#betslip-sport").attr("data-solde-sport-freebet");
return void 0 !== freebetSolde && (formattedSoldeFreebet = parseFloat(freebetSolde)),
formattedSoldeFreebet;
}
function computeTruncateAndFormatWinnings(odd, stake) {
var res = odd * stake;
return 1 == BetSlipSport.ticket.useFreeBet && (res -= stake), res = truncateFloat(res, 2),
number_format(res, 2, ",", ".");
}
function addAllSimpleStakes() {
var res = 0;
if (Object.keys(BetSlipSport.ticket.designation).length > 0) for (var event in BetSlipSport.ticket.designation) for (var choice in BetSlipSport.ticket.designation[event]) res += BetSlipSport.ticket.designation[event][choice].stake;
return res;
}
function computeThenFormatTotalStakes() {
return number_format(addAllSimpleStakes(), 2, ",", " ");
}
function computeThenFormatTruncatedCombinedOdd() {
return number_format(truncateFloat(computeRawCombinedOdd(), 2), 2, ".", " ");
}
function computeThenFormatRawCombinedOdd() {
return number_format(computeRawCombinedOdd(), 2, ".", " ");
}
function computeRawCombinedOdd() {
var res = 1;
if (Object.keys(BetSlipSport.ticket.designation).length > 0) for (var event in BetSlipSport.ticket.designation) for (var choice in BetSlipSport.ticket.designation[event]) res *= BetSlipSport.ticket.designation[event][choice].odd;
return res;
}
function updateTotal(elmt, total) {
elmt.text(total + " €");
}
function computeThenFormatWinningsSimple() {
return number_format(computeRawWinningsSimple(), 2, ",", ".");
}
function computeRawWinningsSimple() {
var res = 0, stake = 0, potentialGain = 0;
if (Object.keys(BetSlipSport.ticket.designation).length > 0) for (var event in BetSlipSport.ticket.designation) for (var choice in BetSlipSport.ticket.designation[event]) potentialGain = BetSlipSport.ticket.designation[event][choice].odd * BetSlipSport.ticket.designation[event][choice].stake,
res += truncateFloat(potentialGain, 2), stake += BetSlipSport.ticket.designation[event][choice].stake;
return 1 === BetSlipSport.ticket.useFreeBet && 1 === Object.keys(BetSlipSport.ticket.designation).length && (res -= stake),
res;
}
function computeThenFormatWinningsCombine() {
var res = computeRawWinningsCombine();
return res = truncateFloat(res, 2), number_format(res, 2, ",", ".");
}
function computeRawWinningsCombine() {
var res = computeRawCombinedOdd() * BetSlipSport.ticket.stake;
return 1 === BetSlipSport.ticket.useFreeBet && (res -= BetSlipSport.ticket.stake),
res;
}
function computeRawWinningsSystem(stake) {
var totalOdds = totalOddsSystem();
return totalOdds * stake;
}
function computeThenFormatWinningsSystem(stake, separator) {
return number_format(computeRawWinningsSystem(stake), 2, separator, ".");
}
function totalOddsSystem() {
var answerList = [], totalOdds = 1, combination = 1;
if (Object.keys(BetSlipSport.ticket.designation).length > 2 && Object.keys(BetSlipSport.ticket.designation).length < 7) {
for (var event in BetSlipSport.ticket.designation) for (var choice in BetSlipSport.ticket.designation[event]) answerList.push(BetSlipSport.ticket.designation[event][choice].odd);
combination = k_combinations(answerList, nbBetSystem[Object.keys(BetSlipSport.ticket.designation).length][BetSlipSport.ticket.risk].nbCombinaison),
totalOdds = totalGainsSystem(combination);
}
return totalOdds;
}
function computeTotalStakeSystem(stake) {
var res = 1;
return Object.keys(BetSlipSport.ticket.designation).length > 2 && Object.keys(BetSlipSport.ticket.designation).length < 7 && (res = stake * nbBetSystem[Object.keys(BetSlipSport.ticket.designation).length][BetSlipSport.ticket.risk].totalCombi),
number_format(res, 2, ",", " ");
}
function k_combinations(set, k) {
var i, j, combs, head, tailcombs;
if (k > set.length || k <= 0) return [];
if (k == set.length) return [ set ];
if (1 == k) {
for (combs = [], i = 0; i < set.length; i++) combs.push([ set[i] ]);
return combs;
}
for (combs = [], i = 0; i < set.length - k + 1; i++) for (head = set.slice(i, i + 1),
tailcombs = k_combinations(set.slice(i + 1), k - 1), j = 0; j < tailcombs.length; j++) combs.push(head.concat(tailcombs[j]));
return combs;
}
function totalGainsSystem(combinations) {
var res = 0;
for (var item in combinations) {
var tmp = 1;
for (var elmt in combinations[item]) tmp *= combinations[item][elmt];
res += tmp;
}
return res;
}
function refreshRiskList() {
var betslip = "";
if (Object.keys(BetSlipSport.ticket.designation).length > 2 && Object.keys(BetSlipSport.ticket.designation).length < 7) {
betslip += '', betslip += ' ',
betslip += '' + Translator.trans(nbBetSystem[Object.keys(BetSlipSport.ticket.designation).length][BetSlipSport.ticket.risk].label) + " ",
betslip += ' ', betslip += " ", betslip += '';
for (var risk in nbBetSystem[Object.keys(BetSlipSport.ticket.designation).length]) betslip += '' + Translator.trans(nbBetSystem[Object.keys(BetSlipSport.ticket.designation).length][risk].label) + " ";
betslip += " ";
}
$("#betslip-systeme .select-box").html(betslip);
}
function checkValidateButton() {
var betslipElement = $("#betslip-sport"), solde = betslipElement.attr("data-solde-sport"), useFreebet = BetSlipSport.ticket.useFreeBet, stakeSimple = BetSlipSport.getStakeSimple(), stakeComb = BetSlipSport.ticket.stake, stakeSys = BetSlipSport.getTotalStakeSystem();
getFreebetBalance() <= 0 ? BetSlipSport.ticket.enableFreeBetSwitcher = !1 : BetSlipSport.ticket.enableFreeBetSwitcher = !0,
void 0 !== stakeSimple && (solde >= stakeSimple || 1 === useFreebet ? ($("#betslip-simple button.validate").removeClass("hidden"),
$("#betslip-simple button#DepositBtn").addClass("hidden")) : ($("#betslip-simple button.validate").addClass("hidden"),
$("#betslip-simple button#DepositBtn").removeClass("hidden"))), void 0 !== stakeComb && (solde >= stakeComb || 1 === useFreebet ? ($("#betslip-combine button.validate").removeClass("hidden"),
$("#betslip-combine button#DepositBtn").addClass("hidden")) : ($("#betslip-combine button.validate").addClass("hidden"),
$("#betslip-combine button#DepositBtn").removeClass("hidden"))), void 0 !== stakeSys && (solde >= stakeSys ? ($("#betslip-systeme button.validate").removeClass("hidden"),
$("#betslip-systeme button#DepositBtn").addClass("hidden")) : ($("#betslip-systeme button.validate").addClass("hidden"),
$("#betslip-systeme button#DepositBtn").removeClass("hidden")));
}
function updateBetSlipStake() {
var stake = $(".onChange input[name=stake]").val(), event = $(".onChange").parents(".choiceItem").data("event"), uid = $(".onChange").parents(".choiceItem").data("unique-id");
if (void 0 !== stake && void 0 !== event && void 0 !== uid) {
BetSlipSport.updateStakeSimple(stake, event, uid), checkFreebetBalanceLimit("simple", !1) && (stake = BetSlipSport.getStakeSimple());
var odd = $(".onChange").parents(".choiceItem").find(".odd-betslip").data("odds"), gains = computeTruncateAndFormatWinnings(odd, stake), totalSimple = computeThenFormatWinningsSimple(), totalStake = computeThenFormatTotalStakes();
updateTotal($(".onChange").parents(".betting-wrap").find(".amount-wrap .amount"), gains),
updateTotal($(".onChange").parents("#betslip-simple").find(".totalGainsSimple"), totalSimple),
updateTotal($(".onChange").parents("#betslip-simple").find(".totalStakeSimple"), totalStake);
}
var type = $(".tab.selected").data("type");
if ("combine" == type) {
BetSlipSport.updateStakeCombine(stake), checkFreebetBalanceLimit("combine", !1);
var totalCombine = computeThenFormatWinningsCombine();
updateTotal($("#betslip-combine").find(".totalStakeCombine"), totalCombine);
}
if ("systeme" == type) {
BetSlipSport.updateStakeSystem(stake);
var totalSystem = computeThenFormatWinningsSystem(BetSlipSport.ticket.stakeSystem, "."), totalStakeByCombi = computeTotalStakeSystem(BetSlipSport.ticket.stakeSystem);
updateTotal($("#betslip-systeme").find(".totalStakeSystem"), totalSystem), updateTotal($("#betslip-systeme").find(".totalOddsSystem"), totalStakeByCombi);
}
checkValidateButton(), BetSlipSport.setNbBets();
}
function removeFreebetStakeLimitOnSimpleBets(resetOriginalStake) {
null !== BetSlipSport.ticket.originalFreeBetStake && (resetOriginalStake && (BetSlipSport.ticket.stake = BetSlipSport.ticket.originalFreeBetStake,
$("#betslip-simple .betting-wrap .button").each(function() {
var stake = BetSlipSport.ticket.stake;
$(this).parents(".betting-wrap").find("input[name=stake]").val(stake);
var event = $(this).parents(".choiceItem").data("event"), uid = $(this).parents(".choiceItem").data("unique-id");
BetSlipSport.updateStakeSimple(stake, event, uid);
})), BetSlipSport.ticket.originalFreeBetStake = null, 1 === $("#simple-freebet-limit").length && $("#simple-freebet-limit").remove());
}
function removeFreebetStakeLimitOnCombineBets(resetOriginalStake) {
null !== BetSlipSport.ticket.originalFreeBetStake && (resetOriginalStake && (BetSlipSport.ticket.stake = BetSlipSport.ticket.originalFreeBetStake,
$(".combinated-stakes-wrap").find("input[name=stake]").val(BetSlipSport.ticket.stake)),
BetSlipSport.ticket.originalFreeBetStake = null, 1 === $("#combine-freebet-limit").length && $("#combine-freebet-limit").remove());
}
function addFreebetStakeLimitOnSimpleBets() {
BetSlipSport.ticket.originalFreeBetStake || (BetSlipSport.ticket.originalFreeBetStake = BetSlipSport.getStakeSimple()),
BetSlipSport.ticket.stake = getFreebetBalance(), $("#betslip-simple .betting-wrap .button").each(function() {
var stake = BetSlipSport.ticket.stake;
$(this).parents(".betting-wrap").find("input[name=stake]").val(stake);
var event = $(this).parents(".choiceItem").data("event"), uid = $(this).parents(".choiceItem").data("unique-id");
BetSlipSport.updateStakeSimple(stake, event, uid);
}), 0 === $("#simple-freebet-limit").length && $("#betslip-simple .footer > div:nth-child(1)").after('montant ajusté avec max solde freebets
');
}
function addFreebetStakeLimitOnCombineBets() {
BetSlipSport.ticket.originalFreeBetStake || (BetSlipSport.ticket.originalFreeBetStake = BetSlipSport.ticket.stake),
BetSlipSport.ticket.stake = getFreebetBalance(), $(".combinated-stakes-wrap").find("input[name=stake]").val(BetSlipSport.ticket.stake),
0 === $("#combine-freebet-limit").length && $("#betslip-combine .footer > div:nth-child(1)").after('montant ajusté avec max solde freebets
');
}
function checkFreebetBalanceLimit(betType, resetOriginalStake) {
if ("simple" === betType) {
if (1 === BetSlipSport.ticket.useFreeBet && getFreebetBalance() < BetSlipSport.getStakeSimple()) return addFreebetStakeLimitOnSimpleBets(),
!0;
removeFreebetStakeLimitOnSimpleBets(resetOriginalStake);
}
if ("combine" === betType) {
if (1 === BetSlipSport.ticket.useFreeBet && getFreebetBalance() < BetSlipSport.ticket.stake) return addFreebetStakeLimitOnCombineBets(),
!0;
removeFreebetStakeLimitOnCombineBets(resetOriginalStake);
}
return !1;
}
function truncateFloat(number, digitsCount) {
return Math.trunc(number * Math.pow(10, digitsCount)) / Math.pow(10, digitsCount);
}
function manageBasket(nbHorse) {
nbHorse > 0 ? $("#betslip .logo-basket").removeClass("hidden") : $("#betslip .logo-basket").addClass("hidden");
}
function calculateArrangement(n, p) {
return n >= p ? calculateFactorielle(n) / calculateFactorielle(n - p) : 0;
}
function calculateCombination(n, p) {
return calculateArrangement(n, p) / calculateFactorielle(p);
}
function calculateFactorielle(n) {
return n <= 0 || isNaN(n) ? 1 : n * calculateFactorielle(n - 1);
}
function number_format(number, decimals, dec_point, thousands_sep) {
number = (number + "").replace(/[^0-9+\-Ee.]/g, "");
var n = isFinite(+number) ? +number : 0, prec = isFinite(+decimals) ? Math.abs(decimals) : 0, sep = void 0 === thousands_sep ? "," : thousands_sep, dec = void 0 === dec_point ? "." : dec_point, s = "", toFixedFix = function(n, prec) {
var k = Math.pow(10, prec);
return "" + (Math.round(n * k) / k).toFixed(prec);
};
return s = (prec ? toFixedFix(n, prec) : "" + Math.round(n)).split("."), s[0].length > 3 && (s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep)),
(s[1] || "").length < prec && (s[1] = s[1] || "", s[1] += new Array(prec - s[1].length + 1).join("0")),
s.join(dec);
}
function currentRaceId() {
return $("#turf-race-id").attr("value");
}
function saveBetTypeSelected(bet, formula) {
if (!isGiantGrid()) {
var betSelected = $("#partants-list").attr("data-bet-selected"), selectedOne = "no-bet-selected";
betSelected != bet + " " + formula && (selectedOne = {
"data-bet-type": bet,
"data-formula-key": formula
}), createSession("selected-bet-type-race-" + currentRaceId(), JSON.stringify(selectedOne), .5);
}
}
function readBetTypeSelected() {
return JSON.parse(readSession("selected-bet-type-race-" + currentRaceId()));
}
function saveBetSlipTemp(betSlip) {
createSession("tiket-race-" + currentRaceId(), JSON.stringify(betSlip), .5);
}
function readBetSlipTemp() {
return JSON.parse(readSession("tiket-race-" + currentRaceId()));
}
function saveStackSimple(stackObject) {
createSession("simple-bet-race-" + currentRaceId(), JSON.stringify(stackObject), .5);
}
function readStackSimple() {
return JSON.parse(readSession("simple-bet-race-" + currentRaceId()));
}
function saveOrderStack(stackObject) {
createSession("order-bet-race-" + currentRaceId(), JSON.stringify(stackObject), .5);
}
function readStackOrder() {
return JSON.parse(readSession("order-bet-race-" + currentRaceId()));
}
function initBetSlipFromTemp() {
var tempSlipStack = readStackSimple(), tempBetSlip = readBetSlipTemp(), tempOrder = readStackOrder();
null != tempBetSlip && (feedBetSlipObject(tempBetSlip), remindBetSelection(), "SIMPLE" == Betslip.bet && remindSimpleStack(tempSlipStack),
null != tempOrder && BetslipOrder.init(), remindHorseSelection(), remindBetFormula(tempBetSlip.formula),
remindType(tempBetSlip.type, tempOrder, tempBetSlip), remindRisk(tempBetSlip.risk),
remindAllOrder(tempBetSlip.allOrder), remindChamp(tempBetSlip.designation.champ),
remindUnitStake(tempBetSlip.unitStake, tempBetSlip.amount), "SIMPLE" != Betslip.bet && displayAmountComplexe(),
refreshHeader());
}
function feedBetSlipObject(unserializedBetslip) {
Betslip = Object.assign({}, Betslip, unserializedBetslip), Betslip.type = [], Betslip.formula = "",
Betslip.allOrder = !1, Betslip.disable = null, saveBetSlipTemp(Betslip);
}
function feedBetSlipOrder(tempOrder, tempBetSlip) {
BetslipOrder = Object.assign({}, Betslip, BetslipOrder, tempOrder, tempBetSlip),
saveOrderStack(BetslipOrder);
}
function feedBetSlipSimple(tempSimpleStack) {
BetslipSimple = Object.assign({}, BetslipSimple, Betslip, tempSimpleStack), saveStackSimple(BetslipSimple);
}
function extractClickedBetType() {
return readBetTypeSelected();
}
function remindChamp(champ) {
champ.length > 0 && (Betslip.designation.champ = [], selectChamp(champ));
}
function remindRisk(risk) {
"MULTI" == Betslip.bet && $(" .sel-box[data-formula-risk=" + risk + "]").click();
}
function remindBetSelection() {
selectBet(extractClickedBetType());
}
function remindAllOrder(allorder) {
1 == allorder && $(".sel-formula-key .sel-box[data-bet-type=ALL_ORDERS]").click();
}
function remindSimpleStack(tempBetSlip) {
null != tempBetSlip && (feedBetSlipSimple(tempBetSlip), remindSimpleStackChoices());
}
function remindStackOrder(StackOrder) {
null != StackOrder && feedBetSlipOrder(StackOrder);
}
function remindSimpleStackChoices() {
var stacke = BetslipSimple.stake;
$.each(stacke, function(index, value) {
$(".white .stake[data-numhorse=" + index + "][data-class=gagnant]").val(value.gagnant),
$(".white .stake[data-numhorse=" + index + "][data-class=place]").val(value.place),
"" == value.place && setTimeout(function() {
$("#label-place-" + index).click();
}, 0), "" == value.gagnant && setTimeout(function() {
$("#label-gagnant-" + index).click();
}, 0);
});
}
function remindHorseSelection() {
var base = Betslip.designation.base;
Betslip.designationHistory = [], Betslip.designation.base = [], selectHorseBase(base);
}
function remindBetFormula(oldFormula) {
selectFormula(oldFormula);
}
function remindType(type, tempOrder, tempBetSlip) {
console.log("[remindType] type=" + type), selectType(type, tempOrder, tempBetSlip);
}
function selectType(type, tempOrder, tempBetSlip) {
console.log("[selectType] type=" + type);
var searchTable = type;
$.each(searchTable, function(index, value) {
console.log("[selectType] value=" + value), "GAGNANT" !== value && $(getSubSelector(value) + " .sel-box[data-bet-type=" + value + "]").click(),
"ORDRE" == value && (feedBetSlipOrder(tempOrder, tempBetSlip), displayDesignation());
}), removeDefaultType(searchTable);
}
function remindUnitStake(UnitStake, amount) {
UnitStake.length > 0 && amount >= 0 && ($(".amount-wrap .amount").html(number_format(amount, 2, ",", " ") + " €"),
$(".amount-wrap .stake").val(UnitStake), Betslip.amount = amount, Betslip.unitStake = UnitStake,
saveBetSlipTemp(Betslip)), "SIMPLE" == Betslip.bet && ($(".amount").html(number_format(amount, 2, ",", " ") + " €"),
Betslip.amount = amount, Betslip.unitStake = UnitStake, saveBetSlipTemp(Betslip));
}
function deleteNullValueFromTempOrder(tempOrder) {
var position = tempOrder.position;
return $.each(position, function(index, value) {
null == value && delete position[index];
}), tempOrder.position = position, tempOrder;
}
function removeDefaultType(searchTable) {
if (console.warn("[removeDefaultType] searchTable " + searchTable), -1 == searchTable.indexOf("GAGNANT") && -1 == searchTable.indexOf("ORDRE") && -1 == searchTable.indexOf("ROYAL")) {
$(".sel-bet-type .sel-box[data-bet-type=GAGNANT]").click(), console.warn("[removeDefaultType] auto-clicking GAGNANT");
try {
console.warn("[removeDefaultType] auto-clicking " + $(".sel-bet-type .sel-box[data-bet-type=GAGNANT]"));
} catch (e) {}
}
}
function getSubSelector(value) {
var subSelector = ".sel-bet-type";
return "COUPLE" == Betslip.bet && "ORDRE" == value && (subSelector = ".couples-only"),
"TRIO" == Betslip.bet && "ORDRE" == value && (subSelector = ".trio-only"), "TOP4" == Betslip.bet && "ORDRE" == value && (subSelector = ".top4-only"),
"ROYAL5" == Betslip.bet && (subSelector = ".royal5-only"), console.warn("[getSubSelector] value " + value + " => subSelector " + subSelector),
subSelector;
}
function selectFormula(formula) {
$(".sel-formula-key .sel-box[data-formula-key=" + formula + "]").click();
}
function selectChamp(champ) {
console.warn("selectChamp " + champ), $.each(champ, function(index, value) {
$(".checkbox-wrap .checkbox.champ[data-numhorse=" + value + "]").click();
});
}
function selectHorseBase(designationBase) {
console.warn("selectHorseBase " + designationBase), $.each(designationBase, function(index, value) {
$(".checkbox-wrap .checkbox[data-numhorse=" + value + "]").not(".champ").click();
});
}
function selectBet(selected) {
null != selected && ("BANKER" == selected["data-formula-key"] && $("#partants .bet-select-wrap .auto-bet-select .switch .selector").click(),
$(".bet-box .logo-paris[data-bet-type='" + selected["data-bet-type"] + "'][data-formula-key='" + selected["data-formula-key"] + "']").click(),
saveBetSlipTemp(Betslip));
}
function isGiantGrid() {
return 0 == window.location.pathname.indexOf("/geant/");
}
function BetSportManager() {
this.currentMode = "simple", this.locked = !1;
}
function checkEvolLiveOdds() {
return new Promise(function(resolve, reject) {
var lives = BetSlipSport.getBetsLive(), matchId = [], checkList = [], checkFlag = 0;
if (Object.keys(lives).length > 0) {
for (var uid in lives) -1 == matchId.indexOf(lives[uid].matchId) && matchId.push(lives[uid].matchId),
checkList[uid] = clone(lives[uid]);
var url = window.france_paris_ws_direct + "?id=" + matchId.join("|") + "&partner=352&mode=v2", source = new EventSource(url);
showLoader(), source.addEventListener("odds", function(event) {
var data = JSON.parse(event.data), checkValid = [];
if (data.odds.length > 0) {
for (var uid in lives) for (var tmpUid = "", i = 0; i < data.odds.length && tmpUid != uid; ) {
for (var c in data.odds[i].tch) if ((tmpUid = sha1(lives[uid].eventId + data.odds[i].qt + data.odds[i].tch[c].act)) == uid) {
checkList[uid].odd = data.odds[i].tch[c].ct, checkList[uid].choice = data.odds[i].tch[c].cid,
checkFlag++;
break;
}
i++;
}
for (var uid in lives) {
var oldOdd = lives[uid].odd, newOdd = checkList[uid].odd;
1 == BetSlipSport.ticket.accept ? oldOdd > newOdd && checkValid.push({
eventId: lives[uid].eventId,
uid: uid,
choice: checkList[uid].choice,
oldOdd: oldOdd,
newOdd: newOdd
}) : 2 == BetSlipSport.ticket.accept && oldOdd != newOdd && checkValid.push({
eventId: lives[uid].eventId,
uid: uid,
choice: checkList[uid].choice,
oldOdd: oldOdd,
newOdd: newOdd
});
}
checkFlag == Object.keys(lives).length && (this.close(), hideLoader(), resolve(checkValid));
} else this.close(), hideLoader(), reject({
err: 404,
matchId: data.match_id
});
});
} else resolve([]);
});
}
function getEventDetails(evtId, uid) {
return new Promise(function(resolve, reject) {
var url = window.france_paris_ws + "/app/webservices/getOneEventInfo?evtId=" + evtId, req = new XMLHttpRequest();
req.open("GET", url), req.onload = function() {
if (200 == req.status) {
var response = JSON.parse(req.response);
void 0 === response.err ? resolve(checkEvolNonLiveOdd(response, uid)) : reject({
err: 404,
uid: uid
});
}
}, req.send();
});
}
function checkNonLiveBets() {
var callsFP = [], bets = BetSlipSport.getNonLiveBets();
for (var uid in bets) callsFP.push(getEventDetails(bets[uid].eventId, uid));
return callsFP;
}
function checkEvolNonLiveOdd(inputData, uid) {
console.log("[checkEvolNonLiveOdd] inputData=" + JSON.stringify(inputData));
var data = inputData.EventDetail;
console.log("[checkEvolNonLiveOdd] data=" + JSON.stringify(data));
for (var tmpUid = "", i = 0, curBet = BetSlipSport.ticket.designation[data.event_id][uid]; i < data.bets.length && tmpUid != uid; ) {
for (var c in data.bets[i].choices) if ((tmpUid = sha1(data.event_id + data.bets[i].question_label + data.bets[i].choices[c].choice_actor)) == uid) return {
eventId: data.event_id,
uid: uid,
choice: data.bets[i].choices[c].choice_id,
oldOdd: curBet.odd,
newOdd: data.bets[i].choices[c].choice_odds
};
i++;
}
return null;
}
function confirmationPopup() {
hideLoader(), showPopup("confirmation-sport-popup", $("#confirmation-sport-popup").html());
}
function warningCard(uid, oldOdd, newOdd, matchId) {
if (null != uid) var card = $(".choiceItem[data-unique-id=" + uid + "]");
if (null != matchId) var card = $(".choiceItem[data-match-id=" + matchId + "]");
if (card.hasClass("warning") ? card.find(".warning-wrap").remove() : card.addClass("warning"),
null != oldOdd) {
var oldOddFormated = "", newOddFormated = "";
newOddFormated = newOdd >= 100 ? number_format(newOdd, 0, "", " ") : number_format(newOdd, 2, ".", " "),
oldOddFormated = oldOdd >= 100 ? number_format(oldOdd, 0, "", " ") : number_format(oldOdd, 2, ".", " ");
var warning = $('' + Translator.trans("warning.terms_changed") + " (" + Translator.trans("warning.new_odds") + newOddFormated + ")
");
card.find(".odd-betslip").html('(' + oldOddFormated + ") " + newOddFormated),
card.find(".odd-betslip").attr("data-odds", newOddFormated);
} else var warning = $('' + Translator.trans("warning.bet_closed") + "
");
card.find(".content").prepend(warning);
}
function removeWarnings() {
$("#betslip-sport .choiceItem").each(function() {
$(this).hasClass("warning") && ($(this).removeClass("warning"), $(this).find(".warning-wrap").remove());
});
}
function updateStakeDisplays(uid) {
var cards = $(".choiceItem[data-unique-id=" + uid + "]");
$(cards).each(function() {
updateStakeSimpleDisplay($(this)), updateStakeCombineDisplay($(this)), updateStakeSystemDisplay($(this));
});
}
function updateStakeSimpleDisplay(card) {
var stake = card.find("input[name=stake]").val(), odd = card.find(".odd-betslip").attr("data-odds"), gains = computeTruncateAndFormatWinnings(odd, stake), totalGains = computeThenFormatWinningsSimple(), totalStake = computeThenFormatTotalStakes();
updateTotal(card.find(".amount-wrap .amount"), gains), updateTotal(card.parents("#betslip-simple").find(".totalGainsSimple"), totalGains),
updateTotal(card.parents("#betslip-simple").find(".totalStakeSimple"), totalStake);
}
function updateStakeCombineDisplay(card) {
var totalGains = computeThenFormatWinningsCombine();
updateTotal(card.parents("#betslip-combine").find(".totalStakeCombine"), totalGains);
var totalOddsComb = computeRawCombinedOdd();
$("#betslip-combine").find(".totalOddsCombine").text(totalOddsComb);
}
function updateStakeSystemDisplay(card) {
var stakeSystem = $("#betslip-systeme .combinated-stakes-wrap input[name=stake]").val(), totalSystem = computeThenFormatWinningsSystem(stakeSystem, ","), totalStakeByCombi = computeTotalStakeSystem(stakeSystem);
updateTotal(card.parents("#betslip-systeme").find(".totalStakeSystem"), totalSystem),
updateTotal(card.parents("#betslip-systeme").find(".totalOddsSystem"), totalStakeByCombi),
totalStakeByCombi = computeTotalStakeSystem(BetSlipSport.ticket.stakeSystem), updateTotal($("#betslip-systeme").find(".totalOddsSystem"), totalStakeByCombi);
}
function callExclusionAjax(password, type, classPwd, duree, dateEnd) {
duree = void 0 !== duree ? duree : "", dateEnd = void 0 !== dateEnd ? dateEnd : "";
var params = {
type: "POST",
url: Routing.generate("genybet_myaccount_close_account"),
data: {
password: password,
type: type,
duree: duree,
"date-end": dateEnd
}
}, am = new AjaxManager();
am.update(params), am.flush(function(data) {
"OK" == data.response ? (hidePopup(), $("#confirmation-exclusion-temp-popup .popup .content .msg-error").html(data.error),
1 != Cookies.get("isAppUser") ? showPopup("confirmation-exclusion-temp-popup", $("#confirmation-exclusion-temp-popup").html()) : ($("#confirmation-exclusion-temp-popup .footer").remove(),
$("#mon-compte").html('"))) : "PWD" == data.error_code ? ($(classPwd).addClass("error"),
$(classPwd).parent().find("label.error").removeClass("hidden"), hidePopup()) : "EDE" == data.error_code ? ($("#date-end").addClass("error"),
$("#date-end").parent().find("label.error").removeClass("hidden"), hidePopup()) : "WS" == data.error_code ? (hidePopup(),
$("#error-cloture-popup .popup .content .msg-error").html(data.error), showPopup("error-cloture-popup", $("#error-cloture-popup").html())) : ($("#error-cloture-popup .popup .content .msg-error").html(data.error),
showPopup("error-cloture-popup", $("#error-cloture-popup").html()));
});
}
function callClotureAjax(password, type, classPwd, duree) {
duree = void 0 !== duree ? duree : "";
var params = {
type: "POST",
url: Routing.generate("genybet_myaccount_close_account"),
data: {
password: password,
type: type,
duree: duree
}
}, am = new AjaxManager();
am.update(params), am.flush(function(data) {
"OK" == data.response ? (hidePopup(), $("#confirmation-cloture-popup .popup .content .msg-error").html(data.error),
1 != Cookies.get("isAppUser") ? showPopup("confirmation-cloture-popup", $("#confirmation-cloture-popup").html()) : ($("#confirmation-cloture-popup .footer").remove(),
$("#mon-compte").html('"))) : "PWD" == data.error_code ? ($(classPwd).addClass("error"),
$(classPwd).parent().find("label.error").removeClass("hidden"), hidePopup()) : "WS" == data.error_code ? (hidePopup(),
$("#error-cloture-popup .popup .content .msg-error").html(data.error), showPopup("error-cloture-popup", $("#error-cloture-popup").html())) : ($("#error-cloture-popup .popup .content .msg-error").html(data.error),
showPopup("error-cloture-popup", $("#error-cloture-popup").html()));
});
}
function updateBetslipLabel() {
"UNIT" != Betslip.formula ? Betslip.nbBase > 1 ? ($(".my-horse-base").hide(), $(".my-horses-base").show()) : ($(".my-horse-base").show(),
$(".my-horses-base").hide()) : ($(".my-horse-base").hide(), $(".my-horses-base").show());
}
function displayAmountComplexe() {
var amount = Betslip.calculateAmount($(".amount-wrap .split .stake").val()), soldeClient = $("#betslip").data("solde-turf");
availablePadKeyboard(), !isNaN(amount) && amount > 0 ? amount <= soldeClient ? (enableButton(),
hideDepositBtn()) : showDepositBtn() : disableButton(), $(".amount-wrap .split.ra .amount").html(number_format(amount, 2, ",", " ") + " €");
}
function availablePadKeyboard() {
$("#clavier-fractions .pad[data-value]").removeClass("disable"), $("#clavier-fractions .pad[data-value]").each(function() {
$(this).data("value") * Betslip.nbCombinaison < 1 && $(this).addClass("disable");
});
}
function updateHorseTicket() {
Betslip.isAuto && disableSorting($(".sortable"));
var listBase = Betslip.designation.base, listChamp = Betslip.designation.champ;
$(".horses-base .horse, .horses-champ .horse").remove();
var deleteHtml = isTrashMode() ? ' ' : ' ';
if (console.warn("[updateHorseTicket] Betslip.isOrder() " + Betslip.isOrder()),
Betslip.isOrder()) updateHorseTicketOrder(); else if (Betslip.isAuto) for (i = 0; i < Betslip.getNbMaxHorse(); i++) $(".horses-base").append('
'); else for (i = 0; i < listBase.length; i++) $(".horses-base .horse.empty").length > 0 ? $('' + listBase[i] + deleteHtml + '
' + (i + 1) + "
").insertBefore(".horses-base .horse.empty:first") : $(".horses-base").append('' + listBase[i] + deleteHtml + '
' + (i + 1) + "
");
if (!Betslip.isAuto) for (i = 0; i < listChamp.length; i++) listChamp[i] && $(".horses-champ").append('' + listChamp[i] + deleteHtml + "
");
updatePositionCheckboxes(), displayAmountComplexe(), Betslip.isAuto || addEmpty(),
updateBetslipLabel(), "UNIT" == Betslip.formula ? listBase.length > Betslip.getNbMaxHorse() && (Betslip.formula = "COMBINED") : "COMBINED" == Betslip.formula && listBase.length <= Betslip.getNbMaxHorse() && (Betslip.formula = "UNIT");
}
function addEmpty() {
var max = Betslip.getNbMaxHorse(), baseMissing = max - Betslip.nbBase;
baseMissing == max && removeTrashMode(), $(".horses-base .horse.empty, .horses-base .horse.banker, .horses-base .horse.champ").remove();
var classType = "empty";
if ("PART_WHEEL" == Betslip.formula || "WHEEL" == Betslip.formula ? classType = "champ" : Betslip.isAuto && (classType = "banker"),
baseMissing > 0) {
var j = Betslip.nbBase + 1;
for (i = 0; i < baseMissing; i++) {
var htmlPosition = "banker" == classType ? "" : '' + j + "
";
$(".horses-base").append('' + htmlPosition + "
"),
j++;
}
}
}
function replaceEmptyToChamp() {
$(".horses-base .horse.empty").removeClass("empty").addClass("champ");
}
function replaceChampToEmpty() {
$(".horses-base .horse.champ").removeClass("champ").addClass("empty");
}
function displayDesignation() {
console.warn("[displayDesignation] Betslip.isOrder() " + Betslip.isOrder()), !Betslip.isOrder() || "PART_WHEEL" != Betslip.formula && "WHEEL" != Betslip.formula ? $("#betslip .header .combinaison").html(Betslip.showDesignation()) : $("#betslip .header .combinaison").html(BetslipOrder.showDesignation());
}
function clearBetHorseComplexe() {
$(".horses-list .horses-champ, .horses-list .horses-base").html("");
}
function isTrashMode() {
return $(".logo-basket").hasClass("on");
}
function sliceDesignation(keepChamp) {
clearCheckboxesBase();
var nbTotalBase = maxNbBases[Betslip.bet];
if ("MULTI" == Betslip.bet && "UNIT" != Betslip.formula && (nbTotalBase = maxNbBasesMulti[Betslip.risk]),
!keepChamp || nbTotalBase < Betslip.designation.base.length) {
var tmpBase = Betslip.designation.base.concat(Betslip.designation.champ), truncateDesignationBase = tmpBase.slice(0, nbTotalBase), truncateDesignationChamp = tmpBase.slice(nbTotalBase, tmpBase.length);
Betslip.designation.champ;
for (i = 0; i < truncateDesignationBase.length; i++) $(".checkbox-wrap .checkbox:not(.champ)[data-numhorse=" + truncateDesignationBase[i] + "]").addClass("checked"),
$(".checkbox-wrap .checkbox.champ[data-numhorse=" + truncateDesignationBase[i] + "]").addClass("disable");
clearChampDisableCheckbox(), Betslip.updateDesignation(truncateDesignationBase),
Betslip.designation.champ = truncateDesignationChamp, Betslip.nbChamp = Betslip.designation.champ.length,
isBaseDisable();
}
updateHorseTicket(), displayDesignation(), saveOrderStack(BetslipOrder);
}
function setChampTotal() {
Betslip.resetChamp(), $("#partants-list .cheval").not(".np").each(function() {
$(this).find(".checkbox-wrap .checkbox").not(".champ").hasClass("checked") || Betslip.addHorseChamp($(this).find(".numero").text());
});
}
function manageAppDisplay() {
var parser = parseURL(window.location.href), search = parser.search;
Cookies.set("isAppUser", 0), -1 != search.indexOf("token=") && Cookies.set("isAppUser", 1),
1 == Cookies.get("isAppUser") && $("#header, #footer").hide();
}
function saveHistory() {
var parser = parseURL(window.location.href), currentUrl = parser.pathname, thisRoute = Cookies.get("thisRoute"), lastRoute = Cookies.get("lastRoute");
if (void 0 !== thisRoute) {
var fromCompetition = checkSportCompetitionRoute(currentUrl, thisRoute);
if (!0 === checkLastRouteBeforeEvent(currentUrl, thisRoute)) return Cookies.set("lastRoute", thisRoute),
void Cookies.set("thisRoute", lastRoute);
}
var isExcludedRoute = checkIsExcludedRoute(currentUrl);
currentUrl != thisRoute && (void 0 === thisRoute && (thisRoute = isExcludedRoute ? Routing.generate("genybet_home_turf") : currentUrl),
void 0 !== fromCompetition && 0 != fromCompetition && (thisRoute = fromCompetition),
isExcludedRoute || (Cookies.set("lastRoute", thisRoute), Cookies.set("thisRoute", currentUrl)));
}
function checkIsExcludedRoute(url) {
var isExcluded = !1, excludedRoute = [ Routing.generate("fos_js_routing_js"), Routing.generate("security_login"), Routing.generate("logout"), Routing.generate("genybet_myaccount_valid_deposit"), Routing.generate("payment_mercanet_response"), Routing.generate("payment_mercanet_cancel"), Routing.generate("genybet_bet_bet"), Routing.generate("gregwar_captcha.generate_captcha"), Routing.generate("payment_psc_response_ok"), Routing.generate("payment_psc_response_nok"), Routing.generate("bazinga_jstranslation_js"), Routing.generate("genybet_guide"), Routing.generate("genybet_myaccount_withdrawal_page"), Routing.generate("genybet_myaccount_withdrawal_post"), Routing.generate("genybet_inscription"), Routing.generate("genybet_myaccount_autoexclusion"), Routing.generate("genybet_forgotten_password"), Routing.generate("genybet_virement"), Routing.generate("payment_promo_code") ];
-1 != $.inArray(url, excludedRoute) && (isExcluded = !0);
for (var excludePartialUrl = [ "mot-de-passe-oublie" ], i = 0; i < excludePartialUrl.length; i++) -1 != url.indexOf(excludePartialUrl[i]) && (isExcluded = !0);
return isExcluded;
}
function checkLastRouteBeforeEvent(url, beforeUrl) {
var excludedRoute = [ Routing.generate("genybet_sport_program"), Routing.generate("genybet_sport_paris_stars"), Routing.generate("genybet_sport_paris_live"), Routing.generate("genybet_sport_all_sports") ], eventRoute = [ Routing.generate("genybet_sport_event_live"), Routing.generate("genybet_sport_event") ], isExcluded = isEvent = !1;
for (var route in excludedRoute) beforeUrl.match(excludedRoute[route]) && (isExcluded = !0);
if (1 == isExcluded) for (var route in eventRoute) url.match(eventRoute[route]) && (isEvent = !0);
return !0 === isEvent && !0 === isExcluded;
}
function checkMyAccountRoute(url) {
var myAccountRoute = [ Routing.generate("genybet_myaccount_withdrawal_page"), Routing.generate("genybet_myaccount_autoexclusion") ];
return -1 != $.inArray(url, myAccountRoute);
}
function checkSportCompetitionRoute(url, beforeUrl) {
var res = !1;
return url.match(Routing.generate("genybet_sport_program")) && beforeUrl.match(Routing.generate("genybet_sport_program")) && (res = Routing.generate("genybet_home_sport")),
url.match(Routing.generate("genybet_sport_all_sports")) && (res = Routing.generate("genybet_home_sport")),
url.match(Routing.generate("genybet_sport_bet_competition")) && (res = Routing.generate("genybet_sport_all_sports")),
res;
}
function manageBackButton() {
var lastRoute = Cookies.get("lastRoute");
void 0 === lastRoute || null == lastRoute ? lastRoute = "undefined" != typeof Routing ? Routing.generate("genybet_home_turf") : "/" : lastRoute == Routing.generate("genybet_myaccount_user_data") ? lastRoute = Routing.generate("genybet_home_turf") : checkMyAccountRoute(parseURL(window.location.href).pathname) && (lastRoute = Routing.generate("genybet_myaccount_user_data")),
$(".backBtn, .back.smart").each(function() {
$(this).attr("href", lastRoute);
});
}
function parseURL(url) {
var queries, split, i, parser = document.createElement("a"), searchObject = {};
for (parser.href = url, queries = parser.search.replace(/^\?/, "").split("&"), i = 0; i < queries.length; i++) split = queries[i].split("="),
searchObject[split[0]] = split[1];
return {
protocol: parser.protocol,
host: parser.host,
hostname: parser.hostname,
port: parser.port,
pathname: parser.pathname,
search: parser.search,
searchObject: searchObject,
hash: parser.hash
};
}
function calculateAndShowMentions(amount, percent, moyenPaiment) {
hideError(), hideMentions(), moyenPaiment = void 0 !== moyenPaiment ? moyenPaiment : $('form#depot input[name="payment"]').val();
var amountPercent = calculatePercent(amount, percent), commission = calculateCommission(amount);
amountPercent > 500 && (percent = null, amountPercent = 500), showMentions(amountPercent, percent, moyenPaiment, commission);
}
function calculateCommission(amount) {
return Math.max(amount * PAYSAFECARD_TAUX_COMMISSION, PAYSAFECARD_MIN_COMMISSION);
}
function addTypePayment(elmt, typePayment) {
switch (typePayment) {
case "cb":
elmt.append(' '), elmt.append(' ');
}
}
function getPercentByAmount(amount, arrBonus) {
var percent = null;
return arrBonus.forEach(function(pourcentage, montantPlanche) {
amount >= montantPlanche && (percent = pourcentage);
}), percent;
}
function calculatePercent(amount, percent) {
var res = null;
return void 0 !== amount && void 0 !== percent && null != amount && null != percent && (res = amount * percent / 100),
res;
}
function validFormDeposit(montant, moyenPaiment, limit) {
var isValid = !0, errorMsg = "";
return "" == montant ? (errorMsg += Translator.trans("deposit.alert.missing.amount"),
isValid = !1) : (montant < 5 && (errorMsg += Translator.trans("deposit.alert.minimum.not.reached"),
isValid = !1), montant > 1e3 && "psc" == moyenPaiment && (errorMsg += Translator.trans("deposit.alert.psc.limit.max"),
isValid = !1), limit - montant < 0 && (errorMsg += Translator.trans("deposit.alert.limit.deposit.reached", {
limit: number_format(limit, 2, ".", " ")
}), isValid = !1)), "" == moyenPaiment && (errorMsg += Translator.trans("deposit.alert.type.deposit"),
isValid = !1), showErrorMessage(errorMsg), isValid;
}
function showErrorMessage(errorMsg) {
"" != errorMsg ? (hideLoader(), hideMentions(), $(".error").html(errorMsg)) : $(".error").html("");
}
function showMentions(amountPercent, percent, moyenPaiment, commission) {
var amount = $('form#depot input[name="amount"]').val();
commission = void 0 !== commission ? commission : 0, null != amountPercent && null != percent ? ($(".mentions .infos-bonus .percent").html(percent),
$(".mentions .infos-bonus .bonus-amount").html(number_format(amountPercent, 2, ".")),
$(".mentions .infos-bonus").removeClass("hidden"), $(".mentions").removeClass("hidden")) : null != amountPercent && null == percent ? ($(".mentions .infos-bonus-max .bonus-amount").html(number_format(amountPercent, 2, ".")),
$(".mentions .infos-bonus-max").removeClass("hidden"), $(".mentions").removeClass("hidden")) : ($(".mentions").addClass("hidden"),
$(".mentions .infos-bonus").addClass("hidden"), $(".mentions .infos-bonus-max").addClass("hidden"),
$(".mentions .infos-paysafecard").addClass("hidden"), $(".mentions .infos-bonus .percent").html(""),
$(".mentions .infos-bonus .bonus-amount, .mentions .infos-bonus-max .bonus-amount").html("")),
"psc" == moyenPaiment && commission > 0 && amount >= 5 && amount <= 1e3 && ($(".mentions .infos-paysafecard .commission").html(number_format(commission, 2, ".")),
$(".mentions .infos-paysafecard").removeClass("hidden"), $(".mentions").removeClass("hidden")),
"psc" == moyenPaiment && (amount < 5 || amount > 1e3) && showErrorMessage(Translator.trans("deposit.alert.psc.limit"));
}
function hideMentions() {
$(".mentions").addClass("hidden"), $(".mentions .infos-bonus").addClass("hidden"),
$(".mentions .infos-bonus-max").addClass("hidden"), $(".mentions .infos-paysafecard").addClass("hidden"),
$(".mentions .infos-bonus .percent").html(""), $(".mentions .infos-bonus .bonus-amount, .mentions .infos-bonus-max .bonus-amount").html("");
}
function hideError() {
$(".error").html("");
}
function buildHipayForm() {
showLoader(), $(".hipay-container").length > 0 || (addHipayHtml(), configCardHipay.fields.cardHolder.defaultFirstname = $("#mon-compte").attr("data-user-firstname"),
configCardHipay.fields.cardHolder.defaultLastname = $("#mon-compte").attr("data-user-lastname"),
null === hipay && (hipay = HiPay({
username: $(".content").data("hipay-user"),
password: $(".content").data("hipay-pwd"),
environment: $(".content").data("hipay-env"),
lang: $(".content").data("hipay_lang")
})), HipayCard = hipay.create("card", configCardHipay), HipayCard.on("ready", function() {
hideLoader();
}), HipayCard.on("focus", function() {
animateClavier("clavier", "close");
}), HipayCard.on("change", function(data) {
handleErrorHipay(data.valid, data.error), isHiPayFormValid() && "" !== $("#deposit-amount").val() ? (document.getElementById("hipay-submit").disabled = !1,
$("#hipay-submit").removeClass("green-disabled"), $("#hipay-submit").addClass("green")) : (document.getElementById("hipay-submit").disabled = !0,
$("#hipay-submit").removeClass("green"), $("#hipay-submit").addClass("green-disabled"));
}), $("#hipay-submit").click(function() {
var montant = $('form#depot input[name="amount"]').val(), moyenPaiment = $('form#depot input[name="payment"]').val(), limit = $(".depot-max .amount").data("deposit-limit");
validFormDeposit(montant, moyenPaiment, limit) && (showLoader(), HipayCard.getPaymentData().then(function(response) {
var params = {
type: "POST",
url: Routing.generate("genybet_myaccount_valid_deposit"),
data: {
amount: montant,
payment_method: moyenPaiment,
tokenizedCard: response
},
dataType: "HTML"
}, am = new AjaxManager();
am.update(params), am.flush(function(data) {
var result = JSON.parse(data);
"PSP_FORWARDING" === result.status && (window.location.href = result.message), frictionlessStatuses.includes(result.status) && (window.location.href = Routing.generate("payment_hipay_response_accept", {
orderid: result.transactionSipsId,
reference: result.referenceHipay
})), hideLoader();
}, function(errors) {
$("#hipay-gb-error-message").html(errors[0].error).show(), hideLoader();
var content = $("#hipay-error-popup");
showPopup("#hipay-error-popup", content.html());
});
}, function(errors) {
$("#hipay-gb-error-message").html(errors[0].error).show(), hideLoader();
}));
}), $("#deposit-amount-container").click(function() {
$("#deposit-amount").val(""), $("#deposit-amount").trigger("change");
}), $("#deposit-amount").change(function() {
"" === $("#deposit-amount").val() ? disableHiPaySubmit() : isHiPayFormValid() && enableHipaySubmit(),
updateHypaySubmitLabel();
}), $("#validate").hide());
}
function enableHipaySubmit() {
var submit = $("#hipay-submit");
submit.prop("disabled", !1), submit.removeClass("green-disabled"), submit.addClass("green");
}
function disableHiPaySubmit() {
var submit = $("#hipay-submit");
submit.prop("disabled", !0), submit.removeClass("green"), submit.addClass("green-disabled");
}
function updateHypaySubmitLabel() {
var amount = $("#deposit-amount").val();
"" === amount ? $("#montantSubmit").text("") : $("#montantSubmit").text(" de " + amount + " €");
}
function addHipayHtml() {
$("#payment_type_select").append(''),
updateHypaySubmitLabel();
}
function deleteHipayForm() {
$(".hipay-container").remove(), $("#validate").show(), null != HipayCard && HipayCard.destroy(),
HipayCard = null;
}
function handleErrorHipay(valid, error) {
var errorElement = $("#hipay-gb-error-message");
"" !== error ? (errorElement.html(error), errorElement.show()) : (errorElement.html(""),
errorElement.hide());
}
function isHiPayFormValid() {
return 4 === $(".HiPayField--valid").length;
}
function validatePromoCode() {
console.log("in validate");
var codeInput = $("#form_promo_code");
console.log(codeInput), codeInput.parent().find(".form-error, .error").remove();
var inputVal = codeInput.val();
return 0 !== inputVal.length && (inputVal.length < 4 || inputVal.length > 20 ? (codeInput.after('' + Translator.trans("promocode.validation.length.error") + "
"),
!1) : !!/^[a-zA-Z0-9_]*$/.test(inputVal) || (codeInput.after('' + Translator.trans("promocode.validation.general.error") + "
"),
!1));
}
function initTransaction(transactionId, amount) {
return ga("create", window.gauid), ga("require", "ecommerce"), ga("set", "currencyCode", "EUR"),
ga("ecommerce:addTransaction", {
id: transactionId,
affiliation: "GenyBet-Mobile-Web",
revenue: amount,
shipping: 0,
tax: 0
}), transactionId;
}
function addItem(transactionId, betName, idBet, type, amount) {
ga("ecommerce:addItem", {
id: transactionId,
name: betName,
sku: idBet,
category: type,
price: amount,
quantity: "1"
});
}
function sendToAnalytics() {
ga("ecommerce:send");
}
function BetForRace(complement, chevaux, idCourse, numCourse) {
this.complement = complement, this.chevaux = chevaux, this.idCourse = idCourse,
this.numCourse = numCourse;
}
function closedGiant() {
"Géant fermé" == $(".txt-white.closure").text().trim() && ($(".auto-bet").remove(),
$(".checkbox").addClass("disable"), $(".select-box.on-popup").addClass("disable"));
}
function autoResetCombination() {
resetCheckRace(), backToFirstRace(), resetRunnersList(), resetHorseSelection(Giant.geantRaceBetRequests),
resetAmountOfBet(), Giant.init();
}
function resetHorseSelection(betOnRace) {
$.each(betOnRace, function(key, value) {
var selected = $("#selection-race-" + value.numCourse);
$("#partants-list-" + value.numCourse).find(".checkbox[data-numhorse='" + value.complement + "']").not(".champ").removeClass("disable"),
$("#replacement-choice-" + value.numCourse).text("Choisir un cheval"), selected.text("Sélectionnez au minimum un cheval"),
selected.removeClass("bold"), selected.addClass("txt-red");
}), $(".options .nowrap").removeClass("hidden");
}
function resetAmountOfBet() {
var money = $(".white.stake");
money.attr("value", ""), money.attr("placeholder", "Mise"), $("#perform-giant").addClass("disable"),
$(".amount-wrap .amount").html(number_format(0, 2, ",", " ") + " €");
}
function resetRunnersList() {
$("span.checkbox.checked").removeClass("checked");
}
function performGiantBet(BetData) {
var params = {
type: "POST",
data: BetData.jsonSerialize(),
dataType: "json",
url: Routing.generate("genybet_bet_giant")
};
showLoader(), am.update(params), am.flush(GiantBetCallBack);
}
function backToFirstRace() {
$(".selector span[data-numrace=1]").click();
}
function resetCheckRace() {
$(".selector.checked").removeClass("checked");
}
function autoCombination() {
$("[id^='partants-list-']").each(function() {
var horses = $(this).find(".checkbox").not(".champ");
deliverRandomHorse($(this), horses.size());
}), backToFirstRace();
}
function deliverRandomHorse(list, total) {
for (var randomHorse = getRandomIntInclusive(1, total), horsesList = []; 1 == list.find(".checkbox[data-numhorse='" + randomHorse + "']").not(".champ").hasClass("np") || 1 == list.find(".checkbox[data-numhorse='" + randomHorse + "']").not(".champ").hasClass("disable"); ) randomHorse = getRandomIntInclusive(1, total);
var numRace = list.attr("id").replace("partants-list-", ""), raceBubble = $(".selector span[data-numrace=" + numRace + "]");
raceBubble.parent().addClass("checked"), list.find(".checkbox[data-numhorse='" + randomHorse + "']").not(".champ").addClass("checked"),
horsesList.push(randomHorse);
var currentBetForRace = new BetForRace(returnReplacementHorse(numRace), horsesList, raceBubble.attr("data-idrace"), numRace);
Giant.addBetForRace(currentBetForRace), updateHiddenHorseField(!0, numRace, randomHorse),
showGiantBetSlip(), printSelectedCombination(currentBetForRace), autoAmountManager(),
setCombination(combinationCalculation());
}
function autoAmountManager() {
$(".white.stake").attr("value", 1), Giant.setUnitAmount(1), updateTotalAmount();
}
function markRaceHasChecked(numRace) {
var currentRace = $(".selector span[data-numrace=" + numRace + "]").parent(), currentListRunner = $("#partants-list-" + numRace);
0 == currentRace.hasClass("checked") && currentRace.addClass("checked"), 0 == currentListRunner.find(".checkbox.checked").length && currentRace.removeClass("checked");
}
function getAmountStack() {
return $(".amount-wrap .split .stake").val();
}
function setSelectedCombination(numRace) {
printSelectedCombination(Giant.getBetForRaceFromNum(numRace));
}
function printSelectedCombination(raceObject) {
var stringCombination = raceObject.chevaux.join("-") + " (" + raceObject.complement + ")", currentRace = $("#selection-race-" + raceObject.numCourse);
currentRace.removeClass("txt-red"), 0 == currentRace.hasClass("bold") && currentRace.addClass("bold"),
currentRace.text(stringCombination);
}
function updateTotalAmount() {
var totalAmount = combinationCalculation() * getAmountStack();
$(".amount-wrap .amount").html(number_format(totalAmount, 2, ",", " ") + " €"),
allowToPerformBet(totalAmount);
}
function allowToPerformBet(totalAmount) {
if (parseFloat(totalAmount) > parseFloat(0)) {
$("#perform-giant").removeClass("disable");
totalAmount > $("#betslip").data("solde-turf") ? showDepositGiantBtn() : hideDepositGiantBtn();
}
parseFloat(totalAmount) > parseFloat(1e3) && $("#perform-giant").addClass("disable");
}
function combinationCalculation() {
var combination = 1;
return $("[id^='partants-list-']").each(function() {
combination *= $(this).find(".checkbox.checked").length;
}), combination;
}
function setCombination(combination) {
$(".combinaisons .right").text(combination);
}
function returnCurrentRaceIdAndNumRace() {
return $(".selectors .selector.active > span");
}
function giantVisibility(champ) {
champ.hasClass("checked") ? showGiantBetSlip() : 0 == $(".checkbox-wrap .checkbox").hasClass("checked") && hideGiantBetSlip();
}
function updateRacehorseSelected(horse, idCourse, numRace) {
var BetForRaceFromId = Giant.getBetForRaceFromId(idCourse), horsesList = BetForRaceFromId.chevaux, currentBetForRace = "";
if (horse.hasClass("checked")) horsesList.push(horse.attr("data-numhorse")), horsesList.sort(function(a, b) {
return a - b;
}), currentBetForRace = new BetForRace(returnReplacementHorse(numRace, horse.attr("data-numhorse")), horsesList, idCourse, numRace),
updateHiddenHorseField(!0, numRace, horse.attr("data-numhorse")); else for (var i = horsesList.length - 1; i >= 0; i--) if (horsesList[i] === horse.attr("data-numhorse")) {
horsesList.splice(i, 1), updateHiddenHorseField(!1, numRace, horse.attr("data-numhorse"));
var currentcallerRace = Giant.getBetForRaceFromNum(numRace), currentcallerComplement = currentcallerRace.complement;
currentBetForRace = new BetForRace(currentcallerComplement, horsesList, idCourse, numRace);
}
Giant.addBetForRace(currentBetForRace), setCombination(combinationCalculation());
}
function updateHiddenHorseField(status, numRace, numHorse) {
status ? $("#replacement-" + numRace + "-" + numHorse).addClass("hidden") : $("#replacement-" + numRace + "-" + numHorse).removeClass("hidden");
}
function returnReplacementHorse(numRace, clickedHorseNum) {
var runnersTable = $("#partants-list-" + numRace), replacement = smallestUnselected(runnersTable.find(".cheval.card")), currentcallerRace = Giant.getBetForRaceFromNum(numRace), currentcallerComplement = currentcallerRace.complement;
return 0 == replacement.num ? (updateReplacementHorse(replacement, numRace), "") : (clickedHorseNum == currentcallerComplement && updateReplacementHorse(replacement, numRace),
replacement.num);
}
function initReplacementForAllRaces() {
var raceNumberList = $("#meeting-nav").attr("data-meeting-races-list");
if (void 0 !== raceNumberList) {
raceNumberList = raceNumberList.split("-");
for (var arrayLength = raceNumberList.length, i = 0; i < arrayLength; i++) {
var runnersTable = $("#partants-list-" + raceNumberList[i]), replacement = smallestUnselected(runnersTable.find(".cheval.card")), idRace = $(".selectors .selector > span[data-numrace= '" + raceNumberList[i] + "']"), currentBetForRace = new BetForRace("", [], parseInt(idRace.attr("data-idrace")), raceNumberList[i]);
Giant.addBetForRace(currentBetForRace), Giant.setReplacementForRace(raceNumberList[i], replacement.num),
updateReplacementHorse(replacement, raceNumberList[i]);
}
}
}
function updateReplacementHorse(replacement, numRace) {
$("#replacement-choice-" + numRace).text($("#replacement-" + numRace + "-" + replacement.num).text());
}
function smallestUnselected(selector) {
var smallOne = {}, smallOneToReturn = {
num: 0,
odd: Number.MAX_SAFE_INTEGER
};
return selector.each(function() {
$(this).hasClass("np") || (smallOne.num = $(".numero", this).html().trim(), smallOne.odd = $(".cote", this).html().trim(),
0 == $(".checkbox[data-numhorse='" + smallOne.num + "']", this).not(".champ").hasClass("checked") && parseFloat(smallOneToReturn.odd) >= parseFloat(smallOne.odd) && (smallOneToReturn.num = smallOne.num,
smallOneToReturn.odd = smallOne.odd));
}), smallOneToReturn;
}
function showGiantBetSlip() {
$("#betslip").attr("data-bet-selected", "GEANT UNIT"), $("#betslip").attr("class", "active sticky GEANT UNIT"),
$("#logo-giant-down").attr("class", "logo-paris vm outlined GEANT UNIT");
}
function hideGiantBetSlip() {
$("#betslip").attr("data-bet-selected", ""), $("#betslip").attr("class", ""), $("#logo-giant-down").attr("class", "");
}
function setCurrentMeeting(giant) {
giant.idGeant = $("#meeting-nav").attr("data-meeting-number");
}
function getRandomIntInclusive(min, max) {
return min = Math.ceil(min), max = Math.floor(max), Math.floor(Math.random() * (max - min + 1)) + min;
}
function confirmationGiantBet() {
showPopup("confirmation-giant-popup", $("#confirmation-giant-popup").html());
}
function showDepositGiantBtn() {
$(".amount-wrap button#perform-giant").not(".login").addClass("hidden"), $(".amount-wrap button#DepositBtn").removeClass("hidden disable");
}
function hideDepositGiantBtn() {
$(".amount-wrap button#perform-giant").removeClass("hidden"), $(".amount-wrap button#DepositBtn").addClass("hidden");
}
function showButtonTop(elem) {
var selector = elem ? $(elem) : $(window), button = $("
", {
id: "back-to-the-top",
html: " "
});
$("#body").append(button), window.scrollY > 100 && button.addClass("shown"), selector.scroll(function() {
selector.scrollTop() < 100 ? button.removeClass("shown") : button.addClass("shown");
}), button.on("click", function() {
return elem ? selector.animate({
scrollTop: 0
}, 400) : $("html, body").animate({
scrollTop: 0
}, 400), !1;
});
}
function SortableArray(rows) {
this.rows = rows, this.colToSort = 0;
var table = this;
this.sortAsc = function(index) {
return table.colToSort = index, table.rows.sort(this.compareAsc);
}, this.sortDesc = function(index) {
return table.colToSort = index, table.rows.sort(this.compareDesc);
}, this.compareAsc = function(a, b) {
var valA = $($(a).children().get(table.colToSort)).data("sort-by"), valB = $($(b).children().get(table.colToSort)).data("sort-by");
return valA < valB ? -1 : valA > valB ? 1 : valA == valB ? table.compareIndex(a, b) : 0;
}, this.compareDesc = function(a, b) {
var valA = $($(a).children().get(table.colToSort)).data("sort-by"), valB = $($(b).children().get(table.colToSort)).data("sort-by");
return valA > valB ? -1 : valA < valB ? 1 : valA == valB ? table.compareIndex(a, b) : 0;
}, this.compareIndex = function(a, b) {
return $(a).data("index") < $(b).data("index") ? -1 : $(a).data("index") > $(b).data("index") ? 1 : 0;
};
}
function loadHorseHistory(horseId) {
var activeSlide = $(".fiche-cheval .swiper-slide-active");
$.ajax({
type: "get",
url: Routing.generate("genybet_race_horse_history", {
horseid: horseId
}),
beforeSend: function() {
showLoader();
},
success: function(data) {
activeSlide.find(".content.horse-infos").after(data), showRaceHistory(), hideLoader();
},
statusCode: {
404: function() {
hideLoader();
},
500: function() {
hideLoader();
}
}
});
}
function loadRaceDetails(raceId, horseId, arHorseId) {
var activeSlide = $(".fiche-cheval .swiper-slide-active");
$.ajax({
type: "get",
url: Routing.generate("genybet_race_detailed", {
raceid: raceId,
horseid: horseId
}),
beforeSend: function() {
showLoader();
},
success: function(data) {
activeSlide.find(".content.race-horse-history").after(data), markHorses(arHorseId, horseId),
showResultDetails(), hideLoader();
},
statusCode: {
404: function() {
data = returnEmpty(), activeSlide.find(".content.race-horse-history").after(data),
showResultDetails(), hideLoader();
},
500: function() {
hideLoader();
}
}
});
}
function returnEmpty() {
return '';
}
function showHorseInfos() {
var activeSlide = $(".fiche-cheval .swiper-slide-active");
activeSlide.find(".content.result-detailed").fadeOut().removeClass("active"), activeSlide.find(".content.race-horse-history").fadeOut().removeClass("active"),
activeSlide.find(".content.horse-infos").fadeIn().addClass("active");
}
function showRaceHistory() {
var activeSlide = $(".fiche-cheval .swiper-slide-active");
activeSlide.find(".content.horse-infos").fadeOut().removeClass("active"), activeSlide.find(".content.result-detailed").fadeOut().removeClass("active"),
activeSlide.find(".content.race-horse-history").fadeIn().addClass("active");
}
function showResultDetails() {
var activeSlide = $(".fiche-cheval .swiper-slide-active");
activeSlide.find(".content.race-horse-infos").fadeOut().removeClass("active"), activeSlide.find(".content.race-horse-history").fadeOut().removeClass("active"),
activeSlide.find(".content.result-detailed").fadeIn().addClass("active");
}
function stepBack() {
var activeSlide = $(".fiche-cheval .swiper-slide-active");
activeSlide.find(".content.result-detailed").hasClass("active") ? showRaceHistory() : activeSlide.find(".content.race-horse-history").hasClass("active") && showHorseInfos();
}
function markHorses(horses, horseId) {
var content = $(".fiche-cheval .swiper-slide-active .content.result-detailed");
$(content).find(".perf-table .row").each(function() {
var opponent = $(this).data("horse-id");
horses.indexOf(opponent) >= 0 && opponent != horseId && ($(this).find(".horsename").addClass("bold"),
$(this).find(".jockey").addClass("bold"), $(this).find(".sexeage").addClass("bold"));
});
}
function Notif(selector) {
this.selector = selector, this.show = function() {
$(this.selector).length > 0 && this.checkCookie() && this.checkPriority() && setTimeout(function() {
showAlert(selector, 7e3);
}, 400);
}, this.checkCookie = function() {
var message = $(this.selector).find(".message")[0].innerText, cookie = Cookies.get("infosNotif");
return (void 0 === cookie || cookie != message) && (Cookies.set("infosNotif", message),
!0);
}, this.checkPriority = function() {
return !("#account-status-alert" != this.selector && $("#account-status-alert").length > 0);
}, this.deleteCookie = function() {
"undefined" != Cookies.get("infosNotif") && Cookies.set("infosNotif", "", -1);
};
}
function orderOnHistory() {
BetslipOrder.designation.base.forEach(function(value, key) {
BetslipOrder.setPosition(value, key + 1);
}), saveOrderStack(BetslipOrder);
}
function addBtnAllOrder() {
$(".sel-formula-key").append('Tous les ordres
'),
enableSorting($(".sortable")), saveOrderStack(BetslipOrder);
}
function removeBtnAllOrder() {
$('.sel-formula-key .sel-box[data-bet-type="ALL_ORDERS"]').remove(), saveOrderStack(BetslipOrder);
}
function updatePositionCheckboxes() {
var list = Betslip.designation.base;
if (0 == list.length) $(".checkbox-wrap .checkbox").not(".champ").html(" "),
removeBetslip(); else for (i = 0; i < list.length; i++) console.warn("[updatePositionCheckboxes] Betslip.isOrder() = " + Betslip.isOrder()),
Betslip.isOrder() ? (console.warn("[updatePositionCheckboxes] CAS 1"), $('.checkbox-wrap .checkbox[data-numhorse="' + list[i] + '"]').not(".champ").html(BetslipOrder.getPosition([ list[i] ]))) : (console.warn("[updatePositionCheckboxes] CAS 2"),
$('.checkbox-wrap .checkbox[data-numhorse="' + list[i] + '"]').not(".champ").html(" ").addClass("checked"));
saveOrderStack(BetslipOrder);
}
function enableSorting(element) {
element.hasClass("ui-sortable") ? element.sortable("enable") : (element.sortable({
distance: 10,
placeholder: "horse ui-sortable-placeholder",
sort: function(event, ui) {
var $target = $(event.target);
if (!/html|body/i.test($target.offsetParent()[0].tagName)) {
var top = event.pageY - $target.offsetParent().offset().top - ui.helper.outerHeight(!0) / 2;
ui.helper.css({
top: top + "px"
});
}
},
stop: function() {
sortDesignationOnDrag(), updatePositionCheckboxes();
}
}), element.disableSelection()), saveBetSlipTemp(Betslip), saveOrderStack(BetslipOrder);
}
function disableSorting(element) {
element.hasClass("ui-sortable") && (element.sortable("disable"), element.enableSelection()),
saveOrderStack(BetslipOrder);
}
function sortDesignationOnDrag() {
var list = [], i = 1;
BetslipOrder.clean(), $(".horses-base .horse").each(function() {
var numHorse = $(this).data("numhorse");
void 0 !== numHorse && (BetslipOrder.removePosition(numHorse), list.push(numHorse),
BetslipOrder.setPosition(numHorse, i)), $(this).find(".position").html(i), i++;
}), Betslip.setDesignationFromDragEvent(list), displayDesignation(), saveOrderStack(BetslipOrder);
}
function updateHorseTicketOrder() {
$(".horses-base .horse, .horses-champ .horse").remove();
var deleteHtml = isTrashMode() ? ' ' : ' ', nb = Betslip.nbBase;
for (Betslip.isAuto && (nb = Betslip.getNbMaxHorse()), i = 0; i < nb; i++) {
var classType = "empty";
"PART_WHEEL" == Betslip.formula || "WHEEL" == Betslip.formula ? classType = "champ" : Betslip.isAuto && (classType = "banker");
var elmt = Betslip.designation.base[i], position = i + 1;
BetslipOrder.removePosition(elmt), BetslipOrder.initPosition(elmt, position), Betslip.isAuto ? $(".horses-base").append('
') : null == elmt || Betslip.isAuto ? $(".horses-base").append('") : $(".horses-base .horse.empty").length > 0 ? $('' + elmt + deleteHtml + '
' + position + "
").insertBefore(".horses-base .horse.empty:first") : $(".horses-base").append('' + elmt + deleteHtml + '
' + position + "
");
}
saveOrderStack(BetslipOrder);
}
function dateFromTimestamp(timestamp) {
var date = new Date(timestamp), d = "0" + date.getDate(), m = "0" + (date.getMonth() + 1), y = date.getFullYear();
return d.substr(-2) + "/" + m.substr(-2) + "/" + y;
}
function addErrorLimit(input, message) {
$(input).removeClass("dirty"), $(input).parent().hasClass("error") || ($(input).parents(".limit-wrap").addClass("has-error"),
$(input).parent().addClass("error"), $(input).parent().parent().parent().append('' + message + " "));
}
function removeErrorLimit(input) {
$(input).parent().hasClass("error") && ($(input).parents(".limit-wrap").removeClass("has-error"),
$(input).parent().removeClass("error"), $(input).parent().parent().parent().find("label.error").remove());
}
function validateLimitsForm() {
var form = $("#mon-compte #form-limits");
return limitsOK = !0, $(form).find("input").each(function() {
var value = number_format($(this).val(), 0, "", "");
isNaN(value) && (limitsOK = !1, addErrorLimit(this, "Doit être numérique")), (value < 50 || value > 1e5) && (limitsOK = !1,
addErrorLimit(this, "La valeur doit être comprise entre 50 € et 100 000 €"));
}), 0 == limitsOK ? $(".action").addClass("disable") : $(".action").removeClass("disable"),
!0;
}
function refreshLimitsData(data) {
var popup = {
DEPOT: "limite-depot-popup",
MISE_HIPPISME: "limite-mise-turf-popup",
MISE_SPORT: "limite-mise-sport-popup",
RETRAIT: "seuil-virement-popup"
}, input = {
DEPOT: "limiteDepot",
MISE_HIPPISME: "limiteMiseHip",
MISE_SPORT: "limiteMiseSport",
RETRAIT: "seuilVirement"
}, index = data.sousType ? data.type.toUpperCase() + "_" + data.sousType.toUpperCase() : data.type.toUpperCase();
if (data.date > Date.now()) {
var text = "Prochaine limite de " + data.limite + " € effective le " + dateFromTimestamp(data.date) + "
", info = $("#" + popup[index]).find(".centered");
$(info).find(".content").length > 0 ? $(info).find(".content").html(text) : $(info).append('' + text + "
");
} else $('#mon-compte #form-limits input[name="' + input[index] + '"]').attr("data-current", data.limite);
}
function getWeekNumber() {
var d = new Date();
return d.setHours(0, 0, 0), d.setDate(d.getDate() + 4 - (d.getDay() || 7)), Math.ceil(((d - new Date(d.getFullYear(), 0, 1)) / 864e5 + 1) / 7);
}
function Prono(params) {
this.raceId = params.raceId || null, this.bet = params.bet || null, this.formula = "UNIT",
this.stake = params.stake || null, this.bases = params.bases || null;
}
function getStakeSimple() {
var total = 0, isValid = !0;
$("#betslip .horses-list .bets-horse .horse").each(function() {
$(this).find(".stakes-wrap .sel-bet-type").each(function() {
var isSelected = $(this).find(".label").hasClass("selected"), numHorse = $(this).find(".input .stake").data("numhorse"), typeBet = $(this).find(".input .stake").data("class");
if (isSelected) {
var stake = $(this).find(".input .stake").val();
BetslipSimple.setStake(numHorse, typeBet, stake), "" == stake || isNaN(stake) ? isValid = !1 : !isNaN(stake) && stake > 0 && (total += parseFloat(stake),
removeSimpleError($(this)));
} else BetslipSimple.setStake(numHorse, typeBet, "");
});
}), 1 == isValid && enableButton(), 0 == $("#betslip .horses-list .bets-horse .horse").size() && ($(".simple-only .amount-wrap button").addClass("disable"),
removeTrashMode());
var res = Betslip.calculateAmount(total);
displayAmount(res);
var soldeClient = $("#betslip").data("solde-turf");
!isNaN(res) && res > 0 ? res <= soldeClient ? (enableButton(), hideDepositBtn()) : showDepositBtn() : disableButton(),
saveBetSlipTemp(Betslip), saveStackSimple(BetslipSimple);
}
function removeSimpleError(elmt) {
elmt.parents(".horse").removeClass("has-error"), elmt.find(".stake").removeClass("error");
}
function createBetSimple(listNumHorse) {
if (listNumHorse.length > 0) {
for (i = 0; i < listNumHorse.length; i++) {
BetslipSimple.initStake(listNumHorse[i]);
var html = $('
').append(listNumHorse[i]).append(' ').append('Gagnant € Placé € La mise minimale pour un pari est de 1 € ');
$(".horses-list .bets-horse").append(html);
}
getStakeSimple();
}
saveStackSimple(BetslipSimple);
}
function isValidFormSimple() {
var isValid = !0, count = 0;
$("#betslip .horses-list .bets-horse .horse").each(function() {
var nbStake = 0;
$(this).find(".stakes-wrap .sel-bet-type").each(function() {
if ($(this).find(".label").hasClass("selected")) {
var stake = $(this).find(".input .stake").val();
(isNaN(stake) || 0 == stake) && ($(this).parents(".horse").addClass("has-error"),
$(this).find(".stake").addClass("error"), $(".simple-only .amount-wrap button").addClass("disable"),
isValid = !1), count++, nbStake++;
}
}), 0 == nbStake && ($(this).not(".empty").addClass("has-error"), $(this).not(".empty").find(".stake").addClass("error"),
$(".simple-only .amount-wrap button").addClass("disable"), isValid = !1);
}), 1 == isValid && count > 0 ? enableButton() : removeTrashMode();
}
function clearBetHorse() {
$(".horses-list .bets-horse").html("");
}
function addLoaderBettingWrap() {
$("#paris-direct .betting-wrap").each(function() {
showLoader($(this));
});
}
function refreshMatchDatas(data) {
var match = document.getElementById(data.match_id), discipline = $(match).data("disc");
if ("ended" != data.stbrute && "Terminé" != data.st) switch (refreshActors(match, data.act1, data.act2),
discipline) {
case 21:
refreshTennisScore(match, data);
break;
case 14:
case 26:
case 35:
case 39:
refreshSetScore(match, data);
break;
default:
refreshScore(match, data.sc);
} else $(match).remove();
}
function refreshActors(elem, actor1, actor2) {
$(elem).find("#actor-first").html(actor1), $(elem).find("#actor-second").html(actor2);
}
function refreshRunningSet(elem, score, match_id) {
var scores = score.split(":");
"1" == $("#" + match_id).attr("data-event-displayscore") ? $(elem).find(".score").html('' + scores[0] + '
' + scores[1] + "
") : $(elem).find(".score").html('
');
}
function refreshServer(elem, serverPos) {
$(elem).find(".set.running").find("div").removeClass("serve"), void 0 !== serverPos && $(elem).find(".act" + serverPos + "-set").addClass("serve");
}
function refreshSet(elem, score) {
var sets = score.split(" - ");
sets.forEach(function(setScore, index) {
var sc = setScore.split(":"), divSet = document.createElement("div"), player1 = document.createElement("div"), player2 = document.createElement("div");
$(divSet).addClass("fl").addClass("set"), $(player1).html(sc[0]), $(player2).html(sc[1]),
(21 != $(elem).data("disc") || 21 == $(elem).data("disc") && index < sets.length - 1) && (sc[0] > sc[1] ? $(player1).addClass("txt-blue-sport") : $(player2).addClass("txt-blue-sport")),
$(divSet).append(player1).append(player2), $(elem).find(".score").append(divSet);
});
}
function refreshTennisScore(match, data) {
refreshRunningSet(match, data.gsc, data.match_id), refreshServer(match, data.sv),
refreshSet(match, data.ssc);
}
function refreshSetScore(match, data) {
var sets = data.ssc.split(" - "), runningSet = sets[sets.length - 1], pastSets = data.ssc;
sets.length > 1 && (pastSets = pastSets.replace(" - " + runningSet, "")), refreshRunningSet(match, runningSet, data.match_id),
refreshServer(match, data.sv), refreshSet(match, pastSets);
}
function refreshScore(elem, score) {
var sc = score.split(":"), divScore = document.createElement("div"), player1 = document.createElement("div"), player2 = document.createElement("div");
$(player1).html(sc[0]), $(player2).html(sc[1]), sc[0] > sc[1] ? $(player1).addClass("txt-blue-sport") : $(player2).addClass("txt-blue-sport"),
$(divScore).append(player1).append(player2), $(elem).find(".score").html(divScore);
}
function getWinnerOdd(arOdds, discipline) {
for (var i = 0; i < arOdds.length; i++) if (arOdds[i].typparis == getDisciplineTypePari(discipline)) return arOdds[i];
}
function refreshOdds(elem, odd, discipline, matchId) {
var bets = $(elem).find(".bets-wrap .bet");
if (void 0 !== odd) if (0 == bets.length) {
var typeBet = getDisciplineTypePari(discipline), nbCol = getNbColPerTypeBet(typeBet), listBet = generateBetsPerMatch(nbCol, matchId, odd);
$("#" + matchId + " .betting-wrap").append(listBet), BetSlipSport.initializeGrid(),
hideGoToLiveButton(elem, matchId), hideLoader($("#" + matchId + " .betting-wrap"));
} else refreshLabelBet(elem, odd.qt), updateBetsPerMatch(odd, matchId, elem); else showGoToLiveButton(elem, matchId),
hideLoader($("#" + matchId + " .betting-wrap"));
recalculateWidthScore(), setTimeout(function() {
removeUpDown();
}, 1e3);
}
function hideGoToLiveButton($sportCardElement, matchId) {
var button = $($sportCardElement).find("#live-match-" + matchId);
button.length > 0 && button[0].remove();
}
function showGoToLiveButton($sportCardElement, matchId) {
0 === $($sportCardElement).find(".bets-wrap").length && (0 === $($sportCardElement).find("#live-match-" + matchId).length && $("#" + matchId + " .betting-wrap").append(' Accéder au live '));
}
function updateBetsPerMatch(odd, matchId, elem) {
if (timestamp + 2e3 < Date.now()) {
var eventId = $("#" + matchId).data("event");
for (var choice in odd.tch) {
var betElmt = $(elem).find(".bets-wrap .bet[data-unique-id= " + sha1(eventId + odd.qt + odd.tch[choice].act) + "]"), state = "";
switch (odd.tch[choice].td) {
case "+":
state = "up";
break;
case "-":
state = "down";
}
"" != state && setBetState(betElmt, state), betElmt.find(".odd").text(odd.tch[choice].ct),
betElmt.attr("data-odd", odd.tch[choice].ct), betElmt.attr("data-choice", odd.tch[choice].cid);
}
timestamp = Date.now();
}
}
function generateBetsPerMatch(nbCol, matchId, odd) {
var eventCompetitionLabel = $("#" + matchId).data("competition"), eventId = $("#" + matchId).data("event"), eventLabel = $("#" + matchId).data("event-title"), sportId = $("#" + matchId).data("disc"), html = "", i = 1, j = 1;
html += '';
for (var choice in odd.tch) {
var disable = "";
odd.tch[choice].ct <= 1 && (disable = " disable");
var oddFormated = "";
oddFormated = odd.tch[choice].ct >= 100 ? number_format(odd.tch[choice].ct, 0, "", " ") : number_format(odd.tch[choice].ct, 2, ".", " "),
html += '
';
var defaultActorValue = 2 == i && 3 == nbCol ? "N" : j;
html += '' + getActorValue(odd.tch[choice], defaultActorValue) + " ",
html += '' + oddFormated + " ", html += "
", (2 != i && 3 == nbCol || 2 == nbCol) && j++,
i++;
}
return html += '
+
', html += "
";
}
function getTimer(discipline, data) {
switch (discipline) {
case 4:
case 10:
case 3:
return data.stcourt;
default:
return data.mtm;
}
}
function getDisciplineTypePari(discipline) {
switch (discipline) {
case -1:
return -1;
case 13:
case 4:
case 12:
case 10:
case 9:
case 38:
case 7:
case 3:
return 1;
case 21:
case 14:
case 39:
case 20:
case 22:
case 23:
case 29:
case 16:
case 32:
case 33:
case 18:
return 2;
}
}
function getNbColPerTypeBet(typeBet) {
switch (typeBet) {
case 1:
return 3;
case 2:
return 2;
}
}
function refreshLabelBet(elem, label) {
"" != label && $(elem).find(".betting-wrap .label").text(label);
}
function recalculateWidthScore() {
function isEllipsisActive(e) {
return e.offsetWidth < e.scrollWidth;
}
$(".match-wrap .match.nowrap").each(function() {
var wrapWidth = $(this).parent().outerWidth(), timeWidth = $(this).prev(".time").outerWidth(), scoreWidth = $(this).next(".score").outerWidth(), matchWidth = wrapWidth - (timeWidth + scoreWidth) - 15;
$(this).css("width", matchWidth), $(this).find(".txt-scroll").each(function() {
var scrollWidth = $(this)[0].scrollWidth, offsetWidth = $(this)[0].offsetWidth, margin = scrollWidth - offsetWidth;
isEllipsisActive($(this)[0]) && $(this).delay(500).animate({
"margin-left": -margin
}, 2500, "easeInOutCubic", function() {
$(this).css("margin-left", "0px");
});
});
}), $(".match-wrap.nowrap .txt-scroll").each(function() {
var scrollWidth = $(this)[0].scrollWidth, offsetWidth = $(this)[0].offsetWidth, margin = scrollWidth - offsetWidth;
isEllipsisActive($(this)[0]) && $(this).delay(500).animate({
"margin-left": -margin
}, 2500, "easeInOutCubic", function() {
$(this).css("margin-left", "0px");
});
});
}
function getActorValue(choice, defaultValue) {
var atpValue = "atp" in choice ? choice.atp : defaultValue;
return "X" === atpValue.toUpperCase() ? "N" : atpValue;
}
function manageBets(data) {
if (1 == firstDisplay || timestamp + 2e3 < Date.now()) {
for (var itemBet in data) LiveEvent.setBet(data[itemBet].typparis), LiveEvent.setChoices(data[itemBet].typparis, data[itemBet].pid, data[itemBet].tch, data[itemBet].od),
LiveEvent.setQuestion(data[itemBet].typparis, data[itemBet].pid, data[itemBet].qt),
LiveEvent.setActivity(data[itemBet].typparis, data[itemBet].pid, data[itemBet].aive);
var bodyEvent = generateLiveEvent();
$("#programme-sport #match .matchLiveBets").html(bodyEvent), BetSlipSport.initializeGrid(),
upDownOdds(), recalculateHeightChoice(), LiveEvent.reinitialize(), setTimeout(function() {
removeUpDown();
}, 1e3), timestamp = Date.now(), firstDisplay++;
}
}
function recalculateHeightChoice() {
$(".bets-wrap .type").each(function() {
var height = $(this).outerHeight() || "30";
$(this).next(".odd").css({
height: height,
"line-height": height + "px"
});
});
}
function generateLiveEvent() {
var event = "";
if (Object.keys(LiveEvent.listBets).length > 0) {
event += '';
for (var bet in LiveEvent.listBets) if (LiveEvent.typeBetActivity(bet)) {
event += '
' + Translator.trans(LiveEvent.listBets[bet].label) + "
",
event += '
';
for (var betId in LiveEvent.listBets[bet].choices) 1 == LiveEvent.listBets[bet].active[LiveEvent.listBets[bet].choices[betId].bid] && (event += '
',
!0 === LiveEvent.listBets[bet].subtitles && (event += '
' + LiveEvent.listBets[bet].question[LiveEvent.listBets[bet].choices[betId].bid] + "
"),
event += '
', event += generateChoices(LiveEvent.listBets[bet].choices[betId].choices, LiveEvent.listBets[bet], LiveEvent.listBets[bet].choices[betId].bid),
event += "
", event += "
");
event += "
";
}
event += "
";
}
return event;
}
function generateChoices(listChoices, bet, betId) {
var col = "", eventCompetitionLabel = $("#programme-sport #match").data("competition-label"), eventLabel = $("#programme-sport #match").data("event-label"), eventId = $("#programme-sport #match").data("event-id"), sportId = $("#programme-sport #match").data("sport-id"), loop = 1;
col += '';
for (var choice in listChoices) {
3 == bet.col && 10 == loop && !0 === bet.more && (col += '
');
var disable = "";
listChoices[choice].ct <= 1 && (disable = " disable");
var oddFormated = "";
oddFormated = listChoices[choice].ct >= 100 ? number_format(listChoices[choice].ct, 0, "", " ") : number_format(listChoices[choice].ct, 2, ".", " "),
col += '
',
col += '' + listChoices[choice].actor + " ", col += '' + oddFormated + " ",
col += "
", 3 == bet.col && loop == listChoices.length && !0 === bet.more && listChoices.length > 9 && (col += "
"),
loop++;
}
return 3 == bet.col && !0 === bet.more && listChoices.length > 9 && (col += '
' + Translator.trans("see.more") + "
"),
col += "
";
}
function upDownOdds() {
var eventId = $("#programme-sport #match").data("event-id");
if (Object.keys(LiveEvent.listBets).length > 0) for (var bet in LiveEvent.listBets) for (var betId in LiveEvent.listBets[bet].choices) {
var idBet = LiveEvent.listBets[bet].choices[betId].bid;
for (var choice in LiveEvent.listBets[bet].choices[betId].choices) {
var state = "";
switch (LiveEvent.listBets[bet].choices[betId].choices[choice].td) {
case "+":
state = "up";
break;
case "-":
state = "down";
}
var uid = sha1(eventId + LiveEvent.listBets[bet].question[idBet] + LiveEvent.listBets[bet].choices[betId].choices[choice].act);
"" != state && setBetState($('.bet[data-unique-id="' + uid + '"]'), state);
}
}
recalculateHeightChoice();
}
function setBetState(elmt, state) {
elmt.not(".disable").fadeOut(200, function() {
$(this).addClass(state).fadeIn(200);
});
}
function removeUpDown() {
$(".bet.up, .bet.down").each(function() {
$(this).fadeOut(200, function() {
$(this).removeClass("up").removeClass("down").fadeIn(200);
});
}), recalculateHeightChoice();
}
function refreshMatchDatasLive(data) {
var match = $("#programme-sport .card"), discipline = $(match).data("disc");
if ("ended" != data.stbrute && "Terminé" != data.st) switch (refreshActors(match, data.act1, data.act2),
discipline) {
case 21:
refreshTennisScore(match, data);
break;
case 14:
case 26:
case 35:
case 39:
refreshSetScore(match, data);
break;
default:
refreshScore(match, data.sc);
} else $(match).remove();
}
function clone(obj) {
if (null == obj || "object" != typeof obj) return obj;
var copy = obj.constructor();
for (var attr in obj) obj.hasOwnProperty(attr) && (copy[attr] = obj[attr]);
return copy;
}
function refreshPasswordStrength(value) {
var security = $(".security-level"), strength = getPasswordStrength(value), safe = !1;
return $(security).children().removeClass("on"), value.length > 7 && strength > 2 ? ($(security).find(".high").addClass("on"),
safe = !0) : value.length > 6 && 2 == strength ? ($(security).find(".middle").addClass("on"),
safe = !0) : ($(security).find(".low").addClass("on"), safe = !1), safe;
}
function validateAllStep(validator, idSection) {
var rtn = 0, inputs = $(idSection).find("input");
return $(inputs).each(function() {
0 == validator.element($(this)) && rtn++;
}), rtn;
}
function validateStep1() {
var validator = $("#inscriptionForm").validate(), rslt = validateAllStep(validator, "#infos-connexion");
return $("#infos-connexion #user_email").val().toLowerCase() != $("#infos-connexion #user_emailconfirm").val().toLowerCase() && (addErrorMessage($("#infos-connexion #user_emailconfirm"), "La confirmation ne correspond pas à l'email."),
rslt++), $("#infos-connexion #user_mdp").val() != $("#infos-connexion #user_mdpconfirm").val() && (addErrorMessage($("#infos-connexion #user_mdpconfirm"), "La confirmation ne correspond pas au mot de passe."),
rslt++), "" == $("#infos-connexion #user_secret_question").val() && (addSelectErrorMessage($("#infos-connexion .list"), "Ce champs est obligatoire."),
rslt++), rslt;
}
function validateStep2() {
var validator = $("#inscriptionForm").validate(), rslt = validateAllStep(validator, "#donnees-persos"), birthday = $("#user_bday").val();
if ("" != birthday) {
var tabBD = birthday.split("/");
calculateAge(new Date(tabBD[2], tabBD[1] - 1, tabBD[0])) < 18 && (addErrorMessage($("#donnees-persos #user_bday"), "Vous devez être majeur"),
rslt++);
}
return $("#donnees-persos .majority input").is(":checked") || (addErrorMessage($("#donnees-persos #user_maj"), ""),
rslt++), "" == $("#donnees-persos #user_birth_country").val() && (addSelectErrorMessage($("#donnees-persos .country"), "Ce champs est obligatoire."),
rslt++), rslt;
}
function validateStep3() {
var validator = $("#inscriptionForm").validate(), rslt = validateAllStep(validator, "#coordonnees");
return "" == $("#coordonnees #user_country").val() && (addSelectErrorMessage($("#coordonnees .country"), "Ce champs est obligatoire."),
rslt++), "" == $("#coordonnees #user_phone").val() && "" == $("#coordonnees #user_mobile").val() && (addErrorMessage($("#coordonnees #user_mobile"), "Veuillez renseigner au moins un des deux numéro de téléphone"),
addErrorMessage($("#coordonnees #user_phone"), ""), rslt++), rslt;
}
function getPasswordStrength(psw) {
var patterns = [ /[a-z]/, /[A-Z]/, /[0-9]/, /[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/ ], strength = 0;
return $(patterns).each(function() {
var pattern = $(this);
null != psw.match(pattern[0]) && (strength += 1);
}), strength;
}
function addErrorMessage(elem, msg) {
if (!elem.hasClass("error")) {
$(elem).addClass("error");
var error = '' + msg + " ";
$(elem).before(error);
}
}
function addSelectErrorMessage(elem, msg) {
if (!$(elem).find(".selected").hasClass("error")) {
$(elem).find(".selected").addClass("error");
var error = '' + msg + " ";
$(elem).before(error);
}
}
function checkCaptchaError(swiperSub) {
return $("#jeu-responsable #captcha").hasClass("has-error") ? (enableAllSlides(),
swiperSub.slideTo(3), $("#jeu-responsable #captcha").before('La valeur renseignée est incorrecte '),
$("#inscription .steps-bar .step-4").addClass("error"), 3) : 0;
}
function enableAllSlides() {
$("#inscription .steps-bar div[class*='step-']").not(".step-bonus").addClass("green");
}
function calculateAge(birthday) {
var ageDifMs = Date.now() - birthday.getTime(), ageDate = new Date(ageDifMs);
return Math.abs(ageDate.getUTCFullYear() - 1970);
}
AjaxManager.prototype.update = function(params) {
if (void 0 === params) var params = {};
this.type = params.type && this.typeArray.indexOf(params.type) > -1 ? params.type : "GET",
this.url = params.url || "", this.data = params.data || "", this.dataType = params.dataType || "json",
this.params = params || {};
}, AjaxManager.prototype.clear = function() {
this.lastParams = {}, this.results = {}, this.error = {};
}, AjaxManager.prototype.isDuplicateCall = function() {
return !isEmpty(this.results) && !isEmpty(this.lastParams) && this.params == this.lastParams;
}, AjaxManager.prototype.flush = function(callback, errorCallback) {
if (isEmpty(this.params)) this.error = {
label: "parameters",
msg: "Aucun paramètres envoyés."
}; else if ("" == this.url) this.error = {
label: "route",
msg: "Aucune URL envoyée."
}; else if (this.isDuplicateCall()) this.results = {
label: "duplicate",
msg: "Requête déjà envoyée."
}; else {
var that = this;
$.ajax({
type: this.type,
url: this.url,
data: this.data,
dataType: this.dataType,
success: function(data) {
that.results = data, "function" == typeof callback && callback(data);
},
error: function(data, error) {
var header = data.getResponseHeader("Content-Type"), redirectedTo = void 0 !== data.getResponseHeader("X-Redirection") && "" != data.getResponseHeader("X-Redirection") ? data.getResponseHeader("X-Redirection") : null;
if ("application/json" == header) {
var result = $.parseJSON(data.responseText);
"USE_ORIGIN_ERROR_MSG" === result.code ? that.showOriginError(result.message, result.title) : void 0 !== result.code ? that.showError(result.code) : that.showError(result.status);
} else that.showError(500, redirectedTo);
"function" == typeof errorCallback && errorCallback(), that.error = {
label: "xhr",
msg: "La requête a échoué.",
raw: data
}, $("html, body").animate({
scrollTop: 0
}, "fast");
}
});
}
return this.results;
}, AjaxManager.prototype.showError = function(code, redirectedTo) {
if (void 0 !== redirectedTo && null !== redirectedTo) window.location.href = redirectedTo; else {
var greyedItem = $("
", {
class: "greyed-out",
html: " "
}), popup = $('');
if (hideLoader(), "LE_PARI_EST_CLOTURE" == code && 0 != BetSlipSport.ticket.accept) {
new BetSportManager().manageEvol();
}
$(document.body).append(greyedItem.css("cssText", "z-index: 400 !important;").fadeTo(200, .75, function() {
$(document.body).append(popup);
}));
}
}, AjaxManager.prototype.showOriginError = function(originMsg, originTitle) {
var greyedItem = $("
", {
class: "greyed-out",
html: " "
}), title = void 0 !== originTitle ? originTitle : "ERREUR", popup = $('');
hideLoader(), $(document.body).append(greyedItem.css("cssText", "z-index: 400 !important;").fadeTo(200, .75, function() {
$(document.body).append(popup);
}));
}, $(document).ready(function() {
$(document).on("click", ".alpha_sort button", function() {
showLoader();
var sortedList, listContainer = $(this).parents(".alpha_sort").next(".item-list"), list = listContainer.children();
0 == $(this).val() ? ($(this).val(1), sortedList = list.sort(compareLabel)) : ($(this).val(0),
sortedList = list.sort(compareOrder)), listContainer.append(sortedList), hideLoader();
}), $(document).on("click", "#sport-list .item", function() {
13 != $(this).data("sport-id") ? $(".alpha_sort.sport").addClass("hidden") : $(".alpha_sort.sport").removeClass("hidden");
});
});
var logger = function() {
var oldConsoleLog = null, pub = {};
return pub.enableLogger = function() {
null != oldConsoleLog && (window.console.log = oldConsoleLog);
}, pub.disableLogger = function() {
oldConsoleLog = console.log, window.console.log = function() {};
}, pub;
}(), Betslip1 = null, betType1, tailleCombiUnitaire1, type1, formule1, betType2, tailleCombiUnitaire2, formule2;
$(document).ready(function() {
function updateContentAmount() {
null != Betslip.bet && ("SIMPLE" != Betslip.bet ? displayAmountComplexe() : ($('.stakes-wrap input[name="stake"]').each(function() {
"" != $(this).val() && !isNaN($(this).val()) && $(this).val() > 0 && $(this).parent().parent().find(".label").addClass("selected");
}), getStakeSimple())), saveBetSlipTemp(Betslip);
}
Betslip.setRace($("#partants").data("race-id"), $("#partants").data("race-nbrunners")),
$(".bet-box .logo-paris:not(.greyed)").on("click", function() {
null != Betslip ? (betType1 = Betslip.bet, tailleCombiUnitaire1 = Betslip.getNbMaxHorse(),
formule1 = Betslip.formula, type1 = Betslip.type, Betslip1 = JSON.parse(JSON.stringify(Betslip))) : formule1 = null,
void 0 !== $("#partants-list").attr("data-bet-selected") && cleanBetslip(), setTimeout(function() {
resetBetslipAftervalidation();
}, 0), removeBtnAllOrder();
var betType = $(this).data("bet-type"), formula = formule1, betslipType = null, auto = $(this).hasClass("BANKER"), pureBetType = betType;
if ("BANKER" != formula || auto || (formula = "UNIT"), console.warn("pureBetType=" + pureBetType),
"COUPLE" == betType) betslipType = "GAGNANT"; else if ("COUPLE_ORDRE" == betType || "TRIO_ORDRE" == betType || "TOP4_ORDRE" == betType) {
var tabBet = betType.split("_");
betType = tabBet[0], betslipType = tabBet[1], addBtnAllOrder();
} else "ROYAL5" == betType && (betslipType = "ORDRE", addBtnAllOrder());
if (console.warn("betslipType=" + betslipType), Betslip.setBet(betType, formula, betslipType, auto),
saveBetSlipTemp(Betslip), saveBetTypeSelected(pureBetType, formula), "SIMPLE" != Betslip.bet) {
var classType = !0 === auto ? "banker" : "empty", htmlPosition = "banker" == classType ? "" : '
';
for (i = 0; i < maxNbHorses[Betslip.bet]; i++) $(".horses-base").append('' + htmlPosition + "
");
}
availableFraction(), hideForBetAuto(), null != Betslip && (betType2 = Betslip.bet,
tailleCombiUnitaire2 = Betslip.getNbMaxHorse(), formule2 = Betslip.formula), Betslip.designation = Betslip1.designation,
Betslip.formula = formule1, Betslip.nbChamp = Betslip1.nbChamp, Betslip.nbBase = Betslip1.nbBase,
"UNIT" == Betslip.bet && Betslip.designation.champ.length > 0 && (Betslip.designation.base = Betslip.designation.base.concat(Betslip.designation.champ),
Betslip.nbBase = Betslip.designation.base.length, Betslip.designation.champ = [],
Betslip.nbChamp = Betslip.designation.champ.length), updatePositionCheckboxes(),
sortAndShowDesignation(), void 0 == formula || auto || $(".sel-formula-key .sel-box[data-formula-key=" + formula + "]").click(),
updateHorseTicket(), sliceDesignation(!1);
}), $(".checkbox-wrap .checkbox").not(".champ").on("click", function() {
removeTrashMode(), toggleChecked($(this));
var numHorse = $(this).data("numhorse");
$(".logo-paris.selected")[0] || (Betslip.nbBase >= 0 ? showBetslip("EMPTY") : $("#betslip").removeAttr("class")),
isGiantGrid() || ($(this).hasClass("checked") ? (Betslip.addHorseBase(numHorse),
Betslip.removeHorseChamp(numHorse), updateHorseTicket()) : (Betslip.removeHorseBase(numHorse),
updateHorseTicket(), clearDaCheckbox(numHorse), BetslipOrder.removePosition(numHorse)),
updatePositionCheckboxes(), isBaseDisable(), sortAndShowDesignation(), saveBetSlipTemp(Betslip),
saveOrderStack(BetslipOrder));
}), $(".checkbox-wrap .checkbox.champ").on("click", function() {
removeTrashMode(), toggleChecked($(this));
var numHorse = $(this).data("numhorse");
$(this).hasClass("checked") ? (Betslip.addHorseChamp(numHorse), updateHorseTicket()) : (Betslip.removeHorseChamp(numHorse),
updateHorseTicket()), sortAndShowDesignation(), saveBetSlipTemp(Betslip);
}), $(document).on("click", "#clavier button, .pad[data-value], .pad.correction, .stakes-wrap span.input", function() {
updateContentAmount();
});
var am = new AjaxManager(), betCallback = function(data) {
hideLoader(), enableSwipe(), $("#betslip-popup").find(".body").empty();
for (var errCnt = 0, simple = !1, i = 0; i < data.length; i++) {
var br = new BetResponse(data[i]);
if (br.hasError()) br.data.betType.match(/SIMPLE/) ? (simple = !0, br.addSimpleError(),
errCnt++) : br.setErrorPopup(); else {
var transactionId = 0;
transactionId = initTransaction(Date.now(), parseFloat(br.data.stake).toFixed(2)),
addItem(transactionId, br.data.betType.split("_").join(" "), br.data.id, "Enjeux_Turf", parseFloat(br.data.stake).toFixed(2)),
sendToAnalytics(), br.removeErrorPopup(), br.addToPopup(), refreshHeader(), refreshBandeau();
}
i != data.length - 1 || 0 != errCnt && errCnt == i + 1 || betslipPopup();
}
simple && errCnt == data.length || cleanBetslip();
};
$(document).on("click", ".bet-submit", function() {
disableSwipe(), "WHEEL" == Betslip.formula && setChampTotal();
var params = {
type: "POST",
url: Routing.generate("genybet_bet_bet"),
data: Betslip.jsonSerialize()
};
showLoader(), am.update(params), am.flush(betCallback);
}), $(document).on("click", ".prono-bet-submit", function() {
var json = {
raceId: $("#partants").data("race-id"),
bet: $(this).parent(".bet").data("bet"),
stake: $(this).prev(".stake").find("input").val(),
bases: $(this).siblings(".combinaison").text().replace(/\s+/, "").split("-")
}, pr = new Prono(json), params = {
type: "POST",
url: Routing.generate("genybet_bet_bet"),
data: pr.jsonSerialize()
};
am.update(params), am.flush(betCallback);
}), $(document).on("click", "#betslip-popup .popup:not(.error) button", function() {
$("body").animate({
scrollTop: 0
}, "slow"), $("#betslip").removeAttr("class").removeAttr("style"), removeBetslip(),
$(".logo-paris.selected").delay(100).trigger("click"), unlockScrolling();
}), $(document).on("click", "#error-popup button", function() {
hidePopup();
}), $(document).on("click", ".general-info-link", function() {
showPopup("infos-general-popup", $("#infos-general-popup").html());
}), $(document).on("click", "button[id^='validate-notifs-']", function() {
hideModalPopUp($(this)), removeShowedPop($(this)), validateNotification(extractnotificationFromButton($(this))),
showCurrentPopUp("#notifications-popup-wrapper");
}), animateSportTitles(), resizeLongTexts();
});
var notificationsCallback = function(data) {}, refreshAm = new AjaxManager(), refreshHeaderCallBack = function(data) {
$("#headerinfoss").html(data);
var newSolde = $("#headerinfoss .amount").attr("data-solde"), freebetNewSolde = $("#headerinfoss .amount").attr("data-solde-sport-freebet");
if (void 0 !== newSolde) {
var formattedSolde = parseFloat(newSolde.replace(".", "").replace(",", ".")), formattedSoldeFreebet = parseFloat(freebetNewSolde.replace(".", "").replace(",", ".")), betslipElement = $("#betslip-sport");
betslipElement.attr("data-solde-sport", formattedSolde), betslipElement.attr("data-solde-sport-freebet", formattedSoldeFreebet),
$("#betslip-sport .header .amount").html(newSolde), parseInt(formattedSolde) < 5 && NotifManager.getInstance("#amount-alert").show();
}
};
$(document).on("click touchstart", ".back.smart", function() {
$("#grille-wrap").hasClass("shown") && backToList();
});
var am = new AjaxManager(), gridBetCallBack = function(data) {
resetGridState(), hideLoader(), refreshHeader(), setBack(), confirmationGridBet();
};
$(document).on("click touchstart", "button.bet-grid", function() {
var gridId = $(this).attr("id").split("-")[2], gridBetParameter = getGridBetParameter(gridId), params = {
type: "POST",
url: Routing.generate("genybet_grid_bet"),
data: gridBetParameter
};
showLoader(), am.update(params), am.flush(gridBetCallBack);
}), $(document).on("click", "#grille .result span", function() {
$(this).toggleClass("selected"), setBetAmount();
}), $(document).on("click", "#grille button.clean", function() {
$("#grille .swiper-slide-active .result span").removeClass("selected"), setBetAmount();
}), $(document).on("click", "#grille button.auto", function() {
$("#grille .swiper-slide-active .result span").removeClass("selected");
for (var i = 0; i < $("#grille .swiper-slide-active .match-wrap").length; i++) {
var random = Math.floor(3 * Math.random() + 0);
$("#grille .swiper-slide-active .match-wrap").eq(i).find(".result span").eq(random).addClass("selected");
}
setBetAmount();
}), $(document).ready(function() {
setBack();
}), BetResponse.prototype.betTypeNatural = function() {
return result = Translator.trans("bet_type." + this.data.betType, {}, "betslip"),
result = result + ' ' + Translator.trans("bet_type." + this.data.formulaKey, {}, "betslip") + " ",
result;
}, BetResponse.prototype.getErrorString = function() {
var result = null;
return null != this.data.bettingError && (result = this.errorList[this.data.bettingError]),
result;
}, BetResponse.prototype.hasError = function() {
return null != this.data.bettingError;
}, BetResponse.prototype.addToPopup = function() {
if (null !== this.$popup) {
var html = ' ' + this.data.betDesignation + '
' + this.betTypeNatural() + ("MULTI" == this.data.betType ? " " + this.data.formulaRisk.replace("IN", "") : "") + '
' + this.data.stake + " €
";
this.$popup.find(".body").append(html);
}
}, BetResponse.prototype.setErrorPopup = function() {
if (null != this.$popup) {
this.$popup.find(".popup").addClass("error");
var errMsg = 'ERREUR
' + this.getErrorString() + "
";
this.$popup.find(".header").html(errMsg);
}
}, BetResponse.prototype.removeErrorPopup = function() {
if (null != this.$popup) {
this.$popup.find(".popup").removeClass("error");
this.$popup.find(".header").html('Vos paris ont bien été enregistrés
');
}
}, BetResponse.prototype.addSimpleError = function() {
if (null != this.horse) {
var $horse = $('.horse[data-numhorse="' + this.horse + '"]'), $errorWrap = $horse.find(".error-wrap"), $input = $horse.find('input[data-class="' + this.getType().toLowerCase() + '"]');
$errorWrap.html(this.getErrorString()), $horse.addClass("has-error"), $input.addClass("error");
}
}, BetResponse.prototype.getType = function() {
var betType = this.data.betType.split("_");
return betType.length > 1 ? betType[1] : betType[0];
};
var nbBetSystem = {
3: {
0: {
label: "bet.system.risk.deux.tiers.trois.combinaisons",
nbCombinaison: 2,
totalCombi: 3,
code: "s2_3"
}
},
4: {
0: {
label: "bet.system.risk.trois.quart.quatre.combinaisons",
nbCombinaison: 3,
totalCombi: 4,
code: "s3_4"
},
1: {
label: "bet.system.risk.deux.quart.six.combinaisons",
nbCombinaison: 2,
totalCombi: 6,
code: "s2_4"
}
},
5: {
0: {
label: "bet.system.risk.quatre.cinquieme.cinq.combinaisons",
nbCombinaison: 4,
totalCombi: 5,
code: "s4_5"
},
1: {
label: "bet.system.risk.trois.cinquieme.dix.combinaisons",
nbCombinaison: 3,
totalCombi: 10,
code: "s3_5"
},
2: {
label: "bet.system.risk.deux.cinquieme.dix.combinaisons",
nbCombinaison: 2,
totalCombi: 10,
code: "s2_5"
}
},
6: {
0: {
label: "bet.system.risk.cinq.sixieme.six.combinaisons",
nbCombinaison: 5,
totalCombi: 6,
code: "s5_6"
},
1: {
label: "bet.system.risk.quatre.sixieme.quinze.combinaisons",
nbCombinaison: 4,
totalCombi: 15,
code: "s4_6"
},
2: {
label: "bet.system.risk.trois.sixieme.vingt.combinaisons",
nbCombinaison: 3,
totalCombi: 20,
code: "s3_6"
},
4: {
label: "bet.system.risk.deux.sixieme.quinze.combinaisons",
nbCombinaison: 2,
totalCombi: 15,
code: "s2_6"
}
}
}, BetSlipSport = {
ticket: {
designation: {},
stake: 10,
stakeSystem: 10,
risk: null,
useFreeBet: 0,
enableFreeBetSwitcher: !0,
originalFreeBetStake: null,
accept: getSavedAccept()
},
currentTab: "",
amountPopUp: !1
};
BetSlipSport.clearTicket = function() {
this.ticket = {
designation: [],
stake: 10,
stakeSystem: 10,
risk: null,
useFreeBet: 0,
enableFreeBetSwitcher: !0,
originalFreeBetStake: null,
accept: getSavedAccept()
}, this.currentTab = "";
}, BetSlipSport.log = function(msg, level) {
}, BetSlipSport.addChoice = function(actor, sport, eventTitle, odd, eventId, betType, uid, choice, competition, matchId, question, questionId) {
this.ticket.designation[eventId] || (this.ticket.designation[eventId] = {}), this.ticket.designation[eventId][uid] || (this.ticket.designation[eventId][uid] = {}),
this.ticket.designation[eventId][uid] = {
choice: choice,
odd: odd,
sport: sport,
actor: actor,
eventTitle: eventTitle,
betType: betType,
competition: competition,
stake: 10,
matchId: matchId,
question: question,
questionId: questionId
}, this.initializeRisk(), this.selectChoice(uid), this.updateCookies();
}, BetSlipSport.updateStakeSimple = function(stake, eventId, uid) {
this.ticket.designation[eventId][uid].stake = parseFloat(stake), this.updateCookies();
}, BetSlipSport.updateStakeCombine = function(stake) {
this.ticket.stake = parseFloat(stake), this.updateCookies();
}, BetSlipSport.updateStakeSystem = function(stake) {
this.ticket.stakeSystem = parseFloat(stake), this.updateCookies();
}, BetSlipSport.removeChoice = function(uid, eventId) {
delete this.ticket.designation[eventId][uid], 0 == Object.keys(this.ticket.designation[eventId]).length && delete this.ticket.designation[eventId],
this.unselectChoice(uid), this.initializeRisk(), this.updateCookies(), this.enableCombineSystem(),
this.activateTab(), this.setNbBets(), this.checkClearBetslip(!1);
}, BetSlipSport.choiceCount = function() {
var count = 0;
for (var event in this.ticket.designation) for (var choice in this.ticket.designation[event]) count++;
return count;
}, BetSlipSport.checkClearBetslip = function(clearAll) {
0 != Object.keys(this.ticket.designation).length && 1 != clearAll || (this.clearDomBetslip(),
this.enableCombineSystem(), this.activateCombine(), 1 == clearAll && (this.clearCookies(),
this.clearSelected(), this.clearTicket(), this.setNbBets()));
}, BetSlipSport.initializeRisk = function(index) {
Object.keys(this.ticket.designation).length > 2 && (riskIndex = void 0 !== index ? index : 0,
this.ticket.risk = riskIndex);
}, BetSlipSport.initializeAccept = function(index) {
this.ticket.accept = void 0 !== index ? index : 0;
}, BetSlipSport.saveAccept = function(index) {
Cookies.set("ticketSportAccept", index);
}, BetSlipSport.clearDomBetslip = function() {
$("#betslip-simple .betList, #betslip-combine .betList, #betslip-combine .footer, #betslip-simple .footer, #betslip-systeme .betList, #betslip-systeme .footer").remove(),
$("#betslip-simple > .content").html('' + Translator.trans("bet.error.no.bets") + " "),
$("#betslip-combine > .content").html('' + Translator.trans("bet.error.no.bets") + " "),
$("#betslip-systeme > .content").html('' + Translator.trans("bet.error.no.bets") + " ");
}, BetSlipSport.initializeCookies = function() {
if (void 0 !== Cookies.get("ticketSport")) {
var ticket = this.decodeTicket();
this.ticket.stake = ticket.stake, this.ticket.stakeSystem = ticket.stakeSystem,
this.ticket.risk = ticket.risk, this.ticket.designation = ticket.event, this.ticket.accept = ticket.accept,
this.currentTab = ticket.currentTab, this.initializeGrid();
}
}, BetSlipSport.updateCookies = function() {
Object.keys(this.ticket.designation).length > 0 ? Cookies.set("ticketSport", this.encodeTicket()) : this.clearCookies();
}, BetSlipSport.clearCookies = function() {
Cookies.remove("ticketSport");
}, BetSlipSport.selectChoice = function(choice) {
$('.bet[data-unique-id="' + choice + '"]').not(".disable").addClass("selected");
}, BetSlipSport.unselectChoice = function(choice) {
$('.bet[data-unique-id="' + choice + '"]').removeClass("selected");
}, BetSlipSport.clearSelected = function() {
$(".bet").removeClass("selected");
}, BetSlipSport.setNbBets = function() {
var count, totalGains, totalStake;
if (count = totalGains = totalStake = 0, Object.keys(this.ticket.designation).length > 0) for (var event in this.ticket.designation) count += Object.keys(this.ticket.designation[event]).length;
switch (BetSlipSport.log("[BetSlipSport.setNbBets] BetSlipSport.currentTab = " + BetSlipSport.currentTab, "INFO"),
this.currentTab != BetSlipSport.currentTab && BetSlipSport.log("[BetSlipSport.setNbBets] different this.currentTab = " + this.currentTab, "WARN"),
BetSlipSport.log("[BetSlipSport.setNbBets] BetSlipSport.isCombine = " + BetSlipSport.isCombine(), "WARN"),
this.currentTab != BetSlipSport.currentTab && BetSlipSport.log("[BetSlipSport.setNbBets] different this.isCombine()= " + this.isCombine(), "WARN"),
BetSlipSport.log("[BetSlipSport.setNbBets] BetSlipSport.isSystem = " + BetSlipSport.isSystem(), "WARN"),
this.currentTab != BetSlipSport.currentTab && BetSlipSport.log("[BetSlipSport.setNbBets] different this.isSystem()= " + this.isSystem(), "WARN"),
this.isCombine(), BetSlipSport.currentTab) {
case "simple":
"s", totalGains = computeRawWinningsSimple(), totalStake = addAllSimpleStakes(),
BetSlipSport.log("[setNbBets] EXPLICIT CASE simple", "INFO");
break;
case "combine":
"c", totalGains = computeRawWinningsCombine(), totalStake = BetSlipSport.ticket.stake,
BetSlipSport.log("[setNbBets] EXPLICIT CASE combine", "INFO");
break;
case "systeme":
"x", totalGains = computeRawWinningsSystem(BetSlipSport.ticket.stakeSystem), totalStake = BetSlipSport.getTotalStakeSystem(),
BetSlipSport.log("[setNbBets] EXPLICIT CASE systeme", "INFO");
break;
default:
this.isCombine() && !this.containSuperCotes() ? ("C", totalGains = computeRawWinningsCombine(),
totalStake = BetSlipSport.ticket.stake, BetSlipSport.log("[setNbBets] DEFAULT CASE combine", "INFO")) : (BetSlipSport.log("[setNbBets] DEFAULT CASE (simple par default)", "INFO"),
"?", totalGains = computeRawWinningsSimple(), totalStake = addAllSimpleStakes());
}
BetSlipSport.log("[setNbBets] before compute globalOddValueToDisplay totalGains " + totalGains + ", totalStake=" + totalStake + ", (totalGains/totalStake))=" + totalGains / totalStake, "INFO");
var globalOddValueToDisplay = truncateFloat(totalGains / totalStake, 2);
BetSlipSport.log("[BetSlipSport.setNbBets] count = " + count + ", globalOddValueToDisplay = " + globalOddValueToDisplay, "INFO");
var counterContainer = $(".circle-label");
0 === count ? (counterContainer.addClass("empty"), counterContainer.html(""), $(".front-stake").html(""),
$("#header-sport-basket").removeClass("has-bets").find(".logo").removeClass("active").addClass("inactive")) : (counterContainer.removeClass("empty"),
counterContainer.html(count), $("#header-sport-basket").addClass("has-bets").find(".logo").removeClass("inactive").addClass("active"),
$(".front-stake").html(globalOddValueToDisplay.toFixed(2)));
}, BetSlipSport.initializeGrid = function() {
for (var event in this.ticket.designation) for (var choice in this.ticket.designation[event]) BetSlipSport.selectChoice(choice);
this.setNbBets();
}, BetSlipSport.encodeTicket = function() {
var i = 0, res = "{";
if (Object.keys(this.ticket.designation).length) {
res += '"stake" : "' + this.ticket.stake + '",', res += '"stakeSystem" : "' + this.ticket.stakeSystem + '",',
res += '"risk" : "' + this.ticket.risk + '",', res += '"accept" : "' + this.ticket.accept + '",',
res += '"currentTab" : "' + this.currentTab + '",', res += '"event" : {';
for (var event in this.ticket.designation) {
var j = 0;
res += (i > 0 ? "," : "") + '"' + event + '" : {';
for (var choice in this.ticket.designation[event]) {
var k = 0;
res += (j > 0 ? "," : "") + '"' + choice + '" : {';
for (var field in this.ticket.designation[event][choice]) res += (k > 0 ? "," : "") + '"' + field + '":' + (void 0 === this.ticket.designation[event][choice][field] ? null : JSON.stringify(this.ticket.designation[event][choice][field])),
k++;
res += "}", j++;
}
res += "}", i++;
}
res += "}";
}
return res += " } ";
}, BetSlipSport.decodeTicket = function() {
return JSON.parse(Cookies.get("ticketSport"));
}, BetSlipSport.isCombine = function() {
for (var event in this.ticket.designation) if (Object.keys(this.ticket.designation[event]).length > 1) return !1;
return !(Object.keys(this.ticket.designation).length < 2 || 0 == Object.keys(this.ticket.designation).length || Object.keys(this.ticket.designation).length > 8);
}, BetSlipSport.isSystem = function() {
for (var event in this.ticket.designation) if (Object.keys(this.ticket.designation[event]).length > 1) return !1;
return !(Object.keys(this.ticket.designation).length < 3 || 0 == Object.keys(this.ticket.designation).length || Object.keys(this.ticket.designation).length > 6);
}, BetSlipSport.activateCombine = function() {
0 == this.isCombine() ? ($(".tab[data-type=simple]").addClass("selected"), slideTo("betslip-simple"),
BetSlipSport.currentTab = "simple") : ($(".tab[data-type=combine]").addClass("selected"),
slideTo("betslip-combine"), BetSlipSport.currentTab = "combine");
}, BetSlipSport.enableCombineSystem = function() {
$(".tab").removeClass("selected"), 0 == this.isSystem() ? disableSlide("betslip-systeme") : (enableSlide("betslip-systeme"),
enableSlide("betslip-combine")), 0 == this.isCombine() ? (enableSlide("betslip-simple"),
disableSlide("betslip-combine")) : enableSlide("betslip-combine"), this.containSuperCotes() && (this.currentTab = "simple",
enableSlide("betslip-simple"), disableSlide("betslip-combine"), disableSlide("betslip-systeme"));
for (var event in BetSlipSport.ticket.designation) for (var choice in BetSlipSport.ticket.designation[event]) (BetSlipSport.questionSimple(BetSlipSport.ticket.designation[event][choice].questionId) || "TYPE_PARI_VAINQUEUR_FINAL" == BetSlipSport.ticket.designation[event][choice].betType) && (this.currentTab = "simple",
disableSlide("betslip-combine"));
}, BetSlipSport.questionSimple = function(questionId) {
return questionsSimples = [ 1090, 1106, 1099, 3343, 3345, 4146, 4106, 4011, 4014, 1204, 4114, 4115, 3480, 4105, 4050, 950, 1116, 4013, 4012, 4109, 4010, 4112, 4104, 2169, 4133, 4119, 1701, 1702, 2171, 2172, 2175, 2176 ],
questionsSimples.indexOf(questionId) > 0;
}, BetSlipSport.getRiskCode = function() {
return nbBetSystem[Object.keys(BetSlipSport.ticket.designation).length][BetSlipSport.ticket.risk].code;
}, BetSlipSport.getStakeSimple = function() {
var res = 0;
if (Object.keys(BetSlipSport.ticket.designation).length > 0) for (var event in BetSlipSport.ticket.designation) for (var choice in BetSlipSport.ticket.designation[event]) res += BetSlipSport.ticket.designation[event][choice].stake;
return res;
}, BetSlipSport.containSuperCotes = function() {
var res = !1;
if (Object.keys(BetSlipSport.ticket.designation).length > 0) for (var event in BetSlipSport.ticket.designation) for (var choice in BetSlipSport.ticket.designation[event]) if (res = 71 === BetSlipSport.ticket.designation[event][choice].sport) return res;
return res;
}, BetSlipSport.getTotalStakeSystem = function() {
var res = 1;
return Object.keys(BetSlipSport.ticket.designation).length > 2 && Object.keys(BetSlipSport.ticket.designation).length < 7 && (res = BetSlipSport.ticket.stakeSystem * nbBetSystem[Object.keys(BetSlipSport.ticket.designation).length][BetSlipSport.ticket.risk].totalCombi),
res;
}, BetSlipSport.getBetsLive = function() {
var listBets = [];
if (Object.keys(BetSlipSport.ticket.designation).length > 0) for (var designation in BetSlipSport.ticket.designation) for (var choice in BetSlipSport.ticket.designation[designation]) null != BetSlipSport.ticket.designation[designation][choice].matchId && (null == listBets[choice] && (listBets[choice] = []),
listBets[choice] = {
matchId: BetSlipSport.ticket.designation[designation][choice].matchId,
eventId: designation,
odd: BetSlipSport.ticket.designation[designation][choice].odd,
choiceId: BetSlipSport.ticket.designation[designation][choice].choice
});
return listBets;
}, BetSlipSport.getNonLiveBets = function() {
var listBets = [];
if (Object.keys(BetSlipSport.ticket.designation).length > 0) for (var designation in BetSlipSport.ticket.designation) for (var choice in BetSlipSport.ticket.designation[designation]) null == BetSlipSport.ticket.designation[designation][choice].matchId && (null == listBets[choice] && (listBets[choice] = []),
listBets[choice] = {
eventId: designation,
odd: BetSlipSport.ticket.designation[designation][choice].odd,
choiceId: BetSlipSport.ticket.designation[designation][choice].choice
});
return listBets;
}, BetSlipSport.updateChoice = function(eventId, uid, choice, odd) {
void 0 !== BetSlipSport.ticket.designation[eventId] && void 0 !== BetSlipSport.ticket.designation[eventId][uid] && (BetSlipSport.ticket.designation[eventId][uid].odd = odd,
BetSlipSport.ticket.designation[eventId][uid].choice = choice);
}, BetSlipSport.updateCurrentTab = function(tab) {
this.currentTab = tab;
}, BetSlipSport.activateTab = function() {
var disabled = $(".tab[data-type=" + this.currentTab + "]").hasClass("disable");
"" == this.currentTab || disabled ? this.activateCombine() : ($(".tab[data-type=" + this.currentTab + "]").addClass("selected"),
slideTo("betslip-" + this.currentTab));
}, $(document).ready(function() {
BetSlipSport.initializeCookies(), 0 != $("#betslip-sport").length && ($(document).on("click touchstart", ".betslip-sport, .circle-label", function() {
disableSwipe(), generateBetslip();
var greyedItem = $("
", {
class: "greyed-out",
html: " "
});
$(document.body).append(greyedItem.fadeTo(200, .75)), setTimeout(function() {
$("#betslip-sport").addClass("shown");
}, 200);
}), $(document).on("click", "#betslip-sport .close", function() {
$(document.body).children(".greyed-out").remove(), $("#betslip-sport").removeClass("shown"),
BetSlipSport.ticket.useFreeBet = 0, BetSlipSport.amountPopUp && removeAmountPopup();
})), $(document).on("click", ".bets-wrap .bet:not(.more):not(.disable)", function(e) {
0 == stopClick && ($(this).animateCircle(), e.preventDefault());
var actor = $(this).data("actor"), sport = $(this).data("sport"), eventTitle = $(this).data("event-title"), odd = $(this).attr("data-odd"), eventId = $(this).data("event"), betType = $(this).data("bet-type"), uid = $(this).data("unique-id"), choice = $(this).attr("data-choice"), competition = $(this).data("competition"), matchId = $(this).parents().closest("[data-match-id]").data("match-id"), question = $(this).data("question"), questionId = $(this).data("question-id");
matchId = void 0 === matchId ? null : matchId, !BetSlipSport.ticket.designation[eventId] || BetSlipSport.ticket.designation[eventId] && !BetSlipSport.ticket.designation[eventId][uid] ? BetSlipSport.addChoice(actor, sport, eventTitle, odd, eventId, betType, uid, choice, competition, matchId, question, questionId) : BetSlipSport.removeChoice(uid, eventId),
BetSlipSport.setNbBets();
}), $(document).on("click", "#betslip-simple .betting-wrap .button", function() {
stakeSpiner($(this));
var stake = $(this).parents(".betting-wrap").find("input[name=stake]").val(), event = $(this).parents(".choiceItem").data("event"), uid = $(this).parents(".choiceItem").data("unique-id");
BetSlipSport.updateStakeSimple(stake, event, uid), checkFreebetBalanceLimit("simple", !1) && (stake = BetSlipSport.getStakeSimple());
var odd = $(this).parents(".choiceItem").find(".odd-betslip").data("odds"), gains = computeTruncateAndFormatWinnings(odd, stake), totalGains = computeThenFormatWinningsSimple(), totalStake = computeThenFormatTotalStakes();
updateTotal($(this).parents(".betting-wrap").find(".amount-wrap .amount"), gains),
updateTotal($(this).parents("#betslip-simple").find(".totalGainsSimple"), totalGains),
updateTotal($(this).parents("#betslip-simple").find(".totalStakeSimple"), totalStake),
checkValidateButton(), BetSlipSport.setNbBets();
}), $(document).on("click", "#betslip-combine .combinated-stakes-wrap .button, #betslip-systeme .combinated-stakes-wrap .button", function() {
stakeSpiner($(this));
var stake = $("#betslip-combine .combinated-stakes-wrap input[name=stake]").val();
BetSlipSport.updateStakeCombine(stake), checkFreebetBalanceLimit("combine", !1);
var totalGains = computeThenFormatWinningsCombine();
updateTotal($(this).parents("#betslip-combine").find(".totalStakeCombine"), totalGains);
var stakeSystem = $("#betslip-systeme .combinated-stakes-wrap input[name=stake]").val();
BetSlipSport.updateStakeSystem(stakeSystem);
var totalSystem = computeThenFormatWinningsSystem(stakeSystem, ","), totalStakeByCombi = computeTotalStakeSystem(stakeSystem);
updateTotal($(this).parents("#betslip-systeme").find(".totalStakeSystem"), totalSystem),
updateTotal($(this).parents("#betslip-systeme").find(".totalOddsSystem"), totalStakeByCombi),
checkValidateButton(), BetSlipSport.setNbBets();
}), $(document).on("click", ".validateAmountSport", function() {
updateBetSlipStake();
}), $(document).on("click", "#clavier-sport .pad", function() {
updateBetSlipStake();
}), $(document).on("click", ".choiceItem .logo-basket", function() {
var uid = $(this).data("unique-id"), event = $(this).data("event");
$(".choiceItem[data-unique-id=" + uid + "]").remove(), BetSlipSport.updateCurrentTab($("#betslip-sport .tab.selected").data("type")),
BetSlipSport.removeChoice(uid, event);
var totalGains = computeThenFormatWinningsSimple(), totalStake = computeThenFormatTotalStakes();
updateTotal($("#betslip-simple").find(".totalGainsSimple"), totalGains), updateTotal($("#betslip-simple").find(".totalStakeSimple"), totalStake);
var totalOddsComb = computeThenFormatRawCombinedOdd(), totalGainsComb = computeThenFormatWinningsCombine();
updateTotal($("#betslip-combine").find(".totalStakeCombine"), totalGainsComb), $("#betslip-combine").find(".totalOddsCombine").text(totalOddsComb);
var totalStakeByCombi = computeTotalStakeSystem(BetSlipSport.ticket.stakeSystem), totalGainsSystem = computeThenFormatWinningsSystem(BetSlipSport.ticket.stakeSystem, ",");
updateTotal($("#betslip-systeme").find(".totalStakeSystem"), totalGainsSystem),
updateTotal($("#betslip-systeme").find(".totalOddsSystem"), totalStakeByCombi),
refreshRiskList(), $(this).parents(".card").slideUp(200, function() {
$(this).remove();
}), "simple" === BetSlipSport.currentTab && showFreebetSwitcher(!0, !1) && (updateAllSimpleBets(),
$(".totalGainsSimple").parent().after(generateFreebetSwithcerHtml())), checkValidateButton();
}), $(document).on("click", ".delete-all", function() {
BetSlipSport.checkClearBetslip(!0);
}), $(document).on("click", "#betslip-sport .close", function() {
enableSwipe(), BetSlipSport.clearDomBetslip();
}), $(document).on("click touchstart", ".options.risk-opt li", function() {
var risk = $(this).data("value");
BetSlipSport.initializeRisk(risk);
var totalStakeByCombi = computeTotalStakeSystem(BetSlipSport.ticket.stakeSystem), totalGainsSystem = computeThenFormatWinningsSystem(BetSlipSport.ticket.stakeSystem, ",");
updateTotal($("#betslip-systeme").find(".totalStakeSystem"), totalGainsSystem),
updateTotal($("#betslip-systeme").find(".totalOddsSystem"), totalStakeByCombi),
BetSlipSport.updateCookies(), checkValidateButton();
}), $(document).on("click touchstart", "#select-box-popup .options.accept-opt li", function() {
var accept = $(this).data("value");
BetSlipSport.initializeAccept(accept), BetSlipSport.updateCookies(), BetSlipSport.saveAccept(accept);
}), $(document).on("click", "#confirmation-sport-popup button", function() {
BetSlipSport.checkClearBetslip(!0), $(document.body).children(".greyed-out").remove(),
$("#betslip-sport").removeClass("shown");
}), $(document).on("click", ".tab-betslip .tab", function() {
$(this).hasClass("disable") || (BetSlipSport.updateCurrentTab($(this).data("type")),
BetSlipSport.updateCookies(), BetSlipSport.setNbBets());
}), $(document).on("change", ".use_free_bet", function() {
BetSlipSport.ticket.enableFreeBetSwitcher || ($(this).parent().find(".selector").removeClass("on").css("transform", "translateX(2%)"),
$(this).parent().find("input").attr("value", "0"));
var useFreeBetValue = $(this).val();
if ($(".free_bet_switch").each(function() {
"1" === useFreeBetValue ? ($(this).parent().find(".selector").addClass("on"), $(this).parent().find("input").attr("value", "1")) : ($(this).parent().find(".selector").removeClass("on"),
$(this).parent().find("input").attr("value", "0"));
}), BetSlipSport.ticket.useFreeBet = parseInt(useFreeBetValue), "combine" === BetSlipSport.currentTab) {
checkFreebetBalanceLimit("combine", !0);
var totalGainsCombine = computeThenFormatWinningsCombine();
updateTotal($("#betslip-combine").find(".totalStakeCombine"), totalGainsCombine),
checkValidateButton();
}
if ("simple" === BetSlipSport.currentTab) {
checkFreebetBalanceLimit("simple", !0);
var totalGainsSimple = computeThenFormatWinningsSimple();
updateTotal($("#betslip-simple").find(".totalGainsSimple"), totalGainsSimple);
var totalStake = computeThenFormatTotalStakes();
updateTotal($("#betslip-simple").find(".totalStakeSimple"), totalStake), updateAllSimpleBets();
}
}), $("#sport-betslip-amount .amount").on("click", function() {
toggleAmountPopup();
});
});
var maxNbBases = {
SIMPLE: 0,
COUPLE: 1,
DEUX_SUR_QUATRE: 1,
MULTI: 3,
TRIO: 2,
TOP4: 3,
TOP5: 4,
ROYAL5: 4,
EMPTY: 4
}, maxNbBasesMulti = {
IN4: 3,
IN5: 4,
IN6: 5,
IN7: 6
}, maxNbHorses = {
SIMPLE: 1,
COUPLE: 2,
DEUX_SUR_QUATRE: 2,
TRIO: 3,
TOP4: 4,
MULTI: 4,
TOP5: 5,
ROYAL5: 5,
EMPTY: 5
}, maxNbHorsesFormulaRisk = {
IN4: 4,
IN5: 5,
IN6: 6,
IN7: 7
}, Betslip = {
raceId: null,
nbRunners: null,
bet: "EMPTY",
type: [],
formula: "UNIT",
risk: null,
designationHistory: [],
designation: {
base: [],
champ: []
},
nbBase: 0,
nbChamp: 0,
disable: null,
allOrder: null,
amount: 0,
stake: {},
unitStake: 0,
nbCombinaison: 0,
isAuto: !1,
json: {},
setRace: function(raceId, nbRunners) {
this.raceId = raceId, this.nbRunners = nbRunners;
},
reset: function() {
this.bet = "EMPTY", this.type = [], this.formula = "UNIT", this.designationHistory = [],
this.designation = {
base: [],
champ: []
}, this.disable = null, this.nbBase = 0, this.nbChamp = 0, this.allOrder = null,
this.amount = 0, this.stake = [], this.nbCombinaison = 0, this.risk = null, this.isAuto = !1;
},
setBet: function(betTypeSelected, betFormula, betslipType, isAuto) {
console.warn("[setBet] BEGIN: betTypeSelected=" + betTypeSelected + ", betFormula=" + betFormula + ", betslipType=" + betslipType + ", isAuto=" + isAuto),
this.bet = betTypeSelected, this.formula = betFormula, null != betslipType && this.setType(betslipType),
"MULTI" == betTypeSelected && (this.risk = "IN4"), this.isAuto = isAuto, console.warn("[setBet] END: this.bet=" + this.bet + ", this.formula=" + this.formula + ", this.type=" + this.type);
},
isOrder: function() {
return console.warn("[isOrder] this.type = " + this.type), console.warn("[isOrder] (this.type == ORDRE) = " + ("ORDRE" == this.type)),
console.warn("[isOrder] this.type.indexOf(ORDRE) = " + this.type.indexOf("ORDRE")),
console.warn("[isOrder] this.type.indexOf(ROYAL) = " + this.type.indexOf("ROYAL")),
"ORDRE" == this.type || -1 !== this.type.indexOf("ORDRE") || -1 !== this.type.indexOf("ROYAL");
},
setType: function(betslipType) {
switch (console.warn("[setType] (should be rename input, or pertinent) betslipType=" + betslipType),
console.warn("[setType] @start: this.type = " + this.type), betslipType) {
case "ALL_ORDERS":
this.allOrder = 1 != this.allOrder, console.warn("[setType-ALL_ORDERS] this.allOrder has been switched to " + this.allOrder);
break;
case "ORDRE":
this.type = [ "ORDRE" ], console.warn("[setType-ORDRE] this.type has been set to " + this.type);
break;
default:
var index = this.type.indexOf(String(betslipType));
console.warn("[setType-DEFAULT] index = " + index), -1 == index ? this.type.push(betslipType) : this.type.splice(index, 1),
console.warn("[setType-DEFAULT] this.type has been changed to " + this.type);
}
},
resetType: function() {
this.type = [], "COUPLE" === this.bet && (this.type = [ "GAGNANT" ]), console.warn("[resetType] this.type has been reset to " + this.type);
},
resetBox: function() {
this.allOrder = !1;
},
resetBase: function() {
this.designation.base = [], this.designationHistory = [], this.nbBase = 0;
},
resetChamp: function() {
this.designation.champ = [], this.nbChamp = 0;
},
updateFormula: function(betFormula) {
this.formula = betFormula;
},
updateRisk: function(risk) {
this.risk = risk;
},
setCheckboxDisabled: function() {
this.disable = "UNIT" != this.formula && "COMBINED" != this.formula && (this.nbBase == maxNbBases[this.bet] && "MULTI" != this.bet || "MULTI" == this.bet && this.nbBase == maxNbBasesMulti[this.risk]);
},
addHorseBase: function(numHorse) {
var nbTotalBase = maxNbBases[this.bet];
switch ("MULTI" == this.bet && (nbTotalBase = maxNbBasesMulti[this.risk]), this.formula) {
case "UNIT":
case "COMBINED":
this.designation.base.push(numHorse), this.designationHistory.push(numHorse), this.nbBase = this.designation.base.length;
break;
default:
this.nbBase < nbTotalBase && (this.designation.base.push(numHorse), this.designationHistory.push(numHorse)),
this.nbBase = this.designation.base.length, this.setCheckboxDisabled();
}
this.sortDesignation(), this.countNbHorse();
},
addHorseChamp: function(numHorse) {
this.designation.champ.push(numHorse), this.nbChamp = this.designation.champ.length,
this.sortDesignation(), this.countNbHorse();
},
removeHorseBase: function(numHorse) {
var index = this.designation.base.indexOf(numHorse);
index >= 0 && (this.designation.base.splice(index, 1), this.designationHistory.splice(index, 1)),
this.nbBase = this.designation.base.length, this.setCheckboxDisabled(), this.sortDesignation(),
this.countNbHorse();
},
removeHorseChamp: function(numHorse) {
var index = this.designation.champ.indexOf(numHorse);
index >= 0 && this.designation.champ.splice(index, 1), this.nbChamp = this.designation.champ.length,
this.sortDesignation(), this.countNbHorse();
},
setDesignationFromDragEvent: function(list) {
this.designation.base = list.slice(), this.designationHistory = list.slice();
},
updateDesignation: function(list) {
this.designation.base = list.slice(), this.nbBase = this.designation.base.length;
},
sortDesignation: function() {},
getNbMaxHorse: function() {
return maxNbHorsesFormulaRisk[this.risk] ? maxNbHorsesFormulaRisk[this.risk] : maxNbHorses[this.bet];
},
showDesignation: function() {
var returnDesignation = baseDesignation = champDesignation = "", separateur = "WHEEL" == this.formula || "PART_WHEEL" == this.formula ? "X" : "?";
if (this.nbBase > 0 || this.nbChamp > 0 || "EMPTY" == this.bet || this.isAuto) {
baseDesignation = this.designation.base.join(" - ");
var max = this.getNbMaxHorse();
if (this.isAuto) {
baseDesignation = "";
var baseMissing = max;
} else var baseMissing = max - this.nbBase;
if (baseMissing > 0 && "EMPTY" != this.bet) for (i = 0; i < baseMissing; i++) baseDesignation += "" == baseDesignation ? " " + separateur + " " : " - " + separateur;
switch (this.nbChamp = this.designation.champ.length, this.formula) {
case "PART_WHEEL":
champDesignation = this.nbChamp > 0 ? this.designation.champ.join(" - ") : " " + separateur + " ",
returnDesignation = this.isAuto ? baseDesignation : baseDesignation + " / " + champDesignation;
break;
case "WHEEL":
champDesignation = this.nbChamp > 0 ? this.designation.champ.join(" - ") : " " + separateur + " ",
returnDesignation = this.isAuto ? baseDesignation : baseDesignation + " / Champ total";
break;
default:
returnDesignation = baseDesignation;
}
}
return returnDesignation;
},
reloadDesignation: function() {
this.designation = {
base: [],
champ: []
}, this.nbBase = 0, this.nbChamp = 0;
},
calculateAmount: function(amount) {
if (this.unitStake = amount, "SIMPLE" != this.bet) {
var maxHorse = maxNbHorsesFormulaRisk[Betslip.risk] ? maxNbHorsesFormulaRisk[Betslip.risk] : maxNbHorses[Betslip.bet];
"WHEEL" == this.formula && (this.nbChamp = this.nbRunners - this.nbBase), this.isAuto ? this.nbCombinaison = 1 : 0 == this.nbChamp ? this.nbCombinaison = this.calculateNbUnitCombination(maxHorse) : this.nbCombinaison = this.calculateNbFieldCombination(maxHorse);
const nbType = this.type.length > 0 ? this.type.length : 1;
this.amount = amount * this.nbCombinaison * nbType;
} else this.amount = amount;
return this.amount;
},
calculateNbUnitCombination: function(maxHorse) {
return 1 == this.allOrder ? this.nbBase < maxHorse ? 0 : calculateArrangement(this.nbBase, maxHorse) : this.nbBase < maxHorse ? 0 : this.nbBase == maxHorse ? 1 : calculateCombination(this.nbBase, maxHorse);
},
calculateNbFieldCombination: function(maxHorse) {
return console.warn("[calculateNbFieldCombination] this.isOrder()=" + this.isOrder()),
this.nbChamp < maxHorse - this.nbBase ? res = 0 : !this.isOrder() || 0 != this.allOrder && null !== this.allOrder ? this.isOrder() && 1 == this.allOrder ? res = calculateCombination(this.nbChamp, maxHorse - this.nbBase) * calculateArrangement(maxHorse, maxHorse) : res = calculateCombination(this.nbChamp, maxHorse - this.nbBase) : res = calculateArrangement(this.nbChamp, maxHorse - this.nbBase),
res;
},
jsonSerialize: function() {
return this.json = {
idRace: this.raceId,
bet: this.bet,
type: this.type,
formula: this.formula,
risk: this.risk,
stake: this.stake,
unitStake: this.unitStake,
bases: this.designation.base,
associated: this.designation.champ,
allOrders: this.allOrder,
isAuto: this.isAuto,
nbCombinaison: this.nbCombinaison,
nbBase: this.nbBase,
nbChamp: this.nbChamp,
amount: this.amount,
simpleStake: BetslipSimple.stake,
position: BetslipOrder.position
}, this.json;
},
countNbHorse: function() {
manageBasket(this.nbBase + this.nbChamp);
}
};
"function" != typeof Object.create && function() {
var F = function() {};
Object.create = function(o) {
if (arguments.length > 1) throw Error("Second argument not supported");
if (null === o) throw Error("Cannot set a null [[Prototype]]");
if ("object" != typeof o) throw TypeError("Argument must be an object");
return F.prototype = o, new F();
};
}(), $(document).ready(function() {
$(".unit-bets").length > 0 && !isGiantGrid() && setTimeout(function() {
initBetSlipFromTemp();
}, 500);
});
var currentManager, coteMin = 1.1;
BetSportManager.prototype.getCurrentMode = function() {
return this.currentMode;
}, BetSportManager.prototype.setCurrentMode = function(mode) {
this.currentMode = mode;
}, BetSportManager.prototype.isLocked = function() {
return this.locked;
}, BetSportManager.prototype.setLocked = function(lock) {
this.locked = lock;
}, BetSportManager.prototype.getSimpleTicket = function() {
if (Object.keys(BetSlipSport.ticket.designation).length > 0) {
var betlist = "{";
for (var designation in BetSlipSport.ticket.designation) for (var choice in BetSlipSport.ticket.designation[designation]) betlist += '"' + BetSlipSport.ticket.designation[designation][choice].choice + '" :' + BetSlipSport.ticket.designation[designation][choice].stake + ",";
betlist = betlist.slice(0, -1) + "}";
var jsonObject = {
mode: "single",
accept: BetSlipSport.ticket.accept,
useFreeBet: BetSlipSport.ticket.useFreeBet,
bettingslip: JSON.parse(betlist)
};
}
return jsonObject;
}, BetSportManager.prototype.getCombineTicket = function() {
if (Object.keys(BetSlipSport.ticket.designation).length > 0) {
var choiceList = [];
for (var designation in BetSlipSport.ticket.designation) for (var choice in BetSlipSport.ticket.designation[designation]) choiceList.push(BetSlipSport.ticket.designation[designation][choice].choice);
var jsonObject = {
mode: "combination",
useFreeBet: BetSlipSport.ticket.useFreeBet,
totalStake: BetSlipSport.ticket.stake,
accept: BetSlipSport.ticket.accept,
bettingslip: choiceList
};
}
return jsonObject;
}, BetSportManager.prototype.getSystemTicket = function() {
if (Object.keys(BetSlipSport.ticket.designation).length > 0) {
var choiceList = [];
for (var designation in BetSlipSport.ticket.designation) for (var choice in BetSlipSport.ticket.designation[designation]) choiceList.push(BetSlipSport.ticket.designation[designation][choice].choice);
var jsonObject = {
mode: "system",
useFreeBet: BetSlipSport.ticket.useFreeBet,
totalStake: BetSlipSport.ticket.stakeSystem,
accept: BetSlipSport.ticket.accept,
bettingslip: choiceList,
combination: BetSlipSport.getRiskCode()
};
}
return jsonObject;
}, BetSportManager.prototype.trackSimple = function(ticket) {
var amount = 0, transactionId = 0;
$.each(ticket.bettingslip, function(key, value) {
amount += value;
}), transactionId = initTransaction(Date.now(), parseFloat(amount).toFixed(2)),
$.each(ticket.bettingslip, function(key, value) {
addItem(transactionId, "SIMPLE", key, "Enjeux_Sport", parseFloat(value).toFixed(2));
}), sendToAnalytics();
}, BetSportManager.prototype.trackCombination = function(ticket) {
var transactionId, amount = ticket.totalStake, combinatedKey = "";
transactionId = initTransaction(Date.now(), parseFloat(amount).toFixed(2)), combinatedKey = ticket.bettingslip.join("-"),
addItem(transactionId, "COMBINE", combinatedKey, "Enjeux_Sport", parseFloat(amount).toFixed(2)),
sendToAnalytics();
}, BetSportManager.prototype.trackSystem = function(ticket) {
var transactionId, amount = BetSlipSport.getTotalStakeSystem(), combinatedKey = "";
transactionId = initTransaction(Date.now(), parseFloat(amount).toFixed(2)), combinatedKey = ticket.bettingslip.join("-"),
addItem(transactionId, "SYSTEME", combinatedKey, "Enjeux_Sport", parseFloat(amount).toFixed(2)),
sendToAnalytics();
}, BetSportManager.prototype.trackTransaction = function() {
var ticket = {};
"single" == this.getCurrentMode() ? this.trackSimple(this.getSimpleTicket()) : "combination" == this.getCurrentMode() ? (ticket = this.getCombineTicket(),
this.trackCombination(this.getCombineTicket())) : "system" == this.getCurrentMode() && (ticket = this.getSystemTicket(),
this.trackSystem(ticket));
}, BetSportManager.prototype.callFrancePari = function(ticket, cote) {
this.setCurrentMode(ticket.mode), currentManager = this;
var am = new AjaxManager(), params = {
type: "POST",
url: Routing.generate("genybet_bet_sport"),
data: {
ticket: ticket,
cote: cote
}
};
showLoader(), am.update(params), am.flush(this.betSportCallBack, this.betSportErrorCallBack);
}, BetSportManager.prototype.betSportCallBack = function() {
refreshHeader(), confirmationPopup(), currentManager.trackTransaction(), currentManager.setLocked(!1);
}, BetSportManager.prototype.betSportErrorCallBack = function() {
currentManager.setLocked(!1);
}, BetSportManager.prototype.manageEvol = function() {
var checkLives = checkEvolLiveOdds().then(function(result) {
return !(result.length > 0) || (result.forEach(function(bet) {
warningCard(bet.uid, bet.oldOdd, bet.newOdd, null), BetSlipSport.updateChoice(bet.eventId, bet.uid, bet.choice, bet.newOdd),
updateStakeDisplays(bet.uid);
}), !1);
}, function(error) {
return warningCard(null, null, null, error.matchId), !1;
}), callsFP = checkNonLiveBets(), checkNonLives = Promise.all(callsFP).then(function(updatedBets) {
var checkBet = !0;
return updatedBets.forEach(function(bet) {
null != bet && (1 == BetSlipSport.ticket.accept ? bet.oldOdd > bet.newOdd && (warningCard(bet.uid, bet.oldOdd, bet.newOdd, null),
BetSlipSport.updateChoice(bet.eventId, bet.uid, bet.choice, bet.newOdd), updateStakeDisplays(bet.uid),
checkBet = !1) : 2 == BetSlipSport.ticket.accept && bet.oldOdd != bet.newOdd && (warningCard(bet.uid, bet.oldOdd, bet.newOdd, null),
BetSlipSport.updateChoice(bet.eventId, bet.uid, bet.choice, bet.newOdd), updateStakeDisplays(bet.uid),
checkBet = !1));
}), checkBet;
});
return Promise.all([ checkLives, checkNonLives ]).then(function(checks) {
return 1 == checks[0] && 1 == checks[1] && (removeWarnings(), !0);
}).catch(function(error) {
warningCard(error.uid, null, null, null);
});
}, $(document).ready(function() {
var betManager = new BetSportManager(), bValidCote = 1;
$(document).on("click touchstart", "#betslip-simple .validate", function() {
var eltParent = this.closest("div#betslip-simple");
if (!betManager.isLocked()) if (betManager.setLocked(!0), $(eltParent).find("span.odd-betslip").each(function(index) {
var cote = parseFloat($(this).attr("data-odds"));
bValidCote = cote < coteMin ? 0 * bValidCote : 1 * bValidCote;
}), 0 != BetSlipSport.ticket.accept) betManager.manageEvol().then(function(result) {
if (result) {
var ticket = betManager.getSimpleTicket();
betManager.callFrancePari(ticket, bValidCote);
}
}); else {
var ticket = betManager.getSimpleTicket();
betManager.callFrancePari(ticket, bValidCote);
}
}), $(document).on("click touchstart", "#betslip-combine .validate", function() {
var eltParent = this.closest("div#betslip-combine");
if (!betManager.isLocked()) if (betManager.setLocked(!0), bValidCote = 1, $(eltParent).find("span.odd-betslip").each(function(index) {
var cote = parseFloat($(this).attr("data-odds"));
bValidCote *= cote;
}), bValidCote = bValidCote < coteMin ? 0 : 1, 0 != BetSlipSport.ticket.accept) betManager.manageEvol().then(function(result) {
if (result) {
var ticket = betManager.getCombineTicket();
betManager.callFrancePari(ticket, bValidCote);
}
}); else {
var ticket = betManager.getCombineTicket();
betManager.callFrancePari(ticket, bValidCote);
}
}), $(document).on("click touchstart", "#betslip-systeme .validate", function() {
var eltParent = this.closest("div#betslip-combine");
if (!betManager.isLocked()) if (betManager.setLocked(!0), $(eltParent).find("span.odd-betslip").each(function(index) {
var cote = parseFloat($(this).attr("data-odds"));
bValidCote = cote < coteMin ? 0 * bValidCote : 1 * bValidCote;
}), 0 != BetSlipSport.ticket.accept) betManager.manageEvol().then(function(result) {
if (result) {
var ticket = betManager.getSystemTicket();
betManager.callFrancePari(ticket, bValidCote);
}
}); else {
var ticket = betManager.getSystemTicket();
betManager.callFrancePari(ticket, bValidCote);
}
});
}), $(document).ready(function() {
$(document).on("focusin", ".pwd", function() {
$(this).hasClass("error") && ($(this).removeClass("error"), $(this).parent().find("label.error").addClass("hidden"));
}), $(document).on("click", "#exclusion-temp, #cloture, #exclusion-def", function() {
var pageTitle = null, thisElmt = $(this);
switch (thisElmt.attr("id")) {
case "exclusion-temp":
pageTitle = Translator.trans("autoexclusion.title_1");
break;
case "cloture":
pageTitle = Translator.trans("autoexclusion.title_2");
break;
case "exclusion-def":
pageTitle = Translator.trans("autoexclusion.title_3");
}
$("#autoexclusion .item").each(function(e) {
thisElmt.attr("id") != $(this).attr("id") && $(this).removeClass("active");
}), $(this).hasClass("active") ? ($(this).removeClass("active"), $(".page-rename").addClass("hidden"),
$(".page-name").removeClass("hidden")) : ($(this).addClass("active"), $(".page-name").addClass("hidden"),
$(".page-rename").removeClass("hidden").html(pageTitle));
}), $(document).on("click", ".closingBtnDef .action", function() {
var parent = $(this).parents(".content");
if ("" == parent.find(".pwd").val()) parent.find(".pwd").addClass("error"), parent.find("label.error").removeClass("hidden"); else {
var content = $("#pre-confirmation-exclusion-def-popup");
showPopup("pre-confirmation-exclusion-def-popup", content.html());
}
}), $(document).on("click", ".closingBtnCloture .action", function() {
var parent = $(this).parents(".content");
if ("" == parent.find(".pwd").val()) parent.find(".pwd").addClass("error"), parent.find("label.error").removeClass("hidden"); else {
var content = $("#pre-confirmation-cloture-popup");
showPopup("pre-confirmation-cloture-popup", content.html());
}
}), $(document).on("click", ".closingBtnTemp .action", function() {
var parent = $(this).parents(".content"), duree = $("input[name=exclusionTemp]").val(), readyTosubmit = !0;
if ("date-end-free" == duree && "" == $("#date-end").val() && ($("#date-end").addClass("error"),
$("#exclusionTempDateEnd label.error").removeClass("hidden"), readyTosubmit = !1),
"" == parent.find(".pwd").val()) $("#confirm-mdp1").addClass("error"), $("#exclusionTempMdp label.error").removeClass("hidden"); else if (readyTosubmit) {
var content = $("#pre-confirmation-exclusion-temp-popup");
showPopup("pre-confirmation-exclusion-temp-popup", content.html());
}
}), $(document).on("click", "#pre-confirmation-cloture-popup .action", function() {
callClotureAjax($(".mdpCloture").val(), "cloture", ".mdpCloture");
}), $(document).on("click", "#pre-confirmation-exclusion-def-popup .action", function() {
callExclusionAjax($(".mdpExclusionDef").val(), "exclusionDef", ".mdpExclusionDef");
}), $(document).on("click", "#pre-confirmation-exclusion-temp-popup .action", function() {
callExclusionAjax($(".mdpExclusionTemp").val(), "exclusionTemp", ".mdpExclusionTemp", $("input[name=exclusionTemp]").val(), $("input[name=date-end]").val());
}), $(document).on("click", ".closeAccountBtn", function() {
1 != Cookies.get("isAppUser") && (showLoader(), window.location.href = Routing.generate("logout"));
}), $(document).on("click", ".select-box .date-end-define", function() {
$("#date-end").removeAttr("required"), document.getElementById("exclusionTempDateEnd").style.display = "none";
}), $(document).on("click", ".select-box #date-end-free", function() {
document.getElementById("exclusionTempDateEnd").style.display = "block", $("#date-end").attr("required", "required");
});
}), $(document).ready(function() {
$(document).on("click", ".horses-base .logo-delete, .horses-champ .logo-delete", function() {
var numHorse = $(this).parent().data("numhorse");
$(this).parent().parent().hasClass("horses-base") ? (Betslip.removeHorseBase(numHorse),
BetslipOrder.removePosition(numHorse), $('.checkbox-wrap .checkbox[data-numhorse="' + numHorse + '"]').removeClass("checked")) : (Betslip.removeHorseChamp(numHorse),
$('.checkbox-wrap .checkbox.champ[data-numhorse="' + numHorse + '"]').removeClass("checked")),
sortDesignation(), updateHorseTicket(), displayDesignation(), clearDaCheckbox(numHorse),
isBaseDisable(), saveBetSlipTemp(Betslip);
}), $(document).on("click", ".sel-formula-risk .sel-box", function() {
Betslip.updateRisk($(this).data("formula-risk")), "UNIT" == Betslip.formula || "COMBINED" == Betslip.formula ? replaceChampToEmpty() : (replaceEmptyToChamp(),
sliceDesignation(!1)), addEmpty(), displayDesignation(), displayAmountComplexe(),
Betslip.setCheckboxDisabled(), isBaseDisable(), saveBetSlipTemp(Betslip);
}), $("#betslip .sel-formula-key .sel-box").on("click", function() {
if (Betslip.updateFormula($(this).data("formula-key")), "UNIT" == $(this).data("formula-key")) {
replaceChampToEmpty();
var tmpBase = Betslip.designation.base.concat(Betslip.designation.champ);
Betslip.designation.base = tmpBase, Betslip.nbBase = Betslip.designation.base.length,
Betslip.designation.champ = [], Betslip.nbChamp = Betslip.designation.champ.length,
displayDesignation(), updateHorseTicket(), sliceDesignation(!0);
} else "WHEEL" == $(this).data("formula-key") && (Betslip.designation.champ = [],
Betslip.nbChamp = 0), replaceEmptyToChamp(), sliceDesignation("UNIT" == Betslip1.formula || "COMBINED" == Betslip1.formula || 0 == Betslip.designation.champ.length ? !1 : !0);
displayAmountComplexe(), Betslip.setCheckboxDisabled(), isBaseDisable(), saveBetSlipTemp(Betslip);
});
}), $(document).ready(function() {
saveHistory(), manageBackButton(), manageAppDisplay();
});
var PAYSAFECARD_MIN_COMMISSION = 0, PAYSAFECARD_TAUX_COMMISSION = .04, HipayCard = null, hipay = null, frictionlessStatuses = [ "PSP_CAPTURED", "PSP_AUTHORIZED" ], configCardHipay = {
fields: {
cardHolder: {
selector: "hipay-gb-card-holder",
helpButton: !1,
placeholder: "Prénom Nom",
defaultLastname: "",
defaultFirstname: ""
},
cardNumber: {
selector: "hipay-gb-card-number",
placeholder: "Numéro de carte",
helpButton: !1,
hideCardTypeLogo: !1
},
expiryDate: {
selector: "hipay-gb-expiration-date",
placeholder: "Expiration",
helpButton: !1
},
cvc: {
selector: "hipay-gb-cvc",
placeholder: "CVC",
helpButton: !0,
helpSelector: "hipay-gb-cvc-help"
}
},
styles: {
base: {
color: "#000000",
fontSize: "15px",
fontWeight: "100",
caretColor: "#000000",
iconColor: "#bdbdbd"
}
}
};
$(document).ready(function() {
var paymentTypeSelector = $(".payment-wrap .select-box ul.options li");
"none" !== paymentTypeSelector.data("value") && $("#validate").attr("disabled", !0).addClass("green").removeClass("green-disabled");
var arrBonus = [];
if ($(".bonus-list .bonus").each(function(index) {
var amount = $(this).data("amount"), percent = $(this).find(".bonus-percent").data("percent");
void 0 !== amount && void 0 !== percent && (arrBonus[amount] || (arrBonus[amount] = null),
arrBonus[amount] = percent);
}), $("#confirmation-depot-popup").length > 0) {
var content = $("#confirmation-depot-popup");
showPopup("#confirmation-depot-popup", content.html()), content.find("#triggerPremierDepotVirturalEvent").length > 0 && setTimeout(function() {
dataLayer.push({
event: "premierDepotVirtualEvent"
});
}, 1e3);
}
$(".bonus-list .bonus").on("click", function() {
$(this).parents().find(".amount-wrap .autofeed").trigger("change"), calculateAndShowMentions($(this).data("amount"), $(this).find(".bonus-percent").data("percent"));
}), $(".validateAmountDeposit").on("click", function() {
var amount = $('form#depot input[name="amount"]').val();
calculateAndShowMentions(amount, getPercentByAmount(amount, arrBonus));
}), paymentTypeSelector.on("click", function() {
var amount = $('form#depot input[name="amount"]').val(), percent = getPercentByAmount(amount, arrBonus), moyenPaiement = $(this).data("value");
calculateAndShowMentions(amount, percent, moyenPaiement), void 0 !== $(this).data("link") && (window.location.href = Routing.generate($(this).data("link"))),
"cb-hipay" === moyenPaiement ? buildHipayForm() : deleteHipayForm(), "none" === moyenPaiement ? $("#validate").attr("disabled", !0).addClass("green-disabled").removeClass("green") : $("#validate").attr("disabled", !1).addClass("green").removeClass("green-disabled");
}), $(".deposit-validation").on("click", function() {
var montant = $('form#depot input[name="amount"]').val(), moyenPaiment = $('form#depot input[name="payment"]').val(), limit = $(".depot-max .amount").data("deposit-limit");
if (validFormDeposit(montant, moyenPaiment, limit)) {
showLoader();
var params = {
type: "POST",
url: Routing.generate("genybet_myaccount_valid_deposit"),
data: {
amount: montant,
payment_method: moyenPaiment
},
dataType: "HTML"
}, am = new AjaxManager();
am.update(params), am.flush(function(data) {
"cb" == moyenPaiment && ($("#formPayment").html(data), addTypePayment($("#formPayment form"), moyenPaiment),
$("#formPayment form").submit()), "psc" == moyenPaiment && (document.location.href = data);
});
}
}), $(".depositKeyboard").on("click", function() {
hideError(), hideMentions();
}), $(".validTransac").on("click", function() {}), $(document).on("click", ".validTransacApp", function() {
"object" == typeof bridge && bridge.callHandler("error", null, null);
}), $(document).on("click", ".btnBackHome", function() {
1 != Cookies.get("isAppUser") && (window.location.href = "/");
}), $("#form_promo_code").blur(function() {
validatePromoCode();
}), $("#promo-code-submit").click(function() {
validatePromoCode() && $("form").submit();
});
}), $(document).ready(function() {
$(document).on("click", "#filter_valid", function() {
var filters = $("#select-box-popup").find("input:checked");
if (filters.length > 0) {
$(".bloc-filterable").hide(), $("#programme-sport .select-box input").attr("checked", !1);
var label = [];
filters.each(function() {
var filter = $(this).val();
$("div[data-filter-name='" + filter + "']").show(), $("#programme-sport .select-box input[value='" + filter + "']").attr("checked", !0),
label.push($(this).parent().text());
}), $("#programme-sport .select-box .text").text(label.join(", "));
} else $(".bloc-filterable").show(), $("#programme-sport .select-box .text").text("Tous les paris"),
$("#programme-sport .select-box input").each(function() {
$(this).removeAttr("checked");
});
hidePopup();
});
});
var Giant = {
geantRaceBetRequests: [],
miseUnitaire: 0,
idGeant: "",
formulaKey: "COMBINED",
emetteur: "CLIENT_MOBILE",
betOrigin: "GENY",
json: {},
jsonSerialize: function() {
return this.json = {
geantRaceBetRequests: this.geantRaceBetRequests,
miseUnitaire: this.miseUnitaire,
idGeant: this.idGeant,
formulaKey: this.formulaKey,
emetteur: this.emetteur,
stake: this.stake,
betOrigin: this.betOrigin
}, this.json;
},
init: function() {
this.miseUnitaire = 0, this.geantRaceBetRequests = [];
},
addBetForRace: function(betForRace) {
var findIn = !1, localRequest = this.geantRaceBetRequests;
for (objectkey in localRequest) localRequest[objectkey].idCourse == betForRace.idCourse && (localRequest[objectkey] = betForRace,
findIn = !0);
0 == findIn && localRequest.push(betForRace), this.geantRaceBetRequests = localRequest;
},
setUnitAmount: function(mise) {
this.miseUnitaire = mise;
},
getBetForRaceFromId: function(idCourse) {
var searchedRace = new BetForRace("", [], "", ""), localRequest = this.geantRaceBetRequests;
for (objectkey in localRequest) localRequest[objectkey].idCourse == idCourse && (searchedRace = localRequest[objectkey]);
return searchedRace;
},
getBetForRaceFromNum: function(nomCourse) {
var searchedRace = new BetForRace("", [], "", ""), localRequest = this.geantRaceBetRequests;
for (objectkey in localRequest) localRequest[objectkey].numCourse == nomCourse && (searchedRace = localRequest[objectkey]);
return searchedRace;
},
setReplacementForRace: function(numRace, Replacement) {
var localRequest = this.geantRaceBetRequests;
for (objectkey in localRequest) localRequest[objectkey].numCourse == numRace && (localRequest[objectkey].complement = Replacement);
this.geantRaceBetRequests = localRequest;
}
};
$(document).ready(function() {
setCurrentMeeting(Giant), initReplacementForAllRaces(), $(".checkbox-wrap .checkbox").not(".champ").on("click", function() {
if (isGiantGrid()) {
var dataSelector = returnCurrentRaceIdAndNumRace();
giantVisibility($(this)), updateRacehorseSelected($(this), dataSelector.data("idrace"), dataSelector.data("numrace")),
updateTotalAmount(), setSelectedCombination(dataSelector.data("numrace")), markRaceHasChecked(dataSelector.data("numrace"));
}
}), $(document).on("click", '#clavier[data-type="geant"] button, #clavier[data-type="geant"] .pad[data-value], .pad.correction, .stakes-wrap span.input', function() {
Giant.setUnitAmount(getAmountStack()), updateTotalAmount();
}), $(document).on("change", "#geant .select-box input", function() {
var dataSelector = returnCurrentRaceIdAndNumRace(), currentRaceNumber = $(".selector.active span").attr("data-numrace"), previousReplacementDesignation = $(".select-box input[data-numrace='" + parseInt(currentRaceNumber) + "']").next().html().trim(), previousReplacement = previousReplacementDesignation.substr(0, previousReplacementDesignation.indexOf(" ")), replacementSelector = $("#partants-list-" + dataSelector.data("numrace") + " .checkbox[data-numhorse='" + previousReplacement + "']").not(".champ");
replacementSelector.hasClass("disable") && replacementSelector.removeClass("disable");
}), $("[id^='replacement-choice-']").on("DOMSubtreeModified", function() {
var dataSelector = $(this), subDomResult = dataSelector.text().trim(), replacementHorseNum = subDomResult.substr(0, subDomResult.indexOf(" "));
Giant.setReplacementForRace(dataSelector.data("numrace"), replacementHorseNum),
setCombination(combinationCalculation()), setSelectedCombination(dataSelector.data("numrace"));
}), $(document).on("click", ".auto-bet", function() {
showLoader(), autoResetCombination(), 1 == $(this).hasClass("on") ? ($(".auto-bet").addClass("on"),
autoCombination()) : $(".auto-bet").removeClass("on"), hideLoader();
}), $(document).on("click", "#perform-giant", function(e) {
e.preventDefault(), performGiantBet(Giant);
}), closedGiant();
});
var am = new AjaxManager(), GiantBetCallBack = function(data) {
autoResetCombination(), $(".auto-bet").removeClass("on"), hideLoader(), confirmationGiantBet();
};
$(document).ready(function() {
var parser = parseURL(window.location.href), currentUrl = parser.pathname, excludedPath = [ Routing.generate("genybet_inscription"), Routing.generate("genybet_jouer") ];
if (!$.inArray(currentUrl, excludedPath)) switch (currentUrl) {
case Routing.generate("genybet_myaccount_historical"):
showButtonTop("#historique-turf"), showButtonTop("#historique-sport"), showButtonTop("#historique-mouvements");
break;
default:
showButtonTop();
}
}), $(document).ready(function() {
-1 != window.location.pathname.search("/sport") && $("#header-sport-basket").removeClass("hidden");
}), $(document).ready(function() {
function confirmCancelAction() {
var content = $("#pre-confirmation-cancel-action-popup");
showPopup("pre-confirmation-cancel-action-popup", content.html());
}
var idBetToCancel, am = new AjaxManager(), cancelCallback = function(data) {
$("#turf-card-" + idBetToCancel).hide("slow"), hideLoader(), location.reload(!0);
};
$(document).on("click", ".cancel-bet", function() {
idBetToCancel = $(this).attr("id").replace("bet-num-", ""), confirmCancelAction();
}), $(document).on("click", ".btnCancelYes", function() {
var params = {
type: "POST",
url: Routing.generate("genybet_myaccount_ajax_delete_bet", {
idBet: idBetToCancel
})
};
showLoader(), am.update(params), am.flush(cancelCallback);
});
}), $(document).ready(function() {
function checkDateField(DateSelector, mvtType) {
return $(DateSelector).addClass("date-size"), $(".from-" + mvtType).hasClass("date-size") && $(".to-" + mvtType).hasClass("date-size");
}
$(".date-mask").change(function() {
var mvtType = $(this).parent().attr("data-move"), btnSelector = "#" + mvtType + ".green.swiper-button";
10 === $(this).val().length ? checkDateField(this, mvtType) && $(btnSelector).click() : $(this).removeClass("date-size");
}), $(function() {
$.datepicker.regional.fr = {
clearText: "Effacer",
clearStatus: "",
closeText: "Fermer",
closeStatus: "Fermer sans modifier",
prevText: "Préc",
prevStatus: "Voir le mois précédent",
nextText: "Suiv",
nextStatus: "Voir le mois suivant",
currentText: "Courant",
currentStatus: "Voir le mois courant",
monthNames: [ "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre" ],
monthNamesShort: [ "Jan", "Fév", "Mar", "Avr", "Mai", "Jun", "Jul", "Aoû", "Sep", "Oct", "Nov", "Déc" ],
monthStatus: "Voir un autre mois",
yearStatus: "Voir unе autre année",
weekHeader: "Sm",
weekStatus: "",
dayNames: [ "Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi" ],
dayNamesShort: [ "Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam" ],
dayNamesMin: [ "Di", "Lu", "Ma", "Me", "Je", "Ve", "Sa" ],
dayStatus: "Utiliser DD comme premier jour de la semaine",
dateStatus: "Choisir le DD, MM d",
dateFormat: "dd/mm/yy",
firstDay: 0,
initStatus: "Choisir la date",
isRTL: !1
}, $.datepicker.setDefaults($.extend({
showButtonPanel: !0
}, $.datepicker.regional.fr)), $(".from-turf").datepicker().bind("click", function() {
$("#ui-datepicker-div").appendTo("#from-turf").addClass("importantLeft").removeClass("importantRight");
}), $(".to-turf").datepicker().bind("click", function() {
$("#ui-datepicker-div").appendTo("#to-turf").addClass("importantRight").removeClass("importantLeft");
}), $(".from-sport").datepicker().bind("click", function() {
$("#ui-datepicker-div").appendTo("#from-sport").addClass("importantLeft").removeClass("importantRight");
}), $(".to-sport").datepicker().bind("click", function() {
$("#ui-datepicker-div").appendTo("#to-sport").addClass("importantRight").removeClass("importantLeft");
}), $(".from-mouvements").datepicker().bind("click", function() {
$("#ui-datepicker-div").appendTo("#from-mouvements").addClass("importantLeft").removeClass("importantRight");
}), $(".to-mouvements").datepicker().bind("click", function() {
$("#ui-datepicker-div").appendTo("#to-mouvements").addClass("importantRight").removeClass("importantLeft");
});
});
}), $(document).ready(function() {
function initFilter(btnType, dateTo, dateFrom) {
dateTo.removeClass("date-size").val(""), dateFrom.removeClass("date-size").val(""),
$("#" + btnType + ".green.swiper-button").fadeOut(200);
}
function scrollToCenter() {
scrollTo(0, ($(document).height - $(window).height()) / 2);
}
function reformatDateFranceParis(date) {
var formatedDate = date.slice(0, 10).split("-").join("/"), timeHhMn = date.slice(10, 16).replace(":", "H"), arrayDate = formatedDate.split("/");
return arrayDate[2] + "/" + arrayDate[1] + "/" + arrayDate[0] + " à " + timeHhMn;
}
function extractChoice(bet, selectedChoiceId) {
var choiceTable = bet.choices, choice = null;
return $.each(choiceTable, function(key, currentChoice) {
if (currentChoice.choice_id == selectedChoiceId) return choice = currentChoice,
!1;
}), choice;
}
function getSubBetStatus(selectedChoiceId, winningChoice) {
var subBetStatus = !1;
return Array.isArray(selectedChoiceId) ? $.each(selectedChoiceId, function(key, currentChoice) {
if (currentChoice == winningChoice) return subBetStatus = !0, !1;
}) : subBetStatus = selectedChoiceId == winningChoice, subBetStatus;
}
function htmlCheckBetContent(myBoolValue, globalTicketState) {
return "WINNER" == globalTicketState || "LOSER" == globalTicketState ? myBoolValue ? ' ' : ' ' : ' ';
}
function getSubBetList(sportBetList, globalTicketState) {
var htmlContent = " ";
return $.each(sportBetList, function(key, bet) {
if (void 0 !== bet.bet) {
var choice = extractChoice(bet.bet, bet.selected_choice_id), actorHtml = null == choice ? "" : choice.choice_actor, actorOdds = null == choice ? "" : choice.choice_odds.toFixed(2);
htmlContent = htmlContent + ' ' + bet.event_label + '
' + bet.bet.question_label + '
' + actorHtml + ' (' + actorOdds + ") " + htmlCheckBetContent(getSubBetStatus(bet.selected_choice_id, bet.winning_choice), globalTicketState) + '
' + reformatDateFranceParis(bet.event_date) + "
";
}
}), htmlContent;
}
function MovementTemplate(mvt) {
var htmlContent;
return htmlContent = ' ' + mvt.libelle.toLowerCase().split("_").join(" ").capitalize() + '
' + nullSafe(mvt.typePariLibelle) + '
' + mvt.date.date.ddMmYyyy() + "
",
htmlContent = 1 == mvt.credit ? htmlContent + '
+ ' + mvt.montant + " €
" : htmlContent + '
- ' + mvt.montant + " €
",
htmlContent += "
";
}
function sportTemplate(mvt) {
var betResult = mvt.globalStatus, typeGain = "", choice = extractChoice(mvt.bet, mvt.selectedChoiceId), hmlMultiOdd = " ", htmlCheckBet = htmlCheckBetContent(getSubBetStatus(mvt.selectedChoiceId, mvt.winningChoice), mvt.globalStatus);
"PROGRESS" == betResult && (betResult = "", typeGain = "Potentiel");
var typePari = null != mvt.translatedBetType ? mvt.translatedBetType + " " + mvt.combinaisonSystem : " ";
"Combiné" === typePari.trim() && (hmlMultiOdd = '' + mvt.multiOdd + " ");
var actorHtml = null == choice ? "" : choice.choice_actor, actorOdds = null == choice ? "" : choice.choice_odds.toFixed(2), freeBet = mvt.bet.freebet ? " gratuit" : "";
return 'Mon pari' + freeBet + '' + typePari + '
' + nullSafe(mvt.bet.question_label) + '
' + actorHtml + ' (' + actorOdds + ") " + htmlCheckBet + '
' + reformatDateFranceParis(mvt.eventDate) + "
" + getSubBetList(mvt.sportBetList, mvt.globalStatus) + '
";
}
function turfTemplate(mvt) {
var reunion, dateDebutCourse, bet = mvt.bet, betResult = "";
if ("REQUEST_HR_CANCEL_OK" != bet.betState) {
betResult = null == bet.arrivee ? "" : 1 == mvt.gain ? "WINNER" : "LOSER", reunion = null != bet.reunion ? bet.reunion : "",
dateDebutCourse = "", 0 != mvt.dateDebutEvent && null != mvt.dateDebutEvent && (dateDebutCourse = mvt.dateDebutEvent.date.ddMmYyyy(),
"GEANT" != bet.typePari && (dateDebutCourse += " à " + mvt.dateDebutEvent.date.hhMm()));
var basketContent = 1 == mvt.basketStillVisible && "" == betResult ? '
' : "", betSupport = "R" + bet.numeroReunion;
"GEANT" != bet.typePari && (betSupport += "C" + bet.numeroCourse);
var htmlContent = '' + betSupport + ' | ' + reunion + " " + basketContent + '
' + dateDebutCourse + '
Mon pari ' + Translator.trans("bet_type." + bet.typePari) + ", " + bet.formule + '
' + bet.combinaison + "
";
return null != bet.arrivee ? htmlContent = htmlContent + '
Arrivée ' + bet.arrivee + " " : htmlContent += "
",
htmlContent += ' ";
}
return "";
}
function templateToRender(mvtType, movementObject) {
var card = "";
switch (mvtType) {
case "mouvements":
card = MovementTemplate(movementObject.movement);
break;
case "turf":
card = turfTemplate(movementObject.movement);
break;
case "sport":
card = sportTemplate(movementObject.movement);
break;
default:
card = null;
}
return card;
}
function addPaginationContainer(htmlcontent, mvtType, nextCellNumber, mvt) {
var bet = mvt.bet, visibility = "Grid" != mvt.betType ? "" : "hidden", nextable = 1 == mvt.next ? " nextable" : "";
return "REQUEST_HR_CANCEL_OK" != bet.betState ? '" : "";
}
function deleteReloadedValue(betRef) {
$("#bet-ref-" + betRef).parent().parent().parent().remove();
}
function contentInjector(mvtType, dataList, empty, LastCellNumber) {
var nodeToInsert = $("#board-" + mvtType);
1 == empty && nodeToInsert.empty(), 0 == LastCellNumber && (LastCellNumber = 0),
void 0 !== dataList && $.each(dataList, function(index, value) {
nextCellNumber = parseInt(LastCellNumber) + parseInt(index) + 1, "sport" == mvtType && deleteReloadedValue(value.movement.betReference),
nodeToInsert.append(addPaginationContainer(templateToRender(mvtType, value), mvtType, nextCellNumber, value.movement));
});
}
function formatage(element, index, valeur) {
Number.isInteger(element.movement.montant) || (element.movement.montant = (Math.round(100 * element.movement.montant) / 100).toFixed(2)),
Number.isInteger(element.movement.montantGain) || (element.movement.montantGain = (Math.round(100 * element.movement.montantGain) / 100).toFixed(2)),
valeur[index] = element;
}
function nullSafe(field) {
return null != field && "undefined" != field ? field : " ";
}
function endOfPanelReached(win) {
return win.scrollTop() + win.innerHeight() >= win[0].scrollHeight - 100;
}
function getLastCellId(mvtType) {
return $("div[id^='cell-" + mvtType + "']").last().attr("id").split("-")[2];
}
function hasNext(mvtType) {
return $("div[id^='cell-" + mvtType + "']").last().hasClass("nextable");
}
function getInfiniteScrollParams(currentPanelToSearchIn, mvtType) {
var lastCellId = $("div[id^='cell-" + mvtType + "']").last().attr("id"), lastId = lastCellId.split("-")[2], dateFrom = $(".from-" + mvtType), dateTo = $(".to-" + mvtType), startingValue = null, endingValue = null;
return 10 === dateFrom.val().length && 10 === dateTo.val().length && (startingValue = dateFrom.val().split("/").join("-"),
endingValue = dateTo.val().split("/").join("-")), {
startPagination: parseInt(lastId) + 1,
endPagination: 40,
mvtType: mvtType,
desc: "true",
startDate: startingValue,
endDate: endingValue
};
}
String.prototype.capitalize = function() {
return this.charAt(0).toUpperCase() + this.slice(1);
}, String.prototype.ddMmYyyy = function() {
var formatedDate = this.slice(0, 10).split("-").join("/"), arrayDate = formatedDate.split("/");
return arrayDate[2] + "/" + arrayDate[1] + "/" + arrayDate[0];
}, String.prototype.hhMm = function() {
return this.slice(11, 16);
}, $(".green.swiper-button").click(function() {
var btnType = $(this).attr("id"), dateFrom = $(".from-" + btnType), dateTo = $(".to-" + btnType);
if (10 === dateFrom.val().length && 10 === dateTo.val().length) {
var startingValue = dateFrom.val().split("/").join("-"), endingValue = dateTo.val().split("/").join("-");
$.ajax({
type: "get",
url: Routing.generate("genybet_myaccount_ajax_move_date", {
mvtType: btnType,
startDate: startingValue,
endDate: endingValue
}),
beforeSend: function() {
showLoader();
},
success: function(data) {
hideLoader(), contentInjector(data.type, data.content.historical, !0, !1);
},
statusCode: {
404: function() {
hideLoader();
},
500: function() {
hideLoader();
}
}
});
} else initFilter(btnType, dateTo, dateFrom);
});
var am = new AjaxManager(), infiniteScrollCallBack = function(data) {
void 0 !== data.content.historical && (data.content.historical.forEach(formatage),
contentInjector(data.type, data.content.historical, !1, getLastCellId(data.type))),
hideLoader(), scrollToCenter();
const queryString = window.location.search, urlParams = new URLSearchParams(queryString), platform = urlParams.get("platform");
"CLIENT_ANDROID" != platform && "CLIENT_IOS" != platform || sendRefreshedToken();
};
$(".scrolling-panel").on("scroll", function() {
if (endOfPanelReached($(this))) {
var selected = $(".tab.selected").children().attr("data-href"), selectedHasArray = selected.split("-"), currentPannel = $("board-" + selectedHasArray[1]);
if (1 == hasNext(selectedHasArray[1])) {
var scrollParams = getInfiniteScrollParams(currentPannel, selectedHasArray[1]), params = {
type: "POST",
url: Routing.generate("genybet_myaccount_ajax_infinite_scroll_bet", {
startPagination: scrollParams.startPagination,
endPagination: scrollParams.endPagination,
mvtType: scrollParams.mvtType,
desc: scrollParams.desc,
startDate: scrollParams.startDate,
endDate: scrollParams.endDate
})
};
showLoader(), am.update(params), am.flush(infiniteScrollCallBack);
}
}
});
}), function($, window, undefined) {
function loadNextStart(scroller) {
$.ajax({
type: "get",
url: Routing.generate("genybet_ajax_home_turf_next_start", {
page: scroller.page + 1
}),
beforeSend: function() {
$(".next-races").append('
'), showLoader(".card.no-bg.no-shadow");
},
success: function(data) {
if ($(".card.no-bg.no-shadow").fadeOut(200, function() {
this.remove();
}), data.length > 0) {
var nextStarts = removeTopDoublon(data);
$(".next-races").append(nextStarts), scroller.pageUp(), scroller.unlock();
}
},
statusCode: {
404: function() {
hideLoader();
},
500: function() {
hideLoader();
}
}
});
}
function removeTopDoublon(data) {
for (var top5 = $(".next-races .card")[0], indTop5 = -1, i = 0; i < data.length; i++) {
var card = data[i];
$(card).data("race") == $(top5).data("race") && (indTop5 = i);
}
return -1 != indTop5 && data.splice(indTop5), data;
}
var InfiniteScroll = function() {
this.locked = !1, this.page = 1, this.initialize = function() {
this.setupEvents();
}, this.setupEvents = function() {
$(window).on("scroll", this.handleScroll.bind(this));
}, this.handleScroll = function() {
var scrollTop = $(document).scrollTop(), windowHeight = $(window).height();
scrollTop / ($(document).height() - windowHeight) > .7 && !this.isLocked() && (this.lock(),
this.manageScroll());
}, this.lock = function() {
this.locked = !0;
}, this.unlock = function() {
this.locked = !1;
}, this.isLocked = function() {
return this.locked;
}, this.pageUp = function() {
this.page = this.page + 1;
}, this.manageScroll = function() {
loadNextStart(this);
}, this.initialize();
};
$(document).ready(function() {
parseURL(window.location.href).pathname == Routing.generate("genybet_home_turf") && new InfiniteScroll();
});
}(jQuery, window), $(document).ready(function() {
var ficheCheval = $("#fiche-cheval");
if (ficheCheval) {
var runnerNumber = $(ficheCheval).data("selected"), arHorseId = (new Swiper("#fiche-cheval .swiper-container", {
observe: !0,
initialSlide: runnerNumber - 1,
loop: !0
}), []);
ficheCheval.find(".content.horse-infos").each(function() {
arHorseId.push($(this).data("horse-id"));
});
}
$("#fiche-cheval .btn-horse-history").on("click", function() {
var horseId = $(this).data("horse-id");
$(".fiche-cheval .swiper-slide-active").find(".content.race-horse-history").length > 0 ? showRaceHistory() : loadHorseHistory(horseId);
}), $(document).on("click", "#fiche-cheval .swiper-slide-active .race-detailed-link", function() {
var raceId = $(this).data("race-id"), horseId = $(".fiche-cheval .swiper-slide-active .horse-infos").data("horse-id"), activeSlide = $(".fiche-cheval .swiper-slide-active");
activeSlide.find(".content.result-detailed").length > 0 && activeSlide.find("#performances-courses").remove(),
loadRaceDetails(raceId, horseId, arHorseId);
}), $(".backBtn.horsecard").on("click", function(event) {
$(".fiche-cheval .swiper-slide-active").find(".horse-infos").hasClass("active") || (stepBack(),
event.preventDefault());
}), $(document).on("click", ".fiche-cheval .swiper-slide-active .sortable .table .head .cell", function() {
var head = $(".fiche-cheval .swiper-slide-active .race-horse-history .perf-table .table .head .cell"), perfs = $(".fiche-cheval .swiper-slide-active .race-horse-history .perf-table .body"), rows = perfs.find(".row"), colToSort = $(".fiche-cheval .swiper-slide-active .race-horse-history .perf-table .table .head .cell").index($(this)), perfTable = new SortableArray(rows);
$(this).hasClass("active") ? $(this).hasClass("desc") ? (perfs.append(perfTable.sortAsc(colToSort)),
$(this).removeClass("desc").addClass("asc")) : (perfs.append(perfTable.sortDesc(colToSort)),
$(this).removeClass("asc").addClass("desc")) : (perfs.append(perfTable.sortAsc(colToSort)),
head.removeClass("active desc asc"), $(this).addClass("active").addClass("asc"));
});
}), $(document).ready(function() {
$("#account-status-alert").length > 0 && NotifManager.getInstance("#account-status-alert").show(),
$(".logout").on("click", function() {
NotifManager.deleteCookies();
});
});
var NotifManager = function() {
function createInstance(selector) {
return new Notif(selector);
}
var instance;
return {
getInstance: function(selector) {
return instance || (instance = createInstance(selector)), instance;
},
deleteCookies: function() {
void 0 !== instance && instance.deleteCookie();
}
};
}();
$(document).ready(function() {
if ($(document).on("click", "#btnLogin", function() {
$("#sess_id").length > 0 && Cookies.set("PHPSESSID", $("#sess_id").val());
}), $(document).on("click", ".callbackApp", function() {
"object" == typeof bridge && bridge.callHandler("success", null, null);
}), $("#header .user-controls .amount").length > 0) {
$(".connected").show(), $(".not-connected").hide();
var newSolde = $("#headerinfoss .amount").attr("data-solde");
if (void 0 !== newSolde) {
var formattedSolde = parseFloat(newSolde.replace(".", "").replace(",", "."));
parseInt(formattedSolde) < 5 && NotifManager.getInstance("#amount-alert").show();
}
} else $(".connected").hide(), $(".not-connected").show();
}), $.extend($.validator.messages, {
required: "Ce champ est obligatoire.",
remote: "Veuillez corriger ce champ.",
email: "Veuillez fournir une adresse électronique valide.",
url: "Veuillez fournir une adresse URL valide.",
date: "Veuillez fournir une date valide.",
dateISO: "Veuillez fournir une date valide (ISO).",
number: "Veuillez fournir un numéro valide.",
digits: "Veuillez fournir seulement des chiffres.",
creditcard: "Veuillez fournir un numéro de carte de crédit valide.",
equalTo: "Veuillez fournir encore la même valeur.",
extension: "Veuillez fournir une valeur avec une extension valide.",
maxlength: $.validator.format("Veuillez fournir au plus {0} caractères."),
minlength: $.validator.format("Veuillez fournir au moins {0} caractères."),
rangelength: $.validator.format("Veuillez fournir une valeur qui contient entre {0} et {1} caractères."),
range: $.validator.format("Veuillez fournir une valeur entre {0} et {1}."),
max: $.validator.format("Veuillez fournir une valeur inférieure ou égale à {0}."),
min: $.validator.format("Veuillez fournir une valeur supérieure ou égale à {0}."),
maxWords: $.validator.format("Veuillez fournir au plus {0} mots."),
minWords: $.validator.format("Veuillez fournir au moins {0} mots."),
rangeWords: $.validator.format("Veuillez fournir entre {0} et {1} mots."),
letterswithbasicpunc: "Veuillez fournir seulement des lettres et des signes de ponctuation.",
alphanumeric: "Veuillez fournir seulement des lettres, nombres, espaces et soulignages.",
lettersonly: "Veuillez fournir seulement des lettres.",
nowhitespace: "Veuillez ne pas inscrire d'espaces blancs.",
ziprange: "Veuillez fournir un code postal entre 902xx-xxxx et 905-xx-xxxx.",
integer: "Veuillez fournir un nombre non décimal qui est positif ou négatif.",
vinUS: "Veuillez fournir un numéro d'identification du véhicule (VIN).",
dateITA: "Veuillez fournir une date valide.",
time: "Veuillez fournir une heure valide entre 00:00 et 23:59.",
phoneUS: "Veuillez fournir un numéro de téléphone valide.",
phoneUK: "Veuillez fournir un numéro de téléphone valide.",
mobileUK: "Veuillez fournir un numéro de téléphone mobile valide.",
strippedminlength: $.validator.format("Veuillez fournir au moins {0} caractères."),
email2: "Veuillez fournir une adresse électronique valide.",
url2: "Veuillez fournir une adresse URL valide.",
creditcardtypes: "Veuillez fournir un numéro de carte de crédit valide.",
ipv4: "Veuillez fournir une adresse IP v4 valide.",
ipv6: "Veuillez fournir une adresse IP v6 valide.",
require_from_group: "Veuillez fournir au moins {0} de ces champs.",
nifES: "Veuillez fournir un numéro NIF valide.",
nieES: "Veuillez fournir un numéro NIE valide.",
cifES: "Veuillez fournir un numéro CIF valide.",
postalCodeCA: "Veuillez fournir un code postal valide."
}), $(document).ready(function() {
$(".btn_participer").on("click", function() {
showLoader();
var params = {
type: "POST",
url: Routing.generate("genybet_ajax_operation_event_participer", {
eventId: $("#eventId").val(),
eventUrl: $("#eventUrl").val()
}),
data: {
amount: "montant",
payment_method: "payment"
},
dataType: "HTML"
}, am = new AjaxManager();
am.update(params), am.flush(operationEventCallback);
});
var operationEventCallback = function(data) {
hideLoader(), window.location = Routing.generate("genybet_operation_event2", {
eventId: $("#eventUrl").val()
});
};
$("#scrollToSection3").click(function() {
$("html, body").animate({
scrollTop: $("#section3").offset().top - 100
}, 1e3);
});
}), BetslipOrder = Object.create(Betslip), BetslipOrder.init = function() {
BetslipOrder.position = [], saveOrderStack(BetslipOrder);
}, BetslipOrder.initPosition = function(numHorse, position) {
BetslipOrder.position[position] || (BetslipOrder.position[position] = null), BetslipOrder.position[position] = numHorse,
saveOrderStack(BetslipOrder);
}, BetslipOrder.setPosition = function(numHorse, position) {
BetslipOrder.position[position] = numHorse, saveOrderStack(BetslipOrder);
}, BetslipOrder.getPosition = function(numHorse) {
var res = null;
return BetslipOrder.position.forEach(function(value, key) {
value == numHorse && (res = key);
}), saveOrderStack(BetslipOrder), res;
}, BetslipOrder.removePosition = function(numHorse) {
BetslipOrder.position.forEach(function(value, key) {
value == numHorse && delete BetslipOrder.position[key];
}), saveOrderStack(BetslipOrder);
}, BetslipOrder.clean = function() {
BetslipOrder.position.forEach(function(numhorse, position) {
-1 == BetslipOrder.designation.base.indexOf(numhorse) && (BetslipOrder.position[position] = null);
}), saveOrderStack(BetslipOrder);
}, BetslipOrder.showDesignation = function() {
var returnDesignation = baseDesignation = champDesignation = "", separateur = "WHEEL" == Betslip.formula || "PART_WHEEL" == Betslip.formula ? " X " : " ? ";
if (Betslip.nbBase > 0 || Betslip.nbChamp > 0) {
var max = "UNIT" == Betslip.formula ? Betslip.nbBase : Betslip.getNbMaxHorse();
for (i = 1; i <= max; i++) {
var elmt = null;
BetslipOrder.position.forEach(function(numhorse, position) {
position == i && position <= Betslip.nbBase && (elmt = numhorse);
}), baseDesignation += ("" == baseDesignation ? "" : " - ") + (null == elmt ? separateur : elmt);
}
if (Betslip.isAuto) {
baseDesignation = "";
var baseMissing = Betslip.getNbMaxHorse();
if (baseMissing > 0 && "EMPTY" != Betslip.bet) for (i = 0; i < baseMissing; i++) baseDesignation += "" == baseDesignation ? " " + separateur + " " : " - " + separateur;
}
switch (Betslip.nbChamp = Betslip.designation.champ.length, Betslip.formula) {
case "PART_WHEEL":
champDesignation = Betslip.nbChamp > 0 ? Betslip.designation.champ.join(" - ") : " " + separateur + " ",
returnDesignation = Betslip.isAuto ? baseDesignation : baseDesignation + " / " + champDesignation;
break;
case "WHEEL":
champDesignation = Betslip.nbChamp > 0 ? Betslip.designation.champ.join(" - ") : " " + separateur + " ",
returnDesignation = Betslip.isAuto ? baseDesignation : baseDesignation + " / Champ total",
BetslipOrder.nbChamp = BetslipOrder.nbRunners - BetslipOrder.nbBase;
break;
default:
returnDesignation = baseDesignation;
}
}
return saveOrderStack(BetslipOrder), returnDesignation;
}, $(document).ready(function() {
null == readStackOrder() && BetslipOrder.init(), $(document).on("click", '.sel-bet-type .sel-box[data-bet-type="ORDRE"], .sel-bet-type .sel-box[data-bet-type="ROYAL5"]', function() {
if (console.warn("[OnClick] ORDRE : Betslip.bet=" + Betslip.bet), Betslip.resetType(),
Betslip.resetBox(), 0 == $('.sel-formula-key .sel-box[data-bet-type="ALL_ORDERS"]').length) addBtnAllOrder(),
Betslip.setType($(this).data("bet-type")), console.warn("[ordre.js] addBtnAllOrder => Betslip.type=" + Betslip.type),
Betslip.designation.base = Betslip.designationHistory.slice(), orderOnHistory(); else {
removeBtnAllOrder(), sortDesignation();
try {
"COUPLE" === Betslip.bet ? (console.warn("[OnClick] ORDRE : COUPLE auto reselect button GAGNANT"),
$(".sel-bet-type .sel-box[data-bet-type=GAGNANT]").click()) : (console.warn("[OnClick] ORDRE : auto reselect button " + Betslip.bet),
$(".sel-bet-type .sel-box[data-bet-type=" + Betslip.bet + "]").click());
} catch (e) {
console.error(e);
}
}
updatePositionCheckboxes(), displayAmountComplexe(), displayDesignation(), updateHorseTicket(),
"UNIT" != Betslip.formula && sliceDesignation(!1), isBaseDisable(), saveBetSlipTemp(Betslip),
saveOrderStack(BetslipOrder);
}), $(document).on("click", '.sel-bet-type .sel-box[data-bet-type!="ORDRE"]', function() {
console.warn("[OnClick] NOT ORDRE");
var numSelected = $("#gagnant-sel-box.selected").length + $("#place-sel-box.selected").length + $("#ordre-sel-box.selected").length;
console.warn("[OnClick] NOT ORDRE => numSelected = " + numSelected), $(this).hasClass("selected") && 1 == numSelected || (Betslip.setType($(this).data("bet-type")),
console.warn("[OnClick] NOT ORDRE => Betslip.type=" + Betslip.type), removeBtnAllOrder(),
updatePositionCheckboxes(), displayAmountComplexe(), Betslip.setCheckboxDisabled(),
isBaseDisable(), saveBetSlipTemp(Betslip), saveOrderStack(BetslipOrder));
}), $(document).on("click", '.sel-formula-key .sel-box[data-bet-type="ALL_ORDERS"]', function() {
Betslip.setType($(this).data("bet-type")), console.warn("[OnClick] ALL_ORDERS => Betslip.type=" + Betslip.type),
displayAmountComplexe(), saveBetSlipTemp(Betslip), saveOrderStack(BetslipOrder);
});
}), $(document).ready(function() {
var hash = window.location.hash.substring(1);
"" != hash && $("#" + hash).find(".content").show();
var am = new AjaxManager(), limitCallback = function(data) {
for (var content = $("#confirmation-limits-popup"), currentTime = Date.now(), text = "", i = 0; i < data.data.length; i++) {
if (data.data[i].date > currentTime) {
var type = data.data[i].sousType ? data.data[i].type.toLowerCase() + " " + data.data[i].sousType.toLowerCase() : data.data[i].type.toLowerCase();
text = " La limite " + Translator.trans(type.replace(" ", "-") + ".label") + " sera effective le " + dateFromTimestamp(data.data[i].date) + ".";
}
refreshLimitsData(data.data[i]);
}
hideLoader(), content.find(".limitContent").html(text), $("#form-limits").find(".select-box .text").removeClass("dirty"),
$(".item-list .item").removeClass("edit disable"), showPopup("confirmation-limits-popup", content.html());
};
$(document).on("click", "#mon-compte button.validate", function() {
if (validateLimitsForm()) {
var form = $(this).parent().parent(), route = form.data("route"), data = {};
$(form).find("input.error").removeClass("error"), $(form).find("input.dirty").each(function() {
data[$(this)[0].name] = $(this)[0].value;
});
var params = {
type: "POST",
url: Routing.generate(route),
data: data
};
$(this).parent().slideUp(200), showLoader(), am.update(params), am.flush(limitCallback);
}
}), $(document).on("click", "#mon-compte button.cancel", function() {
var form = $(this).parent().parent();
$(form).find("input.format-number").each(function() {
$(this).val($(this).data("current")), $(this).removeClass("dirty"), removeErrorLimit(this);
});
}), $(document).on("keyup", "#mon-compte #form-limits input", function() {
limitsOK = !0, $("#mon-compte #form-limits input").each(function() {
var value = number_format($(this).val(), 0, "", "");
!isNaN(value) && value >= 50 && value <= 1e5 ? removeErrorLimit(this) : (isNaN(value) && (limitsOK = !1,
addErrorLimit(this, "Doit être numérique")), (value < 50 || value > 1e5) && (limitsOK = !1,
addErrorLimit(this, "La valeur doit être comprise entre 50 € et 100 000 €")));
}), 0 == limitsOK ? $(".action").addClass("disable") : $(".action").removeClass("disable");
});
}), $(document).ready(function() {
var userAgent = navigator.userAgent, parser = parseURL(window.location.href), search = parser.search, currentUrl = parser.pathname;
if (-1 == search.indexOf("token=") && 1 != Cookies.get("isAppUser") && !currentUrl.match(Routing.generate("genybet_android_install")) && -1 !== userAgent.indexOf("Android") && userAgent[userAgent.indexOf("Android") + 8] >= 4) {
var cookieContent = Cookies.get("redirectionpopup"), now = new Date().getTime();
"" !== cookieContent && void 0 !== cookieContent ? (cookieContent = JSON.parse(cookieContent),
cookieContent.count < 3 && now - cookieContent.lastDisplayed >= 1728e5 && (showAppBanner(),
cookieContent.count += 1, cookieContent.lastDisplayed = now, Cookies.set("redirectionpopup", JSON.stringify(cookieContent))),
cookieContent.week !== getWeekNumber() && (cookieContent = {
count: 1,
lastDisplayed: now,
week: getWeekNumber()
}, Cookies.set("redirectionpopup", JSON.stringify(cookieContent)), showAppBanner())) : (cookieContent = {
count: 1,
lastDisplayed: now,
week: getWeekNumber()
}, Cookies.set("redirectionpopup", JSON.stringify(cookieContent)), showAppBanner());
}
}), Prono.prototype.jsonSerialize = function() {
return this.json = {
idRace: this.raceId,
bet: this.bet,
formula: this.formula,
unitStake: this.stake,
bases: this.bases
}, this.json;
}, $(document).ready(function() {
$("#mot-de-passe form").validate({
errorPlacement: function(error, element) {
element.before(error);
},
rules: {
"forgotten_form[birthday]": {
dateFR: !0
}
}
});
$("#confirmation-psw-popup").length > 0 && showPopup("confirmation-psw-popup", $("#confirmation-psw-popup").html()),
jQuery.validator.addMethod("passwordComplexity", function(value, element) {
var safe = !1;
return safe = refreshPasswordStrength(value), this.optional(element) || 1 == safe;
}, "Le mot de passe doit associer au moins deux des caractères suivants : majuscule, minuscule, chiffre et symbole. Il doit être compris entre 7 et 16 caractères");
$("#reset-psw-form").validate({
errorPlacement: function(error, element) {
element.before(error);
},
rules: {
"reset_password_form[password]": {
passwordComplexity: !0
}
}
});
$(document).on("keyup", "#reset-psw-form #reset_password_form_password", function() {
refreshPasswordStrength($(this).val());
});
}), $(document).ready(function() {
$(document).on("click", "#btnSign-up", function() {
event.preventDefault(), "sport" === checkSportPage(window.location.href) ? location.href = window.new_subscription_url + "?u=sport" : window.location.href = window.new_subscription_url;
});
}), BetslipSimple = Object.create(Betslip), BetslipSimple.init = function() {
BetslipSimple.stake = {}, saveStackSimple(BetslipSimple);
}, BetslipSimple.feedstack = function(tempBetsimpleStake) {
BetslipSimple.stake = tempBetsimpleStake, saveStackSimple(BetslipSimple);
}, BetslipSimple.initStake = function(numHorse) {
BetslipSimple.stake[numHorse] || (BetslipSimple.stake[numHorse] = {}), BetslipSimple.stake[numHorse].gagnant || (BetslipSimple.stake[numHorse].gagnant = ""),
BetslipSimple.stake[numHorse].place || (BetslipSimple.stake[numHorse].place = ""),
saveStackSimple(BetslipSimple);
}, BetslipSimple.setStake = function(numHorse, type, mise) {
BetslipSimple.stake[numHorse][type] = mise, saveStackSimple(BetslipSimple);
}, BetslipSimple.resetStake = function(numHorse) {
delete BetslipSimple.stake[numHorse], saveStackSimple(BetslipSimple);
}, $(document).ready(function() {
null == readStackSimple() && BetslipSimple.init(), $(document).on("click", ".bets-horse .logo-delete", function() {
var numHorse = $(this).data("numhorse");
$(this).parent().remove(), BetslipSimple.removeHorseBase(numHorse), BetslipSimple.resetStake(numHorse),
sortDesignation(), clearDaCheckbox(numHorse), getStakeSimple(), saveBetSlipTemp(Betslip),
saveStackSimple(BetslipSimple);
}), $(".simple-only .amount-wrap button").on("click", function() {
isValidFormSimple();
}), $("#betslip").on("click", ".horse:not(.empty) .label", function() {
$(this).toggleClass("selected"), getStakeSimple(), $(this).hasClass("selected") || (removeSimpleError($(this).parent()),
$(this).parent().find("input").val(""));
});
}), $(document).ready(function() {
var idList = [], divMatches = $("#paris-direct").find(".card");
if (addLoaderBettingWrap(), divMatches.length > 0) {
$(divMatches).each(function() {
idList.push($(this).attr("id"));
});
var source = new EventSource(window.france_paris_ws_direct + "?id=" + idList.join("|") + "&mode=v2&partner=352");
source.addEventListener("match", function(event) {
refreshMatchDatas(JSON.parse(event.data));
}), source.addEventListener("odds", function(event) {
var data = JSON.parse(event.data), match = document.getElementById(data.match_id), discipline = $(match).data("disc");
refreshOdds(match, getWinnerOdd(data.odds, discipline), discipline, data.match_id);
});
}
});
var TYPE_BET_LABEL = {
1: "TYPE_PARI_1_N_2",
2: "TYPE_PARI_1_2",
3: "TYPE_PARI_HANDICAP_1_N_2",
4: "TYPE_PARI_HANDICAP_1_2",
5: "TYPE_PARI_SCORE_EXACT",
6: "TYPE_PARI_SCORE_EXACT_MI_TEMPS",
7: "TYPE_PARI_HT_FT_1_N_2",
8: "TYPE_PARI_HT_FT_1_2",
9: "TYPE_PARI_OVER_UNDER",
10: "TYPE_PARI_DOUBLE_CHANCE",
11: "TYPE_PARI_PREMIER_EQUIPE_A_MARQUER",
12: "TYPE_PARI_QUI_SE_QUALIFIE",
13: "TYPE_PARI_VAINQUEUR_FINAL",
14: "TYPE_PARI_HEAD_TO_HEAD",
15: "TYPE_PARI_OUI_NON",
16: "TYPE_PARI_PAIR_IMPAIR",
17: "TYPE_PARI_MT_AVEC_LE_PLUS_DE",
18: "TYPE_PARI_VAINQUEUR_MT",
19: "TYPE_PARI_VAINQUEUR_PREMIER_SET",
20: "TYPE_PARI_NOMBRE_SET",
21: "TYPE_PARI_PROCHAIN_BUT",
22: "TYPE_PARI_1_N_2_AUTOMATIQUE",
23: "TYPE_PARI_1_2_AUTOMATIQUE",
24: "TYPE_PARI_LES_2_EQUIPE_MARQUE",
25: "TYPE_PARI_EQUIPE_1_MARQUE",
26: "TYPE_PARI_EQUIPE_2_MARQUE",
27: "TYPE_PARI_NOMBRE_BUTS_EQUIPE_1",
28: "TYPE_PARI_NOMBRE_BUTS_EQUIPE_2",
29: "TYPE_PARI_NOMBRE_BUTS_TOTAL",
30: "TYPE_PARI_EQUIPE_1_GAGNE_SANS_PRENDRE_DE_BUT",
31: "TYPE_PARI_EQUIPE_2_GAGNE_SANS_PRENDRE_DE_BUT",
32: "TYPE_PARI_DERNIERE_EQUIPE_A_MARQUER",
33: "TYPE_PARI_NOMBRE_BUTS_EQUIPE_1_MT_1",
34: "TYPE_PARI_NOMBRE_BUTS_EQUIPE_2_MT_1",
35: "TYPE_PARI_PERIODE_PROCHAIN_BUT",
36: "TYPE_PARI_OVER_UNDER_MT_1",
37: "TYPE_PARI_OVER_UNDER_MT_2",
38: "TYPE_PARI_OVER_UNDER_EQ_1",
39: "TYPE_PARI_OVER_UNDER_EQ_2",
40: "TYPE_PARI_MARGE",
41: "TYPE_PARI_NB_BUTS_MT_1",
42: "TYPE_PARI_NB_BUTS_MT_2",
43: "TYPE_PARI_NB_BUTS_EQ_1_MT_2",
44: "TYPE_PARI_NB_BUTS_EQ_2_MT_2",
45: "TYPE_PARI_VAINQUEUR_2_MTS",
46: "TYPE_PARI_2_EQS_MARQUENT_MT_1",
47: "TYPE_PARI_EQ_1_MARQUE_2_MTS",
48: "TYPE_PARI_EQ_2_MARQUE_2_MTS",
49: "TYPE_PARI_PAIR_IMPAIR_MT_1",
50: "TYPE_PARI_PAIR_IMPAIR_MT_2",
51: "TYPE_PARI_MT_PLUS_DE_BUTS_EQ_1",
52: "TYPE_PARI_MT_PLUS_DE_BUTS_EQ_2",
53: "TYPE_PARI_ECART_DU_VAINQUEUR",
54: "TYPE_PARI_1_N_2_MT_2",
55: "TYPE_PARI_NB_JEUX_SET",
56: "TYPE_PARI_NB_SETS_TOTAL",
57: "TYPE_PARI_SET_RESULTAT",
58: "TYPE_PARI_OVER_UNDER_SET1",
59: "TYPE_PARI_OVER_UNDER_SET2",
60: "TYPE_PARI_OVER_UNDER_SET1_EQ1",
61: "TYPE_PARI_OVER_UNDER_SET1_EQ2",
62: "TYPE_PARI_OVER_UNDER_JEUX",
63: "TYPE_PARI_OVER_UNDER_JEUX_EQ1",
64: "TYPE_PARI_OVER_UNDER_JEUX_EQ2",
65: "TYPE_PARI_OVER_UNDER_SETS",
66: "TYPE_PARI_EQUIPE1_GAGNE_1SET",
67: "TYPE_PARI_EQUIPE2_GAGNE_1SET",
68: "TYPE_PARI_SCORE_EXACT_SET",
69: "TYPE_PARI_1_2_SPECIAL",
70: "TYPE_PARI_ASIAN_HANDICAP",
71: "TYPE_PARI_ASIAN_TOTAL",
72: "TYPE_PARI_PREMIER_BUTEUR",
73: "TYPE_PARI_COMBINAISON",
74: "TYPE_PARI_PROLONGATION",
75: "TYPE_PARI_MARGE_LISTE",
76: "TYPE_PARI_PARI_BUTEUR",
77: "TYPE_PARI_BOOKINGS_TOTALS",
78: "TYPE_PARI_BOOKING_HT_TOTALS",
79: "TYPE_PARI_RED_CARD",
80: "TYPE_PARI_BOOKING",
81: "TYPE_PARI_FIRST_BOOKING",
82: "TYPE_PARI_MATCH_BOOKING",
83: "TYPE_PARI_TYPE_QUALIFICATION",
84: "TYPE_PARI_EQUIPE_MARQUE",
85: "TYPE_PARI_CORNER",
86: "TYPE_PARI_MATCH_CORNER",
87: "TYPE_PARI_CORNER_ODD_EVEN",
88: "TYPE_PARI_FIRST_CORNER",
89: "TYPE_PARI_TOTAL_CORNER",
90: "TYPE_PARI_LAST_CORNER",
91: "TYPE_PARI_PARIS_SPECIAUX",
92: "TYPE_PARI_INTERVAL_10_MIN",
93: "TYPE_PARI_INTERVAL_15_MIN",
94: "TYPE_PARI_FIRST_10_MIN",
95: "TYPE_PARI_2_EQUIPE_MARQUE_MI_TEMPS_2",
96: "TYPE_PARI_MARGE_MI_TEMPS",
97: "TYPE_PARI_SCORE_EXACT_MI_TEMPS_2",
98: "TYPE_PARI_ECART_POINT",
99: "TYPE_PARI_MARGE_VAINQUEUR",
100: "TYPE_PARI_1_2_MI_TEMPS",
101: "TYPE_PARI_PERIODE_PLUS_POINTS",
102: "TYPE_PARI_NB_POINTS_MATCH",
103: "TYPE_PARI_1_N_2_PERIODE",
104: "TYPE_PARI_O_U_PERIODE",
105: "TYPE_PARI_ECART_PERIODE",
106: "TYPE_PARI_POINT_RACE",
107: "TYPE_PARI_VAINQUEUR_2_SET",
108: "TYPE_PARI_VAINQUEUR_SET",
109: "TYPE_PARI_ECART_SET",
110: "TYPE_PARI_RACE_POINT",
111: "TYPE_PARI_FRAME_WINNER",
112: "TYPE_PARI_LEG_WINNER",
113: "TYPE_PARI_COMBINAISON_1ER_MI_TEMPS",
114: "TYPE_PARI_COMBINAISON_2EM_MI_TEMPS",
115: "TYPE_PARI_PARIS_SPECIAUX_2EM_MI_TEMPS",
116: "TYPE_PARI_PARIS_SPECIAUX_1ER_MI_TEMPS",
117: "TYPE_PARI_HANDICAP",
118: "TYPE_PARI_HANDICAP_PERIODE",
121: "TYPE_PARI_DOUBLE_CHANCE_MI_TEMPS",
123: "TYPE_PARI_CLEAN_SHEET"
}, SORT_CHOICE_TYPE_BET = [ "TYPE_PARI_SCORE_EXACT", "TYPE_PARI_SCORE_EXACT_MI_TEMPS", "TYPE_PARI_NOMBRE_BUTS_EQUIPE_1", "TYPE_PARI_NOMBRE_BUTS_EQUIPE_2", "TYPE_PARI_NOMBRE_BUTS_EQUIPE_1_MT_1", "TYPE_PARI_NOMBRE_BUTS_EQUIPE_2_MT_1", "TYPE_PARI_NOMBRE_BUTS_TOTAL", "TYPE_PARI_INTERVAL_10_MIN", "TYPE_PARI_INTERVAL_15_MIN" ], SHOW_MORE_TYPE_BET = [ "TYPE_PARI_SCORE_EXACT", "TYPE_PARI_SCORE_EXACT_MI_TEMPS" ], NO_SUBTITLES_TYPE_BET = [], REPLACE_ACTOR_TYPE_BET = [ "TYPE_PARI_VAINQUEUR_MT" ], LiveEvent = {
listBets: []
};
LiveEvent.reinitialize = function() {
this.listBets = [];
}, LiveEvent.setBet = function(typeBetId) {
this.listBets[typeBetId] || (this.listBets[typeBetId] = {}, this.listBets[typeBetId] = {
question: [],
questionId: [],
label: null,
col: null,
choices: [],
uChoice: [],
more: null,
subtitles: null,
active: []
}), this.setLabel(typeBetId), this.setCol(typeBetId), this.setMore(typeBetId), this.setSubtitles(typeBetId);
}, LiveEvent.setLabel = function(typeBetId) {
this.listBets[typeBetId].label = TYPE_BET_LABEL[typeBetId];
}, LiveEvent.setMore = function(typeBetId) {
this.listBets[typeBetId].more = -1 != $.inArray(this.listBets[typeBetId].label, SHOW_MORE_TYPE_BET);
}, LiveEvent.setSubtitles = function(typeBetId) {
this.listBets[typeBetId].subtitles = -1 == $.inArray(this.listBets[typeBetId].label, NO_SUBTITLES_TYPE_BET);
}, LiveEvent.setActivity = function(typeBetId, betId, isActive) {
this.listBets[typeBetId].active[betId] || (this.listBets[typeBetId].active[betId] = null),
this.listBets[typeBetId].active[betId] = isActive;
}, LiveEvent.setQuestion = function(typeBetId, betId, questionLabel, questionId) {
this.listBets[typeBetId].question[betId] || (this.listBets[typeBetId].question[betId] = null),
this.listBets[typeBetId].question[betId] = questionLabel, this.listBets[typeBetId].questionId[betId] = questionId;
}, LiveEvent.setChoices = function(typeBetId, betId, objChoices) {
this.listBets[typeBetId].choices[betId] || (this.listBets[typeBetId].choices[betId] = []);
var arr = Object.keys(objChoices).map(function(key) {
return objChoices[key];
});
-1 != $.inArray(this.listBets[typeBetId].label, SORT_CHOICE_TYPE_BET) && arr.sort(function(a, b) {
return a.cid - b.cid;
});
var choices = [], uChoices = [], loop = 0;
for (var choice in arr) -1 != $.inArray(this.listBets[typeBetId].label, REPLACE_ACTOR_TYPE_BET) ? "Nul" == arr[choice].act ? arr[choice].actor = "N" : arr[choice].actor = 0 == loop ? "1" : "2" : arr[choice].actor = arr[choice].act,
choices[choice] = arr[choice], loop++;
!this.listBets[typeBetId].uChoice[betId] && Object.keys(uChoices).length > 0 && (this.listBets[typeBetId].uChoice[betId] = [],
this.listBets[typeBetId].uChoice[betId] = uChoices), this.listBets[typeBetId].choices[betId].bid || (this.listBets[typeBetId].choices[betId].bid = betId),
this.listBets[typeBetId].choices[betId].choices = choices;
}, LiveEvent.typeBetActivity = function(typeBet) {
if (Object.keys(this.listBets).length > 0) for (var betId in this.listBets[typeBet].active) if (1 == this.listBets[typeBet].active[betId]) return 1;
return 0;
}, LiveEvent.orderBets = function() {
if (Object.keys(this.listBets).length > 0) for (var typeBet in this.listBets) {
var list = this.listBets[typeBet].choices;
list.sort(function(a, b) {
return a.bid - b.bid;
});
}
}, LiveEvent.setCol = function(typeBetId) {
var nbCol = 1;
switch (this.listBets[typeBetId].label) {
case "TYPE_PARI_SCORE_EXACT":
case "TYPE_PARI_SCORE_EXACT_MI_TEMPS":
case "TYPE_PARI_DOUBLE_CHANCE":
case "TYPE_PARI_NB_BUTS_MT_1":
case "TYPE_PARI_NB_BUTS_MT_2":
case "TYPE_PARI_DOUBLE_CHANCE_MI_TEMPS":
case "TYPE_PARI_VAINQUEUR_MT":
nbCol = 3;
break;
case "TYPE_PARI_OUI_NON":
case "TYPE_PARI_LES_2_EQUIPE_MARQUE":
case "TYPE_PARI_OVER_UNDER_MT_1":
case "TYPE_PARI_OVER_UNDER_MT_2":
case "TYPE_PARI_OVER_UNDER_EQ_1":
case "TYPE_PARI_OVER_UNDER_EQ_2":
case "TYPE_PARI_OVER_UNDER":
case "TYPE_PARI_NOMBRE_BUTS_EQUIPE_1":
case "TYPE_PARI_NOMBRE_BUTS_EQUIPE_2":
case "TYPE_PARI_NOMBRE_BUTS_TOTAL":
case "TYPE_PARI_2_EQS_MARQUENT_MT_1":
case "TYPE_PARI_2_EQUIPE_MARQUE_MI_TEMPS_2":
case "TYPE_PARI_INTERVAL_10_MIN":
case "TYPE_PARI_INTERVAL_15_MIN":
case "TYPE_PARI_CLEAN_SHEET":
case "TYPE_PARI_ECART_DU_VAINQUEUR":
case "TYPE_PARI_O_U_PERIODE":
case "TYPE_PARI_PAIR_IMPAIR":
nbCol = 2;
break;
default:
nbCol = 1;
}
this.listBets[typeBetId].col = nbCol;
};
var timestamp = Date.now(), firstDisplay = 1;
$(document).ready(function() {
if ($("#match.liveEvent").length > 0) {
var matchId = $("#match.liveEvent").data("match-id"), liveEvent = new EventSource(window.france_paris_ws_direct + "?id=" + matchId + "&partner=352&mode=v2");
liveEvent.addEventListener("odds", function(event) {
var data = JSON.parse(event.data);
data.odds.length > 0 && manageBets(data.odds);
}), liveEvent.addEventListener("match", function(event) {
refreshMatchDatasLive(JSON.parse(event.data));
});
}
}), window.addEventListener("message", function(event) {
event.data.height && (document.getElementById("lmt").style.height = "", document.getElementById("lmt").style.height = event.data.height + "px");
}), $(window).load(function() {
$("div.bet[data-question='Score%20multiple']").each(function(index) {
0 == index && $(this).closest("div.bets-wrap").removeClass("col-3").addClass("col-1"),
$(this).children().css({
height: "30px",
"line-height": ""
});
});
}), $(document).ready(function() {
var stepValid = 0, swiperSub = new Swiper("#inscription .swiper-container", {
spaceBetween: 30,
noSwipingClass: "no-swipe",
onSlideChangeStart: function() {
$("#inscription .steps-bar .step-" + (swiperSub.activeIndex + 1)).addClass("green"),
$(window).scrollTop(0), $("#inscription .swiper-slide-active").scrollTop(0);
}
});
if (stepValid = checkCaptchaError(swiperSub), $("#error-popup.sub-popup").length > 0) {
var errorFields = $("input.error");
if (errorFields.length > 0) {
for (var i = 0; i < errorFields.length; i++) {
var index = $(errorFields[i]).parents(".swiper-slide").data("section");
$("#inscription .steps-bar .step-" + (index + 1)).addClass("error");
}
index = $(errorFields[0]).parents(".swiper-slide").data("section"), swiperSub.slideTo(index);
}
enableAllSlides(), stepValid = 3;
}
$("#inscription #user_mdp").length > 0 && "" != $("#inscription #user_mdp").val() && refreshPasswordStrength($("#inscription #user_mdp").val()),
$(document).on("click", ".mdp-wrap .icon", function() {
$(".mdp-wrap").find("input").attr("type", "text");
}).on("blur", ".mdp-wrap .icon", function() {
$(".mdp-wrap").find("input").attr("type", "password");
}), jQuery.validator.addMethod("passwordComplexity", function(value, element) {
var safe = !1;
return safe = refreshPasswordStrength(value), this.optional(element) || 1 == safe;
}, "Le mot de passe doit associer au moins deux des caractères suivants : majuscule, minuscule, chiffre et symbole. Il doit être compris entre 7 et 16 caractères"),
$.validator.addMethod("phoneCheck", function(value, element) {
var re = new RegExp(/^((\+|00)33[ .-]?|0)[679]([ .-]?\d{2}){4}$/, "g");
return this.optional(element) || re.test(value);
}, "Le format du numero de telephone est invalide"), $.validator.addMethod("departmentCheck", function(value, element) {
var re = new RegExp(/^(0[1-9]|[1-8][0-9]|9[0-5]|2[AB]|97[1-9]?|98[1-9]?|99)$/, "g");
return this.optional(element) || re.test(value);
}, "Le département est incorrecte"), $.validator.addMethod("alphaCheck", function(value, element) {
var re = new RegExp(/^[A-zÀ-ú\s'-]*$/, "g");
return this.optional(element) || re.test(value);
}, "Ce champ n'accepte que des lettres");
$("#inscriptionForm").validate({
errorPlacement: function(error, element) {
element.before(error);
},
rules: {
"user[pseudo]": {
maxlength: 16,
minlength: 4
},
"user[mdp]": {
passwordComplexity: !0
},
"user[lastname]": {
alphaCheck: !0
},
"user[usualname]": {
alphaCheck: !0
},
"user[firstname]": {
alphaCheck: !0
},
"user[othersurname]": {
alphaCheck: !0
},
"user[bday]": {
dateFR: !0
},
"user[birth_dept]": {
departmentCheck: !0
},
"user[birthtown]": {
alphaCheck: !0,
maxlength: 38
},
"user[address]": {
maxlength: 38
},
"user[complement]": {
maxlength: 38
},
"user[zipcode]": {
digits: !0,
minlength: 3,
maxlength: 6
},
"user[town]": {
alphaCheck: !0,
maxlength: 38
},
"user[mobile]": {
phoneCheck: !0
},
"user[phone]": {
phoneCheck: !0
}
}
});
if ($(document).on("click touchstart", "#inscription .steps-bar div[class*='step-']", function() {
var index = $(this).data("step");
index <= stepValid && swiperSub.slideTo(index);
}), $(document).on("click", "#infos-connexion .swipper-button-next", function() {
0 == validateStep1() && (stepValid++, swiperSub.slideNext());
}), $(document).on("keyup", "#inscription #user_mdp", function() {
refreshPasswordStrength($(this).val());
}), $(document).on("keyup", "#inscription #user_birth_dept", function() {
$(this).val($(this).val().toUpperCase());
}), $(document).on("click", "#donnees-persos #user_maj, #jeu-responsable #user_cgu", function() {
$(this).hasClass("error") && ($(this).removeClass("error"), $(this).prev().remove());
}), $(document).on("click", "#jeu-responsable #user_cgu .sp-link", function() {
window.open($(this).data("link"));
}), $(document).on("click", "#donnees-persos .swipper-button-next", function() {
0 == validateStep2() && (stepValid++, swiperSub.slideNext());
}), $(document).on("click touchstart", "#select-box-popup .options.country_list li, #select-box-popup .options.select_list li", function() {
var popupInput = $(this).parent().parent().find("input"), formInput = $("#inscriptionForm").find("#" + $(popupInput).attr("id"));
formInput.val($(this).data("value")), $(formInput).next().hasClass("error") && ($(formInput).next().removeClass("error"),
$(formInput).parent().parent().prev().remove()), "user_birth_country" == $(popupInput).attr("id") && ("France" == $(this).data("value") ? ($(".birth-dept-wrap input").val(""),
$(".birth-dept-wrap").removeClass("hidden")) : ($(".birth-dept-wrap").addClass("hidden"),
$(".birth-dept-wrap input").val(99)));
}), $(document).on("click", "#coordonnees .swipper-button-next", function() {
0 == validateStep3() && (stepValid++, swiperSub.slideNext());
}), $(document).on("click", "#jeu-responsable .validate", function() {
var validator = $("#inscriptionForm").validate(), rslt = 0;
$("#jeu-responsable .cgu input").is(":checked") || (addErrorMessage($("#jeu-responsable #user_cgu"), ""),
rslt++), "" == $("#jeu-responsable #user_captcha").val() && ($("#jeu-responsable #captcha").before('Ce champ est obligatoire '),
rslt++), 0 == (rslt += validateAllStep(validator, "#jeu-responsable")) && $("#inscriptionForm").submit();
}), $(document).on("click", "#jeu-responsable .legend", function() {
var id = $(this).parents(".limit-wrap").attr("id") + "-popup", content = $("#" + id);
showPopup(id, content.html());
}), void 0 !== $("#captcha .captcha_reload").attr("href")) {
var recaptcha_function = $("#captcha .captcha_reload").attr("href").replace("javascript:", "").replace("();", "");
window[recaptcha_function]();
}
}), $(document).ready(function() {
var am = new AjaxManager(), withdrawalCallback = function(data) {
var content = $("#confirmation-retrait-popup");
hideLoader(), showPopup("confirmation-retrait-popup", content.html());
};
$(document).on("click", "#retrait button.main", function() {
var val = $("input[name=amount]").val(), solde = $("p.solde").data("solde");
"" != val && val >= 10 && solde >= val ? ($("#confirmation-mdp-popup .withdrawal-amount").text(val),
showPopup("confirmation-mdp-popup", $("#confirmation-mdp-popup").html())) : (void 0 !== $("#retrait .error") && $("#retrait .error").remove(),
solde < val ? $("#retrait input[name=amount]").parent().before('Votre solde est insuffisant pour ce retrait. ') : $("#retrait input[name=amount]").parent().before('Le montant est de 10€ minimum '));
}), $(document).on("click", "#confirmation-mdp-popup .sendWithdrawal", function() {
hidePopup("confirmation-mdp-popup");
var amount = $("input[name=amount]").val(), password = $(this).parents(".popup").find("input[name=_password]").val(), birthday = $(this).parents(".popup").find("input[name=_birthday]").val(), data = {
amount: amount,
password: password,
birthday: birthday
}, params = {
type: "POST",
url: Routing.generate("genybet_myaccount_withdrawal_post"),
data: data
};
showLoader(), am.update(params), am.flush(withdrawalCallback);
}), $(document).on("click touchstart", "#informations-retrait", function(e) {
e.preventDefault(), showPopup("infos-general-popup", $("#infos-general-popup").html());
}), $(document).on("click", "#confirmation-retrait-popup .valideWithdrawal", function() {
document.location.href = Routing.generate("genybet_myaccount_user_data");
});
});