66
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
1 |
/** |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
2 |
* Interface Elements for jQuery |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
3 |
* Autocompleter |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
4 |
* |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
5 |
* http://interface.eyecon.ro |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
6 |
* |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
7 |
* Copyright (c) 2006 Stefan Petre |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
8 |
* Dual licensed under the MIT (MIT-LICENSE.txt) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
9 |
* and GPL (GPL-LICENSE.txt) licenses. |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
10 |
* |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
11 |
*/ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
12 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
13 |
/** |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
14 |
* Attach AJAX driven autocomplete/sugestion box to text input fields. |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
15 |
* |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
16 |
* |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
17 |
* |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
18 |
* @name Autocomplete |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
19 |
* @description Attach AJAX driven autocomplete/sugestion box to text input fields. |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
20 |
* @param Hash hash A hash of parameters |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
21 |
* @option String source the URL to request |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
22 |
* @option Integer delay (optional) the delayed time to start the AJAX request |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
23 |
* @option Boolean autofill (optional) when true the first sugested value fills the input |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
24 |
* @option String helperClass (optional) the CSS class applied to sugestion box |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
25 |
* @option String selectClass (optional) the CSS class applied to selected/hovered item |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
26 |
* @option Integer minchars (optional) the number of characters needed before starting AJAX request |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
27 |
* @option Hash fx (optional) {type:[slide|blind|fade]; duration: integer} the fx type to apply to sugestion box and duration for that fx |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
28 |
* @option Function onSelect (optional) A function to be executed whenever an item it is selected |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
29 |
* @option Function onShow (optional) A function to be executed whenever the suggection box is displayed |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
30 |
* @option Function onHide (optional) A function to be executed whenever the suggection box is hidden |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
31 |
* @option Function onHighlight (optional) A function to be executed whenever an item it is highlighted |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
32 |
* |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
33 |
* @type jQuery |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
34 |
* @cat Plugins/Interface |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
35 |
* @author Stefan Petre |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
36 |
*/ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
37 |
jQuery.iAuto = { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
38 |
helper : null, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
39 |
content : null, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
40 |
iframe: null, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
41 |
timer : null, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
42 |
lastValue: null, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
43 |
currentValue: null, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
44 |
subject: null, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
45 |
selectedItem : null, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
46 |
items: null, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
47 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
48 |
empty : function() |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
49 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
50 |
jQuery.iAuto.content.empty(); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
51 |
if (jQuery.iAuto.iframe) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
52 |
jQuery.iAuto.iframe.hide(); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
53 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
54 |
}, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
55 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
56 |
clear : function() |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
57 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
58 |
jQuery.iAuto.items = null; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
59 |
jQuery.iAuto.selectedItem = null; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
60 |
jQuery.iAuto.lastValue = jQuery.iAuto.subject.value; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
61 |
if(jQuery.iAuto.helper.css('display') == 'block') { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
62 |
if (jQuery.iAuto.subject.autoCFG.fx) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
63 |
switch(jQuery.iAuto.subject.autoCFG.fx.type) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
64 |
case 'fade': |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
65 |
jQuery.iAuto.helper.fadeOut(jQuery.iAuto.subject.autoCFG.fx.duration, jQuery.iAuto.empty); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
66 |
break; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
67 |
case 'slide': |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
68 |
jQuery.iAuto.helper.SlideOutUp(jQuery.iAuto.subject.autoCFG.fx.duration, jQuery.iAuto.empty); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
69 |
break; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
70 |
case 'blind': |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
71 |
jQuery.iAuto.helper.BlindUp(jQuery.iAuto.subject.autoCFG.fx.duration, jQuery.iAuto.empty); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
72 |
break; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
73 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
74 |
} else { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
75 |
jQuery.iAuto.helper.hide(); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
76 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
77 |
if (jQuery.iAuto.subject.autoCFG.onHide) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
78 |
jQuery.iAuto.subject.autoCFG.onHide.apply(jQuery.iAuto.subject, [jQuery.iAuto.helper, jQuery.iAuto.iframe]); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
79 |
} else { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
80 |
jQuery.iAuto.empty(); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
81 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
82 |
window.clearTimeout(jQuery.iAuto.timer); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
83 |
}, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
84 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
85 |
update : function () |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
86 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
87 |
var subject = jQuery.iAuto.subject; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
88 |
var subjectValue = jQuery.iAuto.getFieldValues(subject); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
89 |
//var selectionStart = jQuery.iAuto.getSelectionStart(subject); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
90 |
if (subject && subjectValue.item != jQuery.iAuto.lastValue && subjectValue.item.length >= subject.autoCFG.minchars) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
91 |
jQuery.iAuto.lastValue = subjectValue.item; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
92 |
jQuery.iAuto.currentValue = subjectValue.item; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
93 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
94 |
data = { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
95 |
field: jQuery(subject).attr('name')||'field', |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
96 |
value: subjectValue.item |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
97 |
}; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
98 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
99 |
jQuery.ajax( |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
100 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
101 |
type: 'POST', |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
102 |
data: jQuery.param(data), |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
103 |
success: function(xml) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
104 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
105 |
subject.autoCFG.lastSuggestion = jQuery('item',xml); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
106 |
size = subject.autoCFG.lastSuggestion.size(); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
107 |
if (size > 0) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
108 |
var toWrite = ''; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
109 |
subject.autoCFG.lastSuggestion.each( |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
110 |
function(nr) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
111 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
112 |
toWrite += '<li rel="' + jQuery('value', this).text() + '" dir="' + nr + '" style="cursor: default;">' + jQuery('text', this).text() + '</li>'; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
113 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
114 |
); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
115 |
if (subject.autoCFG.autofill) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
116 |
var valueToAdd = jQuery('value', subject.autoCFG.lastSuggestion.get(0)).text(); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
117 |
subject.value = subjectValue.pre + valueToAdd + subject.autoCFG.multipleSeparator + subjectValue.post; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
118 |
jQuery.iAuto.selection( |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
119 |
subject, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
120 |
subjectValue.item.length != valueToAdd.length ? (subjectValue.pre.length + subjectValue.item.length) : valueToAdd.length, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
121 |
subjectValue.item.length != valueToAdd.length ? (subjectValue.pre.length + valueToAdd.length) : valueToAdd.length |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
122 |
); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
123 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
124 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
125 |
if (size > 0) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
126 |
jQuery.iAuto.writeItems(subject, toWrite); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
127 |
} else { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
128 |
jQuery.iAuto.clear(); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
129 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
130 |
} else { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
131 |
jQuery.iAuto.clear(); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
132 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
133 |
}, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
134 |
url : subject.autoCFG.source |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
135 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
136 |
); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
137 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
138 |
}, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
139 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
140 |
writeItems : function(subject, toWrite) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
141 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
142 |
jQuery.iAuto.content.html(toWrite); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
143 |
jQuery.iAuto.items = jQuery('li', jQuery.iAuto.content.get(0)); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
144 |
jQuery.iAuto.items |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
145 |
.mouseover(jQuery.iAuto.hoverItem) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
146 |
.bind('click', jQuery.iAuto.clickItem); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
147 |
var position = jQuery.iUtil.getPosition(subject); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
148 |
var size = jQuery.iUtil.getSize(subject); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
149 |
jQuery.iAuto.helper |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
150 |
.css('top', position.y + size.hb + 'px') |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
151 |
.css('left', position.x + 'px') |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
152 |
.addClass(subject.autoCFG.helperClass); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
153 |
if (jQuery.iAuto.iframe) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
154 |
jQuery.iAuto.iframe |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
155 |
.css('display', 'block') |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
156 |
.css('top', position.y + size.hb + 'px') |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
157 |
.css('left', position.x + 'px') |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
158 |
.css('width', jQuery.iAuto.helper.css('width')) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
159 |
.css('height', jQuery.iAuto.helper.css('height')); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
160 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
161 |
jQuery.iAuto.selectedItem = 0; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
162 |
jQuery.iAuto.items.get(0).className = subject.autoCFG.selectClass; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
163 |
jQuery.iAuto.applyOn(subject,subject.autoCFG.lastSuggestion.get(0), 'onHighlight'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
164 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
165 |
if (jQuery.iAuto.helper.css('display') == 'none') { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
166 |
if (subject.autoCFG.inputWidth) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
167 |
var borders = jQuery.iUtil.getPadding(subject, true); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
168 |
var paddings = jQuery.iUtil.getBorder(subject, true); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
169 |
jQuery.iAuto.helper.css('width', subject.offsetWidth - (jQuery.boxModel ? (borders.l + borders.r + paddings.l + paddings.r) : 0 ) + 'px'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
170 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
171 |
if (subject.autoCFG.fx) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
172 |
switch(subject.autoCFG.fx.type) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
173 |
case 'fade': |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
174 |
jQuery.iAuto.helper.fadeIn(subject.autoCFG.fx.duration); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
175 |
break; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
176 |
case 'slide': |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
177 |
jQuery.iAuto.helper.SlideInUp(subject.autoCFG.fx.duration); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
178 |
break; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
179 |
case 'blind': |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
180 |
jQuery.iAuto.helper.BlindDown(subject.autoCFG.fx.duration); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
181 |
break; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
182 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
183 |
} else { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
184 |
jQuery.iAuto.helper.show(); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
185 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
186 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
187 |
if (jQuery.iAuto.subject.autoCFG.onShow) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
188 |
jQuery.iAuto.subject.autoCFG.onShow.apply(jQuery.iAuto.subject, [jQuery.iAuto.helper, jQuery.iAuto.iframe]); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
189 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
190 |
}, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
191 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
192 |
checkCache : function() |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
193 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
194 |
var subject = this; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
195 |
if (subject.autoCFG.lastSuggestion) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
196 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
197 |
jQuery.iAuto.lastValue = subject.value; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
198 |
jQuery.iAuto.currentValue = subject.value; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
199 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
200 |
var toWrite = ''; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
201 |
subject.autoCFG.lastSuggestion.each( |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
202 |
function(nr) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
203 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
204 |
value = jQuery('value', this).text().toLowerCase(); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
205 |
inputValue = subject.value.toLowerCase(); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
206 |
if (value.indexOf(inputValue) == 0) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
207 |
toWrite += '<li rel="' + jQuery('value', this).text() + '" dir="' + nr + '" style="cursor: default;">' + jQuery('text', this).text() + '</li>'; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
208 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
209 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
210 |
); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
211 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
212 |
if (toWrite != '') { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
213 |
jQuery.iAuto.writeItems(subject, toWrite); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
214 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
215 |
this.autoCFG.inCache = true; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
216 |
return; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
217 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
218 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
219 |
subject.autoCFG.lastSuggestion = null; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
220 |
this.autoCFG.inCache = false; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
221 |
}, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
222 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
223 |
selection : function(field, start, end) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
224 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
225 |
if (field.createTextRange) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
226 |
var selRange = field.createTextRange(); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
227 |
selRange.collapse(true); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
228 |
selRange.moveStart("character", start); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
229 |
selRange.moveEnd("character", - end + start); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
230 |
selRange.select(); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
231 |
} else if (field.setSelectionRange) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
232 |
field.setSelectionRange(start, end); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
233 |
} else { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
234 |
if (field.selectionStart) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
235 |
field.selectionStart = start; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
236 |
field.selectionEnd = end; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
237 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
238 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
239 |
field.focus(); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
240 |
}, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
241 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
242 |
getSelectionStart : function(field) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
243 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
244 |
if (field.selectionStart) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
245 |
return field.selectionStart; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
246 |
else if(field.createTextRange) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
247 |
var selRange = document.selection.createRange(); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
248 |
var selRange2 = selRange.duplicate(); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
249 |
return 0 - selRange2.moveStart('character', -100000); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
250 |
//result.end = result.start + range.text.length; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
251 |
/*var selRange = document.selection.createRange(); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
252 |
var isCollapsed = selRange.compareEndPoints("StartToEnd", selRange) == 0; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
253 |
if (!isCollapsed) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
254 |
selRange.collapse(true); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
255 |
var bookmark = selRange.getBookmark(); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
256 |
return bookmark.charCodeAt(2) - 2;*/ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
257 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
258 |
}, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
259 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
260 |
getFieldValues : function(field) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
261 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
262 |
var fieldData = { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
263 |
value: field.value, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
264 |
pre: '', |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
265 |
post: '', |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
266 |
item: '' |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
267 |
}; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
268 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
269 |
if(field.autoCFG.multiple) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
270 |
var finishedPre = false; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
271 |
var selectionStart = jQuery.iAuto.getSelectionStart(field)||0; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
272 |
var chunks = fieldData.value.split(field.autoCFG.multipleSeparator); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
273 |
for (var i=0; i<chunks.length; i++) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
274 |
if( |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
275 |
(fieldData.pre.length + chunks[i].length >= selectionStart |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
276 |
|| |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
277 |
selectionStart == 0) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
278 |
&& |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
279 |
!finishedPre |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
280 |
) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
281 |
if (fieldData.pre.length <= selectionStart) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
282 |
fieldData.item = chunks[i]; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
283 |
else |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
284 |
fieldData.post += chunks[i] + (chunks[i] != '' ? field.autoCFG.multipleSeparator : ''); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
285 |
finishedPre = true; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
286 |
} else if (finishedPre){ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
287 |
fieldData.post += chunks[i] + (chunks[i] != '' ? field.autoCFG.multipleSeparator : ''); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
288 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
289 |
if(!finishedPre) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
290 |
fieldData.pre += chunks[i] + (chunks.length > 1 ? field.autoCFG.multipleSeparator : ''); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
291 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
292 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
293 |
} else { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
294 |
fieldData.item = fieldData.value; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
295 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
296 |
return fieldData; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
297 |
}, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
298 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
299 |
autocomplete : function(e) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
300 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
301 |
window.clearTimeout(jQuery.iAuto.timer); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
302 |
var subject = jQuery.iAuto.getFieldValues(this); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
303 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
304 |
var pressedKey = e.charCode || e.keyCode || -1; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
305 |
if (/13|27|35|36|38|40|9/.test(pressedKey) && jQuery.iAuto.items) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
306 |
if (window.event) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
307 |
window.event.cancelBubble = true; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
308 |
window.event.returnValue = false; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
309 |
} else { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
310 |
e.preventDefault(); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
311 |
e.stopPropagation(); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
312 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
313 |
if (jQuery.iAuto.selectedItem != null) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
314 |
jQuery.iAuto.items.get(jQuery.iAuto.selectedItem||0).className = ''; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
315 |
else |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
316 |
jQuery.iAuto.selectedItem = -1; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
317 |
switch(pressedKey) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
318 |
//enter |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
319 |
case 9: |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
320 |
case 13: |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
321 |
if (jQuery.iAuto.selectedItem == -1) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
322 |
jQuery.iAuto.selectedItem = 0; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
323 |
var selectedItem = jQuery.iAuto.items.get(jQuery.iAuto.selectedItem||0); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
324 |
var valueToAdd = selectedItem.getAttribute('rel'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
325 |
this.value = subject.pre + valueToAdd + this.autoCFG.multipleSeparator + subject.post; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
326 |
jQuery.iAuto.lastValue = subject.item; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
327 |
jQuery.iAuto.selection( |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
328 |
this, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
329 |
subject.pre.length + valueToAdd.length + this.autoCFG.multipleSeparator.length, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
330 |
subject.pre.length + valueToAdd.length + this.autoCFG.multipleSeparator.length |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
331 |
); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
332 |
jQuery.iAuto.clear(); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
333 |
if (this.autoCFG.onSelect) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
334 |
iteration = parseInt(selectedItem.getAttribute('dir'))||0; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
335 |
jQuery.iAuto.applyOn(this,this.autoCFG.lastSuggestion.get(iteration), 'onSelect'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
336 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
337 |
if (this.scrollIntoView) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
338 |
this.scrollIntoView(false); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
339 |
return pressedKey != 13; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
340 |
break; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
341 |
//escape |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
342 |
case 27: |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
343 |
this.value = subject.pre + jQuery.iAuto.lastValue + this.autoCFG.multipleSeparator + subject.post; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
344 |
this.autoCFG.lastSuggestion = null; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
345 |
jQuery.iAuto.clear(); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
346 |
if (this.scrollIntoView) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
347 |
this.scrollIntoView(false); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
348 |
return false; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
349 |
break; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
350 |
//end |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
351 |
case 35: |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
352 |
jQuery.iAuto.selectedItem = jQuery.iAuto.items.size() - 1; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
353 |
break; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
354 |
//home |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
355 |
case 36: |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
356 |
jQuery.iAuto.selectedItem = 0; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
357 |
break; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
358 |
//up |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
359 |
case 38: |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
360 |
jQuery.iAuto.selectedItem --; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
361 |
if (jQuery.iAuto.selectedItem < 0) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
362 |
jQuery.iAuto.selectedItem = jQuery.iAuto.items.size() - 1; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
363 |
break; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
364 |
case 40: |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
365 |
jQuery.iAuto.selectedItem ++; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
366 |
if (jQuery.iAuto.selectedItem == jQuery.iAuto.items.size()) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
367 |
jQuery.iAuto.selectedItem = 0; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
368 |
break; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
369 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
370 |
jQuery.iAuto.applyOn(this,this.autoCFG.lastSuggestion.get(jQuery.iAuto.selectedItem||0), 'onHighlight'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
371 |
jQuery.iAuto.items.get(jQuery.iAuto.selectedItem||0).className = this.autoCFG.selectClass; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
372 |
if (jQuery.iAuto.items.get(jQuery.iAuto.selectedItem||0).scrollIntoView) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
373 |
jQuery.iAuto.items.get(jQuery.iAuto.selectedItem||0).scrollIntoView(false); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
374 |
if(this.autoCFG.autofill) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
375 |
var valToAdd = jQuery.iAuto.items.get(jQuery.iAuto.selectedItem||0).getAttribute('rel'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
376 |
this.value = subject.pre + valToAdd + this.autoCFG.multipleSeparator + subject.post; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
377 |
if(jQuery.iAuto.lastValue.length != valToAdd.length) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
378 |
jQuery.iAuto.selection( |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
379 |
this, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
380 |
subject.pre.length + jQuery.iAuto.lastValue.length, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
381 |
subject.pre.length + valToAdd.length |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
382 |
); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
383 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
384 |
return false; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
385 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
386 |
jQuery.iAuto.checkCache.apply(this); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
387 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
388 |
if (this.autoCFG.inCache == false) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
389 |
if (subject.item != jQuery.iAuto.lastValue && subject.item.length >= this.autoCFG.minchars) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
390 |
jQuery.iAuto.timer = window.setTimeout(jQuery.iAuto.update, this.autoCFG.delay); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
391 |
if (jQuery.iAuto.items) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
392 |
jQuery.iAuto.clear(); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
393 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
394 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
395 |
return true; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
396 |
}, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
397 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
398 |
applyOn: function(field, item, type) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
399 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
400 |
if (field.autoCFG[type]) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
401 |
var data = {}; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
402 |
childs = item.getElementsByTagName('*'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
403 |
for(i=0; i<childs.length; i++){ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
404 |
data[childs[i].tagName] = childs[i].firstChild.nodeValue; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
405 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
406 |
field.autoCFG[type].apply(field,[data]); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
407 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
408 |
}, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
409 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
410 |
hoverItem : function(e) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
411 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
412 |
if (jQuery.iAuto.items) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
413 |
if (jQuery.iAuto.selectedItem != null) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
414 |
jQuery.iAuto.items.get(jQuery.iAuto.selectedItem||0).className = ''; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
415 |
jQuery.iAuto.items.get(jQuery.iAuto.selectedItem||0).className = ''; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
416 |
jQuery.iAuto.selectedItem = parseInt(this.getAttribute('dir'))||0; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
417 |
jQuery.iAuto.items.get(jQuery.iAuto.selectedItem||0).className = jQuery.iAuto.subject.autoCFG.selectClass; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
418 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
419 |
}, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
420 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
421 |
clickItem : function(event) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
422 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
423 |
window.clearTimeout(jQuery.iAuto.timer); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
424 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
425 |
event = event || jQuery.event.fix( window.event ); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
426 |
event.preventDefault(); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
427 |
event.stopPropagation(); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
428 |
var subject = jQuery.iAuto.getFieldValues(jQuery.iAuto.subject); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
429 |
var valueToAdd = this.getAttribute('rel'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
430 |
jQuery.iAuto.subject.value = subject.pre + valueToAdd + jQuery.iAuto.subject.autoCFG.multipleSeparator + subject.post; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
431 |
jQuery.iAuto.lastValue = this.getAttribute('rel'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
432 |
jQuery.iAuto.selection( |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
433 |
jQuery.iAuto.subject, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
434 |
subject.pre.length + valueToAdd.length + jQuery.iAuto.subject.autoCFG.multipleSeparator.length, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
435 |
subject.pre.length + valueToAdd.length + jQuery.iAuto.subject.autoCFG.multipleSeparator.length |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
436 |
); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
437 |
jQuery.iAuto.clear(); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
438 |
if (jQuery.iAuto.subject.autoCFG.onSelect) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
439 |
iteration = parseInt(this.getAttribute('dir'))||0; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
440 |
jQuery.iAuto.applyOn(jQuery.iAuto.subject,jQuery.iAuto.subject.autoCFG.lastSuggestion.get(iteration), 'onSelect'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
441 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
442 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
443 |
return false; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
444 |
}, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
445 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
446 |
protect : function(e) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
447 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
448 |
pressedKey = e.charCode || e.keyCode || -1; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
449 |
if (/13|27|35|36|38|40/.test(pressedKey) && jQuery.iAuto.items) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
450 |
if (window.event) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
451 |
window.event.cancelBubble = true; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
452 |
window.event.returnValue = false; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
453 |
} else { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
454 |
e.preventDefault(); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
455 |
e.stopPropagation(); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
456 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
457 |
return false; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
458 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
459 |
}, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
460 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
461 |
build : function(options) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
462 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
463 |
if (!options.source || !jQuery.iUtil) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
464 |
return; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
465 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
466 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
467 |
if (!jQuery.iAuto.helper) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
468 |
if (jQuery.browser.msie) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
469 |
jQuery('body', document).append('<iframe style="display:none;position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);" id="autocompleteIframe" src="javascript:false;" frameborder="0" scrolling="no"></iframe>'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
470 |
jQuery.iAuto.iframe = jQuery('#autocompleteIframe'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
471 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
472 |
jQuery('body', document).append('<div id="autocompleteHelper" style="position: absolute; top: 0; left: 0; z-index: 30001; display: none;"><ul style="margin: 0;padding: 0; list-style: none; z-index: 30002;"> </ul></div>'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
473 |
jQuery.iAuto.helper = jQuery('#autocompleteHelper'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
474 |
jQuery.iAuto.content = jQuery('ul', jQuery.iAuto.helper); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
475 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
476 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
477 |
return this.each( |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
478 |
function() |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
479 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
480 |
if (this.tagName != 'INPUT' && this.getAttribute('type') != 'text' ) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
481 |
return; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
482 |
this.autoCFG = {}; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
483 |
this.autoCFG.source = options.source; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
484 |
this.autoCFG.minchars = Math.abs(parseInt(options.minchars)||1); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
485 |
this.autoCFG.helperClass = options.helperClass ? options.helperClass : ''; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
486 |
this.autoCFG.selectClass = options.selectClass ? options.selectClass : ''; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
487 |
this.autoCFG.onSelect = options.onSelect && options.onSelect.constructor == Function ? options.onSelect : null; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
488 |
this.autoCFG.onShow = options.onShow && options.onShow.constructor == Function ? options.onShow : null; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
489 |
this.autoCFG.onHide = options.onHide && options.onHide.constructor == Function ? options.onHide : null; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
490 |
this.autoCFG.onHighlight = options.onHighlight && options.onHighlight.constructor == Function ? options.onHighlight : null; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
491 |
this.autoCFG.inputWidth = options.inputWidth||false; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
492 |
this.autoCFG.multiple = options.multiple||false; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
493 |
this.autoCFG.multipleSeparator = this.autoCFG.multiple ? (options.multipleSeparator||', '):''; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
494 |
this.autoCFG.autofill = options.autofill ? true : false; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
495 |
this.autoCFG.delay = Math.abs(parseInt(options.delay)||1000); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
496 |
if (options.fx && options.fx.constructor == Object) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
497 |
if (!options.fx.type || !/fade|slide|blind/.test(options.fx.type)) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
498 |
options.fx.type = 'slide'; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
499 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
500 |
if (options.fx.type == 'slide' && !jQuery.fx.slide) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
501 |
return; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
502 |
if (options.fx.type == 'blind' && !jQuery.fx.BlindDirection) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
503 |
return; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
504 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
505 |
options.fx.duration = Math.abs(parseInt(options.fx.duration)||400); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
506 |
if (options.fx.duration > this.autoCFG.delay) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
507 |
options.fx.duration = this.autoCFG.delay - 100; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
508 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
509 |
this.autoCFG.fx = options.fx; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
510 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
511 |
this.autoCFG.lastSuggestion = null; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
512 |
this.autoCFG.inCache = false; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
513 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
514 |
jQuery(this) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
515 |
.attr('autocomplete', 'off') |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
516 |
.focus( |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
517 |
function() |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
518 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
519 |
jQuery.iAuto.subject = this; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
520 |
jQuery.iAuto.lastValue = this.value; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
521 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
522 |
) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
523 |
.keypress(jQuery.iAuto.protect) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
524 |
.keyup(jQuery.iAuto.autocomplete) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
525 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
526 |
.blur( |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
527 |
function() |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
528 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
529 |
jQuery.iAuto.timer = window.setTimeout(jQuery.iAuto.clear, 200); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
530 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
531 |
); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
532 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
533 |
); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
534 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
535 |
}; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
536 |
jQuery.fn.Autocomplete = jQuery.iAuto.build; |