/**
 * 定数一覧
 *
 * @param arg
 * @constructor
 */

const IFRAME_SEP = ':::::::::+++::::::::::';

/**
 * アンカーリンク用のスクロール処理（RoboHelpのURL変更を回避）
 * すべてのページで共通利用可能
 */
function scrollToAnchor(anchorId) {
    var target = document.getElementById(anchorId);

    if (target) {
        var speed = 400; // msec
        var position = $(target).offset().top;
        $('body,html').animate({scrollTop: position}, speed, 'swing');
    }

    return false; // デフォルトの動作をキャンセルしてRoboHelpの介入を防ぐ
}

/**
 * ページ読み込み時に、すべてのアンカーリンク（href="#..."）に
 * クリックハンドラを自動的に追加（TOCリンク用）
 */
$(document).ready(function() {
    var anchorLinks = $('a[href^="#"]');

    anchorLinks.each(function() {
        var href = $(this).attr('href');

        // href="#" だけのリンクは除外（ドロップダウンなど）
        if (href === '#') {
            return;
        }

        // 既に onclick が設定されている場合はスキップ
        if ($(this).attr('onclick')) {
            return;
        }

        // アンカーIDを取得（#を除去）
        var anchorId = href.substring(1);

        // キャプチャフェーズでイベントを捕捉
        var element = this;
        element.addEventListener('click', function(e) {
            e.preventDefault();
            e.stopPropagation();
            e.stopImmediatePropagation();
            scrollToAnchor(anchorId);
            return false;
        }, true);
    });
});
