﻿


// Last changed Orlando 23/07/2011 14:44
var betId = 0;
var selectionsNumber = 0;
var enabledSelectionsNumber = 0;
var selectedTab = 1;
var selectedTabName = "Multi";
var isIntegralSystem = false;
var allEventId = new Array();
var CombinationsArray = new Array();
var idCountry = 0;
var betsArrOfArr = [];
var tabState = 0;
var moltArray = [];
var totalStakSys = 0;
var winPlusSys = 0;

$(function () {
    betsArrOfArr = [[],
    [1],
    [2, 1],
    [3, 3, 1],
    [4, 6, 4, 1],
    [5, 10, 10, 5, 1],
    [6, 15, 20, 15, 6, 1],
    [7, 21, 35, 35, 21, 7, 1],
    [8, 28, 56, 70, 56, 28, 8, 1],
    [9, 36, 84, 126, 126, 84, 36, 9, 1],
    [10, 45, 120, 210, 252, 210, 120, 45, 10, 1],
    [11, 55, 165, 330, 462, 462, 330, 165, 55, 11, 1],
    [12, 66, 220, 495, 792, 924, 792, 495, 220, 66, 12, 1],
    [13, 78, 286, 715, 0, 0, 0, 0, 0, 286, 78, 13, 1],
    [14, 91, 364, 0, 0, 0, 0, 0, 0, 0, 0, 91, 14, 1],
    [15, 105, 455, 0, 0, 0, 0, 0, 0, 0, 0, 455, 105, 15, 1],
    [16, 120, 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 560, 120, 16, 1],
    [17, 136, 680, 2380, 6188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 136, 17, 1],
    [18, 153, 816, 3060, 8568, 0, 0, 0, 0, 0, 0, 0, 0, 0, 816, 153, 18, 1],
    [19, 171, 969, 3876, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3876, 969, 171, 19, 1],
    [20, 190, 1140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4845, 1140, 190, 20, 1]];
    moltArray = [1, 1.05, 1.10, 1.15, 1.20, 1.25, 1.35, 1.40, 1.45, 1.55];
    idCountry = $("input#IdCountry").val();
    CombinationsArray[13] = [1, 2, 3, 4, 10, 11, 12, 13];
    CombinationsArray[14] = [1, 2, 3, 12, 13, 14];
    CombinationsArray[15] = [1, 2, 3, 12, 13, 14, 15];
    CombinationsArray[16] = [1, 2, 3, 13, 14, 15, 16];
    CombinationsArray[17] = [1, 2, 3, 4, 5, 15, 16, 17];
    CombinationsArray[18] = [1, 2, 3, 4, 5, 15, 16, 17, 18];
    CombinationsArray[19] = [1, 2, 3, 4, 15, 16, 17, 18, 19];
    CombinationsArray[20] = [1, 2, 3, 4, 16, 17, 18, 19, 20];
    var betPSummary = "";

    $("#tabs").tabs();
    $("#tabs").tabs('select', selectedTab);
    $("#confirmState").hide();
    $("#printState").hide();
    

    $('#tabs').bind('tabsselect', function (event, ui) {
        switch (ui.index) {
            case 0: // Single selection
                $(".lstLabelImportant").show();
                $("#txtStakePerBet").show();
                $("#dvBetItemsCollection > div > div > input:checkbox[id^='chkBankerBet']").each(function (item, ui) {
                    $(this).css("visibility", "hidden");
                });
                $("#dvBetItemsCollection > div > div > label[id^='lblBankerFlag']").each(function (item, ui) {
                    $(this).css("visibility", "hidden");
                });
                selectedTab = 0;
                selectedTabName = "first";
                $("#second_ a").css({ 'border-bottom': 'none' });
                break;
            case 1: // Multi bet selection
                $(".lstLabelImportant").show();
                $("#txtStakePerBet").show();
                $("#dvBetItemsCollection > div > div > input:checkbox[id^='chkBankerBet']").each(function (item, ui) {
                    $(this).css("visibility", "hidden");
                });
                $("#dvBetItemsCollection > div > div > label[id^='lblBankerFlag']").each(function (item, ui) {
                    $(this).css("visibility", "hidden");
                });
                selectedTab = 1;
                selectedTabName = "second";
                $("#second_ a").css({ 'border-bottom': 'none' });
                break;
            case 2: // System selection
                $(".lstLabelImportant:first").hide();
                $("#txtStakePerBet").hide();
                $("#dvBetItemsCollection > div > div > input:checkbox[id^='chkBankerBet']").each(function (item, ui) {
                    $(this).css("visibility", "visible");
                });
                $("#dvBetItemsCollection > div > div > label[id^='lblBankerFlag']").each(function (item, ui) {
                    $(this).css("visibility", "visible");
                });
                selectedTab = 2;
                selectedTabName = "third";
                $("#second_ a").css({ 'border-bottom': '1px solid #041c34!important' });
                break;
        }
    });

    $('#txtStakePerBet').keyup(function () {
        calculateTotalStake();
        calculateTotalQuotaAndRefreshPossibleWinning("txtStakePerBet.keyup");
    });

    if (idCountry !== "2" && idCountry !== "9" && idCountry !== "59") {
        $("#lblWinPlusMultiLable").parent().hide();
        $("#lblTotalWinning_Multi").parent().hide();
    }
    else {
        $("#lblWinPlusMultiLable").parent().show();
        $("#lblTotalWinning_Multi").parent().show();
    }

});

function SelectMoltiplier(selections) {
    if (selections < 5) return moltArray[0];
    if (selections === 5) return moltArray[1];
    if (selections === 6) return moltArray[2];
    if (selections === 7) return moltArray[3];
    if (selections === 8) return moltArray[4];
    if (selections === 9) return moltArray[5];
    if (selections === 10) return moltArray[6];
    if (selections === 11) return moltArray[7];
    if (selections === 12) return moltArray[8];
    if (selections > 12) return moltArray[9];
    
}


//-- aaron Spot-=
function goTobQuickBet(e) {
    var keynum;
    var keychar;
    var numcheck;

    var parArray;

    if (window.event) // IE
    {
        keynum = window.event.keyCode;
    }
    else if (e.which) // Netscape/Firefox/Opera
    {
        keynum = e.which;
    }
    //--
    //alert(keynum);
    if (keynum == 13) {
        // alert($("#QoddsGroup").selectedIndex);
        finallyAddTobettingSlip();
    }
}

function goQuickBetSelect(e) {
    var keynum;
    var keychar;
    var numcheck;

    var parArray;

    if (window.event) // IE
    {
        keynum = window.event.keyCode;
        //alert(keynum);
    }
    else if (e.which) // Netscape/Firefox/Opera
    {
        keynum = e.which;
    }
    //--
    if (keynum == 13) {
        $("#QoddsGroup").focus();
    }
}

function finallyAddTobettingSlip() {
    var selectItem = document.getElementById("QoddsGroup")
    var x = selectItem.selectedIndex;
    var y = selectItem.options;
    var currentIndex = y[x].index;
    var currentIndexValue = y[x].value;



    if (currentIndex > 0) {
        parArray = currentIndexValue.split(",");
        if (checkDuplicatesInBS(parArray[2], parArray[6])) return;
        var anEvt = new events("0", parArray[0], parArray[1], false, true, parArray[2], parArray[3], parArray[4], parArray[5], parArray[6], parArray[7], parArray[8], parArray[9], parArray[10], parArray[11], parArray[12], parArray[13]);
        selectedOdds[selectedOdds.length] = anEvt;

        addNewBet(parArray[0], parArray[1], parArray[2], parArray[3], parArray[4], parArray[5], parArray[6], parArray[7], parArray[8], parArray[9], parArray[10], parArray[11], parArray[12], parArray[13]);
        SetSelectedOdds();
    }
}

