Genesis Title Toggle - Version 1.3

Version Description

  • Updated the metabox library to latest version
Download this release

Release Info

Developer billerickson
Plugin Icon 128x128 Genesis Title Toggle
Version 1.3
Comparing to
See all releases

Code changes from version 1.2.3 to 1.3

genesis-title-toggle.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Genesis Title Toggle
4
  Plugin URI: http://www.billerickson.net/
5
  Description: Turn on/off page titles on a per page basis, and set sitewide defaults from Theme Settings. Must be using the Genesis theme.
6
- Version: 1.2.3
7
  Author: Bill Erickson
8
  Author URI: http://www.billerickson.net
9
  License: GPLv2
3
  Plugin Name: Genesis Title Toggle
4
  Plugin URI: http://www.billerickson.net/
5
  Description: Turn on/off page titles on a per page basis, and set sitewide defaults from Theme Settings. Must be using the Genesis theme.
6
+ Version: 1.3
7
  Author: Bill Erickson
8
  Author URI: http://www.billerickson.net
9
  License: GPLv2
lib/metabox/README.txt DELETED
@@ -1,45 +0,0 @@
1
- === Custom Metaboxes and Fields ===
2
- Contributors: Andrew Norcross (@norcross / andrewnorcross.com)
3
- Jared Atchison (@jaredatch / jaredatchison.com)
4
- Bill Erickson (@billerickson / billerickson.net)
5
- Version: 0.6
6
- Requires at least: 3.0
7
- Tested up to: 3.2
8
-
9
- == Description ==
10
-
11
- This will create metaboxes with custom fields that will blow your mind.
12
-
13
- == Installation ==
14
-
15
- This script is easy to install. If you can't figure it out you probably shouldn't be using it.
16
-
17
- 1. Place metabox directory inside of your (activated) theme. E.g. inside /themes/twentyten/lib/metabox/.
18
- 2. Include init.php.
19
- 3. See example-functions.php for further guidance.
20
- 4. Profit.
21
-
22
- == Frequently Asked Questions ==
23
-
24
- Coming soon.
25
-
26
- == TODO ==
27
- * Add media upload to WYSIWYG option
28
- * Security & best practices audit
29
- * File handling improvement and fixes
30
-
31
- == Changelog ==
32
-
33
- = 0.6 =
34
- * Added the ability to limit metaboxes to certain posts by id. props @billerickson
35
-
36
- = 0.5 =
37
- * Fixed define to prevent notices. props @destos
38
- * Added text_date_timestap option. props @andrewyno
39
- * Fixed WYSIWYG paragraph breaking/spacing bug. props @wpsmith
40
- * Added taxonomy_radio and taxonomies_select options. props @c3mdigital
41
- * Fixed script causing the dashboard widgets to not be collapsible.
42
- * Fixed various spacing and whitespace inconsistencies
43
-
44
- = 0.4 =
45
- * Think we have a release that is mostly working. We'll say the initial release :)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
lib/metabox/example-functions.php CHANGED
@@ -1,167 +1,222 @@
1
  <?php
