/**
 * 本文用javascript
 *
 * @author OTSUKA, TAKEMOTO, MOCHIDUKI.Y
 * @copyright All Rights Reserved Copyright(c) FUJITSU LIMITED 2008-2010
 */
var Body =
{
    // ブラウザ種別
    blowserType    : "MIE",
    blowserTypeMIE : "MIE",
    blowserTypeNSC : "NSC",

    // ブラウザ種別
    KSwidth : 300,

    // セッションジョブモード
    session_job_mode : "check",

    // 最大検索文字列長
    max_length       : 40,

    // 定数値
    init_page_number    : 1,
    search_mode_headwd  : 1,
    search_mode_example : 2,

    // 検索実行中フラグ
    search_flag_headwd  : 0,
    search_flag_example : 0,
    nkflag              : 0,
    kssearchword        : "",

    // マルチメディアのタイトルID
    multimediaTitleId  : 60110,

    // アンカー記述子
    splitAnchorMark    : '＼',

    // Flash本文利用フラグ(東洋文庫)
    flashEasternLib    : false,

    // 新編日本古典文学の設定
    kotenTitleId       : 80110,
    kotenPageIdlength  : -6,

    // 国史大辞典
    kokushiTitleId     : 30010,
    anchorPrefix       : 'honmon',
    kokushiAnchorReg   : '^([0-9]{5})([0-9]+)#([0-9]+)$',

   /**
    * 本文の表示
   **/
    bodydisplay: function(titleId, localId, titleTag, windowOpenFlag)
    {
        var f  = null;
        localId = String(localId);

        // アンカー文字列
        var localAnchor = '';
        // action用文字列
        var actionName = '';

        if (document.bodyForm) {
            f = document.bodyForm;
        } else {
            f = document.defaultBodyForm;
        }
        if (titleId == Body.multimediaTitleId) {
            var wn = 'multimediawin';
        } else if (windowOpenFlag == '0') {
            var wn = '_self';
        } else {
            var wn = '_blank';
        }

        if (!titleTag) {
            titleTag = '';
        }
        if (f.title_tag) {
            f.title_tag.value = titleTag;
        } else {
            var titleTagElm = document.createElement("input");
            titleTagElm.type  = 'hidden';
            titleTagElm.name  = 'title_tag';
            titleTagElm.value = titleTag;
            f.appendChild(titleTagElm);
        }

        // 東洋文庫でFlash/PDF画面新規表示の場合はステータス指定のウィンドウを開く
        if (typeof(f.el_flag) != 'undefined' && f.el_flag.value != "") {
            // 東洋文庫でFlashビューアの場合
            if (Body.flashEasternLib == true && f.el_flag.value != 'book') {
                var wn = 'toyoFlashViewerWindow';
                var w  = CommonUtils.nFlashWin('', wn);
                // Flash用のウィンドウ解説に失敗した場合は、ウィンドウ名を変更してリトライする。
                for (i = 0 ; i < 128 && w == false; i++) {
                    var wn = 'toyoFlashViewerWindow' + i;
                    var w  = CommonUtils.nFlashWin('', wn);
                }
                var flash_flag = true;
             } else if (f.el_flag.value == 'frame') {
                 var wn = localId;
                 var w  = CommonUtils.nWin('', wn);
             }
        }

        // 新編日本古典文学の場合はステータス指定のウィンドウを開く
        // 対象データはローカルIDの下6桁が'000000'以外
        if (titleId == Body.kotenTitleId) {
            var checkKotenLocalId = localId.slice(Body.kotenPageIdlength);
            if (!checkKotenLocalId.match(/0{6}/)) {
                var wn = 'kotenFlashViewerWindow';
                var w  = CommonUtils.nFlashWin('', wn);
                // Flash用のウィンドウ解説に失敗した場合は、ウィンドウ名を変更してリトライする。
                for (i = 0 ; i < 128 && w == false; i++) {
                    var wn = 'kotenFlashViewerWindow' + i;
                    var w  = CommonUtils.nFlashWin('', wn);
                }
                var flash_flag = true;
            }
        }

        // local_idにアンカーが付属しているか判断する
        if (localId.match(Body.splitAnchorMark) != null) {
            // 付属している場合、アンカー用変数に切り出す
            var arrLocalId = localId.split(Body.splitAnchorMark);
            localId     = arrLocalId[0];
            localAnchor = '#' + arrLocalId[1];
        }

        // 国史大辞典の時、local_idにアンカーが付属しているか判断する
        if (titleId == Body.kokushiTitleId) {
            if(localId.match(Body.kokushiAnchorReg) != null) {
                var localAnchor = localId;
                var reg = new RegExp(Body.kokushiAnchorReg, 'gi');
                localAnchor.match(reg);
                localAnchor = '#' + Body.anchorPrefix + RegExp.$1 + RegExp.$2 + RegExp.$3;
                localId = RegExp.$1 + RegExp.$2;
            }
        }

       // 無料検索を有効にする場合は以下のコメントアウトを外すこと
       // var login = Body.checkLogin();

        with (f) {
            if (typeof(el_flag) != 'undefined' && el_flag.value != "" &&
                typeof(flash_flag) == 'undefined') {

                // 無料検索を有効にする場合は次の行を削除すること
                actionName = '/body/easternlibdisplay/';

                // 無料検索を有効にする場合は以下５行のコメントアウトを外すこと
                // if (login === true) {
                //    actionName = '/body/easternlibdisplay/';
                // } else {
                //    actionName = '/body/freeeasternlibdisplay/';
                // }

                 if (el_flag.value == 'page') {
                     target = 'mainFrame';
                 } else if (el_flag.value == 'chap') {
                     target = 'leftFrame';
                 } else if (el_flag.value == 'frame') {
                     target = wn;
                 } else {
                     target = '_blank';
                 }
            } else if (flash_flag == true) {
                actionName = '/body/flashredirect/';
                target = wn;

            } else {

                // 無料検索を有効にする場合は次の行を削除すること
                actionName = '/body/display/';

                // 無料検索を有効にする場合は以下５行のコメントアウトを外すこと
                // if (login === true) {
                //    actionName = '/body/display/';
                // } else {
                //    actionName = '/body/freedisplay/';
                // }
                target = wn;
            }

            title_id.value    = titleId;
            local_id.value    = localId;
            // actionにアンカーを付与する
            action = actionName + localAnchor;
            method = 'post';
            submit();

            // ブラウザの判別
            if(navigator.appName.charAt(0) == "N"){
                document.bodyForm = null;
            }
        }
        // Flashビューア画面表示の場合はステータス指定のウィンドウにフォーカスを当てる
        if ((typeof(f.el_flag) != 'undefined' && f.el_flag.value == 'frame') ||
            (flash_flag == true)) {
                w.focus();
        }
     },

   /**
    * 画像本文の表示
   **/
    imgbodydisplay: function(titleId, cap, descript, fname, cright, width, height)
    {
        var f  = null;
        if (document.bodyForm) {
            f = document.bodyForm;
        } else {
            f = document.defaultBodyForm;
        }

       // 無料検索を有効にする場合は以下のコメントアウトを外すこと
       // var login = Body.checkLogin();

        var wn = 'imgwin';
        var w = window.open('', wn, "width="+width+",height="+height+",resizable=1,scrollbars=1,top=20,left=20");
        with (f) {
            title_id.value    = titleId;
            caption.value     = cap;
            description.value = descript;
            filename.value    = fname;
            copyright.value   = cright;

            // 無料検索を有効にする場合は次の行を削除すること
            action = '/body/imgdisplay/';

            // 無料検索を有効にする場合は以下５行のコメントアウトを外すこと
            // if (login === true) {
            //    action = '/body/imgdisplay/';
            // } else {
            //    action = '/body/freeimgdisplay/';
            // }

            target = wn;
            method = 'post';
            submit();
        }
        w.focus();
     },

   /**
    * 東洋文庫・本文の表示
   **/
    easternlibcheck: function(displayFlag)
    {
        var f  = null;
        if (document.bodyForm) {
            f = document.bodyForm;
        } else {
            f = document.defaultBodyForm;
        }
        with (f) {
            el_flag.value     = displayFlag;
        }
    },

   /**
    * 表示切り替え（表示→非表示）
   **/
    showHide: function(id)
    {
        var disp = document.getElementById(id).style.display;
        if (disp != "none") {
            document.getElementById(id).style.display = "none";
        }
        return false;
     },

    /**
    * 表示切り替え（非表示→表示）
    **/
    hideShow: function(id)
    {
        var disp = document.getElementById(id).style.display;
        if (disp != "block") {
            document.getElementById(id).style.display = "block";
        }
        return false;
    },

    /**
    * 表示切り替え（非表示⇔表示）
    **/
    changeDisplay: function(id)
    {
        var disp = document.getElementById(id).style.display;
        if(disp == "none"){
            document.getElementById(id).style.display = "block";
        } else {
            document.getElementById(id).style.display = "none";
        }
        return false;
    },

    /**
    * 月の大小・朔月の文字列開閉
    **/
    KODAISHI_MOON: function()
    {
        var moon = document.getElementById('KOD_MOON').style.display;
        if( moon == "none" ){
            document.getElementById('KOD_MOON').style.display = "inline";
        } else {
            document.getElementById('KOD_MOON').style.display = "none";
        }
    },


    /**
     * KnowledgeSearcherの表示
    **/
    onReady: function(nkflag)
    {
        // cookieにKnowledgeSearcherの状態が保持されている場合
        var ksCheckBox = Cookie.getCookie('KSCheckBox');
        if (ksCheckBox != "null" && ksCheckBox != "false") {
            if (document.getElementById('KSCheckBox')) {
                document.getElementById('KSCheckBox').checked = ksCheckBox;
            }
        }

        $('#floatKsCtrlBase').draggable(
            {
                zIndex:      20,
                ghosting:    false,
                handle:      '#headerFrame',
                opacity:     1,
                containment: 'document'
            }
        );
        $("#floatKsCtrlBase").hide();

        // 日国使用不可能な場合は表示しない
        Body.nkflag = nkflag;
        if (Body.nkflag == 0) {
            $("#ksexample").hide();
        }

        $('#ksClose').click(function()
        {
            $("#floatKsCtrlBase").hide();
            Body.search_flag_headwd  = 0;
            Body.search_flag_example = 0;
        });

        // ブラウザの判別
        if(navigator.appName.charAt(0) == "M"){
            Body.blowserType = Body.blowserTypeMIE;
        } else if(navigator.appName.charAt(0) == "N"){
            Body.blowserType = Body.blowserTypeNSC;
        }
    },

    /**
     * KnowledgeSearcherの表示
    **/
    knowledgeSearcher: function(event, page_number, search_mode)
    {
        // 検索処理の実施
        if (!search_mode) {
            // KnowledgeSearcherがチェックされていない場合は使用しない
            if (!document.bodyForm.KSCheckBox.checked) {
                return false;
            }

            // KnowledgeSearcherの表示位置取得
            var position = Body.getPosition(event);

            // 検索語が空の場合は処理を行わない
            var selectword = Body.getSearchword()
            var errors  = Body.checkSearchword(selectword);
            if (selectword == "") {
                return false;

            // ログアウト済みの場合はログインを促すメッセージを表示する
            } else if(Body.checkLogin() == false) {
                Body.pleaseLogin(position);
                return false;

            // エラーがある場合は表示を行い返却する
            } else if (errors != "") {
                alert(errors);
                return false;

            // エラーがある場合は表示を行い返却する
            } else if (Body.search_flag_headwd  == 1 ||
                       Body.search_flag_example == 1) {
                alert(Messages.KS_WAIT_MESSAGE);
                return false;
            }

            // KnowledgeSearcher初期表示
            Body.kssearchword = selectword;
            Body.initKSDisplay(Body.kssearchword, position);

            // ページ番号が設定されていない場合、初期ページを１とする
            if (!page_number) {
                var page_number = 1
            }

            $.post("/stdsearch/kssearch",
            {
                "searchword"       : Body.kssearchword,
                "page_number"      : page_number,
                "search_mode"      : Body.search_mode_headwd,
                "session_job_mode" : Body.session_job_mode
            },
            Body.displayDataHeadword);
            Body.search_flag_headwd = 1;

            if (Body.nkflag == 1) {
                $.post("/stdsearch/kssearch",
                {
                    "searchword"       : Body.kssearchword,
                    "page_number"      : page_number,
                    "search_mode"      : Body.search_mode_example,
                    "session_job_mode" : Body.session_job_mode
                },
                Body.displayDataExample);
                Body.search_flag_example = 1;
            }
        // ページ遷移
        } else {
            // ログアウト済みの場合はログインを促すメッセージを表示する
            if(Body.checkLogin() == false) {
                Body.pleaseLogin(position);
                return false;

            // エラーがある場合は表示を行い返却する
            } else if (Body.search_flag_headwd  == 1 ||
                       Body.search_flag_example == 1) {
                alert(Messages.KS_WAIT_MESSAGE);
                return false;
            }

            if (search_mode == 1){
                $("#resultListFrameHW").html(Messages.KS_PAGE_MOVE);
                $.post("/stdsearch/kssearch",
                {
                    "searchword"       : Body.kssearchword,
                    "page_number"      : page_number,
                    "search_mode"      : search_mode,
                    "session_job_mode" : Body.session_job_mode
                },
                Body.displayDataHeadword);
                Body.search_flag_headwd = 1;
            } else if (search_mode == 2 && Body.nkflag == 1){
                $("#resultListFrameEX").html(Messages.KS_PAGE_MOVE);
                $.post("/stdsearch/kssearch",
                {
                    "searchword"       : Body.kssearchword,
                    "page_number"      : page_number,
                    "search_mode"      : search_mode,
                    "session_job_mode" : Body.session_job_mode
                },
                Body.displayDataExample);
                Body.search_flag_example = 1;
            }
        }
    },

    /**
     * 検索語の取得
    **/
    getSearchword: function()
    {
        // 検索語の取得
        if(navigator.userAgent.indexOf("MSIE") != -1){
            var searchword = document.selection.createRange().text;
        } else if(navigator.userAgent.indexOf("Firefox") != -1 ||
                  navigator.userAgent.indexOf("Netscape") != -1 ||
                  navigator.userAgent.indexOf("Opera") != -1 ){
            var searchword = document.getSelection();
        } else if(navigator.userAgent.indexOf("Safari") != -1){
            var searchword = window.getSelection().toString();
        }

        // trim処理を行う
        searchword = searchword.replace(/[\t|\n|\r|\s|　]+/g, '');

        return searchword;
    },

    /**
     * 検索語のチェック
    **/
    checkSearchword: function(searchword)
    {
        var errors = "";

        // キーワードの最大長チェック
        if (searchword.length > Body.max_length) {
            errors = Messages.ERROR_KEYWORD_LENGTH_LONG_KS;
        }
        return errors;
    },

    /**
     * KnowledgeSearcherの表示位置取得
    **/
    getPosition: function(event)
    {
        // カーソルのX,Y座標を取得
        if (Body.blowserType == Body.blowserTypeMIE) {
            var x = window.event.clientX;
            var y = window.event.clientY + document.body.scrollTop;
        } else {
            var x = event.pageX;
            var y = event.pageY;
        }

        // ウィンドウの幅を取得
        if (Body.blowserType == Body.blowserTypeMIE) {
            var wwidth = document.body.clientWidth;
        } else {
            var wwidth = window.innerWidth - 21;
        }

        // KSメニューの表示位置がウィンドウの幅を超えるようならカーソルの左下にX座標を変更する
        if ((Body.KSwidth + x) > wwidth){
            x = x - Body.KSwidth;
        }

        return new Array(x, y);
    },

    /**
     * KnowledgeSearcher初期表示
    **/
    initKSDisplay: function(searchword, position)
    {
        $("#floatKsCtrlBase").css({left: position[0], top: position[1]});

        $("#headerSearchText").html(Messages.KS_SEARCH_RESULT);
        $("#searchText").html(searchword);
        $("#resultListFrameHW").html(Messages.KS_HEADWORD_SEARCHING);
        $("#resultHWLB").html(Messages.KS_HEADWORD_SEARCH);
        $("#resultHWRB").html(Messages.KS_ZERO_HIT);
        $("#resultListFrameEX").html(Messages.KS_EXAMPLE_SEARCHING);
        $("#resultEXLB").html(Messages.KS_EXAMPLE_SEARCH);
        $("#resultEXRB").html(Messages.KS_ZERO_HIT);


        $("#backCandidateFrame").hide();
        $("#backCandidateFrameHW").hide();
        $("#nextCandidateFrameHW").hide();
        $("#backCandidateFrameEX").hide();
        $("#nextCandidateFrameEX").hide();

        if (Body.nkflag == 1) {
            $("#ksexample").show();
        }
        $("#resultHW").show();
        $("#floatKsCtrlBase").show();

    },

    /**
     * 見出し検索結果の表示
    **/
    displayDataHeadword: function(result_html)
    {
        $("#ksheadword").html(result_html);
        Body.search_flag_headwd = 0;
    },

    /**
     * 用例検索結果の表示
    **/
    displayDataExample: function(result_html)
    {
        $("#ksexample").html(result_html);
        Body.search_flag_example = 0;
    },

    /**
     * ログアウトチェック
    **/
    checkLogin: function()
    {
        if (!navigator.cookieEnabled) {
            alert("ブラウザの設定にてクッキーの受け入れを有効にしてください。");
        } else {
            cookies = document.cookie+";";
            start   = cookies.indexOf("JKXSID=");
            if (start != -1){
                return true;
            } else {
            return false;
            }
        }
    },

    /**
     * ログインを促すメッセージを表示
    **/
    pleaseLogin: function(position)
    {
        $("#floatKsCtrlBase").css({left: position[0], top: position[1]});
        $("#headerSearchText").html(Messages.KS_ERROR);
        $("#resultListFrameHW").html(Messages.KS_ERROR_MESSAGE);
        $("#floatKsCtrlBase").show();
        $("#ksexample").hide();
        $("#resultHW").hide();
    },
    /**
     * 音声、動画ファイル再生画面を表示
    **/
    mediabodydisplay: function(titleId, localId, MediaId, MediaKind, TitleTag)
    {
        var f  = null;
        if (document.bodyForm) {
            f = document.bodyForm;
        } else {
            f = document.defaultBodyForm;
        }
        var wn = 'mediawin';
        if (MediaKind == 1) {
            var w = window.open('', wn, "width=700,height=300");
        } else {
            var w = window.open('', wn);
        }
        with (f) {
            title_id.value    = titleId;
            local_id.value    = localId;
            media_id.value    = MediaId;
            media_kind.value  = MediaKind;
            title_tag.value   = TitleTag;

            action = '/media/display/';
            target = wn;
            method = 'post';
            submit();
        }
        w.focus();
    },

    /**
     * Rand McNally世界地図
    **/
    randmcnally: function(targetId)
    {
        // OSの種類
        var osName = "";
        var browerNG = "0";
        var osNG = "0";
        var os_browerNG = "0";

        if (navigator.userAgent.indexOf("Win") > -1){
            osName = "Win";
        }else if (navigator.userAgent.indexOf("Mac") >= 0){
            osName = "Mac";
            osNG = "1";
        }else if (navigator.userAgent.indexOf("X11") >= 0){
            osName = "X11";
        }else{
            osNG = "1";
        }

        // ブラウザの種類
        var aName = navigator.appName.toUpperCase();
        var uName = navigator.userAgent.toUpperCase();
        var browerName = "";
        if (navigator.appVersion.indexOf("Safari") > -1){
            browerName = "SAFARI";
        }else if (uName.indexOf("SAFARI") >= 0){
            browerName = "SAFARI";
        }else if (uName.indexOf("OPERA") >= 0){
            browerName = "OPERA";
        }else if (uName.indexOf("FIREFOX") > -1){
            browerName = "FIREFOX";
        }else if (aName.indexOf("NETSCAPE") >= 0){
            browerName = "NETSCAPE";
            browerNG = "1";
        }else if (aName.indexOf("MICROSOFT") >= 0){
            browerName = "MICROSOFT";
            browerNG = "1";
        }else{
            browerNG = "1";
        }

        os_browerNG = osNG * browerNG * 0;

        if (os_browerNG == "1"){
            alert("この機能はお客さまのお使いのブラウザでは\nご利用いただけません。");

        }else{
            var f  = null;
            if (document.bodyForm) {
                f = document.bodyForm;
            } else {
                f = document.defaultBodyForm;
            }
            var wn = 'wmap';
            var toolOption = ",top=10,left=10,width=1007,height=723,status=yes,resizable=yes";
            var w = window.open('', wn, toolOption);
            with (f) {
                action = '/body/randmcnally/';
                ssnid.value = targetId;
                target = wn;
                method = 'post';
                submit();
            }
            w.focus();
        }
    },


    /**
     * 江戸名所図会
    **/
    edomeisho: function()
    {
        var f  = null;
        if (document.bodyForm) {
            f = document.bodyForm;
        } else {
            f = document.defaultBodyForm;
        }
        var wn = 'edomeisho';
        var toolOption = "toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes";
        var w = window.open('', wn, toolOption);
        with (f) {
            action = '/body/edomeisho/';
            target = wn;
            method = 'post';
            submit();
        }
        w.focus();
    },

    /**
     * 方言ツールチップ表示（日国）
    **/
    showHougenToolTip: function(which, txt)
    {
        var counttxt = txt.replace(/<.*>/g, "");
        var txtw = counttxt.length * 10;

        var obj1 = document.getElementById('hougenTooltipBody');
        obj1.innerHTML = txt;

        var obj2 = document.getElementById('hougenTooltip');
        var obj3 = document.getElementById('hougenTipMark');
        document.getElementById('hougenTooltip').style.display = 'block';

        document.getElementById('hougenTooltip').style.top  = Body.getYpos(which) + 18  + 'px';

        var tipLeftPos = Body.getXpos(which) - (txtw / 2) + 15;
        var markLeftPos = Body.getXpos(which) - tipLeftPos + 5;

        if(tipLeftPos < 10){
            tipLeftPos = 10;
            markLeftPos = Body.getXpos(which) - 5;
        }

        obj2.style.left = tipLeftPos + 'px';
        obj3.style.left = markLeftPos + 'px';

    },

    /**
     * 方言ツールチップ非表示（日国）
    **/
    hideHougenToolTip: function()
    {
        document.getElementById('hougenTooltip').style.display = 'none';
    },

    getXpos: function(obj)
    {
        xpos = obj.offsetLeft;
        if(obj.offsetParent != null){
            xpos += Body.getXpos(obj.offsetParent);
        }
        return xpos;
    },

    getYpos: function(obj)
    {
        ypos = obj.offsetTop;
        if(obj.offsetParent != null){
            ypos += Body.getYpos(obj.offsetParent);
        }
        return ypos;
    },

    dispRuby: function ( flag )
    {
    // flag none display  visible hidden
        var i ;
        var spans;

        if( flag == 'inline' ) {

            if( document.getElementById('KSCheckBox') ) {
                document.getElementById('KSCheckBox').disabled = true;
                document.getElementById('KSCheckBox').checked = false;
                if( document.getElementById('KOD_KS_MSG') ) {
                    document.getElementById('KOD_KS_MSG').style.display = 'block';
                }
            }

        } else if( flag == 'none' ) {

            if( document.getElementById('KSCheckBox') ) {
                document.getElementById('KSCheckBox').disabled = false;
            }

            if( document.getElementById('KOD_KS_MSG') ) {
                document.getElementById('KOD_KS_MSG').style.display = flag;
            }
        }

        if(document.getElementById){
            spans = document.getElementsByTagName("rt");
            for(i = spans.length - 1 ; i >= 0 ; i--) {
                spans[i].style.display = flag;
            }
            spans = document.getElementsByTagName("rp");
            for(i = spans.length - 1 ; i >= 0 ; i--) {
                spans[i].style.display = flag;
            }
        }else if(document.all){
            for (i = document.all.tags("rt").length - 1 ; i >= 0 ; i--) {
                document.all.tags("rt")(i).style.display = flag;
            }
            for (i = document.all.tags("rp").length - 1 ; i >= 0 ; i--) {
                document.all.tags("rp")(i).style.display = flag;
            }
        }
        return false;
    },

    /**
     * 引用情報をクリップボードのテキストに追加する
    **/
    addCopyright: function(item, content)
    {
        var STR_MIN_LENGTH = 20;
        var str_selected="";
        var ua = navigator.userAgent.toLowerCase();
        var str_selected = document.selection.createRange().text;
        if( ua.match('ie') ) {
            if ( str_selected.length >= STR_MIN_LENGTH ) {
                var url  = "http://" + document.domain;
                var date = new Date();
                var yy   = date.getFullYear();
                var mm   = date.getMonth() + 1;
                var dd   = date.getDate();
                if (mm < 10) { mm = "0" + mm; }
                if (dd < 10) { dd = "0" + dd; }

                var nowdate = yy + "-" + mm + "-" + dd;

                var ct = str_selected + "\n\n" + "”" + item + "”, " + content + ", ジャパンナレッジ (オンラインデータベース), 入手先＜" + url + "＞, (参照 " + nowdate + ")\n\n";
                alert( "引用情報をクリップボードのテキストに追加しました。" );
            } else {
                var ct = str_selected;
            }
        } else {
            var ct = str_selected;
        }
        clipboardData.setData( "Text", ct );
    },

    /**
     * 仮名字体表を表示
    **/
    kanajitaidisplay: function(Url, TitleTag)
    {
        var wn = 'kanajitai';
        Url = Url.replace('{', '').replace('}', '').replace('/auth_html/contents/', '').replace(/\//g, '%2F');
        var w = window.open('/common/display?filename='+Url+'&session_job_mode=check', wn);
    },

    /**
     * 会員トップ画面からFlashビューア表示
    **/
    flashdirectdisplay: function(titleId, localId)
    {
        var f = null;
        if (document.bodyForm) {
            f = document.bodyForm;
        } else {
            f = document.defaultBodyForm;
        }
        var features="location=no, menubar=no, status=yes, scrollbars=yes, resizable=yes, toolbar=no";
        var wn = 'directFlashViewerWindow';
        var w = window.open('', wn, features);

        with (f) {
            action = '/body/flashredirect/';
            target = wn;
            title_id.value    = titleId;
            local_id.value    = localId;
            method = 'post';
            submit();
        }
        w.focus();
    },

   /**
    * 画像本文の表示
   **/
    imgbodydisplayApi: function(titleId, cap, descript, fname, cright, width, height)
    {
        var f  = null;
        f = document.bodyForm;

        var wn = 'imgwin';
        var w = window.open('', wn, "width="+width+",height="+height+",resizable=1,scrollbars=1,top=20,left=20");
        with (f) {
            title_id.value    = titleId;
            caption.value     = cap;
            description.value = descript;
            filename.value    = fname;
            copyright.value   = cright;
            action = '/body/imgdisplay/apiFlag/true';
            target = wn;
            method = 'post';
            submit();
        }
        w.focus();
     },

   /**
    * 本文の表示
   **/
    bodydisplayApi: function(titleId, localId, titleTag, windowOpenFlag)
    {
        var f  = null;
        localId = String(localId);

        // アンカー文字列
        var localAnchor = '';
        // action用文字列
        var actionName = '';

        f = document.bodyForm;
        if (titleId == Body.multimediaTitleId) {
            var wn = 'multimediawin';
        } else if (windowOpenFlag == '0') {
            var wn = '_self';
        } else {
            var wn = '_blank';
        }

        if (!titleTag) {
            titleTag = '';
        }
        if (f.title_tag) {
            f.title_tag.value = titleTag;
        } else {
            var titleTagElm = document.createElement("input");
            titleTagElm.type  = 'hidden';
            titleTagElm.name  = 'title_tag';
            titleTagElm.value = titleTag;
            f.appendChild(titleTagElm);
        }

        // 東洋文庫でFlash/PDF画面新規表示の場合はステータス指定のウィンドウを開く
        if (typeof(f.el_flag) != 'undefined' && f.el_flag.value != "") {
            // 東洋文庫でFlashビューアの場合
            if (Body.flashEasternLib == true && f.el_flag.value != 'book') {
                var wn = 'toyoFlashViewerWindow';
                var w  = CommonUtils.nFlashWin('', wn);
                // Flash用のウィンドウ解説に失敗した場合は、ウィンドウ名を変更してリトライする。
                for (i = 0 ; i < 128 && w == false; i++) {
                    var wn = 'toyoFlashViewerWindow' + i;
                    var w  = CommonUtils.nFlashWin('', wn);
                }
                var flash_flag = true;
             } else if (f.el_flag.value == 'frame') {
                 var wn = localId;
                 var w  = CommonUtils.nWin('', wn);
             }
        }

        // 新編日本古典文学の場合はステータス指定のウィンドウを開く
        // 対象データはローカルIDの下6桁が'000000'以外
        if (titleId == Body.kotenTitleId) {
            var checkKotenLocalId = localId.slice(Body.kotenPageIdlength);
            if (!checkKotenLocalId.match(/0{6}/)) {
                var wn = 'kotenFlashViewerWindow';
                var w  = CommonUtils.nFlashWin('', wn);
                // Flash用のウィンドウ解説に失敗した場合は、ウィンドウ名を変更してリトライする。
                for (i = 0 ; i < 128 && w == false; i++) {
                    var wn = 'kotenFlashViewerWindow' + i;
                    var w  = CommonUtils.nFlashWin('', wn);
                }
                var flash_flag = true;
            }
        }

        // local_idにアンカーが付属しているか判断する
        if (localId.match(Body.splitAnchorMark) != null) {
            // 付属している場合、アンカー用変数に切り出す
            var arrLocalId = localId.split(Body.splitAnchorMark);
            localId     = arrLocalId[0];
            localAnchor = '#' + arrLocalId[1];
        }

        // 国史大辞典の時、local_idにアンカーが付属しているか判断する
        if (titleId == Body.kokushiTitleId) {
            if(localId.match(Body.kokushiAnchorReg) != null) {
                var localAnchor = localId;
                var reg = new RegExp(Body.kokushiAnchorReg, 'gi');
                localAnchor.match(reg);
                localAnchor = '#' + Body.anchorPrefix + RegExp.$1 + RegExp.$2 + RegExp.$3;
                localId = RegExp.$1 + RegExp.$2;
            }
        }

        with (f) {
            if (typeof(el_flag) != 'undefined' && el_flag.value != "" &&
                typeof(flash_flag) == 'undefined') {
                actionName = '/jkws/bodydisplay/';
                if (el_flag.value == 'page') {
                    target = 'mainFrame';
                } else if (el_flag.value == 'chap') {
                    target = 'leftFrame';
                } else if (el_flag.value == 'frame') {
                    target = wn;
                } else {
                    target = '_blank';
                }

            } else if (flash_flag == true) {
                actionName = '/jkws/bodydisplay/';
                target = wn;

            } else {
                actionName = '/jkws/bodydisplay/';
                target = wn;
            }

            title_id.value    = titleId;
            local_id.value    = localId;
            // actionにアンカーを付与する
            action = actionName + localAnchor;
            method = 'post';
            submit();

            // ブラウザの判別
            if(navigator.appName.charAt(0) == "N"){
                document.bodyForm = null;
            }
        }
        // Flashビューア画面表示の場合はステータス指定のウィンドウにフォーカスを当てる
        if ((typeof(f.el_flag) != 'undefined' && f.el_flag.value == 'frame') ||
            (flash_flag == true)) {
                w.focus();
        }
     },

    /**
     * Rand McNally世界地図
    **/
    randmcnallyApi: function(targetId)
    {
        var f  = null;
        if (document.bodyForm) {
            f = document.bodyForm;
        } else {
            f = document.defaultBodyForm;
        }
        var wn = 'wmap';
        var toolOption = ",top=10,left=10,width=1007,height=723,status=yes,resizable=yes";
        var w = window.open('', wn, toolOption);
        with (f) {
            action = '/body/randmcnally/apiFlag/true';
            ssnid.value = targetId;
            target = wn;
            method = 'post';
            submit();
        }
        w.focus();
    }
}
