function initFinResults() {
    var responseData;
    var financialTag;
    var financialAssetsPath;
    var webcastLinkTarget = "_self";
    var attributeDataNode = document.getElementsByClassName("financial-results-attributes")[0];
    var financialResultsApiUrl;
    if(attributeDataNode){
        financialTag = $(attributeDataNode).attr("financialTag");
        financialAssetsPath = $(attributeDataNode).attr("financialAssetsPath");
        webcastLinkTarget = $(attributeDataNode).attr("webcastLinkTarget");
        financialResultsApiUrl = $(attributeDataNode).attr("financialResultsApiUrl");
    }
    function getResponseData() {
        $.ajax({
            url: financialResultsApiUrl,
            type: "GET",
            dataType: "json",
            data: { "financialAssetsPath": financialAssetsPath, "financialTag" : financialTag} ,
            cache: false,
            success: function(response) {
                if (response !== undefined) {
                    loadData(response);
                } else {}
            },
            error: function(jqXHR, exception) {
                console.log("::ajax error-->", jqXHR)
            }
        });
    }

    getResponseData();

    function renderYearDropdown(uniqueYear) {
        let yearListHtml = '';
        uniqueYear.sort().reverse().map(yearItem => yearListHtml += `<li><a href="javascript:void(0);">` + DOMPurify.sanitize(yearItem) + `</a></li>`)
        $('.lp-dropdown-data-ir-fin-report').html(yearListHtml);
        $('.lp-dropdown-data-ir-fin-report-desktop >li').click(function(event) {
            const selectedYear = DOMPurify.sanitize(event.currentTarget.innerText);
            $('#reportFilter-ir-fin-report').html(selectedYear);
            getAccordionData(selectedYear);
        });
        $('.lp-dropdown-data-ir-fin-report-desktop >li')[0].click();
    }

    function loadData(finData) {
        responseData = finData;
        if (responseData.years && responseData.years.length > 0) {
            renderYearDropdown(responseData.years);
        }
    }

    function getAccordionData(year) {
        resetValues();
        if (responseData[year]) {
            let objLength = Object.keys(responseData[year]).length;
            if (objLength && objLength > 0) {
                for (let i in responseData[year]) {
                    const accordionWrapper = document.querySelector('.olam-ir-fin-report #olam-ir-accord-dynamic');
                    const accordionElm = "<div class=\"panel-group accordion-wrapper ir-fin-report-accordion\" id=\"accordion1\">\
                                        <div class=\"panel panel-default\">\
                                            <div class=\"ir-panel-heading\">\
                                                <a class=\"accordion-toggle collapsed\" href=\"javascript:void(0);\" aria-expanded=\"false\">\
                                                <div class=\"accordion-title\">Title</div>\
                                                    <i class=\"accordion-icon icon-arrow\"></i>\
                                                </a>\
                                            </div>\
                                            <div class=\"panel-collapse collapse\" for=\"accordion1\" id=\"collapse1\">\
                                                <div class=\"panel-body\">\
                                                    <div class=\"ir-fin-report-download-wrap\">\
                                                        <ul class=\"download-list\"></ul>\
                                                    </div>\
                                                </div>\
                                            </div>\
                                        </div>\
                                    </div>";
                    let parser = new DOMParser();
                    let cloneElm = parser.parseFromString(accordionElm, 'text/html');
                    let linkElm = cloneElm.querySelector('.accordion-toggle');
                    let collapseElm = cloneElm.querySelector('#collapse1');
                    let listItems = cloneElm.querySelector("ul");
                    listItems.innerHTML = "";
                    cloneElm.id = "accordion" + (i + 1);
                    collapseElm.id = "collapse" + (i + 1);
                    collapseElm.setAttribute("for", "accordion" + (i + 1));
                    linkElm.setAttribute("href", "javascript:void(0);");
                    let accorTitleElm = cloneElm.querySelector(".accordion-title");
                    accorTitleElm.innerHTML = Object.keys(responseData[year][i])[0];
                    getItems(Object.values(responseData[year][i])[0], cloneElm, i);
                    if (Object.values(responseData[year][i])[0].length > 0) {

                        accordionWrapper.appendChild(cloneElm.body);

                    }
                }
                activateEvents();
                // By defautl opening the first accordion during on load and while changing the year dropdown
                const allAccordions = document.getElementsByClassName('ir-panel-heading');
                allAccordions[0].click();
            }
        }
    }

    function activateEvents() {
        $(".ir-panel-heading").on("click", function() {
            let currentAccordion = $(this).closest(".accordion-wrapper").attr("id");
            var currentBoolean = $(this).next().is(':hidden');
            var accordion = $(".ir-panel-heading");
            // Resetting all accordion to collapse state
            $.each(accordion, function(key, value) {
                $(this).next().hide();
                $(this).find(".accordion-toggle").addClass("collapsed");
            });

            if (currentBoolean) {
                $(this).next().show();
                $(this).find(".accordion-toggle").removeClass("collapsed");
            } else {
                $(this).next().hide();
                $(this).find(".accordion-toggle").addClass("collapsed");
            }
        });
    }

    function getItems(itemData, cloneElm, index) {
        let list = cloneElm.querySelector(".download-list");
        for (let k = 0; k < itemData.length; k++) {
            let listItem = document.createElement('li');
            let itemType = itemData[k].itemType;
            let documentElm;
            let parser = new DOMParser();
            if (itemType == "pdf") {
                documentElm = '<div class="olam-ir-fin-item-wrapper"> <div class="document">' +
                    '<span alt="download-icon" class="doc-icon"/></a>' +
                    '</div>' +
                    '<div class="download-description">' +
                    '<div class="download-text">' + itemData[k].itemName + '</div>' +
                    '<div>' +
                    '<a class="link-download" href=' + encodeURI(itemData[k].itemLink) + '>Download</a><span class="ir-fin-chev-icon"></span>' +
                    '<span class="ir-fin-item-size">[' + itemData[k].itemSize + ', PDF]' + '</span>' +
                    '</div>' +
                    '</div> </div>';
            } else {
                documentElm = '<div class="olam-ir-fin-item-wrapper"> <div class="document">' +
                    '<div alt="play" class="ir-fin-play-icon" ></div>' +
                    '</div>' +
                    '<div class="download-description">' +
                    '<div class="download-text">' + itemData[k].itemName + '</div>' +
                    '<div>' +
                    '<a class="link-download" href=' + encodeURI(itemData[k].itemLink) + ' target='+webcastLinkTarget+'>Register & Watch </a><span class="ir-fin-chev-icon"></span>' +
                    '</div>' +
                    '</div> </div>';
            }
            let parsedHtml = parser.parseFromString(documentElm, 'text/html');
            listItem.classList.add("download-list-item");
            listItem.appendChild(parsedHtml.body);
            list.appendChild(listItem);
        }
    }

    function resetValues() {
        let parentElm = document.querySelector(".olam-ir-fin-report");
        let accordionElms = parentElm.querySelectorAll(".accordion-wrapper");
        if (accordionElms.length && accordionElms.length >= 1) {
            for (let [indx, item] of accordionElms.entries()) {
                item.remove();
            }
        }
    }

    $("body").on("click", ".ir-financial-modal-popup", function(event) {
        event.preventDefault();
        const pageURL = DOMPurify.sanitize($(this).attr('data-overlay-page'));
        $('#financialResultsModal').modal('show').find('.modal-body').load(DOMPurify.sanitize(pageURL)+' .root');
    });
}

$(document).ready(function() {
    initFinResults();
});