/** * @file pop_out.js * @brief ポップアウトを行う処理を一まとめにしたファイルです */ /** * @brief ポップアウトを消して良いかの判定フラグ。 * 0 -> 消して良い 1 -> 消しちゃダメ */ var is_not_flag = 0; /** * @brief ポップアウトウィンドウの状態フラグ * 0 -> 隠れている 1 -> 表示している */ var is_popout_flag = 0; var is_pop_dept = 0; var is_pop_dest = 0; // ポップアウトを表示する際、隠さないといけないオブジェクトID配列 // カレンダー var _to_cal = ''; // 行き先 var _to_dest = ''; // その他出発地 var _to_dept = ''; // 開いているポップアップのIDを保持 var open_pop_id = ''; /** * @brief ポップアウト表示を行う際、隠すオブジェクトIDを振り分ける関数。 */ function setHiddenObjectId() { // TOP、エリア、国 if (page_id == 'top' || page_id == 'area' || page_id == 'country') { _to_dept = new Array('dy', 'dm', 'dd', 'pop_sobj', 'dmin', 'dmax', 'pmin', 'pmax'); _to_cal = new Array('dmax', 'pmax', 'pop_sobj'); // 条件指定 } else if (page_id == 'ops') { _to_cal = new Array('dmax', 'pmax', 'sobj'); // コースリスト } else if (page_id == 'atour_search') { _to_dept = new Array('dmin', 'dmax', 'pmin', 'pmax', 'sobj'); if (_js_param['min7'] && _js_param['min7'] == 1) { if (_js_param['kw'] == 1) { _to_cal = new Array('sarea', 'sobj'); } if (_js_param['list_type'] == 0 && _js_param['min7'] == 1) { _to_cal = new Array('dmax'); } } else { _to_cal = new Array('dmax', 'pmax', 'kwdobj', 'sarea', 'sobj'); } _to_dest = new Array('dmin', 'dmax', 'pmin', 'pmax', 'sobj'); } } /** * @brief is_not_flag操作関数 * @param flag 判定フラグ */ function setIsNotFlag(flag) { if (flag) { is_not_flag = flag; offIsNotFlag(); } else { is_not_flag = 0; } } /** * @brief is_popout_flag操作関数 * @param flag 判定フラグ */ function setIsPopOutFlag(flag) { if (flag) { is_popout_flag = flag; } else { is_popout_flag = 0; } } /** * @brief 現在のis_popout_flagの状態を取得する関数 */ function getIsPopOutFlag(flag) { return is_popout_flag; } /** * @brief 各ポップアウトウィンドウから呼ばれるis_not_flagを解除する関数 */ function offIsNotFlag() { setTimeout(function () { setIsNotFlag(0); },10); } /** * @brief 開くポップアウトウィンドウのID操作関数 * @param id ポップアウトウィンドウのID */ function setOpenPopId(id) { open_pop_id = id; } /** * @brief 現在開いているポップアウトウィンドウのID取得 */ function getOpenPopId() { return open_pop_id; } function setOtherPopOutFlag(obj_id, flag) { if (obj_id == 'js_popoutDest') { if (flag) { is_pop_dest = flag; } else { is_pop_dest = 0; } } else if (obj_id == 'js_popoutDept') { if (flag) { is_pop_dept = flag; } else { is_pop_dept = 0; } } else { return; } } /** * @brief z-index対応 IEのみ行う * @param mode 0 -> zindex解除 1 -> zindex背景化 */ function setZindex(mode) { var browse = navigator.appName; if (browse == "Microsoft Internet Explorer") { if (document.getElementById('atour_course_zindex')) { if (mode == 1) { document.getElementById('atour_course_zindex').style.zIndex = -1; } else { document.getElementById('atour_course_zindex').style.zIndex = 1; } } else { return; } } else { return; } } /** * @brief ポップアウトウィンドウを消す処理 * @param obj_id; */ function deletePopWindow(obj_id) { if (obj_id == 'atour_cal') { document.getElementById(obj_id).style.display = "none"; hiddenObject(obj_id, 0); setZindex(0); setOpenPopId(''); } else if (obj_id == 'js_popoutDest') { document.getElementById(obj_id).style.display = "none"; hiddenObject(obj_id, 0); setZindex(0); setOpenPopId(''); } else if (obj_id == 'js_popoutDept') { document.getElementById(obj_id).style.display = "none"; hiddenObject(obj_id, 0); setZindex(0); setOpenPopId(''); } else { return; } } /** * @brief ポップアウトを表示する際にかぶってしまうオブジェクトを隠す処理 * @param to_obj_id 消す対象のポップアウトウィンドウID * isHidden 消すか隠すかの判定 * 0 -> 消す 1 -> 表示 */ function hiddenObject(to_obj_id, isHidden) { var hidden_obj = ''; if (to_obj_id == 'atour_cal' && _to_cal.length) { hidden_obj = _to_cal; } else if (to_obj_id == 'js_popoutDest' && _to_dest.length) { hidden_obj = _to_dest; } else if (to_obj_id == 'js_popoutDept' && _to_dept.length) { hidden_obj = _to_dept; } else { return; } if (hidden_obj != '' && hidden_obj.length) { for (var i = 0; i < hidden_obj.length; i ++) { if (document.getElementById(hidden_obj[i]) && isHidden == 1) { document.getElementById(hidden_obj[i]).style.visibility = "hidden"; } else { if (document.getElementById(hidden_obj[i])) { document.getElementById(hidden_obj[i]).style.visibility = "visible"; } } } } }