function betItemDeleteClick(event) {
    var thisBetID = $.inArray($(event.target.parentNode)[0], $("#dvBetItemsCollection > div > div[id^='dvBetItem']"));
    $("#" + event.target.parentNode.id).fadeOut('fast',
        function() {
            var evntId = -1;
            evntId = getValueFromHiddenTextBox(event.target.id.split("_")[1], "EventId");

            for (var i = 0; i <= allEventId.length - 1; i++) {
                if (allEventId[i] == evntId) {
                    allEventId.splice(i, 1);
                    break;
                }
            }
            selectionsNumber -= 1;
            $("#" + event.target.parentNode.id).parent().remove();
            refreshEnabledSelections();
            calculateTotalQuotaAndRefreshPossibleWinning("betItemDeleteClick");
        }
    );

    deleteSelectionBettingSlip2011(thisBetID, getValueFromHiddenTextBox(event.target.id.split("_")[1], "EventId") + "_" + getValueFromHiddenTextBox(event.target.id.split("_")[1], "SelId"));
    if (CheckDeleteCombinability(getValueFromHiddenTextBox(event.target.id.split("_")[1], "SelId"))) {
        $("#confirmState").hide();
        $("#printState").hide();
        $("#buttonWrapper").show();
        $("#lblSelectionsNumber").text("");
    }
    else {

        $("#lblSelectionsNumber").text(document.forms[0].JS_ERR2.value);
    }
}
function getValueFromHiddenTextBox(betId, valToGet) {

    var arr;
    arr = $("#dvBetItem_" + betId.toString()).data(valToGet);
    return arr;
}


function processAnswer(answer) {
    if (answer.ErrorCode == -100) {
        alert(answer.Message);
        __doPostBack('_ctl0$Header1$cmdLogout', '');
    } else if (answer.ErrorCode == 200) {
        $("#lblSelectionsNumber").text(answer.Message);
        $("#buttonWrapper").show();
        $("#cmdPrint").hide();
        $("#cmdBack").show();
    }
    else if (answer.ErrorCode != 0) {
    $("#lblSelectionsNumber").text(answer.Message);
        $("#buttonWrapper").show();
        $("#cmdPrint").hide();
        $("#cmdBack").show();
    }
    else {
        $("#buttonWrapper").hide();
        $("#confirmState").hide();
        $("#printState").show();
        if (answer.ConfirmationCode) {
            $("#AcptWithReserve").hide();
            $("#dvAdvice").hide();
            $("#dvConfCode").text("Confirmation code (" + answer.ConfirmationCode + ") received on: " + answer.TimeStamp);
            $("#cmdPrint").show();
        }
        else {
            $("#AcptWithReserve").show();
            $("#dvConfCode").text("");
            $("#dvAdvice").show();
            $("#cmdPrint").hide();
            $(" #cmdBack").show();
        }
    }
}

function confirmBet() {

    var selectedTab = $("#tabs").tabs('option', 'selected');
    var BettingSlip = { Mode: "", IdClient: "", Amount: "", Bets: [], Systems: [], MinWinning: "", MaxWinning: "", Winplus: "", TotalWinning: "", WinPlusPerc: "", Columns: "" };
    if (!CheckMinMax())
        return;
    if (isIntegralSystem) {
        BettingSlip.Mode = "INTEGRAL";
        BettingSlip.Amount = $("#lblTotalStakeIntegral").text();
        
        BettingSlip.Columns = $("#lblBetsNumberIntegralTab").text();
        if (BettingSlip.Amount <= 0) {
            $("#confirmState").hide();
            $("#printState").hide();
            $("#buttonWrapper").show();
            alert("Invalid amount");
            return;
        }
        if (isNumber(BettingSlip.Amount) === false) {
            $("#confirmState").hide();
            $("#printState").hide();
            $("#buttonWrapper").show();
            alert("Invalid amount");
            return;
        }
    }
    else {
        switch (selectedTab) {
            case 0:
                BettingSlip.Mode = "SINGLE";
                BettingSlip.TotalWinning = $("#lblPossibleWinning_Single").text();
                BettingSlip.Amount = $("#lblTotalStake_Single").text();
                if (BettingSlip.Amount <= 0) {
                    $("#confirmState").hide();
                    $("#printState").hide();
                    $("#buttonWrapper").show();
                    alert("Invalid amount");
                    return;
                }
                if (isNumber(BettingSlip.Amount) === false) {
                    $("#confirmState").hide();
                    $("#printState").hide();
                    $("#buttonWrapper").show();
                    alert("Invalid amount");
                    return;
                }
                if (enabledSelectionsNumber > 1) {
                    BettingSlip.Mode = "SYSTEM";
                    BettingSlip.TotalWinning = $("#lblPossibleWinning_Single").text();
                    amount = $("#lblTotalStake_Single").text();
                    systemType = enabledSelectionsNumber;
                    BettingSlip.Systems.push({ Legami: 1, Amount: amount });
                }
                break;
            case 1:
                BettingSlip.Mode = "MULTI";
                BettingSlip.Amount = $("#lblTotalStake_Multi").text();
                BettingSlip.Winplus = $("#lblWinPlusMulti").text();
                BettingSlip.MaxWinning = $("#lblPossibleWinning_Multi").text();
                BettingSlip.TotalWinning = $("#lblTotalWinning_Multi").text();
                if (BettingSlip.Amount <= 0) {
                    $("#confirmState").hide();
                    $("#printState").hide();
                    $("#buttonWrapper").show();
                    alert("Invalid amount");
                    return;
                }
                if (isNumber(BettingSlip.Amount) === false) {
                    $("#confirmState").hide();
                    $("#printState").hide();
                    $("#buttonWrapper").show();
                    alert("Invalid amount");
                    return;
                }
                break;
            case 2:
                BettingSlip.Mode = "SYSTEM";
                BettingSlip.MinWinning = $("#lblMinWinningSystem").text();
                BettingSlip.MaxWinning = $("#lblMaxWinningSystem").text();
                BettingSlip.Amount = $("#lblTotalSystemsCost").text();
                BettingSlip.Winplus = $("#lblWinPlusSys").text();
                if (BettingSlip.Amount <= 0) {
                    $("#confirmState").hide();
                    $("#printState").hide();
                    $("#buttonWrapper").show();
                    alert("Invalid amount");
                    return;
                }
                if (isNumber(BettingSlip.Amount) === false) {
                    $("#confirmState").hide();
                    $("#printState").hide();
                    $("#buttonWrapper").show();
                    alert("Invalid amount");
                    return;
                }
        }
    }
    //$("#confirmState").show();
    $("#printState").hide();
    $("#buttonWrapper").hide();

    submitBets();
}

function CheckCombinability(lastComb) {
    var retVal = true;
    $("#dvBetItemsCollection > div > div[id^='dvBetItem']").each(function(item, ui) {
        var combin = getValueFromHiddenTextBox(ui.id.split("_")[1], "IdComb");
        if (lastComb != combin) {
            retVal = false;
        }
        lastComb = combin;
    });
    return retVal;
}

function CheckMinMax() {
    var minArray = [];
    var maxArray = [];
    var errMsg;
    $("#dvBetItemsCollection > div > div[id^='dvBetItem']").each(function(item, ui) {
        minArray.push(getValueFromHiddenTextBox(ui.id.split("_")[1], "MinSel"));
        maxArray.push(getValueFromHiddenTextBox(ui.id.split("_")[1], "MaxSel"));
    });
    var min = $.map(minArray, function(x) { return parseInt(x); }).sort().reverse()[0];
    var max = $.map(maxArray, function(x) { return parseInt(x); }).sort()[0];
    var actualLength = $("#dvBetItemsCollection > div > div[id^='dvBetItem']").length;
    if (max < actualLength || actualLength < min) {
        if (max == 1)
            errMsg = document.forms[0].JS_SO.value + "\r" + document.forms[0].JS_CHKRULE.value;
        else if (min == 3)
            errMsg = document.forms[0].JS_MINTRB.value + "\r\r" + document.forms[0].JS_CHKRULE.value;
        else
            errMsg = document.forms[0].JS_MIN.value + " " + minSel + " " + document.forms[0].JS_MIN1.value + " " + maxSel + " " + document.forms[0].JS_MIN2.value + "\r" + document.forms[0].JS_CHKRULE.value;

        alert(errMsg);
        return false;
    }
    return true;
}

function CheckDeleteCombinability(selection) {
    var retVal = true;
    var lastComb;
    $("#dvBetItemsCollection > div > div[id^='dvBetItem']").each(function(item, ui) {
        var combin = getValueFromHiddenTextBox(ui.id.split("_")[1], "IdComb");
        var sel = getValueFromHiddenTextBox(ui.id.split("_")[1], "SelId");
        if (lastComb != undefined && lastComb != combin && sel != selection) {
            retVal = false;
        }
        lastComb = combin;
    });
    return retVal;
}

