/*===================================================== * Script Name: module_domtour2nd_tab.js * Description: 空席照会モジュール 海外ツアー・2nd用・国内旅行タブ * Version: 0.01 * Last Up Date: 2017/7/19 =====================================================*/ var m_domtour2ndModuleTab_siteType = { site : 'domtour2nd', module : 'tab' }; var m_domtour2ndModuleTab_AREA_CODE_JP_tabSelFuncDom = '01'; //初期値設定 var m_domtour2ndModuleTab_defaults = { m_defInitTab:'1', // 機能タブ '1'(国内旅作) or '2'(国内パッケージ) or '3'(国内ホテル) or '4'(国内レンタカー) or '5'(国内観光) or '6'(国内ツアー一括) // m_defIsDispDomDp:true, // 国内旅作タブ表示スイッチ デフォルト値はmainに記述済 // m_defIsDispDomPkg:true, // 国内パッケージタブ表示スイッチ デフォルト値はmainに記述済 // m_defIsDispDomHotel:true, // 国内ホテルタブ表示スイッチ デフォルト値はmainに記述済 // m_defIsDispDomHotelBUlk:true, // 国内ホテル(3社一括)タブ表示スイッチ デフォルト値はmainに記述済 // m_defIsDispDomCar:true, // 国内レンタカータブ表示スイッチ デフォルト値はmainに記述済 // m_defIsDispDomTraffic:true, // 国内観光タブ表示スイッチ デフォルト値はmainに記述済 // m_defIsDispDomBulk:true, // 国内ツアー一括タブ表示スイッチ デフォルト値はmainに記述済 }; // defaults値保持のため、shallow copy var m_domtour2ndModuleTab_optionParam = $tour_module_jq.extend(m_domtour2ndModuleTab_optionParam, m_domtour2ndModuleTab_defaults); function m_domtour2ndModuleTab_setParams(options){ m_domtour2ndModuleTab_optionParam = $tour_module_jq.extend(m_domtour2ndModuleTab_optionParam, options); }; // 指定文字列の配列内存在チェック function m_domtour2ndModuleTab_getStrArrayMatchAll(targetStr, arrayStr){ if($tour_module_jq.inArray(targetStr, arrayStr) != -1){ return true; } return false; }; /** * 国際線2ndモジュールHTML埋め込み処理 */ function m_domtour2ndModuleTab_secondModuleDisplay(options) { // テキスト設定 var tabisakuLabelText = m_tourModuleCommon_getListValue(m_domtour2ndModuleTab_tabisakuLabel, 'Text'); var packageTourLabelText = m_tourModuleCommon_getListValue(m_domtour2ndModuleTab_packageTourLabel, 'Text'); var hotelLabelText = m_tourModuleCommon_getListValue(m_domtour2ndModuleTab_hotelLabel, 'Text'); var carLabelText = m_tourModuleCommon_getListValue(m_domtour2ndModuleTab_carLabel, 'Text'); var trafficLabelText = m_tourModuleCommon_getListValue(m_domtour2ndModuleTab_trafficLabel, 'Text'); var bulkText = m_tourModuleCommon_getListValue(m_domtour2ndModuleTab_bulkLabel, 'Text'); // 画面レイアウト var html = ''; html += '\n'; this.prepend(html); m_domtour2ndModuleTab_setDefVal(this, options); }; function m_domtour2ndModuleTab_setDefVal(target, options){ // 国内旅作タブ表示スイッチ var defIsDispTabisaku = m_tourModuleCommon_getParam(m_domtour2ndModuleTab_siteType, options, 'm_defIsDispDomDp'); // 国内パッケージタブ表示スイッチ var defIsDispPackTour = m_tourModuleCommon_getParam(m_domtour2ndModuleTab_siteType, options, 'm_defIsDispDomPkg'); // 国内ホテルタブ表示スイッチ var defIsDispHotel = m_tourModuleCommon_getParam(m_domtour2ndModuleTab_siteType, options, 'm_defIsDispDomHotel'); // 国内ホテル(3社一括)タブ表示スイッチ var defIsDispHotelBulk = m_tourModuleCommon_getParam(m_domtour2ndModuleTab_siteType, options, 'm_defIsDispDomHotelBulk'); // 国内レンタカータブ表示スイッチ var defIsDispCar = m_tourModuleCommon_getParam(m_domtour2ndModuleTab_siteType, options, 'm_defIsDispDomCar'); // 国内観光タブ表示スイッチ var defIsDispTraffic = m_tourModuleCommon_getParam(m_domtour2ndModuleTab_siteType, options, 'm_defIsDispDomTraffic'); // 国内ツアータブ表示スイッチ var defIsDispBulk = m_tourModuleCommon_getParam(m_domtour2ndModuleTab_siteType, options, 'm_defIsDispDomBulk'); // 国内タブ初期選択 var defDispTabIndex = m_tourModuleCommon_getParam(m_domtour2ndModuleTab_siteType, options, 'm_defInitTab'); // 「旅作」タブ表示/非表示制御 if (defIsDispTabisaku) { target.find('.m_tabisakuTab').css('display', null); } else { target.find('.m_tabisakuTab').css('display', 'none'); } // 「パッケージツアー」タブ表示/非表示制御 if (defIsDispPackTour) { target.find('.m_packTourTab').css('display', null); } else { target.find('.m_packTourTab').css('display', 'none'); } // 「ホテル」タブ表示/非表示制御 if (defIsDispHotel) { target.find('.m_hotelTab').css('display', null); } else { target.find('.m_hotelTab').css('display', 'none'); } // 「ホテル」(3社一括)タブ表示/非表示制御 if (defIsDispHotelBulk) { target.find('.m_hotelBulkTab').css('display', null); } else { target.find('.m_hotelBulkTab').css('display', 'none'); } // 「レンタカー」タブ表示/非表示制御 if (defIsDispCar) { target.find('.m_carTab').css('display', null); } else { target.find('.m_carTab').css('display', 'none'); } // 「観光」タブ表示/非表示制御 if (defIsDispTraffic) { target.find('.m_trafficTab').css('display', null); } else { target.find('.m_trafficTab').css('display', 'none'); } // 「ツアー」タブ表示/非表示制御 if (defIsDispBulk) { target.find('.m_bulkTab').css('display', null); } else { target.find('.m_bulkTab').css('display', 'none'); } // 更新時カレントタブ制御(「旅作」「海外パッケージ」モジュールの操作) var $box = target; var currentTab = undefined; if (defDispTabIndex == '1' && defIsDispTabisaku) { currentTab = target.find('.m_tabisakuTab'); } else if (defDispTabIndex == '2' && defIsDispPackTour) { currentTab = target.find('.m_packTourTab'); }else if (defDispTabIndex == '3' && defIsDispHotel) { currentTab = target.find('.m_hotelTab'); }else if (defDispTabIndex == '4' && defIsDispHotelBulk) { currentTab = target.find('.m_hotelBulkTab'); }else if (defDispTabIndex == '5' && defIsDispCar) { currentTab = target.find('.m_carTab'); }else if (defDispTabIndex == '6' && defIsDispTraffic) { currentTab = target.find('.m_trafficTab'); }else if (defDispTabIndex == '7' && defIsDispBulk) { currentTab = target.find('.m_bulkTab'); } if(!$tour_module_jq(currentTab)[0]){ // 初期表示指定の要素が非表示の場合、表示される機能の先頭を表示する if(defIsDispTabisaku){ currentTab = target.find('.m_tabisakuTab'); }else if(defIsDispPackTour){ currentTab = target.find('.m_packTourTab'); }else if(defIsDispHotel){ currentTab = target.find('.m_hotelTab'); }else if(defIsDispHotelBulk){ currentTab = target.find('.m_hotelBulkTab'); }else if(defIsDispCar){ currentTab = target.find('.m_carTab'); }else if(defIsDispTraffic){ currentTab = target.find('.m_trafficTab'); }else if(defIsDispBulk){ currentTab = target.find('.m_bulkTab'); } } var $targetTab = $box.find('.' + $tour_module_jq(currentTab).attr('data-tab-target')); var currentParentLi = currentTab.parent('li'); currentParentLi.siblings().removeClass('is-current'); currentParentLi.addClass('is-current'); if ($targetTab[0]) { $box.find('.js-mod-list-tab_contents').removeClass('is-active'); $targetTab.addClass('is-active'); } // 国内タブ内モジュール(旅作/パッケージ/ホテル/レンタカー/観光/ツアー)選択イベント target.find('.js-mod-list-tab_btn').on('click', function (e) { if (!m_tour2ndModuleCommon.clickEvent(e)) return true; e.preventDefault(); var $box = $tour_module_jq(this).closest('.js-mod-list-tab'); var $target = $box.find('.' + $tour_module_jq(this).attr('data-tab-target')); var $parentLi = $tour_module_jq(this).parent('li'); $parentLi.siblings().removeClass('is-current'); $parentLi.addClass('is-current'); if ($target[0]) { $box.find('.js-mod-list-tab_contents').removeClass('is-active'); $target.addClass('is-active'); } }); }; // 外部公開メソッドの定義 $tour_module_jq.fn.domtour2ndModuleTab = function(method) { var methods = { 'privateSetParams' : m_domtour2ndModuleTab_setParams, 'privateSecondModuleDisplay' : m_domtour2ndModuleTab_secondModuleDisplay }; if (methods[method]) { return methods[ method ].apply(this, Array.prototype.slice.call(arguments, 1)); } else { $tour_module_jq.error('Method ' + method + ' does not exist on $tour_module_jq.domtour2ndModuleTab'); } };