Collapse-O-Matic - Version 1.5

Version Description

  • completely re-wrote plugin
  • added sweet-sweet options page
  • added colomat-expand-only class that forces collapse element to only open once and stay open
  • introduced Collapse-Pro-Matic for Premium Level Collapsing Action.
  • added scroll-to-trigger class for Internal Collapse Triggers
  • added livequery to bind collapse functions to dynamically added content
  • added callbacks: collapse_init(); and findme(); for dynamically added content
  • added language files for localization
Download this release

Release Info

Developer baden03
Plugin Icon 128x128 Collapse-O-Matic
Version 1.5
Comparing to
See all releases

Code changes from version 1.4.9 to 1.5

collapse-o-matic.php CHANGED
@@ -1,162 +1,428 @@
1
  <?php
2
  /*
3
  Plugin Name: jQuery Collapse-O-Matic
 
 
4
  Plugin URI: http://plugins.twinpictures.de/plugins/collapse-o-matic/
5
  Description: Collapse-O-Matic adds an [expand] shortcode that wraps content into a lovely, jQuery collapsible div.
6
- Version: 1.4.9
7
  Author: twinpictures, baden03
8
  Author URI: http://twinpictures.de/
9
  License: GPL2
10
-
11
  */
12
 
13
- /* Copyright 2012 Twinpictures (www.twinpictures.de)
14
-
15
- This program is free software; you can redistribute it and/or modify
16
- it under the terms of the GNU General Public License, version 2, as
17
- published by the Free Software Foundation.
 
18
 
19
- This program is distributed in the hope that it will be useful,
20
- but WITHOUT ANY WARRANTY; without even the implied warranty of
21
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22
- GNU General Public License for more details.
 
23
 
24
- You should have received a copy of the GNU General Public License
25
- along with this program; if not, write to the Free Software
26
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
27
- */
 
 
 
 
 
 
 
28
 
