PageSourceSearch

https://hotspringmuseum.taipei/js/page.js?v=13

js hotspringmuseum.taipei collected 2026-09-26 05:22:44 UTC 10,260 bytes, 238 lines download raw bytes

1var h = {
2    pagename: location.pathname.split('/').pop() ? location.pathname.split('/').pop() : "index.aspx",
3    loadfile: function (fullfilename, type) {
4        var fileref;
5        if (!type || type == "script") {
6            fileref = document.createElement('script');
7            fileref.setAttribute("type", "text/javascript");
8            fileref.setAttribute("src", fullfilename);
9            $("[src*='" + fullfilename + "']", "head").remove();
10        }
11        else {
12            fileref = document.createElement('link');
13            fileref.setAttribute("rel", "stylesheet");
14            fileref.setAttribute("href", fullfilename);
15            $("[href*='" + fullfilename + "']", "head").remove();
16        }
17        document.getElementsByTagName("head")[0].appendChild(fileref);
18    },
19    render: function (data, $form) {
20        var controls = $(":text,:password,select,:radio,:checkbox,textarea,input[type='hidden']", $form);
21        if (!data || typeof (data) != "object") data = {};
22        $.each(controls, function (i, v) {
23            var $obj = $(v);
24            if ($obj && $obj.attr("name")) {
25                var name = $obj.attr("name"),
26                    id = $obj.attr("id"),
27                    value = !(data[name] == null || data[name] == undefined) ? $.trim(data[name].toString()) : "";
28                id = id && id.indexOf("form-validation") > -1 ? "" : id;
29                if (/\/Date/.test(value)) {
30                    var d = new Date(value.match(/\d+/)[0] * 1);
31                    if (d.getFullYear() > 3000) value = ""; else value = d.Format("yyyy/MM/dd hh:mm:ss");
32                }
33                if ($obj.is("select")) {
34                    if ($obj.is("[multiple]")) {
35                        if (value) $obj.val(value.split(",")).trigger("change");
36                    }
37                    else
38                        $obj.val(value).trigger('change');
39                }
40                else if ($obj.is(":radio,:checkbox", $form)) {
41                    $.each((value).split(","), function (i, v) {
42                        $obj.prop("checked", false);
43                        var chk = $("[name='" + name + "'][value='" + v + "']", $form);
44                        if (!chk.is(":checked")) chk.trigger("click");
45                    });
46                }
47                else if ($obj.is(":text", $form)) {
48                    $obj.val(value).trigger("blur");
49                }
50                else {
51                    $obj.val(value);
52                }
53            }
54        });
55    },
56    collect: function (data, $form) {
57        var controls = $(":text,:password,select,:radio,:checkbox,textarea,input[type='hidden'],input[type='email']", $form);
58        if (!data || typeof (data) != "object") data = {};
59        $.each(data, function (i, v) {
60            if (typeof (v) == "string" && /\/Date/.test(v)) {
61                var d = new Date(v.match(/\d+/)[0] * 1);
62                data[i] = (d.getFullYear() > 3000) ? "" : d.Format("yyyy/MM/dd hh:mm:ss");
63            }
64        });
65        $.each(controls, function (i, v) {
66            var $obj = $(v), h = $obj.is(":hidden");
67            if ($obj && $obj.attr("name")) {
68                var name = $obj.attr("name"),
69                    id = $obj.attr("id"),
70                    value = "";
71                id = id && id.indexOf("form-validation") > -1 ? "" : id;
72                if ($obj.is("select") && $obj.is("[multiple]")) {
73                    value = $obj.val() ? $obj.val().join(",") : "";
74                }
75                else if ($obj.is(":radio,:checkbox", $form)) {
76                    value = $.map($("[name='" + name + "']:checked", $form), function (v) { return $(v).val(); }).join(",");
77                }
78                else {
79                    value = $obj.val();
80                }
81                data[name] = value;
82            }
83        });
84        return data;
85    },
86    YouTubeGetID: function (url) {
87        var ID = '';
88        url = url.replace(/(>|<)/gi, '').split(/(vi\/|v=|\/v\/|youtu\.be\/|\/embed\/)/);
89        if (url[2] !== undefined) {
90            ID = url[2].split(/[^0-9a-z_\-]/i);
91            ID = ID[0];
92        }
93        return ID;
94    }
95},
96    option = {
97        datePicker: {
98            dateFormat: 'yy/mm/dd',
99            changeMonth: true,
100            changeYear: true,
101            yearRange: "-1:+2",
102            prevText: '<i class="fa fa-chevron-left"></i>',
103            nextText: '<i class="fa fa-chevron-right"></i>'
104        }
105    },
106    lang = {
107        curr: function () {
108            let url = location.href.toLowerCase();
109            if (url.indexOf("/en/") > -1) return "en";
110            if (url.indexOf("/jp/") > -1) return "jp";
111            else return "tw";
112        },
113        get: function (g) {
114            let lg = lang.libs[g];
115            if (lg) return lg[lang.curr()]; else return "";
116        },
117        switch: function (container, g) {
118            if (!container) container = $("body");
119            if (!g) g = lang.curr();
120            lang.libs = { validationEngine: { tw: "jquery.validationEngine-zh_TW.js", en: "jquery.validationEngine-en.js", jp: "jquery.validationEngine-en.js" } };
121            localStorage.lang = g;
122            $.ajax({
123                url: "api.aspx",
124                data: { q: "language_url", g: g, r: Math.random() },
125                async: false,
126                success: function (res) {
127                    location.replace(res.concat(h.pagename, location.search));
128                }
129            });
130            $("script[src*='jquery.validationEngine-']").remove();
131            h.loadfile("js/" + lang.get("validationEngine"), "script");
132            $("script[src*='datepicker-zh-TW.js']").remove();
133            if (lang.curr() == "tw") h.loadfile("js/datepicker-zh-TW.js", "script"); else h.loadfile("css/en.css", "style");
134        },
135        libs: sessionStorage["language"] ? JSON.parse(sessionStorage["language"]) : null,
136        render: ($body) => {
137            if (!$body) $body = $("body");
138            $.each($("[data-g]", $body), (i, x) => {
139                let v = lang.libs[$(x).data().g];
140                if (v) {
141                    let g = v[lang.curr()];
142                    if ($(x).is("textarea,input")) { $(x).attr("placeholder", g);$(x).attr("title", g); }
143                    else if ($(x).is("button")) { $(x).text(g); }
144                    else { $(x).html(g); }
145                }
146            });
147        },
148        default: function () {
149            $(".changeLang").show();
150            $("." + lang.curr()).hide();
151            lang.libs = { validationEngine: { tw: "jquery.validationEngine-zh_TW.js", en: "jquery.validationEngine-en.js", jp: "jquery.validationEngine-en.js" } };
152            $.ajax({
153                url: "api.aspx",
154                data: { q: "language", r: Math.random() },
155                async: false,
156                dataType: "json",
157                success: function (res) {
158                    $.each(res, function (i, v) { lang.libs[v.text] = { tw: v.value_tw, en: v.value_en, jp: v.value_jp }; });
159                    sessionStorage["language"] = JSON.stringify(lang.libs);
160                }
161            });
162            $("script[src*='jquery.validationEngine-']").remove();
163            h.loadfile("js/" + lang.get("validationEngine"), "script");
164            $("script[src*='datepicker-zh-TW.js']").remove();
165            if (lang.curr() == "tw") h.loadfile("js/datepicker-zh-TW.js", "script"); else h.loadfile("css/en.css", "style");
166            lang.render();
167        }
168    },
169    menu = {
170        data: {},
171        get: function () {
172            $.ajax({
173                url: "api.aspx",
174                async: false,
175                dataType: "json",
176                data: { q: "menu", t: Math.random() },
177                success: function (res) {
178                    menu.data = res;
179                    menu.render();
180                }
181            });
182        },
183        render: function () {
184            //年份
185            $("div.year_label").text(new Date().getFullYear());
186            let $menu = $("nav > div > div > ul.navbar-nav", ".header"),
187                $footer_menu = $("footer > div > div > div.jq_footer_menu");
188            $.each(menu.data.items, function (i, m) {
189                //Event
190                //if (m.Id === 3) $menu.append($("#menu_item_param").render($.extend(m, { items: menu.data.eventkind })));
191                //else $menu.append($("#menu_item").render(m));
192                $menu.append($("#menu_item").render(m));
193                $footer_menu.append($("#footer_menu_item").render(m));
194            });
195            //Logo
196            let logo = menu.data.logo;
197            //if (logo.Logo) $("img", "div.mainLogo").attr("src", "/upload/" + logo.Logo);
198            if (logo.FootLogo) $("div.footerLogo > a > img").attr("src", "/upload/" + logo.FootLogo);
199            if (h.pagename.indexOf("index") > -1) $("img.kv_img").attr("src", "/upload/" + menu.data.logo.HeadBanner);
200            //banners
201            //$(".footer_sponsor > .sponsor_swiper > .swiper > .swiper-wrapper").html($("#ad_item").render(menu.data.banners));
202            //Copyright
203            //$(".footer > div").append(menu.data.Copyright);
204            //$("div.copyright").html(String.format("造訪次數:{0}", menu.data.totalcnt));
205            $("small.total").text(menu.data.totalcnt);
206        }
207
208    };
209let websearch = {
210    keyup: function (event) {
211        let v = $(this).val();
212        if (event.keyCode === 13 && v) {
213            location.href = "search.aspx?" + $.param({ key: v });
214        }
215    }
216};
217$(function () {
218    lang.default();
219    menu.get();
220    $(":text[name='WebSearch']").on("keyup", websearch.keyup);
221    $("a.changeLang").on("click", function () {
222        let $g = $(this);
223        if ($g.is(".tw")) lang.switch(null, "tw");
224        else if ($g.is(".en")) lang.switch(null, "en");
225        else if ($g.is(".jp")) lang.switch(null, "jp");
226    });
227    $.ajax({
228        url: "api.aspx",
229        async: false,
230        data: { q: "pageclick", t: Math.random() },
231        success: function (c) {
232            $("span.clicktotal").text(c);
233        }
234    });
235});
236$(window).on("load", function() {
237    h.loadfile("/static/js/script.js?v=" + Math.random(), "script");
238});

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.