function addNewBet(oddValue, oddTitle, evtId, comptabileNum, sommableNum, evtName, selId, oddsRep, minSel, maxSel, expiryDate, idComp, MarketName, IdWeek) {
    var newDivName = "dvBetItem_" + betId.toString();
    var bankerCheckboxVisibility = "hidden";

    if (selectedTab === 2)
        bankerCheckboxVisibility = "visible"

    allEventId.push(evtId);
    //    $("#confirmState").hide();
    //    $("#printState").hide();
    //    $("#buttonWrapper").show();

    // var MatchBetDivHtml = "<div class='" + checkMatchNameLength(evtName, "div") + "' style='display:none' id='" + newDivName + "'> " +
    var MatchBetDivHtml = "<div class='" + checkMatchNameLength(evtName, "div") + "' id='" + newDivName + "'> " +
    "<input class='MatchBetActiveCheckbox' id='chkActiveBet_" + betId.toString() + "' type='checkbox' checked />" +
    "<img class='DeleteBetImage' id='imgDeleteBet_" + betId.toString() + "' src='http://cache.agenziasportiva.com/sportsbook/images/delete.gif' alt='Delete bet' />" +
    "<div class='MatchBetDescriptionLabel'><span class='" + checkMatchNameLength(evtName, "span") + "'> " + evtName + "</span>" +
    "<span class='selectionType'>Sel:" + oddTitle + "</span>" +
    "<span class='valueLabel'><span class='valueAmout'>" + oddValue + "</span>" +
    "</span></div><input class='MatchBankerCheckbox' style='visibility:" + bankerCheckboxVisibility + "' id='chkBankerBet_" + betId.toString() + "' name='chkBankerBet_" + betId.toString() + "' type='checkbox'/><label id='lblBankerFlag_" + betId.toString() + "' style='visibility:" + bankerCheckboxVisibility + "' class='bankerLabel' for='chkBankerBet_" + betId.toString() + "' >F</label></div>";
    $('#dvBetItemsCollection').append(MatchBetDivHtml);
    $("#" + newDivName).data({ 'EventId': evtId, 'SelId': selId, 'Quota': oddValue, 'BetId': betId, 'Selection': oddTitle, 'Market': MarketName, 'IdComb': comptabileNum, 'MinSel': minSel, 'MaxSel': maxSel, 'IdWeek': IdWeek });

    $("#imgDeleteBet_" + betId.toString()).click(function(event) { betItemDeleteClick(event); });
    $("#chkActiveBet_" + betId.toString()).change(function() { refreshEnabledSelections(); });
    $("#chkBankerBet_" + betId.toString()).change(function() {
        var appString = "";
        appString = $("#" + $(this)[0].parentNode.id + "> input:checkbox[id^='chkActiveBet']")[0].id;

        if ($("#" + appString).attr("checked"))
            refreshEnabledSelections();
    }
    );

    // $('#' + newDivName).slideDown(10, function() {

    //  });

//    if (checkEventIdAlreadyPresentAndEnabled(evtId) == true) {
//        $("#tabs").tabs('select', 0);
//        $("#tabs").tabs("option", "disabled", [1, 2]);
//    }
    //calculateTotalQuotaAndRefreshPossibleWinning("addNewBet");
    calculateTotalStake();
    if (CheckCombinability(comptabileNum)) {
        $("#confirmState").hide();
        $("#printState").hide();
        $("#buttonWrapper").show();
        $("#lblSelectionsNumber").text("");
    }
    else {
        $("#confirmState").hide();
        $("#printState").hide();
        $("#buttonWrapper").hide();
        $("#lblSelectionsNumber").text(document.forms[0].JS_ERR2.value);
    }

    $('#txtQEvent').focus();
    betId += 1;
    selectionsNumber += 1;
    hoverEffect(newDivName);
    refreshEnabledSelections();
}

function arrHasDupes(A) {
    var i, j, n;
    n = A.length;
    for (i = 0; i < n; i++) {
        for (j = i + 1; j < n; j++) {
                if (A[i] == A[j]) {
                    return true;
                }
        }
    }
    return false;
}

function getRepetionsInArray(arrayToCheck, valueTheCheck) {
    var repetitionsNumber = 0;
    for (var i = 0; i < arrayToCheck.length; i++) {
        if (arrayToCheck[i] == valueTheCheck)
            repetitionsNumber += 1;
    }
    return repetitionsNumber;
}

function getNumberOfBetsForIntegralSystem() {
    var numberOfBets = 1;
    var arrAlreadyConsideredItems = new Array();
    var isAlreadyConsidered = false;
    for (var i = 0; i < allEventId.length; i++) {
        isAlreadyConsidered = false;
        for (var j = 0; j < arrAlreadyConsideredItems.length; j++) {
            if (arrAlreadyConsideredItems[j] == allEventId[i]) {
                isAlreadyConsidered = true;
                break;
            }
        }
        if (isAlreadyConsidered === false) {
            numberOfBets = numberOfBets * getRepetionsInArray(allEventId, allEventId[i]);
            arrAlreadyConsideredItems.push(allEventId[i]);
        }
    }
    return numberOfBets;
}

function CheckIfThereAreDuplicatedEvents() {

    $('#tabs li:eq(0) *:last').show();
    $('#tabs li:eq(1) *:last').show();
    $('#tabs li:eq(2) *:last').show();
        var hasDupes = arrHasDupes(allEventId);

        if (hasDupes) {
            $("#tabs").tabs("option", "disabled", [1, 2]);
            tabState = 0;
            $("#lblBetsNumberSingleTab").text(getNumberOfBetsForIntegralSystem().toString());
            isIntegralSystem = true;
            $("#tabs").tabs('select', 0);
            $('#tabs li:eq(0) *:last').text('Combined');
            $('#tabs li:eq(1) *:last').hide();
            $('#tabs li:eq(2) *:last').hide();
            calculateMinMaxIntegral();
            $("#dvIntegralSystemsWinnings").show();
            $("#dvSingleWinning").hide();
            $("#lblBetsNumberIntegralTab").text(getNumberOfBetsForIntegralSystem().toString());
        }
        else {
   // $("#tabs").tabs('enable', 0);
   // $("#tabs").tabs('enable', 1);
   // $("#tabs").tabs('enable', 2);
    getEnabledSelectionsNumber();
    $("#lblBetsNumberSingleTab").text(enabledSelectionsNumber.toString());
    isIntegralSystem = false;
    $('#tabs li:eq(0) *:last').text('Single');
    $("#dvIntegralSystemsWinnings").hide();
    $("#dvSingleWinning").show();
        }

        if (hasDupes === false) {
    if (allEventId.length > 1) {
        $('#tabs li:eq(0) *:last').text('');
        $('#tabs li:eq(0) *:last').hide();
        if (tabState !== 2) {
            $("#tabs").tabs("option", "disabled", [0]);
            $("#tabs").tabs('enable', 1);
            $("#tabs").tabs('enable', 2);
            tabState = 2;
        }
        if (selectedTabName != "third") $("#tabs").tabs('select', 1);
    }
    if (allEventId.length === 1) {
        $("#tabs").tabs('select', 0);
        if (tabState != 1) {
            $("#tabs").tabs("option", "disabled", [1, 2]);
            tabState = 1;
        }
    }
     }

    return isIntegralSystem;
}

function checkEventIdAlreadyPresentAndEnabled(eventIdToCheck) {
    var evtIdAlreadyPresent = false;
    var betIdOfAlreadyPresentEventId = -1;
    for (var i = 0; i <= allEventId.length; i++) {
        if (allEventId[i] == eventIdToCheck) {
            betIdOfAlreadyPresentEventId = getBetIdFromEventId(eventIdToCheck);
            if (checkIfSelectionIsEnabled(betIdOfAlreadyPresentEventId) == true)
                evtIdAlreadyPresent = true;
        }
    }
    return evtIdAlreadyPresent;
}

function getBetIdFromEventId(referenceEventId) {
    var idToReturn = -1;
    $("#dvBetItemsCollection").find("div[id^='dvBetItem']").each(function(item, ui) {
        if ($(ui).data("EventId") === referenceEventId) {
            idToReturn = ui.id.split("_")[1];
        }
    });
    return idToReturn;
}

