1 | |
---|
2 | {* <!-- Smart 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 sf_animate_fast = false; |
---|
11 | var sf_plus_bullet_path = ''; |
---|
12 | var sf_minus_bullet_path = ''; |
---|
13 | |
---|
14 | function sf_reduce(fieldset_id, fast) { |
---|
15 | var l_m = jQuery('#' + fieldset_id + ' legend'); |
---|
16 | if (sf_reduce.arguments.length < 2) fast = sf_animate_fast; |
---|
17 | if (!l_m.is('.sf_command')) l_m.addClass('sf_command'); |
---|
18 | if (!jQuery('#' + fieldset_id).is(':hidden')) |
---|
19 | l_m.trigger('sf_reduce_private', fast); |
---|
20 | l_m.removeClass('sf_command'); |
---|
21 | } |
---|
22 | |
---|
23 | function sf_maximize(fieldset_id, fast) { |
---|
24 | var l_r = jQuery('#' + fieldset_id + '_reduced_legend'); |
---|
25 | if (sf_maximize.arguments.length < 2) fast = sf_animate_fast; |
---|
26 | if (!l_r.is('.sf_command')) l_r.addClass('sf_command'); |
---|
27 | if (jQuery('#' + fieldset_id).is(':hidden')) |
---|
28 | l_r.trigger('sf_maximize_private', fast); |
---|
29 | l_r.removeClass('sf_command'); |
---|
30 | } |
---|
31 | |
---|
32 | function sf_lock(fieldset_id, locked) { |
---|
33 | var l_m = jQuery('#' + fieldset_id + ' legend'); |
---|
34 | var l_r = jQuery('#' + fieldset_id + '_reduced_legend'); |
---|
35 | if (locked) { |
---|
36 | l_r.css('cursor', 'auto'); |
---|
37 | l_r.removeClass('sf_click_ok'); |
---|
38 | l_m.css('cursor', 'auto'); |
---|
39 | l_m.removeClass('sf_click_ok'); |
---|
40 | } |
---|
41 | else { |
---|
42 | l_r.css('cursor', 'pointer'); |
---|
43 | if (!l_r.is('.sf_click_ok')) l_r.addClass('sf_click_ok'); |
---|
44 | l_m.css('cursor', 'pointer'); |
---|
45 | if (!l_m.is('.sf_click_ok')) l_m.addClass('sf_click_ok'); |
---|
46 | } |
---|
47 | } |
---|
48 | |
---|
49 | function sf_init(fieldset_id, cache_id) { |
---|
50 | jQuery(document).ready(function(){ |
---|
51 | var f_m = jQuery('#' + fieldset_id); |
---|
52 | var l_m = jQuery('#' + fieldset_id + ' legend'); |
---|
53 | var l_txt = l_m.text(); |
---|
54 | var f_r = f_m; |
---|
55 | var l_r = l_m; |
---|
56 | if (sf_minus_bullet_path != '') l_m.prepend( |
---|
57 | '<img alt = "" title = ""' + |
---|
58 | 'src = "' + sf_minus_bullet_path + '"' + '> ' |
---|
59 | ); |
---|
60 | l_m.addClass('sf_legends'); |
---|
61 | l_m.addClass('sf_click_ok'); |
---|
62 | f_m.before(document.createElement('div')); |
---|
63 | f_r = f_m.prev(); |
---|
64 | f_r.css({ |
---|
65 | 'display' : 'none', |
---|
66 | 'padding-left' : f_m.css('padding-left'), |
---|
67 | 'padding-right' : f_m.css('padding-right'), |
---|
68 | 'margin-left' : f_m.css('margin-left'), |
---|
69 | 'margin-top' : f_m.css('margin-top'), |
---|
70 | 'margin-right' : f_m.css('margin-right'), |
---|
71 | 'margin-bottom' : f_m.css('margin-bottom'), |
---|
72 | 'line-height' : f_m.css('line-height'), |
---|
73 | 'vertical-align' : f_m.css('vertical-align'), |
---|
74 | }); |
---|
75 | f_r.attr('id', fieldset_id + '_reduced'); |
---|
76 | f_r.append(document.createElement('span')); |
---|
77 | l_r = f_r.children('span'); |
---|
78 | l_r.attr('id', fieldset_id + '_reduced_legend'); |
---|
79 | l_r.addClass('sf_legends'); |
---|
80 | l_r.addClass('sf_click_ok'); |
---|
81 | l_r.css({ |
---|
82 | 'font-weight' : l_m.css('font-weight'), |
---|
83 | 'font-style' : l_m.css('font-style'), |
---|
84 | 'letter-spacing' : l_m.css('letter-spacing'), |
---|
85 | 'padding-left' : f_m.css('border-left-width'), |
---|
86 | 'padding-right' : f_m.css('border-right-width'), |
---|
87 | 'text-align' : l_m.css('text-align'), |
---|
88 | 'outline' : l_m.css('outline'), |
---|
89 | 'color' : l_m.css('color'), |
---|
90 | 'font-family' : l_m.css('font-family'), |
---|
91 | 'font-size' : l_m.css('font-size'), |
---|
92 | 'border-top-width' : l_m.css('border-top-width'), |
---|
93 | 'border-bottom-width' : l_m.css('border-bottom-width'), |
---|
94 | 'border-left-width' : l_m.css('border-left-width'), |
---|
95 | 'border-right-width' : l_m.css('border-right-width'), |
---|
96 | 'border-top-color' : l_m.css('border-top-color'), |
---|
97 | 'border-bottom-color' : l_m.css('border-bottom-color'), |
---|
98 | 'border-left-color' : l_m.css('border-left-color'), |
---|
99 | 'border-right-color' : l_m.css('border-right-color'), |
---|
100 | 'border-top-style' : l_m.css('border-top-style'), |
---|
101 | 'border-bottom-style' : l_m.css('border-bottom-style'), |
---|
102 | 'border-left-style' : l_m.css('border-left-style'), |
---|
103 | 'border-right-style' : l_m.css('border-right-style'), |
---|
104 | }); |
---|
105 | if (sf_plus_bullet_path == '') l_r.append( |
---|
106 | '<span style = "padding-left:' + l_m.css('padding-left') + ';">' + |
---|
107 | l_txt + '</' + 'span> : ' |
---|
108 | ); |
---|
109 | else l_r.append( |
---|
110 | '<img alt = "" title = "" src = "' + sf_plus_bullet_path + '" ' + |
---|
111 | 'style = "padding-left:' + l_m.css('padding-left') + ';"' + |
---|
112 | '> ' + l_txt + ' : ' |
---|
113 | ); |
---|
114 | l_r.after(document.createElement('span')); |
---|
115 | l_r.next().attr('id', cache_id); |
---|
116 | jQuery('.sf_legends').css('cursor', 'pointer'); |
---|
117 | l_m.bind('sf_reduce_private', function(event, fast){ // Reduce |
---|
118 | if (l_m.is('.sf_command, .sf_click_ok')) { |
---|
119 | if (fast) { |
---|
120 | f_m.hide(); |
---|
121 | f_r.show(); |
---|
122 | } |
---|
123 | else { |
---|
124 | f_m.find('*').not('.sf_legends, img').animate( |
---|
125 | { 'opacity' : 0 }, |
---|
126 | 200, |
---|
127 | function(){ |
---|
128 | f_m.slideUp(400, function(){ |
---|
129 | f_r.show(); |
---|
130 | }); |
---|
131 | } |
---|
132 | ); |
---|
133 | } |
---|
134 | } |
---|
135 | }); |
---|
136 | l_r.bind('sf_maximize_private', function(event, fast){ // Maximize |
---|
137 | if (l_r.is('.sf_command, .sf_click_ok')) { |
---|
138 | if (fast) { |
---|
139 | f_m.find('*').not('.sf_legends, img').css('opacity', 1); |
---|
140 | f_r.hide(); |
---|
141 | f_m.show(); |
---|
142 | } |
---|
143 | else { |
---|
144 | f_r.hide(); |
---|
145 | f_m.slideDown(400, function(){ |
---|
146 | f_m.find('*').not('.sf_legends, img').animate( |
---|
147 | { 'opacity' : 1 }, |
---|
148 | 200 |
---|
149 | ); |
---|
150 | }); |
---|
151 | } |
---|
152 | } |
---|
153 | }); |
---|
154 | l_m.click(function(){ // Reduce |
---|
155 | l_m.trigger('sf_reduce_private', sf_animate_fast); |
---|
156 | }); |
---|
157 | l_r.click(function(){ // Maximize |
---|
158 | l_r.trigger('sf_maximize_private', sf_animate_fast); |
---|
159 | }); |
---|
160 | }); |
---|
161 | } |
---|
162 | </script> |
---|
163 | {/literal} |
---|