PageSourceSearch

https://www.toyota-tsusho.com/app-files/probo/js/popterm3.js

js toyota-tsusho.com collected 2026-10-02 03:57:07 UTC 17,020 bytes, 613 lines download raw bytes

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

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.