function checkIfSelectionIsEnabled(betIdToCheck) {
    if ($("#chkActiveBet_" + betIdToCheck.toString()).attr("checked"))
        return true;
    else
        return false;
}

function getEnabledSelectionsNumber() {
    enabledSelectionsNumber = 0;
    $("#dvBetItemsCollection > div > div > input:checkbox[id^='chkActiveBet']").each(function(item, ui) {
        if ($(this).attr("checked"))
            enabledSelectionsNumber += 1;
    });
    $("#lblRealSelectionsNumber").text("Selections: " + enabledSelectionsNumber.toString() + " (of " + selectionsNumber.toString() + ")");
}

function refreshEnabledSelections() {
    getEnabledSelectionsNumber();
    calculateTotalQuotaAndRefreshPossibleWinning("refreshEnabledSelections");
    CheckIfThereAreDuplicatedEvents();
    calculateTotalStake();
}
function selectAllBets() {
    $("#dvBetItemsCollection > div > div > input:checkbox[id^='chkActiveBet']").attr("checked", true);
    refreshEnabledSelections();
}
function unselectAllBets() {
    $("#dvBetItemsCollection > div > div > input:checkbox[id^='chkActiveBet']").attr("checked", false);
    refreshEnabledSelections();
}
function deleteAllBets() {
    allEventId = new Array();

    $("#lblPossibleWinning_Single").text("0.00");
    $("#lblTotalStake_Single").text("0.00");
    $("#lblTotalOdds_Multi").text("0.00");
    $("#lblPossibleWinning_Multi").text("0.00");
    $("#lblTotalStake_Multi").text("0.00");
    $("#lblMinWinningSystem").text("0.00");
    $("#lblMaxWinningSystem").text("0.00");
    $("#lblBetsNumberSingleTab").text("0");
    $("#lblRealSelectionsNumber").text("Selections: " + "0" + " (of " + "0" + ")");
    $("#lblWinPlusSys").text("0.00");
    $("#txtStakePerBet").val("0");
    $("td[selectedOdd].highlight").attr("class", "bet");
    $("select[selectedOdd]:has(option[value!='0']:selected)").val("0");

    selectionsNumber = 0;
    enabledSelectionsNumber = 0;

   // clearSlipBettingSlip2011();
    selectedOdds = new Array();
    sysBetArray = new Array();
    gIntID = 0;
//    $("#dvBetItemsCollection > div").fadeOut('fast',
//     function() {
//         $("#dvBetItemsCollection > div").remove();
//         calculateTotalQuotaAndRefreshPossibleWinning("deleteAllBets");
//     }
//     );
    $("#dvBetItemsCollection > div").remove();
    $('#tabs li:eq(0) *:last').text('Single');
    $('#tabs li:eq(0) *:last').show();
    $('#tabs li:eq(1) *:last').show();
    $('#tabs li:eq(2) *:last').show();
    $("#tabs").tabs('select', 0);
//     $("#tabs").tabs('enable', 0);
    $("#tabs").tabs("option", 'disabled', [1, 2]);
//     $("#tabs").tabs('enable', 2);
    $("#lblBetsNumberSingleTab").text("0");
}
function hoverEffect(divName) {
    $("#" + divName).wrap('<div/>');
}
function calculateTotalQuotaAndRefreshPossibleWinning(sender) {
    var totalQuota = 1;

    $("#dvBetItemsCollection > div > div[id^='dvBetItem']").each(function(item, ui) {
        if ($(ui).find("input[id^='chkActiveBet']").attr("checked"))
            totalQuota = (totalQuota * $(ui).data("Quota")); //.toFixed(2);
    })

    if (allEventId.length > 0)
        $("#lblTotalOdds_Multi").text(totalQuota.toFixed(2));
    else {
        $("#lblTotalOdds_Multi").text("0.00");
        totalQuota = 0;
    }

    calculateWinningForMulti(totalQuota);
    calculateWinningForSingle();
    calculateWinningForSystem(sender);

    if (isIntegralSystem)
        calculateMinMaxIntegral();

    return totalQuota;
}

function calculateWinningForSingle() {
    var totalWinning = 0;

    $("#dvBetItemsCollection > div > div[id^='dvBetItem']").each(function(item, ui) {
        if ($(ui).find("input[id^='chkActiveBet']").attr("checked"))
            totalWinning += $("#txtStakePerBet").val() * $(ui).data("Quota");
    })

    $("#lblPossibleWinning_Single").text((totalWinning).toFixed(2));
}

function calculateWinningForMulti(totalQuota) {
    if (document.getElementById("txtStakePerBet").value == "")
        $("#lblPossibleWinning_Multi").text("0.00");
    else
        $("#lblPossibleWinning_Multi").text((totalQuota * parseFloat(document.getElementById("txtStakePerBet").value)).toFixed(2));
    $("#lblWinPlusMulti").text(calculateWINPlusMulti("Mult").toFixed(2));
}

function sortNumber(a, b) {
    return a - b;
}

function CalculateSmallestMinumumAndSumOfMaximum() {
    var smallestMinimum = 0;
    var sumOfMaximum = 0;

    $("#lblMinWinningSystem").text("0.00");
    $("#lblMaxWinningSystem").text("0.00");

    $("#dvPossibleSystems > div > input:checkbox[id^='chkActiveSystem_']").each(function(item, ui) {
        if ($(this).attr("checked")) {
            sumOfMaximum += parseFloat(
                $("#" + ui.parentNode.id + " > span[id^='lblMaxSystemWinning']").text()
                );

            var appVar = 0;
            appVar = parseFloat($("#" + ui.parentNode.id + " > span[id^='lblWinPlusSystemWinning']").text());
            if (!isNaN(appVar)) {
                sumOfMaximum += appVar;
            }
            if (smallestMinimum === 0) {
                smallestMinimum = $("#" + ui.parentNode.id + " > span[id^='lblMinSystemWinning']").text();
            }
            else {
                if (smallestMinimum > parseFloat($("#" + ui.parentNode.id + " > span[id^='lblMinSystemWinning']").text())) {
                    smallestMinimum = parseFloat($("#" + ui.parentNode.id + " > span[id^='lblMinSystemWinning']").text());
                }
            }
        }
    });

    $("#lblMinWinningSystem").text(parseFloat(smallestMinimum.toString()).toFixed(2));
    //armindo
    var final = sumOfMaximum + winPlusSys;
    $("#lblMaxWinningSystem").text(final.toFixed(2));

    var totalSelectedSystemsCost = 0;

    $("#dvPossibleSystems > div > input[id^='chkActiveSystem_']").each(function(item, ui) {
        if ($("#" + ui.parentNode.id + " > input[id^='chkActiveSystem']").attr("checked")) {
            var temp = $("#" + ui.parentNode.id + " > span[id^='lblBankerSystemCost_']").text();
            totalSelectedSystemsCost += parseFloat(temp); //,10);
        }
    });

    $("#lblTotalSystemsCost").text(totalSelectedSystemsCost.toString());
}

function SelectAllSystems() {
    $("#dvPossibleSystems > div > input[id^='chkActiveSystem_']").each(function(item, ui) {
        $(this).attr("checked", true)
    });
    CalculateSmallestMinumumAndSumOfMaximum();
}


