Removed selector expansion on space key for multi-line selectors
[fa-stable.git] / js / inserts.js
1 /*
2  Behaviour definitions
3 */
4 var inserts = {
5     '.amount': function(element) {
6                 if(element.onblur==undefined) {
7                   var dec = element.getAttribute("dec");
8                   element.onblur = function() {
9                         price_format(this.name, get_amount(this.name), dec);
10                   };
11                 }
12         },
13         'select': function(element) {
14                 if(element.onfocus==undefined) {
15                         element.onfocus = function() {
16                                 document.getElementsByName('_focus')[0].value = element.name;
17                         };
18                         element.onkeydown = function(event) { 
19                           if (event.keyCode==32) {
20                            if(this.init_size==undefined)
21                                 this.init_size = this.size;
22                           if(this.init_size<=1) {
23                            if(this.size>1) {
24                                 this.size = 1;
25                            } else{
26                                 var sel = this.selectedIndex;
27                                 this.size = this.options.length;
28                                 if(this.size>10) this.size = 10;
29                                 this.selectedIndex = sel;
30                            }
31                           }
32                          }
33                         }
34                         element.onblur = function(event) { 
35                             if(this.init_size<=1)
36                                 this.size = 1;
37                         }
38                 }
39         },
40         'input': function(element) { // we do not want to change focus on submit
41                 if(element.type!='submit' && element.onfocus==undefined) {
42                         element.onfocus = function() {
43                                 document.getElementsByName('_focus')[0].value = element.name;
44                         };
45                 }
46         },
47         // combo: text input and related selector
48         'input.combo': function(element) {
49           if(element.onkeydown==undefined) {
50                   element.onkeydown=function(event) { 
51                         if (event.keyCode==13) event.keyCode=9;
52                   };
53                   element.onkeyup = function() {
54                         var select = document.getElementsByName(this.getAttribute('rel'))[0];
55                         var len = select.length;
56                         var ac = this.value;
57                         var txt;
58                         select.options[select.selectedIndex].selected = false;
59                         for (i = 0; i < len; i++) {
60 //                        txt = select.options[i].text;
61                           txt = select.options[i].value;
62                           if (txt.indexOf(ac) >= 0) {
63                                 select.options[i].selected = true;
64                                 break;
65                           }
66                         }
67                   };
68                   element.onblur = function() {
69                           var button = document.getElementsByName(this.name+'_button')[0];
70                           var select = document.getElementsByName(this.getAttribute('rel'))[0];
71 //                        var val = select.options[select.selectedIndex].text;
72                           var val = select.options[select.selectedIndex].value; TODO
73                           if (this.value != "")
74                                   this.value = val;
75                           return true;
76                   };
77                 }
78         },
79         'select.combo': function(element) {
80                           element.onblur = function() {
81                                 var box = document.getElementsByName(this.getAttribute('rel'))[0];
82                                 val = this.options[this.selectedIndex].value;
83                                 box.value = val; 
84                                 this.size = 1;
85                                 return true;
86                          }
87         },
88         'input.combo_submit': function(element) {
89             // this hides search button for js enabled browsers
90             element.style.display = 'none';
91         }
92 };
93
94 Behaviour.register(inserts);
95
96 function setFocus(name, byId) {
97   if(byId)
98         input = document.getElementById(name);
99   else
100         input = document.getElementsByName(name)[0];
101   if(input.focus)
102         input.focus();
103 }
104
105
106 Behaviour.addLoadEvent(function() {
107     var inp = document.getElementsByName('_focus')[0];
108 if(inp!=null) {
109   setFocus(inp.value, 0);
110 } else {
111 }
112 }
113 );
114