1: Type.registerNamespace('AJAXControls.FilteredSearchBox');
2:
3: AJAXControls.FilteredSearchBox.FilteredSearchBoxBehavior = function(element) {
4: AJAXControls.FilteredSearchBox.FilteredSearchBoxBehavior.initializeBase(this, [element]);
5:
6: // TODO : (Step 1) Add your property variables here
7: this._SearchBoxIDValue=null;
8: this._CurrentPosition=0;
9: }
10: AJAXControls.FilteredSearchBox.FilteredSearchBoxBehavior.prototype = {
11: initialize : function() {
12: AJAXControls.FilteredSearchBox.FilteredSearchBoxBehavior.callBaseMethod(this, 'initialize');
13:
14: // TODO: Add your initalization code here
15: Sys.UI.DomEvent.addHandler($get(this._SearchBoxIDValue), 'keyup',Function.createDelegate(this, this._onkeyup));
16: Sys.UI.DomEvent.addHandler($get(this._SearchBoxIDValue), 'keydown',Function.createDelegate(this, this._onkeydown));
17: },
18:
19: _onkeyup : function(e) {
20: var SearchText = $get(this._SearchBoxIDValue).value;
21: var NumKeys = $get(this._SearchBoxIDValue).value.length;
22:
23: var Text = SearchText ? SearchText.toLowerCase() : "";
24:
25: if(Text.length == 0)
26: {
27: this.get_element().selectedIndex = 0;
28: this._CurrentPosition=0;
29: return;
30: }
31: else
32: {
33: for(var i = this._CurrentPosition; i <= this.get_element().options.length-1; i++)
34: {
35: var Item=this.get_element()[i].text.toLowerCase();
36: while(escape(Item).indexOf("%A0")==0) //This is where we remove all of the leading spaces
37: {
38: Item=Item.slice(1);
39: }
40: if(Item.startsWith(Text))
41: {
42: this.get_element().selectedIndex=i;
43: this._CurrentPosition=i;
44: return;
45: }
46: }
47: }
48: },
49:
50: _onkeydown : function(e) {
51: if(e.keyCode == Sys.UI.Key.backspace)
52: {
53: this._CurrentPosition=0;
54: }
55: },
56:
57: dispose : function() {
58: // TODO: Add your cleanup code here
59:
60: AJAXControls.FilteredSearchBox.FilteredSearchBoxBehavior.callBaseMethod(this, 'dispose');
61: },
62:
63: // TODO: (Step 2) Add your property accessors here
64: get_SearchBoxID : function() {
65: return this._SearchBoxIDValue;
66: },
67:
68: set_SearchBoxID : function(value) {
69: this._SearchBoxIDValue = value;
70: }
71: }
72: AJAXControls.FilteredSearchBox.FilteredSearchBoxBehavior.registerClass('AJAXControls.FilteredSearchBox.FilteredSearchBoxBehavior', AjaxControlToolkit.BehaviorBase);