﻿function SwitchListCheckboxesStatus(ControlID, ListID) {
    var bIsChecked = $("#" + ControlID)[0].checked;
    $("#" + ListID).find(":checkbox").each(function() {
        this.checked = bIsChecked;
    });
}

function MakeEventsLink(iSportTypeID, ListID) {
    var strEventsLink = null;
    var strTopicsQueryString = null;
    $("#" + ListID).find(":checked").each(function() {
        if (strTopicsQueryString == null)
            strTopicsQueryString = $(this).val();
        else
            strTopicsQueryString += "," + $(this).val();
    });
    if (strTopicsQueryString != null)
        strEventsLink = "Events.aspx?st=" + iSportTypeID + "&t=" + strTopicsQueryString;
    return strEventsLink;
}

function RefreshPriorityCurrency(CountryDropDownControl, AccountPriorityCurrencyDropDownListID) {
    var strSelectesCountry = $(CountryDropDownControl).val();
    var objAccountPriorityCurrencyDropDownList = $("#" + AccountPriorityCurrencyDropDownListID);
    
    var strCurrency = objAccountPriorityCurrencyDropDownList.find("option[@value*='" + strSelectesCountry + "']").val();
    if (strCurrency)
        objAccountPriorityCurrencyDropDownList.val(strCurrency);
}

function ToggleNewsBlockVisibility(ContainerID)
{
    var element = $("#" + ContainerID);
    element.toggleClass("hiddenContainer");
}

function ShowOptionalOutcomes(LinkID, ResultPosition, OutcomesGroupsPerRowFieldID) {
    var strOutcomesGroupsPerRow = $("#" + OutcomesGroupsPerRowFieldID).val();

    var strOptionalOutcomesRow = $(LinkID).parent().parent();
    if (strOptionalOutcomesRow.children().size() == 1) {
        var url = "/WebServices/Line.asmx/GetOptionalOutcomes";
        var params = "strResultPosition=" + ResultPosition + "&strOutcomesGroupsPerRow=" + strOutcomesGroupsPerRow;
        $.ajax({
            type: "POST",
            url: url,
            data: params,
            success: function(data) {
                strOptionalOutcomesRow.parent().prev().children().eq(2).children(":first").toggleClass("optionalOutcomesExpanded");
                strOptionalOutcomesRow.children(":first").toggleClass("hiddenContainer");
                strOptionalOutcomesRow.html(strOptionalOutcomesRow.html() + $(data).find("string").text());
            },
            error: function(data) {
                alert("Ошибка обращения к веб-сервису");
            }
        });
    }
    else {
        strOptionalOutcomesRow.parent().prev().children().eq(2).children(":first").toggleClass("optionalOutcomesExpanded");
        strOptionalOutcomesRow.children(":first").toggleClass("hiddenContainer");
        strOptionalOutcomesRow.children(":last").toggleClass("hiddenContainer");
    }
}

function HideOptionalOutcomes(LinkID) {
    var objOptionalOutcomesContainer = $(LinkID).parent().parent();
    var strOptionalOutcomesRow = objOptionalOutcomesContainer.parent();
    strOptionalOutcomesRow.parent().prev().children().eq(2).children(":first").toggleClass("optionalOutcomesExpanded");
    strOptionalOutcomesRow.children(":last").toggleClass("hiddenContainer");
    strOptionalOutcomesRow.children(":first").toggleClass("hiddenContainer");
}

