/*=====================================================
* Script Name: domtour2nd_module_pkg.js
* Description: 空席照会モジュール 国内ツアー2nd パッケージ
* Version: 1.00
* Last Up Date: 2017/10/11
=====================================================*/
var m_domtour2ndModulePkg_siteType = { site : 'domtour2nd', module : 'pack' };
var m_domtour2ndModuleCar_usePartsCount_ModuleRadio = 1; //新旧モジュール入れ替えラジオ、配置数カウンタ
//初期値設定
var m_domtour2ndModulePkg_defaults = {
m_defModuleMode:'1', //新旧モジュール切り替えラジオ用
m_defDateDep:'', //出発日用
m_defAirportDep:'001', //出発地用
m_defAreaArr:'', //目的地用
m_defNumberOfDays:'', //旅行日数用
m_defNumberOfAdult:'2', //大人用
m_defNumberOfChild:m_domtourModuleNumberOfPeoplePkg_optionParams.initNum, //参加人数(子供幼児)用
m_defCourseDateDep:'', //出発日用(コースコード)
m_defCourseAirportDep:'001', //出発地用(コースコード)
m_defCourseCode:'', //コースコード用(コースコード)
m_defTabNoDispCls:'' //遷移先表示状態パラメータ
};
// defaults値保持のため、shallow copy
var m_domtour2ndModulePkg_optionParam = $tour_module_jq.extend(m_domtour2ndModulePkg_optionParam, m_domtour2ndModulePkg_defaults);
/**
* 国内ツアーパッケージ2ndモジュールパラメータ設定処理
*/
function m_domtour2ndModulePkg_setParams(options){
m_domtour2ndModulePkg_optionParam = $tour_module_jq.extend(m_domtour2ndModulePkg_optionParam, options);
};
/**
* 国内ツアーパッケージ2ndモジュールHTML埋め込み処理
*/
function m_domtour2ndModulePkg_secondModuleDisplay(options) {
////////////////
// 初期化設定
////////////////
// 国内ツアーパッケージの各項目不正値チェック処理
options = $tour_module_jq.extend(true, options, m_domtourModulePkg_incorrectValue(options, m_domtour2ndModulePkg_siteType, m_domtour2ndModulePkg_defaults));
// モジュール設置位置による噴出し表示位置設定
var dataControlPointValue = m_tourModuleCommon_getParam(m_domtour2ndModulePkg_siteType, options, 'm_defModulePosition');
//各項目設定値
//新旧モジュール切り替えラジオ
var uniqueNum = m_tour2ndModulePkg_returnCount_ModuleRadio();
//行き先から探す
var tourConditionLabelText = m_tourModuleCommon_getListValue(m_domtour2ndModulePkg_tourConditionLabel, 'Text');
//出発日
var depDateText = m_tourModuleCommon_getListValue(m_domtourModulePkg_depDate, 'Text');
//出発地
var depApoText = m_tourModuleCommon_getListValue(m_domtourModulePkg_depApo, 'Text');
//目的地
var arrApoText = m_tourModuleCommon_getListValue(m_domtourModulePkg_arrApo, 'Text');
//旅行日数
var travelOfDaysText = m_tourModuleCommon_getListValue(m_domtourModulePkg_travelOfDays, 'Text');
//1部屋あたりの利用人数
var roomOfPeopleLabelText = m_tourModuleCommon_getListValue(m_domtourModulePkg_roomOfPeopleLabel, 'Text');
//大人
var adultText = m_tourModuleCommon_getListValue(m_domtourModulePkg_adult, 'Text');
//子供・幼児
var childText = m_tourModuleCommon_getListValue(m_domtourModulePkg_child, 'Text');
var numberOfPeoplePartsId1 = m_tourModuleNumberOfPeople_FixedParams.domtour.sec.id.pkg;
var numberOfPeopleCount1 = m_tourModuleCommon_zeroPadding(m_tourModuleNumberOfPeople_usePartsCount); // 参加人数ID番号設定
var numberOfPeopleTextId1 = m_tourModuleNumberOfPeople_defaultParams.textId;
//商品コードから探す
var courseCodeConditionLabelText = m_tourModuleCommon_getListValue(m_domtour2ndModulePkg_courseCodeConditionLabel, 'Text');
//コースコード
var courseCodeText1 = m_tourModuleCommon_getListValue(m_domtour2ndModulePkg_courseCode, 'Text1');
var courseCodeText2 = m_tourModuleCommon_getListValue(m_domtour2ndModulePkg_courseCode, 'Text2');
var courseCodePlaceholder = m_tourModuleCommon_getListValue(m_domtour2ndModulePkg_courseCode, 'placeholder');
//商品コードの確認方法
var courseCodeInfoText = m_tourModuleCommon_getListValue(m_domtour2ndModulePkg_courseCodeInfo, 'Text');
var courseCodeInfoURL = m_tourModuleCommon_getListValue(m_domtour2ndModulePkg_courseCodeInfo, 'URL');
var courseCodeInfoImg = m_tourModuleCommon_getListValue(m_domtour2ndModulePkg_courseCodeInfo, 'Img');
//検索ボタン
var actionURL = m_tourModuleCommon_ASW_DOMAIN + m_tourModuleCommon_getListValue(m_domtourModulePkg_fromAction, 'URL');
var actionURLcourseCode = m_tourModuleCommon_ASW_DOMAIN + m_tourModuleCommon_getListValue(m_domtourModulePkg_fromAction_Course, 'URL');
var searchButtonText = m_tourModuleCommon_getListValue(m_domtourModuleCommon_searchButton, 'Text');
// formMethod設定
var formMethod = m_tourModuleCommon_getParam(m_domtour2ndModulePkg_siteType, options, 'm_defFormMethod');
//新旧モジュール切り替え
var moduleTabText1 = m_tourModuleCommon_getListValue(m_domtourModulePkg_moduleTabText, 'Text1');
var moduleTabText2 = m_tourModuleCommon_getListValue(m_domtourModulePkg_moduleTabText, 'Text2');
var moduleTabText3 = m_tourModuleCommon_getListValue(m_domtourModulePkg_moduleTabText, 'Text3');
var moduleTabText4 = m_tourModuleCommon_getListValue(m_domtourModulePkg_moduleTabText, 'Text4');
/////////////////////
// 画面レイアウト
/////////////////////
var html = '';
html += '
\n';
html += '
\n';
//上部切り替えタブ 10月31日以前(旧モジュール) or 11月1日以降(新モジュール)
html += '
\n';
//10月31日以前(旧モジュール)
html += '
\n';
html += '
\n';
//11月1日以降(新モジュール)
html += '
\n';
html += '
\n';
//行き先から探す
html += '
\n';
html += '
\n';
html += '
\n';
//行き先から探す END
//商品コードから探す(3カラム目)
html += '
\n';
html += '
\n';
html += '
\n';
//商品コードから探す END
html += '
\n';
html += '
\n';
//11月1日以降(新モジュール) END
html += '
\n';
html += '
\n';
html += '\n';
this.append(html);
//初期選択制御
var isRadioCheck = m_tourModuleCommon_getParam(m_domtour2ndModulePkg_siteType, options, 'm_defModuleMode');
if(isRadioCheck === '1'){
this.find('#dom_pkg_module1_' + uniqueNum + '').attr('checked', 'checked');
this.find('.m_dom_pkg_module01').addClass('is-active');
}else if(isRadioCheck === '0'){
this.find('#dom_pkg_module2_' + uniqueNum + '').attr('checked', 'checked');
this.find('.m_dom_pkg_module02').addClass('is-active');
}
m_domtour2ndModulePkg_setDefVal(this, options);
};
function m_domtour2ndModulePkg_setDefVal(target, options){
////////////////
// 初期値取得
////////////////
// モジュール設置位置による噴出し表示位置設定
var dataControlPointValue = m_tourModuleCommon_getParam(m_domtour2ndModulePkg_siteType, options, 'm_defModulePosition');
////////////////////
// 各入力項目初期化
////////////////////
//パラメータ設定を取得
//出発日 行き先から探す
var defDateDep = m_tourModuleCommon_getParam(m_domtour2ndModulePkg_siteType, options, 'm_defDateDep');
//出発地 行き先から探す
var defAirportDep = m_tourModuleCommon_getParam(m_domtour2ndModulePkg_siteType, options, 'm_defAirportDep');
//目的地 行き先から探す
var defAreaArr = m_tourModuleCommon_getParam(m_domtour2ndModulePkg_siteType, options, 'm_defAreaArr');
//旅行日数
var defNumberOfDays = m_tourModuleCommon_getParam(m_domtour2ndModulePkg_siteType, options, 'm_defNumberOfDays');
//大人
var defNumberOfAdult = m_tourModuleCommon_getParam(m_domtour2ndModulePkg_siteType, options, 'm_defNumberOfAdult');
// 子供(参加人数部品)
var defNumberOfPeopleSelectInit = m_tourModuleCommon_getParam(m_domtour2ndModulePkg_siteType, options, 'm_defNumberOfChild');
var numberOfPeopleCount1 = m_tourModuleCommon_zeroPadding(m_tourModuleNumberOfPeople_usePartsCount);
//出発日 商品コードから探す
var defCourseDateDep = m_tourModuleCommon_getParam(m_domtour2ndModulePkg_siteType, options, 'm_defCourseDateDep');
//出発地 商品コードから探す
var defCourseAirportDep = m_tourModuleCommon_getParam(m_domtour2ndModulePkg_siteType, options, 'm_defCourseAirportDep');
//コースコード
var defCourseCode = m_tourModuleCommon_getParam(m_domtour2ndModulePkg_siteType, options, 'm_defCourseCode');
// 再検索パラメータ
var kartKeepValue = m_tourModuleCommon_getParam(m_domtour2ndModulePkg_siteType, options, 'm_defKartKeep');
//遷移先表示状態パラメータ
var tabNoDispCls = m_tourModuleCommon_getParam(m_domtour2ndModulePkg_siteType, options, 'm_defTabNoDispCls');
//出発日(行き先から探す)
target.find('.m_depDate_tourCondition').tourCommonModule('createDateInput', {
parent : target,
balloonTitle : m_tourModuleCommon_getListValue(m_domtourModulePkg_depDate, 'BalloonTitle'),
defPartsPosition : dataControlPointValue,
defDate : defDateDep,
defSelectDay : m_domtourModulePkg_depDate_defSelectDay,
dateValueClass : m_domtourModulePkg_depDate_dateValueClass,
dateValueName : m_domtourModulePkg_depDate_dateValueName,
inputPlaceholder : m_domtourModulePkg_depDate_inputPlaceholder,
inputClass : m_domtourModulePkg_depDate_inputClass,
uniqueKey : m_tourCommonModuleParts_getPartsCount('calendar', 0),
isRequired : m_domtourModulePkg_depDate_isRequired,
isDisabled : m_domtourModulePkg_depDate_isDisabled,
isDispAllOfMonth : m_domtourModulePkg_depDate_isDispAllOfMonth,
prevNextInterval : m_domtourModulePkg_depDate_prevNextInterval,
receiptDisableDays : m_domtourModulePkg_depDate_receiptDisableDays,
dispMonths : m_domtourModulePkg_depDate_dispMonths,
selectableMonths : m_domtourModulePkg_depDate_selectableMonths,
isDispHoliday : m_domtourModulePkg_depDate_isDispHoliday,
boundaryTime : m_domtourModulePkg_depDate_boundaryTime,
spWidth : m_tour2ndModuleCommon_SP_WIDTH
});
//出発地(行き先から探す)
target.find('.m_depApoArea_tourCondition').tourCommonModule('createAirportInput', {
parent:this,
defAirportCode:defAirportDep,
defPartsPosition:dataControlPointValue,
balloonTitle:m_domtour2ndModulePkg_depApo['Text'],
areaClass:'m_hiddenPkgDepArea',
countryClass:'m_hiddenPkgDepCountry',
apoCodeClass:'m_hiddenPkgDepApo',
apoCodeName:'deptAreaCd',
inputPlaceholder:m_domtour2ndModulePkg_depApo['Placeholder'],
inputClass:'m_domPkgDepText',
isRequired:false,
isDisabled:false,
layoutType:'16',
uniqueKey:m_tourCommonModuleParts_getPartsCount('airport', 0),
apoType:'0'
});
//目的地
target.find('.m_arrArea').tourCommonModule('createAirportInput', {
parent : this,
defAirportCode : defAreaArr,
defPartsPosition : dataControlPointValue,
balloonTitle : m_domtour2ndModulePkg_arrApo['Text'],
areaClass : 'm_packArrArea',
countryClass : 'm_packArrCountry',
apoCodeClass : 'm_packArrApo',
apoCodeName : 'districtCd',
inputPlaceholder : m_domtour2ndModulePkg_arrApo['Placeholder'],
inputClass : 'm_domPkgArrText',
isRequired : false,
isDisabled : false,
layoutType : '17',
uniqueKey : m_tourCommonModuleParts_getPartsCount('airport', 1),
apoType : '1'
});
//旅行日数
target.find('.m_travelOfDays').tourCommonModule('createTravelOfDays', {
site : m_domtour2ndModulePkg_siteType.site,
module : m_domtour2ndModulePkg_siteType.module,
defSelect: defNumberOfDays,
inputClass:'m_dom_pkg_days',
inputId:'dom_pkg_days',
inputName:'travelDaysCnt'
});
//大人
target.find('.m_adult').tourCommonModule('createPeoplesPull', {
site : m_domtour2ndModulePkg_siteType.site,
module : m_domtour2ndModulePkg_siteType.module,
defSelect: defNumberOfAdult,
inputClass:'',
inputId:'dom_pkg_member',
inputName:'adultCnt'
});
//子供・幼児
target.find('.m_child').tourCommonModule('createNumberOfPeople', {
id: m_tourModuleNumberOfPeople_FixedParams.domtour.sec.id.pkg,
className: m_tourModuleNumberOfPeople_FixedParams.domtour.sec.id.pkg,
htmlType : m_tourModuleNumberOfPeople_FixedParams.domtour.sec.htmlType,
moduleNo : numberOfPeopleCount1,
NPLP : m_domtourModuleNumberOfPeoplePkg_NPLP,
initNum : defNumberOfPeopleSelectInit,
clearNum : defNumberOfPeopleSelectInit,
column : m_domtourModuleNumberOfPeoplePkg_optionParams.column,
row : m_domtourModuleNumberOfPeoplePkg_optionParams.row,
dispMatrix : m_domtourModuleNumberOfPeoplePkg_optionParams.dispMatrix,
textBoxTemplate : m_domtourModuleNumberOfPeoplePkg_optionParams.textBoxTemplate
});
//出発日(商品コードから探す)
target.find('.m_depDate_courseCodeCondition').tourCommonModule('createDateInput', {
parent : target,
balloonTitle : m_tourModuleCommon_getListValue(m_domtourModulePkg_depDate, 'BalloonTitle'),
defPartsPosition : dataControlPointValue,
defDate : defCourseDateDep,
defSelectDay : m_domtourModulePkg_depDateCourseCode_defSelectDay,
dateValueClass : m_domtourModulePkg_depDateCourseCode_dateValueClass,
dateValueName : m_domtourModulePkg_depDateCourseCode_dateValueName,
inputPlaceholder : m_domtourModulePkg_depDateCourseCode_inputPlaceholder,
inputClass : m_domtourModulePkg_depDateCourseCode_inputClass,
uniqueKey : m_tourCommonModuleParts_getPartsCount('calendar', 1),
isRequired : m_domtourModulePkg_depDateCourseCode_isRequired,
isDisabled : m_domtourModulePkg_depDateCourseCode_isDisabled,
isDispAllOfMonth : m_domtourModulePkg_depDateCourseCode_isDispAllOfMonth,
prevNextInterval : m_domtourModulePkg_depDateCourseCode_prevNextInterval,
receiptDisableDays : m_domtourModulePkg_depDateCourseCode_receiptDisableDays,
dispMonths : m_domtourModulePkg_depDateCourseCode_dispMonths,
selectableMonths : m_domtourModulePkg_depDateCourseCode_selectableMonths,
isDispHoliday : m_domtourModulePkg_depDateCourseCode_isDispHoliday,
boundaryTime : m_domtourModulePkg_depDateCourseCode_boundaryTime,
spWidth : m_tour2ndModuleCommon_SP_WIDTH
});
//出発地(商品コードから探す)
target.find('.m_depApoArea_courseCodeCondition').tourCommonModule('createAirportInput', {
parent:this,
defAirportCode:defCourseAirportDep,
defPartsPosition:dataControlPointValue,
balloonTitle:m_domtour2ndModulePkg_depApo['Text'],
areaClass:'m_hiddenPkgCourseDepArea',
countryClass:'m_hiddenPkgCourseDepCountry',
apoCodeClass:'m_hiddenPkgCourseDepApo',
apoCodeName:'deptAreaCd',
inputPlaceholder:m_domtour2ndModulePkg_depApo['Placeholder'],
inputClass:'m_domPkgCourseDepText',
isRequired:false,
isDisabled:false,
layoutType:'18',
uniqueKey:m_tourCommonModuleParts_getPartsCount('airport', 2),
apoType:'0'
});
// パッケージツアー「コースコードから探す」コースコードの初期値設定
if (!_.isEmpty(defCourseCode)) {
target.find('.m_courseCode').attr('value', defCourseCode);
}
//新旧モジュール切り替えイベント
$tour_module_jq(document).on('click keydown', '.m_js-mod-tab_btn_pkgmod', function (e) {
var $modBox = $tour_module_jq(this).closest('.module-cont');
var $modTabBox = $tour_module_jq(this).closest('.js-mod-tab');
var $modTabBtn = $modTabBox.find('.js-mod-tab_btn');
var $modTabContents = $modTabBox.children('.js-mod-tab_contents');
var btnIndex = $modTabBtn.index(this);
$modTabContents.removeClass('is-active');
$modTabContents.eq(btnIndex).addClass('is-active');
});
// 検索ボタン(行き先から探す)押下イベント登録:サブミット実行
target.find('.m_btn-search-dest').on('click keydown', function(e){
var whichValue = e.which;
if(whichValue == 1 || whichValue == 13){
$tour_module_jq(this).domtourCommonModule('submitSearchPkgDest', {
targetModule : target
});
}
});
// 検索ボタン(商品コードから探す)押下イベント登録:サブミット実行
target.find('.m_btn-search-course').on('click keydown', function(e){
var whichValue = e.which;
if(whichValue == 1 || whichValue == 13){
$tour_module_jq(this).domtourCommonModule('submitSearchPkgCourse', {
});
}
});
// 再検索パラメータのhidden生成
if(!_.isEmpty(kartKeepValue)){
target.tourCommonModule('createInputHidden', {
site : 'domtour',
inputName:'KartKeep',
inputValue:kartKeepValue
});
}
// 遷移先表示状態パラメータのhidden生成
target.tourCommonModule('createInputHidden', {
site : 'domtour',
inputName:'tabNoDispCls',
inputValue:tabNoDispCls
});
// 部品配置数カウントアップ
m_tourCommonModuleParts_setPartsCount('airport', 3);
m_tourCommonModuleParts_setPartsCount('calendar', 2);
};
//モジュール切り替えラジオ配置数カウント
function m_tour2ndModulePkg_returnCount_ModuleRadio(){
var returnCount = m_domtour2ndModuleCar_usePartsCount_ModuleRadio;
m_domtour2ndModuleCar_usePartsCount_ModuleRadio++;
return m_tourModuleCommon_zeroPadding(returnCount);
}
$tour_module_jq.fn.domtour2ndModulePkg = function(method) {
var methods = {
'privateSetParams' : m_domtour2ndModulePkg_setParams,
'privateSecondModuleDisplay' : m_domtour2ndModulePkg_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.domtour2ndModulePkg');
}
};