<!--

//************************************************************/
// 関数名 : make_pageIndex(tagName, idPattern, indexTagId)
// 処理   : ページインデックスを動的に生成
// 引数   : tagName     ページ区切りタグ種類名(P, DIV 等を指定)
//        : idPattern   ページ区切りタグIDパターン名("PAGE_"等を指定)
//        : indexTagId  ページインデックス生成用タグID
//        : insubText   ページインデックステキスト付加文字
//        : beforeClass 前ページ移動インデックス設定class名
//        : nextClass   次ページ移動インデックス設定class名
// 戻り値 : 無
//************************************************************/
function make_pageIndex(intagName, inidPattern, inindexTagId, insubText, inbeforeClass, innextClass) {
    /* 引数設定情報デフォルト値 */
    var tagName     = "DIV";
    var idPattern   = "AreaPage0";
    var indexTagId  = "pagenavi";
    var subText     = "その";
    var beforeClass = "a-prev";
    var nextClass   = "a-next";

    /* 引数に値が存在する場合デフォルト値を変更 */
    switch (arguments.length) {
        default:
        case 6: nextClass   = innextClass;    // 第6引数まであれば nextClass に代入
        case 5: beforeClass = inbeforeClass;  // 第5引数まであれば beforeClass に代入
        case 4: subText     = insubText;      // 第4引数まであれば subText に代入
        case 3: indexTagId  = inindexTagId;   // 第3引数まであれば indexTagId に代入
        case 2: idPattern   = inidPattern;    // 第2引数まであれば idPattern に代入
        case 1: tagName     = intagName;      // 第1引数まであれば tagName に代入
        case 0:
    }

    var divObj = document.getElementsByTagName(tagName);
    var regObj = new RegExp(idPattern, i);
    var pageId = "page-disp";
    var regObjpageId = new RegExp(pageId);
    var pageObj = new Array();
    var pageNo  = new Array();
    var getUrlData = new Array();
    getUrlData = getParam();

    var pageEndObj = document.getElementById(indexTagId);
    if (!pageEndObj) {
        /* ページインデックス生成用のタグが存在しない時アラートを表示後処理を終了 */
        alert("ページインデックス生成用のタグ[" + indexTagId + "]が存在しません。");
        return false;
    }

    /* ページインデックスに子ノードが存在する場合は削除 */
    clearChildren(pageEndObj);

    for (var i=0; i < divObj.length; i++ ) {
        if ( divObj[i].id.match(regObj) ) {
            pageNo = RegExp.rightContext;
            pageObj[pageNo] = divObj[i];
        }
    }

    if ( pageObj.length > 0 ) {
        var thisUrl = location.href.split("?");
        thisUrl = thisUrl[0];

        pageEndObj.appendChild(document.createTextNode("｜"));
        /* ページインデックスリンク作成 */
        for (i=1; i < pageObj.length; i++) {
            var oAnchor = document.createElement("A");
            oAnchor.setAttribute("id", "page-disp" + i);
            oAnchor.setAttribute("name", pageObj[i].id);
            oAnchor.setAttribute("href", thisUrl + "?" + document.body.id + "=" + pageId + i);
            oAnchor.onclick = function() { page_disp(this.id); };
            oAnchor.appendChild(document.createTextNode(subText + i));
            pageEndObj.appendChild(oAnchor);
            pageEndObj.appendChild(document.createTextNode("｜"));
            if ( i == 1 ) {
                var dispId = oAnchor.id;
            }
        }

        /* 前リンク作成 */
        var beforePage = document.createElement("A");
        beforePage.setAttribute("id", "BEFORE_PAGE");
        beforePage.className = beforeClass;
        beforePage.appendChild(document.createTextNode("前のページへ"));
        pageEndObj.insertBefore( beforePage, pageEndObj.firstChild);

        /* 次リンク作成 */
        var nextPage = document.createElement("A");
        nextPage.setAttribute("id", "NEXT_PAGE");
        nextPage.className = nextClass;
        nextPage.appendChild(document.createTextNode("次のページへ"));
        pageEndObj.appendChild(nextPage);

        if ( getUrlData ) {
            if ( getUrlData[document.body.id] ) {
                if ( getUrlData[document.body.id].match(regObjpageId) ) {
                    page_disp(getUrlData[document.body.id]);
                    return ;
                }
            }
        }
        page_disp(dispId);

    }
}