function PopulateArray(data) {
    minMaxArray.push(data);
}
function calculateWinningForSystem(sender) {
    var bankerAppString = "";
    var systemType = "";
    var possibleSystemId = 0;
    var bankersNumber = 0;
    var bankerQuota = 1;
    var PredictionsNumber = 0;
    var quotasNotBankers = new Array();
    var betsNumber = 0;
    var totalBetsNumber = 0;
    var betsCost = 0;
    var systemName = "";
    var minMax = new Array();
    var betCtx = $("#dvPossibleSystems");
    var ctx = $("#dvBetItemsCollection");
    PredictionsNumber = ctx.find("input[id^='chkActiveBet']:checked").length;
    bankersNumber = ctx.find("div[id^='dvBetItem']:has(input[id^='chkActiveBet']:checked) input[id^='chkBankerBet']:checked").length;
    $("#dvPossibleSystems").children().remove();
    if (bankersNumber > 0) {
        if (bankersNumber === 1)
            bankerAppString = "fix";
        else
            bankerAppString = "fixes";
    }

    totalBetsNumber = 0;
    var appendingString;
    var appdvSystem = [];
    for (var i = 0; i < PredictionsNumber - bankersNumber; i++) {
        if (CombinationsArray[PredictionsNumber] != undefined && CombinationsArray[PredictionsNumber].length > 0) {
            if ($.inArray(i + 1, CombinationsArray[PredictionsNumber]) == -1) {
                continue;
            }
        }
        possibleSystemId += 1;
        systemType = (i + 1).toString() + "/" + (PredictionsNumber - bankersNumber).toString();
        betsNumber = betsArrOfArr[(PredictionsNumber - bankersNumber)][i]; // betsNumber = calculateBetsNumber((i + 1), (PredictionsNumber - bankersNumber));
        totalBetsNumber += betsNumber;
        appdvSystem[i] = "<div  class='PossibleSystemDiv' id='dvSystem" + possibleSystemId.toString() + "' >";
        appdvSystem[i] += "<input  id='chkActiveSystem_" + possibleSystemId.toString() + "' type='checkbox' />";
        if (bankersNumber > 0)
            appdvSystem[i] += "<span class='PossibleSystemDescriptionLabel' id='lblBankerSystemDescription_" + possibleSystemId.toString() + "'>" + bankersNumber.toString() + " " + bankerAppString + " System " + systemType + " (" + betsNumber.toString() + " bets)" + "</span>&nbsp;<br/>";
        else
            appdvSystem[i] += "<span class='PossibleSystemDescriptionLabel' id='lblBankerSystemDescription_" + possibleSystemId.toString() + "'>" + "System " + systemType + " (" + betsNumber.toString() + " bets)" + "</span>&nbsp;<br/>";
        appdvSystem[i] += "<span>" + $("#lblhndPossibleWinning").val() + "</span>&nbsp;";
        if (betsNumber > 1) {
            appdvSystem[i] += "<span class='PossibleSystemMinWinningLabel' id='lblMinSystemWinning_" + possibleSystemId.toString() + "'>" + "0" + "</span>&nbsp;";

            appdvSystem[i] += "<span id='lblSeparator_" + possibleSystemId.toString() + "'> / </span>";
            appdvSystem[i] += "<span class='PossibleSystemMaxWinningLabel' id='lblMaxSystemWinning_" + possibleSystemId.toString() + "'>" + "0" + "</span>&nbsp;";
        }
        else {
            appdvSystem[i] += "<span class='PossibleSystemMinWinningLabel PossibleSystemMaxWinningLabel' id='lblMaxSystemWinning_" + possibleSystemId.toString() + "'>" + "0" + "</span>&nbsp;";
        }
        appdvSystem[i] += "<span class='stakeSpan'><input type='textbox' class='StakePerBet'/><input type='textbox' class='StakePerSystem'/></span>";
        appdvSystem[i] += "</div>";

    } // end for loop
    betCtx.append(appdvSystem.join(''));
    possibleSystemId += 1;
    //betsCost = totalBetsNumber * $("#txtStakePerBet").val();
    //   if (totalBetsNumber > 3) {
    //     $('#dvPossibleSystems').append("<div class='PossibleSystemDiv' id='dvSystem" + possibleSystemId.toString() + "' />");
    //    if (bankersNumber > 0)
    //      $("#dvSystem" + possibleSystemId.toString()).append("<span class='PossibleSystemDescriptionLabel' id='lblBankerSystemDescription" + possibleSystemId.toString() + "'>" + bankersNumber.toString() + " " + bankerAppString + " + </span>");
    //     $("#dvSystem" + possibleSystemId.toString()).append("<a href='javascript:SelectAllSystems()' class='BigSystemLink' id='lnkBigSystem_" + possibleSystemId.toString() + "'></a>");
    //     }
    $("#lblWinPlusSys").text("0.00");
    $("[id^='chkActiveSystem']", betCtx).change(function() {
        writeCalculations();

        $("#dvPossibleSystems > div > input:checkbox[id^='chkActiveSystem_']").each(function(item, ui) {
            currentBetId = ui.id.split("_")[1];
            if ($("#dvPossibleSystems > div > input:checkbox[id^='chkActiveSystem_']").length == currentBetId) {
                calculateWINPlusMulti("Sys");
                if (!document.getElementById("chkActiveSystem_" + currentBetId).checked)
                    $("#lblWinPlusSys").text("0.00");
            }
        });
    });
    $(".StakePerBet", betCtx).keyup(function() {
        if (!isNumber($(this).val())) {
            $(this).val("");
        }
        if (parseFloat($(this).val()) < 0) {
            $(this).val("");
        }
        var value = $(this).val();
        if (value >= 0.01) {
            $(this).parent().parent().find("input:checkbox").attr('checked', true);
            var multiplier = parseInt($(this).parent().parent().find(".PossibleSystemDescriptionLabel").text().split('(')[1]);
            $(this).parent().find(".StakePerSystem").val((value * multiplier).toFixed(2));
            var values = calculateMinimumAndMaximumForSystem($(this), value);
            $(this).parent().parent().find(".PossibleSystemMinWinningLabel").text(values[0]);
            $(this).parent().parent().find(".PossibleSystemMaxWinningLabel").text(values[1]);
            writeCalculations();
        }
        else {
            $(this).parent().parent().find("input:checkbox").attr('checked', false);
            $(this).parent().find(".StakePerSystem").val((0.00).toFixed(2));
            $(this).parents("#tabs_3").find("#lblMinWinningSystem").text("0.00");
            $(this).parent().parent().find(".PossibleSystemMinWinningLabel").text("0");
            $(this).parent().parent().find(".PossibleSystemMaxWinningLabel").text("0");
            //$(this).parent().find(".StakePerBet").val((0.00).toFixed(2));
            writeCalculations();
        }

    });
    $(".StakePerSystem", betCtx).keyup(function () {
        if (!isNumber($(this).val())) {
            $(this).val("");
        }
        if (parseFloat($(this).val()) < 0) {
            $(this).val("");
        }
        var value = $(this).val();
        if (value) {
            $(this).parent().parent().find("input:checkbox").attr('checked', true);
            var multiplier = parseInt($(this).parent().parent().find(".PossibleSystemDescriptionLabel").text().split('(')[1]);
            if (value != 0) {
                var tempStakePerBet;
                tempStakePerBet = value / multiplier;
                if (tempStakePerBet < 0.01) {
                        $(this).parent().find(".StakePerBet").val((0.00).toFixed(2));
                    value = 0;
                    $(this).val(0);
                    $(this).parent().parent().find("input:checkbox").attr('checked', false);
                    alert("Invalid amount");
                }
                else
                    $(this).parent().find(".StakePerBet").val((tempStakePerBet).toFixed(2));
            }
            var values = calculateMinimumAndMaximumForSystem($(this), value / multiplier);
            $(this).parent().parent().find(".PossibleSystemMinWinningLabel").text(values[0]);
            $(this).parent().parent().find(".PossibleSystemMaxWinningLabel").text(values[1]);
            writeCalculations();

        }
        else {
            $(this).parent().parent().find("input:checkbox").attr('checked', false);
            $(this).parent().find(".StakePerBet").val("");
            $(this).parents("#tabs_3").find("#lblMinWinningSystem").text("0.00");
            $(this).parent().parent().find(".PossibleSystemMinWinningLabel").text("0");
            $(this).parent().parent().find(".PossibleSystemMaxWinningLabel").text("0");
            writeCalculations();
        }

    });
   // $("#lnkBigSystem_" + possibleSystemId.toString()).text("Select all systems (" + totalBetsNumber.toString() + " bets), Stake " + betsCost.toString());
    CalculateSmallestMinumumAndSumOfMaximum();
}
function writeCalculations() {

    var minimumValue = [];
    var maximumValue = 0;
    var totalStake = 0;
    var iStakePerBet = 0;
    var iStakePerSys = 0;
    var ctx = $("#dvPossibleSystems");
    $(".PossibleSystemDiv:has(input:checkbox:checked) .PossibleSystemMinWinningLabel", ctx).map(function(index, val) {
        if (parseFloat($(val).text()) > 0)
            minimumValue.push(parseFloat($(val).text()));
    });
    var lblMinWinningSystemTemp = minimumValue.sort(function(a, b) { if (a > b) { return 1; } else { return -1; } })[0];
    if (minimumValue.length == 1) {
        calculateWINPlusMulti("Sys");
        lblMinWinningSystemTemp = lblMinWinningSystemTemp + winPlusSys;
    }
    if (lblMinWinningSystemTemp == null)
        $("#lblMinWinningSystem").text("0.00");
    else
        $("#lblMinWinningSystem").text(parseFloat(lblMinWinningSystemTemp).toFixed(2));
    $(".PossibleSystemDiv:has(input:checkbox:checked) .PossibleSystemMaxWinningLabel", ctx).map(function(index, val) {

        maximumValue += parseFloat($(val).text());
    });
    $(".PossibleSystemDiv:has(input:checkbox:checked) .StakePerSystem", ctx).map(function(index, val) {
        var parsed = parseFloat($(val).val());
        if (parsed > 0) {
            totalStake += parsed;
            iStakePerSys = parsed;
        }
    });
    $(".PossibleSystemDiv:has(input:checkbox:checked) .StakePerBet", ctx).map(function(index, val) {
        var parsed = parseFloat($(val).val());
        if (parsed > 0)
            iStakePerBet = parsed;
    });
    if (iStakePerBet == iStakePerSys)
        totalStakSys = iStakePerSys;
    $("#lblWinPlusSys").text(calculateWINPlusMulti("Sys").toFixed(2));


    var final = maximumValue + parseFloat(winPlusSys);
    $("#lblMaxWinningSystem").text(final.toFixed(2));

    //$("#lblMaxWinningSystem").text(parseFloat(maximumValue.toString()) + parseFloat(winPlusSys));
    $("#lblTotalSystemsCost").text(totalStake.toFixed(2));
}

