1 | |
---|
2 | {* <!-- Expandable Fieldsets by LucMorizur December 2010 --> *} |
---|
3 | {* <!-- Part of Piwigo project, http://piwigo.org --> *} |
---|
4 | {* <!-- Creates "disappearing" <fieldset>'s --> *} |
---|
5 | |
---|
6 | {known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js"} |
---|
7 | |
---|
8 | {literal} |
---|
9 | <script type="text/javascript"> |
---|
10 | var ef_animate_fast = false; |
---|
11 | var ef_plus_bullet_path = ''; |
---|
12 | var ef_minus_bullet_path = ''; |
---|
13 | var ef_separator = ' : '; |
---|
14 | |
---|
15 | function ef_reduce(fieldset_id, fast) { |
---|
16 | var l_m = jQuery('#' + fieldset_id + ' legend'); |
---|
17 | if (ef_reduce.arguments.length < 2) fast = ef_animate_fast; |
---|
18 | if (!l_m.is('.ef_command')) l_m.addClass('ef_command'); |
---|
19 | if (!jQuery('#' + fieldset_id).is(':hidden')) |
---|
20 | l_m.trigger('ef_reduce_private', fast); |
---|
21 | l_m.removeClass('ef_command'); |
---|
22 | } |
---|
23 | |
---|
24 | function ef_maximize(fieldset_id, fast) { |
---|
25 | var l_r = jQuery('#' + fieldset_id + '_reduced_legend'); |
---|
26 | if (ef_maximize.arguments.length < 2) fast = ef_animate_fast; |
---|
27 | if (!l_r.is('.ef_command')) l_r.addClass('ef_command'); |
---|
28 | if (jQuery('#' + fieldset_id).is(':hidden')) |
---|
29 | l_r.trigger('ef_maximize_private', fast); |
---|
30 | l_r.removeClass('ef_command'); |
---|
31 | } |
---|
32 | |
---|
33 | function ef_lock(fieldset_id, locked) { |
---|
34 | var l_m = jQuery('#' + fieldset_id + ' legend'); |
---|
35 | var l_r = jQuery('#' + fieldset_id + '_reduced_legend'); |
---|
36 | if (locked) { |
---|
37 | l_r.css('cursor', 'auto'); |
---|
38 | l_r.removeClass('ef_click_ok'); |
---|
39 | l_m.css('cursor', 'auto'); |
---|
40 | l_m.removeClass('ef_click_ok'); |
---|
41 | } |
---|
42 | else { |
---|
43 | l_r.css('cursor', 'pointer'); |
---|
44 | if (!l_r.is('.ef_click_ok')) l_r.addClass('ef_click_ok'); |
---|
45 | l_m.css('cursor', 'pointer'); |
---|
46 | if (!l_m.is('.ef_click_ok')) l_m.addClass('ef_click_ok'); |
---|
47 | } |
---|
48 | } |
---|
49 | |
---|
50 | function ef_init(fieldset_id, cache_id) { |
---|
51 | jQuery(document).ready(function(){ |
---|
52 | var f_m = jQuery('#' + fieldset_id); |
---|
53 | var l_m = jQuery('#' + fieldset_id + ' legend'); |
---|
54 | var l_txt = l_m.text(); |
---|
55 | var f_r = f_m; |
---|
56 | var l_r = l_m; |
---|
57 | if (ef_minus_bullet_path != '') l_m.prepend( |
---|
58 | '<img alt = "" title = ""' + |
---|
59 | 'src = "' + ef_minus_bullet_path + '"' + '> ' |
---|
60 | ); |
---|
61 | l_m.addClass('ef_legends'); |
---|
62 | l_m.addClass('ef_click_ok'); |
---|
63 | f_m.after(document.createElement('div')); |
---|
64 | f_r = f_m.next(); |
---|
65 | f_r.css({ |
---|
66 | 'display' : 'none', |
---|
67 | 'padding-left' : f_m.css('padding-left'), |
---|
68 | 'padding-right' : f_m.css('padding-right'), |
---|
69 | 'margin-left' : f_m.css('margin-left'), |
---|
70 | 'margin-top' : f_m.css('margin-top'), |
---|
71 | 'margin-right' : f_m.css('margin-right'), |
---|
72 | 'margin-bottom' : f_m.css('margin-bottom'), |
---|
73 | 'line-height' : f_m.css('line-height'), |
---|
74 | 'vertical-align' : f_m.css('vertical-align'), |
---|
75 | 'opacity' : 0 |
---|
76 | }); |
---|
77 | f_r.attr('id', fieldset_id + '_reduced'); |
---|
78 | f_r.append(document.createElement('span')); |
---|
79 | l_r = f_r.children('span'); |
---|
80 | l_r.attr('id', fieldset_id + '_reduced_legend'); |
---|
81 | l_r.addClass('ef_legends'); |
---|
82 | l_r.addClass('ef_click_ok'); |
---|
83 | l_r.css({ |
---|
84 | 'font-weight' : l_m.css('font-weight'), |
---|
85 | 'font-style' : l_m.css('font-style'), |
---|
86 | 'letter-spacing' : l_m.css('letter-spacing'), |
---|
87 | 'padding-left' : f_m.css('border-left-width'), |
---|
88 | 'padding-right' : f_m.css('border-right-width'), |
---|
89 | 'text-align' : l_m.css('text-align'), |
---|
90 | 'color' : l_m.css('color'), |
---|
91 | 'font-family' : l_m.css('font-family'), |
---|
92 | 'font-size' : l_m.css('font-size'), |
---|
93 | 'border-top-width' : l_m.css('border-top-width'), |
---|
94 | 'border-bottom-width' : l_m.css('border-bottom-width'), |
---|
95 | 'border-left-width' : l_m.css('border-left-width'), |
---|
96 | 'border-right-width' : l_m.css('border-right-width'), |
---|
97 | 'border-top-color' : l_m.css('border-top-color'), |
---|
98 | 'border-bottom-color' : l_m.css('border-bottom-color'), |
---|
99 | 'border-left-color' : l_m.css('border-left-color'), |
---|
100 | 'border-right-color' : l_m.css('border-right-color'), |
---|
101 | 'border-top-style' : l_m.css('border-top-style'), |
---|
102 | 'border-bottom-style' : l_m.css('border-bottom-style'), |
---|
103 | 'border-left-style' : l_m.css('border-left-style'), |
---|
104 | 'border-right-style' : l_m.css('border-right-style') |
---|
105 | }); |
---|
106 | // 'outline' : l_m.css('outline'), // NOK with IE8 |
---|
107 | if (ef_plus_bullet_path == '') l_r.append( |
---|
108 | '<span style = "padding-left:' + l_m.css('padding-left') + ';">' + |
---|
109 | l_txt + '</' + 'span>' + ef_separator |
---|
110 | ); |
---|
111 | else l_r.append( |
---|
112 | '<img alt = "" title = "" src = "' + ef_plus_bullet_path + '" ' + |
---|
113 | 'style = "padding-left:' + l_m.css('padding-left') + ';"' + |
---|
114 | '> ' + l_txt + ef_separator |
---|
115 | ); |
---|
116 | l_r.after(document.createElement('span')); |
---|
117 | l_r.next().attr('id', cache_id); |
---|
118 | jQuery('.ef_legends').css('cursor', 'pointer'); |
---|
119 | l_m.bind('ef_reduce_private', function(event, fast){ // Reduce |
---|
120 | if (l_m.is('.ef_command, .ef_click_ok')) { |
---|
121 | if (fast) { |
---|
122 | f_m.hide(); |
---|
123 | f_r.show(); |
---|
124 | f_r.css('opacity', 1); |
---|
125 | f_m.find('*').not('.ef_legends, img').css('opacity', 0); |
---|
126 | } |
---|
127 | else { |
---|
128 | f_m.find('*').not('.ef_legends, img').animate( |
---|
129 | { 'opacity' : 0 }, |
---|
130 | 200, |
---|
131 | function(){ |
---|
132 | f_m.slideUp(400); |
---|
133 | f_r.slideDown(400, function(){ |
---|
134 | f_r.css('opacity', 1); |
---|
135 | }); |
---|
136 | } |
---|
137 | ); |
---|
138 | } |
---|
139 | } |
---|
140 | }); |
---|
141 | l_r.bind('ef_maximize_private', function(event, fast){ // Maximize |
---|
142 | if (l_r.is('.ef_command, .ef_click_ok')) { |
---|
143 | if (fast) { |
---|
144 | f_r.hide(); |
---|
145 | f_m.show(); |
---|
146 | f_m.find('*').not('.ef_legends, img').css('opacity', 1); |
---|
147 | } |
---|
148 | else { |
---|
149 | f_r.css('opacity', 0); |
---|
150 | f_r.slideUp(400); |
---|
151 | f_m.slideDown(400, function(){ |
---|
152 | f_m.find('*').not('.ef_legends, img').animate( |
---|
153 | { 'opacity' : 1 }, |
---|
154 | 200 |
---|
155 | ); |
---|
156 | }); |
---|
157 | } |
---|
158 | } |
---|
159 | }); |
---|
160 | l_m.click(function(){ // Reduce |
---|
161 | l_m.trigger('ef_reduce_private', ef_animate_fast); |
---|
162 | }); |
---|
163 | l_r.click(function(){ // Maximize |
---|
164 | l_r.trigger('ef_maximize_private', ef_animate_fast); |
---|
165 | }); |
---|
166 | }); |
---|
167 | } |
---|
168 | </script> |
---|
169 | {/literal} |
---|