function ToggleImgContainerVisibility(ImgContainerID, MapLatitude, MapLongitude, MapAltText, ImagesArray, AltTextArray, ImagesPreviewArray)
{
    var darkBGElement = $("#darkBackground");
    var element = $("#" + ImgContainerID);

    var objMapTab = element.find("#MapTab");
    var objImagesTab = element.find("#ImagesTab");

    var mapContainer = null;

    if (element.hasClass("hiddenContainer")) {
        if (GBrowserIsCompatible() && MapLatitude != "" && MapLongitude != "") {
            if (objMapTab.hasClass("hiddenContainer")) {
                objMapTab.toggleClass("hiddenContainer");
                objImagesTab.toggleClass("hiddenContainer");
            }
            mapContainer = new GMap2(objMapTab.get(0), { size: new GSize(640, 480) });
            mapContainer.setCenter(new GLatLng(MapLatitude, MapLongitude), 15);
            mapContainer.addControl(new GMapTypeControl());
            mapContainer.addControl(new GLargeMapControl());
            mapContainer.addOverlay(new GMarker(new GLatLng(MapLatitude, MapLongitude), { title: MapAltText }));
        }
        else {
            if (!objMapTab.hasClass("hiddenContainer")) {
                objMapTab.toggleClass("hiddenContainer");
                objImagesTab.toggleClass("hiddenContainer");
            }
        }

        if (ImagesArray != "") {
            var arrayImages = ImagesArray.split(",");
            var arrayAltText = AltTextArray.split(",");
            var strImagesContainer = "";
            var strHiddenAttribute = "";
            for (var i = 0; i < arrayImages.length; i++) {
                strHiddenAttribute = i > 0 ? " class=\"hiddenContainer\"" : "";
                strImagesContainer += "<div id=\"" + i + "\"" + strHiddenAttribute + "><img src=\"/img/addresses/" + arrayImages[i] + "\" alt=\"" + arrayAltText[i] + "\" height=\"480\" width=\"640\" /></div>";
            }
            element.find("#ImagesPlace").html(strImagesContainer);

            var arrayPreviews = ImagesPreviewArray.split(",");
            var strPreviewsContainer = "<ul class=\"imgPreview\">";
            var strFirstItemAttribute = "";
            for (var i = 0; i < arrayPreviews.length; i++) {
                strFirstItemAttribute = i == 0 ? " class=\"firstPreview\"" : "";
                strPreviewsContainer += "<li" + strFirstItemAttribute + "><a href=\"#\" class=\"controlLink\" onClick=\"ToggleImgContainer('" + ImgContainerID + "', '" + i + "'); return false;\"><img src=\"/img/addresses/" + arrayPreviews[i] + "\" alt=\"" + arrayAltText[i] + "\" height=\"68\" width=\"90\" /></a></li>";
            }
            strPreviewsContainer += "</ul>";
            element.find("#ImagesPreviewPlace").html(strPreviewsContainer);
        }

        var objImgContainerTabsSwitch = element.find("#ImgContainerTabsSwitch");
        if (!objImgContainerTabsSwitch.hasClass("hiddenContainer"))
            objImgContainerTabsSwitch.toggleClass("hiddenContainer");
        var objImgContainerTabsSwitchControl = objImgContainerTabsSwitch.find(":first-child");
        objImgContainerTabsSwitchControl.text("переключить на фотографии");        
        
        var bAreAllTabsAvailable = (MapLatitude != "" && MapLongitude != "") && ImagesArray != "";
        if (bAreAllTabsAvailable && objImgContainerTabsSwitch.hasClass("hiddenContainer")) {
            objImgContainerTabsSwitch.toggleClass("hiddenContainer");
        }

        if ((GBrowserIsCompatible() && MapLatitude != "" && MapLongitude != "") || ImagesArray != "") {
            var iPageVerticalScrolling = $(document).height();
            darkBGElement.css("height", iPageVerticalScrolling + "px");
            var containerPosX = ($(document).width() - element.width() - element.outerWidth()) / 2;
            var containerPosY = $(document).scrollTop() + 50;
            element.css({ "left": containerPosX, "top": containerPosY });
        }
    }

    darkBGElement.toggleClass("hiddenContainer");
    element.toggleClass("hiddenContainer");
}

function SwitchImgContainerTabs(ImgContainerID, ControlID) {
    var element = $("#" + ImgContainerID);
    var objControl = $("#" + ControlID);
    var objMapTab = element.find("#MapTab");
    var objImagesTab = element.find("#ImagesTab");

    objMapTab.toggleClass("hiddenContainer");
    objImagesTab.toggleClass("hiddenContainer");

    if (objMapTab.hasClass("hiddenContainer"))
        objControl.text("переключить на карту");
    else
        objControl.text("переключить на фотографии");
}

function ToggleImgContainer(ImgContainerID, ActiveImageID)
{
    var element = $("#" + ImgContainerID);
    element.find("#ImagesPlace > div").each(
        function(index)
        {
            if (!$(this).hasClass("hiddenContainer"))
                $(this).toggleClass("hiddenContainer");
        });
    element.find("#" + ActiveImageID).toggleClass("hiddenContainer");
}