29
- function collapsTronicInit() {
30
- wp_enqueue_script('jquery');
31
- if (!is_admin()){
32
- //collapse script
33
- wp_register_script('collapseomatic-js', plugins_url('/collapse.min.js', __FILE__), array('jquery'), '1.4.9');
34
- //wp_register_script('collapseomatic-js', plugins_url('/collapse.js', __FILE__), array('jquery'), '1.4.9');
35
- wp_enqueue_script('collapseomatic-js');
 
 
36
 
37
- //css
38
- wp_register_style( 'collapseomatic-css', plugins_url('/style.css', __FILE__) , array (), '1.5.2' );
39
- wp_enqueue_style( 'collapseomatic-css' );
 
 
40
  }
41
-
42
- add_shortcode('expand', 'collapsTronic');
43
-
44
- for ($i=1; $i<30; $i++) {
45
- add_shortcode('expandsub'.$i, 'collapsTronic');
46
- }
47
-
48
- //add the filter to the sidebar widgets
49
- add_filter('widget_text', 'do_shortcode');
50
- }
51
- add_action('init', 'collapsTronicInit');
52
-
53
-
54
- function collapsTronic($atts, $content = null){
55
- //find a random number, incase there is no id assigned
56
- $ran = rand(1, 10000);
57
- extract(shortcode_atts(array(
58
- 'title' => '',
59
- 'swaptitle' => '',
60
- 'alt' => '',
61
- 'notitle' => '',
62
- 'id' => 'id'.$ran,
63
- 'tag' => 'span',
64
- 'trigclass' => '',
65
- 'targclass' => '',
66
- 'trigpos' => 'above',
67
- 'rel' => '',
68
- 'expanded' => '',
69
- 'excerpt' => '',
70
- 'excerptpos' => 'below-trigger',
71
- 'excerpttag' => 'div',
72
- 'excerptclass' => '',
73
- 'findme' => '',
74
- 'scrollonclose' => '',
75
- 'startwrap' => '',
76
- 'endwrap' => ''
77
- ), $atts));
78
- if($excerpt){
79
- if($excerptpos == 'above-trigger'){
80
- $nibble = '<'.$excerpttag.' class="'.$excerptclass.'">'.$excerpt.'</'.$excerpttag.'>';
81
- }
82
- else{
83
- $nibble = '<'.$excerpttag.' class="collapseomatic_excerpt '.$excerptclass.'">'.$excerpt.'</'.$excerpttag.'>';
84
  }
85
 
 
 
 
 
 
 
 
 
 
 
 
 
 
86
  }
87
- $altatt = '';
88
- if($alt){
89
- $altatt = 'alt="'.$alt.'" title="'.$alt.'"';
90
- }
91
- else if( !$notitle ){
92
- $altatt = 'title="'.$title.'"';
93
- }
94
- $relatt = '';
95
- if($rel){
96
- $relatt = 'rel="'.$rel.'"';
97
- }
98
- if($expanded){
99
- $trigclass .= ' colomat-close';
100
- }
101
- $anchor = '';
102
- if($findme){
103
- $trigclass .= ' find-me';
104
- $offset = '';
105
- if($findme != 'true' && $findme != 'auto'){
106
- $offset = $findme;
107
- }
108
- $anchor = '<a id="find-'.$id.'" name="'.$offset.'"> </a>';
109
  }
110
- $closeanchor = '';
111
- if($scrollonclose && (is_numeric($scrollonclose) || $scrollonclose == 0)){
112
- $trigclass .= ' scroll-to-trigger';
113
- $closeanchor = '<a id="scrollonclose-'.$id.'" name="'.$scrollonclose.'"> </a>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
114
  }
115
- $link = $closeanchor.$anchor.'<'.$tag.' class="collapseomatic '.$trigclass.'" id="'.$id.'" '.$relatt.' '.$altatt.'>'.$startwrap.$title.$endwrap.'</'.$tag.'>';
116
- if($swaptitle){
117
- $link .= "<".$tag." id='swap-".$id."' style='display:none;'>".$startwrap.$swaptitle.$endwrap."</".$tag.">";
 
 
 
 
 
 
118
  }
119
 
120
- $eDiv = '';
121
- if($content){
122
- $eDiv = '<div id="target-'.$id.'" class="collapseomatic_content '.$targclass.'">'.do_shortcode($content).'</div>';
 
 
 
123
  }
124
 
125
- if($excerpt){
126
- if($excerptpos == 'above-trigger'){
127
- if($trigpos == 'below'){
128
- $retStr = $eDiv.$nibble.$link;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
129
  }
130
  else{
131
- $retStr = $nibble.$link.$eDiv;
132
  }
 
133
  }
134
- else if($excerptpos == 'below-trigger'){
135
- if($trigpos == 'below'){
136
- $retStr = $eDiv.$link.$nibble;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
137
  }
138
  else{
139
- $retStr = $link.$nibble.$eDiv;
 
 
 
 
 
140
  }
141
  }
142
  else{
143
  if($trigpos == 'below'){
144
- $retStr = $eDiv.$link.$nibble;
145
  }
146
  else{
147
- $retStr = $link.$eDiv.$nibble;
148
  }
149
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
150
  }
151
- else{
152
- if($trigpos == 'below'){
153
- $retStr = $eDiv.$link;
 
 
 
 
 
 
 
 
154
  }
155
- else{
156
- $retStr = $link.$eDiv;
 
 
 
 
157
  }
158
  }
159
- //return '<span class="removeomatic">'.$retStr.'</span>';
160
- return $retStr;
161
- }
162
- ?>
 
 
 
 
 
 
1
  <?php
2
  /*
3
  Plugin Name: jQuery Collapse-O-Matic
4
+ Text Domain: colomat
5
+ Domain Path: /languages
6
  Plugin URI: http://plugins.twinpictures.de/plugins/collapse-o-matic/
7
  Description: Collapse-O-Matic adds an [expand] shortcode that wraps content into a lovely, jQuery collapsible div.
8
+ Version: 1.5
9
  Author: twinpictures, baden03
10
  Author URI: http://twinpictures.de/
11
  License: GPL2
 
12
  */
13
 
14
+ /**
15
+ * Class WP_Collapse_O_Matic
16
+ * @package WP_Collapse_O_Matic
17
+ * @category WordPress Plugins
18
+ */
19
+ class WP_Collapse_O_Matic {
20
 
21
+ /**
22
+ * Current version
23
+ * @var string
24
+ */
25
+ var $version = '1.5';
26
 
27
+ /**
28
+ * Used as prefix for options entry
29
+ * @var string
30
+ */
31
+ var $domain = 'colomat';
32
+
33
+ /**
34
+ * Name of the options
35
+ * @var string
36
+ */
37
+ var $options_name = 'WP_Collapse_O_Matic_options';
38
 
39
+ /**
40
+ * @var array
41
+ */
42
+ var $options = array(
43
+ 'style' => 'light',
44
+ 'tag' => 'span',
45
+ 'duration' => 'fast',
46
+ 'slideEffect' => 'slideFade'
47
+ );
48
 
49
+ /**
50
+ * PHP4 constructor
51
+ */
52
+ function WP_Collapse_O_Matic() {
53
+ $this->__construct();
54
  }
55
+
56
+ /**
57
+ * PHP5 constructor
58
+ */
59
+ function __construct() {
60
+ // set option values
61
+ $this->_set_options();
62
+
63
+ // load text domain for translations
64
+ load_plugin_textdomain( 'colomat', FALSE, dirname( plugin_basename( __FILE__ ) ) . '/lang/' );
65
+
66
+ // set uninstall hook
67
+ if ( function_exists( 'register_deactivation_hook' ) )
68
+ register_deactivation_hook( __FILE__, array( $this, 'deactivation' ));
69
+
70
+ //load the script and style if not viwing the dashboard
71
+ if (!is_admin()){
72
+ add_action('init', array( $this, 'collapsTronicInit' ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
73
  }
74
 
75
+ // add actions
76
+ add_action( 'admin_menu', array( $this, 'admin_menu' ) );
77
+ add_action( 'admin_init', array( $this, 'admin_init' ) );
78
+ add_action('wp_head', array( $this, 'colomat_js_vars' ) );
79
+
80
+ add_shortcode('expand', array($this, 'shortcode'));
81
+
82
+ //add expandsub shortcodes
83
+ for ($i=1; $i<30; $i++) {
84
+ add_shortcode('expandsub'.$i, array($this, 'shortcode'));
85
+ }
86
+ // Add shortcode support for widgets
87
+ add_filter('widget_text', 'do_shortcode');
88
  }
89
+
90
+ //global javascript vars
91
+ function colomat_js_vars(){
92
+ echo "<script type='text/javascript'>\n";
93
+ echo "var colomatduration = '".$this->options['duration']."';\n";
94
+ echo "var colomatslideEffect = '".$this->options['slideEffect']."';\n";
95
+ echo "</script>";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96
  }
97
+
98
+ /**
99
+ * Callback init
100
+ */
101
+ function collapsTronicInit() {
102
+ //load up jQuery the Jedi way
103
+ wp_enqueue_script('jquery');
104
+
105
+ //collapse script
106
+ wp_register_script('collapseomatic-js', plugins_url('js/collapse.min.js', __FILE__), array('jquery'), '1.5');
107
+ //wp_register_script('collapseomatic-js', plugins_url('js/collapse.js', __FILE__), array('jquery'), '1.5');
108
+ wp_enqueue_script('collapseomatic-js');
109
+
110
+ //livequery
111
+ wp_register_script('livequery-script', plugins_url('js/jquery.livequery.min.js', __FILE__), array('jquery'), '1.0');
112
+ wp_enqueue_script('livequery-script');
113
+
114
+ //css
115
+ wp_register_style( 'collapseomatic-css', plugins_url('/'.$this->options['style'].'_style.css', __FILE__) , array (), '1.5.2' );
116
+ wp_enqueue_style( 'collapseomatic-css' );
117
  }
118
+
119
+ /**
120
+ * Callback admin_menu
121
+ */
122
+ function admin_menu() {
123
+ if ( function_exists( 'add_options_page' ) AND current_user_can( 'manage_options' ) ) {
124
+ // add options page
125
+ $page = add_options_page('Collapse-O-Matic Options', 'Collapse-O-Matic', 'manage_options', 'collapse-o-matic-options', array( $this, 'options_page' ));
126
+ }
127
  }
128
 
129
+ /**
130
+ * Callback admin_init
131
+ */
132
+ function admin_init() {
133
+ // register settings
134
+ register_setting( $this->domain, $this->options_name );
135
  }
136
 
137
+ /**
138
+ * Callback shortcode
139
+ */
140
+ function shortcode($atts, $content = null){
141
+ //find a random number, if no id is assigned
142
+ $options = $this->options;
143
+ $ran = rand(1, 10000);
144
+ extract(shortcode_atts(array(
145
+ 'title' => '',
146
+ 'swaptitle' => '',
147
+ 'alt' => '',
148
+ 'notitle' => '',
149
+ 'id' => 'id'.$ran,
150
+ 'tag' => $options['tag'],
151
+ 'trigclass' => '',
152
+ 'targclass' => '',
153
+ 'trigpos' => 'above',
154
+ 'rel' => '',
155
+ 'expanded' => '',
156
+ 'excerpt' => '',
157
+ 'excerptpos' => 'below-trigger',
158
+ 'excerpttag' => 'div',
159
+ 'excerptclass' => '',
160
+ 'findme' => '',
161
+ 'scrollonclose' => '',
162
+ 'startwrap' => '',
163
+ 'endwrap' => '',
164
+ 'elwraptag' => '',
165
+ 'elwrapclass' => ''
166
+ ), $atts));
167
+
168
+ $ewo = '';
169
+ $ewc = '';
170
+ if($elwraptag){
171
+ $ewclass = '';
172
+ if($elwrapclass){
173
+ $ewclass = 'class="'.$elwrapclass.'"';
174
+ }
175
+ $ewo = '<'.$elwraptag.' '.$ewclass.'>';
176
+ $ewc = '</'.$elwraptag.'>';
177
+ }
178
+ if($excerpt){
179
+ if($excerptpos == 'above-trigger'){
180
+ $nibble = '<'.$excerpttag.' class="'.$excerptclass.'">'.$excerpt.'</'.$excerpttag.'>';
181
  }
182
  else{
183
+ $nibble = '<'.$excerpttag.' class="collapseomatic_excerpt '.$excerptclass.'">'.$excerpt.'</'.$excerpttag.'>';
184
  }
185
+
186
  }
187
+ $altatt = '';
188
+ if($alt){
189
+ $altatt = 'alt="'.$alt.'" title="'.$alt.'"';
190
+ }
191
+ else if( !$notitle ){
192
+ $altatt = 'title="'.$title.'"';
193
+ }
194
+ $relatt = '';
195
+ if($rel){
196
+ $relatt = 'rel="'.$rel.'"';
197
+ }
198
+ if($expanded){
199
+ $trigclass .= ' colomat-close';
200
+ }
201
+ $anchor = '';
202
+ if($findme){
203
+ $trigclass .= ' find-me';
204
+ $offset = '';
205
+ if($findme != 'true' && $findme != 'auto'){
206
+ $offset = $findme;
207
+ }
208
+ $anchor = '<a id="find-'.$id.'" name="'.$offset.'"> </a>';
209
+ }
210
+ $closeanchor = '';
211
+ if($scrollonclose && (is_numeric($scrollonclose) || $scrollonclose == 0)){
212
+ $trigclass .= ' scroll-to-trigger';
213
+ $closeanchor = '<a id="scrollonclose-'.$id.'" name="'.$scrollonclose.'"> </a>';
214
+ }
215
+ $link = $closeanchor.$anchor.'<'.$tag.' class="collapseomatic '.$trigclass.'" id="'.$id.'" '.$relatt.' '.$altatt.'>'.$startwrap.$title.$endwrap.'</'.$tag.'>';
216
+ if($swaptitle){
217
+ $link .= "<".$tag." id='swap-".$id."' style='display:none;'>".$startwrap.$swaptitle.$endwrap."</".$tag.">";
218
+ }
219
+
220
+ $eDiv = '';
221
+ if($content){
222
+ $eDiv = '<div id="target-'.$id.'" class="collapseomatic_content '.$targclass.'">'.do_shortcode($content).'</div>';
223
+ }
224
+
225
+ if($excerpt){
226
+ if($excerptpos == 'above-trigger'){
227
+ if($trigpos == 'below'){
228
+ $retStr = $ewo.$eDiv.$nibble.$link.$ewc;
229
+ }
230
+ else{
231
+ $retStr = $ewo.$nibble.$link.$eDiv.$ewc;
232
+ }
233
+ }
234
+ else if($excerptpos == 'below-trigger'){
235
+ if($trigpos == 'below'){
236
+ $retStr = $ewo.$eDiv.$link.$nibble.$ewc;
237
+ }
238
+ else{
239
+ $retStr = $ewo.$link.$nibble.$eDiv.$ewc;
240
+ }
241
  }
242
  else{
243
+ if($trigpos == 'below'){
244
+ $retStr = $ewo.$eDiv.$link.$nibble.$ewc;
245
+ }
246
+ else{
247
+ $retStr = $ewo.$link.$eDiv.$nibble.$ewc;
248
+ }
249
  }
250
  }
251
  else{
252
  if($trigpos == 'below'){
253
+ $retStr = $ewo.$eDiv.$link.$ewc;
254
  }
255
  else{
256
+ $retStr = $ewo.$link.$eDiv.$ewc;
257
  }
258
  }
259
+ return $retStr;
260
+ }
261
+
262
+ /**
263
+ * Admin options page
264
+ */
265
+ function options_page() {
266
+ ?>
267
+ <div class="wrap">
268
+ <div class="icon32" id="icon-options-custom" style="background:url( <?php echo plugins_url( 'images/collapse-o-matic-icon.png', __FILE__ ) ?> ) no-repeat 50% 50%"><br></div>
269
+ <h2>Collapse-O-Matic</h2>
270
+ </div>
271
+
272
+ <div class="postbox-container metabox-holder meta-box-sortables" style="width: 69%">
273
+ <div style="margin:0 5px;">
274
+ <div class="postbox">
275
+ <div class="handlediv" title="<?php _e( 'Click to toggle', 'colomat' ) ?>"><br/></div>
276
+ <h3 class="hndle"><?php _e( 'Default Collapse-O-Matic Settings', 'colomat' ) ?></h3>
277
+ <div class="inside">
278
+ <form method="post" action="options.php">
279
+ <?php
280
+ settings_fields( $this->domain );
281
+ $this->_set_options();
282
+ $options = $this->options;
283
+ ?>
284
+ <fieldset class="options">
285
+ <table class="form-table">
286
+ <tr>
287
+ <th><?php _e( 'Style', 'colomat' ) ?>:</th>
288
+ <td><label><select id="<?php echo $this->options_name ?>[style]" name="<?php echo $this->options_name ?>[style]">
289
+ <?php
290
+ if(empty($options['style'])){
291
+ $options['style'] = 'light';
292
+ }
293
+ $st_array = array(
294
+ __('Light', 'colomat') => 'light',
295
+ __('Dark', 'colomat') => 'dark'
296
+ );
297
+ foreach( $st_array as $key => $value){
298
+ $selected = '';
299
+ if($options['style'] == $value){
300
+ $selected = 'SELECTED';
301
+ }
302
+ echo '<option value="'.$value.'" '.$selected.'>'.$key.'</option>';
303
+ }
304
+ ?>
305
+ </select>
306
+ <br /><span class="description"><?php _e('Select Light for sites with lighter backgroudns. Select Dark for sites with darker backgrounds.', 'colomat'); ?></span></label>
307
+ </td>
308
+ </tr>
309
+
310
+ <tr>
311
+ <th><?php _e( 'Tag Attribute', 'colomat' ) ?>:</th>
312
+ <td><label><input type="text" id="<?php echo $this->options_name ?>[tag]" name="<?php echo $this->options_name ?>[tag]" value="<?php echo $options['tag']; ?>" />
313
+ <br /><span class="description"><?php printf(__('HTML tag use to wrap the trigger text. See %sTag Attribute%s in the documentation for more info.', 'colomat'), '<a href="http://plugins.twinpictures.de/plugins/collapse-o-matic/documentation/#tag" target="_blank">', '</a>'); ?></span></label>
314
+ </td>
315
+ </tr>
316
+
317
+ <tr>
318
+ <?php
319
+ if(empty($options['duration'])){
320
+ $options['duration'] = 'fast';
321
+ }
322
+ ?>
323
+ <th><?php _e( 'Collapse/Expand Duration', 'colomat' ) ?>:</th>
324
+ <td><label><input type="text" id="<?php echo $this->options_name ?>[duration]" name="<?php echo $this->options_name ?>[duration]" value="<?php echo $options['duration']; ?>" />
325
+ <br /><span class="description"><?php printf(__('A string or number determining how long the animation will run. See %sDuration%s in the documentation for more info.', 'colomat'), '<a href="http://plugins.twinpictures.de/plugins/collapse-o-matic/documentation/#duration" target="_blank">', '</a>'); ?></span></label>
326
+ </td>
327
+ </tr>
328
+
329
+ <tr>
330
+ <th><?php _e( 'Animation Effect', 'colomat' ) ?>:</th>
331
+ <td><label><select id="<?php echo $this->options_name ?>[slideEffect]" name="<?php echo $this->options_name ?>[slideEffect]">
332
+ <?php
333
+ if(empty($options['slideEffect'])){
334
+ $options['slideEffect'] = 'slideFade';
335
+ }
336
+ $se_array = array(
337
+ __('Slide Only', 'colomat') => 'slideToggle',
338
+ __('Slide & Fade', 'colomat') => 'slideFade'
339
+ );
340
+ foreach( $se_array as $key => $value){
341
+ $selected = '';
342
+ if($options['slideEffect'] == $value){
343
+ $selected = 'SELECTED';
344
+ }
345
+ echo '<option value="'.$value.'" '.$selected.'>'.$key.'</option>';
346
+ }
347
+ ?>
348
+ </select>
349
+ <br /><span class="description"><?php printf(__('Animation effect to use while collapsing and expanding. See %sAnimation Effect%s in the documentation for more info.', 'colomat'), '<a href="http://plugins.twinpictures.de/plugins/collapse-o-matic/documentation/#animation-effect" target="_blank">', '</a>'); ?></span></label>
350
+ </td>
351
+ </tr>
352
+
353
+ <tr>
354
+ <th><strong><?php _e( 'Level Up!', 'colomat' ) ?></strong></th>
355
+ <td><?php _e( '<em>Comming Soon: Collapse-Pro-Matic</em> our preimum plugin that offers additional attributes and the ability to set default attribute settings for all attributes.', 'colomat' ) ?>
356
+ </td>
357
+ </tr>
358
+ </table>
359
+ </fieldset>
360
+
361
+ <p class="submit">
362
+ <input class="button-primary" type="submit" value="<?php _e( 'Save Changes' ) ?>" />
363
+ </p>
364
+ </form>
365
+ </div>
366
+ </div>
367
+ </div>
368
+ </div>
369
+
370
+ <div class="postbox-container side metabox-holder meta-box-sortables" style="width:29%;">
371
+ <div style="margin:0 5px;">
372
+ <div class="postbox">
373
+ <div class="handlediv" title="<?php _e( 'Click to toggle', 'colomat' ) ?>"><br/></div>
374
+ <h3 class="hndle"><?php _e( 'About' ) ?></h3>
375
+ <div class="inside">
376
+ <h4><img src="<?php echo plugins_url( 'images/collapse-o-matic-icon.png', __FILE__ ) ?>" width="16" height="16"/> Collapse-O-Matic Version <?php echo $this->version; ?></h4>
377
+ <p><?php _e( 'Remove clutter, save space. Display and hide additional content in a SEO friendly way. Wrap any content&mdash;including other shortcodes&mdash;into a lovely jQuery expanding and collapsing element.', 'colomat') ?></p>
378
+ <ul>
379
+ <li><?php printf( __( '%sDetailed documentation%s, complete with working demonstrations of all shortcode attributes, is available for your instructional enjoyment.', 'colomat'), '<a href="http://plugins.twinpictures.de/plugins/collapse-o-matic/documentation/" target="_blank">', '</a>'); ?></li>
380
+ <li><?php printf( __( '%sFree%s & %sPremimum%s Support', 'colomat'), '<a href="http://wordpress.org/support/plugin/jquery-collapse-o-matic" target="_blank">', '</a>', '<a href="http://plugins.twinpictures.de/products-page/support/collapse-o-matic-premium-support/" target="_blank">', '</a>'); ?></li>
381
+ <li><?php printf( __('If you like this plugin, please consider %sreviewing it at WordPress.org%s to help others.', 'colomat'), '<a href="http://wordpress.org/support/view/plugin-reviews/jquery-collapse-o-matic" target="_blank">', '</a>' ) ?></li>
382
+ <li><a href="http://wordpress.org/extend/plugins/jquery-collapse-o-matic/" target="_blank">WordPress.org</a> | <a href="http://plugins.twinpictures.de/plugins/collapse-o-matic/" target="_blank">Twinpictues Plugin Oven</a></li>
383
+ </ul>
384
+ </div>
385
+ </div>
386
+ </div>
387
+ <div class="clear"></div>
388
+ </div>
389
+ <?php
390
+ }
391
+
392
+ /**
393
+ * Deactivation plugin method
394
+ */
395
+ function deactivation() {
396
+ delete_option( $this->options_name );
397
+ unregister_setting( $this->domain, $this->options_name );
398
  }
399
+
400
+ /**
401
+ * Set options from save values or defaults
402
+ */
403
+ function _set_options() {
404
+ // set options
405
+ $saved_options = get_option( $this->options_name );
406
+
407
+ // backwards compatible (old values)
408
+ if ( empty( $saved_options ) ) {
409
+ $saved_options = get_option( $this->domain . 'options' );
410
  }
411
+
412
+ // set all options
413
+ if ( ! empty( $saved_options ) ) {
414
+ foreach ( $this->options AS $key => $option ) {
415
+ $this->options[ $key ] = ( empty( $saved_options[ $key ] ) ) ? '' : $saved_options[ $key ];
416
+ }
417
  }
418
  }
419
+
420
+ } // end class WP_Collapse_O_Matic
421
+
422
+
423
+ /**
424
+ * Create instance
425
+ */
426
+ $WP_Collapse_O_Matic = new WP_Collapse_O_Matic;
427
+
428
+ ?>
collapse.min.js DELETED
@@ -1 +0,0 @@
1
- var duration='fast';var slideEffect='slideFade';jQuery(document).ready(function(){jQuery('.force_content_collapse').each(function(index){jQuery(this).css('display','none')});jQuery('.collapseomatic:not(.colomat-close)').each(function(index){var thisid=jQuery(this).attr('id');jQuery('#target-'+thisid).css('display','none')});jQuery('.collapseomatic.colomat-close').each(function(index){var thisid=jQuery(this).attr('id');if(jQuery("#swap-"+thisid).length>0){swapTitle(this,thisid)}});jQuery('.find-me').each(function(index){var thisid=jQuery(this).attr('id');if(!jQuery('#find-'+thisid).attr('name')){var target_offset=jQuery(this).offset();var target_top_offset=target_offset.top;jQuery('#find-'+thisid).attr('name',target_top_offset)}});jQuery('.content_collapse_wrapper').each(function(index){jQuery(this).css('display','inline')});jQuery('.collapseomatic').hover(function(){jQuery(this).addClass("colomat-hover")},function(){jQuery(this).removeClass("colomat-hover")});jQuery('.collapseomatic').click(function(){var offest_top;if(jQuery(this).hasClass('colomat-expand-only')&&jQuery(this).hasClass('colomat-close')){return}var id=jQuery(this).attr('id');if(jQuery(this).hasClass('colomat-close')&&jQuery(this).hasClass('scroll-to-trigger')){var offset_top=jQuery('#scrollonclose-'+id).attr('name')}if(id.indexOf('bot-')!='-1'){id=id.substr(4);jQuery('#'+id).toggleClass('colomat-close');if(jQuery(this).hasClass('scroll-to-trigger')){var offset_top=jQuery('#scrollonclose-'+id).attr('name')}}else{jQuery(this).toggleClass('colomat-close')}if(jQuery("#swap-"+id).length>0){swapTitle(this,id)}jQuery(this).addClass('colomat-visited');if(slideEffect=='slideToggle'){jQuery('#target-'+id).slideToggle(durration,function(){})}else if(slideEffect=='slideFade'){jQuery('#target-'+id).removeClass('maptastic');jQuery('#target-'+id).animate({height:"toggle",opacity:"toggle"},duration)}if(jQuery(this).attr('rel')!==undefined){var rel=jQuery(this).attr('rel');if(rel.indexOf('-highlander')!='-1'){closeOtherMembers(rel,id)}else{closeOtherGroups(rel)}}if(offset_top){jQuery('html, body').animate({scrollTop:offset_top},500)}});function swapTitle(obj,id){var orightml=jQuery(obj).html();var swaphtml=jQuery("#swap-"+id).html();jQuery(obj).html(swaphtml);jQuery("#swap-"+id).html(orightml);if(swaphtml.indexOf("<cufon")!=-1){var trigelem=jQuery(this).get(0).tagName;Cufon.replace(trigelem)}}function closeOtherGroups(rel){jQuery('.collapseomatic[rel!="'+rel+'"]').each(function(index){if(jQuery(this).hasClass('colomat-close')&&jQuery(this).attr('rel')!==undefined){jQuery(this).removeClass('colomat-close');var id=jQuery(this).attr('id');if(jQuery("#swap-"+id).length>0){swapTitle(this,id)}if(slideEffect=='slideToggle'){jQuery('#target-'+id).slideToggle(durration,function(){})}else if(slideEffect=='slideFade'){jQuery('#target-'+id).animate({height:"toggle",opacity:"toggle"},duration)}var ancestors=jQuery('.collapseomatic','#target-'+id);ancestors.each(function(index){jQuery(this).removeClass('colomat-close');var thisid=jQuery(this).attr('id');jQuery('#target-'+thisid).css('display','none')})}})}function closeOtherMembers(rel,id){jQuery('.collapseomatic[rel="'+rel+'"]').each(function(index){if(jQuery(this).attr('id')!=id&&jQuery(this).hasClass('colomat-close')&&jQuery(this).attr('rel')!==undefined){jQuery(this).removeClass('colomat-close');var thisid=jQuery(this).attr('id');if(jQuery("#swap-"+thisid).length>0){swapTitle(this,thisid)}if(slideEffect=='slideToggle'){jQuery('#target-'+thisid).slideToggle(durration,function(){})}else if(slideEffect=='slideFade'){jQuery('#target-'+thisid).animate({height:"toggle",opacity:"toggle"},duration)}var ancestors=jQuery('.collapseomatic','#target-'+id);ancestors.each(function(index){if(jQuery(this).attr('id').indexOf('bot-')=='-1'){jQuery(this).removeClass('colomat-close');var thisid=jQuery(this).attr('id');if(jQuery("#swap-"+thisid).length>0){swapTitle(this,thisid)}jQuery('#target-'+thisid).css('display','none')}})}})}jQuery('.expandall').click(function(){if(jQuery(this).attr('rel')!==undefined){var rel=jQuery(this).attr('rel');jQuery('.collapseomatic[rel="'+rel+'"].collapseomatic:not(.colomat-close)').each(function(index){jQuery(this).addClass('colomat-close');var thisid=jQuery(this).attr('id');if(jQuery("#swap-"+thisid).length>0){swapTitle(this,thisid)}if(slideEffect=='slideToggle'){jQuery('#target-'+thisid).slideToggle(durration,function(){})}else if(slideEffect=='slideFade'){jQuery('#target-'+thisid).animate({height:"toggle",opacity:"toggle"},duration)}})}else{jQuery('.collapseomatic:not(.colomat-close)').each(function(index){jQuery(this).addClass('colomat-close');var thisid=jQuery(this).attr('id');if(jQuery("#swap-"+thisid).length>0){swapTitle(this,thisid)}if(slideEffect=='slideToggle'){jQuery('#target-'+thisid).slideToggle(durration,function(){})}else if(slideEffect=='slideFade'){jQuery('#target-'+thisid).animate({height:"toggle",opacity:"toggle"},duration)}})}});jQuery('.collapseall').click(function(){if(jQuery(this).attr('rel')!==undefined){var rel=jQuery(this).attr('rel');jQuery('.collapseomatic[rel="'+rel+'"].collapseomatic.colomat-close').each(function(index){jQuery(this).removeClass('colomat-close');var thisid=jQuery(this).attr('id');if(jQuery("#swap-"+thisid).length>0){swapTitle(this,thisid)}if(slideEffect=='slideToggle'){jQuery('#target-'+thisid).slideToggle(durration,function(){})}else if(slideEffect=='slideFade'){jQuery('#target-'+thisid).animate({height:"toggle",opacity:"toggle"},duration)}})}else{jQuery('.collapseomatic.colomat-close').each(function(index){jQuery(this).removeClass('colomat-close');var thisid=jQuery(this).attr('id');if(jQuery("#swap-"+thisid).length>0){swapTitle(this,thisid)}if(slideEffect=='slideToggle'){jQuery('#target-'+thisid).slideToggle(durration,function(){})}else if(slideEffect=='slideFade'){jQuery('#target-'+thisid).animate({height:"toggle",opacity:"toggle"},duration)}})}});jQuery('.find-me').click(function(){var thisid=jQuery(this).attr('id');var offset_top=jQuery('#find-'+thisid).attr('name');jQuery('html, body').animate({scrollTop:offset_top},500)});var myFile=document.location.toString();if(myFile.match('#')){var anchor_arr=myFile.split('#');if(anchor_arr.length>1){junk=anchor_arr.splice(0,1);anchor=anchor_arr.join('#')}else{anchor=anchor_arr[0]}jQuery('#'+anchor).click();jQuery('#'+anchor).parents('.collapseomatic_content').each(function(index){parent_arr=jQuery(this).attr('id').split('-');junk=parent_arr.splice(0,1);parent=parent_arr.join('-');jQuery('#'+parent).click()})}jQuery('a.expandanchor').click(function(){event.preventDefault();var fullurl=jQuery(this).attr('href');if(fullurl.match('#')){var anchor_arr=fullurl.split('#');if(anchor_arr.length>1){junk=anchor_arr.splice(0,1);anchor=anchor_arr.join('#')}else{anchor=anchor_arr[0]}if(!jQuery('#'+anchor).hasClass('colomat-close')){jQuery('#'+anchor).click()}jQuery('#'+anchor).parents('.collapseomatic_content').each(function(index){parent_arr=jQuery(this).attr('id').split('-');junk=parent_arr.splice(0,1);parent=parent_arr.join('-');if(!jQuery('#'+parent).hasClass('colomat-close')){jQuery('#'+parent).click()}})}})});
 
style-dark.css → dark_style.css RENAMED
File without changes
collapse.js → js/collapse.js RENAMED
@@ -1,5 +1,5 @@
1
  /*!
2
- * jQuery Collapse-O-Matic v1.4.9
3
  * http://plugins.twinpictures.de/plugins/collapse-o-matic/
4
  *
5
  * Copyright 2012, Twinpictures
@@ -23,33 +23,142 @@
23
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24
  * THE SOFTWARE.
25
  */
26
-
27
- //expand/collapse speed
28
- var duration = 'fast';
29
- var slideEffect = 'slideFade';
30
-
31
- jQuery(document).ready(function() {
32
-
33
  //force collapse
34
- jQuery('.force_content_collapse').each(function(index) {
35
- jQuery(this).css('display', 'none');
36
- });
37
 
38
- //inital collapse
39
- jQuery('.collapseomatic:not(.colomat-close)').each(function(index) {
40
- var thisid = jQuery(this).attr('id');
41
- jQuery('#target-'+thisid).css('display', 'none');
42
- });
43
 
44
  //inital swaptitle for pre-expanded elements
45
- jQuery('.collapseomatic.colomat-close').each(function(index) {
46
- var thisid = jQuery(this).attr('id');
47
- if(jQuery("#swap-"+thisid).length > 0){
48
  swapTitle(this, thisid);
49
  }
50
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
51
 
52
- //initial position for find-me feature
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
  jQuery('.find-me').each(function(index) {
54
  var thisid = jQuery(this).attr('id');
55
  if( !jQuery('#find-'+thisid).attr('name') ){
@@ -58,24 +167,32 @@ jQuery(document).ready(function() {
58
  jQuery('#find-'+thisid).attr('name', target_top_offset);
59
  }
60
  });
 
 
 
 
 
61
 
62
  //Display the collapse wrapper... use to reverse the show-all on no JavaScript degredation.
63
  jQuery('.content_collapse_wrapper').each(function(index) {
64
  jQuery(this).css('display', 'inline');
65
  });
66
 
67
- //jQuery('.collapseomatic').on("hover", function(event){
68
- jQuery('.collapseomatic').hover(function () {
69
- jQuery(this).addClass("colomat-hover");
70
- },
71
- function () {
72
- jQuery(this).removeClass("colomat-hover");
73
- }
74
- );
 
 
75
 
76
 
77
  //jQuery('.collapseomatic').on("click", function(event){
78
- jQuery('.collapseomatic').click(function() {
 
79
  var offest_top;
80
 
81
  //alert('phones ringin dude');
@@ -83,45 +200,62 @@ jQuery(document).ready(function() {
83
  return;
84
  }
85
  var id = jQuery(this).attr('id');
 
86
 
87
  //deal with any scroll to links
88
  if(jQuery(this).hasClass('colomat-close') && jQuery(this).hasClass('scroll-to-trigger')){
89
- var offset_top = jQuery('#scrollonclose-'+id).attr('name');
90
  }
91
 
92
  if(id.indexOf('bot-') != '-1'){
93
  id = id.substr(4);
94
  jQuery('#'+id).toggleClass('colomat-close');
95
 
96
- //deal with any scroll to links
97
  if(jQuery(this).hasClass('scroll-to-trigger')){
98
- var offset_top = jQuery('#scrollonclose-'+id).attr('name');
 
 
 
 
 
 
99
  }
100
  }
101
  else{
102
  jQuery(this).toggleClass('colomat-close');
103
  }
 
104
  //check if the title needs to be swapped out
105
  if(jQuery("#swap-"+id).length > 0){
106
- swapTitle(this, id);
107
  }
108
 
109
  //add visited class
110
  jQuery(this).addClass('colomat-visited');
111
 
 
 
 
 
 
 
 
 
 
112
  //slideToggle
113
- if(slideEffect == 'slideToggle'){
114
- jQuery('#target-'+id).slideToggle(durration, function() {
115
  // Animation complete.
116
  });
117
  }
118
  //slideFade
119
- else if(slideEffect == 'slideFade'){
120
  jQuery('#target-'+id).removeClass('maptastic');
121
  jQuery('#target-'+id).animate({
122
  height: "toggle",
123
  opacity: "toggle"
124
- }, duration);
125
  }
126
 
127
  //deal with grouped items if needed
@@ -139,125 +273,31 @@ jQuery(document).ready(function() {
139
  jQuery('html, body').animate({scrollTop:offset_top}, 500);
140
  }
141
  });
142
-
143
- function swapTitle(obj, id){
144
- var orightml = jQuery(obj).html();
145
- var swaphtml = jQuery("#swap-"+id).html();
146
- jQuery(obj).html(swaphtml);
147
- jQuery("#swap-"+id).html(orightml);
148
-
149
- //is cufon involved? if so, do that thing
150
- if(swaphtml.indexOf("<cufon") != -1){
151
- var trigelem = jQuery(this).get(0).tagName;
152
- Cufon.replace(trigelem);
153
- }
154
- }
155
 
156
- function closeOtherGroups(rel){
157
- jQuery('.collapseomatic[rel!="' + rel +'"]').each(function(index) {
158
- //add close class if open
159
- if(jQuery(this).hasClass('colomat-close') && jQuery(this).attr('rel') !== undefined){
160
- jQuery(this).removeClass('colomat-close');
161
- var id = jQuery(this).attr('id');
162
-
163
- //check if the title needs to be swapped out
164
- if(jQuery("#swap-"+id).length > 0){
165
- swapTitle(this, id);
166
- }
167
-
168
- //slideToggle
169
- if(slideEffect == 'slideToggle'){
170
- jQuery('#target-'+id).slideToggle(durration, function() {
171
- // Animation complete.
172
- });
173
- }
174
- //slideFade
175
- else if(slideEffect == 'slideFade'){
176
- jQuery('#target-'+id).animate({
177
- height: "toggle",
178
- opacity: "toggle"
179
- }, duration);
180
- }
181
-
182
- //check if there are nested children that need to be collapsed
183
- var ancestors = jQuery('.collapseomatic', '#target-'+id);
184
- ancestors.each(function(index) {
185
- jQuery(this).removeClass('colomat-close');
186
- var thisid = jQuery(this).attr('id');
187
- jQuery('#target-'+thisid).css('display', 'none');
188
- })
189
- }
190
- });
191
- }
192
-
193
- function closeOtherMembers(rel, id){
194
- jQuery('.collapseomatic[rel="' + rel +'"]').each(function(index) {
195
- //add close class if open
196
- if(jQuery(this).attr('id') != id && jQuery(this).hasClass('colomat-close') && jQuery(this).attr('rel') !== undefined){
197
- //collapse the element
198
- jQuery(this).removeClass('colomat-close');
199
- var thisid = jQuery(this).attr('id');
200
-
201
- //check if the title needs to be swapped out
202
- if(jQuery("#swap-"+thisid).length > 0){
203
- swapTitle(this, thisid);
204
- }
205
-
206
- //slideToggle
207
- if(slideEffect == 'slideToggle'){
208
- jQuery('#target-'+thisid).slideToggle(durration, function() {
209
- // Animation complete.
210
- });
211
- }
212
- //slideFade
213
- else if(slideEffect == 'slideFade'){
214
- jQuery('#target-'+thisid).animate({
215
- height: "toggle",
216
- opacity: "toggle"
217
- }, duration);
218
- }
219
-
220
- //check if there are nested children that need to be collapsed
221
- var ancestors = jQuery('.collapseomatic', '#target-'+id);
222
- ancestors.each(function(index) {
223
- if(jQuery(this).attr('id').indexOf('bot-') == '-1'){
224
- jQuery(this).removeClass('colomat-close');
225
- var thisid = jQuery(this).attr('id');
226
- //check if the title needs to be swapped out
227
- if(jQuery("#swap-"+thisid).length > 0){
228
- swapTitle(this, thisid);
229
- }
230
- jQuery('#target-'+thisid).css('display', 'none');
231
- }
232
- })
233
- }
234
- });
235
- }
236
-
237
- //jQuery('.expandall').on("click", function(event){
238
- jQuery('.expandall').click(function() {
239
  if(jQuery(this).attr('rel') !== undefined){
240
  var rel = jQuery(this).attr('rel');
241
  jQuery('.collapseomatic[rel="' + rel +'"].collapseomatic:not(.colomat-close)').each(function(index) {
242
  jQuery(this).addClass('colomat-close');
243
  var thisid = jQuery(this).attr('id');
 
244
 
245
  if(jQuery("#swap-"+thisid).length > 0){
246
  swapTitle(this, thisid);
247
  }
248
 
249
  //slideToggle
250
- if(slideEffect == 'slideToggle'){
251
- jQuery('#target-'+thisid).slideToggle(durration, function() {
252
  // Animation complete.
253
  });
254
  }
255
  //slideFade
256
- else if(slideEffect == 'slideFade'){
257
  jQuery('#target-'+thisid).animate({
258
  height: "toggle",
259
  opacity: "toggle"
260
- }, duration);
261
  }
262
  });
263
  }
@@ -265,76 +305,85 @@ jQuery(document).ready(function() {
265
  jQuery('.collapseomatic:not(.colomat-close)').each(function(index) {
266
  jQuery(this).addClass('colomat-close');
267
  var thisid = jQuery(this).attr('id');
 
268
 
269
  if(jQuery("#swap-"+thisid).length > 0){
270
  swapTitle(this, thisid);
271
  }
272
 
273
  //slideToggle
274
- if(slideEffect == 'slideToggle'){
275
- jQuery('#target-'+thisid).slideToggle(durration, function() {
276
  // Animation complete.
277
  });
278
  }
279
  //slideFade
280
- else if(slideEffect == 'slideFade'){
281
  jQuery('#target-'+thisid).animate({
282
  height: "toggle",
283
  opacity: "toggle"
284
- }, duration);
285
  }
286
  });
287
  }
288
  });
289
 
290
- //jQuery('.collapseall').on("click", function(event){
291
- jQuery('.collapseall').click(function() {
292
  if(jQuery(this).attr('rel') !== undefined){
293
  var rel = jQuery(this).attr('rel');
294
  jQuery('.collapseomatic[rel="' + rel +'"].collapseomatic.colomat-close').each(function(index) {
 
 
 
 
295
  jQuery(this).removeClass('colomat-close');
296
  var thisid = jQuery(this).attr('id');
 
297
 
298
  if(jQuery("#swap-"+thisid).length > 0){
299
  swapTitle(this, thisid);
300
  }
301
 
302
  //slideToggle
303
- if(slideEffect == 'slideToggle'){
304
- jQuery('#target-'+thisid).slideToggle(durration, function() {
305
  // Animation complete.
306
  });
307
  }
308
  //slideFade
309
- else if(slideEffect == 'slideFade'){
310
  jQuery('#target-'+thisid).animate({
311
  height: "toggle",
312
  opacity: "toggle"
313
- }, duration);
314
  }
315
  });
316
  }
317
  else{
318
- jQuery('.collapseomatic.colomat-close').each(function(index) {
 
 
 
319
  jQuery(this).removeClass('colomat-close');
320
  var thisid = jQuery(this).attr('id');
 
321
 
322
  if(jQuery("#swap-"+thisid).length > 0){
323
  swapTitle(this, thisid);
324
  }
325
 
326
  //slideToggle
327
- if(slideEffect == 'slideToggle'){
328
- jQuery('#target-'+thisid).slideToggle(durration, function() {
329
  // Animation complete.
330
  });
331
  }
332
  //slideFade
333
- else if(slideEffect == 'slideFade'){
334
  jQuery('#target-'+thisid).animate({
335
  height: "toggle",
336
  opacity: "toggle"
337
- }, duration);
338
  }
339
  });
340
  }
@@ -342,7 +391,12 @@ jQuery(document).ready(function() {
342
 
343
  //do we have a find me?
344
  //jQuery('.find-me').on("click", function(event){
345
- jQuery('.find-me').click(function() {
 
 
 
 
 
346
  //get the top offset of the target anchor
347
  var thisid = jQuery(this).attr('id');
348
  var offset_top = jQuery('#find-'+thisid).attr('name');
@@ -373,8 +427,7 @@ jQuery(document).ready(function() {
373
  }
374
 
375
  //handle anchor links within the same page
376
- //jQuery('a.expandanchor').on("click", function(event){
377
- jQuery('a.expandanchor').click(function() {
378
  event.preventDefault();
379
  var fullurl = jQuery(this).attr('href');
380
  if (fullurl.match('#')) { // the URL contains an anchor
@@ -404,4 +457,10 @@ jQuery(document).ready(function() {
404
  }
405
  });
406
 
407
- });
 
 
 
 
 
 
1
  /*!
2
+ * jQuery Collapse-O-Matic v1.5
3
  * http://plugins.twinpictures.de/plugins/collapse-o-matic/
4
  *
5
  * Copyright 2012, Twinpictures
23
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24
  * THE SOFTWARE.
25
  */
26
+ function collapse_init() {
 
 
 
 
 
 
27
  //force collapse
28
+ jQuery('.force_content_collapse').each(function(index) {
29
+ jQuery(this).css('display', 'none');
30
+ });
31
 
32
+ //inital collapse
33
+ jQuery('.collapseomatic:not(.colomat-close)').each(function(index) {
34
+ var thisid = jQuery(this).attr('id');
35
+ jQuery('#target-'+thisid).css('display', 'none');
36
+ });
37
 
38
  //inital swaptitle for pre-expanded elements
39
+ jQuery('.collapseomatic.colomat-close').each(function(index) {
40
+ var thisid = jQuery(this).attr('id');
41
+ if(jQuery("#swap-"+thisid).length > 0){
42
  swapTitle(this, thisid);
43
  }
44
+ });
45
+ }
46
+
47
+ function swapTitle(obj, id){
48
+ var orightml = jQuery(obj).html();
49
+ var swaphtml = jQuery("#swap-"+id).html();
50
+ jQuery(obj).html(swaphtml);
51
+ jQuery("#swap-"+id).html(orightml);
52
+
53
+ //is cufon involved? if so, do that thing
54
+ if(swaphtml.indexOf("<cufon") != -1){
55
+ var trigelem = jQuery(this).get(0).tagName;
56
+ Cufon.replace(trigelem);
57
+ }
58
+ }
59
+
60
+ function closeOtherGroups(rel){
61
+ jQuery('.collapseomatic[rel!="' + rel +'"]').each(function(index) {
62
+ //add close class if open
63
+ if(jQuery(this).hasClass('colomat-expand-only') && jQuery(this).hasClass('colomat-close')){
64
+ return;
65
+ }
66
+ if(jQuery(this).hasClass('colomat-close') && jQuery(this).attr('rel') !== undefined){
67
+ jQuery(this).removeClass('colomat-close');
68
+ var id = jQuery(this).attr('id');
69
+ //remove parent highlight class
70
+ jQuery('#parent-'+id).removeClass('colomat-parent-highlight');
71
+
72
+ //check if the title needs to be swapped out
73
+ if(jQuery("#swap-"+id).length > 0){
74
+ swapTitle(this, id);
75
+ }
76
 
77
+ //slideToggle
78
+ if(colomatslideEffect == 'slideToggle'){
79
+ jQuery('#target-'+id).slideToggle(colomatduration, function() {
80
+ // Animation complete.
81
+ });
82
+ }
83
+ //slideFade
84
+ else if(colomatslideEffect == 'slideFade'){
85
+ jQuery('#target-'+id).animate({
86
+ height: "toggle",
87
+ opacity: "toggle"
88
+ }, colomatduration);
89
+ }
90
+
91
+ //check if there are nested children that need to be collapsed
92
+ var ancestors = jQuery('.collapseomatic', '#target-'+id);
93
+ ancestors.each(function(index) {
94
+ jQuery(this).removeClass('colomat-close');
95
+ var thisid = jQuery(this).attr('id');
96
+ jQuery('#target-'+thisid).css('display', 'none');
97
+ })
98
+ }
99
+ });
100
+ }
101
+
102
+ function closeOtherMembers(rel, id){
103
+ jQuery('.collapseomatic[rel="' + rel +'"]').each(function(index) {
104
+ if(jQuery(this).hasClass('colomat-expand-only') && jQuery(this).hasClass('colomat-close')){
105
+ return;
106
+ }
107
+
108
+ //add close class if open
109
+ if(jQuery(this).attr('id') != id && jQuery(this).hasClass('colomat-close') && jQuery(this).attr('rel') !== undefined){
110
+ //collapse the element
111
+ jQuery(this).removeClass('colomat-close');
112
+ var thisid = jQuery(this).attr('id');
113
+ //remove parent highlight class
114
+ jQuery('#parent-'+thisid).removeClass('colomat-parent-highlight');
115
+
116
+ //check if the title needs to be swapped out
117
+ if(jQuery("#swap-"+thisid).length > 0){
118
+ swapTitle(this, thisid);
119
+ }
120
+
121
+ //check for snap-shut
122
+ if(!jQuery(this).hasClass('colomat-close') && jQuery(this).hasClass('snap-shut')){
123
+ jQuery('#target-'+thisid).hide();
124
+ }
125
+
126
+ //slideToggle
127
+ else if(colomatslideEffect == 'slideToggle'){
128
+ jQuery('#target-'+thisid).slideToggle(colomatduration, function() {
129
+ // Animation complete.
130
+ });
131
+ }
132
+ //slideFade
133
+ else if(colomatslideEffect == 'slideFade'){
134
+ jQuery('#target-'+thisid).animate({
135
+ height: "toggle",
136
+ opacity: "toggle"
137
+ }, colomatduration);
138
+ }
139
+
140
+ //check if there are nested children that need to be collapsed
141
+ var ancestors = jQuery('.collapseomatic', '#target-'+id);
142
+ ancestors.each(function(index) {
143
+ if(jQuery(this).hasClass('colomat-expand-only') && jQuery(this).hasClass('colomat-close')){
144
+ return;
145
+ }
146
+ if(jQuery(this).attr('id').indexOf('bot-') == '-1'){
147
+ jQuery(this).removeClass('colomat-close');
148
+ var thisid = jQuery(this).attr('id');
149
+ //check if the title needs to be swapped out
150
+ if(jQuery("#swap-"+thisid).length > 0){
151
+ swapTitle(this, thisid);
152
+ }
153
+ jQuery('#target-'+thisid).css('display', 'none');
154
+ }
155
+ })
156
+ }
157
+ });
158
+ }
159
+
160
+ //initial position for find-me feature
161
+ function findme(){
162
  jQuery('.find-me').each(function(index) {
163
  var thisid = jQuery(this).attr('id');
164
  if( !jQuery('#find-'+thisid).attr('name') ){
167
  jQuery('#find-'+thisid).attr('name', target_top_offset);
168
  }
169
  });
170
+ }
171
+
172
+ jQuery(document).ready(function() {
173
+ //console.log(colomatduration, colomatslideEffect);
174
+ collapse_init();
175
 
176
  //Display the collapse wrapper... use to reverse the show-all on no JavaScript degredation.
177
  jQuery('.content_collapse_wrapper').each(function(index) {
178
  jQuery(this).css('display', 'inline');
179
  });
180
 
181
+ //hover
182
+ jQuery('.collapseomatic').livequery(function(){
183
+ jQuery(this).hover(function() {
184
+ jQuery(this).addClass('colomat-hover');
185
+ }, function() {
186
+ jQuery(this).removeClass('colomat-hover');
187
+ });
188
+ }, function() {
189
+ jQuery(this).unbind('mouseover').unbind('mouseout');
190
+ });
191
 
192
 
193
  //jQuery('.collapseomatic').on("click", function(event){
194
+ //jQuery('.collapseomatic').click(function() {
195
+ jQuery('.collapseomatic').livequery('click', function(event) {
196
  var offest_top;
197
 
198
  //alert('phones ringin dude');
200
  return;
201
  }
202
  var id = jQuery(this).attr('id');
203
+ var offset_top = 0;
204
 
205
  //deal with any scroll to links
206
  if(jQuery(this).hasClass('colomat-close') && jQuery(this).hasClass('scroll-to-trigger')){
207
+ offset_top = jQuery('#scrollonclose-'+id).attr('name');
208
  }
209
 
210
  if(id.indexOf('bot-') != '-1'){
211
  id = id.substr(4);
212
  jQuery('#'+id).toggleClass('colomat-close');
213
 
214
+ //deal with any scroll to links from the Internal Collapse Trigger
215
  if(jQuery(this).hasClass('scroll-to-trigger')){
216
+ var target_offset = jQuery('#'+id).offset();
217
+ offset_top = target_offset.top;
218
+ }
219
+
220
+ //deal with any scroll to links from the Title Trigger
221
+ if(jQuery('#'+id).hasClass('scroll-to-trigger')){
222
+ offset_top = jQuery('#scrollonclose-'+id).attr('name');
223
  }
224
  }
225
  else{
226
  jQuery(this).toggleClass('colomat-close');
227
  }
228
+
229
  //check if the title needs to be swapped out
230
  if(jQuery("#swap-"+id).length > 0){
231
+ swapTitle(jQuery('#'+id), id);
232
  }
233
 
234
  //add visited class
235
  jQuery(this).addClass('colomat-visited');
236
 
237
+ //toggle parent highlight class
238
+ var parentID = 'parent-'+id;
239
+ jQuery('#' + parentID).toggleClass('colomat-parent-highlight');
240
+
241
+ //check for snap-shut
242
+ if(!jQuery(this).hasClass('colomat-close') && jQuery(this).hasClass('snap-shut')){
243
+ jQuery('#target-'+id).hide();
244
+ }
245
+
246
  //slideToggle
247
+ else if(colomatslideEffect == 'slideToggle'){
248
+ jQuery('#target-'+id).slideToggle(colomatduration, function() {
249
  // Animation complete.
250
  });
251
  }
252
  //slideFade
253
+ else if(colomatslideEffect == 'slideFade'){
254
  jQuery('#target-'+id).removeClass('maptastic');
255
  jQuery('#target-'+id).animate({
256
  height: "toggle",
257
  opacity: "toggle"
258
+ }, colomatduration);
259
  }
260
 
261
  //deal with grouped items if needed
273
  jQuery('html, body').animate({scrollTop:offset_top}, 500);
274
  }
275
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
276
 
277
+ jQuery('.expandall').livequery('click', function(event) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
278
  if(jQuery(this).attr('rel') !== undefined){
279
  var rel = jQuery(this).attr('rel');
280
  jQuery('.collapseomatic[rel="' + rel +'"].collapseomatic:not(.colomat-close)').each(function(index) {
281
  jQuery(this).addClass('colomat-close');
282
  var thisid = jQuery(this).attr('id');
283
+ jQuery('#parent-'+thisid).addClass('colomat-parent-highlight');
284
 
285
  if(jQuery("#swap-"+thisid).length > 0){
286
  swapTitle(this, thisid);
287
  }
288
 
289
  //slideToggle
290
+ if(colomatslideEffect == 'slideToggle'){
291
+ jQuery('#target-'+thisid).slideToggle(colomatduration, function() {
292
  // Animation complete.
293
  });
294
  }
295
  //slideFade
296
+ else if(colomatslideEffect == 'slideFade'){
297
  jQuery('#target-'+thisid).animate({
298
  height: "toggle",
299
  opacity: "toggle"
300
+ }, colomatduration);
301
  }
302
  });
303
  }
305
  jQuery('.collapseomatic:not(.colomat-close)').each(function(index) {
306
  jQuery(this).addClass('colomat-close');
307
  var thisid = jQuery(this).attr('id');
308
+ jQuery('#parent-'+thisid).addClass('colomat-parent-highlight');
309
 
310
  if(jQuery("#swap-"+thisid).length > 0){
311
  swapTitle(this, thisid);
312
  }
313
 
314
  //slideToggle
315
+ if(colomatslideEffect == 'slideToggle'){
316
+ jQuery('#target-'+thisid).slideToggle(colomatduration, function() {
317
  // Animation complete.
318
  });
319
  }
320
  //slideFade
321
+ else if(colomatslideEffect == 'slideFade'){
322
  jQuery('#target-'+thisid).animate({
323
  height: "toggle",
324
  opacity: "toggle"
325
+ }, colomatduration);
326
  }
327
  });
328
  }
329
  });
330
 
331
+ jQuery('.collapseall').livequery('click', function(event) {
 
332
  if(jQuery(this).attr('rel') !== undefined){
333
  var rel = jQuery(this).attr('rel');
334
  jQuery('.collapseomatic[rel="' + rel +'"].collapseomatic.colomat-close').each(function(index) {
335
+ if(jQuery(this).hasClass('colomat-expand-only') && jQuery(this).hasClass('colomat-close')){
336
+ return;
337
+ }
338
+
339
  jQuery(this).removeClass('colomat-close');
340
  var thisid = jQuery(this).attr('id');
341
+ jQuery('#parent-'+thisid).removeClass('colomat-parent-highlight');
342
 
343
  if(jQuery("#swap-"+thisid).length > 0){
344
  swapTitle(this, thisid);
345
  }
346
 
347
  //slideToggle
348
+ if(colomatslideEffect == 'slideToggle'){
349
+ jQuery('#target-'+thisid).slideToggle(colomatduration, function() {
350
  // Animation complete.
351
  });
352
  }
353
  //slideFade
354
+ else if(colomatslideEffect == 'slideFade'){
355
  jQuery('#target-'+thisid).animate({
356
  height: "toggle",
357
  opacity: "toggle"
358
+ }, colomatduration);
359
  }
360
  });
361
  }
362
  else{
363
+ jQuery('.collapseomatic.colomat-close').each(function(index) {
364
+ if(jQuery(this).hasClass('colomat-expand-only') && jQuery(this).hasClass('colomat-close')){
365
+ return;
366
+ }
367
  jQuery(this).removeClass('colomat-close');
368
  var thisid = jQuery(this).attr('id');
369
+ jQuery('#parent-'+thisid).removeClass('colomat-parent-highlight');
370
 
371
  if(jQuery("#swap-"+thisid).length > 0){
372
  swapTitle(this, thisid);
373
  }
374
 
375
  //slideToggle
376
+ if(colomatslideEffect == 'slideToggle'){
377
+ jQuery('#target-'+thisid).slideToggle(colomatduration, function() {
378
  // Animation complete.
379
  });
380
  }
381
  //slideFade
382
+ else if(colomatslideEffect == 'slideFade'){
383
  jQuery('#target-'+thisid).animate({
384
  height: "toggle",
385
  opacity: "toggle"
386
+ }, colomatduration);
387
  }
388
  });
389
  }
391
 
392
  //do we have a find me?
393
  //jQuery('.find-me').on("click", function(event){
394
+ //jQuery('.find-me').click(function() {
395
+ jQuery('.find-me').livequery('click', function(event) {
396
+ var myFile = document.location.toString();
397
+ if (myFile.match('#')) {
398
+ return;
399
+ }
400
  //get the top offset of the target anchor
401
  var thisid = jQuery(this).attr('id');
402
  var offset_top = jQuery('#find-'+thisid).attr('name');
427
  }
428
 
429
  //handle anchor links within the same page
430
+ jQuery('a.expandanchor').livequery('click', function(event) {
 
431
  event.preventDefault();
432
  var fullurl = jQuery(this).attr('href');
433
  if (fullurl.match('#')) { // the URL contains an anchor
457
  }
458
  });
459
 
460
+ //jQuery('a.colomat-nolink').click(function(event) {
461
+ jQuery('a.colomat-nolink').livequery('click', function(event) {
462
+ event.preventDefault();
463
+ });
464
+ });
465
+
466
+ jQuery(window).load( findme() );
js/collapse.min.js ADDED
@@ -0,0 +1 @@
 
1
+ function collapse_init(){jQuery('.force_content_collapse').each(function(index){jQuery(this).css('display','none')});jQuery('.collapseomatic:not(.colomat-close)').each(function(index){var thisid=jQuery(this).attr('id');jQuery('#target-'+thisid).css('display','none')});jQuery('.collapseomatic.colomat-close').each(function(index){var thisid=jQuery(this).attr('id');if(jQuery("#swap-"+thisid).length>0){swapTitle(this,thisid)}})}function swapTitle(obj,id){var orightml=jQuery(obj).html();var swaphtml=jQuery("#swap-"+id).html();jQuery(obj).html(swaphtml);jQuery("#swap-"+id).html(orightml);if(swaphtml.indexOf("<cufon")!=-1){var trigelem=jQuery(this).get(0).tagName;Cufon.replace(trigelem)}}function closeOtherGroups(rel){jQuery('.collapseomatic[rel!="'+rel+'"]').each(function(index){if(jQuery(this).hasClass('colomat-expand-only')&&jQuery(this).hasClass('colomat-close')){return}if(jQuery(this).hasClass('colomat-close')&&jQuery(this).attr('rel')!==undefined){jQuery(this).removeClass('colomat-close');var id=jQuery(this).attr('id');jQuery('#parent-'+id).removeClass('colomat-parent-highlight');if(jQuery("#swap-"+id).length>0){swapTitle(this,id)}if(colomatslideEffect=='slideToggle'){jQuery('#target-'+id).slideToggle(colomatduration,function(){})}else if(colomatslideEffect=='slideFade'){jQuery('#target-'+id).animate({height:"toggle",opacity:"toggle"},colomatduration)}var ancestors=jQuery('.collapseomatic','#target-'+id);ancestors.each(function(index){jQuery(this).removeClass('colomat-close');var thisid=jQuery(this).attr('id');jQuery('#target-'+thisid).css('display','none')})}})}function closeOtherMembers(rel,id){jQuery('.collapseomatic[rel="'+rel+'"]').each(function(index){if(jQuery(this).hasClass('colomat-expand-only')&&jQuery(this).hasClass('colomat-close')){return}if(jQuery(this).attr('id')!=id&&jQuery(this).hasClass('colomat-close')&&jQuery(this).attr('rel')!==undefined){jQuery(this).removeClass('colomat-close');var thisid=jQuery(this).attr('id');jQuery('#parent-'+thisid).removeClass('colomat-parent-highlight');if(jQuery("#swap-"+thisid).length>0){swapTitle(this,thisid)}if(!jQuery(this).hasClass('colomat-close')&&jQuery(this).hasClass('snap-shut')){jQuery('#target-'+thisid).hide()}else if(colomatslideEffect=='slideToggle'){jQuery('#target-'+thisid).slideToggle(colomatduration,function(){})}else if(colomatslideEffect=='slideFade'){jQuery('#target-'+thisid).animate({height:"toggle",opacity:"toggle"},colomatduration)}var ancestors=jQuery('.collapseomatic','#target-'+id);ancestors.each(function(index){if(jQuery(this).hasClass('colomat-expand-only')&&jQuery(this).hasClass('colomat-close')){return}if(jQuery(this).attr('id').indexOf('bot-')=='-1'){jQuery(this).removeClass('colomat-close');var thisid=jQuery(this).attr('id');if(jQuery("#swap-"+thisid).length>0){swapTitle(this,thisid)}jQuery('#target-'+thisid).css('display','none')}})}})}function findme(){jQuery('.find-me').each(function(index){var thisid=jQuery(this).attr('id');if(!jQuery('#find-'+thisid).attr('name')){var target_offset=jQuery(this).offset();var target_top_offset=target_offset.top;jQuery('#find-'+thisid).attr('name',target_top_offset)}})}jQuery(document).ready(function(){collapse_init();jQuery('.content_collapse_wrapper').each(function(index){jQuery(this).css('display','inline')});jQuery('.collapseomatic').livequery(function(){jQuery(this).hover(function(){jQuery(this).addClass('colomat-hover')},function(){jQuery(this).removeClass('colomat-hover')})},function(){jQuery(this).unbind('mouseover').unbind('mouseout')});jQuery('.collapseomatic').livequery('click',function(event){var offest_top;if(jQuery(this).hasClass('colomat-expand-only')&&jQuery(this).hasClass('colomat-close')){return}var id=jQuery(this).attr('id');var offset_top=0;if(jQuery(this).hasClass('colomat-close')&&jQuery(this).hasClass('scroll-to-trigger')){offset_top=jQuery('#scrollonclose-'+id).attr('name')}if(id.indexOf('bot-')!='-1'){id=id.substr(4);jQuery('#'+id).toggleClass('colomat-close');if(jQuery(this).hasClass('scroll-to-trigger')){var target_offset=jQuery('#'+id).offset();offset_top=target_offset.top}if(jQuery('#'+id).hasClass('scroll-to-trigger')){offset_top=jQuery('#scrollonclose-'+id).attr('name')}}else{jQuery(this).toggleClass('colomat-close')}if(jQuery("#swap-"+id).length>0){swapTitle(jQuery('#'+id),id)}jQuery(this).addClass('colomat-visited');var parentID='parent-'+id;jQuery('#'+parentID).toggleClass('colomat-parent-highlight');if(!jQuery(this).hasClass('colomat-close')&&jQuery(this).hasClass('snap-shut')){jQuery('#target-'+id).hide()}else if(colomatslideEffect=='slideToggle'){jQuery('#target-'+id).slideToggle(colomatduration,function(){})}else if(colomatslideEffect=='slideFade'){jQuery('#target-'+id).removeClass('maptastic');jQuery('#target-'+id).animate({height:"toggle",opacity:"toggle"},colomatduration)}if(jQuery(this).attr('rel')!==undefined){var rel=jQuery(this).attr('rel');if(rel.indexOf('-highlander')!='-1'){closeOtherMembers(rel,id)}else{closeOtherGroups(rel)}}if(offset_top){jQuery('html, body').animate({scrollTop:offset_top},500)}});jQuery('.expandall').livequery('click',function(event){if(jQuery(this).attr('rel')!==undefined){var rel=jQuery(this).attr('rel');jQuery('.collapseomatic[rel="'+rel+'"].collapseomatic:not(.colomat-close)').each(function(index){jQuery(this).addClass('colomat-close');var thisid=jQuery(this).attr('id');jQuery('#parent-'+thisid).addClass('colomat-parent-highlight');if(jQuery("#swap-"+thisid).length>0){swapTitle(this,thisid)}if(colomatslideEffect=='slideToggle'){jQuery('#target-'+thisid).slideToggle(colomatduration,function(){})}else if(colomatslideEffect=='slideFade'){jQuery('#target-'+thisid).animate({height:"toggle",opacity:"toggle"},colomatduration)}})}else{jQuery('.collapseomatic:not(.colomat-close)').each(function(index){jQuery(this).addClass('colomat-close');var thisid=jQuery(this).attr('id');jQuery('#parent-'+thisid).addClass('colomat-parent-highlight');if(jQuery("#swap-"+thisid).length>0){swapTitle(this,thisid)}if(colomatslideEffect=='slideToggle'){jQuery('#target-'+thisid).slideToggle(colomatduration,function(){})}else if(colomatslideEffect=='slideFade'){jQuery('#target-'+thisid).animate({height:"toggle",opacity:"toggle"},colomatduration)}})}});jQuery('.collapseall').livequery('click',function(event){if(jQuery(this).attr('rel')!==undefined){var rel=jQuery(this).attr('rel');jQuery('.collapseomatic[rel="'+rel+'"].collapseomatic.colomat-close').each(function(index){if(jQuery(this).hasClass('colomat-expand-only')&&jQuery(this).hasClass('colomat-close')){return}jQuery(this).removeClass('colomat-close');var thisid=jQuery(this).attr('id');jQuery('#parent-'+thisid).removeClass('colomat-parent-highlight');if(jQuery("#swap-"+thisid).length>0){swapTitle(this,thisid)}if(colomatslideEffect=='slideToggle'){jQuery('#target-'+thisid).slideToggle(colomatduration,function(){})}else if(colomatslideEffect=='slideFade'){jQuery('#target-'+thisid).animate({height:"toggle",opacity:"toggle"},colomatduration)}})}else{jQuery('.collapseomatic.colomat-close').each(function(index){if(jQuery(this).hasClass('colomat-expand-only')&&jQuery(this).hasClass('colomat-close')){return}jQuery(this).removeClass('colomat-close');var thisid=jQuery(this).attr('id');jQuery('#parent-'+thisid).removeClass('colomat-parent-highlight');if(jQuery("#swap-"+thisid).length>0){swapTitle(this,thisid)}if(colomatslideEffect=='slideToggle'){jQuery('#target-'+thisid).slideToggle(colomatduration,function(){})}else if(colomatslideEffect=='slideFade'){jQuery('#target-'+thisid).animate({height:"toggle",opacity:"toggle"},colomatduration)}})}});jQuery('.find-me').livequery('click',function(event){var myFile=document.location.toString();if(myFile.match('#')){return}var thisid=jQuery(this).attr('id');var offset_top=jQuery('#find-'+thisid).attr('name');jQuery('html, body').animate({scrollTop:offset_top},500)});var myFile=document.location.toString();if(myFile.match('#')){var anchor_arr=myFile.split('#');if(anchor_arr.length>1){junk=anchor_arr.splice(0,1);anchor=anchor_arr.join('#')}else{anchor=anchor_arr[0]}jQuery('#'+anchor).click();jQuery('#'+anchor).parents('.collapseomatic_content').each(function(index){parent_arr=jQuery(this).attr('id').split('-');junk=parent_arr.splice(0,1);parent=parent_arr.join('-');jQuery('#'+parent).click()})}jQuery('a.expandanchor').livequery('click',function(event){event.preventDefault();var fullurl=jQuery(this).attr('href');if(fullurl.match('#')){var anchor_arr=fullurl.split('#');if(anchor_arr.length>1){junk=anchor_arr.splice(0,1);anchor=anchor_arr.join('#')}else{anchor=anchor_arr[0]}if(!jQuery('#'+anchor).hasClass('colomat-close')){jQuery('#'+anchor).click()}jQuery('#'+anchor).parents('.collapseomatic_content').each(function(index){parent_arr=jQuery(this).attr('id').split('-');junk=parent_arr.splice(0,1);parent=parent_arr.join('-');if(!jQuery('#'+parent).hasClass('colomat-close')){jQuery('#'+parent).click()}})}});jQuery('a.colomat-nolink').livequery('click',function(event){event.preventDefault()})});jQuery(window).load(findme());
js/jquery.livequery.min.js ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ /* Copyright (c) 2010 Brandon Aaron (http://brandonaaron.net)
2
+ * Dual licensed under the MIT (MIT_LICENSE.txt)
3
+ * and GPL Version 2 (GPL_LICENSE.txt) licenses.
4
+ *
5
+ * Version: 1.1.1
6
+ * Requires jQuery 1.3+
7
+ * Docs: http://docs.jquery.com/Plugins/livequery
8
+ */
9
+ (function(a){a.extend(a.fn,{livequery:function(e,d,c){var b=this,f;if(a.isFunction(e)){c=d,d=e,e=undefined}a.each(a.livequery.queries,function(g,h){if(b.selector==h.selector&&b.context==h.context&&e==h.type&&(!d||d.$lqguid==h.fn.$lqguid)&&(!c||c.$lqguid==h.fn2.$lqguid)){return(f=h)&&false}});f=f||new a.livequery(this.selector,this.context,e,d,c);f.stopped=false;f.run();return this},expire:function(e,d,c){var b=this;if(a.isFunction(e)){c=d,d=e,e=undefined}a.each(a.livequery.queries,function(f,g){if(b.selector==g.selector&&b.context==g.context&&(!e||e==g.type)&&(!d||d.$lqguid==g.fn.$lqguid)&&(!c||c.$lqguid==g.fn2.$lqguid)&&!this.stopped){a.livequery.stop(g.id)}});return this}});a.livequery=function(b,d,f,e,c){this.selector=b;this.context=d;this.type=f;this.fn=e;this.fn2=c;this.elements=[];this.stopped=false;this.id=a.livequery.queries.push(this)-1;e.$lqguid=e.$lqguid||a.livequery.guid++;if(c){c.$lqguid=c.$lqguid||a.livequery.guid++}return this};a.livequery.prototype={stop:function(){var b=this;if(this.type){this.elements.unbind(this.type,this.fn)}else{if(this.fn2){this.elements.each(function(c,d){b.fn2.apply(d)})}}this.elements=[];this.stopped=true},run:function(){if(this.stopped){return}var d=this;var e=this.elements,c=a(this.selector,this.context),b=c.not(e);this.elements=c;if(this.type){b.bind(this.type,this.fn);if(e.length>0){a.each(e,function(f,g){if(a.inArray(g,c)<0){a.event.remove(g,d.type,d.fn)}})}}else{b.each(function(){d.fn.apply(this)});if(this.fn2&&e.length>0){a.each(e,function(f,g){if(a.inArray(g,c)<0){d.fn2.apply(g)}})}}}};a.extend(a.livequery,{guid:0,queries:[],queue:[],running:false,timeout:null,checkQueue:function(){if(a.livequery.running&&a.livequery.queue.length){var b=a.livequery.queue.length;while(b--){a.livequery.queries[a.livequery.queue.shift()].run()}}},pause:function(){a.livequery.running=false},play:function(){a.livequery.running=true;a.livequery.run()},registerPlugin:function(){a.each(arguments,function(c,d){if(!a.fn[d]){return}var b=a.fn[d];a.fn[d]=function(){var e=b.apply(this,arguments);a.livequery.run();return e}})},run:function(b){if(b!=undefined){if(a.inArray(b,a.livequery.queue)<0){a.livequery.queue.push(b)}}else{a.each(a.livequery.queries,function(c){if(a.inArray(c,a.livequery.queue)<0){a.livequery.queue.push(c)}})}if(a.livequery.timeout){clearTimeout(a.livequery.timeout)}a.livequery.timeout=setTimeout(a.livequery.checkQueue,20)},stop:function(b){if(b!=undefined){a.livequery.queries[b].stop()}else{a.each(a.livequery.queries,function(c){a.livequery.queries[c].stop()})}}});a.livequery.registerPlugin("append","prepend","after","before","wrap","attr","removeAttr","addClass","removeClass","toggleClass","empty","remove","html");a(function(){a.livequery.play()})})(jQuery);
languages/colomat.pot ADDED
@@ -0,0 +1,141 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2013 jQuery Collapse-O-Matic
2
+ # This file is distributed under the same license as the jQuery Collapse-O-Matic package.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: jQuery Collapse-O-Matic 1.5f\n"
6
+ "Report-Msgid-Bugs-To: http://wordpress.org/tag/colomat\n"
7
+ "POT-Creation-Date: 2013-01-08 10:09:59+00:00\n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "PO-Revision-Date: 2013-MO-DA HO:MI+ZONE\n"
12
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
+ "Language-Team: LANGUAGE <LL@li.org>\n"
14
+
15
+ #: colomat.php:275 colomat.php:373
16
+ msgid "Click to toggle"
17
+ msgstr ""
18
+
19
+ #: colomat.php:276
20
+ msgid "Default Collapse-O-Matic Settings"
21
+ msgstr ""
22
+
23
+ #: colomat.php:287
24
+ msgid "Style"
25
+ msgstr ""
26
+
27
+ #: colomat.php:294
28
+ msgid "Light"
29
+ msgstr ""
30
+
31
+ #: colomat.php:295
32
+ msgid "Dark"
33
+ msgstr ""
34
+
35
+ #: colomat.php:306
36
+ msgid ""
37
+ "Select Light for sites with lighter backgroudns. Select Dark for sites with "
38
+ "darker backgrounds."
39
+ msgstr ""
40
+
41
+ #: colomat.php:311
42
+ msgid "Tag Attribute"
43
+ msgstr ""
44
+
45
+ #: colomat.php:313
46
+ msgid ""
47
+ "HTML tag use to wrap the trigger text. See %sTag Attribute%s in the "
48
+ "documentation for more info."
49
+ msgstr ""
50
+
51
+ #: colomat.php:323
52
+ msgid "Collapse/Expand Duration"
53
+ msgstr ""
54
+
55
+ #: colomat.php:325
56
+ msgid ""
57
+ "A string or number determining how long the animation will run. See %"
58
+ "sDuration%s in the documentation for more info."
59
+ msgstr ""
60
+
61
+ #: colomat.php:330
62
+ msgid "Animation Effect"
63
+ msgstr ""
64
+
65
+ #: colomat.php:337
66
+ msgid "Slide Only"
67
+ msgstr ""
68
+
69
+ #: colomat.php:338
70
+ msgid "Slide & Fade"
71
+ msgstr ""
72
+
73
+ #: colomat.php:349
74
+ msgid ""
75
+ "Animation effect to use while collapsing and expanding. See %sAnimation "
76
+ "Effect%s in the documentation for more info."
77
+ msgstr ""
78
+
79
+ #: colomat.php:354
80
+ msgid "Level Up!"
81
+ msgstr ""
82
+
83
+ #: colomat.php:355
84
+ msgid ""
85
+ "<em>Comming Soon: Collapse-Pro-Matic</em> our preimum plugin that offers "
86
+ "additional attributes and the ability to set default attribute settings for "
87
+ "all attributes."
88
+ msgstr ""
89
+
90
+ #: colomat.php:362
91
+ msgid "Save Changes"
92
+ msgstr ""
93
+
94
+ #: colomat.php:374
95
+ msgid "About"
96
+ msgstr ""
97
+
98
+ #: colomat.php:377
99
+ msgid ""
100
+ "Remove clutter, save space. Display and hide additional content in a SEO "
101
+ "friendly way. Wrap any content&mdash;including other shortcodes&mdash;into a "
102
+ "lovely jQuery expanding and collapsing element."
103
+ msgstr ""
104
+
105
+ #: colomat.php:379
106
+ msgid ""
107
+ "%sDetailed documentation%s, complete with working demonstrations of all "
108
+ "shortcode attributes, is available for your instructional enjoyment."
109
+ msgstr ""
110
+
111
+ #: colomat.php:380
112
+ msgid "%sFree%s & %sPremimum%s Support"
113
+ msgstr ""
114
+
115
+ #: colomat.php:381
116
+ msgid ""
117
+ "If you like this plugin, please consider %sreviewing it at WordPress.org%s "
118
+ "to help others."
119
+ msgstr ""
120
+
121
+ #. Plugin Name of the plugin/theme
122
+ msgid "jQuery Collapse-O-Matic"
123
+ msgstr ""
124
+
125
+ #. Plugin URI of the plugin/theme
126
+ msgid "http://plugins.twinpictures.de/plugins/collapse-o-matic/"
127
+ msgstr ""
128
+
129
+ #. Description of the plugin/theme
130
+ msgid ""
131
+ "Collapse-O-Matic adds an [expand] shortcode that wraps content into a "
132
+ "lovely, jQuery collapsible div."
133
+ msgstr ""
134
+
135
+ #. Author of the plugin/theme
136
+ msgid "twinpictures, baden03"
137
+ msgstr ""
138
+
139
+ #. Author URI of the plugin/theme
140
+ msgid "http://twinpictures.de/"
141
+ msgstr ""
style.css → light_style.css RENAMED
@@ -24,7 +24,7 @@
24
  margin-left: 16px;
25
  padding: 0px;
26
  }
27
- .content_collapse_wrapper, collapseomatic_content {
28
  position: absolute; left: -999em;
29
  }
30
  .collapseall, .expandall {
24
  margin-left: 16px;
25
  padding: 0px;
26
  }
27
+ .content_collapse_wrapper {
28
  position: absolute; left: -999em;
29
  }
30
  .collapseall, .expandall {
readme.txt CHANGED
@@ -1,11 +1,13 @@
1
- === jQuery Collapse-O-Matic ===
2
 
3
  Contributors: twinpictures, baden03
4
  Donate link: http://plugins.twinpictures.de/plugins/collapse-o-matic/
5
- Tags: collapse, expand, collapsible, expandable, expandable content, collapsable content, shortcode, hidden, hide, display, accordion, accordion, jQuery, javascript, roll-your-own, twinpictures
6
  Requires at least: 2.8
7
- Tested up to: 3.4.2
8
- Stable tag: 1.4.9
 
 
9
 
10
  Remove clutter, save space: display and hide additional content in a SEO friendly way by wrapping content in an [expand] shortcode.
11
 
@@ -25,6 +27,9 @@ Collapse-O-Matic adds an `[expand title="trigger text"]hidden content[/expand]`
25
 
26
  == Frequently Asked Questions ==
27
 
 
 
 
28
  = I am a Social Netwookiee, might Twinpictures have a Facebook page? =
29
  Yes, yes... <a href='http://www.facebook.com/twinpictures'>Twinpictures is on Facebook</a>.
30
 
@@ -39,13 +44,35 @@ No. Not even close.
39
 
40
  == Screenshots ==
41
 
42
- 1. Hmmm.. wonder what happens this text by that arrow is clicked?
43
  2. Holy Crap! That other text just showed up like magic! Thank you Collapse-O-Matic!
 
44
 
45
  == Changelog ==
46
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47
  = 1.4.9 =
48
  * Replaced on() event handler back to click due to the WordPress world not quite ready for on(). People are still using jQuery 1.6.4 - can you believe that?!
 
49
  = 1.4.8 =
50
  * Click events now use jQuery's on() event handler for content that arrived dynamically via AJAX NOTE: plugin now requires jQuery version 1.7 or newer
51
  * added notitle attribute if no title should be displayed
@@ -168,6 +195,23 @@ Fixed auto-expand of urls with id-anchors
168
 
169
  == Upgrade Notice ==
170
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
171
  = 1.4.9 =
172
  * on() event handler rolled back to .click() and .hover() for WordPress installs that still use jQuery 1.6.4 - if you can believe that.
173
 
1
+ === Collapse-O-Matic ===
2
 
3
  Contributors: twinpictures, baden03
4
  Donate link: http://plugins.twinpictures.de/plugins/collapse-o-matic/
5
+ Tags: collapse, expand, collapsible, expandable, expandable content, collapsable content, shortcode, hidden, hide, display, accordion, accordion, jQuery, javascript, roll-your-own, twinpictures, read me, read more, more
6
  Requires at least: 2.8
7
+ Tested up to: 3.5
8
+ Stable tag: 1.5
9
+ License: GPLv2 or later
10
+ License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
12
  Remove clutter, save space: display and hide additional content in a SEO friendly way by wrapping content in an [expand] shortcode.
13
 
27
 
28
  == Frequently Asked Questions ==
29
 
30
+ = Where can I translate this plugin into my favorite langauge? =
31
+ <a href='http://translate.twinpictures.de/projects/colomat'>Community translation for Collapse-O-Matic</a> has been set up. All are <a href='http://translate.twinpictures.de/wordpress/wp-login.php?action=register'>welcome to join</a>.
32
+
33
  = I am a Social Netwookiee, might Twinpictures have a Facebook page? =
34
  Yes, yes... <a href='http://www.facebook.com/twinpictures'>Twinpictures is on Facebook</a>.
35
 
44
 
45
  == Screenshots ==
46
 
47
+ 1. Hmmm... wonder what happens this text by that arrow is clicked?
48
  2. Holy Crap! That other text just showed up like magic! Thank you Collapse-O-Matic!
49
+ 3. Options Page? Yes, Options Page!
50
 
51
  == Changelog ==
52
 
53
+ = 1.5 =
54
+ * completely re-wrote plugin
55
+ * added sweet-sweet options page
56
+ * added colomat-expand-only class that forces collapse element to only open once and stay open
57
+ * introduced Collapse-Pro-Matic for Premium Level Collapsing Action.
58
+ * added scroll-to-trigger class for Internal Collapse Triggers
59
+ * added livequery to bind collapse functions to dynamically added content
60
+ * added callbacks: collapse_init(); and findme(); for dynamically added content
61
+ * added language files for localization
62
+
63
+ = 1.4.11 =
64
+ * added colomat-parent-highlight class functionality
65
+ * moved findme auto calculations until after all images have loaded.
66
+ * Added elwraptag and elwrapclass attributes
67
+ * Added snap-shut class to slam collapse elements shut
68
+
69
+ = 1.4.10 =
70
+ * Added colomat-nolink class for anchor tags to prevent auto-scrolling to anchor
71
+ * bot- links for targets with swaptitle will now only swap out title for top trigger text
72
+
73
  = 1.4.9 =
74
  * Replaced on() event handler back to click due to the WordPress world not quite ready for on(). People are still using jQuery 1.6.4 - can you believe that?!
75
+
76
  = 1.4.8 =
77
  * Click events now use jQuery's on() event handler for content that arrived dynamically via AJAX NOTE: plugin now requires jQuery version 1.7 or newer
78
  * added notitle attribute if no title should be displayed
195
 
196
  == Upgrade Notice ==
197
 
198
+ = 1.5 =
199
+ * Plugin code completely rewritten
200
+ * Added Option Page
201
+ * added scroll-to-trigger class for Internal Collapse Triggers
202
+ * added livequery and callbacks to handle dynamically added collapse elements
203
+ * language translation support
204
+
205
+ = 1.4.11 =
206
+ * added colomat-parent-highlight class functionality
207
+ * findme auto position calculated after images have loaded
208
+ * Added elwraptag and elwrapclass attributes to wrap entire expand elements in an html element
209
+ * Added snap-shut class to slam collapses shut
210
+
211
+ = 1.4.10 =
212
+ * Added colomat-nolink class to prevent &lt;a&gt; anchors auto scrolling the page.
213
+ * bot- links text will no longer swap out if triggers use swap-title
214
+
215
  = 1.4.9 =
216
  * on() event handler rolled back to .click() and .hover() for WordPress installs that still use jQuery 1.6.4 - if you can believe that.
217
 
screenshot-3.png ADDED
Binary file
trunk/collapse-o-matic.php ADDED
@@ -0,0 +1,428 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ Plugin Name: Collapse-O-Matic
4
+ Text Domain: colomat
5
+ Domain Path: /languages
6
+ Plugin URI: http://plugins.twinpictures.de/plugins/collapse-o-matic/
7
+ Description: Collapse-O-Matic adds an [expand] shortcode that wraps content into a lovely, jQuery collapsible div.
8
+ Version: 1.5
9
+ Author: twinpictures, baden03
10
+ Author URI: http://twinpictures.de/
11
+ License: GPL2
12
+ */
13
+
14
+ /**
15
+ * Class WP_Collapse_O_Matic
16
+ * @package WP_Collapse_O_Matic
17
+ * @category WordPress Plugins
18
+ */
19
+ class WP_Collapse_O_Matic {
20
+
21
+ /**
22
+ * Current version
23
+ * @var string
24
+ */
25
+ var $version = '1.5';
26
+
27
+ /**
28
+ * Used as prefix for options entry
29
+ * @var string
30
+ */
31
+ var $domain = 'colomat';
32
+
33
+ /**
34
+ * Name of the options
35
+ * @var string
36
+ */
37
+ var $options_name = 'WP_Collapse_O_Matic_options';
38
+
39
+ /**
40
+ * @var array
41
+ */
42
+ var $options = array(
43
+ 'style' => 'light',
44
+ 'tag' => 'span',
45
+ 'duration' => 'fast',
46
+ 'slideEffect' => 'slideFade'
47
+ );
48
+
49
+ /**
50
+ * PHP4 constructor
51
+ */
52
+ function WP_Collapse_O_Matic() {
53
+ $this->__construct();
54
+ }
55
+
56
+ /**
57
+ * PHP5 constructor
58
+ */
59
+ function __construct() {
60
+ // set option values
61
+ $this->_set_options();
62
+
63
+ // load text domain for translations
64
+ load_plugin_textdomain( 'colomat', FALSE, dirname( plugin_basename( __FILE__ ) ) . '/lang/' );
65
+
66
+ // set uninstall hook
67
+ if ( function_exists( 'register_deactivation_hook' ) )
68
+ register_deactivation_hook( __FILE__, array( $this, 'deactivation' ));
69
+
70
+ //load the script and style if not viwing the dashboard
71
+ if (!is_admin()){
72
+ add_action('init', array( $this, 'collapsTronicInit' ) );
73
+ }
74
+
75
+ // add actions
76
+ add_action( 'admin_menu', array( $this, 'admin_menu' ) );
77
+ add_action( 'admin_init', array( $this, 'admin_init' ) );
78
+ add_action('wp_head', array( $this, 'colomat_js_vars' ) );
79
+
80
+ add_shortcode('expand', array($this, 'shortcode'));
81
+
82
+ //add expandsub shortcodes
83
+ for ($i=1; $i<30; $i++) {
84
+ add_shortcode('expandsub'.$i, array($this, 'shortcode'));
85
+ }
86
+ // Add shortcode support for widgets
87
+ add_filter('widget_text', 'do_shortcode');
88
+ }
89
+
90
+ //global javascript vars
91
+ function colomat_js_vars(){
92
+ echo "<script type='text/javascript'>\n";
93
+ echo "var colomatduration = '".$this->options['duration']."';\n";
94
+ echo "var colomatslideEffect = '".$this->options['slideEffect']."';\n";
95
+ echo "</script>";
96
+ }
97
+
98
+ /**
99
+ * Callback init
100
+ */
101
+ function collapsTronicInit() {
102
+ //load up jQuery the Jedi way
103
+ wp_enqueue_script('jquery');
104
+
105
+ //collapse script
106
+ wp_register_script('collapseomatic-js', plugins_url('js/collapse.min.js', __FILE__), array('jquery'), '1.5');
107
+ //wp_register_script('collapseomatic-js', plugins_url('js/collapse.js', __FILE__), array('jquery'), '1.5');
108
+ wp_enqueue_script('collapseomatic-js');
109
+
110
+ //livequery
111
+ wp_register_script('livequery-script', plugins_url('js/jquery.livequery.min.js', __FILE__), array('jquery'), '1.0');
112
+ wp_enqueue_script('livequery-script');
113
+
114
+ //css
115
+ wp_register_style( 'collapseomatic-css', plugins_url('/'.$this->options['style'].'_style.css', __FILE__) , array (), '1.5.2' );
116
+ wp_enqueue_style( 'collapseomatic-css' );
117
+ }
118
+
119
+ /**
120
+ * Callback admin_menu
121
+ */
122
+ function admin_menu() {
123
+ if ( function_exists( 'add_options_page' ) AND current_user_can( 'manage_options' ) ) {
124
+ // add options page
125
+ $page = add_options_page('Collapse-O-Matic Options', 'Collapse-O-Matic', 'manage_options', 'collapse-o-matic-options', array( $this, 'options_page' ));
126
+ }
127
+ }
128
+
129
+ /**
130
+ * Callback admin_init
131
+ */
132
+ function admin_init() {
133
+ // register settings
134
+ register_setting( $this->domain, $this->options_name );
135
+ }
136
+
137
+ /**
138
+ * Callback shortcode
139
+ */
140
+ function shortcode($atts, $content = null){
141
+ //find a random number, if no id is assigned
142
+ $options = $this->options;
143
+ $ran = rand(1, 10000);
144
+ extract(shortcode_atts(array(
145
+ 'title' => '',
146
+ 'swaptitle' => '',
147
+ 'alt' => '',
148
+ 'notitle' => '',
149
+ 'id' => 'id'.$ran,
150
+ 'tag' => $options['tag'],
151
+ 'trigclass' => '',
152
+ 'targclass' => '',
153
+ 'trigpos' => 'above',
154
+ 'rel' => '',
155
+ 'expanded' => '',
156
+ 'excerpt' => '',
157
+ 'excerptpos' => 'below-trigger',
158
+ 'excerpttag' => 'div',
159
+ 'excerptclass' => '',
160
+ 'findme' => '',
161
+ 'scrollonclose' => '',
162
+ 'startwrap' => '',
163
+ 'endwrap' => '',
164
+ 'elwraptag' => '',
165
+ 'elwrapclass' => ''
166
+ ), $atts));
167
+
168
+ $ewo = '';
169
+ $ewc = '';
170
+ if($elwraptag){
171
+ $ewclass = '';
172
+ if($elwrapclass){
173
+ $ewclass = 'class="'.$elwrapclass.'"';
174
+ }
175
+ $ewo = '<'.$elwraptag.' '.$ewclass.'>';
176
+ $ewc = '</'.$elwraptag.'>';
177
+ }
178
+ if($excerpt){
179
+ if($excerptpos == 'above-trigger'){
180
+ $nibble = '<'.$excerpttag.' class="'.$excerptclass.'">'.$excerpt.'</'.$excerpttag.'>';
181
+ }
182
+ else{
183
+ $nibble = '<'.$excerpttag.' class="collapseomatic_excerpt '.$excerptclass.'">'.$excerpt.'</'.$excerpttag.'>';
184
+ }
185
+
186
+ }
187
+ $altatt = '';
188
+ if($alt){
189
+ $altatt = 'alt="'.$alt.'" title="'.$alt.'"';
190
+ }
191
+ else if( !$notitle ){
192
+ $altatt = 'title="'.$title.'"';
193
+ }
194
+ $relatt = '';
195
+ if($rel){
196
+ $relatt = 'rel="'.$rel.'"';
197
+ }
198
+ if($expanded){
199
+ $trigclass .= ' colomat-close';
200
+ }
201
+ $anchor = '';
202
+ if($findme){
203
+ $trigclass .= ' find-me';
204
+ $offset = '';
205
+ if($findme != 'true' && $findme != 'auto'){
206
+ $offset = $findme;
207
+ }
208
+ $anchor = '<a id="find-'.$id.'" name="'.$offset.'"> </a>';
209
+ }
210
+ $closeanchor = '';
211
+ if($scrollonclose && (is_numeric($scrollonclose) || $scrollonclose == 0)){
212
+ $trigclass .= ' scroll-to-trigger';
213
+ $closeanchor = '<a id="scrollonclose-'.$id.'" name="'.$scrollonclose.'"> </a>';
214
+ }
215
+ $link = $closeanchor.$anchor.'<'.$tag.' class="collapseomatic '.$trigclass.'" id="'.$id.'" '.$relatt.' '.$altatt.'>'.$startwrap.$title.$endwrap.'</'.$tag.'>';
216
+ if($swaptitle){
217
+ $link .= "<".$tag." id='swap-".$id."' style='display:none;'>".$startwrap.$swaptitle.$endwrap."</".$tag.">";
218
+ }
219
+
220
+ $eDiv = '';
221
+ if($content){
222
+ $eDiv = '<div id="target-'.$id.'" class="collapseomatic_content '.$targclass.'">'.do_shortcode($content).'</div>';
223
+ }
224
+
225
+ if($excerpt){
226
+ if($excerptpos == 'above-trigger'){
227
+ if($trigpos == 'below'){
228
+ $retStr = $ewo.$eDiv.$nibble.$link.$ewc;
229
+ }
230
+ else{
231
+ $retStr = $ewo.$nibble.$link.$eDiv.$ewc;
232
+ }
233
+ }
234
+ else if($excerptpos == 'below-trigger'){
235
+ if($trigpos == 'below'){
236
+ $retStr = $ewo.$eDiv.$link.$nibble.$ewc;
237
+ }
238
+ else{
239
+ $retStr = $ewo.$link.$nibble.$eDiv.$ewc;
240
+ }
241
+ }
242
+ else{
243
+ if($trigpos == 'below'){
244
+ $retStr = $ewo.$eDiv.$link.$nibble.$ewc;
245
+ }
246
+ else{
247
+ $retStr = $ewo.$link.$eDiv.$nibble.$ewc;
248
+ }
249
+ }
250
+ }
251
+ else{
252
+ if($trigpos == 'below'){
253
+ $retStr = $ewo.$eDiv.$link.$ewc;
254
+ }
255
+ else{
256
+ $retStr = $ewo.$link.$eDiv.$ewc;
257
+ }
258
+ }
259
+ return $retStr;
260
+ }
261
+
262
+ /**
263
+ * Admin options page
264
+ */
265
+ function options_page() {
266
+ ?>
267
+ <div class="wrap">
268
+ <div class="icon32" id="icon-options-custom" style="background:url( <?php echo plugins_url( 'images/collapse-o-matic-icon.png', __FILE__ ) ?> ) no-repeat 50% 50%"><br></div>
269
+ <h2>Collapse-O-Matic</h2>
270
+ </div>
271
+
272
+ <div class="postbox-container metabox-holder meta-box-sortables" style="width: 69%">
273
+ <div style="margin:0 5px;">
274
+ <div class="postbox">
275
+ <div class="handlediv" title="<?php _e( 'Click to toggle', 'colomat' ) ?>"><br/></div>
276
+ <h3 class="hndle"><?php _e( 'Default Collapse-O-Matic Settings', 'colomat' ) ?></h3>
277
+ <div class="inside">
278
+ <form method="post" action="options.php">
279
+ <?php
280
+ settings_fields( $this->domain );
281
+ $this->_set_options();
282
+ $options = $this->options;
283
+ ?>
284
+ <fieldset class="options">
285
+ <table class="form-table">
286
+ <tr>
287
+ <th><?php _e( 'Style', 'colomat' ) ?>:</th>
288
+ <td><label><select id="<?php echo $this->options_name ?>[style]" name="<?php echo $this->options_name ?>[style]">
289
+ <?php
290
+ if(empty($options['style'])){
291
+ $options['style'] = 'light';
292
+ }
293
+ $st_array = array(
294
+ __('Light', 'colomat') => 'light',
295
+ __('Dark', 'colomat') => 'dark'
296
+ );
297
+ foreach( $st_array as $key => $value){
298
+ $selected = '';
299
+ if($options['style'] == $value){
300
+ $selected = 'SELECTED';
301
+ }
302
+ echo '<option value="'.$value.'" '.$selected.'>'.$key.'</option>';
303
+ }
304
+ ?>
305
+ </select>
306
+ <br /><span class="description"><?php _e('Select Light for sites with lighter backgroudns. Select Dark for sites with darker backgrounds.', 'colomat'); ?></span></label>
307
+ </td>
308
+ </tr>
309
+
310
+ <tr>
311
+ <th><?php _e( 'Tag Attribute', 'colomat' ) ?>:</th>
312
+ <td><label><input type="text" id="<?php echo $this->options_name ?>[tag]" name="<?php echo $this->options_name ?>[tag]" value="<?php echo $options['tag']; ?>" />
313
+ <br /><span class="description"><?php printf(__('HTML tag use to wrap the trigger text. See %sTag Attribute%s in the documentation for more info.', 'colomat'), '<a href="http://plugins.twinpictures.de/plugins/collapse-o-matic/documentation/#tag" target="_blank">', '</a>'); ?></span></label>
314
+ </td>
315
+ </tr>
316
+
317
+ <tr>
318
+ <?php
319
+ if(empty($options['duration'])){
320
+ $options['duration'] = 'fast';
321
+ }
322
+ ?>
323
+ <th><?php _e( 'Collapse/Expand Duration', 'colomat' ) ?>:</th>
324
+ <td><label><input type="text" id="<?php echo $this->options_name ?>[duration]" name="<?php echo $this->options_name ?>[duration]" value="<?php echo $options['duration']; ?>" />
325
+ <br /><span class="description"><?php printf(__('A string or number determining how long the animation will run. See %sDuration%s in the documentation for more info.', 'colomat'), '<a href="http://plugins.twinpictures.de/plugins/collapse-o-matic/documentation/#duration" target="_blank">', '</a>'); ?></span></label>
326
+ </td>
327
+ </tr>
328
+
329
+ <tr>
330
+ <th><?php _e( 'Animation Effect', 'colomat' ) ?>:</th>
331
+ <td><label><select id="<?php echo $this->options_name ?>[slideEffect]" name="<?php echo $this->options_name ?>[slideEffect]">
332
+ <?php
333
+ if(empty($options['slideEffect'])){
334
+ $options['slideEffect'] = 'slideFade';
335
+ }
336
+ $se_array = array(
337
+ __('Slide Only', 'colomat') => 'slideToggle',
338
+ __('Slide & Fade', 'colomat') => 'slideFade'
339
+ );
340
+ foreach( $se_array as $key => $value){
341
+ $selected = '';
342
+ if($options['slideEffect'] == $value){
343
+ $selected = 'SELECTED';
344
+ }
345
+ echo '<option value="'.$value.'" '.$selected.'>'.$key.'</option>';
346
+ }
347
+ ?>
348
+ </select>
349
+ <br /><span class="description"><?php printf(__('Animation effect to use while collapsing and expanding. See %sAnimation Effect%s in the documentation for more info.', 'colomat'), '<a href="http://plugins.twinpictures.de/plugins/collapse-o-matic/documentation/#animation-effect" target="_blank">', '</a>'); ?></span></label>
350
+ </td>
351
+ </tr>
352
+
353
+ <tr>
354
+ <th><strong><?php _e( 'Level Up!', 'colomat' ) ?></strong></th>
355
+ <td><?php _e( '<em>Comming Soon: Collapse-Pro-Matic</em> our preimum plugin that offers additional attributes and the ability to set default attribute settings for all attributes.', 'colomat' ) ?>
356
+ </td>
357
+ </tr>
358
+ </table>
359
+ </fieldset>
360
+
361
+ <p class="submit">
362
+ <input class="button-primary" type="submit" value="<?php _e( 'Save Changes' ) ?>" />
363
+ </p>
364
+ </form>
365
+ </div>
366
+ </div>
367
+ </div>
368
+ </div>
369
+
370
+ <div class="postbox-container side metabox-holder meta-box-sortables" style="width:29%;">
371
+ <div style="margin:0 5px;">
372
+ <div class="postbox">
373
+ <div class="handlediv" title="<?php _e( 'Click to toggle', 'colomat' ) ?>"><br/></div>
374
+ <h3 class="hndle"><?php _e( 'About' ) ?></h3>
375
+ <div class="inside">
376
+ <h4><img src="<?php echo plugins_url( 'images/collapse-o-matic-icon.png', __FILE__ ) ?>" width="16" height="16"/> Collapse-O-Matic Version <?php echo $this->version; ?></h4>
377
+ <p><?php _e( 'Remove clutter, save space. Display and hide additional content in a SEO friendly way. Wrap any content&mdash;including other shortcodes&mdash;into a lovely jQuery expanding and collapsing element.', 'colomat') ?></p>
378
+ <ul>
379
+ <li><?php printf( __( '%sDetailed documentation%s, complete with working demonstrations of all shortcode attributes, is available for your instructional enjoyment.', 'colomat'), '<a href="http://plugins.twinpictures.de/plugins/collapse-o-matic/documentation/" target="_blank">', '</a>'); ?></li>
380
+ <li><?php printf( __( '%sFree%s & %sPremimum%s Support', 'colomat'), '<a href="http://wordpress.org/support/plugin/jquery-collapse-o-matic" target="_blank">', '</a>', '<a href="http://plugins.twinpictures.de/products-page/support/collapse-o-matic-premium-support/" target="_blank">', '</a>'); ?></li>
381
+ <li><?php printf( __('If you like this plugin, please consider %sreviewing it at WordPress.org%s to help others.', 'colomat'), '<a href="http://wordpress.org/support/view/plugin-reviews/jquery-collapse-o-matic" target="_blank">', '</a>' ) ?></li>
382
+ <li><a href="http://wordpress.org/extend/plugins/jquery-collapse-o-matic/" target="_blank">WordPress.org</a> | <a href="http://plugins.twinpictures.de/plugins/collapse-o-matic/" target="_blank">Twinpictues Plugin Oven</a></li>
383
+ </ul>
384
+ </div>
385
+ </div>
386
+ </div>
387
+ <div class="clear"></div>
388
+ </div>
389
+ <?php
390
+ }
391
+
392
+ /**
393
+ * Deactivation plugin method
394
+ */
395
+ function deactivation() {
396
+ delete_option( $this->options_name );
397
+ unregister_setting( $this->domain, $this->options_name );
398
+ }
399
+
400
+ /**
401
+ * Set options from save values or defaults
402
+ */
403
+ function _set_options() {
404
+ // set options
405
+ $saved_options = get_option( $this->options_name );
406
+
407
+ // backwards compatible (old values)
408
+ if ( empty( $saved_options ) ) {
409
+ $saved_options = get_option( $this->domain . 'options' );
410
+ }
411
+
412
+ // set all options
413
+ if ( ! empty( $saved_options ) ) {
414
+ foreach ( $this->options AS $key => $option ) {
415
+ $this->options[ $key ] = ( empty( $saved_options[ $key ] ) ) ? '' : $saved_options[ $key ];
416
+ }
417
+ }
418
+ }
419
+
420
+ } // end class WP_Collapse_O_Matic
421
+
422
+
423
+ /**
424
+ * Create instance
425
+ */
426
+ $WP_Collapse_O_Matic = new WP_Collapse_O_Matic;
427
+
428
+ ?>
trunk/dark_style.css ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .collapseomatic {
2
+ background-image: url(images/arrow-down-dark.png);
3
+ background-repeat: no-repeat;
4
+ padding: 0 0 10px 16px;
5
+ /*border: 1px dotted blue;*/
6
+ cursor: pointer;
7
+ }
8
+ .arrowright {
9
+ background-position: top right;
10
+ padding: 0 16px 10px 0;
11
+ }
12
+ .noarrow {
13
+ background-image: none !important;
14
+ padding: 0 0 10px 0;
15
+ }
16
+ .colomat-hover {
17
+ text-decoration: underline;
18
+ }
19
+ .colomat-close {
20
+ background-image: url(images/arrow-up-dark.png);
21
+ }
22
+ .collapseomatic_excerpt, .collapseomatic_content {
23
+ margin-top: 0px;
24
+ margin-left: 16px;
25
+ padding: 0px;
26
+ }
27
+ .content_collapse_wrapper {
28
+ display: none;
29
+ }
30
+ .collapseall, .expandall {
31
+ cursor: pointer;
32
+ }
33
+ .collapseall:hover, .expandall:hover {
34
+ text-decoration: underline;
35
+ }
trunk/images/arrow-down-dark.png ADDED
Binary file
trunk/images/arrow-down.png ADDED
Binary file
trunk/images/arrow-up-dark.png ADDED
Binary file
trunk/images/arrow-up.png ADDED
Binary file
trunk/images/arrows.psd ADDED
Binary file
trunk/js/collapse.js ADDED
@@ -0,0 +1,468 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * jQuery Collapse-O-Matic v1.5
3
+ * http://plugins.twinpictures.de/plugins/collapse-o-matic/
4
+ *
5
+ * Copyright 2012, Twinpictures
6
+ *
7
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ * of this software and associated documentation files (the "Software"), to deal
9
+ * in the Software without restriction, including without limitation the rights
10
+ * to use, copy, modify, merge, publish, distribute, sublicense, blend, trade,
11
+ * bake, hack, scramble, difiburlate, digest and/or sell copies of the Software,
12
+ * and to permit persons to whom the Software is furnished to do so, subject to
13
+ * the following conditions:
14
+ *
15
+ * The above copyright notice and this permission notice shall be included in
16
+ * all copies or substantial portions of the Software.
17
+ *
18
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24
+ * THE SOFTWARE.
25
+ */
26
+ function collapse_init() {
27
+ //force collapse
28
+ jQuery('.force_content_collapse').each(function(index) {
29
+ jQuery(this).css('display', 'none');
30
+ });
31
+
32
+ //inital collapse
33
+ jQuery('.collapseomatic:not(.colomat-close)').each(function(index) {
34
+ var thisid = jQuery(this).attr('id');
35
+ jQuery('#target-'+thisid).css('display', 'none');
36
+ });
37
+
38
+ //inital swaptitle for pre-expanded elements
39
+ jQuery('.collapseomatic.colomat-close').each(function(index) {
40
+ var thisid = jQuery(this).attr('id');
41
+ if(jQuery("#swap-"+thisid).length > 0){
42
+ swapTitle(this, thisid);
43
+ }
44
+ });
45
+ }
46
+
47
+ function swapTitle(obj, id){
48
+ var orightml = jQuery(obj).html();
49
+ var swaphtml = jQuery("#swap-"+id).html();
50
+ jQuery(obj).html(swaphtml);
51
+ jQuery("#swap-"+id).html(orightml);
52
+
53
+ //is cufon involved? if so, do that thing
54
+ if(swaphtml.indexOf("<cufon") != -1){
55
+ var trigelem = jQuery(this).get(0).tagName;
56
+ Cufon.replace(trigelem);
57
+ }
58
+ }
59
+
60
+ function closeOtherGroups(rel){
61
+ jQuery('.collapseomatic[rel!="' + rel +'"]').each(function(index) {
62
+ //add close class if open
63
+ if(jQuery(this).hasClass('colomat-expand-only') && jQuery(this).hasClass('colomat-close')){
64
+ return;
65
+ }
66
+ if(jQuery(this).hasClass('colomat-close') && jQuery(this).attr('rel') !== undefined){
67
+ jQuery(this).removeClass('colomat-close');
68
+ var id = jQuery(this).attr('id');
69
+ //remove parent highlight class
70
+ jQuery('#parent-'+id).removeClass('colomat-parent-highlight');
71
+
72
+ //check if the title needs to be swapped out
73
+ if(jQuery("#swap-"+id).length > 0){
74
+ swapTitle(this, id);
75
+ }
76
+
77
+ //slideToggle
78
+ if(colomatslideEffect == 'slideToggle'){
79
+ jQuery('#target-'+id).slideToggle(colomatduration, function() {
80
+ // Animation complete.
81
+ });
82
+ }
83
+ //slideFade
84
+ else if(colomatslideEffect == 'slideFade'){
85
+ jQuery('#target-'+id).animate({
86
+ height: "toggle",
87
+ opacity: "toggle"
88
+ }, colomatduration);
89
+ }
90
+
91
+ //check if there are nested children that need to be collapsed
92
+ var ancestors = jQuery('.collapseomatic', '#target-'+id);
93
+ ancestors.each(function(index) {
94
+ jQuery(this).removeClass('colomat-close');
95
+ var thisid = jQuery(this).attr('id');
96
+ jQuery('#target-'+thisid).css('display', 'none');
97
+ })
98
+ }
99
+ });
100
+ }
101
+
102
+ function closeOtherMembers(rel, id){
103
+ jQuery('.collapseomatic[rel="' + rel +'"]').each(function(index) {
104
+ if(jQuery(this).hasClass('colomat-expand-only') && jQuery(this).hasClass('colomat-close')){
105
+ return;
106
+ }
107
+
108
+ //add close class if open
109
+ if(jQuery(this).attr('id') != id && jQuery(this).hasClass('colomat-close') && jQuery(this).attr('rel') !== undefined){
110
+ //collapse the element
111
+ jQuery(this).removeClass('colomat-close');
112
+ var thisid = jQuery(this).attr('id');
113
+ //remove parent highlight class
114
+ jQuery('#parent-'+thisid).removeClass('colomat-parent-highlight');
115
+
116
+ //check if the title needs to be swapped out
117
+ if(jQuery("#swap-"+thisid).length > 0){
118
+ swapTitle(this, thisid);
119
+ }
120
+
121
+ //check for snap-shut
122
+ if(!jQuery(this).hasClass('colomat-close') && jQuery(this).hasClass('snap-shut')){
123
+ jQuery('#target-'+thisid).hide();
124
+ }
125
+
126
+ //slideToggle
127
+ else if(colomatslideEffect == 'slideToggle'){
128
+ jQuery('#target-'+thisid).slideToggle(colomatduration, function() {
129
+ // Animation complete.
130
+ });
131
+ }
132
+ //slideFade
133
+ else if(colomatslideEffect == 'slideFade'){
134
+ jQuery('#target-'+thisid).animate({
135
+ height: "toggle",
136
+ opacity: "toggle"
137
+ }, colomatduration);
138
+ }
139
+
140
+ //check if there are nested children that need to be collapsed
141
+ var ancestors = jQuery('.collapseomatic', '#target-'+id);
142
+ ancestors.each(function(index) {
143
+ if(jQuery(this).hasClass('colomat-expand-only') && jQuery(this).hasClass('colomat-close')){
144
+ return;
145
+ }
146
+ if(jQuery(this).attr('id').indexOf('bot-') == '-1'){
147
+ jQuery(this).removeClass('colomat-close');
148
+ var thisid = jQuery(this).attr('id');
149
+ //check if the title needs to be swapped out
150
+ if(jQuery("#swap-"+thisid).length > 0){
151
+ swapTitle(this, thisid);
152
+ }
153
+ jQuery('#target-'+thisid).css('display', 'none');
154
+ }
155
+ })
156
+ }
157
+ });
158
+ }
159
+
160
+ //initial position for find-me feature
161
+ function findme(){
162
+ jQuery(document).ready(function() {
163
+ jQuery('.find-me').each(function(index) {
164
+ var thisid = jQuery(this).attr('id');
165
+ if( !jQuery('#find-'+thisid).attr('name') ){
166
+ var target_offset = jQuery(this).offset();
167
+ var target_top_offset = target_offset.top;
168
+ jQuery('#find-'+thisid).attr('name', target_top_offset);
169
+ }
170
+ });
171
+ });
172
+ }
173
+
174
+ jQuery(document).ready(function() {
175
+ //console.log(colomatduration, colomatslideEffect);
176
+ collapse_init();
177
+
178
+ //Display the collapse wrapper... use to reverse the show-all on no JavaScript degredation.
179
+ jQuery('.content_collapse_wrapper').each(function(index) {
180
+ jQuery(this).css('display', 'inline');
181
+ });
182
+
183
+ //hover
184
+ jQuery('.collapseomatic').livequery(function(){
185
+ jQuery(this).hover(function() {
186
+ jQuery(this).addClass('colomat-hover');
187
+ }, function() {
188
+ jQuery(this).removeClass('colomat-hover');
189
+ });
190
+ }, function() {
191
+ jQuery(this).unbind('mouseover').unbind('mouseout');
192
+ });
193
+
194
+
195
+ //jQuery('.collapseomatic').on("click", function(event){
196
+ //jQuery('.collapseomatic').click(function() {
197
+ jQuery('.collapseomatic').livequery('click', function(event) {
198
+ var offest_top;
199
+
200
+ //alert('phones ringin dude');
201
+ if(jQuery(this).hasClass('colomat-expand-only') && jQuery(this).hasClass('colomat-close')){
202
+ return;
203
+ }
204
+ var id = jQuery(this).attr('id');
205
+ var offset_top = 0;
206
+
207
+ //deal with any scroll to links
208
+ if(jQuery(this).hasClass('colomat-close') && jQuery(this).hasClass('scroll-to-trigger')){
209
+ offset_top = jQuery('#scrollonclose-'+id).attr('name');
210
+ }
211
+
212
+ if(id.indexOf('bot-') != '-1'){
213
+ id = id.substr(4);
214
+ jQuery('#'+id).toggleClass('colomat-close');
215
+
216
+ //deal with any scroll to links from the Internal Collapse Trigger
217
+ if(jQuery(this).hasClass('scroll-to-trigger')){
218
+ var target_offset = jQuery('#'+id).offset();
219
+ offset_top = target_offset.top;
220
+ }
221
+
222
+ //deal with any scroll to links from the Title Trigger
223
+ if(jQuery('#'+id).hasClass('scroll-to-trigger')){
224
+ offset_top = jQuery('#scrollonclose-'+id).attr('name');
225
+ }
226
+ }
227
+ else{
228
+ jQuery(this).toggleClass('colomat-close');
229
+ }
230
+
231
+ //check if the title needs to be swapped out
232
+ if(jQuery("#swap-"+id).length > 0){
233
+ swapTitle(jQuery('#'+id), id);
234
+ }
235
+
236
+ //add visited class
237
+ jQuery(this).addClass('colomat-visited');
238
+
239
+ //toggle parent highlight class
240
+ var parentID = 'parent-'+id;
241
+ jQuery('#' + parentID).toggleClass('colomat-parent-highlight');
242
+
243
+ //check for snap-shut
244
+ if(!jQuery(this).hasClass('colomat-close') && jQuery(this).hasClass('snap-shut')){
245
+ jQuery('#target-'+id).hide();
246
+ }
247
+
248
+ //slideToggle
249
+ else if(colomatslideEffect == 'slideToggle'){
250
+ jQuery('#target-'+id).slideToggle(colomatduration, function() {
251
+ // Animation complete.
252
+ });
253
+ }
254
+ //slideFade
255
+ else if(colomatslideEffect == 'slideFade'){
256
+ jQuery('#target-'+id).removeClass('maptastic');
257
+ jQuery('#target-'+id).animate({
258
+ height: "toggle",
259
+ opacity: "toggle"
260
+ }, colomatduration);
261
+ }
262
+
263
+ //deal with grouped items if needed
264
+ if(jQuery(this).attr('rel') !== undefined){
265
+ var rel = jQuery(this).attr('rel');
266
+ if(rel.indexOf('-highlander') != '-1'){
267
+ closeOtherMembers(rel, id);
268
+ }
269
+ else{
270
+ closeOtherGroups(rel);
271
+ }
272
+ }
273
+
274
+ if(offset_top){
275
+ jQuery('html, body').animate({scrollTop:offset_top}, 500);
276
+ }
277
+ });
278
+
279
+ jQuery('.expandall').livequery('click', function(event) {
280
+ if(jQuery(this).attr('rel') !== undefined){
281
+ var rel = jQuery(this).attr('rel');
282
+ jQuery('.collapseomatic[rel="' + rel +'"].collapseomatic:not(.colomat-close)').each(function(index) {
283
+ jQuery(this).addClass('colomat-close');
284
+ var thisid = jQuery(this).attr('id');
285
+ jQuery('#parent-'+thisid).addClass('colomat-parent-highlight');
286
+
287
+ if(jQuery("#swap-"+thisid).length > 0){
288
+ swapTitle(this, thisid);
289
+ }
290
+
291
+ //slideToggle
292
+ if(colomatslideEffect == 'slideToggle'){
293
+ jQuery('#target-'+thisid).slideToggle(colomatduration, function() {
294
+ // Animation complete.
295
+ });
296
+ }
297
+ //slideFade
298
+ else if(colomatslideEffect == 'slideFade'){
299
+ jQuery('#target-'+thisid).animate({
300
+ height: "toggle",
301
+ opacity: "toggle"
302
+ }, colomatduration);
303
+ }
304
+ });
305
+ }
306
+ else{
307
+ jQuery('.collapseomatic:not(.colomat-close)').each(function(index) {
308
+ jQuery(this).addClass('colomat-close');
309
+ var thisid = jQuery(this).attr('id');
310
+ jQuery('#parent-'+thisid).addClass('colomat-parent-highlight');
311
+
312
+ if(jQuery("#swap-"+thisid).length > 0){
313
+ swapTitle(this, thisid);
314
+ }
315
+
316
+ //slideToggle
317
+ if(colomatslideEffect == 'slideToggle'){
318
+ jQuery('#target-'+thisid).slideToggle(colomatduration, function() {
319
+ // Animation complete.
320
+ });
321
+ }
322
+ //slideFade
323
+ else if(colomatslideEffect == 'slideFade'){
324
+ jQuery('#target-'+thisid).animate({
325
+ height: "toggle",
326
+ opacity: "toggle"
327
+ }, colomatduration);
328
+ }
329
+ });
330
+ }
331
+ });
332
+
333
+ jQuery('.collapseall').livequery('click', function(event) {
334
+ if(jQuery(this).attr('rel') !== undefined){
335
+ var rel = jQuery(this).attr('rel');
336
+ jQuery('.collapseomatic[rel="' + rel +'"].collapseomatic.colomat-close').each(function(index) {
337
+ if(jQuery(this).hasClass('colomat-expand-only') && jQuery(this).hasClass('colomat-close')){
338
+ return;
339
+ }
340
+
341
+ jQuery(this).removeClass('colomat-close');
342
+ var thisid = jQuery(this).attr('id');
343
+ jQuery('#parent-'+thisid).removeClass('colomat-parent-highlight');
344
+
345
+ if(jQuery("#swap-"+thisid).length > 0){
346
+ swapTitle(this, thisid);
347
+ }
348
+
349
+ //slideToggle
350
+ if(colomatslideEffect == 'slideToggle'){
351
+ jQuery('#target-'+thisid).slideToggle(colomatduration, function() {
352
+ // Animation complete.
353
+ });
354
+ }
355
+ //slideFade
356
+ else if(colomatslideEffect == 'slideFade'){
357
+ jQuery('#target-'+thisid).animate({
358
+ height: "toggle",
359
+ opacity: "toggle"
360
+ }, colomatduration);
361
+ }
362
+ });
363
+ }
364
+ else{
365
+ jQuery('.collapseomatic.colomat-close').each(function(index) {
366
+ if(jQuery(this).hasClass('colomat-expand-only') && jQuery(this).hasClass('colomat-close')){
367
+ return;
368
+ }
369
+ jQuery(this).removeClass('colomat-close');
370
+ var thisid = jQuery(this).attr('id');
371
+ jQuery('#parent-'+thisid).removeClass('colomat-parent-highlight');
372
+
373
+ if(jQuery("#swap-"+thisid).length > 0){
374
+ swapTitle(this, thisid);
375
+ }
376
+
377
+ //slideToggle
378
+ if(colomatslideEffect == 'slideToggle'){
379
+ jQuery('#target-'+thisid).slideToggle(colomatduration, function() {
380
+ // Animation complete.
381
+ });
382
+ }
383
+ //slideFade
384
+ else if(colomatslideEffect == 'slideFade'){
385
+ jQuery('#target-'+thisid).animate({
386
+ height: "toggle",
387
+ opacity: "toggle"
388
+ }, colomatduration);
389
+ }
390
+ });
391
+ }
392
+ });
393
+
394
+ //do we have a find me?
395
+ //jQuery('.find-me').on("click", function(event){
396
+ //jQuery('.find-me').click(function() {
397
+ jQuery('.find-me').livequery('click', function(event) {
398
+ var myFile = document.location.toString();
399
+ if (myFile.match('#')) {
400
+ return;
401
+ }
402
+ //get the top offset of the target anchor
403
+ var thisid = jQuery(this).attr('id');
404
+ var offset_top = jQuery('#find-'+thisid).attr('name');
405
+ jQuery('html, body').animate({scrollTop:offset_top}, 500);
406
+ //console.log(offset_top);
407
+ });
408
+
409
+ //handle new page loads with anchor
410
+ var myFile = document.location.toString();
411
+ if (myFile.match('#')) { // the URL contains an anchor
412
+ // click the navigation item corresponding to the anchor
413
+ var anchor_arr = myFile.split('#');
414
+ if(anchor_arr.length > 1){
415
+ junk = anchor_arr.splice(0, 1);
416
+ anchor = anchor_arr.join('#');
417
+ }
418
+ else{
419
+ anchor = anchor_arr[0];
420
+ }
421
+ jQuery('#' + anchor).click();
422
+ //expand any nested parents
423
+ jQuery('#' + anchor).parents('.collapseomatic_content').each(function(index) {
424
+ parent_arr = jQuery(this).attr('id').split('-');
425
+ junk = parent_arr.splice(0, 1);
426
+ parent = parent_arr.join('-');
427
+ jQuery('#' + parent).click();
428
+ })
429
+ }
430
+
431
+ //handle anchor links within the same page
432
+ jQuery('a.expandanchor').livequery('click', function(event) {
433
+ event.preventDefault();
434
+ var fullurl = jQuery(this).attr('href');
435
+ if (fullurl.match('#')) { // the URL contains an anchor
436
+ // click the navigation item corresponding to the anchor
437
+ var anchor_arr = fullurl.split('#');
438
+ if(anchor_arr.length > 1){
439
+ junk = anchor_arr.splice(0, 1);
440
+ anchor = anchor_arr.join('#');
441
+ }
442
+ else{
443
+ anchor = anchor_arr[0];
444
+ }
445
+ if(!jQuery('#' + anchor).hasClass('colomat-close')){
446
+ jQuery('#' + anchor).click();
447
+ }
448
+
449
+ //expand any nested parents
450
+ jQuery('#' + anchor).parents('.collapseomatic_content').each(function(index) {
451
+ parent_arr = jQuery(this).attr('id').split('-');
452
+ junk = parent_arr.splice(0, 1);
453
+ parent = parent_arr.join('-');
454
+ if(!jQuery('#' + parent).hasClass('colomat-close')){
455
+ jQuery('#' + parent).click();
456
+ }
457
+
458
+ })
459
+ }
460
+ });
461
+
462
+ //jQuery('a.colomat-nolink').click(function(event) {
463
+ jQuery('a.colomat-nolink').livequery('click', function(event) {
464
+ event.preventDefault();
465
+ });
466
+ });
467
+
468
+ jQuery(window).load( findme );
trunk/js/collapse.min.js ADDED
@@ -0,0 +1 @@
 
1
+ function collapse_init(){jQuery('.force_content_collapse').each(function(index){jQuery(this).css('display','none')});jQuery('.collapseomatic:not(.colomat-close)').each(function(index){var thisid=jQuery(this).attr('id');jQuery('#target-'+thisid).css('display','none')});jQuery('.collapseomatic.colomat-close').each(function(index){var thisid=jQuery(this).attr('id');if(jQuery("#swap-"+thisid).length>0){swapTitle(this,thisid)}})}function swapTitle(obj,id){var orightml=jQuery(obj).html();var swaphtml=jQuery("#swap-"+id).html();jQuery(obj).html(swaphtml);jQuery("#swap-"+id).html(orightml);if(swaphtml.indexOf("<cufon")!=-1){var trigelem=jQuery(this).get(0).tagName;Cufon.replace(trigelem)}}function closeOtherGroups(rel){jQuery('.collapseomatic[rel!="'+rel+'"]').each(function(index){if(jQuery(this).hasClass('colomat-expand-only')&&jQuery(this).hasClass('colomat-close')){return}if(jQuery(this).hasClass('colomat-close')&&jQuery(this).attr('rel')!==undefined){jQuery(this).removeClass('colomat-close');var id=jQuery(this).attr('id');jQuery('#parent-'+id).removeClass('colomat-parent-highlight');if(jQuery("#swap-"+id).length>0){swapTitle(this,id)}if(colomatslideEffect=='slideToggle'){jQuery('#target-'+id).slideToggle(colomatduration,function(){})}else if(colomatslideEffect=='slideFade'){jQuery('#target-'+id).animate({height:"toggle",opacity:"toggle"},colomatduration)}var ancestors=jQuery('.collapseomatic','#target-'+id);ancestors.each(function(index){jQuery(this).removeClass('colomat-close');var thisid=jQuery(this).attr('id');jQuery('#target-'+thisid).css('display','none')})}})}function closeOtherMembers(rel,id){jQuery('.collapseomatic[rel="'+rel+'"]').each(function(index){if(jQuery(this).hasClass('colomat-expand-only')&&jQuery(this).hasClass('colomat-close')){return}if(jQuery(this).attr('id')!=id&&jQuery(this).hasClass('colomat-close')&&jQuery(this).attr('rel')!==undefined){jQuery(this).removeClass('colomat-close');var thisid=jQuery(this).attr('id');jQuery('#parent-'+thisid).removeClass('colomat-parent-highlight');if(jQuery("#swap-"+thisid).length>0){swapTitle(this,thisid)}if(!jQuery(this).hasClass('colomat-close')&&jQuery(this).hasClass('snap-shut')){jQuery('#target-'+thisid).hide()}else if(colomatslideEffect=='slideToggle'){jQuery('#target-'+thisid).slideToggle(colomatduration,function(){})}else if(colomatslideEffect=='slideFade'){jQuery('#target-'+thisid).animate({height:"toggle",opacity:"toggle"},colomatduration)}var ancestors=jQuery('.collapseomatic','#target-'+id);ancestors.each(function(index){if(jQuery(this).hasClass('colomat-expand-only')&&jQuery(this).hasClass('colomat-close')){return}if(jQuery(this).attr('id').indexOf('bot-')=='-1'){jQuery(this).removeClass('colomat-close');var thisid=jQuery(this).attr('id');if(jQuery("#swap-"+thisid).length>0){swapTitle(this,thisid)}jQuery('#target-'+thisid).css('display','none')}})}})}function findme(){jQuery(document).ready(function(){jQuery('.find-me').each(function(index){var thisid=jQuery(this).attr('id');if(!jQuery('#find-'+thisid).attr('name')){var target_offset=jQuery(this).offset();var target_top_offset=target_offset.top;jQuery('#find-'+thisid).attr('name',target_top_offset)}})})}jQuery(document).ready(function(){collapse_init();jQuery('.content_collapse_wrapper').each(function(index){jQuery(this).css('display','inline')});jQuery('.collapseomatic').livequery(function(){jQuery(this).hover(function(){jQuery(this).addClass('colomat-hover')},function(){jQuery(this).removeClass('colomat-hover')})},function(){jQuery(this).unbind('mouseover').unbind('mouseout')});jQuery('.collapseomatic').livequery('click',function(event){var offest_top;if(jQuery(this).hasClass('colomat-expand-only')&&jQuery(this).hasClass('colomat-close')){return}var id=jQuery(this).attr('id');var offset_top=0;if(jQuery(this).hasClass('colomat-close')&&jQuery(this).hasClass('scroll-to-trigger')){offset_top=jQuery('#scrollonclose-'+id).attr('name')}if(id.indexOf('bot-')!='-1'){id=id.substr(4);jQuery('#'+id).toggleClass('colomat-close');if(jQuery(this).hasClass('scroll-to-trigger')){var target_offset=jQuery('#'+id).offset();offset_top=target_offset.top}if(jQuery('#'+id).hasClass('scroll-to-trigger')){offset_top=jQuery('#scrollonclose-'+id).attr('name')}}else{jQuery(this).toggleClass('colomat-close')}if(jQuery("#swap-"+id).length>0){swapTitle(jQuery('#'+id),id)}jQuery(this).addClass('colomat-visited');var parentID='parent-'+id;jQuery('#'+parentID).toggleClass('colomat-parent-highlight');if(!jQuery(this).hasClass('colomat-close')&&jQuery(this).hasClass('snap-shut')){jQuery('#target-'+id).hide()}else if(colomatslideEffect=='slideToggle'){jQuery('#target-'+id).slideToggle(colomatduration,function(){})}else if(colomatslideEffect=='slideFade'){jQuery('#target-'+id).removeClass('maptastic');jQuery('#target-'+id).animate({height:"toggle",opacity:"toggle"},colomatduration)}if(jQuery(this).attr('rel')!==undefined){var rel=jQuery(this).attr('rel');if(rel.indexOf('-highlander')!='-1'){closeOtherMembers(rel,id)}else{closeOtherGroups(rel)}}if(offset_top){jQuery('html, body').animate({scrollTop:offset_top},500)}});jQuery('.expandall').livequery('click',function(event){if(jQuery(this).attr('rel')!==undefined){var rel=jQuery(this).attr('rel');jQuery('.collapseomatic[rel="'+rel+'"].collapseomatic:not(.colomat-close)').each(function(index){jQuery(this).addClass('colomat-close');var thisid=jQuery(this).attr('id');jQuery('#parent-'+thisid).addClass('colomat-parent-highlight');if(jQuery("#swap-"+thisid).length>0){swapTitle(this,thisid)}if(colomatslideEffect=='slideToggle'){jQuery('#target-'+thisid).slideToggle(colomatduration,function(){})}else if(colomatslideEffect=='slideFade'){jQuery('#target-'+thisid).animate({height:"toggle",opacity:"toggle"},colomatduration)}})}else{jQuery('.collapseomatic:not(.colomat-close)').each(function(index){jQuery(this).addClass('colomat-close');var thisid=jQuery(this).attr('id');jQuery('#parent-'+thisid).addClass('colomat-parent-highlight');if(jQuery("#swap-"+thisid).length>0){swapTitle(this,thisid)}if(colomatslideEffect=='slideToggle'){jQuery('#target-'+thisid).slideToggle(colomatduration,function(){})}else if(colomatslideEffect=='slideFade'){jQuery('#target-'+thisid).animate({height:"toggle",opacity:"toggle"},colomatduration)}})}});jQuery('.collapseall').livequery('click',function(event){if(jQuery(this).attr('rel')!==undefined){var rel=jQuery(this).attr('rel');jQuery('.collapseomatic[rel="'+rel+'"].collapseomatic.colomat-close').each(function(index){if(jQuery(this).hasClass('colomat-expand-only')&&jQuery(this).hasClass('colomat-close')){return}jQuery(this).removeClass('colomat-close');var thisid=jQuery(this).attr('id');jQuery('#parent-'+thisid).removeClass('colomat-parent-highlight');if(jQuery("#swap-"+thisid).length>0){swapTitle(this,thisid)}if(colomatslideEffect=='slideToggle'){jQuery('#target-'+thisid).slideToggle(colomatduration,function(){})}else if(colomatslideEffect=='slideFade'){jQuery('#target-'+thisid).animate({height:"toggle",opacity:"toggle"},colomatduration)}})}else{jQuery('.collapseomatic.colomat-close').each(function(index){if(jQuery(this).hasClass('colomat-expand-only')&&jQuery(this).hasClass('colomat-close')){return}jQuery(this).removeClass('colomat-close');var thisid=jQuery(this).attr('id');jQuery('#parent-'+thisid).removeClass('colomat-parent-highlight');if(jQuery("#swap-"+thisid).length>0){swapTitle(this,thisid)}if(colomatslideEffect=='slideToggle'){jQuery('#target-'+thisid).slideToggle(colomatduration,function(){})}else if(colomatslideEffect=='slideFade'){jQuery('#target-'+thisid).animate({height:"toggle",opacity:"toggle"},colomatduration)}})}});jQuery('.find-me').livequery('click',function(event){var myFile=document.location.toString();if(myFile.match('#')){return}var thisid=jQuery(this).attr('id');var offset_top=jQuery('#find-'+thisid).attr('name');jQuery('html, body').animate({scrollTop:offset_top},500)});var myFile=document.location.toString();if(myFile.match('#')){var anchor_arr=myFile.split('#');if(anchor_arr.length>1){junk=anchor_arr.splice(0,1);anchor=anchor_arr.join('#')}else{anchor=anchor_arr[0]}jQuery('#'+anchor).click();jQuery('#'+anchor).parents('.collapseomatic_content').each(function(index){parent_arr=jQuery(this).attr('id').split('-');junk=parent_arr.splice(0,1);parent=parent_arr.join('-');jQuery('#'+parent).click()})}jQuery('a.expandanchor').livequery('click',function(event){event.preventDefault();var fullurl=jQuery(this).attr('href');if(fullurl.match('#')){var anchor_arr=fullurl.split('#');if(anchor_arr.length>1){junk=anchor_arr.splice(0,1);anchor=anchor_arr.join('#')}else{anchor=anchor_arr[0]}if(!jQuery('#'+anchor).hasClass('colomat-close')){jQuery('#'+anchor).click()}jQuery('#'+anchor).parents('.collapseomatic_content').each(function(index){parent_arr=jQuery(this).attr('id').split('-');junk=parent_arr.splice(0,1);parent=parent_arr.join('-');if(!jQuery('#'+parent).hasClass('colomat-close')){jQuery('#'+parent).click()}})}});jQuery('a.colomat-nolink').livequery('click',function(event){event.preventDefault()})});jQuery(window).load(findme);
trunk/js/jquery.livequery.min.js ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ /* Copyright (c) 2010 Brandon Aaron (http://brandonaaron.net)
2
+ * Dual licensed under the MIT (MIT_LICENSE.txt)
3
+ * and GPL Version 2 (GPL_LICENSE.txt) licenses.
4
+ *
5
+ * Version: 1.1.1
6
+ * Requires jQuery 1.3+
7
+ * Docs: http://docs.jquery.com/Plugins/livequery
8
+ */
9
+ (function(a){a.extend(a.fn,{livequery:function(e,d,c){var b=this,f;if(a.isFunction(e)){c=d,d=e,e=undefined}a.each(a.livequery.queries,function(g,h){if(b.selector==h.selector&&b.context==h.context&&e==h.type&&(!d||d.$lqguid==h.fn.$lqguid)&&(!c||c.$lqguid==h.fn2.$lqguid)){return(f=h)&&false}});f=f||new a.livequery(this.selector,this.context,e,d,c);f.stopped=false;f.run();return this},expire:function(e,d,c){var b=this;if(a.isFunction(e)){c=d,d=e,e=undefined}a.each(a.livequery.queries,function(f,g){if(b.selector==g.selector&&b.context==g.context&&(!e||e==g.type)&&(!d||d.$lqguid==g.fn.$lqguid)&&(!c||c.$lqguid==g.fn2.$lqguid)&&!this.stopped){a.livequery.stop(g.id)}});return this}});a.livequery=function(b,d,f,e,c){this.selector=b;this.context=d;this.type=f;this.fn=e;this.fn2=c;this.elements=[];this.stopped=false;this.id=a.livequery.queries.push(this)-1;e.$lqguid=e.$lqguid||a.livequery.guid++;if(c){c.$lqguid=c.$lqguid||a.livequery.guid++}return this};a.livequery.prototype={stop:function(){var b=this;if(this.type){this.elements.unbind(this.type,this.fn)}else{if(this.fn2){this.elements.each(function(c,d){b.fn2.apply(d)})}}this.elements=[];this.stopped=true},run:function(){if(this.stopped){return}var d=this;var e=this.elements,c=a(this.selector,this.context),b=c.not(e);this.elements=c;if(this.type){b.bind(this.type,this.fn);if(e.length>0){a.each(e,function(f,g){if(a.inArray(g,c)<0){a.event.remove(g,d.type,d.fn)}})}}else{b.each(function(){d.fn.apply(this)});if(this.fn2&&e.length>0){a.each(e,function(f,g){if(a.inArray(g,c)<0){d.fn2.apply(g)}})}}}};a.extend(a.livequery,{guid:0,queries:[],queue:[],running:false,timeout:null,checkQueue:function(){if(a.livequery.running&&a.livequery.queue.length){var b=a.livequery.queue.length;while(b--){a.livequery.queries[a.livequery.queue.shift()].run()}}},pause:function(){a.livequery.running=false},play:function(){a.livequery.running=true;a.livequery.run()},registerPlugin:function(){a.each(arguments,function(c,d){if(!a.fn[d]){return}var b=a.fn[d];a.fn[d]=function(){var e=b.apply(this,arguments);a.livequery.run();return e}})},run:function(b){if(b!=undefined){if(a.inArray(b,a.livequery.queue)<0){a.livequery.queue.push(b)}}else{a.each(a.livequery.queries,function(c){if(a.inArray(c,a.livequery.queue)<0){a.livequery.queue.push(c)}})}if(a.livequery.timeout){clearTimeout(a.livequery.timeout)}a.livequery.timeout=setTimeout(a.livequery.checkQueue,20)},stop:function(b){if(b!=undefined){a.livequery.queries[b].stop()}else{a.each(a.livequery.queries,function(c){a.livequery.queries[c].stop()})}}});a.livequery.registerPlugin("append","prepend","after","before","wrap","attr","removeAttr","addClass","removeClass","toggleClass","empty","remove","html");a(function(){a.livequery.play()})})(jQuery);
trunk/languages/colomat.pot ADDED
@@ -0,0 +1,141 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2013 jQuery Collapse-O-Matic
2
+ # This file is distributed under the same license as the jQuery Collapse-O-Matic package.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: jQuery Collapse-O-Matic 1.5f\n"
6
+ "Report-Msgid-Bugs-To: http://wordpress.org/tag/colomat\n"
7
+ "POT-Creation-Date: 2013-01-08 10:09:59+00:00\n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "PO-Revision-Date: 2013-MO-DA HO:MI+ZONE\n"
12
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
+ "Language-Team: LANGUAGE <LL@li.org>\n"
14
+
15
+ #: colomat.php:275 colomat.php:373
16
+ msgid "Click to toggle"
17
+ msgstr ""
18
+
19
+ #: colomat.php:276
20
+ msgid "Default Collapse-O-Matic Settings"
21
+ msgstr ""
22
+
23
+ #: colomat.php:287
24
+ msgid "Style"
25
+ msgstr ""
26
+
27
+ #: colomat.php:294
28
+ msgid "Light"
29
+ msgstr ""
30
+
31
+ #: colomat.php:295
32
+ msgid "Dark"
33
+ msgstr ""
34
+
35
+ #: colomat.php:306
36
+ msgid ""
37
+ "Select Light for sites with lighter backgroudns. Select Dark for sites with "
38
+ "darker backgrounds."
39
+ msgstr ""
40
+
41
+ #: colomat.php:311
42
+ msgid "Tag Attribute"
43
+ msgstr ""
44
+
45
+ #: colomat.php:313
46
+ msgid ""
47
+ "HTML tag use to wrap the trigger text. See %sTag Attribute%s in the "
48
+ "documentation for more info."
49
+ msgstr ""
50
+
51
+ #: colomat.php:323
52
+ msgid "Collapse/Expand Duration"
53
+ msgstr ""
54
+
55
+ #: colomat.php:325
56
+ msgid ""
57
+ "A string or number determining how long the animation will run. See %"
58
+ "sDuration%s in the documentation for more info."
59
+ msgstr ""
60
+
61
+ #: colomat.php:330
62
+ msgid "Animation Effect"
63
+ msgstr ""
64
+
65
+ #: colomat.php:337
66
+ msgid "Slide Only"
67
+ msgstr ""
68
+
69
+ #: colomat.php:338
70
+ msgid "Slide & Fade"
71
+ msgstr ""
72
+
73
+ #: colomat.php:349
74
+ msgid ""
75
+ "Animation effect to use while collapsing and expanding. See %sAnimation "
76
+ "Effect%s in the documentation for more info."
77
+ msgstr ""
78
+
79
+ #: colomat.php:354
80
+ msgid "Level Up!"
81
+ msgstr ""
82
+
83
+ #: colomat.php:355
84
+ msgid ""
85
+ "<em>Comming Soon: Collapse-Pro-Matic</em> our preimum plugin that offers "
86
+ "additional attributes and the ability to set default attribute settings for "
87
+ "all attributes."
88
+ msgstr ""
89
+
90
+ #: colomat.php:362
91
+ msgid "Save Changes"
92
+ msgstr ""
93
+
94
+ #: colomat.php:374
95
+ msgid "About"
96
+ msgstr ""
97
+
98
+ #: colomat.php:377
99
+ msgid ""
100
+ "Remove clutter, save space. Display and hide additional content in a SEO "
101
+ "friendly way. Wrap any content&mdash;including other shortcodes&mdash;into a "
102
+ "lovely jQuery expanding and collapsing element."
103
+ msgstr ""
104
+
105
+ #: colomat.php:379
106
+ msgid ""
107
+ "%sDetailed documentation%s, complete with working demonstrations of all "
108
+ "shortcode attributes, is available for your instructional enjoyment."
109
+ msgstr ""
110
+
111
+ #: colomat.php:380
112
+ msgid "%sFree%s & %sPremimum%s Support"
113
+ msgstr ""
114
+
115
+ #: colomat.php:381
116
+ msgid ""
117
+ "If you like this plugin, please consider %sreviewing it at WordPress.org%s "
118
+ "to help others."
119
+ msgstr ""
120
+
121
+ #. Plugin Name of the plugin/theme
122
+ msgid "jQuery Collapse-O-Matic"
123
+ msgstr ""
124
+
125
+ #. Plugin URI of the plugin/theme
126
+ msgid "http://plugins.twinpictures.de/plugins/collapse-o-matic/"
127
+ msgstr ""
128
+
129
+ #. Description of the plugin/theme
130
+ msgid ""
131
+ "Collapse-O-Matic adds an [expand] shortcode that wraps content into a "
132
+ "lovely, jQuery collapsible div."
133
+ msgstr ""
134
+
135
+ #. Author of the plugin/theme
136
+ msgid "twinpictures, baden03"
137
+ msgstr ""
138
+
139
+ #. Author URI of the plugin/theme
140
+ msgid "http://twinpictures.de/"
141
+ msgstr ""
trunk/light_style.css ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .collapseomatic {
2
+ background-image: url(images/arrow-down.png);
3
+ background-repeat: no-repeat;
4
+ padding: 0 0 10px 16px;
5
+ /*border: 1px dotted blue;*/
6
+ cursor: pointer;
7
+ }
8
+ .arrowright {
9
+ background-position: top right;
10
+ padding: 0 16px 10px 0;
11
+ }
12
+ .noarrow {
13
+ background-image: none !important;
14
+ padding: 0 0 10px 0;
15
+ }
16
+ .colomat-hover {
17
+ text-decoration: underline;
18
+ }
19
+ .colomat-close {
20
+ background-image: url(images/arrow-up.png);
21
+ }
22
+ .collapseomatic_excerpt, .collapseomatic_content {
23
+ margin-top: 0px;
24
+ margin-left: 16px;
25
+ padding: 0px;
26
+ }
27
+ .content_collapse_wrapper {
28
+ position: absolute; left: -999em;
29
+ }
30
+ .collapseall, .expandall {
31
+ cursor: pointer;
32
+ }
33
+ .collapseall:hover, .expandall:hover {
34
+ text-decoration: underline;
35
+ }
36
+ .maptastic {
37
+ position: absolute !important;
38
+ left: -10000px !important;
39
+ display:block !important;
40
+ }
trunk/readme.txt ADDED
@@ -0,0 +1,318 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ === Collapse-O-Matic ===
2
+
3
+ Contributors: twinpictures, baden03
4
+ Donate link: http://plugins.twinpictures.de/plugins/collapse-o-matic/
5
+ Tags: collapse, expand, collapsible, expandable, expandable content, collapsable content, shortcode, hidden, hide, display, accordion, accordion, jQuery, javascript, roll-your-own, twinpictures, read me, read more, more
6
+ Requires at least: 2.8
7
+ Tested up to: 3.5
8
+ Stable tag: 1.5
9
+ License: GPLv2 or later
10
+ License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
+
12
+ Remove clutter, save space: display and hide additional content in a SEO friendly way by wrapping content in an [expand] shortcode.
13
+
14
+ == Description ==
15
+
16
+ Collapse-O-Matic adds an `[expand title="trigger text"]hidden content[/expand]` shortcode that will wrap any content, including other shortcodes, into a lovely jQuery expanding and collapsing div. A <a href='http://plugins.twinpictures.de/plugins/collapse-o-matic/documentation/'>complete listing of shortcode options and attribute demos</a> are available, as well as <a href='http://wordpress.org/support/plugin/jquery-collapse-o-matic'>free community</a> and <a href='http://plugins.twinpictures.de/plugins/collapse-o-matic/support/'>premium support</a>.
17
+
18
+ == Installation ==
19
+
20
+ 1. Old-school: upload the `collapse-o-matic` folder to the `/wp-content/plug-ins/` directory via FTP. Hipster: Ironically add collapse-o-matic via the WordPress Plug-ins menu.
21
+ 1. Activate the Plug-in
22
+ 1. Add a the shortcode to your post like so: `[expand title="Displayed Title Goes Here"]Hidden content goes here[/expand]`
23
+ 1. Test that the this plug-in meets your demanding needs.
24
+ 1. Tweak the CSS to match your flavor.
25
+ 1. Rate the plug-in and verify if it works at wordpress.org.
26
+ 1. Leave a comment regarding bugs, feature request, cocktail recipes at http://wordpress.org/tags/jquery-collapse-o-matic/
27
+
28
+ == Frequently Asked Questions ==
29
+
30
+ = Where can I translate this plugin into my favorite langauge? =
31
+ <a href='http://translate.twinpictures.de/projects/colomat'>Community translation for Collapse-O-Matic</a> has been set up. All are <a href='http://translate.twinpictures.de/wordpress/wp-login.php?action=register'>welcome to join</a>.
32
+
33
+ = I am a Social Netwookiee, might Twinpictures have a Facebook page? =
34
+ Yes, yes... <a href='http://www.facebook.com/twinpictures'>Twinpictures is on Facebook</a>.
35
+
36
+ = Does Twinpictures do the Twitter? =
37
+ Ah yes! <a href='http://twitter.com/#!/twinpictures'>@Twinpictures</a> does the twitter tweeting around here.
38
+
39
+ = How does one use the shortcode, exactly? =
40
+ A <a href='http://plugins.twinpictures.de/plugins/collapse-o-matic/documentation/'>complete listing of shortcode options</a> has been provided to answer this exact question.
41
+
42
+ = Is Galato the same as Ice Cream? =
43
+ No. Not even close.
44
+
45
+ == Screenshots ==
46
+
47
+ 1. Hmmm... wonder what happens this text by that arrow is clicked?
48
+ 2. Holy Crap! That other text just showed up like magic! Thank you Collapse-O-Matic!
49
+ 3. Options Page? Yes, Options Page!
50
+
51
+ == Changelog ==
52
+
53
+ = 1.5 =
54
+ * completely re-wrote plugin
55
+ * added sweet-sweet options page
56
+ * added colomat-expand-only class that forces collapse element to only open once and stay open
57
+ * introduced Collapse-Pro-Matic for Premium Level Collapsing Action.
58
+ * added scroll-to-trigger class for Internal Collapse Triggers
59
+ * added livequery to bind collapse functions to dynamically added content
60
+ * added callbacks: collapse_init(); and findme(); for dynamically added content
61
+ * added language files for localization
62
+
63
+ = 1.4.11 =
64
+ * added colomat-parent-highlight class functionality
65
+ * moved findme auto calculations until after all images have loaded.
66
+ * Added elwraptag and elwrapclass attributes
67
+ * Added snap-shut class to slam collapse elements shut
68
+
69
+ = 1.4.10 =
70
+ * Added colomat-nolink class for anchor tags to prevent auto-scrolling to anchor
71
+ * bot- links for targets with swaptitle will now only swap out title for top trigger text
72
+
73
+ = 1.4.9 =
74
+ * Replaced on() event handler back to click due to the WordPress world not quite ready for on(). People are still using jQuery 1.6.4 - can you believe that?!
75
+
76
+ = 1.4.8 =
77
+ * Click events now use jQuery's on() event handler for content that arrived dynamically via AJAX NOTE: plugin now requires jQuery version 1.7 or newer
78
+ * added notitle attribute if no title should be displayed
79
+ * added startwrap and enwrap attributes for wrapping titles
80
+ * fixed bug when using nested close links and highlander grouping
81
+ * added expandanchor to expand items from anchor links on the same page
82
+ * added colomat-expand-only class to prevent collapse from trigger text
83
+ * added scrollonclose attribute and scroll-to-trigger class to trigger auto-scroll to specific value on close.
84
+
85
+ = 1.4.7 =
86
+ Fixed auto-expand of urls with id-anchors
87
+
88
+ = 1.4.6 =
89
+ * fixed JS error in 1.4.5 - GRRR
90
+
91
+ = 1.4.5 =
92
+ * Added SlideFade/SlideToggle option
93
+ * Visited trigers now have colomat-visited class
94
+
95
+ = 1.4.4 =
96
+ * Minified javascript for faster page loads
97
+
98
+ = 1.4.3 =
99
+ * Added the findme attribute to auto scroll to start of expanded items
100
+
101
+ = 1.4.2 =
102
+ * Added speed adjustment to the slideToggle
103
+
104
+ = 1.4.1 =
105
+ * Autoclose elements will now trigger SwapTitle
106
+
107
+ = 1.4 =
108
+ * Relaunched of plugin page on Twinpictures' Plugin Oven
109
+
110
+ = 1.3.18 =
111
+ * Added alternate style sheet for sites with dark backgrounds.
112
+
113
+ = 1.3.17 =
114
+ * Improved nesting collapse function for sub-levels and added support for nesting 30 levels deep.
115
+
116
+ = 1.3.16.1 =
117
+ * Added noarrows class for better integration of images as triggers.
118
+
119
+ = 1.3.16 =
120
+ * Bug Fix for the new trigpos attribute, stupid, stupid, stupid
121
+
122
+ = 1.3.15 =
123
+ * Added trigpos attribute to position the trigger below the target.
124
+
125
+ = 1.3.14 =
126
+ * Fixed the Enqueue error (thanks pborg & lancehudson)
127
+ * Expand All and Collapse All will now also trigger swap titles
128
+ * Added force_content_collapse class trigger to hide all targets w/o tirggers (roll-your-own)
129
+ * Added content_collapse_wrapper class trigger that keeps targets hidden if no JavaScript is present.
130
+
131
+ = 1.3.13 =
132
+ * Added the ability to place a second trigger link inside the expanding content area.
133
+
134
+ = 1.3.12 =
135
+ * Added the 'tracy patch' that will collapse all nested items if the parent is collapsed via highlander grouping.
136
+
137
+ = 1.3.11 =
138
+ * Added excerpt feature and all related attributes.
139
+
140
+ = 1.3.10 =
141
+ * Swaptitle system rebuilt to support images and cufon.
142
+ * Updated CSS the over generalized names close and hover to more plug-in specific colomat-close and colomat-hover
143
+ * removed !important from CSS arrow definitions to make it easier to redefine arrows.
144
+
145
+ = 1.3.9 =
146
+ * Swaptitle will not be triggered if either <img> or <cufon> tags are used in trigger titles
147
+ * Added rel grouping to the collapse/expand-all triggers to target only elements of a single group.
148
+
149
+ = 1.3.8 =
150
+ * Expand elements containing content with one empty space will no longer insert empty target elements.
151
+
152
+ = 1.3.7 =
153
+ * Added expandsub1 - expandsub3 shortcodes for nested expand elements.
154
+ * Added collapse/expand-all triggers.
155
+ * Better looking 24bit arrows.
156
+
157
+ = 1.3.6 =
158
+ * Plug-in now degrades gracefully if JS is disabled. Added swaptitle attribute to change the title on expand/collapse.
159
+
160
+ = 1.3.5 =
161
+ * Random ID's now start with letters, for valid xhtml.
162
+
163
+ = 1.3.4 =
164
+ * Changed '-member' to '-highlander' because it sounds better.
165
+
166
+ = 1.3.3 =
167
+ * Added the ability to have only one member of a group expanded by adding '-member' to the rel attribute value.
168
+
169
+ = 1.3.2 =
170
+ * Added Expanded attribute that sets the default position expanded open.
171
+ * Added style that moves arrows to the right of the text.
172
+
173
+ = 1.3.1 =
174
+ * Added the hover style to pimp the element style when moused over.
175
+
176
+ = 1.3 =
177
+ * Added the rel attribute to deal with grouping collapse elements.
178
+ * Added the trigclass and targclass attributes.
179
+ * Added the alt attribute to define the title's hover-over text.
180
+
181
+ = 1.2 =
182
+ * Expanded the shortcode to include an optional tag attribute. The system defaults to wrapping the trigger in a span tag.
183
+ * Style will support various element tags... span, div, h1, h2... etc.
184
+ * Style separates the arrow icons, so there is no background bleed-over on extra-long trigger titles.
185
+
186
+ = 1.1 =
187
+ * Optimized Code
188
+ * Shortcode now works in Sidebar
189
+ * Expand Titles now have title tags that match the title, not just some random number
190
+ * Shortcode can include a user-defined ID instead of a generated random number
191
+ * Added auto expand feature if an anchor tag is used in the URL
192
+
193
+ = 1.0 =
194
+ * The plug-in came to be.
195
+
196
+ == Upgrade Notice ==
197
+
198
+ = 1.5 =
199
+ * Plugin code completely rewritten
200
+ * Added Option Page
201
+ * added scroll-to-trigger class for Internal Collapse Triggers
202
+ * added livequery and callbacks to handle dynamically added collapse elements
203
+ * language translation support
204
+
205
+ = 1.4.11 =
206
+ * added colomat-parent-highlight class functionality
207
+ * findme auto position calculated after images have loaded
208
+ * Added elwraptag and elwrapclass attributes to wrap entire expand elements in an html element
209
+ * Added snap-shut class to slam collapses shut
210
+
211
+ = 1.4.10 =
212
+ * Added colomat-nolink class to prevent &lt;a&gt; anchors auto scrolling the page.
213
+ * bot- links text will no longer swap out if triggers use swap-title
214
+
215
+ = 1.4.9 =
216
+ * on() event handler rolled back to .click() and .hover() for WordPress installs that still use jQuery 1.6.4 - if you can believe that.
217
+
218
+ = 1.4.8 =
219
+ * on() event handler for dynamic content
220
+ * added notitle attribute
221
+ * added title wrapping
222
+ * fixed a few obscure bugs
223
+ * added expandanchor class
224
+ * added colomat-expand-only class
225
+ * added scrollonclose attribute and scroll-to-trigger class
226
+
227
+ = 1.4.7 =
228
+ * Fixed auto-expand of urls with id-anchors
229
+
230
+ = 1.4.6 =
231
+ * Fixed JS bug in 1.4.5 - Sorry people
232
+
233
+ = 1.4.5 =
234
+ * Added SlideFade/SlideToggle option and visited trigers now have colomat-visited class
235
+
236
+ = 1.4.4 =
237
+ * JavaScript has been minified for faster page loads
238
+
239
+ = 1.4.3 =
240
+ * added findme attribute to autoscroll to expanded elements
241
+
242
+ = 1.4.2 =
243
+ * added speed control to collapse/expand effect
244
+
245
+ = 1.4.1 =
246
+ * Swaptitle will be triggered by autoexpand/collapse events such as highlander grouping.
247
+
248
+ = 1.4 =
249
+ * Improved support and FAQs on Plugin Oven support page
250
+
251
+ = 1.3.18 =
252
+ * Added alternate style sheet for sites with dark backgrounds.
253
+
254
+ = 1.3.17 =
255
+ * Improved nesting collapse function for sub-levels and added support for nesting 30 levels deep.
256
+
257
+ = 1.3.16.1 =
258
+ * Added noarrows class for better integration of images as triggers.
259
+
260
+ = 1.3.16 =
261
+ * Bug Fix for the new trigpos attribute, stupid, stupid, stupid
262
+
263
+ = 1.3.15 =
264
+ Added trigpos attribute to position the trigger below the target.
265
+
266
+ = 1.3.14 =
267
+ Fixed Enqueue error and swap title on expand/collpase all. Expanded roll-your-own features.
268
+
269
+ = 1.3.13 =
270
+ Added the ability to place a second trigger link inside the expanding content area.
271
+
272
+ = 1.3.12 =
273
+ Now when Highlander Grouping collapses an element, it will automatically collapse nested elements as well.
274
+
275
+ = 1.3.11 =
276
+ Added excerpt feature that allows a juicy bit of nibble text to be displayed above and below the trigger text&mdash;as well as below the target text.
277
+
278
+ = 1.3.10 =
279
+ Rebuilt swaptitle to support images and cufon text. Change CSS names to be more plug-in specific.
280
+
281
+ = 1.3.9 =
282
+ Title triggers that contain <img> or <cufon> tags will not trigger swaptitle. Added rel grouping option to expand/collapse-all triggers.
283
+
284
+ = 1.3.8 =
285
+ Expand elements that have content containing only one space will not insert target elements.
286
+
287
+ = 1.3.7 =
288
+ New expandsub1 - expandsub3 shortcodes for nested expand elements. Collapse/Expand all triggers. Improved arrow icons.
289
+
290
+ = 1.3.6 =
291
+ Plug-in degrades gracefully when JS is disabled. Title can now have expand/collapse states using swaptitle attribute.
292
+
293
+ = 1.3.5 =
294
+ Random ID's are now valid xhtml.
295
+
296
+ = 1.3.4 =
297
+ Changed highlander grouping trigger from -member to -highlander.
298
+
299
+ = 1.3.3 =
300
+ Added highlander grouping... called it -member.
301
+
302
+ = 1.3.2 =
303
+ Expanded attribute and right arrow style added.
304
+
305
+ = 1.3.1 =
306
+ Hover style added.
307
+
308
+ = 1.3 =
309
+ Collapse-O-Matic has been significantly advanced. Elements can now be grouped together.
310
+
311
+ = 1.2 =
312
+ Style has been updated for ultimate flexibility. Shortcode can now be written as `[expand title="title goes here" id="optional-id-goes-here" tag="optional-html-tag-goes-here"]content goes here[/expand]`.
313
+
314
+ = 1.1 =
315
+ Shortcode now works in sidebars. Shortcode must be written as `[expand title="title goes here" id="optional-id-goes-here"]content goes here[/expand]`.
316
+
317
+ = 1.0 =
318
+ Where once there was not, there now is.
trunk/screenshot-1.png ADDED
Binary file
trunk/screenshot-2.png ADDED
Binary file
trunk/screenshot-3.png ADDED
Binary file