function calculateMinimumAndMaximumForSystem(object, stakePerBet) {
    var minimum = 0;
    var maximum = 0;
    var appCombinationArray;
    var quotasMoltiplication = 1;
    var bankerQuota = 1;
    var quotasNotBankers = [];
    var minWinningPredictions = 0;
    var maxWinningPredictions = 0;
    var PredictionsNumber = 0;
    var betsNumber = 0;
    var bankersNumber = 0;
    var minMaxArray = [];
    $("#dvBetItemsCollection > div > div[id^='dvBetItem']").each(function(item, ui) {
        if ($(ui).find("input[id^='chkActiveBet']").attr("checked")) {
            PredictionsNumber += 1;
            if ($(ui).find("input[id^='chkBankerBet']").attr("checked") === true) {
                bankersNumber += 1;
                bankerQuota = bankerQuota * $(ui).data("Quota");
            }
            else {
                quotasNotBankers.push($(ui).data("Quota"));
                maxWinningPredictions += 1;
            }
        }
    });
    minWinningPredictions = parseInt(object.parent().parent().find(".PossibleSystemDescriptionLabel").text().split('m ')[1].split('/'));
    betsNumber = betsArrOfArr[maxWinningPredictions][minWinningPredictions];
    quotasNotBankers.sort(sortNumber);

    for (var i = 0; i <= minWinningPredictions - 1; i++) {
        quotasMoltiplication *= quotasNotBankers[i];
    }
    minimum = (quotasMoltiplication * stakePerBet * bankerQuota);

    maximum = 0;

    if (PredictionsNumber > 17) {
        quotasNotBankers.sort(sortNumber);
        $.ajax({
            type: 'POST',
            url: "../HttpHandlers/SystemCalculationService.asmx/GetSystemDetails",
            dataType: 'json',
            async: false,
            contentType: "application/json; charset=utf-8",
            data: JSON.stringify({ combinations: quotasNotBankers, banker: bankerQuota }), // { Mode: "MULTI", IdClient: "0", Amount: "5" },
            success: function(data) { minMaxArray = data.d; },
            error: function(jqXHR, textStatus, errorThrown) {
                alert("Error- Status: " + textStatus + " jqXHR Status: " + jqXHR.status + " jqXHR Response Text:" + jqXHR.responseText)
            }
        });
        maximum = minMaxArray[(minWinningPredictions * 2) - 1] * stakePerBet;
    }
    else {

        var combinationArray = comb(minWinningPredictions, maxWinningPredictions);




        var lngt1 = combinationArray.length - 1;
        var lngt2;
        for (var i = 0; i <= lngt1; i++) {
            quotasMoltiplication = 1;
            appCombinationArray = combinationArray[i].split(" ");
            lngt2 = appCombinationArray.length - 2;
            for (j = 0; j <= lngt2; j++) {
                quotasMoltiplication *= quotasNotBankers[appCombinationArray[j]];
            }
            maximum += (quotasMoltiplication * stakePerBet * bankerQuota);
        }
    }
    return new Array(minimum.toFixed(2), maximum.toFixed(2));
}


function bitprint(u) {
    var s = "";
    for (var n = 0; u; ++n, u >>= 1)
        if (u & 1) s += n + " ";
    return s;
}
function bitcount(u) {
    for (var n = 0; u; ++n, u = u & (u - 1));
    return n;
}
function comb(c, n) {
    var s = [];
    for (var u = 0; u < 1 << n; u++)
        if (bitcount(u) == c)
        s.push(bitprint(u))
    return s.sort();
}

var myFactorial = function factorial() {
    var memo = [1, 1];
    var fact = function(n) {
        var result = memo[n];
        if (typeof result !== 'number') {
            result = n * fact(n - 1);
            memo[n] = result;
        }
        return result;
    };
    return fact;
} ();

function calculateBetsNumber(k, n) {
    var nFactorial = myFactorial(n);
    var kFactorial = myFactorial(k);
    var nkFactorial = myFactorial(n - k)
    var result = nFactorial / (kFactorial * nkFactorial);
    return result;
}

function calculateTotalStake() {

    var aVal = 0;
    if ($('#txtStakePerBet').val() == "")
        $("#lblTotalStake_Multi").text("0.00");
    else
        $("#lblTotalStake_Multi").text(parseFloat($('#txtStakePerBet').val()).toFixed(2));
    if (isIntegralSystem === false) {
        if ($('#txtStakePerBet').val() == "")
            $("#lblTotalStake_Single").text((enabledSelectionsNumber * parseFloat(0)).toFixed(2));
        else
            $("#lblTotalStake_Single").text((enabledSelectionsNumber * parseFloat($('#txtStakePerBet').val())).toFixed(2));
    }
    else {
        aVal = $('#txtStakePerBet').val(); //* parseFloat($('#lblBetsNumberSingleTab').text());
        if (parseInt(aVal) === NaN || aVal === "") aVal = 0;
        $("#lblTotalStakeIntegral").text(aVal.toString());
    }
}