function ChangeEventsLinks(CheckboxID, ListID)
{
    var bIsChecked = $("#" + CheckboxID).is(':checked');
    var strSeparatorChar = "";
    var strNewUrl = "";

    $("#" + ListID + " a").each(
        function (index)
        {
            var strLink = $(this).attr("href");
            if (bIsChecked)
            {
                if (strLink.lastIndexOf("opt_outcomes") == -1)
                {
                    strSeparatorChar = strLink.lastIndexOf("?") > -1 ? "&" : "?";
                    strNewUrl = strLink + strSeparatorChar + "opt_outcomes=1";
                }
            }
            else
            {
                if (strLink.lastIndexOf("opt_outcomes") > -1)
                {
                    var attrPos = strLink.lastIndexOf("opt_outcomes");
                    strNewUrl = strLink.substring(0, attrPos - 1);
                }
            }
            if (strNewUrl != "")
                $(this).attr("href", strNewUrl);
        }
    );
}

function RefreshBirthDateSelector(YearSelectorControlID, MonthSelectorControlID, DaySelectorControlID)
{
    var YearSelectorControl = $("#" + YearSelectorControlID)[0];
    var SelectedYear = YearSelectorControl.options[YearSelectorControl.selectedIndex].value;

    var MonthSelectorControl = $("#" + MonthSelectorControlID)[0];
    var SelectedMonth = MonthSelectorControl.options[MonthSelectorControl.selectedIndex].value;

    var DaySelectorControl = $("#" + DaySelectorControlID)[0];

    var bIsLeapYear = SelectedYear % 4 == 0;

    var daysNumber = 31;
    if (SelectedMonth == 4 || SelectedMonth == 6 || SelectedMonth == 9 || SelectedMonth == 11) {
        daysNumber = 30;
    }
    else {
        if (SelectedMonth == 2)
            daysNumber = bIsLeapYear ? 29 : 28;
    }

    while (DaySelectorControl.options.length > 0)
        DaySelectorControl.remove(0);

    for (var iDay = 1; iDay <= daysNumber; iDay++) {
        var opt = document.createElement("option");
        opt.text = iDay;
        opt.value = iDay;
        DaySelectorControl.options.add(opt);
    }
}

function RegistrationFormConfirmation(ConfirmationCheckBoxID, SubmitButtonID) {
    var SubmitButton = $("#" + SubmitButtonID);
    var bIsConfirmationCheckBoxChecked = $("#" + ConfirmationCheckBoxID).is(':checked');

    if (bIsConfirmationCheckBoxChecked) {
        if (SubmitButton.is(":disabled"))
            SubmitButton.removeAttr("disabled");
    }
    else {
        if (!SubmitButton.is(":disabled"))
            SubmitButton.attr("disabled", "disabled");
    }
}

function ProcessROBOXchangeDeposit(AccountFieldID, strMerchant, strSignature, iClientNumber, iSessionID) {
    var strAccount = $("#" + AccountFieldID).val();

    var ROBOXchangePayment = document.createElement('form');
    ROBOXchangePayment.action = 'https://merchant.roboxchange.com/Index.aspx';
    ROBOXchangePayment.method = 'POST';
    ROBOXchangePayment.appendChild(AddFormElement('MrchLogin', strMerchant));
    ROBOXchangePayment.appendChild(AddFormElement('OutSum', ''));
    ROBOXchangePayment.appendChild(AddFormElement('InvId', ''));
    ROBOXchangePayment.appendChild(AddFormElement('Desc', 'Deposit to Liga Stavok account #' + strAccount));
    ROBOXchangePayment.appendChild(AddFormElement('SignatureValue', strSignature));
    ROBOXchangePayment.appendChild(AddFormElement('shpAccount', strAccount));
    ROBOXchangePayment.appendChild(AddFormElement('shpClient', iClientNumber));
    ROBOXchangePayment.appendChild(AddFormElement('shpSession', iSessionID));
    document.body.appendChild(ROBOXchangePayment);
    ROBOXchangePayment.submit();
}

function AddFormElement(Name, Value) {
    var elem = document.createElement('input');
    elem.type = 'hidden';
    elem.name = Name;
    elem.value = Value;
    return elem;
}

function ToggleBetType(ItemID, SingleBetContainerID, ComboBetContainerID, ActiveContainerID) {
    $(ItemID).parent().children().each(function() {
        $(this).removeClass("active");
    });
    $(ItemID).addClass("active");

    var objActiveContainer = $("#" + ActiveContainerID);
    if (objActiveContainer.hasClass("hiddenContainer")) {
        $("#" + SingleBetContainerID).toggleClass("hiddenContainer");
        $("#" + ComboBetContainerID).toggleClass("hiddenContainer");
    }
}