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.