2
- // Include & setup custom metabox and fields
3
- $prefix = '_cmb_'; // start with an underscore to hide fields from custom fields list
4
- add_filter( 'cmb_meta_boxes', 'be_sample_metaboxes' );
5
- function be_sample_metaboxes( $meta_boxes ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
  $meta_boxes[] = array(
7
- 'id' => 'test_metabox',
8
- 'title' => 'Test Metabox',
9
- 'pages' => array('page'), // post type
10
- 'context' => 'normal',
11
- 'priority' => 'high',
12
  'show_names' => true, // Show field names on the left
13
- 'fields' => array(
14
- array(
15
- 'name' => 'Test Text',
16
- 'desc' => 'field description (optional)',
17
- 'id' => $prefix . 'test_text',
18
- 'type' => 'text'
19
- ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
  array(
21
- 'name' => 'Test Text Small',
 
 
 
 
 
 
 
 
 
 
 
 
22
  'desc' => 'field description (optional)',
23
- 'id' => $prefix . 'test_textsmall',
24
- 'type' => 'text_small'
25
  ),
26
  array(
27
- 'name' => 'Test Text Medium',
 
 
 
 
 
 
28
  'desc' => 'field description (optional)',
29
- 'id' => $prefix . 'test_textmedium',
30
- 'type' => 'text_medium'
 
31
  ),
32
  array(
33
- 'name' => 'Test Date Picker',
34
- 'desc' => 'field description (optional)',
35
- 'id' => $prefix . 'test_textdate',
36
- 'type' => 'text_date'
37
- ),
38
- array(
39
- 'name' => 'Test Money',
40
- 'desc' => 'field description (optional)',
41
- 'id' => $prefix . 'test_textmoney',
42
- 'type' => 'text_money'
43
- ),
44
- array(
45
- 'name' => 'Test Text Area',
46
- 'desc' => 'field description (optional)',
47
- 'id' => $prefix . 'test_textarea',
48
- 'type' => 'textarea'
49
- ),
50
- array(
51
- 'name' => 'Test Text Area Small',
52
- 'desc' => 'field description (optional)',
53
- 'id' => $prefix . 'test_textareasmall',
54
- 'type' => 'textarea_small'
55
- ),
56
- array(
57
- 'name' => 'Test Title Weeeee',
58
- 'desc' => 'This is a title description',
59
- 'type' => 'title'
60
- ),
61
- array(
62
- 'name' => 'Test Select',
63
- 'desc' => 'field description (optional)',
64
- 'id' => $prefix . 'test_select',
65
- 'type' => 'select',
66
  'options' => array(
67
- array('name' => 'Option One', 'value' => 'standard'),
68
- array('name' => 'Option Two', 'value' => 'custom'),
69
- array('name' => 'Option Three', 'value' => 'none')
70
- )
71
  ),
72
  array(
73
- 'name' => 'Test Radio inline',
74
- 'desc' => 'field description (optional)',
75
- 'id' => $prefix . 'test_radio',
76
- 'type' => 'radio_inline',
77
  'options' => array(
78
- array('name' => 'Option One', 'value' => 'standard'),
79
- array('name' => 'Option Two', 'value' => 'custom'),
80
- array('name' => 'Option Three', 'value' => 'none')
81
- )
82
- ),
83
- array(
84
- 'name' => 'Test Radio',
85
- 'desc' => 'field description (optional)',
86
- 'id' => $prefix . 'test_radio',
87
- 'type' => 'radio',
88
  'options' => array(
89
- array('name' => 'Option One', 'value' => 'standard'),
90
- array('name' => 'Option Two', 'value' => 'custom'),
91
- array('name' => 'Option Three', 'value' => 'none')
92
- )
93
- ),
94
- array(
95
- 'name' => 'Test Taxonomy Radio',
96
- 'desc' => 'Description Goes Here',
97
- 'id' => $prefix . 'text_taxonomy_radio',
98
- 'taxonomy' => '', //Enter Taxonomy Slug
99
- 'type' => 'taxonomy_radio',
100
- ),
101
- array(
102
- 'name' => 'Test Taxonomy Select',
103
- 'desc' => 'Description Goes Here',
104
- 'id' => $prefix . 'text_taxonomy_select',
105
- 'taxonomy' => '', //Enter Taxonomy Slug
106
- 'type' => 'taxonomy_select',
107
- ),
108
- array(
109
- 'name' => 'Test Checkbox',
110
- 'desc' => 'field description (optional)',
111
- 'id' => $prefix . 'test_checkbox',
112
- 'type' => 'checkbox'
113
- ),
114
- array(
115
- 'name' => 'Test Multi Checkbox',
116
- 'desc' => 'field description (optional)',
117
- 'id' => $prefix . 'test_multicheckbox',
118
- 'type' => 'multicheck',
119
  'options' => array(
120
  'check1' => 'Check One',
121
  'check2' => 'Check Two',
122
  'check3' => 'Check Three',
123
- )
124
- ),
125
- array(
126
- 'name' => 'Test wysiwyg',
127
- 'desc' => 'field description (optional)',
128
- 'id' => $prefix . 'test_wysiwyg',
129
- 'type' => 'wysiwyg'
130
- ),
131
- array(
132
- 'name' => 'Test Image',
133
- 'desc' => 'Upload an image or enter an URL.',
134
- 'id' => $prefix . 'test_image',
135
- 'type' => 'file'
136
- ),
137
- )
 
138
  );
139
-
140
  $meta_boxes[] = array(
141
- 'id' => 'about_page_metabox',
142
- 'title' => 'About Page Metabox',
143
- 'pages' => array('page'), // post type
144
- 'show_on' => array( 'key' => 'id', 'value' => array( 2 ) ), // specific post ids to display this metabox
145
- 'context' => 'normal',
146
- 'priority' => 'high',
147
  'show_names' => true, // Show field names on the left
148
- 'fields' => array(
149
- array(
150
- 'name' => 'Test Text',
151
- 'desc' => 'field description (optional)',
152
- 'id' => $prefix . 'test_text',
153
- 'type' => 'text'
154
- ),
 
155
  )
156
  );
 
 
 
157
  return $meta_boxes;
158
  }
159
 
 
 
 
 
 
 
 
 
160
 
161
- // Initialize the metabox class
162
- add_action('init','be_initialize_cmb_meta_boxes',9999);
163
- function be_initialize_cmb_meta_boxes() {
164
- if (!class_exists('cmb_Meta_Box')) {
165
- require_once('init.php');
166
- }
167
  }
1
  <?php
2
+ /**
3
+ * Include and setup custom metaboxes and fields.
4
+ *
5
+ * @category YourThemeOrPlugin
6
+ * @package Metaboxes
7
+ * @license http://www.opensource.org/licenses/gpl-license.php GPL v2.0 (or later)
8
+ * @link https://github.com/jaredatch/Custom-Metaboxes-and-Fields-for-WordPress
9
+ */
10
+
11
+ add_filter( 'cmb_meta_boxes', 'cmb_sample_metaboxes' );
12
+ /**
13
+ * Define the metabox and field configurations.
14
+ *
15
+ * @param array $meta_boxes
16
+ * @return array
17
+ */
18
+ function cmb_sample_metaboxes( array $meta_boxes ) {
19
+
20
+ // Start with an underscore to hide fields from custom fields list
21
+ $prefix = '_cmb_';
22
+
23
  $meta_boxes[] = array(
24
+ 'id' => 'test_metabox',
25
+ 'title' => 'Test Metabox',
26
+ 'pages' => array( 'page', ), // Post type
27
+ 'context' => 'normal',
28
+ 'priority' => 'high',
29
  'show_names' => true, // Show field names on the left
30
+ 'fields' => array(
31
+ array(
32
+ 'name' => 'Test Text',
33
+ 'desc' => 'field description (optional)',
34
+ 'id' => $prefix . 'test_text',
35
+ 'type' => 'text',
36
+ ),
37
+ array(
38
+ 'name' => 'Test Text Small',
39
+ 'desc' => 'field description (optional)',
40
+ 'id' => $prefix . 'test_textsmall',
41
+ 'type' => 'text_small',
42
+ ),
43
+ array(
44
+ 'name' => 'Test Text Medium',
45
+ 'desc' => 'field description (optional)',
46
+ 'id' => $prefix . 'test_textmedium',
47
+ 'type' => 'text_medium',
48
+ ),
49
+ array(
50
+ 'name' => 'Test Date Picker',
51
+ 'desc' => 'field description (optional)',
52
+ 'id' => $prefix . 'test_textdate',
53
+ 'type' => 'text_date',
54
+ ),
55
  array(
56
+ 'name' => 'Test Date Picker (UNIX timestamp)',
57
+ 'desc' => 'field description (optional)',
58
+ 'id' => $prefix . 'test_textdate_timestamp',
59
+ 'type' => 'text_date_timestamp',
60
+ ),
61
+ array(
62
+ 'name' => 'Test Date/Time Picker Combo (UNIX timestamp)',
63
+ 'desc' => 'field description (optional)',
64
+ 'id' => $prefix . 'test_datetime_timestamp',
65
+ 'type' => 'text_datetime_timestamp',
66
+ ),
67
+ array(
68
+ 'name' => 'Test Time',
69
  'desc' => 'field description (optional)',
70
+ 'id' => $prefix . 'test_time',
71
+ 'type' => 'text_time',
72
  ),
73
  array(
74
+ 'name' => 'Test Money',
75
+ 'desc' => 'field description (optional)',
76
+ 'id' => $prefix . 'test_textmoney',
77
+ 'type' => 'text_money',
78
+ ),
79
+ array(
80
+ 'name' => 'Test Color Picker',
81
  'desc' => 'field description (optional)',
82
+ 'id' => $prefix . 'test_colorpicker',
83
+ 'type' => 'colorpicker',
84
+ 'std' => '#ffffff'
85
  ),
86
  array(
87
+ 'name' => 'Test Text Area',
88
+ 'desc' => 'field description (optional)',
89
+ 'id' => $prefix . 'test_textarea',
90
+ 'type' => 'textarea',
91
+ ),
92
+ array(
93
+ 'name' => 'Test Text Area Small',
94
+ 'desc' => 'field description (optional)',
95
+ 'id' => $prefix . 'test_textareasmall',
96
+ 'type' => 'textarea_small',
97
+ ),
98
+ array(
99
+ 'name' => 'Test Text Area Code',
100
+ 'desc' => 'field description (optional)',
101
+ 'id' => $prefix . 'test_textarea_code',
102
+ 'type' => 'textarea_code',
103
+ ),
104
+ array(
105
+ 'name' => 'Test Title Weeeee',
106
+ 'desc' => 'This is a title description',
107
+ 'id' => $prefix . 'test_title',
108
+ 'type' => 'title',
109
+ ),
110
+ array(
111
+ 'name' => 'Test Select',
112
+ 'desc' => 'field description (optional)',
113
+ 'id' => $prefix . 'test_select',
114
+ 'type' => 'select',
 
 
 
 
 
115
  'options' => array(
116
+ array( 'name' => 'Option One', 'value' => 'standard', ),
117
+ array( 'name' => 'Option Two', 'value' => 'custom', ),
118
+ array( 'name' => 'Option Three', 'value' => 'none', ),
119
+ ),
120
  ),
121
  array(
122
+ 'name' => 'Test Radio inline',
123
+ 'desc' => 'field description (optional)',
124
+ 'id' => $prefix . 'test_radio_inline',
125
+ 'type' => 'radio_inline',
126
  'options' => array(
127
+ array( 'name' => 'Option One', 'value' => 'standard', ),
128
+ array( 'name' => 'Option Two', 'value' => 'custom', ),
129
+ array( 'name' => 'Option Three', 'value' => 'none', ),
130
+ ),
131
+ ),
132
+ array(
133
+ 'name' => 'Test Radio',
134
+ 'desc' => 'field description (optional)',
135
+ 'id' => $prefix . 'test_radio',
136
+ 'type' => 'radio',
137
  'options' => array(
138
+ array( 'name' => 'Option One', 'value' => 'standard', ),
139
+ array( 'name' => 'Option Two', 'value' => 'custom', ),
140
+ array( 'name' => 'Option Three', 'value' => 'none', ),
141
+ ),
142
+ ),
143
+ array(
144
+ 'name' => 'Test Taxonomy Radio',
145
+ 'desc' => 'Description Goes Here',
146
+ 'id' => $prefix . 'text_taxonomy_radio',
147
+ 'type' => 'taxonomy_radio',
148
+ 'taxonomy' => '', // Taxonomy Slug
149
+ ),
150
+ array(
151
+ 'name' => 'Test Taxonomy Select',
152
+ 'desc' => 'Description Goes Here',
153
+ 'id' => $prefix . 'text_taxonomy_select',
154
+ 'type' => 'taxonomy_select',
155
+ 'taxonomy' => '', // Taxonomy Slug
156
+ ),
157
+ array(
158
+ 'name' => 'Test Checkbox',
159
+ 'desc' => 'field description (optional)',
160
+ 'id' => $prefix . 'test_checkbox',
161
+ 'type' => 'checkbox',
162
+ ),
163
+ array(
164
+ 'name' => 'Test Multi Checkbox',
165
+ 'desc' => 'field description (optional)',
166
+ 'id' => $prefix . 'test_multicheckbox',
167
+ 'type' => 'multicheck',
168
  'options' => array(
169
  'check1' => 'Check One',
170
  'check2' => 'Check Two',
171
  'check3' => 'Check Three',
172
+ ),
173
+ ),
174
+ array(
175
+ 'name' => 'Test wysiwyg',
176
+ 'desc' => 'field description (optional)',
177
+ 'id' => $prefix . 'test_wysiwyg',
178
+ 'type' => 'wysiwyg',
179
+ 'options' => array( 'textarea_rows' => 5, ),
180
+ ),
181
+ array(
182
+ 'name' => 'Test Image',
183
+ 'desc' => 'Upload an image or enter an URL.',
184
+ 'id' => $prefix . 'test_image',
185
+ 'type' => 'file',
186
+ ),
187
+ ),
188
  );
189
+
190
  $meta_boxes[] = array(
191
+ 'id' => 'about_page_metabox',
192
+ 'title' => 'About Page Metabox',
193
+ 'pages' => array( 'page', ), // Post type
194
+ 'context' => 'normal',
195
+ 'priority' => 'high',
 
196
  'show_names' => true, // Show field names on the left
197
+ 'show_on' => array( 'key' => 'id', 'value' => array( 2, ), ), // Specific post IDs to display this metabox
198
+ 'fields' => array(
199
+ array(
200
+ 'name' => 'Test Text',
201
+ 'desc' => 'field description (optional)',
202
+ 'id' => $prefix . 'test_text',
203
+ 'type' => 'text',
204
+ ),
205
  )
206
  );
207
+
208
+ // Add other metaboxes as needed
209
+
210
  return $meta_boxes;
211
  }
212
 
213
+ add_action( 'init', 'cmb_initialize_cmb_meta_boxes', 9999 );
214
+ /**
215
+ * Initialize the metabox class.
216
+ */
217
+ function cmb_initialize_cmb_meta_boxes() {
218
+
219
+ if ( ! class_exists( 'cmb_Meta_Box' ) )
220
+ require_once 'init.php';
221
 
 
 
 
 
 
 
222
  }
lib/metabox/images/ui-icons_888888_256x240.png CHANGED
Binary file
lib/metabox/init.php CHANGED
@@ -5,7 +5,7 @@ Contributors: Andrew Norcross (@norcross / andrewnorcross.com)
5
  Jared Atchison (@jaredatch / jaredatchison.com)
6
  Bill Erickson (@billerickson / billerickson.net)
7
  Description: This will create metaboxes with custom fields that will blow your mind.
8
- Version: 0.6
9
  */
10
 
11
  /**
@@ -43,7 +43,6 @@ foreach ( $meta_boxes as $meta_box ) {
43
  * Define ALL validation methods inside this class and use the names of these
44
  * methods in the definition of meta boxes (key 'validate_func' of each field)
45
  */
46
-
47
  class cmb_Meta_Box_Validate {
48
  function check_text( $text ) {
49
  if ($text != 'hello') {
@@ -53,16 +52,16 @@ class cmb_Meta_Box_Validate {
53
  }
54
  }
55
 
56
- /*
57
- * url to load local resources.
 
 
58
  */
59
-
60
- define( 'CMB_META_BOX_URL', trailingslashit( str_replace( WP_CONTENT_DIR, WP_CONTENT_URL, dirname(__FILE__) ) ) );
61
 
62
  /**
63
  * Create meta boxes
64
  */
65
-
66
  class cmb_Meta_Box {
67
  protected $_meta_box;
68
 
@@ -79,14 +78,16 @@ class cmb_Meta_Box {
79
  }
80
  }
81
 
82
- $current_page = substr(strrchr($_SERVER['PHP_SELF'], '/'), 1, -4);
83
-
84
- if ( $upload && ( $current_page == 'page' || $current_page == 'page-new' || $current_page == 'post' || $current_page == 'post-new' ) ) {
85
- add_action( 'admin_head', array(&$this, 'add_post_enctype') );
86
  }
87
 
88
- add_action( 'admin_menu', array(&$this, 'add') );
89
- add_action( 'save_post', array(&$this, 'save') );
 
 
 
90
  }
91
 
92
  function add_post_enctype() {
@@ -103,26 +104,68 @@ class cmb_Meta_Box {
103
  function add() {
104
  $this->_meta_box['context'] = empty($this->_meta_box['context']) ? 'normal' : $this->_meta_box['context'];
105
  $this->_meta_box['priority'] = empty($this->_meta_box['priority']) ? 'high' : $this->_meta_box['priority'];
 
 
106
  foreach ( $this->_meta_box['pages'] as $page ) {
107
- if( !isset( $this->_meta_box['show_on'] ) ) {
108
  add_meta_box( $this->_meta_box['id'], $this->_meta_box['title'], array(&$this, 'show'), $page, $this->_meta_box['context'], $this->_meta_box['priority']) ;
109
- } else {
110
- if ( 'id' == $this->_meta_box['show_on']['key'] ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
111
 
112
- // If we're showing it based on ID, get the current ID
113
- if( isset( $_GET['post'] ) ) $post_id = $_GET['post'];
114
- elseif( isset( $_POST['post_ID'] ) ) $post_id = $_POST['post_ID'];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
115
 
116
- // If current page id is in the included array, display the metabox
117
- if ( isset( $post_id) && in_array( $post_id, $this->_meta_box['show_on']['value'] ) )
118
- add_meta_box( $this->_meta_box['id'], $this->_meta_box['title'], array(&$this, 'show'), $page, $this->_meta_box['context'], $this->_meta_box['priority']) ;
119
- }
120
- }
121
- }
122
  }
123
 
124
  // Show fields
125
  function show() {
 
126
  global $post;
127
 
128
  // Use nonce for verification
@@ -130,10 +173,14 @@ class cmb_Meta_Box {
130
  echo '<table class="form-table cmb_metabox">';
131
 
132
  foreach ( $this->_meta_box['fields'] as $field ) {
133
- // Set up blank values for empty ones
134
- if ( !isset($field['desc']) ) $field['desc'] = '';
135
- if ( !isset($field['std']) ) $field['std'] = '';
136
-
 
 
 
 
137
  $meta = get_post_meta( $post->ID, $field['id'], 'multicheck' != $field['type'] /* If multicheck this can be multiple values */ );
138
 
139
  echo '<tr>';
@@ -150,30 +197,51 @@ class cmb_Meta_Box {
150
  switch ( $field['type'] ) {
151
 
152
  case 'text':
153
- echo '<input type="text" name="', $field['id'], '" id="', $field['id'], '" value="', $meta ? $meta : $field['std'], '" style="width:97%" />','<p class="cmb_metabox_description">', $field['desc'], '</p>';
154
  break;
155
  case 'text_small':
156
- echo '<input class="cmb_text_small" type="text" name="', $field['id'], '" id="', $field['id'], '" value="', $meta ? $meta : $field['std'], '" /><span class="cmb_metabox_description">', $field['desc'], '</span>';
157
  break;
158
  case 'text_medium':
159
- echo '<input class="cmb_text_medium" type="text" name="', $field['id'], '" id="', $field['id'], '" value="', $meta ? $meta : $field['std'], '" /><span class="cmb_metabox_description">', $field['desc'], '</span>';
160
  break;
161
  case 'text_date':
162
- echo '<input class="cmb_text_small cmb_datepicker" type="text" name="', $field['id'], '" id="', $field['id'], '" value="', $meta ? $meta : $field['std'], '" /><span class="cmb_metabox_description">', $field['desc'], '</span>';
163
  break;
164
  case 'text_date_timestamp':
165
- echo '<input class="cmb_text_small cmb_datepicker" type="text" name="', $field['id'], '" id="', $field['id'], '" value="', $meta ? date( 'm\/d\/Y', $meta ) : $field['std'], '" /><span class="cmb_metabox_description">', $field['desc'], '</span>';
 
 
 
 
 
166
  break;
 
 
 
167
  case 'text_money':
168
- echo '$ <input class="cmb_text_money" type="text" name="', $field['id'], '" id="', $field['id'], '" value="', $meta ? $meta : $field['std'], '" /><span class="cmb_metabox_description">', $field['desc'], '</span>';
 
 
 
 
 
 
 
 
 
169
  break;
170
  case 'textarea':
171
- echo '<textarea name="', $field['id'], '" id="', $field['id'], '" cols="60" rows="10" style="width:97%">', $meta ? $meta : $field['std'], '</textarea>','<p class="cmb_metabox_description">', $field['desc'], '</p>';
172
  break;
173
  case 'textarea_small':
174
- echo '<textarea name="', $field['id'], '" id="', $field['id'], '" cols="60" rows="4" style="width:97%">', $meta ? $meta : $field['std'], '</textarea>','<p class="cmb_metabox_description">', $field['desc'], '</p>';
175
  break;
 
 
 
176
  case 'select':
 
177
  echo '<select name="', $field['id'], '" id="', $field['id'], '">';
178
  foreach ($field['options'] as $option) {
179
  echo '<option value="', $option['value'], '"', $meta == $option['value'] ? ' selected="selected"' : '', '>', $option['name'], '</option>';
@@ -182,17 +250,25 @@ class cmb_Meta_Box {
182
  echo '<p class="cmb_metabox_description">', $field['desc'], '</p>';
183
  break;
184
  case 'radio_inline':
 
185
  echo '<div class="cmb_radio_inline">';
 
186
  foreach ($field['options'] as $option) {
187
- echo '<div class="cmb_radio_inline_option"><input type="radio" name="', $field['id'], '" value="', $option['value'], '"', $meta == $option['value'] ? ' checked="checked"' : '', ' />', $option['name'], '</div>';
 
188
  }
189
  echo '</div>';
190
  echo '<p class="cmb_metabox_description">', $field['desc'], '</p>';
191
  break;
192
  case 'radio':
 
 
 
193
  foreach ($field['options'] as $option) {
194
- echo '<p><input type="radio" name="', $field['id'], '" value="', $option['value'], '"', $meta == $option['value'] ? ' checked="checked"' : '', ' />', $option['name'].'</p>';
 
195
  }
 
196
  echo '<p class="cmb_metabox_description">', $field['desc'], '</p>';
197
  break;
198
  case 'checkbox':
@@ -201,10 +277,12 @@ class cmb_Meta_Box {
201
  break;
202
  case 'multicheck':
203
  echo '<ul>';
 
204
  foreach ( $field['options'] as $value => $name ) {
205
  // Append `[]` to the name to get multiple values
206
  // Use in_array() to check whether the current option should be checked
207
- echo '<li><input type="checkbox" name="', $field['id'], '[]" id="', $field['id'], '" value="', $value, '"', in_array( $value, $meta ) ? ' checked="checked"' : '', ' /><label>', $name, '</label></li>';
 
208
  }
209
  echo '</ul>';
210
  echo '<span class="cmb_metabox_description">', $field['desc'], '</span>';
@@ -214,9 +292,7 @@ class cmb_Meta_Box {
214
  echo '<p class="cmb_metabox_description">', $field['desc'], '</p>';
215
  break;
216
  case 'wysiwyg':
217
- echo '<div id="poststuff" class="meta_mce">';
218
- echo '<div class="customEditor"><textarea name="', $field['id'], '" id="', $field['id'], '" cols="60" rows="7" style="width:97%">', $meta ? wpautop($meta, true) : '', '</textarea></div>';
219
- echo '</div>';
220
  echo '<p class="cmb_metabox_description">', $field['desc'], '</p>';
221
  break;
222
  case 'taxonomy_select':
@@ -236,18 +312,32 @@ class cmb_Meta_Box {
236
  case 'taxonomy_radio':
237
  $names= wp_get_object_terms( $post->ID, $field['taxonomy'] );
238
  $terms = get_terms( $field['taxonomy'], 'hide_empty=0' );
 
239
  foreach ( $terms as $term ) {
240
  if ( !is_wp_error( $names ) && !empty( $names ) && !strcmp( $term->slug, $names[0]->slug ) ) {
241
- echo '<p><input type="radio" name="', $field['id'], '" value="'. $term->slug . '" checked>' . $term->name . '</p>';
242
  } else {
243
- echo '<p><input type="radio" name="', $field['id'], '" value="' . $term->slug . ' ' , $meta == $term->slug ? $meta : ' ' ,' ">' . $term->name .'</p>';
244
  }
245
  }
 
246
  echo '<p class="cmb_metabox_description">', $field['desc'], '</p>';
247
  break;
 
 
 
 
 
 
 
 
 
 
 
 
248
  case 'file_list':
249
- echo '<input id="upload_file" type="text" size="36" name="', $field['id'], '" value="" />';
250
- echo '<input class="upload_button button" type="button" value="Upload File" />';
251
  echo '<p class="cmb_metabox_description">', $field['desc'], '</p>';
252
  $args = array(
253
  'post_type' => 'attachment',
@@ -268,8 +358,12 @@ class cmb_Meta_Box {
268
  }
269
  break;
270
  case 'file':
271
- echo '<input id="upload_file" type="text" size="45" class="', $field['id'], '" name="', $field['id'], '" value="', $meta, '" />';
272
- echo '<input class="upload_button button" type="button" value="Upload File" />';
 
 
 
 
273
  echo '<p class="cmb_metabox_description">', $field['desc'], '</p>';
274
  echo '<div id="', $field['id'], '_status" class="cmb_upload_status">';
275
  if ( $meta != '' ) {
@@ -277,19 +371,20 @@ class cmb_Meta_Box {
277
  if ( $check_image ) {
278
  echo '<div class="img_status">';
279
  echo '<img src="', $meta, '" alt="" />';
280
- echo '<a href="#" class="remove_file_button" rel="', $field['id'], '">Remove Image</a>';
281
  echo '</div>';
282
  } else {
283
- $parts = explode( "/", $meta );
284
- for( $i = 0; $i < sizeof( $parts ); ++$i ) {
285
  $title = $parts[$i];
286
  }
287
- echo 'File: <strong>', $title, '</strong>&nbsp;&nbsp;&nbsp; (<a href="', $meta, '" target="_blank" rel="external">Download</a> / <a href="# class="remove_file_button" rel="', $field['id'], '">Remove</a>)';
288
  }
289
  }
290
  echo '</div>';
291
  break;
292
-
 
293
  }
294
 
295
  echo '</td>','</tr>';
@@ -299,6 +394,7 @@ class cmb_Meta_Box {
299
 
300
  // Save data from metabox
301
  function save( $post_id) {
 
302
  // verify nonce
303
  if ( ! isset( $_POST['wp_meta_box_nonce'] ) || !wp_verify_nonce( $_POST['wp_meta_box_nonce'], basename(__FILE__) ) ) {
304
  return $post_id;
@@ -319,29 +415,36 @@ class cmb_Meta_Box {
319
  }
320
 
321
  foreach ( $this->_meta_box['fields'] as $field ) {
322
- $name = $field['id'];
323
- $old = get_post_meta( $post_id, $name, 'multicheck' != $field['type'] /* If multicheck this can be multiple values */ );
324
- $new = isset( $_POST[$field['id']] ) ? $_POST[$field['id']] : null;
325
 
326
- if ( $field['type'] == 'wysiwyg' ) {
327
- $new = wpautop($new);
328
- }
 
 
329
 
330
- if ( $field['type'] == 'taxonomy_select' ) {
331
  $new = wp_set_object_terms( $post_id, $new, $field['taxonomy'] );
332
  }
333
 
334
- if ( $field['type'] == 'taxonomy_radio' ) {
335
- $new = wp_set_object_terms( $post_id, $new, $field['taxonomy'] );
336
- }
337
-
338
  if ( ($field['type'] == 'textarea') || ($field['type'] == 'textarea_small') ) {
339
  $new = htmlspecialchars( $new );
340
  }
 
 
 
 
341
 
342
  if ( $field['type'] == 'text_date_timestamp' ) {
343
  $new = strtotime( $new );
344
  }
 
 
 
 
 
 
 
345
 
346
  // validate meta value
347
  if ( isset( $field['validate_func']) ) {
@@ -349,25 +452,34 @@ class cmb_Meta_Box {
349
  if ( $ok === false ) { // pass away when meta value is invalid
350
  continue;
351
  }
352
- } elseif ( 'multicheck' == $field['type'] ) {
353
- // Do the saving in two steps: first get everything we don't have yet
354
- // Then get everything we should not have anymore
355
- if ( empty( $new ) ) {
356
- $new = array();
357
- }
358
- $aNewToAdd = array_diff( $new, $old );
359
- $aOldToDelete = array_diff( $old, $new );
360
- foreach ( $aNewToAdd as $newToAdd ) {
361
- add_post_meta( $post_id, $name, $newToAdd, false );
362
- }
363
- foreach ( $aOldToDelete as $oldToDelete ) {
364
- delete_post_meta( $post_id, $name, $oldToDelete );
365
- }
366
- } elseif ( $new && $new != $old ) {
367
  update_post_meta( $post_id, $name, $new );
368
- } elseif ( '' == $new && $old ) {
369
- delete_post_meta( $post_id, $name, $old );
370
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
371
  }
372
  }
373
  }
@@ -375,88 +487,83 @@ class cmb_Meta_Box {
375
  /**
376
  * Adding scripts and styles
377
  */
378
-
379
  function cmb_scripts( $hook ) {
380
- if ( $hook == 'post.php' OR $hook == 'post-new.php' OR $hook == 'page-new.php' OR $hook == 'page.php' ) {
381
- wp_register_script( 'cmb-scripts', CMB_META_BOX_URL.'jquery.cmbScripts.js', array( 'jquery','media-upload','thickbox' ) );
382
- wp_enqueue_script( 'jquery' );
383
- wp_enqueue_script( 'jquery-ui-core' ); // Make sure and use elements form the 1.7.3 UI - not 1.8.9
384
- wp_enqueue_script( 'media-upload' );
385
- wp_enqueue_script( 'thickbox' );
386
  wp_enqueue_script( 'cmb-scripts' );
387
- wp_enqueue_style( 'thickbox' );
388
- wp_enqueue_style( 'jquery-custom-ui' );
389
- add_action( 'admin_head', 'cmb_styles_inline' );
390
  }
391
  }
392
- add_action( 'admin_enqueue_scripts', 'cmb_scripts', 10, 1 );
393
-
394
- function editor_admin_init( $hook ) {
395
- if ( $hook == 'post.php' OR $hook == 'post-new.php' OR $hook == 'page-new.php' OR $hook == 'page.php' ) {
396
- wp_enqueue_script( 'word-count' );
397
- wp_enqueue_script( 'post' );
398
- wp_enqueue_script( 'editor' );
399
- }
400
- }
401
 
402
- function editor_admin_head( $hook ) {
403
- if ( $hook == 'post.php' OR $hook == 'post-new.php' OR $hook == 'page-new.php' OR $hook == 'page.php' ) {
404
- wp_tiny_mce();
 
 
 
 
 
 
 
 
 
405
  }
406
  }
 
407
 
408
- add_action( 'admin_init', 'editor_admin_init' );
409
- add_action( 'admin_head', 'editor_admin_head' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
410
 
411
- function cmb_editor_footer_scripts() { ?>
412
- <script type="text/javascript">/* <![CDATA[ */
413
- jQuery(function($) {
414
- var i=1;
415
- $('.customEditor textarea').each(function(e) {
416
- var id = $(this).attr('id');
417
- if (!id) {
418
- id = 'customEditor-' + i++;
419
- $(this).attr('id',id);
 
 
420
  }
421
- tinyMCE.execCommand('mceAddControl', false, id);
422
- });
423
- });
424
- /* ]]> */</script>
425
- <?php }
426
- add_action( 'admin_print_footer_scripts', 'cmb_editor_footer_scripts', 99 );
 
 
 
 
 
 
427
 
428
- function cmb_styles_inline() {
429
- echo '<link rel="stylesheet" type="text/css" href="' . CMB_META_BOX_URL.'style.css" />';
430
- ?>
431
- <style type="text/css">
432
- table.cmb_metabox td, table.cmb_metabox th { border-bottom: 1px solid #E9E9E9; }
433
- table.cmb_metabox th { text-align: right; font-weight:bold;}
434
- table.cmb_metabox th label { margin-top:6px; display:block;}
435
- p.cmb_metabox_description { color: #AAA; font-style: italic; margin: 2px 0 !important;}
436
- span.cmb_metabox_description { color: #AAA; font-style: italic;}
437
- input.cmb_text_small { width: 100px; margin-right: 15px;}
438
- input.cmb_text_money { width: 90px; margin-right: 15px;}
439
- input.cmb_text_medium { width: 230px; margin-right: 15px;}
440
- table.cmb_metabox input, table.cmb_metabox textarea { font-size:11px; padding: 5px;}
441
- table.cmb_metabox li { font-size:11px; }
442
- table.cmb_metabox ul { padding-top:5px; }
443
- table.cmb_metabox select { font-size:11px; padding: 5px 10px;}
444
- table.cmb_metabox input:focus, table.cmb_metabox textarea:focus { background: #fffff8;}
445
- .cmb_metabox_title { margin: 0 0 5px 0; padding: 5px 0 0 0; font: italic 24px/35px Georgia,"Times New Roman","Bitstream Charter",Times,serif;}
446
- .cmb_radio_inline { padding: 4px 0 0 0;}
447
- .cmb_radio_inline_option {display: inline; padding-right: 18px;}
448
- table.cmb_metabox input[type="radio"] { margin-right:3px;}
449
- table.cmb_metabox input[type="checkbox"] { margin-right:6px;}
450
- table.cmb_metabox .mceLayout {border:1px solid #DFDFDF !important;}
451
- table.cmb_metabox .mceIframeContainer {background:#FFF;}
452
- table.cmb_metabox .meta_mce {width:97%;}
453
- table.cmb_metabox .meta_mce textarea {width:100%;}
454
- table.cmb_metabox .cmb_upload_status { margin: 10px 0 0 0;}
455
- table.cmb_metabox .cmb_upload_status .img_status { position: relative; }
456
- table.cmb_metabox .cmb_upload_status .img_status img { border:1px solid #DFDFDF; background: #FAFAFA; max-width:350px; padding: 5px; -moz-border-radius: 2px; border-radius: 2px;}
457
- table.cmb_metabox .cmb_upload_status .img_status .remove_file_button { text-indent: -9999px; background: url(<?php echo CMB_META_BOX_URL ?>images/ico-delete.png); width: 16px; height: 16px; position: absolute; top: -5px; left: -5px;}
458
- </style>
459
- <?php
460
  }
461
-
462
  // End. That's it, folks! //
5
  Jared Atchison (@jaredatch / jaredatchison.com)
6
  Bill Erickson (@billerickson / billerickson.net)
7
  Description: This will create metaboxes with custom fields that will blow your mind.
8
+ Version: 0.9
9
  */
10
 
11
  /**
43
  * Define ALL validation methods inside this class and use the names of these
44
  * methods in the definition of meta boxes (key 'validate_func' of each field)
45
  */
 
46
  class cmb_Meta_Box_Validate {
47
  function check_text( $text ) {
48
  if ($text != 'hello') {
52
  }
53
  }
54
 
55
+ /**
56
+ * Defines the url to which is used to load local resources.
57
+ * This may need to be filtered for local Window installations.
58
+ * If resources do not load, please check the wiki for details.
59
  */
60
+ define( 'CMB_META_BOX_URL', apply_filters( 'cmb_meta_box_url', trailingslashit( str_replace( WP_CONTENT_DIR, WP_CONTENT_URL, dirname( __FILE__ ) ) ) ) );
 
61
 
62
  /**
63
  * Create meta boxes
64
  */
 
65
  class cmb_Meta_Box {
66
  protected $_meta_box;
67
 
78
  }
79
  }
80
 
81
+ global $pagenow;
82
+ if ( $upload && in_array( $pagenow, array( 'page.php', 'page-new.php', 'post.php', 'post-new.php' ) ) ) {
83
+ add_action( 'admin_head', array( &$this, 'add_post_enctype' ) );
 
84
  }
85
 
86
+ add_action( 'admin_menu', array( &$this, 'add' ) );
87
+ add_action( 'save_post', array( &$this, 'save' ) );
88
+
89
+ add_filter( 'cmb_show_on', array( &$this, 'add_for_id' ), 10, 2 );
90
+ add_filter( 'cmb_show_on', array( &$this, 'add_for_page_template' ), 10, 2 );
91
  }
92
 
93
  function add_post_enctype() {
104
  function add() {
105
  $this->_meta_box['context'] = empty($this->_meta_box['context']) ? 'normal' : $this->_meta_box['context'];
106
  $this->_meta_box['priority'] = empty($this->_meta_box['priority']) ? 'high' : $this->_meta_box['priority'];
107
+ $this->_meta_box['show_on'] = empty( $this->_meta_box['show_on'] ) ? array('key' => false, 'value' => false) : $this->_meta_box['show_on'];
108
+
109
  foreach ( $this->_meta_box['pages'] as $page ) {
110
+ if( apply_filters( 'cmb_show_on', true, $this->_meta_box ) )
111
  add_meta_box( $this->_meta_box['id'], $this->_meta_box['title'], array(&$this, 'show'), $page, $this->_meta_box['context'], $this->_meta_box['priority']) ;
112
+ }
113
+ }
114
+
115
+ /**
116
+ * Show On Filters
117
+ * Use the 'cmb_show_on' filter to further refine the conditions under which a metabox is displayed.
118
+ * Below you can limit it by ID and page template
119
+ */
120
+
121
+ // Add for ID
122
+ function add_for_id( $display, $meta_box ) {
123
+ if ( 'id' !== $meta_box['show_on']['key'] )
124
+ return $display;
125
+
126
+ // If we're showing it based on ID, get the current ID
127
+ if( isset( $_GET['post'] ) ) $post_id = $_GET['post'];
128
+ elseif( isset( $_POST['post_ID'] ) ) $post_id = $_POST['post_ID'];
129
+ if( !isset( $post_id ) )
130
+ return false;
131
+
132
+ // If value isn't an array, turn it into one
133
+ $meta_box['show_on']['value'] = !is_array( $meta_box['show_on']['value'] ) ? array( $meta_box['show_on']['value'] ) : $meta_box['show_on']['value'];
134
+
135
+ // If current page id is in the included array, display the metabox
136
 
137
+ if ( in_array( $post_id, $meta_box['show_on']['value'] ) )
138
+ return true;
139
+ else
140
+ return false;
141
+ }
142
+
143
+ // Add for Page Template
144
+ function add_for_page_template( $display, $meta_box ) {
145
+ if( 'page-template' !== $meta_box['show_on']['key'] )
146
+ return $display;
147
+
148
+ // Get the current ID
149
+ if( isset( $_GET['post'] ) ) $post_id = $_GET['post'];
150
+ elseif( isset( $_POST['post_ID'] ) ) $post_id = $_POST['post_ID'];
151
+ if( !( isset( $post_id ) || is_page() ) ) return false;
152
+
153
+ // Get current template
154
+ $current_template = get_post_meta( $post_id, '_wp_page_template', true );
155
+
156
+ // If value isn't an array, turn it into one
157
+ $meta_box['show_on']['value'] = !is_array( $meta_box['show_on']['value'] ) ? array( $meta_box['show_on']['value'] ) : $meta_box['show_on']['value'];
158
 
159
+ // See if there's a match
160
+ if( in_array( $current_template, $meta_box['show_on']['value'] ) )
161
+ return true;
162
+ else
163
+ return false;
 
164
  }
165
 
166
  // Show fields
167
  function show() {
168
+
169
  global $post;
170
 
171
  // Use nonce for verification
173
  echo '<table class="form-table cmb_metabox">';
174
 
175
  foreach ( $this->_meta_box['fields'] as $field ) {
176
+ // Set up blank or default values for empty ones
177
+ if ( !isset( $field['name'] ) ) $field['name'] = '';
178
+ if ( !isset( $field['desc'] ) ) $field['desc'] = '';
179
+ if ( !isset( $field['std'] ) ) $field['std'] = '';
180
+ if ( 'file' == $field['type'] && !isset( $field['allow'] ) ) $field['allow'] = array( 'url', 'attachment' );
181
+ if ( 'file' == $field['type'] && !isset( $field['save_id'] ) ) $field['save_id'] = false;
182
+ if ( 'multicheck' == $field['type'] ) $field['multiple'] = true;
183
+
184
  $meta = get_post_meta( $post->ID, $field['id'], 'multicheck' != $field['type'] /* If multicheck this can be multiple values */ );
185
 
186
  echo '<tr>';
197
  switch ( $field['type'] ) {
198
 
199
  case 'text':
200
+ echo '<input type="text" name="', $field['id'], '" id="', $field['id'], '" value="', '' !== $meta ? $meta : $field['std'], '" />','<p class="cmb_metabox_description">', $field['desc'], '</p>';
201
  break;
202
  case 'text_small':
203
+ echo '<input class="cmb_text_small" type="text" name="', $field['id'], '" id="', $field['id'], '" value="', '' !== $meta ? $meta : $field['std'], '" /><span class="cmb_metabox_description">', $field['desc'], '</span>';
204
  break;
205
  case 'text_medium':
206
+ echo '<input class="cmb_text_medium" type="text" name="', $field['id'], '" id="', $field['id'], '" value="', '' !== $meta ? $meta : $field['std'], '" /><span class="cmb_metabox_description">', $field['desc'], '</span>';
207
  break;
208
  case 'text_date':
209
+ echo '<input class="cmb_text_small cmb_datepicker" type="text" name="', $field['id'], '" id="', $field['id'], '" value="', '' !== $meta ? $meta : $field['std'], '" /><span class="cmb_metabox_description">', $field['desc'], '</span>';
210
  break;
211
  case 'text_date_timestamp':
212
+ echo '<input class="cmb_text_small cmb_datepicker" type="text" name="', $field['id'], '" id="', $field['id'], '" value="', '' !== $meta ? date( 'm\/d\/Y', $meta ) : $field['std'], '" /><span class="cmb_metabox_description">', $field['desc'], '</span>';
213
+ break;
214
+
215
+ case 'text_datetime_timestamp':
216
+ echo '<input class="cmb_text_small cmb_datepicker" type="text" name="', $field['id'], '[date]" id="', $field['id'], '_date" value="', '' !== $meta ? date( 'm\/d\/Y', $meta ) : $field['std'], '" />';
217
+ echo '<input class="cmb_timepicker text_time" type="text" name="', $field['id'], '[time]" id="', $field['id'], '_time" value="', '' !== $meta ? date( 'h:i A', $meta ) : $field['std'], '" /><span class="cmb_metabox_description" >', $field['desc'], '</span>';
218
  break;
219
+ case 'text_time':
220
+ echo '<input class="cmb_timepicker text_time" type="text" name="', $field['id'], '" id="', $field['id'], '" value="', '' !== $meta ? $meta : $field['std'], '" /><span class="cmb_metabox_description">', $field['desc'], '</span>';
221
+ break;
222
  case 'text_money':
223
+ echo '$ <input class="cmb_text_money" type="text" name="', $field['id'], '" id="', $field['id'], '" value="', '' !== $meta ? $meta : $field['std'], '" /><span class="cmb_metabox_description">', $field['desc'], '</span>';
224
+ break;
225
+ case 'colorpicker':
226
+ $meta = '' !== $meta ? $meta : $field['std'];
227
+ $hex_color = '(([a-fA-F0-9]){3}){1,2}$';
228
+ if ( preg_match( '/^' . $hex_color . '/i', $meta ) ) // Value is just 123abc, so prepend #.
229
+ $meta = '#' . $meta;
230
+ elseif ( ! preg_match( '/^#' . $hex_color . '/i', $meta ) ) // Value doesn't match #123abc, so sanitize to just #.
231
+ $meta = "#";
232
+ echo '<input class="cmb_colorpicker cmb_text_small" type="text" name="', $field['id'], '" id="', $field['id'], '" value="', $meta, '" /><span class="cmb_metabox_description">', $field['desc'], '</span>';
233
  break;
234
  case 'textarea':
235
+ echo '<textarea name="', $field['id'], '" id="', $field['id'], '" cols="60" rows="10">', '' !== $meta ? $meta : $field['std'], '</textarea>','<p class="cmb_metabox_description">', $field['desc'], '</p>';
236
  break;
237
  case 'textarea_small':
238
+ echo '<textarea name="', $field['id'], '" id="', $field['id'], '" cols="60" rows="4">', '' !== $meta ? $meta : $field['std'], '</textarea>','<p class="cmb_metabox_description">', $field['desc'], '</p>';
239
  break;
240
+ case 'textarea_code':
241
+ echo '<textarea name="', $field['id'], '" id="', $field['id'], '" cols="60" rows="10" class="cmb_textarea_code">', '' !== $meta ? $meta : $field['std'], '</textarea>','<p class="cmb_metabox_description">', $field['desc'], '</p>';
242
+ break;
243
  case 'select':
244
+ if( empty( $meta ) && !empty( $field['std'] ) ) $meta = $field['std'];
245
  echo '<select name="', $field['id'], '" id="', $field['id'], '">';
246
  foreach ($field['options'] as $option) {
247
  echo '<option value="', $option['value'], '"', $meta == $option['value'] ? ' selected="selected"' : '', '>', $option['name'], '</option>';
250
  echo '<p class="cmb_metabox_description">', $field['desc'], '</p>';
251
  break;
252
  case 'radio_inline':
253
+ if( empty( $meta ) && !empty( $field['std'] ) ) $meta = $field['std'];
254
  echo '<div class="cmb_radio_inline">';
255
+ $i = 1;
256
  foreach ($field['options'] as $option) {
257
+ echo '<div class="cmb_radio_inline_option"><input type="radio" name="', $field['id'], '" id="', $field['id'], $i, '" value="', $option['value'], '"', $meta == $option['value'] ? ' checked="checked"' : '', ' /><label for="', $field['id'], $i, '">', $option['name'], '</label></div>';
258
+ $i++;
259
  }
260
  echo '</div>';
261
  echo '<p class="cmb_metabox_description">', $field['desc'], '</p>';
262
  break;
263
  case 'radio':
264
+ if( empty( $meta ) && !empty( $field['std'] ) ) $meta = $field['std'];
265
+ echo '<ul>';
266
+ $i = 1;
267
  foreach ($field['options'] as $option) {
268
+ echo '<li><input type="radio" name="', $field['id'], '" id="', $field['id'], $i,'" value="', $option['value'], '"', $meta == $option['value'] ? ' checked="checked"' : '', ' /><label for="', $field['id'], $i, '">', $option['name'].'</label></li>';
269
+ $i++;
270
  }
271
+ echo '</ul>';
272
  echo '<p class="cmb_metabox_description">', $field['desc'], '</p>';
273
  break;
274
  case 'checkbox':
277
  break;
278
  case 'multicheck':
279
  echo '<ul>';
280
+ $i = 1;
281
  foreach ( $field['options'] as $value => $name ) {
282
  // Append `[]` to the name to get multiple values
283
  // Use in_array() to check whether the current option should be checked
284
+ echo '<li><input type="checkbox" name="', $field['id'], '[]" id="', $field['id'], $i, '" value="', $value, '"', in_array( $value, $meta ) ? ' checked="checked"' : '', ' /><label for="', $field['id'], $i, '">', $name, '</label></li>';
285
+ $i++;
286
  }
287
  echo '</ul>';
288
  echo '<span class="cmb_metabox_description">', $field['desc'], '</span>';
292
  echo '<p class="cmb_metabox_description">', $field['desc'], '</p>';
293
  break;
294
  case 'wysiwyg':
295
+ wp_editor( $meta ? $meta : $field['std'], $field['id'], isset( $field['options'] ) ? $field['options'] : array() );
 
 
296
  echo '<p class="cmb_metabox_description">', $field['desc'], '</p>';
297
  break;
298
  case 'taxonomy_select':
312
  case 'taxonomy_radio':
313
  $names= wp_get_object_terms( $post->ID, $field['taxonomy'] );
314
  $terms = get_terms( $field['taxonomy'], 'hide_empty=0' );
315
+ echo '<ul>';
316
  foreach ( $terms as $term ) {
317
  if ( !is_wp_error( $names ) && !empty( $names ) && !strcmp( $term->slug, $names[0]->slug ) ) {
318
+ echo '<li><input type="radio" name="', $field['id'], '" value="'. $term->slug . '" checked>' . $term->name . '</li>';
319
  } else {
320
+ echo '<li><input type="radio" name="', $field['id'], '" value="' . $term->slug . ' ' , $meta == $term->slug ? $meta : ' ' ,' ">' . $term->name .'</li>';
321
  }
322
  }
323
+ echo '</ul>';
324
  echo '<p class="cmb_metabox_description">', $field['desc'], '</p>';
325
  break;
326
+ case 'taxonomy_multicheck':
327
+ echo '<ul>';
328
+ $names = wp_get_object_terms( $post->ID, $field['taxonomy'] );
329
+ $terms = get_terms( $field['taxonomy'], 'hide_empty=0' );
330
+ foreach ($terms as $term) {
331
+ echo '<li><input type="checkbox" name="', $field['id'], '[]" id="', $field['id'], '" value="', $term->name , '"';
332
+ foreach ($names as $name) {
333
+ if ( $term->slug == $name->slug ){ echo ' checked="checked" ';};
334
+ }
335
+ echo' /><label>', $term->name , '</label></li>';
336
+ }
337
+ break;
338
  case 'file_list':
339
+ echo '<input class="cmb_upload_file" type="text" size="36" name="', $field['id'], '" value="" />';
340
+ echo '<input class="cmb_upload_button button" type="button" value="Upload File" />';
341
  echo '<p class="cmb_metabox_description">', $field['desc'], '</p>';
342
  $args = array(
343
  'post_type' => 'attachment',
358
  }
359
  break;
360
  case 'file':
361
+ $input_type_url = "hidden";
362
+ if ( 'url' == $field['allow'] || ( is_array( $field['allow'] ) && in_array( 'url', $field['allow'] ) ) )
363
+ $input_type_url="text";
364
+ echo '<input class="cmb_upload_file" type="' . $input_type_url . '" size="45" id="', $field['id'], '" name="', $field['id'], '" value="', $meta, '" />';
365
+ echo '<input class="cmb_upload_button button" type="button" value="Upload File" />';
366
+ echo '<input class="cmb_upload_file_id" type="hidden" id="', $field['id'], '_id" name="', $field['id'], '_id" value="', get_post_meta( $post->ID, $field['id'] . "_id",true), '" />';
367
  echo '<p class="cmb_metabox_description">', $field['desc'], '</p>';
368
  echo '<div id="', $field['id'], '_status" class="cmb_upload_status">';
369
  if ( $meta != '' ) {
371
  if ( $check_image ) {
372
  echo '<div class="img_status">';
373
  echo '<img src="', $meta, '" alt="" />';
374
+ echo '<a href="#" class="cmb_remove_file_button" rel="', $field['id'], '">Remove Image</a>';
375
  echo '</div>';
376
  } else {
377
+ $parts = explode( '/', $meta );
378
+ for( $i = 0; $i < count( $parts ); ++$i ) {
379
  $title = $parts[$i];
380
  }
381
+ echo 'File: <strong>', $title, '</strong>&nbsp;&nbsp;&nbsp; (<a href="', $meta, '" target="_blank" rel="external">Download</a> / <a href="#" class="cmb_remove_file_button" rel="', $field['id'], '">Remove</a>)';
382
  }
383
  }
384
  echo '</div>';
385
  break;
386
+ default:
387
+ do_action('cmb_render_' . $field['type'] , $field, $meta);
388
  }
389
 
390
  echo '</td>','</tr>';
394
 
395
  // Save data from metabox
396
  function save( $post_id) {
397
+
398
  // verify nonce
399
  if ( ! isset( $_POST['wp_meta_box_nonce'] ) || !wp_verify_nonce( $_POST['wp_meta_box_nonce'], basename(__FILE__) ) ) {
400
  return $post_id;
415
  }
416
 
417
  foreach ( $this->_meta_box['fields'] as $field ) {
418
+ $name = $field['id'];
 
 
419
 
420
+ if ( ! isset( $field['multiple'] ) )
421
+ $field['multiple'] = ( 'multicheck' == $field['type'] ) ? true : false;
422
+
423
+ $old = get_post_meta( $post_id, $name, !$field['multiple'] /* If multicheck this can be multiple values */ );
424
+ $new = isset( $_POST[$field['id']] ) ? $_POST[$field['id']] : null;
425
 
426
+ if ( in_array( $field['type'], array( 'taxonomy_select', 'taxonomy_radio', 'taxonomy_multicheck' ) ) ) {
427
  $new = wp_set_object_terms( $post_id, $new, $field['taxonomy'] );
428
  }
429
 
 
 
 
 
430
  if ( ($field['type'] == 'textarea') || ($field['type'] == 'textarea_small') ) {
431
  $new = htmlspecialchars( $new );
432
  }
433
+
434
+ if ( ($field['type'] == 'textarea_code') ) {
435
+ $new = htmlspecialchars_decode( $new );
436
+ }
437
 
438
  if ( $field['type'] == 'text_date_timestamp' ) {
439
  $new = strtotime( $new );
440
  }
441
+
442
+ if ( $field['type'] == 'text_datetime_timestamp' ) {
443
+ $string = $new['date'] . ' ' . $new['time'];
444
+ $new = strtotime( $string );
445
+ }
446
+
447
+ $new = apply_filters('cmb_validate_' . $field['type'], $new, $post_id, $field);
448
 
449
  // validate meta value
450
  if ( isset( $field['validate_func']) ) {
452
  if ( $ok === false ) { // pass away when meta value is invalid
453
  continue;
454
  }
455
+ } elseif ( $field['multiple'] ) {
456
+ delete_post_meta( $post_id, $name );
457
+ if ( !empty( $new ) ) {
458
+ foreach ( $new as $add_new ) {
459
+ add_post_meta( $post_id, $name, $add_new, false );
460
+ }
461
+ }
462
+ } elseif ( '' !== $new && $new != $old ) {
 
 
 
 
 
 
 
463
  update_post_meta( $post_id, $name, $new );
464
+ } elseif ( '' == $new ) {
465
+ delete_post_meta( $post_id, $name );
466
  }
467
+
468
+ if ( 'file' == $field['type'] ) {
469
+ $name = $field['id'] . "_id";
470
+ $old = get_post_meta( $post_id, $name, !$field['multiple'] /* If multicheck this can be multiple values */ );
471
+ if ( isset( $field['save_id'] ) && $field['save_id'] ) {
472
+ $new = isset( $_POST[$name] ) ? $_POST[$name] : null;
473
+ } else {
474
+ $new = "";
475
+ }
476
+
477
+ if ( $new && $new != $old ) {
478
+ update_post_meta( $post_id, $name, $new );
479
+ } elseif ( '' == $new && $old ) {
480
+ delete_post_meta( $post_id, $name, $old );
481
+ }
482
+ }
483
  }
484
  }
485
  }
487
  /**
488
  * Adding scripts and styles
489
  */
 
490
  function cmb_scripts( $hook ) {
491
+ if ( $hook == 'post.php' || $hook == 'post-new.php' || $hook == 'page-new.php' || $hook == 'page.php' ) {
492
+ wp_register_script( 'cmb-timepicker', CMB_META_BOX_URL . 'js/jquery.timePicker.min.js' );
493
+ wp_register_script( 'cmb-scripts', CMB_META_BOX_URL . 'js/cmb.js', array( 'jquery', 'jquery-ui-core', 'jquery-ui-datepicker', 'media-upload', 'thickbox', 'farbtastic' ) );
494
+ wp_enqueue_script( 'cmb-timepicker' );
 
 
495
  wp_enqueue_script( 'cmb-scripts' );
496
+ wp_register_style( 'cmb-styles', CMB_META_BOX_URL . 'style.css', array( 'thickbox', 'farbtastic' ) );
497
+ wp_enqueue_style( 'cmb-styles' );
 
498
  }
499
  }
500
+ add_action( 'admin_enqueue_scripts', 'cmb_scripts', 10 );
 
 
 
 
 
 
 
 
501
 
502
+ function cmb_editor_footer_scripts() { ?>
503
+ <?php
504
+ if ( isset( $_GET['cmb_force_send'] ) && 'true' == $_GET['cmb_force_send'] ) {
505
+ $label = $_GET['cmb_send_label'];
506
+ if ( empty( $label ) ) $label="Select File";
507
+ ?>
508
+ <script type="text/javascript">
509
+ jQuery(function($) {
510
+ $('td.savesend input').val('<?php echo $label; ?>');
511
+ });
512
+ </script>
513
+ <?php
514
  }
515
  }
516
+ add_action( 'admin_print_footer_scripts', 'cmb_editor_footer_scripts', 99 );
517
 
518
+ // Force 'Insert into Post' button from Media Library
519
+ add_filter( 'get_media_item_args', 'cmb_force_send' );
520
+ function cmb_force_send( $args ) {
521
+
522
+ // if the Gallery tab is opened from a custom meta box field, add Insert Into Post button
523
+ if ( isset( $_GET['cmb_force_send'] ) && 'true' == $_GET['cmb_force_send'] )
524
+ $args['send'] = true;
525
+
526
+ // if the From Computer tab is opened AT ALL, add Insert Into Post button after an image is uploaded
527
+ if ( isset( $_POST['attachment_id'] ) && '' != $_POST["attachment_id"] ) {
528
+
529
+ $args['send'] = true;
530
+
531
+ // TO DO: Are there any conditions in which we don't want the Insert Into Post
532
+ // button added? For example, if a post type supports thumbnails, does not support
533
+ // the editor, and does not have any cmb file inputs? If so, here's the first
534
+ // bits of code needed to check all that.
535
+ // $attachment_ancestors = get_post_ancestors( $_POST["attachment_id"] );
536
+ // $attachment_parent_post_type = get_post_type( $attachment_ancestors[0] );
537
+ // $post_type_object = get_post_type_object( $attachment_parent_post_type );
538
+ }
539
+
540
+ // change the label of the button on the From Computer tab
541
+ if ( isset( $_POST['attachment_id'] ) && '' != $_POST["attachment_id"] ) {
542
 
543
+ echo '
544
+ <script type="text/javascript">
545
+ function cmbGetParameterByNameInline(name) {
546
+ name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
547
+ var regexS = "[\\?&]" + name + "=([^&#]*)";
548
+ var regex = new RegExp(regexS);
549
+ var results = regex.exec(window.location.href);
550
+ if(results == null)
551
+ return "";
552
+ else
553
+ return decodeURIComponent(results[1].replace(/\+/g, " "));
554
  }
555
+
556
+ jQuery(function($) {
557
+ if (cmbGetParameterByNameInline("cmb_force_send")=="true") {
558
+ var cmb_send_label = cmbGetParameterByNameInline("cmb_send_label");
559
+ $("td.savesend input").val(cmb_send_label);
560
+ }
561
+ });
562
+ </script>
563
+ ';
564
+ }
565
+
566
+ return $args;
567
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
568
  }
 
569
  // End. That's it, folks! //
lib/metabox/jquery.cmbScripts.js DELETED
@@ -1,86 +0,0 @@
1
- /* jQuery UI Datepicker 1.7.3
2
- *
3
- * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
4
- * Dual licensed under the MIT (MIT-LICENSE.txt)
5
- * and GPL (GPL-LICENSE.txt) licenses.
6
- *
7
- * http://docs.jquery.com/UI/Datepicker
8
- *
9
- * Depends:
10
- * ui.core.js
11
- */
12
- (function($){$.extend($.ui,{datepicker:{version:"1.7.3"}});var PROP_NAME="datepicker";function Datepicker(){this.debug=false;this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._datepickerShowing=false;this._inDialog=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass="ui-datepicker-days-cell-over";this.regional=[];this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],dateFormat:"mm/dd/yy",firstDay:0,isRTL:false};this._defaults={showOn:"focus",showAnim:"show",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,gotoCurrent:false,changeMonth:false,changeYear:false,showMonthAfterYear:false,yearRange:"-10:+10",showOtherMonths:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"normal",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false};$.extend(this._defaults,this.regional[""]);this.dpDiv=$('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all ui-helper-hidden-accessible"></div>')}$.extend(Datepicker.prototype,{markerClassName:"hasDatepicker",log:function(){if(this.debug){console.log.apply("",arguments)}},setDefaults:function(settings){extendRemove(this._defaults,settings||{});return this},_attachDatepicker:function(target,settings){var inlineSettings=null;for(var attrName in this._defaults){var attrValue=target.getAttribute("date:"+attrName);if(attrValue){inlineSettings=inlineSettings||{};try{inlineSettings[attrName]=eval(attrValue)}catch(err){inlineSettings[attrName]=attrValue}}}var nodeName=target.nodeName.toLowerCase();var inline=(nodeName=="div"||nodeName=="span");if(!target.id){target.id="dp"+(++this.uuid)}var inst=this._newInst($(target),inline);inst.settings=$.extend({},settings||{},inlineSettings||{});if(nodeName=="input"){this._connectDatepicker(target,inst)}else{if(inline){this._inlineDatepicker(target,inst)}}},_newInst:function(target,inline){var id=target[0].id.replace(/([:\[\]\.])/g,"\\\\$1");return{id:id,input:target,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:inline,dpDiv:(!inline?this.dpDiv:$('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}},_connectDatepicker:function(target,inst){var input=$(target);inst.append=$([]);inst.trigger=$([]);if(input.hasClass(this.markerClassName)){return}var appendText=this._get(inst,"appendText");var isRTL=this._get(inst,"isRTL");if(appendText){inst.append=$('<span class="'+this._appendClass+'">'+appendText+"</span>");input[isRTL?"before":"after"](inst.append)}var showOn=this._get(inst,"showOn");if(showOn=="focus"||showOn=="both"){input.focus(this._showDatepicker)}if(showOn=="button"||showOn=="both"){var buttonText=this._get(inst,"buttonText");var buttonImage=this._get(inst,"buttonImage");inst.trigger=$(this._get(inst,"buttonImageOnly")?$("<img/>").addClass(this._triggerClass).attr({src:buttonImage,alt:buttonText,title:buttonText}):$('<button type="button"></button>').addClass(this._triggerClass).html(buttonImage==""?buttonText:$("<img/>").attr({src:buttonImage,alt:buttonText,title:buttonText})));input[isRTL?"before":"after"](inst.trigger);inst.trigger.click(function(){if($.datepicker._datepickerShowing&&$.datepicker._lastInput==target){$.datepicker._hideDatepicker()}else{$.datepicker._showDatepicker(target)}return false})}input.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).bind("setData.datepicker",function(event,key,value){inst.settings[key]=value}).bind("getData.datepicker",function(event,key){return this._get(inst,key)});$.data(target,PROP_NAME,inst)},_inlineDatepicker:function(target,inst){var divSpan=$(target);if(divSpan.hasClass(this.markerClassName)){return}divSpan.addClass(this.markerClassName).append(inst.dpDiv).bind("setData.datepicker",function(event,key,value){inst.settings[key]=value}).bind("getData.datepicker",function(event,key){return this._get(inst,key)});$.data(target,PROP_NAME,inst);this._setDate(inst,this._getDefaultDate(inst));this._updateDatepicker(inst);this._updateAlternate(inst)},_dialogDatepicker:function(input,dateText,onSelect,settings,pos){var inst=this._dialogInst;if(!inst){var id="dp"+(++this.uuid);this._dialogInput=$('<input type="text" id="'+id+'" size="1" style="position: absolute; top: -100px;"/>');this._dialogInput.keydown(this._doKeyDown);$("body").append(this._dialogInput);inst=this._dialogInst=this._newInst(this._dialogInput,false);inst.settings={};$.data(this._dialogInput[0],PROP_NAME,inst)}extendRemove(inst.settings,settings||{});this._dialogInput.val(dateText);this._pos=(pos?(pos.length?pos:[pos.pageX,pos.pageY]):null);if(!this._pos){var browserWidth=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;var browserHeight=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;var scrollX=document.documentElement.scrollLeft||document.body.scrollLeft;var scrollY=document.documentElement.scrollTop||document.body.scrollTop;this._pos=[(browserWidth/2)-100+scrollX,(browserHeight/2)-150+scrollY]}this._dialogInput.css("left",this._pos[0]+"px").css("top",this._pos[1]+"px");inst.settings.onSelect=onSelect;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);if($.blockUI){$.blockUI(this.dpDiv)}$.data(this._dialogInput[0],PROP_NAME,inst);return this},_destroyDatepicker:function(target){var $target=$(target);var inst=$.data(target,PROP_NAME);if(!$target.hasClass(this.markerClassName)){return}var nodeName=target.nodeName.toLowerCase();$.removeData(target,PROP_NAME);if(nodeName=="input"){inst.append.remove();inst.trigger.remove();$target.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress)}else{if(nodeName=="div"||nodeName=="span"){$target.removeClass(this.markerClassName).empty()}}},_enableDatepicker:function(target){var $target=$(target);var inst=$.data(target,PROP_NAME);if(!$target.hasClass(this.markerClassName)){return}var nodeName=target.nodeName.toLowerCase();if(nodeName=="input"){target.disabled=false;inst.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else{if(nodeName=="div"||nodeName=="span"){var inline=$target.children("."+this._inlineClass);inline.children().removeClass("ui-state-disabled")}}this._disabledInputs=$.map(this._disabledInputs,function(value){return(value==target?null:value)})},_disableDatepicker:function(target){var $target=$(target);var inst=$.data(target,PROP_NAME);if(!$target.hasClass(this.markerClassName)){return}var nodeName=target.nodeName.toLowerCase();if(nodeName=="input"){target.disabled=true;inst.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else{if(nodeName=="div"||nodeName=="span"){var inline=$target.children("."+this._inlineClass);inline.children().addClass("ui-state-disabled")}}this._disabledInputs=$.map(this._disabledInputs,function(value){return(value==target?null:value)});this._disabledInputs[this._disabledInputs.length]=target},_isDisabledDatepicker:function(target){if(!target){return false}for(var i=0;i<this._disabledInputs.length;i++){if(this._disabledInputs[i]==target){return true}}return false},_getInst:function(target){try{return $.data(target,PROP_NAME)}catch(err){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(target,name,value){var inst=this._getInst(target);if(arguments.length==2&&typeof name=="string"){return(name=="defaults"?$.extend({},$.datepicker._defaults):(inst?(name=="all"?$.extend({},inst.settings):this._get(inst,name)):null))}var settings=name||{};if(typeof name=="string"){settings={};settings[name]=value}if(inst){if(this._curInst==inst){this._hideDatepicker(null)}var date=this._getDateDatepicker(target);extendRemove(inst.settings,settings);this._setDateDatepicker(target,date);this._updateDatepicker(inst)}},_changeDatepicker:function(target,name,value){this._optionDatepicker(target,name,value)},_refreshDatepicker:function(target){var inst=this._getInst(target);if(inst){this._updateDatepicker(inst)}},_setDateDatepicker:function(target,date,endDate){var inst=this._getInst(target);if(inst){this._setDate(inst,date,endDate);this._updateDatepicker(inst);this._updateAlternate(inst)}},_getDateDatepicker:function(target){var inst=this._getInst(target);if(inst&&!inst.inline){this._setDateFromField(inst)}return(inst?this._getDate(inst):null)},_doKeyDown:function(event){var inst=$.datepicker._getInst(event.target);var handled=true;var isRTL=inst.dpDiv.is(".ui-datepicker-rtl");inst._keyEvent=true;if($.datepicker._datepickerShowing){switch(event.keyCode){case 9:$.datepicker._hideDatepicker(null,"");break;case 13:var sel=$("td."+$.datepicker._dayOverClass+", td."+$.datepicker._currentClass,inst.dpDiv);if(sel[0]){$.datepicker._selectDay(event.target,inst.selectedMonth,inst.selectedYear,sel[0])}else{$.datepicker._hideDatepicker(null,$.datepicker._get(inst,"duration"))}return false;break;case 27:$.datepicker._hideDatepicker(null,$.datepicker._get(inst,"duration"));break;case 33:$.datepicker._adjustDate(event.target,(event.ctrlKey?-$.datepicker._get(inst,"stepBigMonths"):-$.datepicker._get(inst,"stepMonths")),"M");break;case 34:$.datepicker._adjustDate(event.target,(event.ctrlKey?+$.datepicker._get(inst,"stepBigMonths"):+$.datepicker._get(inst,"stepMonths")),"M");break;case 35:if(event.ctrlKey||event.metaKey){$.datepicker._clearDate(event.target)}handled=event.ctrlKey||event.metaKey;break;case 36:if(event.ctrlKey||event.metaKey){$.datepicker._gotoToday(event.target)}handled=event.ctrlKey||event.metaKey;break;case 37:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,(isRTL?+1:-1),"D")}handled=event.ctrlKey||event.metaKey;if(event.originalEvent.altKey){$.datepicker._adjustDate(event.target,(event.ctrlKey?-$.datepicker._get(inst,"stepBigMonths"):-$.datepicker._get(inst,"stepMonths")),"M")}break;case 38:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,-7,"D")}handled=event.ctrlKey||event.metaKey;break;case 39:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,(isRTL?-1:+1),"D")}handled=event.ctrlKey||event.metaKey;if(event.originalEvent.altKey){$.datepicker._adjustDate(event.target,(event.ctrlKey?+$.datepicker._get(inst,"stepBigMonths"):+$.datepicker._get(inst,"stepMonths")),"M")}break;case 40:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,+7,"D")}handled=event.ctrlKey||event.metaKey;break;default:handled=false}}else{if(event.keyCode==36&&event.ctrlKey){$.datepicker._showDatepicker(this)}else{handled=false}}if(handled){event.preventDefault();event.stopPropagation()}},_doKeyPress:function(event){var inst=$.datepicker._getInst(event.target);if($.datepicker._get(inst,"constrainInput")){var chars=$.datepicker._possibleChars($.datepicker._get(inst,"dateFormat"));var chr=String.fromCharCode(event.charCode==undefined?event.keyCode:event.charCode);return event.ctrlKey||(chr<" "||!chars||chars.indexOf(chr)>-1)}},_showDatepicker:function(input){input=input.target||input;if(input.nodeName.toLowerCase()!="input"){input=$("input",input.parentNode)[0]}if($.datepicker._isDisabledDatepicker(input)||$.datepicker._lastInput==input){return}var inst=$.datepicker._getInst(input);var beforeShow=$.datepicker._get(inst,"beforeShow");extendRemove(inst.settings,(beforeShow?beforeShow.apply(input,[input,inst]):{}));$.datepicker._hideDatepicker(null,"");$.datepicker._lastInput=input;$.datepicker._setDateFromField(inst);if($.datepicker._inDialog){input.value=""}if(!$.datepicker._pos){$.datepicker._pos=$.datepicker._findPos(input);$.datepicker._pos[1]+=input.offsetHeight}var isFixed=false;$(input).parents().each(function(){isFixed|=$(this).css("position")=="fixed";return !isFixed});if(isFixed&&$.browser.opera){$.datepicker._pos[0]-=document.documentElement.scrollLeft;$.datepicker._pos[1]-=document.documentElement.scrollTop}var offset={left:$.datepicker._pos[0],top:$.datepicker._pos[1]};$.datepicker._pos=null;inst.rangeStart=null;inst.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});$.datepicker._updateDatepicker(inst);offset=$.datepicker._checkOffset(inst,offset,isFixed);inst.dpDiv.css({position:($.datepicker._inDialog&&$.blockUI?"static":(isFixed?"fixed":"absolute")),display:"none",left:offset.left+"px",top:offset.top+"px"});if(!inst.inline){var showAnim=$.datepicker._get(inst,"showAnim")||"show";var duration=$.datepicker._get(inst,"duration");var postProcess=function(){$.datepicker._datepickerShowing=true;if($.browser.msie&&parseInt($.browser.version,10)<7){$("iframe.ui-datepicker-cover").css({width:inst.dpDiv.width()+4,height:inst.dpDiv.height()+4})}};if($.effects&&$.effects[showAnim]){inst.dpDiv.show(showAnim,$.datepicker._get(inst,"showOptions"),duration,postProcess)}else{inst.dpDiv[showAnim](duration,postProcess)}if(duration==""){postProcess()}if(inst.input[0].type!="hidden"){inst.input[0].focus()}$.datepicker._curInst=inst}},_updateDatepicker:function(inst){var dims={width:inst.dpDiv.width()+4,height:inst.dpDiv.height()+4};var self=this;inst.dpDiv.empty().append(this._generateHTML(inst)).find("iframe.ui-datepicker-cover").css({width:dims.width,height:dims.height}).end().find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout",function(){$(this).removeClass("ui-state-hover");if(this.className.indexOf("ui-datepicker-prev")!=-1){$(this).removeClass("ui-datepicker-prev-hover")}if(this.className.indexOf("ui-datepicker-next")!=-1){$(this).removeClass("ui-datepicker-next-hover")}}).bind("mouseover",function(){if(!self._isDisabledDatepicker(inst.inline?inst.dpDiv.parent()[0]:inst.input[0])){$(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");$(this).addClass("ui-state-hover");if(this.className.indexOf("ui-datepicker-prev")!=-1){$(this).addClass("ui-datepicker-prev-hover")}if(this.className.indexOf("ui-datepicker-next")!=-1){$(this).addClass("ui-datepicker-next-hover")}}}).end().find("."+this._dayOverClass+" a").trigger("mouseover").end();var numMonths=this._getNumberOfMonths(inst);var cols=numMonths[1];var width=17;if(cols>1){inst.dpDiv.addClass("ui-datepicker-multi-"+cols).css("width",(width*cols)+"em")}else{inst.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("")}inst.dpDiv[(numMonths[0]!=1||numMonths[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");inst.dpDiv[(this._get(inst,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");if(inst.input&&inst.input[0].type!="hidden"&&inst==$.datepicker._curInst){$(inst.input[0]).focus()}},_checkOffset:function(inst,offset,isFixed){var dpWidth=inst.dpDiv.outerWidth();var dpHeight=inst.dpDiv.outerHeight();var inputWidth=inst.input?inst.input.outerWidth():0;var inputHeight=inst.input?inst.input.outerHeight():0;var viewWidth=(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)+$(document).scrollLeft();var viewHeight=(window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight)+$(document).scrollTop();offset.left-=(this._get(inst,"isRTL")?(dpWidth-inputWidth):0);offset.left-=(isFixed&&offset.left==inst.input.offset().left)?$(document).scrollLeft():0;offset.top-=(isFixed&&offset.top==(inst.input.offset().top+inputHeight))?$(document).scrollTop():0;offset.left-=(offset.left+dpWidth>viewWidth&&viewWidth>dpWidth)?Math.abs(offset.left+dpWidth-viewWidth):0;offset.top-=(offset.top+dpHeight>viewHeight&&viewHeight>dpHeight)?Math.abs(offset.top+dpHeight+inputHeight*2-viewHeight):0;return offset},_findPos:function(obj){while(obj&&(obj.type=="hidden"||obj.nodeType!=1)){obj=obj.nextSibling}var position=$(obj).offset();return[position.left,position.top]},_hideDatepicker:function(input,duration){var inst=this._curInst;if(!inst||(input&&inst!=$.data(input,PROP_NAME))){return}if(inst.stayOpen){this._selectDate("#"+inst.id,this._formatDate(inst,inst.currentDay,inst.currentMonth,inst.currentYear))}inst.stayOpen=false;if(this._datepickerShowing){duration=(duration!=null?duration:this._get(inst,"duration"));var showAnim=this._get(inst,"showAnim");var postProcess=function(){$.datepicker._tidyDialog(inst)};if(duration!=""&&$.effects&&$.effects[showAnim]){inst.dpDiv.hide(showAnim,$.datepicker._get(inst,"showOptions"),duration,postProcess)}else{inst.dpDiv[(duration==""?"hide":(showAnim=="slideDown"?"slideUp":(showAnim=="fadeIn"?"fadeOut":"hide")))](duration,postProcess)}if(duration==""){this._tidyDialog(inst)}var onClose=this._get(inst,"onClose");if(onClose){onClose.apply((inst.input?inst.input[0]:null),[(inst.input?inst.input.val():""),inst])}this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if($.blockUI){$.unblockUI();$("body").append(this.dpDiv)}}this._inDialog=false}this._curInst=null},_tidyDialog:function(inst){inst.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(event){if(!$.datepicker._curInst){return}var $target=$(event.target);if(($target.parents("#"+$.datepicker._mainDivId).length==0)&&!$target.hasClass($.datepicker.markerClassName)&&!$target.hasClass($.datepicker._triggerClass)&&$.datepicker._datepickerShowing&&!($.datepicker._inDialog&&$.blockUI)){$.datepicker._hideDatepicker(null,"")}},_adjustDate:function(id,offset,period){var target=$(id);var inst=this._getInst(target[0]);if(this._isDisabledDatepicker(target[0])){return}this._adjustInstDate(inst,offset+(period=="M"?this._get(inst,"showCurrentAtPos"):0),period);this._updateDatepicker(inst)},_gotoToday:function(id){var target=$(id);var inst=this._getInst(target[0]);if(this._get(inst,"gotoCurrent")&&inst.currentDay){inst.selectedDay=inst.currentDay;inst.drawMonth=inst.selectedMonth=inst.currentMonth;inst.drawYear=inst.selectedYear=inst.currentYear}else{var date=new Date();inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear()}this._notifyChange(inst);this._adjustDate(target)},_selectMonthYear:function(id,select,period){var target=$(id);var inst=this._getInst(target[0]);inst._selectingMonthYear=false;inst["selected"+(period=="M"?"Month":"Year")]=inst["draw"+(period=="M"?"Month":"Year")]=parseInt(select.options[select.selectedIndex].value,10);this._notifyChange(inst);this._adjustDate(target)},_clickMonthYear:function(id){var target=$(id);var inst=this._getInst(target[0]);if(inst.input&&inst._selectingMonthYear&&!$.browser.msie){inst.input[0].focus()}inst._selectingMonthYear=!inst._selectingMonthYear},_selectDay:function(id,month,year,td){var target=$(id);if($(td).hasClass(this._unselectableClass)||this._isDisabledDatepicker(target[0])){return}var inst=this._getInst(target[0]);inst.selectedDay=inst.currentDay=$("a",td).html();inst.selectedMonth=inst.currentMonth=month;inst.selectedYear=inst.currentYear=year;if(inst.stayOpen){inst.endDay=inst.endMonth=inst.endYear=null}this._selectDate(id,this._formatDate(inst,inst.currentDay,inst.currentMonth,inst.currentYear));if(inst.stayOpen){inst.rangeStart=this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay));this._updateDatepicker(inst)}},_clearDate:function(id){var target=$(id);var inst=this._getInst(target[0]);inst.stayOpen=false;inst.endDay=inst.endMonth=inst.endYear=inst.rangeStart=null;this._selectDate(target,"")},_selectDate:function(id,dateStr){var target=$(id);var inst=this._getInst(target[0]);dateStr=(dateStr!=null?dateStr:this._formatDate(inst));if(inst.input){inst.input.val(dateStr)}this._updateAlternate(inst);var onSelect=this._get(inst,"onSelect");if(onSelect){onSelect.apply((inst.input?inst.input[0]:null),[dateStr,inst])}else{if(inst.input){inst.input.trigger("change")}}if(inst.inline){this._updateDatepicker(inst)}else{if(!inst.stayOpen){this._hideDatepicker(null,this._get(inst,"duration"));this._lastInput=inst.input[0];if(typeof(inst.input[0])!="object"){inst.input[0].focus()}this._lastInput=null}}},_updateAlternate:function(inst){var altField=this._get(inst,"altField");if(altField){var altFormat=this._get(inst,"altFormat")||this._get(inst,"dateFormat");var date=this._getDate(inst);dateStr=this.formatDate(altFormat,date,this._getFormatConfig(inst));$(altField).each(function(){$(this).val(dateStr)})}},noWeekends:function(date){var day=date.getDay();return[(day>0&&day<6),""]},iso8601Week:function(date){var checkDate=new Date(date.getFullYear(),date.getMonth(),date.getDate());var firstMon=new Date(checkDate.getFullYear(),1-1,4);var firstDay=firstMon.getDay()||7;firstMon.setDate(firstMon.getDate()+1-firstDay);if(firstDay<4&&checkDate<firstMon){checkDate.setDate(checkDate.getDate()-3);return $.datepicker.iso8601Week(checkDate)}else{if(checkDate>new Date(checkDate.getFullYear(),12-1,28)){firstDay=new Date(checkDate.getFullYear()+1,1-1,4).getDay()||7;if(firstDay>4&&(checkDate.getDay()||7)<firstDay-3){return 1}}}return Math.floor(((checkDate-firstMon)/86400000)/7)+1},parseDate:function(format,value,settings){if(format==null||value==null){throw"Invalid arguments"}value=(typeof value=="object"?value.toString():value+"");if(value==""){return null}var shortYearCutoff=(settings?settings.shortYearCutoff:null)||this._defaults.shortYearCutoff;var dayNamesShort=(settings?settings.dayNamesShort:null)||this._defaults.dayNamesShort;var dayNames=(settings?settings.dayNames:null)||this._defaults.dayNames;var monthNamesShort=(settings?settings.monthNamesShort:null)||this._defaults.monthNamesShort;var monthNames=(settings?settings.monthNames:null)||this._defaults.monthNames;var year=-1;var month=-1;var day=-1;var doy=-1;var literal=false;var lookAhead=function(match){var matches=(iFormat+1<format.length&&format.charAt(iFormat+1)==match);if(matches){iFormat++}return matches};var getNumber=function(match){lookAhead(match);var origSize=(match=="@"?14:(match=="y"?4:(match=="o"?3:2)));var size=origSize;var num=0;while(size>0&&iValue<value.length&&value.charAt(iValue)>="0"&&value.charAt(iValue)<="9"){num=num*10+parseInt(value.charAt(iValue++),10);size--}if(size==origSize){throw"Missing number at position "+iValue}return num};var getName=function(match,shortNames,longNames){var names=(lookAhead(match)?longNames:shortNames);var size=0;for(var j=0;j<names.length;j++){size=Math.max(size,names[j].length)}var name="";var iInit=iValue;while(size>0&&iValue<value.length){name+=value.charAt(iValue++);for(var i=0;i<names.length;i++){if(name==names[i]){return i+1}}size--}throw"Unknown name at position "+iInit};var checkLiteral=function(){if(value.charAt(iValue)!=format.charAt(iFormat)){throw"Unexpected literal at position "+iValue}iValue++};var iValue=0;for(var iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)=="'"&&!lookAhead("'")){literal=false}else{checkLiteral()}}else{switch(format.charAt(iFormat)){case"d":day=getNumber("d");break;case"D":getName("D",dayNamesShort,dayNames);break;case"o":doy=getNumber("o");break;case"m":month=getNumber("m");break;case"M":month=getName("M",monthNamesShort,monthNames);break;case"y":year=getNumber("y");break;case"@":var date=new Date(getNumber("@"));year=date.getFullYear();month=date.getMonth()+1;day=date.getDate();break;case"'":if(lookAhead("'")){checkLiteral()}else{literal=true}break;default:checkLiteral()}}}if(year==-1){year=new Date().getFullYear()}else{if(year<100){year+=new Date().getFullYear()-new Date().getFullYear()%100+(year<=shortYearCutoff?0:-100)}}if(doy>-1){month=1;day=doy;do{var dim=this._getDaysInMonth(year,month-1);if(day<=dim){break}month++;day-=dim}while(true)}var date=this._daylightSavingAdjust(new Date(year,month-1,day));if(date.getFullYear()!=year||date.getMonth()+1!=month||date.getDate()!=day){throw"Invalid date"}return date},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TIMESTAMP:"@",W3C:"yy-mm-dd",formatDate:function(format,date,settings){if(!date){return""}var dayNamesShort=(settings?settings.dayNamesShort:null)||this._defaults.dayNamesShort;var dayNames=(settings?settings.dayNames:null)||this._defaults.dayNames;var monthNamesShort=(settings?settings.monthNamesShort:null)||this._defaults.monthNamesShort;var monthNames=(settings?settings.monthNames:null)||this._defaults.monthNames;var lookAhead=function(match){var matches=(iFormat+1<format.length&&format.charAt(iFormat+1)==match);if(matches){iFormat++}return matches};var formatNumber=function(match,value,len){var num=""+value;if(lookAhead(match)){while(num.length<len){num="0"+num}}return num};var formatName=function(match,value,shortNames,longNames){return(lookAhead(match)?longNames[value]:shortNames[value])};var output="";var literal=false;if(date){for(var iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)=="'"&&!lookAhead("'")){literal=false}else{output+=format.charAt(iFormat)}}else{switch(format.charAt(iFormat)){case"d":output+=formatNumber("d",date.getDate(),2);break;case"D":output+=formatName("D",date.getDay(),dayNamesShort,dayNames);break;case"o":var doy=date.getDate();for(var m=date.getMonth()-1;m>=0;m--){doy+=this._getDaysInMonth(date.getFullYear(),m)}output+=formatNumber("o",doy,3);break;case"m":output+=formatNumber("m",date.getMonth()+1,2);break;case"M":output+=formatName("M",date.getMonth(),monthNamesShort,monthNames);break;case"y":output+=(lookAhead("y")?date.getFullYear():(date.getYear()%100<10?"0":"")+date.getYear()%100);break;case"@":output+=date.getTime();break;case"'":if(lookAhead("'")){output+="'"}else{literal=true}break;default:output+=format.charAt(iFormat)}}}}return output},_possibleChars:function(format){var chars="";var literal=false;for(var iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)=="'"&&!lookAhead("'")){literal=false}else{chars+=format.charAt(iFormat)}}else{switch(format.charAt(iFormat)){case"d":case"m":case"y":case"@":chars+="0123456789";break;case"D":case"M":return null;case"'":if(lookAhead("'")){chars+="'"}else{literal=true}break;default:chars+=format.charAt(iFormat)}}}return chars},_get:function(inst,name){return inst.settings[name]!==undefined?inst.settings[name]:this._defaults[name]},_setDateFromField:function(inst){var dateFormat=this._get(inst,"dateFormat");var dates=inst.input?inst.input.val():null;inst.endDay=inst.endMonth=inst.endYear=null;var date=defaultDate=this._getDefaultDate(inst);var settings=this._getFormatConfig(inst);try{date=this.parseDate(dateFormat,dates,settings)||defaultDate}catch(event){this.log(event);date=defaultDate}inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear();inst.currentDay=(dates?date.getDate():0);inst.currentMonth=(dates?date.getMonth():0);inst.currentYear=(dates?date.getFullYear():0);this._adjustInstDate(inst)},_getDefaultDate:function(inst){var date=this._determineDate(this._get(inst,"defaultDate"),new Date());var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");date=(minDate&&date<minDate?minDate:date);date=(maxDate&&date>maxDate?maxDate:date);return date},_determineDate:function(date,defaultDate){var offsetNumeric=function(offset){var date=new Date();date.setDate(date.getDate()+offset);return date};var offsetString=function(offset,getDaysInMonth){var date=new Date();var year=date.getFullYear();var month=date.getMonth();var day=date.getDate();var pattern=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g;var matches=pattern.exec(offset);while(matches){switch(matches[2]||"d"){case"d":case"D":day+=parseInt(matches[1],10);break;case"w":case"W":day+=parseInt(matches[1],10)*7;break;case"m":case"M":month+=parseInt(matches[1],10);day=Math.min(day,getDaysInMonth(year,month));break;case"y":case"Y":year+=parseInt(matches[1],10);day=Math.min(day,getDaysInMonth(year,month));break}matches=pattern.exec(offset)}return new Date(year,month,day)};date=(date==null?defaultDate:(typeof date=="string"?offsetString(date,this._getDaysInMonth):(typeof date=="number"?(isNaN(date)?defaultDate:offsetNumeric(date)):date)));date=(date&&date.toString()=="Invalid Date"?defaultDate:date);if(date){date.setHours(0);date.setMinutes(0);date.setSeconds(0);date.setMilliseconds(0)}return this._daylightSavingAdjust(date)},_daylightSavingAdjust:function(date){if(!date){return null}date.setHours(date.getHours()>12?date.getHours()+2:0);return date},_setDate:function(inst,date,endDate){var clear=!(date);var origMonth=inst.selectedMonth;var origYear=inst.selectedYear;date=this._determineDate(date,new Date());inst.selectedDay=inst.currentDay=date.getDate();inst.drawMonth=inst.selectedMonth=inst.currentMonth=date.getMonth();inst.drawYear=inst.selectedYear=inst.currentYear=date.getFullYear();if(origMonth!=inst.selectedMonth||origYear!=inst.selectedYear){this._notifyChange(inst)}this._adjustInstDate(inst);if(inst.input){inst.input.val(clear?"":this._formatDate(inst))}},_getDate:function(inst){var startDate=(!inst.currentYear||(inst.input&&inst.input.val()=="")?null:this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));return startDate},_generateHTML:function(inst){var today=new Date();today=this._daylightSavingAdjust(new Date(today.getFullYear(),today.getMonth(),today.getDate()));var isRTL=this._get(inst,"isRTL");var showButtonPanel=this._get(inst,"showButtonPanel");var hideIfNoPrevNext=this._get(inst,"hideIfNoPrevNext");var navigationAsDateFormat=this._get(inst,"navigationAsDateFormat");var numMonths=this._getNumberOfMonths(inst);var showCurrentAtPos=this._get(inst,"showCurrentAtPos");var stepMonths=this._get(inst,"stepMonths");var stepBigMonths=this._get(inst,"stepBigMonths");var isMultiMonth=(numMonths[0]!=1||numMonths[1]!=1);var currentDate=this._daylightSavingAdjust((!inst.currentDay?new Date(9999,9,9):new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");var drawMonth=inst.drawMonth-showCurrentAtPos;var drawYear=inst.drawYear;if(drawMonth<0){drawMonth+=12;drawYear--}if(maxDate){var maxDraw=this._daylightSavingAdjust(new Date(maxDate.getFullYear(),maxDate.getMonth()-numMonths[1]+1,maxDate.getDate()));maxDraw=(minDate&&maxDraw<minDate?minDate:maxDraw);while(this._daylightSavingAdjust(new Date(drawYear,drawMonth,1))>maxDraw){drawMonth--;if(drawMonth<0){drawMonth=11;drawYear--}}}inst.drawMonth=drawMonth;inst.drawYear=drawYear;var prevText=this._get(inst,"prevText");prevText=(!navigationAsDateFormat?prevText:this.formatDate(prevText,this._daylightSavingAdjust(new Date(drawYear,drawMonth-stepMonths,1)),this._getFormatConfig(inst)));var prev=(this._canAdjustMonth(inst,-1,drawYear,drawMonth)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery.datepicker._adjustDate(\'#'+inst.id+"', -"+stepMonths+", 'M');\" title=\""+prevText+'"><span class="ui-icon ui-icon-circle-triangle-'+(isRTL?"e":"w")+'">'+prevText+"</span></a>":(hideIfNoPrevNext?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+prevText+'"><span class="ui-icon ui-icon-circle-triangle-'+(isRTL?"e":"w")+'">'+prevText+"</span></a>"));var nextText=this._get(inst,"nextText");nextText=(!navigationAsDateFormat?nextText:this.formatDate(nextText,this._daylightSavingAdjust(new Date(drawYear,drawMonth+stepMonths,1)),this._getFormatConfig(inst)));var next=(this._canAdjustMonth(inst,+1,drawYear,drawMonth)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery.datepicker._adjustDate(\'#'+inst.id+"', +"+stepMonths+", 'M');\" title=\""+nextText+'"><span class="ui-icon ui-icon-circle-triangle-'+(isRTL?"w":"e")+'">'+nextText+"</span></a>":(hideIfNoPrevNext?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+nextText+'"><span class="ui-icon ui-icon-circle-triangle-'+(isRTL?"w":"e")+'">'+nextText+"</span></a>"));var currentText=this._get(inst,"currentText");var gotoDate=(this._get(inst,"gotoCurrent")&&inst.currentDay?currentDate:today);currentText=(!navigationAsDateFormat?currentText:this.formatDate(currentText,gotoDate,this._getFormatConfig(inst)));var controls=(!inst.inline?'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery.datepicker._hideDatepicker();">'+this._get(inst,"closeText")+"</button>":"");var buttonPanel=(showButtonPanel)?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(isRTL?controls:"")+(this._isInRange(inst,gotoDate)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery.datepicker._gotoToday(\'#'+inst.id+"');\">"+currentText+"</button>":"")+(isRTL?"":controls)+"</div>":"";var firstDay=parseInt(this._get(inst,"firstDay"),10);firstDay=(isNaN(firstDay)?0:firstDay);var dayNames=this._get(inst,"dayNames");var dayNamesShort=this._get(inst,"dayNamesShort");var dayNamesMin=this._get(inst,"dayNamesMin");var monthNames=this._get(inst,"monthNames");var monthNamesShort=this._get(inst,"monthNamesShort");var beforeShowDay=this._get(inst,"beforeShowDay");var showOtherMonths=this._get(inst,"showOtherMonths");var calculateWeek=this._get(inst,"calculateWeek")||this.iso8601Week;var endDate=inst.endDay?this._daylightSavingAdjust(new Date(inst.endYear,inst.endMonth,inst.endDay)):currentDate;var defaultDate=this._getDefaultDate(inst);var html="";for(var row=0;row<numMonths[0];row++){var group="";for(var col=0;col<numMonths[1];col++){var selectedDate=this._daylightSavingAdjust(new Date(drawYear,drawMonth,inst.selectedDay));var cornerClass=" ui-corner-all";var calender="";if(isMultiMonth){calender+='<div class="ui-datepicker-group ui-datepicker-group-';switch(col){case 0:calender+="first";cornerClass=" ui-corner-"+(isRTL?"right":"left");break;case numMonths[1]-1:calender+="last";cornerClass=" ui-corner-"+(isRTL?"left":"right");break;default:calender+="middle";cornerClass="";break}calender+='">'}calender+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+cornerClass+'">'+(/all|left/.test(cornerClass)&&row==0?(isRTL?next:prev):"")+(/all|right/.test(cornerClass)&&row==0?(isRTL?prev:next):"")+this._generateMonthYearHeader(inst,drawMonth,drawYear,minDate,maxDate,selectedDate,row>0||col>0,monthNames,monthNamesShort)+'</div><table class="ui-datepicker-calendar"><thead><tr>';var thead="";for(var dow=0;dow<7;dow++){var day=(dow+firstDay)%7;thead+="<th"+((dow+firstDay+6)%7>=5?' class="ui-datepicker-week-end"':"")+'><span title="'+dayNames[day]+'">'+dayNamesMin[day]+"</span></th>"}calender+=thead+"</tr></thead><tbody>";var daysInMonth=this._getDaysInMonth(drawYear,drawMonth);if(drawYear==inst.selectedYear&&drawMonth==inst.selectedMonth){inst.selectedDay=Math.min(inst.selectedDay,daysInMonth)}var leadDays=(this._getFirstDayOfMonth(drawYear,drawMonth)-firstDay+7)%7;var numRows=(isMultiMonth?6:Math.ceil((leadDays+daysInMonth)/7));var printDate=this._daylightSavingAdjust(new Date(drawYear,drawMonth,1-leadDays));for(var dRow=0;dRow<numRows;dRow++){calender+="<tr>";var tbody="";for(var dow=0;dow<7;dow++){var daySettings=(beforeShowDay?beforeShowDay.apply((inst.input?inst.input[0]:null),[printDate]):[true,""]);var otherMonth=(printDate.getMonth()!=drawMonth);var unselectable=otherMonth||!daySettings[0]||(minDate&&printDate<minDate)||(maxDate&&printDate>maxDate);tbody+='<td class="'+((dow+firstDay+6)%7>=5?" ui-datepicker-week-end":"")+(otherMonth?" ui-datepicker-other-month":"")+((printDate.getTime()==selectedDate.getTime()&&drawMonth==inst.selectedMonth&&inst._keyEvent)||(defaultDate.getTime()==printDate.getTime()&&defaultDate.getTime()==selectedDate.getTime())?" "+this._dayOverClass:"")+(unselectable?" "+this._unselectableClass+" ui-state-disabled":"")+(otherMonth&&!showOtherMonths?"":" "+daySettings[1]+(printDate.getTime()>=currentDate.getTime()&&printDate.getTime()<=endDate.getTime()?" "+this._currentClass:"")+(printDate.getTime()==today.getTime()?" ui-datepicker-today":""))+'"'+((!otherMonth||showOtherMonths)&&daySettings[2]?' title="'+daySettings[2]+'"':"")+(unselectable?"":" onclick=\"DP_jQuery.datepicker._selectDay('#"+inst.id+"',"+drawMonth+","+drawYear+', this);return false;"')+">"+(otherMonth?(showOtherMonths?printDate.getDate():"&#xa0;"):(unselectable?'<span class="ui-state-default">'+printDate.getDate()+"</span>":'<a class="ui-state-default'+(printDate.getTime()==today.getTime()?" ui-state-highlight":"")+(printDate.getTime()>=currentDate.getTime()&&printDate.getTime()<=endDate.getTime()?" ui-state-active":"")+'" href="#">'+printDate.getDate()+"</a>"))+"</td>";printDate.setDate(printDate.getDate()+1);printDate=this._daylightSavingAdjust(printDate)}calender+=tbody+"</tr>"}drawMonth++;if(drawMonth>11){drawMonth=0;drawYear++}calender+="</tbody></table>"+(isMultiMonth?"</div>"+((numMonths[0]>0&&col==numMonths[1]-1)?'<div class="ui-datepicker-row-break"></div>':""):"");group+=calender}html+=group}html+=buttonPanel+($.browser.msie&&parseInt($.browser.version,10)<7&&!inst.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>':"");inst._keyEvent=false;return html},_generateMonthYearHeader:function(inst,drawMonth,drawYear,minDate,maxDate,selectedDate,secondary,monthNames,monthNamesShort){minDate=(inst.rangeStart&&minDate&&selectedDate<minDate?selectedDate:minDate);var changeMonth=this._get(inst,"changeMonth");var changeYear=this._get(inst,"changeYear");var showMonthAfterYear=this._get(inst,"showMonthAfterYear");var html='<div class="ui-datepicker-title">';var monthHtml="";if(secondary||!changeMonth){monthHtml+='<span class="ui-datepicker-month">'+monthNames[drawMonth]+"</span> "}else{var inMinYear=(minDate&&minDate.getFullYear()==drawYear);var inMaxYear=(maxDate&&maxDate.getFullYear()==drawYear);monthHtml+='<select class="ui-datepicker-month" onchange="DP_jQuery.datepicker._selectMonthYear(\'#'+inst.id+"', this, 'M');\" onclick=\"DP_jQuery.datepicker._clickMonthYear('#"+inst.id+"');\">";for(var month=0;month<12;month++){if((!inMinYear||month>=minDate.getMonth())&&(!inMaxYear||month<=maxDate.getMonth())){monthHtml+='<option value="'+month+'"'+(month==drawMonth?' selected="selected"':"")+">"+monthNamesShort[month]+"</option>"}}monthHtml+="</select>"}if(!showMonthAfterYear){html+=monthHtml+((secondary||changeMonth||changeYear)&&(!(changeMonth&&changeYear))?"&#xa0;":"")}if(secondary||!changeYear){html+='<span class="ui-datepicker-year">'+drawYear+"</span>"}else{var years=this._get(inst,"yearRange").split(":");var year=0;var endYear=0;if(years.length!=2){year=drawYear-10;endYear=drawYear+10}else{if(years[0].charAt(0)=="+"||years[0].charAt(0)=="-"){year=drawYear+parseInt(years[0],10);endYear=drawYear+parseInt(years[1],10)}else{year=parseInt(years[0],10);endYear=parseInt(years[1],10)}}year=(minDate?Math.max(year,minDate.getFullYear()):year);endYear=(maxDate?Math.min(endYear,maxDate.getFullYear()):endYear);html+='<select class="ui-datepicker-year" onchange="DP_jQuery.datepicker._selectMonthYear(\'#'+inst.id+"', this, 'Y');\" onclick=\"DP_jQuery.datepicker._clickMonthYear('#"+inst.id+"');\">";for(;year<=endYear;year++){html+='<option value="'+year+'"'+(year==drawYear?' selected="selected"':"")+">"+year+"</option>"}html+="</select>"}if(showMonthAfterYear){html+=(secondary||changeMonth||changeYear?"&#xa0;":"")+monthHtml}html+="</div>";return html},_adjustInstDate:function(inst,offset,period){var year=inst.drawYear+(period=="Y"?offset:0);var month=inst.drawMonth+(period=="M"?offset:0);var day=Math.min(inst.selectedDay,this._getDaysInMonth(year,month))+(period=="D"?offset:0);var date=this._daylightSavingAdjust(new Date(year,month,day));var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");date=(minDate&&date<minDate?minDate:date);date=(maxDate&&date>maxDate?maxDate:date);inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear();if(period=="M"||period=="Y"){this._notifyChange(inst)}},_notifyChange:function(inst){var onChange=this._get(inst,"onChangeMonthYear");if(onChange){onChange.apply((inst.input?inst.input[0]:null),[inst.selectedYear,inst.selectedMonth+1,inst])}},_getNumberOfMonths:function(inst){var numMonths=this._get(inst,"numberOfMonths");return(numMonths==null?[1,1]:(typeof numMonths=="number"?[1,numMonths]:numMonths))},_getMinMaxDate:function(inst,minMax,checkRange){var date=this._determineDate(this._get(inst,minMax+"Date"),null);return(!checkRange||!inst.rangeStart?date:(!date||inst.rangeStart>date?inst.rangeStart:date))},_getDaysInMonth:function(year,month){return 32-new Date(year,month,32).getDate()},_getFirstDayOfMonth:function(year,month){return new Date(year,month,1).getDay()},_canAdjustMonth:function(inst,offset,curYear,curMonth){var numMonths=this._getNumberOfMonths(inst);var date=this._daylightSavingAdjust(new Date(curYear,curMonth+(offset<0?offset:numMonths[1]),1));if(offset<0){date.setDate(this._getDaysInMonth(date.getFullYear(),date.getMonth()))}return this._isInRange(inst,date)},_isInRange:function(inst,date){var newMinDate=(!inst.rangeStart?null:this._daylightSavingAdjust(new Date(inst.selectedYear,inst.selectedMonth,inst.selectedDay)));newMinDate=(newMinDate&&inst.rangeStart<newMinDate?inst.rangeStart:newMinDate);var minDate=newMinDate||this._getMinMaxDate(inst,"min");var maxDate=this._getMinMaxDate(inst,"max");return((!minDate||date>=minDate)&&(!maxDate||date<=maxDate))},_getFormatConfig:function(inst){var shortYearCutoff=this._get(inst,"shortYearCutoff");shortYearCutoff=(typeof shortYearCutoff!="string"?shortYearCutoff:new Date().getFullYear()%100+parseInt(shortYearCutoff,10));return{shortYearCutoff:shortYearCutoff,dayNamesShort:this._get(inst,"dayNamesShort"),dayNames:this._get(inst,"dayNames"),monthNamesShort:this._get(inst,"monthNamesShort"),monthNames:this._get(inst,"monthNames")}},_formatDate:function(inst,day,month,year){if(!day){inst.currentDay=inst.selectedDay;inst.currentMonth=inst.selectedMonth;inst.currentYear=inst.selectedYear}var date=(day?(typeof day=="object"?day:this._daylightSavingAdjust(new Date(year,month,day))):this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));return this.formatDate(this._get(inst,"dateFormat"),date,this._getFormatConfig(inst))}});function extendRemove(target,props){$.extend(target,props);for(var name in props){if(props[name]==null||props[name]==undefined){target[name]=props[name]}}return target}function isArray(a){return(a&&(($.browser.safari&&typeof a=="object"&&a.length)||(a.constructor&&a.constructor.toString().match(/\Array\(\)/))))}$.fn.datepicker=function(options){if(!$.datepicker.initialized){$(document).mousedown($.datepicker._checkExternalClick).find("body").append($.datepicker.dpDiv);$.datepicker.initialized=true}var otherArgs=Array.prototype.slice.call(arguments,1);if(typeof options=="string"&&(options=="isDisabled"||options=="getDate")){return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs))}if(options=="option"&&arguments.length==2&&typeof arguments[1]=="string"){return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs))}return this.each(function(){typeof options=="string"?$.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this].concat(otherArgs)):$.datepicker._attachDatepicker(this,options)})};$.datepicker=new Datepicker();$.datepicker.initialized=false;$.datepicker.uuid=new Date().getTime();$.datepicker.version="1.7.3";window.DP_jQuery=$})(jQuery);;
13
-
14
-
15
- /**
16
- * Custom jQuery
17
- */
18
- jQuery(document).ready(function($) {
19
-
20
- // Datepicker
21
- $('.cmb_datepicker').each(function (){
22
- $('#' + jQuery(this).attr('id')).datepicker();
23
- // $('#' + jQuery(this).attr('id')).datepicker({ dateFormat: 'yy-mm-dd' });
24
- // For more options see http://jqueryui.com/demos/datepicker/#option-dateFormat
25
- });
26
-
27
- var pID = jQuery('#post_ID').val();
28
-
29
- // File and image upload handling
30
- //-------------------------------------------------------------------------------------------//
31
- var formfield;
32
- var uploadStatus = true;
33
-
34
- $('.upload_button').live('click', function() {
35
- formfield = $(this).prev('input').attr('name');
36
- tb_show('', 'media-upload.php?post_id=' + pID + '&type=image&cbm_setting=cbm_value&TB_iframe=true');
37
- return false;
38
- });
39
-
40
- $('.remove_file_button').live('click', function() {
41
- formfield = $(this).attr('rel');
42
- $('input.' + formfield).val('');
43
- $(this).parent().remove();
44
- return false;
45
- });
46
-
47
- window.original_send_to_editor = window.send_to_editor;
48
- window.send_to_editor = function(html) {
49
- if (formfield) {
50
-
51
- if ( $(html).html(html).find('img').length > 0 ) {
52
- itemurl = $(html).html(html).find('img').attr('src'); // Use the URL to the size selected.
53
- } else {
54
- // It's not an image. Get the URL to the file instead.
55
- var htmlBits = html.split("'"); // jQuery seems to strip out XHTML when assigning the string to an object. Use alternate method.
56
- itemurl = htmlBits[1]; // Use the URL to the file.
57
- var itemtitle = htmlBits[2];
58
- itemtitle = itemtitle.replace( '>', '' );
59
- itemtitle = itemtitle.replace( '</a>', '' );
60
- }
61
-
62
- var image = /(^.*\.jpg|jpeg|png|gif|ico*)/gi;
63
- var document = /(^.*\.pdf|doc|docx|ppt|pptx|odt|psd|eps|ai*)/gi;
64
- var audio = /(^.*\.mp3|m4a|ogg|wav*)/gi;
65
- var video = /(^.*\.mp4|m4v|mov|wmv|avi|mpg|ogv|3gp|3g2*)/gi;
66
-
67
- if (itemurl.match(image)) {
68
- uploadStatus = '<div class="img_status"><img src="'+itemurl+'" alt="" /><a href="#" class="remove_file_button" rel="' + formfield + '">Remove Image</a></div>';
69
- } else {
70
- // No output preview if it's not an image
71
- // Standard generic output if it's not an image.
72
- html = '<a href="'+itemurl+'" target="_blank" rel="external">View File</a>';
73
- uploadStatus = '<div class="no_image"><span class="file_link">'+html+'</span>&nbsp;&nbsp;&nbsp;<a href="#" class="remove_file_button" rel="' + formfield + '">Remove</a></div>';
74
- }
75
-
76
- $('.' + formfield).val(itemurl);
77
- $('.' + formfield).siblings('.cmb_upload_status').slideDown().html(uploadStatus);
78
- tb_remove();
79
-
80
- } else {
81
- window.original_send_to_editor(html);
82
- }
83
- // Clear the formfield value so the other media library popups can work as they are meant to. - 2010-11-11.
84
- formfield = '';
85
- }
86
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
lib/metabox/js/cmb.js ADDED
@@ -0,0 +1,128 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Controls the behaviours of custom metabox fields.
3
+ *
4
+ * @author Andrew Norcross
5
+ * @author Jared Atchison
6
+ * @author Bill Erickson
7
+ * @see https://github.com/jaredatch/Custom-Metaboxes-and-Fields-for-WordPress
8
+ */
9
+
10
+ /*jslint browser: true, devel: true, indent: 4, maxerr: 50, sub: true */
11
+ /*global jQuery, tb_show, tb_remove */
12
+
13
+ /**
14
+ * Custom jQuery for Custom Metaboxes and Fields
15
+ */
16
+ jQuery(document).ready(function ($) {
17
+ 'use strict';
18
+
19
+ var formfield;
20
+
21
+ /**
22
+ * Initialize timepicker (this will be moved inline in a future release)
23
+ */
24
+ $('.cmb_timepicker').each(function () {
25
+ $('#' + jQuery(this).attr('id')).timePicker({
26
+ startTime: "07:00",
27
+ endTime: "22:00",
28
+ show24Hours: false,
29
+ separator: ':',
30
+ step: 30
31
+ });
32
+ });
33
+
34
+ /**
35
+ * Initialize jQuery UI datepicker (this will be moved inline in a future release)
36
+ */
37
+ $('.cmb_datepicker').each(function () {
38
+ $('#' + jQuery(this).attr('id')).datepicker();
39
+ // $('#' + jQuery(this).attr('id')).datepicker({ dateFormat: 'yy-mm-dd' });
40
+ // For more options see http://jqueryui.com/demos/datepicker/#option-dateFormat
41
+ });
42
+ // Wrap date picker in class to narrow the scope of jQuery UI CSS and prevent conflicts
43
+ $("#ui-datepicker-div").wrap('<div class="cmb_element" />');
44
+
45
+ /**
46
+ * Initialize color picker
47
+ */
48
+ $('input:text.cmb_colorpicker').each(function (i) {
49
+ $(this).after('<div id="picker-' + i + '" style="z-index: 1000; background: #EEE; border: 1px solid #CCC; position: absolute; display: block;"></div>');
50
+ $('#picker-' + i).hide().farbtastic($(this));
51
+ })
52
+ .focus(function() {
53
+ $(this).next().show();
54
+ })
55
+ .blur(function() {
56
+ $(this).next().hide();
57
+ });
58
+
59
+ /**
60
+ * File and image upload handling
61
+ */
62
+ $('.cmb_upload_file').change(function () {
63
+ formfield = $(this).attr('name');
64
+ $('#' + formfield + '_id').val("");
65
+ });
66
+
67
+ $('.cmb_upload_button').live('click', function () {
68
+ var buttonLabel;
69
+ formfield = $(this).prev('input').attr('name');
70
+ buttonLabel = 'Use as ' + $('label[for=' + formfield + ']').text();
71
+ tb_show('', 'media-upload.php?post_id=' + $('#post_ID').val() + '&type=file&cmb_force_send=true&cmb_send_label=' + buttonLabel + '&TB_iframe=true');
72
+ return false;
73
+ });
74
+
75
+ $('.cmb_remove_file_button').live('click', function () {
76
+ formfield = $(this).attr('rel');
77
+ $('input#' + formfield).val('');
78
+ $('input#' + formfield + '_id').val('');
79
+ $(this).parent().remove();
80
+ return false;
81
+ });
82
+
83
+ window.original_send_to_editor = window.send_to_editor;
84
+ window.send_to_editor = function (html) {
85
+ var itemurl, itemclass, itemClassBits, itemid, htmlBits, itemtitle,
86
+ image, uploadStatus = true;
87
+
88
+ if (formfield) {
89
+
90
+ if ($(html).html(html).find('img').length > 0) {
91
+ itemurl = $(html).html(html).find('img').attr('src'); // Use the URL to the size selected.
92
+ itemclass = $(html).html(html).find('img').attr('class'); // Extract the ID from the returned class name.
93
+ itemClassBits = itemclass.split(" ");
94
+ itemid = itemClassBits[itemClassBits.length - 1];
95
+ itemid = itemid.replace('wp-image-', '');
96
+ } else {
97
+ // It's not an image. Get the URL to the file instead.
98
+ htmlBits = html.split("'"); // jQuery seems to strip out XHTML when assigning the string to an object. Use alternate method.
99
+ itemurl = htmlBits[1]; // Use the URL to the file.
100
+ itemtitle = htmlBits[2];
101
+ itemtitle = itemtitle.replace('>', '');
102
+ itemtitle = itemtitle.replace('</a>', '');
103
+ itemid = ""; // TO DO: Get ID for non-image attachments.
104
+ }
105
+
106
+ image = /(jpe?g|png|gif|ico)$/gi;
107
+
108
+ if (itemurl.match(image)) {
109
+ uploadStatus = '<div class="img_status"><img src="' + itemurl + '" alt="" /><a href="#" class="cmb_remove_file_button" rel="' + formfield + '">Remove Image</a></div>';
110
+ } else {
111
+ // No output preview if it's not an image
112
+ // Standard generic output if it's not an image.
113
+ html = '<a href="' + itemurl + '" target="_blank" rel="external">View File</a>';
114
+ uploadStatus = '<div class="no_image"><span class="file_link">' + html + '</span>&nbsp;&nbsp;&nbsp;<a href="#" class="cmb_remove_file_button" rel="' + formfield + '">Remove</a></div>';
115
+ }
116
+
117
+ $('#' + formfield).val(itemurl);
118
+ $('#' + formfield + '_id').val(itemid);
119
+ $('#' + formfield).siblings('.cmb_upload_status').slideDown().html(uploadStatus);
120
+ tb_remove();
121
+
122
+ } else {
123
+ window.original_send_to_editor(html);
124
+ }
125
+
126
+ formfield = '';
127
+ };
128
+ });
lib/metabox/js/jquery.timePicker.min.js ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * A time picker for jQuery.
3
+ *
4
+ * Dual licensed under the MIT and GPL licenses.
5
+ * Copyright (c) 2009 Anders Fajerson
6
+ *
7
+ * @name timePicker
8
+ * @author Anders Fajerson (http://perifer.se)
9
+ * @see http://github.com/perifer/timePicker
10
+ * @example $("#mytime").timePicker();
11
+ * @example $("#mytime").timePicker({step:30, startTime:"15:00", endTime:"18:00"});
12
+ */
13
+ (function(a){function g(a){a.setFullYear(2001),a.setMonth(0),a.setDate(0);return a}function f(a,b){if(a){var c=a.split(b.separator),d=parseFloat(c[0]),e=parseFloat(c[1]);b.show24Hours||(d===12&&a.indexOf("AM")!==-1?d=0:d!==12&&a.indexOf("PM")!==-1&&(d+=12));var f=new Date(0,0,0,d,e,0);return g(f)}return null}function e(a,b){return typeof a=="object"?g(a):f(a,b)}function d(a){return(a<10?"0":"")+a}function c(a,b){var c=a.getHours(),e=b.show24Hours?c:(c+11)%12+1,f=a.getMinutes();return d(e)+b.separator+d(f)+(b.show24Hours?"":c<12?" AM":" PM")}function b(b,c,d,e){b.value=a(c).text(),a(b).change(),a.browser.msie||b.focus(),d.hide()}a.fn.timePicker=function(b){var c=a.extend({},a.fn.timePicker.defaults,b);return this.each(function(){a.timePicker(this,c)})},a.timePicker=function(b,c){var d=a(b)[0];return d.timePicker||(d.timePicker=new jQuery._timePicker(d,c))},a.timePicker.version="0.3",a._timePicker=function(d,h){var i=!1,j=!1,k=e(h.startTime,h),l=e(h.endTime,h),m="selected",n="li."+m;a(d).attr("autocomplete","OFF");var o=[],p=new Date(k);while(p<=l)o[o.length]=c(p,h),p=new Date(p.setMinutes(p.getMinutes()+h.step));var q=a('<div class="time-picker'+(h.show24Hours?"":" time-picker-12hours")+'"></div>'),r=a("<ul></ul>");for(var s=0;s<o.length;s++)r.append("<li>"+o[s]+"</li>");q.append(r),q.appendTo("body").hide(),q.mouseover(function(){i=!0}).mouseout(function(){i=!1}),a("li",r).mouseover(function(){j||(a(n,q).removeClass(m),a(this).addClass(m))}).mousedown(function(){i=!0}).click(function(){b(d,this,q,h),i=!1});var t=function(){if(q.is(":visible"))return!1;a("li",q).removeClass(m);var b=a(d).offset();q.css({top:b.top+d.offsetHeight,left:b.left}),q.show();var e=d.value?f(d.value,h):k,i=k.getHours()*60+k.getMinutes(),j=e.getHours()*60+e.getMinutes()-i,n=Math.round(j/h.step),o=g(new Date(0,0,0,0,n*h.step+i,0));o=k<o&&o<=l?o:k;var p=a("li:contains("+c(o,h)+")",q);p.length&&(p.addClass(m),q[0].scrollTop=p[0].offsetTop);return!0};a(d).focus(t).click(t),a(d).blur(function(){i||q.hide()});var u=a.browser.opera||a.browser.mozilla?"keypress":"keydown";a(d)[u](function(c){var e;j=!0;var f=q[0].scrollTop;switch(c.keyCode){case 38:if(t())return!1;e=a(n,r);var g=e.prev().addClass(m)[0];g?(e.removeClass(m),g.offsetTop<f&&(q[0].scrollTop=f-g.offsetHeight)):(e.removeClass(m),g=a("li:last",r).addClass(m)[0],q[0].scrollTop=g.offsetTop-g.offsetHeight);return!1;case 40:if(t())return!1;e=a(n,r);var i=e.next().addClass(m)[0];i?(e.removeClass(m),i.offsetTop+i.offsetHeight>f+q[0].offsetHeight&&(q[0].scrollTop=f+i.offsetHeight)):(e.removeClass(m),i=a("li:first",r).addClass(m)[0],q[0].scrollTop=0);return!1;case 13:if(q.is(":visible")){var k=a(n,r)[0];b(d,k,q,h)}return!1;case 27:q.hide();return!1}return!0}),a(d).keyup(function(a){j=!1}),this.getTime=function(){return f(d.value,h)},this.setTime=function(b){d.value=c(e(b,h),h),a(d).change()}},a.fn.timePicker.defaults={step:30,startTime:new Date(0,0,0,0,0,0),endTime:new Date(0,0,0,23,30,0),separator:":",show24Hours:!0}})(jQuery)
lib/metabox/readme.md ADDED
@@ -0,0 +1,121 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Custom Metaboxes and Fields for WordPress
2
+
3
+ **Contributors**:
4
+
5
+ * Andrew Norcross ( [@norcross](http://twitter.com/norcross ) / [andrewnorcross.com](http://andrewnorcross.com/) )
6
+ * Jared Atchison ( [@jaredatch](http://twitter.com/jaredatch ) / [jaredatchison.com](http://jaredatchison.com/) )
7
+ * Bill Erickson ( [@billerickson](http://twitter.com/billerickson ) / [billerickson.net](http://billerickson.net/) )
8
+
9
+ **Version**: 0.9
10
+ **Requires at least**: 3.3
11
+ **Tested up to**: 3.3
12
+ **License**: GPLv2
13
+
14
+ ## Description
15
+
16
+ Custom Metaboxes and Fields (CMB for short) will create metaboxes with custom fields that will blow your mind.
17
+
18
+ ##### Links
19
+ * [Github project page](http://github.com/jaredatch/Custom-Metaboxes-and-Fields-for-WordPress)
20
+ * [Documentation (GitHub wiki)](http://github.com/jaredatch/Custom-Metaboxes-and-Fields-for-WordPress/wiki)
21
+
22
+ ##### Field Types:
23
+ * text
24
+ * text small
25
+ * text medium
26
+ * text money
27
+ * date picker
28
+ * date picker (unix timestamp)
29
+ * date time picker combo (unix timestamp)
30
+ * time picker
31
+ * color picker
32
+ * textarea
33
+ * textarea small
34
+ * textarea code
35
+ * select
36
+ * radio
37
+ * radio inline
38
+ * taxonomy radio
39
+ * taxonomy select
40
+ * checkbox
41
+ * multicheck
42
+ * WYSIWYG/TinyMCE
43
+ * Image/file upload
44
+
45
+ [More on field types (GitHub wiki)](github.com/jaredatch/Custom-Metaboxes-and-Fields-for-WordPress/wiki/Field-Types)
46
+
47
+ ## Installation
48
+
49
+ This script is easy to install. If you can't figure it out you probably shouldn't be using it.
50
+
51
+ 1. Place `metabox` directory inside of your (activated) theme. E.g. inside `/themes/twentyten/lib/metabox/`.
52
+ 2. Include `init.php`.
53
+ 3. See `example-functions.php` for further guidance.
54
+ 4. Profit.
55
+
56
+ ## Known Issues
57
+
58
+ * Problem inserting file url inside field for image with caption (issue #50)
59
+ * `CMB_META_BOX_URL` does not define properly in WAMP/XAMP (Windows) (issue #31)
60
+ * Metabox containing WYSIWYG editor cannot be moved (this is a TinyMCE issue)
61
+
62
+ ## To-do
63
+ * Fix known issues (above)
64
+ * clean up code
65
+ * improve inline documentation
66
+ * move timepicker and datepicker jQuery inline
67
+ * support for multiple configurable timepickers/datepickers
68
+ * add ability to save fields in a single custom field
69
+ * add ability to mark fields as required
70
+ * add ability to define `placeholder` text
71
+ * repeatable fields
72
+ * look at possiblity of tabs
73
+ * look at preserving taxonomy hierarchies
74
+
75
+ ## Changelog
76
+
77
+ ### 0.9
78
+ * __Note: This release requires WordPress 3.3+__
79
+ * Cleaned up scripts being queued, props @jaredatch
80
+ * Cleaned up and reorganized jQuery, props @GaryJones
81
+ * Use $pagenow instead of custom $current_page, props @jaredatch
82
+ * Fixed CSS, removed inline styles, now all in style.css, props @jaredatch
83
+ * Fixed multicheck issues (issue #48), props @jaredatch
84
+ * Fixed jQuery UI datepicker CSS conflicting with WordPress UI elements, props @jaredatch
85
+ * Fixed zeros not saving in fields, props @GaryJones
86
+ * Fixed improper labels on radio and multicheck fields, props @jaredatch
87
+ * Fixed fields not rendering properly when in sidebar, props @jaredatch
88
+ * Fixed bug where datepicker triggers extra space after footer in Firefox (issue #14), props @jaredatch
89
+ * Added jQuery UI datepicker packaged with 3.3 core, props @jaredatch
90
+ * Added date time combo picker, props @jaredatch
91
+ * Added color picker, props @jaredatch
92
+ * Added readme.md markdown file, props @jaredatch
93
+
94
+ ### 0.8
95
+ * Added jQuery timepicker, props @norcross
96
+ * Added 'raw' textarea to convert special HTML entities back to characters, props @norcross
97
+ * Added missing examples on example-functions.php, props @norcross
98
+
99
+ ### 0.7
100
+ * Added the new wp_editor() function for the WYSIWYG dialog box, props @jcpry
101
+ * Created 'cmb_show_on' filter to define your own Show On Filters, props @billerickson
102
+ * Added page template show_on filter, props @billerickson
103
+ * Improvements to the 'file' field type, props @randyhoyt
104
+ * Allow for default values on 'radio' and 'radio_inline' field types, props @billerickson
105
+
106
+ ### 0.6.1
107
+ * Enabled the ability to define your own custom field types (issue #28). props @randyhoyt
108
+
109
+ ### 0.6
110
+ * Added the ability to limit metaboxes to certain posts by id. props @billerickson
111
+
112
+ ### 0.5
113
+ * Fixed define to prevent notices. props @destos
114
+ * Added text_date_timestap option. props @andrewyno
115
+ * Fixed WYSIWYG paragraph breaking/spacing bug. props @wpsmith
116
+ * Added taxonomy_radio and taxonomies_select options. props @c3mdigital
117
+ * Fixed script causing the dashboard widgets to not be collapsible.
118
+ * Fixed various spacing and whitespace inconsistencies
119
+
120
+ ### 0.4
121
+ * Think we have a release that is mostly working. We'll say the initial release :)
lib/metabox/style.css CHANGED
@@ -1,367 +1,329 @@
1
- /*
2
- * jQuery UI CSS Framework
3
- * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
4
- * Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
5
- */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
 
7
- /* Layout helpers
8
- ----------------------------------*/
9
- .ui-helper-hidden { display: none; }
10
- .ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
11
- .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
12
- .ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
13
- .ui-helper-clearfix { display: inline-block; }
14
- /* required comment for clearfix to work in Opera \*/
15
- * html .ui-helper-clearfix { height:1%; }
16
- .ui-helper-clearfix { display:block; }
17
- /* end clearfix */
18
- .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
19
 
20
-
21
- /* Interaction Cues
22
- ----------------------------------*/
23
- .ui-state-disabled { cursor: default !important; }
24
-
25
-
26
- /* Icons
27
- ----------------------------------*/
28
-
29
- /* states and images */
30
- .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
31
-
32
-
33
- /* Misc visuals
34
- ----------------------------------*/
35
-
36
- /* Overlays */
37
- .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
38
-
39
- /*
40
- * jQuery UI CSS Framework
41
- * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
42
- * Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
43
- * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
44
- */
45
-
46
-
47
- /* Component containers
48
- ----------------------------------*/
49
- .ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; }
50
- .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; }
51
- .ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; }
52
- .ui-widget-content a { color: #222222; }
53
- .ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; }
54
- .ui-widget-header a { color: #222222; }
55
-
56
- /* Interaction states
57
- ----------------------------------*/
58
- .ui-state-default, .ui-widget-content .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; outline: none; }
59
- .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; outline: none; }
60
- .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus { border: 1px solid #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; outline: none; }
61
- .ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; outline: none; }
62
- .ui-state-active, .ui-widget-content .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; outline: none; }
63
- .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; outline: none; text-decoration: none; }
64
-
65
- /* Interaction Cues
66
- ----------------------------------*/
67
- .ui-state-highlight, .ui-widget-content .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; }
68
- .ui-state-highlight a, .ui-widget-content .ui-state-highlight a { color: #363636; }
69
- .ui-state-error, .ui-widget-content .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; }
70
- .ui-state-error a, .ui-widget-content .ui-state-error a { color: #cd0a0a; }
71
- .ui-state-error-text, .ui-widget-content .ui-state-error-text { color: #cd0a0a; }
72
- .ui-state-disabled, .ui-widget-content .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
73
- .ui-priority-primary, .ui-widget-content .ui-priority-primary { font-weight: bold; }
74
- .ui-priority-secondary, .ui-widget-content .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
75
-
76
- /* Icons
77
- ----------------------------------*/
78
-
79
- /* states and images */
80
- .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
81
- .ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
82
- .ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
83
- .ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); }
84
- .ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
85
- .ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
86
- .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); }
87
- .ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }
88
-
89
- /* positioning */
90
- .ui-icon-carat-1-n { background-position: 0 0; }
91
- .ui-icon-carat-1-ne { background-position: -16px 0; }
92
- .ui-icon-carat-1-e { background-position: -32px 0; }
93
- .ui-icon-carat-1-se { background-position: -48px 0; }
94
- .ui-icon-carat-1-s { background-position: -64px 0; }
95
- .ui-icon-carat-1-sw { background-position: -80px 0; }
96
- .ui-icon-carat-1-w { background-position: -96px 0; }
97
- .ui-icon-carat-1-nw { background-position: -112px 0; }
98
- .ui-icon-carat-2-n-s { background-position: -128px 0; }
99
- .ui-icon-carat-2-e-w { background-position: -144px 0; }
100
- .ui-icon-triangle-1-n { background-position: 0 -16px; }
101
- .ui-icon-triangle-1-ne { background-position: -16px -16px; }
102
- .ui-icon-triangle-1-e { background-position: -32px -16px; }
103
- .ui-icon-triangle-1-se { background-position: -48px -16px; }
104
- .ui-icon-triangle-1-s { background-position: -64px -16px; }
105
- .ui-icon-triangle-1-sw { background-position: -80px -16px; }
106
- .ui-icon-triangle-1-w { background-position: -96px -16px; }
107
- .ui-icon-triangle-1-nw { background-position: -112px -16px; }
108
- .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
109
- .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
110
- .ui-icon-arrow-1-n { background-position: 0 -32px; }
111
- .ui-icon-arrow-1-ne { background-position: -16px -32px; }
112
- .ui-icon-arrow-1-e { background-position: -32px -32px; }
113
- .ui-icon-arrow-1-se { background-position: -48px -32px; }
114
- .ui-icon-arrow-1-s { background-position: -64px -32px; }
115
- .ui-icon-arrow-1-sw { background-position: -80px -32px; }
116
- .ui-icon-arrow-1-w { background-position: -96px -32px; }
117
- .ui-icon-arrow-1-nw { background-position: -112px -32px; }
118
- .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
119
- .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
120
- .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
121
- .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
122
- .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
123
- .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
124
- .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
125
- .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
126
- .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
127
- .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
128
- .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
129
- .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
130
- .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
131
- .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
132
- .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
133
- .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
134
- .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
135
- .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
136
- .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
137
- .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
138
- .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
139
- .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
140
- .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
141
- .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
142
- .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
143
- .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
144
- .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
145
- .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
146
- .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
147
- .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
148
- .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
149
- .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
150
- .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
151
- .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
152
- .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
153
- .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
154
- .ui-icon-arrow-4 { background-position: 0 -80px; }
155
- .ui-icon-arrow-4-diag { background-position: -16px -80px; }
156
- .ui-icon-extlink { background-position: -32px -80px; }
157
- .ui-icon-newwin { background-position: -48px -80px; }
158
- .ui-icon-refresh { background-position: -64px -80px; }
159
- .ui-icon-shuffle { background-position: -80px -80px; }
160
- .ui-icon-transfer-e-w { background-position: -96px -80px; }
161
- .ui-icon-transferthick-e-w { background-position: -112px -80px; }
162
- .ui-icon-folder-collapsed { background-position: 0 -96px; }
163
- .ui-icon-folder-open { background-position: -16px -96px; }
164
- .ui-icon-document { background-position: -32px -96px; }
165
- .ui-icon-document-b { background-position: -48px -96px; }
166
- .ui-icon-note { background-position: -64px -96px; }
167
- .ui-icon-mail-closed { background-position: -80px -96px; }
168
- .ui-icon-mail-open { background-position: -96px -96px; }
169
- .ui-icon-suitcase { background-position: -112px -96px; }
170
- .ui-icon-comment { background-position: -128px -96px; }
171
- .ui-icon-person { background-position: -144px -96px; }
172
- .ui-icon-print { background-position: -160px -96px; }
173
- .ui-icon-trash { background-position: -176px -96px; }
174
- .ui-icon-locked { background-position: -192px -96px; }
175
- .ui-icon-unlocked { background-position: -208px -96px; }
176
- .ui-icon-bookmark { background-position: -224px -96px; }
177
- .ui-icon-tag { background-position: -240px -96px; }
178
- .ui-icon-home { background-position: 0 -112px; }
179
- .ui-icon-flag { background-position: -16px -112px; }
180
- .ui-icon-calendar { background-position: -32px -112px; }
181
- .ui-icon-cart { background-position: -48px -112px; }
182
- .ui-icon-pencil { background-position: -64px -112px; }
183
- .ui-icon-clock { background-position: -80px -112px; }
184
- .ui-icon-disk { background-position: -96px -112px; }
185
- .ui-icon-calculator { background-position: -112px -112px; }
186
- .ui-icon-zoomin { background-position: -128px -112px; }
187
- .ui-icon-zoomout { background-position: -144px -112px; }
188
- .ui-icon-search { background-position: -160px -112px; }
189
- .ui-icon-wrench { background-position: -176px -112px; }
190
- .ui-icon-gear { background-position: -192px -112px; }
191
- .ui-icon-heart { background-position: -208px -112px; }
192
- .ui-icon-star { background-position: -224px -112px; }
193
- .ui-icon-link { background-position: -240px -112px; }
194
- .ui-icon-cancel { background-position: 0 -128px; }
195
- .ui-icon-plus { background-position: -16px -128px; }
196
- .ui-icon-plusthick { background-position: -32px -128px; }
197
- .ui-icon-minus { background-position: -48px -128px; }
198
- .ui-icon-minusthick { background-position: -64px -128px; }
199
- .ui-icon-close { background-position: -80px -128px; }
200
- .ui-icon-closethick { background-position: -96px -128px; }
201
- .ui-icon-key { background-position: -112px -128px; }
202
- .ui-icon-lightbulb { background-position: -128px -128px; }
203
- .ui-icon-scissors { background-position: -144px -128px; }
204
- .ui-icon-clipboard { background-position: -160px -128px; }
205
- .ui-icon-copy { background-position: -176px -128px; }
206
- .ui-icon-contact { background-position: -192px -128px; }
207
- .ui-icon-image { background-position: -208px -128px; }
208
- .ui-icon-video { background-position: -224px -128px; }
209
- .ui-icon-script { background-position: -240px -128px; }
210
- .ui-icon-alert { background-position: 0 -144px; }
211
- .ui-icon-info { background-position: -16px -144px; }
212
- .ui-icon-notice { background-position: -32px -144px; }
213
- .ui-icon-help { background-position: -48px -144px; }
214
- .ui-icon-check { background-position: -64px -144px; }
215
- .ui-icon-bullet { background-position: -80px -144px; }
216
- .ui-icon-radio-off { background-position: -96px -144px; }
217
- .ui-icon-radio-on { background-position: -112px -144px; }
218
- .ui-icon-pin-w { background-position: -128px -144px; }
219
- .ui-icon-pin-s { background-position: -144px -144px; }
220
- .ui-icon-play { background-position: 0 -160px; }
221
- .ui-icon-pause { background-position: -16px -160px; }
222
- .ui-icon-seek-next { background-position: -32px -160px; }
223
- .ui-icon-seek-prev { background-position: -48px -160px; }
224
- .ui-icon-seek-end { background-position: -64px -160px; }
225
- .ui-icon-seek-first { background-position: -80px -160px; }
226
- .ui-icon-stop { background-position: -96px -160px; }
227
- .ui-icon-eject { background-position: -112px -160px; }
228
- .ui-icon-volume-off { background-position: -128px -160px; }
229
- .ui-icon-volume-on { background-position: -144px -160px; }
230
- .ui-icon-power { background-position: 0 -176px; }
231
- .ui-icon-signal-diag { background-position: -16px -176px; }
232
- .ui-icon-signal { background-position: -32px -176px; }
233
- .ui-icon-battery-0 { background-position: -48px -176px; }
234
- .ui-icon-battery-1 { background-position: -64px -176px; }
235
- .ui-icon-battery-2 { background-position: -80px -176px; }
236
- .ui-icon-battery-3 { background-position: -96px -176px; }
237
- .ui-icon-circle-plus { background-position: 0 -192px; }
238
- .ui-icon-circle-minus { background-position: -16px -192px; }
239
- .ui-icon-circle-close { background-position: -32px -192px; }
240
- .ui-icon-circle-triangle-e { background-position: -48px -192px; }
241
- .ui-icon-circle-triangle-s { background-position: -64px -192px; }
242
- .ui-icon-circle-triangle-w { background-position: -80px -192px; }
243
- .ui-icon-circle-triangle-n { background-position: -96px -192px; }
244
- .ui-icon-circle-arrow-e { background-position: -112px -192px; }
245
- .ui-icon-circle-arrow-s { background-position: -128px -192px; }
246
- .ui-icon-circle-arrow-w { background-position: -144px -192px; }
247
- .ui-icon-circle-arrow-n { background-position: -160px -192px; }
248
- .ui-icon-circle-zoomin { background-position: -176px -192px; }
249
- .ui-icon-circle-zoomout { background-position: -192px -192px; }
250
- .ui-icon-circle-check { background-position: -208px -192px; }
251
- .ui-icon-circlesmall-plus { background-position: 0 -208px; }
252
- .ui-icon-circlesmall-minus { background-position: -16px -208px; }
253
- .ui-icon-circlesmall-close { background-position: -32px -208px; }
254
- .ui-icon-squaresmall-plus { background-position: -48px -208px; }
255
- .ui-icon-squaresmall-minus { background-position: -64px -208px; }
256
- .ui-icon-squaresmall-close { background-position: -80px -208px; }
257
- .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
258
- .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
259
- .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
260
- .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
261
- .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
262
- .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
263
-
264
-
265
- /* Misc visuals
266
- ----------------------------------*/
267
-
268
- /* Corner radius */
269
- .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; }
270
- .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; }
271
- .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; }
272
- .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; }
273
- .ui-corner-top { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; }
274
- .ui-corner-bottom { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; }
275
- .ui-corner-right { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; }
276
- .ui-corner-left { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; }
277
- .ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; }
278
-
279
- /* Overlays */
280
- .ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
281
- .ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; }/* Datepicker
282
- ----------------------------------*/
283
- .ui-datepicker { width: 17em; padding: .2em .2em 0; }
284
- .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
285
- .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
286
- .ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
287
- .ui-datepicker .ui-datepicker-prev { left:2px; }
288
- .ui-datepicker .ui-datepicker-next { right:2px; }
289
- .ui-datepicker .ui-datepicker-prev-hover { left:1px; }
290
- .ui-datepicker .ui-datepicker-next-hover { right:1px; }
291
- .ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
292
- .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
293
- .ui-datepicker .ui-datepicker-title select { float:left; font-size:1em; margin:1px 0; }
294
- .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
295
- .ui-datepicker select.ui-datepicker-month,
296
- .ui-datepicker select.ui-datepicker-year { width: 49%;}
297
- .ui-datepicker .ui-datepicker-title select.ui-datepicker-year { float: right; }
298
- .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
299
- .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
300
- .ui-datepicker td { border: 0; padding: 1px; }
301
- .ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
302
- .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
303
- .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
304
- .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
305
-
306
- /* with multiple calendars */
307
- .ui-datepicker.ui-datepicker-multi { width:auto; }
308
- .ui-datepicker-multi .ui-datepicker-group { float:left; }
309
- .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
310
- .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
311
- .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
312
- .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
313
- .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
314
- .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
315
- .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
316
- .ui-datepicker-row-break { clear:both; width:100%; }
317
-
318
- /* RTL support */
319
- .ui-datepicker-rtl { direction: rtl; }
320
- .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
321
- .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
322
- .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
323
- .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
324
- .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
325
- .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
326
- .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
327
- .ui-datepicker-rtl .ui-datepicker-group { float:right; }
328
- .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
329
- .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
330
-
331
- /* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
332
- .ui-datepicker-cover {
333
- display: none; /*sorry for IE5*/
334
- display/**/: block; /*sorry for IE5*/
335
- position: absolute; /*must have*/
336
- z-index: -1; /*must have*/
337
- filter: mask(); /*must have*/
338
- top: -4px; /*must have*/
339
- left: -4px; /*must have*/
340
- width: 200px; /*must have*/
341
- height: 200px; /*must have*/
342
- }
343
-
344
- /* Slider
345
- ----------------------------------*/
346
- .ui-slider { position: relative; text-align: left; }
347
- .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
348
- .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; }
349
-
350
- .ui-slider-horizontal { height: .8em; }
351
- .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
352
- .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
353
- .ui-slider-horizontal .ui-slider-range-min { left: 0; }
354
- .ui-slider-horizontal .ui-slider-range-max { right: 0; }
355
-
356
- .ui-slider-vertical { width: .8em; height: 100px; }
357
- .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
358
- .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
359
- .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
360
- .ui-slider-vertical .ui-slider-range-max { top: 0; }
361
-
362
- /* css for timepicker */
363
- .ui-timepicker-div .ui-widget-header{ margin-bottom: 8px; }
364
- .ui-timepicker-div dl{ text-align: left; }
365
- .ui-timepicker-div dl dt{ height: 25px; }
366
- .ui-timepicker-div dl dd{ margin: -25px 0 10px 65px; }
367
- .ui-timepicker-div td { font-size: 90%; }
1
+ /**
2
+ * CMB Styling
3
+ */
4
+ table.cmb_metabox td, table.cmb_metabox th { border-bottom: 1px solid #E9E9E9; }
5
+ table.cmb_metabox th { text-align: right; font-weight:bold;}
6
+ table.cmb_metabox th label { margin-top:5px; display:block;}
7
+ p.cmb_metabox_description { color: #AAA; font-style: italic; margin: 2px 0 !important;}
8
+ span.cmb_metabox_description { color: #AAA; font-style: italic;}
9
+ table.cmb_metabox input, table.cmb_metabox textarea { font-size:12px; padding: 5px; }
10
+ table.cmb_metabox input[type=text], table.cmb_metabox textarea { width: 97%; }
11
+ table.cmb_metabox textarea.cmb_textarea_code { font-family: Consolas,Monaco,monospace; line-height: 16px; }
12
+ table.cmb_metabox input.cmb_text_small { width: 100px; margin-right: 15px;}
13
+ table.cmb_metabox input.cmb_timepicker { width: 100px; margin-right: 15px;}
14
+ table.cmb_metabox input.cmb_text_money { width: 90px; margin-right: 15px;}
15
+ table.cmb_metabox input.cmb_text_medium { width: 230px; margin-right: 15px;}
16
+ table.cmb_metabox input.cmb_upload_file { width: 65%; }
17
+ table.cmb_metabox li { font-size:12px; margin: 1px 0 5px 0; line-height: 16px; }
18
+ table.cmb_metabox ul { padding-top:5px; margin: 0; }
19
+ table.cmb_metabox select { font-size:12px; margin-top: 3px;}
20
+ table.cmb_metabox input:focus, table.cmb_metabox textarea:focus { background: #fffff8;}
21
+ .cmb_metabox_title { margin: 0 0 5px 0; padding: 5px 0 0 0; font: italic 24px/35px Georgia,"Times New Roman","Bitstream Charter",Times,serif;}
22
+ .cmb_radio_inline { padding: 4px 0 0 0;}
23
+ .cmb_radio_inline_option {display: inline; padding-right: 18px;}
24
+ table.cmb_metabox input[type="radio"] { margin: 0 5px 0 0; padding: 0;}
25
+ table.cmb_metabox input[type="checkbox"] { margin: 0 5px 0 0; padding: 0;}
26
+ table.cmb_metabox .mceLayout {border:1px solid #DFDFDF !important;}
27
+ table.cmb_metabox .mceIframeContainer {background:#FFF;}
28
+ table.cmb_metabox .meta_mce {width:97%;}
29
+ table.cmb_metabox .meta_mce textarea {width:100%;}
30
+ table.cmb_metabox .cmb_upload_status { margin: 10px 0 0 0;}
31
+ table.cmb_metabox .cmb_upload_status .img_status { position: relative; }
32
+ table.cmb_metabox .cmb_upload_status .img_status img { border:1px solid #DFDFDF; background: #FAFAFA; max-width:350px; padding: 5px; -moz-border-radius: 2px; border-radius: 2px;}
33
+ table.cmb_metabox .cmb_upload_status .img_status .cmb_remove_file_button { text-indent: -9999px; background: url(images/ico-delete.png); width: 16px; height: 16px; position: absolute; top: -5px; left: -5px;}
34
+ /* Sidebar placement adjustments */
35
+ .inner-sidebar table.cmb_metabox input[type=text], table.cmb_metabox textarea { width: 95%; }
36
+ .inner-sidebar table.cmb_metabox .cmb_upload_status .img_status img { width: 90%; }
37
 
38
+ /**
39
+ * Timepicker
40
+ */
41
+ div.time-picker { position: absolute; height: 191px; width:6em; /* needed for IE */overflow: auto; background: #fff; border: 1px solid #aaa; z-index: 99; margin: 0;}
42
+ div.time-picker-12hours { width:8em; /* needed for IE */}
43
+ div.time-picker ul { list-style-type: none; margin: 0; padding: 0; }
44
+ div.time-picker li { cursor: pointer; height: 10px; font: 12px/1 Helvetica, Arial, sans-serif; padding: 4px 3px; }
45
+ div.time-picker li.selected { background: #0063CE; color: #fff; }
 
 
 
 
46
 
47
+ /**
48
+ * jQuery UI CSS Framework 1.8.16
49
+ *
50
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
51
+ * Dual licensed under the MIT or GPL Version 2 licenses.
52
+ * http://jquery.org/license
53
+ *
54
+ * http://docs.jquery.com/UI/Theming/API
55
+ */
56
+ .cmb_element .ui-helper-hidden { display: none; }
57
+ .cmb_element .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
58
+ .cmb_element .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
59
+ .cmb_element .ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
60
+ .cmb_element .ui-helper-clearfix { display: inline-block; }
61
+ * html .ui-helper-clearfix { height:1%; }
62
+ .cmb_element .ui-helper-clearfix { display:block; }
63
+ .cmb_element .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
64
+ .cmb_element .ui-state-disabled { cursor: default !important; }
65
+ .cmb_element .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
66
+ .cmb_element .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
67
+ .cmb_element .ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; }
68
+ .cmb_element .ui-widget .ui-widget { font-size: 1em; }
69
+ .cmb_element .ui-widget input, .cmb_element .ui-widget select, .cmb_element .ui-widget textarea, .cmb_element .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; }
70
+ .cmb_element .ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; }
71
+ .cmb_element .ui-widget-content a { color: #222222; }
72
+ .cmb_element .ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; }
73
+ .cmb_element .ui-widget-header a { color: #222222; }
74
+ .cmb_element .ui-state-default, .cmb_element .ui-widget-content .ui-state-default, .cmb_element .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; }
75
+ .cmb_element .ui-state-default a, .cmb_element .ui-state-default a:link, .cmb_element .ui-state-default a:visited { color: #555555; text-decoration: none; }
76
+ .cmb_element .ui-state-hover, .cmb_element .ui-widget-content .ui-state-hover, .cmb_element .ui-widget-header .ui-state-hover, .cmb_element .ui-state-focus, .cmb_element .ui-widget-content .ui-state-focus, .cmb_element .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
77
+ .cmb_element .ui-state-hover a, .cmb_element .ui-state-hover a:hover { color: #212121; text-decoration: none; }
78
+ .cmb_element .ui-state-active, .cmb_element .ui-widget-content .ui-state-active, .cmb_element .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
79
+ .cmb_element .ui-state-active a, .cmb_element .ui-state-active a:link, .cmb_element .ui-state-active a:visited { color: #212121; text-decoration: none; }
80
+ .cmb_element .ui-widget :active { outline: none; }
81
+ .cmb_element .ui-state-highlight, .cmb_element .ui-widget-content .ui-state-highlight, .cmb_element .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; }
82
+ .cmb_element .ui-state-highlight a, .cmb_element .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
83
+ .cmb_element .ui-state-error, .cmb_element .ui-widget-content .ui-state-error, .cmb_element .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; }
84
+ .cmb_element .ui-state-error a, .cmb_element .ui-widget-content .ui-state-error a, .cmb_element .ui-widget-header .ui-state-error a { color: #cd0a0a; }
85
+ .cmb_element .ui-state-error-text, .cmb_element .ui-widget-content .ui-state-error-text, .cmb_element .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
86
+ .cmb_element .ui-priority-primary, .cmb_element .ui-widget-content .ui-priority-primary, .cmb_element .ui-widget-header .ui-priority-primary { font-weight: bold; }
87
+ .cmb_element .ui-priority-secondary, .cmb_element .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
88
+ .cmb_element .ui-state-disabled, .cmb_element .ui-widget-content .ui-state-disabled, .cmb_element .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
89
+ .cmb_element .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
90
+ .cmb_element .ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
91
+ .cmb_element .ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
92
+ .cmb_element .ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); }
93
+ .cmb_element .ui-state-hover .ui-icon, .cmb_element .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
94
+ .cmb_element .ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
95
+ .cmb_element .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); }
96
+ .cmb_element .ui-state-error .ui-icon, .cmb_element .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }
97
+ .cmb_element .ui-icon-carat-1-n { background-position: 0 0; }
98
+ .cmb_element .ui-icon-carat-1-ne { background-position: -16px 0; }
99
+ .cmb_element .ui-icon-carat-1-e { background-position: -32px 0; }
100
+ .cmb_element .ui-icon-carat-1-se { background-position: -48px 0; }
101
+ .cmb_element .ui-icon-carat-1-s { background-position: -64px 0; }
102
+ .cmb_element .ui-icon-carat-1-sw { background-position: -80px 0; }
103
+ .cmb_element .ui-icon-carat-1-w { background-position: -96px 0; }
104
+ .cmb_element .ui-icon-carat-1-nw { background-position: -112px 0; }
105
+ .cmb_element .ui-icon-carat-2-n-s { background-position: -128px 0; }
106
+ .cmb_element .ui-icon-carat-2-e-w { background-position: -144px 0; }
107
+ .cmb_element .ui-icon-triangle-1-n { background-position: 0 -16px; }
108
+ .cmb_element .ui-icon-triangle-1-ne { background-position: -16px -16px; }
109
+ .cmb_element .ui-icon-triangle-1-e { background-position: -32px -16px; }
110
+ .cmb_element .ui-icon-triangle-1-se { background-position: -48px -16px; }
111
+ .cmb_element .ui-icon-triangle-1-s { background-position: -64px -16px; }
112
+ .cmb_element .ui-icon-triangle-1-sw { background-position: -80px -16px; }
113
+ .cmb_element .ui-icon-triangle-1-w { background-position: -96px -16px; }
114
+ .cmb_element .ui-icon-triangle-1-nw { background-position: -112px -16px; }
115
+ .cmb_element .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
116
+ .cmb_element .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
117
+ .cmb_element .ui-icon-arrow-1-n { background-position: 0 -32px; }
118
+ .cmb_element .ui-icon-arrow-1-ne { background-position: -16px -32px; }
119
+ .cmb_element .ui-icon-arrow-1-e { background-position: -32px -32px; }
120
+ .cmb_element .ui-icon-arrow-1-se { background-position: -48px -32px; }
121
+ .cmb_element .ui-icon-arrow-1-s { background-position: -64px -32px; }
122
+ .cmb_element .ui-icon-arrow-1-sw { background-position: -80px -32px; }
123
+ .cmb_element .ui-icon-arrow-1-w { background-position: -96px -32px; }
124
+ .cmb_element .ui-icon-arrow-1-nw { background-position: -112px -32px; }
125
+ .cmb_element .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
126
+ .cmb_element .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
127
+ .cmb_element .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
128
+ .cmb_element .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
129
+ .cmb_element .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
130
+ .cmb_element .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
131
+ .cmb_element .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
132
+ .cmb_element .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
133
+ .cmb_element .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
134
+ .cmb_element .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
135
+ .cmb_element .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
136
+ .cmb_element .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
137
+ .cmb_element .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
138
+ .cmb_element .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
139
+ .cmb_element .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
140
+ .cmb_element .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
141
+ .cmb_element .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
142
+ .cmb_element .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
143
+ .cmb_element .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
144
+ .cmb_element .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
145
+ .cmb_element .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
146
+ .cmb_element .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
147
+ .cmb_element .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
148
+ .cmb_element .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
149
+ .cmb_element .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
150
+ .cmb_element .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
151
+ .cmb_element .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
152
+ .cmb_element .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
153
+ .cmb_element .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
154
+ .cmb_element .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
155
+ .cmb_element .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
156
+ .cmb_element .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
157
+ .cmb_element .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
158
+ .cmb_element .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
159
+ .cmb_element .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
160
+ .cmb_element .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
161
+ .cmb_element .ui-icon-arrow-4 { background-position: 0 -80px; }
162
+ .cmb_element .ui-icon-arrow-4-diag { background-position: -16px -80px; }
163
+ .cmb_element .ui-icon-extlink { background-position: -32px -80px; }
164
+ .cmb_element .ui-icon-newwin { background-position: -48px -80px; }
165
+ .cmb_element .ui-icon-refresh { background-position: -64px -80px; }
166
+ .cmb_element .ui-icon-shuffle { background-position: -80px -80px; }
167
+ .cmb_element .ui-icon-transfer-e-w { background-position: -96px -80px; }
168
+ .cmb_element .ui-icon-transferthick-e-w { background-position: -112px -80px; }
169
+ .cmb_element .ui-icon-folder-collapsed { background-position: 0 -96px; }
170
+ .cmb_element .ui-icon-folder-open { background-position: -16px -96px; }
171
+ .cmb_element .ui-icon-document { background-position: -32px -96px; }
172
+ .cmb_element .ui-icon-document-b { background-position: -48px -96px; }
173
+ .cmb_element .ui-icon-note { background-position: -64px -96px; }
174
+ .cmb_element .ui-icon-mail-closed { background-position: -80px -96px; }
175
+ .cmb_element .ui-icon-mail-open { background-position: -96px -96px; }
176
+ .cmb_element .ui-icon-suitcase { background-position: -112px -96px; }
177
+ .cmb_element .ui-icon-comment { background-position: -128px -96px; }
178
+ .cmb_element .ui-icon-person { background-position: -144px -96px; }
179
+ .cmb_element .ui-icon-print { background-position: -160px -96px; }
180
+ .cmb_element .ui-icon-trash { background-position: -176px -96px; }
181
+ .cmb_element .ui-icon-locked { background-position: -192px -96px; }
182
+ .cmb_element .ui-icon-unlocked { background-position: -208px -96px; }
183
+ .cmb_element .ui-icon-bookmark { background-position: -224px -96px; }
184
+ .cmb_element .ui-icon-tag { background-position: -240px -96px; }
185
+ .cmb_element .ui-icon-home { background-position: 0 -112px; }
186
+ .cmb_element .ui-icon-flag { background-position: -16px -112px; }
187
+ .cmb_element .ui-icon-calendar { background-position: -32px -112px; }
188
+ .cmb_element .ui-icon-cart { background-position: -48px -112px; }
189
+ .cmb_element .ui-icon-pencil { background-position: -64px -112px; }
190
+ .cmb_element .ui-icon-clock { background-position: -80px -112px; }
191
+ .cmb_element .ui-icon-disk { background-position: -96px -112px; }
192
+ .cmb_element .ui-icon-calculator { background-position: -112px -112px; }
193
+ .cmb_element .ui-icon-zoomin { background-position: -128px -112px; }
194
+ .cmb_element .ui-icon-zoomout { background-position: -144px -112px; }
195
+ .cmb_element .ui-icon-search { background-position: -160px -112px; }
196
+ .cmb_element .ui-icon-wrench { background-position: -176px -112px; }
197
+ .cmb_element .ui-icon-gear { background-position: -192px -112px; }
198
+ .cmb_element .ui-icon-heart { background-position: -208px -112px; }
199
+ .cmb_element .ui-icon-star { background-position: -224px -112px; }
200
+ .cmb_element .ui-icon-link { background-position: -240px -112px; }
201
+ .cmb_element .ui-icon-cancel { background-position: 0 -128px; }
202
+ .cmb_element .ui-icon-plus { background-position: -16px -128px; }
203
+ .cmb_element .ui-icon-plusthick { background-position: -32px -128px; }
204
+ .cmb_element .ui-icon-minus { background-position: -48px -128px; }
205
+ .cmb_element .ui-icon-minusthick { background-position: -64px -128px; }
206
+ .cmb_element .ui-icon-close { background-position: -80px -128px; }
207
+ .cmb_element .ui-icon-closethick { background-position: -96px -128px; }
208
+ .cmb_element .ui-icon-key { background-position: -112px -128px; }
209
+ .cmb_element .ui-icon-lightbulb { background-position: -128px -128px; }
210
+ .cmb_element .ui-icon-scissors { background-position: -144px -128px; }
211
+ .cmb_element .ui-icon-clipboard { background-position: -160px -128px; }
212
+ .cmb_element .ui-icon-copy { background-position: -176px -128px; }
213
+ .cmb_element .ui-icon-contact { background-position: -192px -128px; }
214
+ .cmb_element .ui-icon-image { background-position: -208px -128px; }
215
+ .cmb_element .ui-icon-video { background-position: -224px -128px; }
216
+ .cmb_element .ui-icon-script { background-position: -240px -128px; }
217
+ .cmb_element .ui-icon-alert { background-position: 0 -144px; }
218
+ .cmb_element .ui-icon-info { background-position: -16px -144px; }
219
+ .cmb_element .ui-icon-notice { background-position: -32px -144px; }
220
+ .cmb_element .ui-icon-help { background-position: -48px -144px; }
221
+ .cmb_element .ui-icon-check { background-position: -64px -144px; }
222
+ .cmb_element .ui-icon-bullet { background-position: -80px -144px; }
223
+ .cmb_element .ui-icon-radio-off { background-position: -96px -144px; }
224
+ .cmb_element .ui-icon-radio-on { background-position: -112px -144px; }
225
+ .cmb_element .ui-icon-pin-w { background-position: -128px -144px; }
226
+ .cmb_element .ui-icon-pin-s { background-position: -144px -144px; }
227
+ .cmb_element .ui-icon-play { background-position: 0 -160px; }
228
+ .cmb_element .ui-icon-pause { background-position: -16px -160px; }
229
+ .cmb_element .ui-icon-seek-next { background-position: -32px -160px; }
230
+ .cmb_element .ui-icon-seek-prev { background-position: -48px -160px; }
231
+ .cmb_element .ui-icon-seek-end { background-position: -64px -160px; }
232
+ .cmb_element .ui-icon-seek-start { background-position: -80px -160px; }
233
+ .cmb_element .ui-icon-seek-first { background-position: -80px -160px; }
234
+ .cmb_element .ui-icon-stop { background-position: -96px -160px; }
235
+ .cmb_element .ui-icon-eject { background-position: -112px -160px; }
236
+ .cmb_element .ui-icon-volume-off { background-position: -128px -160px; }
237
+ .cmb_element .ui-icon-volume-on { background-position: -144px -160px; }
238
+ .cmb_element .ui-icon-power { background-position: 0 -176px; }
239
+ .cmb_element .ui-icon-signal-diag { background-position: -16px -176px; }
240
+ .cmb_element .ui-icon-signal { background-position: -32px -176px; }
241
+ .cmb_element .ui-icon-battery-0 { background-position: -48px -176px; }
242
+ .cmb_element .ui-icon-battery-1 { background-position: -64px -176px; }
243
+ .cmb_element .ui-icon-battery-2 { background-position: -80px -176px; }
244
+ .cmb_element .ui-icon-battery-3 { background-position: -96px -176px; }
245
+ .cmb_element .ui-icon-circle-plus { background-position: 0 -192px; }
246
+ .cmb_element .ui-icon-circle-minus { background-position: -16px -192px; }
247
+ .cmb_element .ui-icon-circle-close { background-position: -32px -192px; }
248
+ .cmb_element .ui-icon-circle-triangle-e { background-position: -48px -192px; }
249
+ .cmb_element .ui-icon-circle-triangle-s { background-position: -64px -192px; }
250
+ .cmb_element .ui-icon-circle-triangle-w { background-position: -80px -192px; }
251
+ .cmb_element .ui-icon-circle-triangle-n { background-position: -96px -192px; }
252
+ .cmb_element .ui-icon-circle-arrow-e { background-position: -112px -192px; }
253
+ .cmb_element .ui-icon-circle-arrow-s { background-position: -128px -192px; }
254
+ .cmb_element .ui-icon-circle-arrow-w { background-position: -144px -192px; }
255
+ .cmb_element .ui-icon-circle-arrow-n { background-position: -160px -192px; }
256
+ .cmb_element .ui-icon-circle-zoomin { background-position: -176px -192px; }
257
+ .cmb_element .ui-icon-circle-zoomout { background-position: -192px -192px; }
258
+ .cmb_element .ui-icon-circle-check { background-position: -208px -192px; }
259
+ .cmb_element .ui-icon-circlesmall-plus { background-position: 0 -208px; }
260
+ .cmb_element .ui-icon-circlesmall-minus { background-position: -16px -208px; }
261
+ .cmb_element .ui-icon-circlesmall-close { background-position: -32px -208px; }
262
+ .cmb_element .ui-icon-squaresmall-plus { background-position: -48px -208px; }
263
+ .cmb_element .ui-icon-squaresmall-minus { background-position: -64px -208px; }
264
+ .cmb_element .ui-icon-squaresmall-close { background-position: -80px -208px; }
265
+ .cmb_element .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
266
+ .cmb_element .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
267
+ .cmb_element .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
268
+ .cmb_element .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
269
+ .cmb_element .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
270
+ .cmb_element .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
271
+ .cmb_element .ui-corner-all, .cmb_element .ui-corner-top, .cmb_element .ui-corner-left, .cmb_element .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; }
272
+ .cmb_element .ui-corner-all, .cmb_element .ui-corner-top, .cmb_element .ui-corner-right, .cmb_element .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; }
273
+ .cmb_element .ui-corner-all, .cmb_element .ui-corner-bottom, .cmb_element .ui-corner-left, .cmb_element .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
274
+ .cmb_element .ui-corner-all, .cmb_element .ui-corner-bottom, .cmb_element .ui-corner-right, .cmb_element .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
275
+ .cmb_element .ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
276
+ .cmb_element .ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }
277
+ .cmb_element .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
278
+ .cmb_element .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
279
+ .cmb_element .ui-datepicker .ui-datepicker-prev, .cmb_element .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
280
+ .cmb_element .ui-datepicker .ui-datepicker-prev-hover, .cmb_element .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
281
+ .cmb_element .ui-datepicker .ui-datepicker-prev { left:2px; }
282
+ .cmb_element .ui-datepicker .ui-datepicker-next { right:2px; }
283
+ .cmb_element .ui-datepicker .ui-datepicker-prev-hover { left:1px; }
284
+ .cmb_element .ui-datepicker .ui-datepicker-next-hover { right:1px; }
285
+ .cmb_element .ui-datepicker .ui-datepicker-prev span, .cmb_element .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
286
+ .cmb_element .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
287
+ .cmb_element .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
288
+ .cmb_element .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
289
+ .cmb_element .ui-datepicker select.ui-datepicker-month,
290
+ .cmb_element .ui-datepicker select.ui-datepicker-year { width: 49%;}
291
+ .cmb_element .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
292
+ .cmb_element .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
293
+ .cmb_element .ui-datepicker td { border: 0; padding: 1px; }
294
+ .cmb_element .ui-datepicker td span, .cmb_element .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
295
+ .cmb_element .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
296
+ .cmb_element .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
297
+ .cmb_element .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
298
+ .cmb_element .ui-datepicker.ui-datepicker-multi { width:auto; }
299
+ .cmb_element .ui-datepicker-multi .ui-datepicker-group { float:left; }
300
+ .cmb_element .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
301
+ .cmb_element .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
302
+ .cmb_element .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
303
+ .cmb_element .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
304
+ .cmb_element .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
305
+ .cmb_element .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
306
+ .cmb_element .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
307
+ .cmb_element .ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
308
+ .cmb_element .ui-datepicker-rtl { direction: rtl; }
309
+ .cmb_element .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
310
+ .cmb_element .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
311
+ .cmb_element .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
312
+ .cmb_element .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
313
+ .cmb_element .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
314
+ .cmb_element .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
315
+ .cmb_element .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
316
+ .cmb_element .ui-datepicker-rtl .ui-datepicker-group { float:right; }
317
+ .cmb_element .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
318
+ .cmb_element .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
319
+ .cmb_element .ui-datepicker-cover {
320
+ display: none; /*sorry for IE5*/
321
+ display/**/: block; /*sorry for IE5*/
322
+ position: absolute; /*must have*/
323
+ z-index: -1; /*must have*/
324
+ filter: mask(); /*must have*/
325
+ top: -4px; /*must have*/
326
+ left: -4px; /*must have*/
327
+ width: 200px; /*must have*/
328
+ height: 200px; /*must have*/
329
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
readme.txt CHANGED
@@ -3,19 +3,23 @@ Contributors: billerickson
3
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=EDYM76U6BTE5L
4
  Tags: genesis, genesiswp, title,
5
  Requires at least: 3.0
6
- Tested up to: 3.2.1
7
- Stable tag: 1.2.3
8
 
9
  Turn on/off page titles on a per page basis, and set sitewide defaults from Theme Settings. Must be using the Genesis theme.
10
 
11
  == Description ==
12
 
 
 
13
  This plugin lets you easily remove the page title from specific pages. Don't want "Home" at the top of your homepage? Activate, then edit the homepage and check "Hide".
14
 
15
  You can also set sitewide defaults. If you don't want page titles on any pages, go to Genesis > Theme Settings > Title Toggle and check the appropriate box. Once a post type has the default set to remove, when editing a page you can selectively turn on that page's title.
16
 
17
  Finally, if you're comfortable with code you can use the `be_title_toggle_post_types` filter to change the post types this applies to (it only applies to pages by default).
18
 
 
 
19
 
20
  == Installation ==
21
 
@@ -38,6 +42,9 @@ Finally, if you're comfortable with code you can use the `be_title_toggle_post_t
38
 
39
  == Changelog ==
40
 
 
 
 
41
  = 1.2.3 =
42
  * The fix in 1.2.2 didn't make it for some reason, so re-patching it.
43
 
3
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=EDYM76U6BTE5L
4
  Tags: genesis, genesiswp, title,
5
  Requires at least: 3.0
6
+ Tested up to: 3.4.1
7
+ Stable tag: 1.3
8
 
9
  Turn on/off page titles on a per page basis, and set sitewide defaults from Theme Settings. Must be using the Genesis theme.
10
 
11
  == Description ==
12
 
13
+ This plugin requires the [Genesis theme framework](http://www.billerickson.net/go/genesis).
14
+
15
  This plugin lets you easily remove the page title from specific pages. Don't want "Home" at the top of your homepage? Activate, then edit the homepage and check "Hide".
16
 
17
  You can also set sitewide defaults. If you don't want page titles on any pages, go to Genesis > Theme Settings > Title Toggle and check the appropriate box. Once a post type has the default set to remove, when editing a page you can selectively turn on that page's title.
18
 
19
  Finally, if you're comfortable with code you can use the `be_title_toggle_post_types` filter to change the post types this applies to (it only applies to pages by default).
20
 
21
+ [Support Forum](https://github.com/billerickson/Genesis-Title-Toggle/issues)
22
+
23
 
24
  == Installation ==
25
 
42
 
43
  == Changelog ==
44
 
45
+ = 1.3 =
46
+ * Updated the metabox library to latest version
47
+
48
  = 1.2.3 =
49
  * The fix in 1.2.2 didn't make it for some reason, so re-patching it.
50