function calculateMinMaxIntegral() {

    var myArrMin = [{ id: 0, quota: ""}];
    var myArrMax = [{ id: 0, quota: ""}];
    var evntId = 0;
    var aBool = false;
    var aBool2 = false;

    var totalQuotaMin = 1;
    var totalQuotaMax = 1;

    $("#dvBetItemsCollection > div > div > input:checkbox[id^='chkActiveBet_']").each(function(item, ui) {
        aBool = false;
        aBool2 = false;
        if (checkIfSelectionIsEnabled(ui.id.split("_")[1]) == true) {
            evntId = getValueFromHiddenTextBox(ui.id.split("_")[1], "EventId");
            for (var i = 0; i < myArrMin.length; i++) {
                if (myArrMin[i].id === evntId) {
                    aBool = true;
                    if (parseFloat(myArrMin[i].quota) > parseFloat(getValueFromHiddenTextBox(ui.id.split("_")[1], "Quota"))) {
                        myArrMin[i].quota = getValueFromHiddenTextBox(ui.id.split("_")[1], "Quota");
                    }
                }
            }
            if (aBool == false)
                myArrMin.push({ id: evntId, quota: getValueFromHiddenTextBox(ui.id.split("_")[1], "Quota") });

            for (var i = 0; i < myArrMax.length; i++) {
                if (myArrMax[i].id === evntId) {
                    aBool2 = true;
                    if (parseFloat(myArrMax[i].quota) < parseFloat(getValueFromHiddenTextBox(ui.id.split("_")[1], "Quota"))) {
                        myArrMax[i].quota = getValueFromHiddenTextBox(ui.id.split("_")[1], "Quota");
                    }
                }
            }
            if (aBool2 == false)
                myArrMax.push({ id: evntId, quota: getValueFromHiddenTextBox(ui.id.split("_")[1], "Quota") });
        }
    });
    $("#lblBetsNumberIntegralTab").text(getNumberOfBetsForIntegralSystem().toString());
    for (var i = 1; i < myArrMin.length; i++) {
        totalQuotaMin = totalQuotaMin * parseFloat(myArrMin[i].quota);
        totalQuotaMax = totalQuotaMax * parseFloat(myArrMax[i].quota);
    }
    if (parseFloat(parseFloat($("#lblBetsNumberIntegralTab").text())) == 0) {
        var max = 0.00;
        var min = 0.00;
    }
    else {
        var max = parseFloat(parseFloat(totalQuotaMax) * parseFloat($("#lblTotalStakeIntegral").text()) / parseFloat(parseFloat($("#lblBetsNumberIntegralTab").text()))).toFixed(2);
        var min = parseFloat(parseFloat(totalQuotaMin) * parseFloat($("#lblTotalStakeIntegral").text()) / parseFloat(parseFloat($("#lblBetsNumberIntegralTab").text()))).toFixed(2);
    }

    

    $("#lblMaxWinningIntegral").text(max);
    $("#lblMinWinningIntegral").text(min);



    calculateWINPlusIntegral(myArrMin, myArrMax);
}
function calculateWINPlusIntegral(arrMin, arrMax) {
    var quotas = new Array();
    var moltiplicator = 0;
    var selectionsNumber = 0;
    var totalQuota = 1;
    var stake = 0;
    var winPlusMin = 0;
    var winPlusMax = 0;

    if ($("#txtStakePerBet").val() == "")
        stake = 0;
    else
        stake = parseFloat($("#txtStakePerBet").val());

    for (var i = 1; i < arrMin.length; i++) {
        if (parseFloat(arrMin[i].quota) < 1.10) continue;
        selectionsNumber += 1;
        totalQuota = (totalQuota * parseFloat(arrMin[i].quota));
    }
    var nBets = parseFloat($("#lblBetsNumberIntegralTab").text());

    winPlusMin = ((stake / nBets) * totalQuota * (SelectMoltiplier(selectionsNumber) - 1));
    if (winPlusMin > 10000) winPlusMin = 10000;
    if (idCountry != 2 && idCountry != 9 && idCountry != 59) {
        winPlusMin = 0; ;
    };

    totalQuota = 1;    
    for (var i = 1; i < arrMax.length; i++) {
        if (parseFloat(arrMax[i].quota) < 1.10) continue;
        totalQuota = (totalQuota * parseFloat(arrMax[i].quota));
    }

    winPlusMax = ((stake / nBets) * totalQuota * (SelectMoltiplier(selectionsNumber) - 1));
    
    if (winPlusMax > 10000) winPlusMax = 10000;
    if (idCountry != 2 && idCountry != 9 && idCountry != 59) {
        winPlusMax = 0; ;
    };

    $("#lblMinWinPlusIntegral").text(winPlusMin.toFixed(2));
    $("#lblMaxWinPlusIntegral").text(winPlusMax.toFixed(2));



    if (winPlusMin != NaN) {
        var valor2 = 0;
        if ($("#lblMinWinningIntegral").text() == "NaN" || $("#lblMinWinningIntegral").text() == "")
            valor2 = 0;
        else
            valor2 = parseFloat($("#lblMinWinningIntegral").text());
        
        var valor = winPlusMin + valor2
        $("#lblTotalMinWinningIntegral").text(valor.toFixed(2));
    }
    else {
        if ($("#lblMinWinningIntegral").text() == "")
            $("#lblTotalMinWinningIntegral").text("0.00");
        else
            $("#lblTotalMinWinningIntegral").text(parseFloat($("#lblMinWinningIntegral").text()).toFixed(2));
        
    }

    if (winPlusMax != NaN) {

        var valor2 = 0;
        if ($("#lblMaxWinningIntegral").text() == "NaN" || $("#lblMaxWinningIntegral").text() == "")
            valor2 = 0;
        else
            valor2 = parseFloat($("#lblMaxWinningIntegral").text());
        var valor = winPlusMax + valor2;
        $("#lblTotalMaxWinningIntegral").text(valor.toFixed(2));
    }
    else {
        if ($("#lblMaxWinningIntegral").text() == "")
            $("#lblTotalMaxWinningIntegral").text("0.00");
        else
            $("#lblTotalMaxWinningIntegral").text(parseFloat($("#lblMaxWinningIntegral").text()).toFixed(2));
    }
}



function calculateWINPlusMulti(type) {

    var quotas = new Array();
    var moltiplicator = 0;
    var selectionsNumber = 0;
    var totalQuota = 1;
    if (type == "Sys")
        var stake = parseFloat(totalStakSys);
    else {
        if ($("#lblTotalStake_Multi").text() == "")
            var stake = 0;
        else
            var stake = parseFloat($("#lblTotalStake_Multi").text());
    }
    var winPlus = 0;

    $("#dvBetItemsCollection > div > div[id^='dvBetItem']").each(function (item, ui) {
        if ($(ui).find("input[id^='chkActiveBet']").attr("checked")) {
            totalQuota = (totalQuota * $(ui).data("Quota")).toFixed(2);
            quotas.push(parseFloat($(ui).data("Quota")).toFixed(2));
            if (parseFloat($(ui).data("Quota")).toFixed(2) >= 1.10)
                selectionsNumber += 1;
        }
    })


    winPlus = ((stake * totalQuota) * (SelectMoltiplier(selectionsNumber) - 1));

    if (winPlus > 10000) winPlus = 10000;
    if (idCountry != 2 && idCountry != 9 && idCountry != 59) { winPlus = 0; }

    //    if (type == "Sys") {
    //        if (winPlus != NaN) {

    //            //var final = (parseFloat(winPlus.toString()) + parseFloat($("#lblMaxWinningSystem").text())).toFixed(2);
    //            //$("#lblMaxWinningSystem").text(final);
    //        }
    //        else {
    //            
    //            //$("#lblMaxWinningSystem").text(parseFloat($("#lblMaxWinningSystem").text()).toFixed(2));
    //        }
    //    }
    //    else {
    if (winPlus != NaN)
        $("#lblTotalWinning_Multi").text(parseFloat(parseFloat(winPlus) + parseFloat($("#lblPossibleWinning_Multi").text())).toFixed(2));
    else
        $("#lblTotalWinning_Multi").text(parseFloat($("#lblPossibleWinning_Multi").text()).toFixed(2));

    //}


    winPlusSys = winPlus;


    return winPlus;
}


function getInternetExplorerVersion() {
    var rv = -1; // Return value assumes failure.
    if (navigator.appName == 'Microsoft Internet Explorer') {
        var ua = navigator.userAgent;
        var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
        if (re.exec(ua) != null)
            rv = parseFloat(RegExp.$1);
    }
    return rv;
}
function useAjaxCall() {
    var ver = getInternetExplorerVersion();

    if (ver > -1) {
        if (ver > 8.0)
            return false;
        else
            return true;  //You should upgrade your copy of Internet Explorer.
    }
    return false;
}



