// グローバル変数定義 var initCategory; var xmlurl = "/-/media/cojp/product/support_info/video/scancut/xml/movieconfig-scancut.xml"; // // XML情報取得 // function getXmlData() { var http = new JKL.ParseXML(xmlurl); http.setOutputArrayElements(["movie", "prod"]); var data = http.parse(); return data; } // // GETパラメータの値を配列で取得する // function GetQueryString() { var result = {}; if (1 < window.location.search.length) { // 最初の1文字 (?記号) を除いた文字列を取得する var query = window.location.search.substring(1); // クエリの区切り記号 (&) で文字列を配列に分割する var parameters = query.split('&'); for (var i = 0; i < parameters.length; i++) { // パラメータ名とパラメータ値に分割する var element = parameters[i].split('='); var paramName = decodeURIComponent(element[0]); var paramValue = decodeURIComponent(element[1]); // パラメータ名をキーとして連想配列に追加する result[paramName] = paramValue; } } return result; } // // 初期表示時の処理 // function initMovies() { // GETパラメータからカテゴリを取得する initCategory = getSelectedCategory(); // 初期表示の動画を設定する initDisplays(initCategory); $(".videoframe").css("display", "none"); } // // 製品選択変更時の処理 // function changeMovies() { var selectedProduct = document.productform.selectproduct.value; // 表示する動画を変更する changeDisplays(selectedProduct); } // // 選択されているカテゴリを取得する // function getSelectedCategory() { var selectedCategory; var bRet; var getParams; // GETパラメータを全て連想配列として取得する getParams = GetQueryString(); // 引数チェック bRet = 'category' in getParams; // 引数にcategoryが存在しない場合 if (!bRet) { selectedCategory = "all"; } // 引数にprodが存在する場合 else { selectedCategory = getParams['prod'] } return selectedCategory; } // // 動画情報の初期ディスプレイ表示/非表示切り替え // function initDisplays(selectedCategory) { var targetProductName; var movieNo; var categoryName; var data = getXmlData(); var numOfMovie = data["movieconfig"]["movie"].length; var resultDisplay = {}; var cnt = 0; for (var k = 0; k < numOfMovie; k++) { // 配列の初期化 categoryName = new Array(); // 要素の取得 targetProductName = data["movieconfig"]["movie"][k]["prod"]; categoryName = data["movieconfig"]["movie"][k]["prod"]; movieNo = data["movieconfig"]["movie"][k]["movieno"]; if (!document.getElementById(movieNo)) { continue; } for (var i = 0; i < categoryName.length; i++) { // 選択されたカテゴリだった場合 if (categoryName[i] == selectedCategory) { resultDisplay[movieNo] = "block"; cnt++; break; } else { resultDisplay[movieNo] = "none"; } } } // 選択されたカテゴリの動画があった場合 if (0 != cnt) { for (key in resultDisplay) { document.getElementById(key).style.display = resultDisplay[key]; } } else { for (key in resultDisplay) { document.getElementById(key).style.display = "block"; } initCategory = "all"; } } // // 製品選択時の動画情報のディスプレイ表示/非表示切り替え // function changeDisplays(selectedProduct) { var targetProductName; var movieNo; var categoryName; var data = getXmlData(); var numOfMovie = data["movieconfig"]["movie"].length; var cnt; var ret = false; var val_check = $("#selection").val(); if (val_check == "none") { $(".videoframe").css("display", "none"); } else { $(".videoframe").css("display", "flex"); } for (var k = 0; k < numOfMovie; k++) { // 配列の初期化 categoryName = new Array(); // 要素の取得 targetProductName = data["movieconfig"]["movie"][k]["prod"]; categoryName = data["movieconfig"]["movie"][k]["prod"]; movieNo = data["movieconfig"]["movie"][k]["movieno"]; // 存在しない動画の場合 if (!document.getElementById(movieNo)) { continue; } // カテゴリが対象でなかった場合 if ("all" != initCategory) { ret = false; for (var i = 0; i < categoryName.length; i++) { // 対象のカテゴリだった場合 if (categoryName[i] == initCategory) { ret = true; break; } } // 対象のカテゴリでなかった場合 if (!ret) { continue; } } for (var i = 0; i < targetProductName.length; i++) { // 全件表示もしくは選択された製品だった場合 if ("all" == selectedProduct || targetProductName[i] == selectedProduct) { document.getElementById(movieNo).style.display = "block"; break; } else { document.getElementById(movieNo).style.display = "none"; } } } }