Small fix for short list access
[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.size>1) {
21                                 this.size = 1;
22                            } else {
23                                 var sel = this.selectedIndex;
24                                 this.size = this.options.length;
25                                 if(this.size>10) this.size = 10;
26                                 this.selectedIndex = sel;
27                            }
28                           }
29                         };
30                         element.onblur = function(event) { 
31                                 this.size = 1;
32                         }
33                 }
34         },
35         'input': function(element) {
36                 if(element.onfocus==undefined) {
37                         element.onfocus = function() {
38                                 document.getElementsByName('_focus')[0].value = element.name;
39                         };
40                 }
41         
42         },
43         'input.submit': function(element) {
44                 element.onfocus = function() {} // we do not want to change focus on submit
45         },
46         // combo: text input and related selector in next <TD> cell
47         'input.combo': function(element) {
48           if(element.onkeydown==undefined) {
49                   element.onkeydown=function(event) { 
50                         if (event.keyCode==13) event.keyCode=9;
51                   };
52                   element.onkeyup = function() {
53                         var select = document.getElementsByName(this.getAttribute('rel'))[0];
54                         var len = select.length;
55                         var ac = this.value;
56                         var txt;
57                         select.options[select.selectedIndex].selected = false;
58                         for (i = 0; i < len; i++) {
59 //                        txt = select.options[i].text;
60                           txt = select.options[i].value;
61                           if (txt.indexOf(ac) == 0) {
62                                 select.options[i].selected = true;
63                                 break;
64                           }
65                         }
66                   };
67                   element.onblur = function() {
68                           var select = document.getElementsByName(this.getAttribute('rel'))[0];
69                                 if (this.value != "")
70                                   this.value = select.options[select.selectedIndex].value;
71                                 return true;
72                   };
73                 }
74         },
75         'select.combo': function(element) {
76                 if(element.onchange==undefined) { 
77                           element.onblur = function() {
78                                 var box = document.getElementsByName(this.getAttribute('rel'))[0];
79                                 val = this.options[this.selectedIndex].value;
80                                 box.value = val; 
81                                 this.size = 1;
82                                 return true;
83                          }
84                 }
85         }       
86
87 };
88
89 Behaviour.register(inserts);
90
91 function setFocus(name, byId) {
92   if(byId)
93         input = document.getElementById(name).focus();
94   else
95         input = document.getElementsByName(name)[0].focus();
96 }
97
98 Behaviour.addLoadEvent(function() {
99     var inp = document.getElementsByName('_focus')[0];
100 if(inp!=null) {
101   setFocus(inp.value, 0);
102 } else {
103 }
104 }
105 );
106