|
:
2 :
3 :
4 :
5 :
6 :
7 :
8 :
9 :
10 :
11 :
12 :
13 :
14 :
15 :
16 :
17 :
18 :
19 :
20 :
21 :
22 :
23 :
24 :
25 :
26 :
27 :
28 :
29 :
30 :
31 :
32 :
33 :
34 :
35 :
36 :
37 :
38 :
39 :
40 :
41 :
42 :
43 :
44 :
45 :
46 :
47 :
48 :
49 :
50 :
51 :
52 :
53 :
54 :
55 :
56 :
57 :
58 :
59 :
60 :
61 :
62 :
63 :
64 :
65 :
66 :
67 :
68 :
69 :
70 :
71 :
72 :
73 :
74 :
75 :
76 :
77 :
78 :
79 :
80 :
81 :
82 :
83 :
84 :
85 :
86 :
87 :
88 :
89 :
90 :
91 :
92 :
93 :
94 :
95 :
96 :
97 :
98 :
99 :
100 :
101 :
102 :
103 :
104 :
105 :
106 :
107 :
108 :
109 :
110 :
111 :
112 :
113 :
114 :
115 :
116 :
117 :
118 :
119 :
120 :
121 :
122 :
123 :
124 :
125 :
126 :
127 :
128 :
129 :
class= " de var FORM_MANAGER_CONDITION_SEPARATOR = « ET » ;
variété FORM_MANAGER_POSSIBILITY_SEPARATOR = « OU » ;
variété FORM_MANAGER_NAME_VALUE_SEPARATOR = « ÉTANT » ;
la variété FORM_MANAGER_DEPENDS = « DÉPEND DE » ;
la variété FORM_MANAGER_CONFLICTS = « EST EN CONFLIT AVEC » ;
la variété FORM_MANAGER_EMPTY = « VIDENT » ;
fonction addEvent (EL, ev, f) {
si (el.addEventListener)
el.addEventListener (ev, f, faux) ;
autrement si (el.attachEvent) {
variété t = fonction () {
f.apply (EL) ;
} ;
addEvent.events.push ({« élément » : EL, « événement » : ev, « traiteur » : f}) ;
el.attachEvent ("ON" + ev, t) ;
} autrement
EL ["ON" + ev] = f ;
}
addEvents de fonction (els, evs, f) {
pour (variété i = 0 ; i < els.length ; ++i)
pour (variété j = 0 ; j < evs.length ; ++j)
addEvent (els [I], evs [j], f) ;
}
addEvent.events = [] ;
si (typeof window.event ! le == « a éliminé »)
addEvent (la fenêtre, « déchargent », la fonction () {
pour (variété i = 0, e = addEvent.events ; i < e.length ; ++i)
e [I] .element.detachEvent ("ON" + e [I] .event, e [I] .handler) ;
}
) ;
getRadioValue de fonction (EL) {
si (! retour d'el.length) nul ;
pour (variété i = 0 ; i < el.length ; ++i)
si (EL [I] .checked) EL de retour [I] .value ;
nulle de retour ;
}
getSelectValue de fonction (EL) {
si (! el.tagName || el.tagName.toLowerCase () ! le == « choisissent »)
nulle de retour ;
el.options de retour [el.selectedIndex] .value ;
}
isElementValue de fonction (EL, v) {
si (=== FORM_MANAGER_EMPTY de v) v = '' ;
retourner (
== v du getRadioValue (EL) ||
== v du getSelectValue (EL) ||
(
&& d'el.tagName
el.tagName.toLowerCase () ! le == « choisissent » le &&
== v d'el.value
)
) ;
}
setupDependencies de fonction () {
showEl = fonction de variété () {
this.style.display = "" ;
si == « étiquette » (de this.parentNode.tagName.toLowerCase ())
this.parentNode.style.display = "" ;
} ;
hideEl = fonction de variété () {
this.style.display = « aucun » ;
si (typeof this.checked ! le == « a éliminé ») this.checked = faux ;
d'autre this.value = "" ;
si == « étiquette » (de this.parentNode.tagName.toLowerCase ())
this.parentNode.style.display = « aucun » ;
this.hidden = rectifient ;
} ;
calcDeps = fonction de variété () {
pour (variété i = 0, e = this.elements ; i < e.length ; ++i) {
e [I] .hidden = faux ;
pour (variété j = 0, f = e [I] .className.split (FORM_MANAGER_CONDITION_SEPARATOR) ; j < f.length ; ++j)
si (=== 0 de f [j] .indexOf (FORM_MANAGER_DEPENDS)) {
pour (variété k = 0, g = f [j] .substr (FORM_MANAGER_DEPENDS.length) .split (FORM_MANAGER_POSSIBILITY_SEPARATOR) ; k < g.length ; ++k)
si (=== -1 de g [k] .indexOf (FORM_MANAGER_NAME_VALUE_SEPARATOR)) {
si (e [g [k]] coupure du && e [g [k]] .checked) ;
autrement si (k + 1 == g.length)
e [I] .hide () ;
} autrement {
variété n = g [k] .split (FORM_MANAGER_NAME_VALUE_SEPARATOR),
v = n [1] ;
n = n [0] ;
si (e [n])
si (isElementValue (e [n], v)) coupure ;
autrement si (k + 1 == g.length) e [I] .hide () ;
}
} autrement si (=== 0 de f [j] .indexOf (FORM_MANAGER_CONFLICTS)) {
si (=== -1 de f [j] .indexOf (FORM_MANAGER_NAME_VALUE_SEPARATOR)) {
si (e [f [j] .substr (FORM_MANAGER_CONFLICTS.length)] && e [f [j] .substr (FORM_MANAGER_CONFLICTS.length)].checked) {
e [I] .hide () ;
coupure ;
}
} autrement {
variété n = f [j] .substr (FORM_MANAGER_CONFLICTS.length) .split (FORM_MANAGER_NAME_VALUE_SEPARATOR),
v = n [1] ;
n = n [0] ;
si (e [n]) {
si (isElementValue (e [n], v)) {
e [I] .hide () ;
coupure ;
}
}
}
}
si (! e [I] .hidden) e [I] .show () ;
}
} ;
changeHandler = fonction de variété () {
this.form.calculateDependencies () ;
de retour rectifient ;
} ;
pour (variété i = 0 ; i < arguments.length ; ++i) {
pour (variété j = 0, e = window.document.forms [arguments [I]] .elements ; j < e.length ; ++j) {
addEvents ([e [j]], [« changement », « keyup », « foyer », « clic », « keydown »], changeHandler) ;
e [j] .hide = hideEl ;
e [j] .show = showEl ;
}
(e = window.document.forms [arguments [I]]) .calculateDependencies = calcDeps ;
e.calculateDependencies () ;
}
}
class= " de |