46 |
function combo_onKeyDown(event) { |
function combo_onKeyDown(event) { |
47 |
//debug("event: "+event.keyCode); |
//debug("event: "+event.keyCode); |
48 |
if (event.keyCode == 13) { |
if (event.keyCode == 13) { |
49 |
var el = document.myfilter.element_id('textfilter'); |
var el = self.document.myfilter.element_id('textfilter'); |
50 |
if (el) el.focus(); |
if (el) el.focus(); |
51 |
|
|
52 |
el = document.myfilter.element_id('results'); |
el = self.document.myfilter.element_id('results'); |
53 |
if (el) el.innerHTML = ''; |
if (el) el.innerHTML = ''; |
54 |
|
|
55 |
combo_active = 0; |
combo_active = 0; |
60 |
|
|
61 |
function myfilter() { |
function myfilter() { |
62 |
|
|
63 |
document.getElementById('textfilter').focus(); |
self.document.getElementById('textfilter').focus(); |
64 |
document.getElementById('textfilter').caretPos=1; |
self.document.getElementById('textfilter').caretPos=1; |
65 |
// document.getElementById('textfilter').select(); |
// self.document.getElementById('textfilter').select(); |
66 |
document.myfilter = new BFilter(headlines); |
self.document.myfilter = new BFilter(headlines); |
67 |
|
|
68 |
document.myfilter.result = function (arr) { |
self.document.myfilter.result = function (arr) { |
69 |
this.results_html += '<option value="'+arr[1]+'">'+ |
this.results_html += '<option value="'+arr[1]+'">'+ |
70 |
arr[0] + |
arr[0] + |
71 |
'</option>'; |
'</option>'; |
73 |
} |
} |
74 |
|
|
75 |
// this function is called when updating innerHTML with results |
// this function is called when updating innerHTML with results |
76 |
document.myfilter.display = function () { |
self.document.myfilter.display = function () { |
77 |
return '<select id="sel" size="5" onKeyDown="combo_onKeyDown(event);" onChange="document.getElementById(\'textfilter\').value = this.options[this.selectedIndex].text;">'+this.results_html+'</select>'; |
return '<select id="sel" size="5" onKeyDown="combo_onKeyDown(event);" onChange="self.document.getElementById(\'textfilter\').value = this.options[this.selectedIndex].text;">'+this.results_html+'</select>'; |
78 |
} |
} |
79 |
} |
} |
80 |
|
|
81 |
function combo_filter(document,value) { |
function combo_filter(value) { |
82 |
|
|
83 |
if (! combo_active) { |
if (! combo_active) { |
84 |
return null; |
return null; |
85 |
} |
} |
86 |
|
|
87 |
return document.myfilter.filter(document, value, headlines); |
return self.document.myfilter.filter(value); |
88 |
} |
} |
89 |
|
|
90 |
function keypress(e) { |
function keypress(e) { |
91 |
var d = e.keyCode; |
var d = e.keyCode; |
92 |
if ((d == 37) || (d == 38) || (d == 39) || (d == 40)) { |
if ((d == 37) || (d == 38) || (d == 39) || (d == 40)) { |
93 |
if (document.getElementById('sel')) document.getElementById('sel').focus(); |
if (self.document.getElementById('sel')) self.document.getElementById('sel').focus(); |
94 |
} |
} |
95 |
|
|
96 |
if (d != 13) combo_active = 1; |
if (d != 13) combo_active = 1; |
109 |
<div id="textfilterholder"> |
<div id="textfilterholder"> |
110 |
<input autocomplete="off" id="textfilter" name="textfilter" type="text" |
<input autocomplete="off" id="textfilter" name="textfilter" type="text" |
111 |
onKeyDown="keypress(event);" |
onKeyDown="keypress(event);" |
112 |
onKeyUp="combo_filter(document, this.value);" |
onKeyUp="combo_filter(this.value);" |
113 |
value=""></div> |
value=""></div> |
114 |
|
|
115 |
<div id="results"> |
<div id="results"> |