var CALC_DATA = [];

(function () {
    const DEBUG_MODE = location.href.match(/debug/) ? true : false;
    const DEBUG_MODE2 = location.href.match(/debug2/) ? true : false;
    const SP_MODE = navigator.userAgent.match(/iphone|ipod|android.+mobile/i) ? true : false;
    const IOS_MODE = SP_MODE && navigator.userAgent.match(/iphone|ipod|ipad/i) ? true : false;
    const IS_MACHINE_PAGE = location.href.match(/\/machine\/\d+\//);
    const CURRENT_TIMESTAMP = new Date().getTime();
    const COMPONENTS = getComponents();
    const IS_SUISOKU2 = location.href.match(/suisoku2|suisoku3/) ? true : false;
    let tanNumber = 1;
    const AJAX_TIMEOUT = 1000 * 60 * 60;

    document.addEventListener('DOMContentLoaded', function (event) {
        if (location.href.match(/\/question\//)) {
            let deleteElement = document.getElementsByClassName('bl_outline_menuHead');

            for (var i = deleteElement.length - 1; i >= 0; i--) {
                deleteElement[i].parentNode.removeChild(deleteElement[i]);
            }

            deleteElement = document.getElementsByClassName('bl_outline_menuItem_txt');

            for (var i = deleteElement.length - 1; i >= 0; i--) {
                deleteElement[i].parentNode.removeChild(deleteElement[i]);
            }
        }

        let toolElement = document.querySelector('.bl_tool');

        if (toolElement && !toolElement.querySelector('.el_menuItem')) {
            toolElement.parentNode.removeChild(toolElement);
        }

        if (location.href.match(/\/suisoku/)) {
            let targetElements = document.querySelectorAll('.bl_outline_menuHead');

            for (let i = 0, count = targetElements.length; i < count; i++) {
                targetElements[i].style.display = 'none';
            }

            targetElements = document.querySelectorAll('.bl_outline_menuItemBox');

            for (let i = 0, count = targetElements.length; i < count; i++) {
                targetElements[i].style.display = 'none';
            }
        }

        let sliderElement = document.getElementsByClassName('sec_inner')[0];

        if (sliderElement) {
            $('.slider').slick({
                autoplay: true, //自動再生
                autoplaySpeed: 2000, //自動再生のスピード
                speed: 800, //スライドするスピード
                dots: true, //スライドしたのドット
                dotsClass: 'slide-dots', // ドットのクラス名
                arrows: false, //左右の矢印
                infinite: true, //スライドのループ
                pauseOnHover: false, //ホバーしたときにスライドを一時停止しない
            });

            let sliderImageElement = sliderElement.getElementsByTagName('img');

            for (var i = 0, count = sliderImageElement.length; i < count; i++) {
                sliderImageElement[i].addEventListener('mousedown', function (event) {
                    clickSlidePosition = event.clientX;
                }, false);

                sliderImageElement[i].addEventListener('mousemove', function (event) {
                    currentCursorPosition = event.clientX;
                }, false);

                sliderImageElement[i].addEventListener('click', function (event) {
                    clickSlideElement = event.currentTarget.parentNode;

                    setTimeout(function () {
                        if (currentCursorPosition === clickSlidePosition) {
                            if (!clickSlideElement.getAttribute('data-ad-link')) {
                                return false;
                            }

                            updateAdBannerClick(clickSlideElement);
                            open(clickSlideElement.getAttribute('data-ad-link'), '_self');
                        } else if (isMoveSlider) {
                            isMoveSlider = false;
                        }
                    }, 100);
                }, false);
            }
        }

        let isAdData = false;

        if (location.href.replace(/\?mode=debug.*$/, '').match(/\/kaiseki\/$/)) {
            let adElement = document.getElementById('pcBigAd');

            if (adElement) {
                if (adData && adData['adData'] && (adData['adData'].length > 0)) {
                    for (let i = 0, count = adData['adData'].length; i < count; i++) {
                        if (adData['adData'][i]['adPosition'] === '【PC】ビッグバナー') {
                            isAdData = true;
                            /*
                            adElement.setAttribute('data-ad-id', adData['adId']);
                            adElement.setAttribute('data-ad-position', adData['adData'][i]['adPosition']);
                            adElement.setAttribute('data-ad-image', adData['adData'][i]['adImage']);
                            adElement.setAttribute('data-ad-link', adData['adData'][i]['adLink']);
                            adElement.innerHTML = '<img src="' + adData['adData'][i]['adImage'] + '">';
                            */
                            break;
                        }
                    }
                }

                /*
                let targetElement = document.getElementsByTagName('header')[0];
                targetElement.parentNode.insertBefore(adElement, targetElement.nextElementSibling);
                */

                if (isAdData) {
                    document.getElementById('pcBigAd').getElementsByTagName('img')[0].addEventListener('click', function (event) {
                        updateAdClick('pcBigAd');
                        open(document.getElementById('pcBigAd').getAttribute('data-ad-link'), '_self');
                    }, false);
                }
            }
        }

        isAdData = false;

        let adElement = document.getElementById('pcSideAd');

        if (adElement) {
            if (adData && adData['adData'] && (adData['adData'].length > 0)) {
                for (let i = 0, count = adData['adData'].length; i < count; i++) {
                    if (adData['adData'][i]['adPosition'] === '【PC】サイドバナー') {
                        isAdData = true;
                        adElement.setAttribute('data-ad-id', adData['adId']);
                        adElement.setAttribute('data-ad-position', adData['adData'][i]['adPosition']);
                        adElement.setAttribute('data-ad-image', adData['adData'][i]['adImage']);
                        adElement.setAttribute('data-ad-link', adData['adData'][i]['adLink']);
                        adElement.innerHTML = '<img src="' + adData['adData'][i]['adImage'] + '">';
                        break;
                    }
                }
            }

            /*
            let targetElement = document.getElementsByClassName('searchform')[0];
            targetElement.parentNode.insertBefore(adElement, targetElement.nextElementSibling);
            */

            if (isAdData) {
                document.getElementById('pcSideAd').getElementsByTagName('img')[0].addEventListener('click', function (event) {
                    updateAdClick('pcSideAd');
                    open(document.getElementById('pcSideAd').getAttribute('data-ad-link'), '_self');
                }, false);
            } else {
                /*
               adElement.innerHTML = "<!-- /9176203,29943587/1782972 PC PC_レクタングル_01_なな徹用_サイドバナー -->\n<div id='div-gpt-ad-1648695387480-0'>\n<script>\ngoogletag.cmd.push(function() { googletag.display('div-gpt-ad-1648695387480-0'); });\n</script>\n</div>";
               */
            }
        }

        isAdData = false;

        if (location.href.match(/\/machine\/\d+\//)) {
            if (document.getElementsByClassName('specialBannerArea')[0]) {

                if (adData && adData['adData'] && (adData['adData'].length > 0)) {
                    adElement = document.createElement('div');
                    let adHtml = '';

                    for (let i = 0, count = adData['adData'].length; i < count; i++) {
                        if (adData['adData'][i]['adCategory'] === 'special') {
                            isAdData = true;
                            adHtml += '<div data-ad-name="' + adData['machineName'] + '" data-ad-position="' + adData['adData'][i]['adPosition'] + '" data-ad-image="' + adData['adData'][i]['adImage'] + '" data-ad-link="' + adData['adData'][i]['adLink'] + '"><img src="' + adData['adData'][i]['adImage'] + '"></div>';
                        }
                    }

                    if (isAdData) {
                        if (document.getElementsByClassName('sidemenu')[0]) {
                            adElement.innerHTML = '<h2 class="el_tabList_head el_mainHead sidemenu_parts">特集</h2>';
                        } else {
                            adElement.innerHTML = '<h2 class="b-skyblue">特集</h2>';
                        }

                        adElement.innerHTML += '<div class="specialBannerArea-items">' + adHtml + '</div>';

                        let targetElement = document.getElementsByClassName('main-list')[0];
                        targetElement = targetElement ? targetElement : document.getElementsByClassName('sidemenu')[0];

                        if (targetElement) {
                            // adElement.className = 'specialBannerArea';
                            // targetElement.parentNode.insertBefore(adElement, targetElement.nextElementSibling);

                            document.getElementsByClassName('specialBannerArea')[0].innerHTML = adElement.innerHTML;

                            document.getElementsByClassName('specialBannerArea')[0].addEventListener('click', function (event) {
                                let targetElement = event.target.parentNode;

                                if (!targetElement.getAttribute('data-ad-link')) {
                                    return false;
                                }

                                updateAdBannerClick(targetElement);
                                open(targetElement.getAttribute('data-ad-link'), '_self');
                            }, false);
                        } else {
                            targetElement = document.getElementsByClassName('machine-img')[0];

                            if (targetElement) {
                                // adElement.className = 'specialBannerArea2';
                                // targetElement.parentNode.insertBefore(adElement, targetElement.nextElementSibling);

                                if (document.getElementsByClassName('specialBannerArea')[0]) {
                                    document.getElementsByClassName('specialBannerArea')[0].innerHTML = adElement.innerHTML;
                                    document.getElementsByClassName('specialBannerArea')[0].addEventListener('click', function (event) {
                                        let targetElement = event.target.parentNode;

                                        if (!targetElement.getAttribute('data-ad-link')) {
                                            return false;
                                        }

                                        updateAdBannerClick(targetElement);
                                        open(targetElement.getAttribute('data-ad-link'), '_self');
                                    }, false);
                                }
                            }
                        }
                    } else {
                        document.getElementsByClassName('specialBannerArea')[0].parentNode.removeChild(document.getElementsByClassName('specialBannerArea')[0]);
                    }
                } else {
                    document.getElementsByClassName('specialBannerArea')[0].parentNode.removeChild(document.getElementsByClassName('specialBannerArea')[0]);
                }
            }
        }

        if (location.href.match(/\?c=p/) || location.href.match(/\/p\//)) {
            let tabMenus = document.getElementsByClassName('el_tabItem');

            if (tabMenus) {
                let tabMenuchildren = '';

                for (var i = 0, count = tabMenus.length; i < count; i++) {
                    if (!tabMenus[i].innerHTML.match(/パチスロ/) && !tabMenus[i].innerHTML.match(/パチンコ/)) {
                        continue;
                    }

                    if (tabMenus[i].innerHTML.match(/パチンコ/)) {
                        tabMenus[i].classList.add('active');

                        if (tabMenus[i].parentNode.parentNode.getElementsByClassName('el_tabContents')[1]) {
                            tabMenus[i].parentNode.parentNode.getElementsByClassName('el_tabContents')[1].classList.add('active');
                        }
                    } else if (tabMenus[i].innerHTML.match(/パチスロ/)) {
                        tabMenus[i].classList.remove('active');

                        if (tabMenus[i].parentNode.parentNode.getElementsByClassName('el_tabContents')[0]) {
                            tabMenus[i].parentNode.parentNode.getElementsByClassName('el_tabContents')[0].classList.remove('active');
                        }
                    }

                    /*
                    tabMenuchildren = tabMenus[i].children;

                    for (var j = 0, count2 = tabMenuchildren.length; j < count2; j++) {
                        if (tabMenuchildren[j].innerHTML.match(/パチンコ/)) {
                            tabMenuchildren[j].classList.add('active');
                            tabMenus[i].parentNode.getElementsByClassName('tabContent')[1].classList.add('active');
                        } else if (tabMenuchildren[j].innerHTML.match(/パチスロ/)) {
                            tabMenuchildren[j].classList.remove('active');
                            tabMenus[i].parentNode.getElementsByClassName('tabContent')[0].classList.remove('active');
                        }
                    }
                    */
                }
            }
        }

        let sideMenu = document.getElementsByTagName('aside')[0];

        if (sideMenu && location.href.match(/\/machine\//)) {
            let sideMenuLinks = sideMenu.getElementsByTagName('a');

            if (sideMenuLinks) {
                for (var i = 0, count = sideMenuLinks.length; i < count; i++) {
                    if (sideMenuLinks[i].innerHTML.match(/期待値早見表/)) {
                        sideMenuLinks[i].parentNode.style.display = 'none';
                        break;
                    }
                }
            }
        }

        setMachinePageInformation();

        /*
        let linkElements = document.querySelectorAll('[href^="https://nana-press.com/kaiseki/machine/"]');

        for (var i = 0, count = linkElements.length; i < count; i++) {
            linkElements[i].href = linkElements[i].href.replace(/^.*?\/machine\/(.*)$/, 'https://sub-nana-press.kagoyacloud.com/kaiseki/machine/' + '$1');
        }

        linkElements = document.querySelectorAll('[href^=" https://nana-press.com/kaiseki/machine/"]');

        for (var i = 0, count = linkElements.length; i < count; i++) {
            linkElements[i].href = linkElements[i].href.replace(/^.*?\/machine\/(.*)$/, 'https://sub-nana-press.kagoyacloud.com/kaiseki/machine/' + '$1');
        }
        */

        if (document.getElementsByClassName('suisokusDataContent')[0]) {
            if (!IS_SUISOKU2) {
                document.getElementsByClassName('view-contents-preview-content-result')[0].classList.add('activeContent');
                document.getElementsByClassName('view-contents-preview-content-result')[0].setAttribute('data-switch-content', '1');

                let newElement = document.createElement('div');
                newElement.innerHTML = createComponent('suisokusDataResultSwitchMenu');

                let swithMenuElements = newElement.querySelectorAll('[data-switch-menu]');

                for (var i = 0, count = swithMenuElements.length; i < count; i++) {
                    swithMenuElements[i].addEventListener('click', function (event) {
                        event.stopPropagation();

                        let targetElement = event.currentTarget;
                        tanNumber = Number(targetElement.getAttribute('data-switch-menu'));

                        targetElement.parentNode.setAttribute('data-switch-menu-current', tanNumber);
                        targetElement.parentNode.parentNode.getElementsByClassName('activeContent')[0].classList.remove('activeContent');
                        targetElement.parentNode.parentNode.querySelector('[data-switch-content="' + tanNumber + '"]').classList.add('activeContent');

                        if (!IS_SUISOKU2 && document.getElementsByClassName('theoryResultData')[0] && (tanNumber === 2)) {
                            document.getElementsByClassName('theoryResultData')[0].style.display = 'block';
                        } else if (!IS_SUISOKU2 && document.getElementsByClassName('theoryResultData')[0]) {
                            document.getElementsByClassName('theoryResultData')[0].style.display = '';
                        }

                    }, { capture: false, once: false, passive: true });
                }

                document.getElementsByClassName('view-contents-preview-content-main')[0].parentNode.insertBefore(newElement.children[0], document.getElementsByClassName('view-contents-preview-content-main')[0].nextElementSibling);
            }

            CALC_DATA = JSON.parse(document.getElementsByClassName('calcData')[0].innerHTML);
            document.getElementsByClassName('view-contents-preview-content-result')[0].innerHTML = '';

            document.getElementsByClassName('view-contents-preview-content-main')[0].getElementsByTagName('button')[0].addEventListener('click', function (event) {
                suisokuResultData();
            }, { capture: false, once: false, passive: true });

            let suisokuCheckElements = document.getElementsByClassName('suisokuCheck');

            if (suisokuCheckElements.length > 0) {
                for (var i = suisokuCheckElements.length - 1; i >= 0; i--) {
                    suisokuCheckElements[i].parentNode.removeChild(suisokuCheckElements[i]);
                }
            }

            if (document.getElementsByClassName('suisokusDataResultContent-wrapper')[0]) {
                document.getElementsByClassName('suisokusDataResultContent-wrapper')[0].classList.add('suisokusDataResultContent-wrapper-pc');
            }

            /*
            let pElement = document.createElement('p');
            pElement.innerHTML = '※項目名に*が付いているものは入力必須';
            document.getElementsByClassName('suisokusDataContent-header')[0].appendChild(pElement);
            */

            document.getElementsByClassName('suisokusDataContent-footer')[0].getElementsByTagName('a')[0].innerHTML = '＞＞推測基準値を確認する';
            document.getElementsByClassName('suisokusDataContent-footer')[0].getElementsByTagName('button')[0].innerHTML = '推測開始';

            $('.inputGameCount').on('input', function (e) {
                var value = parseInt($(this).val());
                var min = parseInt($(this).attr('min'));
                if (value < min) { $(this).val(min); }
            });

            $('.inputItemCount').on('input', function (e) {
                var value = parseInt($(this).val());
                var min = parseInt($(this).attr('min'));
                if (value < min) { $(this).val(min); }
            });

            let inputElements = document.getElementsByClassName('inputGameCount');

            for (var i = 0, count = inputElements.length; i < count; i++) {
                inputElements[i].min = 0;

                if (inputElements[i].required) {
                    inputElements[i].parentNode.parentNode.getElementsByClassName('suisokusDataItemGroup-item-name')[0].innerHTML += '*';
                }
            }

            inputElements = document.getElementsByClassName('inputItemCount');

            for (var i = 0, count = inputElements.length; i < count; i++) {
                inputElements[i].min = 0;

                if (inputElements[i].required) {
                    inputElements[i].parentNode.parentNode.getElementsByClassName('suisokusDataItemGroup-item-name')[0].innerHTML += '*';
                }
            }

            setSuisokuQueryValue();
        }

        let infoElement = document.getElementsByClassName('update-info')[0];

        if (infoElement) {
            let infoTextElements = infoElement.getElementsByClassName('text');

            let prevHeight = 0;

            for (var i = 0, count = infoTextElements.length; i < count; i++) {
                currentHeight = infoTextElements[i].getElementsByTagName('p')[0].offsetHeight;

                if (i % 2 === 0) {
                    prevHeight = infoTextElements[i].getElementsByTagName('p')[0].offsetHeight;
                } else if (currentHeight < prevHeight) {
                    infoTextElements[i].getElementsByTagName('p')[0].style.height = prevHeight + 'px';
                } else if (currentHeight > prevHeight) {
                    infoTextElements[i - 1].getElementsByTagName('p')[0].style.height = currentHeight + 'px';
                }
            }
        }

        if (location.href.match(/stg\-preview\.nana-press\.com/)) {
            let aElements = document.getElementsByTagName('a');

            for (var i = 0, count = aElements.length; i < count; i++) {
                if (aElements[i].href.match(/system\.7press-sub/)) {
                    aElements[i].href = aElements[i].href.replace(/^http.*(kaiseki\/.*)$/, 'https://stg-preview.nana-press.com/$1').replace(/com\/machine/, 'com/kaiseki/machine').replace(/page\//, '');
                } else if (aElements[i].href.match(/system/)) {
                    aElements[i].href = aElements[i].href.replace(/^http.*page\/(.*)$/, 'https://stg-preview.nana-press.com/kaiseki/$1').replace(/com\/machine/, 'com/kaiseki/machine').replace(/page\//, '');
                } else if (aElements[i].href.match(/preview/)) {
                    if (aElements[i].href.match(/index\//)) {
                        aElements[i].href = aElements[i].href.replace(/^http.*(machine\/.*)$/, 'https://stg-preview.nana-press.com/kaiseki/index/$1').replace(/com\/machine/, 'com/kaiseki/index/machine').replace(/page\//, '');
                    } else {
                        aElements[i].href = aElements[i].href.replace(/^http.*(machine\/.*)$/, 'https://stg-preview.nana-press.com/kaiseki/$1').replace(/com\/machine/, 'com/kaiseki/machine').replace(/page\//, '');
                    }
                } else {
                    aElements[i].href = aElements[i].href.replace(/^http.*(kaiseki\/.*)$/, 'https://stg-preview.nana-press.com/$1').replace(/com\/machine/, 'com/kaiseki/machine').replace(/page\//, '');
                }
            }
        } else if (location.href.match(/preview\.nana-press\.com/)) {
            let aElements = document.getElementsByTagName('a');

            for (var i = 0, count = aElements.length; i < count; i++) {
                if (aElements[i].href.match(/system\.7press-sub/)) {
                    aElements[i].href = aElements[i].href.replace(/^http.*(kaiseki\/.*)$/, 'https://preview.nana-press.com/index/$1').replace(/com\/machine/, 'com/kaiseki/machine').replace(/page\//, '');
                } else if (aElements[i].href.match(/system/)) {
                    aElements[i].href = aElements[i].href.replace(/^http.*page\/(.*)$/, 'https://preview.nana-press.com/kaiseki/$1').replace(/com\/machine/, 'com/kaiseki/machine').replace(/page\//, '');
                } else if (aElements[i].href.match(/preview/)) {
                    if (aElements[i].href.match(/index\//)) {
                        aElements[i].href = aElements[i].href.replace(/^http.*(machine\/.*)$/, 'https://preview.nana-press.com/kaiseki/index/$1').replace(/com\/machine/, 'com/kaiseki/machine').replace(/page\//, '');
                    } else {
                        aElements[i].href = aElements[i].href.replace(/^http.*(machine\/.*)$/, 'https://preview.nana-press.com/kaiseki/$1').replace(/com\/machine/, 'com/kaiseki/machine').replace(/page\//, '');
                    }
                } else {
                    aElements[i].href = aElements[i].href.replace(/^http.*(kaiseki\/.*)$/, 'https://preview.nana-press.com/$1').replace(/com\/machine/, 'com/kaiseki/machine').replace(/page\//, '');
                }
            }
        } else if (location.href.match(/sub\-nana\-press\.kagoyacloud\.com/)) {
            let aElements = document.getElementsByTagName('a');

            for (var i = 0, count = aElements.length; i < count; i++) {
                if (aElements[i].href.match(/system\.7press-sub/)) {
                    aElements[i].href = aElements[i].href.replace(/^http.*(kaiseki\/.*)$/, 'https://sub-nana-press.kagoyacloud.com/$1').replace(/com\/machine/, 'com/kaiseki/machine').replace(/page\//, '');
                } else if (aElements[i].href.match(/system/)) {
                    aElements[i].href = aElements[i].href.replace(/^http.*page\/(.*)$/, 'https://sub-nana-press.kagoyacloud.com/kaiseki/$1').replace(/com\/machine/, 'com/kaiseki/machine').replace(/page\//, '');
                } else if (aElements[i].href.match(/preview/)) {
                    if (aElements[i].href.match(/index\//)) {
                        aElements[i].href = aElements[i].href.replace(/^http.*(machine\/.*)$/, 'https://sub-nana-press.kagoyacloud.com/kaiseki/index/$1').replace(/com\/machine/, 'com/kaiseki/machine').replace(/page\//, '');
                    } else {
                        aElements[i].href = aElements[i].href.replace(/^http.*(machine\/.*)$/, 'https://sub-nana-press.kagoyacloud.com/kaiseki/$1').replace(/com\/machine/, 'com/kaiseki/machine').replace(/page\//, '');
                    }
                } else {
                    aElements[i].href = aElements[i].href.replace(/^http.*(kaiseki\/.*)$/, 'https://sub-nana-press.kagoyacloud.com/$1').replace(/com\/machine/, 'com/kaiseki/machine').replace(/page\//, '');
                }
            }
        } else if (location.href.match(/nana-press.com/)) {
            let aElements = document.getElementsByTagName('a');

            for (var i = 0, count = aElements.length; i < count; i++) {
                if (aElements[i].href.match(/system\.7press-sub/)) {
                    aElements[i].href = aElements[i].href.replace(/^http.*(kaiseki\/.*)$/, 'https://nana-press.com/$1').replace(/com\/machine/, 'com/kaiseki/machine').replace(/page\//, '');
                } else if (aElements[i].href.match(/system/)) {
                    aElements[i].href = aElements[i].href.replace(/^http.*page\/(.*)$/, 'https://nana-press.com/kaiseki/$1').replace(/com\/machine/, 'com/kaiseki/machine').replace(/page\//, '');
                } else if (aElements[i].href.match(/preview/)) {
                    if (aElements[i].href.match(/index\//)) {
                        aElements[i].href = aElements[i].href.replace(/^http.*(machine\/.*)$/, 'https://nana-press.com/kaiseki/index/$1').replace(/com\/machine/, 'com/kaiseki/machine').replace(/page\//, '');
                    } else {
                        aElements[i].href = aElements[i].href.replace(/^http.*(machine\/.*)$/, 'https://nana-press.com/kaiseki/$1').replace(/com\/machine/, 'com/kaiseki/machine').replace(/page\//, '');
                    }
                } else if (!aElements[i].href.match(/\/premium\/mypage\//)) {
                    aElements[i].href = aElements[i].href.replace(/^http.*(kaiseki\/.*)$/, 'https://nana-press.com/$1').replace(/com\/machine/, 'com/kaiseki/machine').replace(/page\//, '');
                }
            }
        }

        let theoryTdElements = document.getElementsByClassName('theoryTable-td');
        theoryTdElementsCount = theoryTdElements.length;

        if (theoryTdElementsCount > 0) {
            for (var i = 0; i < theoryTdElementsCount; i++) {
                if (!theoryTdElements[i].dataset.theoryHeader) {
                    theoryTdElements[i].innerHTML = theoryTdElements[i].innerHTML.replace(/ \( (.*?) \)/g, '($1)');
                }
            }
        }

        if (document.getElementById('adArea')) {
            document.getElementById('adArea').getElementsByTagName('img')[0].addEventListener('click', function (event) {
                updateAdClick('adArea');
                open(document.getElementById('adArea').getAttribute('data-ad-link'), '_self');
            }, false);
        }

        jQuery.fn.highlight = function (pat) {
            function innerHighlight(node, pat) {
                var skip = 0;

                if (node.nodeType == 3) {
                    var pos = node.data.toUpperCase().indexOf(pat);
                    pos -= (node.data.substr(0, pos).toUpperCase().length - node.data.substr(0, pos).length);

                    if (pos >= 0) {
                        var spannode = document.createElement('span');
                        spannode.className = 'highlight-group';
                        var middlebit = node.splitText(pos);
                        var endbit = middlebit.splitText(pat.length);
                        var middleclone = middlebit.cloneNode(true);
                        spannode.appendChild(middleclone);

                        let words = spannode.innerHTML.split('');
                        let resultText = '';

                        for (var i = 0, count = words.length; i < count; i++) {
                            resultText += '<span class="highlight">' + words[i] + '</span>';
                        }

                        spannode.innerHTML = resultText + '<span class="highlight-blank"></span>';

                        middlebit.parentNode.replaceChild(spannode, middlebit);
                        skip = 1;
                    }
                } else if (node.nodeType == 1 && node.childNodes && !/(script|style)/i.test(node.tagName)) {
                    for (var i = 0; i < node.childNodes.length; ++i) {
                        i += innerHighlight(node.childNodes[i], pat);
                    }
                }

                return skip;
            }

            return this.length && pat && pat.length ? this.each(function () {
                innerHighlight(this, pat.toUpperCase());

                if (document.getElementsByClassName('machinePageContent')[0]) {
                    document.getElementsByClassName('machinePageContent')[0].innerHTML = document.getElementsByClassName('machinePageContent')[0].innerHTML.replace(/<span class="highlight-group">([^]*?)<span class="highlight-blank"><\/span>[^]*?<\/span>/g, '$1');
                }

                if (document.getElementsByClassName('machinePage-thread-content-right')[0]) {
                    document.getElementsByClassName('machinePage-thread-content-right')[0].innerHTML = document.getElementsByClassName('machinePage-thread-content-right')[0].innerHTML.replace(/<span class="highlight-group">([^]*?)<span class="highlight-blank"><\/span>[^]*?<\/span>/g, '$1');
                }

                if (document.getElementsByClassName('machinePage-thread-content-right')[1]) {
                    document.getElementsByClassName('machinePage-thread-content-right')[1].innerHTML = document.getElementsByClassName('machinePage-thread-content-right')[1].innerHTML.replace(/<span class="highlight-group">([^]*?)<span class="highlight-blank"><\/span>[^]*?<\/span>/g, '$1');
                }
            }) : this;
        };

        jQuery.fn.removeHighlight = function () {
            return this.find('span.highlight').each(function () {
                this.parentNode.firstChild.nodeName;

                with (this.parentNode) {
                    replaceChild(this.firstChild, this);
                    normalize();
                }
            }).end();
        };

        highlight();

        /* 目次 */
        let headdingListBlock = document.getElementsByClassName('editorMenu9Preview')[0];

        if (headdingListBlock) {
            headdingListBlock.parentNode.removeChild(headdingListBlock);
        }

        headdingListBlock = document.getElementsByClassName('bl_modelInfo_listBox')[0];
        const level1Headding = document.querySelectorAll('.blockType-h2');
        const level1HeaddingCount = level1Headding.length;

        if (headdingListBlock && (level1HeaddingCount > 0)) {
            let headding = document.querySelectorAll('[class^="blockType-h"]');
            let headdingCount = headding.length;

            for (let i = 0; i < headdingCount; i++) {
                headding[i].parentNode.id = 'contentInner-' + (i + 1);

                if (headding[i].textContent === '目次') {
                    headding[i].parentNode.parentNode.removeChild(headding[i].parentNode.nextElementSibling);
                    headding[i].parentNode.parentNode.removeChild(headding[i].parentNode);
                }
            }

            headding = document.querySelectorAll('[class^="blockType-h"]');
            headdingCount = headding.length;

            const level2Headding = document.querySelectorAll('.blockType-h3');
            const level2HeaddingCount = level2Headding.length;
            const level3Headding = document.querySelectorAll('.blockType-h4');
            const level3HeaddingCount = level3Headding.length;

            let level2HeaddingCurrentCount = 1;
            let level3HeaddingCurrentCount = 0;
            let level2FirstElement = false;
            let level3FirstElement = false;
            let level2ExistsElement = false;
            let level3ExistsElement = false;

            headdingListBlock.innerHTML = '<div class="bl_modelInfo_listHeadWrapper"><i class="fa-solid fa-list bl_modelInfo_listHeadIcon"></i><p class="bl_modelInfo_listHeadTxt">目次</p></div>';

            let newElement = document.createElement('ul');
            newElement.className = 'bl_modelInfo_Lv1List';

            let level1HeaddingElement = null;
            let level2HeaddingElement = null;
            let level3HeaddingElement = null;

            for (let i = 0; i < headdingCount; i++) {
                if (headding[i].parentNode.parentNode.classList.contains('el_popup_txt')) {
                    continue;
                }

                if (headding[i].classList.contains('blockType-h2')) {
                    level2ExistsElement = false;

                    if (level3HeaddingElement) {
                        level2HeaddingElement.appendChild(level3HeaddingElement);
                        level2HeaddingElement.innerHTML += '</li>';
                    }

                    level3HeaddingElement = null;

                    if (level2HeaddingElement) {
                        level1HeaddingElement.appendChild(level2HeaddingElement);
                        level1HeaddingElement.innerHTML += '</li>';
                        headdingListBlock.appendChild(level1HeaddingElement);
                    }

                    level2HeaddingElement = null;

                    if (level1HeaddingElement) {
                        level1HeaddingElement.innerHTML += '</li>';
                        headdingListBlock.appendChild(level1HeaddingElement);
                    }

                    level1HeaddingElement = document.createElement('li');
                    level1HeaddingElement.className = 'bl_modelInfo_Lv1List';
                    level1HeaddingElement.innerHTML += '<div class="bl_modelInfo_Lv1List_wrapper"><p class="bl_modelInfo_lv1TxtBox bl_modelInfo_lv1Txt"><a class="el_txtLink el_txtLinkEvent" href="#' + headding[i].parentNode.id + '">' + headding[i].innerHTML + '</a></p></div>';
                }

                if (headding[i].classList.contains('blockType-h3')) {
                    level3ExistsElement = false;

                    if (level3HeaddingElement) {
                        level2HeaddingElement.appendChild(level3HeaddingElement);
                        level2HeaddingElement.innerHTML += '</li>';
                    }

                    level3HeaddingElement = null;

                    if (!level2ExistsElement) {
                        level2HeaddingElement = document.createElement('ul');
                        level2HeaddingElement.className = 'bl_modelInfo_lv2List';
                        level2ExistsElement = true;
                    }

                    level2HeaddingElement.innerHTML += '<li class="bl_modelInfo_lv2"><p class="bl_modelInfo_headingIcon bl_modelInfo_lv2Txt"><a href="#' + headding[i].parentNode.id + '" class="el_txtLink el_txtLinkEvent">' + headding[i].innerHTML + '</a></p></li>';
                }

                if (headding[i].classList.contains('blockType-h4')) {
                    if (!level3ExistsElement) {
                        level3HeaddingElement = document.createElement('ul');
                        level3HeaddingElement.className = 'bl_modelInfo_lv3List';
                        level3ExistsElement = true;
                    }

                    level3HeaddingElement.innerHTML += '<li class="bl_modelInfo_lv3"><p class="bl_modelInfo_headingIcon el_txtLinkEvent"><a href="#' + headding[i].parentNode.id + '" class="bl_modelInfo_lv3Txt el_txtLink">' + headding[i].innerHTML + '</a></p></li>';
                }
            }

            if (level3HeaddingElement) {
                level2HeaddingElement.appendChild(level3HeaddingElement);
                level2HeaddingElement.innerHTML += '</li>';
            }

            if (level2HeaddingElement) {
                level1HeaddingElement.appendChild(level2HeaddingElement);
                level1HeaddingElement.innerHTML += '</li>';
                headdingListBlock.appendChild(level1HeaddingElement);
            }

            if (level1HeaddingElement) {
                level1HeaddingElement.innerHTML += '</li>';
                headdingListBlock.appendChild(level1HeaddingElement);
            }

            // 2024/03/21 追加
            let mokujiLv2 = document.querySelectorAll('.bl_modelInfo_lv2List');
            let mokujiLv3Count = 0;

            for (let i = 0, count = mokujiLv2.length; i < count; i++) {
                for (let j = 0, jcount = mokujiLv2[i].children.length; j < jcount; j++) {
                    if (mokujiLv2[i].children[j].nextSibling && mokujiLv2[i].children[j].nextSibling.classList.contains('bl_modelInfo_lv3List')) {
                        mokujiLv2[i].children[j].innerHTML += '<div class="el_moreView-open">＋</div><div class="el_moreView-close">−</div>';
                        setMachinePageMokujiToggle2(3, mokujiLv3Count);
                        mokujiLv3Count += 1;
                    }
                }
            }

            let mokujiLv1 = document.querySelectorAll('.bl_modelInfo_Lv1List_wrapper');
            let targetElement = null;
            let targetElementCount = 0;

            for (let i = 0, count = mokujiLv1.length; i < count; i++) {
                if (mokujiLv1[i].parentNode.querySelector('.bl_modelInfo_lv2List')) {
                    mokujiLv1[i].innerHTML += '<div class="el_moreView-open">＋</div><div class="el_moreView-close">−</div>';
                    setMachinePageMokujiToggle2(2, targetElementCount);
                    targetElementCount += 1;
                }
            }

            /*
            for (let i = 1; i < level1HeaddingCount; i++) {
                level1HeaddingElement = document.createElement('li');
                level1HeaddingElement.className = 'bl_modelInfo_Lv1List';
                level1HeaddingElement.innerHTML += '<a href="#' + level1Headding[i].parentNode.id + '" class="bl_modelInfo_lv1TxtBox el_txtLinkEvent"><p class="bl_modelInfo_lv1Txt el_txtLink">' + level1Headding[i].innerHTML + '</p></a>';

                level2FirstElement = false;
                level2ExistsElement = false;

                for (let j = level2HeaddingCurrentCount; j < level2HeaddingCount; j++) {
                    if (level2FirstElement && level2Headding[j].parentNode.previousElementSibling.getElementsByClassName('blockType-h2')[0]) {
                        break;
                    }

                    level2HeaddingCurrentCount += 1;
                    level2FirstElement = true;

                    if (!level2ExistsElement) {
                        level2HeaddingElement = document.createElement('ul');
                        level2HeaddingElement.className = 'bl_modelInfo_lv2List';
                        level2ExistsElement = true;
                    }

                    level2HeaddingElement.innerHTML += '<li class="bl_modelInfo_lv2">';
                    level2HeaddingElement.innerHTML += '<a href="#' + level2Headding[j].parentNode.id + '" class="bl_modelInfo_headingIcon el_txtLinkEvent"><p class="bl_modelInfo_lv2Txt el_txtLink">' + level2Headding[j].innerHTML + '</p></a>';

                    level3HeaddingElement = null;
                    level3FirstElement = false;
                    level3ExistsElement = false;

                    for (let k = level3HeaddingCurrentCount; k < level3HeaddingCount; k++) {
                        if (level3FirstElement && level3Headding[k].parentNode.previousElementSibling.getElementsByClassName('blockType-h3')[0]) {
                            break;
                        }

                        level3HeaddingCurrentCount += 1;
                        level3FirstElement = true;

                        if (level3Headding[k].parentNode.id) {
                            if (!level3ExistsElement) {
                                level3HeaddingElement = document.createElement('ul');
                                level3HeaddingElement.className = 'bl_modelInfo_lv3List';
                                level3ExistsElement = true;
                            }

                            level3HeaddingElement.innerHTML += '<li class="bl_modelInfo_lv3">';
                            level3HeaddingElement.innerHTML += '<a href="#' + level3Headding[k].parentNode.id + '" class="bl_modelInfo_headingIcon el_txtLinkEvent"><p class="bl_modelInfo_lv3Txt el_txtLink">' + level3Headding[k].innerHTML + '</p></a>';
                            level3HeaddingElement.innerHTML += '</li>';
                        }
                    }

                    if (level3HeaddingElement) {
                        level2HeaddingElement.appendChild(level3HeaddingElement);
                    }

                    level2HeaddingElement.innerHTML += '</li>';
                }

                level1HeaddingElement.appendChild(level2HeaddingElement);
                headdingListBlock.appendChild(level1HeaddingElement);
            }
            */
        }

        // オートコンプリートを無効
        let targetElement = document.getElementsByTagName('form');

        for (let i = 0, count = targetElement.length; i < count; i++) {
            targetElement[i].setAttribute('autocomplete', 'off');
        }

        /*
        if (IS_MACHINE_PAGE) {
            // 更新情報のリンクを削除
            targetElement = document.getElementsByClassName('bl_modelInfo_updateInfoList')[0];
            targetElement = targetElement ? targetElement.getElementsByTagName('a') : [];

            for (let i = 0, count = targetElement.length; i < count; i++) {
                targetElement[i].removeAttribute('href');
            }
        }
        */

        // targetElement = document.querySelector('.bl_modelInfo_listBox');

        /* 2024/04/19 表示箇所変更 */
        /*
        targetElement = document.querySelector('.bl_outline');
        targetElement = location.href.match(/\/kaiseki\/machine\/\d+\/$/) ? document.querySelectorAll('.bl_outline')[1] : targetElement;
        */
        targetElement = document.querySelector('.main');

        if (location.href.match(/\/kaiseki\/machine\/\d+\//) && !location.href.match(/suisoku|theory/) && targetElement) {
            if (PREMIUM_USER_STATE !== 2) {
                adElement = document.createElement('div');
                adElement.id = 'pcKaisekiAd';

                // 2024/9/2以前のコード
                // adElement.innerHTML = '<script data-cfasync="false" async type="text/javascript" src="//go.trvdp.com/init/9908.js?pid=7286"></script>';

                adElement.innerHTML = `<div class="gliaplayer-container" data-slot="nanapress_desktop"></div>`;

                // targetElement.after(adElement);
                // targetElement.parentNode.insertBefore(adElement, targetElement);
                targetElement.appendChild(adElement);

                let adScriptElement = document.createElement('script');
                adScriptElement.type = 'text/javascript';
                adScriptElement.src = 'https://player.gliacloud.com/player/nanapress_desktop';
                adScriptElement.setAttribute('async', '');

                adElement.appendChild(adScriptElement);

                /*
                let adScriptElement = document.createElement('script');
                adScriptElement.dataset.cfasync = 'false';
                adScriptElement.type = 'text/javascript';
                adScriptElement.src = '//go.trvdp.com/init/9908.js?pid=7286';
                adScriptElement.setAttribute('async', '');

                adElement.appendChild(adScriptElement);
                */
            } else {
                /* 2024/04/19 表示箇所変更に伴い削除 */
                // targetElement.parentNode.removeChild(targetElement);

                /*
                if (location.href.match(/\/kaiseki\/machine\/\d+\/$/)) {
                    targetElement = document.querySelector('.bl_outline');

                    if (targetElement) {
                        targetElement.parentNode.removeChild(targetElement);
                    }
                }
                */
            }
        }

        // ログイン関連
        const navMenuItem = document.querySelectorAll('.bl_nav_menuBox > li');

        if (navMenuItem.length) {
            navMenuItem[navMenuItem.length - 1].classList.add('globalMenu-login');

            if (USER_LOGIN_STATE === 2) {
                navMenuItem[navMenuItem.length - 1].innerHTML = '<a href="https://nana-press.com/premium/mypage/">マイページ</a>';
            } else {
                navMenuItem[navMenuItem.length - 1].innerHTML = '<a href="https://nana-press.com/premium/login/">ログイン</a>';
            }
        }

        if (PREMIUM_USER_STATE !== 2) {
            const pcSideBar = document.querySelector('.sidemenu');

            if (pcSideBar) {
                console.log(pcSideBar);
                const pcSideBarAd = document.createElement('div');
                pcSideBarAd.className = 'pcSideBarAd-bottom';

                pcSideBarAd.innerHTML = `
                <!-- /9176203,29943587/1813778 PC PCサイドバー -->
                <div style="width: 300px; max-width: 300px; margin-top: 20px;">
                <div id='div-gpt-ad-1676945640492-0'>
                <script>
                googletag.cmd.push(function() { googletag.display('div-gpt-ad-1676945640492-0'); });
                </script>
                </div>
                </div>
                `;

                pcSideBar.appendChild(pcSideBarAd);

                /*
                const pcSideBarAdScript = document.createElement('script');
                pcSideBarAdScript.dataset.cfasync = 'false';
                pcSideBarAdScript.type = 'text/javascript';
                pcSideBarAdScript.src = '//go.trvdp.com/init/9908.js?pid=7286';
                pcSideBarAdScript.setAttribute('async', '');
                */
            }
        }
    }, { capture: false, once: false, passive: true });
    //

    function updateAdClick(id) {
        let adId = document.getElementById(id).getAttribute('data-ad-id');
        let adPosition = document.getElementById(id).getAttribute('data-ad-position');
        let adImage = document.getElementById(id).getAttribute('data-ad-image');
        let adLink = document.getElementById(id).getAttribute('data-ad-link');

        $.ajax({
            async: true,
            cache: false,
            timeout: AJAX_TIMEOUT,
            type: 'POST',
            url: 'https://api.nana-press.com/nanatetsu/component/ad_click.php',
            //url: 'https://system.7press-sub.com/data/ad_click.php',
            data: {
                'referrer': location.href,
                'adId': adId,
                'adPosition': adPosition,
                'adImage': adImage,
                'adLink': adLink
            },
            dataType: 'text',
            success: function (successData, textStatus, XMLHttpRequest) {

            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {

            },
            complete: function (XMLHttpRequest, textStatus) {

            }
        });
    }

    function updateAdBannerClick(targetElement) {
        let adId = targetElement.getAttribute('data-ad-id');
        let adPosition = targetElement.getAttribute('data-ad-position');
        let adImage = targetElement.getAttribute('data-ad-image');
        let adLink = targetElement.getAttribute('data-ad-link');

        $.ajax({
            async: true,
            cache: false,
            timeout: AJAX_TIMEOUT,
            type: 'POST',
            url: 'https://api.nana-press.com/nanatetsu/component/ad_click.php',
            //url: 'https://system.7press-sub.com/data/ad_click.php',
            data: {
                'referrer': location.href,
                'adId': adId,
                'adPosition': adPosition,
                'adImage': adImage,
                'adLink': adLink
            },
            dataType: 'text',
            success: function (successData, textStatus, XMLHttpRequest) {

            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {

            },
            complete: function (XMLHttpRequest, textStatus) {

            }
        });
    }


    function getComponents() {
        let components = '';

        let xhr = new XMLHttpRequest();
        xhr.open('GET', '../../../js/components.html?' + CURRENT_TIMESTAMP, false);

        xhr.onreadystatechange = function () {
            if (xhr.readyState === 4 && xhr.status === 200) {
                components = xhr.responseText;
            }
        }

        xhr.send();

        return components;
    }

    function createComponent(componentName) {
        let component = COMPONENTS.match(new RegExp('<\!--' + componentName + '-->([^]*?)<\!--' + componentName + '-->'));

        if (component) {
            component = component[1];
        } else {
            component = '';
        }

        return component;
    }

    let SUISOKU_CONTENT_TYPE = 0;

    if (location.href.match(/suisoku/)) {
        if (location.href.match(/suisoku\d/)) {
            SUISOKU_CONTENT_TYPE = Number(location.href.replace(/^.*suisoku(\d+).*$/, '$1'));
        } else {
            SUISOKU_CONTENT_TYPE = 1;
        }
    }

    let WARU_COUNT_X = 0;
    let WARU_COUNT_N = 0;
    let WARU_COUNT = 0;

    function suisokuResultData() {
        WARU_COUNT_X = 0;
        WARU_COUNT_N = 0;
        WARU_COUNT = 0;

        let contentElement = document.getElementsByClassName('machinePageContent')[0];

        let errorMessage = '';
        let checkInputElements = contentElement.querySelectorAll('[type="number"]');

        //for (var i = 0, count = checkInputElements.length; i < count; i++) {
        //    if (checkInputElements[i].required && !checkInputElements[i].value) {
        //        errorMessage += '・' + checkInputElements[i].parentNode.parentNode.getElementsByClassName('suisokusDataItemGroup-item-name')[0].innerHTML.replace(/\*/, '').trim() + "\n";
        //    }
        //}

        /*
        if (errorMessage) {
            errorMessage = "下記の必須項目が入力されていません。\n\n" + errorMessage;
            alert(errorMessage);
            return false;
        }
        */

        let itemGroupElements = contentElement.getElementsByClassName('suisokusDataItemGroup');

        let suisokuInputGameCountData = [];
        let suisokuInputKoyakuCountData = [];
        let suisokuInputGameCount = '-1';
        let suisokuInputNoGameCount = false;
        let suisokuInputKoyakuElements = [];
        let suisokuInputIsNumber = [];
        let suisokuInputTotalCount = 0;

        for (var i = 0, count = itemGroupElements.length; i < count; i++) {
            suisokuInputGameCount = '-1';
            suisokuInputNoGameCount = itemGroupElements[i].getElementsByClassName('inputGameCount')[0] ? false : true;
            suisokuInputKoyakuElements = itemGroupElements[i].querySelectorAll('[type="number"]');

            if (suisokuInputNoGameCount) {
                for (var j = 0, itemCount = suisokuInputKoyakuElements.length; j < itemCount; j++) {
                    if (suisokuInputKoyakuElements[j].value !== '') {
                        if (suisokuInputGameCount === '-1') {
                            suisokuInputGameCount = 0;
                        }

                        suisokuInputGameCount += Number(suisokuInputKoyakuElements[j].value);
                    }
                }

                suisokuInputGameCount = '' + suisokuInputGameCount;
            }

            for (var j = 0, itemCount = suisokuInputKoyakuElements.length; j < itemCount; j++) {
                if (!suisokuInputNoGameCount && suisokuInputKoyakuElements[j].classList.contains('inputGameCount')) {
                    suisokuInputGameCount = suisokuInputKoyakuElements[j].value !== '' ? suisokuInputKoyakuElements[j].value : '-1';
                } else if (suisokuInputKoyakuElements[j].value !== '') {
                    suisokuInputIsNumber[suisokuInputIsNumber.length] = suisokuInputTotalCount;
                    suisokuInputGameCountData[suisokuInputGameCountData.length] = suisokuInputGameCount;
                    suisokuInputKoyakuCountData[suisokuInputKoyakuCountData.length] = suisokuInputKoyakuElements[j].value;
                }

                if (!suisokuInputKoyakuElements[j].classList.contains('inputGameCount')) {
                    suisokuInputTotalCount += 1;
                }
            }
        }

        let suisokuKakuritsuData = [];
        let sliceData = [];

        for (var j = 0, kakuritsuCount = CALC_DATA['確率'].length; j < kakuritsuCount; j++) {
            /*
            sliceData = CALC_DATA['確率'][j]['data'].concat();
            sliceData.splice(suisokuInputKoyakuCountData.length);
            */

            sliceData = [];

            for (var k = 0, count = suisokuInputIsNumber.length; k < count; k++) {
                for (var x = 0, count2 = CALC_DATA['確率'][j]['data'].length; x < count2; x++) {
                    if (suisokuInputIsNumber[k] === x) {
                        sliceData[sliceData.length] = CALC_DATA['確率'][j]['data'][x];
                        break;
                    }
                }
            }

            suisokuKakuritsuData[j] = {
                'name': CALC_DATA['確率'][j]['name'],
                'data': sliceData
            };
        }

        let suisokuInputData = {
            '確率': suisokuKakuritsuData,
            '入力': [
                {
                    'name': 'ゲーム数',
                    'data': suisokuInputGameCountData
                },
                {
                    'name': '当たり数',
                    'data': suisokuInputKoyakuCountData
                }
            ]
        };

        console.log(suisokuInputData);

        let itemGroupItemElements = [];
        let content = '';
        let itemGroup = '';
        let itemGroupItem = '';
        let itemGameCount = 0;
        let totalItemGameCount = 0;
        let itemValue = '';
        let isError = false;
        let itemTotalCount = 0;
        let isCellTotalCount = false;
        let isCellTotalCountOk = false;
        let cellTotalCount = 0;
        let isHeadingCell = false;
        let sumGroupNumber = -1;
        let thisCalcData = {
            '頻度計算': [],
            '推測割合': [],
            '推測結果': [],
            '判別結果': []
        };

        let currentCalcData = {};
        let resultSuisokuCount = '---';

        currentCalcData = CALC_DATA;


        for (var x = 0, dataCount = currentCalcData['確率'].length; x < dataCount; x++) {
            thisCalcData['頻度計算'][x] = [];
            thisCalcData['推測割合'][x] = [];
        }

        for (var i = 0, count = itemGroupElements.length; i < count; i++) {
            itemGroup = createComponent('suisokusDataResultItemGroup')
                .replace(/__header__/g, itemGroupElements[i].getElementsByClassName('suisokusDataItemGroup-header')[0].innerHTML)
                ;
            itemGroupItem = '';

            itemGroupItemElements = itemGroupElements[i].getElementsByClassName('suisokusDataItemGroup-item');

            itemGameCount = 0;
            totalItemGameCount = 0;
            isCellTotalCount = false;
            isCellTotalCountOk = false;
            cellTotalCount = 0;
            isInputEmpty = false;
            isHeadingCell = false;

            WARU_COUNT_X = 0;
            WARU_COUNT_N = 0;
            WARU_COUNT = 0;

            if (!itemGroupElements[i].getElementsByClassName('suisokusDataItemGroup-item')[0]) {
                continue;
            }

            for (var j = 0, itemCount = itemGroupItemElements.length; j < itemCount; j++) {
                isHeadingCell = false;

                if (itemGroupItemElements[j].getElementsByClassName('suisokusDataItemGroup-item-input')[0] && (itemGroupItemElements[j].getElementsByClassName('suisokusDataItemGroup-item-input')[0].getElementsByTagName('input')[0].value !== '') && !isNaN(Number(itemGroupItemElements[j].getElementsByClassName('suisokusDataItemGroup-item-input')[0].getElementsByTagName('input')[0].value))) {
                    itemValue = Number(itemGroupItemElements[j].getElementsByClassName('suisokusDataItemGroup-item-input')[0].getElementsByTagName('input')[0].value);
                } else {
                    itemValue = '';
                }

                if (itemGroupItemElements[j].getElementsByClassName('inputGameCount')[0]) {
                    totalItemGameCount = 0;

                    if (itemValue !== '') {
                        itemGameCount = itemValue;
                    }
                } else if (itemGroupItemElements[j].getElementsByClassName('inputItemCount')[0]) {
                    if ((SUISOKU_CONTENT_TYPE != 3) && (itemValue !== '')) {
                        totalItemGameCount += itemValue;
                    }

                    if ((SUISOKU_CONTENT_TYPE === 3) && !isCellTotalCount && itemGroupItemElements[j].getElementsByClassName('suisokusDataItemGroup-item-input')[0].getElementsByTagName('input')[0].getAttribute('data-sum-group')) {
                        isCellTotalCount = true;

                        sumGroupNumber = Number(itemGroupItemElements[j].getElementsByClassName('suisokusDataItemGroup-item-input')[0].getElementsByTagName('input')[0].getAttribute('data-sum-group'));
                        var sumGroupElements = itemGroupElements[i].querySelectorAll('[data-sum-group="' + sumGroupNumber + '"]');

                        for (var k = 0, sumGroupCount = sumGroupElements.length; k < sumGroupCount; k++) {
                            cellTotalCount += Number(sumGroupElements[k].value);
                            sumGameCount = cellTotalCount;
                            isCellTotalCountOk = true;
                        }

                    } else if ((SUISOKU_CONTENT_TYPE != 3) && !isCellTotalCount && !itemGroupElements[i].getElementsByClassName('inputGameCount')[0]) {
                        isCellTotalCount = true;

                        for (var k = 0; k < itemCount; k++) {
                            if ((itemGroupItemElements[k].getElementsByClassName('suisokusDataItemGroup-item-input')[0].getElementsByTagName('input')[0].value !== '') && !isNaN(Number(itemGroupItemElements[k].getElementsByClassName('suisokusDataItemGroup-item-input')[0].getElementsByTagName('input')[0].value))) {
                                cellTotalCount += Number(itemGroupItemElements[k].getElementsByClassName('suisokusDataItemGroup-item-input')[0].getElementsByTagName('input')[0].value);
                                itemGameCount = cellTotalCount;
                                isCellTotalCountOk = true;
                            }
                        }
                    } else if ((SUISOKU_CONTENT_TYPE === 3) && isCellTotalCount && (!itemGroupItemElements[j].getElementsByClassName('suisokusDataItemGroup-item-input')[0].getElementsByTagName('input')[0].getAttribute('data-sum-group') || (Number(itemGroupItemElements[j].getElementsByClassName('suisokusDataItemGroup-item-input')[0].getElementsByTagName('input')[0].getAttribute('data-sum-group')) != sumGroupNumber))) {
                        sumGameCount = 0;
                        isCellTotalCount = false;
                        cellTotalCount = 0;
                        isCellTotalCountOk = false;

                        if ((SUISOKU_CONTENT_TYPE === 3) && !isCellTotalCount && itemGroupItemElements[j].getElementsByClassName('suisokusDataItemGroup-item-input')[0].getElementsByTagName('input')[0].getAttribute('data-sum-group')) {
                            isCellTotalCount = true;

                            sumGroupNumber = Number(itemGroupItemElements[j].getElementsByClassName('suisokusDataItemGroup-item-input')[0].getElementsByTagName('input')[0].getAttribute('data-sum-group'));
                            var sumGroupElements = itemGroupElements[i].querySelectorAll('[data-sum-group="' + sumGroupNumber + '"]');

                            for (var k = 0, sumGroupCount = sumGroupElements.length; k < sumGroupCount; k++) {
                                cellTotalCount += Number(sumGroupElements[k].value);
                                sumGameCount = cellTotalCount;
                                isCellTotalCountOk = true;
                            }

                        }
                    }

                    for (var x = 0, dataCount = currentCalcData['確率'].length; x < dataCount; x++) {
                        if (itemValue === '') {
                            thisCalcData['頻度計算'][x][itemTotalCount] = pBinDist(0, 0, currentCalcData['確率'][x]['data'][itemTotalCount]);
                        } else {
                            /*
                            $.ajax({
                                url: API_URL,
                                async: false,
                                type: 'POST',
                                data: {
                                    'q': 'suisokuResult',
                                    'data': JSON.stringify({
                                        'count': itemValue,
                                        'gemeCount': isCellTotalCount ? cellTotalCount : (itemValue || (itemValue === 0) ? itemGameCount : 0),
                                        'kakuritsu': currentCalcData['確率'][x]['data'][itemTotalCount]
                                    })
                                },
                                dataType: 'text',
                                cache: false,
                                timeout: AJAX_TIMEOUT,
                                success: function(successData, textStatus, XMLHttpRequest) {
                                    console.log(successData);
                                    thisCalcData['頻度計算'][x][itemTotalCount] = Number(successData);
                                },
                                error: function(XMLHttpRequest, textStatus, errorThrown) {
                                    console.log('error');
                                    thisCalcData['頻度計算'][x][itemTotalCount] = pBinDist(itemValue, isCellTotalCount ? cellTotalCount : (itemValue || (itemValue === 0) ? itemGameCount : 0), currentCalcData['確率'][x]['data'][itemTotalCount]);
                                },
                                complete: function(XMLHttpRequest, textStatus) {
                                }
                            });
                            */

                            thisCalcData['頻度計算'][x][itemTotalCount] = pBinDist(itemValue, isCellTotalCount ? cellTotalCount : (itemValue || (itemValue === 0) ? itemGameCount : 0), currentCalcData['確率'][x]['data'][itemTotalCount]);

                            /*
                                                        if (String(thisCalcData['頻度計算'][x][itemTotalCount]).match('e-')) {
                                                            thisCalcData['頻度計算'][x][itemTotalCount] = parseFloat(String(thisCalcData['頻度計算'][x][itemTotalCount]));
                                                        }
                                                        */
                        }

                        //thisCalcData['頻度計算'][x][itemTotalCount] = !isNaN(thisCalcData['頻度計算'][x][itemTotalCount]) ? thisCalcData['頻度計算'][x][itemTotalCount] : 0;
                    }

                    itemTotalCount += 1;
                } else {
                    isHeadingCell = true;
                }

                if (!isHeadingCell) {
                    resultSuisokuCount = (!isCellTotalCount && (j === 0)) || itemGroupItemElements[j].getElementsByClassName('suisokusDataItemGroup-item-name')[0].parentNode.getElementsByClassName('inputGameCount')[0] ? '' : itemValue ? (isCellTotalCount ? round(itemValue / cellTotalCount * 100, 2) + '%' : '1/' + round(itemGameCount / itemValue, 2)) : itemValue === 0 ? (isCellTotalCount ? '0/' + cellTotalCount : '0/' + itemGameCount) : '---';

                    if (resultSuisokuCount.match(/^0\//) && !itemGroupItemElements[j].parentNode.getElementsByClassName('inputGameCount')[0]) {
                        resultSuisokuCount = '0%';
                    }

                    if (!itemGroupItemElements[j].parentNode.parentNode.getElementsByClassName('suisokusDataItemGroup-header')[0].innerHTML.match(/前任者/) && !itemGroupItemElements[j].getElementsByClassName('inputGameCount')[0] && itemGroupItemElements[j].parentNode.getElementsByClassName('inputGameCount')[0] && !itemGroupItemElements[j].parentNode.getElementsByClassName('inputGameCount')[0].parentNode.parentNode.getElementsByClassName('suisokusDataItemGroup-item-name')[0].innerHTML.match(/ゲーム数/)) {
                        resultSuisokuCount = itemValue ? round(itemValue / itemGameCount * 100, 2) + '%' : '---';
                    }

                    if (itemGroupItemElements[j].getElementsByClassName('suisokusDataItemGroup-item-name')[0].innerHTML.match(/設定.*?否定/)) {
                        if (itemGroupItemElements[j].getElementsByClassName('inputItemCount')[0].value && Number(itemGroupItemElements[j].getElementsByClassName('inputItemCount')[0].value) > 0) {
                            resultSuisokuCount = 'ON';
                        } else {
                            resultSuisokuCount = '';
                        }
                    }

                    itemGroupItem += createComponent('suisokusDataResultItemGroupItem')
                        .replace(/__name__/g, itemGroupItemElements[j].getElementsByClassName('suisokusDataItemGroup-item-name')[0].innerHTML)
                        .replace(/__calc__/g, resultSuisokuCount)
                        //.replace(/__calc__/g, !isCellTotalCount && (j === 0) ? '' : itemValue ? (isCellTotalCount ? round(itemValue / cellTotalCount * 100, 3) + '%' : '1/' + round(itemGameCount / itemValue, 2)) : itemValue === 0 ? (isCellTotalCount ? '0/' + cellTotalCount : '0/' + itemGameCount) : '---')
                        .replace(/__calc_position__/g, j === 0 ? '' : itemValue ? '' : itemValue === 0 ? '' : ' calcPosition')
                        .replace(/__value__/g, itemValue + (!isCellTotalCount && itemGroupItemElements[j].getElementsByClassName('suisokusDataItemGroup-item-name')[0].innerHTML.match(/ゲーム数/) ? ' Ｇ' : ' 回'))
                        ;
                }
            }

            if (totalItemGameCount > itemGameCount) {
                isError = true;
                break;
            }

            content += itemGroup
                .replace(/__items__/g, itemGroupItem)
                ;
        }

        let resultNum = 0;

        for (var x = 0, dataCount = currentCalcData['確率'].length; x < dataCount; x++) {
            for (var y = 0, dataCount2 = currentCalcData['確率'][x]['data'].length; y < dataCount2; y++) {
                resultNum = 0;

                for (var z = 0, dataCount3 = currentCalcData['確率'].length; z < dataCount3; z++) {
                    resultNum += thisCalcData['頻度計算'][z][y];
                }

                if (thisCalcData['頻度計算'][x][y] === 0) {
                    thisCalcData['推測割合'][x][y] = 0;
                } else {
                    thisCalcData['推測割合'][x][y] = thisCalcData['頻度計算'][x][y] / resultNum;
                }
            }
        }

        let zeroCalc = [];

        for (var x = 0, dataCount = currentCalcData['確率'].length; x < dataCount; x++) {
            for (var y = 0, dataCount2 = currentCalcData['確率'][x]['data'].length; y < dataCount2; y++) {
                if (currentCalcData['確率'][x]['data'][y] === 0) {
                    zeroCalc[zeroCalc.length] = x;
                    break;
                }
            }
        }


        let inputItemCountElements = document.getElementsByClassName('inputItemCount');
        let clacResult = 0;

        resultNum = 1;

        for (var x = 0, dataCount = currentCalcData['確率'].length; x < dataCount; x++) {
            resultNum = 1;

            for (var y = 0, dataCount2 = currentCalcData['確率'][x]['data'].length; y < dataCount2; y++) {
                clacResult = thisCalcData['推測割合'][x][y];

                for (var zz = 0, zeroCount = zeroCalc.length; zz < zeroCount; zz++) {
                    if (zeroCalc[zz] === x) {
                        for (var z = 0, inputCount = inputItemCountElements.length; z < inputCount; z++) {
                            if (!isNaN(inputItemCountElements[z].value) && (Number(inputItemCountElements[z].value) > 0) && (z === y) && (currentCalcData['確率'][x]['data'][y] === 0)) {
                                clacResult = 0;
                                break;
                            }
                        }
                    }
                }

                resultNum *= clacResult;
            }

            thisCalcData['推測結果'][x] = resultNum;
        }

        resultNum = 0;
        let maxCalc = 0;
        let isOverFlow = false;
        let maxCountData = [];
        let maxCalcData = [];
        let maxGraphCount = 0;
        let currentGraphCount = 0;

        /*
        for (var x = 0, dataCount = currentCalcData['確率'].length; x < dataCount; x++) {
            resultNum = 0;

            for (var y = 0, dataCount2 = currentCalcData['確率'].length; y < dataCount2; y++) {
                resultNum += thisCalcData['推測結果'][y];
            }

            thisCalcData['判別結果'][x] = thisCalcData['推測結果'][x] / resultNum * 100;
            maxCalcData[x] = thisCalcData['推測結果'][x] / resultNum;

            if (isNaN(thisCalcData['判別結果'][x])) {
                isOverFlow = true;
            }

            currentGraphCount = Math.floor(thisCalcData['判別結果'][x]);

            if (currentGraphCount > maxGraphCount) {
                maxGraphCount = currentGraphCount;
            }

            if (thisCalcData['判別結果'][x] >= thisCalcData['判別結果'][maxCalc]) {
                maxCalc = x;
                maxCountData[maxCountData.length] = true;
            } else {
                maxCountData[maxCountData.length] = false;
            }

            for (var i = 0, count = maxCountData.length; i < count; i++) {
                if (maxCountData[i] >= thisCalcData['判別結果'][maxCalc]) {
                    maxCountData[i] = true;
                } else {
                    maxCountData[i] = false;
                }
            }
        }
        */


        if (isOverFlow) {
            if (!IS_SUISOKU2 && document.getElementsByClassName('theoryResultData')[0]) {
                document.getElementsByClassName('theoryResultData')[0].style.display = '';
            }

            content = createComponent('suisokusDataResultOverFlowErrorContent');
            contentElement.getElementsByClassName('view-contents-preview-content-result')[0].innerHTML = content;
            document.getElementById('suisokuDataResult').scrollIntoView(true);
        } else if (!isError) {
            let setApiUrl = 'https://system.7press-sub.com/component/send_proc.php';

            $.ajax({
                url: setApiUrl,
                async: false,
                type: 'POST',
                data: {
                    'input': JSON.stringify(suisokuInputData)
                },
                dataType: 'json',
                cache: false,
                timeout: 60 * 3,
                success: function (successData, textStatus, XMLHttpRequest) {
                    console.log(successData);

                    for (var x = 0, dataCount = currentCalcData['確率'].length; x < dataCount; x++) {
                        thisCalcData['判別結果'][x] = successData['s' + (x + 1)];

                        resultNum = 0;

                        for (var y = 0, dataCount2 = thisCalcData['判別結果'].length; y < dataCount2; y++) {
                            resultNum += Number(thisCalcData['判別結果'][y]);
                        }

                        //thisCalcData['判別結果'][x] = thisCalcData['推測結果'][x] / resultNum * 100;
                        //maxCalcData[x] = Number((Number(thisCalcData['判別結果'][x]) / resultNum).toFixed(2));
                        maxCalcData[x] = Number(thisCalcData['判別結果'][x]);

                        /*
                        if (isNaN(Number(thisCalcData['判別結果'][x]))) {
                            isOverFlow = true;
                        }
                        */

                        currentGraphCount = Math.floor(Number(thisCalcData['判別結果'][x]));

                        if (currentGraphCount > maxGraphCount) {
                            maxGraphCount = currentGraphCount;
                        }

                        /*
                        if (Number(thisCalcData['判別結果'][x]) >= Number(thisCalcData['判別結果'][maxCalc])) {
                            maxCalc = x;
                            maxCountData[maxCountData.length] = true;
                        } else {
                            maxCountData[maxCountData.length] = false;
                        }

                        for (var i = 0, count = maxCountData.length; i < count; i++) {
                            if (maxCountData[i] >= Number(thisCalcData['判別結果'][maxCalc])) {
                                maxCountData[i] = true;
                            } else {
                                maxCountData[i] = false;
                            }
                        }
                        */
                    }

                    let graphItem = '';
                    //let percent = round(thisCalcData['判別結果'][x], 2);

                    for (var x = 0, dataCount = currentCalcData['確率'].length; x < dataCount; x++) {
                        if (!thisCalcData['判別結果'][x].match(/^\d+/)) {
                            isOverFlow = true;
                            break;
                        }

                        graphItem += createComponent('suisokusDataResultGraphItem')
                            .replace(/__name__/g, currentCalcData['確率'][x]['name'])
                            .replace(/__percent__/g, round(Number(thisCalcData['判別結果'][x]), 2).toFixed(2) + '%')
                            .replace(/__graph__/g, (round(Number(thisCalcData['判別結果'][x] / maxGraphCount * 100), 2).toFixed(2) >= 100 ? '100' : round(Number(thisCalcData['判別結果'][x] / maxGraphCount * 100), 2).toFixed(2)) + '%')
                            .replace(/__bg__/g, maxCalcData[x] >= maxCalcData.reduce(function (a, b) { return Math.max(a, b); }) ? ' suisokusDataResultGraph-item-graph-border-max' : '')
                            ;
                    }

                    if (isOverFlow) {
                        if (!IS_SUISOKU2 && document.getElementsByClassName('theoryResultData')[0]) {
                            document.getElementsByClassName('theoryResultData')[0].style.display = '';
                        }

                        content = createComponent('suisokusDataResultOverFlowErrorContent');
                    } else {
                        content = createComponent('suisokusDataResultContent')
                            .replace(/__content__/g, content)
                            .replace(/__items__/g, graphItem)
                            ;

                        if (!IS_SUISOKU2 && document.getElementsByClassName('theoryResultData')[0]) {
                            document.getElementsByClassName('theoryResultData')[0].style.display = '';
                            setTheoryQueryValue('suisoku');
                        }
                    }
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    if (!IS_SUISOKU2 && document.getElementsByClassName('theoryResultData')[0]) {
                        document.getElementsByClassName('theoryResultData')[0].style.display = '';
                    }

                    content = createComponent('suisokusDataResultGetDataErrorContent');
                },
                complete: function (XMLHttpRequest, textStatus) {
                    if (document.querySelector('[data-switch-menu-current]')) {
                        document.querySelector('[data-switch-menu-current]').setAttribute('data-switch-menu-current', 1);

                    }
                    if (!document.getElementsByClassName('view-contents-preview-content-result')[0].classList.contains('activeContent')) {
                        document.getElementsByClassName('view-contents-preview-content-result')[0].classList.add('activeContent');
                    }

                    if (document.getElementsByClassName('theoryResultData')[0] && document.getElementsByClassName('theoryResultData')[0].classList.contains('activeContent')) {
                        document.getElementsByClassName('theoryResultData')[0].classList.remove('activeContent');
                    }

                    contentElement.getElementsByClassName('view-contents-preview-content-result')[0].innerHTML = content;
                    document.getElementById('suisokuDataResult').scrollIntoView(true);
                }
            });
        } else {
            if (!IS_SUISOKU2 && document.getElementsByClassName('theoryResultData')[0]) {
                document.getElementsByClassName('theoryResultData')[0].style.display = '';
            }

            if (document.querySelector('[data-switch-menu-current]')) {
                document.querySelector('[data-switch-menu-current]').setAttribute('data-switch-menu-current', 1);
            }

            if (!document.getElementsByClassName('view-contents-preview-content-result')[0].classList.contains('activeContent')) {
                document.getElementsByClassName('view-contents-preview-content-result')[0].classList.add('activeContent');
            }

            if (document.getElementsByClassName('theoryResultData')[0].classList.contains('activeContent')) {
                document.getElementsByClassName('theoryResultData')[0].classList.remove('activeContent');
            }


            content = createComponent('suisokusDataResultErrorContent');
            contentElement.getElementsByClassName('view-contents-preview-content-result')[0].innerHTML = content;
            document.getElementById('suisokuDataResult').scrollIntoView(true);
        }

        if (document.getElementsByClassName('suisokusDataResultContent-wrapper')[1]) {
            document.getElementsByClassName('suisokusDataResultContent-wrapper')[1].parentNode.removeChild(document.getElementsByClassName('suisokusDataResultContent-wrapper')[1]);
        }

        if (!IS_SUISOKU2 && document.getElementsByClassName('theoryResultData')[0]) {
            document.getElementsByClassName('switchMenu')[0].style.display = 'flex';
            document.getElementsByClassName('suisokusDataResultContent-header')[0].style.display = 'none';
            document.getElementsByClassName('switchMenu')[0].scrollIntoView(true);
        }
    }

    function round(number, precision) {
        var shift = function (number, precision, reverseShift) {
            if (reverseShift) {
                precision = -precision;
            }

            var numArray = ('' + number).split('e');
            return +(numArray[0] + 'e' + (numArray[1] ? (+numArray[1] + precision) : precision));
        };

        return shift(Math.round(shift(number, precision, false)), precision, true);
    }

    function pBinDist(x, n, p) {
        var px = Math.pow((1 - p), n);
        //console.log(x + ' ' + n + ' ' + p + ' ' + Math.pow((1-p), n) + ' aaaaaaaaaa');
        if (x == 0) return px;


        let okCount = 0;


        if (px === 0) {
            if (WARU_COUNT_X > 0) {
                x = Math.floor(x / WARU_COUNT);
                n = WARU_COUNT_N;
            } else {

                for (var i = n - 1; i >= 0; i--) {
                    if (Math.pow((1 - p), i) !== 0) {
                        okCount = i;
                        break;
                    }
                }

                WARU_COUNT = (n / okCount);
                WARU_COUNT_N = okCount;
                x = Math.floor(x / WARU_COUNT);
                n = WARU_COUNT_N;
            }

            px = Math.pow((1 - p), n);
        }

        okCount = 0;

        for (i = 1; i <= x; i++) {
            px = px * ((n - i + 1) / i) * (p / (1 - p));

            if (px === 0) {
                okCount = i - 1;
                break;
            }
        }

        if (okCount > 0) {
            if ((x / okCount) > WARU_COUNT) {
                WARU_COUNT = (x / okCount);
                WARU_COUNT_N = Math.floor(WARU_COUNT_N / WARU_COUNT);
            }
        }

        return px;
    }

    function setSuisokuQueryValue() {
        if (location.href.match(/\?_gl=/)) {
            return false;
        }

        let countData = getUrlQueries();
        //console.log(countData);

        if (!Object.keys(countData).length) {
            return false;
        }

        let contentElement = document.getElementsByClassName('machinePageContent')[0];
        let inputElements = contentElement.getElementsByClassName('inputGameCount');

        for (var i = 0, count = inputElements.length; i < count; i++) {
            if (('g' + i) in countData) {
                inputElements[i].value = countData['g' + i];
            }
        }

        inputElements = contentElement.getElementsByClassName('inputItemCount');

        for (var i = 0, count = inputElements.length; i < count; i++) {
            if (('k' + i) in countData) {
                inputElements[i].value = countData['k' + i];
            }
        }

        suisokuResultData();

        setTimeout(function () {
            document.getElementById('suisokuDataResult').scrollIntoView(true);
        }, 500);
    }

    function setTheoryQueryValue(type) {
        if (location.href.match(/\?_gl=/)) {
            return false;
        }

        let markElements = document.getElementsByClassName('theoryValueMark');

        for (var i = markElements.length - 1; i >= 0; i--) {
            markElements[i].classList.remove('theoryValueMark');
        }

        let countData = [];

        if (type === 'suisoku') {
            let setData = {};
            let itemGroupElements = document.getElementsByClassName('suisokusDataItemGroup');
            let itemGroupElementsChildren = '';
            let itemType = '';
            let gameCount = -1;
            let totaleItemCount = 0;

            for (var i = 0, count = itemGroupElements.length; i < count; i++) {
                itemGroupElementsChildren = itemGroupElements[i].getElementsByClassName('suisokusDataItemGroup-item');
                itemType = '';
                gameCount = -1;

                if (itemGroupElements[i].innerHTML.match(/前任者/)) {
                    continue;
                } else if (!itemGroupElements[i].getElementsByClassName('inputGameCount')[0]) {
                    itemType = 'sum';

                    for (var j = 0, count2 = itemGroupElementsChildren.length; j < count2; j++) {
                        if (itemGroupElementsChildren[j].getElementsByClassName('inputItemCount')[0] && itemGroupElementsChildren[j].getElementsByClassName('inputItemCount')[0].value) {
                            if (gameCount === -1) {
                                gameCount = 0;
                            }

                            gameCount += Number(itemGroupElementsChildren[j].getElementsByClassName('inputItemCount')[0].value);
                        }
                    }

                    for (var j = 0, count2 = itemGroupElementsChildren.length; j < count2; j++) {
                        if (itemGroupElementsChildren[j].getElementsByClassName('inputItemCount')[0]) {
                            setData['k' + totaleItemCount] = gameCount + '_' + (itemGroupElementsChildren[j].getElementsByClassName('inputItemCount')[0].value ? itemGroupElementsChildren[j].getElementsByClassName('inputItemCount')[0].value : -1);
                            totaleItemCount += 1;
                        }
                    }
                } else {
                    for (var j = 0, count2 = itemGroupElementsChildren.length; j < count2; j++) {
                        if (itemGroupElementsChildren[j].getElementsByClassName('inputGameCount')[0]) {
                            if (itemGroupElementsChildren[j].getElementsByClassName('inputGameCount')[0].value) {
                                gameCount = Number(itemGroupElementsChildren[j].getElementsByClassName('inputGameCount')[0].value);
                            } else {
                                gameCount = -1;
                            }
                        } else if (itemGroupElementsChildren[j].getElementsByClassName('inputItemCount')[0]) {
                            setData['k' + totaleItemCount] = gameCount + '_' + (itemGroupElementsChildren[j].getElementsByClassName('inputItemCount')[0].value ? itemGroupElementsChildren[j].getElementsByClassName('inputItemCount')[0].value : -1);
                            totaleItemCount += 1;
                        }
                    }
                }
            }

            countData = setData;
        } else {
            countData = getUrlQueries();
        }

        console.log(countData);

        if (!Object.keys(countData).length) {
            return false;
        }

        let contentElement = document.getElementsByClassName('machinePageContent')[0];
        let inputElements = contentElement.querySelectorAll('[data-value]');
        let parentElement = '';
        let tdElements = '';
        let values = [];
        let groupNumber = 0;
        let isEmptyCount = false;
        let isPercent = false;
        let gameCount = 0;
        let koyakuCount = 0;
        let resultValue = 0;

        for (var i = 0, count = inputElements.length; i < count; i++) {
            if (('k' + i) in countData) {
                isEmptyCount = false;
                isPercent = false;

                if (!countData['k' + i]) {
                    isEmptyCount = true;
                    inputElements[i].innerHTML = '---';
                }

                parentElement = inputElements[i].parentNode;

                if (!isEmptyCount && parentElement) {
                    values = [];
                    groupNumber = parentElement.getAttribute('data-group');
                    tdElements = contentElement.querySelectorAll('[data-group="' + groupNumber + '"]');

                    for (var j = 0; j < tdElements.length; j++) {
                        for (var k = 0; k < tdElements[j].getElementsByTagName('td').length; k++) {
                            if (tdElements[j].getElementsByTagName('td')[k].getElementsByTagName('span')[0] && tdElements[j].getElementsByTagName('td')[k].getElementsByTagName('span')[0].innerHTML.match(/%/)) {
                                isPercent = true;
                                break;
                            }
                        }
                    }

                    gameCount = Number(countData['k' + i].replace(/^(.*?)_.*$/, '$1'));
                    koyakuCount = Number(countData['k' + i].replace(/^.*?_(.*)$/, '$1'));

                    if (koyakuCount > gameCount) {
                        resultValue = -1;
                        inputElements[i].innerHTML = '---';
                    } else if (koyakuCount === -1) {
                        resultValue = -1;
                        inputElements[i].innerHTML = '---';
                    } else if (isPercent) {
                        resultValue = koyakuCount > 0 ? round(koyakuCount / gameCount * 100, 1) : 0;
                        inputElements[i].innerHTML = (!String(resultValue).match(/\./) ? resultValue + '.0' : resultValue) + '%';

                        /*
                        if (resultValue > 100) {
                            inputElements[i].innerHTML = '---';
                        } else {
                            inputElements[i].innerHTML = (!String(resultValue).match(/\./) ? resultValue + '.0' : resultValue) + '%';
                        }
                        */
                    } else {
                        resultValue = koyakuCount > 0 ? round(gameCount / koyakuCount, 1) : gameCount;
                        inputElements[i].innerHTML = (koyakuCount > 0 ? '1/<br>' : '0/<br>') + (!String(resultValue).match(/\./) ? resultValue + '.0' : resultValue);

                        if (koyakuCount === 0) {
                            resultValue = 999999;
                        }
                    }

                    if (resultValue > -1) {
                        for (var j = 0; j < tdElements.length; j++) {
                            for (var k = 0; k < tdElements[j].getElementsByTagName('td').length; k++) {
                                if (tdElements[j].getElementsByTagName('td')[k].getAttribute('data-target-value')) {
                                    if (!tdElements[j].getElementsByTagName('td')[k].getElementsByTagName('span')[0].innerHTML.match(/-/)) {
                                        values[values.length] = parseFloat(tdElements[j].getElementsByTagName('td')[k].getElementsByTagName('span')[0].innerHTML.replace(/%/, ''));
                                    }
                                }
                            }
                        }

                        if (values.length) {
                            var closest = values.reduce(function (prev, curr) {
                                return (Math.abs(curr - parseFloat(resultValue)) < Math.abs(prev - parseFloat(resultValue)) ? curr : prev);
                            });

                            closest = parseFloat(closest);

                            for (var j = 0; j < tdElements.length; j++) {
                                for (var k = 0; k < tdElements[j].getElementsByTagName('td').length; k++) {
                                    if (tdElements[j].getElementsByTagName('td')[k].getAttribute('data-target-value') && (parseFloat(tdElements[j].getElementsByTagName('td')[k].getElementsByTagName('span')[0].innerHTML) == closest)) {
                                        tdElements[j].getElementsByTagName('td')[k].getElementsByTagName('span')[0].classList.add('theoryValueMark');
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }

    function getUrlQueries() {
        let queries = [];
        let queryStr = window.location.search.slice(1);

        if (!queryStr) {
            return queries;
        }

        queryStr.split('&').forEach(function (queryStr) {
            let queryArr = queryStr.split('=');
            queries[queryArr[0]] = queryArr[1].match(/^\d+$/) ? Number(queryArr[1]) : '';
        });

        return queries;
    }

})();

function highlight() {
    if (!location.href.match(/\?q=/)) {
        return false;
    }

    let keyword = decodeURIComponent(location.href.replace(/^.*?\?q=(.*)$/, '$1'));


    let keywordList = keyword.split(' ');

    $('.machinePageContent, .machinePage-thread-content-right').removeHighlight();

    for (i in keywordList) {
        console.log(keywordList[i]);
        if (keywordList[i] != '') {
            $('.machinePageContent, .machinePage-thread-content-right').highlight(keywordList[i]);
        }
    }
}

// 繝医ャ繝励∈謌ｻ繧九�繧ｿ繝ｳ

/*
$(function () {
    $("#scroll-top").hide();
    $(window).on("scroll", function () {
        if ($(this).scrollTop() > 100) {
            $("#scroll-top").fadeIn("fast");
        } else {
            $("#scroll-top").fadeOut("fast");
        }
    });
    $('#scroll-top').click(function () {
        $('body,html').animate({
            scrollTop: 0
        }, 400);
        return false;
    });
});
*/



// 繧ｿ繝門�繧頑崛縺�
$(function () {
    $('.tabMenu li').click(function (event) {
        /* 20211007 */
        /*
        if (!event.currentTarget.children[0].innerHTML.match(/導入/)) {
          return false;
        }
        */
        /* 20211007 */

        var num = $('.tabMenu li').index(this);

        $(this).addClass('active').siblings('li').removeClass('active');
        $(this).closest('.tabMenu').siblings('.tabContent').removeClass('active');
        $('.tabContent').eq(num).addClass('active');

        var getClass = $(this).attr('class').split(" ")[0];

        $(this).closest('.tabMenu').removeClass('b-blue b-red').addClass(getClass);
    });
});




// 蟆主�譌･10莉ｶ縺壹▽陦ｨ遉ｺ
$(function () {
    // 繝�ヵ繧ｩ繝ｫ繝医�陦ｨ遉ｺ謨ｰ
    var defaultNum = 10;
    // 繝懊ち繝ｳ繧ｯ繝ｪ繝�け縺ｧ霑ｽ蜉�陦ｨ遉ｺ縺輔○繧区焚
    var addNum = 10;
    // 迴ｾ蝨ｨ縺ｮ陦ｨ遉ｺ謨ｰ
    var currentNum = 0;

    $("ul.new-machine").each(function () {
        // 陦ｨ遉ｺ縺輔○繧玖ｦ∫ｴ�縺ｮ邱乗焚繧値ength繝｡繧ｽ繝�ラ縺ｧ蜿門ｾ�
        var $numberListLen = $(this).find("li").length;

        // more繝懊ち繝ｳ繧定｡ｨ遉ｺ縺励…lose繝懊ち繝ｳ繧帝國縺�
        $(this).find(".more_btn").show();
        $(this).find(".close_btn").hide();

        if ($numberListLen <= defaultNum) {
            // 邱乗焚縺後ョ繝輔か繝ｫ繝医�謨ｰ莉･荳九↑繧盈ore繝懊ち繝ｳ繧帝國縺�
            $(this).find(".more_btn").hide();
        }

        // defaultNum縺ｮ謨ｰ縺�縺題ｦ∫ｴ�繧定｡ｨ遉ｺ
        // defaultNum繧医ｊ繧､繝ｳ繝�ャ繧ｯ繧ｹ縺悟､ｧ縺阪＞隕∫ｴ�縺ｯ髫�縺�
        $(this).find("li:not(:lt(" + defaultNum + "))").hide();

        // 蛻晄悄陦ｨ遉ｺ縺ｧ縺ｯ繝�ヵ繧ｩ繝ｫ繝亥､縺檎樟蝨ｨ縺ｮ陦ｨ遉ｺ謨ｰ縺ｨ縺ｪ繧�
        currentNum = defaultNum;

        // more繝懊ち繝ｳ縺後け繝ｪ繝�け縺輔ｌ縺滓凾縺ｮ蜃ｦ逅�
        $(this).find(".more_btn").click(function () {
            // 迴ｾ蝨ｨ縺ｮ陦ｨ遉ｺ謨ｰ縺ｫ霑ｽ蜉�陦ｨ遉ｺ謨ｰ繧貞刈縺医※縺�￥
            currentNum += addNum;

            // 迴ｾ蝨ｨ縺ｮ陦ｨ遉ｺ謨ｰ縺ｫ霑ｽ蜉�陦ｨ遉ｺ謨ｰ繧貞刈縺医◆謨ｰ縺ｮ隕∫ｴ�繧定｡ｨ遉ｺ縺吶ｋ
            $(this).parent().find("li:lt(" + currentNum + ")").slideDown();

            // 陦ｨ遉ｺ謨ｰ縺ｮ邱乗焚繧医ｊcurrentNum縺悟､壹＞=蜈ｨ縺ｦ陦ｨ遉ｺ縺輔ｌ縺滓凾縺ｮ蜃ｦ逅�
            if ($numberListLen <= currentNum) {
                // 迴ｾ蝨ｨ縺ｮ陦ｨ遉ｺ謨ｰ繧偵ョ繝輔か繝ｫ繝郁｡ｨ遉ｺ謨ｰ縺ｸ謌ｻ縺�
                currentNum = defaultNum;
                // 繧､繝ｳ繝�ャ繧ｯ繧ｹ逕ｨ縺ｮ蛟､繧偵そ繝�ヨ
                indexNum = currentNum - 1;

                // more繝懊ち繝ｳ繧帝國縺励…lose繝懊ち繝ｳ繧定｡ｨ遉ｺ縺吶ｋ
                $(this).parent().find(".more_btn").hide();
                $(this).parent().find(".close_btn").show();

                // close繝懊ち繝ｳ縺後け繝ｪ繝�け縺輔ｌ縺滓凾縺ｮ蜃ｦ逅�
                $(".close_btn").click(function () {
                    // 繝�ヵ繧ｩ繝ｫ繝域焚莉･髯�=繧､繝ｳ繝�ャ繧ｯ繧ｹ縺景ndexNum繧医ｊ螟壹＞隕∫ｴ�縺ｯ髱櫁｡ｨ遉ｺ縺ｫ縺吶ｋ
                    $(this).parent().find("li:gt(" + indexNum + ")").slideUp();

                    // close繝懊ち繝ｳ繧帝國縺励［ore繝懊ち繝ｳ繧定｡ｨ遉ｺ縺吶ｋ
                    $(this).parent().find(".close_btn").hide();
                    $(this).parent().find(".more_btn").show();
                });
            }
        });
    });

    /* 20211007 */
    if (location.href.match(/\/information\//)) {
        setInformationPageMoreItems(0);
        setInformationPageMoreItems(1);

        if (document.getElementsByClassName('el_tabContents')[0]) {
            let setApiUrl = 'https://api.nana-press.com/nanatetsu/';

            $.ajax({
                url: setApiUrl,
                async: false,
                type: 'POST',
                data: {
                    'q': 'moreInformationData',
                    'category': 's',
                    'platform': navigator.userAgent.match(/iphone|ipod|android.+mobile/i) ? 'sp' : 'pc'
                },
                dataType: 'text',
                cache: false,
                timeout: 60 * 3,
                success: function (successData, textStatus, XMLHttpRequest) {
                    if (document.getElementsByClassName('el_tabContents')[0]) {
                        document.getElementsByClassName('el_tabContents')[0].getElementsByClassName('bl_latest_contentsBox')[0].innerHTML = successData;

                        let aElements = document.getElementsByClassName('el_tabContents')[0].getElementsByTagName('a');

                        for (var i = 0, count = aElements.length; i < count; i++) {
                            if (aElements[i].href.match(/system\.7press-sub/)) {
                                aElements[i].href = aElements[i].href.replace(/^http.*(kaiseki\/.*)$/, 'https://nana-press.com/$1').replace(/com\/machine/, 'com/kaiseki/machine').replace(/page\//, '');
                            } else if (aElements[i].href.match(/system/)) {
                                aElements[i].href = aElements[i].href.replace(/^http.*page\/(.*)$/, 'https://nana-press.com/kaiseki/$1').replace(/com\/machine/, 'com/kaiseki/machine').replace(/page\//, '');
                            } else if (aElements[i].href.match(/preview/)) {
                                if (aElements[i].href.match(/index\//)) {
                                    aElements[i].href = aElements[i].href.replace(/^http.*(machine\/.*)$/, 'https://nana-press.com/kaiseki/index/$1').replace(/com\/machine/, 'com/kaiseki/index/machine').replace(/page\//, '');
                                } else {
                                    aElements[i].href = aElements[i].href.replace(/^http.*(machine\/.*)$/, 'https://nana-press.com/kaiseki/$1').replace(/com\/machine/, 'com/kaiseki/machine').replace(/page\//, '');
                                }
                            } else if (!aElements[i].href.match(/\/premium\/mypage\//)) {
                                aElements[i].href = aElements[i].href.replace(/^http.*(kaiseki\/.*)$/, 'https://nana-press.com/$1').replace(/com\/machine/, 'com/kaiseki/machine').replace(/page\//, '');
                            }
                        }
                    }

                    setInformationPageMoreItems(0);
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                },
                complete: function (XMLHttpRequest, textStatus) {
                }
            });
        }

        if (document.getElementsByClassName('el_tabContents')[1]) {
            let setApiUrl = 'https://api.nana-press.com/nanatetsu/';

            $.ajax({
                url: setApiUrl,
                async: false,
                type: 'POST',
                data: {
                    'q': 'moreInformationData',
                    'category': 'p',
                    'platform': navigator.userAgent.match(/iphone|ipod|android.+mobile/i) ? 'sp' : 'pc'
                },
                dataType: 'text',
                cache: false,
                timeout: 60 * 3,
                success: function (successData, textStatus, XMLHttpRequest) {
                    if (document.getElementsByClassName('el_tabContents')[1]) {
                        document.getElementsByClassName('el_tabContents')[1].getElementsByClassName('bl_latest_contentsBox')[0].innerHTML = successData;

                        let aElements = document.getElementsByClassName('el_tabContents')[1].getElementsByTagName('a');

                        for (var i = 0, count = aElements.length; i < count; i++) {
                            if (aElements[i].href.match(/system\.7press-sub/)) {
                                aElements[i].href = aElements[i].href.replace(/^http.*(kaiseki\/.*)$/, 'https://nana-press.com/$1').replace(/com\/machine/, 'com/kaiseki/machine').replace(/page\//, '');
                            } else if (aElements[i].href.match(/system/)) {
                                aElements[i].href = aElements[i].href.replace(/^http.*page\/(.*)$/, 'https://nana-press.com/kaiseki/$1').replace(/com\/machine/, 'com/kaiseki/machine').replace(/page\//, '');
                            } else if (aElements[i].href.match(/preview/)) {
                                if (aElements[i].href.match(/index\//)) {
                                    aElements[i].href = aElements[i].href.replace(/^http.*(machine\/.*)$/, 'https://nana-press.com/kaiseki/index/$1').replace(/com\/machine/, 'com/kaiseki/index/machine').replace(/page\//, '');
                                } else {
                                    aElements[i].href = aElements[i].href.replace(/^http.*(machine\/.*)$/, 'https://nana-press.com/kaiseki/$1').replace(/com\/machine/, 'com/kaiseki/machine').replace(/page\//, '');
                                }
                            } else if (!aElements[i].href.match(/\/premium\/mypage\//)) {
                                aElements[i].href = aElements[i].href.replace(/^http.*(kaiseki\/.*)$/, 'https://nana-press.com/$1').replace(/com\/machine/, 'com/kaiseki/machine').replace(/page\//, '');
                            }
                        }
                    }

                    setInformationPageMoreItems(1);
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                },
                complete: function (XMLHttpRequest, textStatus) {
                }
            });
        }
    }
    /* 20211007 */
});

/* 20211007 */
function setInformationPageMoreItems(category) {
    let infoDefaultNum = 30;
    let infoAddNum = 30;
    let infoCurrentNum = 0;
    category = category === 0 ? 1 : 2;

    $(".el_tabContents:nth-child(" + category + ")").each(function () {
        var $numberListLen = $(this).find("li").length;

        $(this).find(".el_moreView-open").show();
        $(this).find(".el_moreView-close").hide();

        if ($numberListLen <= infoDefaultNum) {
            $(this).find(".el_moreView-open").hide();
        }

        $(this).find("li:not(:lt(" + infoDefaultNum + "))").hide();

        infoCurrentNum = infoDefaultNum;

        $(this).find(".el_moreView-open").click(function () {
            infoCurrentNum += infoAddNum;

            $(this).parent().find("li:lt(" + infoCurrentNum + ")").slideDown();

            if ($numberListLen <= infoCurrentNum) {
                infoCurrentNum = infoDefaultNum;
                infoIndexNum = infoCurrentNum - 1;

                $(this).parent().find(".el_moreView-open").hide();
                $(this).parent().find(".el_moreView-close").show();

                $(".el_moreView-close").click(function () {
                    $(this).parent().find("li:gt(" + infoIndexNum + ")").slideUp();

                    $(this).parent().find(".el_moreView-close").hide();
                    $(this).parent().find(".el_moreView-open").show();
                });
            }
        });
    });
}

function setMachinePageInformation() {
    let targetElement = document.getElementsByClassName('bl_modelInfo_updateInfoList')[0];

    if (!targetElement) {
        return false;
    }

    var infoDefaultNum = 3;
    var infoAddNum = 9999;
    var infoCurrentNum = 0;

    $(".bl_modelInfo_updateInfoList").each(function () {
        var $numberListLen = $(this).find("li").length;

        $(".el_moreView-open").show();
        $(".el_moreView-close").hide();

        if ($numberListLen <= infoDefaultNum) {
            $(".el_moreView-open").hide();
        }

        $(this).find("li:not(:lt(" + infoDefaultNum + "))").hide();

        infoCurrentNum = infoDefaultNum;

        $(".el_moreView-open").click(function () {
            infoCurrentNum += infoAddNum;

            $(this).parent().find("li:lt(" + infoCurrentNum + ")").slideDown();

            if ($numberListLen <= infoCurrentNum) {
                infoCurrentNum = infoDefaultNum;
                infoIndexNum = infoCurrentNum - 1;

                $(this).parent().find(".el_moreView-open").hide();
                $(this).parent().find(".el_moreView-close").show();

                $(".el_moreView-close").click(function () {
                    $(this).parent().find("li:not(:lt(" + infoDefaultNum + "))").hide();

                    $(this).parent().find(".el_moreView-close").hide();
                    $(this).parent().find(".el_moreView-open").show();
                });
            }
        });
    });
}
/* 20211007 */

// 繝壹�繧ｸ蜀�せ繝�繝ｼ繧ｺ繧ｹ繧ｯ繝ｭ繝ｼ繝ｫ
/*
$(function(){
  var headerHeight = $('header').outerHeight();
  var urlHash = location.hash;
  if(urlHash) {
    $('body,html').stop().scrollTop(0);
    setTimeout(function(){
      var target = $(urlHash);
      var speed = 500;
          var position = target.offset().top // 繝倥ャ繝繝ｼ蝗ｺ螳壹☆繧句�ｴ蜷�  - headerHeight;
          //繝壹�繧ｸ繝ｭ繝ｼ繝峨�蜃ｦ逅�ｒ蠕�▲縺ｦ縺九ｉ100繝溘Μ遘貞ｾ後↓繧ｹ繧ｯ繝ｭ繝ｼ繝ｫ縺輔○繧�
          $('body,html').stop().animate({scrollTop:position}, speed, "swing");
        }, 100);
  }
  $('a[href^="#"]').click(function() {
    var href= $(this).attr("href");
    var target = $(href == "#" || href == "" ? 'html' : href);
    var speed = 500;
      var position = target.offset().top // 繝倥ャ繝繝ｼ蝗ｺ螳壹☆繧句�ｴ蜷�  - headerHeight;
      $('body,html').stop().animate({scrollTop:position}, speed, "swing");
    });
});
*/

/* 20240509 目次開閉（全開き） */
function setMachinePageMokujiToggle2(lv, index) {
    let targetElement = document.getElementsByClassName('bl_modelInfo_lv' + lv + 'List')[index];

    if (!targetElement) {
        return false;
    }

    var mokujiDefaultNum = 0;
    var mokujiAddNum = 9999;
    var mokujiCurrentNum = 0;

    let prevElment = targetElement.previousSibling;

    $(".bl_modelInfo_lv" + lv + "List").eq(index).each(function () {
        var $numberListLen = $(this).find(".bl_modelInfo_lv" + lv).length;

        $(prevElment).find('.el_moreView-close').show();
        $(prevElment).find('.el_moreView-open').hide();

        if ($numberListLen <= mokujiDefaultNum) {
            $(prevElment).find(".el_moreView-close").hide();
        }

        mokujiCurrentNum = mokujiDefaultNum;

        $(prevElment).find('.el_moreView-close').click(function () {

            if (lv === 2) {
                $(this).parent().next().find(".bl_modelInfo_lv2:not(:lt(" + mokujiDefaultNum + "))").hide('fast');
                $(this).parent().next().find(".bl_modelInfo_lv3").hide('fast');

                //$(this).parent().next().find(".el_moreView-open").show();
                //$(this).parent().next().find(".el_moreView-close").hide();
            } else {
                $(this).parent().next().find(".bl_modelInfo_lv" + lv + ":not(:lt(" + mokujiDefaultNum + "))").hide('fast');
            }

            $(this).parent().find(".el_moreView-close").hide();
            $(this).parent().find(".el_moreView-open").show();

            $(prevElment).find('.el_moreView-open').click(function () {
                mokujiCurrentNum += mokujiAddNum;

                console.log(this);

                $(this).parent().next().find(".bl_modelInfo_lv" + lv + ":lt(" + mokujiCurrentNum + ")").slideDown('fast');

                $(this).parent().find(".el_moreView-open").hide();
                $(this).parent().find(".el_moreView-close").show();
            });
        });
    });
}

/* 20240318 目次開閉 */
function setMachinePageMokujiToggle(lv, index) {
    let targetElement = document.getElementsByClassName('bl_modelInfo_lv' + lv + 'List')[index];

    if (!targetElement) {
        return false;
    }

    var mokujiDefaultNum = 0;
    var mokujiAddNum = 9999;
    var mokujiCurrentNum = 0;

    let prevElment = targetElement.previousSibling;

    $(".bl_modelInfo_lv" + lv + "List").eq(index).each(function () {
        var $numberListLen = $(this).find(".bl_modelInfo_lv" + lv).length;

        $(prevElment).find('.el_moreView-open').show();
        $(prevElment).find('.el_moreView-close').hide();

        if ($numberListLen <= mokujiDefaultNum) {
            $(prevElment).find(".el_moreView-open").hide();
        }

        $(this).find(".bl_modelInfo_lv" + lv + ":not(:lt(" + mokujiDefaultNum + "))").hide();

        mokujiCurrentNum = mokujiDefaultNum;

        $(prevElment).find('.el_moreView-open').click(function () {
            mokujiCurrentNum += mokujiAddNum;

            $(this).parent().next().find(".bl_modelInfo_lv" + lv + ":lt(" + mokujiCurrentNum + ")").slideDown('fast');

            if ($numberListLen <= mokujiCurrentNum) {
                mokujiCurrentNum = mokujiDefaultNum;
                infoIndexNum = mokujiCurrentNum - 1;

                $(this).parent().find(".el_moreView-open").hide();
                $(this).parent().find(".el_moreView-close").show();

                $(prevElment).find('.el_moreView-close').click(function () {
                    if (lv === 2) {
                        $(this).parent().next().find(".bl_modelInfo_lv2:not(:lt(" + mokujiDefaultNum + "))").hide('fast');
                        $(this).parent().next().find(".bl_modelInfo_lv3").hide('fast');

                        //$(this).parent().next().find(".el_moreView-open").show();
                        //$(this).parent().next().find(".el_moreView-close").hide();
                    } else {
                        $(this).parent().next().find(".bl_modelInfo_lv" + lv + ":not(:lt(" + mokujiDefaultNum + "))").hide('fast');
                    }


                    $(this).parent().find(".el_moreView-close").hide();
                    $(this).parent().find(".el_moreView-open").show();
                });
            }
        });
    });
}