function submitBets() {

    var flag = true;
    if ($("#ddlSubClients") !== undefined && $("#ddlSubClients option:selected").val() === "INVALID") {
        alert($("#lblSelectClient").val());
        return;
    }
        
    var currentBetId = -1;
    var currentEventId = -1;
    var currentIdSelection = -1;
    var currentQuota = -1;
    var isBanker = false;
    var systemType = "";
    var amount = 0;
    var idWeek = 0;

    var selectedTab = $("#tabs").tabs('option', 'selected');

    var Bets = { IdEvent: "", IdSelection: "", Banker: "", Odd: "", Market: "", Selection: "", IdWeek: "" };
    var Systems = { Legami: "", Amount: "", BetPerSystem: "" };
    var BettingSlip = { Mode: "", IdClient: "", Amount: "", Bets: [], Systems: [], MinWinning: "", MaxWinning: "", Winplus: "", TotalWinning: "", WinPlusPerc: "", Columns: "" };

    if (isIntegralSystem) {
        BettingSlip.Mode = "INTEGRAL";
        BettingSlip.Amount = $("#lblTotalStakeIntegral").text();
        BettingSlip.Columns = $("#lblBetsNumberIntegralTab").text();
        BettingSlip.MinWinning = $("#lblMinWinningIntegral").text();
        BettingSlip.MaxWinning = $("#lblMaxWinningIntegral").text();
        BettingSlip.Winplus = $("#lblMinWinPlusIntegral").text();
        BettingSlip.TotalWinning = $("#lblTotalMaxWinningIntegral").text();
    }
    else {
        switch (selectedTab) {
            case 0:
                BettingSlip.Mode = "SINGLE";
                BettingSlip.TotalWinning = $("#lblPossibleWinning_Single").text();
                BettingSlip.Amount = $("#lblTotalStake_Single").text();
                if (BettingSlip.Amount <= 0) {
                    $("#confirmState").hide();
                    $("#printState").hide();
                    $("#buttonWrapper").show();
                    alert("Invalid amount");
                    return;
                }
                if (isNumber(BettingSlip.Amount) === false) {
                    $("#confirmState").hide();
                    $("#printState").hide();
                    $("#buttonWrapper").show();
                    alert("Invalid amount");
                    return;
                }
                if (enabledSelectionsNumber > 1) {
                    BettingSlip.Mode = "SYSTEM";
                    BettingSlip.TotalWinning = $("#lblPossibleWinning_Single").text();
                    amount = $("#lblTotalStake_Single").text();
                    systemType = enabledSelectionsNumber;
                    BettingSlip.Systems.push({ Legami: 1, Amount: amount });
                }
                break;
            case 1:
                BettingSlip.Mode = "MULTI";
                BettingSlip.Amount = $("#lblTotalStake_Multi").text();
                BettingSlip.Winplus = $("#lblWinPlusMulti").text();
                BettingSlip.MaxWinning = $("#lblPossibleWinning_Multi").text();
                BettingSlip.TotalWinning = $("#lblTotalWinning_Multi").text();
                if (BettingSlip.Amount <= 0) {
                    $("#confirmState").hide();
                    $("#printState").hide();
                    $("#buttonWrapper").show();
                    alert("Invalid amount");
                    return;
                }
                if (isNumber(BettingSlip.Amount) === false) {
                    $("#confirmState").hide();
                    $("#printState").hide();
                    $("#buttonWrapper").show();
                    alert("Invalid amount");
                    return;
                }
                break;
            case 2:
                BettingSlip.Mode = "SYSTEM";
                BettingSlip.MinWinning = $("#lblMinWinningSystem").text();
                BettingSlip.MaxWinning = $("#lblMaxWinningSystem").text();
                BettingSlip.Amount = $("#lblTotalSystemsCost").text();
                BettingSlip.Winplus = $("#lblWinPlusSys").text();
                if (BettingSlip.Amount <= 0) {
                    $("#confirmState").hide();
                    $("#printState").hide();
                    $("#buttonWrapper").show();
                    alert("Invalid amount");
                    return;
                }
                if (isNumber(BettingSlip.Amount) === false) {
                    $("#confirmState").hide();
                    $("#printState").hide();
                    $("#buttonWrapper").show();
                    alert("Invalid amount");
                    return;
                }
                $("#dvPossibleSystems > div > input:checkbox[id^='chkActiveSystem_']").each(function (item, ui) {
                    systemType = "";
                    currentBetId = ui.id.split("_")[1];
                    if (document.getElementById(ui.id).checked) {
                        var systemTypeSplit = $("#lblBankerSystemDescription_" + currentBetId).text().split(" ");
                        amount = $(ui).parent().find(".StakePerSystem").val();
                        for (var i = 0; i < systemTypeSplit.length; i++) {
                            if (systemTypeSplit[i].indexOf("/") != -1) {
                                systemType = systemTypeSplit[i].replace(/^\s+|\s+$/g, '').split("/")[0]; // pare sia il trim di javascript
                                break;
                            }
                        }
                        var systemstring = $("#lblBankerSystemDescription_" + currentBetId).text();
                        var systembetnumber = systemstring.split("(")[1].split(" b")[0];

                        var appVar = 0;
                        appVar = parseFloat($("#" + ui.parentNode.id + " > span[id^='lblWinPlusSystemWinning']").text());
                        if (!isNaN(appVar)) {
                            BettingSlip.WinPlus = appVar;
                        }
                        if (amount >= 0.01) {
                            BettingSlip.Systems.push({ Legami: systemType, Amount: amount, BetPerSystem: systembetnumber });
                        } else { flag = false; }
                    }
                });

                break;
        }
    }
    if (flag) {
        $("#dvBetItemsCollection > div > div > input:checkbox[id^='chkActiveBet_']").each(function (item, ui) {
            currentBetId = ui.id.split("_")[1];
            if (document.getElementById("chkActiveBet_" + currentBetId).checked) {
                currentEventId = getValueFromHiddenTextBox(ui.id.split("_")[1], "EventId");
                currentIdSelection = getValueFromHiddenTextBox(ui.id.split("_")[1], "SelId");
                currentQuota = getValueFromHiddenTextBox(ui.id.split("_")[1], "Quota");
                isBanker = document.getElementById("chkBankerBet_" + currentBetId).checked;
                idWeek = getValueFromHiddenTextBox(ui.id.split("_")[1], "IdWeek");
                BettingSlip.Bets.push({ IdEvent: currentEventId, IdSelection: currentIdSelection, Banker: isBanker, Odd: currentQuota, Selection: getValueFromHiddenTextBox(ui.id.split("_")[1], "Selection"), Market: getValueFromHiddenTextBox(ui.id.split("_")[1], "Market"), IdWeek: idWeek });
            }
        });

        BettingSlip.IdClient = 0;
        var gicClient = $("#ddlSubClients option:selected");
        if (gicClient.length !== 0) {
            BettingSlip.IdClient = gicClient.val().split("|")[0];
        }
        $("#confirmState").hide();
        $.ajax({
            type: 'POST',
            url: "../HttpHandlers/BettingSlipHandler.ashx",
            dataType: 'json',
            contentType: "application/json; charset=utf-8",
            data: JSON.stringify(BettingSlip), // { Mode: "MULTI", IdClient: "0", Amount: "5" },
            success: function (data) { bettingSlipSubmitResponse(data); },
            error: function (jqXHR, textStatus, errorThrown) {
                alert("Error- Status: " + textStatus + " jqXHR Status: " + jqXHR.status + " jqXHR Response Text:" + jqXHR.responseText);
                $("#buttonWrapper").show();
            }
        });
    } else { alert("Invalid amount"); $("#confirmState").show(); }
}

function isNumber(n) {
    return !isNaN(parseFloat(n)) && isFinite(n);
}

function bettingSlipSubmitResponse(data) {
    betPSummary = data.BettingSlipForPrinting;
    processAnswer(data);
    $("span[id$='lblClientBalance']").text(data.Balance);
}

function backToNewSlip() {
    $("#printState").hide();
    $("#confirmState").hide();
    $("#buttonWrapper").show()
}

function printBettingSlip() {

    var sOption = "toolbar=yes,location=no,directories=yes,menubar=yes,";
    sOption += "scrollbars=yes,width=750,height=400,left =100,top=25";
    var sWinHTML = document.getElementById('divBetPreConfirmContent').outerHTML;
    var sWinHTML1 = document.getElementById('divBetConfirmContent').outerHTML;
    sWinHTML = sWinHTML1 + "<br>" + sWinHTML;
    var winprint = MM_openBrWindow("../PrintFriendly.aspx", "PrintFriendly", "sOption", "380", "400", "true");
    winprint.document.open();
    winprint.document.write("<html><head>");
    winprint.document.write("<link href=../Styles/PrinterFriendly.css type='text/css' rel='stylesheet' />");
    winprint.document.write("</head><body class=bodyLookup onload='javascript:onClick=window.print()'><center><br/>");
    winprint.document.write(betPSummary);
    winprint.document.write("</center></body></html>");
    winprint.document.close();
    winprint.focus();
}

function checkMatchNameLength(eventName, classType) {
    if (eventName.length > 32) {
        if (classType == "div") { return "MatchBetDivLong"; }
        else { return "eventTitleLong"; }
    }
    else {
        if (classType == "div") { return "MatchBetDiv"; }
        else { return "eventTitle"; }
    }
}

