PageSourceSearch

https://www.tamakiya.com/wp-content/themes/minoya/booking/src/dynjs/exec.js

js tamakiya.com collected 2026-10-04 14:04:18 UTC 12,705 bytes, 291 lines download raw bytes

1//初期表示
2$(function() {
3    try {
4        DYNns.System.TEST = DYNns.setupBinary(DYNns.System.TEST);
5        DYNns.System.UNITTEST = DYNns.setupBinary(DYNns.System.UNITTEST);
6        $.each(DYNns.panelset, function(suffix, objPanel) {
7            objPanel.tabs = DYNns.setTabToPanel(objPanel.tabs);
8            if (_.isUndefined(objPanel.tabs)) return false;
9            DYNns.execPanel(objPanel, suffix);
10        });
11    } catch (error) {
12        if (DYNns.System.errortext != "") {
13            DYNns.ErrorTextDisplay(DYNns.System.errortext);
14        } else {
15            if (DYNns.System.TEST) DYNns.ErrorTextDisplay(error);
16        }
17    }
18});
19
20(function(DYNns, $, _, undefined) {
21    "use strict";
22    DYNns.$ = $;
23    DYNns._ = _;
24
25    //パネル生成関数
26    DYNns.execPanel = function(objPanel, suffix) {
27        //suffixに該当するformが存在するか判定
28        if ($("#" + suffix).length <= 0) {
29            DYNns.ErrorTextDisplay("ERROR:ID=" + suffix + "を満たすForm要素が見つかりません");
30            return 0;
31        }
32        $("#" + suffix).attr("id", "dynSearch" + suffix);
33        objPanel.formid = "#dynSearch" + suffix;
34
35        //各パネル毎の初期設定
36        objPanel.idSuffix = suffix;
37        objPanel.sts = {};
38
39        //各タブ毎の初期設定
40        _.forEach(objPanel.tabs, function(objTab, tabcount) {
41            //親参照設定
42            objTab.objPanel = objPanel;
43            //Words設定
44            objTab.words = DYNns.setWordsToTab(objTab.words);
45            if (_.isUndefined(objTab.words)) return false;
46            //suffix設定
47            objTab.idSuffix = suffix;
48            objTab.thisTabNum = tabcount;
49            objTab.sts.idSuffix = suffix;
50            objTab.sts.thisTabNum = tabcount;
51            objTab.words.idSuffix = suffix;
52            objTab.words.thisTabNum = tabcount;
53            objTab.formid = objPanel.formid;
54            //Binary設定
55            _.forEach(objTab.sts.nowdisp, function(display) {
56                display = DYNns.setupBinary(display);
57            });
58            objTab.sts.windowOpenSubmit = DYNns.setupBinary(objTab.sts.windowOpenSubmit);
59            objTab.sts.windowOpenCancel = DYNns.setupBinary(objTab.sts.windowOpenCancel);
60            objTab.sts.bookingDate.usecalendar = DYNns.setupBinary(objTab.sts.bookingDate.usecalendar);
61            //自動表示判定
62            DYNns.autoSetupDisplay.set(objTab);
63            objTab.sts.olddisp = {};
64            //group設定
65            objTab.sts.hdata = DYNns.setValArray(objTab.sts.hdata);
66            objTab.sts.groupNum = 0;
67        });
68
69        //専用メソッドを生成
70        DYNns.panelFunctionSetup(objPanel);
71
72        //タブ毎の項目生成
73        objPanel.execTab(objPanel.tabs[objPanel.initialization.starttab]);
74        DYNns.setupTabDispunit(objPanel);
75
76        //保存情報の初期化
77        DYNns.pushTabDate(objPanel);
78        DYNns.pushTabChkymd(objPanel);
79        DYNns.pushTabChkpsn(objPanel);
80        DYNns.pushTabDispunit(objPanel);
81    };
82
83    //各パネルの専用メソッドを生成
84    DYNns.panelFunctionSetup = function(objPanel) {
85        //タブ生成関数
86        objPanel.execTab = function(objTab) {
87            var objPanel = this;
88            var startday = new Date();
89            //tab番号設定
90            objPanel.nowTab = objTab.thisTabNum;
91            //表示モード記憶
92            objPanel.nowMode = DYNns.getAdressMode(objTab);
93            //自動表示判定
94            DYNns.autoSetupDisplay.set(objTab);
95            //一旦消す
96            $(objTab.formid).css("display", "none");
97            //日付の初期設定
98            DYNns.setupDateRange(objTab);
99            startday = DYNns.copyDate(objTab.startday);
100
101            //tab選択部分の生成
102            if (objTab.sts.nowdisp.tabs) {
103                DYNns.setupBrocks.set(objTab, "tabs", "dynTabsHead");
104                DYNns.setupTabs(this);
105
106                //選択されてるtabの選別
107                $(objPanel.formid + " [class^=Tab]").each(function(tabcount, tabHead) {
108                    if (objTab.thisTabNum === tabcount) {
109                        $(tabHead).addClass("current");
110                    } else {
111                        $(tabHead).removeClass("current");
112                    }
113                });
114            }
115
116            DYNns.setupBrocks.set(objTab, "button", "dynSubmit");
117
118            DYNns.setupBrocks.set(objTab, "bookingdate", "bookingDate");
119
120            DYNns.setupBrocks.set(objTab, "persons", "dynPersons");
121
122            DYNns.setupBrocks.set(objTab, "dpselect", "dynDP", "WBFplan");
123
124            DYNns.setupBrocks.set(objTab, "group", "dynGroup", "group");
125
126            DYNns.setupBrocks.set(objTab, "bookingnights", "bookingNights", "nights");
127
128            DYNns.setupBrocks.set(objTab, "bookingrooms", "bookingRooms", "rooms");
129
130            DYNns.setupBrocks.set(objTab, "chkymd", "undecided", "chkymd");
131
132            DYNns.setupBrocks.set(objTab, "chkpsn", "lbchkpsn", "chkpsn");
133
134            DYNns.setupBrocks.set(objTab, "price", "dynPrice", "budgets");
135
136            DYNns.setupBrocks.set(objTab, "categorybooking", "dynCategoryBooking", "categorybooking");
137
138            DYNns.setupBrocks.set(objTab, "categoryroom", "dynCategoryRoom", "categoryroom");
139
140            DYNns.setupBrocks.set(objTab, "categoryroomtype", "dynCategoryRoomType", "categoryroomtype");
141
142            DYNns.setupBrocks.set(objTab, "dispunit", "dynDispunit");
143            DYNns.setupBrocks.set(objTab, "dispunitPlan", "dispPlanRoot", "dispunitPlan");
144            DYNns.setupBrocks.set(objTab, "dispunitRoom", "dispRoomRoot", "dispunitRoom");
145            DYNns.setupBrocks.set(objTab, "dispunitCalendar", "dispCaldRoot", "dispunitCalendar");
146            DYNns.setupTabDispunit(this);
147
148            DYNns.setupGroups(objTab);
149            DYNns.getAirPortJsonp.get(objTab);
150            if (objTab.sts.nowdisp.nights) DYNns.setupNightsRooms(objPanel.formid + " .cmbNights", objTab.sts.bookingDate.nights);
151            if (objTab.sts.nowdisp.rooms) DYNns.setupNightsRooms(objPanel.formid + " .cmbRooms", objTab.sts.bookingDate.rooms);
152            DYNns.setupPersons(objTab);
153            if (objTab.sts.nowdisp.budgets) {
154                DYNns.setupBudget.get(objPanel.formid + " .minPrice", objTab.sts.budgets.min, objTab, 0);
155                DYNns.setupBudget.get(objPanel.formid + " .maxPrice", objTab.sts.budgets.max, objTab, 1);
156            }
157            DYNns.setupCategory.set(objTab);
158
159            //日付選択項目のセット
160            $(objPanel.formid).off("click change", ".cmbARRY,.cmbARRM,.cmbARRD");
161            if (objTab.sts.bookingDate.usecalendar) {
162                //カレンダー使う場合
163                DYNns.setupCalendar(this);
164                DYNns.pullDate(this, startday);
165
166                $(objPanel.formid).on("click", ".cmbARRY,.cmbARRM,.cmbARRD", function() {
167                    objPanel.cal.write();
168                });
169                $(objPanel.formid).on("change", ".cmbARRY,.cmbARRM,.cmbARRD", function() {
170                    objPanel.cal.getFormValue();
171                    objPanel.cal.hide();
172                });
173                if (!objTab.sts.nowdisp.year) $(objPanel.formid + " .cmbARRY").attr("type", "hidden");
174                if (objTab.sts.nowdisp.year) $(objPanel.formid + " .cmbARRY").after(_.template("<%=bookingDatePunctuation%>")(objTab.words));
175            } else {
176                //カレンダー使わない場合
177                DYNns.setupSelectDate.get(objTab, startday);
178                $(objPanel.formid).on("change", ".cmbARRY,.cmbARRM,.cmbARRD", function() {
179                    DYNns.setupSelectDate.push(objTab);
180                    DYNns.pushTabDate(objPanel);
181                    DYNns.setupSelectDate.get(objTab, objPanel.sts.date);
182                });
183            }
184
185            //その他イベントハンドラ設定
186            $(objPanel.formid).on("click", ".chkymd", function() { objPanel.cngchkymd(); });
187            $(objPanel.formid).on("click", ".chkpsn", function() { objPanel.cngchkpsn(); });
188            $(objPanel.formid).on("click", ".buttonSubmit", function() { objPanel.submit(); });
189            $(objPanel.formid).on("click", ".buttonCancel", function() { objPanel.btnCancel(); });
190            $(objPanel.formid + " [class^=Tab]").each(function(tabcount, tabHead) {
191                $(tabHead).on("click", function() { objPanel.viewchange(tabcount); });
192            });
193            $(window).on("resize", function() {
194                if (objPanel.nowMode !== DYNns.getAdressMode(objTab)) objPanel.viewchange();
195            });
196
197            //完成したら表示
198            $(objTab.formid).css("display", "block");
199        };
200
201        //tab切り替え関数
202        objPanel.viewchange = function(toChangeTab) {
203            if (_.isUndefined(toChangeTab)) toChangeTab = this.nowTab;
204            var objTab = this.tabs[toChangeTab];
205            //情報保存
206            DYNns.pushTabDate(this);
207            DYNns.pushTabChkymd(this);
208            DYNns.pushTabChkpsn(this);
209            DYNns.pushTabDispunit(this);
210            var oldPlanMode = this.tabs[this.nowTab].sts.submit.plan;
211            objTab.sts.olddisp = $.extend({}, this.tabs[this.nowTab].sts.nowdisp);
212
213            //切り替え
214            this.execTab(objTab);
215
216            //情報復帰      
217            if (oldPlanMode === objTab.sts.submit.plan) {
218                DYNns.pullDate(this);
219                DYNns.pullChkymd(this);
220                DYNns.pullChkpsn(this);
221                DYNns.pullDispunit(this);
222            }
223
224            //日付・日程未定時の入力禁止設定
225            this.cngchkymd();
226            this.cngchkpsn();
227        };
228
229        //日付未定をクリックしたとき
230        objPanel.cngchkymd = function() {
231            if ($(this.formid + " .chkymd").length > 0) {
232                var bochkymd = $(this.formid + " .chkymd").prop("checked");
233                $(this.formid + " .cmbARRY").prop("disabled", bochkymd);
234                $(this.formid + " .cmbARRM").prop("disabled", bochkymd);
235                $(this.formid + " .cmbARRD").prop("disabled", bochkymd);
236                if (this.tabs[this.nowTab].sts.nowdisp.rooms) $(this.formid + " .cmbRooms").prop("disabled", bochkymd);
237                if (this.tabs[this.nowTab].sts.nowdisp.nights) $(this.formid + " .cmbNights").prop("disabled", bochkymd);
238            }
239        };
240
241        //人数未定をクリックしたとき
242        objPanel.cngchkpsn = function() {
243            if ($(this.formid + " .chkpsn").length > 0) {
244                var bochkpsn = $(this.formid + " .chkpsn").prop("checked");
245                $(this.formid + " .dynPersons [class^=cmbPerson]").prop("disabled", bochkpsn);
246            }
247        };
248
249        //検索をクリックしたとき
250        objPanel.submit = function() {
251            var form = document.getElementById("dynSearch" + this.idSuffix);
252            var url = DYNns.getSearchUrl(this.tabs[this.nowTab]);
253            if (DYNns.System.TEST) alert(url);
254            var windowStatus = "";
255            _.forEach(this.tabs[this.nowTab].sts.windowSts, function(status, key) {
256                if (windowStatus !== "") windowStatus = windowStatus + ",";
257                windowStatus = windowStatus + key + "=" + status;
258            });
259            if (this.tabs[this.nowTab].sts.windowOpenSubmit) {
260                if (DYNns.System.TEST) alert(windowStatus);
261                window.open(url, "planlist", windowStatus);
262            } else {
263                form.action = url;
264                form.method = "POST";
265                form.submit();
266            }
267        };
268
269        //ご予約の確認をクリックしたとき
270        objPanel.btnCancel = function() {
271            var form = document.getElementById("dynSearch" + this.idSuffix);
272            var url = DYNns.getCanceUrl.get(this.tabs[this.nowTab], $(window).width());
273            if (DYNns.System.TEST) alert(url);
274            var windowStatus = "";
275            _.forEach(this.tabs[this.nowTab].sts.windowSts, function(status, key) {
276                if (windowStatus !== "") windowStatus = windowStatus + ",";
277                windowStatus = windowStatus + key + "=" + status;
278            });
279            if (this.tabs[this.nowTab].sts.windowOpenCancel) {
280                if (DYNns.System.TEST) alert(windowStatus);
281                window.open(url, "planlist", windowStatus);
282            } else {
283                form.action = url;
284                form.method = "POST";
285                form.submit();
286            }
287        };
288
289    };
290
291}(window.DYNns = window.DYNns || {}, jQuery, _));

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.