PageSourceSearch

https://www.surugabank.co.jp/sitesearch/js/popterm2.js

js surugabank.co.jp collected 2026-09-24 09:02:38 UTC 16,566 bytes, 596 lines download raw bytes

1//
2// --------------------------------------------------------------------
3//  Copyright (c) 2007 - 2012 Business Search Technologies Corporation
4// --------------------------------------------------------------------
5//
6
7function popTerm(param) {
8  var self = this;
9  if (param === undefined || param === null) param = {};
10
11  self.vh_url = 'https://suruga-bank2.sitesearch.jp/';
12  self.url = self.vh_url + 'popterm' + '/popterm.pl';
13  self.css = self.vh_url + 'popterm' + '/css/popterm2.css';
14  //self.url = '%%PROBOENV_POPTERM_URI%%';
15
16  self.disable = 0;
17  self.interval = 200;
18  self.param = param;
19
20  self.targetid = 'query';
21  if (param.targetid !== undefined ) {
22    self.targetid = param.targetid;
23  }
24  self.targetname = null;
25  if (param.query !== undefined) {
26    self.targetname = param.query;
27  }
28  self.trid = '0';
29  if (param.trid !== undefined) {
30    self.trid = param.trid;
31  }
32  self.maxitems = '10';
33  if (param.show_count !== undefined ) {
34    self.maxitems = param.show_count;
35  }
36  if (param.maxitems !== undefined) {
37    self.maxitems = param.maxitems;
38  }
39  self.colnum = '1';
40  if (param.colnum !== undefined) {
41    self.colnum = param.colnum;
42  }
43  self.id = 'popterm';
44  if (param.id !== undefined) {
45    self.id = param.id;
46  }
47  if (param.css !== undefined) {
48    self.css = param.css;
49  }
50  self.enter = '';
51  if (param.enter !== undefined) {
52    self.enter = param.enter;
53  }
54  self.click = '';
55  if (param.click !== undefined) {
56    self.click = param.click;
57  }
58  self.matchtype = 'begin';
59  if (param.matchtype !== undefined) {
60    self.matchtype = param.matchtype;
61  }
62
63  self.ua = navigator.userAgent.toLowerCase();
64  self.vr = navigator.appVersion.toLowerCase();
65  if (param.css_ie6 !== undefined && /msie *6/.test(self.ua)) self.css = param.css_ie6;
66  if (param.css_ie7 !== undefined && /msie *7/.test(self.ua)) self.css = param.css_ie7;
67  if (param.css_ie8 !== undefined && /msie *8/.test(self.ua)) self.css = param.css_ie8;
68  if (param.css_ie9 !== undefined && /msie *9/.test(self.ua)) self.css = param.css_ie9;
69  if (param.css_ff !== undefined && /firefox/.test(self.ua)) self.css = param.css_ff;
70  if (param.css_gc !== undefined && /chrome/.test(self.ua))  self.css = param.css_gc;
71  if (param.css_op !== undefined && /opera/.test(self.ua))   self.css = param.css_op;
72  if (param.css_sf !== undefined && /applewebkit/.test(self.ua))  self.css = param.css_sf;
73
74  if ('https:' == document.location.protocol) {
75    if (param.ssl_url !== undefined) {
76      self.url = param.ssl_url;
77      if (param.ssl_css !== undefined) {
78        self.css = param.ssl_css;
79      }
80    } else {
81      return {};
82    }
83  }
84
85  self.query = '';
86  self.list = [];
87  self.menu = null;
88  self.menu_top = null;
89  self.menu_bottom = null;
90  self.current = null;
91  var i;
92  var a = document.getElementsByTagName('input');
93  for (i = 0; i < a.length; i++) {
94    if (a[i].getAttribute('id') === self.targetid) {
95      self.target = a[i];
96      break;
97    }
98  }
99  if (self.targetname !== null) {
100    self.target = document.getElementsByName(self.targetname)[0];
101  }
102  self.cbfunc = 'probo_popterm_callback_' + (new Date()).getTime();
103  self.tbd = null;
104  self.track = 0;
105
106  self.initialize = function () {
107    self.f_createtbl();
108    self.f_construct();
109    var x = self.target;
110    x.setAttribute('autocomplete', 'off');
111    self.bindevent(x, "focus",   self.h_focus);
112    self.bindevent(x, "blur",    self.h_blur);
113    self.bindevent(x, "keyup",   self.h_keyup);
114    self.bindevent(x, "keydown", self.h_keydown);
115    self.query = self.target.value;
116    self.f_hide();
117    self.poling();
118  };
119
120  self.f_createtbl = function () {
121    self.menu = document.createElement("table");
122    self.menu.setAttribute("id", self.id);
123    var pp = self.target.parentNode;
124    pp.insertBefore(self.menu, self.target.nextSibling);
125    self.menu.style.position = "absolute";
126    self.menu.style.display = "inline";
127    var tbd = document.createElement("tbody");
128    self.menu.appendChild(tbd);
129    self.tbd = tbd;
130    if (self.css != null) {
131      var c = document.createElement('link');
132      c.setAttribute('rel', 'stylesheet');
133      c.setAttribute('type', 'text/css');
134      c.setAttribute('href', self.css);
135      pp.appendChild(c);
136    }
137  };
138
139  self.f_construct = function () {
140    var tr;
141    var tbd = document.createElement("tbody");
142    for (i = 0; i < self.list.length; i++) {
143      var rec = self.list[i];
144      tr = document.createElement("tr");
145      for (j = 0; j < rec.length && j < self.colnum ; j++) {
146        var val = rec[j];
147        var td = document.createElement("td");
148        document.all ? td.innerText = val : td.textContent = val;
149        if (self.param.fit_searchbox_width !== "off") {
150          td.style.width = self.getWidth(self.target);
151        }
152        tr.appendChild(td);
153      }
154      self.bindevent (tr, "mousedown", self.h_menu_mousedown);
155      self.bindevent (tr, "mouseup", self.h_menu_mouseup);
156      self.bindevent (tr, "mouseover", self.h_menu_mouseover);
157      self.bindevent (tr, "mouseout", self.h_menu_mouseout);
158      tbd.appendChild(tr);
159      if (i == 0) self.menu_top = tr;
160    }
161    self.menu_bottom = tr;
162    if (self.param.fit_searchbox_width !== "off") {
163      self.menu.style.width = self.getWidth(self.target);
164    }
165    if (self.param.fit_boxparent_height !== "off") {
166      self.menu.style.marginTop = self.getVOffset2(self.target);
167      self.menu.style.marginLeft = self.getHOffset(self.target);
168    }
169    if (self.param.fit_searchbox_height !== undefined) {
170      self.menu.style.marginTop = self.getVOffset(self.target);
171      self.menu.style.marginLeft = self.getHOffset(self.target);
172    }
173    self.menu.replaceChild(tbd, self.tbd);
174    self.tbd = tbd;
175  };
176
177  self.f_show = function () {
178    if (!self.menu) return;
179    if (self.disable > 0) return;
180    if (self.list.length == 0) return;
181    self.menu.setAttribute("class", self.id + "_visible");
182    self.menu.style.visibility = "visible";
183    self.menu.style.display = "inline";
184  };
185
186  self.f_hide = function () {
187    if (!self.menu) return;
188    self.menu.setAttribute('class', self.id + "_hidden");
189    self.menu.style.visibility = "hidden";
190    self.menu.style.display = "none";
191  };
192
193  self.f_up = function () {
194    if (!self.menu) return;
195    var c = self.current;
196    if (c != null) c = c.previousSibling;
197    if (c == null) c = self.menu_bottom;
198    self.f_highlight(c);
199  };
200
201  self.f_down = function () {
202    if (!self.menu) return;
203    var c = self.current;
204    if (c != null) c = c.nextSibling;
205    if (c == null) c = self.menu_top;
206    self.f_highlight(c);
207  };
208
209  self.f_highlight = function (e) {
210    var r = self.menu.getElementsByTagName('tr');
211    var i;
212    for (i = 0; i < r.length; i++) {
213      var c = '\v' == 'v' ? 'className' : 'class';
214      if (document.documentMode == 8) c = 'class';
215      if (r[i] === e) {
216        self.current = e;
217        r[i].setAttribute(c , self.id + '_selected');
218      } else {
219        r[i].removeAttribute(c);
220      }
221    }
222  };
223
224  self.f_select = function () {
225    var e = self.current;
226    if (e === null) return;
227    var d = e.getElementsByTagName('td');
228    var t = document.all ? d[0].innerText : d[0].textContent;
229    self.target.value = t;
230    self.query = t;
231    if(self.popterm_click){ self.popterm_click( t ); }
232  };
233
234  self.h_menu_mouseover = function () {
235    var e = document.all ? event.srcElement.parentNode : this;
236    self.f_highlight(e);
237  };
238
239  self.h_menu_mouseout = function () {
240    var e = document.all ? event.srcElement.parentNode : this;
241    self.f_highlight(null);
242    self.current = null;
243  };
244
245  self.h_menu_mouseup = function () {
246    self.endtrack();
247    self.f_select();
248    self.update();
249    self.target.focus();
250  };
251
252  self.h_menu_mousedown = function () {
253    var e = document.all ? event.srcElement.parentNode : this;
254    self.current = e;
255    self.starttrack();
256    if (self.click == 'submit') {
257      self.dispatchKeydown(13);
258    }
259  };
260
261  self.h_focus = function () {
262    self.current = null;
263    self.update();
264    self.f_highlight(null);
265    self.f_show();
266  };
267
268  self.h_blur = function () {
269    if (self.track != 0) return;
270    self.f_hide();
271    self.current = null;
272    self.f_highlight(null);
273  };
274
275  self.h_keydown = function (e) {
276    var k = e.keyCode ? e.keyCode : e.charCode;
277    if (k == 27) {
278      self.f_hide();
279      //self.disable = 1;
280      return;
281    }
282    else if (k == 38) self.f_up();
283    else if (k == 40) self.f_down();
284    else if (k == 13) {
285      if (self.current === null) return;
286      self.f_select();
287      self.update();
288      if (self.enter !== 'submit') {
289        self.cancelevent (e);
290      }
291      self.f_hide();
292      return;
293    }
294    else if (k == 39) {
295      if (self.current === null) return;
296      self.f_select();
297      self.update();
298    }
299    self.f_show();
300  };
301
302  self.h_keyup = function (e) {
303    var k = e.keyCode;
304  };
305
306  self.starttrack = function () {
307    self.track = 1;
308    var e = document.all ? document.body : document;
309    self.bindevent(e, "mouseup", self.h_menu_mouseup);
310  };
311
312  self.endtrack = function () {
313    var e = document.all ? document.body : document;
314    self.unbindevent(e, "mouseup", self.h_menu_mouseup);
315    self.track = 0;
316  };
317
318  self.bindevent = function (target, event, handler) {
319    if (target.addEventListener) {
320      target.addEventListener (event, handler, false);
321    } else {
322      target.attachEvent ("on" + event, handler);
323    }
324  };
325
326  self.unbindevent = function (target, event, handler) {
327    if (target.removeEventListener) {
328      target.removeEventListener (event, handler, false);
329    } else {
330      target.detachEvent ("on" + event, handler);
331    }
332  };
333
334  self.cancelevent = function (event) {
335    if (event.preventDefault) {
336      event.preventDefault();
337    } else {
338      window.event.returnValue = false;
339    }
340  };
341
342  self.cancelbubble = function (event) {
343    if (event.stopPropagation) {
344      event.stopPropagation();
345    } else {
346      window.event.cancelBubble = true;
347    }
348  };
349
350  self.dispatchKeydown = function (keycode) {
351    if (document.all) {
352      var evt = document.createEventObject();
353      evt.keyCode = keycode;
354      self.target.fireEvent("onkeydown", evt);
355    }
356    else {
357      var evt = document.createEvent("KeyboardEvent");
358      evt.initKeyEvent("keydown", true, true, null, false, false, false, false, keycode, 0);
359      self.target.dispatchEvent(evt);
360    }
361  };
362
363  self.getwidth = function (e) {
364    if (document.defaultView) {
365      var t = document.defaultView.getComputedStyle(e, null);
366      return t.getPropertyValue('width');
367    }
368    else if (e.offsetWidth) {
369      return e.offsetWidth;
370    }
371    return 0;
372  };
373
374  self.getheight = function (e) {
375    if (document.defaultView) {
376      var t = document.defaultView.getComputedStyle(e, null);
377      return t.getPropertyValue('height');
378    }
379    else if (e.offsetHeight) {
380      return e.offsetHeight;
381    }
382    return 0;
383  };
384
385  self.getBorderWidth = function (e) {
386    var l = 0, r = 0, t = 0, b = 0;
387    if (e.currentStyle) {
388      l = e.currentStyle.borderLeftWidth;
389      r = e.currentStyle.borderRightWidth;
390      t = e.currentStyle.borderTopWidth;
391      b = e.currentStyle.borderBottomWidth;
392    }
393    else if (window.getComputedStyle) {
394      var x = window.getComputedStyle(e, null);
395      l = x.borderLeftWidth;
396      r = x.borderRightWidth;
397      t = x.borderTopWidth;
398      b = x.borderBottomWidth;
399    }
400    l = parseInt(l);
401    r = parseInt(r);
402    t = parseInt(t);
403    b = parseInt(b);
404    if (isNaN(l)) l = 0;
405    if (isNaN(r)) r = 0;
406    if (isNaN(t)) t = 0;
407    if (isNaN(b)) b = 0;
408    return {'left':l, 'right':r, 'top':t, 'bottom':b};
409  };
410
411  self.getMargin = function (e) {
412    var l = 0, r = 0, t = 0, b = 0;
413    if (e.currentStyle) {
414      l = e.currentStyle.marginLeft;
415      r = e.currentStyle.marginRight;
416      t = e.currentStyle.marginTop;
417      b = e.currentStyle.marginBottom;
418    }
419    else if (window.getComputedStyle) {
420      var x = window.getComputedStyle(e, null);
421      l = x.marginLeft;
422      r = x.marginRight;
423      t = x.marginTop;
424      b = x.marginBottom;
425    }
426    l = parseInt(l);
427    r = parseInt(r);
428    t = parseInt(t);
429    b = parseInt(b);
430    if (isNaN(l)) l = 0;
431    if (isNaN(r)) r = 0;
432    if (isNaN(t)) t = 0;
433    if (isNaN(b)) b = 0;
434    return {'left':l, 'right':r, 'top':t, 'bottom':b};
435  };
436
437  self.getPadding = function (e) {
438    var l = 0, r = 0, t = 0, b = 0;
439    if (e.currentStyle) {
440      l = e.currentStyle.paddingLeft;
441      r = e.currentStyle.paddingRight;
442      t = e.currentStyle.paddingTop;
443      b = e.currentStyle.paddingBottom;
444    }
445    else if (window.getComputedStyle) {
446      var x = window.getComputedStyle(e, null);
447      l = x.paddingLeft;
448      r = x.paddingRight;
449      t = x.paddingTop;
450      b = x.paddingBottom;
451    }
452    l = parseInt(l);
453    r = parseInt(r);
454    t = parseInt(t);
455    b = parseInt(b);
456    if (isNaN(l)) l = 0;
457    if (isNaN(r)) r = 0;
458    if (isNaN(t)) t = 0;
459    if (isNaN(b)) b = 0;
460    return {'left':l, 'right':r, 'top':t, 'bottom':b};
461  };
462
463  self.getLineheight = function (e) {
464    var r = 0;
465    if (e.currentStyle) {
466      r = e.currentStyle.lineHeight;
467    }
468    else if (window.getComputedStyle) {
469      r = window.getComputedStyle(e, null).lineHeight;
470    }
471    r = parseInt(r);
472    if (isNaN(r)) r = 0;
473    return r;
474  };
475
476  self.getWidth = function (e) {
477    var w = parseInt(self.getwidth(e));
478    var b = self.getBorderWidth(e);
479    var m = self.getMargin(e);
480    var p = self.getPadding(e);
481    var r = w + b.left + b.right + p.left + p.right;
482    if (/msie */.test(self.ua)) {
483      if (document.documentMode ) {
484        if (document.documentMode < 9) r = w;
485      } else {
486        r = w;
487      }
488    }
489    return r + "px";
490  };
491
492  self.getVOffset = function (e) {
493    var h = parseInt(self.getheight(e));
494    var b = self.getBorderWidth(e);
495    var m = self.getMargin(e);
496    var p = self.getPadding(e);
497    var l = self.getLineheight(e);
498    var r = h + b.top + b.bottom + p.top + p.bottom + m.top;
499    if (/msie */.test(self.ua)) {
500      if (document.documentMode ) {
501        if (document.documentMode < 9) r = h + m.top;
502      } else {
503        r = h + m.top;
504      }
505    }
506    return r + "px";
507  };
508
509  self.getVOffset2 = function (e) {
510    var r = 0;
511    var c = e.parentNode.firstChild;
512    while (c != e.parentNode.lastChild) {
513      if (c.nodeType == 1 && c.getAttribute('id') !== self.id) {
514        var i = parseInt(self.getVOffset (c));
515        if (r < i) r = i;
516      }
517      c = c.nextSibling;
518    }
519    return r + "px";
520  };
521
522  self.getHOffset = function (e) {
523    var w = parseInt(self.getwidth(e));
524    var b = self.getBorderWidth(e);
525    var m = self.getMargin(e);
526    var p = self.getPadding(e);
527    var r = w + b.left + b.right + m.right + p.left + p.right;
528    if (/msie */.test(self.ua)) {
529      if (document.documentMode ) {
530        if (document.documentMode < 9) r = w + m.right;
531      } else {
532        r = w + m.right;
533      }
534    }
535    return '-' + r + "px";
536  };
537
538  self.update = function () {
539    var r = '';
540    if (self.query == '') return;
541    if (/msie *6/.test(self.ua)) r = '&o=' + (new Date()).getTime();
542    if (/msie *7/.test(self.ua)) r = '&o=' + (new Date()).getTime();
543    var url = this.url +
544              '?callback=' + self.cbfunc +
545              '&trid=' + self.trid +
546              '&k=' + encodeURIComponent(self.query) +
547              '&m=' + self.matchtype +
548              '&c=' + self.maxitems + r;
549    window[self.cbfunc] = function (res) {
550      self.callback (res);
551    };
552    var sc = document.createElement('script');
553    sc.src = url;
554    sc.type = 'text/javascript';
555    sc.charset = 'utf-8';
556    //sc.async = true;
557    var h = document.getElementsByTagName('head');
558    h[0].appendChild(sc);
559  };
560
561  self.callback = function (res) {
562    self.current = null;
563    if(res.error) return;
564    if (res.list === null || res.list.length === 0) {
565      self.list = [];
566      self.f_construct ();
567      self.f_hide();
568    } else {
569      self.list = res.list;
570      self.f_construct();
571      self.f_show();
572    }
573  };
574
575  self.poling = function () {
576    if (self.query === self.target.value) {
577      ;
578    }
579    else if (self.target.value == '') {
580      self.query = '';
581      self.current = null;
582      self.list = [];
583      self.f_construct ();
584      self.f_hide ();
585    } else {
586      self.query = self.target.value;
587      self.current = null;
588      self.update ();
589      self.f_construct ();
590      self.f_show ();
591    }
592    setTimeout (self.poling, self.interval);
593  };
594
595  self.initialize();
596}

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.