//************************************************************/
// 関数名 : page_disp(pageIndexId)
// 処理   : 指定されたページのみの表示を行う
// 引数   : pageIndexId 選択されたページインデックスID
// 戻り値 : 無
//************************************************************/
function page_disp(pageIndexId) {
    var dispObj = document.getElementById(pageIndexId);
    var parentObj = dispObj.parentNode;
    var pageChilds = parentObj.childNodes;
    
    for (var i=0; i < pageChilds.length; i++) {
        if ( pageChilds[i].nodeType != 3 ) {
            if ( pageChilds[i].id == pageIndexId ) {

                /* 選択ページ表示処理 */
                operObj = document.getElementById(pageChilds[i].name);
                operObj.style.display = "inline";

                pageChilds[i].style.display  = "none";
                if (pageChilds[i].previousSibling.nodeType == 3 ) {
                    pageChilds[i].previousSibling.nodeValue =  "｜" + pageChilds[i].firstChild.nodeValue;
                } else {
                    parentObj.insertBefore( document.createTextNode("｜" + pageChilds[i].firstChild.nodeValue),  pageChilds[i] );
                }

            } else if ( !( parentObj.firstChild.id == pageChilds[i].id ||
                           parentObj.lastChild.id  == pageChilds[i].id ) ) {

                /* 非選択ページ非表示処理 */
                operObj = document.getElementById(pageChilds[i].name);
                operObj.style.display = "none";

                pageChilds[i].style.display  = "inline";
                if (pageChilds[i].previousSibling.nodeType == 3 ) {
                    pageChilds[i].previousSibling.nodeValue =  "｜";
                } else {
                    parentObj.insertBefore( document.createTextNode("｜"), pageChilds[i] );
                }

            }
        }
    }
    beforePage(parentObj.firstChild, dispObj);
    nextPage(parentObj.lastChild, dispObj);

}

//************************************************************/
// 関数名 : beforePage(beforeObj, pageObj)
// 処理   : 前ページ移動インデックスのプロパティのセットを行う
// 引数   : beforeObj 前ページインデックス
//        : pageObj 現在表示されているページのインデックス
// 戻り値 : 無
//************************************************************/
function beforePage(beforeObj, pageObj) {
    if ( pageObj.previousSibling.nodeType == 1 ) {
        if ( pageObj.previousSibling.id == beforeObj.id ) {
            beforeObj.style.display = "none";
        }  else {
            var thisUrl = location.href.split("?");
            thisUrl = thisUrl[0];
            beforeObj.setAttribute("href", thisUrl + "?" + document.body.id + "=" + pageObj.previousSibling.id);
            beforeObj.style.display = "inline";
        }
    } else {
        beforePage(beforeObj, pageObj.previousSibling);
    }
    return ;
}

//************************************************************/
// 関数名 : nextPage(nextObj, pageObj)
// 処理   : 次ページ移動インデックスのプロパティのセットを行う
// 引数   : nextObj 次ページインデックス
//        : pageObj 現在表示されているページのインデックス
// 戻り値 : 無
//************************************************************/
function nextPage(nextObj, pageObj) {
    if ( pageObj.nextSibling.nodeType == 1 ) {
        if ( pageObj.nextSibling.id == nextObj.id ) {
            nextObj.style.display = "none";
        }  else {
            var thisUrl = location.href.split("?");
            thisUrl = thisUrl[0];
            nextObj.setAttribute("href", thisUrl + "?" + document.body.id + "=" + pageObj.nextSibling.id);
            nextObj.style.display = "inline";
        }
    } else {
        nextPage(nextObj, pageObj.nextSibling);
    }
    return ;
}

//************************************************************/
// 関数名 : getParam()
// 処理   : URLよりGetパラメータを取得する
// 引数   : 無
// 戻り値 : key [連想配列](Getパラメータ有)
//        : null          (Getパラメータ無)
//************************************************************/
function getParam() {
    var pram = location.search.substring(1);
    var pair = pram.split("&");
    var temp= new Array();
    var key = new Array();
    var setFlg = false;
    var keyName = "";

    if (!pram) {
        return null;
    }

    for (var i=0; i < pair.length; i++) {
        temp = pair[i].split("=");
        if ( temp.length == 2 ) {
            keyName  = temp[0];
            keyValue = temp[1];
            key[keyName] = keyValue;
            setFlg = true;
        }
    }
    if ( setFlg ) {
        return key;
    }
}

//************************************************************/
// 関数名 : clearChildren(clearobj)
// 処理   : 子ノードを全て削除
// 引数   : clearobj 子ノードを削除するオブジェクト
// 戻り値 : 無
//************************************************************/
function clearChildren(clearobj) {
    if (clearobj.firstChild) {
        for ( var i=0; i < clearobj.childNodes.length ; i++ ) {
            clearobj.removeChild(clearobj.childNodes[i]);
        }
    }
}

//************************************************************/
// 関数名 : viewExtraVideo(videoUrl, videoCaption, vidoeRel)
// 処理   : 動画を拡大表示する
// 引数   : videoUrl 表示する動画のURL
//        : videoCaption 表示するタイトル名
//        : vidoeRel 動画のサイズ
// 戻り値 : 無
//************************************************************/
function viewExtraVideo(videoUrl, videoCaption , vidoeRel) {
    var objectTags = document.getElementsByTagName("OBJECT");
    var embedTags = document.getElementsByTagName("EMBED");

    if ( embedTags ) {
        for ( var i=0 ; i < embedTags.length; i++ ) {
             embedTags[i].style.display = "none";
        }
    }
    if ( objectTags ) {
        for ( var i=0 ; i < objectTags.length; i++ ) {
            objectTags[i].style.display = "none";
            if ( objectTags[i].parentNode ) {
                objectTags[i].parentNode.style.display = "none";
            }
        }
    }
    Videobox.open(videoUrl, videoCaption , vidoeRel);
}


//-->
