Event Organiser - Version 2.4

Version Description

  • iCal parser updated. Specifically:
    • Improved timezone handling
    • Support for 'COUNT' property
    • Improved error & warning feedback
    • Handle GEO tag
    • Import venue latitude/longtitude
  • Themes can switch off plug-in template handling from functions.php with add_theme_support( 'event-organiser' )
  • Added support for event_occurrence__not_in in eo_get_events() and WP_Query()
  • Improved MP6 compatability
  • Add filter eventorganiser_blog_is_24 (determines whether time-input should be 12 hour or 24 hour).
  • Schedule meta for weekly schedule now optional (defaults to 'start' date)
  • Unit tests added (largely for date generation & iCal parsing/generation)
  • Fixes venues not appearing in Appearance > Menus
  • Fixes bug with importing events that have no dates
  • Fixes bug with importing all-day events across timezones
  • Fixes bug with occurrence picker
  • Fixes bug with modal overlay
  • Code refactoring (old iCal parser removed)
  • Updated translations: Arabic, Czech, Danish, German, Greek, Persian,
  • Added translations: Indonesian
Download this release

Release Info

Developer stephenharris
Plugin Icon 128x128 Event Organiser
Version 2.4
Comparing to
See all releases

Code changes from version 2.3.2 to 2.4

Files changed (59) hide show
  1. .gitignore +3 -0
  2. Gruntfile.js +13 -0
  3. classes/class-eo-calendar-widget.php +6 -1
  4. classes/class-eo-venue-list-table.php +1 -1
  5. classes/class-eo-widget-categories.php +1 -1
  6. classes/class-eventorganiser-shortcodes.php +3 -1
  7. composer.json +23 -0
  8. composer.lock +439 -0
  9. css/eventorganiser-admin-classic.css +1 -1
  10. css/eventorganiser-admin-fresh.css +1 -1
  11. css/eventorganiser-admin-style.css +1 -1
  12. css/fullcalendar.css +2 -2
  13. event-organiser-calendar.php +1 -1
  14. event-organiser-settings.php +4 -1
  15. event-organiser.php +2 -6
  16. includes/class-eo-ical-parser.php +269 -52
  17. includes/class-event-organiser-im-export.php +128 -537
  18. includes/event-organiser-archives.php +8 -3
  19. includes/event-organiser-cpt.php +3 -3
  20. includes/event-organiser-event-functions.php +6 -0
  21. includes/event-organiser-install.php +4 -0
  22. includes/event-organiser-register.php +11 -27
  23. includes/event-organiser-templates.php +1 -1
  24. includes/event-organiser-utility-functions.php +1 -1
  25. includes/event.php +92 -29
  26. js/admin-calendar.js +3 -3
  27. js/admin-calendar.min.js +2 -2
  28. js/edit-event-controller.min.js +2 -2
  29. js/event-manager.min.js +1 -1
  30. js/event.js +3 -2
  31. js/event.min.js +2 -2
  32. js/frontend.min.js +2 -2
  33. js/fullcalendar.min.js +2 -2
  34. js/time-picker.min.js +2 -2
  35. js/venues.min.js +2 -2
  36. languages/eventorganiser-ar.mo +0 -0
  37. languages/eventorganiser-ar.po +26 -26
  38. languages/eventorganiser-cs_CZ.mo +0 -0
  39. languages/eventorganiser-cs_CZ.po +26 -26
  40. languages/eventorganiser-da_DK.mo +0 -0
  41. languages/eventorganiser-da_DK.po +25 -25
  42. languages/eventorganiser-de_DE.mo +0 -0
  43. languages/eventorganiser-de_DE.po +40 -111
  44. languages/eventorganiser-el.mo +0 -0
  45. languages/eventorganiser-el.po +25 -25
  46. languages/eventorganiser-fa_IR.mo +0 -0
  47. languages/eventorganiser-fa_IR.po +32 -32
  48. languages/eventorganiser-id_ID.mo +0 -0
  49. languages/eventorganiser-id_ID.po +1791 -0
  50. languages/eventorganiser-nl_NL.po +0 -31
  51. languages/eventorganiser-pl_PL.po +1 -1
  52. languages/eventorganiser.pot +83 -83
  53. package.json +3 -2
  54. readme.md +32 -10
  55. readme.txt +24 -2
  56. templates/archive-event.php +1 -1
  57. templates/taxonomy-event-category.php +1 -1
  58. templates/taxonomy-event-tag.php +1 -1
  59. templates/taxonomy-event-venue.php +1 -1
.gitignore CHANGED
@@ -6,4 +6,7 @@
6
  apigen
7
  documentation
8
  dist
 
 
9
  node_modules
 
6
  apigen
7
  documentation
8
  dist
9
+ vendor
10
+ tests
11
  node_modules
12
+ /composer.phar
Gruntfile.js CHANGED
@@ -82,10 +82,21 @@ module.exports = function(grunt) {
82
  },
83
  },
84
  },
 
 
 
 
 
 
 
 
 
 
85
  });
86
 
87
 
88
 
 
89
  grunt.loadNpmTasks('grunt-shell');
90
 
91
  grunt.loadNpmTasks('grunt-contrib-uglify');
@@ -96,6 +107,8 @@ grunt.loadNpmTasks('grunt-contrib-jshint');
96
 
97
  grunt.loadNpmTasks('grunt-wp-readme-to-markdown');
98
 
 
 
99
  // Default task(s).
100
  grunt.registerTask('default', ['uglify']);
101
 
82
  },
83
  },
84
  },
85
+ phpunit: {
86
+ classes: {
87
+ dir: 'tests'
88
+ },
89
+ options: {
90
+ bin: 'vendor/bin/phpunit',
91
+ bootstrap: 'tests/phpunit.php',
92
+ colors: true
93
+ }
94
+ }
95
  });
96
 
97
 
98
 
99
+
100
  grunt.loadNpmTasks('grunt-shell');
101
 
102
  grunt.loadNpmTasks('grunt-contrib-uglify');
107
 
108
  grunt.loadNpmTasks('grunt-wp-readme-to-markdown');
109
 
110
+ grunt.loadNpmTasks('grunt-phpunit');
111
+
112
  // Default task(s).
113
  grunt.registerTask('default', ['uglify']);
114
 
classes/class-eo-calendar-widget.php CHANGED
@@ -179,7 +179,11 @@ class EO_Calendar_Widget extends WP_Widget
179
  if( ( !defined( 'WP_DEBUG' ) || !WP_DEBUG ) && $calendar && is_array( $calendar ) && isset( $calendar[$key] ) ){
180
  return $calendar[$key];
181
  }
182
-
 
 
 
 
183
  //Month details
184
  $first_day_of_month= intval( $month->format('N') ); //0=sun,...,6=sat
185
  $days_in_month= intval( $month->format('t') ); // 28-31
@@ -206,6 +210,7 @@ class EO_Calendar_Widget extends WP_Widget
206
  'numberposts'=>-1,
207
  'showrepeats'=>1,
208
  );
 
209
  if( $args['show-long'] ){
210
  $args['event_start_before'] = $end;
211
  $args['event_end_after'] = $start;
179
  if( ( !defined( 'WP_DEBUG' ) || !WP_DEBUG ) && $calendar && is_array( $calendar ) && isset( $calendar[$key] ) ){
180
  return $calendar[$key];
181
  }
182
+
183
+ //Parse defaults
184
+ $args['show-long'] = isset( $args['show-long'] ) ? $args['show-long'] : false;
185
+ $args['link-to-single'] = isset( $args['link-to-single'] ) ? $args['link-to-single'] : false;
186
+
187
  //Month details
188
  $first_day_of_month= intval( $month->format('N') ); //0=sun,...,6=sat
189
  $days_in_month= intval( $month->format('t') ); // 28-31
210
  'numberposts'=>-1,
211
  'showrepeats'=>1,
212
  );
213
+
214
  if( $args['show-long'] ){
215
  $args['event_start_before'] = $end;
216
  $args['event_end_after'] = $start;
classes/class-eo-venue-list-table.php CHANGED
@@ -190,4 +190,4 @@ class EO_Venue_List_Table extends WP_List_Table {
190
 
191
  }
192
 
193
- }?>
190
 
191
  }
192
 
193
+ }?>
classes/class-eo-widget-categories.php CHANGED
@@ -43,7 +43,7 @@ class EO_Widget_Categories extends WP_Widget {
43
  $cat_args['walker'] = new EO_Walker_TaxonomyDropdown();
44
  $cat_args['value'] = 'slug';
45
  $cat_args['show_option_none'] = __('Select Category');
46
- wp_dropdown_categories(apply_filters('eventorganiser_widget_event_venues_dropdown_args', $cat_args));
47
  ?>
48
 
49
  <script type='text/javascript'>
43
  $cat_args['walker'] = new EO_Walker_TaxonomyDropdown();
44
  $cat_args['value'] = 'slug';
45
  $cat_args['show_option_none'] = __('Select Category');
46
+ wp_dropdown_categories(apply_filters('eventorganiser_widget_event_categories_dropdown_args', $cat_args));
47
  ?>
48
 
49
  <script type='text/javascript'>
classes/class-eventorganiser-shortcodes.php CHANGED
@@ -33,9 +33,11 @@ class EventOrganiser_Shortcodes {
33
  }
34
  }
35
 
36
- /* Backwards compatibility */
37
  $atts = wp_parse_args($atts,array(
38
  'showpastevents'=>1,
 
 
39
  ));
40
 
41
  self::$add_script = true;
33
  }
34
  }
35
 
36
+ /* Parse defaults */
37
  $atts = wp_parse_args($atts,array(
38
  'showpastevents'=>1,
39
+ 'show-long' => 0, //TODO provide shortcode support
40
+ 'link-to-single' => 0,//TODO provide shortcode support
41
  ));
42
 
43
  self::$add_script = true;
composer.json ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "stephenharris/event-organiser",
3
+ "description": "Event management plug-in for WordPress",
4
+ "keywords": ["events", "wordpress"],
5
+ "homepage": "http://wp-event-organiser.com",
6
+ "type": "wordpress-plugin",
7
+ "license": "GPL-3.0+",
8
+ "authors": [
9
+ {
10
+ "name": "Stephen Harris",
11
+ "email": "contact@stephenharris.info",
12
+ "homepage": "http://www.stephenharris.info"
13
+ }
14
+ ],
15
+ "support": {
16
+ "forum": "http://wp-event-organiser.com/forums",
17
+ "issues": "https://github.com/stephenharris/Event-Organiser/issues"
18
+ },
19
+ "require-dev": {
20
+ "phpunit/phpunit": "3.7.*"
21
+ }
22
+ }
23
+
composer.lock ADDED
@@ -0,0 +1,439 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_readme": [
3
+ "This file locks the dependencies of your project to a known state",
4
+ "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file"
5
+ ],
6
+ "hash": "ad18c69a12257fcc6c30c20c88fcbd40",
7
+ "packages": [
8
+
9
+ ],
10
+ "packages-dev": [
11
+ {
12
+ "name": "phpunit/php-code-coverage",
13
+ "version": "1.2.13",
14
+ "source": {
15
+ "type": "git",
16
+ "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
17
+ "reference": "466e7cd2554b4e264c9e3f31216d25ac0e5f3d94"
18
+ },
19
+ "dist": {
20
+ "type": "zip",
21
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/466e7cd2554b4e264c9e3f31216d25ac0e5f3d94",
22
+ "reference": "466e7cd2554b4e264c9e3f31216d25ac0e5f3d94",
23
+ "shasum": ""
24
+ },
25
+ "require": {
26
+ "php": ">=5.3.3",
27
+ "phpunit/php-file-iterator": ">=1.3.0@stable",
28
+ "phpunit/php-text-template": ">=1.1.1@stable",
29
+ "phpunit/php-token-stream": ">=1.1.3@stable"
30
+ },
31
+ "require-dev": {
32
+ "phpunit/phpunit": "3.7.*@dev"
33
+ },
34
+ "suggest": {
35
+ "ext-dom": "*",
36
+ "ext-xdebug": ">=2.0.5"
37
+ },
38
+ "type": "library",
39
+ "extra": {
40
+ "branch-alias": {
41
+ "dev-master": "1.2.x-dev"
42
+ }
43
+ },
44
+ "autoload": {
45
+ "classmap": [
46
+ "PHP/"
47
+ ]
48
+ },
49
+ "notification-url": "https://packagist.org/downloads/",
50
+ "include-path": [
51
+ ""
52
+ ],
53
+ "license": [
54
+ "BSD-3-Clause"
55
+ ],
56
+ "authors": [
57
+ {
58
+ "name": "Sebastian Bergmann",
59
+ "email": "sb@sebastian-bergmann.de",
60
+ "role": "lead"
61
+ }
62
+ ],
63
+ "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
64
+ "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
65
+ "keywords": [
66
+ "coverage",
67
+ "testing",
68
+ "xunit"
69
+ ],
70
+ "time": "2013-09-10 08:14:32"
71
+ },
72
+ {
73
+ "name": "phpunit/php-file-iterator",
74
+ "version": "1.3.4",
75
+ "source": {
76
+ "type": "git",
77
+ "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
78
+ "reference": "acd690379117b042d1c8af1fafd61bde001bf6bb"
79
+ },
80
+ "dist": {
81
+ "type": "zip",
82
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/acd690379117b042d1c8af1fafd61bde001bf6bb",
83
+ "reference": "acd690379117b042d1c8af1fafd61bde001bf6bb",
84
+ "shasum": ""
85
+ },
86
+ "require": {
87
+ "php": ">=5.3.3"
88
+ },
89
+ "type": "library",
90
+ "autoload": {
91
+ "classmap": [
92
+ "File/"
93
+ ]
94
+ },
95
+ "notification-url": "https://packagist.org/downloads/",
96
+ "include-path": [
97
+ ""
98
+ ],
99
+ "license": [
100
+ "BSD-3-Clause"
101
+ ],
102
+ "authors": [
103
+ {
104
+ "name": "Sebastian Bergmann",
105
+ "email": "sb@sebastian-bergmann.de",
106
+ "role": "lead"
107
+ }
108
+ ],
109
+ "description": "FilterIterator implementation that filters files based on a list of suffixes.",
110
+ "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
111
+ "keywords": [
112
+ "filesystem",
113
+ "iterator"
114
+ ],
115
+ "time": "2013-10-10 15:34:57"
116
+ },
117
+ {
118
+ "name": "phpunit/php-text-template",
119
+ "version": "1.1.4",
120
+ "source": {
121
+ "type": "git",
122
+ "url": "https://github.com/sebastianbergmann/php-text-template.git",
123
+ "reference": "5180896f51c5b3648ac946b05f9ec02be78a0b23"
124
+ },
125
+ "dist": {
126
+ "type": "zip",
127
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5180896f51c5b3648ac946b05f9ec02be78a0b23",
128
+ "reference": "5180896f51c5b3648ac946b05f9ec02be78a0b23",
129
+ "shasum": ""
130
+ },
131
+ "require": {
132
+ "php": ">=5.3.3"
133
+ },
134
+ "type": "library",
135
+ "autoload": {
136
+ "classmap": [
137
+ "Text/"
138
+ ]
139
+ },
140
+ "notification-url": "https://packagist.org/downloads/",
141
+ "include-path": [
142
+ ""
143
+ ],
144
+ "license": [
145
+ "BSD-3-Clause"
146
+ ],
147
+ "authors": [
148
+ {
149
+ "name": "Sebastian Bergmann",
150
+ "email": "sb@sebastian-bergmann.de",
151
+ "role": "lead"
152
+ }
153
+ ],
154
+ "description": "Simple template engine.",
155
+ "homepage": "https://github.com/sebastianbergmann/php-text-template/",
156
+ "keywords": [
157
+ "template"
158
+ ],
159
+ "time": "2012-10-31 18:15:28"
160
+ },
161
+ {
162
+ "name": "phpunit/php-timer",
163
+ "version": "1.0.5",
164
+ "source": {
165
+ "type": "git",
166
+ "url": "https://github.com/sebastianbergmann/php-timer.git",
167
+ "reference": "19689d4354b295ee3d8c54b4f42c3efb69cbc17c"
168
+ },
169
+ "dist": {
170
+ "type": "zip",
171
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/19689d4354b295ee3d8c54b4f42c3efb69cbc17c",
172
+ "reference": "19689d4354b295ee3d8c54b4f42c3efb69cbc17c",
173
+ "shasum": ""
174
+ },
175
+ "require": {
176
+ "php": ">=5.3.3"
177
+ },
178
+ "type": "library",
179
+ "autoload": {
180
+ "classmap": [
181
+ "PHP/"
182
+ ]
183
+ },
184
+ "notification-url": "https://packagist.org/downloads/",
185
+ "include-path": [
186
+ ""
187
+ ],
188
+ "license": [
189
+ "BSD-3-Clause"
190
+ ],
191
+ "authors": [
192
+ {
193
+ "name": "Sebastian Bergmann",
194
+ "email": "sb@sebastian-bergmann.de",
195
+ "role": "lead"
196
+ }
197
+ ],
198
+ "description": "Utility class for timing",
199
+ "homepage": "https://github.com/sebastianbergmann/php-timer/",
200
+ "keywords": [
201
+ "timer"
202
+ ],
203
+ "time": "2013-08-02 07:42:54"
204
+ },
205
+ {
206
+ "name": "phpunit/php-token-stream",
207
+ "version": "1.2.1",
208
+ "source": {
209
+ "type": "git",
210
+ "url": "https://github.com/sebastianbergmann/php-token-stream.git",
211
+ "reference": "5220af2a7929aa35cf663d97c89ad3d50cf5fa3e"
212
+ },
213
+ "dist": {
214
+ "type": "zip",
215
+ "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/5220af2a7929aa35cf663d97c89ad3d50cf5fa3e",
216
+ "reference": "5220af2a7929aa35cf663d97c89ad3d50cf5fa3e",
217
+ "shasum": ""
218
+ },
219
+ "require": {
220
+ "ext-tokenizer": "*",
221
+ "php": ">=5.3.3"
222
+ },
223
+ "type": "library",
224
+ "extra": {
225
+ "branch-alias": {
226
+ "dev-master": "1.2-dev"
227
+ }
228
+ },
229
+ "autoload": {
230
+ "classmap": [
231
+ "PHP/"
232
+ ]
233
+ },
234
+ "notification-url": "https://packagist.org/downloads/",
235
+ "include-path": [
236
+ ""
237
+ ],
238
+ "license": [
239
+ "BSD-3-Clause"
240
+ ],
241
+ "authors": [
242
+ {
243
+ "name": "Sebastian Bergmann",
244
+ "email": "sb@sebastian-bergmann.de",
245
+ "role": "lead"
246
+ }
247
+ ],
248
+ "description": "Wrapper around PHP's tokenizer extension.",
249
+ "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
250
+ "keywords": [
251
+ "tokenizer"
252
+ ],
253
+ "time": "2013-09-13 04:58:23"
254
+ },
255
+ {
256
+ "name": "phpunit/phpunit",
257
+ "version": "3.7.28",
258
+ "source": {
259
+ "type": "git",
260
+ "url": "https://github.com/sebastianbergmann/phpunit.git",
261
+ "reference": "3b97c8492bcafbabe6b6fbd2ab35f2f04d932a8d"
262
+ },
263
+ "dist": {
264
+ "type": "zip",
265
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3b97c8492bcafbabe6b6fbd2ab35f2f04d932a8d",
266
+ "reference": "3b97c8492bcafbabe6b6fbd2ab35f2f04d932a8d",
267
+ "shasum": ""
268
+ },
269
+ "require": {
270
+ "ext-dom": "*",
271
+ "ext-pcre": "*",
272
+ "ext-reflection": "*",
273
+ "ext-spl": "*",
274
+ "php": ">=5.3.3",
275
+ "phpunit/php-code-coverage": "~1.2.1",
276
+ "phpunit/php-file-iterator": ">=1.3.1",
277
+ "phpunit/php-text-template": ">=1.1.1",
278
+ "phpunit/php-timer": ">=1.0.4",
279
+ "phpunit/phpunit-mock-objects": "~1.2.0",
280
+ "symfony/yaml": "~2.0"
281
+ },
282
+ "require-dev": {
283
+ "pear-pear/pear": "1.9.4"
284
+ },
285
+ "suggest": {
286
+ "ext-json": "*",
287
+ "ext-simplexml": "*",
288
+ "ext-tokenizer": "*",
289
+ "phpunit/php-invoker": ">=1.1.0,<1.2.0"
290
+ },
291
+ "bin": [
292
+ "composer/bin/phpunit"
293
+ ],
294
+ "type": "library",
295
+ "extra": {
296
+ "branch-alias": {
297
+ "dev-master": "3.7.x-dev"
298
+ }
299
+ },
300
+ "autoload": {
301
+ "classmap": [
302
+ "PHPUnit/"
303
+ ]
304
+ },
305
+ "notification-url": "https://packagist.org/downloads/",
306
+ "include-path": [
307
+ "",
308
+ "../../symfony/yaml/"
309
+ ],
310
+ "license": [
311
+ "BSD-3-Clause"
312
+ ],
313
+ "authors": [
314
+ {
315
+ "name": "Sebastian Bergmann",
316
+ "email": "sebastian@phpunit.de",
317
+ "role": "lead"
318
+ }
319
+ ],
320
+ "description": "The PHP Unit Testing framework.",
321
+ "homepage": "http://www.phpunit.de/",
322
+ "keywords": [
323
+ "phpunit",
324
+ "testing",
325
+ "xunit"
326
+ ],
327
+ "time": "2013-10-17 07:27:40"
328
+ },
329
+ {
330
+ "name": "phpunit/phpunit-mock-objects",
331
+ "version": "1.2.3",
332
+ "source": {
333
+ "type": "git",
334
+ "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
335
+ "reference": "5794e3c5c5ba0fb037b11d8151add2a07fa82875"
336
+ },
337
+ "dist": {
338
+ "type": "zip",
339
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/5794e3c5c5ba0fb037b11d8151add2a07fa82875",
340
+ "reference": "5794e3c5c5ba0fb037b11d8151add2a07fa82875",
341
+ "shasum": ""
342
+ },
343
+ "require": {
344
+ "php": ">=5.3.3",
345
+ "phpunit/php-text-template": ">=1.1.1@stable"
346
+ },
347
+ "suggest": {
348
+ "ext-soap": "*"
349
+ },
350
+ "type": "library",
351
+ "autoload": {
352
+ "classmap": [
353
+ "PHPUnit/"
354
+ ]
355
+ },
356
+ "notification-url": "https://packagist.org/downloads/",
357
+ "include-path": [
358
+ ""
359
+ ],
360
+ "license": [
361
+ "BSD-3-Clause"
362
+ ],
363
+ "authors": [
364
+ {
365
+ "name": "Sebastian Bergmann",
366
+ "email": "sb@sebastian-bergmann.de",
367
+ "role": "lead"
368
+ }
369
+ ],
370
+ "description": "Mock Object library for PHPUnit",
371
+ "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
372
+ "keywords": [
373
+ "mock",
374
+ "xunit"
375
+ ],
376
+ "time": "2013-01-13 10:24:48"
377
+ },
378
+ {
379
+ "name": "symfony/yaml",
380
+ "version": "v2.3.6",
381
+ "target-dir": "Symfony/Component/Yaml",
382
+ "source": {
383
+ "type": "git",
384
+ "url": "https://github.com/symfony/Yaml.git",
385
+ "reference": "6bb881b948368482e1abf1a75c08bcf88a1c5fc3"
386
+ },
387
+ "dist": {
388
+ "type": "zip",
389
+ "url": "https://api.github.com/repos/symfony/Yaml/zipball/6bb881b948368482e1abf1a75c08bcf88a1c5fc3",
390
+ "reference": "6bb881b948368482e1abf1a75c08bcf88a1c5fc3",
391
+ "shasum": ""
392
+ },
393
+ "require": {
394
+ "php": ">=5.3.3"
395
+ },
396
+ "type": "library",
397
+ "extra": {
398
+ "branch-alias": {
399
+ "dev-master": "2.3-dev"
400
+ }
401
+ },
402
+ "autoload": {
403
+ "psr-0": {
404
+ "Symfony\\Component\\Yaml\\": ""
405
+ }
406
+ },
407
+ "notification-url": "https://packagist.org/downloads/",
408
+ "license": [
409
+ "MIT"
410
+ ],
411
+ "authors": [
412
+ {
413
+ "name": "Fabien Potencier",
414
+ "email": "fabien@symfony.com"
415
+ },
416
+ {
417
+ "name": "Symfony Community",
418
+ "homepage": "http://symfony.com/contributors"
419
+ }
420
+ ],
421
+ "description": "Symfony Yaml Component",
422
+ "homepage": "http://symfony.com",
423
+ "time": "2013-09-22 18:04:39"
424
+ }
425
+ ],
426
+ "aliases": [
427
+
428
+ ],
429
+ "minimum-stability": "stable",
430
+ "stability-flags": [
431
+
432
+ ],
433
+ "platform": [
434
+
435
+ ],
436
+ "platform-dev": [
437
+
438
+ ]
439
+ }
css/eventorganiser-admin-classic.css CHANGED
@@ -38,7 +38,7 @@
38
  ----------------------------------*/
39
 
40
  /* Overlays */
41
- .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
42
 
43
 
44
  /*
38
  ----------------------------------*/
39
 
40
  /* Overlays */
41
+ .ui-widget-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; }
42
 
43
 
44
  /*
css/eventorganiser-admin-fresh.css CHANGED
@@ -38,7 +38,7 @@
38
  ----------------------------------*/
39
 
40
  /* Overlays */
41
- .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
42
 
43
 
44
  /*
38
  ----------------------------------*/
39
 
40
  /* Overlays */
41
+ .ui-widget-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; }
42
 
43
 
44
  /*
css/eventorganiser-admin-style.css CHANGED
@@ -26,7 +26,7 @@
26
  /* Calendar View*/
27
  .fc-button-next,.fc-button-prev {margin-top:2px;}
28
  .fc-text-arrow{line-height:0em;}
29
- .fc-button-prev .ui-button-text,.fc-button-next .ui-button-text{padding-top:0.2em;}
30
  .fc-button{line-height:1em;height: 2.2em;line-height: 2.2em;}
31
  .event.past-event{opacity:0.5;}
32
  form.eo_cal .ui-autocomplete-input{width:220px;}
26
  /* Calendar View*/
27
  .fc-button-next,.fc-button-prev {margin-top:2px;}
28
  .fc-text-arrow{line-height:0em;}
29
+ .fc-button-prev .ui-button-text,.fc-button-next .ui-button-text{padding-top:0.1em;}
30
  .fc-button{line-height:1em;height: 2.2em;line-height: 2.2em;}
31
  .event.past-event{opacity:0.5;}
32
  form.eo_cal .ui-autocomplete-input{width:220px;}
css/fullcalendar.css CHANGED
@@ -6,10 +6,10 @@
6
 
7
  /*styling for calendar view tabs */
8
  .view-button{float:right;height: 30px;line-height: 28px;margin-top: 3px;padding: 0 11px;}
9
- .view-button.active{border-color: #dfdfdf #dfdfdf #FFFFFF;border-style: solid;border-width: 1px;font-size: 120%;}
10
 
11
  /*calendar view conainer */
12
- div#calendar-view{clear: both;height: 34px;margin-bottom: 15px;border-bottom: 1px solid #dfdfdf;padding-right: 100px;position: relative;}
 
13
 
14
  /* loading text */
15
  #loading{position:absolute;bottom:0;font-size: 16px;line-height: 16px;margin-bottom: 5px;}
6
 
7
  /*styling for calendar view tabs */
8
  .view-button{float:right;height: 30px;line-height: 28px;margin-top: 3px;padding: 0 11px;}
 
9
 
10
  /*calendar view conainer */
11
+ #calendar-view{clear: both;height: 34px;margin-bottom: 15px;border-bottom: 1px solid #dfdfdf;padding-right: 100px;position: relative;}
12
+ #calendar-view .nav-tab{ font-size: 15px }
13
 
14
  /* loading text */
15
  #loading{position:absolute;bottom:0;font-size: 16px;line-height: 16px;margin-bottom: 5px;}
event-organiser-calendar.php CHANGED
@@ -231,7 +231,7 @@ class EventOrganiser_Calendar_Page extends EventOrganiser_Admin_Page
231
  <div id="calendar-view">
232
  <span id='loading' style='display:none'><?php _e( 'Loading&#8230;' );?></span>
233
  <?php foreach( $views as $id => $label )
234
- printf( '<a href="#" class="view-button %s" id="%s">%s</a>', ( $id == $current ? 'active' : '' ), $id, $label );
235
  ?>
236
  </div>
237
 
231
  <div id="calendar-view">
232
  <span id='loading' style='display:none'><?php _e( 'Loading&#8230;' );?></span>
233
  <?php foreach( $views as $id => $label )
234
+ printf( '<a href="#" class="nav-tab view-button %s" id="%s">%s</a>', ( $id == $current ? 'nav-tab-active' : '' ), $id, $label );
235
  ?>
236
  </div>
237
 
event-organiser-settings.php CHANGED
@@ -552,8 +552,11 @@ class EventOrganiser_Settings_Page extends EventOrganiser_Admin_Page{
552
 
553
  function display_permissions(){
554
  global $wp_roles;
555
- echo '<p>'.__( 'Set permissions for events and venue management', 'eventorganiser' ).'</p>';
556
  ?>
 
 
 
557
  <table class="widefat fixed posts">
558
  <thead>
559
  <tr>
552
 
553
  function display_permissions(){
554
  global $wp_roles;
555
+
556
  ?>
557
+ <h4> <?php _e( 'Event management permissions', 'eventorganiser' ); ?></h4>
558
+ <p> <?php _e( 'Set permissions for events and venue management', 'eventorganiser' ); ?> </p>
559
+
560
  <table class="widefat fixed posts">
561
  <thead>
562
  <tr>
event-organiser.php CHANGED
@@ -2,7 +2,7 @@
2
  /*
3
  Plugin Name: Event Organiser
4
  Plugin URI: http://www.wp-event-organiser.com
5
- Version: 2.3.2
6
  Description: Creates a custom post type 'events' with features such as reoccurring events, venues, Google Maps, calendar views and events and venue pages
7
  Author: Stephen Harris
8
  Author URI: http://www.stephenharris.info
@@ -38,7 +38,7 @@ Domain Path: /languages
38
  /**
39
  * Set the plug-in database version
40
  */
41
- define( 'EVENT_ORGANISER_VER', '2.3.2' );
42
 
43
 
44
  add_action( 'after_setup_theme', '_eventorganiser_set_constants' );
@@ -203,10 +203,6 @@ if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
203
  require_once(EVENT_ORGANISER_DIR.'includes/event-organiser-ajax.php');
204
  }
205
 
206
- if( defined( 'WP_DEBUG' ) && WP_DEBUG ){
207
- add_action( 'register_sidebar', '_eventorganiser_check_sidebars' );
208
- }
209
-
210
  /****** Functions ******/
211
  require_once(EVENT_ORGANISER_DIR.'includes/event-organiser-event-functions.php');
212
  require_once(EVENT_ORGANISER_DIR.'includes/event-organiser-venue-functions.php');
2
  /*
3
  Plugin Name: Event Organiser
4
  Plugin URI: http://www.wp-event-organiser.com
5
+ Version: 2.4
6
  Description: Creates a custom post type 'events' with features such as reoccurring events, venues, Google Maps, calendar views and events and venue pages
7
  Author: Stephen Harris
8
  Author URI: http://www.stephenharris.info
38
  /**
39
  * Set the plug-in database version
40
  */
41
+ define( 'EVENT_ORGANISER_VER', '2.4' );
42
 
43
 
44
  add_action( 'after_setup_theme', '_eventorganiser_set_constants' );
203
  require_once(EVENT_ORGANISER_DIR.'includes/event-organiser-ajax.php');
204
  }
205
 
 
 
 
 
206
  /****** Functions ******/
207
  require_once(EVENT_ORGANISER_DIR.'includes/event-organiser-event-functions.php');
208
  require_once(EVENT_ORGANISER_DIR.'includes/event-organiser-venue-functions.php');
includes/class-eo-ical-parser.php CHANGED
@@ -1,4 +1,7 @@
1
  <?php
 
 
 
2
 
3
  /**
4
  * Parses a local or remote ICAL file
@@ -12,6 +15,7 @@
12
  * $ical->venues; //Array of venue names
13
  * $ical->categories; //Array of category names
14
  * $ical->errors; //Array of WP_Error errors
 
15
  * </code>
16
  *
17
  * You can configire default settings by passing an array to the class constructor.
@@ -35,14 +39,20 @@ class EO_ICAL_Parser{
35
 
36
  var $events = array();
37
  var $venues = array();
 
38
  var $categories = array();
 
 
39
  var $errors = array();
 
40
 
41
  var $events_parsed = 0;
42
  var $venue_parsed = 0;
43
  var $categories_parsed = 0;
44
 
45
  var $current_event = array();
 
 
46
 
47
  /**
48
  * Constructor with settings passed as arguments
@@ -86,9 +96,10 @@ class EO_ICAL_Parser{
86
  $this->ical_array = $this->url_to_array( $file );
87
 
88
  }else{
89
- $this->ical_array = WP_Error( 'invalid-ical-source',
 
90
  __( 'There was an error detecting ICAL source.', 'eventorgansier' )
91
- );
92
  }
93
 
94
  if( is_wp_error( $this->ical_array ) )
@@ -175,10 +186,11 @@ class EO_ICAL_Parser{
175
  protected function parse_ical_array(){
176
 
177
  $state = "NONE";//Initial state
 
178
 
179
  //Read through each line
180
- for ( $n = 0; $n < count ( $this->ical_array ) && empty( $this->errors ); $n++ ):
181
- $buff = trim( $this->ical_array[$n] );
182
 
183
  if( !empty( $buff ) ):
184
  $line = explode(':',$buff,2);
@@ -194,22 +206,31 @@ class EO_ICAL_Parser{
194
  //If END:VEVENT, add event to parsed events and clear $event
195
  if( $property=='END' && $value=='VEVENT' ){
196
  $state = "VCALENDAR";
 
 
 
 
 
 
 
 
 
197
  $this->events[] = $this->current_event;
198
  $this->current_event = array();
199
 
200
  //Otherwise, parse event property
201
  }else{
202
  try{
203
- while( isset( $this->ical_array[$n+1] ) && $this->ical_array[$n+1][0] == ' ' ){
204
  //Remove initial white space {@link http://www.ietf.org/rfc/rfc2445.txt Section 4.1}
205
- $value .= substr( $this->ical_array[$n+1], 1 );
206
- $n++;
207
  }
208
 
209
  $this->parse_event_property( $property, $value, $modifiers );
210
 
211
  }catch( Exception $e ){
212
- $this->report_error( $n+1, 'event-property-error', $e->getMessage() );
213
  $state = "VCALENDAR";//Abort parsing event
214
  }
215
  }
@@ -226,12 +247,7 @@ class EO_ICAL_Parser{
226
  $state = "NONE";
227
 
228
  }elseif($property=='X-WR-TIMEZONE'){
229
- try{
230
- $this->calendar_timezone = $this->parse_timezone($value);
231
- }catch(Exception $e){
232
- $this->report_error( $n+1, 'timezone-parser-error', $e->getMessage() );
233
- break;
234
- }
235
  }
236
 
237
  //Other
@@ -254,7 +270,24 @@ class EO_ICAL_Parser{
254
 
255
  $this->errors[] = new WP_Error(
256
  $type,
257
- sprintf( __( 'Line: %1$d', 'eventorganiser' ), $line ).' '.$message
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
258
  );
259
  }
260
 
@@ -267,6 +300,7 @@ class EO_ICAL_Parser{
267
  if( !empty( $modifiers ) ):
268
  foreach( $modifiers as $modifier ):
269
  if ( stristr( $modifier, 'TZID' ) ){
 
270
  $date_tz = $this->parse_timezone( substr( $modifier, 5 ) );
271
 
272
  }elseif( stristr( $modifier, 'VALUE' ) ){
@@ -389,11 +423,20 @@ class EO_ICAL_Parser{
389
  $this->current_event['post_status'] = isset( $map[$value] ) ? $map[$value] : $this->default_status;
390
  break;
391
 
392
- //An url associated with the event
 
 
 
 
 
 
 
 
393
  case 'URL':
394
  $this->current_event['url'] = $value;
395
  break;
396
 
 
397
  endswitch;
398
 
399
  }
@@ -428,12 +471,103 @@ class EO_ICAL_Parser{
428
  * @param string $tzid - the value of the ICAL TZID property
429
  * @return DateTimeZone - the timezone with the given identifier or false if it isn't recognised
430
  */
431
- protected function parse_timezone( $tzid ){
 
432
  $tzid = str_replace( '-', '/', $tzid );
433
- $tz = new DateTimeZone( $tzid );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
434
  return $tz;
435
  }
436
 
 
 
437
  /**
438
  * Takes a date in ICAL and returns a datetime object
439
  *
@@ -447,10 +581,15 @@ class EO_ICAL_Parser{
447
  preg_match('/^(\d{8})*/', $ical_date, $matches);
448
 
449
  if( count( $matches ) !=2 ){
450
- throw new Exception(__('Invalid date. Date expected in YYYYMMDD format.','eventorganiser'));
 
 
 
 
451
  }
452
 
453
- $datetime = new DateTime( $matches[1], $this->calendar_timezone );
 
454
 
455
  return $datetime;
456
  }
@@ -480,7 +619,11 @@ class EO_ICAL_Parser{
480
  $tz = new DateTimeZone('UTC');
481
 
482
  }else{
483
- throw new Exception(__('Invalid datetime. Date expected in YYYYMMDDTHHiissZ or YYYYMMDDTHHiiss format.','eventorganiser'));
 
 
 
 
484
  return false;
485
  }
486
 
@@ -508,56 +651,130 @@ class EO_ICAL_Parser{
508
  $property = $prop_value[0];
509
  $value = $prop_value[1];
510
 
511
- switch($property):
512
- case 'FREQ':
513
- $rule_array['schedule'] =strtolower($value);
514
- break;
515
 
516
- case 'INTERVAL':
517
- $rule_array['frequency'] =intval($value);
518
  break;
519
 
520
- case 'UNTIL':
521
- //Is the scheduled end a date-time or just a date?
522
- if(preg_match('/^((\d{8}T\d{6})(Z)?)/', $value))
523
- $date = $this->parse_ical_datetime( $value, new DateTimeZone('UTC') );
524
- else
525
- $date = $this->parse_ical_date( $value );
 
 
 
526
 
527
- $rule_array['schedule_last'] = $date;
 
528
  break;
529
 
530
- case 'BYDAY':
531
- $byday = $value;
532
  break;
533
 
534
- case 'BYMONTHDAY':
535
- $bymonthday = $value;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
536
  break;
537
  endswitch;
538
 
539
- endforeach;
540
 
541
- //Meta-data for Weekly and Monthly schedules
542
- if($rule_array['schedule']=='monthly'):
543
- if(isset($byday)){
544
- preg_match('/(\d+)([a-zA-Z]+)/', $byday, $matches);
545
- $rule_array['schedule_meta'] ='BYDAY='.$matches[1].$matches[2];
 
 
 
 
 
 
 
 
 
 
 
 
 
546
 
547
- }elseif(isset($bymonthday)){
548
- $rule_array['schedule_meta'] ='BYMONTHDAY='.$bymonthday;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
549
 
550
  }else{
551
  throw new Exception('Incomplete scheduling information');
552
  }
553
 
554
- elseif($rule_array['schedule']=='weekly'):
555
- preg_match('/([a-zA-Z,]+)/', $byday, $matches);
556
- $rule_array['schedule_meta'] =explode(',',$matches[1]);
557
 
558
- endif;
559
 
560
- return $rule_array;
 
 
 
 
 
 
 
 
 
 
 
 
561
  }
562
 
563
- }
 
 
 
 
 
 
 
 
 
 
1
  <?php
2
+ //TODO How does UNTIL=[DATE] as opposed to UNTIL=[DATE-TIME] affect "foreign" recurring events
3
+ //TODO Resolve issue (1) below
4
+ //TODO Detect issue (2) and issue error notices
5
 
6
  /**
7
  * Parses a local or remote ICAL file
15
  * $ical->venues; //Array of venue names
16
  * $ical->categories; //Array of category names
17
  * $ical->errors; //Array of WP_Error errors
18
+ * $ical->warnings; //Array of WP_Error 'warnings'. This are "non-fatal" errors (e.g. warnings about timezone 'guessing').
19
  * </code>
20
  *
21
  * You can configire default settings by passing an array to the class constructor.
39
 
40
  var $events = array();
41
  var $venues = array();
42
+ var $venue_meta = array();
43
  var $categories = array();
44
+
45
+
46
  var $errors = array();
47
+ var $warnings = array();
48
 
49
  var $events_parsed = 0;
50
  var $venue_parsed = 0;
51
  var $categories_parsed = 0;
52
 
53
  var $current_event = array();
54
+
55
+ var $line = 0; //Current line being parsed
56
 
57
  /**
58
  * Constructor with settings passed as arguments
96
  $this->ical_array = $this->url_to_array( $file );
97
 
98
  }else{
99
+ $this->ical_array = new WP_Error(
100
+ 'invalid-ical-source',
101
  __( 'There was an error detecting ICAL source.', 'eventorgansier' )
102
+ );
103
  }
104
 
105
  if( is_wp_error( $this->ical_array ) )
186
  protected function parse_ical_array(){
187
 
188
  $state = "NONE";//Initial state
189
+ $this->line = 1;
190
 
191
  //Read through each line
192
+ for ( $this->line = 1; $this->line <= count ( $this->ical_array ) && empty( $this->errors ); $this->line++ ):
193
+ $buff = trim( $this->ical_array[$this->line-1] );
194
 
195
  if( !empty( $buff ) ):
196
  $line = explode(':',$buff,2);
206
  //If END:VEVENT, add event to parsed events and clear $event
207
  if( $property=='END' && $value=='VEVENT' ){
208
  $state = "VCALENDAR";
209
+
210
+ //Now we've finished passing the event, move venue data to $this->venue_meta
211
+ if( isset( $this->current_event['geo'] ) && !empty( $this->current_event['event-venue'] ) ){
212
+ $venue = $this->current_event['event-venue'];
213
+ $this->venue_meta[$venue]['latitude'] = $this->current_event['geo']['lat'];
214
+ $this->venue_meta[$venue]['longtitude'] = $this->current_event['geo']['lng'];
215
+ unset( $this->current_event['geo'] );
216
+ }
217
+
218
  $this->events[] = $this->current_event;
219
  $this->current_event = array();
220
 
221
  //Otherwise, parse event property
222
  }else{
223
  try{
224
+ while( isset( $this->ical_array[$this->line] ) && $this->ical_array[$this->line-1][0] == ' ' ){
225
  //Remove initial white space {@link http://www.ietf.org/rfc/rfc2445.txt Section 4.1}
226
+ $value .= substr( $this->ical_array[$this->line-1], 1 );
227
+ $this->line++;
228
  }
229
 
230
  $this->parse_event_property( $property, $value, $modifiers );
231
 
232
  }catch( Exception $e ){
233
+ $this->report_error( $this->line, 'event-property-error', $e->getMessage() );
234
  $state = "VCALENDAR";//Abort parsing event
235
  }
236
  }
247
  $state = "NONE";
248
 
249
  }elseif($property=='X-WR-TIMEZONE'){
250
+ $this->calendar_timezone = $this->parse_timezone($value);
 
 
 
 
 
251
  }
252
 
253
  //Other
270
 
271
  $this->errors[] = new WP_Error(
272
  $type,
273
+ sprintf( __( '[Line %1$d]', 'eventorganiser' ), $line ).' '.$message,
274
+ array( 'line' => $line )
275
+ );
276
+ }
277
+
278
+ /**
279
+ * Report an warnings with an iCal file
280
+ * @ignore
281
+ * @param int $line The line on which the error occurs.
282
+ * @param string $type The type of error
283
+ * @param string $message Verbose error message
284
+ */
285
+ protected function report_warning( $line, $type, $message ){
286
+
287
+ $this->warnings[] = new WP_Error(
288
+ $type,
289
+ sprintf( __( '[Line %1$d]', 'eventorganiser' ), $line ).' '.$message,
290
+ array( 'line' => $line )
291
  );
292
  }
293
 
300
  if( !empty( $modifiers ) ):
301
  foreach( $modifiers as $modifier ):
302
  if ( stristr( $modifier, 'TZID' ) ){
303
+
304
  $date_tz = $this->parse_timezone( substr( $modifier, 5 ) );
305
 
306
  }elseif( stristr( $modifier, 'VALUE' ) ){
423
  $this->current_event['post_status'] = isset( $map[$value] ) ? $map[$value] : $this->default_status;
424
  break;
425
 
426
+ case 'GEO':
427
+ $lat_lng = array_map( 'floatval', explode( ';', $value ) );
428
+ if( count( $lat_lng ) === 2 ){
429
+ $keys = array( 'lat', 'lng' );
430
+ $this->current_event['geo'] = array_combine( $keys, $lat_lng );
431
+ }
432
+ break;
433
+
434
+ //An url associated with the event
435
  case 'URL':
436
  $this->current_event['url'] = $value;
437
  break;
438
 
439
+
440
  endswitch;
441
 
442
  }
471
  * @param string $tzid - the value of the ICAL TZID property
472
  * @return DateTimeZone - the timezone with the given identifier or false if it isn't recognised
473
  */
474
+ public function parse_timezone( $tzid ){
475
+
476
  $tzid = str_replace( '-', '/', $tzid );
477
+ $tzid = trim( $tzid, '\'"' );
478
+
479
+ //Try just using the passed timezone ID
480
+ try{
481
+ $tz = new DateTimeZone( $tzid );
482
+ }catch( exception $e ){
483
+ $tz = null;
484
+ }
485
+
486
+ //If we have something like (GMT+01.00) Amsterdam / Berlin / Bern / Rome / Stockholm / Vienna lets try the cities
487
+ if( is_null( $tz ) && preg_match( '/GMT(?P<offset>.+)\)(?P<cities>.+)?/', $tzid, $matches ) ){
488
+
489
+ if( $matches['cities'] ){
490
+ $parts = explode( '/', $matches['cities'] );
491
+ $tz_cities = array_map( 'trim', $parts );
492
+ $identifiers = timezone_identifiers_list();
493
+
494
+ foreach( $tz_cities as $tz_city ){
495
+
496
+ $tz_city = ucfirst( strtolower( $tz_city ) );
497
+
498
+ foreach( $identifiers as $identifier ){
499
+
500
+ $parts = explode('/', $identifier );
501
+ $city = array_pop( $parts );
502
+
503
+ if( $city != $tz_city )
504
+ continue;
505
+
506
+ try{
507
+ $tz = new DateTimeZone( $identifier );
508
+ break 2;
509
+ }catch( exception $e ){
510
+ $tz = null;
511
+ }
512
+ }
513
+ }
514
+ }
515
+
516
+ if( $tz == null && $matches['offset'] ){
517
+
518
+ $offset = (int) str_replace( '/', '-', trim( $matches['offset'] ) );
519
+
520
+ if( $offset == 0 ){
521
+ $tz = new DateTimeZone( 'UTC' );
522
+ }else{
523
+ $offset *= 3600; // convert hour offset to seconds
524
+ $allowed_zones = timezone_abbreviations_list();
525
+
526
+ foreach ( $allowed_zones as $abbr ):
527
+ foreach ( $abbr as $city ):
528
+ if ( $city['offset'] == $offset ){
529
+ try{
530
+ $tz = new DateTimeZone( $city['timezone_id'] );
531
+ break 2;
532
+ }catch( exception $e ){
533
+ $tz = null;
534
+ }
535
+ }
536
+ endforeach;
537
+ endforeach;
538
+ }
539
+ }
540
+ }
541
+
542
+ //If we have something like /mozilla.org/20070129_1/Europe/Berlin
543
+ if( is_null( $tz ) && preg_match( '#(/?)mozilla.org/([\d_]+)/(?P<tzid>.+)#', $tzid, $matches ) ){
544
+ try{
545
+ $tz = new DateTimeZone( $matches['tzid'] );
546
+ }catch( exception $e ){
547
+ $tz = null;
548
+ }
549
+ }
550
+
551
+ //Let plugins over-ride this
552
+ $tz = apply_filters( 'eventorganiser_ical_timezone', $tz, $tzid );
553
+
554
+ if ( ! ($tz instanceof DateTimeZone ) ) {
555
+ $tz = eo_get_blog_timezone();
556
+ }
557
+
558
+ if( $tz->getName() != $tzid ){
559
+ $this->report_warning(
560
+ $this->line,
561
+ 'timezone-parser-warning',
562
+ sprintf( 'Unknown timezone "%s" interpreted as "%s".', $tzid, $tz->getName() )
563
+ );
564
+ }
565
+
566
  return $tz;
567
  }
568
 
569
+
570
+
571
  /**
572
  * Takes a date in ICAL and returns a datetime object
573
  *
581
  preg_match('/^(\d{8})*/', $ical_date, $matches);
582
 
583
  if( count( $matches ) !=2 ){
584
+ throw new Exception(
585
+ sprintf(
586
+ __( 'Invalid date "%s". Date expected in YYYYMMDD format.', 'eventorganiser' ),
587
+ $ical_date
588
+ ));
589
  }
590
 
591
+ //No time is given, so ignore timezone. (So use blog timezone).
592
+ $datetime = new DateTime( $matches[1], eo_get_blog_timezone() );
593
 
594
  return $datetime;
595
  }
619
  $tz = new DateTimeZone('UTC');
620
 
621
  }else{
622
+ throw new Exception(
623
+ sprintf(
624
+ __( 'Invalid datetime "%s". Date expected in YYYYMMDDTHHiissZ or YYYYMMDDTHHiiss format.', 'eventorganiser' ),
625
+ $ical_date
626
+ ));
627
  return false;
628
  }
629
 
651
  $property = $prop_value[0];
652
  $value = $prop_value[1];
653
 
654
+ switch( $property ):
655
+ case 'FREQ':
656
+ $rule_array['schedule'] =strtolower($value);
657
+ break;
658
 
659
+ case 'INTERVAL':
660
+ $rule_array['frequency'] =intval($value);
661
  break;
662
 
663
+ case 'UNTIL':
664
+ //Is the scheduled end a date-time or just a date?
665
+ if(preg_match('/^((\d{8}T\d{6})(Z)?)/', $value))
666
+ $date = $this->parse_ical_datetime( $value, new DateTimeZone('UTC') );
667
+ else
668
+ $date = $this->parse_ical_date( $value );
669
+
670
+ $rule_array['schedule_last'] = $date;
671
+ break;
672
 
673
+ case 'COUNT':
674
+ $rule_array['number_occurrences'] = absint( $value );
675
  break;
676
 
677
+ case 'BYDAY':
678
+ $byday = $value;
679
  break;
680
 
681
+ case 'BYMONTHDAY':
682
+ $bymonthday = $value;
683
+ break;
684
+
685
+ //Not supported with warning
686
+ case 'BYSECOND':
687
+ case 'BYMINUTE':
688
+ case 'BYHOUR':
689
+ case 'BYYEARDAY':
690
+ case 'BYWEEKNO':
691
+ case 'BYSETPOS':
692
+ $this->report_warning(
693
+ $this->line,
694
+ 'unsupported-recurrence-rule',
695
+ sprintf(
696
+ 'Feed contains unrecognised recurrence rule: "%s" and may have not been imported correctly.',
697
+ $property
698
+ )
699
+ );
700
+ break;
701
+
702
+ //Not supported without warning
703
+ case 'WKST':
704
  break;
705
  endswitch;
706
 
707
+ endforeach;
708
 
709
+ //Meta-data for Weekly and Monthly schedules
710
+ if( $rule_array['schedule']=='monthly' ):
711
+
712
+ if( isset( $byday ) ){
713
+ preg_match_all('/(-?\d+)([a-zA-Z]+)/', $byday, $matches);
714
+
715
+ if ( count( $matches[0] ) > 1 ){
716
+ $this->report_warning(
717
+ $this->line,
718
+ 'unsupported-recurrence-rule',
719
+ sprintf(
720
+ 'Feed contains unsupported value for "%s" and may have not been imported correctly.',
721
+ $property
722
+ )
723
+ );
724
+ }
725
+
726
+ $rule_array['schedule_meta'] ='BYDAY='.$matches[0][0];
727
 
728
+ }elseif( isset( $bymonthday ) ){
729
+
730
+ $days = explode( ',', $bymonthday );
731
+
732
+ if ( count( $days ) > 1 ){
733
+ $this->report_warning(
734
+ $this->line,
735
+ 'unsupported-recurrence-rule',
736
+ sprintf(
737
+ 'Feed contains unsupported value for "%s" and may have not been imported correctly.',
738
+ $property
739
+ )
740
+ );
741
+ }
742
+
743
+ $rule_array['schedule_meta'] ='BYMONTHDAY='.$days[0];
744
 
745
  }else{
746
  throw new Exception('Incomplete scheduling information');
747
  }
748
 
749
+ elseif( $rule_array['schedule'] == 'weekly' ):
750
+ preg_match( '/([a-zA-Z,]+)/', $byday, $matches );
751
+ $rule_array['schedule_meta'] = explode(',',$matches[1]);
752
 
753
+ endif;
754
 
755
+ //If importing indefinately recurring, recurr up to some large point in time.
756
+ //TODO make a log of this somewhere.
757
+ if( empty( $rule_array['schedule_last'] ) && empty( $rule_array['number_occurrences'] ) ){
758
+ $rule_array['schedule_last'] = new DateTime( '2038-01-19 00:00:00' );
759
+
760
+ $this->report_warning(
761
+ $this->line,
762
+ 'indefinitely-recurring-event',
763
+ "Feed contained an indefinitely recurring event. This event will recurr until 2038-01-19."
764
+ );
765
+ }
766
+
767
+ return $rule_array;
768
  }
769
 
770
+ }
771
+
772
+ /*
773
+ * * Known issue (1): recurrence is sometimes not translated properly across timezones.
774
+ * - ICAL has event recurring every month on the 2nd at 02:00 (2am) UTC time.
775
+ * - Importing blog has New York Time Zone (UTC -4/5).
776
+ * - Then event recurs every month on the **1st** at 22:00 (10pm) New York Time
777
+ * - The **2nd** is not corrected to **1st**.
778
+ *
779
+ * * Known issue (2): cannot import events with a recurrence schedule EO doesn't understand.
780
+ */
includes/class-event-organiser-im-export.php CHANGED
@@ -1,4 +1,6 @@
1
  <?php
 
 
2
  /**
3
  * Event importer / exporter
4
  */
@@ -10,15 +12,6 @@ if ( ! function_exists( 'add_action' ) ) {
10
 
11
  /**
12
  * Event Organiser Import/Export handler
13
- *
14
- * This needs refactoring and should use the EO_ICAL_Parser();
15
- *
16
- * Known issue: recurrence is sometimes not translated properly across timezones.
17
- * - ICAL has event recurring every month on the 2nd at 02:00 (2am) UTC time.
18
- * - Importing blog has New York Time Zone (UTC -4/5).
19
- * - Then event recurres every month on the **1st** at 22:00 (10pm) New York Time
20
- * - The **2nd** is not corrected to **1st**.
21
- *
22
  */
23
  class Event_Organiser_Im_Export {
24
 
@@ -39,7 +32,7 @@ class Event_Organiser_Im_Export {
39
  public function __construct() {
40
  global $pagenow, $EO_Errors;
41
 
42
- if(!isset($EO_Errors)) $EO_Errors = new WP_Error();
43
 
44
  if( is_feed('eo-events') && eventorganiser_get_option('feed') ){
45
  $this->get_export_file();
@@ -89,9 +82,9 @@ class Event_Organiser_Im_Export {
89
 
90
 
91
  /**
92
- * get markup for ex- and import on settings page
93
  *
94
- * @since 1.0.0
95
  */
96
  public function get_im_export_markup() {
97
  ?>
@@ -119,23 +112,21 @@ class Event_Organiser_Im_Export {
119
  <?php
120
  }
121
 
122
- /**
123
- * Gets an ICAL file of events in the database, to be downloaded
124
-
125
- * @since 1.0.0
126
- */
127
  public function get_export_file() {
128
  $filename = urlencode( 'event-organiser_' . date('Y-m-d') . '.ics' );
129
  $this->export_events( $filename, 'text/calendar' );
130
  }
131
 
132
- /**
133
- * Creates an ICAL file of events in the database
134
-
135
- * @since 1.0.0
136
- * @param string filename - the name of the file to be created
137
- * @param string filetype - the type of the file ('text/calendar')
138
- */
139
  public function export_events( $filename, $filetype ){
140
  //Collect output
141
  ob_start();
@@ -157,543 +148,143 @@ class Event_Organiser_Im_Export {
157
  }
158
 
159
 
160
- /**
161
- * Reads in an ICAL file into an array, then parses the array and inserts events into database
162
-
163
- * @since 1.1.0
164
- *
165
- * @param string $cal_file - the file to import
166
- */
167
- function import_file($cal_file){
168
  global $EO_Errors;
169
 
170
- if ( ! current_user_can( 'manage_options' ) || ! current_user_can( 'edit_events' ))
171
  wp_die( __('You do not have sufficient permissions to import events.','eventorganiser') );
172
 
 
 
173
 
174
- //Returns the file as an array of lines
175
- $file_array =$this->parse_file($cal_file);
176
-
177
- //Go through array and import events and insert them into database.
178
- $result = $this->import_events($file_array);
179
- }
180
-
181
- /* Reads an ICAL into an array ofline
182
-
183
- * @since 1.1.0
184
- *
185
- * @param string $cal_file - the file to parse
186
- */
187
- function parse_file($cal_file){
188
- global $EO_Errors;
189
-
190
- $file_handle = @fopen($cal_file, "rb");
191
- $lines = array();
192
-
193
- if(!$file_handle)
194
- return false;
195
-
196
- //Feed lines into array
197
- while (!feof($file_handle) ):
198
- $line_of_text = fgets($file_handle, 4096);
199
- $lines[]= $line_of_text;
200
- endwhile;
201
-
202
- fclose($file_handle);
203
-
204
- return $lines;
205
- }
206
-
207
- /**
208
- * Parses through an array of lines (of an ICAL file), creates events and inserts them as they are found.
209
-
210
- * @since 1.1.0
211
- *
212
- * @param array - $lines, array of lines of an ICAL file
213
- */
214
- function import_events($lines){
215
- global $EO_Errors;
216
- $state = "NONE";
217
- $error = false;
218
-
219
- $error_count =0;
220
- $event_count =0;
221
-
222
- $event_array = array();
223
- $event_array['event'] = array();
224
- $event_array['event_post'] = array();
225
- $event_array['event_meta'] = array();
226
-
227
- //Get Blog timezone, set Calendar timezone to this by default
228
- $blog_tz = eo_get_blog_timezone();
229
- $cal_tz =$blog_tz;
230
- $output="";
231
-
232
- //Record number of venues / categories created
233
- global $eventorganiser_venues_created,$eventorganiser_cats_created;
234
- $eventorganiser_venues_created = 0;
235
- $eventorganiser_cats_created = 0;
236
-
237
- //Read through each line
238
- for ( $n = 0; $n < count ( $lines ) && ! $error; $n++ ):
239
- $buff = trim($lines[$n]);
240
-
241
- if(!empty($buff)):
242
- $line = explode(':',$buff,2);
243
-
244
- //On the right side of the line we may have DTSTART;TZID= or DTSTART;VALUE=
245
- $modifiers = explode (';', $line[0]);
246
- $property =array_shift($modifiers);
247
- $value = (isset($line[1]) ? trim($line[1]) : '');
248
-
249
- //If we are in EVENT state
250
- if ($state == "VEVENT") {
251
-
252
- //If END:VEVENT, insert event into database
253
- if($property=='END' && $value=='VEVENT'){
254
- $state = "VCALENDAR";
255
-
256
- //Insert new post from objects
257
- $post_id = eo_insert_event($event_array['event_post'],$event_array['event']);
258
-
259
- if(!$post_id || is_wp_error($post_id) ){
260
- $error_count++;
261
- }
262
 
263
- }else{
264
- //Otherwise, parse event property
265
- try{
266
- while( isset( $lines[$n+1] ) && $lines[$n+1][0] == ' ' ){
267
- //Remove initial white space {@link http://www.ietf.org/rfc/rfc2445.txt Section 4.1}
268
- $value .= substr( $lines[$n+1], 1 );
269
- $n++;
270
- }
271
- $event_array = $this->parse_Event_Property($event_array,$property,$value,$modifiers,$blog_tz,$cal_tz);
272
-
273
- }catch(Exception $e){
274
- $error_count++;
275
- $preamble= sprintf( __('Line: %1$d','eventorganiser'),$n+1);
276
- $EO_Errors->add('eo_error', $preamble.' '.$e->getMessage());
277
-
278
- //Abort parsing event
279
- $state = "VCALENDAR";
280
- }
281
  }
 
 
 
 
 
 
282
 
283
- // If we are in CALENDAR state
284
- }elseif ($state == "VCALENDAR") {
285
-
286
- //Begin event
287
- if( $property=='BEGIN' && $value=='VEVENT'){
288
- $state = "VEVENT";
289
- $event_count++;
290
- $event_array['event'] = array();
291
- $event_array['event_post'] = array();
292
- $event_array['event_meta'] = array();
293
-
294
- }elseif ( $property=='END' && $value=='VCALENDAR'){
295
- $state = "NONE";
296
-
297
- }elseif($property=='X-WR-TIMEZONE'){
298
- try{
299
- $cal_tz = self::parse_TZID($value);
300
- }catch(Exception $e){
301
- $preamble= sprintf( __('Line: %1$d','eventorganiser'),$n+1);
302
- $EO_Errors->add('eo_error', $preamble.' '.$e->getMessage());
303
- break;
304
- }
305
  }
306
-
307
- }elseif($state == "NONE" && $property=='BEGIN' && $value=='VCALENDAR') {
308
- $state = "VCALENDAR";
309
  }
310
-
311
- endif; //If line is not empty
312
- endfor; //For each line
313
-
314
- //Display message
315
- if($event_count ==0):
316
- $EO_Errors->add('eo_error', __("No events were imported.",'eventorganiser'));
317
- elseif($error_count >0):
318
- $EO_Errors->add('eo_error',sprintf( __('There was an error with %1$d of %2$d events in the ical file'),$error_count, $event_count));
319
- else:
320
-
321
- if($event_count==1)
322
- $message=__("1 event was successfully imported",'eventorganiser').".";
323
- else
324
- $message= sprintf( __("%d events were successfully imported",'eventorganiser'),$event_count).".";
325
-
326
- if($eventorganiser_venues_created==1){
327
- $message.= " ".__("1 venue was created",'eventorganiser').".";
328
- }elseif($eventorganiser_venues_created>1){
329
- $message .= " ".sprintf( __("%d venues were created",'eventorganiser'),$eventorganiser_venues_created).".";
330
  }
 
 
 
 
 
 
 
331
 
332
- if($eventorganiser_cats_created==1){
333
- $message.= " ".__("1 category was created",'eventorganiser').".";
334
- }elseif($eventorganiser_cats_created>1){
335
- $message .= " ".sprintf( __("%d categories were created",'eventorganiser'),$eventorganiser_cats_created).".";
 
 
 
 
336
  }
 
 
337
 
338
- $EO_Errors->add('eo_notice',$message);
339
- endif;
340
- return true;
341
- }
342
-
343
- /**
344
- * Returns the supplied array with the additional data parsed from the given property-value pair
345
- * May require the blog and/or calendar time-zone in date manipulations
346
- * May also require modifiers in date manipulations (e.g. TZID, VALUE)
347
- *
348
- * @since 1.1.0
349
- *
350
- * @param array $event_array - array of event details to be added to
351
- * @param string $property - the property being parsed
352
- * @param string $value - the value of the property being parsed
353
- * @param string $modifiers - array of modifiers associated with the property
354
- * @param DateTimeZone $blog_tz - blog's timezone
355
- * @param DateTimeZone $cal_tzid - calendar's default timezone
356
- * @return DateTimeZone - the timezone with the given identifier or false if it isn't recognised
357
- */
358
- function parse_Event_Property($event_array,$property,$value,$modifiers,$blog_tz,$cal_tz){
359
- extract($event_array);
360
-
361
- $import_venues = (isset($_POST['eo_import_venue']) ? true : false);
362
- $import_cats = (isset($_POST['eo_import_cat']) ? true : false);
363
-
364
- $date_tz="";
365
-
366
- if(!empty($modifiers)):
367
- foreach($modifiers as $modifier):
368
- if (stristr($modifier, 'TZID')){
369
- $date_tz = self::parse_TZID(substr($modifier, 5));
370
-
371
- }elseif(stristr($modifier, 'VALUE')){
372
- $meta = substr($modifier, 6);
373
  }
374
- endforeach;
375
- endif;
376
-
377
- //For dates - if there is not an associated timezone, use calendar default.
378
- if(empty($date_tz))
379
- $date_tz = $cal_tz;
380
-
381
- switch($property):
382
- //Date properties
383
- case 'UID':
384
- $event_meta['_eventorganiser_uid'] = $value;
385
- break;
386
- case 'CREATED':
387
- case 'DTSTART':
388
- case 'DTEND':
389
- if(isset($meta) && $meta=='DATE'):
390
- $date = $this->parse_icalDate($value, $blog_tz);
391
- $allday=1;
392
- else:
393
- $date = $this->parse_icalDateTime($value, $date_tz);
394
- $allday=0;
395
- endif;
396
-
397
- if(empty($date))
398
- break;
399
-
400
- switch($property):
401
- case'DTSTART':
402
- $event['start']= $date;
403
- $event['all_day']=$allday;
404
- break;
405
 
406
- case 'DTEND':
407
- if($allday==1)
408
- $date->modify('-1 second');
409
- $event['end']= $date;
410
- break;
411
-
412
- case 'CREATED':
413
- $date->setTimezone(new DateTimeZone('utc'));
414
- $event_post['post_date_gmt']= $date->format('Y-m-d H:i:s');
415
- break;
416
-
417
- endswitch;
418
- break;
419
-
420
- case 'EXDATE':
421
- case 'RDATE':
422
- //The modifiers have been dealt with above. We do similiar to above, except for an array of dates...
423
- $value_array = explode(',',$value);
424
-
425
- //Note, we only consider the Date part and ignore the time
426
- foreach($value_array as $val):
427
- $date = $this->parse_icalDate($val, $blog_tz);
428
- if( $property == 'EXDATE' ){
429
- $event['exclude'][] = $date;
430
- }else{
431
- $event['include'][] = $date;
432
- }
433
- endforeach;
434
 
435
- break;
436
-
437
- //Reoccurrence rule properties
438
- case 'RRULE':
439
- $event += $this->parse_RRule($value);
440
- break;
441
-
442
- //The event's summary (AKA post title)
443
- case 'SUMMARY':
444
- $event_post['post_title']=$this->parse_icalText($value);
445
- break;
446
-
447
- //The event's description (AKA post content)
448
- case 'DESCRIPTION':
449
- $event_post['post_content']=$this->parse_icalText($value);
450
- break;
451
-
452
- //Event venues, assign to existing venue - or if set, create new one
453
- case 'LOCATION':
454
- $venue_ids = array();
455
- if( !empty($value) ):
456
- $venue_name = trim($value);
457
- $venue = get_term_by('name',$venue_name,'event-venue');
458
- if($venue){
459
- $venue_ids[] = (int) $venue->term_id;
460
-
461
- }elseif($import_venues){
462
- //Create new venue, get ID. Count of venues created++
463
- global $eventorganiser_venues_created;
464
- $return = eo_insert_venue($venue_name);
465
-
466
- if( !is_wp_error($return) && !$return ){
467
- $venue_ids[] = (int) $return['term_id'];
468
- $eventorganiser_venues_created++;
469
- $event['venue']= $return['term_id']; //XXX This is depreciated
470
- }
471
- }
472
- $venue_ids = array_filter($venue_ids);
473
- if(!empty($venue_ids)){
474
- $event_post['tax_input']['event-venue']=$venue_ids;
475
- }
476
- endif;
477
- break;
478
-
479
- //Event categories, assign to existing categories - or if set, create new ones
480
- case 'CATEGORIES':
481
- $cats=explode(',',$value);
482
- $cat_ids = array();
483
- if(!empty($cats)):
484
- foreach ($cats as $cat_name):
485
- $cat_name = trim($cat_name);
486
- $cat = get_term_by('name',$cat_name,'event-category');
487
- if($cat){
488
- $cat_ids[] = (int) $cat->term_id;
489
- }elseif($import_cats){
490
- //Create new category, get ID. Count of cats created++
491
- global $eventorganiser_cats_created;
492
- $return = wp_insert_term($cat_name,'event-category',array());
493
- if(!is_wp_error($return)){
494
- $cat_ids[] = (int) $return['term_id'];
495
- $eventorganiser_cats_created++;
496
- }
497
- }
498
- endforeach;
499
-
500
- $cat_ids = array_filter($cat_ids);
501
- if(!empty($cat_ids))
502
- $event_post['tax_input']['event-category']=$cat_ids;
503
- endif;
504
- break;
505
-
506
- //The event's status
507
- case 'STATUS':
508
- switch($value):
509
- case 'CONFIRMED':
510
- $event_post['post_status'] = 'publish';
511
- break;
512
-
513
- case 'CANCELLED':
514
- $event_post['post_status'] = 'trash';
515
- break;
516
-
517
- default:
518
- $event_post['post_status'] = 'draft';
519
- endswitch;
520
- break;
521
 
522
- //An url associated with the event
523
- case 'URL':
524
- $event_meta['eo_url']=$value;
525
- break;
526
-
527
- endswitch;
528
-
529
- $event_array= array('event'=>$event,'event_post'=>$event_post,'event_meta'=>$event_meta);
530
-
531
- return $event_array;
532
- }
533
-
534
- /**
535
- * Takes escaped text and returns the text unescaped.
536
-
537
- * @since 1.1.0
538
- *
539
- * @param string $text - the escaped test
540
- * @return string $text - the text, unescaped.
541
- */
542
- function parse_icalText($text){
543
- //Get rid of carriage returns:
544
- $text = str_replace("\r\n","\n",$text);
545
- $text = str_replace("\r","\n",$text);
546
 
547
- //Some calendar apps break up text
548
- $text = str_replace("\n ","",$text);
549
- $text = str_replace("\r ","",$text);
 
 
 
 
 
 
 
 
550
 
551
- //Any intended carriage returns/new-lines converted to HTML
552
- $text = str_replace("\\r\\n","",$text);
553
- $text = str_replace("\\n","</br>",$text);
554
- $text = stripslashes($text);
555
- return $text;
556
- }
557
-
558
- /**
559
- * Takes a date-time in ICAL and returns a datetime object
560
-
561
- * @since 1.1.0
562
- *
563
- * @param string $tzid - the value of the ICAL TZID property
564
- * @return DateTimeZone - the timezone with the given identifier or false if it isn't recognised
565
- */
566
- function parse_TZID($tzid){
567
- $tzid = str_replace('-','/',$tzid);
568
- $tz = new DateTimeZone($tzid);
569
- return $tz;
570
- }
571
-
572
- /**
573
- * Takes a date in ICAL and returns a datetime object
574
-
575
- * @since 1.1.0
576
- *
577
- * @param string $ical_date - date in ICAL format
578
- * @param DateTimeZone $blog_tz - Blog timezone object
579
- * @return DateTime - the $ical_date as DateTime object
580
- */
581
- function parse_icalDate($ical_date, $blog_tz){
582
- //Expects: YYYYMMDD;
583
- preg_match('/^(\d{8})*/', $ical_date, $matches);
584
-
585
- if(count($matches)!=2){
586
- throw new Exception(__('Invalid date. Date expected in YYYYMMDD format.','eventorganiser'));
587
  }
588
-
589
- $datetime = new DateTime($matches[1],$blog_tz);
590
-
591
- return $datetime;
592
- }
593
-
594
- /**
595
- * Takes a date-time in ICAL and returns a datetime object
596
-
597
- * @since 1.1.0
598
- *
599
- * @param string $ical_date - date-time in ICAL format
600
- * @param DateTimeZone $blog_tz - Blog timezone object
601
- * @return DateTime - the $ical_date as DateTime object
602
- */
603
- function parse_icalDateTime($ical_date,$tz){
604
- /*
605
- Expects
606
- utc: YYYYMMDDTHHiissZ
607
- local: YYYYMMDDTHHiiss
608
- */
609
- preg_match('/^((\d{8}T\d{6})(Z)?)/', $ical_date, $matches);
610
 
611
- if(count($matches)==3){
612
- //floating / local date
613
-
614
- }elseif(count($matches)==4){
615
- $tz = new DateTimeZone('UTC');
616
-
617
- }else{
618
- throw new Exception(__('Invalid datetime. Date expected in YYYYMMDDTHHiissZ or YYYYMMDDTHHiiss format.','eventorganiser'));
619
- return false;
 
 
620
  }
621
-
622
- $datetime = new DateTime($matches[2],$tz);
623
-
624
- return $datetime;
625
- }
626
-
627
- /**
628
- * Takes a date-time in ICAL and returns a datetime object
629
-
630
- * @since 1.1.0
631
- *
632
- * @param string $RRule - the value of the ICAL RRule property
633
- * @return array - a reoccurrence rule array as understood by Event Organiser
634
- */
635
- function parse_RRule($RRule){
636
- //RRule is a sequence of rule parts seperated by ';'
637
- $rule_parts = explode(';',$RRule);
638
-
639
- foreach ($rule_parts as $rule_part):
640
-
641
- //Each rule part is of the form PROPERTY=VALUE
642
- $prop_value = explode('=',$rule_part, 2);
643
- $property = $prop_value[0];
644
- $value = $prop_value[1];
645
-
646
- switch($property):
647
- case 'FREQ':
648
- $rule_array['schedule'] =strtolower($value);
649
- break;
650
-
651
- case 'INTERVAL':
652
- $rule_array['frequency'] =intval($value);
653
- break;
654
-
655
- case 'UNTIL':
656
- //Is the scheduled end a date-time or just a date?
657
- if(preg_match('/^((\d{8}T\d{6})(Z)?)/', $value))
658
- $date = $this->parse_icalDateTime($value, new DateTimeZone('UTC'));
659
- else
660
- $date = $this->parse_icalDate($value, new DateTimeZone('UTC'));
661
-
662
- $rule_array['schedule_last'] = $date;
663
- break;
664
-
665
- case 'BYDAY':
666
- $byday = $value;
667
- break;
668
-
669
- case 'BYMONTHDAY':
670
- $bymonthday = $value;
671
- break;
672
- endswitch;
673
 
674
- endforeach;
675
 
676
- //Meta-data for Weekly and Monthly schedules
677
- if($rule_array['schedule']=='monthly'):
678
- if(isset($byday)){
679
- preg_match('/(\d+)([a-zA-Z]+)/', $byday, $matches);
680
- $rule_array['schedule_meta'] ='BYDAY='.$matches[1].$matches[2];
681
-
682
- }elseif(isset($bymonthday)){
683
- $rule_array['schedule_meta'] ='BYMONTHDAY='.$bymonthday;
684
-
685
- }else{
686
- throw new Exception('Incomplete scheduling information');
687
- }
688
-
689
- elseif($rule_array['schedule']=='weekly'):
690
- preg_match('/([a-zA-Z,]+)/', $byday, $matches);
691
- $rule_array['schedule_meta'] =explode(',',$matches[1]);
692
-
693
- endif;
694
-
695
- return $rule_array;
696
  }
697
 
698
-
699
- } // end class
1
  <?php
2
+ //TODO import events (check for duplicates: UID)
3
+ //TODO check importing venues.
4
  /**
5
  * Event importer / exporter
6
  */
12
 
13
  /**
14
  * Event Organiser Import/Export handler
 
 
 
 
 
 
 
 
 
15
  */
16
  class Event_Organiser_Im_Export {
17
 
32
  public function __construct() {
33
  global $pagenow, $EO_Errors;
34
 
35
+ if( !isset( $EO_Errors ) ) $EO_Errors = new WP_Error();
36
 
37
  if( is_feed('eo-events') && eventorganiser_get_option('feed') ){
38
  $this->get_export_file();
82
 
83
 
84
  /**
85
+ * Get markup for ex- and import on settings page
86
  *
87
+ * @since 1.0.0
88
  */
89
  public function get_im_export_markup() {
90
  ?>
112
  <?php
113
  }
114
 
115
+ /**
116
+ * Gets an ICAL file of events in the database, to be downloaded
117
+ * @since 1.0.0
118
+ */
 
119
  public function get_export_file() {
120
  $filename = urlencode( 'event-organiser_' . date('Y-m-d') . '.ics' );
121
  $this->export_events( $filename, 'text/calendar' );
122
  }
123
 
124
+ /**
125
+ * Creates an ICAL file of events in the database
126
+ * @since 1.0.0
127
+ * @param string filename - the name of the file to be created
128
+ * @param string filetype - the type of the file ('text/calendar')
129
+ */
 
130
  public function export_events( $filename, $filetype ){
131
  //Collect output
132
  ob_start();
148
  }
149
 
150
 
151
+ /**
152
+ * Reads in an ICAL file into an array, then parses the array and inserts events into database
153
+ * @since 1.1.0
154
+ * @param string $cal_file - the file to import
155
+ */
156
+ function import_file( $ical_file ){
 
 
157
  global $EO_Errors;
158
 
159
+ if ( !current_user_can( 'manage_options' ) || !current_user_can( 'edit_events' ) )
160
  wp_die( __('You do not have sufficient permissions to import events.','eventorganiser') );
161
 
162
+ $ical = new EO_ICAL_Parser();
163
+ $ical->parse( $ical_file );
164
 
165
+ $import_venues = ( isset($_POST['eo_import_venue'] ) ? true : false);
166
+ $import_cats = ( isset($_POST['eo_import_cat'] ) ? true : false);
167
+
168
+ $events_imported = 0;
169
+ $events_updated = 0;
170
+ $venues_imported = 0;
171
+ $categories_imported = 0;
172
+
173
+ if( $import_venues && $ical->venues ){
174
+
175
+ foreach( $ical->venues as $venue ){
176
+ if( !eo_get_venue_by( 'name', $venue ) ){
177
+ $args = array();
178
+
179
+ //If lat/lng meta data is set, include that
180
+ if( isset( $ical->venue_meta[$venue]['latitude'] ) && isset( $ical->venue_meta[$venue]['longtitude'] ) ){
181
+ $args['latitude'] = $ical->venue_meta[$venue]['latitude'];
182
+ $args['longtitude'] = $ical->venue_meta[$venue]['longtitude'];
183
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
184
 
185
+ $new_venue = eo_insert_venue( $venue, $args );
186
+ if( !is_wp_error( $new_venue ) && $new_venue ){
187
+ $venues_imported++;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
188
  }
189
+ }
190
+ }
191
+
192
+ }
193
+
194
+ if( $import_cats && $ical->categories ){
195
 
196
+ foreach( $ical->categories as $category ){
197
+ if( !get_term_by( 'name', $category, 'event-category' ) ){
198
+ $new_cat = wp_insert_term( $category, 'event-category', array() );
199
+ if( !is_wp_error( $new_cat ) && $new_cat ){
200
+ $categories_imported++;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
201
  }
 
 
 
202
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
203
  }
204
+
205
+ }
206
+
207
+ foreach( $ical->events as $event ){
208
+ //TODO refactor eo_insert_event & eo_update_event...
209
+
210
+ $uid = !empty( $event['uid'] ) ? $event['uid'] : false;
211
 
212
+ //TODO Check if event already exists
213
+ //$found_event = eo_get_event_by_uid( $uid );
214
+
215
+ //Create event
216
+ if( !empty( $event['event-venue'] ) ){
217
+ $venue = eo_get_venue_by( 'name', $event['event-venue'] );
218
+ if( $venue )
219
+ $event['tax_input']['event-venue'][] = intval( $venue->term_id );
220
  }
221
+
222
+ if( !empty( $event['event-category'] ) ){
223
 
224
+ $event['tax_input']['event-category'] = array();
225
+ foreach( $event['event-category'] as $category ){
226
+ $cat = get_term_by( 'name', $category, 'event-category' );
227
+ if( $cat )
228
+ $event['tax_input']['event-category'][] = intval( $cat->term_id );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
229
  }
230
+ }
231
+
232
+ $event_id = eo_insert_event( $event );
233
+ if( is_wp_error( $event_id ) ){
234
+ $ical->errors[] = $event_id;
235
+ }else{
236
+ $events_updated++;
237
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
238
 
239
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
240
 
241
+ if( $events_updated == 0 )
242
+ $EO_Errors->add( 'eo_error', __( "No events were imported.", 'eventorganiser' ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
243
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
244
 
245
+ if( count( $ical->errors ) > 0 ){
246
+ foreach( $ical->errors as $error ){
247
+ $codes = $error->get_error_codes();
248
+ foreach( $codes as $code ){
249
+ $error_messages = $error->get_error_messages();
250
+ foreach( $error_messages as $error_message ){
251
+ $EO_Errors->add( 'eo_error', '<strong>' . __( 'Error:', 'eventorganiser' ) . '</strong> '. $error_message );
252
+ }
253
+ }
254
+ }
255
+ }
256
 
257
+ $message = array();
258
+
259
+ if( $ical->warnings ){
260
+ foreach( $ical->warnings as $warning ){
261
+ $message[] = '<strong>' . __( 'Warning:', 'eventorganiser' ) . '</strong> ' . $warning->get_error_message();
262
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
263
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
264
 
265
+ if( count( $ical->events ) == 1 )
266
+ $message[] = __( "1 event was successfully imported", 'eventorganiser' );
267
+
268
+ elseif( count( $ical->events ) > 1 )
269
+ $message[] = sprintf( __( "%d events were successfully imported",'eventorganiser'), count( $ical->events ) ).".";
270
+
271
+ if( $venues_imported == 1 ){
272
+ $message[] = __("1 venue was created",'eventorganiser');
273
+
274
+ }elseif( $venues_imported > 1 ){
275
+ $message[] = sprintf( __( "%d venues were created",'eventorganiser' ), $venues_imported );
276
  }
277
+
278
+ if( $categories_imported == 1 ){
279
+ $message[] = __( "1 category was created", 'eventorganiser' );
280
+
281
+ }elseif( $categories_imported > 1 ){
282
+ $message[] = sprintf( __("%d categories were created",'eventorganiser'), $categories_imported );
283
+ }
284
+
285
+ $EO_Errors->add( 'eo_notice', implode( '<br/>', $message ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
286
 
 
287
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
288
  }
289
 
290
+ } // end class
 
includes/event-organiser-archives.php CHANGED
@@ -419,17 +419,22 @@ function eventorganiser_events_where( $where, $query ){
419
  if( eventorganiser_is_event_query( $query, true ) ):
420
 
421
  //If we only want events (or occurrences of events) that belong to a particular 'event'
422
- if(isset($query->query_vars['event_series'])):
423
  $series_id =$query->query_vars['event_series'];
424
  $where .= $wpdb->prepare(" AND {$wpdb->eo_events}.post_id =%d ",$series_id);
425
  endif;
426
 
427
- if(isset($query->query_vars['event_occurrence_id'])):
428
  $occurrence_id =$query->query_vars['event_occurrence_id'];
429
  $where .= $wpdb->prepare(" AND {$wpdb->eo_events}.event_id=%d ",$occurrence_id);
430
  endif;
431
 
432
- if(isset($query->query_vars['event_occurrence__in'])):
 
 
 
 
 
433
  $occurrence__in = implode(', ', array_map( 'intval', $query->query_vars['event_occurrence__in'] ) );
434
  $where .= " AND {$wpdb->eo_events}.event_id IN({$occurrence__in}) ";
435
  endif;
419
  if( eventorganiser_is_event_query( $query, true ) ):
420
 
421
  //If we only want events (or occurrences of events) that belong to a particular 'event'
422
+ if( isset( $query->query_vars['event_series'] ) ):
423
  $series_id =$query->query_vars['event_series'];
424
  $where .= $wpdb->prepare(" AND {$wpdb->eo_events}.post_id =%d ",$series_id);
425
  endif;
426
 
427
+ if( isset( $query->query_vars['event_occurrence_id'] ) ):
428
  $occurrence_id =$query->query_vars['event_occurrence_id'];
429
  $where .= $wpdb->prepare(" AND {$wpdb->eo_events}.event_id=%d ",$occurrence_id);
430
  endif;
431
 
432
+ if( isset( $query->query_vars['event_occurrence__not_in'] ) ):
433
+ $occurrence__not_in = implode(', ', array_map( 'intval', $query->query_vars['event_occurrence__not_in'] ) );
434
+ $where .= " AND {$wpdb->eo_events}.event_id NOT IN({$occurrence__not_in}) ";
435
+ endif;
436
+
437
+ if( isset( $query->query_vars['event_occurrence__in'] ) ):
438
  $occurrence__in = implode(', ', array_map( 'intval', $query->query_vars['event_occurrence__in'] ) );
439
  $where .= " AND {$wpdb->eo_events}.event_id IN({$occurrence__in}) ";
440
  endif;
includes/event-organiser-cpt.php CHANGED
@@ -26,7 +26,7 @@ function eventorganiser_create_event_taxonomies() {
26
 
27
  $venue_labels = array(
28
  'name' => __( 'Event Venues','eventorganiser' ),
29
- 'singular_name' => _x( 'Venues', 'taxonomy singular name' ),
30
  'search_items' => __( 'Search Venues', 'eventorganiser' ),
31
  'all_items' => __( 'All Venues', 'eventorganiser' ),
32
  'view_item' => __( 'View Venue', 'eventorganiser' ),
@@ -43,7 +43,7 @@ function eventorganiser_create_event_taxonomies() {
43
  'hierarchical' => false,
44
  'labels' => $venue_labels,
45
  'public'=> true,
46
- 'show_in_nav_menus'=>false,
47
  'show_ui' => false,//Use custom UI
48
  'update_count_callback' => '_update_post_term_count',
49
  'query_var' => true,
@@ -191,7 +191,7 @@ $args = array(
191
  ),
192
  'has_archive' => $events_slug,
193
  'hierarchical' => false,
194
- 'menu_icon' => EVENT_ORGANISER_URL.'css/images/eoicon-16.png',
195
  'menu_position' => apply_filters('eventorganiser_menu_position',5),
196
  'supports' => eventorganiser_get_option('supports'),
197
  );
26
 
27
  $venue_labels = array(
28
  'name' => __( 'Event Venues','eventorganiser' ),
29
+ 'singular_name' => _x( 'Venue', 'taxonomy singular name', 'eventorganiser' ),
30
  'search_items' => __( 'Search Venues', 'eventorganiser' ),
31
  'all_items' => __( 'All Venues', 'eventorganiser' ),
32
  'view_item' => __( 'View Venue', 'eventorganiser' ),
43
  'hierarchical' => false,
44
  'labels' => $venue_labels,
45
  'public'=> true,
46
+ 'show_in_nav_menus'=>true,
47
  'show_ui' => false,//Use custom UI
48
  'update_count_callback' => '_update_post_term_count',
49
  'query_var' => true,
191
  ),
192
  'has_archive' => $events_slug,
193
  'hierarchical' => false,
194
+ 'menu_icon' => ( defined( 'MP6' ) && MP6 ? false : EVENT_ORGANISER_URL.'css/images/eoicon-16.png' ),
195
  'menu_position' => apply_filters('eventorganiser_menu_position',5),
196
  'supports' => eventorganiser_get_option('supports'),
197
  );
includes/event-organiser-event-functions.php CHANGED
@@ -1427,6 +1427,12 @@ function eo_get_event_meta_list( $post_id=0 ){
1427
  function eo_get_event_archive_link( $year=false,$month=false, $day=false){
1428
  global $wp_rewrite;
1429
 
 
 
 
 
 
 
1430
  $archive = get_post_type_archive_link('event');
1431
 
1432
  if( $year == false && $month == false && $day == false )
1427
  function eo_get_event_archive_link( $year=false,$month=false, $day=false){
1428
  global $wp_rewrite;
1429
 
1430
+ if( $year instanceof DateTime ){
1431
+ $day = (int) $year->format( 'd' );
1432
+ $month = (int) $year->format( 'm' );
1433
+ $year = (int) $year->format( 'Y' );
1434
+ }
1435
+
1436
  $archive = get_post_type_archive_link('event');
1437
 
1438
  if( $year == false && $month == false && $day == false )
includes/event-organiser-install.php CHANGED
@@ -10,6 +10,10 @@
10
  function eventorganiser_install( $is_networkwide = false ){
11
  global $wpdb;
12
 
 
 
 
 
13
  // Is this multisite and did the user click network activate?
14
  $is_multisite = ( function_exists('is_multisite') && is_multisite() );
15
 
10
  function eventorganiser_install( $is_networkwide = false ){
11
  global $wpdb;
12
 
13
+ if( !defined( 'EVENT_ORGANISER_URL' ) ){
14
+ define( 'EVENT_ORGANISER_URL', plugin_dir_url( EVENT_ORGANISER_DIR.'event-organiser.php' ) );
15
+ }
16
+
17
  // Is this multisite and did the user click network activate?
18
  $is_multisite = ( function_exists('is_multisite') && is_multisite() );
19
 
includes/event-organiser-register.php CHANGED
@@ -432,15 +432,18 @@ function eventorganiser_screen_retina_icon(){
432
 
433
  $screen_id = get_current_screen()->id;
434
 
435
- if ( 'mp6' === get_user_option( 'admin_color' ) ) {
436
  //MP6 tweaks - ongoing and limited.
437
- ?>
438
- <style>
439
- .icon16.icon-event:before, #adminmenu .menu-icon-event div.wp-menu-image:before {content: '\f145';}
440
- body.event_page_calendar #calendar-view .view-button.active{ border-color: #dfdfdf #dfdfdf #eee }
441
- </style>
442
- <?php
 
 
443
  }
 
444
  if( !in_array($screen_id, array('event','edit-event','edit-event-tag','edit-event-category','event_page_venues','event_page_calendar')) )
445
  return;
446
 
@@ -784,23 +787,4 @@ function _eventorganiser_autofill_city(){
784
  }
785
  add_action('admin_post_eo-autofillcity','_eventorganiser_autofill_city');
786
 
787
- function _eventorganiser_theme_check_results(){
788
- delete_option( 'eo_wp_footer_present' );
789
- delete_option( 'eo_sidebar_correct' );
790
- }
791
- add_action( 'switch_theme', '_eventorganiser_theme_check_results' );
792
-
793
- function _eventorganiser_check_sidebars( $sidebar ){
794
- $before_widget = $sidebar['before_widget'];
795
-
796
- if( did_action( 'register_sidebar') > 1 && ( -1 == get_option( 'eo_sidebar_correct' ) ) )
797
- return;
798
-
799
- if( strpos( $before_widget, '%1$s' ) == false || strpos( $before_widget, '%2$s' ) == false ){
800
- update_option( 'eo_sidebar_correct', -1 );
801
- }else{
802
- update_option( 'eo_sidebar_correct', 1 );
803
- }
804
- }
805
-
806
- ?>
432
 
433
  $screen_id = get_current_screen()->id;
434
 
435
+ if ( defined( 'MP6' ) && MP6 ) {
436
  //MP6 tweaks - ongoing and limited.
437
+ ?>
438
+ <style>
439
+ .icon16.icon-post:before, #adminmenu #menu-posts-event div.wp-menu-image:before {content: '\f145';}
440
+ body.event_page_calendar #calendar-view .view-button.active{ border-color: #dfdfdf #dfdfdf #eee }
441
+ .ui-datepicker select {height: 2em;}
442
+ .form-table .ui-datepicker-calendar td, .form-table .ui-datepicker-calendar th {font-size: 12px;}
443
+ </style>
444
+ <?php
445
  }
446
+
447
  if( !in_array($screen_id, array('event','edit-event','edit-event-tag','edit-event-category','event_page_venues','event_page_calendar')) )
448
  return;
449
 
787
  }
788
  add_action('admin_post_eo-autofillcity','_eventorganiser_autofill_city');
789
 
790
+ ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/event-organiser-templates.php CHANGED
@@ -220,7 +220,7 @@ function eventorganiser_is_event_template($templatePath,$context=''){
220
  function eventorganiser_set_template( $template ){
221
 
222
  //Has EO template handling been turned off?
223
- if( !eventorganiser_get_option('templates') )
224
  return $template;
225
 
226
  //If WordPress couldn't find an 'event' template use plug-in instead:
220
  function eventorganiser_set_template( $template ){
221
 
222
  //Has EO template handling been turned off?
223
+ if( !eventorganiser_get_option('templates') || get_theme_support( 'event-organiser' ) )
224
  return $template;
225
 
226
  //If WordPress couldn't find an 'event' template use plug-in instead:
includes/event-organiser-utility-functions.php CHANGED
@@ -1044,7 +1044,7 @@ function eo_blog_is_24(){
1044
  $is24 = false;
1045
  }
1046
 
1047
- return $is24;
1048
  }
1049
 
1050
  /**
1044
  $is24 = false;
1045
  }
1046
 
1047
+ return apply_filters( 'eventorganiser_blog_is_24', $is24 );
1048
  }
1049
 
1050
  /**
includes/event.php CHANGED
@@ -24,6 +24,8 @@
24
  * * `start` => start date (of first occurrence) as a datetime object
25
  * * `end` => end date (of first occurrence) as a datetime object
26
  * * `schedule_last` => **START** date of last occurrence (or upper-bound thereof) as a datetime object
 
 
27
  * * `include` => array of datetime objects to include in the schedule
28
  * * `exclude` => array of datetime objects to exclude in the schedule
29
  *
@@ -50,7 +52,7 @@ function eo_update_event( $post_id, $event_data = array(), $post_data = array()
50
  }
51
 
52
  $event_keys = array_flip( array( 'start', 'end', 'schedule', 'schedule_meta', 'frequency',
53
- 'all_day', 'schedule_last', 'include', 'exclude', 'occurs_by') );
54
 
55
  $post_keys = array_flip( array(
56
  'post_title','post_content','post_status', 'post_type','post_author','ping_status','post_parent','menu_order',
@@ -98,6 +100,20 @@ function eo_update_event( $post_id, $event_data = array(), $post_data = array()
98
  if( $key == 'schedule_last' && in_array( $event_data['schedule'], array( 'once', 'custom' ) ) )
99
  continue;
100
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
101
  $diff[]=$key;
102
  $delete_existing = true;
103
  break;
@@ -147,6 +163,8 @@ function eo_update_event( $post_id, $event_data = array(), $post_data = array()
147
  * * `start` => start date (of first occurrence) as a datetime object
148
  * * `end` => end date (of first occurrence) as a datetime object
149
  * * `schedule_last` => **START** date of last occurrence (or upper-bound thereof) as a datetime object
 
 
150
  * * `include` => array of datetime objects to include in the schedule
151
  * * `exclude` => array of datetime objects to exclude in the schedule
152
  *
@@ -194,7 +212,7 @@ function eo_insert_event( $post_data = array(), $event_data = array() ){
194
  }
195
 
196
  $event_keys = array_flip( array( 'start', 'end', 'schedule', 'schedule_meta', 'frequency',
197
- 'all_day', 'schedule_last', 'include', 'exclude', 'occurs_by') );
198
 
199
  $post_keys = array_flip( array(
200
  'post_title','post_content','post_status', 'post_type','post_author','ping_status','post_parent','menu_order',
@@ -233,18 +251,38 @@ function eo_insert_event( $post_data = array(), $event_data = array() ){
233
  }
234
 
235
  /**
236
- * Deletes all occurrences for an event (removes them from the eo_events table).
237
- * Triggers {@see `eventorganiser_delete_event`} (this action is used to break the caches).
238
- * @since 1.5
239
  *
 
 
 
 
240
  * @param int $post_id the event's (post) ID to be deleted
 
 
241
  */
242
- function eo_delete_event_occurrences($post_id){
243
  global $wpdb;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
244
 
245
- do_action( 'eventorganiser_delete_event', $post_id ); //Deprecated - do not use!
246
- do_action( 'eventorganiser_delete_event_occurrences', $post_id );
247
- $del = $wpdb->get_results($wpdb->prepare("DELETE FROM $wpdb->eo_events WHERE post_id=%d",$post_id));
248
  }
249
  add_action( 'delete_post', 'eo_delete_event_occurrences', 10 );
250
 
@@ -322,7 +360,7 @@ add_action( 'delete_post', 'eo_delete_event_occurrences', 10 );
322
  unset($event_data['end']);
323
  unset($event_data['schedule_start']);
324
  unset($event_data['schedule_last']);
325
-
326
  update_post_meta( $post_id,'_eventorganiser_event_schedule', $event_data);
327
  update_post_meta( $post_id,'_eventorganiser_schedule_start_start', $start->format('Y-m-d H:i:s'));
328
  update_post_meta( $post_id,'_eventorganiser_schedule_start_finish', $end->format('Y-m-d H:i:s'));
@@ -368,6 +406,7 @@ function eo_get_event_schedule( $post_id=0 ){
368
  $event_details = wp_parse_args($event_details, array(
369
  'schedule'=>'once',
370
  'schedule_meta'=>'',
 
371
  'frequency'=>1,
372
  'all_day'=>0,
373
  'duration_str'=>'',
@@ -429,6 +468,7 @@ function eo_get_event_schedule( $post_id=0 ){
429
  'schedule_meta'=>'',
430
  'frequency'=>1,
431
  'schedule_last'=>'',
 
432
  'exclude'=>array(),
433
  'include'=>array(),
434
  );
@@ -439,12 +479,29 @@ function eo_get_event_schedule( $post_id=0 ){
439
  $exclude = array_udiff($exclude, $include, '_eventorganiser_compare_dates');
440
  $include = array_udiff($include, $exclude, '_eventorganiser_compare_dates');
441
 
 
 
 
 
 
 
 
 
 
442
  //Check dates are supplied and are valid
443
  if( !($start instanceof DateTime) )
444
  return new WP_Error('eo_error',__('Start date not provided.','eventorganiser'));
445
 
446
  if( !($end instanceof DateTime) )
447
  $end = clone $start;
 
 
 
 
 
 
 
 
448
 
449
  if( 'once' == $schedule || !($schedule_last instanceof DateTime) )
450
  $schedule_last = clone $start;
@@ -464,20 +521,12 @@ function eo_get_event_schedule( $post_id=0 ){
464
  $H = intval($start->format('H'));
465
  $i = intval($start->format('i'));
466
 
467
- //White list schedule
468
- if( !in_array($schedule, array('once','daily','weekly','monthly','yearly','custom')) )
469
- return new WP_Error('eo_error',__('Schedule not recognised.','eventorganiser'));
470
-
471
- //Ensure event frequency is a positive integer. Else set to 1.
472
- $frequency = max(absint($frequency),1);
473
- $all_day = (int) $all_day ;
474
 
475
  $start_days =array();
476
  $workaround='';
477
  $icaldays = array('SU','MO','TU','WE','TH','FR','SA');
478
  $weekdays = array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
479
- $ical2day = array('SU'=>'Sunday','MO'=>'Monday','TU'=>'Tuesday',
480
- 'WE'=>'Wednesday','TH'=>'Thursday','FR'=>'Friday','SA'=>'Saturday',);
481
 
482
  //Set up schedule
483
  switch( $schedule ) :
@@ -497,7 +546,7 @@ function eo_get_event_schedule( $post_id=0 ){
497
  break;
498
 
499
  case 'weekly':
500
- $schedule_meta = array_filter($schedule_meta);
501
  if( !empty($schedule_meta) && is_array($schedule_meta) ):
502
  foreach ($schedule_meta as $day):
503
  $start_day = clone $start;
@@ -571,6 +620,7 @@ function eo_get_event_schedule( $post_id=0 ){
571
  //Now we have setup and validated the schedules - loop through and generate occurrences
572
  foreach($start_days as $index => $start_day):
573
  $current = clone $start_day;
 
574
 
575
  switch($workaround):
576
  //Not really a workaround. Just add the occurrence and finish.
@@ -581,10 +631,11 @@ function eo_get_event_schedule( $post_id=0 ){
581
 
582
  //Loops for monthly events that require php5.3 functionality
583
  case 'php5.2':
584
- while( $current <= $schedule_last ):
585
  $current->setTime($H,$i );
586
  $occurrences[] = clone $current;
587
  $current = _eventorganiser_php52_modify($current,$interval);
 
588
  endwhile;
589
  break;
590
 
@@ -596,7 +647,7 @@ function eo_get_event_schedule( $post_id=0 ){
596
  $current_month= clone $start_day;
597
  $current_month = date_create($current_month->format('Y-m-1'));
598
 
599
- while( $current_month<=$schedule_last ):
600
  $month_int = intval($current_month->format('m'));
601
  $year_int = intval($current_month->format('Y'));
602
 
@@ -604,6 +655,7 @@ function eo_get_event_schedule( $post_id=0 ){
604
  $current = new DateTime($day_int.'-'.$month_int.'-'.$year_int, $timezone);
605
  $current->setTime($H,$i );
606
  $occurrences[] = clone $current;
 
607
  }
608
  $current_month->modify($interval);
609
  endwhile;
@@ -614,7 +666,7 @@ function eo_get_event_schedule( $post_id=0 ){
614
  $current_year = clone $current;
615
  $current_year->modify('-1 day');
616
 
617
- while($current_year<=$schedule_last):
618
  $is_leap_year = (int) $current_year->format('L');
619
 
620
  if( $is_leap_year ){
@@ -622,17 +674,19 @@ function eo_get_event_schedule( $post_id=0 ){
622
  $current->modify('+1 day');
623
  $current->setTime($H,$i );
624
  $occurrences[] = clone $current;
 
625
  }
626
 
627
- $current_year->modify($interval);
628
  endwhile;
629
  break;
630
 
631
  default:
632
- while($current <= $schedule_last):
633
  $current->setTime($H,$i );
634
  $occurrences[] = clone $current;
635
- $current->modify($interval);
 
636
  endwhile;
637
  break;
638
 
@@ -640,7 +694,12 @@ function eo_get_event_schedule( $post_id=0 ){
640
  endforeach;
641
 
642
  //Now schedule meta is set up and occurrences are generated.
643
-
 
 
 
 
 
644
  //Add inclusions, removes exceptions and duplicates
645
  if( defined( 'WP_DEBUG' ) && WP_DEBUG ){
646
  //Make sure 'included' dates doesn't appear in generate date
@@ -652,6 +711,10 @@ function eo_get_event_schedule( $post_id=0 ){
652
 
653
  //Sort occurrences
654
  sort($occurrences);
 
 
 
 
655
  $schedule_start = clone $occurrences[0];
656
  $schedule_last = clone end($occurrences);
657
 
@@ -760,8 +823,8 @@ function eventorganiser_generate_ics_rrule($post_id=0){
760
  }
761
 
762
  //Update post meta and delete date from events table
763
- update_post_meta( $post_id,'_eventorganiser_event_schedule',$event_details);
764
- $del = $wpdb->get_results($wpdb->prepare("DELETE FROM {$wpdb->eo_events} WHERE post_id=%d AND event_id=%d",$post_id,$event_id));
765
 
766
  //Clear cache
767
  _eventorganiser_delete_calendar_cache();
24
  * * `start` => start date (of first occurrence) as a datetime object
25
  * * `end` => end date (of first occurrence) as a datetime object
26
  * * `schedule_last` => **START** date of last occurrence (or upper-bound thereof) as a datetime object
27
+ * * `number_occurrences` => Instead of specifying `schedule_last` you can specify the number of occurrence a recurring event should have.
28
+ * This is only used if `schedule_last` is not, and for daily, weekly, monthly or yearly recurring events.
29
  * * `include` => array of datetime objects to include in the schedule
30
  * * `exclude` => array of datetime objects to exclude in the schedule
31
  *
52
  }
53
 
54
  $event_keys = array_flip( array( 'start', 'end', 'schedule', 'schedule_meta', 'frequency',
55
+ 'all_day', 'schedule_last', 'include', 'exclude', 'occurs_by', 'number_occurrences' ) );
56
 
57
  $post_keys = array_flip( array(
58
  'post_title','post_content','post_status', 'post_type','post_author','ping_status','post_parent','menu_order',
100
  if( $key == 'schedule_last' && in_array( $event_data['schedule'], array( 'once', 'custom' ) ) )
101
  continue;
102
 
103
+ if( $key == 'schedule_last' && empty( $event_data['schedule_last'] ) && !empty( $event_data['number_occurrences'] ) ){
104
+ //Schedule_last is not used. Ignore this if number_occurrences match
105
+ if( $event_data['number_occurrences'] == $prev['number_occurrences'] ){
106
+ continue;
107
+ }
108
+ }
109
+
110
+ if( $key == 'number_occurrences' && !empty( $event_data['schedule_last'] ) ){
111
+ //schedule_last is being used. Ignore number_occurrences.
112
+ if( $event_data['schedule_last'] == $prev['schedule_last'] ){
113
+ continue;
114
+ }
115
+ }
116
+
117
  $diff[]=$key;
118
  $delete_existing = true;
119
  break;
163
  * * `start` => start date (of first occurrence) as a datetime object
164
  * * `end` => end date (of first occurrence) as a datetime object
165
  * * `schedule_last` => **START** date of last occurrence (or upper-bound thereof) as a datetime object
166
+ * * `number_occurrences` => Instead of specifying `schedule_last` you can specify the number of occurrence a recurring event should have.
167
+ * This is only used if `schedule_last` is not, and for daily, weekly, monthly or yearly recurring events.
168
  * * `include` => array of datetime objects to include in the schedule
169
  * * `exclude` => array of datetime objects to exclude in the schedule
170
  *
212
  }
213
 
214
  $event_keys = array_flip( array( 'start', 'end', 'schedule', 'schedule_meta', 'frequency',
215
+ 'all_day', 'schedule_last', 'include', 'exclude', 'occurs_by', 'number_occurrences' ) );
216
 
217
  $post_keys = array_flip( array(
218
  'post_title','post_content','post_status', 'post_type','post_author','ping_status','post_parent','menu_order',
251
  }
252
 
253
  /**
254
+ * Deletes all occurrences for an event (removes them from the eo_events table).
255
+ * Triggers {@see `eventorganiser_delete_event`} (this action is used to break the caches).
 
256
  *
257
+ * **Don't call this unless you know what you're doing**.
258
+ *
259
+ * @since 1.5
260
+ * @access private
261
  * @param int $post_id the event's (post) ID to be deleted
262
+ * @param int|array $occurrence_ids Occurrence ID (or array of IDs) for specificaly occurrences to delete. If empty/false, deletes all.
263
+ *
264
  */
265
+ function eo_delete_event_occurrences( $post_id, $occurrence_ids = false ){
266
  global $wpdb;
267
+ //TODO use this in break/remove occurrence
268
+
269
+ //Let's just ensure empty is cast as false
270
+ $occurrence_ids = ( empty( $occurrence_ids ) ? false : $occurrence_ids );
271
+
272
+ if( $occurrence_ids !== false ){
273
+ $occurrence_ids = (array) $occurrence_ids;
274
+ $occurrence_ids = array_map( 'absint', $occurrence_ids );
275
+ $occurrence_ids_in = implode( ', ', $occurrence_ids );
276
+ $raw_sql = "DELETE FROM $wpdb->eo_events WHERE post_id=%d AND event_id IN( $occurrence_id_in )";
277
+ }else{
278
+ $raw_sql = "DELETE FROM $wpdb->eo_events WHERE post_id=%d";
279
+ }
280
+
281
+ do_action( 'eventorganiser_delete_event', $post_id, $occurrence_ids ); //Deprecated - do not use!
282
+ do_action( 'eventorganiser_delete_event_occurrences', $post_id, $occurrence_ids );
283
+
284
+ $del = $wpdb->get_results( $wpdb->prepare( $raw_sql, $post_id ) );
285
 
 
 
 
286
  }
287
  add_action( 'delete_post', 'eo_delete_event_occurrences', 10 );
288
 
360
  unset($event_data['end']);
361
  unset($event_data['schedule_start']);
362
  unset($event_data['schedule_last']);
363
+
364
  update_post_meta( $post_id,'_eventorganiser_event_schedule', $event_data);
365
  update_post_meta( $post_id,'_eventorganiser_schedule_start_start', $start->format('Y-m-d H:i:s'));
366
  update_post_meta( $post_id,'_eventorganiser_schedule_start_finish', $end->format('Y-m-d H:i:s'));
406
  $event_details = wp_parse_args($event_details, array(
407
  'schedule'=>'once',
408
  'schedule_meta'=>'',
409
+ 'number_occurrences' => 0, //Number occurrences according to recurrence rule. Not necessarily the #occurrences (after includes/excludes)
410
  'frequency'=>1,
411
  'all_day'=>0,
412
  'duration_str'=>'',
468
  'schedule_meta'=>'',
469
  'frequency'=>1,
470
  'schedule_last'=>'',
471
+ 'number_occurrences' => 0,
472
  'exclude'=>array(),
473
  'include'=>array(),
474
  );
479
  $exclude = array_udiff($exclude, $include, '_eventorganiser_compare_dates');
480
  $include = array_udiff($include, $exclude, '_eventorganiser_compare_dates');
481
 
482
+ //White list schedule
483
+ if( !in_array($schedule, array('once','daily','weekly','monthly','yearly','custom')) )
484
+ return new WP_Error('eo_error',__('Schedule not recognised.','eventorganiser'));
485
+
486
+ //Ensure event frequency is a positive integer. Else set to 1.
487
+ $frequency = max(absint($frequency),1);
488
+ $all_day = (int) $all_day;
489
+ $number_occurrences = absint( $number_occurrences );
490
+
491
  //Check dates are supplied and are valid
492
  if( !($start instanceof DateTime) )
493
  return new WP_Error('eo_error',__('Start date not provided.','eventorganiser'));
494
 
495
  if( !($end instanceof DateTime) )
496
  $end = clone $start;
497
+
498
+ //If use 'number_occurrences' to limit recurring event, set dummy 'schedule_last' date.
499
+ if( !($schedule_last instanceof DateTime) && $number_occurrences && in_array( $schedule, array( 'daily','weekly','monthly','yearly' ) ) ){
500
+ //Set dummy "last occurrance" date.
501
+ $schedule_last = clone $start;
502
+ }else{
503
+ $number_occurrences = 0;
504
+ }
505
 
506
  if( 'once' == $schedule || !($schedule_last instanceof DateTime) )
507
  $schedule_last = clone $start;
521
  $H = intval($start->format('H'));
522
  $i = intval($start->format('i'));
523
 
 
 
 
 
 
 
 
524
 
525
  $start_days =array();
526
  $workaround='';
527
  $icaldays = array('SU','MO','TU','WE','TH','FR','SA');
528
  $weekdays = array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
529
+ $ical2day = array('SU'=>'Sunday','MO'=>'Monday','TU'=>'Tuesday','WE'=>'Wednesday','TH'=>'Thursday','FR'=>'Friday','SA'=>'Saturday');
 
530
 
531
  //Set up schedule
532
  switch( $schedule ) :
546
  break;
547
 
548
  case 'weekly':
549
+ $schedule_meta = ( $schedule_meta ? array_filter($schedule_meta) : array() );
550
  if( !empty($schedule_meta) && is_array($schedule_meta) ):
551
  foreach ($schedule_meta as $day):
552
  $start_day = clone $start;
620
  //Now we have setup and validated the schedules - loop through and generate occurrences
621
  foreach($start_days as $index => $start_day):
622
  $current = clone $start_day;
623
+ $occurrence_n = 0;
624
 
625
  switch($workaround):
626
  //Not really a workaround. Just add the occurrence and finish.
631
 
632
  //Loops for monthly events that require php5.3 functionality
633
  case 'php5.2':
634
+ while( $current <= $schedule_last || $occurrence_n < $number_occurrences ):
635
  $current->setTime($H,$i );
636
  $occurrences[] = clone $current;
637
  $current = _eventorganiser_php52_modify($current,$interval);
638
+ $occurrence_n++;
639
  endwhile;
640
  break;
641
 
647
  $current_month= clone $start_day;
648
  $current_month = date_create($current_month->format('Y-m-1'));
649
 
650
+ while( $current_month <= $schedule_last || $occurrence_n < $number_occurrences ):
651
  $month_int = intval($current_month->format('m'));
652
  $year_int = intval($current_month->format('Y'));
653
 
655
  $current = new DateTime($day_int.'-'.$month_int.'-'.$year_int, $timezone);
656
  $current->setTime($H,$i );
657
  $occurrences[] = clone $current;
658
+ $occurrence_n++;
659
  }
660
  $current_month->modify($interval);
661
  endwhile;
666
  $current_year = clone $current;
667
  $current_year->modify('-1 day');
668
 
669
+ while( $current_year <= $schedule_last || $occurrence_n < $number_occurrences ):
670
  $is_leap_year = (int) $current_year->format('L');
671
 
672
  if( $is_leap_year ){
674
  $current->modify('+1 day');
675
  $current->setTime($H,$i );
676
  $occurrences[] = clone $current;
677
+ $occurrence_n++;
678
  }
679
 
680
+ $current_year->modify( $interval );
681
  endwhile;
682
  break;
683
 
684
  default:
685
+ while( $current <= $schedule_last || $occurrence_n < $number_occurrences ):
686
  $current->setTime($H,$i );
687
  $occurrences[] = clone $current;
688
+ $current->modify( $interval );
689
+ $occurrence_n++;
690
  endwhile;
691
  break;
692
 
694
  endforeach;
695
 
696
  //Now schedule meta is set up and occurrences are generated.
697
+ if( $number_occurrences > 0 ){
698
+ //If recurrence is limited by #occurrences. Do that here.
699
+ sort( $occurrences );
700
+ $occurrences = array_slice( $occurrences, 0, $number_occurrences );
701
+ }
702
+
703
  //Add inclusions, removes exceptions and duplicates
704
  if( defined( 'WP_DEBUG' ) && WP_DEBUG ){
705
  //Make sure 'included' dates doesn't appear in generate date
711
 
712
  //Sort occurrences
713
  sort($occurrences);
714
+
715
+ if( empty( $occurrences ) || !$occurrences[0] || !( $occurrences[0] instanceof DateTime ) ){
716
+ return new WP_Error('eo_error',__('Event does not contain any dates.','eventorganiser'));
717
+ }
718
  $schedule_start = clone $occurrences[0];
719
  $schedule_last = clone end($occurrences);
720
 
823
  }
824
 
825
  //Update post meta and delete date from events table
826
+ update_post_meta( $post_id,'_eventorganiser_event_schedule',$event_details);
827
+ eo_delete_event_occurrences( $post_id, $event_id );
828
 
829
  //Clear cache
830
  _eventorganiser_delete_calendar_cache();
js/admin-calendar.js CHANGED
@@ -243,9 +243,9 @@ eventorganiser.versionCompare = function(left, right) {
243
  /* View tabs */
244
  $('.view-button').click(function (event) {
245
  event.preventDefault();
246
- $('.view-button').removeClass('active');
247
  calendar.fullCalendar('changeView', $(this).attr('id'));
248
- $(this).addClass('active');
249
  });
250
 
251
  /* GoTo 'mini calendar' */
@@ -1327,4 +1327,4 @@ $.widget("ui.selectmenu", {
1327
  return false;
1328
  };
1329
 
1330
- }));
243
  /* View tabs */
244
  $('.view-button').click(function (event) {
245
  event.preventDefault();
246
+ $('.view-button').removeClass('nav-tab-active');
247
  calendar.fullCalendar('changeView', $(this).attr('id'));
248
+ $(this).addClass('nav-tab-active');
249
  });
250
 
251
  /* GoTo 'mini calendar' */
1327
  return false;
1328
  };
1329
 
1330
+ }));
js/admin-calendar.min.js CHANGED
@@ -1,2 +1,2 @@
1
- /*! event-organiser 2.3.0 2013-09-13 14:59 */
2
- var eventorganiser=eventorganiser||{};eventorganiser.versionCompare=function(a,b){if("stringstring"!=typeof a+typeof b)return!1;for(var c=a.split("."),d=b.split("."),e=0,f=Math.max(c.length,d.length);f>e;e++){if(c[e]&&!d[e]&&parseInt(c[e],10)>0||parseInt(c[e],10)>parseInt(d[e],10))return 1;if(d[e]&&!c[e]&&parseInt(d[e],10)>0||parseInt(c[e],10)<parseInt(d[e],10))return-1}return 0},function(a){function b(a){var b,c=/^\s*(\d{4})-(\d\d)-(\d\d)\s*$/,d=new Date(0/0),e=c.exec(a);return e&&(b=+e[2],d.setFullYear(e[1],b-1,e[3]),b!=d.getMonth()+1&&d.setTime(0/0)),d}a(document).ready(function(){function c(){var b=a("<span class='fc-header-goto'><input type='hidden' id='miniCalendar'/></span>");return b}function d(b){var c=b.categories,d="<select class='eo-cal-filter' id='eo-event-cat'>";d+="<option value=''>"+b.buttonText.cat+"</option>";for(var e=0;e<c.length;e++)d+="<option class='cat-slug-"+c[e].slug+" cat' value='"+c[e].slug+"'>"+c[e].name+"</option>";return d+="</select>",a("<span class='fc-header-dropdown filter-category'></span>").append(d)}function e(b){var c=b.venues,d="<select class='eo-cal-filter' id='eo-event-venue'>";d+="<option value=''>"+b.buttonText.venue+"</option>";for(var e=0;e<c.length;e++)d+="<option value='"+c[e].term_id+"'>"+c[e].name+"</option>";return d+="</select>",a("<span class='fc-header-dropdown filter-venue'></span>").append(d)}a("#eo-dialog-tabs").tabs(),a(".eo-dialog").dialog({autoOpen:!1,dialogClass:"eo-admin-calendar-dialog",width:527,modal:!0}),a("#events-meta").parent().find(".ui-dialog-titlebar-close").appendTo(".ui-tabs-nav").closest(".ui-dialog").children(".ui-dialog-titlebar").remove();var f=a("#eofc_time_format").is(":checked")?"HH:mm":"h:mmtt",g=b(jQuery.cookie("eo_admin_cal_last_viewed_date"));"[object Date]"===Object.prototype.toString.call(g)?isNaN(g.getTime())&&(g=new Date):g=new Date;var h=jQuery("#eo_admin_calendar").fullCalendar({firstDay:parseInt(EO_Ajax.startday,10),date:g.getDate(),month:g.getMonth(),year:g.getFullYear(),defaultView:a.cookie("eo_admin_cal_last_view")?a.cookie("eo_admin_cal_last_view"):"month",editable:!1,lazyFetching:"true",eventColor:"#21759B",theme:!0,customButtons:{category:d,venue:e,"goto":c},buttonText:{today:EO_Ajax.locale.today,month:EO_Ajax.locale.month,week:EO_Ajax.locale.week,day:EO_Ajax.locale.day,cat:EO_Ajax.locale.cat,venue:EO_Ajax.locale.venue},monthNames:EO_Ajax.locale.monthNames,monthNamesShort:EO_Ajax.locale.monthAbbrev,dayNames:EO_Ajax.locale.dayNames,dayNamesShort:EO_Ajax.locale.dayAbbrev,header:{left:"title",center:"category venue",right:"prev goto today next"},buttonIcons:!1,buttonui:!0,events:function(a,b,c){jQuery.ajax({url:EO_Ajax.ajaxurl+"?action=event-admin-cal",dataType:"JSON",data:{start:jQuery.fullCalendar.formatDate(a,"yyyy-MM-dd"),end:jQuery.fullCalendar.formatDate(b,"yyyy-MM-dd")},success:function(a){c(a)}})},categories:EO_Ajax.categories,venues:EO_Ajax.venues,selectable:!0,selectHelper:!0,eventRender:function(a){var b=jQuery(".filter-category .eo-cal-filter").val(),c=jQuery(".filter-venue .eo-cal-filter").val();return"undefined"!=typeof b&&""!=b&&jQuery.inArray(b,a.category)<0?"<div></div>":"undefined"!=typeof c&&""!=c&&c!=a.venue?"<div></div>":void 0},viewDisplay:function(b){var c=jQuery.fullCalendar.formatDate(b.start,"yyyy-MM-dd"),d=b.name,e=new Date;e=new Date(e.getTime()+6e5),a.cookie("eo_admin_cal_last_viewed_date",c,{expires:e}),a.cookie("eo_admin_cal_last_view",d,{expires:e})},weekMode:"variable",aspectRatio:1.5,loading:function(a){a?jQuery("#loading").show():jQuery("#loading").hide()},timeFormat:f,axisFormat:f,eventClick:function(b,c){c.preventDefault(),jQuery("#eo-dialog-tabs ul li").each(function(){var c=a(this).attr("id").substring(14);jQuery("#eo-dialog-tabs #"+a(this).attr("id")+"-content").html(b[c])}),a("#events-meta").dialog("open")},select:function(b,c,d,e){if(EO_Ajax.perm_edit){e.preventDefault();var g,h="yyyy-MM-dd",i=jQuery(this)[0].calendar.options,j=jQuery.fullCalendar.formatDate(b,h),k=jQuery.fullCalendar.formatDate(b,"HH:mm"),l=jQuery.fullCalendar.formatDate(c,h),m=jQuery.fullCalendar.formatDate(c,"HH:mm");d?(f="ddd, dS MMMM",d=1):(f="ddd, dS MMMM h(:mm)tt",d=0),j==l?(g=jQuery.fullCalendar.formatDate(b,f,i),d||(g=g+" &mdash; "+jQuery.fullCalendar.formatDate(c,"h(:mm)tt",i))):g=jQuery.fullCalendar.formatDate(b,f,i)+" &mdash; "+jQuery.fullCalendar.formatDate(c,f,i),a("#eo_event_create_cal input[name='eo_event[event_title]']").val(""),a("#eo_event_create_cal input.ui-autocomplete-input").val(""),a("#eo_event_create_cal textarea[name='eo_event[event_content]']").val(""),a("#eo_event_create_cal input[name='eo_event[StartDate]']").val(j),a("#eo_event_create_cal input[name='eo_event[StartTime]']").val(k),a("#eo_event_create_cal input[name='eo_event[EndDate]']").val(l),a("#eo_event_create_cal input[name='eo_event[FinishTime]']").val(m),a("#eo_event_create_cal input[name='eo_event[allday]']").val(d),a("#eo_event_create_cal td#date").html(g),a("#eo_event_create_cal").dialog("open"),a("form.eo_cal input[type='submit']").removeAttr("disabled"),a("form.eo_cal input#reset").click(function(){a("#eo_event_create_cal").dialog("close")})}}});a("#eofc_time_format").change(function(){f=a("#eofc_time_format").is(":checked")?"HH:mm":"h:mmtt",h.fullCalendar("option","timeFormat",f),a.post(ajaxurl,{action:"eofc-format-time",is24:a("#eofc_time_format").is(":checked")})}),a(".view-button").click(function(b){b.preventDefault(),a(".view-button").removeClass("active"),h.fullCalendar("changeView",a(this).attr("id")),a(this).addClass("active")}),a("#miniCalendar").datepicker({dateFormat:"DD, d MM, yy",firstDay:parseInt(EO_Ajax.startday,10),changeMonth:!0,monthNamesShort:EO_Ajax.locale.monthAbbrev,dayNamesMin:EO_Ajax.locale.dayAbbrev,changeYear:!0,showOn:"button",buttonText:EO_Ajax.locale.gotodate,onSelect:function(a){h.fullCalendar("gotoDate",new Date(Date.parse(a)))}}),a("button.ui-datepicker-trigger").button(),a.widget("ui.combobox",{_create:function(){var b=this.element.hide(),c=b.children(":selected"),d=c.val()?c.text():"",e=a("<span>").addClass("ui-combobox eo-venue-input").insertAfter(b),f={delay:0,minLength:0,source:function(b,c){a.getJSON(EO_Ajax.ajaxurl+"?callback=?&action=eo-search-venue",b,function(b){var d=a.map(b,function(a){return a.label=a.name,a});c(d)})},select:function(b,c){a("#venue_select").removeAttr("selected"),a("#venue_select").val(c.item.term_id)}},g=a("<input>").appendTo(e).val(d).addClass("ui-combobox-input").autocomplete(f).addClass("ui-widget-content ui-corner-left"),h=a.ui?a.ui.version||0:-1,i=eventorganiser.versionCompare(h,"1.10")>=0?"ui-autocomplete":"autocomplete";g.data(i)._renderItem=function(b,c){if(0===c.term_id)return a("<li></li>").data(i+"-item",c).append("<a>"+c.label+"</a>").appendTo(b);var d=[c.venue_address,c.venue_city,c.venue_state,c.venue_postcode,c.venue_country],e=a.grep(d,function(a){return a}).join(", "),f=eventorganiser.versionCompare(h,"1.10")>=0?"ui-autocomplete-item":"item.autocomplete";return a("<li></li>").data(f,c).append("<a>"+c.label+"</br> <span style='font-size: 0.8em'><em>"+e+"</span></em></a>").appendTo(b)};var j=a("<span>").addClass("eo-venue-combobox-buttons").appendTo(e);a("<a style='vertical-align: top;margin: 0px -1px;padding: 0px;height: 21px;'>").attr("title","Show All Items").appendTo(j).button({icons:{primary:"ui-icon-triangle-1-s"},text:!1}).removeClass("ui-corner-all").addClass("ui-corner-right ui-combobox-toggle ui-combobox-button").click(function(){return g.autocomplete("widget").is(":visible")?(g.autocomplete("close"),void 0):(a(this).blur(),g.autocomplete("search","").focus(),void 0)})}}),a("#venue_select").combobox(),a(".eo-cal-filter").change(function(){h.fullCalendar("rerenderEvents")}),a(".filter-venue .eo-cal-filter").selectmenu({wrapperElement:"<span class='fc-header-filter'></span>"}),a(".filter-category .eo-cal-filter").selectmenu({wrapperElement:"<span class='fc-header-filter'></span>",icons:[{find:".cat"}]});var i=a("#eo-event-venue-button").width()+30;a("#eo-event-venue-button").width(i+"px"),a("#eo-event-venue-menu").width(i+"px");var j=a("#eo-event-cat-button").width()+30;a("#eo-event-cat-button").width(j+"px"),a("#eo-event-cat-menu").width(j+"px")})}(jQuery),function(a){a.widget("ui.selectmenu",{options:{appendTo:"body",typeAhead:1e3,style:"dropdown",positionOptions:null,width:null,menuWidth:null,handleWidth:26,maxHeight:null,icons:null,format:null,escapeHtml:!1,bgImage:function(){}},_create:function(){var b=this,c=this.options,d=a.ui?a.ui.version||0:-1,e=eventorganiser.versionCompare(d,"1.9")>=0?this.element.uniqueId().attr("id"):this.element.attr("id")||"ui-selectmenu-"+Math.random().toString(16).slice(2,10);this.ids=[e,e+"-button",e+"-menu"],this._safemouseup=!0,this.isOpen=!1,this.newelement=a("<a />",{"class":"ui-selectmenu ui-widget ui-state-default ui-corner-all",id:this.ids[1],role:"button",href:"#nogo",tabindex:this.element.attr("disabled")?1:0,"aria-haspopup":!0,"aria-owns":this.ids[2]}),this.newelementWrap=a("<span />").append(this.newelement).insertAfter(this.element);var f=this.element.attr("tabindex");f&&this.newelement.attr("tabindex",f),this.newelement.data("selectelement",this.element),this.selectmenuIcon=a('<span class="ui-selectmenu-icon ui-icon"></span>').prependTo(this.newelement),this.newelement.prepend('<span class="ui-selectmenu-status" />'),this.element.bind({"click.selectmenu":function(a){b.newelement.focus(),a.preventDefault()}}),this.newelement.bind("mousedown.selectmenu",function(a){b._toggle(a,!0),"popup"==c.style&&(b._safemouseup=!1,setTimeout(function(){b._safemouseup=!0},300)),a.preventDefault()}).bind("click.selectmenu",function(a){a.preventDefault()}).bind("keydown.selectmenu",function(c){var d=!1;switch(c.keyCode){case a.ui.keyCode.ENTER:d=!0;break;case a.ui.keyCode.SPACE:b._toggle(c);break;case a.ui.keyCode.UP:c.altKey?b.open(c):b._moveSelection(-1);break;case a.ui.keyCode.DOWN:c.altKey?b.open(c):b._moveSelection(1);break;case a.ui.keyCode.LEFT:b._moveSelection(-1);break;case a.ui.keyCode.RIGHT:b._moveSelection(1);break;case a.ui.keyCode.TAB:d=!0;break;case a.ui.keyCode.PAGE_UP:case a.ui.keyCode.HOME:b.index(0);break;case a.ui.keyCode.PAGE_DOWN:case a.ui.keyCode.END:b.index(b._optionLis.length);break;default:d=!0}return d}).bind("keypress.selectmenu",function(a){return a.which>0&&b._typeAhead(a.which,"mouseup"),!0}).bind("mouseover.selectmenu",function(){c.disabled||a(this).addClass("ui-state-hover")}).bind("mouseout.selectmenu",function(){c.disabled||a(this).removeClass("ui-state-hover")}).bind("focus.selectmenu",function(){c.disabled||a(this).addClass("ui-state-focus")}).bind("blur.selectmenu",function(){c.disabled||a(this).removeClass("ui-state-focus")}),a(document).bind("mousedown.selectmenu-"+this.ids[0],function(c){b.isOpen&&!a(c.target).closest("#"+b.ids[1]).length&&b.close(c)}),this.element.bind("click.selectmenu",function(){b._refreshValue()}).bind("focus.selectmenu",function(){b.newelement&&b.newelement[0].focus()}),c.width||(c.width=this.element.outerWidth()),this.newelement.width(c.width),this.element.hide(),this.list=a("<ul />",{"class":"ui-widget ui-widget-content","aria-hidden":!0,role:"listbox","aria-labelledby":this.ids[1],id:this.ids[2]}),this.listWrap=a("<div />",{"class":"ui-selectmenu-menu"}).append(this.list).appendTo(c.appendTo),this.list.bind("keydown.selectmenu",function(c){var d=!1;switch(c.keyCode){case a.ui.keyCode.UP:c.altKey?b.close(c,!0):b._moveFocus(-1);break;case a.ui.keyCode.DOWN:c.altKey?b.close(c,!0):b._moveFocus(1);break;case a.ui.keyCode.LEFT:b._moveFocus(-1);break;case a.ui.keyCode.RIGHT:b._moveFocus(1);break;case a.ui.keyCode.HOME:b._moveFocus(":first");break;case a.ui.keyCode.PAGE_UP:b._scrollPage("up");break;case a.ui.keyCode.PAGE_DOWN:b._scrollPage("down");break;case a.ui.keyCode.END:b._moveFocus(":last");break;case a.ui.keyCode.ENTER:case a.ui.keyCode.SPACE:b.close(c,!0),a(c.target).parents("li:eq(0)").trigger("mouseup");break;case a.ui.keyCode.TAB:d=!0,b.close(c,!0),a(c.target).parents("li:eq(0)").trigger("mouseup");break;case a.ui.keyCode.ESCAPE:b.close(c,!0);break;default:d=!0}return d}).bind("keypress.selectmenu",function(a){return a.which>0&&b._typeAhead(a.which,"focus"),!0}).bind("mousedown.selectmenu mouseup.selectmenu",function(){return!1}),a(window).bind("resize.selectmenu-"+this.ids[0],a.proxy(b.close,this))},_init:function(){var b=this,c=this.options,d=[];this.element.find("option").each(function(){var e=a(this);d.push({value:e.attr("value"),text:b._formatText(e.text(),e),selected:e.attr("selected"),disabled:e.attr("disabled"),classes:e.attr("class"),typeahead:e.attr("typeahead"),parentOptGroup:e.parent("optgroup"),bgImage:c.bgImage.call(e)})});var e="popup"==b.options.style?" ui-state-active":"";if(this.list.html(""),d.length)for(var f=0;f<d.length;f++){var g={role:"presentation"};d[f].disabled&&(g["class"]="ui-state-disabled");var h={html:d[f].text||"&nbsp;",href:"#nogo",tabindex:-1,role:"option","aria-selected":!1};d[f].disabled&&(h["aria-disabled"]=d[f].disabled),d[f].typeahead&&(h.typeahead=d[f].typeahead);var i=a("<a/>",h).bind("focus.selectmenu",function(){a(this).parent().mouseover()}).bind("blur.selectmenu",function(){a(this).parent().mouseout()}),j=a("<li/>",g).append(i).data("index",f).addClass(d[f].classes).data("optionClasses",d[f].classes||"").bind("mouseup.selectmenu",function(c){return!b._safemouseup||b._disabled(c.currentTarget)||b._disabled(a(c.currentTarget).parents("ul > li.ui-selectmenu-group "))||(b.index(a(this).data("index")),b.select(c),b.close(c,!0)),!1}).bind("click.selectmenu",function(){return!1}).bind("mouseover.selectmenu",function(c){a(this).hasClass("ui-state-disabled")||a(this).parent("ul").parent("li").hasClass("ui-state-disabled")||(c.optionValue=b.element[0].options[a(this).data("index")].value,b._trigger("hover",c,b._uiHash()),b._selectedOptionLi().addClass(e),b._focusedOptionLi().removeClass("ui-selectmenu-item-focus ui-state-hover"),a(this).removeClass("ui-state-active").addClass("ui-selectmenu-item-focus ui-state-hover"))}).bind("mouseout.selectmenu",function(c){a(this).is(b._selectedOptionLi())&&a(this).addClass(e),c.optionValue=b.element[0].options[a(this).data("index")].value,b._trigger("blur",c,b._uiHash()),a(this).removeClass("ui-selectmenu-item-focus ui-state-hover")});if(d[f].parentOptGroup.length){var k="ui-selectmenu-group-"+this.element.find("optgroup").index(d[f].parentOptGroup);this.list.find("li."+k).length?this.list.find("li."+k+":last ul").append(j):a('<li role="presentation" class="ui-selectmenu-group '+k+(d[f].parentOptGroup.attr("disabled")?' ui-state-disabled" aria-disabled="true"':'"')+'><span class="ui-selectmenu-group-label">'+d[f].parentOptGroup.attr("label")+"</span><ul></ul></li>").appendTo(this.list).find("ul").append(j)}else j.appendTo(this.list);if(c.icons)for(var l in c.icons)if(j.is(c.icons[l].find)){j.data("optionClasses",d[f].classes+" ui-selectmenu-hasIcon").addClass("ui-selectmenu-hasIcon");var m=c.icons[l].icon||"";j.find("a:eq(0)").prepend('<span class="ui-selectmenu-item-icon ui-icon '+m+'"></span>'),d[f].bgImage&&j.find("span").css("background-image",d[f].bgImage)}}else a(' <li role="presentation"><a href="#nogo" tabindex="-1" role="option"></a></li>').appendTo(this.list);var n="dropdown"==c.style;this.newelement.toggleClass("ui-selectmenu-dropdown",n).toggleClass("ui-selectmenu-popup",!n),this.list.toggleClass("ui-selectmenu-menu-dropdown ui-corner-bottom",n).toggleClass("ui-selectmenu-menu-popup ui-corner-all",!n).find("li:first").toggleClass("ui-corner-top",!n).end().find("li:last").addClass("ui-corner-bottom"),this.selectmenuIcon.toggleClass("ui-icon-triangle-1-s",n).toggleClass("ui-icon-triangle-2-n-s",!n),"dropdown"==c.style?this.list.width(c.menuWidth?c.menuWidth:c.width):this.list.width(c.menuWidth?c.menuWidth:c.width-c.handleWidth),this.list.css("height","auto");var o=this.listWrap.height(),p=a(window).height(),q=c.maxHeight?Math.min(c.maxHeight,p):p/3;o>q&&this.list.height(q),this._optionLis=this.list.find("li:not(.ui-selectmenu-group)"),this.element.attr("disabled")?this.disable():this.enable(),this._refreshValue(),this._selectedOptionLi().addClass("ui-selectmenu-item-focus"),clearTimeout(this.refreshTimeout),this.refreshTimeout=window.setTimeout(function(){b._refreshPosition()},200)},destroy:function(){this.element.removeData(this.widgetName).removeClass("ui-selectmenu-disabled ui-state-disabled").removeAttr("aria-disabled").unbind(".selectmenu"),a(window).unbind(".selectmenu-"+this.ids[0]),a(document).unbind(".selectmenu-"+this.ids[0]),this.newelementWrap.remove(),this.listWrap.remove(),this.element.unbind(".selectmenu").show(),a.Widget.prototype.destroy.apply(this,arguments)},_typeAhead:function(a,b){var c=this,d=String.fromCharCode(a).toLowerCase(),e=null,f=null;c._typeAhead_timer&&(window.clearTimeout(c._typeAhead_timer),c._typeAhead_timer=void 0),c._typeAhead_chars=(void 0===c._typeAhead_chars?"":c._typeAhead_chars).concat(d),c._typeAhead_chars.length<2||c._typeAhead_chars.substr(-2,1)===d&&c._typeAhead_cycling?(c._typeAhead_cycling=!0,e=d):(c._typeAhead_cycling=!1,e=c._typeAhead_chars);for(var g=("focus"!==b?this._selectedOptionLi().data("index"):this._focusedOptionLi().data("index"))||0,h=0;h<this._optionLis.length;h++){var i=this._optionLis.eq(h).text().substr(0,e.length).toLowerCase();if(i===e)if(c._typeAhead_cycling){if(null===f&&(f=h),h>g){f=h;break}}else f=h}null!==f&&this._optionLis.eq(f).find("a").trigger(b),c._typeAhead_timer=window.setTimeout(function(){c._typeAhead_timer=void 0,c._typeAhead_chars=void 0,c._typeAhead_cycling=void 0},c.options.typeAhead)},_uiHash:function(){var b=this.index();return{index:b,option:a("option",this.element).get(b),value:this.element[0].value}},open:function(a){if("true"!=this.newelement.attr("aria-disabled")){var b=this,c=this.options,d=this._selectedOptionLi(),e=d.find("a");b._closeOthers(a),b.newelement.addClass("ui-state-active"),b.list.attr("aria-hidden",!1),b.listWrap.addClass("ui-selectmenu-open"),"dropdown"==c.style?b.newelement.removeClass("ui-corner-all").addClass("ui-corner-top"):this.list.css("left",-5e3).scrollTop(this.list.scrollTop()+d.position().top-this.list.outerHeight()/2+d.outerHeight()/2).css("left","auto"),b._refreshPosition(),e.length&&e[0].focus(),b.isOpen=!0,b._trigger("open",a,b._uiHash())}},close:function(a,b){this.newelement.is(".ui-state-active")&&(this.newelement.removeClass("ui-state-active"),this.listWrap.removeClass("ui-selectmenu-open"),this.list.attr("aria-hidden",!0),"dropdown"==this.options.style&&this.newelement.removeClass("ui-corner-top").addClass("ui-corner-all"),b&&this.newelement.focus(),this.isOpen=!1,this._trigger("close",a,this._uiHash()))},change:function(a){this.element.trigger("change"),this._trigger("change",a,this._uiHash())},select:function(a){return this._disabled(a.currentTarget)?!1:(this._trigger("select",a,this._uiHash()),void 0)},widget:function(){return this.listWrap.add(this.newelementWrap)},_closeOthers:function(b){a(".ui-selectmenu.ui-state-active").not(this.newelement).each(function(){a(this).data("selectelement").selectmenu("close",b)}),a(".ui-selectmenu.ui-state-hover").trigger("mouseout")},_toggle:function(a,b){this.isOpen?this.close(a,b):this.open(a)},_formatText:function(b,c){return this.options.format?b=this.options.format(b,c):this.options.escapeHtml&&(b=a("<div />").text(b).html()),b},_selectedIndex:function(){return this.element[0].selectedIndex},_selectedOptionLi:function(){return this._optionLis.eq(this._selectedIndex())},_focusedOptionLi:function(){return this.list.find(".ui-selectmenu-item-focus")},_moveSelection:function(a,b){if(!this.options.disabled){var c=parseInt(this._selectedOptionLi().data("index")||0,10),d=c+a;if(0>d&&(d=0),d>this._optionLis.size()-1&&(d=this._optionLis.size()-1),d===b)return!1;this._optionLis.eq(d).hasClass("ui-state-disabled")?(a>0?++a:--a,this._moveSelection(a,d)):this._optionLis.eq(d).trigger("mouseover").trigger("mouseup")}},_moveFocus:function(a,b){if(isNaN(a))var c=parseInt(this._optionLis.filter(a).data("index"),10);else var d=parseInt(this._focusedOptionLi().data("index")||0,10),c=d+a;if(0>c&&(c=0),c>this._optionLis.size()-1&&(c=this._optionLis.size()-1),c===b)return!1;var e="ui-selectmenu-item-"+Math.round(1e3*Math.random());this._focusedOptionLi().find("a:eq(0)").attr("id",""),this._optionLis.eq(c).hasClass("ui-state-disabled")?(a>0?++a:--a,this._moveFocus(a,c)):this._optionLis.eq(c).find("a:eq(0)").attr("id",e).focus(),this.list.attr("aria-activedescendant",e)},_scrollPage:function(a){var b=Math.floor(this.list.outerHeight()/this._optionLis.first().outerHeight());b="up"==a?-b:b,this._moveFocus(b)},_setOption:function(a,b){this.options[a]=b,"disabled"==a&&(b&&this.close(),this.element.add(this.newelement).add(this.list)[b?"addClass":"removeClass"]("ui-selectmenu-disabled ui-state-disabled").attr("aria-disabled",b))},disable:function(a,b){"undefined"==typeof a?this._setOption("disabled",!0):"optgroup"==b?this._toggleOptgroup(a,!1):this._toggleOption(a,!1)},enable:function(a,b){"undefined"==typeof a?this._setOption("disabled",!1):"optgroup"==b?this._toggleOptgroup(a,!0):this._toggleOption(a,!0)},_disabled:function(b){return a(b).hasClass("ui-state-disabled")},_toggleOption:function(a,b){var c=this._optionLis.eq(a);c&&(c.toggleClass("ui-state-disabled",b).find("a").attr("aria-disabled",!b),b?this.element.find("option").eq(a).attr("disabled","disabled"):this.element.find("option").eq(a).removeAttr("disabled"))},_toggleOptgroup:function(a,b){var c=this.list.find("li.ui-selectmenu-group-"+a);c&&(c.toggleClass("ui-state-disabled",b).attr("aria-disabled",!b),b?this.element.find("optgroup").eq(a).attr("disabled","disabled"):this.element.find("optgroup").eq(a).removeAttr("disabled"))},index:function(b){return arguments.length?this._disabled(a(this._optionLis[b]))||b==this._selectedIndex()?!1:(this.element[0].selectedIndex=b,this._refreshValue(),this.change(),void 0):this._selectedIndex()},value:function(a){return arguments.length&&a!=this.element[0].value?(this.element[0].value=a,this._refreshValue(),this.change(),void 0):this.element[0].value},_refreshValue:function(){var a="popup"==this.options.style?" ui-state-active":"",b="ui-selectmenu-item-"+Math.round(1e3*Math.random());this.list.find(".ui-selectmenu-item-selected").removeClass("ui-selectmenu-item-selected"+a).find("a").attr("aria-selected","false").attr("id",""),this._selectedOptionLi().addClass("ui-selectmenu-item-selected"+a).find("a").attr("aria-selected","true").attr("id",b);var c=this.newelement.data("optionClasses")?this.newelement.data("optionClasses"):"",d=this._selectedOptionLi().data("optionClasses")?this._selectedOptionLi().data("optionClasses"):"";this.newelement.removeClass(c).data("optionClasses",d).addClass(d).find(".ui-selectmenu-status").html(this._selectedOptionLi().find("a:eq(0)").html()),this.list.attr("aria-activedescendant",b)},_refreshPosition:function(){var b=this.options,c={of:this.newelement,my:"left top",at:"left bottom",collision:"flip"};if("popup"==b.style){var d=this._selectedOptionLi();c.my="left top"+(this.list.offset().top-d.offset().top-(this.newelement.outerHeight()+d.outerHeight())/2),c.collision="fit"}this.listWrap.removeAttr("style").zIndex(this.element.zIndex()+2).position(a.extend(c,b.positionOptions))}})}(jQuery),function(a){var b;"function"==typeof b&&b.amd?b(["jquery"],a):a(jQuery)}(function(a){function b(a){return a}function c(a){return decodeURIComponent(a.replace(e," "))}function d(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return f.json?JSON.parse(a):a}catch(b){}}var e=/\+/g,f=a.cookie=function(e,g,h){if(void 0!==g){if(h=a.extend({},f.defaults,h),"number"==typeof h.expires){var i=h.expires,j=h.expires=new Date;j.setDate(j.getDate()+i)}return g=f.json?JSON.stringify(g):String(g),document.cookie=[f.raw?e:encodeURIComponent(e),"=",f.raw?g:encodeURIComponent(g),h.expires?"; expires="+h.expires.toUTCString():"",h.path?"; path="+h.path:"",h.domain?"; domain="+h.domain:"",h.secure?"; secure":""].join("")}for(var k=f.raw?b:c,l=document.cookie.split("; "),m=e?void 0:{},n=0,o=l.length;o>n;n++){var p=l[n].split("="),q=k(p.shift()),r=k(p.join("="));if(e&&e===q){m=d(r);break}e||(m[q]=d(r))}return m};f.defaults={},a.removeCookie=function(b,c){return void 0!==a.cookie(b)?(a.cookie(b,"",a.extend({},c,{expires:-1})),!0):!1}});
1
+ /*! event-organiser 2.4.0 2013-10-29 18:47 */
2
+ var eventorganiser=eventorganiser||{};eventorganiser.versionCompare=function(a,b){if("stringstring"!=typeof a+typeof b)return!1;for(var c=a.split("."),d=b.split("."),e=0,f=Math.max(c.length,d.length);f>e;e++){if(c[e]&&!d[e]&&parseInt(c[e],10)>0||parseInt(c[e],10)>parseInt(d[e],10))return 1;if(d[e]&&!c[e]&&parseInt(d[e],10)>0||parseInt(c[e],10)<parseInt(d[e],10))return-1}return 0},function(a){function b(a){var b,c=/^\s*(\d{4})-(\d\d)-(\d\d)\s*$/,d=new Date(0/0),e=c.exec(a);return e&&(b=+e[2],d.setFullYear(e[1],b-1,e[3]),b!=d.getMonth()+1&&d.setTime(0/0)),d}a(document).ready(function(){function c(){var b=a("<span class='fc-header-goto'><input type='hidden' id='miniCalendar'/></span>");return b}function d(b){var c=b.categories,d="<select class='eo-cal-filter' id='eo-event-cat'>";d+="<option value=''>"+b.buttonText.cat+"</option>";for(var e=0;e<c.length;e++)d+="<option class='cat-slug-"+c[e].slug+" cat' value='"+c[e].slug+"'>"+c[e].name+"</option>";return d+="</select>",a("<span class='fc-header-dropdown filter-category'></span>").append(d)}function e(b){var c=b.venues,d="<select class='eo-cal-filter' id='eo-event-venue'>";d+="<option value=''>"+b.buttonText.venue+"</option>";for(var e=0;e<c.length;e++)d+="<option value='"+c[e].term_id+"'>"+c[e].name+"</option>";return d+="</select>",a("<span class='fc-header-dropdown filter-venue'></span>").append(d)}a("#eo-dialog-tabs").tabs(),a(".eo-dialog").dialog({autoOpen:!1,dialogClass:"eo-admin-calendar-dialog",width:527,modal:!0}),a("#events-meta").parent().find(".ui-dialog-titlebar-close").appendTo(".ui-tabs-nav").closest(".ui-dialog").children(".ui-dialog-titlebar").remove();var f=a("#eofc_time_format").is(":checked")?"HH:mm":"h:mmtt",g=b(jQuery.cookie("eo_admin_cal_last_viewed_date"));"[object Date]"===Object.prototype.toString.call(g)?isNaN(g.getTime())&&(g=new Date):g=new Date;var h=jQuery("#eo_admin_calendar").fullCalendar({firstDay:parseInt(EO_Ajax.startday,10),date:g.getDate(),month:g.getMonth(),year:g.getFullYear(),defaultView:a.cookie("eo_admin_cal_last_view")?a.cookie("eo_admin_cal_last_view"):"month",editable:!1,lazyFetching:"true",eventColor:"#21759B",theme:!0,customButtons:{category:d,venue:e,"goto":c},buttonText:{today:EO_Ajax.locale.today,month:EO_Ajax.locale.month,week:EO_Ajax.locale.week,day:EO_Ajax.locale.day,cat:EO_Ajax.locale.cat,venue:EO_Ajax.locale.venue},monthNames:EO_Ajax.locale.monthNames,monthNamesShort:EO_Ajax.locale.monthAbbrev,dayNames:EO_Ajax.locale.dayNames,dayNamesShort:EO_Ajax.locale.dayAbbrev,header:{left:"title",center:"category venue",right:"prev goto today next"},buttonIcons:!1,buttonui:!0,events:function(a,b,c){jQuery.ajax({url:EO_Ajax.ajaxurl+"?action=event-admin-cal",dataType:"JSON",data:{start:jQuery.fullCalendar.formatDate(a,"yyyy-MM-dd"),end:jQuery.fullCalendar.formatDate(b,"yyyy-MM-dd")},success:function(a){c(a)}})},categories:EO_Ajax.categories,venues:EO_Ajax.venues,selectable:!0,selectHelper:!0,eventRender:function(a){var b=jQuery(".filter-category .eo-cal-filter").val(),c=jQuery(".filter-venue .eo-cal-filter").val();return"undefined"!=typeof b&&""!=b&&jQuery.inArray(b,a.category)<0?"<div></div>":"undefined"!=typeof c&&""!=c&&c!=a.venue?"<div></div>":void 0},viewDisplay:function(b){var c=jQuery.fullCalendar.formatDate(b.start,"yyyy-MM-dd"),d=b.name,e=new Date;e=new Date(e.getTime()+6e5),a.cookie("eo_admin_cal_last_viewed_date",c,{expires:e}),a.cookie("eo_admin_cal_last_view",d,{expires:e})},weekMode:"variable",aspectRatio:1.5,loading:function(a){a?jQuery("#loading").show():jQuery("#loading").hide()},timeFormat:f,axisFormat:f,eventClick:function(b,c){c.preventDefault(),jQuery("#eo-dialog-tabs ul li").each(function(){var c=a(this).attr("id").substring(14);jQuery("#eo-dialog-tabs #"+a(this).attr("id")+"-content").html(b[c])}),a("#events-meta").dialog("open")},select:function(b,c,d,e){if(EO_Ajax.perm_edit){e.preventDefault();var g,h="yyyy-MM-dd",i=jQuery(this)[0].calendar.options,j=jQuery.fullCalendar.formatDate(b,h),k=jQuery.fullCalendar.formatDate(b,"HH:mm"),l=jQuery.fullCalendar.formatDate(c,h),m=jQuery.fullCalendar.formatDate(c,"HH:mm");d?(f="ddd, dS MMMM",d=1):(f="ddd, dS MMMM h(:mm)tt",d=0),j==l?(g=jQuery.fullCalendar.formatDate(b,f,i),d||(g=g+" &mdash; "+jQuery.fullCalendar.formatDate(c,"h(:mm)tt",i))):g=jQuery.fullCalendar.formatDate(b,f,i)+" &mdash; "+jQuery.fullCalendar.formatDate(c,f,i),a("#eo_event_create_cal input[name='eo_event[event_title]']").val(""),a("#eo_event_create_cal input.ui-autocomplete-input").val(""),a("#eo_event_create_cal textarea[name='eo_event[event_content]']").val(""),a("#eo_event_create_cal input[name='eo_event[StartDate]']").val(j),a("#eo_event_create_cal input[name='eo_event[StartTime]']").val(k),a("#eo_event_create_cal input[name='eo_event[EndDate]']").val(l),a("#eo_event_create_cal input[name='eo_event[FinishTime]']").val(m),a("#eo_event_create_cal input[name='eo_event[allday]']").val(d),a("#eo_event_create_cal td#date").html(g),a("#eo_event_create_cal").dialog("open"),a("form.eo_cal input[type='submit']").removeAttr("disabled"),a("form.eo_cal input#reset").click(function(){a("#eo_event_create_cal").dialog("close")})}}});a("#eofc_time_format").change(function(){f=a("#eofc_time_format").is(":checked")?"HH:mm":"h:mmtt",h.fullCalendar("option","timeFormat",f),a.post(ajaxurl,{action:"eofc-format-time",is24:a("#eofc_time_format").is(":checked")})}),a(".view-button").click(function(b){b.preventDefault(),a(".view-button").removeClass("nav-tab-active"),h.fullCalendar("changeView",a(this).attr("id")),a(this).addClass("nav-tab-active")}),a("#miniCalendar").datepicker({dateFormat:"DD, d MM, yy",firstDay:parseInt(EO_Ajax.startday,10),changeMonth:!0,monthNamesShort:EO_Ajax.locale.monthAbbrev,dayNamesMin:EO_Ajax.locale.dayAbbrev,changeYear:!0,showOn:"button",buttonText:EO_Ajax.locale.gotodate,onSelect:function(a){h.fullCalendar("gotoDate",new Date(Date.parse(a)))}}),a("button.ui-datepicker-trigger").button(),a.widget("ui.combobox",{_create:function(){var b=this.element.hide(),c=b.children(":selected"),d=c.val()?c.text():"",e=a("<span>").addClass("ui-combobox eo-venue-input").insertAfter(b),f={delay:0,minLength:0,source:function(b,c){a.getJSON(EO_Ajax.ajaxurl+"?callback=?&action=eo-search-venue",b,function(b){var d=a.map(b,function(a){return a.label=a.name,a});c(d)})},select:function(b,c){a("#venue_select").removeAttr("selected"),a("#venue_select").val(c.item.term_id)}},g=a("<input>").appendTo(e).val(d).addClass("ui-combobox-input").autocomplete(f).addClass("ui-widget-content ui-corner-left"),h=a.ui?a.ui.version||0:-1,i=eventorganiser.versionCompare(h,"1.10")>=0?"ui-autocomplete":"autocomplete";g.data(i)._renderItem=function(b,c){if(0===c.term_id)return a("<li></li>").data(i+"-item",c).append("<a>"+c.label+"</a>").appendTo(b);var d=[c.venue_address,c.venue_city,c.venue_state,c.venue_postcode,c.venue_country],e=a.grep(d,function(a){return a}).join(", "),f=eventorganiser.versionCompare(h,"1.10")>=0?"ui-autocomplete-item":"item.autocomplete";return a("<li></li>").data(f,c).append("<a>"+c.label+"</br> <span style='font-size: 0.8em'><em>"+e+"</span></em></a>").appendTo(b)};var j=a("<span>").addClass("eo-venue-combobox-buttons").appendTo(e);a("<a style='vertical-align: top;margin: 0px -1px;padding: 0px;height: 21px;'>").attr("title","Show All Items").appendTo(j).button({icons:{primary:"ui-icon-triangle-1-s"},text:!1}).removeClass("ui-corner-all").addClass("ui-corner-right ui-combobox-toggle ui-combobox-button").click(function(){return g.autocomplete("widget").is(":visible")?(g.autocomplete("close"),void 0):(a(this).blur(),g.autocomplete("search","").focus(),void 0)})}}),a("#venue_select").combobox(),a(".eo-cal-filter").change(function(){h.fullCalendar("rerenderEvents")}),a(".filter-venue .eo-cal-filter").selectmenu({wrapperElement:"<span class='fc-header-filter'></span>"}),a(".filter-category .eo-cal-filter").selectmenu({wrapperElement:"<span class='fc-header-filter'></span>",icons:[{find:".cat"}]});var i=a("#eo-event-venue-button").width()+30;a("#eo-event-venue-button").width(i+"px"),a("#eo-event-venue-menu").width(i+"px");var j=a("#eo-event-cat-button").width()+30;a("#eo-event-cat-button").width(j+"px"),a("#eo-event-cat-menu").width(j+"px")})}(jQuery),function(a){a.widget("ui.selectmenu",{options:{appendTo:"body",typeAhead:1e3,style:"dropdown",positionOptions:null,width:null,menuWidth:null,handleWidth:26,maxHeight:null,icons:null,format:null,escapeHtml:!1,bgImage:function(){}},_create:function(){var b=this,c=this.options,d=a.ui?a.ui.version||0:-1,e=eventorganiser.versionCompare(d,"1.9")>=0?this.element.uniqueId().attr("id"):this.element.attr("id")||"ui-selectmenu-"+Math.random().toString(16).slice(2,10);this.ids=[e,e+"-button",e+"-menu"],this._safemouseup=!0,this.isOpen=!1,this.newelement=a("<a />",{"class":"ui-selectmenu ui-widget ui-state-default ui-corner-all",id:this.ids[1],role:"button",href:"#nogo",tabindex:this.element.attr("disabled")?1:0,"aria-haspopup":!0,"aria-owns":this.ids[2]}),this.newelementWrap=a("<span />").append(this.newelement).insertAfter(this.element);var f=this.element.attr("tabindex");f&&this.newelement.attr("tabindex",f),this.newelement.data("selectelement",this.element),this.selectmenuIcon=a('<span class="ui-selectmenu-icon ui-icon"></span>').prependTo(this.newelement),this.newelement.prepend('<span class="ui-selectmenu-status" />'),this.element.bind({"click.selectmenu":function(a){b.newelement.focus(),a.preventDefault()}}),this.newelement.bind("mousedown.selectmenu",function(a){b._toggle(a,!0),"popup"==c.style&&(b._safemouseup=!1,setTimeout(function(){b._safemouseup=!0},300)),a.preventDefault()}).bind("click.selectmenu",function(a){a.preventDefault()}).bind("keydown.selectmenu",function(c){var d=!1;switch(c.keyCode){case a.ui.keyCode.ENTER:d=!0;break;case a.ui.keyCode.SPACE:b._toggle(c);break;case a.ui.keyCode.UP:c.altKey?b.open(c):b._moveSelection(-1);break;case a.ui.keyCode.DOWN:c.altKey?b.open(c):b._moveSelection(1);break;case a.ui.keyCode.LEFT:b._moveSelection(-1);break;case a.ui.keyCode.RIGHT:b._moveSelection(1);break;case a.ui.keyCode.TAB:d=!0;break;case a.ui.keyCode.PAGE_UP:case a.ui.keyCode.HOME:b.index(0);break;case a.ui.keyCode.PAGE_DOWN:case a.ui.keyCode.END:b.index(b._optionLis.length);break;default:d=!0}return d}).bind("keypress.selectmenu",function(a){return a.which>0&&b._typeAhead(a.which,"mouseup"),!0}).bind("mouseover.selectmenu",function(){c.disabled||a(this).addClass("ui-state-hover")}).bind("mouseout.selectmenu",function(){c.disabled||a(this).removeClass("ui-state-hover")}).bind("focus.selectmenu",function(){c.disabled||a(this).addClass("ui-state-focus")}).bind("blur.selectmenu",function(){c.disabled||a(this).removeClass("ui-state-focus")}),a(document).bind("mousedown.selectmenu-"+this.ids[0],function(c){b.isOpen&&!a(c.target).closest("#"+b.ids[1]).length&&b.close(c)}),this.element.bind("click.selectmenu",function(){b._refreshValue()}).bind("focus.selectmenu",function(){b.newelement&&b.newelement[0].focus()}),c.width||(c.width=this.element.outerWidth()),this.newelement.width(c.width),this.element.hide(),this.list=a("<ul />",{"class":"ui-widget ui-widget-content","aria-hidden":!0,role:"listbox","aria-labelledby":this.ids[1],id:this.ids[2]}),this.listWrap=a("<div />",{"class":"ui-selectmenu-menu"}).append(this.list).appendTo(c.appendTo),this.list.bind("keydown.selectmenu",function(c){var d=!1;switch(c.keyCode){case a.ui.keyCode.UP:c.altKey?b.close(c,!0):b._moveFocus(-1);break;case a.ui.keyCode.DOWN:c.altKey?b.close(c,!0):b._moveFocus(1);break;case a.ui.keyCode.LEFT:b._moveFocus(-1);break;case a.ui.keyCode.RIGHT:b._moveFocus(1);break;case a.ui.keyCode.HOME:b._moveFocus(":first");break;case a.ui.keyCode.PAGE_UP:b._scrollPage("up");break;case a.ui.keyCode.PAGE_DOWN:b._scrollPage("down");break;case a.ui.keyCode.END:b._moveFocus(":last");break;case a.ui.keyCode.ENTER:case a.ui.keyCode.SPACE:b.close(c,!0),a(c.target).parents("li:eq(0)").trigger("mouseup");break;case a.ui.keyCode.TAB:d=!0,b.close(c,!0),a(c.target).parents("li:eq(0)").trigger("mouseup");break;case a.ui.keyCode.ESCAPE:b.close(c,!0);break;default:d=!0}return d}).bind("keypress.selectmenu",function(a){return a.which>0&&b._typeAhead(a.which,"focus"),!0}).bind("mousedown.selectmenu mouseup.selectmenu",function(){return!1}),a(window).bind("resize.selectmenu-"+this.ids[0],a.proxy(b.close,this))},_init:function(){var b=this,c=this.options,d=[];this.element.find("option").each(function(){var e=a(this);d.push({value:e.attr("value"),text:b._formatText(e.text(),e),selected:e.attr("selected"),disabled:e.attr("disabled"),classes:e.attr("class"),typeahead:e.attr("typeahead"),parentOptGroup:e.parent("optgroup"),bgImage:c.bgImage.call(e)})});var e="popup"==b.options.style?" ui-state-active":"";if(this.list.html(""),d.length)for(var f=0;f<d.length;f++){var g={role:"presentation"};d[f].disabled&&(g["class"]="ui-state-disabled");var h={html:d[f].text||"&nbsp;",href:"#nogo",tabindex:-1,role:"option","aria-selected":!1};d[f].disabled&&(h["aria-disabled"]=d[f].disabled),d[f].typeahead&&(h.typeahead=d[f].typeahead);var i=a("<a/>",h).bind("focus.selectmenu",function(){a(this).parent().mouseover()}).bind("blur.selectmenu",function(){a(this).parent().mouseout()}),j=a("<li/>",g).append(i).data("index",f).addClass(d[f].classes).data("optionClasses",d[f].classes||"").bind("mouseup.selectmenu",function(c){return!b._safemouseup||b._disabled(c.currentTarget)||b._disabled(a(c.currentTarget).parents("ul > li.ui-selectmenu-group "))||(b.index(a(this).data("index")),b.select(c),b.close(c,!0)),!1}).bind("click.selectmenu",function(){return!1}).bind("mouseover.selectmenu",function(c){a(this).hasClass("ui-state-disabled")||a(this).parent("ul").parent("li").hasClass("ui-state-disabled")||(c.optionValue=b.element[0].options[a(this).data("index")].value,b._trigger("hover",c,b._uiHash()),b._selectedOptionLi().addClass(e),b._focusedOptionLi().removeClass("ui-selectmenu-item-focus ui-state-hover"),a(this).removeClass("ui-state-active").addClass("ui-selectmenu-item-focus ui-state-hover"))}).bind("mouseout.selectmenu",function(c){a(this).is(b._selectedOptionLi())&&a(this).addClass(e),c.optionValue=b.element[0].options[a(this).data("index")].value,b._trigger("blur",c,b._uiHash()),a(this).removeClass("ui-selectmenu-item-focus ui-state-hover")});if(d[f].parentOptGroup.length){var k="ui-selectmenu-group-"+this.element.find("optgroup").index(d[f].parentOptGroup);this.list.find("li."+k).length?this.list.find("li."+k+":last ul").append(j):a('<li role="presentation" class="ui-selectmenu-group '+k+(d[f].parentOptGroup.attr("disabled")?' ui-state-disabled" aria-disabled="true"':'"')+'><span class="ui-selectmenu-group-label">'+d[f].parentOptGroup.attr("label")+"</span><ul></ul></li>").appendTo(this.list).find("ul").append(j)}else j.appendTo(this.list);if(c.icons)for(var l in c.icons)if(j.is(c.icons[l].find)){j.data("optionClasses",d[f].classes+" ui-selectmenu-hasIcon").addClass("ui-selectmenu-hasIcon");var m=c.icons[l].icon||"";j.find("a:eq(0)").prepend('<span class="ui-selectmenu-item-icon ui-icon '+m+'"></span>'),d[f].bgImage&&j.find("span").css("background-image",d[f].bgImage)}}else a(' <li role="presentation"><a href="#nogo" tabindex="-1" role="option"></a></li>').appendTo(this.list);var n="dropdown"==c.style;this.newelement.toggleClass("ui-selectmenu-dropdown",n).toggleClass("ui-selectmenu-popup",!n),this.list.toggleClass("ui-selectmenu-menu-dropdown ui-corner-bottom",n).toggleClass("ui-selectmenu-menu-popup ui-corner-all",!n).find("li:first").toggleClass("ui-corner-top",!n).end().find("li:last").addClass("ui-corner-bottom"),this.selectmenuIcon.toggleClass("ui-icon-triangle-1-s",n).toggleClass("ui-icon-triangle-2-n-s",!n),"dropdown"==c.style?this.list.width(c.menuWidth?c.menuWidth:c.width):this.list.width(c.menuWidth?c.menuWidth:c.width-c.handleWidth),this.list.css("height","auto");var o=this.listWrap.height(),p=a(window).height(),q=c.maxHeight?Math.min(c.maxHeight,p):p/3;o>q&&this.list.height(q),this._optionLis=this.list.find("li:not(.ui-selectmenu-group)"),this.element.attr("disabled")?this.disable():this.enable(),this._refreshValue(),this._selectedOptionLi().addClass("ui-selectmenu-item-focus"),clearTimeout(this.refreshTimeout),this.refreshTimeout=window.setTimeout(function(){b._refreshPosition()},200)},destroy:function(){this.element.removeData(this.widgetName).removeClass("ui-selectmenu-disabled ui-state-disabled").removeAttr("aria-disabled").unbind(".selectmenu"),a(window).unbind(".selectmenu-"+this.ids[0]),a(document).unbind(".selectmenu-"+this.ids[0]),this.newelementWrap.remove(),this.listWrap.remove(),this.element.unbind(".selectmenu").show(),a.Widget.prototype.destroy.apply(this,arguments)},_typeAhead:function(a,b){var c=this,d=String.fromCharCode(a).toLowerCase(),e=null,f=null;c._typeAhead_timer&&(window.clearTimeout(c._typeAhead_timer),c._typeAhead_timer=void 0),c._typeAhead_chars=(void 0===c._typeAhead_chars?"":c._typeAhead_chars).concat(d),c._typeAhead_chars.length<2||c._typeAhead_chars.substr(-2,1)===d&&c._typeAhead_cycling?(c._typeAhead_cycling=!0,e=d):(c._typeAhead_cycling=!1,e=c._typeAhead_chars);for(var g=("focus"!==b?this._selectedOptionLi().data("index"):this._focusedOptionLi().data("index"))||0,h=0;h<this._optionLis.length;h++){var i=this._optionLis.eq(h).text().substr(0,e.length).toLowerCase();if(i===e)if(c._typeAhead_cycling){if(null===f&&(f=h),h>g){f=h;break}}else f=h}null!==f&&this._optionLis.eq(f).find("a").trigger(b),c._typeAhead_timer=window.setTimeout(function(){c._typeAhead_timer=void 0,c._typeAhead_chars=void 0,c._typeAhead_cycling=void 0},c.options.typeAhead)},_uiHash:function(){var b=this.index();return{index:b,option:a("option",this.element).get(b),value:this.element[0].value}},open:function(a){if("true"!=this.newelement.attr("aria-disabled")){var b=this,c=this.options,d=this._selectedOptionLi(),e=d.find("a");b._closeOthers(a),b.newelement.addClass("ui-state-active"),b.list.attr("aria-hidden",!1),b.listWrap.addClass("ui-selectmenu-open"),"dropdown"==c.style?b.newelement.removeClass("ui-corner-all").addClass("ui-corner-top"):this.list.css("left",-5e3).scrollTop(this.list.scrollTop()+d.position().top-this.list.outerHeight()/2+d.outerHeight()/2).css("left","auto"),b._refreshPosition(),e.length&&e[0].focus(),b.isOpen=!0,b._trigger("open",a,b._uiHash())}},close:function(a,b){this.newelement.is(".ui-state-active")&&(this.newelement.removeClass("ui-state-active"),this.listWrap.removeClass("ui-selectmenu-open"),this.list.attr("aria-hidden",!0),"dropdown"==this.options.style&&this.newelement.removeClass("ui-corner-top").addClass("ui-corner-all"),b&&this.newelement.focus(),this.isOpen=!1,this._trigger("close",a,this._uiHash()))},change:function(a){this.element.trigger("change"),this._trigger("change",a,this._uiHash())},select:function(a){return this._disabled(a.currentTarget)?!1:(this._trigger("select",a,this._uiHash()),void 0)},widget:function(){return this.listWrap.add(this.newelementWrap)},_closeOthers:function(b){a(".ui-selectmenu.ui-state-active").not(this.newelement).each(function(){a(this).data("selectelement").selectmenu("close",b)}),a(".ui-selectmenu.ui-state-hover").trigger("mouseout")},_toggle:function(a,b){this.isOpen?this.close(a,b):this.open(a)},_formatText:function(b,c){return this.options.format?b=this.options.format(b,c):this.options.escapeHtml&&(b=a("<div />").text(b).html()),b},_selectedIndex:function(){return this.element[0].selectedIndex},_selectedOptionLi:function(){return this._optionLis.eq(this._selectedIndex())},_focusedOptionLi:function(){return this.list.find(".ui-selectmenu-item-focus")},_moveSelection:function(a,b){if(!this.options.disabled){var c=parseInt(this._selectedOptionLi().data("index")||0,10),d=c+a;if(0>d&&(d=0),d>this._optionLis.size()-1&&(d=this._optionLis.size()-1),d===b)return!1;this._optionLis.eq(d).hasClass("ui-state-disabled")?(a>0?++a:--a,this._moveSelection(a,d)):this._optionLis.eq(d).trigger("mouseover").trigger("mouseup")}},_moveFocus:function(a,b){if(isNaN(a))var c=parseInt(this._optionLis.filter(a).data("index"),10);else var d=parseInt(this._focusedOptionLi().data("index")||0,10),c=d+a;if(0>c&&(c=0),c>this._optionLis.size()-1&&(c=this._optionLis.size()-1),c===b)return!1;var e="ui-selectmenu-item-"+Math.round(1e3*Math.random());this._focusedOptionLi().find("a:eq(0)").attr("id",""),this._optionLis.eq(c).hasClass("ui-state-disabled")?(a>0?++a:--a,this._moveFocus(a,c)):this._optionLis.eq(c).find("a:eq(0)").attr("id",e).focus(),this.list.attr("aria-activedescendant",e)},_scrollPage:function(a){var b=Math.floor(this.list.outerHeight()/this._optionLis.first().outerHeight());b="up"==a?-b:b,this._moveFocus(b)},_setOption:function(a,b){this.options[a]=b,"disabled"==a&&(b&&this.close(),this.element.add(this.newelement).add(this.list)[b?"addClass":"removeClass"]("ui-selectmenu-disabled ui-state-disabled").attr("aria-disabled",b))},disable:function(a,b){"undefined"==typeof a?this._setOption("disabled",!0):"optgroup"==b?this._toggleOptgroup(a,!1):this._toggleOption(a,!1)},enable:function(a,b){"undefined"==typeof a?this._setOption("disabled",!1):"optgroup"==b?this._toggleOptgroup(a,!0):this._toggleOption(a,!0)},_disabled:function(b){return a(b).hasClass("ui-state-disabled")},_toggleOption:function(a,b){var c=this._optionLis.eq(a);c&&(c.toggleClass("ui-state-disabled",b).find("a").attr("aria-disabled",!b),b?this.element.find("option").eq(a).attr("disabled","disabled"):this.element.find("option").eq(a).removeAttr("disabled"))},_toggleOptgroup:function(a,b){var c=this.list.find("li.ui-selectmenu-group-"+a);c&&(c.toggleClass("ui-state-disabled",b).attr("aria-disabled",!b),b?this.element.find("optgroup").eq(a).attr("disabled","disabled"):this.element.find("optgroup").eq(a).removeAttr("disabled"))},index:function(b){return arguments.length?this._disabled(a(this._optionLis[b]))||b==this._selectedIndex()?!1:(this.element[0].selectedIndex=b,this._refreshValue(),this.change(),void 0):this._selectedIndex()},value:function(a){return arguments.length&&a!=this.element[0].value?(this.element[0].value=a,this._refreshValue(),this.change(),void 0):this.element[0].value},_refreshValue:function(){var a="popup"==this.options.style?" ui-state-active":"",b="ui-selectmenu-item-"+Math.round(1e3*Math.random());this.list.find(".ui-selectmenu-item-selected").removeClass("ui-selectmenu-item-selected"+a).find("a").attr("aria-selected","false").attr("id",""),this._selectedOptionLi().addClass("ui-selectmenu-item-selected"+a).find("a").attr("aria-selected","true").attr("id",b);var c=this.newelement.data("optionClasses")?this.newelement.data("optionClasses"):"",d=this._selectedOptionLi().data("optionClasses")?this._selectedOptionLi().data("optionClasses"):"";this.newelement.removeClass(c).data("optionClasses",d).addClass(d).find(".ui-selectmenu-status").html(this._selectedOptionLi().find("a:eq(0)").html()),this.list.attr("aria-activedescendant",b)},_refreshPosition:function(){var b=this.options,c={of:this.newelement,my:"left top",at:"left bottom",collision:"flip"};if("popup"==b.style){var d=this._selectedOptionLi();c.my="left top"+(this.list.offset().top-d.offset().top-(this.newelement.outerHeight()+d.outerHeight())/2),c.collision="fit"}this.listWrap.removeAttr("style").zIndex(this.element.zIndex()+2).position(a.extend(c,b.positionOptions))}})}(jQuery),function(a){var b;"function"==typeof b&&b.amd?b(["jquery"],a):a(jQuery)}(function(a){function b(a){return a}function c(a){return decodeURIComponent(a.replace(e," "))}function d(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return f.json?JSON.parse(a):a}catch(b){}}var e=/\+/g,f=a.cookie=function(e,g,h){if(void 0!==g){if(h=a.extend({},f.defaults,h),"number"==typeof h.expires){var i=h.expires,j=h.expires=new Date;j.setDate(j.getDate()+i)}return g=f.json?JSON.stringify(g):String(g),document.cookie=[f.raw?e:encodeURIComponent(e),"=",f.raw?g:encodeURIComponent(g),h.expires?"; expires="+h.expires.toUTCString():"",h.path?"; path="+h.path:"",h.domain?"; domain="+h.domain:"",h.secure?"; secure":""].join("")}for(var k=f.raw?b:c,l=document.cookie.split("; "),m=e?void 0:{},n=0,o=l.length;o>n;n++){var p=l[n].split("="),q=k(p.shift()),r=k(p.join("="));if(e&&e===q){m=d(r);break}e||(m[q]=d(r))}return m};f.defaults={},a.removeCookie=function(b,c){return void 0!==a.cookie(b)?(a.cookie(b,"",a.extend({},c,{expires:-1})),!0):!1}});
js/edit-event-controller.min.js CHANGED
@@ -1,2 +1,2 @@
1
- /*! event-organiser 2.3.0 2013-09-13 14:59 */
2
- var eventorganiser=eventorganiser||{};eventorganiser.versionCompare=function(a,b){if("stringstring"!=typeof a+typeof b)return!1;for(var c=a.split("."),d=b.split("."),e=Math.max(c.length,d.length),f=0;e>f;f++){if(c[f]&&!d[f]&&parseInt(c[f],10)>0||parseInt(c[f],10)>parseInt(d[f],10))return 1;if(d[f]&&!c[f]&&parseInt(d[f],10)>0||parseInt(c[f],10)<parseInt(d[f],10))return-1}return 0},jQuery(document).ready(function(a){var b;eventOrganiserSchedulePicker.init({views:{start_date:"#eventorganiser_detail #from_date",start_time:"#HWSEvent_time",end_date:"#eventorganiser_detail #to_date",end_time:"#HWSEvent_time2",occurrence_picker:"#eo_occurrence_datepicker",occurrence_picker_toggle:".eo_occurrence_toggle",schedule_last_date:"#recend",schedule:"#HWSEventInput_Req",is_all_day:"#eo_allday",frequency:"#HWSEvent_freq",week_repeat:"#dayofweekrepeat",month_repeat:"#dayofmonthrepeat",recurrence_section:".reocurrence_row",include:"#eo_occurrence_includes",exclude:"#eo_occurrence_excludes",schedule_span:"#recpan",summary:"#event_summary"},format:EO_Ajax_Event.format,is24hour:Boolean(EO_Ajax_Event.is24hour),startday:EO_Ajax_Event.startday,schedule:window.eventOrganiserSchedule,locale:EO_Ajax_Event.locale,editable:"once"==a("#HWSEventInput_Req").val()||"custom"==a("#HWSEventInput_Req").val()}),a("#HWSEvent_rec").click(function(){window.eventOrganiserSchedulePicker.options.editable=a("#HWSEvent_rec").is(":checked"),window.eventOrganiserSchedulePicker.update_form()}),a.widget("ui.combobox",{_create:function(){var c=this.element.hide(),d=c.children(":selected"),e=d.val()?d.text():"",f=a("<span>").addClass("ui-combobox eo-venue-input").insertAfter(c),g={delay:0,minLength:0,source:function(b,c){a.getJSON(EO_Ajax_Event.ajaxurl+"?callback=?&action=eo-search-venue",b,function(b){var d=a.map(b,function(a){return a.label=a.name,a});c(d)})},select:function(b,c){a("tr.venue_row").length>0&&(0==c.item.term_id?(a("tr.venue_row").hide(),a("#eventorganiser_event_detail tr.eo-add-new-venue").hide()):(a("tr.venue_row").show(),a("#eventorganiser_event_detail tr.eo-add-new-venue").hide()),eo_initialize_map(c.item.venue_lat,c.item.venue_lng),a("#eo_venue_Lat").val(c.item.venue_lat),a("#eo_venue_Lng").val(c.item.venue_lng)),a("#venue_select").removeAttr("selected"),a("#venue_select").val(c.item.term_id)}},h=a("<input>").appendTo(f).val(e).addClass("ui-combobox-input").autocomplete(g).addClass("ui-widget-content ui-corner-left"),i=a.ui?a.ui.version||0:-1,j=eventorganiser.versionCompare(i,"1.10")>=0?"ui-autocomplete":"autocomplete";h.data(j)._renderItem=function(b,c){if(0==c.term_id)return a("<li></li>").data(j+"-item",c).append("<a>"+c.label+"</a>").appendTo(b);var d=[c.venue_address,c.venue_city,c.venue_state,c.venue_postcode,c.venue_country],e=a.grep(d,function(a){return a}).join(", "),f=eventorganiser.versionCompare(i,"1.10")>=0?"ui-autocomplete-item":"item.autocomplete";return a("<li></li>").data(f,c).append("<a>"+c.label+"</br> <span style='font-size: 0.8em'><em>"+e+"</span></em></a>").appendTo(b)};var k=a("<span>").addClass("eo-venue-combobox-buttons").appendTo(f);a("<a style='vertical-align: top;margin: 0px -1px;padding: 0px;height: 21px;'>").attr("title","Show All Items").appendTo(k).button({icons:{primary:"ui-icon-triangle-1-s"},text:!1}).removeClass("ui-corner-all").addClass("ui-corner-right ui-combobox-toggle ui-combobox-button").click(function(){return h.autocomplete("widget").is(":visible")?(h.autocomplete("close"),void 0):(a(this).blur(),h.autocomplete("search","").focus(),void 0)}),"event"==pagenow&&EO_Ajax_Event.current_user_can.manage_venues&&a("<a style='vertical-align: top;margin: 0px -1px;padding: 0px;height: 21px;'>").attr("title","Create New Venue").appendTo(k).button({icons:{primary:"ui-icon-plus"},text:!1}).removeClass("ui-corner-all").addClass("ui-corner-right add-new-venue ui-combobox-button").click(function(){a("#eventorganiser_event_detail tr.eo-add-new-venue").show(),a("tr.venue_row").show(),b={id:a("#venue_select").val(),label:a(".eo-venue-input input").val(),lat:a("#eo_venue_Lat").val(),lng:a("#eo_venue_Lng").val()},a("#venue_select").removeAttr("selected").val(0),a(".eo-venue-combobox-select").hide(),a(".eo-venue-input input").val(""),eo_initialize_map(0,0);var c=EO_Ajax_Event.location;c?(c=c.split("/"),c=c[c.length-1],eventorganiser_code_address(c)):map.setZoom(1),a(this).blur()})}}),a("#venue_select").combobox(),a(".eo-add-new-venue-cancel").click(function(c){c.preventDefault(),a(".eo-venue-combobox-select").show(),a(".eo-add-new-venue input").val(""),eo_initialize_map(b.lat,b.lng),a("#venue_select").val(b.id),a(".eo-venue-input input").val(b.label),a("#eventorganiser_event_detail tr.eo-add-new-venue").hide()})});
1
+ /*! event-organiser 2.4.0 2013-10-29 18:47 */
2
+ var eventorganiser=eventorganiser||{};eventorganiser.versionCompare=function(a,b){if("stringstring"!=typeof a+typeof b)return!1;for(var c=a.split("."),d=b.split("."),e=Math.max(c.length,d.length),f=0;e>f;f++){if(c[f]&&!d[f]&&parseInt(c[f],10)>0||parseInt(c[f],10)>parseInt(d[f],10))return 1;if(d[f]&&!c[f]&&parseInt(d[f],10)>0||parseInt(c[f],10)<parseInt(d[f],10))return-1}return 0},jQuery(document).ready(function(a){var b;eventOrganiserSchedulePicker.init({views:{start_date:"#eventorganiser_detail #from_date",start_time:"#HWSEvent_time",end_date:"#eventorganiser_detail #to_date",end_time:"#HWSEvent_time2",occurrence_picker:"#eo_occurrence_datepicker",occurrence_picker_toggle:".eo_occurrence_toggle",schedule_last_date:"#recend",schedule:"#HWSEventInput_Req",is_all_day:"#eo_allday",frequency:"#HWSEvent_freq",week_repeat:"#dayofweekrepeat",month_repeat:"#dayofmonthrepeat",recurrence_section:".reocurrence_row",include:"#eo_occurrence_includes",exclude:"#eo_occurrence_excludes",schedule_span:"#recpan",summary:"#event_summary"},format:EO_Ajax_Event.format,is24hour:Boolean(EO_Ajax_Event.is24hour),startday:EO_Ajax_Event.startday,schedule:window.eventOrganiserSchedule,locale:EO_Ajax_Event.locale,editable:"once"==a("#HWSEventInput_Req").val()||"custom"==a("#HWSEventInput_Req").val()}),a("#HWSEvent_rec").click(function(){window.eventOrganiserSchedulePicker.options.editable=a("#HWSEvent_rec").is(":checked"),window.eventOrganiserSchedulePicker.update_form()}),a.widget("ui.combobox",{_create:function(){var c=this.element.hide(),d=c.children(":selected"),e=d.val()?d.text():"",f=a("<span>").addClass("ui-combobox eo-venue-input").insertAfter(c),g={delay:0,minLength:0,source:function(b,c){a.getJSON(EO_Ajax_Event.ajaxurl+"?callback=?&action=eo-search-venue",b,function(b){var d=a.map(b,function(a){return a.label=a.name,a});c(d)})},select:function(b,c){a("tr.venue_row").length>0&&(0==c.item.term_id?(a("tr.venue_row").hide(),a("#eventorganiser_event_detail tr.eo-add-new-venue").hide()):(a("tr.venue_row").show(),a("#eventorganiser_event_detail tr.eo-add-new-venue").hide()),eo_initialize_map(c.item.venue_lat,c.item.venue_lng),a("#eo_venue_Lat").val(c.item.venue_lat),a("#eo_venue_Lng").val(c.item.venue_lng)),a("#venue_select").removeAttr("selected"),a("#venue_select").val(c.item.term_id)}},h=a("<input>").appendTo(f).val(e).addClass("ui-combobox-input").autocomplete(g).addClass("ui-widget-content ui-corner-left"),i=a.ui?a.ui.version||0:-1,j=eventorganiser.versionCompare(i,"1.10")>=0?"ui-autocomplete":"autocomplete";h.data(j)._renderItem=function(b,c){if(0==c.term_id)return a("<li></li>").data(j+"-item",c).append("<a>"+c.label+"</a>").appendTo(b);var d=[c.venue_address,c.venue_city,c.venue_state,c.venue_postcode,c.venue_country],e=a.grep(d,function(a){return a}).join(", "),f=eventorganiser.versionCompare(i,"1.10")>=0?"ui-autocomplete-item":"item.autocomplete";return a("<li></li>").data(f,c).append("<a>"+c.label+"</br> <span style='font-size: 0.8em'><em>"+e+"</span></em></a>").appendTo(b)};var k=a("<span>").addClass("eo-venue-combobox-buttons").appendTo(f);a("<a style='vertical-align: top;margin: 0px -1px;padding: 0px;height: 21px;'>").attr("title","Show All Items").appendTo(k).button({icons:{primary:"ui-icon-triangle-1-s"},text:!1}).removeClass("ui-corner-all").addClass("ui-corner-right ui-combobox-toggle ui-combobox-button").click(function(){return h.autocomplete("widget").is(":visible")?(h.autocomplete("close"),void 0):(a(this).blur(),h.autocomplete("search","").focus(),void 0)}),"event"==pagenow&&EO_Ajax_Event.current_user_can.manage_venues&&a("<a style='vertical-align: top;margin: 0px -1px;padding: 0px;height: 21px;'>").attr("title","Create New Venue").appendTo(k).button({icons:{primary:"ui-icon-plus"},text:!1}).removeClass("ui-corner-all").addClass("ui-corner-right add-new-venue ui-combobox-button").click(function(){a("#eventorganiser_event_detail tr.eo-add-new-venue").show(),a("tr.venue_row").show(),b={id:a("#venue_select").val(),label:a(".eo-venue-input input").val(),lat:a("#eo_venue_Lat").val(),lng:a("#eo_venue_Lng").val()},a("#venue_select").removeAttr("selected").val(0),a(".eo-venue-combobox-select").hide(),a(".eo-venue-input input").val(""),eo_initialize_map(0,0);var c=EO_Ajax_Event.location;c?(c=c.split("/"),c=c[c.length-1],eventorganiser_code_address(c)):map.setZoom(1),a(this).blur()})}}),a("#venue_select").combobox(),a(".eo-add-new-venue-cancel").click(function(c){c.preventDefault(),a(".eo-venue-combobox-select").show(),a(".eo-add-new-venue input").val(""),eo_initialize_map(b.lat,b.lng),a("#venue_select").val(b.id),a(".eo-venue-input input").val(b.label),a("#eventorganiser_event_detail tr.eo-add-new-venue").hide()})});
js/event-manager.min.js CHANGED
@@ -2,4 +2,4 @@
2
  * Module: WP-JS-Hooks
3
  * Props: Carl Danley & 10up
4
  */
5
- !function(a,b){"use strict";a.document;var c=function(){var a=this,c={actions:{},filters:{}};a.addAction=function(b,c,d){return e(b)===!1||"function"!=typeof c?a:(d=parseInt(d||10,10),f("actions",b,c,d),a)},a.doAction=function(){var b=Array.prototype.slice.call(arguments),c=b.shift();return e(c)===!1?a:(h("actions",c,b),a)},a.removeAction=function(b){return e(b)===!1?a:(d("actions",b),a)},a.addFilter=function(b,c,d){return e(b)===!1||"function"!=typeof c?a:(d=parseInt(d||10,10),f("filters",b,c,d),a)},a.applyFilters=function(){var b=Array.prototype.slice.call(arguments),c=b.shift();return e(c)===!1?a:h("filters",c,b)},a.applyFilter=function(){var b=Array.prototype.slice.call(arguments),c=b.shift();return e(c)===!1?a:h("filters",c,b)},a.removeFilter=function(b){return e(b)===!1?a:(d("filters",b),a)};var d=function(a,b){c[a][b]&&(c[a][b]=[])},e=function(a){if("string"!=typeof a)return!1;var b=a.replace(/^\s+|\s+$/i,"").split("."),c=b.shift();return b=b.join("."),""!==c&&""!==b},f=function(a,b,d,e){var f={callback:d,priority:e},h=c[a][b];h?(h.push(f),h=g(h)):h=[f],c[a][b]=h},g=function(a){for(var b,c,d,e=1,f=a.length;f>e;e++){for(b=a[e],c=e;(d=a[c-1])&&d.priority>b.priority;)a[c]=a[c-1],--c;a[c]=b}return a},h=function(a,d,e){var f=c[a][d];if("undefined"==typeof f)return"filters"===a?e[0]:!1;for(var g=0,h=f.length;h>g;g++)"actions"===a?f[g].callback.apply(b,e):e[0]=f[g].callback.apply(b,e);return"actions"===a?!0:e[0]}};a.wp=a.wp||{},a.wp.hooks=new c}(window);
2
  * Module: WP-JS-Hooks
3
  * Props: Carl Danley & 10up
4
  */
5
+ !function(a,b){"use strict";a.document;var c=function(){var a=this,c={actions:{},filters:{}};a.addAction=function(b,c,d){return e(b)===!1||"function"!=typeof c?a:(d=parseInt(d||10,10),f("actions",b,c,d),a)},a.doAction=function(){var b=Array.prototype.slice.call(arguments),c=b.shift();return e(c)===!1?a:(h("actions",c,b),a)},a.removeAction=function(b){return e(b)===!1?a:(d("actions",b),a)},a.addFilter=function(b,c,d){return e(b)===!1||"function"!=typeof c?a:(d=parseInt(d||10,10),f("filters",b,c,d),a)},a.applyFilters=function(){var b=Array.prototype.slice.call(arguments),c=b.shift();return e(c)===!1?a:h("filters",c,b)},a.applyFilter=function(){var b=Array.prototype.slice.call(arguments),c=b.shift();return e(c)===!1?a:h("filters",c,b)},a.removeFilter=function(b){return e(b)===!1?a:(d("filters",b),a)};var d=function(a,b){c[a][b]&&(c[a][b]=[])},e=function(a){if("string"!=typeof a)return!1;var b=a.replace(/^\s+|\s+$/i,"").split("."),c=b.shift();return b=b.join("."),""!==c&&""!==b},f=function(a,b,d,e){var f={callback:d,priority:e},h=c[a][b];h?(h.push(f),h=g(h)):h=[f],c[a][b]=h},g=function(a){for(var b,c,d,e=1,f=a.length;f>e;e++){for(b=a[e],c=e;(d=a[c-1])&&d.priority>b.priority;)a[c]=a[c-1],--c;a[c]=b}return a},h=function(a,d,e){var f=c[a][d];if("undefined"==typeof f)return"filters"===a?e[0]:!1;for(var g=0,h=f.length;h>g;g++)"actions"===a?f[g].callback.apply(b,e):e[0]=f[g].callback.apply(b,e);return"actions"===a?!0:e[0]}};a.wp=a.wp||{},a.wp.hooks=new c}(window);
js/event.js CHANGED
@@ -114,8 +114,8 @@ function eo_generate_dates_by_schedule_rule( rule, month_start,month_end ){
114
  var matches = rule.schedule_meta.match(/BYDAY=(\d+)(MO|TU|WE|TH|FR|SA|SU)/);
115
  var n = parseInt( matches[1], 10 ) -1; //0=>first,1=>second,...,4=>last
116
  var occurrence_day = rule.start.getDay(), occurence_date;
117
-
118
- if (n >= 5) {
119
  //Last day
120
  var month_end_day = month_end.getDay();
121
  occurence_date = month_end.getDate() + (occurrence_day - month_end_day - 7) % 7;
@@ -298,6 +298,7 @@ window.eventOrganiserSchedulePicker = {
298
 
299
  $('html').click(function() {
300
  dp.hide();
 
301
  });
302
  }
303
 
114
  var matches = rule.schedule_meta.match(/BYDAY=(\d+)(MO|TU|WE|TH|FR|SA|SU)/);
115
  var n = parseInt( matches[1], 10 ) -1; //0=>first,1=>second,...,4=>last
116
  var occurrence_day = rule.start.getDay(), occurence_date;
117
+
118
+ if (n >= 4) {
119
  //Last day
120
  var month_end_day = month_end.getDay();
121
  occurence_date = month_end.getDate() + (occurrence_day - month_end_day - 7) % 7;
298
 
299
  $('html').click(function() {
300
  dp.hide();
301
+ $(views.occurrence_picker_toggle).val(locale.showDates);
302
  });
303
  }
304
 
js/event.min.js CHANGED
@@ -1,2 +1,2 @@
1
- /*! event-organiser 2.3.0 2013-09-13 14:59 */
2
- var eo_include_dates,eo_exclude_dates,eo_viewing_month;!function(a){function b(b,c,d){var e,f,g=new Array("SU","MO","TU","WE","TH","FR","SA"),h=[];switch(b.schedule){case"once":case"custom":var i=a.datepicker.formatDate("yy-mm-dd",b.start);return h.push(i),h;case"daily":b.start<c?(e=Math.abs((c-b.start)/864e5)-1,e%=b.frequency):e=parseInt(b.start.getDate(),10);var j=b.frequency,k=[],l=new Date(c);l.setDate(c.getDate()+(e-1)),k.push(l);break;case"weekly":var m=c.getDay();k=[],a.each(b.schedule_meta,function(a,d){a=g.indexOf(d),l=new Date(b.start),l.setDate(b.start.getDate()+(a-b.start.getDay()+7)%7),c>l&&(e=Math.abs((c-b.start)/864e5),e-=e%(7*b.frequency),l.setDate(l.getDate()+e)),k.push(l)}),j=7*b.frequency;break;case"monthly":var n=12*(c.getFullYear()-b.start.getFullYear())+(c.getMonth()-b.start.getMonth());if(0!==n%b.frequency)return;if(b.schedule_meta.match(/BYMONTHDAY=(\d+)/)){var o=b.start.getDate(),p=d.getDate();p>=o&&(f=new Date(c.getFullYear(),c.getMonth(),o))}else{var q,r=b.schedule_meta.match(/BYDAY=(\d+)(MO|TU|WE|TH|FR|SA|SU)/),s=parseInt(r[1],10)-1,t=b.start.getDay();if(s>=5){var u=d.getDay();q=d.getDate()+(t-u-7)%7}else{m=c.getDay();var v=(t-m+7)%7;q=v+7*s+1}f=new Date(c),f.setDate(q)}return f<=b.schedule_last&&(i=a.datepicker.formatDate("yy-mm-dd",f),h.push(i)),h;case"yearly":var w=c.getFullYear()-b.start.getFullYear();if(0!==w%b.frequency)return h;var x=new Date(c.getFullYear(),b.start.getMonth(),b.start.getDate());return c.getMonth()==b.start.getMonth()&&x.getMonth()==b.start.getMonth()&&(f=new Date(b.start),f.setYear(c.getFullYear()),f<=b.schedule_last&&(i=a.datepicker.formatDate("yy-mm-dd",f),h.push(i))),h;default:return h}for(var y in k)for(f=new Date(k[y]);d>=f&&f<=b.schedule_last;)i=a.datepicker.formatDate("yy-mm-dd",f),h.push(i),f.setDate(f.getDate()+j);return h}Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length,c=Number(arguments[1])||0;for(c=0>c?Math.ceil(c):Math.floor(c),0>c&&(c+=b);b>c;c++)if(c in this&&this[c]===a)return c;return-1}),Date.prototype.eoGetOrdinal=function(){var a=this.getDate();switch(a){case 1:case 21:case 31:return"st";case 2:case 22:return"nd";case 3:case 23:return"rd";default:return"th"}},window.eventOrganiserSchedulePicker={init:function(b){var c=this;this.options=b,this.schedule=b.schedule,this.set_up_datepickers(),this.set_up_timepickers(),a(".event-date :input").change(function(){c.update_schedule(),c.update_form(),a(this).hasClass("eo-all-day-toggle")||c.update_occurrencepicker_rules()}),this.update_schedule(),this.update_form();var d=new Date;eo_viewing_month=[d.getFullYear(),d.getMonth()+1],this.schedule.generate_dates_by_rule(d.getFullYear(),d.getMonth()+1,{})},set_up_datepickers:function(){var b=this,c=this.options.views,d=this.options.locale;if(a(c.start_date).data("eo-datepicker","start"),a(c.end_date).data("eo-datepicker","end"),a(c.is_all_day).addClass("eo-all-day-toggle"),a(c.schedule_last_date))var e=a(c.schedule_last_date).datepicker({dateFormat:this.options.format,changeMonth:!0,changeYear:!0,monthNamesShort:d.monthAbbrev,dayNamesMin:d.dayAbbrev,firstDay:parseInt(this.options.startday,10)}).data("eo-datepicker","schedule_last");var f=a(c.start_date+", "+c.end_date).datepicker({dateFormat:this.options.format,changeMonth:!0,changeYear:!0,monthNamesShort:d.monthAbbrev,dayNamesMin:d.dayAbbrev,firstDay:parseInt(this.options.startday,10),onSelect:function(c){var d="start"==a(this).data("eo-datepicker")?"minDate":"maxDate",g=a(this).data("datepicker"),h=a.datepicker.parseDate(g.settings.dateFormat||a.datepicker._defaults.dateFormat,c,g.settings);f.not(this).datepicker("option",d,h),"from_date"==this.id&&e.datepicker("option","minDate",h),b.update_schedule(),b.update_occurrencepicker_rules(),b.update_form()}}),g=a(c.occurrence_picker);g.length>0&&(g.datepicker({dateFormat:"yy-mm-dd",changeMonth:!0,changeYear:!0,monthNamesShort:d.monthAbbrev,dayNamesMin:d.dayAbbrev,firstDay:parseInt(this.options.startday,10),onSelect:function(b){eventOrganiserSchedule.add_or_remove_date(b),a(eventOrganiserSchedulePicker.options.views.include).val(eventOrganiserSchedule.include.join(",\r\n")),a(eventOrganiserSchedulePicker.options.views.exclude).val(eventOrganiserSchedule.exclude.join(",\r\n"))},beforeShowDay:function(b){var c=a.datepicker.formatDate("yy-mm-dd",b),d=eventOrganiserSchedule.is_date_eventful(c);return d[0]?[!0,"ui-state-active",""]:[!0,"ui-state-disabled",""]},onChangeMonthYear:eventOrganiserSchedule.generate_dates_by_rule}).hide().find(".ui-datepicker-inline").click(function(a){a||(a=window.event),a.cancelBubble=!0,a.stopPropagation&&a.stopPropagation()}),a("html").click(function(){g.hide()})),a(c.occurrence_picker_toggle).click(function(b){b.preventDefault(),b.stopPropagation(),g.toggle(),g.is(":visible")?(a(this).val(d.hideDates),a(c.occurrence_picker).datepicker("refresh")):a(this).val(d.showDates)})},update_occurrencepicker_rules:function(){eo_exclude_dates=[],eo_include_dates=[],this.schedule.generate_dates_by_rule(eo_viewing_month[0],eo_viewing_month[1],{}),a(this.options.views.occurrence_picker).datepicker("refresh")},set_up_timepickers:function(){var b=this.options,c=this.options.views;a(c.start_time+", "+c.end_time).timepicker({showPeriodLabels:!b.is24hour,showPeriod:!this.options.is24hour,showLeadingZero:b.is24hour,periodSeparator:"",amPmText:b.locale.meridian,hourText:b.locale.hour,minuteText:b.locale.minute}).addClass("eo-time-picker")},update_schedule:function(){var b=new Array("SU","MO","TU","WE","TH","FR","SA"),c=this.options.views,d={schedule:a(c.schedule).val(),frequency:parseInt(a(c.frequency).val(),10),schedule_last:a(c.schedule_last_date).datepicker("getDate"),start:a(c.start_date).datepicker("getDate"),end:a(c.end_date).datepicker("getDate"),is_all_day:a(c.is_all_day).attr("checked"),include:a(c.include).length>0?a(c.include).val().split(","):[],exclude:a(c.exclude).length>0?a(c.exclude).val().split(","):[]};if("weekly"==d.schedule){if(d.schedule_meta=[],0===a(c.week_repeat+" :checkbox:checked").length){var e=d.start.getDay();a(c.week_repeat+" :checkbox[value='"+b[e]+"']").attr("checked",!0)}a(c.week_repeat+" :checkbox:checked").each(function(){d.schedule_meta.push(a(this).val())})}else if("monthly"==d.schedule)if("BYMONTHDAY="==a(c.month_repeat+" :radio:checked").val())d.schedule_meta="BYMONTHDAY="+d.start.getDate();else{var f=d.start.getDay()%7,g=parseInt(Math.floor((d.start.getDate()-1)/7),10);d.schedule_meta="BYDAY="+(g+1)+b[f]}this.schedule=eventOrganiserSchedule.init(d),eo_exclude_dates=d.exclude,eo_include_dates=d.include},update_form:function(){var b=this.options.views,c=this.options.locale,d=this.schedule,e=700;switch(a(".event-date :input").attr("disabled",!this.options.editable).toggleClass("ui-state-disabled",!this.options.editable),this.options.editable&&a(b.start_time+", "+b.end_time).attr("disabled",d.is_all_day).toggleClass("ui-state-disabled",d.is_all_day),"once"==d.schedule||"custom"==d.schedule?(a(b.recurrence_section+" :input").attr("disabled",!0),a(b.recurrence_section).hide()):(a(b.recurrence_section+" :input").attr("disabled",!1),a(b.recurrence_section).fadeIn(e)),d.schedule){case"once":case"custom":a(d.frequency).val("1"),a(b.month_repeat+", "+b.week_repeat).show();break;case"weekly":d.frequency>1?a(b.schedule_span).text(c.weeks):a(b.schedule_span).text(c.week),a(b.week_repeat).fadeIn(e),a(b.week_repeat+" :input").attr("disabled",!1),a(b.month_repeat).hide(),a(b.month_repeat+" :input").attr("disabled",!0);break;case"monthly":d.frequency>1?a(b.schedule_span).text(c.months):a(b.schedule_span).text(c.month),a(b.month_repeat).fadeIn(e),a(b.month_repeat+" :input").attr("disabled",!1),a(b.week_repeat).hide(),a(b.week_repeat+" :input").attr("disabled",!0);break;case"daily":d.frequency>1?a(b.schedule_span).text(c.days):a(b.schedule_span).text(c.day),a(b.week_repeat+", "+b.month_repeat).hide(),a(b.week_repeat+" :input, "+b.month_repeat+" :input").attr("disabled",!0);break;case"yearly":d.frequency>1?a(b.schedule_span).text(c.years):a(b.schedule_span).text(c.year),a(b.week_repeat+", "+b.month_repeat).hide(),a(b.week_repeat+" :input, "+b.month_repeat+" :input").attr("disabled",!0)}null===a("#venue_select").val()&&a("tr.venue_row").hide(),a(b.summary).html(d.generate_summary(c))}},eventOrganiserSchedule={self:this,init:function(b){var c={schedule:"once",frequency:1,schedule_last:new Date,start:new Date,end:new Date,is_all_day:!1,dates_by_rule:[]};b=a.extend({},c,b);for(var d in b)this[d]=b[d];return this},generate_dates_by_rule:function(a,c){var d=new Date(a,c-1,1),e=new Date(a,c,1),f=new Date(e-1);eventOrganiserSchedule.schedule_last<d||eventOrganiserSchedule.start>f||(eventOrganiserSchedule.dates_by_rule=b(eventOrganiserSchedule,d,f))},generate_summary:function(b){var c=b.weekDay,d=b.summary+" ",e={monthNamesShort:b.monthAbbrev,dayNamesMin:b.dayAbbrev,monthNames:b.monthNames},f=this.schedule,g=new Array("SU","MO","TU","WE","TH","FR","SA");switch(f){case"once":return"This event will be a one-time event";case"custom":case"daily":d+=this.frequency>1?sprintf(b.dayPlural,this.frequency):b.daySingle;break;case"weekly":d+=this.frequency>1?sprintf(b.weekPlural,this.frequency):b.weekSingle;var h=a.map(this.schedule_meta,function(a){return c[g.indexOf(a)]});d+=" "+h.join(", ");break;case"monthly":if(d+=this.frequency>1?sprintf(b.monthPlural,this.frequency):b.monthSingle,this.schedule_meta.match(/BYMONTHDAY=(\d+)/))d=d+" "+this.start.getDate()+this.start.eoGetOrdinal();else{var i=this.schedule_meta.match(/BYDAY=(\d+)(MO|TU|WE|TH|FR|SA|SU)/),j=parseInt(i[1],10)-1;d=d+" "+b.occurrence[j]+" "+c[g.indexOf(i[2])]}break;case"yearly":d+=this.frequency>1?sprintf(b.yearPlural,this.frequency):b.yearSingle,d=d+" "+a.datepicker.formatDate("MM d",this.start,e)+this.start.eoGetOrdinal()}return null!==this.schedule_last&&(d=d+" "+b.until+" "+a.datepicker.formatDate("MM d'"+this.schedule_last.eoGetOrdinal()+"' yy",this.schedule_last,e)),d},is_date_eventful:function(b){var c=a.inArray(b,eventOrganiserSchedule.dates_by_rule);if(c>-1){var d=a.inArray(b,eventOrganiserSchedule.exclude);return d>-1?[!1,d]:[!0,-1]}var e=a.inArray(b,eventOrganiserSchedule.include);return e>-1?[!0,e]:[!1,-1]},add_or_remove_date:function(b){var c,d=eventOrganiserSchedule.is_date_eventful(b);d[0]?(c=d[1],c>-1?eventOrganiserSchedule.include.splice(c,1):a.inArray(b,eventOrganiserSchedule.exclude)<0&&eventOrganiserSchedule.exclude.push(b)):(c=d[1],c>-1?eventOrganiserSchedule.exclude.splice(c,1):a.inArray(b,eventOrganiserSchedule.include)<0&&eventOrganiserSchedule.include.push(b)),eo_exclude_dates=eventOrganiserSchedule.exclude,eo_include_dates=eventOrganiserSchedule.include}}}(jQuery),function(a){function b(a){return Object.prototype.toString.call(a).slice(8,-1).toLowerCase()}function c(a,b){for(var c=[];b>0;c[--b]=a);return c.join("")}var d=function(){return d.cache.hasOwnProperty(arguments[0])||(d.cache[arguments[0]]=d.parse(arguments[0])),d.format.call(null,d.cache[arguments[0]],arguments)};d.format=function(a,e){var f,g,h,i,j,k,l,m=1,n=a.length,o="",p=[];for(g=0;n>g;g++)if(o=b(a[g]),"string"===o)p.push(a[g]);else if("array"===o){if(i=a[g],i[2])for(f=e[m],h=0;h<i[2].length;h++){if(!f.hasOwnProperty(i[2][h]))throw d('[sprintf] property "%s" does not exist',i[2][h]);f=f[i[2][h]]}else f=i[1]?e[i[1]]:e[m++];if(/[^s]/.test(i[8])&&"number"!=b(f))throw d("[sprintf] expecting number but found %s",b(f));switch(i[8]){case"b":f=f.toString(2);break;case"c":f=String.fromCharCode(f);break;case"d":f=parseInt(f,10);break;case"e":f=i[7]?f.toExponential(i[7]):f.toExponential();break;case"f":f=i[7]?parseFloat(f).toFixed(i[7]):parseFloat(f);break;case"o":f=f.toString(8);break;case"s":f=(f=String(f))&&i[7]?f.substring(0,i[7]):f;break;case"u":f>>>=0;break;case"x":f=f.toString(16);break;case"X":f=f.toString(16).toUpperCase()}f=/[def]/.test(i[8])&&i[3]&&f>=0?"+"+f:f,k=i[4]?"0"==i[4]?"0":i[4].charAt(1):" ",l=i[6]-String(f).length,j=i[6]?c(k,l):"",p.push(i[5]?f+j:j+f)}return p.join("")},d.cache={},d.parse=function(a){for(var b=a,c=[],d=[],e=0;b;){if(null!==(c=/^[^\x25]+/.exec(b)))d.push(c[0]);else if(null!==(c=/^\x25{2}/.exec(b)))d.push("%");else{if(null===(c=/^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(b)))throw"[sprintf] huh?";if(c[2]){e|=1;var f=[],g=c[2],h=[];if(null===(h=/^([a-z_][a-z_\d]*)/i.exec(g)))throw"[sprintf] huh?";for(f.push(h[1]);""!==(g=g.substring(h[0].length));)if(null!==(h=/^\.([a-z_][a-z_\d]*)/i.exec(g)))f.push(h[1]);else{if(null===(h=/^\[(\d+)\]/.exec(g)))throw"[sprintf] huh?";f.push(h[1])}c[2]=f}else e|=2;if(3===e)throw"[sprintf] mixing positional and named placeholders is not (yet) supported";d.push(c)}b=b.substring(c[0].length)}return d};var e=function(a,b,c){return c=b.slice(0),c.splice(0,0,a),d.apply(null,c)};a.sprintf=d,a.vsprintf=e}("undefined"!=typeof exports?exports:window);
1
+ /*! event-organiser 2.4.0 2013-10-29 18:47 */
2
+ var eo_include_dates,eo_exclude_dates,eo_viewing_month;!function(a){function b(b,c,d){var e,f,g=new Array("SU","MO","TU","WE","TH","FR","SA"),h=[];switch(b.schedule){case"once":case"custom":var i=a.datepicker.formatDate("yy-mm-dd",b.start);return h.push(i),h;case"daily":b.start<c?(e=Math.abs((c-b.start)/864e5)-1,e%=b.frequency):e=parseInt(b.start.getDate(),10);var j=b.frequency,k=[],l=new Date(c);l.setDate(c.getDate()+(e-1)),k.push(l);break;case"weekly":var m=c.getDay();k=[],a.each(b.schedule_meta,function(a,d){a=g.indexOf(d),l=new Date(b.start),l.setDate(b.start.getDate()+(a-b.start.getDay()+7)%7),c>l&&(e=Math.abs((c-b.start)/864e5),e-=e%(7*b.frequency),l.setDate(l.getDate()+e)),k.push(l)}),j=7*b.frequency;break;case"monthly":var n=12*(c.getFullYear()-b.start.getFullYear())+(c.getMonth()-b.start.getMonth());if(0!==n%b.frequency)return;if(b.schedule_meta.match(/BYMONTHDAY=(\d+)/)){var o=b.start.getDate(),p=d.getDate();p>=o&&(f=new Date(c.getFullYear(),c.getMonth(),o))}else{var q,r=b.schedule_meta.match(/BYDAY=(\d+)(MO|TU|WE|TH|FR|SA|SU)/),s=parseInt(r[1],10)-1,t=b.start.getDay();if(s>=4){var u=d.getDay();q=d.getDate()+(t-u-7)%7}else{m=c.getDay();var v=(t-m+7)%7;q=v+7*s+1}f=new Date(c),f.setDate(q)}return f<=b.schedule_last&&(i=a.datepicker.formatDate("yy-mm-dd",f),h.push(i)),h;case"yearly":var w=c.getFullYear()-b.start.getFullYear();if(0!==w%b.frequency)return h;var x=new Date(c.getFullYear(),b.start.getMonth(),b.start.getDate());return c.getMonth()==b.start.getMonth()&&x.getMonth()==b.start.getMonth()&&(f=new Date(b.start),f.setYear(c.getFullYear()),f<=b.schedule_last&&(i=a.datepicker.formatDate("yy-mm-dd",f),h.push(i))),h;default:return h}for(var y in k)for(f=new Date(k[y]);d>=f&&f<=b.schedule_last;)i=a.datepicker.formatDate("yy-mm-dd",f),h.push(i),f.setDate(f.getDate()+j);return h}Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length,c=Number(arguments[1])||0;for(c=0>c?Math.ceil(c):Math.floor(c),0>c&&(c+=b);b>c;c++)if(c in this&&this[c]===a)return c;return-1}),Date.prototype.eoGetOrdinal=function(){var a=this.getDate();switch(a){case 1:case 21:case 31:return"st";case 2:case 22:return"nd";case 3:case 23:return"rd";default:return"th"}},window.eventOrganiserSchedulePicker={init:function(b){var c=this;this.options=b,this.schedule=b.schedule,this.set_up_datepickers(),this.set_up_timepickers(),a(".event-date :input").change(function(){c.update_schedule(),c.update_form(),a(this).hasClass("eo-all-day-toggle")||c.update_occurrencepicker_rules()}),this.update_schedule(),this.update_form();var d=new Date;eo_viewing_month=[d.getFullYear(),d.getMonth()+1],this.schedule.generate_dates_by_rule(d.getFullYear(),d.getMonth()+1,{})},set_up_datepickers:function(){var b=this,c=this.options.views,d=this.options.locale;if(a(c.start_date).data("eo-datepicker","start"),a(c.end_date).data("eo-datepicker","end"),a(c.is_all_day).addClass("eo-all-day-toggle"),a(c.schedule_last_date))var e=a(c.schedule_last_date).datepicker({dateFormat:this.options.format,changeMonth:!0,changeYear:!0,monthNamesShort:d.monthAbbrev,dayNamesMin:d.dayAbbrev,firstDay:parseInt(this.options.startday,10)}).data("eo-datepicker","schedule_last");var f=a(c.start_date+", "+c.end_date).datepicker({dateFormat:this.options.format,changeMonth:!0,changeYear:!0,monthNamesShort:d.monthAbbrev,dayNamesMin:d.dayAbbrev,firstDay:parseInt(this.options.startday,10),onSelect:function(c){var d="start"==a(this).data("eo-datepicker")?"minDate":"maxDate",g=a(this).data("datepicker"),h=a.datepicker.parseDate(g.settings.dateFormat||a.datepicker._defaults.dateFormat,c,g.settings);f.not(this).datepicker("option",d,h),"from_date"==this.id&&e.datepicker("option","minDate",h),b.update_schedule(),b.update_occurrencepicker_rules(),b.update_form()}}),g=a(c.occurrence_picker);g.length>0&&(g.datepicker({dateFormat:"yy-mm-dd",changeMonth:!0,changeYear:!0,monthNamesShort:d.monthAbbrev,dayNamesMin:d.dayAbbrev,firstDay:parseInt(this.options.startday,10),onSelect:function(b){eventOrganiserSchedule.add_or_remove_date(b),a(eventOrganiserSchedulePicker.options.views.include).val(eventOrganiserSchedule.include.join(",\r\n")),a(eventOrganiserSchedulePicker.options.views.exclude).val(eventOrganiserSchedule.exclude.join(",\r\n"))},beforeShowDay:function(b){var c=a.datepicker.formatDate("yy-mm-dd",b),d=eventOrganiserSchedule.is_date_eventful(c);return d[0]?[!0,"ui-state-active",""]:[!0,"ui-state-disabled",""]},onChangeMonthYear:eventOrganiserSchedule.generate_dates_by_rule}).hide().find(".ui-datepicker-inline").click(function(a){a||(a=window.event),a.cancelBubble=!0,a.stopPropagation&&a.stopPropagation()}),a("html").click(function(){g.hide(),a(c.occurrence_picker_toggle).val(d.showDates)})),a(c.occurrence_picker_toggle).click(function(b){b.preventDefault(),b.stopPropagation(),g.toggle(),g.is(":visible")?(a(this).val(d.hideDates),a(c.occurrence_picker).datepicker("refresh")):a(this).val(d.showDates)})},update_occurrencepicker_rules:function(){eo_exclude_dates=[],eo_include_dates=[],this.schedule.generate_dates_by_rule(eo_viewing_month[0],eo_viewing_month[1],{}),a(this.options.views.occurrence_picker).datepicker("refresh")},set_up_timepickers:function(){var b=this.options,c=this.options.views;a(c.start_time+", "+c.end_time).timepicker({showPeriodLabels:!b.is24hour,showPeriod:!this.options.is24hour,showLeadingZero:b.is24hour,periodSeparator:"",amPmText:b.locale.meridian,hourText:b.locale.hour,minuteText:b.locale.minute}).addClass("eo-time-picker")},update_schedule:function(){var b=new Array("SU","MO","TU","WE","TH","FR","SA"),c=this.options.views,d={schedule:a(c.schedule).val(),frequency:parseInt(a(c.frequency).val(),10),schedule_last:a(c.schedule_last_date).datepicker("getDate"),start:a(c.start_date).datepicker("getDate"),end:a(c.end_date).datepicker("getDate"),is_all_day:a(c.is_all_day).attr("checked"),include:a(c.include).length>0?a(c.include).val().split(","):[],exclude:a(c.exclude).length>0?a(c.exclude).val().split(","):[]};if("weekly"==d.schedule){if(d.schedule_meta=[],0===a(c.week_repeat+" :checkbox:checked").length){var e=d.start.getDay();a(c.week_repeat+" :checkbox[value='"+b[e]+"']").attr("checked",!0)}a(c.week_repeat+" :checkbox:checked").each(function(){d.schedule_meta.push(a(this).val())})}else if("monthly"==d.schedule)if("BYMONTHDAY="==a(c.month_repeat+" :radio:checked").val())d.schedule_meta="BYMONTHDAY="+d.start.getDate();else{var f=d.start.getDay()%7,g=parseInt(Math.floor((d.start.getDate()-1)/7),10);d.schedule_meta="BYDAY="+(g+1)+b[f]}this.schedule=eventOrganiserSchedule.init(d),eo_exclude_dates=d.exclude,eo_include_dates=d.include},update_form:function(){var b=this.options.views,c=this.options.locale,d=this.schedule,e=700;switch(a(".event-date :input").attr("disabled",!this.options.editable).toggleClass("ui-state-disabled",!this.options.editable),this.options.editable&&a(b.start_time+", "+b.end_time).attr("disabled",d.is_all_day).toggleClass("ui-state-disabled",d.is_all_day),"once"==d.schedule||"custom"==d.schedule?(a(b.recurrence_section+" :input").attr("disabled",!0),a(b.recurrence_section).hide()):(a(b.recurrence_section+" :input").attr("disabled",!1),a(b.recurrence_section).fadeIn(e)),d.schedule){case"once":case"custom":a(d.frequency).val("1"),a(b.month_repeat+", "+b.week_repeat).show();break;case"weekly":d.frequency>1?a(b.schedule_span).text(c.weeks):a(b.schedule_span).text(c.week),a(b.week_repeat).fadeIn(e),a(b.week_repeat+" :input").attr("disabled",!1),a(b.month_repeat).hide(),a(b.month_repeat+" :input").attr("disabled",!0);break;case"monthly":d.frequency>1?a(b.schedule_span).text(c.months):a(b.schedule_span).text(c.month),a(b.month_repeat).fadeIn(e),a(b.month_repeat+" :input").attr("disabled",!1),a(b.week_repeat).hide(),a(b.week_repeat+" :input").attr("disabled",!0);break;case"daily":d.frequency>1?a(b.schedule_span).text(c.days):a(b.schedule_span).text(c.day),a(b.week_repeat+", "+b.month_repeat).hide(),a(b.week_repeat+" :input, "+b.month_repeat+" :input").attr("disabled",!0);break;case"yearly":d.frequency>1?a(b.schedule_span).text(c.years):a(b.schedule_span).text(c.year),a(b.week_repeat+", "+b.month_repeat).hide(),a(b.week_repeat+" :input, "+b.month_repeat+" :input").attr("disabled",!0)}null===a("#venue_select").val()&&a("tr.venue_row").hide(),a(b.summary).html(d.generate_summary(c))}},eventOrganiserSchedule={self:this,init:function(b){var c={schedule:"once",frequency:1,schedule_last:new Date,start:new Date,end:new Date,is_all_day:!1,dates_by_rule:[]};b=a.extend({},c,b);for(var d in b)this[d]=b[d];return this},generate_dates_by_rule:function(a,c){var d=new Date(a,c-1,1),e=new Date(a,c,1),f=new Date(e-1);eventOrganiserSchedule.schedule_last<d||eventOrganiserSchedule.start>f||(eventOrganiserSchedule.dates_by_rule=b(eventOrganiserSchedule,d,f))},generate_summary:function(b){var c=b.weekDay,d=b.summary+" ",e={monthNamesShort:b.monthAbbrev,dayNamesMin:b.dayAbbrev,monthNames:b.monthNames},f=this.schedule,g=new Array("SU","MO","TU","WE","TH","FR","SA");switch(f){case"once":return"This event will be a one-time event";case"custom":case"daily":d+=this.frequency>1?sprintf(b.dayPlural,this.frequency):b.daySingle;break;case"weekly":d+=this.frequency>1?sprintf(b.weekPlural,this.frequency):b.weekSingle;var h=a.map(this.schedule_meta,function(a){return c[g.indexOf(a)]});d+=" "+h.join(", ");break;case"monthly":if(d+=this.frequency>1?sprintf(b.monthPlural,this.frequency):b.monthSingle,this.schedule_meta.match(/BYMONTHDAY=(\d+)/))d=d+" "+this.start.getDate()+this.start.eoGetOrdinal();else{var i=this.schedule_meta.match(/BYDAY=(\d+)(MO|TU|WE|TH|FR|SA|SU)/),j=parseInt(i[1],10)-1;d=d+" "+b.occurrence[j]+" "+c[g.indexOf(i[2])]}break;case"yearly":d+=this.frequency>1?sprintf(b.yearPlural,this.frequency):b.yearSingle,d=d+" "+a.datepicker.formatDate("MM d",this.start,e)+this.start.eoGetOrdinal()}return null!==this.schedule_last&&(d=d+" "+b.until+" "+a.datepicker.formatDate("MM d'"+this.schedule_last.eoGetOrdinal()+"' yy",this.schedule_last,e)),d},is_date_eventful:function(b){var c=a.inArray(b,eventOrganiserSchedule.dates_by_rule);if(c>-1){var d=a.inArray(b,eventOrganiserSchedule.exclude);return d>-1?[!1,d]:[!0,-1]}var e=a.inArray(b,eventOrganiserSchedule.include);return e>-1?[!0,e]:[!1,-1]},add_or_remove_date:function(b){var c,d=eventOrganiserSchedule.is_date_eventful(b);d[0]?(c=d[1],c>-1?eventOrganiserSchedule.include.splice(c,1):a.inArray(b,eventOrganiserSchedule.exclude)<0&&eventOrganiserSchedule.exclude.push(b)):(c=d[1],c>-1?eventOrganiserSchedule.exclude.splice(c,1):a.inArray(b,eventOrganiserSchedule.include)<0&&eventOrganiserSchedule.include.push(b)),eo_exclude_dates=eventOrganiserSchedule.exclude,eo_include_dates=eventOrganiserSchedule.include}}}(jQuery),function(a){function b(a){return Object.prototype.toString.call(a).slice(8,-1).toLowerCase()}function c(a,b){for(var c=[];b>0;c[--b]=a);return c.join("")}var d=function(){return d.cache.hasOwnProperty(arguments[0])||(d.cache[arguments[0]]=d.parse(arguments[0])),d.format.call(null,d.cache[arguments[0]],arguments)};d.format=function(a,e){var f,g,h,i,j,k,l,m=1,n=a.length,o="",p=[];for(g=0;n>g;g++)if(o=b(a[g]),"string"===o)p.push(a[g]);else if("array"===o){if(i=a[g],i[2])for(f=e[m],h=0;h<i[2].length;h++){if(!f.hasOwnProperty(i[2][h]))throw d('[sprintf] property "%s" does not exist',i[2][h]);f=f[i[2][h]]}else f=i[1]?e[i[1]]:e[m++];if(/[^s]/.test(i[8])&&"number"!=b(f))throw d("[sprintf] expecting number but found %s",b(f));switch(i[8]){case"b":f=f.toString(2);break;case"c":f=String.fromCharCode(f);break;case"d":f=parseInt(f,10);break;case"e":f=i[7]?f.toExponential(i[7]):f.toExponential();break;case"f":f=i[7]?parseFloat(f).toFixed(i[7]):parseFloat(f);break;case"o":f=f.toString(8);break;case"s":f=(f=String(f))&&i[7]?f.substring(0,i[7]):f;break;case"u":f>>>=0;break;case"x":f=f.toString(16);break;case"X":f=f.toString(16).toUpperCase()}f=/[def]/.test(i[8])&&i[3]&&f>=0?"+"+f:f,k=i[4]?"0"==i[4]?"0":i[4].charAt(1):" ",l=i[6]-String(f).length,j=i[6]?c(k,l):"",p.push(i[5]?f+j:j+f)}return p.join("")},d.cache={},d.parse=function(a){for(var b=a,c=[],d=[],e=0;b;){if(null!==(c=/^[^\x25]+/.exec(b)))d.push(c[0]);else if(null!==(c=/^\x25{2}/.exec(b)))d.push("%");else{if(null===(c=/^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(b)))throw"[sprintf] huh?";if(c[2]){e|=1;var f=[],g=c[2],h=[];if(null===(h=/^([a-z_][a-z_\d]*)/i.exec(g)))throw"[sprintf] huh?";for(f.push(h[1]);""!==(g=g.substring(h[0].length));)if(null!==(h=/^\.([a-z_][a-z_\d]*)/i.exec(g)))f.push(h[1]);else{if(null===(h=/^\[(\d+)\]/.exec(g)))throw"[sprintf] huh?";f.push(h[1])}c[2]=f}else e|=2;if(3===e)throw"[sprintf] mixing positional and named placeholders is not (yet) supported";d.push(c)}b=b.substring(c[0].length)}return d};var e=function(a,b,c){return c=b.slice(0),c.splice(0,0,a),d.apply(null,c)};a.sprintf=d,a.vsprintf=e}("undefined"!=typeof exports?exports:window);
js/frontend.min.js CHANGED
@@ -1,2 +1,2 @@
1
- /*! event-organiser 2.3.0 2013-09-20 13:13 */
2
- function eveorg_getParameterByName(a,b){a=a.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var c="[\\?&]"+a+"=([^&#]*)",d=new RegExp(c),e=d.exec(b);return null===e?"":decodeURIComponent(e[1].replace(/\+/g," "))}function eo_load_map(){for(var a=eventorganiser.map,b=0;b<a.length;b++)if(null!==document.getElementById("eo_venue_map-"+(b+1))){eventorganiser.map[b].markers={};var c=a[b].locations,d={zoom:a[b].zoom,scrollwheel:a[b].scrollwheel,zoomControl:a[b].zoomcontrol,rotateControl:a[b].rotatecontrol,panControl:a[b].pancontrol,overviewMapControl:a[b].overviewmapcontrol,streetViewControl:a[b].streetviewcontrol,draggable:a[b].draggable,mapTypeControl:a[b].maptypecontrol,mapTypeId:google.maps.MapTypeId[a[b].maptypeid]};d=wp.hooks.applyFilters("eventorganiser.google_map_options",d);for(var e=new google.maps.Map(document.getElementById("eo_venue_map-"+(b+1)),d),f=new google.maps.LatLngBounds,g=[],h=0;h<c.length;h++){var i=c[h].lat,j=c[h].lng;if(void 0!==i&&void 0!==j){g.push(new google.maps.LatLng(i,j)),f.extend(g[h]);var k={venue_id:c[h].venue_id,position:g[h],map:e,content:c[h].tooltipContent,icon:c[h].icon};k=wp.hooks.applyFilters("eventorganiser.venue_marker_options",k);var l=new google.maps.Marker(k);eventorganiser.map[b].markers[c[h].venue_id]=l,a[b].tooltip&&google.maps.event.addListener(l,"click",eventorganiser_venue_tooltip)}}c.length>1?e.fitBounds(f):e.setCenter(g[0])}}function eventorganiser_venue_tooltip(){var a=this.getMap(),b=this.getMap().getProjection().fromLatLngToPoint(this.position),c=a.getProjection().fromLatLngToPoint(a.getBounds().getNorthEast()),d=a.getProjection().fromLatLngToPoint(a.getBounds().getSouthWest()),e=Math.pow(2,a.getZoom());b=new google.maps.Point((b.x-d.x)*e,(b.y-c.y)*e),wp.hooks.doAction("eventorganiser.venue_marker_clicked",this);var f=[b.x,b.y];return this.tooltip?(this.tooltip.qtip("api").set("position.target",f),this.tooltip.qtip("show"),void 0):(jQuery(this.getMap().getDiv()).css({overflow:"visible"}),this.tooltip=jQuery("<div />").qtip({content:{text:this.content},border:{radius:4,width:3},style:{classes:"ui-tooltip-shadow",widget:!0},position:{at:"right center",my:"top center",target:f,container:jQuery(this.getMap().getDiv())},show:{ready:!0,event:!1,solo:!0},hide:{event:"mouseleave unfocus"}}),void 0)}var eventorganiser=eventorganiser||{};!function(a){jQuery(document).ready(function(){function b(b){var c=b.categories,d="<select class='eo-cal-filter' id='eo-event-cat'>";d+="<option value=''>"+b.buttonText.cat+"</option>";for(var e=0;e<c.length;e++)d+="<option class='cat-colour-"+c[e].colour+" cat' value='"+c[e].slug+"'>"+c[e].name+"</option>";d+="</select>";var f=a("<span class='fc-header-dropdown filter-category'></span>");return f.append(d),f}function c(){var b=a("<span class='fc-header-goto'><input type='hidden' class='eo-mini-calendar'/></span>");return b}function d(b){var c=b.venues,d="<select class='eo-cal-filter' id='eo-event-venue'>";d+="<option value=''>"+b.buttonText.venue+"</option>";for(var e=0;e<c.length;e++)d+="<option value='"+c[e].term_id+"'>"+c[e].name+"</option>";d+="</select>";var f=a("<span class='fc-header-dropdown filter-venue'></span>");return f.append(d),f}function e(b,c){a.ajax({url:EOAjaxFront.adminajax,dataType:"JSON",data:{action:"eo_widget_agenda",instance_number:c.number,direction:b,start:c.StartDate,end:c.EndDate},success:function(a){return jQuery.isArray(a)&&a[0]?(c.StartDate=a[0].StartDate,c.EndDate=a[a.length-1].StartDate,f(a,c),void 0):!1}})}function f(b,c){var d=a("#"+c.id+"_container"),e=d.find("ul.dates"),f=e.find("li");a(f).remove();var g=!1;for(k=0;k<b.length;k++){var h,i;new Date(b[k].StartDate),(g===!1||g!=b[k].StartDate&&"day"==c.mode)&&(g=b[k].StartDate,h=a('<li class="date" >'+b[k].display+'<ul class="a-date"></ul></li>'),e.append(h)),i=c.add_to_google?a('<li class="event"></li>').append('<span class="cat"></span><span><strong>'+b[k].time+": </strong></span>"+b[k].post_title).append('<div class="meta" style="display:none;"><span>'+b[k].link+"</span><span>   </span><span>"+b[k].Glink+"</span></div>"):a('<li class="event"></li>').append("<a class='eo-agenda-event-permalink' href='"+b[k].event_url+"'><span class='cat'></span><span><strong>"+b[k].time+": </strong></span>"+b[k].post_title+"</a>"),i.find("span.cat").css({background:b[k].color}),h.append(i)}f=e.find("li");var j=d.find("ul li.event");j.on("click",function(){a(this).find(".meta").toggle("400")})}if(a("#eo-upcoming-dates").length>0&&a("#eo-upcoming-dates").find("li:gt(4)").length>0){var g=5,h={more:EOAjaxFront.locale.ShowMore,less:EOAjaxFront.locale.ShowLess};a("#eo-upcoming-dates").find("li:gt("+(g-1)+")").hide().end().after(a('<a href="#" id="eo-upcoming-dates-less">'+h.less+'</a> <span id="eo-upcoming-dates-pipe">|</span> <a href="#" id="eo-upcoming-dates-more">'+h.more+"</a>")),a("#eo-upcoming-dates-pipe").hide(),a("#eo-upcoming-dates-less").hide().click(function(b){b.preventDefault();var c=Math.floor((a("#eo-upcoming-dates li:visible").length-1)/g)*g-1;a("#eo-upcoming-dates li:gt("+c+")").hide(),a("#eo-upcoming-dates-more,#eo-upcoming-dates-pipe").show(),a("#eo-upcoming-dates li:visible").length<=g&&a("#eo-upcoming-dates-less,#eo-upcoming-dates-pipe").hide()}),a("#eo-upcoming-dates-more").click(function(b){b.preventDefault(),a("#eo-upcoming-dates-less,#eo-upcoming-dates-pipe, #eo-upcoming-dates li:hidden:lt("+g+")").show();var c=a("#eo-upcoming-dates-pipe").offset();a("html, body").animate({scrollTop:Math.max(c.top+40-a(window).height(),a(window).scrollTop())}),0===a("#eo-upcoming-dates li:hidden").length&&a("#eo-upcoming-dates-more,#eo-upcoming-dates-pipe").hide()})}if(a(".eo-fullcalendar").length>0){for(var i,j=eventorganiser.calendars,k=0;k<j.length;k++){var l="#eo_fullcalendar_"+(k+1);"undefined"==typeof j[k].category&&(j[k].category=""),"undefined"==typeof j[k].venue&&(j[k].venue="");var m={id:l,year:j[k].year?j[k].year:void 0,month:j[k].month?j[k].month:void 0,date:j[k].date?j[k].date:void 0,category:j[k].event_category,venue:j[k].event_venue,customButtons:{category:b,venue:d,"goto":c},theme:j[k].theme,categories:eventorganiser.fullcal.categories,venues:eventorganiser.fullcal.venues,timeFormatphp:j[k].timeformatphp,timeFormat:j[k].timeformat,editable:!1,tooltip:j[k].tooltip,firstDay:parseInt(eventorganiser.fullcal.firstDay,10),weekends:j[k].weekends,allDaySlot:j[k].alldayslot,allDayText:j[k].alldaytext,axisFormat:j[k].axisformat,minTime:j[k].mintime,maxTime:j[k].maxtime,columnFormat:{month:j[k].columnformatmonth,week:j[k].columnformatweek,day:j[k].columnformatday},titleFormat:{month:j[k].titleformatmonth,week:j[k].titleformatweek,day:j[k].titleformatday},header:{left:j[k].headerleft,center:j[k].headercenter,right:j[k].headerright},eventRender:function(b,c,d){var e=a(d.calendar.options.id).find(".filter-category .eo-cal-filter").val(),f=a(d.calendar.options.id).find(".filter-venue .eo-cal-filter").val();return"undefined"!=typeof e&&""!==e&&a.inArray(e,b.category)<0?"<div></div>":"undefined"!=typeof f&&""!==f&&f!=b.venue?"<div></div>":wp.hooks.applyFilters("eventorganiser.fullcalendar_render_event",!0,b,c,d)?(d.calendar.options.tooltip&&a(c).qtip({content:{text:b.description,button:"x",title:b.title},position:{my:"top center",at:"bottom center",viewport:a(window),adjust:{method:"shift none"}},hide:{fixed:!0,delay:500,effect:function(){a(this).fadeOut("50")}},border:{radius:4,width:3},style:{classes:"ui-tooltip-shadow",widget:!0,tip:"topMiddle"}}),void 0):"<div></div>"},buttonText:{today:EOAjaxFront.locale.today,month:EOAjaxFront.locale.month,week:EOAjaxFront.locale.week,day:EOAjaxFront.locale.day,cat:EOAjaxFront.locale.cat,venue:EOAjaxFront.locale.venue},monthNames:EOAjaxFront.locale.monthNames,monthNamesShort:EOAjaxFront.locale.monthAbbrev,dayNames:EOAjaxFront.locale.dayNames,dayNamesShort:EOAjaxFront.locale.dayAbbrev,eventColor:"#21759B",defaultView:j[k].defaultview,lazyFetching:"true",events:function(b,c,d,e){var f={start:jQuery.fullCalendar.formatDate(b,"yyyy-MM-dd"),end:jQuery.fullCalendar.formatDate(c,"yyyy-MM-dd"),timeformat:e.timeFormatphp,users_events:e.users_events};"undefined"!=typeof e.category&&""!==e.category&&(f.category=e.category),"undefined"!=typeof e.venue&&""!==e.venue&&(f.venue=e.venue),f=wp.hooks.applyFilters("eventorganiser.fullcalendar_request",f,b,c,d,e),a.ajax({url:eventorganiser.ajaxurl+"?action=eventorganiser-fullcal",dataType:"JSON",data:f,success:d,complete:function(a,b){}})},selectable:!1,weekMode:"variable",aspectRatio:1.5,loading:function(b){var c=a("#"+a(this).attr("id")+"_loading");b?(window.clearTimeout(i),i=window.setTimeout(function(){c.show()},1e3)):(window.clearTimeout(i),c.hide())}};m=wp.hooks.applyFilters("eventorganiser.fullcalendar_options",m,j[k]),a(l).fullCalendar(m)}a(".eo-cal-filter").change(function(){a(".eo-fullcalendar").fullCalendar("rerenderEvents")}),a(".eo-mini-calendar").datepicker({dateFormat:"DD, d MM, yy",changeMonth:!0,changeYear:!0,firstDay:parseInt(eventorganiser.fullcal.firstDay,10),buttonText:EOAjaxFront.locale.gotodate,monthNamesShort:EOAjaxFront.locale.monthAbbrev,dayNamesMin:EOAjaxFront.locale.dayAbbrev,showOn:"button",onSelect:function(b){var c=a(this).parents("div.eo-fullcalendar").attr("id");a("#"+c).fullCalendar("gotoDate",new Date(Date.parse(b)))}})}if(a(".eo_widget_calendar").length>0&&(a(".eo_widget_calendar tfoot").unbind("click"),a(".eo_widget_calendar").off("click").on("click","tfoot a",function(b){b.preventDefault();var c=a(this).closest(".eo_widget_calendar").attr("id"),d={showpastevents:1,"show-long":0,"link-to-single":0};"undefined"!=typeof EOAjax&&"undefined"!=typeof eventorganiser.widget_calendars&&(d=eventorganiser.widget_calendars[c]),"undefined"!=typeof eo_widget_cal&&(d=eo_widget_cal[c]),d.eo_month=eveorg_getParameterByName("eo_month",a(this).attr("href")),a.getJSON(EOAjaxFront.adminajax+"?action=eo_widget_cal",d,function(b){a("#"+c+"_content").html(b)})})),a(".eo-agenda-widget").length>0){for(var n in eo_widget_agenda){n=eo_widget_agenda[n];var o=new Date;n.StartDate=a.fullCalendar.formatDate(o,"yyyy-MM-dd"),n.EndDate=n.StartDate,e(1,n)}a(".eo-agenda-widget .agenda-nav span.button").click(function(b){var c=a(this).parents(".eo-agenda-widget").attr("id");n=eo_widget_agenda[c],b.preventDefault();var d=!1;if(a(this).hasClass("next"))d="+1";else if(a(this).hasClass("prev"))d="-1";else{var f=a(this).parent();d=f.hasClass("prev")?"-1":"+1"}e(d,n)})}})}(jQuery);
1
+ /*! event-organiser 2.4.0 2013-10-29 18:47 */
2
+ function eveorg_getParameterByName(a,b){a=a.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var c="[\\?&]"+a+"=([^&#]*)",d=new RegExp(c),e=d.exec(b);return null===e?"":decodeURIComponent(e[1].replace(/\+/g," "))}function eo_load_map(){for(var a=eventorganiser.map,b=0;b<a.length;b++)if(null!==document.getElementById("eo_venue_map-"+(b+1))){eventorganiser.map[b].markers={};var c=a[b].locations,d={zoom:a[b].zoom,scrollwheel:a[b].scrollwheel,zoomControl:a[b].zoomcontrol,rotateControl:a[b].rotatecontrol,panControl:a[b].pancontrol,overviewMapControl:a[b].overviewmapcontrol,streetViewControl:a[b].streetviewcontrol,draggable:a[b].draggable,mapTypeControl:a[b].maptypecontrol,mapTypeId:google.maps.MapTypeId[a[b].maptypeid]};d=wp.hooks.applyFilters("eventorganiser.google_map_options",d);for(var e=new google.maps.Map(document.getElementById("eo_venue_map-"+(b+1)),d),f=new google.maps.LatLngBounds,g=[],h=0;h<c.length;h++){var i=c[h].lat,j=c[h].lng;if(void 0!==i&&void 0!==j){g.push(new google.maps.LatLng(i,j)),f.extend(g[h]);var k={venue_id:c[h].venue_id,position:g[h],map:e,content:c[h].tooltipContent,icon:c[h].icon};k=wp.hooks.applyFilters("eventorganiser.venue_marker_options",k);var l=new google.maps.Marker(k);eventorganiser.map[b].markers[c[h].venue_id]=l,a[b].tooltip&&google.maps.event.addListener(l,"click",eventorganiser_venue_tooltip)}}c.length>1?e.fitBounds(f):e.setCenter(g[0])}}function eventorganiser_venue_tooltip(){var a=this.getMap(),b=this.getMap().getProjection().fromLatLngToPoint(this.position),c=a.getProjection().fromLatLngToPoint(a.getBounds().getNorthEast()),d=a.getProjection().fromLatLngToPoint(a.getBounds().getSouthWest()),e=Math.pow(2,a.getZoom());b=new google.maps.Point((b.x-d.x)*e,(b.y-c.y)*e),wp.hooks.doAction("eventorganiser.venue_marker_clicked",this);var f=[b.x,b.y];return this.tooltip?(this.tooltip.qtip("api").set("position.target",f),this.tooltip.qtip("show"),void 0):(jQuery(this.getMap().getDiv()).css({overflow:"visible"}),this.tooltip=jQuery("<div />").qtip({content:{text:this.content},border:{radius:4,width:3},style:{classes:"ui-tooltip-shadow",widget:!0},position:{at:"right center",my:"top center",target:f,container:jQuery(this.getMap().getDiv())},show:{ready:!0,event:!1,solo:!0},hide:{event:"mouseleave unfocus"}}),void 0)}var eventorganiser=eventorganiser||{};!function(a){jQuery(document).ready(function(){function b(b){var c=b.categories,d="<select class='eo-cal-filter' id='eo-event-cat'>";d+="<option value=''>"+b.buttonText.cat+"</option>";for(var e=0;e<c.length;e++)d+="<option class='cat-colour-"+c[e].colour+" cat' value='"+c[e].slug+"'>"+c[e].name+"</option>";d+="</select>";var f=a("<span class='fc-header-dropdown filter-category'></span>");return f.append(d),f}function c(){var b=a("<span class='fc-header-goto'><input type='hidden' class='eo-mini-calendar'/></span>");return b}function d(b){var c=b.venues,d="<select class='eo-cal-filter' id='eo-event-venue'>";d+="<option value=''>"+b.buttonText.venue+"</option>";for(var e=0;e<c.length;e++)d+="<option value='"+c[e].term_id+"'>"+c[e].name+"</option>";d+="</select>";var f=a("<span class='fc-header-dropdown filter-venue'></span>");return f.append(d),f}function e(b,c){a.ajax({url:EOAjaxFront.adminajax,dataType:"JSON",data:{action:"eo_widget_agenda",instance_number:c.number,direction:b,start:c.StartDate,end:c.EndDate},success:function(a){return jQuery.isArray(a)&&a[0]?(c.StartDate=a[0].StartDate,c.EndDate=a[a.length-1].StartDate,f(a,c),void 0):!1}})}function f(b,c){var d=a("#"+c.id+"_container"),e=d.find("ul.dates"),f=e.find("li");a(f).remove();var g=!1;for(k=0;k<b.length;k++){var h,i;new Date(b[k].StartDate),(g===!1||g!=b[k].StartDate&&"day"==c.mode)&&(g=b[k].StartDate,h=a('<li class="date" >'+b[k].display+'<ul class="a-date"></ul></li>'),e.append(h)),i=c.add_to_google?a('<li class="event"></li>').append('<span class="cat"></span><span><strong>'+b[k].time+": </strong></span>"+b[k].post_title).append('<div class="meta" style="display:none;"><span>'+b[k].link+"</span><span>   </span><span>"+b[k].Glink+"</span></div>"):a('<li class="event"></li>').append("<a class='eo-agenda-event-permalink' href='"+b[k].event_url+"'><span class='cat'></span><span><strong>"+b[k].time+": </strong></span>"+b[k].post_title+"</a>"),i.find("span.cat").css({background:b[k].color}),h.append(i)}f=e.find("li");var j=d.find("ul li.event");j.on("click",function(){a(this).find(".meta").toggle("400")})}if(a("#eo-upcoming-dates").length>0&&a("#eo-upcoming-dates").find("li:gt(4)").length>0){var g=5,h={more:EOAjaxFront.locale.ShowMore,less:EOAjaxFront.locale.ShowLess};a("#eo-upcoming-dates").find("li:gt("+(g-1)+")").hide().end().after(a('<a href="#" id="eo-upcoming-dates-less">'+h.less+'</a> <span id="eo-upcoming-dates-pipe">|</span> <a href="#" id="eo-upcoming-dates-more">'+h.more+"</a>")),a("#eo-upcoming-dates-pipe").hide(),a("#eo-upcoming-dates-less").hide().click(function(b){b.preventDefault();var c=Math.floor((a("#eo-upcoming-dates li:visible").length-1)/g)*g-1;a("#eo-upcoming-dates li:gt("+c+")").hide(),a("#eo-upcoming-dates-more,#eo-upcoming-dates-pipe").show(),a("#eo-upcoming-dates li:visible").length<=g&&a("#eo-upcoming-dates-less,#eo-upcoming-dates-pipe").hide()}),a("#eo-upcoming-dates-more").click(function(b){b.preventDefault(),a("#eo-upcoming-dates-less,#eo-upcoming-dates-pipe, #eo-upcoming-dates li:hidden:lt("+g+")").show();var c=a("#eo-upcoming-dates-pipe").offset();a("html, body").animate({scrollTop:Math.max(c.top+40-a(window).height(),a(window).scrollTop())}),0===a("#eo-upcoming-dates li:hidden").length&&a("#eo-upcoming-dates-more,#eo-upcoming-dates-pipe").hide()})}if(a(".eo-fullcalendar").length>0){for(var i,j=eventorganiser.calendars,k=0;k<j.length;k++){var l="#eo_fullcalendar_"+(k+1);"undefined"==typeof j[k].category&&(j[k].category=""),"undefined"==typeof j[k].venue&&(j[k].venue="");var m={id:l,year:j[k].year?j[k].year:void 0,month:j[k].month?j[k].month:void 0,date:j[k].date?j[k].date:void 0,category:j[k].event_category,venue:j[k].event_venue,customButtons:{category:b,venue:d,"goto":c},theme:j[k].theme,categories:eventorganiser.fullcal.categories,venues:eventorganiser.fullcal.venues,timeFormatphp:j[k].timeformatphp,timeFormat:j[k].timeformat,editable:!1,tooltip:j[k].tooltip,firstDay:parseInt(eventorganiser.fullcal.firstDay,10),weekends:j[k].weekends,allDaySlot:j[k].alldayslot,allDayText:j[k].alldaytext,axisFormat:j[k].axisformat,minTime:j[k].mintime,maxTime:j[k].maxtime,columnFormat:{month:j[k].columnformatmonth,week:j[k].columnformatweek,day:j[k].columnformatday},titleFormat:{month:j[k].titleformatmonth,week:j[k].titleformatweek,day:j[k].titleformatday},header:{left:j[k].headerleft,center:j[k].headercenter,right:j[k].headerright},eventRender:function(b,c,d){var e=a(d.calendar.options.id).find(".filter-category .eo-cal-filter").val(),f=a(d.calendar.options.id).find(".filter-venue .eo-cal-filter").val();return"undefined"!=typeof e&&""!==e&&a.inArray(e,b.category)<0?"<div></div>":"undefined"!=typeof f&&""!==f&&f!=b.venue?"<div></div>":wp.hooks.applyFilters("eventorganiser.fullcalendar_render_event",!0,b,c,d)?(d.calendar.options.tooltip&&a(c).qtip({content:{text:b.description,button:"x",title:b.title},position:{my:"top center",at:"bottom center",viewport:a(window),adjust:{method:"shift none"}},hide:{fixed:!0,delay:500,effect:function(){a(this).fadeOut("50")}},border:{radius:4,width:3},style:{classes:"ui-tooltip-shadow",widget:!0,tip:"topMiddle"}}),void 0):"<div></div>"},buttonText:{today:EOAjaxFront.locale.today,month:EOAjaxFront.locale.month,week:EOAjaxFront.locale.week,day:EOAjaxFront.locale.day,cat:EOAjaxFront.locale.cat,venue:EOAjaxFront.locale.venue},monthNames:EOAjaxFront.locale.monthNames,monthNamesShort:EOAjaxFront.locale.monthAbbrev,dayNames:EOAjaxFront.locale.dayNames,dayNamesShort:EOAjaxFront.locale.dayAbbrev,eventColor:"#21759B",defaultView:j[k].defaultview,lazyFetching:"true",events:function(b,c,d,e){var f={start:jQuery.fullCalendar.formatDate(b,"yyyy-MM-dd"),end:jQuery.fullCalendar.formatDate(c,"yyyy-MM-dd"),timeformat:e.timeFormatphp,users_events:e.users_events};"undefined"!=typeof e.category&&""!==e.category&&(f.category=e.category),"undefined"!=typeof e.venue&&""!==e.venue&&(f.venue=e.venue),f=wp.hooks.applyFilters("eventorganiser.fullcalendar_request",f,b,c,d,e),a.ajax({url:eventorganiser.ajaxurl+"?action=eventorganiser-fullcal",dataType:"JSON",data:f,success:d,complete:function(a,b){}})},selectable:!1,weekMode:"variable",aspectRatio:1.5,loading:function(b){var c=a("#"+a(this).attr("id")+"_loading");b?(window.clearTimeout(i),i=window.setTimeout(function(){c.show()},1e3)):(window.clearTimeout(i),c.hide())}};m=wp.hooks.applyFilters("eventorganiser.fullcalendar_options",m,j[k]),a(l).fullCalendar(m)}a(".eo-cal-filter").change(function(){a(".eo-fullcalendar").fullCalendar("rerenderEvents")}),a(".eo-mini-calendar").datepicker({dateFormat:"DD, d MM, yy",changeMonth:!0,changeYear:!0,firstDay:parseInt(eventorganiser.fullcal.firstDay,10),buttonText:EOAjaxFront.locale.gotodate,monthNamesShort:EOAjaxFront.locale.monthAbbrev,dayNamesMin:EOAjaxFront.locale.dayAbbrev,showOn:"button",onSelect:function(b){var c=a(this).parents("div.eo-fullcalendar").attr("id");a("#"+c).fullCalendar("gotoDate",new Date(Date.parse(b)))}})}if(a(".eo_widget_calendar").length>0&&(a(".eo_widget_calendar tfoot").unbind("click"),a(".eo_widget_calendar").off("click").on("click","tfoot a",function(b){b.preventDefault();var c=a(this).closest(".eo_widget_calendar").attr("id"),d={showpastevents:1,"show-long":0,"link-to-single":0};"undefined"!=typeof EOAjax&&"undefined"!=typeof eventorganiser.widget_calendars&&(d=eventorganiser.widget_calendars[c]),"undefined"!=typeof eo_widget_cal&&(d=eo_widget_cal[c]),d.eo_month=eveorg_getParameterByName("eo_month",a(this).attr("href")),a.getJSON(EOAjaxFront.adminajax+"?action=eo_widget_cal",d,function(b){a("#"+c+"_content").html(b)})})),a(".eo-agenda-widget").length>0){for(var n in eo_widget_agenda){n=eo_widget_agenda[n];var o=new Date;n.StartDate=a.fullCalendar.formatDate(o,"yyyy-MM-dd"),n.EndDate=n.StartDate,e(1,n)}a(".eo-agenda-widget .agenda-nav span.button").click(function(b){var c=a(this).parents(".eo-agenda-widget").attr("id");n=eo_widget_agenda[c],b.preventDefault();var d=!1;if(a(this).hasClass("next"))d="+1";else if(a(this).hasClass("prev"))d="-1";else{var f=a(this).parent();d=f.hasClass("prev")?"-1":"+1"}e(d,n)})}})}(jQuery);
js/fullcalendar.min.js CHANGED
@@ -1,3 +1,3 @@
1
- /*! event-organiser 2.3.0 2013-09-13 14:59 */
2
  !function(a,b){function c(b){a.extend(!0,sb,b)}function d(c,d,j){function k(a){$?(y(),x(),G(),t(a)):l()}function l(){_=d.theme?"ui":"fc",c.addClass("fc"),d.isRTL?c.addClass("fc-rtl"):c.addClass("fc-ltr"),d.theme&&c.addClass("ui-widget"),$=a("<div class='fc-content' style='position:relative'/>").prependTo(c),Y=new e(X,d),Z=Y.render(),Z&&c.prepend(Z),s(d.defaultView),a(window).resize(A),r()||n()}function n(){setTimeout(function(){!ab.start&&r()&&t()},0)}function o(){a(window).unbind("resize",A),Y.destroy(),$.remove(),c.removeClass("fc fc-rtl ui-widget")}function p(){return 0!==hb.offsetWidth}function r(){return 0!==a("body")[0].offsetWidth}function s(b){if(!ab||b!=ab.name){kb++,I();var c,d=ab;d?((d.beforeHide||P)(),O($,$.height()),d.element.hide()):O($,1),$.css("overflow","hidden"),ab=ib[b],ab?ab.element.show():ab=ib[b]=new vb[b](c=db=a("<div class='fc-view fc-view-"+b+"' style='position:absolute'/>").appendTo($),X),d&&Y.deactivateButton(d.name),Y.activateButton(b),t(),$.css("overflow",""),d&&O($,1),c||(ab.afterShow||P)(),kb--}}function t(a){if(p()){kb++,I(),cb===b&&y();var d=!1;!ab.start||a||lb<ab.start||lb>=ab.end?(ab.render(lb,a||0),z(!0),d=!0):ab.sizeDirty?(ab.clearEvents(),z(),d=!0):ab.eventsDirty&&(ab.clearEvents(),d=!0),ab.sizeDirty=!1,ab.eventsDirty=!1,B(d),bb=c.outerWidth(),Y.updateTitle(ab.title);var e=new Date;e>=ab.start&&e<ab.end?Y.disableButton("today"):Y.enableButton("today"),kb--,ab.trigger("viewDisplay",hb)}}function w(){x(),p()&&(y(),z(),I(),ab.clearEvents(),ab.renderEvents(mb),ab.sizeDirty=!1)}function x(){a.each(ib,function(a,b){b.sizeDirty=!0})}function y(){cb=d.contentHeight?d.contentHeight:d.height?d.height-(Z?Z.height():0)-K($):Math.round($.width()/Math.max(d.aspectRatio,.5))}function z(a){kb++,ab.setHeight(cb,a),db&&(db.css("position","relative"),db=null),ab.setWidth($.width(),a),kb--}function A(){if(!kb)if(ab.start){var a=++jb;setTimeout(function(){a==jb&&!kb&&p()&&bb!=(bb=c.outerWidth())&&(kb++,w(),ab.trigger("windowResize",hb),kb--)},200)}else n()}function B(a){!d.lazyFetching||fb(ab.visStart,ab.visEnd)?C():a&&F()}function C(){gb(ab.visStart,ab.visEnd,d)}function D(a){mb=a,F()}function E(a){F(a)}function F(a){G(),p()&&(ab.clearEvents(),ab.renderEvents(mb,a),ab.eventsDirty=!1)}function G(){a.each(ib,function(a,b){b.eventsDirty=!0})}function H(a,c,d){ab.select(a,c,d===b?!0:d)}function I(){ab&&ab.unselect()}function J(){t(-1)}function L(){t(1)}function M(){g(lb,-1),t()}function N(){g(lb,1),t()}function Q(){lb=new Date,t()}function R(a,b,c){a instanceof Date?lb=m(a):q(lb,a,b,c),t()}function S(a,c,d){a!==b&&g(lb,a),c!==b&&h(lb,c),d!==b&&i(lb,d),t()}function T(){return m(lb)}function U(){return ab}function V(a,c){return c===b?d[a]:("height"==a||"contentHeight"==a||"aspectRatio"==a?(d[a]=c,w()):(d[a]=c,F()),void 0)}function W(a,b){return d[a]?d[a].apply(b||hb,Array.prototype.slice.call(arguments,2)):void 0}var X=this;X.options=d,X.render=k,X.destroy=o,X.refetchEvents=C,X.reportEvents=D,X.reportEventChange=E,X.rerenderEvents=F,X.changeView=s,X.select=H,X.unselect=I,X.prev=J,X.next=L,X.prevYear=M,X.nextYear=N,X.today=Q,X.gotoDate=R,X.incrementDate=S,X.formatDate=function(a,b){return u(a,b,d)},X.formatDates=function(a,b,c){return v(a,b,c,d)},X.getDate=T,X.getView=U,X.option=V,X.trigger=W,f.call(X,d,j);var Y,Z,$,_,ab,bb,cb,db,eb,fb=X.isFetchNeeded,gb=X.fetchEvents,hb=c[0],ib={},jb=0,kb=0,lb=new Date,mb=[];q(lb,d.year,d.month,d.date),d.droppable&&a(document).bind("dragstart",function(b,c){var e=b.target,f=a(e);if(!f.parents(".fc").length){var g=d.dropAccept;(a.isFunction(g)?g.call(e,f):f.is(g))&&(eb=e,ab.dragStart(eb,b,c))}}).bind("dragstop",function(a,b){eb&&(ab.dragStop(eb,a,b),eb=null)})}function e(b,c){function d(){m=c.theme?"ui":"fc";var b=c.header;return b?n=a("<table class='fc-header' style='width:100%'/>").append(a("<tr/>").append(f("left")).append(f("center")).append(f("right"))):void 0}function e(){n.remove()}function f(d){var e=a("<td class='fc-header-"+d+"'/>"),f=c.header[d];return f&&a.each(f.split(" "),function(d){d>0&&e.append("<span class='fc-header-space'/>");var f;a.each(this.split(","),function(d,g){if("title"==g)e.append("<span class='fc-header-title'><h2>&nbsp;</h2></span>"),f&&f.addClass(m+"-corner-right"),f=null;else if(a.isFunction(c.customButtons[g])){var h=c.customButtons[g](c);e.append(h)}else{var i;if(b[g]?i=b[g]:vb[g]&&(i=function(){l.removeClass(m+"-state-hover"),b.changeView(g)}),i){var j=c.theme?T(c.buttonIcons,g):null,k=T(c.buttonText,g);if(c.buttonui){var l=a("<span class='fc-button fc-button-"+g+" "+m+"-state-default'>"+k+"</span>");l.button()}else var l=a("<span class='fc-button fc-button-"+g+" "+m+"-state-default'>"+"<span class='fc-button-inner'>"+"<span class='fc-button-content'>"+(j?"<span class='fc-icon-wrap'><span class='ui-icon ui-icon-"+j+"'/>"+"</span>":k)+"</span>"+"<span class='fc-button-effect'><span></span></span>"+"</span>"+"</span>");l&&(l.click(function(){l.hasClass(m+"-state-disabled")||i()}).mousedown(function(){l.not("."+m+"-state-active").not("."+m+"-state-disabled").addClass(m+"-state-hover")},function(){l.removeClass(m+"-state-hover").removeClass(m+"-state-down")}).appendTo(e),W(l),f||l.addClass(m+"-corner-left"),f=l)}}}),f&&f.addClass(m+"-corner-right")}),e}function g(a){n.find("h2").html(a)}function h(a){n.find("span.fc-button-"+a).addClass(m+"-state-active")}function i(a){n.find("span.fc-button-"+a).removeClass(m+"-state-active")}function j(a){n.find("span.fc-button-"+a).addClass(m+"-state-disabled")}function k(a){n.find("span.fc-button-"+a).removeClass(m+"-state-disabled")}var l=this;l.render=d,l.destroy=e,l.updateTitle=g,l.activateButton=h,l.deactivateButton=i,l.disableButton=j,l.enableButton=k;var m,n=a([])}function f(c,d){function e(a,b){return!y||y>a||b>z}function f(a,b,c){y=a,z=b,I=[];var d=++F,e=E.length;G=e;for(var f=0;e>f;f++)g(E[f],d,c)}function g(b,c,d){h(b,function(e){if(c==F){if(e){d.eventDataTransform&&(e=a.map(e,d.eventDataTransform)),b.eventDataTransform&&(e=a.map(e,b.eventDataTransform));for(var f=0;f<e.length;f++)e[f].source=b,t(e[f]);I=I.concat(e)}G--,G||C(I)}},d)}function h(b,d){var e,f,g=ub.sourceFetchers;for(e=0;e<g.length;e++){if(f=g[e](b,y,z,d),f===!0)return;if("object"==typeof f)return h(f,d,c),void 0}var i=b.events;if(i)a.isFunction(i)?(q(),i(m(y),m(z),function(a){d(a),s()},c)):a.isArray(i)?d(i):d();else{var j=b.url;if(j){var k=b.success,l=b.error,n=b.complete,o=a.extend({},b.data||{}),p=_(b.startParam,c.startParam),r=_(b.endParam,c.endParam);p&&(o[p]=Math.round(+y/1e3)),r&&(o[r]=Math.round(+z/1e3)),q(),a.ajax(a.extend({},wb,b,{data:o,success:function(b){b=b||[];var c=$(k,this,arguments);a.isArray(c)&&(b=c),d(b)},error:function(){$(l,this,arguments),d()},complete:function(){$(n,this,arguments),s()}}))}else d()}}function i(a){a=j(a),a&&(G++,g(a,F))}function j(b){return a.isFunction(b)||a.isArray(b)?b={events:b}:"string"==typeof b&&(b={url:b}),"object"==typeof b?(u(b),E.push(b),b):void 0}function k(b){E=a.grep(E,function(a){return!v(a,b)}),I=a.grep(I,function(a){return!v(a.source,b)}),C(I)}function l(a){var b,c,d=I.length,e=B().defaultEventEnd,f=a.start-a._start,g=a.end?a.end-(a._end||e(a)):0;for(b=0;d>b;b++)c=I[b],c._id==a._id&&c!=a&&(c.start=new Date(+c.start+f),c.end=a.end?c.end?new Date(+c.end+g):new Date(+e(c)+g):null,c.title=a.title,c.url=a.url,c.allDay=a.allDay,c.className=a.className,c.editable=a.editable,c.color=a.color,c.backgroundColor=a.backgroundColor,c.borderColor=a.borderColor,c.textColor=a.textColor,t(c));t(a),C(I)}function n(a,b){t(a),a.source||(b&&(D.events.push(a),a.source=D),I.push(a)),C(I)}function o(b){if(b){if(!a.isFunction(b)){var c=b+"";b=function(a){return a._id==c}}I=a.grep(I,b,!0);for(var d=0;d<E.length;d++)a.isArray(E[d].events)&&(E[d].events=a.grep(E[d].events,b,!0))}else{I=[];for(var d=0;d<E.length;d++)a.isArray(E[d].events)&&(E[d].events=[])}C(I)}function p(b){return a.isFunction(b)?a.grep(I,b):b?(b+="",a.grep(I,function(a){return a._id==b})):I}function q(){H++||A("loading",null,!0)}function s(){--H||A("loading",null,!1)}function t(a){var d=a.source||{},e=_(d.ignoreTimezone,c.ignoreTimezone);a._id=a._id||(a.id===b?"_fc"+xb++:a.id+""),a.date&&(a.start||(a.start=a.date),delete a.date),a._start=m(a.start=r(a.start,e)),a.end=r(a.end,e),a.end&&a.end<=a.start&&(a.end=null),a._end=a.end?m(a.end):null,a.allDay===b&&(a.allDay=_(d.allDayDefault,c.allDayDefault)),a.className?"string"==typeof a.className&&(a.className=a.className.split(/\s+/)):a.className=[]}function u(a){a.className?"string"==typeof a.className&&(a.className=a.className.split(/\s+/)):a.className=[];for(var b=ub.sourceNormalizers,c=0;c<b.length;c++)b[c](a)}function v(a,b){return a&&b&&w(a)==w(b)}function w(a){return("object"==typeof a?a.events||a.url:"")||a}var x=this;x.isFetchNeeded=e,x.fetchEvents=f,x.addEventSource=i,x.removeEventSource=k,x.updateEvent=l,x.renderEvent=n,x.removeEvents=o,x.clientEvents=p,x.normalizeEvent=t;for(var y,z,A=x.trigger,B=x.getView,C=x.reportEvents,D={events:[]},E=[D],F=0,G=0,H=0,I=[],J=0;J<d.length;J++)j(d[J])}function g(a,b,c){return a.setFullYear(a.getFullYear()+b),c||l(a),a}function h(a,b,c){if(+a){var d=a.getMonth()+b,e=m(a);for(e.setDate(1),e.setMonth(d),a.setMonth(d),c||l(a);a.getMonth()!=e.getMonth();)a.setDate(a.getDate()+(e>a?1:-1))}return a}function i(a,b,c){if(+a){var d=a.getDate()+b,e=m(a);e.setHours(9),e.setDate(d),a.setDate(d),c||l(a),j(a,e)}return a}function j(a,b){if(+a)for(;a.getDate()!=b.getDate();)a.setTime(+a+(b>a?1:-1)*Ab)}function k(a,b){return a.setMinutes(a.getMinutes()+b),a}function l(a){return a.setHours(0),a.setMinutes(0),a.setSeconds(0),a.setMilliseconds(0),a}function m(a,b){return b?l(new Date(+a)):new Date(+a)}function n(){var a,b=0;do a=new Date(1970,b++,1);while(a.getHours());return a}function o(a,b,c){for(b=b||1;!a.getDay()||c&&1==a.getDay()||!c&&6==a.getDay();)i(a,b);return a}function p(a,b){return Math.round((m(a,!0)-m(b,!0))/zb)}function q(a,c,d,e){c!==b&&c!=a.getFullYear()&&(a.setDate(1),a.setMonth(0),a.setFullYear(c)),d!==b&&d!=a.getMonth()&&(a.setDate(1),a.setMonth(d)),e!==b&&a.setDate(e)}function r(a,c){return"object"==typeof a?a:"number"==typeof a?new Date(1e3*a):"string"==typeof a?a.match(/^\d+(\.\d+)?$/)?new Date(1e3*parseFloat(a)):(c===b&&(c=!0),s(a,c)||(a?new Date(a):null)):null}function s(a,b){var c=a.match(/^([0-9]{4})(-([0-9]{2})(-([0-9]{2})([T ]([0-9]{2}):([0-9]{2})(:([0-9]{2})(\.([0-9]+))?)?(Z|(([-+])([0-9]{2})(:?([0-9]{2}))?))?)?)?)?$/);if(!c)return null;var d=new Date(c[1],0,1);if(b||!c[13]){var e=new Date(c[1],0,1,9,0);c[3]&&(d.setMonth(c[3]-1),e.setMonth(c[3]-1)),c[5]&&(d.setDate(c[5]),e.setDate(c[5])),j(d,e),c[7]&&d.setHours(c[7]),c[8]&&d.setMinutes(c[8]),c[10]&&d.setSeconds(c[10]),c[12]&&d.setMilliseconds(1e3*Number("0."+c[12])),j(d,e)}else if(d.setUTCFullYear(c[1],c[3]?c[3]-1:0,c[5]||1),d.setUTCHours(c[7]||0,c[8]||0,c[10]||0,c[12]?1e3*Number("0."+c[12]):0),c[14]){var f=60*Number(c[16])+(c[18]?Number(c[18]):0);f*="-"==c[15]?1:-1,d=new Date(+d+1e3*60*f)}return d}function t(a){if("number"==typeof a)return 60*a;if("object"==typeof a)return 60*a.getHours()+a.getMinutes();var b=a.match(/(\d+)(?::(\d+))?\s*(\w+)?/);if(b){var c=parseInt(b[1],10);return b[3]&&(c%=12,"p"==b[3].toLowerCase().charAt(0)&&(c+=12)),60*c+(b[2]?parseInt(b[2],10):0)}}function u(a,b,c){return v(a,null,b,c)}function v(a,b,c,d){d=d||sb;var e,f,g,h,i=a,j=b,k=c.length,l="";for(e=0;k>e;e++)if(f=c.charAt(e),"'"==f){for(g=e+1;k>g;g++)if("'"==c.charAt(g)){i&&(l+=g==e+1?"'":c.substring(e+1,g),e=g);break}}else if("("==f){for(g=e+1;k>g;g++)if(")"==c.charAt(g)){var m=u(i,c.substring(e+1,g),d);parseInt(m.replace(/\D/,""),10)&&(l+=m),e=g;break}}else if("["==f){for(g=e+1;k>g;g++)if("]"==c.charAt(g)){var n=c.substring(e+1,g),m=u(i,n,d);m!=u(j,n,d)&&(l+=m),e=g;break}}else if("{"==f)i=b,j=a;else if("}"==f)i=a,j=b;else{for(g=k;g>e;g--)if(h=Cb[c.substring(e,g)]){i&&(l+=h(i,d)),e=g-1;break}g==e&&i&&(l+=f)}return l}function w(a){var b,c=new Date(a.getTime());return c.setDate(c.getDate()+4-(c.getDay()||7)),b=c.getTime(),c.setMonth(0),c.setDate(1),Math.floor(Math.round((b-c)/864e5)/7)+1}function x(a){return a.end?y(a.end,a.allDay):i(m(a.start),1)}function y(a,b){return a=m(a),b||a.getHours()||a.getMinutes()?i(a,1):l(a)}function z(a,b){return 100*(b.msLength-a.msLength)+(a.event.start-b.event.start)}function A(a,b){return a.end>b.start&&a.start<b.end}function B(a,b,c,d){var e,f,g,h,i,j,k,l,n=[],o=a.length;for(e=0;o>e;e++)f=a[e],g=f.start,h=b[e],h>c&&d>g&&(c>g?(i=m(c),k=!1):(i=g,k=!0),h>d?(j=m(d),l=!1):(j=h,l=!0),n.push({event:f,start:i,end:j,isStart:k,isEnd:l,msLength:j-i}));return n.sort(z)}function C(a){var b,c,d,e,f,g=[],h=a.length;for(b=0;h>b;b++){for(c=a[b],d=0;;){if(e=!1,g[d])for(f=0;f<g[d].length;f++)if(A(g[d][f],c)){e=!0;break}if(!e)break;d++}g[d]?g[d].push(c):g[d]=[c]}return g}function D(c,d,e){c.unbind("mouseover").mouseover(function(c){for(var f,g,h,i=c.target;i!=this;)f=i,i=i.parentNode;(g=f._fci)!==b&&(f._fci=b,h=d[g],e(h.event,h.element,h),a(c.target).trigger(c)),c.stopPropagation()})}function E(b,c,d){for(var e,f=0;f<b.length;f++)e=a(b[f]),e.width(Math.max(0,c-G(e,d)))}function F(b,c,d){for(var e,f=0;f<b.length;f++)e=a(b[f]),e.height(Math.max(0,c-K(e,d)))}function G(a,b){return H(a)+J(a)+(b?I(a):0)}function H(b){return(parseFloat(a.css(b[0],"paddingLeft",!0))||0)+(parseFloat(a.css(b[0],"paddingRight",!0))||0)}function I(b){return(parseFloat(a.css(b[0],"marginLeft",!0))||0)+(parseFloat(a.css(b[0],"marginRight",!0))||0)}function J(b){return(parseFloat(a.css(b[0],"borderLeftWidth",!0))||0)+(parseFloat(a.css(b[0],"borderRightWidth",!0))||0)}function K(a,b){return L(a)+N(a)+(b?M(a):0)}function L(b){return(parseFloat(a.css(b[0],"paddingTop",!0))||0)+(parseFloat(a.css(b[0],"paddingBottom",!0))||0)}function M(b){return(parseFloat(a.css(b[0],"marginTop",!0))||0)+(parseFloat(a.css(b[0],"marginBottom",!0))||0)}function N(b){return(parseFloat(a.css(b[0],"borderTopWidth",!0))||0)+(parseFloat(a.css(b[0],"borderBottomWidth",!0))||0)}function O(a,b){b="number"==typeof b?b+"px":b,a.each(function(a,c){c.style.cssText+=";min-height:"+b+";_height:"+b})}function P(){}function Q(a,b){return a-b}function R(a){return Math.max.apply(Math,a)}function S(a){return(10>a?"0":"")+a}function T(a,c){if(a[c]!==b)return a[c];for(var d,e=c.split(/(?=[A-Z])/),f=e.length-1;f>=0;f--)if(d=a[e[f].toLowerCase()],d!==b)return d;return a[""]}function U(a){return a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&#039;").replace(/"/g,"&quot;").replace(/\n/g,"<br />")}function V(a){return a.id+"/"+a.className+"/"+a.style.cssText.replace(/(^|;)\s*(top|left|width|height)\s*:[^;]*/gi,"")}function W(a){a.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return!1})}function X(a){a.children().removeClass("fc-first fc-last").filter(":first-child").addClass("fc-first").end().filter(":last-child").addClass("fc-last")}function Y(a,b){a.each(function(a,c){c.className=c.className.replace(/^fc-\w*/,"fc-"+yb[b.getDay()])})}function Z(a,b){var c=a.source||{},d=a.color,e=c.color,f=b("eventColor"),g=a.backgroundColor||d||c.backgroundColor||e||b("eventBackgroundColor")||f,h=a.borderColor||d||c.borderColor||e||b("eventBorderColor")||f,i=a.textColor||c.textColor||b("eventTextColor"),j=[];return g&&j.push("background-color:"+g),h&&j.push("border-color:"+h),i&&j.push("color:"+i),j.join(";")}function $(b,c,d){if(a.isFunction(b)&&(b=[b]),b){var e,f;for(e=0;e<b.length;e++)f=b[e].apply(c,d)||f;return f}}function _(){for(var a=0;a<arguments.length;a++)if(arguments[a]!==b)return arguments[a]}function ab(a,b){function c(a,b){b&&(h(a,b),a.setDate(1));var c=m(a,!0);c.setDate(1);var j=h(m(c),1),k=m(c),l=m(j),n=e("firstDay"),p=e("weekends")?0:1;p&&(o(k),o(l,-1,!0)),i(k,-((k.getDay()-Math.max(n,p)+7)%7)),i(l,(7-l.getDay()+Math.max(n,p))%7);var q=Math.round((l-k)/(7*zb));"fixed"==e("weekMode")&&(i(l,7*(6-q)),q=6),d.title=g(c,e("titleFormat")),d.start=c,d.end=j,d.visStart=k,d.visEnd=l,f(q,p?5:7,!0)}var d=this;d.render=c,db.call(d,a,b,"month");var e=d.opt,f=d.renderBasic,g=b.formatDate}function bb(a,b){function c(a,b){b&&i(a,7*b);var c=i(m(a),-((a.getDay()-e("firstDay")+7)%7)),h=i(m(c),7),j=m(c),k=m(h),l=e("weekends");l||(o(j),o(k,-1,!0)),d.title=g(j,i(m(k),-1),e("titleFormat")),d.start=c,d.end=h,d.visStart=j,d.visEnd=k,f(1,l?7:5,!1)}var d=this;d.render=c,db.call(d,a,b,"basicWeek");var e=d.opt,f=d.renderBasic,g=b.formatDates}function cb(a,b){function c(a,b){b&&(i(a,b),e("weekends")||o(a,0>b?-1:1)),d.title=g(a,e("titleFormat")),d.start=d.visStart=m(a,!0),d.end=d.visEnd=i(m(d.start),1),f(1,1,!1)}var d=this;d.render=c,db.call(d,a,b,"basicDay");var e=d.opt,f=d.renderBasic,g=b.formatDate}function db(b,c,d){function e(a,b,c){cb=a,db=b,f();var d=!S;d?g():Bb(),h(c)}function f(){ib=zb("isRTL"),ib?(jb=-1,lb=db-1):(jb=1,lb=0),qb=zb("firstDay"),sb=zb("weekends")?0:1,tb=zb("theme")?"ui":"fc",ub=zb("columnFormat"),vb=zb("weekNumbers"),wb=zb("weekNumberTitle"),xb="iso"!=zb("weekNumberCalculation")?"w":"W"}function g(){Z=a("<div style='position:absolute;z-index:8;top:0;left:0'/>").appendTo(b)}function h(c){var d,e,f,g,h="",i=tb+"-widget-header",j=tb+"-widget-content",k=N.start.getMonth(),m=l(new Date);for(h+="<table class='fc-border-separate' style='width:100%' cellspacing='0'><thead><tr>",vb&&(h+="<th class='fc-week-number "+i+"'/>"),d=0;db>d;d++)f=F(0,d),h+="<th class='fc-day-header fc-"+yb[f.getDay()]+" "+i+"'/>";for(h+="</tr></thead><tbody>",d=0;cb>d;d++){for(h+="<tr class='fc-week'>",vb&&(h+="<td class='fc-week-number "+j+"'>"+"<div/>"+"</td>"),e=0;db>e;e++)f=F(d,e),g=["fc-day","fc-"+yb[f.getDay()],j],f.getMonth()!=k&&g.push("fc-other-month"),+f==+m&&(g.push("fc-today"),g.push(tb+"-state-highlight")),h+="<td class='"+g.join(" ")+"'"+" data-date='"+Fb(f,"yyyy-MM-dd")+"'"+">"+"<div>",c&&(h+="<div class='fc-day-number'>"+f.getDate()+"</div>"),h+="<div class='fc-day-content'><div style='position:relative'>&nbsp;</div></div></div></td>";h+="</tr>"}h+="</tbody></table>",L(),P&&P.remove(),P=a(h).appendTo(b),Q=P.find("thead"),R=Q.find(".fc-day-header"),S=P.find("tbody"),T=S.find("tr"),U=S.find(".fc-day"),V=T.find("td:first-child"),Y=T.eq(0).find(".fc-day-content > div"),X(Q.add(Q.find("tr"))),X(T),T.eq(0).addClass("fc-first"),T.filter(":last").addClass("fc-last"),vb&&Q.find(".fc-week-number").text(wb),R.each(function(b,c){var d=G(b);a(c).text(Fb(d,ub))}),vb&&S.find(".fc-week-number > div").each(function(b,c){var d=F(b,0);a(c).text(Fb(d,xb))}),U.each(function(b,c){var d=G(b);Ab("dayRender",N,d,a(c))}),n(U)}function j(b){_=b;var c,d,e,f=_-Q.height();"variable"==zb("weekMode")?c=d=Math.floor(f/(1==cb?2:6)):(c=Math.floor(f/cb),d=f-c*(cb-1)),V.each(function(b,f){cb>b&&(e=a(f),O(e.find("> div"),(b==cb-1?d:c)-K(e)))}),M()}function k(a){$=a,hb.clear(),bb=0,vb&&(bb=Q.find("th.fc-week-number").outerWidth()),ab=Math.floor(($-bb)/db),E(R.slice(0,-1),ab)}function n(a){a.click(o).mousedown(Eb)}function o(b){if(!zb("selectable")){var c=s(a(this).data("date"));Ab("dayClick",this,c,!0,b)}}function q(a,b,c){c&&fb.build();for(var d=m(N.visStart),e=i(m(d),db),f=0;cb>f;f++){var g=new Date(Math.max(d,a)),h=new Date(Math.min(e,b));if(h>g){var j,k;ib?(j=p(h,d)*jb+lb+1,k=p(g,d)*jb+lb+1):(j=p(g,d),k=p(h,d)),n(r(f,j,f,k-1))}i(d,7),i(e,7)}}function r(a,c,d,e){var f=fb.rect(a,c,d,e,b);return Cb(f,b)}function t(a){return m(a)}function u(a,b){q(a,i(m(b),1),!0)}function v(){Db()}function w(a,b,c){var d=C(a),e=U[d.row*db+d.col];Ab("dayClick",e,a,b,c)}function x(a,b){gb.start(function(a){Db(),a&&r(a.row,a.col,a.row,a.col)},b)}function y(a,b,c){var d=gb.stop();if(Db(),d){var e=D(d);Ab("drop",a,e,!0,b,c)}}function z(a){return m(a.start)}function A(a){return hb.left(a)}function B(a){return hb.right(a)}function C(a){return{row:Math.floor(p(a,N.visStart)/7),col:H(a.getDay())}}function D(a){return F(a.row,a.col)}function F(a,b){return i(m(N.visStart),7*a+b*jb+lb)}function G(a){return F(Math.floor(a/db),a%db)}function H(a){return(a-Math.max(qb,sb)+db)%db*jb+lb}function I(a){return T.eq(a)}function J(){var a=0;return vb&&(a+=bb),{left:a,right:$}}function L(){O(b,b.height())}function M(){O(b,1)}var N=this;N.renderBasic=e,N.setHeight=j,N.setWidth=k,N.renderDayOverlay=q,N.defaultSelectionEnd=t,N.renderSelection=u,N.clearSelection=v,N.reportDayClick=w,N.dragStart=x,N.dragStop=y,N.defaultEventEnd=z,N.getHoverListener=function(){return gb},N.colContentLeft=A,N.colContentRight=B,N.dayOfWeekCol=H,N.dateCell=C,N.cellDate=D,N.cellIsAllDay=function(){return!0},N.allDayRow=I,N.allDayBounds=J,N.getRowCnt=function(){return cb},N.getColCnt=function(){return db},N.getColWidth=function(){return ab},N.getDaySegmentContainer=function(){return Z},kb.call(N,b,c,d),nb.call(N),mb.call(N),eb.call(N);var P,Q,R,S,T,U,V,Y,Z,$,_,ab,bb,cb,db,fb,gb,hb,ib,jb,lb,qb,sb,tb,ub,vb,wb,xb,zb=N.opt,Ab=N.trigger,Bb=N.clearEvents,Cb=N.renderOverlay,Db=N.clearOverlays,Eb=N.daySelectionMousedown,Fb=c.formatDate;W(b.addClass("fc-grid")),fb=new ob(function(b,c){var d,e,f;R.each(function(b,g){d=a(g),e=d.offset().left,b&&(f[1]=e),f=[e],c[b]=f}),f[1]=e+d.outerWidth(),T.each(function(c,g){cb>c&&(d=a(g),e=d.offset().top,c&&(f[1]=e),f=[e],b[c]=f)}),f[1]=e+d.outerHeight()}),gb=new pb(fb),hb=new rb(function(a){return Y.eq(a)})}function eb(){function b(a,b){n(a),A(d(a),b),j("eventAfterAllRender")}function c(){o(),t().empty()}function d(b){var c,d,e,f,h,j,k=y(),l=z(),n=m(g.visStart),o=i(m(n),l),p=a.map(b,x),q=[];for(c=0;k>c;c++){for(d=C(B(b,p,n,o)),e=0;e<d.length;e++)for(f=d[e],h=0;h<f.length;h++)j=f[h],j.row=c,j.level=e,q.push(j);i(n,7),i(o,7)}return q}function e(a,b,c){k(a)&&f(a,b),c.isEnd&&l(a)&&D(a,b,c),p(a,b)}function f(a,b){var c,d=u();b.draggable({zIndex:9,delay:50,opacity:h("dragOpacity"),revertDuration:h("dragRevertDuration"),start:function(e,f){j("eventDragStart",b,a,e,f),r(a,b),d.start(function(d,e,f,g){b.draggable("option","revert",!d||!f&&!g),w(),d?(c=7*f+g*(h("isRTL")?-1:1),v(i(m(a.start),c),i(x(a),c))):c=0},e,"drag")},stop:function(e,f){d.stop(),w(),j("eventDragStop",b,a,e,f),c?s(this,a,c,0,a.allDay,e,f):(b.css("filter",""),q(a,b))}})}var g=this;g.renderEvents=b,g.compileDaySegs=d,g.clearEvents=c,g.bindDaySeg=e,lb.call(g);var h=g.opt,j=g.trigger,k=g.isEventDraggable,l=g.isEventResizable,n=g.reportEvents,o=g.reportEventClear,p=g.eventElementHandlers,q=g.showEvents,r=g.hideEvents,s=g.eventDrop,t=g.getDaySegmentContainer,u=g.getHoverListener,v=g.renderDayOverlay,w=g.clearOverlays,y=g.getRowCnt,z=g.getColCnt,A=g.renderDaySegs,D=g.resizableDayEvent}function fb(a,b){function c(a,b){b&&i(a,7*b);var c=i(m(a),-((a.getDay()-e("firstDay")+7)%7)),h=i(m(c),7),j=m(c),k=m(h),l=e("weekends");l||(o(j),o(k,-1,!0)),d.title=g(j,i(m(k),-1),e("titleFormat")),d.start=c,d.end=h,d.visStart=j,d.visEnd=k,f(l?7:5)}var d=this;d.render=c,hb.call(d,a,b,"agendaWeek");var e=d.opt,f=d.renderAgenda,g=b.formatDates}function gb(a,b){function c(a,b){b&&(i(a,b),e("weekends")||o(a,0>b?-1:1));var c=m(a,!0),h=i(m(c),1);d.title=g(a,e("titleFormat")),d.start=d.visStart=c,d.end=d.visEnd=h,f(1)}var d=this;d.render=c,hb.call(d,a,b,"agendaDay");var e=d.opt,f=d.renderAgenda,g=b.formatDate}function hb(c,d,e){function f(a){Kb=a,g(),ab?cc():h(),j()}function g(){Qb=ac("theme")?"ui":"fc",Sb=ac("weekends")?0:1,Rb=ac("firstDay"),(Tb=ac("isRTL"))?(Ub=-1,Vb=Kb-1):(Ub=1,Vb=0),Wb=t(ac("minTime")),Xb=t(ac("maxTime")),Yb=ac("columnFormat"),Zb=ac("weekNumbers"),$b=ac("weekNumberTitle"),_b="iso"!=ac("weekNumberCalculation")?"w":"W",Hb=ac("snapMinutes")||ac("slotMinutes")}function h(){var b,d,e,f,g,h=Qb+"-widget-header",i=Qb+"-widget-content",j=0==ac("slotMinutes")%15;for(b="<table style='width:100%' class='fc-agenda-days fc-border-separate' cellspacing='0'><thead><tr>",b+=Zb?"<th class='fc-agenda-axis fc-week-number "+h+"'/>":"<th class='fc-agenda-axis "+h+"'>&nbsp;</th>",d=0;Kb>d;d++)b+="<th class='fc- fc-col"+d+" "+h+"'/>";for(b+="<th class='fc-agenda-gutter "+h+"'>&nbsp;</th>"+"</tr>"+"</thead>"+"<tbody>"+"<tr>"+"<th class='fc-agenda-axis "+h+"'>&nbsp;</th>",d=0;Kb>d;d++)b+="<td class='fc- fc-col"+d+" "+i+"'>"+"<div>"+"<div class='fc-day-content'>"+"<div style='position:relative'>&nbsp;</div>"+"</div>"+"</div>"+"</td>";for(b+="<td class='fc-agenda-gutter "+i+"'>&nbsp;</td>"+"</tr>"+"</tbody>"+"</table>",ab=a(b).appendTo(c),bb=ab.find("thead"),cb=bb.find("th").slice(1,-1),db=ab.find("tbody"),eb=db.find("td").slice(0,-1),fb=eb.find("div.fc-day-content div"),gb=eb.eq(0),hb=gb.find("> div"),X(bb.add(bb.find("tr"))),X(db.add(db.find("tr"))),yb=bb.find("th:first"),zb=ab.find(".fc-agenda-gutter"),jb=a("<div style='position:absolute;z-index:2;left:0;width:100%'/>").appendTo(c),ac("allDaySlot")?(lb=a("<div style='position:absolute;z-index:8;top:0;left:0'/>").appendTo(jb),b="<table style='width:100%' class='fc-agenda-allday' cellspacing='0'><tr><th class='"+h+" fc-agenda-axis'>"+ac("allDayText")+"</th>"+"<td>"+"<div class='fc-day-content'><div style='position:relative'/></div>"+"</td>"+"<th class='"+h+" fc-agenda-gutter'>&nbsp;</th>"+"</tr>"+"</table>",qb=a(b).appendTo(jb),sb=qb.find("tr"),v(sb.find("td")),yb=yb.add(qb.find("th:first")),zb=zb.add(qb.find("th.fc-agenda-gutter")),jb.append("<div class='fc-agenda-divider "+h+"'>"+"<div class='fc-agenda-divider-inner'/>"+"</div>")):lb=a([]),tb=a("<div style='position:absolute;width:100%;overflow-x:hidden;overflow-y:auto'/>").appendTo(jb),ub=a("<div style='position:relative;width:100%;overflow:hidden'/>").appendTo(tb),vb=a("<div style='position:absolute;z-index:8;top:0;left:0'/>").appendTo(ub),b="<table class='fc-agenda-slots' style='width:100%' cellspacing='0'><tbody>",e=n(),f=k(m(e),Xb),k(e,Wb),Lb=0,d=0;f>e;d++)g=e.getMinutes(),b+="<tr class='fc-slot"+d+" "+(g?"fc-minor":"")+"'>"+"<th class='fc-agenda-axis "+h+"'>"+(j&&g?"&nbsp;":jc(e,ac("axisFormat")))+"</th>"+"<td class='"+i+"'>"+"<div style='position:relative'>&nbsp;</div>"+"</td>"+"</tr>",k(e,ac("slotMinutes")),Lb++;b+="</tbody></table>",wb=a(b).appendTo(ub),xb=wb.find("div:first"),w(wb.find("td")),yb=yb.add(wb.find("th:first"))}function j(){var a,b,c,d,e=l(new Date);if(Zb){var f=jc(H(0),_b);Tb?f+=$b:f=$b+f,bb.find(".fc-week-number").text(f)}for(a=0;Kb>a;a++)d=H(a),b=cb.eq(a),b.html(jc(d,Yb)),c=eb.eq(a),+d==+e?c.addClass(Qb+"-state-highlight fc-today"):c.removeClass(Qb+"-state-highlight fc-today"),Y(b.add(c),d)}function o(a,c){a===b&&(a=Cb),Cb=a,kc={};var d=db.position().top,e=tb.position().top,f=Math.min(a-d,wb.height()+e+1);hb.height(f-K(gb)),jb.css("top",d),tb.height(f-e-1),Gb=xb.height()+1,Ib=ac("slotMinutes")/Hb,Jb=Gb/Ib,c&&r()}function q(b){Bb=b,Ob.clear(),Db=0,E(yb.width("").each(function(b,c){Db=Math.max(Db,a(c).outerWidth())}),Db);var c=tb[0].clientWidth;Fb=tb.width()-c,Fb?(E(zb,Fb),zb.show().prev().removeClass("fc-last")):zb.hide().prev().addClass("fc-last"),Eb=Math.floor((c-Db)/Kb),E(cb.slice(0,-1),Eb)}function r(){function a(){tb.scrollTop(d)}var b=n(),c=m(b);c.setHours(ac("firstHour"));var d=L(b,c)+1;a(),setTimeout(a,0)}function s(){Pb=tb.scrollTop()}function u(){tb.scrollTop(Pb)}function v(a){a.click(x).mousedown(hc)}function w(a){a.click(x).mousedown(U)}function x(a){if(!ac("selectable")){var b=Math.min(Kb-1,Math.floor((a.pageX-ab.offset().left-Db)/Eb)),c=H(b),d=this.parentNode.className.match(/fc-slot(\d+)/);if(d){var e=parseInt(d[1])*ac("slotMinutes"),f=Math.floor(e/60);c.setHours(f),c.setMinutes(e%60+Wb),bc("dayClick",eb[b],c,!1,a)}else bc("dayClick",eb[b],c,!0,a)}}function y(a,b,c){c&&Mb.build();var d,e,f=m(_.visStart);Tb?(d=p(b,f)*Ub+Vb+1,e=p(a,f)*Ub+Vb+1):(d=p(a,f),e=p(b,f)),d=Math.max(0,d),e=Math.min(Kb,e),e>d&&v(z(0,d,0,e-1))}function z(a,b,c,d){var e=Mb.rect(a,b,c,d,jb);return dc(e,jb)}function A(a,b){for(var c=m(_.visStart),d=i(m(c),1),e=0;Kb>e;e++){var f=new Date(Math.max(c,a)),g=new Date(Math.min(d,b));if(g>f){var h=e*Ub+Vb,j=Mb.rect(0,h,0,h,ub),k=L(c,f),l=L(c,g);j.top=k,j.height=l-k,w(dc(j,ub))}i(c,1),i(d,1)}}function B(a){return Ob.left(a)}function C(a){return Ob.right(a)}function D(a){return{row:Math.floor(p(a,_.visStart)/7),col:J(a.getDay())}}function G(a){var b=H(a.col),c=a.row;return ac("allDaySlot")&&c--,c>=0&&k(b,Wb+c*Hb),b}function H(a){return i(m(_.visStart),a*Ub+Vb)}function I(a){return ac("allDaySlot")&&!a.row}function J(a){return(a-Math.max(Rb,Sb)+Kb)%Kb*Ub+Vb}function L(a,c){if(a=m(a,!0),c<k(m(a),Wb))return 0;if(c>=k(m(a),Xb))return wb.height();var d=ac("slotMinutes"),e=60*c.getHours()+c.getMinutes()-Wb,f=Math.floor(e/d),g=kc[f];return g===b&&(g=kc[f]=wb.find("tr:eq("+f+") td div")[0].offsetTop),Math.max(0,Math.round(g-1+Gb*(e%d/d)))}function M(){return{left:Db,right:Bb-Fb}}function N(){return sb}function O(a){var b=m(a.start);return a.allDay?b:k(b,ac("defaultEventMinutes"))}function P(a,b){return b?m(a):k(m(a),ac("slotMinutes"))}function R(a,b,c){c?ac("allDaySlot")&&y(a,i(m(b),1),!0):S(a,b)}function S(b,c){var d=ac("selectHelper");if(Mb.build(),d){var e=p(b,_.visStart)*Ub+Vb;if(e>=0&&Kb>e){var f=Mb.rect(0,e,0,e,ub),g=L(b,b),h=L(b,c);if(h>g){if(f.top=g,f.height=h-g,f.left+=2,f.width-=5,a.isFunction(d)){var i=d(b,c);i&&(f.position="absolute",f.zIndex=8,Ab=a(i).css(f).appendTo(ub))}else f.isStart=!0,f.isEnd=!0,Ab=a(ic({title:"",start:b,end:c,className:["fc-select-helper"],editable:!1},f)),Ab.css("opacity",ac("dragOpacity"));Ab&&(w(Ab),ub.append(Ab),E(Ab,f.width,!0),F(Ab,f.height,!0))}}}else A(b,c)}function T(){ec(),Ab&&(Ab.remove(),Ab=null)}function U(b){if(1==b.which&&ac("selectable")){gc(b);var c;Nb.start(function(a,b){if(T(),a&&a.col==b.col&&!I(a)){var d=G(b),e=G(a);c=[d,k(m(d),Hb),e,k(m(e),Hb)].sort(Q),S(c[0],c[3])}else c=null},b),a(document).one("mouseup",function(a){Nb.stop(),c&&(+c[0]==+c[1]&&V(c[0],!1,a),fc(c[0],c[3],!1,a))})}}function V(a,b,c){bc("dayClick",eb[J(a.getDay())],a,b,c)}function Z(a,b){Nb.start(function(a){if(ec(),a)if(I(a))z(a.row,a.col,a.row,a.col);else{var b=G(a),c=k(m(b),ac("defaultEventMinutes"));A(b,c)}},b)}function $(a,b,c){var d=Nb.stop();ec(),d&&bc("drop",a,G(d),I(d),b,c)}var _=this;_.renderAgenda=f,_.setWidth=q,_.setHeight=o,_.beforeHide=s,_.afterShow=u,_.defaultEventEnd=O,_.timePosition=L,_.dayOfWeekCol=J,_.dateCell=D,_.cellDate=G,_.cellIsAllDay=I,_.allDayRow=N,_.allDayBounds=M,_.getHoverListener=function(){return Nb},_.colContentLeft=B,_.colContentRight=C,_.getDaySegmentContainer=function(){return lb},_.getSlotSegmentContainer=function(){return vb},_.getMinMinute=function(){return Wb},_.getMaxMinute=function(){return Xb},_.getBodyContent=function(){return ub},_.getRowCnt=function(){return 1},_.getColCnt=function(){return Kb},_.getColWidth=function(){return Eb},_.getSnapHeight=function(){return Jb},_.getSnapMinutes=function(){return Hb},_.defaultSelectionEnd=P,_.renderDayOverlay=y,_.renderSelection=R,_.clearSelection=T,_.reportDayClick=V,_.dragStart=Z,_.dragStop=$,kb.call(_,c,d,e),nb.call(_),mb.call(_),ib.call(_);var ab,bb,cb,db,eb,fb,gb,hb,jb,lb,qb,sb,tb,ub,vb,wb,xb,yb,zb,Ab,Bb,Cb,Db,Eb,Fb,Gb,Hb,Ib,Jb,Kb,Lb,Mb,Nb,Ob,Pb,Qb,Rb,Sb,Tb,Ub,Vb,Wb,Xb,Yb,Zb,$b,_b,ac=_.opt,bc=_.trigger,cc=_.clearEvents,dc=_.renderOverlay,ec=_.clearOverlays,fc=_.reportSelection,gc=_.unselect,hc=_.daySelectionMousedown,ic=_.slotSegHtml,jc=d.formatDate,kc={};W(c.addClass("fc-agenda")),Mb=new ob(function(b,c){function d(a){return Math.max(i,Math.min(j,a))}var e,f,g;cb.each(function(b,d){e=a(d),f=e.offset().left,b&&(g[1]=f),g=[f],c[b]=g}),g[1]=f+e.outerWidth(),ac("allDaySlot")&&(e=sb,f=e.offset().top,b[0]=[f,f+e.outerHeight()]);for(var h=ub.offset().top,i=tb.offset().top,j=i+tb.outerHeight(),k=0;Lb*Ib>k;k++)b.push([d(h+Jb*k),d(h+Jb*(k+1))])}),Nb=new pb(Mb),Ob=new rb(function(a){return fb.eq(a)})}function ib(){function c(a,b){y(a);var c,d=a.length,g=[],i=[];for(c=0;d>c;c++)a[c].allDay?g.push(a[c]):i.push(a[c]);s("allDaySlot")&&(Q(e(g),b),E()),h(f(i),b),t("eventAfterAllRender")}function d(){z(),H().empty(),I().empty()}function e(b){var c,d,e,f,g=C(B(b,a.map(b,x),r.visStart,r.visEnd)),h=g.length,i=[];for(c=0;h>c;c++)for(d=g[c],e=0;e<d.length;e++)f=d[e],f.row=0,f.level=c,i.push(f);return i}function f(b){var c,d,e,f,h,j,l=S(),n=M(),o=L(),p=k(m(r.visStart),n),q=a.map(b,g),s=[];for(c=0;l>c;c++){for(d=C(B(b,q,p,k(m(p),o-n))),jb(d),e=0;e<d.length;e++)for(f=d[e],h=0;h<f.length;h++)j=f[h],j.col=c,j.level=e,s.push(j);
3
- i(p,1,!0)}return s}function g(a){return a.end?m(a.end):k(m(a.start),s("defaultEventMinutes"))}function h(c,d){var e,f,g,h,i,k,l,m,o,p,q,u,v,w,x,y,z,A,B,C,E,F,H=c.length,J="",L={},M={},Q=I(),R=S();for((C=s("isRTL"))?(E=-1,F=R-1):(E=1,F=0),e=0;H>e;e++)f=c[e],g=f.event,h=N(f.start,f.start),i=N(f.start,f.end),k=f.col,l=f.level,m=f.forward||0,o=O(k*E+F),p=P(k*E+F)-o,p=Math.min(p-6,.95*p),q=l?p/(l+m+1):m?2*(p/(m+1)-6):p,u=o+p/(l+m+1)*l*E+(C?p-q:0),f.top=h,f.left=u,f.outerWidth=q,f.outerHeight=i-h,J+=j(g,f);for(Q[0].innerHTML=J,v=Q.children(),e=0;H>e;e++)f=c[e],g=f.event,w=a(v[e]),x=t("eventRender",g,g,w,r),x===!1?w.remove():(x&&x!==!0&&(w.remove(),w=a(x).css({position:"absolute",top:f.top,left:f.left}).appendTo(Q)),f.element=w,g._id===d?n(g,w,f):w[0]._fci=e,$(g,w));for(D(Q,c,n),e=0;H>e;e++)f=c[e],(w=f.element)&&(z=L[y=f.key=V(w[0])],f.vsides=z===b?L[y]=K(w,!0):z,z=M[y],f.hsides=z===b?M[y]=G(w,!0):z,A=w.find(".fc-event-title"),A.length&&(f.contentTop=A[0].offsetTop));for(e=0;H>e;e++)f=c[e],(w=f.element)&&(w[0].style.width=Math.max(0,f.outerWidth-f.hsides)+"px",B=Math.max(0,f.outerHeight-f.vsides),w[0].style.height=B+"px",g=f.event,f.contentTop!==b&&B-f.contentTop<10&&(w.find("div.fc-event-time").text(gb(g.start,s("timeFormat"))+" - "+g.title),w.find("div.fc-event-title").remove()),t("eventAfterRender",g,g,w))}function j(a,b){var c="<",d=a.url,e=Z(a,s),f=["fc-event","fc-event-vert"];return u(a)&&f.push("fc-event-draggable"),b.isStart&&f.push("fc-event-start"),b.isEnd&&f.push("fc-event-end"),f=f.concat(a.className),a.source&&(f=f.concat(a.source.className||[])),c+=d?"a href='"+U(a.url)+"'":"div",c+=" class='"+f.join(" ")+"'"+" style='position:absolute;z-index:8;top:"+b.top+"px;left:"+b.left+"px;"+e+"'"+">"+"<div class='fc-event-inner'>"+"<div class='fc-event-time'>"+U(hb(a.start,a.end,s("timeFormat")))+"</div>"+"<div class='fc-event-title'>"+U(a.title)+"</div>"+"</div>"+"<div class='fc-event-bg'></div>",b.isEnd&&v(a)&&(c+="<div class='ui-resizable-handle ui-resizable-s'>=</div>"),c+="</"+(d?"a":"div")+">"}function l(a,b,c){u(a)&&o(a,b,c.isStart),c.isEnd&&v(a)&&R(a,b,c),A(a,b)}function n(a,b,c){var d=b.find("div.fc-event-time");u(a)&&p(a,b,d),c.isEnd&&v(a)&&q(a,b,d),A(a,b)}function o(a,b,c){function d(){h||(b.width(e).height("").draggable("option","grid",null),h=!0)}var e,f,g,h=!0,j=s("isRTL")?-1:1,k=J(),l=T(),n=W(),o=X(),p=M();b.draggable({zIndex:9,opacity:s("dragOpacity","month"),revertDuration:s("dragRevertDuration"),start:function(p,q){t("eventDragStart",b,a,p,q),ab(a,b),e=b.width(),k.start(function(e,k,p,q){eb(),e?(f=!1,g=q*j,e.row?c?h&&(b.width(l-10),F(b,n*Math.round((a.end?(a.end-a.start)/Bb:s("defaultEventMinutes"))/o)),b.draggable("option","grid",[l,1]),h=!1):f=!0:(db(i(m(a.start),g),i(x(a),g)),d()),f=f||h&&!g):(d(),f=!0),b.draggable("option","revert",f)},p,"drag")},stop:function(c,e){if(k.stop(),eb(),t("eventDragStop",b,a,c,e),f)d(),b.css("filter",""),_(a,b);else{var i=0;h||(i=Math.round((b.offset().top-Y().offset().top)/n)*o+p-(60*a.start.getHours()+a.start.getMinutes())),bb(this,a,g,i,h,c,e)}}})}function p(a,b,c){function d(b){var d,e=k(m(a.start),b);a.end&&(d=k(m(a.end),b)),c.text(hb(e,d,s("timeFormat")))}function e(){l&&(c.css("display",""),b.draggable("option","grid",[q,r]),l=!1)}var f,g,h,j,l=!1,n=s("isRTL")?-1:1,o=J(),p=S(),q=T(),r=W(),u=X();b.draggable({zIndex:9,scroll:!1,grid:[q,r],axis:1==p?"y":!1,opacity:s("dragOpacity"),revertDuration:s("dragRevertDuration"),start:function(d,k){t("eventDragStart",b,a,d,k),ab(a,b),f=b.position(),h=j=0,o.start(function(d,f,h,j){b.draggable("option","revert",!d),eb(),d&&(g=j*n,s("allDaySlot")&&!d.row?(l||(l=!0,c.hide(),b.draggable("option","grid",null)),db(i(m(a.start),g),i(x(a),g))):e())},d,"drag")},drag:function(a,b){h=Math.round((b.position.top-f.top)/r)*u,h!=j&&(l||d(h),j=h)},stop:function(c,i){var j=o.stop();eb(),t("eventDragStop",b,a,c,i),j&&(g||h||l)?bb(this,a,g,l?0:h,l,c,i):(e(),b.css("filter",""),b.css(f),d(0),_(a,b))}})}function q(a,b,c){var d,e,f=W(),g=X();b.resizable({handles:{s:".ui-resizable-handle"},grid:f,start:function(c,f){d=e=0,ab(a,b),b.css("z-index",9),t("eventResizeStart",this,a,c,f)},resize:function(h,i){d=Math.round((Math.max(f,b.height())-i.originalSize.height)/f),d!=e&&(c.text(hb(a.start,d||a.end?k(w(a),g*d):null,s("timeFormat"))),e=d)},stop:function(c,e){t("eventResizeStop",this,a,c,e),d?cb(this,a,0,g*d,c,e):(b.css("z-index",8),_(a,b))}})}var r=this;r.renderEvents=c,r.compileDaySegs=e,r.clearEvents=d,r.slotSegHtml=j,r.bindDaySeg=l,lb.call(r);var s=r.opt,t=r.trigger,u=r.isEventDraggable,v=r.isEventResizable,w=r.eventEnd,y=r.reportEvents,z=r.reportEventClear,A=r.eventElementHandlers,E=r.setHeight,H=r.getDaySegmentContainer,I=r.getSlotSegmentContainer,J=r.getHoverListener,L=r.getMaxMinute,M=r.getMinMinute,N=r.timePosition,O=r.colContentLeft,P=r.colContentRight,Q=r.renderDaySegs,R=r.resizableDayEvent,S=r.getColCnt,T=r.getColWidth,W=r.getSnapHeight,X=r.getSnapMinutes,Y=r.getBodyContent,$=r.reportEventElement,_=r.showEvents,ab=r.hideEvents,bb=r.eventDrop,cb=r.eventResize,db=r.renderDayOverlay,eb=r.clearOverlays,fb=r.calendar,gb=fb.formatDate,hb=fb.formatDates}function jb(a){var b,c,d,e,f,g;for(b=a.length-1;b>0;b--)for(e=a[b],c=0;c<e.length;c++)for(f=e[c],d=0;d<a[b-1].length;d++)g=a[b-1][d],A(f,g)&&(g.forward=Math.max(g.forward||0,(f.forward||0)+1))}function kb(a,c,d){function e(a,b){var c=F[a];return"object"==typeof c?T(c,b||d):c}function f(a,b){return c.trigger.apply(c,[a,b||y].concat(Array.prototype.slice.call(arguments,2),[y]))}function g(a){return j(a)&&!e("disableDragging")}function h(a){return j(a)&&!e("disableResizing")}function j(a){return _(a.editable,(a.source||{}).editable,e("editable"))}function l(a){C={};var b,c,d=a.length;for(b=0;d>b;b++)c=a[b],C[c._id]?C[c._id].push(c):C[c._id]=[c]}function n(a){return a.end?m(a.end):z(a)}function o(a,b){D.push(b),E[a._id]?E[a._id].push(b):E[a._id]=[b]}function p(){D=[],E={}}function q(a,b){b.click(function(c){return b.hasClass("ui-draggable-dragging")||b.hasClass("ui-resizable-resizing")?void 0:f("eventClick",this,a,c)}).hover(function(b){f("eventMouseover",this,a,b)},function(b){f("eventMouseout",this,a,b)})}function r(a,b){t(a,b,"show")}function s(a,b){t(a,b,"hide")}function t(a,b,c){var d,e=E[a._id],f=e.length;for(d=0;f>d;d++)b&&e[d][0]==b[0]||e[d][c]()}function u(a,b,c,d,e,g,h){var i=b.allDay,j=b._id;w(C[j],c,d,e),f("eventDrop",a,b,c,d,e,function(){w(C[j],-c,-d,i),B(j)},g,h),B(j)}function v(a,b,c,d,e,g){var h=b._id;x(C[h],c,d),f("eventResize",a,b,c,d,function(){x(C[h],-c,-d),B(h)},e,g),B(h)}function w(a,c,d,e){d=d||0;for(var f,g=a.length,h=0;g>h;h++)f=a[h],e!==b&&(f.allDay=e),k(i(f.start,c,!0),d),f.end&&(f.end=k(i(f.end,c,!0),d)),A(f,F)}function x(a,b,c){c=c||0;for(var d,e=a.length,f=0;e>f;f++)d=a[f],d.end=k(i(n(d),b,!0),c),A(d,F)}var y=this;y.element=a,y.calendar=c,y.name=d,y.opt=e,y.trigger=f,y.isEventDraggable=g,y.isEventResizable=h,y.reportEvents=l,y.eventEnd=n,y.reportEventElement=o,y.reportEventClear=p,y.eventElementHandlers=q,y.showEvents=r,y.hideEvents=s,y.eventDrop=u,y.eventResize=v;var z=y.defaultEventEnd,A=c.normalizeEvent,B=c.reportEventChange,C={},D=[],E={},F=c.options}function lb(){function c(a,b){var c,d,i,m,q,r,s,t,u=N(),v=B(),w=C(),x=0,y=a.length;for(u[0].innerHTML=e(a),f(a,u.children()),g(a),h(a,u,b),j(a),k(a),l(a),c=n(),d=0;v>d;d++){for(i=0,m=[],q=0;w>q;q++)m[q]=0;for(;y>x&&(r=a[x]).row==d;){for(s=R(m.slice(r.startCol,r.endCol)),r.top=s,s+=r.outerHeight,t=r.startCol;t<r.endCol;t++)m[t]=s;x++}c[d].height(R(m))}p(a,o(c))}function d(b,c,d){var g,h,i,m=a("<div/>"),q=N(),r=b.length;for(m[0].innerHTML=e(b),g=m.children(),q.append(g),f(b,g),j(b),k(b),l(b),p(b,o(n())),g=[],h=0;r>h;h++)i=b[h].element,i&&(b[h].row===c&&i.css("top",d),g.push(i[0]));return a(g)}function e(a){var b,c,d,e,f,g,h,i,j,k,l=s("isRTL"),m=a.length,n=F(),o=n.left,p=n.right,q="";for(b=0;m>b;b++)c=a[b],d=c.event,f=["fc-event","fc-event-hori"],u(d)&&f.push("fc-event-draggable"),c.isStart&&f.push("fc-event-start"),c.isEnd&&f.push("fc-event-end"),l?(g=J(c.end.getDay()-1),h=J(c.start.getDay()),i=c.isEnd?H(g):o,j=c.isStart?I(h):p):(g=J(c.start.getDay()),h=J(c.end.getDay()-1),i=c.isStart?H(g):o,j=c.isEnd?I(h):p),f=f.concat(d.className),d.source&&(f=f.concat(d.source.className||[])),e=d.url,k=Z(d,s),q+=e?"<a href='"+U(e)+"'":"<div",q+=" class='"+f.join(" ")+"'"+" style='position:absolute;z-index:8;left:"+i+"px;"+k+"'"+">"+"<div class='fc-event-inner'>",!d.allDay&&c.isStart&&(q+="<span class='fc-event-time'>"+U(P(d.start,d.end,s("timeFormat")))+"</span>"),q+="<span class='fc-event-title'>"+U(d.title)+"</span>"+"</div>",c.isEnd&&v(d)&&(q+="<div class='ui-resizable-handle ui-resizable-"+(l?"w":"e")+"'>"+"&nbsp;&nbsp;&nbsp;"+"</div>"),q+="</"+(e?"a":"div")+">",c.left=i,c.outerWidth=j-i,c.startCol=g,c.endCol=h+1;return q}function f(b,c){var d,e,f,g,h,i=b.length;for(d=0;i>d;d++)e=b[d],f=e.event,g=a(c[d]),h=t("eventRender",f,f,g,r),h===!1?g.remove():(h&&h!==!0&&(h=a(h).css({position:"absolute",left:e.left}),g.replaceWith(h),g=h),e.element=g)}function g(a){var b,c,d,e=a.length;for(b=0;e>b;b++)c=a[b],d=c.element,d&&x(c.event,d)}function h(a,b,c){var d,e,f,g,h=a.length;for(d=0;h>d;d++)e=a[d],f=e.element,f&&(g=e.event,g._id===c?O(g,f,e):f[0]._fci=d);D(b,a,O)}function j(a){var c,d,e,f,g,h=a.length,i={};for(c=0;h>c;c++)d=a[c],e=d.element,e&&(f=d.key=V(e[0]),g=i[f],g===b&&(g=i[f]=G(e,!0)),d.hsides=g)}function k(a){var b,c,d,e=a.length;for(b=0;e>b;b++)c=a[b],d=c.element,d&&(d[0].style.width=Math.max(0,c.outerWidth-c.hsides)+"px")}function l(a){var c,d,e,f,g,h=a.length,i={};for(c=0;h>c;c++)d=a[c],e=d.element,e&&(f=d.key,g=i[f],g===b&&(g=i[f]=M(e)),d.outerHeight=e[0].offsetHeight+g)}function n(){var a,b=B(),c=[];for(a=0;b>a;a++)c[a]=E(a).find("div.fc-day-content > div");return c}function o(a){var b,c=a.length,d=[];for(b=0;c>b;b++)d[b]=a[b][0].offsetTop;return d}function p(a,b){var c,d,e,f,g=a.length;for(c=0;g>c;c++)d=a[c],e=d.element,e&&(e[0].style.top=b[d.row]+(d.top||0)+"px",f=d.event,t("eventAfterRender",f,f,e))}function q(b,c,e){var f=s("isRTL"),g=f?"w":"e",h=c.find(".ui-resizable-"+g),j=!1;W(c),c.mousedown(function(a){a.preventDefault()}).click(function(a){j&&(a.preventDefault(),a.stopImmediatePropagation())}),h.mousedown(function(h){function k(c){t("eventResizeStop",this,b,c),a("body").css("cursor",""),o.stop(),S(),l&&A(this,b,l,0,c),setTimeout(function(){j=!1},0)}if(1==h.which){j=!0;var l,n,o=r.getHoverListener(),p=B(),q=C(),s=f?-1:1,u=f?q-1:0,v=c.css("top"),x=a.extend({},b),D=K(b.start);T(),a("body").css("cursor",g+"-resize").one("mouseup",k),t("eventResizeStart",this,b,h),o.start(function(a,c){if(a){var h=Math.max(D.row,a.row),j=a.col;1==p&&(h=0),h==D.row&&(j=f?Math.min(D.col,j):Math.max(D.col,j)),l=7*h+j*s+u-(7*c.row+c.col*s+u);var k=i(w(b),l,!0);if(l){x.end=k;var o=n;n=d(L([x]),e.row,v),n.find("*").css("cursor",g+"-resize"),o&&o.remove(),z(b)}else n&&(y(b),n.remove(),n=null);S(),Q(b.start,i(m(k),1))}},h)}})}var r=this;r.renderDaySegs=c,r.resizableDayEvent=q;var s=r.opt,t=r.trigger,u=r.isEventDraggable,v=r.isEventResizable,w=r.eventEnd,x=r.reportEventElement,y=r.showEvents,z=r.hideEvents,A=r.eventResize,B=r.getRowCnt,C=r.getColCnt;r.getColWidth;var E=r.allDayRow,F=r.allDayBounds,H=r.colContentLeft,I=r.colContentRight,J=r.dayOfWeekCol,K=r.dateCell,L=r.compileDaySegs,N=r.getDaySegmentContainer,O=r.bindDaySeg,P=r.calendar.formatDates,Q=r.renderDayOverlay,S=r.clearOverlays,T=r.clearSelection}function mb(){function b(a,b,e){c(),b||(b=i(a,e)),j(a,b,e),d(a,b,e)}function c(a){l&&(l=!1,k(),h("unselect",null,a))}function d(a,b,c,d){l=!0,h("select",null,a,b,c,d)}function e(b){var e=f.cellDate,h=f.cellIsAllDay,i=f.getHoverListener(),l=f.reportDayClick;if(1==b.which&&g("selectable")){c(b);var m;i.start(function(a,b){k(),a&&h(a)?(m=[e(b),e(a)].sort(Q),j(m[0],m[1],!0)):m=null},b),a(document).one("mouseup",function(a){i.stop(),m&&(+m[0]==+m[1]&&l(m[0],!0,a),d(m[0],m[1],!0,a))})}}var f=this;f.select=b,f.unselect=c,f.reportSelection=d,f.daySelectionMousedown=e;var g=f.opt,h=f.trigger,i=f.defaultSelectionEnd,j=f.renderSelection,k=f.clearSelection,l=!1;g("selectable")&&g("unselectAuto")&&a(document).mousedown(function(b){var d=g("unselectCancel");d&&a(b.target).parents(d).length||c(b)})}function nb(){function b(b,c){var d=f.shift();return d||(d=a("<div class='fc-cell-overlay' style='position:absolute;z-index:3'/>")),d[0].parentNode!=c[0]&&d.appendTo(c),e.push(d.css(b).show()),d}function c(){for(var a;a=e.shift();)f.push(a.hide().unbind())}var d=this;d.renderOverlay=b,d.clearOverlays=c;var e=[],f=[]}function ob(a){var b,c,d=this;d.build=function(){b=[],c=[],a(b,c)},d.cell=function(a,d){var e,f=b.length,g=c.length,h=-1,i=-1;for(e=0;f>e;e++)if(d>=b[e][0]&&d<b[e][1]){h=e;break}for(e=0;g>e;e++)if(a>=c[e][0]&&a<c[e][1]){i=e;break}return h>=0&&i>=0?{row:h,col:i}:null},d.rect=function(a,d,e,f,g){var h=g.offset();return{top:b[a][0]-h.top,left:c[d][0]-h.left,width:c[f][1]-c[d][0],height:b[e][1]-b[a][0]}}}function pb(b){function c(a){qb(a);var c=b.cell(a.pageX,a.pageY);(!c!=!g||c&&(c.row!=g.row||c.col!=g.col))&&(c?(f||(f=c),e(c,f,c.row-f.row,c.col-f.col)):e(c,f),g=c)}var d,e,f,g,h=this;h.start=function(h,i,j){e=h,f=g=null,b.build(),c(i),d=j||"mousemove",a(document).bind(d,c)},h.stop=function(){return a(document).unbind(d,c),g}}function qb(a){a.pageX===b&&(a.pageX=a.originalEvent.pageX,a.pageY=a.originalEvent.pageY)}function rb(a){function c(b){return e[b]=e[b]||a(b)}var d=this,e={},f={},g={};d.left=function(a){return f[a]=f[a]===b?c(a).position().left:f[a]},d.right=function(a){return g[a]=g[a]===b?d.left(a)+c(a).width():g[a]},d.clear=function(){e={},f={},g={}}}var sb={defaultView:"month",aspectRatio:1.35,header:{left:"title",center:"",right:"today prev,next"},weekends:!0,weekNumbers:!1,weekNumberCalculation:"iso",weekNumberTitle:"W",allDayDefault:!0,ignoreTimezone:!0,lazyFetching:!0,startParam:"start",endParam:"end",titleFormat:{month:"MMMM yyyy",week:"MMM d[ yyyy]{ '&#8212;'[ MMM] d yyyy}",day:"dddd, MMM d, yyyy"},columnFormat:{month:"ddd",week:"ddd M/d",day:"dddd M/d"},timeFormat:{"":"h(:mm)t"},isRTL:!1,firstDay:0,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"],buttonText:{prev:"<span class='fc-text-arrow'>&lsaquo;</span>",next:"<span class='fc-text-arrow'>&rsaquo;</span>",prevYear:"<span class='fc-text-arrow'>&laquo;</span>",nextYear:"<span class='fc-text-arrow'>&raquo;</span>",today:"today",month:"month",week:"week",day:"day"},theme:!1,buttonIcons:{prev:"circle-triangle-w",next:"circle-triangle-e"},unselectAuto:!0,dropAccept:"*"},tb={header:{left:"next,prev today",center:"",right:"title"},buttonText:{prev:"<span class='fc-text-arrow'>&rsaquo;</span>",next:"<span class='fc-text-arrow'>&lsaquo;</span>",prevYear:"<span class='fc-text-arrow'>&raquo;</span>",nextYear:"<span class='fc-text-arrow'>&laquo;</span>"},buttonIcons:{prev:"circle-triangle-e",next:"circle-triangle-w"}},ub=a.fullCalendar={version:"1.6.1"},vb=ub.views={};a.fn.fullCalendar=function(c){if("string"==typeof c){var e,f=Array.prototype.slice.call(arguments,1);return this.each(function(){var d=a.data(this,"fullCalendar");if(d&&a.isFunction(d[c])){var g=d[c].apply(d,f);e===b&&(e=g),"destroy"==c&&a.removeData(this,"fullCalendar")}}),e!==b?e:this}var g=c.eventSources||[];return delete c.eventSources,c.events&&(g.push(c.events),delete c.events),c=a.extend(!0,{},sb,c.isRTL||c.isRTL===b&&sb.isRTL?tb:{},c),this.each(function(b,e){var f=a(e),h=new d(f,c,g);f.data("fullCalendar",h),h.render()}),this},ub.sourceNormalizers=[],ub.sourceFetchers=[];var wb={dataType:"json",cache:!1},xb=1;ub.addDays=i,ub.cloneDate=m,ub.parseDate=r,ub.parseISO8601=s,ub.parseTime=t,ub.formatDate=u,ub.formatDates=v;var yb=["sun","mon","tue","wed","thu","fri","sat"],zb=864e5,Ab=36e5,Bb=6e4,Cb={s:function(a){return a.getSeconds()},ss:function(a){return S(a.getSeconds())},m:function(a){return a.getMinutes()},mm:function(a){return S(a.getMinutes())},h:function(a){return a.getHours()%12||12},hh:function(a){return S(a.getHours()%12||12)},H:function(a){return a.getHours()},HH:function(a){return S(a.getHours())},d:function(a){return a.getDate()},dd:function(a){return S(a.getDate())},ddd:function(a,b){return b.dayNamesShort[a.getDay()]},dddd:function(a,b){return b.dayNames[a.getDay()]},M:function(a){return a.getMonth()+1},MM:function(a){return S(a.getMonth()+1)},MMM:function(a,b){return b.monthNamesShort[a.getMonth()]},MMMM:function(a,b){return b.monthNames[a.getMonth()]},yy:function(a){return(a.getFullYear()+"").substring(2)},yyyy:function(a){return a.getFullYear()},t:function(a){return a.getHours()<12?"a":"p"},tt:function(a){return a.getHours()<12?"am":"pm"},T:function(a){return a.getHours()<12?"A":"P"},TT:function(a){return a.getHours()<12?"AM":"PM"},u:function(a){return u(a,"yyyy-MM-dd'T'HH:mm:ss'Z'")},S:function(a){var b=a.getDate();return b>10&&20>b?"th":["st","nd","rd"][b%10-1]||"th"},w:function(a,b){return b.weekNumberCalculation(a)},W:function(a){return w(a)}};ub.dateFormatters=Cb,ub.applyAll=$,vb.month=ab,vb.basicWeek=bb,vb.basicDay=cb,c({weekMode:"fixed"}),vb.agendaWeek=fb,vb.agendaDay=gb,c({allDaySlot:!0,allDayText:"all-day",firstHour:6,slotMinutes:30,defaultEventMinutes:120,axisFormat:"h(:mm)tt",timeFormat:{agenda:"h:mm{ - h:mm}"},dragOpacity:{agenda:.5},minTime:0,maxTime:24})}(jQuery);
1
+ /*! event-organiser 2.4.0 2013-10-29 18:47 */
2
  !function(a,b){function c(b){a.extend(!0,sb,b)}function d(c,d,j){function k(a){$?(y(),x(),G(),t(a)):l()}function l(){_=d.theme?"ui":"fc",c.addClass("fc"),d.isRTL?c.addClass("fc-rtl"):c.addClass("fc-ltr"),d.theme&&c.addClass("ui-widget"),$=a("<div class='fc-content' style='position:relative'/>").prependTo(c),Y=new e(X,d),Z=Y.render(),Z&&c.prepend(Z),s(d.defaultView),a(window).resize(A),r()||n()}function n(){setTimeout(function(){!ab.start&&r()&&t()},0)}function o(){a(window).unbind("resize",A),Y.destroy(),$.remove(),c.removeClass("fc fc-rtl ui-widget")}function p(){return 0!==hb.offsetWidth}function r(){return 0!==a("body")[0].offsetWidth}function s(b){if(!ab||b!=ab.name){kb++,I();var c,d=ab;d?((d.beforeHide||P)(),O($,$.height()),d.element.hide()):O($,1),$.css("overflow","hidden"),ab=ib[b],ab?ab.element.show():ab=ib[b]=new vb[b](c=db=a("<div class='fc-view fc-view-"+b+"' style='position:absolute'/>").appendTo($),X),d&&Y.deactivateButton(d.name),Y.activateButton(b),t(),$.css("overflow",""),d&&O($,1),c||(ab.afterShow||P)(),kb--}}function t(a){if(p()){kb++,I(),cb===b&&y();var d=!1;!ab.start||a||lb<ab.start||lb>=ab.end?(ab.render(lb,a||0),z(!0),d=!0):ab.sizeDirty?(ab.clearEvents(),z(),d=!0):ab.eventsDirty&&(ab.clearEvents(),d=!0),ab.sizeDirty=!1,ab.eventsDirty=!1,B(d),bb=c.outerWidth(),Y.updateTitle(ab.title);var e=new Date;e>=ab.start&&e<ab.end?Y.disableButton("today"):Y.enableButton("today"),kb--,ab.trigger("viewDisplay",hb)}}function w(){x(),p()&&(y(),z(),I(),ab.clearEvents(),ab.renderEvents(mb),ab.sizeDirty=!1)}function x(){a.each(ib,function(a,b){b.sizeDirty=!0})}function y(){cb=d.contentHeight?d.contentHeight:d.height?d.height-(Z?Z.height():0)-K($):Math.round($.width()/Math.max(d.aspectRatio,.5))}function z(a){kb++,ab.setHeight(cb,a),db&&(db.css("position","relative"),db=null),ab.setWidth($.width(),a),kb--}function A(){if(!kb)if(ab.start){var a=++jb;setTimeout(function(){a==jb&&!kb&&p()&&bb!=(bb=c.outerWidth())&&(kb++,w(),ab.trigger("windowResize",hb),kb--)},200)}else n()}function B(a){!d.lazyFetching||fb(ab.visStart,ab.visEnd)?C():a&&F()}function C(){gb(ab.visStart,ab.visEnd,d)}function D(a){mb=a,F()}function E(a){F(a)}function F(a){G(),p()&&(ab.clearEvents(),ab.renderEvents(mb,a),ab.eventsDirty=!1)}function G(){a.each(ib,function(a,b){b.eventsDirty=!0})}function H(a,c,d){ab.select(a,c,d===b?!0:d)}function I(){ab&&ab.unselect()}function J(){t(-1)}function L(){t(1)}function M(){g(lb,-1),t()}function N(){g(lb,1),t()}function Q(){lb=new Date,t()}function R(a,b,c){a instanceof Date?lb=m(a):q(lb,a,b,c),t()}function S(a,c,d){a!==b&&g(lb,a),c!==b&&h(lb,c),d!==b&&i(lb,d),t()}function T(){return m(lb)}function U(){return ab}function V(a,c){return c===b?d[a]:("height"==a||"contentHeight"==a||"aspectRatio"==a?(d[a]=c,w()):(d[a]=c,F()),void 0)}function W(a,b){return d[a]?d[a].apply(b||hb,Array.prototype.slice.call(arguments,2)):void 0}var X=this;X.options=d,X.render=k,X.destroy=o,X.refetchEvents=C,X.reportEvents=D,X.reportEventChange=E,X.rerenderEvents=F,X.changeView=s,X.select=H,X.unselect=I,X.prev=J,X.next=L,X.prevYear=M,X.nextYear=N,X.today=Q,X.gotoDate=R,X.incrementDate=S,X.formatDate=function(a,b){return u(a,b,d)},X.formatDates=function(a,b,c){return v(a,b,c,d)},X.getDate=T,X.getView=U,X.option=V,X.trigger=W,f.call(X,d,j);var Y,Z,$,_,ab,bb,cb,db,eb,fb=X.isFetchNeeded,gb=X.fetchEvents,hb=c[0],ib={},jb=0,kb=0,lb=new Date,mb=[];q(lb,d.year,d.month,d.date),d.droppable&&a(document).bind("dragstart",function(b,c){var e=b.target,f=a(e);if(!f.parents(".fc").length){var g=d.dropAccept;(a.isFunction(g)?g.call(e,f):f.is(g))&&(eb=e,ab.dragStart(eb,b,c))}}).bind("dragstop",function(a,b){eb&&(ab.dragStop(eb,a,b),eb=null)})}function e(b,c){function d(){m=c.theme?"ui":"fc";var b=c.header;return b?n=a("<table class='fc-header' style='width:100%'/>").append(a("<tr/>").append(f("left")).append(f("center")).append(f("right"))):void 0}function e(){n.remove()}function f(d){var e=a("<td class='fc-header-"+d+"'/>"),f=c.header[d];return f&&a.each(f.split(" "),function(d){d>0&&e.append("<span class='fc-header-space'/>");var f;a.each(this.split(","),function(d,g){if("title"==g)e.append("<span class='fc-header-title'><h2>&nbsp;</h2></span>"),f&&f.addClass(m+"-corner-right"),f=null;else if(a.isFunction(c.customButtons[g])){var h=c.customButtons[g](c);e.append(h)}else{var i;if(b[g]?i=b[g]:vb[g]&&(i=function(){l.removeClass(m+"-state-hover"),b.changeView(g)}),i){var j=c.theme?T(c.buttonIcons,g):null,k=T(c.buttonText,g);if(c.buttonui){var l=a("<span class='fc-button fc-button-"+g+" "+m+"-state-default'>"+k+"</span>");l.button()}else var l=a("<span class='fc-button fc-button-"+g+" "+m+"-state-default'>"+"<span class='fc-button-inner'>"+"<span class='fc-button-content'>"+(j?"<span class='fc-icon-wrap'><span class='ui-icon ui-icon-"+j+"'/>"+"</span>":k)+"</span>"+"<span class='fc-button-effect'><span></span></span>"+"</span>"+"</span>");l&&(l.click(function(){l.hasClass(m+"-state-disabled")||i()}).mousedown(function(){l.not("."+m+"-state-active").not("."+m+"-state-disabled").addClass(m+"-state-hover")},function(){l.removeClass(m+"-state-hover").removeClass(m+"-state-down")}).appendTo(e),W(l),f||l.addClass(m+"-corner-left"),f=l)}}}),f&&f.addClass(m+"-corner-right")}),e}function g(a){n.find("h2").html(a)}function h(a){n.find("span.fc-button-"+a).addClass(m+"-state-active")}function i(a){n.find("span.fc-button-"+a).removeClass(m+"-state-active")}function j(a){n.find("span.fc-button-"+a).addClass(m+"-state-disabled")}function k(a){n.find("span.fc-button-"+a).removeClass(m+"-state-disabled")}var l=this;l.render=d,l.destroy=e,l.updateTitle=g,l.activateButton=h,l.deactivateButton=i,l.disableButton=j,l.enableButton=k;var m,n=a([])}function f(c,d){function e(a,b){return!y||y>a||b>z}function f(a,b,c){y=a,z=b,I=[];var d=++F,e=E.length;G=e;for(var f=0;e>f;f++)g(E[f],d,c)}function g(b,c,d){h(b,function(e){if(c==F){if(e){d.eventDataTransform&&(e=a.map(e,d.eventDataTransform)),b.eventDataTransform&&(e=a.map(e,b.eventDataTransform));for(var f=0;f<e.length;f++)e[f].source=b,t(e[f]);I=I.concat(e)}G--,G||C(I)}},d)}function h(b,d){var e,f,g=ub.sourceFetchers;for(e=0;e<g.length;e++){if(f=g[e](b,y,z,d),f===!0)return;if("object"==typeof f)return h(f,d,c),void 0}var i=b.events;if(i)a.isFunction(i)?(q(),i(m(y),m(z),function(a){d(a),s()},c)):a.isArray(i)?d(i):d();else{var j=b.url;if(j){var k=b.success,l=b.error,n=b.complete,o=a.extend({},b.data||{}),p=_(b.startParam,c.startParam),r=_(b.endParam,c.endParam);p&&(o[p]=Math.round(+y/1e3)),r&&(o[r]=Math.round(+z/1e3)),q(),a.ajax(a.extend({},wb,b,{data:o,success:function(b){b=b||[];var c=$(k,this,arguments);a.isArray(c)&&(b=c),d(b)},error:function(){$(l,this,arguments),d()},complete:function(){$(n,this,arguments),s()}}))}else d()}}function i(a){a=j(a),a&&(G++,g(a,F))}function j(b){return a.isFunction(b)||a.isArray(b)?b={events:b}:"string"==typeof b&&(b={url:b}),"object"==typeof b?(u(b),E.push(b),b):void 0}function k(b){E=a.grep(E,function(a){return!v(a,b)}),I=a.grep(I,function(a){return!v(a.source,b)}),C(I)}function l(a){var b,c,d=I.length,e=B().defaultEventEnd,f=a.start-a._start,g=a.end?a.end-(a._end||e(a)):0;for(b=0;d>b;b++)c=I[b],c._id==a._id&&c!=a&&(c.start=new Date(+c.start+f),c.end=a.end?c.end?new Date(+c.end+g):new Date(+e(c)+g):null,c.title=a.title,c.url=a.url,c.allDay=a.allDay,c.className=a.className,c.editable=a.editable,c.color=a.color,c.backgroundColor=a.backgroundColor,c.borderColor=a.borderColor,c.textColor=a.textColor,t(c));t(a),C(I)}function n(a,b){t(a),a.source||(b&&(D.events.push(a),a.source=D),I.push(a)),C(I)}function o(b){if(b){if(!a.isFunction(b)){var c=b+"";b=function(a){return a._id==c}}I=a.grep(I,b,!0);for(var d=0;d<E.length;d++)a.isArray(E[d].events)&&(E[d].events=a.grep(E[d].events,b,!0))}else{I=[];for(var d=0;d<E.length;d++)a.isArray(E[d].events)&&(E[d].events=[])}C(I)}function p(b){return a.isFunction(b)?a.grep(I,b):b?(b+="",a.grep(I,function(a){return a._id==b})):I}function q(){H++||A("loading",null,!0)}function s(){--H||A("loading",null,!1)}function t(a){var d=a.source||{},e=_(d.ignoreTimezone,c.ignoreTimezone);a._id=a._id||(a.id===b?"_fc"+xb++:a.id+""),a.date&&(a.start||(a.start=a.date),delete a.date),a._start=m(a.start=r(a.start,e)),a.end=r(a.end,e),a.end&&a.end<=a.start&&(a.end=null),a._end=a.end?m(a.end):null,a.allDay===b&&(a.allDay=_(d.allDayDefault,c.allDayDefault)),a.className?"string"==typeof a.className&&(a.className=a.className.split(/\s+/)):a.className=[]}function u(a){a.className?"string"==typeof a.className&&(a.className=a.className.split(/\s+/)):a.className=[];for(var b=ub.sourceNormalizers,c=0;c<b.length;c++)b[c](a)}function v(a,b){return a&&b&&w(a)==w(b)}function w(a){return("object"==typeof a?a.events||a.url:"")||a}var x=this;x.isFetchNeeded=e,x.fetchEvents=f,x.addEventSource=i,x.removeEventSource=k,x.updateEvent=l,x.renderEvent=n,x.removeEvents=o,x.clientEvents=p,x.normalizeEvent=t;for(var y,z,A=x.trigger,B=x.getView,C=x.reportEvents,D={events:[]},E=[D],F=0,G=0,H=0,I=[],J=0;J<d.length;J++)j(d[J])}function g(a,b,c){return a.setFullYear(a.getFullYear()+b),c||l(a),a}function h(a,b,c){if(+a){var d=a.getMonth()+b,e=m(a);for(e.setDate(1),e.setMonth(d),a.setMonth(d),c||l(a);a.getMonth()!=e.getMonth();)a.setDate(a.getDate()+(e>a?1:-1))}return a}function i(a,b,c){if(+a){var d=a.getDate()+b,e=m(a);e.setHours(9),e.setDate(d),a.setDate(d),c||l(a),j(a,e)}return a}function j(a,b){if(+a)for(;a.getDate()!=b.getDate();)a.setTime(+a+(b>a?1:-1)*Ab)}function k(a,b){return a.setMinutes(a.getMinutes()+b),a}function l(a){return a.setHours(0),a.setMinutes(0),a.setSeconds(0),a.setMilliseconds(0),a}function m(a,b){return b?l(new Date(+a)):new Date(+a)}function n(){var a,b=0;do a=new Date(1970,b++,1);while(a.getHours());return a}function o(a,b,c){for(b=b||1;!a.getDay()||c&&1==a.getDay()||!c&&6==a.getDay();)i(a,b);return a}function p(a,b){return Math.round((m(a,!0)-m(b,!0))/zb)}function q(a,c,d,e){c!==b&&c!=a.getFullYear()&&(a.setDate(1),a.setMonth(0),a.setFullYear(c)),d!==b&&d!=a.getMonth()&&(a.setDate(1),a.setMonth(d)),e!==b&&a.setDate(e)}function r(a,c){return"object"==typeof a?a:"number"==typeof a?new Date(1e3*a):"string"==typeof a?a.match(/^\d+(\.\d+)?$/)?new Date(1e3*parseFloat(a)):(c===b&&(c=!0),s(a,c)||(a?new Date(a):null)):null}function s(a,b){var c=a.match(/^([0-9]{4})(-([0-9]{2})(-([0-9]{2})([T ]([0-9]{2}):([0-9]{2})(:([0-9]{2})(\.([0-9]+))?)?(Z|(([-+])([0-9]{2})(:?([0-9]{2}))?))?)?)?)?$/);if(!c)return null;var d=new Date(c[1],0,1);if(b||!c[13]){var e=new Date(c[1],0,1,9,0);c[3]&&(d.setMonth(c[3]-1),e.setMonth(c[3]-1)),c[5]&&(d.setDate(c[5]),e.setDate(c[5])),j(d,e),c[7]&&d.setHours(c[7]),c[8]&&d.setMinutes(c[8]),c[10]&&d.setSeconds(c[10]),c[12]&&d.setMilliseconds(1e3*Number("0."+c[12])),j(d,e)}else if(d.setUTCFullYear(c[1],c[3]?c[3]-1:0,c[5]||1),d.setUTCHours(c[7]||0,c[8]||0,c[10]||0,c[12]?1e3*Number("0."+c[12]):0),c[14]){var f=60*Number(c[16])+(c[18]?Number(c[18]):0);f*="-"==c[15]?1:-1,d=new Date(+d+1e3*60*f)}return d}function t(a){if("number"==typeof a)return 60*a;if("object"==typeof a)return 60*a.getHours()+a.getMinutes();var b=a.match(/(\d+)(?::(\d+))?\s*(\w+)?/);if(b){var c=parseInt(b[1],10);return b[3]&&(c%=12,"p"==b[3].toLowerCase().charAt(0)&&(c+=12)),60*c+(b[2]?parseInt(b[2],10):0)}}function u(a,b,c){return v(a,null,b,c)}function v(a,b,c,d){d=d||sb;var e,f,g,h,i=a,j=b,k=c.length,l="";for(e=0;k>e;e++)if(f=c.charAt(e),"'"==f){for(g=e+1;k>g;g++)if("'"==c.charAt(g)){i&&(l+=g==e+1?"'":c.substring(e+1,g),e=g);break}}else if("("==f){for(g=e+1;k>g;g++)if(")"==c.charAt(g)){var m=u(i,c.substring(e+1,g),d);parseInt(m.replace(/\D/,""),10)&&(l+=m),e=g;break}}else if("["==f){for(g=e+1;k>g;g++)if("]"==c.charAt(g)){var n=c.substring(e+1,g),m=u(i,n,d);m!=u(j,n,d)&&(l+=m),e=g;break}}else if("{"==f)i=b,j=a;else if("}"==f)i=a,j=b;else{for(g=k;g>e;g--)if(h=Cb[c.substring(e,g)]){i&&(l+=h(i,d)),e=g-1;break}g==e&&i&&(l+=f)}return l}function w(a){var b,c=new Date(a.getTime());return c.setDate(c.getDate()+4-(c.getDay()||7)),b=c.getTime(),c.setMonth(0),c.setDate(1),Math.floor(Math.round((b-c)/864e5)/7)+1}function x(a){return a.end?y(a.end,a.allDay):i(m(a.start),1)}function y(a,b){return a=m(a),b||a.getHours()||a.getMinutes()?i(a,1):l(a)}function z(a,b){return 100*(b.msLength-a.msLength)+(a.event.start-b.event.start)}function A(a,b){return a.end>b.start&&a.start<b.end}function B(a,b,c,d){var e,f,g,h,i,j,k,l,n=[],o=a.length;for(e=0;o>e;e++)f=a[e],g=f.start,h=b[e],h>c&&d>g&&(c>g?(i=m(c),k=!1):(i=g,k=!0),h>d?(j=m(d),l=!1):(j=h,l=!0),n.push({event:f,start:i,end:j,isStart:k,isEnd:l,msLength:j-i}));return n.sort(z)}function C(a){var b,c,d,e,f,g=[],h=a.length;for(b=0;h>b;b++){for(c=a[b],d=0;;){if(e=!1,g[d])for(f=0;f<g[d].length;f++)if(A(g[d][f],c)){e=!0;break}if(!e)break;d++}g[d]?g[d].push(c):g[d]=[c]}return g}function D(c,d,e){c.unbind("mouseover").mouseover(function(c){for(var f,g,h,i=c.target;i!=this;)f=i,i=i.parentNode;(g=f._fci)!==b&&(f._fci=b,h=d[g],e(h.event,h.element,h),a(c.target).trigger(c)),c.stopPropagation()})}function E(b,c,d){for(var e,f=0;f<b.length;f++)e=a(b[f]),e.width(Math.max(0,c-G(e,d)))}function F(b,c,d){for(var e,f=0;f<b.length;f++)e=a(b[f]),e.height(Math.max(0,c-K(e,d)))}function G(a,b){return H(a)+J(a)+(b?I(a):0)}function H(b){return(parseFloat(a.css(b[0],"paddingLeft",!0))||0)+(parseFloat(a.css(b[0],"paddingRight",!0))||0)}function I(b){return(parseFloat(a.css(b[0],"marginLeft",!0))||0)+(parseFloat(a.css(b[0],"marginRight",!0))||0)}function J(b){return(parseFloat(a.css(b[0],"borderLeftWidth",!0))||0)+(parseFloat(a.css(b[0],"borderRightWidth",!0))||0)}function K(a,b){return L(a)+N(a)+(b?M(a):0)}function L(b){return(parseFloat(a.css(b[0],"paddingTop",!0))||0)+(parseFloat(a.css(b[0],"paddingBottom",!0))||0)}function M(b){return(parseFloat(a.css(b[0],"marginTop",!0))||0)+(parseFloat(a.css(b[0],"marginBottom",!0))||0)}function N(b){return(parseFloat(a.css(b[0],"borderTopWidth",!0))||0)+(parseFloat(a.css(b[0],"borderBottomWidth",!0))||0)}function O(a,b){b="number"==typeof b?b+"px":b,a.each(function(a,c){c.style.cssText+=";min-height:"+b+";_height:"+b})}function P(){}function Q(a,b){return a-b}function R(a){return Math.max.apply(Math,a)}function S(a){return(10>a?"0":"")+a}function T(a,c){if(a[c]!==b)return a[c];for(var d,e=c.split(/(?=[A-Z])/),f=e.length-1;f>=0;f--)if(d=a[e[f].toLowerCase()],d!==b)return d;return a[""]}function U(a){return a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&#039;").replace(/"/g,"&quot;").replace(/\n/g,"<br />")}function V(a){return a.id+"/"+a.className+"/"+a.style.cssText.replace(/(^|;)\s*(top|left|width|height)\s*:[^;]*/gi,"")}function W(a){a.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return!1})}function X(a){a.children().removeClass("fc-first fc-last").filter(":first-child").addClass("fc-first").end().filter(":last-child").addClass("fc-last")}function Y(a,b){a.each(function(a,c){c.className=c.className.replace(/^fc-\w*/,"fc-"+yb[b.getDay()])})}function Z(a,b){var c=a.source||{},d=a.color,e=c.color,f=b("eventColor"),g=a.backgroundColor||d||c.backgroundColor||e||b("eventBackgroundColor")||f,h=a.borderColor||d||c.borderColor||e||b("eventBorderColor")||f,i=a.textColor||c.textColor||b("eventTextColor"),j=[];return g&&j.push("background-color:"+g),h&&j.push("border-color:"+h),i&&j.push("color:"+i),j.join(";")}function $(b,c,d){if(a.isFunction(b)&&(b=[b]),b){var e,f;for(e=0;e<b.length;e++)f=b[e].apply(c,d)||f;return f}}function _(){for(var a=0;a<arguments.length;a++)if(arguments[a]!==b)return arguments[a]}function ab(a,b){function c(a,b){b&&(h(a,b),a.setDate(1));var c=m(a,!0);c.setDate(1);var j=h(m(c),1),k=m(c),l=m(j),n=e("firstDay"),p=e("weekends")?0:1;p&&(o(k),o(l,-1,!0)),i(k,-((k.getDay()-Math.max(n,p)+7)%7)),i(l,(7-l.getDay()+Math.max(n,p))%7);var q=Math.round((l-k)/(7*zb));"fixed"==e("weekMode")&&(i(l,7*(6-q)),q=6),d.title=g(c,e("titleFormat")),d.start=c,d.end=j,d.visStart=k,d.visEnd=l,f(q,p?5:7,!0)}var d=this;d.render=c,db.call(d,a,b,"month");var e=d.opt,f=d.renderBasic,g=b.formatDate}function bb(a,b){function c(a,b){b&&i(a,7*b);var c=i(m(a),-((a.getDay()-e("firstDay")+7)%7)),h=i(m(c),7),j=m(c),k=m(h),l=e("weekends");l||(o(j),o(k,-1,!0)),d.title=g(j,i(m(k),-1),e("titleFormat")),d.start=c,d.end=h,d.visStart=j,d.visEnd=k,f(1,l?7:5,!1)}var d=this;d.render=c,db.call(d,a,b,"basicWeek");var e=d.opt,f=d.renderBasic,g=b.formatDates}function cb(a,b){function c(a,b){b&&(i(a,b),e("weekends")||o(a,0>b?-1:1)),d.title=g(a,e("titleFormat")),d.start=d.visStart=m(a,!0),d.end=d.visEnd=i(m(d.start),1),f(1,1,!1)}var d=this;d.render=c,db.call(d,a,b,"basicDay");var e=d.opt,f=d.renderBasic,g=b.formatDate}function db(b,c,d){function e(a,b,c){cb=a,db=b,f();var d=!S;d?g():Bb(),h(c)}function f(){ib=zb("isRTL"),ib?(jb=-1,lb=db-1):(jb=1,lb=0),qb=zb("firstDay"),sb=zb("weekends")?0:1,tb=zb("theme")?"ui":"fc",ub=zb("columnFormat"),vb=zb("weekNumbers"),wb=zb("weekNumberTitle"),xb="iso"!=zb("weekNumberCalculation")?"w":"W"}function g(){Z=a("<div style='position:absolute;z-index:8;top:0;left:0'/>").appendTo(b)}function h(c){var d,e,f,g,h="",i=tb+"-widget-header",j=tb+"-widget-content",k=N.start.getMonth(),m=l(new Date);for(h+="<table class='fc-border-separate' style='width:100%' cellspacing='0'><thead><tr>",vb&&(h+="<th class='fc-week-number "+i+"'/>"),d=0;db>d;d++)f=F(0,d),h+="<th class='fc-day-header fc-"+yb[f.getDay()]+" "+i+"'/>";for(h+="</tr></thead><tbody>",d=0;cb>d;d++){for(h+="<tr class='fc-week'>",vb&&(h+="<td class='fc-week-number "+j+"'>"+"<div/>"+"</td>"),e=0;db>e;e++)f=F(d,e),g=["fc-day","fc-"+yb[f.getDay()],j],f.getMonth()!=k&&g.push("fc-other-month"),+f==+m&&(g.push("fc-today"),g.push(tb+"-state-highlight")),h+="<td class='"+g.join(" ")+"'"+" data-date='"+Fb(f,"yyyy-MM-dd")+"'"+">"+"<div>",c&&(h+="<div class='fc-day-number'>"+f.getDate()+"</div>"),h+="<div class='fc-day-content'><div style='position:relative'>&nbsp;</div></div></div></td>";h+="</tr>"}h+="</tbody></table>",L(),P&&P.remove(),P=a(h).appendTo(b),Q=P.find("thead"),R=Q.find(".fc-day-header"),S=P.find("tbody"),T=S.find("tr"),U=S.find(".fc-day"),V=T.find("td:first-child"),Y=T.eq(0).find(".fc-day-content > div"),X(Q.add(Q.find("tr"))),X(T),T.eq(0).addClass("fc-first"),T.filter(":last").addClass("fc-last"),vb&&Q.find(".fc-week-number").text(wb),R.each(function(b,c){var d=G(b);a(c).text(Fb(d,ub))}),vb&&S.find(".fc-week-number > div").each(function(b,c){var d=F(b,0);a(c).text(Fb(d,xb))}),U.each(function(b,c){var d=G(b);Ab("dayRender",N,d,a(c))}),n(U)}function j(b){_=b;var c,d,e,f=_-Q.height();"variable"==zb("weekMode")?c=d=Math.floor(f/(1==cb?2:6)):(c=Math.floor(f/cb),d=f-c*(cb-1)),V.each(function(b,f){cb>b&&(e=a(f),O(e.find("> div"),(b==cb-1?d:c)-K(e)))}),M()}function k(a){$=a,hb.clear(),bb=0,vb&&(bb=Q.find("th.fc-week-number").outerWidth()),ab=Math.floor(($-bb)/db),E(R.slice(0,-1),ab)}function n(a){a.click(o).mousedown(Eb)}function o(b){if(!zb("selectable")){var c=s(a(this).data("date"));Ab("dayClick",this,c,!0,b)}}function q(a,b,c){c&&fb.build();for(var d=m(N.visStart),e=i(m(d),db),f=0;cb>f;f++){var g=new Date(Math.max(d,a)),h=new Date(Math.min(e,b));if(h>g){var j,k;ib?(j=p(h,d)*jb+lb+1,k=p(g,d)*jb+lb+1):(j=p(g,d),k=p(h,d)),n(r(f,j,f,k-1))}i(d,7),i(e,7)}}function r(a,c,d,e){var f=fb.rect(a,c,d,e,b);return Cb(f,b)}function t(a){return m(a)}function u(a,b){q(a,i(m(b),1),!0)}function v(){Db()}function w(a,b,c){var d=C(a),e=U[d.row*db+d.col];Ab("dayClick",e,a,b,c)}function x(a,b){gb.start(function(a){Db(),a&&r(a.row,a.col,a.row,a.col)},b)}function y(a,b,c){var d=gb.stop();if(Db(),d){var e=D(d);Ab("drop",a,e,!0,b,c)}}function z(a){return m(a.start)}function A(a){return hb.left(a)}function B(a){return hb.right(a)}function C(a){return{row:Math.floor(p(a,N.visStart)/7),col:H(a.getDay())}}function D(a){return F(a.row,a.col)}function F(a,b){return i(m(N.visStart),7*a+b*jb+lb)}function G(a){return F(Math.floor(a/db),a%db)}function H(a){return(a-Math.max(qb,sb)+db)%db*jb+lb}function I(a){return T.eq(a)}function J(){var a=0;return vb&&(a+=bb),{left:a,right:$}}function L(){O(b,b.height())}function M(){O(b,1)}var N=this;N.renderBasic=e,N.setHeight=j,N.setWidth=k,N.renderDayOverlay=q,N.defaultSelectionEnd=t,N.renderSelection=u,N.clearSelection=v,N.reportDayClick=w,N.dragStart=x,N.dragStop=y,N.defaultEventEnd=z,N.getHoverListener=function(){return gb},N.colContentLeft=A,N.colContentRight=B,N.dayOfWeekCol=H,N.dateCell=C,N.cellDate=D,N.cellIsAllDay=function(){return!0},N.allDayRow=I,N.allDayBounds=J,N.getRowCnt=function(){return cb},N.getColCnt=function(){return db},N.getColWidth=function(){return ab},N.getDaySegmentContainer=function(){return Z},kb.call(N,b,c,d),nb.call(N),mb.call(N),eb.call(N);var P,Q,R,S,T,U,V,Y,Z,$,_,ab,bb,cb,db,fb,gb,hb,ib,jb,lb,qb,sb,tb,ub,vb,wb,xb,zb=N.opt,Ab=N.trigger,Bb=N.clearEvents,Cb=N.renderOverlay,Db=N.clearOverlays,Eb=N.daySelectionMousedown,Fb=c.formatDate;W(b.addClass("fc-grid")),fb=new ob(function(b,c){var d,e,f;R.each(function(b,g){d=a(g),e=d.offset().left,b&&(f[1]=e),f=[e],c[b]=f}),f[1]=e+d.outerWidth(),T.each(function(c,g){cb>c&&(d=a(g),e=d.offset().top,c&&(f[1]=e),f=[e],b[c]=f)}),f[1]=e+d.outerHeight()}),gb=new pb(fb),hb=new rb(function(a){return Y.eq(a)})}function eb(){function b(a,b){n(a),A(d(a),b),j("eventAfterAllRender")}function c(){o(),t().empty()}function d(b){var c,d,e,f,h,j,k=y(),l=z(),n=m(g.visStart),o=i(m(n),l),p=a.map(b,x),q=[];for(c=0;k>c;c++){for(d=C(B(b,p,n,o)),e=0;e<d.length;e++)for(f=d[e],h=0;h<f.length;h++)j=f[h],j.row=c,j.level=e,q.push(j);i(n,7),i(o,7)}return q}function e(a,b,c){k(a)&&f(a,b),c.isEnd&&l(a)&&D(a,b,c),p(a,b)}function f(a,b){var c,d=u();b.draggable({zIndex:9,delay:50,opacity:h("dragOpacity"),revertDuration:h("dragRevertDuration"),start:function(e,f){j("eventDragStart",b,a,e,f),r(a,b),d.start(function(d,e,f,g){b.draggable("option","revert",!d||!f&&!g),w(),d?(c=7*f+g*(h("isRTL")?-1:1),v(i(m(a.start),c),i(x(a),c))):c=0},e,"drag")},stop:function(e,f){d.stop(),w(),j("eventDragStop",b,a,e,f),c?s(this,a,c,0,a.allDay,e,f):(b.css("filter",""),q(a,b))}})}var g=this;g.renderEvents=b,g.compileDaySegs=d,g.clearEvents=c,g.bindDaySeg=e,lb.call(g);var h=g.opt,j=g.trigger,k=g.isEventDraggable,l=g.isEventResizable,n=g.reportEvents,o=g.reportEventClear,p=g.eventElementHandlers,q=g.showEvents,r=g.hideEvents,s=g.eventDrop,t=g.getDaySegmentContainer,u=g.getHoverListener,v=g.renderDayOverlay,w=g.clearOverlays,y=g.getRowCnt,z=g.getColCnt,A=g.renderDaySegs,D=g.resizableDayEvent}function fb(a,b){function c(a,b){b&&i(a,7*b);var c=i(m(a),-((a.getDay()-e("firstDay")+7)%7)),h=i(m(c),7),j=m(c),k=m(h),l=e("weekends");l||(o(j),o(k,-1,!0)),d.title=g(j,i(m(k),-1),e("titleFormat")),d.start=c,d.end=h,d.visStart=j,d.visEnd=k,f(l?7:5)}var d=this;d.render=c,hb.call(d,a,b,"agendaWeek");var e=d.opt,f=d.renderAgenda,g=b.formatDates}function gb(a,b){function c(a,b){b&&(i(a,b),e("weekends")||o(a,0>b?-1:1));var c=m(a,!0),h=i(m(c),1);d.title=g(a,e("titleFormat")),d.start=d.visStart=c,d.end=d.visEnd=h,f(1)}var d=this;d.render=c,hb.call(d,a,b,"agendaDay");var e=d.opt,f=d.renderAgenda,g=b.formatDate}function hb(c,d,e){function f(a){Kb=a,g(),ab?cc():h(),j()}function g(){Qb=ac("theme")?"ui":"fc",Sb=ac("weekends")?0:1,Rb=ac("firstDay"),(Tb=ac("isRTL"))?(Ub=-1,Vb=Kb-1):(Ub=1,Vb=0),Wb=t(ac("minTime")),Xb=t(ac("maxTime")),Yb=ac("columnFormat"),Zb=ac("weekNumbers"),$b=ac("weekNumberTitle"),_b="iso"!=ac("weekNumberCalculation")?"w":"W",Hb=ac("snapMinutes")||ac("slotMinutes")}function h(){var b,d,e,f,g,h=Qb+"-widget-header",i=Qb+"-widget-content",j=0==ac("slotMinutes")%15;for(b="<table style='width:100%' class='fc-agenda-days fc-border-separate' cellspacing='0'><thead><tr>",b+=Zb?"<th class='fc-agenda-axis fc-week-number "+h+"'/>":"<th class='fc-agenda-axis "+h+"'>&nbsp;</th>",d=0;Kb>d;d++)b+="<th class='fc- fc-col"+d+" "+h+"'/>";for(b+="<th class='fc-agenda-gutter "+h+"'>&nbsp;</th>"+"</tr>"+"</thead>"+"<tbody>"+"<tr>"+"<th class='fc-agenda-axis "+h+"'>&nbsp;</th>",d=0;Kb>d;d++)b+="<td class='fc- fc-col"+d+" "+i+"'>"+"<div>"+"<div class='fc-day-content'>"+"<div style='position:relative'>&nbsp;</div>"+"</div>"+"</div>"+"</td>";for(b+="<td class='fc-agenda-gutter "+i+"'>&nbsp;</td>"+"</tr>"+"</tbody>"+"</table>",ab=a(b).appendTo(c),bb=ab.find("thead"),cb=bb.find("th").slice(1,-1),db=ab.find("tbody"),eb=db.find("td").slice(0,-1),fb=eb.find("div.fc-day-content div"),gb=eb.eq(0),hb=gb.find("> div"),X(bb.add(bb.find("tr"))),X(db.add(db.find("tr"))),yb=bb.find("th:first"),zb=ab.find(".fc-agenda-gutter"),jb=a("<div style='position:absolute;z-index:2;left:0;width:100%'/>").appendTo(c),ac("allDaySlot")?(lb=a("<div style='position:absolute;z-index:8;top:0;left:0'/>").appendTo(jb),b="<table style='width:100%' class='fc-agenda-allday' cellspacing='0'><tr><th class='"+h+" fc-agenda-axis'>"+ac("allDayText")+"</th>"+"<td>"+"<div class='fc-day-content'><div style='position:relative'/></div>"+"</td>"+"<th class='"+h+" fc-agenda-gutter'>&nbsp;</th>"+"</tr>"+"</table>",qb=a(b).appendTo(jb),sb=qb.find("tr"),v(sb.find("td")),yb=yb.add(qb.find("th:first")),zb=zb.add(qb.find("th.fc-agenda-gutter")),jb.append("<div class='fc-agenda-divider "+h+"'>"+"<div class='fc-agenda-divider-inner'/>"+"</div>")):lb=a([]),tb=a("<div style='position:absolute;width:100%;overflow-x:hidden;overflow-y:auto'/>").appendTo(jb),ub=a("<div style='position:relative;width:100%;overflow:hidden'/>").appendTo(tb),vb=a("<div style='position:absolute;z-index:8;top:0;left:0'/>").appendTo(ub),b="<table class='fc-agenda-slots' style='width:100%' cellspacing='0'><tbody>",e=n(),f=k(m(e),Xb),k(e,Wb),Lb=0,d=0;f>e;d++)g=e.getMinutes(),b+="<tr class='fc-slot"+d+" "+(g?"fc-minor":"")+"'>"+"<th class='fc-agenda-axis "+h+"'>"+(j&&g?"&nbsp;":jc(e,ac("axisFormat")))+"</th>"+"<td class='"+i+"'>"+"<div style='position:relative'>&nbsp;</div>"+"</td>"+"</tr>",k(e,ac("slotMinutes")),Lb++;b+="</tbody></table>",wb=a(b).appendTo(ub),xb=wb.find("div:first"),w(wb.find("td")),yb=yb.add(wb.find("th:first"))}function j(){var a,b,c,d,e=l(new Date);if(Zb){var f=jc(H(0),_b);Tb?f+=$b:f=$b+f,bb.find(".fc-week-number").text(f)}for(a=0;Kb>a;a++)d=H(a),b=cb.eq(a),b.html(jc(d,Yb)),c=eb.eq(a),+d==+e?c.addClass(Qb+"-state-highlight fc-today"):c.removeClass(Qb+"-state-highlight fc-today"),Y(b.add(c),d)}function o(a,c){a===b&&(a=Cb),Cb=a,kc={};var d=db.position().top,e=tb.position().top,f=Math.min(a-d,wb.height()+e+1);hb.height(f-K(gb)),jb.css("top",d),tb.height(f-e-1),Gb=xb.height()+1,Ib=ac("slotMinutes")/Hb,Jb=Gb/Ib,c&&r()}function q(b){Bb=b,Ob.clear(),Db=0,E(yb.width("").each(function(b,c){Db=Math.max(Db,a(c).outerWidth())}),Db);var c=tb[0].clientWidth;Fb=tb.width()-c,Fb?(E(zb,Fb),zb.show().prev().removeClass("fc-last")):zb.hide().prev().addClass("fc-last"),Eb=Math.floor((c-Db)/Kb),E(cb.slice(0,-1),Eb)}function r(){function a(){tb.scrollTop(d)}var b=n(),c=m(b);c.setHours(ac("firstHour"));var d=L(b,c)+1;a(),setTimeout(a,0)}function s(){Pb=tb.scrollTop()}function u(){tb.scrollTop(Pb)}function v(a){a.click(x).mousedown(hc)}function w(a){a.click(x).mousedown(U)}function x(a){if(!ac("selectable")){var b=Math.min(Kb-1,Math.floor((a.pageX-ab.offset().left-Db)/Eb)),c=H(b),d=this.parentNode.className.match(/fc-slot(\d+)/);if(d){var e=parseInt(d[1])*ac("slotMinutes"),f=Math.floor(e/60);c.setHours(f),c.setMinutes(e%60+Wb),bc("dayClick",eb[b],c,!1,a)}else bc("dayClick",eb[b],c,!0,a)}}function y(a,b,c){c&&Mb.build();var d,e,f=m(_.visStart);Tb?(d=p(b,f)*Ub+Vb+1,e=p(a,f)*Ub+Vb+1):(d=p(a,f),e=p(b,f)),d=Math.max(0,d),e=Math.min(Kb,e),e>d&&v(z(0,d,0,e-1))}function z(a,b,c,d){var e=Mb.rect(a,b,c,d,jb);return dc(e,jb)}function A(a,b){for(var c=m(_.visStart),d=i(m(c),1),e=0;Kb>e;e++){var f=new Date(Math.max(c,a)),g=new Date(Math.min(d,b));if(g>f){var h=e*Ub+Vb,j=Mb.rect(0,h,0,h,ub),k=L(c,f),l=L(c,g);j.top=k,j.height=l-k,w(dc(j,ub))}i(c,1),i(d,1)}}function B(a){return Ob.left(a)}function C(a){return Ob.right(a)}function D(a){return{row:Math.floor(p(a,_.visStart)/7),col:J(a.getDay())}}function G(a){var b=H(a.col),c=a.row;return ac("allDaySlot")&&c--,c>=0&&k(b,Wb+c*Hb),b}function H(a){return i(m(_.visStart),a*Ub+Vb)}function I(a){return ac("allDaySlot")&&!a.row}function J(a){return(a-Math.max(Rb,Sb)+Kb)%Kb*Ub+Vb}function L(a,c){if(a=m(a,!0),c<k(m(a),Wb))return 0;if(c>=k(m(a),Xb))return wb.height();var d=ac("slotMinutes"),e=60*c.getHours()+c.getMinutes()-Wb,f=Math.floor(e/d),g=kc[f];return g===b&&(g=kc[f]=wb.find("tr:eq("+f+") td div")[0].offsetTop),Math.max(0,Math.round(g-1+Gb*(e%d/d)))}function M(){return{left:Db,right:Bb-Fb}}function N(){return sb}function O(a){var b=m(a.start);return a.allDay?b:k(b,ac("defaultEventMinutes"))}function P(a,b){return b?m(a):k(m(a),ac("slotMinutes"))}function R(a,b,c){c?ac("allDaySlot")&&y(a,i(m(b),1),!0):S(a,b)}function S(b,c){var d=ac("selectHelper");if(Mb.build(),d){var e=p(b,_.visStart)*Ub+Vb;if(e>=0&&Kb>e){var f=Mb.rect(0,e,0,e,ub),g=L(b,b),h=L(b,c);if(h>g){if(f.top=g,f.height=h-g,f.left+=2,f.width-=5,a.isFunction(d)){var i=d(b,c);i&&(f.position="absolute",f.zIndex=8,Ab=a(i).css(f).appendTo(ub))}else f.isStart=!0,f.isEnd=!0,Ab=a(ic({title:"",start:b,end:c,className:["fc-select-helper"],editable:!1},f)),Ab.css("opacity",ac("dragOpacity"));Ab&&(w(Ab),ub.append(Ab),E(Ab,f.width,!0),F(Ab,f.height,!0))}}}else A(b,c)}function T(){ec(),Ab&&(Ab.remove(),Ab=null)}function U(b){if(1==b.which&&ac("selectable")){gc(b);var c;Nb.start(function(a,b){if(T(),a&&a.col==b.col&&!I(a)){var d=G(b),e=G(a);c=[d,k(m(d),Hb),e,k(m(e),Hb)].sort(Q),S(c[0],c[3])}else c=null},b),a(document).one("mouseup",function(a){Nb.stop(),c&&(+c[0]==+c[1]&&V(c[0],!1,a),fc(c[0],c[3],!1,a))})}}function V(a,b,c){bc("dayClick",eb[J(a.getDay())],a,b,c)}function Z(a,b){Nb.start(function(a){if(ec(),a)if(I(a))z(a.row,a.col,a.row,a.col);else{var b=G(a),c=k(m(b),ac("defaultEventMinutes"));A(b,c)}},b)}function $(a,b,c){var d=Nb.stop();ec(),d&&bc("drop",a,G(d),I(d),b,c)}var _=this;_.renderAgenda=f,_.setWidth=q,_.setHeight=o,_.beforeHide=s,_.afterShow=u,_.defaultEventEnd=O,_.timePosition=L,_.dayOfWeekCol=J,_.dateCell=D,_.cellDate=G,_.cellIsAllDay=I,_.allDayRow=N,_.allDayBounds=M,_.getHoverListener=function(){return Nb},_.colContentLeft=B,_.colContentRight=C,_.getDaySegmentContainer=function(){return lb},_.getSlotSegmentContainer=function(){return vb},_.getMinMinute=function(){return Wb},_.getMaxMinute=function(){return Xb},_.getBodyContent=function(){return ub},_.getRowCnt=function(){return 1},_.getColCnt=function(){return Kb},_.getColWidth=function(){return Eb},_.getSnapHeight=function(){return Jb},_.getSnapMinutes=function(){return Hb},_.defaultSelectionEnd=P,_.renderDayOverlay=y,_.renderSelection=R,_.clearSelection=T,_.reportDayClick=V,_.dragStart=Z,_.dragStop=$,kb.call(_,c,d,e),nb.call(_),mb.call(_),ib.call(_);var ab,bb,cb,db,eb,fb,gb,hb,jb,lb,qb,sb,tb,ub,vb,wb,xb,yb,zb,Ab,Bb,Cb,Db,Eb,Fb,Gb,Hb,Ib,Jb,Kb,Lb,Mb,Nb,Ob,Pb,Qb,Rb,Sb,Tb,Ub,Vb,Wb,Xb,Yb,Zb,$b,_b,ac=_.opt,bc=_.trigger,cc=_.clearEvents,dc=_.renderOverlay,ec=_.clearOverlays,fc=_.reportSelection,gc=_.unselect,hc=_.daySelectionMousedown,ic=_.slotSegHtml,jc=d.formatDate,kc={};W(c.addClass("fc-agenda")),Mb=new ob(function(b,c){function d(a){return Math.max(i,Math.min(j,a))}var e,f,g;cb.each(function(b,d){e=a(d),f=e.offset().left,b&&(g[1]=f),g=[f],c[b]=g}),g[1]=f+e.outerWidth(),ac("allDaySlot")&&(e=sb,f=e.offset().top,b[0]=[f,f+e.outerHeight()]);for(var h=ub.offset().top,i=tb.offset().top,j=i+tb.outerHeight(),k=0;Lb*Ib>k;k++)b.push([d(h+Jb*k),d(h+Jb*(k+1))])}),Nb=new pb(Mb),Ob=new rb(function(a){return fb.eq(a)})}function ib(){function c(a,b){y(a);var c,d=a.length,g=[],i=[];for(c=0;d>c;c++)a[c].allDay?g.push(a[c]):i.push(a[c]);s("allDaySlot")&&(Q(e(g),b),E()),h(f(i),b),t("eventAfterAllRender")}function d(){z(),H().empty(),I().empty()}function e(b){var c,d,e,f,g=C(B(b,a.map(b,x),r.visStart,r.visEnd)),h=g.length,i=[];for(c=0;h>c;c++)for(d=g[c],e=0;e<d.length;e++)f=d[e],f.row=0,f.level=c,i.push(f);return i}function f(b){var c,d,e,f,h,j,l=S(),n=M(),o=L(),p=k(m(r.visStart),n),q=a.map(b,g),s=[];for(c=0;l>c;c++){for(d=C(B(b,q,p,k(m(p),o-n))),jb(d),e=0;e<d.length;e++)for(f=d[e],h=0;h<f.length;h++)j=f[h],j.col=c,j.level=e,s.push(j);
3
+ i(p,1,!0)}return s}function g(a){return a.end?m(a.end):k(m(a.start),s("defaultEventMinutes"))}function h(c,d){var e,f,g,h,i,k,l,m,o,p,q,u,v,w,x,y,z,A,B,C,E,F,H=c.length,J="",L={},M={},Q=I(),R=S();for((C=s("isRTL"))?(E=-1,F=R-1):(E=1,F=0),e=0;H>e;e++)f=c[e],g=f.event,h=N(f.start,f.start),i=N(f.start,f.end),k=f.col,l=f.level,m=f.forward||0,o=O(k*E+F),p=P(k*E+F)-o,p=Math.min(p-6,.95*p),q=l?p/(l+m+1):m?2*(p/(m+1)-6):p,u=o+p/(l+m+1)*l*E+(C?p-q:0),f.top=h,f.left=u,f.outerWidth=q,f.outerHeight=i-h,J+=j(g,f);for(Q[0].innerHTML=J,v=Q.children(),e=0;H>e;e++)f=c[e],g=f.event,w=a(v[e]),x=t("eventRender",g,g,w,r),x===!1?w.remove():(x&&x!==!0&&(w.remove(),w=a(x).css({position:"absolute",top:f.top,left:f.left}).appendTo(Q)),f.element=w,g._id===d?n(g,w,f):w[0]._fci=e,$(g,w));for(D(Q,c,n),e=0;H>e;e++)f=c[e],(w=f.element)&&(z=L[y=f.key=V(w[0])],f.vsides=z===b?L[y]=K(w,!0):z,z=M[y],f.hsides=z===b?M[y]=G(w,!0):z,A=w.find(".fc-event-title"),A.length&&(f.contentTop=A[0].offsetTop));for(e=0;H>e;e++)f=c[e],(w=f.element)&&(w[0].style.width=Math.max(0,f.outerWidth-f.hsides)+"px",B=Math.max(0,f.outerHeight-f.vsides),w[0].style.height=B+"px",g=f.event,f.contentTop!==b&&B-f.contentTop<10&&(w.find("div.fc-event-time").text(gb(g.start,s("timeFormat"))+" - "+g.title),w.find("div.fc-event-title").remove()),t("eventAfterRender",g,g,w))}function j(a,b){var c="<",d=a.url,e=Z(a,s),f=["fc-event","fc-event-vert"];return u(a)&&f.push("fc-event-draggable"),b.isStart&&f.push("fc-event-start"),b.isEnd&&f.push("fc-event-end"),f=f.concat(a.className),a.source&&(f=f.concat(a.source.className||[])),c+=d?"a href='"+U(a.url)+"'":"div",c+=" class='"+f.join(" ")+"'"+" style='position:absolute;z-index:8;top:"+b.top+"px;left:"+b.left+"px;"+e+"'"+">"+"<div class='fc-event-inner'>"+"<div class='fc-event-time'>"+U(hb(a.start,a.end,s("timeFormat")))+"</div>"+"<div class='fc-event-title'>"+U(a.title)+"</div>"+"</div>"+"<div class='fc-event-bg'></div>",b.isEnd&&v(a)&&(c+="<div class='ui-resizable-handle ui-resizable-s'>=</div>"),c+="</"+(d?"a":"div")+">"}function l(a,b,c){u(a)&&o(a,b,c.isStart),c.isEnd&&v(a)&&R(a,b,c),A(a,b)}function n(a,b,c){var d=b.find("div.fc-event-time");u(a)&&p(a,b,d),c.isEnd&&v(a)&&q(a,b,d),A(a,b)}function o(a,b,c){function d(){h||(b.width(e).height("").draggable("option","grid",null),h=!0)}var e,f,g,h=!0,j=s("isRTL")?-1:1,k=J(),l=T(),n=W(),o=X(),p=M();b.draggable({zIndex:9,opacity:s("dragOpacity","month"),revertDuration:s("dragRevertDuration"),start:function(p,q){t("eventDragStart",b,a,p,q),ab(a,b),e=b.width(),k.start(function(e,k,p,q){eb(),e?(f=!1,g=q*j,e.row?c?h&&(b.width(l-10),F(b,n*Math.round((a.end?(a.end-a.start)/Bb:s("defaultEventMinutes"))/o)),b.draggable("option","grid",[l,1]),h=!1):f=!0:(db(i(m(a.start),g),i(x(a),g)),d()),f=f||h&&!g):(d(),f=!0),b.draggable("option","revert",f)},p,"drag")},stop:function(c,e){if(k.stop(),eb(),t("eventDragStop",b,a,c,e),f)d(),b.css("filter",""),_(a,b);else{var i=0;h||(i=Math.round((b.offset().top-Y().offset().top)/n)*o+p-(60*a.start.getHours()+a.start.getMinutes())),bb(this,a,g,i,h,c,e)}}})}function p(a,b,c){function d(b){var d,e=k(m(a.start),b);a.end&&(d=k(m(a.end),b)),c.text(hb(e,d,s("timeFormat")))}function e(){l&&(c.css("display",""),b.draggable("option","grid",[q,r]),l=!1)}var f,g,h,j,l=!1,n=s("isRTL")?-1:1,o=J(),p=S(),q=T(),r=W(),u=X();b.draggable({zIndex:9,scroll:!1,grid:[q,r],axis:1==p?"y":!1,opacity:s("dragOpacity"),revertDuration:s("dragRevertDuration"),start:function(d,k){t("eventDragStart",b,a,d,k),ab(a,b),f=b.position(),h=j=0,o.start(function(d,f,h,j){b.draggable("option","revert",!d),eb(),d&&(g=j*n,s("allDaySlot")&&!d.row?(l||(l=!0,c.hide(),b.draggable("option","grid",null)),db(i(m(a.start),g),i(x(a),g))):e())},d,"drag")},drag:function(a,b){h=Math.round((b.position.top-f.top)/r)*u,h!=j&&(l||d(h),j=h)},stop:function(c,i){var j=o.stop();eb(),t("eventDragStop",b,a,c,i),j&&(g||h||l)?bb(this,a,g,l?0:h,l,c,i):(e(),b.css("filter",""),b.css(f),d(0),_(a,b))}})}function q(a,b,c){var d,e,f=W(),g=X();b.resizable({handles:{s:".ui-resizable-handle"},grid:f,start:function(c,f){d=e=0,ab(a,b),b.css("z-index",9),t("eventResizeStart",this,a,c,f)},resize:function(h,i){d=Math.round((Math.max(f,b.height())-i.originalSize.height)/f),d!=e&&(c.text(hb(a.start,d||a.end?k(w(a),g*d):null,s("timeFormat"))),e=d)},stop:function(c,e){t("eventResizeStop",this,a,c,e),d?cb(this,a,0,g*d,c,e):(b.css("z-index",8),_(a,b))}})}var r=this;r.renderEvents=c,r.compileDaySegs=e,r.clearEvents=d,r.slotSegHtml=j,r.bindDaySeg=l,lb.call(r);var s=r.opt,t=r.trigger,u=r.isEventDraggable,v=r.isEventResizable,w=r.eventEnd,y=r.reportEvents,z=r.reportEventClear,A=r.eventElementHandlers,E=r.setHeight,H=r.getDaySegmentContainer,I=r.getSlotSegmentContainer,J=r.getHoverListener,L=r.getMaxMinute,M=r.getMinMinute,N=r.timePosition,O=r.colContentLeft,P=r.colContentRight,Q=r.renderDaySegs,R=r.resizableDayEvent,S=r.getColCnt,T=r.getColWidth,W=r.getSnapHeight,X=r.getSnapMinutes,Y=r.getBodyContent,$=r.reportEventElement,_=r.showEvents,ab=r.hideEvents,bb=r.eventDrop,cb=r.eventResize,db=r.renderDayOverlay,eb=r.clearOverlays,fb=r.calendar,gb=fb.formatDate,hb=fb.formatDates}function jb(a){var b,c,d,e,f,g;for(b=a.length-1;b>0;b--)for(e=a[b],c=0;c<e.length;c++)for(f=e[c],d=0;d<a[b-1].length;d++)g=a[b-1][d],A(f,g)&&(g.forward=Math.max(g.forward||0,(f.forward||0)+1))}function kb(a,c,d){function e(a,b){var c=F[a];return"object"==typeof c?T(c,b||d):c}function f(a,b){return c.trigger.apply(c,[a,b||y].concat(Array.prototype.slice.call(arguments,2),[y]))}function g(a){return j(a)&&!e("disableDragging")}function h(a){return j(a)&&!e("disableResizing")}function j(a){return _(a.editable,(a.source||{}).editable,e("editable"))}function l(a){C={};var b,c,d=a.length;for(b=0;d>b;b++)c=a[b],C[c._id]?C[c._id].push(c):C[c._id]=[c]}function n(a){return a.end?m(a.end):z(a)}function o(a,b){D.push(b),E[a._id]?E[a._id].push(b):E[a._id]=[b]}function p(){D=[],E={}}function q(a,b){b.click(function(c){return b.hasClass("ui-draggable-dragging")||b.hasClass("ui-resizable-resizing")?void 0:f("eventClick",this,a,c)}).hover(function(b){f("eventMouseover",this,a,b)},function(b){f("eventMouseout",this,a,b)})}function r(a,b){t(a,b,"show")}function s(a,b){t(a,b,"hide")}function t(a,b,c){var d,e=E[a._id],f=e.length;for(d=0;f>d;d++)b&&e[d][0]==b[0]||e[d][c]()}function u(a,b,c,d,e,g,h){var i=b.allDay,j=b._id;w(C[j],c,d,e),f("eventDrop",a,b,c,d,e,function(){w(C[j],-c,-d,i),B(j)},g,h),B(j)}function v(a,b,c,d,e,g){var h=b._id;x(C[h],c,d),f("eventResize",a,b,c,d,function(){x(C[h],-c,-d),B(h)},e,g),B(h)}function w(a,c,d,e){d=d||0;for(var f,g=a.length,h=0;g>h;h++)f=a[h],e!==b&&(f.allDay=e),k(i(f.start,c,!0),d),f.end&&(f.end=k(i(f.end,c,!0),d)),A(f,F)}function x(a,b,c){c=c||0;for(var d,e=a.length,f=0;e>f;f++)d=a[f],d.end=k(i(n(d),b,!0),c),A(d,F)}var y=this;y.element=a,y.calendar=c,y.name=d,y.opt=e,y.trigger=f,y.isEventDraggable=g,y.isEventResizable=h,y.reportEvents=l,y.eventEnd=n,y.reportEventElement=o,y.reportEventClear=p,y.eventElementHandlers=q,y.showEvents=r,y.hideEvents=s,y.eventDrop=u,y.eventResize=v;var z=y.defaultEventEnd,A=c.normalizeEvent,B=c.reportEventChange,C={},D=[],E={},F=c.options}function lb(){function c(a,b){var c,d,i,m,q,r,s,t,u=N(),v=B(),w=C(),x=0,y=a.length;for(u[0].innerHTML=e(a),f(a,u.children()),g(a),h(a,u,b),j(a),k(a),l(a),c=n(),d=0;v>d;d++){for(i=0,m=[],q=0;w>q;q++)m[q]=0;for(;y>x&&(r=a[x]).row==d;){for(s=R(m.slice(r.startCol,r.endCol)),r.top=s,s+=r.outerHeight,t=r.startCol;t<r.endCol;t++)m[t]=s;x++}c[d].height(R(m))}p(a,o(c))}function d(b,c,d){var g,h,i,m=a("<div/>"),q=N(),r=b.length;for(m[0].innerHTML=e(b),g=m.children(),q.append(g),f(b,g),j(b),k(b),l(b),p(b,o(n())),g=[],h=0;r>h;h++)i=b[h].element,i&&(b[h].row===c&&i.css("top",d),g.push(i[0]));return a(g)}function e(a){var b,c,d,e,f,g,h,i,j,k,l=s("isRTL"),m=a.length,n=F(),o=n.left,p=n.right,q="";for(b=0;m>b;b++)c=a[b],d=c.event,f=["fc-event","fc-event-hori"],u(d)&&f.push("fc-event-draggable"),c.isStart&&f.push("fc-event-start"),c.isEnd&&f.push("fc-event-end"),l?(g=J(c.end.getDay()-1),h=J(c.start.getDay()),i=c.isEnd?H(g):o,j=c.isStart?I(h):p):(g=J(c.start.getDay()),h=J(c.end.getDay()-1),i=c.isStart?H(g):o,j=c.isEnd?I(h):p),f=f.concat(d.className),d.source&&(f=f.concat(d.source.className||[])),e=d.url,k=Z(d,s),q+=e?"<a href='"+U(e)+"'":"<div",q+=" class='"+f.join(" ")+"'"+" style='position:absolute;z-index:8;left:"+i+"px;"+k+"'"+">"+"<div class='fc-event-inner'>",!d.allDay&&c.isStart&&(q+="<span class='fc-event-time'>"+U(P(d.start,d.end,s("timeFormat")))+"</span>"),q+="<span class='fc-event-title'>"+U(d.title)+"</span>"+"</div>",c.isEnd&&v(d)&&(q+="<div class='ui-resizable-handle ui-resizable-"+(l?"w":"e")+"'>"+"&nbsp;&nbsp;&nbsp;"+"</div>"),q+="</"+(e?"a":"div")+">",c.left=i,c.outerWidth=j-i,c.startCol=g,c.endCol=h+1;return q}function f(b,c){var d,e,f,g,h,i=b.length;for(d=0;i>d;d++)e=b[d],f=e.event,g=a(c[d]),h=t("eventRender",f,f,g,r),h===!1?g.remove():(h&&h!==!0&&(h=a(h).css({position:"absolute",left:e.left}),g.replaceWith(h),g=h),e.element=g)}function g(a){var b,c,d,e=a.length;for(b=0;e>b;b++)c=a[b],d=c.element,d&&x(c.event,d)}function h(a,b,c){var d,e,f,g,h=a.length;for(d=0;h>d;d++)e=a[d],f=e.element,f&&(g=e.event,g._id===c?O(g,f,e):f[0]._fci=d);D(b,a,O)}function j(a){var c,d,e,f,g,h=a.length,i={};for(c=0;h>c;c++)d=a[c],e=d.element,e&&(f=d.key=V(e[0]),g=i[f],g===b&&(g=i[f]=G(e,!0)),d.hsides=g)}function k(a){var b,c,d,e=a.length;for(b=0;e>b;b++)c=a[b],d=c.element,d&&(d[0].style.width=Math.max(0,c.outerWidth-c.hsides)+"px")}function l(a){var c,d,e,f,g,h=a.length,i={};for(c=0;h>c;c++)d=a[c],e=d.element,e&&(f=d.key,g=i[f],g===b&&(g=i[f]=M(e)),d.outerHeight=e[0].offsetHeight+g)}function n(){var a,b=B(),c=[];for(a=0;b>a;a++)c[a]=E(a).find("div.fc-day-content > div");return c}function o(a){var b,c=a.length,d=[];for(b=0;c>b;b++)d[b]=a[b][0].offsetTop;return d}function p(a,b){var c,d,e,f,g=a.length;for(c=0;g>c;c++)d=a[c],e=d.element,e&&(e[0].style.top=b[d.row]+(d.top||0)+"px",f=d.event,t("eventAfterRender",f,f,e))}function q(b,c,e){var f=s("isRTL"),g=f?"w":"e",h=c.find(".ui-resizable-"+g),j=!1;W(c),c.mousedown(function(a){a.preventDefault()}).click(function(a){j&&(a.preventDefault(),a.stopImmediatePropagation())}),h.mousedown(function(h){function k(c){t("eventResizeStop",this,b,c),a("body").css("cursor",""),o.stop(),S(),l&&A(this,b,l,0,c),setTimeout(function(){j=!1},0)}if(1==h.which){j=!0;var l,n,o=r.getHoverListener(),p=B(),q=C(),s=f?-1:1,u=f?q-1:0,v=c.css("top"),x=a.extend({},b),D=K(b.start);T(),a("body").css("cursor",g+"-resize").one("mouseup",k),t("eventResizeStart",this,b,h),o.start(function(a,c){if(a){var h=Math.max(D.row,a.row),j=a.col;1==p&&(h=0),h==D.row&&(j=f?Math.min(D.col,j):Math.max(D.col,j)),l=7*h+j*s+u-(7*c.row+c.col*s+u);var k=i(w(b),l,!0);if(l){x.end=k;var o=n;n=d(L([x]),e.row,v),n.find("*").css("cursor",g+"-resize"),o&&o.remove(),z(b)}else n&&(y(b),n.remove(),n=null);S(),Q(b.start,i(m(k),1))}},h)}})}var r=this;r.renderDaySegs=c,r.resizableDayEvent=q;var s=r.opt,t=r.trigger,u=r.isEventDraggable,v=r.isEventResizable,w=r.eventEnd,x=r.reportEventElement,y=r.showEvents,z=r.hideEvents,A=r.eventResize,B=r.getRowCnt,C=r.getColCnt;r.getColWidth;var E=r.allDayRow,F=r.allDayBounds,H=r.colContentLeft,I=r.colContentRight,J=r.dayOfWeekCol,K=r.dateCell,L=r.compileDaySegs,N=r.getDaySegmentContainer,O=r.bindDaySeg,P=r.calendar.formatDates,Q=r.renderDayOverlay,S=r.clearOverlays,T=r.clearSelection}function mb(){function b(a,b,e){c(),b||(b=i(a,e)),j(a,b,e),d(a,b,e)}function c(a){l&&(l=!1,k(),h("unselect",null,a))}function d(a,b,c,d){l=!0,h("select",null,a,b,c,d)}function e(b){var e=f.cellDate,h=f.cellIsAllDay,i=f.getHoverListener(),l=f.reportDayClick;if(1==b.which&&g("selectable")){c(b);var m;i.start(function(a,b){k(),a&&h(a)?(m=[e(b),e(a)].sort(Q),j(m[0],m[1],!0)):m=null},b),a(document).one("mouseup",function(a){i.stop(),m&&(+m[0]==+m[1]&&l(m[0],!0,a),d(m[0],m[1],!0,a))})}}var f=this;f.select=b,f.unselect=c,f.reportSelection=d,f.daySelectionMousedown=e;var g=f.opt,h=f.trigger,i=f.defaultSelectionEnd,j=f.renderSelection,k=f.clearSelection,l=!1;g("selectable")&&g("unselectAuto")&&a(document).mousedown(function(b){var d=g("unselectCancel");d&&a(b.target).parents(d).length||c(b)})}function nb(){function b(b,c){var d=f.shift();return d||(d=a("<div class='fc-cell-overlay' style='position:absolute;z-index:3'/>")),d[0].parentNode!=c[0]&&d.appendTo(c),e.push(d.css(b).show()),d}function c(){for(var a;a=e.shift();)f.push(a.hide().unbind())}var d=this;d.renderOverlay=b,d.clearOverlays=c;var e=[],f=[]}function ob(a){var b,c,d=this;d.build=function(){b=[],c=[],a(b,c)},d.cell=function(a,d){var e,f=b.length,g=c.length,h=-1,i=-1;for(e=0;f>e;e++)if(d>=b[e][0]&&d<b[e][1]){h=e;break}for(e=0;g>e;e++)if(a>=c[e][0]&&a<c[e][1]){i=e;break}return h>=0&&i>=0?{row:h,col:i}:null},d.rect=function(a,d,e,f,g){var h=g.offset();return{top:b[a][0]-h.top,left:c[d][0]-h.left,width:c[f][1]-c[d][0],height:b[e][1]-b[a][0]}}}function pb(b){function c(a){qb(a);var c=b.cell(a.pageX,a.pageY);(!c!=!g||c&&(c.row!=g.row||c.col!=g.col))&&(c?(f||(f=c),e(c,f,c.row-f.row,c.col-f.col)):e(c,f),g=c)}var d,e,f,g,h=this;h.start=function(h,i,j){e=h,f=g=null,b.build(),c(i),d=j||"mousemove",a(document).bind(d,c)},h.stop=function(){return a(document).unbind(d,c),g}}function qb(a){a.pageX===b&&(a.pageX=a.originalEvent.pageX,a.pageY=a.originalEvent.pageY)}function rb(a){function c(b){return e[b]=e[b]||a(b)}var d=this,e={},f={},g={};d.left=function(a){return f[a]=f[a]===b?c(a).position().left:f[a]},d.right=function(a){return g[a]=g[a]===b?d.left(a)+c(a).width():g[a]},d.clear=function(){e={},f={},g={}}}var sb={defaultView:"month",aspectRatio:1.35,header:{left:"title",center:"",right:"today prev,next"},weekends:!0,weekNumbers:!1,weekNumberCalculation:"iso",weekNumberTitle:"W",allDayDefault:!0,ignoreTimezone:!0,lazyFetching:!0,startParam:"start",endParam:"end",titleFormat:{month:"MMMM yyyy",week:"MMM d[ yyyy]{ '&#8212;'[ MMM] d yyyy}",day:"dddd, MMM d, yyyy"},columnFormat:{month:"ddd",week:"ddd M/d",day:"dddd M/d"},timeFormat:{"":"h(:mm)t"},isRTL:!1,firstDay:0,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"],buttonText:{prev:"<span class='fc-text-arrow'>&lsaquo;</span>",next:"<span class='fc-text-arrow'>&rsaquo;</span>",prevYear:"<span class='fc-text-arrow'>&laquo;</span>",nextYear:"<span class='fc-text-arrow'>&raquo;</span>",today:"today",month:"month",week:"week",day:"day"},theme:!1,buttonIcons:{prev:"circle-triangle-w",next:"circle-triangle-e"},unselectAuto:!0,dropAccept:"*"},tb={header:{left:"next,prev today",center:"",right:"title"},buttonText:{prev:"<span class='fc-text-arrow'>&rsaquo;</span>",next:"<span class='fc-text-arrow'>&lsaquo;</span>",prevYear:"<span class='fc-text-arrow'>&raquo;</span>",nextYear:"<span class='fc-text-arrow'>&laquo;</span>"},buttonIcons:{prev:"circle-triangle-e",next:"circle-triangle-w"}},ub=a.fullCalendar={version:"1.6.1"},vb=ub.views={};a.fn.fullCalendar=function(c){if("string"==typeof c){var e,f=Array.prototype.slice.call(arguments,1);return this.each(function(){var d=a.data(this,"fullCalendar");if(d&&a.isFunction(d[c])){var g=d[c].apply(d,f);e===b&&(e=g),"destroy"==c&&a.removeData(this,"fullCalendar")}}),e!==b?e:this}var g=c.eventSources||[];return delete c.eventSources,c.events&&(g.push(c.events),delete c.events),c=a.extend(!0,{},sb,c.isRTL||c.isRTL===b&&sb.isRTL?tb:{},c),this.each(function(b,e){var f=a(e),h=new d(f,c,g);f.data("fullCalendar",h),h.render()}),this},ub.sourceNormalizers=[],ub.sourceFetchers=[];var wb={dataType:"json",cache:!1},xb=1;ub.addDays=i,ub.cloneDate=m,ub.parseDate=r,ub.parseISO8601=s,ub.parseTime=t,ub.formatDate=u,ub.formatDates=v;var yb=["sun","mon","tue","wed","thu","fri","sat"],zb=864e5,Ab=36e5,Bb=6e4,Cb={s:function(a){return a.getSeconds()},ss:function(a){return S(a.getSeconds())},m:function(a){return a.getMinutes()},mm:function(a){return S(a.getMinutes())},h:function(a){return a.getHours()%12||12},hh:function(a){return S(a.getHours()%12||12)},H:function(a){return a.getHours()},HH:function(a){return S(a.getHours())},d:function(a){return a.getDate()},dd:function(a){return S(a.getDate())},ddd:function(a,b){return b.dayNamesShort[a.getDay()]},dddd:function(a,b){return b.dayNames[a.getDay()]},M:function(a){return a.getMonth()+1},MM:function(a){return S(a.getMonth()+1)},MMM:function(a,b){return b.monthNamesShort[a.getMonth()]},MMMM:function(a,b){return b.monthNames[a.getMonth()]},yy:function(a){return(a.getFullYear()+"").substring(2)},yyyy:function(a){return a.getFullYear()},t:function(a){return a.getHours()<12?"a":"p"},tt:function(a){return a.getHours()<12?"am":"pm"},T:function(a){return a.getHours()<12?"A":"P"},TT:function(a){return a.getHours()<12?"AM":"PM"},u:function(a){return u(a,"yyyy-MM-dd'T'HH:mm:ss'Z'")},S:function(a){var b=a.getDate();return b>10&&20>b?"th":["st","nd","rd"][b%10-1]||"th"},w:function(a,b){return b.weekNumberCalculation(a)},W:function(a){return w(a)}};ub.dateFormatters=Cb,ub.applyAll=$,vb.month=ab,vb.basicWeek=bb,vb.basicDay=cb,c({weekMode:"fixed"}),vb.agendaWeek=fb,vb.agendaDay=gb,c({allDaySlot:!0,allDayText:"all-day",firstHour:6,slotMinutes:30,defaultEventMinutes:120,axisFormat:"h(:mm)tt",timeFormat:{agenda:"h:mm{ - h:mm}"},dragOpacity:{agenda:.5},minTime:0,maxTime:24})}(jQuery);
js/time-picker.min.js CHANGED
@@ -1,2 +1,2 @@
1
- /*! event-organiser 2.3.0 2013-09-13 14:59 */
2
- !function($){function Timepicker(){this._curInst=null,this._disabledInputs=[],this._timepickerShowing=!1,this._inDialog=!1,this._dialogClass="ui-timepicker-dialog",this._mainDivId="ui-timepicker-div",this._inlineClass="ui-timepicker-inline",this._currentClass="ui-timepicker-current",this._dayOverClass="ui-timepicker-days-cell-over",this.regional=[],this.regional[""]={hourText:"Hour",minuteText:"Minute",amPmText:["AM","PM"],closeButtonText:"Done",nowButtonText:"Now",deselectButtonText:"Deselect"},this._defaults={showOn:"focus",button:null,showAnim:"fadeIn",showOptions:{},appendText:"",beforeShow:null,onSelect:null,onClose:null,timeSeparator:":",periodSeparator:" ",showPeriod:!1,showPeriodLabels:!0,showLeadingZero:!0,showMinutesLeadingZero:!0,altField:"",defaultTime:"now",myPosition:"left top",atPosition:"left bottom",onHourShow:null,onMinuteShow:null,hours:{starts:0,ends:23},minutes:{starts:0,ends:55,interval:5},rows:4,showHours:!0,showMinutes:!0,optionalMinutes:!1,showCloseButton:!1,showNowButton:!1,showDeselectButton:!1},$.extend(this._defaults,this.regional[""]),this.tpDiv=$('<div id="'+this._mainDivId+'" class="ui-timepicker ui-widget ui-helper-clearfix ui-corner-all " style="display: none"></div>')}function extendRemove(a,b){$.extend(a,b);for(var c in b)(null==b[c]||void 0==b[c])&&(a[c]=b[c]);return a}$.extend($.ui,{timepicker:{version:"0.3.1"}});var PROP_NAME="timepicker",tpuuid=(new Date).getTime();$.extend(Timepicker.prototype,{markerClassName:"hasTimepicker",log:function(){},_widgetTimepicker:function(){return this.tpDiv},setDefaults:function(a){return extendRemove(this._defaults,a||{}),this},_attachTimepicker:function(target,settings){var inlineSettings=null;for(var attrName in this._defaults){var attrValue=target.getAttribute("time:"+attrName);if(attrValue){inlineSettings=inlineSettings||{};try{inlineSettings[attrName]=eval(attrValue)}catch(err){inlineSettings[attrName]=attrValue}}}var nodeName=target.nodeName.toLowerCase(),inline="div"==nodeName||"span"==nodeName;target.id||(this.uuid+=1,target.id="tp"+this.uuid);var inst=this._newInst($(target),inline);inst.settings=$.extend({},settings||{},inlineSettings||{}),"input"==nodeName?(this._connectTimepicker(target,inst),this._setTimeFromField(inst)):inline&&this._inlineTimepicker(target,inst)},_newInst:function(a,b){var c=a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1");return{id:c,input:a,inline:b,tpDiv:b?$('<div class="'+this._inlineClass+' ui-timepicker ui-widget ui-helper-clearfix"></div>'):this.tpDiv}},_connectTimepicker:function(a,b){var c=$(a);b.append=$([]),b.trigger=$([]),c.hasClass(this.markerClassName)||(this._attachments(c,b),c.addClass(this.markerClassName).keydown(this._doKeyDown).keyup(this._doKeyUp).bind("setData.timepicker",function(a,c,d){b.settings[c]=d}).bind("getData.timepicker",function(a,c){return this._get(b,c)}),$.data(a,PROP_NAME,b))},_doKeyDown:function(a){var b=$.timepicker._getInst(a.target),c=!0;if(b._keyEvent=!0,$.timepicker._timepickerShowing)switch(a.keyCode){case 9:$.timepicker._hideTimepicker(),c=!1;break;case 13:return $.timepicker._updateSelectedValue(b),$.timepicker._hideTimepicker(),!1;case 27:$.timepicker._hideTimepicker();break;default:c=!1}else 36==a.keyCode&&a.ctrlKey?$.timepicker._showTimepicker(this):c=!1;c&&(a.preventDefault(),a.stopPropagation())},_doKeyUp:function(a){var b=$.timepicker._getInst(a.target);$.timepicker._setTimeFromField(b),$.timepicker._updateTimepicker(b)},_attachments:function(a,b){var c=this._get(b,"appendText"),d=this._get(b,"isRTL");b.append&&b.append.remove(),c&&(b.append=$('<span class="'+this._appendClass+'">'+c+"</span>"),a[d?"before":"after"](b.append)),a.unbind("focus.timepicker",this._showTimepicker),a.unbind("click.timepicker",this._adjustZIndex),b.trigger&&b.trigger.remove();var e=this._get(b,"showOn");if(("focus"==e||"both"==e)&&(a.bind("focus.timepicker",this._showTimepicker),a.bind("click.timepicker",this._adjustZIndex)),"button"==e||"both"==e){var f=this._get(b,"button");$(f).bind("click.timepicker",function(){return $.timepicker._timepickerShowing&&$.timepicker._lastInput==a[0]?$.timepicker._hideTimepicker():b.input.is(":disabled")||$.timepicker._showTimepicker(a[0]),!1})}},_inlineTimepicker:function(a,b){var c=$(a);c.hasClass(this.markerClassName)||(c.addClass(this.markerClassName).append(b.tpDiv).bind("setData.timepicker",function(a,c,d){b.settings[c]=d}).bind("getData.timepicker",function(a,c){return this._get(b,c)}),$.data(a,PROP_NAME,b),this._setTimeFromField(b),this._updateTimepicker(b),b.tpDiv.show())},_adjustZIndex:function(a){a=a.target||a;var b=$.timepicker._getInst(a);b.tpDiv.css("zIndex",$.timepicker._getZIndex(a)+1)},_showTimepicker:function(a){if(a=a.target||a,"input"!=a.nodeName.toLowerCase()&&(a=$("input",a.parentNode)[0]),!$.timepicker._isDisabledTimepicker(a)&&$.timepicker._lastInput!=a){$.timepicker._hideTimepicker();var b=$.timepicker._getInst(a);$.timepicker._curInst&&$.timepicker._curInst!=b&&$.timepicker._curInst.tpDiv.stop(!0,!0);var c=$.timepicker._get(b,"beforeShow");extendRemove(b.settings,c?c.apply(a,[a,b]):{}),b.lastVal=null,$.timepicker._lastInput=a,$.timepicker._setTimeFromField(b),$.timepicker._inDialog&&(a.value=""),$.timepicker._pos||($.timepicker._pos=$.timepicker._findPos(a),$.timepicker._pos[1]+=a.offsetHeight);var d=!1;$(a).parents().each(function(){return d|="fixed"==$(this).css("position"),!d}),d&&$.browser.opera&&($.timepicker._pos[0]-=document.documentElement.scrollLeft,$.timepicker._pos[1]-=document.documentElement.scrollTop);var e={left:$.timepicker._pos[0],top:$.timepicker._pos[1]};if($.timepicker._pos=null,b.tpDiv.css({position:"absolute",display:"block",top:"-1000px"}),$.timepicker._updateTimepicker(b),b.inline||"object"!=typeof $.ui.position||(b.tpDiv.position({of:b.input,my:$.timepicker._get(b,"myPosition"),at:$.timepicker._get(b,"atPosition"),collision:"flip"}),e=b.tpDiv.offset(),$.timepicker._pos=[e.top,e.left]),b._hoursClicked=!1,b._minutesClicked=!1,e=$.timepicker._checkOffset(b,e,d),b.tpDiv.css({position:$.timepicker._inDialog&&$.blockUI?"static":d?"fixed":"absolute",display:"none",left:e.left+"px",top:e.top+"px"}),!b.inline){var f=$.timepicker._get(b,"showAnim"),g=$.timepicker._get(b,"duration"),h=function(){$.timepicker._timepickerShowing=!0;var a=$.timepicker._getBorders(b.tpDiv);b.tpDiv.find("iframe.ui-timepicker-cover").css({left:-a[0],top:-a[1],width:b.tpDiv.outerWidth(),height:b.tpDiv.outerHeight()})};$.timepicker._adjustZIndex(a),$.effects&&$.effects[f]?b.tpDiv.show(f,$.timepicker._get(b,"showOptions"),g,h):b.tpDiv[f||"show"](f?g:null,h),f&&g||h(),b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus(),$.timepicker._curInst=b}}},_getZIndex:function(a){for(var b,c,d=$(a);d.length&&d[0]!==document;){if(b=d.css("position"),("absolute"===b||"relative"===b||"fixed"===b)&&(c=parseInt(d.css("zIndex"),10),!isNaN(c)&&0!==c))return c;d=d.parent()}},_refreshTimepicker:function(a){var b=this._getInst(a);b&&this._updateTimepicker(b)},_updateTimepicker:function(a){a.tpDiv.empty().append(this._generateHTML(a)),this._rebindDialogEvents(a)},_rebindDialogEvents:function(a){var b=$.timepicker._getBorders(a.tpDiv),c=this;a.tpDiv.find("iframe.ui-timepicker-cover").css({left:-b[0],top:-b[1],width:a.tpDiv.outerWidth(),height:a.tpDiv.outerHeight()}).end().find(".ui-timepicker-minute-cell").unbind().bind("click",{fromDoubleClick:!1},$.proxy($.timepicker.selectMinutes,this)).bind("dblclick",{fromDoubleClick:!0},$.proxy($.timepicker.selectMinutes,this)).end().find(".ui-timepicker-hour-cell").unbind().bind("click",{fromDoubleClick:!1},$.proxy($.timepicker.selectHours,this)).bind("dblclick",{fromDoubleClick:!0},$.proxy($.timepicker.selectHours,this)).end().find(".ui-timepicker td a").unbind().bind("mouseout",function(){$(this).removeClass("ui-state-hover"),-1!=this.className.indexOf("ui-timepicker-prev")&&$(this).removeClass("ui-timepicker-prev-hover"),-1!=this.className.indexOf("ui-timepicker-next")&&$(this).removeClass("ui-timepicker-next-hover")}).bind("mouseover",function(){c._isDisabledTimepicker(a.inline?a.tpDiv.parent()[0]:a.input[0])||($(this).parents(".ui-timepicker-calendar").find("a").removeClass("ui-state-hover"),$(this).addClass("ui-state-hover"),-1!=this.className.indexOf("ui-timepicker-prev")&&$(this).addClass("ui-timepicker-prev-hover"),-1!=this.className.indexOf("ui-timepicker-next")&&$(this).addClass("ui-timepicker-next-hover"))}).end().find("."+this._dayOverClass+" a").trigger("mouseover").end().find(".ui-timepicker-now").bind("click",function(a){$.timepicker.selectNow(a)}).end().find(".ui-timepicker-deselect").bind("click",function(a){$.timepicker.deselectTime(a)}).end().find(".ui-timepicker-close").bind("click",function(){$.timepicker._hideTimepicker()}).end()},_generateHTML:function(a){var b,c,d,e,f=1==this._get(a,"showPeriod"),g=1==this._get(a,"showPeriodLabels"),h=1==this._get(a,"showLeadingZero"),i=1==this._get(a,"showHours"),j=1==this._get(a,"showMinutes"),k=this._get(a,"amPmText"),l=this._get(a,"rows"),m=0,n=0,o=0,p=0,q=0,r=0,s=Array(),t=this._get(a,"hours"),u=null,v=0,w=this._get(a,"hourText"),x=this._get(a,"showCloseButton"),y=this._get(a,"closeButtonText"),z=this._get(a,"showNowButton"),A=this._get(a,"nowButtonText"),B=this._get(a,"showDeselectButton"),C=this._get(a,"deselectButtonText"),D=x||z||B;for(b=t.starts;b<=t.ends;b++)s.push(b);if(u=Math.ceil(s.length/l),g){for(v=0;v<s.length;v++)s[v]<12?o++:p++;v=0,m=Math.floor(o/s.length*l),n=Math.floor(p/s.length*l),l!=m+n&&(o&&(!p||!m||n&&o/m>=p/n)?m++:n++),q=Math.min(m,1),r=m+1,u=Math.ceil(Math.max(o/m,p/n))}if(e='<table class="ui-timepicker-table ui-widget-content ui-corner-all"><tr>',i){for(e+='<td class="ui-timepicker-hours"><div class="ui-timepicker-title ui-widget-header ui-helper-clearfix ui-corner-all">'+w+"</div>"+'<table class="ui-timepicker">',c=1;l>=c;c++){for(e+="<tr>",c==q&&g&&(e+='<th rowspan="'+m.toString()+'" class="periods" scope="row">'+k[0]+"</th>"),c==r&&g&&(e+='<th rowspan="'+n.toString()+'" class="periods" scope="row">'+k[1]+"</th>"),d=1;u>=d;d++)g&&r>c&&s[v]>=12?e+=this._generateHTMLHourCell(a,void 0,f,h):(e+=this._generateHTMLHourCell(a,s[v],f,h),v++);e+="</tr>"}e+="</tr></table></td>"}if(j&&(e+='<td class="ui-timepicker-minutes">',e+=this._generateHTMLMinutes(a),e+="</td>"),e+="</tr>",D){var E='<tr><td colspan="3"><div class="ui-timepicker-buttonpane ui-widget-content">';z&&(E+='<button type="button" class="ui-timepicker-now ui-state-default ui-corner-all" data-timepicker-instance-id="#'+a.id.replace(/\\\\/g,"\\")+'" >'+A+"</button>"),B&&(E+='<button type="button" class="ui-timepicker-deselect ui-state-default ui-corner-all" data-timepicker-instance-id="#'+a.id.replace(/\\\\/g,"\\")+'" >'+C+"</button>"),x&&(E+='<button type="button" class="ui-timepicker-close ui-state-default ui-corner-all" data-timepicker-instance-id="#'+a.id.replace(/\\\\/g,"\\")+'" >'+y+"</button>"),e+=E+"</div></td></tr>"}return e+="</table>",e+=$.browser.msie&&parseInt($.browser.version,10)<7&&!a.inline?'<iframe src="javascript:false;" class="ui-timepicker-cover" frameborder="0"></iframe>':""},_updateMinuteDisplay:function(a){var b=this._generateHTMLMinutes(a);a.tpDiv.find("td.ui-timepicker-minutes").html(b),this._rebindDialogEvents(a)},_generateHTMLMinutes:function(a){var b,c,d="",e=this._get(a,"rows"),f=Array(),g=this._get(a,"minutes"),h=null,i=0,j=1==this._get(a,"showMinutesLeadingZero"),k=this._get(a,"onMinuteShow"),l=this._get(a,"minuteText");for(g.starts||(g.starts=0),g.ends||(g.ends=59),b=g.starts;b<=g.ends;b+=g.interval)f.push(b);if(h=Math.round(f.length/e+.49),k&&0==k.apply(a.input?a.input[0]:null,[a.hours,a.minutes]))for(i=0;i<f.length;i+=1)if(b=f[i],k.apply(a.input?a.input[0]:null,[a.hours,b])){a.minutes=b;break}for(d+='<div class="ui-timepicker-title ui-widget-header ui-helper-clearfix ui-corner-all">'+l+"</div>"+'<table class="ui-timepicker">',i=0,c=1;e>=c;c++){for(d+="<tr>";c*h>i;){b=f[i];var m="";void 0!==b&&(m=10>b&&j?"0"+b.toString():b.toString()),d+=this._generateHTMLMinuteCell(a,b,m),i++}d+="</tr>"}return d+="</table>"},_generateHTMLHourCell:function(a,b,c,d){var e=b;b>12&&c&&(e=b-12),0==e&&c&&(e=12),10>e&&d&&(e="0"+e);var f="",g=!0,h=this._get(a,"onHourShow");return void 0==b?f='<td><span class="ui-state-default ui-state-disabled">&nbsp;</span></td>':(h&&(g=h.apply(a.input?a.input[0]:null,[b])),f=g?'<td class="ui-timepicker-hour-cell" data-timepicker-instance-id="#'+a.id.replace(/\\\\/g,"\\")+'" data-hour="'+b.toString()+'">'+'<a class="ui-state-default '+(b==a.hours?"ui-state-active":"")+'">'+e.toString()+"</a></td>":'<td><span class="ui-state-default ui-state-disabled '+(b==a.hours?" ui-state-active ":" ")+'">'+e.toString()+"</span>"+"</td>")},_generateHTMLMinuteCell:function(a,b,c){var d="",e=!0,f=this._get(a,"onMinuteShow");return f&&(e=f.apply(a.input?a.input[0]:null,[a.hours,b])),d=void 0==b?'<td><span class="ui-state-default ui-state-disabled">&nbsp;</span></td>':e?'<td class="ui-timepicker-minute-cell" data-timepicker-instance-id="#'+a.id.replace(/\\\\/g,"\\")+'" data-minute="'+b.toString()+'" >'+'<a class="ui-state-default '+(b==a.minutes?"ui-state-active":"")+'" >'+c+"</a></td>":'<td><span class="ui-state-default ui-state-disabled" >'+c+"</span>"+"</td>"},_destroyTimepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(b.hasClass(this.markerClassName)){var d=a.nodeName.toLowerCase();$.removeData(a,PROP_NAME),"input"==d?(c.append.remove(),c.trigger.remove(),b.removeClass(this.markerClassName).unbind("focus.timepicker",this._showTimepicker).unbind("click.timepicker",this._adjustZIndex)):("div"==d||"span"==d)&&b.removeClass(this.markerClassName).empty()}},_enableTimepicker:function(a){var b=$(a),c=b.attr("id"),d=$.data(a,PROP_NAME);if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if("input"==e){a.disabled=!1;var f=this._get(d,"button");$(f).removeClass("ui-state-disabled").disabled=!1,d.trigger.filter("button").each(function(){this.disabled=!1}).end()}else if("div"==e||"span"==e){var g=b.children("."+this._inlineClass);g.children().removeClass("ui-state-disabled"),g.find("button").each(function(){this.disabled=!1})}this._disabledInputs=$.map(this._disabledInputs,function(a){return a==c?null:a})}},_disableTimepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(b.hasClass(this.markerClassName)){var d=a.nodeName.toLowerCase();if("input"==d){var e=this._get(c,"button");$(e).addClass("ui-state-disabled").disabled=!0,a.disabled=!0,c.trigger.filter("button").each(function(){this.disabled=!0}).end()}else if("div"==d||"span"==d){var f=b.children("."+this._inlineClass);f.children().addClass("ui-state-disabled"),f.find("button").each(function(){this.disabled=!0})}this._disabledInputs=$.map(this._disabledInputs,function(b){return b==a?null:b}),this._disabledInputs[this._disabledInputs.length]=b.attr("id")}},_isDisabledTimepicker:function(a){if(!a)return!1;for(var b=0;b<this._disabledInputs.length;b++)if(this._disabledInputs[b]==a)return!0;return!1},_checkOffset:function(a,b,c){var d=a.tpDiv.outerWidth(),e=a.tpDiv.outerHeight(),f=a.input?a.input.outerWidth():0,g=a.input?a.input.outerHeight():0,h=document.documentElement.clientWidth+$(document).scrollLeft(),i=document.documentElement.clientHeight+$(document).scrollTop();return b.left-=this._get(a,"isRTL")?d-f:0,b.left-=c&&b.left==a.input.offset().left?$(document).scrollLeft():0,b.top-=c&&b.top==a.input.offset().top+g?$(document).scrollTop():0,b.left-=Math.min(b.left,b.left+d>h&&h>d?Math.abs(b.left+d-h):0),b.top-=Math.min(b.top,b.top+e>i&&i>e?Math.abs(e+g):0),b},_findPos:function(a){for(var b=this._getInst(a),c=this._get(b,"isRTL");a&&("hidden"==a.type||1!=a.nodeType);)a=a[c?"previousSibling":"nextSibling"];var d=$(a).offset();return[d.left,d.top]},_getBorders:function(a){var b=function(a){return{thin:1,medium:2,thick:3}[a]||a};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkExternalClick:function(a){if($.timepicker._curInst){var b=$(a.target);b[0].id==$.timepicker._mainDivId||0!=b.parents("#"+$.timepicker._mainDivId).length||b.hasClass($.timepicker.markerClassName)||b.hasClass($.timepicker._triggerClass)||!$.timepicker._timepickerShowing||$.timepicker._inDialog&&$.blockUI||$.timepicker._hideTimepicker()}},_hideTimepicker:function(a){var b=this._curInst;if(b&&(!a||b==$.data(a,PROP_NAME))&&this._timepickerShowing){var c=this._get(b,"showAnim"),d=this._get(b,"duration"),e=function(){$.timepicker._tidyDialog(b),this._curInst=null};$.effects&&$.effects[c]?b.tpDiv.hide(c,$.timepicker._get(b,"showOptions"),d,e):b.tpDiv["slideDown"==c?"slideUp":"fadeIn"==c?"fadeOut":"hide"](c?d:null,e),c||e(),this._timepickerShowing=!1,this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),$.blockUI&&($.unblockUI(),$("body").append(this.tpDiv))),this._inDialog=!1;var f=this._get(b,"onClose");f&&f.apply(b.input?b.input[0]:null,[b.input?b.input.val():"",b])}},_tidyDialog:function(a){a.tpDiv.removeClass(this._dialogClass).unbind(".ui-timepicker")},_getInst:function(a){try{return $.data(a,PROP_NAME)}catch(b){throw"Missing instance data for this timepicker"}},_get:function(a,b){return void 0!==a.settings[b]?a.settings[b]:this._defaults[b]},_setTimeFromField:function(a){if(a.input.val()!=a.lastVal){var b=this._get(a,"defaultTime"),c="now"==b?this._getCurrentTimeRounded(a):b;if(0==a.inline&&""!=a.input.val()&&(c=a.input.val()),c instanceof Date)a.hours=c.getHours(),a.minutes=c.getMinutes();else{var d=a.lastVal=c;if(""==c)a.hours=-1,a.minutes=-1;else{var e=this.parseTime(a,d);a.hours=e.hours,a.minutes=e.minutes}}$.timepicker._updateTimepicker(a)}},_optionTimepicker:function(a,b,c){var d=this._getInst(a);if(2==arguments.length&&"string"==typeof b)return"defaults"==b?$.extend({},$.timepicker._defaults):d?"all"==b?$.extend({},d.settings):this._get(d,b):null;var e=b||{};"string"==typeof b&&(e={},e[b]=c),d&&(this._curInst==d&&this._hideTimepicker(),extendRemove(d.settings,e),this._updateTimepicker(d))},_setTimeTimepicker:function(a,b){var c=this._getInst(a);c&&(this._setTime(c,b),this._updateTimepicker(c),this._updateAlternate(c,b))},_setTime:function(a,b,c){var d=a.hours,e=a.minutes;b=this.parseTime(a,b),a.hours=b.hours,a.minutes=b.minutes,d==a.hours&&e==a.minuts||c||a.input.trigger("change"),this._updateTimepicker(a),this._updateSelectedValue(a)},_getCurrentTimeRounded:function(){var a=new Date,b=a.getMinutes(),c=5*Math.round(b/5);return a.setMinutes(c),a},parseTime:function(a,b){var c=new Object;c.hours=-1,c.minutes=-1;var d=this._get(a,"timeSeparator"),e=this._get(a,"amPmText"),f=this._get(a,"showHours"),g=this._get(a,"showMinutes"),h=this._get(a,"optionalMinutes"),i=1==this._get(a,"showPeriod"),j=b.indexOf(d);if(-1!=j?(c.hours=parseInt(b.substr(0,j),10),c.minutes=parseInt(b.substr(j+1),10)):!f||g&&!h?!f&&g&&(c.minutes=parseInt(b,10)):c.hours=parseInt(b,10),f){var k=b.toUpperCase();c.hours<12&&i&&-1!=k.indexOf(e[1].toUpperCase())&&(c.hours+=12),12==c.hours&&i&&-1!=k.indexOf(e[0].toUpperCase())&&(c.hours=0)}return c},selectNow:function(a){var b=$(a.target).attr("data-timepicker-instance-id"),c=$(b),d=this._getInst(c[0]),e=new Date;d.hours=e.getHours(),d.minutes=e.getMinutes(),this._updateSelectedValue(d),this._updateTimepicker(d),this._hideTimepicker()},deselectTime:function(a){var b=$(a.target).attr("data-timepicker-instance-id"),c=$(b),d=this._getInst(c[0]);d.hours=-1,d.minutes=-1,this._updateSelectedValue(d),this._hideTimepicker()},selectHours:function(a){var b=$(a.currentTarget),c=b.attr("data-timepicker-instance-id"),d=parseInt(b.attr("data-hour")),e=a.data.fromDoubleClick,f=$(c),g=this._getInst(f[0]),h=1==this._get(g,"showMinutes");if($.timepicker._isDisabledTimepicker(f.attr("id")))return!1;b.parents(".ui-timepicker-hours:first").find("a").removeClass("ui-state-active"),b.children("a").addClass("ui-state-active"),g.hours=d;var i=this._get(g,"onMinuteShow");return i&&this._updateMinuteDisplay(g),this._updateSelectedValue(g),g._hoursClicked=!0,(g._minutesClicked||e||0==h)&&$.timepicker._hideTimepicker(),!1},selectMinutes:function(a){var b=$(a.currentTarget),c=b.attr("data-timepicker-instance-id"),d=parseInt(b.attr("data-minute")),e=a.data.fromDoubleClick,f=$(c),g=this._getInst(f[0]),h=1==this._get(g,"showHours");return $.timepicker._isDisabledTimepicker(f.attr("id"))?!1:(b.parents(".ui-timepicker-minutes:first").find("a").removeClass("ui-state-active"),b.children("a").addClass("ui-state-active"),g.minutes=d,this._updateSelectedValue(g),g._minutesClicked=!0,g._hoursClicked||e||0==h?($.timepicker._hideTimepicker(),!1):!1)},_updateSelectedValue:function(a){var b=this._getParsedTime(a);a.input&&(a.input.val(b),a.input.trigger("change"));var c=this._get(a,"onSelect");return c&&c.apply(a.input?a.input[0]:null,[b,a]),this._updateAlternate(a,b),b},_getParsedTime:function(a){if(-1==a.hours&&-1==a.minutes)return"";(a.hours<a.hours.starts||a.hours>a.hours.ends)&&(a.hours=0),(a.minutes<a.minutes.starts||a.minutes>a.minutes.ends)&&(a.minutes=0);var b="",c=1==this._get(a,"showPeriod"),d=1==this._get(a,"showLeadingZero"),e=1==this._get(a,"showHours"),f=1==this._get(a,"showMinutes"),g=1==this._get(a,"optionalMinutes"),h=this._get(a,"amPmText"),i=a.hours?a.hours:0,j=a.minutes?a.minutes:0,k=i?i:0,l="";c&&(0==a.hours&&(k=12),a.hours<12?b=h[0]:(b=h[1],k>12&&(k-=12)));var m=k.toString();d&&10>k&&(m="0"+m);var n=j.toString();return 10>j&&(n="0"+n),e&&(l+=m),!e||!f||g&&0==n||(l+=this._get(a,"timeSeparator")),!f||g&&0==n||(l+=n),e&&b.length>0&&(l+=this._get(a,"periodSeparator")+b),l},_updateAlternate:function(a,b){var c=this._get(a,"altField");c&&$(c).each(function(a,c){$(c).val(b)})},_getTimeTimepicker:function(a){var b=this._getInst(a);return this._getParsedTime(b)},_getHourTimepicker:function(a){var b=this._getInst(a);return void 0==b?-1:b.hours},_getMinuteTimepicker:function(a){var b=this._getInst(a);return void 0==b?-1:b.minutes}}),$.fn.timepicker=function(a){$.timepicker.initialized||($(document).mousedown($.timepicker._checkExternalClick).find("body").append($.timepicker.tpDiv),$.timepicker.initialized=!0);var b=Array.prototype.slice.call(arguments,1);return"string"!=typeof a||"getTime"!=a&&"getHour"!=a&&"getMinute"!=a?"option"==a&&2==arguments.length&&"string"==typeof arguments[1]?$.timepicker["_"+a+"Timepicker"].apply($.timepicker,[this[0]].concat(b)):this.each(function(){"string"==typeof a?$.timepicker["_"+a+"Timepicker"].apply($.timepicker,[this].concat(b)):$.timepicker._attachTimepicker(this,a)}):$.timepicker["_"+a+"Timepicker"].apply($.timepicker,[this[0]].concat(b))},$.timepicker=new Timepicker,$.timepicker.initialized=!1,$.timepicker.uuid=(new Date).getTime(),$.timepicker.version="0.3.1",window["TP_jQuery_"+tpuuid]=$}(jQuery);
1
+ /*! event-organiser 2.4.0 2013-10-29 18:47 */
2
+ !function($){function Timepicker(){this._curInst=null,this._disabledInputs=[],this._timepickerShowing=!1,this._inDialog=!1,this._dialogClass="ui-timepicker-dialog",this._mainDivId="ui-timepicker-div",this._inlineClass="ui-timepicker-inline",this._currentClass="ui-timepicker-current",this._dayOverClass="ui-timepicker-days-cell-over",this.regional=[],this.regional[""]={hourText:"Hour",minuteText:"Minute",amPmText:["AM","PM"],closeButtonText:"Done",nowButtonText:"Now",deselectButtonText:"Deselect"},this._defaults={showOn:"focus",button:null,showAnim:"fadeIn",showOptions:{},appendText:"",beforeShow:null,onSelect:null,onClose:null,timeSeparator:":",periodSeparator:" ",showPeriod:!1,showPeriodLabels:!0,showLeadingZero:!0,showMinutesLeadingZero:!0,altField:"",defaultTime:"now",myPosition:"left top",atPosition:"left bottom",onHourShow:null,onMinuteShow:null,hours:{starts:0,ends:23},minutes:{starts:0,ends:55,interval:5},rows:4,showHours:!0,showMinutes:!0,optionalMinutes:!1,showCloseButton:!1,showNowButton:!1,showDeselectButton:!1},$.extend(this._defaults,this.regional[""]),this.tpDiv=$('<div id="'+this._mainDivId+'" class="ui-timepicker ui-widget ui-helper-clearfix ui-corner-all " style="display: none"></div>')}function extendRemove(a,b){$.extend(a,b);for(var c in b)(null==b[c]||void 0==b[c])&&(a[c]=b[c]);return a}$.extend($.ui,{timepicker:{version:"0.3.1"}});var PROP_NAME="timepicker",tpuuid=(new Date).getTime();$.extend(Timepicker.prototype,{markerClassName:"hasTimepicker",log:function(){},_widgetTimepicker:function(){return this.tpDiv},setDefaults:function(a){return extendRemove(this._defaults,a||{}),this},_attachTimepicker:function(target,settings){var inlineSettings=null;for(var attrName in this._defaults){var attrValue=target.getAttribute("time:"+attrName);if(attrValue){inlineSettings=inlineSettings||{};try{inlineSettings[attrName]=eval(attrValue)}catch(err){inlineSettings[attrName]=attrValue}}}var nodeName=target.nodeName.toLowerCase(),inline="div"==nodeName||"span"==nodeName;target.id||(this.uuid+=1,target.id="tp"+this.uuid);var inst=this._newInst($(target),inline);inst.settings=$.extend({},settings||{},inlineSettings||{}),"input"==nodeName?(this._connectTimepicker(target,inst),this._setTimeFromField(inst)):inline&&this._inlineTimepicker(target,inst)},_newInst:function(a,b){var c=a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1");return{id:c,input:a,inline:b,tpDiv:b?$('<div class="'+this._inlineClass+' ui-timepicker ui-widget ui-helper-clearfix"></div>'):this.tpDiv}},_connectTimepicker:function(a,b){var c=$(a);b.append=$([]),b.trigger=$([]),c.hasClass(this.markerClassName)||(this._attachments(c,b),c.addClass(this.markerClassName).keydown(this._doKeyDown).keyup(this._doKeyUp).bind("setData.timepicker",function(a,c,d){b.settings[c]=d}).bind("getData.timepicker",function(a,c){return this._get(b,c)}),$.data(a,PROP_NAME,b))},_doKeyDown:function(a){var b=$.timepicker._getInst(a.target),c=!0;if(b._keyEvent=!0,$.timepicker._timepickerShowing)switch(a.keyCode){case 9:$.timepicker._hideTimepicker(),c=!1;break;case 13:return $.timepicker._updateSelectedValue(b),$.timepicker._hideTimepicker(),!1;case 27:$.timepicker._hideTimepicker();break;default:c=!1}else 36==a.keyCode&&a.ctrlKey?$.timepicker._showTimepicker(this):c=!1;c&&(a.preventDefault(),a.stopPropagation())},_doKeyUp:function(a){var b=$.timepicker._getInst(a.target);$.timepicker._setTimeFromField(b),$.timepicker._updateTimepicker(b)},_attachments:function(a,b){var c=this._get(b,"appendText"),d=this._get(b,"isRTL");b.append&&b.append.remove(),c&&(b.append=$('<span class="'+this._appendClass+'">'+c+"</span>"),a[d?"before":"after"](b.append)),a.unbind("focus.timepicker",this._showTimepicker),a.unbind("click.timepicker",this._adjustZIndex),b.trigger&&b.trigger.remove();var e=this._get(b,"showOn");if(("focus"==e||"both"==e)&&(a.bind("focus.timepicker",this._showTimepicker),a.bind("click.timepicker",this._adjustZIndex)),"button"==e||"both"==e){var f=this._get(b,"button");$(f).bind("click.timepicker",function(){return $.timepicker._timepickerShowing&&$.timepicker._lastInput==a[0]?$.timepicker._hideTimepicker():b.input.is(":disabled")||$.timepicker._showTimepicker(a[0]),!1})}},_inlineTimepicker:function(a,b){var c=$(a);c.hasClass(this.markerClassName)||(c.addClass(this.markerClassName).append(b.tpDiv).bind("setData.timepicker",function(a,c,d){b.settings[c]=d}).bind("getData.timepicker",function(a,c){return this._get(b,c)}),$.data(a,PROP_NAME,b),this._setTimeFromField(b),this._updateTimepicker(b),b.tpDiv.show())},_adjustZIndex:function(a){a=a.target||a;var b=$.timepicker._getInst(a);b.tpDiv.css("zIndex",$.timepicker._getZIndex(a)+1)},_showTimepicker:function(a){if(a=a.target||a,"input"!=a.nodeName.toLowerCase()&&(a=$("input",a.parentNode)[0]),!$.timepicker._isDisabledTimepicker(a)&&$.timepicker._lastInput!=a){$.timepicker._hideTimepicker();var b=$.timepicker._getInst(a);$.timepicker._curInst&&$.timepicker._curInst!=b&&$.timepicker._curInst.tpDiv.stop(!0,!0);var c=$.timepicker._get(b,"beforeShow");extendRemove(b.settings,c?c.apply(a,[a,b]):{}),b.lastVal=null,$.timepicker._lastInput=a,$.timepicker._setTimeFromField(b),$.timepicker._inDialog&&(a.value=""),$.timepicker._pos||($.timepicker._pos=$.timepicker._findPos(a),$.timepicker._pos[1]+=a.offsetHeight);var d=!1;$(a).parents().each(function(){return d|="fixed"==$(this).css("position"),!d}),d&&$.browser.opera&&($.timepicker._pos[0]-=document.documentElement.scrollLeft,$.timepicker._pos[1]-=document.documentElement.scrollTop);var e={left:$.timepicker._pos[0],top:$.timepicker._pos[1]};if($.timepicker._pos=null,b.tpDiv.css({position:"absolute",display:"block",top:"-1000px"}),$.timepicker._updateTimepicker(b),b.inline||"object"!=typeof $.ui.position||(b.tpDiv.position({of:b.input,my:$.timepicker._get(b,"myPosition"),at:$.timepicker._get(b,"atPosition"),collision:"flip"}),e=b.tpDiv.offset(),$.timepicker._pos=[e.top,e.left]),b._hoursClicked=!1,b._minutesClicked=!1,e=$.timepicker._checkOffset(b,e,d),b.tpDiv.css({position:$.timepicker._inDialog&&$.blockUI?"static":d?"fixed":"absolute",display:"none",left:e.left+"px",top:e.top+"px"}),!b.inline){var f=$.timepicker._get(b,"showAnim"),g=$.timepicker._get(b,"duration"),h=function(){$.timepicker._timepickerShowing=!0;var a=$.timepicker._getBorders(b.tpDiv);b.tpDiv.find("iframe.ui-timepicker-cover").css({left:-a[0],top:-a[1],width:b.tpDiv.outerWidth(),height:b.tpDiv.outerHeight()})};$.timepicker._adjustZIndex(a),$.effects&&$.effects[f]?b.tpDiv.show(f,$.timepicker._get(b,"showOptions"),g,h):b.tpDiv[f||"show"](f?g:null,h),f&&g||h(),b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus(),$.timepicker._curInst=b}}},_getZIndex:function(a){for(var b,c,d=$(a);d.length&&d[0]!==document;){if(b=d.css("position"),("absolute"===b||"relative"===b||"fixed"===b)&&(c=parseInt(d.css("zIndex"),10),!isNaN(c)&&0!==c))return c;d=d.parent()}},_refreshTimepicker:function(a){var b=this._getInst(a);b&&this._updateTimepicker(b)},_updateTimepicker:function(a){a.tpDiv.empty().append(this._generateHTML(a)),this._rebindDialogEvents(a)},_rebindDialogEvents:function(a){var b=$.timepicker._getBorders(a.tpDiv),c=this;a.tpDiv.find("iframe.ui-timepicker-cover").css({left:-b[0],top:-b[1],width:a.tpDiv.outerWidth(),height:a.tpDiv.outerHeight()}).end().find(".ui-timepicker-minute-cell").unbind().bind("click",{fromDoubleClick:!1},$.proxy($.timepicker.selectMinutes,this)).bind("dblclick",{fromDoubleClick:!0},$.proxy($.timepicker.selectMinutes,this)).end().find(".ui-timepicker-hour-cell").unbind().bind("click",{fromDoubleClick:!1},$.proxy($.timepicker.selectHours,this)).bind("dblclick",{fromDoubleClick:!0},$.proxy($.timepicker.selectHours,this)).end().find(".ui-timepicker td a").unbind().bind("mouseout",function(){$(this).removeClass("ui-state-hover"),-1!=this.className.indexOf("ui-timepicker-prev")&&$(this).removeClass("ui-timepicker-prev-hover"),-1!=this.className.indexOf("ui-timepicker-next")&&$(this).removeClass("ui-timepicker-next-hover")}).bind("mouseover",function(){c._isDisabledTimepicker(a.inline?a.tpDiv.parent()[0]:a.input[0])||($(this).parents(".ui-timepicker-calendar").find("a").removeClass("ui-state-hover"),$(this).addClass("ui-state-hover"),-1!=this.className.indexOf("ui-timepicker-prev")&&$(this).addClass("ui-timepicker-prev-hover"),-1!=this.className.indexOf("ui-timepicker-next")&&$(this).addClass("ui-timepicker-next-hover"))}).end().find("."+this._dayOverClass+" a").trigger("mouseover").end().find(".ui-timepicker-now").bind("click",function(a){$.timepicker.selectNow(a)}).end().find(".ui-timepicker-deselect").bind("click",function(a){$.timepicker.deselectTime(a)}).end().find(".ui-timepicker-close").bind("click",function(){$.timepicker._hideTimepicker()}).end()},_generateHTML:function(a){var b,c,d,e,f=1==this._get(a,"showPeriod"),g=1==this._get(a,"showPeriodLabels"),h=1==this._get(a,"showLeadingZero"),i=1==this._get(a,"showHours"),j=1==this._get(a,"showMinutes"),k=this._get(a,"amPmText"),l=this._get(a,"rows"),m=0,n=0,o=0,p=0,q=0,r=0,s=Array(),t=this._get(a,"hours"),u=null,v=0,w=this._get(a,"hourText"),x=this._get(a,"showCloseButton"),y=this._get(a,"closeButtonText"),z=this._get(a,"showNowButton"),A=this._get(a,"nowButtonText"),B=this._get(a,"showDeselectButton"),C=this._get(a,"deselectButtonText"),D=x||z||B;for(b=t.starts;b<=t.ends;b++)s.push(b);if(u=Math.ceil(s.length/l),g){for(v=0;v<s.length;v++)s[v]<12?o++:p++;v=0,m=Math.floor(o/s.length*l),n=Math.floor(p/s.length*l),l!=m+n&&(o&&(!p||!m||n&&o/m>=p/n)?m++:n++),q=Math.min(m,1),r=m+1,u=Math.ceil(Math.max(o/m,p/n))}if(e='<table class="ui-timepicker-table ui-widget-content ui-corner-all"><tr>',i){for(e+='<td class="ui-timepicker-hours"><div class="ui-timepicker-title ui-widget-header ui-helper-clearfix ui-corner-all">'+w+"</div>"+'<table class="ui-timepicker">',c=1;l>=c;c++){for(e+="<tr>",c==q&&g&&(e+='<th rowspan="'+m.toString()+'" class="periods" scope="row">'+k[0]+"</th>"),c==r&&g&&(e+='<th rowspan="'+n.toString()+'" class="periods" scope="row">'+k[1]+"</th>"),d=1;u>=d;d++)g&&r>c&&s[v]>=12?e+=this._generateHTMLHourCell(a,void 0,f,h):(e+=this._generateHTMLHourCell(a,s[v],f,h),v++);e+="</tr>"}e+="</tr></table></td>"}if(j&&(e+='<td class="ui-timepicker-minutes">',e+=this._generateHTMLMinutes(a),e+="</td>"),e+="</tr>",D){var E='<tr><td colspan="3"><div class="ui-timepicker-buttonpane ui-widget-content">';z&&(E+='<button type="button" class="ui-timepicker-now ui-state-default ui-corner-all" data-timepicker-instance-id="#'+a.id.replace(/\\\\/g,"\\")+'" >'+A+"</button>"),B&&(E+='<button type="button" class="ui-timepicker-deselect ui-state-default ui-corner-all" data-timepicker-instance-id="#'+a.id.replace(/\\\\/g,"\\")+'" >'+C+"</button>"),x&&(E+='<button type="button" class="ui-timepicker-close ui-state-default ui-corner-all" data-timepicker-instance-id="#'+a.id.replace(/\\\\/g,"\\")+'" >'+y+"</button>"),e+=E+"</div></td></tr>"}return e+="</table>",e+=$.browser.msie&&parseInt($.browser.version,10)<7&&!a.inline?'<iframe src="javascript:false;" class="ui-timepicker-cover" frameborder="0"></iframe>':""},_updateMinuteDisplay:function(a){var b=this._generateHTMLMinutes(a);a.tpDiv.find("td.ui-timepicker-minutes").html(b),this._rebindDialogEvents(a)},_generateHTMLMinutes:function(a){var b,c,d="",e=this._get(a,"rows"),f=Array(),g=this._get(a,"minutes"),h=null,i=0,j=1==this._get(a,"showMinutesLeadingZero"),k=this._get(a,"onMinuteShow"),l=this._get(a,"minuteText");for(g.starts||(g.starts=0),g.ends||(g.ends=59),b=g.starts;b<=g.ends;b+=g.interval)f.push(b);if(h=Math.round(f.length/e+.49),k&&0==k.apply(a.input?a.input[0]:null,[a.hours,a.minutes]))for(i=0;i<f.length;i+=1)if(b=f[i],k.apply(a.input?a.input[0]:null,[a.hours,b])){a.minutes=b;break}for(d+='<div class="ui-timepicker-title ui-widget-header ui-helper-clearfix ui-corner-all">'+l+"</div>"+'<table class="ui-timepicker">',i=0,c=1;e>=c;c++){for(d+="<tr>";c*h>i;){b=f[i];var m="";void 0!==b&&(m=10>b&&j?"0"+b.toString():b.toString()),d+=this._generateHTMLMinuteCell(a,b,m),i++}d+="</tr>"}return d+="</table>"},_generateHTMLHourCell:function(a,b,c,d){var e=b;b>12&&c&&(e=b-12),0==e&&c&&(e=12),10>e&&d&&(e="0"+e);var f="",g=!0,h=this._get(a,"onHourShow");return void 0==b?f='<td><span class="ui-state-default ui-state-disabled">&nbsp;</span></td>':(h&&(g=h.apply(a.input?a.input[0]:null,[b])),f=g?'<td class="ui-timepicker-hour-cell" data-timepicker-instance-id="#'+a.id.replace(/\\\\/g,"\\")+'" data-hour="'+b.toString()+'">'+'<a class="ui-state-default '+(b==a.hours?"ui-state-active":"")+'">'+e.toString()+"</a></td>":'<td><span class="ui-state-default ui-state-disabled '+(b==a.hours?" ui-state-active ":" ")+'">'+e.toString()+"</span>"+"</td>")},_generateHTMLMinuteCell:function(a,b,c){var d="",e=!0,f=this._get(a,"onMinuteShow");return f&&(e=f.apply(a.input?a.input[0]:null,[a.hours,b])),d=void 0==b?'<td><span class="ui-state-default ui-state-disabled">&nbsp;</span></td>':e?'<td class="ui-timepicker-minute-cell" data-timepicker-instance-id="#'+a.id.replace(/\\\\/g,"\\")+'" data-minute="'+b.toString()+'" >'+'<a class="ui-state-default '+(b==a.minutes?"ui-state-active":"")+'" >'+c+"</a></td>":'<td><span class="ui-state-default ui-state-disabled" >'+c+"</span>"+"</td>"},_destroyTimepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(b.hasClass(this.markerClassName)){var d=a.nodeName.toLowerCase();$.removeData(a,PROP_NAME),"input"==d?(c.append.remove(),c.trigger.remove(),b.removeClass(this.markerClassName).unbind("focus.timepicker",this._showTimepicker).unbind("click.timepicker",this._adjustZIndex)):("div"==d||"span"==d)&&b.removeClass(this.markerClassName).empty()}},_enableTimepicker:function(a){var b=$(a),c=b.attr("id"),d=$.data(a,PROP_NAME);if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if("input"==e){a.disabled=!1;var f=this._get(d,"button");$(f).removeClass("ui-state-disabled").disabled=!1,d.trigger.filter("button").each(function(){this.disabled=!1}).end()}else if("div"==e||"span"==e){var g=b.children("."+this._inlineClass);g.children().removeClass("ui-state-disabled"),g.find("button").each(function(){this.disabled=!1})}this._disabledInputs=$.map(this._disabledInputs,function(a){return a==c?null:a})}},_disableTimepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(b.hasClass(this.markerClassName)){var d=a.nodeName.toLowerCase();if("input"==d){var e=this._get(c,"button");$(e).addClass("ui-state-disabled").disabled=!0,a.disabled=!0,c.trigger.filter("button").each(function(){this.disabled=!0}).end()}else if("div"==d||"span"==d){var f=b.children("."+this._inlineClass);f.children().addClass("ui-state-disabled"),f.find("button").each(function(){this.disabled=!0})}this._disabledInputs=$.map(this._disabledInputs,function(b){return b==a?null:b}),this._disabledInputs[this._disabledInputs.length]=b.attr("id")}},_isDisabledTimepicker:function(a){if(!a)return!1;for(var b=0;b<this._disabledInputs.length;b++)if(this._disabledInputs[b]==a)return!0;return!1},_checkOffset:function(a,b,c){var d=a.tpDiv.outerWidth(),e=a.tpDiv.outerHeight(),f=a.input?a.input.outerWidth():0,g=a.input?a.input.outerHeight():0,h=document.documentElement.clientWidth+$(document).scrollLeft(),i=document.documentElement.clientHeight+$(document).scrollTop();return b.left-=this._get(a,"isRTL")?d-f:0,b.left-=c&&b.left==a.input.offset().left?$(document).scrollLeft():0,b.top-=c&&b.top==a.input.offset().top+g?$(document).scrollTop():0,b.left-=Math.min(b.left,b.left+d>h&&h>d?Math.abs(b.left+d-h):0),b.top-=Math.min(b.top,b.top+e>i&&i>e?Math.abs(e+g):0),b},_findPos:function(a){for(var b=this._getInst(a),c=this._get(b,"isRTL");a&&("hidden"==a.type||1!=a.nodeType);)a=a[c?"previousSibling":"nextSibling"];var d=$(a).offset();return[d.left,d.top]},_getBorders:function(a){var b=function(a){return{thin:1,medium:2,thick:3}[a]||a};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkExternalClick:function(a){if($.timepicker._curInst){var b=$(a.target);b[0].id==$.timepicker._mainDivId||0!=b.parents("#"+$.timepicker._mainDivId).length||b.hasClass($.timepicker.markerClassName)||b.hasClass($.timepicker._triggerClass)||!$.timepicker._timepickerShowing||$.timepicker._inDialog&&$.blockUI||$.timepicker._hideTimepicker()}},_hideTimepicker:function(a){var b=this._curInst;if(b&&(!a||b==$.data(a,PROP_NAME))&&this._timepickerShowing){var c=this._get(b,"showAnim"),d=this._get(b,"duration"),e=function(){$.timepicker._tidyDialog(b),this._curInst=null};$.effects&&$.effects[c]?b.tpDiv.hide(c,$.timepicker._get(b,"showOptions"),d,e):b.tpDiv["slideDown"==c?"slideUp":"fadeIn"==c?"fadeOut":"hide"](c?d:null,e),c||e(),this._timepickerShowing=!1,this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),$.blockUI&&($.unblockUI(),$("body").append(this.tpDiv))),this._inDialog=!1;var f=this._get(b,"onClose");f&&f.apply(b.input?b.input[0]:null,[b.input?b.input.val():"",b])}},_tidyDialog:function(a){a.tpDiv.removeClass(this._dialogClass).unbind(".ui-timepicker")},_getInst:function(a){try{return $.data(a,PROP_NAME)}catch(b){throw"Missing instance data for this timepicker"}},_get:function(a,b){return void 0!==a.settings[b]?a.settings[b]:this._defaults[b]},_setTimeFromField:function(a){if(a.input.val()!=a.lastVal){var b=this._get(a,"defaultTime"),c="now"==b?this._getCurrentTimeRounded(a):b;if(0==a.inline&&""!=a.input.val()&&(c=a.input.val()),c instanceof Date)a.hours=c.getHours(),a.minutes=c.getMinutes();else{var d=a.lastVal=c;if(""==c)a.hours=-1,a.minutes=-1;else{var e=this.parseTime(a,d);a.hours=e.hours,a.minutes=e.minutes}}$.timepicker._updateTimepicker(a)}},_optionTimepicker:function(a,b,c){var d=this._getInst(a);if(2==arguments.length&&"string"==typeof b)return"defaults"==b?$.extend({},$.timepicker._defaults):d?"all"==b?$.extend({},d.settings):this._get(d,b):null;var e=b||{};"string"==typeof b&&(e={},e[b]=c),d&&(this._curInst==d&&this._hideTimepicker(),extendRemove(d.settings,e),this._updateTimepicker(d))},_setTimeTimepicker:function(a,b){var c=this._getInst(a);c&&(this._setTime(c,b),this._updateTimepicker(c),this._updateAlternate(c,b))},_setTime:function(a,b,c){var d=a.hours,e=a.minutes;b=this.parseTime(a,b),a.hours=b.hours,a.minutes=b.minutes,d==a.hours&&e==a.minuts||c||a.input.trigger("change"),this._updateTimepicker(a),this._updateSelectedValue(a)},_getCurrentTimeRounded:function(){var a=new Date,b=a.getMinutes(),c=5*Math.round(b/5);return a.setMinutes(c),a},parseTime:function(a,b){var c=new Object;c.hours=-1,c.minutes=-1;var d=this._get(a,"timeSeparator"),e=this._get(a,"amPmText"),f=this._get(a,"showHours"),g=this._get(a,"showMinutes"),h=this._get(a,"optionalMinutes"),i=1==this._get(a,"showPeriod"),j=b.indexOf(d);if(-1!=j?(c.hours=parseInt(b.substr(0,j),10),c.minutes=parseInt(b.substr(j+1),10)):!f||g&&!h?!f&&g&&(c.minutes=parseInt(b,10)):c.hours=parseInt(b,10),f){var k=b.toUpperCase();c.hours<12&&i&&-1!=k.indexOf(e[1].toUpperCase())&&(c.hours+=12),12==c.hours&&i&&-1!=k.indexOf(e[0].toUpperCase())&&(c.hours=0)}return c},selectNow:function(a){var b=$(a.target).attr("data-timepicker-instance-id"),c=$(b),d=this._getInst(c[0]),e=new Date;d.hours=e.getHours(),d.minutes=e.getMinutes(),this._updateSelectedValue(d),this._updateTimepicker(d),this._hideTimepicker()},deselectTime:function(a){var b=$(a.target).attr("data-timepicker-instance-id"),c=$(b),d=this._getInst(c[0]);d.hours=-1,d.minutes=-1,this._updateSelectedValue(d),this._hideTimepicker()},selectHours:function(a){var b=$(a.currentTarget),c=b.attr("data-timepicker-instance-id"),d=parseInt(b.attr("data-hour")),e=a.data.fromDoubleClick,f=$(c),g=this._getInst(f[0]),h=1==this._get(g,"showMinutes");if($.timepicker._isDisabledTimepicker(f.attr("id")))return!1;b.parents(".ui-timepicker-hours:first").find("a").removeClass("ui-state-active"),b.children("a").addClass("ui-state-active"),g.hours=d;var i=this._get(g,"onMinuteShow");return i&&this._updateMinuteDisplay(g),this._updateSelectedValue(g),g._hoursClicked=!0,(g._minutesClicked||e||0==h)&&$.timepicker._hideTimepicker(),!1},selectMinutes:function(a){var b=$(a.currentTarget),c=b.attr("data-timepicker-instance-id"),d=parseInt(b.attr("data-minute")),e=a.data.fromDoubleClick,f=$(c),g=this._getInst(f[0]),h=1==this._get(g,"showHours");return $.timepicker._isDisabledTimepicker(f.attr("id"))?!1:(b.parents(".ui-timepicker-minutes:first").find("a").removeClass("ui-state-active"),b.children("a").addClass("ui-state-active"),g.minutes=d,this._updateSelectedValue(g),g._minutesClicked=!0,g._hoursClicked||e||0==h?($.timepicker._hideTimepicker(),!1):!1)},_updateSelectedValue:function(a){var b=this._getParsedTime(a);a.input&&(a.input.val(b),a.input.trigger("change"));var c=this._get(a,"onSelect");return c&&c.apply(a.input?a.input[0]:null,[b,a]),this._updateAlternate(a,b),b},_getParsedTime:function(a){if(-1==a.hours&&-1==a.minutes)return"";(a.hours<a.hours.starts||a.hours>a.hours.ends)&&(a.hours=0),(a.minutes<a.minutes.starts||a.minutes>a.minutes.ends)&&(a.minutes=0);var b="",c=1==this._get(a,"showPeriod"),d=1==this._get(a,"showLeadingZero"),e=1==this._get(a,"showHours"),f=1==this._get(a,"showMinutes"),g=1==this._get(a,"optionalMinutes"),h=this._get(a,"amPmText"),i=a.hours?a.hours:0,j=a.minutes?a.minutes:0,k=i?i:0,l="";c&&(0==a.hours&&(k=12),a.hours<12?b=h[0]:(b=h[1],k>12&&(k-=12)));var m=k.toString();d&&10>k&&(m="0"+m);var n=j.toString();return 10>j&&(n="0"+n),e&&(l+=m),!e||!f||g&&0==n||(l+=this._get(a,"timeSeparator")),!f||g&&0==n||(l+=n),e&&b.length>0&&(l+=this._get(a,"periodSeparator")+b),l},_updateAlternate:function(a,b){var c=this._get(a,"altField");c&&$(c).each(function(a,c){$(c).val(b)})},_getTimeTimepicker:function(a){var b=this._getInst(a);return this._getParsedTime(b)},_getHourTimepicker:function(a){var b=this._getInst(a);return void 0==b?-1:b.hours},_getMinuteTimepicker:function(a){var b=this._getInst(a);return void 0==b?-1:b.minutes}}),$.fn.timepicker=function(a){$.timepicker.initialized||($(document).mousedown($.timepicker._checkExternalClick).find("body").append($.timepicker.tpDiv),$.timepicker.initialized=!0);var b=Array.prototype.slice.call(arguments,1);return"string"!=typeof a||"getTime"!=a&&"getHour"!=a&&"getMinute"!=a?"option"==a&&2==arguments.length&&"string"==typeof arguments[1]?$.timepicker["_"+a+"Timepicker"].apply($.timepicker,[this[0]].concat(b)):this.each(function(){"string"==typeof a?$.timepicker["_"+a+"Timepicker"].apply($.timepicker,[this].concat(b)):$.timepicker._attachTimepicker(this,a)}):$.timepicker["_"+a+"Timepicker"].apply($.timepicker,[this[0]].concat(b))},$.timepicker=new Timepicker,$.timepicker.initialized=!1,$.timepicker.uuid=(new Date).getTime(),$.timepicker.version="0.3.1",window["TP_jQuery_"+tpuuid]=$}(jQuery);
js/venues.min.js CHANGED
@@ -1,2 +1,2 @@
1
- /*! event-organiser 2.3.0 2013-09-13 14:59 */
2
- function eo_initialize_map(a,b){if("undefined"!=typeof google){var c=new google.maps.LatLng(a,b),d={zoom:15,center:c,mapTypeId:google.maps.MapTypeId.ROADMAP};if(map=new google.maps.Map(document.getElementById("venuemap"),d),"undefined"!=typeof EO_Venue)var e=!0;else var e=!1;marker=new google.maps.Marker({position:c,map:map,draggable:e,icon:eo_venue.marker?eo_venue.marker:null}),"undefined"!=typeof EO_Venue&&google.maps.event.addListener(marker,"dragend",function(a){jQuery("#eo_venue_Lat").val(a.latLng.lat().toFixed(6)),jQuery("#eo_venue_Lng").val(a.latLng.lng().toFixed(6)),map.setCenter(marker.position)})}}function eventorganiser_code_address(a){var b=new google.maps.Geocoder;b.geocode({address:a},function(a,b){if(b==google.maps.GeocoderStatus.OK){if(marker.setMap(null),map.setCenter(a[0].geometry.location),"undefined"!=typeof EO_Venue)var c=!0;else var c=!1;marker=new google.maps.Marker({map:map,position:a[0].geometry.location,draggable:c,icon:eo_venue.marker?eo_venue.marker:null}),map.setZoom(15),"undefined"!=typeof EO_Venue&&google.maps.event.addListener(marker,"dragend",function(a){jQuery("#eo_venue_Lat").val(a.latLng.lat().toFixed(6)),jQuery("#eo_venue_Lng").val(a.latLng.lng().toFixed(6)),map.setCenter(marker.position)}),jQuery("#eo_venue_Lat").val(a[0].geometry.location.lat()),jQuery("#eo_venue_Lng").val(a[0].geometry.location.lng())}})}var map,marker,eo_venue=eo_venue||{marker:!1};jQuery(document).ready(function(){if("undefined"!=typeof EO_Venue&&postboxes.add_postbox_toggles(pagenow),"undefined"!=typeof google){var a=jQuery("#eo_venue_Lat").val(),b=jQuery("#eo_venue_Lng").val();if("undefined"!=typeof a&&"undefined"!=typeof b){if(eo_initialize_map(a,b),0==a&&0==b){if("undefined"!=typeof EO_Venue){var c=EO_Venue.location.split("/");c=c[c.length-1]}"undefined"!=typeof c&&c?eventorganiser_code_address(c):map.setZoom(1)}jQuery(".eo_addressInput").change(function(){var a=[];jQuery(".eo_addressInput").each(function(){a.push(jQuery(this).val())}),eventorganiser_code_address(a.join(", "))})}}});
1
+ /*! event-organiser 2.4.0 2013-10-29 18:47 */
2
+ function eo_initialize_map(a,b){if("undefined"!=typeof google){var c=new google.maps.LatLng(a,b),d={zoom:15,center:c,mapTypeId:google.maps.MapTypeId.ROADMAP};if(map=new google.maps.Map(document.getElementById("venuemap"),d),"undefined"!=typeof EO_Venue)var e=!0;else var e=!1;marker=new google.maps.Marker({position:c,map:map,draggable:e,icon:eo_venue.marker?eo_venue.marker:null}),"undefined"!=typeof EO_Venue&&google.maps.event.addListener(marker,"dragend",function(a){jQuery("#eo_venue_Lat").val(a.latLng.lat().toFixed(6)),jQuery("#eo_venue_Lng").val(a.latLng.lng().toFixed(6)),map.setCenter(marker.position)})}}function eventorganiser_code_address(a){var b=new google.maps.Geocoder;b.geocode({address:a},function(a,b){if(b==google.maps.GeocoderStatus.OK){if(marker.setMap(null),map.setCenter(a[0].geometry.location),"undefined"!=typeof EO_Venue)var c=!0;else var c=!1;marker=new google.maps.Marker({map:map,position:a[0].geometry.location,draggable:c,icon:eo_venue.marker?eo_venue.marker:null}),map.setZoom(15),"undefined"!=typeof EO_Venue&&google.maps.event.addListener(marker,"dragend",function(a){jQuery("#eo_venue_Lat").val(a.latLng.lat().toFixed(6)),jQuery("#eo_venue_Lng").val(a.latLng.lng().toFixed(6)),map.setCenter(marker.position)}),jQuery("#eo_venue_Lat").val(a[0].geometry.location.lat()),jQuery("#eo_venue_Lng").val(a[0].geometry.location.lng())}})}var map,marker,eo_venue=eo_venue||{marker:!1};jQuery(document).ready(function(){if("undefined"!=typeof EO_Venue&&postboxes.add_postbox_toggles(pagenow),"undefined"!=typeof google){var a=jQuery("#eo_venue_Lat").val(),b=jQuery("#eo_venue_Lng").val();if("undefined"!=typeof a&&"undefined"!=typeof b){if(eo_initialize_map(a,b),0==a&&0==b){if("undefined"!=typeof EO_Venue){var c=EO_Venue.location.split("/");c=c[c.length-1]}"undefined"!=typeof c&&c?eventorganiser_code_address(c):map.setZoom(1)}jQuery(".eo_addressInput").change(function(){var a=[];jQuery(".eo_addressInput").each(function(){a.push(jQuery(this).val())}),eventorganiser_code_address(a.join(", "))})}}});
languages/eventorganiser-ar.mo CHANGED
Binary file
languages/eventorganiser-ar.po CHANGED
@@ -2,7 +2,7 @@ msgid ""
2
  msgstr "Project-Id-Version: Event Organiser\n"
3
  "Report-Msgid-Bugs-To: stephenh1988@gmail.com\n"
4
  "POT-Creation-Date: 2008-09-01 09:37+0000\n"
5
- "PO-Revision-Date: 2013-09-21 16:54:05+0000\n"
6
  "Last-Translator: stephenharris <stephenh1988@gmail.com>\n"
7
  "Language-Team: \n"
8
  "Language: Arabic\n"
@@ -89,11 +89,6 @@ msgstr ""
89
  msgid "A list or dropdown of event venues"
90
  msgstr ""
91
 
92
- #: ../event-organiser-go-pro.php:82
93
- msgid "Add action information on your venue pages with venue custom fields, or give "
94
- "your venues more attentioned with their own 'featured image'"
95
- msgstr ""
96
-
97
  #: ../event-organiser-settings.php:132
98
  msgid "Add an 'events' link to the navigation menu:"
99
  msgstr ""
@@ -102,6 +97,11 @@ msgstr ""
102
  msgid "Add Event"
103
  msgstr ""
104
 
 
 
 
 
 
105
  #: ../event-organiser-venues.php:230
106
  #: ../event-organiser-venues.php:268
107
  msgid "Add New"
@@ -160,15 +160,15 @@ msgid "All dates and times must be entered in the specified format. This format
160
  "changed in the settings page."
161
  msgstr ""
162
 
163
- #: ../event-organiser-edit.php:117
164
- msgid "All day"
165
- msgstr "طوال اليوم"
166
-
167
  #: ../includes/event-organiser-ajax.php:540
168
  #: ../includes/event-organiser-event-functions.php:1297
169
  msgid "All Day"
170
  msgstr ""
171
 
 
 
 
 
172
  #: ../includes/event-organiser-cpt.php:146
173
  msgid "All events"
174
  msgstr ""
@@ -347,14 +347,14 @@ msgstr ""
347
  msgid "Date Format:"
348
  msgstr "تنسيق التاريخ"
349
 
350
- #: ../event-organiser-calendar.php:55
351
- msgid "day"
352
- msgstr "يوم"
353
-
354
  #: ../event-organiser-calendar.php:229
355
  msgid "Day"
356
  msgstr "يوم"
357
 
 
 
 
 
358
  #: ../event-organiser-settings.php:271
359
  msgid "Day archive"
360
  msgstr ""
@@ -1043,14 +1043,14 @@ msgstr ""
1043
  msgid "mm-dd-yyyy"
1044
  msgstr ""
1045
 
1046
- #: ../event-organiser-calendar.php:57
1047
- msgid "month"
1048
- msgstr "شهر"
1049
-
1050
  #: ../event-organiser-calendar.php:229
1051
  msgid "Month"
1052
  msgstr "شهر"
1053
 
 
 
 
 
1054
  #: ../event-organiser-settings.php:270
1055
  msgid "Month archive"
1056
  msgstr ""
@@ -1631,14 +1631,14 @@ msgstr ""
1631
  msgid "Venue Location"
1632
  msgstr ""
1633
 
1634
- #: ../event-organiser-edit.php:221
1635
- msgid "Venue Name"
1636
- msgstr "اسم العنوان"
1637
-
1638
  #: ../event-organiser-venues.php:399
1639
  msgid "Venue name"
1640
  msgstr ""
1641
 
 
 
 
 
1642
  #: ../event-organiser-settings.php:220
1643
  msgid "Venue page:"
1644
  msgstr "صفحة العنوان"
@@ -1689,14 +1689,14 @@ msgstr ""
1689
  msgid "View will take you to the venue's page"
1690
  msgstr ""
1691
 
1692
- #: ../event-organiser-calendar.php:56
1693
- msgid "week"
1694
- msgstr "أسبوع"
1695
-
1696
  #: ../event-organiser-calendar.php:229
1697
  msgid "Week"
1698
  msgstr "أسبوع"
1699
 
 
 
 
 
1700
  #: ../event-organiser-edit.php:126
1701
  msgid "weekly"
1702
  msgstr "أسبوعياً"
2
  msgstr "Project-Id-Version: Event Organiser\n"
3
  "Report-Msgid-Bugs-To: stephenh1988@gmail.com\n"
4
  "POT-Creation-Date: 2008-09-01 09:37+0000\n"
5
+ "PO-Revision-Date: 2013-09-21 17:45:20+0000\n"
6
  "Last-Translator: stephenharris <stephenh1988@gmail.com>\n"
7
  "Language-Team: \n"
8
  "Language: Arabic\n"
89
  msgid "A list or dropdown of event venues"
90
  msgstr ""
91
 
 
 
 
 
 
92
  #: ../event-organiser-settings.php:132
93
  msgid "Add an 'events' link to the navigation menu:"
94
  msgstr ""
97
  msgid "Add Event"
98
  msgstr ""
99
 
100
+ #: ../event-organiser-go-pro.php:82
101
+ msgid "Add information on your venue pages with venue custom fields, or give your "
102
+ "venues more attentioned with their own 'featured image'"
103
+ msgstr ""
104
+
105
  #: ../event-organiser-venues.php:230
106
  #: ../event-organiser-venues.php:268
107
  msgid "Add New"
160
  "changed in the settings page."
161
  msgstr ""
162
 
 
 
 
 
163
  #: ../includes/event-organiser-ajax.php:540
164
  #: ../includes/event-organiser-event-functions.php:1297
165
  msgid "All Day"
166
  msgstr ""
167
 
168
+ #: ../event-organiser-edit.php:117
169
+ msgid "All day"
170
+ msgstr "طوال اليوم"
171
+
172
  #: ../includes/event-organiser-cpt.php:146
173
  msgid "All events"
174
  msgstr ""
347
  msgid "Date Format:"
348
  msgstr "تنسيق التاريخ"
349
 
 
 
 
 
350
  #: ../event-organiser-calendar.php:229
351
  msgid "Day"
352
  msgstr "يوم"
353
 
354
+ #: ../event-organiser-calendar.php:55
355
+ msgid "day"
356
+ msgstr "يوم"
357
+
358
  #: ../event-organiser-settings.php:271
359
  msgid "Day archive"
360
  msgstr ""
1043
  msgid "mm-dd-yyyy"
1044
  msgstr ""
1045
 
 
 
 
 
1046
  #: ../event-organiser-calendar.php:229
1047
  msgid "Month"
1048
  msgstr "شهر"
1049
 
1050
+ #: ../event-organiser-calendar.php:57
1051
+ msgid "month"
1052
+ msgstr "شهر"
1053
+
1054
  #: ../event-organiser-settings.php:270
1055
  msgid "Month archive"
1056
  msgstr ""
1631
  msgid "Venue Location"
1632
  msgstr ""
1633
 
 
 
 
 
1634
  #: ../event-organiser-venues.php:399
1635
  msgid "Venue name"
1636
  msgstr ""
1637
 
1638
+ #: ../event-organiser-edit.php:221
1639
+ msgid "Venue Name"
1640
+ msgstr "اسم العنوان"
1641
+
1642
  #: ../event-organiser-settings.php:220
1643
  msgid "Venue page:"
1644
  msgstr "صفحة العنوان"
1689
  msgid "View will take you to the venue's page"
1690
  msgstr ""
1691
 
 
 
 
 
1692
  #: ../event-organiser-calendar.php:229
1693
  msgid "Week"
1694
  msgstr "أسبوع"
1695
 
1696
+ #: ../event-organiser-calendar.php:56
1697
+ msgid "week"
1698
+ msgstr "أسبوع"
1699
+
1700
  #: ../event-organiser-edit.php:126
1701
  msgid "weekly"
1702
  msgstr "أسبوعياً"
languages/eventorganiser-cs_CZ.mo CHANGED
Binary file
languages/eventorganiser-cs_CZ.po CHANGED
@@ -2,7 +2,7 @@ msgid ""
2
  msgstr "Project-Id-Version: Event Organiser\n"
3
  "Report-Msgid-Bugs-To: stephenh1988@gmail.com\n"
4
  "POT-Creation-Date: 2008-09-01 09:37+0000\n"
5
- "PO-Revision-Date: 2013-09-21 17:38:06+0000\n"
6
  "Last-Translator: stephenharris <stephenh1988@gmail.com>\n"
7
  "Language-Team: \n"
8
  "Language: Czech (Czech Republic)\n"
@@ -89,11 +89,6 @@ msgstr ""
89
  msgid "A list or dropdown of event venues"
90
  msgstr ""
91
 
92
- #: ../event-organiser-go-pro.php:82
93
- msgid "Add action information on your venue pages with venue custom fields, or give "
94
- "your venues more attentioned with their own 'featured image'"
95
- msgstr ""
96
-
97
  #: ../event-organiser-settings.php:132
98
  msgid "Add an 'events' link to the navigation menu:"
99
  msgstr ""
@@ -102,6 +97,11 @@ msgstr ""
102
  msgid "Add Event"
103
  msgstr "Přidat událost"
104
 
 
 
 
 
 
105
  #: ../event-organiser-venues.php:230
106
  #: ../event-organiser-venues.php:268
107
  msgid "Add New"
@@ -160,15 +160,15 @@ msgid "All dates and times must be entered in the specified format. This format
160
  "changed in the settings page."
161
  msgstr ""
162
 
163
- #: ../event-organiser-edit.php:117
164
- msgid "All day"
165
- msgstr ""
166
-
167
  #: ../includes/event-organiser-ajax.php:540
168
  #: ../includes/event-organiser-event-functions.php:1297
169
  msgid "All Day"
170
  msgstr "Celodenní"
171
 
 
 
 
 
172
  #: ../includes/event-organiser-cpt.php:146
173
  msgid "All events"
174
  msgstr "Všechny události"
@@ -351,14 +351,14 @@ msgstr ""
351
  msgid "Date Format:"
352
  msgstr "Formát data:"
353
 
354
- #: ../event-organiser-calendar.php:55
355
- msgid "day"
356
- msgstr "den"
357
-
358
  #: ../event-organiser-calendar.php:229
359
  msgid "Day"
360
  msgstr "Den"
361
 
 
 
 
 
362
  #: ../event-organiser-settings.php:271
363
  msgid "Day archive"
364
  msgstr "Denní archiv"
@@ -1053,14 +1053,14 @@ msgstr "Minuta"
1053
  msgid "mm-dd-yyyy"
1054
  msgstr "mm-dd-yyyy"
1055
 
1056
- #: ../event-organiser-calendar.php:57
1057
- msgid "month"
1058
- msgstr "měsíc"
1059
-
1060
  #: ../event-organiser-calendar.php:229
1061
  msgid "Month"
1062
  msgstr "Měsíc"
1063
 
 
 
 
 
1064
  #: ../event-organiser-settings.php:270
1065
  msgid "Month archive"
1066
  msgstr "Měsíční archiv"
@@ -1660,14 +1660,14 @@ msgstr ""
1660
  msgid "Venue Location"
1661
  msgstr "Adresa místa"
1662
 
1663
- #: ../event-organiser-edit.php:221
1664
- msgid "Venue Name"
1665
- msgstr "Název místa"
1666
-
1667
  #: ../event-organiser-venues.php:399
1668
  msgid "Venue name"
1669
  msgstr "Název místa"
1670
 
 
 
 
 
1671
  #: ../event-organiser-settings.php:220
1672
  msgid "Venue page:"
1673
  msgstr "Stránka místa:"
@@ -1718,14 +1718,14 @@ msgstr "Ukázat místo"
1718
  msgid "View will take you to the venue's page"
1719
  msgstr "'Zobrazit' vás přenese na stránku místa."
1720
 
1721
- #: ../event-organiser-calendar.php:56
1722
- msgid "week"
1723
- msgstr "týden"
1724
-
1725
  #: ../event-organiser-calendar.php:229
1726
  msgid "Week"
1727
  msgstr "Týden"
1728
 
 
 
 
 
1729
  #: ../event-organiser-edit.php:126
1730
  msgid "weekly"
1731
  msgstr "týdně"
2
  msgstr "Project-Id-Version: Event Organiser\n"
3
  "Report-Msgid-Bugs-To: stephenh1988@gmail.com\n"
4
  "POT-Creation-Date: 2008-09-01 09:37+0000\n"
5
+ "PO-Revision-Date: 2013-09-21 17:45:20+0000\n"
6
  "Last-Translator: stephenharris <stephenh1988@gmail.com>\n"
7
  "Language-Team: \n"
8
  "Language: Czech (Czech Republic)\n"
89
  msgid "A list or dropdown of event venues"
90
  msgstr ""
91
 
 
 
 
 
 
92
  #: ../event-organiser-settings.php:132
93
  msgid "Add an 'events' link to the navigation menu:"
94
  msgstr ""
97
  msgid "Add Event"
98
  msgstr "Přidat událost"
99
 
100
+ #: ../event-organiser-go-pro.php:82
101
+ msgid "Add information on your venue pages with venue custom fields, or give your "
102
+ "venues more attentioned with their own 'featured image'"
103
+ msgstr ""
104
+
105
  #: ../event-organiser-venues.php:230
106
  #: ../event-organiser-venues.php:268
107
  msgid "Add New"
160
  "changed in the settings page."
161
  msgstr ""
162
 
 
 
 
 
163
  #: ../includes/event-organiser-ajax.php:540
164
  #: ../includes/event-organiser-event-functions.php:1297
165
  msgid "All Day"
166
  msgstr "Celodenní"
167
 
168
+ #: ../event-organiser-edit.php:117
169
+ msgid "All day"
170
+ msgstr ""
171
+
172
  #: ../includes/event-organiser-cpt.php:146
173
  msgid "All events"
174
  msgstr "Všechny události"
351
  msgid "Date Format:"
352
  msgstr "Formát data:"
353
 
 
 
 
 
354
  #: ../event-organiser-calendar.php:229
355
  msgid "Day"
356
  msgstr "Den"
357
 
358
+ #: ../event-organiser-calendar.php:55
359
+ msgid "day"
360
+ msgstr "den"
361
+
362
  #: ../event-organiser-settings.php:271
363
  msgid "Day archive"
364
  msgstr "Denní archiv"
1053
  msgid "mm-dd-yyyy"
1054
  msgstr "mm-dd-yyyy"
1055
 
 
 
 
 
1056
  #: ../event-organiser-calendar.php:229
1057
  msgid "Month"
1058
  msgstr "Měsíc"
1059
 
1060
+ #: ../event-organiser-calendar.php:57
1061
+ msgid "month"
1062
+ msgstr "měsíc"
1063
+
1064
  #: ../event-organiser-settings.php:270
1065
  msgid "Month archive"
1066
  msgstr "Měsíční archiv"
1660
  msgid "Venue Location"
1661
  msgstr "Adresa místa"
1662
 
 
 
 
 
1663
  #: ../event-organiser-venues.php:399
1664
  msgid "Venue name"
1665
  msgstr "Název místa"
1666
 
1667
+ #: ../event-organiser-edit.php:221
1668
+ msgid "Venue Name"
1669
+ msgstr "Název místa"
1670
+
1671
  #: ../event-organiser-settings.php:220
1672
  msgid "Venue page:"
1673
  msgstr "Stránka místa:"
1718
  msgid "View will take you to the venue's page"
1719
  msgstr "'Zobrazit' vás přenese na stránku místa."
1720
 
 
 
 
 
1721
  #: ../event-organiser-calendar.php:229
1722
  msgid "Week"
1723
  msgstr "Týden"
1724
 
1725
+ #: ../event-organiser-calendar.php:56
1726
+ msgid "week"
1727
+ msgstr "týden"
1728
+
1729
  #: ../event-organiser-edit.php:126
1730
  msgid "weekly"
1731
  msgstr "týdně"
languages/eventorganiser-da_DK.mo CHANGED
Binary file
languages/eventorganiser-da_DK.po CHANGED
@@ -89,11 +89,6 @@ msgstr "En liste eller drop-down memnu af begivenhedskategorier"
89
  msgid "A list or dropdown of event venues"
90
  msgstr "En liste eller drop-down af begivenhedssteder"
91
 
92
- #: ../event-organiser-go-pro.php:82
93
- msgid "Add action information on your venue pages with venue custom fields, or give "
94
- "your venues more attentioned with their own 'featured image'"
95
- msgstr ""
96
-
97
  #: ../event-organiser-settings.php:132
98
  msgid "Add an 'events' link to the navigation menu:"
99
  msgstr "Tilføj et link for 'begivenheder' til menuen:"
@@ -102,6 +97,11 @@ msgstr "Tilføj et link for 'begivenheder' til menuen:"
102
  msgid "Add Event"
103
  msgstr "Tilføj begivenhed"
104
 
 
 
 
 
 
105
  #: ../event-organiser-venues.php:230
106
  #: ../event-organiser-venues.php:268
107
  msgid "Add New"
@@ -161,15 +161,15 @@ msgid "All dates and times must be entered in the specified format. This format
161
  msgstr "Alle datoer og tider skal indtastes i det specificerede format. Dette format "
162
  "kan ændres på indstillingssiden."
163
 
164
- #: ../event-organiser-edit.php:117
165
- msgid "All day"
166
- msgstr "Hele dagen"
167
-
168
  #: ../includes/event-organiser-ajax.php:540
169
  #: ../includes/event-organiser-event-functions.php:1297
170
  msgid "All Day"
171
  msgstr "Hele dagen"
172
 
 
 
 
 
173
  #: ../includes/event-organiser-cpt.php:146
174
  msgid "All events"
175
  msgstr "Alle begivenheder"
@@ -353,14 +353,14 @@ msgstr ""
353
  msgid "Date Format:"
354
  msgstr "Dato-format:"
355
 
356
- #: ../event-organiser-calendar.php:55
357
- msgid "day"
358
- msgstr "dag"
359
-
360
  #: ../event-organiser-calendar.php:229
361
  msgid "Day"
362
  msgstr "Dag"
363
 
 
 
 
 
364
  #: ../event-organiser-settings.php:271
365
  msgid "Day archive"
366
  msgstr ""
@@ -1068,14 +1068,14 @@ msgstr "Minut"
1068
  msgid "mm-dd-yyyy"
1069
  msgstr "mm-dd-yyyy"
1070
 
1071
- #: ../event-organiser-calendar.php:57
1072
- msgid "month"
1073
- msgstr "måned"
1074
-
1075
  #: ../event-organiser-calendar.php:229
1076
  msgid "Month"
1077
  msgstr "Måned"
1078
 
 
 
 
 
1079
  #: ../event-organiser-settings.php:270
1080
  msgid "Month archive"
1081
  msgstr ""
@@ -1670,14 +1670,14 @@ msgstr ""
1670
  msgid "Venue Location"
1671
  msgstr "Stedlokation"
1672
 
1673
- #: ../event-organiser-edit.php:221
1674
- msgid "Venue Name"
1675
- msgstr ""
1676
-
1677
  #: ../event-organiser-venues.php:399
1678
  msgid "Venue name"
1679
  msgstr "Stednavn"
1680
 
 
 
 
 
1681
  #: ../event-organiser-settings.php:220
1682
  msgid "Venue page:"
1683
  msgstr "Side til sted:"
@@ -1728,14 +1728,14 @@ msgstr "Vis sted"
1728
  msgid "View will take you to the venue's page"
1729
  msgstr "Vis vil føre dig til stedets side"
1730
 
1731
- #: ../event-organiser-calendar.php:56
1732
- msgid "week"
1733
- msgstr "uge"
1734
-
1735
  #: ../event-organiser-calendar.php:229
1736
  msgid "Week"
1737
  msgstr "Uge"
1738
 
 
 
 
 
1739
  #: ../event-organiser-edit.php:126
1740
  msgid "weekly"
1741
  msgstr "ugentligt"
89
  msgid "A list or dropdown of event venues"
90
  msgstr "En liste eller drop-down af begivenhedssteder"
91
 
 
 
 
 
 
92
  #: ../event-organiser-settings.php:132
93
  msgid "Add an 'events' link to the navigation menu:"
94
  msgstr "Tilføj et link for 'begivenheder' til menuen:"
97
  msgid "Add Event"
98
  msgstr "Tilføj begivenhed"
99
 
100
+ #: ../event-organiser-go-pro.php:82
101
+ msgid "Add information on your venue pages with venue custom fields, or give your "
102
+ "venues more attentioned with their own 'featured image'"
103
+ msgstr ""
104
+
105
  #: ../event-organiser-venues.php:230
106
  #: ../event-organiser-venues.php:268
107
  msgid "Add New"
161
  msgstr "Alle datoer og tider skal indtastes i det specificerede format. Dette format "
162
  "kan ændres på indstillingssiden."
163
 
 
 
 
 
164
  #: ../includes/event-organiser-ajax.php:540
165
  #: ../includes/event-organiser-event-functions.php:1297
166
  msgid "All Day"
167
  msgstr "Hele dagen"
168
 
169
+ #: ../event-organiser-edit.php:117
170
+ msgid "All day"
171
+ msgstr "Hele dagen"
172
+
173
  #: ../includes/event-organiser-cpt.php:146
174
  msgid "All events"
175
  msgstr "Alle begivenheder"
353
  msgid "Date Format:"
354
  msgstr "Dato-format:"
355
 
 
 
 
 
356
  #: ../event-organiser-calendar.php:229
357
  msgid "Day"
358
  msgstr "Dag"
359
 
360
+ #: ../event-organiser-calendar.php:55
361
+ msgid "day"
362
+ msgstr "dag"
363
+
364
  #: ../event-organiser-settings.php:271
365
  msgid "Day archive"
366
  msgstr ""
1068
  msgid "mm-dd-yyyy"
1069
  msgstr "mm-dd-yyyy"
1070
 
 
 
 
 
1071
  #: ../event-organiser-calendar.php:229
1072
  msgid "Month"
1073
  msgstr "Måned"
1074
 
1075
+ #: ../event-organiser-calendar.php:57
1076
+ msgid "month"
1077
+ msgstr "måned"
1078
+
1079
  #: ../event-organiser-settings.php:270
1080
  msgid "Month archive"
1081
  msgstr ""
1670
  msgid "Venue Location"
1671
  msgstr "Stedlokation"
1672
 
 
 
 
 
1673
  #: ../event-organiser-venues.php:399
1674
  msgid "Venue name"
1675
  msgstr "Stednavn"
1676
 
1677
+ #: ../event-organiser-edit.php:221
1678
+ msgid "Venue Name"
1679
+ msgstr ""
1680
+
1681
  #: ../event-organiser-settings.php:220
1682
  msgid "Venue page:"
1683
  msgstr "Side til sted:"
1728
  msgid "View will take you to the venue's page"
1729
  msgstr "Vis vil føre dig til stedets side"
1730
 
 
 
 
 
1731
  #: ../event-organiser-calendar.php:229
1732
  msgid "Week"
1733
  msgstr "Uge"
1734
 
1735
+ #: ../event-organiser-calendar.php:56
1736
+ msgid "week"
1737
+ msgstr "uge"
1738
+
1739
  #: ../event-organiser-edit.php:126
1740
  msgid "weekly"
1741
  msgstr "ugentligt"
languages/eventorganiser-de_DE.mo CHANGED
Binary file
languages/eventorganiser-de_DE.po CHANGED
@@ -2,8 +2,8 @@ msgid ""
2
  msgstr "Project-Id-Version: Event Organiser\n"
3
  "Report-Msgid-Bugs-To: stephenh1988@gmail.com\n"
4
  "POT-Creation-Date: 2008-09-01 09:37+0000\n"
5
- "PO-Revision-Date: 2013-09-21 17:17:40+0000\n"
6
- "Last-Translator: stephenharris <stephenh1988@gmail.com>\n"
7
  "Language-Team: \n"
8
  "Language: German (Germany)\n"
9
  "MIME-Version: 1.0\n"
@@ -97,11 +97,6 @@ msgstr "Eine Liste der Event Kategorien"
97
  msgid "A list or dropdown of event venues"
98
  msgstr "Eine Liste oder Dropdown von Veranstaltungsstätten"
99
 
100
- #: ../event-organiser-go-pro.php:82
101
- msgid "Add action information on your venue pages with venue custom fields, or give "
102
- "your venues more attentioned with their own 'featured image'"
103
- msgstr ""
104
-
105
  #: ../event-organiser-settings.php:132
106
  msgid "Add an 'events' link to the navigation menu:"
107
  msgstr "Einen \"Termin\"-Link zum Navigationsmenü hinzufügen:"
@@ -110,6 +105,11 @@ msgstr "Einen \"Termin\"-Link zum Navigationsmenü hinzufügen:"
110
  msgid "Add Event"
111
  msgstr "Termin hinzufügen"
112
 
 
 
 
 
 
113
  #: ../event-organiser-venues.php:230
114
  #: ../event-organiser-venues.php:268
115
  msgid "Add New"
@@ -149,7 +149,7 @@ msgstr "Veranstaltungsort hinzufügen"
149
 
150
  #: ../event-organiser-settings.php:57
151
  msgid "Add-on Licence keys"
152
- msgstr ""
153
 
154
  #: ../event-organiser-go-pro.php:76
155
  msgid "Additional shortcodes & improved UI"
@@ -169,15 +169,15 @@ msgid "All dates and times must be entered in the specified format. This format
169
  msgstr "Alle Daten und Zeiten müssen in einem bestimmten Format eingegeben werden. "
170
  "Dieses Format kann unter \"Einstellungen\" geändert werden."
171
 
172
- #: ../event-organiser-edit.php:117
173
- msgid "All day"
174
- msgstr "Ganztags"
175
-
176
  #: ../includes/event-organiser-ajax.php:540
177
  #: ../includes/event-organiser-event-functions.php:1297
178
  msgid "All Day"
179
  msgstr "Ganztägig"
180
 
 
 
 
 
181
  #: ../includes/event-organiser-cpt.php:146
182
  msgid "All events"
183
  msgstr "Alle Termine"
@@ -338,7 +338,7 @@ msgstr "Benutzerdefiniertes Feld aktualisiert."
338
 
339
  #: ../event-organiser-settings.php:115
340
  msgid "Custom Fields"
341
- msgstr "Custom Fields"
342
 
343
  #: ../includes/event-organiser-event-functions.php:706
344
  msgid "custom reoccurrence"
@@ -364,14 +364,14 @@ msgstr ""
364
  msgid "Date Format:"
365
  msgstr "Datumsformat:"
366
 
367
- #: ../event-organiser-calendar.php:55
368
- msgid "day"
369
- msgstr "Tag"
370
-
371
  #: ../event-organiser-calendar.php:229
372
  msgid "Day"
373
  msgstr "Tag"
374
 
 
 
 
 
375
  #: ../event-organiser-settings.php:271
376
  msgid "Day archive"
377
  msgstr "Tagesarchiv"
@@ -390,7 +390,7 @@ msgstr "Tage"
390
 
391
  #: ../event-organiser-settings.php:143
392
  msgid "dd-mm-yyyy"
393
- msgstr "dd-mm-yyyy"
394
 
395
  #: ../event-organiser-debug.php:555
396
  msgid "Debug mode"
@@ -433,7 +433,7 @@ msgstr "DESC"
433
 
434
  #: ../event-organiser-settings.php:229
435
  msgid "Disable CSS:"
436
- msgstr ""
437
 
438
  #: ../includes/event-organiser-register.php:648
439
  msgid "Dismiss"
@@ -476,7 +476,7 @@ msgstr "Exportdatei downloaden"
476
 
477
  #: ../event-organiser-debug.php:84
478
  msgid "Download system information file"
479
- msgstr ""
480
 
481
  #: ../includes/event-organiser-ajax.php:255
482
  msgid "Draft"
@@ -608,7 +608,8 @@ msgstr ""
608
  #: ../event-organiser-add-ons.php:99
609
  msgid "Event Organiser offers a range of extension which add additional features to "
610
  "the plug-in."
611
- msgstr ""
 
612
 
613
  #: ../event-organiser-go-pro.php:55
614
  msgid "Event Organiser Pro is a premium add-on bringing advanced booking management "
@@ -798,7 +799,7 @@ msgstr "Termine exportieren"
798
 
799
  #: ../event-organiser-add-ons.php:20
800
  msgid "Extensions"
801
- msgstr ""
802
 
803
  #: ../includes/class-event-organiser-im-export.php:68
804
  msgid "File Error encountered: %d"
@@ -994,7 +995,7 @@ msgstr "Abgelaufene Termine einschließen"
994
 
995
  #: ../event-organiser-edit.php:180
996
  msgid "Include/Exclude occurrences"
997
- msgstr "Vorkommen ein- und auschliessen"
998
 
999
  #: ../includes/class-event-organiser-im-export.php:586
1000
  #: ../includes/class-eo-ical-parser.php:449
@@ -1078,16 +1079,16 @@ msgstr "Minute"
1078
 
1079
  #: ../event-organiser-settings.php:144
1080
  msgid "mm-dd-yyyy"
1081
- msgstr "mm-dd-yyyy"
1082
-
1083
- #: ../event-organiser-calendar.php:57
1084
- msgid "month"
1085
- msgstr "Monat"
1086
 
1087
  #: ../event-organiser-calendar.php:229
1088
  msgid "Month"
1089
  msgstr "Monat"
1090
 
 
 
 
 
1091
  #: ../event-organiser-settings.php:270
1092
  msgid "Month archive"
1093
  msgstr "Monatsarchiv"
@@ -1187,53 +1188,7 @@ msgstr "Vorkommen gelöscht"
1187
 
1188
  #: ../includes/event.php:744
1189
  msgid "Occurrence not deleted. Occurrence not found."
1190
- msgstr ""
1191
-
1192
- #: ../event-organiser-edit.php:146
1193
- #: ../templates/shortcode-event-list.php:52
1194
- msgid "on"
1195
- msgstr "am"
1196
-
1197
- #: ../event-organiser-edit.php:126
1198
- msgid "once"
1199
- msgstr "einmal"
1200
-
1201
- #: ../includes/event-organiser-event-functions.php:703
1202
- msgid "one time only"
1203
- msgstr "einmalig"
1204
-
1205
- #: ../includes/event-organiser-cpt.php:448
1206
- msgid "Only pre-existing venues can be selected. To add a venue, go to the venues "
1207
- "page."
1208
- msgstr "Nur bereits bestehenden Veranstaltungsorte können ausgewählt werden. Um "
1209
- "einen Ort hinzuzufügen, gehen Sie zur Seite \"Veranstaltungsorte\"."
1210
-
1211
- #: ../classes/class-eo-event-list-widget.php:55
1212
- msgid "Order by"
1213
- msgstr "Sortieren nach"
1214
-
1215
- #: ../event-organiser-settings.php:112
1216
- #: ../event-organiser-edit.php:31
1217
- #: ../event-organiser-manage.php:23
1218
- msgid "Organiser"
1219
- msgstr "Organiser"
1220
-
1221
- #: ../includes/event-organiser-cpt.php:458
1222
- #: ../includes/event-organiser-cpt.php:477
1223
- msgid "Overview"
1224
- msgstr "Übersicht"
1225
-
1226
- #: ../event-organiser-settings.php:630
1227
- msgid "Page list (fallback)"
1228
- msgstr "Seitenliste (Sicherung)"
1229
-
1230
- #: ../event-organiser-calendar.php:191
1231
- msgid "Occurrence deleted."
1232
- msgstr "Vorkommen gelöscht"
1233
-
1234
- #: ../includes/event.php:744
1235
- msgid "Occurrence not deleted. Occurrence not found."
1236
- msgstr ""
1237
 
1238
  #: ../event-organiser-edit.php:146
1239
  #: ../templates/shortcode-event-list.php:52
@@ -1273,32 +1228,6 @@ msgstr "Übersicht"
1273
  msgid "Page list (fallback)"
1274
  msgstr "Seitenliste (Sicherung)"
1275
 
1276
- #: ../includes/event-organiser-cpt.php:446
1277
- msgid "Only pre-existing venues can be selected. To add a venue, go to the venues "
1278
- "page."
1279
- msgstr "Nur bereits bestehenden Veranstaltungsorte können ausgewählt werden. Um "
1280
- "einen Ort hinzuzufügen, gehen Sie zur Seite \"Veranstaltungsorte\"."
1281
-
1282
- #: ../classes/class-eo-event-list-widget.php:55
1283
- msgid "Order by"
1284
- msgstr "Sortieren nach"
1285
-
1286
- #: ../event-organiser-settings.php:96
1287
- #: ../event-organiser-edit.php:28
1288
- #: ../event-organiser-manage.php:22
1289
- msgid "Organiser"
1290
- msgstr "Organiser"
1291
-
1292
- #: ../includes/event-organiser-cpt.php:456
1293
- #: ../includes/event-organiser-cpt.php:475
1294
- msgid "Overview"
1295
- msgstr "Übersicht"
1296
-
1297
- #: ../event-organiser-settings.php:554
1298
- msgid "Page list (fallback)"
1299
- msgstr "Seitenliste (Sicherung)"
1300
-
1301
- #: ../includes/event-organiser-cpt.php:63
1302
  #: ../includes/event-organiser-cpt.php:64
1303
  #: ../includes/event-organiser-cpt.php:65
1304
  msgid "Parent Category"
@@ -1398,7 +1327,7 @@ msgstr "Zeitplan wurde nicht erkannt."
1398
 
1399
  #: ../event-organiser-debug.php:556
1400
  msgid "Script mode"
1401
- msgstr ""
1402
 
1403
  #: ../includes/event-organiser-cpt.php:62
1404
  msgid "Search Categories"
@@ -1762,14 +1691,14 @@ msgstr ""
1762
  msgid "Venue Location"
1763
  msgstr "Veranstaltungsort Location"
1764
 
1765
- #: ../event-organiser-edit.php:221
1766
- msgid "Venue Name"
1767
- msgstr "Veranstatungsort"
1768
-
1769
  #: ../event-organiser-venues.php:399
1770
  msgid "Venue name"
1771
  msgstr "Veranstaltungsort Name"
1772
 
 
 
 
 
1773
  #: ../event-organiser-settings.php:220
1774
  msgid "Venue page:"
1775
  msgstr "Veranstaltungsort Seite:"
@@ -1820,14 +1749,14 @@ msgstr "Veranstaltungsort zeigen"
1820
  msgid "View will take you to the venue's page"
1821
  msgstr "'Ansehen' bringt Sie zur Seite des Veranstaltungsortes."
1822
 
1823
- #: ../event-organiser-calendar.php:56
1824
- msgid "week"
1825
- msgstr "Woche"
1826
-
1827
  #: ../event-organiser-calendar.php:229
1828
  msgid "Week"
1829
  msgstr "Woche"
1830
 
 
 
 
 
1831
  #: ../event-organiser-edit.php:126
1832
  msgid "weekly"
1833
  msgstr "wöchentlich"
@@ -1927,5 +1856,5 @@ msgstr "Möglicherweise müssen Sie gehen zu WordPress Einstellungen > Permalink
1927
 
1928
  #: ../event-organiser-settings.php:145
1929
  msgid "yyyy-mm-dd"
1930
- msgstr "yyyy-mm-dd"
1931
 
2
  msgstr "Project-Id-Version: Event Organiser\n"
3
  "Report-Msgid-Bugs-To: stephenh1988@gmail.com\n"
4
  "POT-Creation-Date: 2008-09-01 09:37+0000\n"
5
+ "PO-Revision-Date: 2013-10-03 10:54:25+0000\n"
6
+ "Last-Translator: Thomas <seagreenlion@gmail.com>\n"
7
  "Language-Team: \n"
8
  "Language: German (Germany)\n"
9
  "MIME-Version: 1.0\n"
97
  msgid "A list or dropdown of event venues"
98
  msgstr "Eine Liste oder Dropdown von Veranstaltungsstätten"
99
 
 
 
 
 
 
100
  #: ../event-organiser-settings.php:132
101
  msgid "Add an 'events' link to the navigation menu:"
102
  msgstr "Einen \"Termin\"-Link zum Navigationsmenü hinzufügen:"
105
  msgid "Add Event"
106
  msgstr "Termin hinzufügen"
107
 
108
+ #: ../event-organiser-go-pro.php:82
109
+ msgid "Add information on your venue pages with venue custom fields, or give your "
110
+ "venues more attentioned with their own 'featured image'"
111
+ msgstr ""
112
+
113
  #: ../event-organiser-venues.php:230
114
  #: ../event-organiser-venues.php:268
115
  msgid "Add New"
149
 
150
  #: ../event-organiser-settings.php:57
151
  msgid "Add-on Licence keys"
152
+ msgstr "Lizenz Schlüssel der Erweiterung"
153
 
154
  #: ../event-organiser-go-pro.php:76
155
  msgid "Additional shortcodes & improved UI"
169
  msgstr "Alle Daten und Zeiten müssen in einem bestimmten Format eingegeben werden. "
170
  "Dieses Format kann unter \"Einstellungen\" geändert werden."
171
 
 
 
 
 
172
  #: ../includes/event-organiser-ajax.php:540
173
  #: ../includes/event-organiser-event-functions.php:1297
174
  msgid "All Day"
175
  msgstr "Ganztägig"
176
 
177
+ #: ../event-organiser-edit.php:117
178
+ msgid "All day"
179
+ msgstr "Ganztags"
180
+
181
  #: ../includes/event-organiser-cpt.php:146
182
  msgid "All events"
183
  msgstr "Alle Termine"
338
 
339
  #: ../event-organiser-settings.php:115
340
  msgid "Custom Fields"
341
+ msgstr "Benutzerdefinierte Felder"
342
 
343
  #: ../includes/event-organiser-event-functions.php:706
344
  msgid "custom reoccurrence"
364
  msgid "Date Format:"
365
  msgstr "Datumsformat:"
366
 
 
 
 
 
367
  #: ../event-organiser-calendar.php:229
368
  msgid "Day"
369
  msgstr "Tag"
370
 
371
+ #: ../event-organiser-calendar.php:55
372
+ msgid "day"
373
+ msgstr "Tag"
374
+
375
  #: ../event-organiser-settings.php:271
376
  msgid "Day archive"
377
  msgstr "Tagesarchiv"
390
 
391
  #: ../event-organiser-settings.php:143
392
  msgid "dd-mm-yyyy"
393
+ msgstr "tt-mm-jjjj"
394
 
395
  #: ../event-organiser-debug.php:555
396
  msgid "Debug mode"
433
 
434
  #: ../event-organiser-settings.php:229
435
  msgid "Disable CSS:"
436
+ msgstr "CSS ausschalten"
437
 
438
  #: ../includes/event-organiser-register.php:648
439
  msgid "Dismiss"
476
 
477
  #: ../event-organiser-debug.php:84
478
  msgid "Download system information file"
479
+ msgstr "Herunterladen der Systeminfomationsdatei"
480
 
481
  #: ../includes/event-organiser-ajax.php:255
482
  msgid "Draft"
608
  #: ../event-organiser-add-ons.php:99
609
  msgid "Event Organiser offers a range of extension which add additional features to "
610
  "the plug-in."
611
+ msgstr "Event Organiser bietet eine Reihe von Erweiterungen an, welche zusätzliche "
612
+ "Funktionen zum plug-in hinzu fügen."
613
 
614
  #: ../event-organiser-go-pro.php:55
615
  msgid "Event Organiser Pro is a premium add-on bringing advanced booking management "
799
 
800
  #: ../event-organiser-add-ons.php:20
801
  msgid "Extensions"
802
+ msgstr "Erweiterung"
803
 
804
  #: ../includes/class-event-organiser-im-export.php:68
805
  msgid "File Error encountered: %d"
995
 
996
  #: ../event-organiser-edit.php:180
997
  msgid "Include/Exclude occurrences"
998
+ msgstr "Vorkommen ein- und ausschliessen"
999
 
1000
  #: ../includes/class-event-organiser-im-export.php:586
1001
  #: ../includes/class-eo-ical-parser.php:449
1079
 
1080
  #: ../event-organiser-settings.php:144
1081
  msgid "mm-dd-yyyy"
1082
+ msgstr "mm-tt-jjjj"
 
 
 
 
1083
 
1084
  #: ../event-organiser-calendar.php:229
1085
  msgid "Month"
1086
  msgstr "Monat"
1087
 
1088
+ #: ../event-organiser-calendar.php:57
1089
+ msgid "month"
1090
+ msgstr "Monat"
1091
+
1092
  #: ../event-organiser-settings.php:270
1093
  msgid "Month archive"
1094
  msgstr "Monatsarchiv"
1188
 
1189
  #: ../includes/event.php:744
1190
  msgid "Occurrence not deleted. Occurrence not found."
1191
+ msgstr "Ereignis nicht gelöscht bzw. nicht gefunden"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1192
 
1193
  #: ../event-organiser-edit.php:146
1194
  #: ../templates/shortcode-event-list.php:52
1228
  msgid "Page list (fallback)"
1229
  msgstr "Seitenliste (Sicherung)"
1230
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1231
  #: ../includes/event-organiser-cpt.php:64
1232
  #: ../includes/event-organiser-cpt.php:65
1233
  msgid "Parent Category"
1327
 
1328
  #: ../event-organiser-debug.php:556
1329
  msgid "Script mode"
1330
+ msgstr "Script Modus"
1331
 
1332
  #: ../includes/event-organiser-cpt.php:62
1333
  msgid "Search Categories"
1691
  msgid "Venue Location"
1692
  msgstr "Veranstaltungsort Location"
1693
 
 
 
 
 
1694
  #: ../event-organiser-venues.php:399
1695
  msgid "Venue name"
1696
  msgstr "Veranstaltungsort Name"
1697
 
1698
+ #: ../event-organiser-edit.php:221
1699
+ msgid "Venue Name"
1700
+ msgstr "Veranstatungsort"
1701
+
1702
  #: ../event-organiser-settings.php:220
1703
  msgid "Venue page:"
1704
  msgstr "Veranstaltungsort Seite:"
1749
  msgid "View will take you to the venue's page"
1750
  msgstr "'Ansehen' bringt Sie zur Seite des Veranstaltungsortes."
1751
 
 
 
 
 
1752
  #: ../event-organiser-calendar.php:229
1753
  msgid "Week"
1754
  msgstr "Woche"
1755
 
1756
+ #: ../event-organiser-calendar.php:56
1757
+ msgid "week"
1758
+ msgstr "Woche"
1759
+
1760
  #: ../event-organiser-edit.php:126
1761
  msgid "weekly"
1762
  msgstr "wöchentlich"
1856
 
1857
  #: ../event-organiser-settings.php:145
1858
  msgid "yyyy-mm-dd"
1859
+ msgstr "jjjj-mm-tt"
1860
 
languages/eventorganiser-el.mo CHANGED
Binary file
languages/eventorganiser-el.po CHANGED
@@ -96,11 +96,6 @@ msgstr "Μιά λίστα ή αναπτυσσόμενη λίστα των κατ
96
  msgid "A list or dropdown of event venues"
97
  msgstr "Μιά λίστα ή αναπτυσσόμενη λίστα των τοποθεσιών."
98
 
99
- #: ../event-organiser-go-pro.php:82
100
- msgid "Add action information on your venue pages with venue custom fields, or give "
101
- "your venues more attentioned with their own 'featured image'"
102
- msgstr ""
103
-
104
  #: ../event-organiser-settings.php:132
105
  msgid "Add an 'events' link to the navigation menu:"
106
  msgstr "Πρόσθεσε Event σύνδεση στο μενού πλοήγησης"
@@ -109,6 +104,11 @@ msgstr "Πρόσθεσε Event σύνδεση στο μενού πλοήγηση
109
  msgid "Add Event"
110
  msgstr "Προσθήκη Event"
111
 
 
 
 
 
 
112
  #: ../event-organiser-venues.php:230
113
  #: ../event-organiser-venues.php:268
114
  msgid "Add New"
@@ -168,15 +168,15 @@ msgid "All dates and times must be entered in the specified format. This format
168
  msgstr "Όλες οι ημερομηνίες και οι ώρες πρέπει να αναγράφονται με συγκεκριμένο "
169
  "τρόπο. Αυτή η μορφή μπορεί να αλλάξει στην σελίδα ρυθμίσεων."
170
 
171
- #: ../event-organiser-edit.php:117
172
- msgid "All day"
173
- msgstr "Ολοήμερο"
174
-
175
  #: ../includes/event-organiser-ajax.php:540
176
  #: ../includes/event-organiser-event-functions.php:1297
177
  msgid "All Day"
178
  msgstr "Ολοήμερο"
179
 
 
 
 
 
180
  #: ../includes/event-organiser-cpt.php:146
181
  msgid "All events"
182
  msgstr "Όλα τα event"
@@ -361,14 +361,14 @@ msgstr ""
361
  msgid "Date Format:"
362
  msgstr "Διαμόρφωση Ημερομηνίας"
363
 
364
- #: ../event-organiser-calendar.php:55
365
- msgid "day"
366
- msgstr "Ημέρα"
367
-
368
  #: ../event-organiser-calendar.php:229
369
  msgid "Day"
370
  msgstr "Ημέρα"
371
 
 
 
 
 
372
  #: ../event-organiser-settings.php:271
373
  msgid "Day archive"
374
  msgstr "Αρχείο ανα Ημέρα"
@@ -1084,14 +1084,14 @@ msgstr "Λεπτό"
1084
  msgid "mm-dd-yyyy"
1085
  msgstr "mm-dd-yyyy"
1086
 
1087
- #: ../event-organiser-calendar.php:57
1088
- msgid "month"
1089
- msgstr "Μήνας"
1090
-
1091
  #: ../event-organiser-calendar.php:229
1092
  msgid "Month"
1093
  msgstr "Μήνας"
1094
 
 
 
 
 
1095
  #: ../event-organiser-settings.php:270
1096
  msgid "Month archive"
1097
  msgstr "Αρχείο ανα Μήνα"
@@ -1694,14 +1694,14 @@ msgstr ""
1694
  msgid "Venue Location"
1695
  msgstr "Τοποθεσία χώρου"
1696
 
1697
- #: ../event-organiser-edit.php:221
1698
- msgid "Venue Name"
1699
- msgstr "Ονομα Τοποθεσίας"
1700
-
1701
  #: ../event-organiser-venues.php:399
1702
  msgid "Venue name"
1703
  msgstr "Ονομασία χώρου"
1704
 
 
 
 
 
1705
  #: ../event-organiser-settings.php:220
1706
  msgid "Venue page:"
1707
  msgstr "Τοποθεσίες"
@@ -1752,14 +1752,14 @@ msgstr "Εμφάνιση τοποθεσίας"
1752
  msgid "View will take you to the venue's page"
1753
  msgstr "Η Εμφάνιση θα οδηγήσει σην σελίδα με τις τοποθεσίες."
1754
 
1755
- #: ../event-organiser-calendar.php:56
1756
- msgid "week"
1757
- msgstr "Εβδομάδα"
1758
-
1759
  #: ../event-organiser-calendar.php:229
1760
  msgid "Week"
1761
  msgstr "Εβδομάδα"
1762
 
 
 
 
 
1763
  #: ../event-organiser-edit.php:126
1764
  msgid "weekly"
1765
  msgstr "Εβδομαδιαία"
96
  msgid "A list or dropdown of event venues"
97
  msgstr "Μιά λίστα ή αναπτυσσόμενη λίστα των τοποθεσιών."
98
 
 
 
 
 
 
99
  #: ../event-organiser-settings.php:132
100
  msgid "Add an 'events' link to the navigation menu:"
101
  msgstr "Πρόσθεσε Event σύνδεση στο μενού πλοήγησης"
104
  msgid "Add Event"
105
  msgstr "Προσθήκη Event"
106
 
107
+ #: ../event-organiser-go-pro.php:82
108
+ msgid "Add information on your venue pages with venue custom fields, or give your "
109
+ "venues more attentioned with their own 'featured image'"
110
+ msgstr ""
111
+
112
  #: ../event-organiser-venues.php:230
113
  #: ../event-organiser-venues.php:268
114
  msgid "Add New"
168
  msgstr "Όλες οι ημερομηνίες και οι ώρες πρέπει να αναγράφονται με συγκεκριμένο "
169
  "τρόπο. Αυτή η μορφή μπορεί να αλλάξει στην σελίδα ρυθμίσεων."
170
 
 
 
 
 
171
  #: ../includes/event-organiser-ajax.php:540
172
  #: ../includes/event-organiser-event-functions.php:1297
173
  msgid "All Day"
174
  msgstr "Ολοήμερο"
175
 
176
+ #: ../event-organiser-edit.php:117
177
+ msgid "All day"
178
+ msgstr "Ολοήμερο"
179
+
180
  #: ../includes/event-organiser-cpt.php:146
181
  msgid "All events"
182
  msgstr "Όλα τα event"
361
  msgid "Date Format:"
362
  msgstr "Διαμόρφωση Ημερομηνίας"
363
 
 
 
 
 
364
  #: ../event-organiser-calendar.php:229
365
  msgid "Day"
366
  msgstr "Ημέρα"
367
 
368
+ #: ../event-organiser-calendar.php:55
369
+ msgid "day"
370
+ msgstr "Ημέρα"
371
+
372
  #: ../event-organiser-settings.php:271
373
  msgid "Day archive"
374
  msgstr "Αρχείο ανα Ημέρα"
1084
  msgid "mm-dd-yyyy"
1085
  msgstr "mm-dd-yyyy"
1086
 
 
 
 
 
1087
  #: ../event-organiser-calendar.php:229
1088
  msgid "Month"
1089
  msgstr "Μήνας"
1090
 
1091
+ #: ../event-organiser-calendar.php:57
1092
+ msgid "month"
1093
+ msgstr "Μήνας"
1094
+
1095
  #: ../event-organiser-settings.php:270
1096
  msgid "Month archive"
1097
  msgstr "Αρχείο ανα Μήνα"
1694
  msgid "Venue Location"
1695
  msgstr "Τοποθεσία χώρου"
1696
 
 
 
 
 
1697
  #: ../event-organiser-venues.php:399
1698
  msgid "Venue name"
1699
  msgstr "Ονομασία χώρου"
1700
 
1701
+ #: ../event-organiser-edit.php:221
1702
+ msgid "Venue Name"
1703
+ msgstr "Ονομα Τοποθεσίας"
1704
+
1705
  #: ../event-organiser-settings.php:220
1706
  msgid "Venue page:"
1707
  msgstr "Τοποθεσίες"
1752
  msgid "View will take you to the venue's page"
1753
  msgstr "Η Εμφάνιση θα οδηγήσει σην σελίδα με τις τοποθεσίες."
1754
 
 
 
 
 
1755
  #: ../event-organiser-calendar.php:229
1756
  msgid "Week"
1757
  msgstr "Εβδομάδα"
1758
 
1759
+ #: ../event-organiser-calendar.php:56
1760
+ msgid "week"
1761
+ msgstr "Εβδομάδα"
1762
+
1763
  #: ../event-organiser-edit.php:126
1764
  msgid "weekly"
1765
  msgstr "Εβδομαδιαία"
languages/eventorganiser-fa_IR.mo CHANGED
Binary file
languages/eventorganiser-fa_IR.po CHANGED
@@ -2,8 +2,8 @@ msgid ""
2
  msgstr "Project-Id-Version: Event Organiser\n"
3
  "Report-Msgid-Bugs-To: stephenh1988@gmail.com\n"
4
  "POT-Creation-Date: 2008-09-01 09:37+0000\n"
5
- "PO-Revision-Date: 2013-09-21 16:51:08+0000\n"
6
- "Last-Translator: stephenharris <stephenh1988@gmail.com>\n"
7
  "Language-Team: \n"
8
  "Language: Persian (Iran, Islamic Republic of)\n"
9
  "MIME-Version: 1.0\n"
@@ -89,11 +89,6 @@ msgstr ""
89
  msgid "A list or dropdown of event venues"
90
  msgstr ""
91
 
92
- #: ../event-organiser-go-pro.php:82
93
- msgid "Add action information on your venue pages with venue custom fields, or give "
94
- "your venues more attentioned with their own 'featured image'"
95
- msgstr ""
96
-
97
  #: ../event-organiser-settings.php:132
98
  msgid "Add an 'events' link to the navigation menu:"
99
  msgstr ""
@@ -102,6 +97,11 @@ msgstr ""
102
  msgid "Add Event"
103
  msgstr "افزودن رویداد"
104
 
 
 
 
 
 
105
  #: ../event-organiser-venues.php:230
106
  #: ../event-organiser-venues.php:268
107
  msgid "Add New"
@@ -125,7 +125,7 @@ msgstr "افزودن مکان"
125
 
126
  #: ../includes/event-organiser-cpt.php:106
127
  msgid "Add or remove tags"
128
- msgstr ""
129
 
130
  #: ../includes/event-organiser-cpt.php:38
131
  msgid "Add or remove venues"
@@ -160,15 +160,15 @@ msgid "All dates and times must be entered in the specified format. This format
160
  "changed in the settings page."
161
  msgstr ""
162
 
163
- #: ../event-organiser-edit.php:117
164
- msgid "All day"
165
- msgstr "تمام روز"
166
-
167
  #: ../includes/event-organiser-ajax.php:540
168
  #: ../includes/event-organiser-event-functions.php:1297
169
  msgid "All Day"
170
  msgstr "تمام روز"
171
 
 
 
 
 
172
  #: ../includes/event-organiser-cpt.php:146
173
  msgid "All events"
174
  msgstr "تمامی رویدادها"
@@ -267,7 +267,7 @@ msgstr ""
267
 
268
  #: ../includes/event-organiser-cpt.php:104
269
  msgid "Choose from the most used tags"
270
- msgstr ""
271
 
272
  #: ../includes/event-organiser-cpt.php:437
273
  msgid "Choose the reoccurrence end date. No further occurrences are added after "
@@ -347,14 +347,14 @@ msgstr ""
347
  msgid "Date Format:"
348
  msgstr "فرمت تاریخ"
349
 
350
- #: ../event-organiser-calendar.php:55
351
- msgid "day"
352
- msgstr "روز"
353
-
354
  #: ../event-organiser-calendar.php:229
355
  msgid "Day"
356
  msgstr "روز"
357
 
 
 
 
 
358
  #: ../event-organiser-settings.php:271
359
  msgid "Day archive"
360
  msgstr "بایگانی روزانه"
@@ -642,7 +642,7 @@ msgstr "رویداد به روز شد"
642
 
643
  #: ../includes/event-organiser-cpt.php:217
644
  msgid "Event updated. <a href=\"%s\">View event</a>"
645
- msgstr ""
646
 
647
  #: ../classes/class-eo-calendar-widget.php:88
648
  msgid "Event venue"
@@ -1043,14 +1043,14 @@ msgstr "دقیقه"
1043
  msgid "mm-dd-yyyy"
1044
  msgstr ""
1045
 
1046
- #: ../event-organiser-calendar.php:57
1047
- msgid "month"
1048
- msgstr "ماه"
1049
-
1050
  #: ../event-organiser-calendar.php:229
1051
  msgid "Month"
1052
  msgstr "ماه"
1053
 
 
 
 
 
1054
  #: ../event-organiser-settings.php:270
1055
  msgid "Month archive"
1056
  msgstr "بایگانی ماهانه"
@@ -1105,7 +1105,7 @@ msgstr "رویدادی یافت نشد"
1105
 
1106
  #: ../includes/event-organiser-cpt.php:150
1107
  msgid "No events found in Trash"
1108
- msgstr ""
1109
 
1110
  #: ../includes/class-event-organiser-im-export.php:316
1111
  msgid "No events were imported."
@@ -1341,7 +1341,7 @@ msgstr ""
1341
 
1342
  #: ../includes/event-organiser-cpt.php:107
1343
  msgid "Separate tags with commas"
1344
- msgstr ""
1345
 
1346
  #: ../includes/event-organiser-cpt.php:39
1347
  msgid "Separate venues with commas"
@@ -1631,14 +1631,14 @@ msgstr ""
1631
  msgid "Venue Location"
1632
  msgstr "آدرس مکان"
1633
 
1634
- #: ../event-organiser-edit.php:221
1635
- msgid "Venue Name"
1636
- msgstr "نام مکان"
1637
-
1638
  #: ../event-organiser-venues.php:399
1639
  msgid "Venue name"
1640
  msgstr "نام مکان"
1641
 
 
 
 
 
1642
  #: ../event-organiser-settings.php:220
1643
  msgid "Venue page:"
1644
  msgstr "صفحه مکان:"
@@ -1689,14 +1689,14 @@ msgstr "نمایش مکان"
1689
  msgid "View will take you to the venue's page"
1690
  msgstr ""
1691
 
1692
- #: ../event-organiser-calendar.php:56
1693
- msgid "week"
1694
- msgstr "هفته"
1695
-
1696
  #: ../event-organiser-calendar.php:229
1697
  msgid "Week"
1698
  msgstr "هفته"
1699
 
 
 
 
 
1700
  #: ../event-organiser-edit.php:126
1701
  msgid "weekly"
1702
  msgstr "هفتگی"
2
  msgstr "Project-Id-Version: Event Organiser\n"
3
  "Report-Msgid-Bugs-To: stephenh1988@gmail.com\n"
4
  "POT-Creation-Date: 2008-09-01 09:37+0000\n"
5
+ "PO-Revision-Date: 2013-09-29 05:10:28+0000\n"
6
+ "Last-Translator: chinestan <chinestan@mihanmail.ir>\n"
7
  "Language-Team: \n"
8
  "Language: Persian (Iran, Islamic Republic of)\n"
9
  "MIME-Version: 1.0\n"
89
  msgid "A list or dropdown of event venues"
90
  msgstr ""
91
 
 
 
 
 
 
92
  #: ../event-organiser-settings.php:132
93
  msgid "Add an 'events' link to the navigation menu:"
94
  msgstr ""
97
  msgid "Add Event"
98
  msgstr "افزودن رویداد"
99
 
100
+ #: ../event-organiser-go-pro.php:82
101
+ msgid "Add information on your venue pages with venue custom fields, or give your "
102
+ "venues more attentioned with their own 'featured image'"
103
+ msgstr ""
104
+
105
  #: ../event-organiser-venues.php:230
106
  #: ../event-organiser-venues.php:268
107
  msgid "Add New"
125
 
126
  #: ../includes/event-organiser-cpt.php:106
127
  msgid "Add or remove tags"
128
+ msgstr " افزودن یا حذف کردن برچسب"
129
 
130
  #: ../includes/event-organiser-cpt.php:38
131
  msgid "Add or remove venues"
160
  "changed in the settings page."
161
  msgstr ""
162
 
 
 
 
 
163
  #: ../includes/event-organiser-ajax.php:540
164
  #: ../includes/event-organiser-event-functions.php:1297
165
  msgid "All Day"
166
  msgstr "تمام روز"
167
 
168
+ #: ../event-organiser-edit.php:117
169
+ msgid "All day"
170
+ msgstr "تمام روز"
171
+
172
  #: ../includes/event-organiser-cpt.php:146
173
  msgid "All events"
174
  msgstr "تمامی رویدادها"
267
 
268
  #: ../includes/event-organiser-cpt.php:104
269
  msgid "Choose from the most used tags"
270
+ msgstr "از میان برچسبهایی که بیشتر استفاده شده اند ، انتخاب کنید"
271
 
272
  #: ../includes/event-organiser-cpt.php:437
273
  msgid "Choose the reoccurrence end date. No further occurrences are added after "
347
  msgid "Date Format:"
348
  msgstr "فرمت تاریخ"
349
 
 
 
 
 
350
  #: ../event-organiser-calendar.php:229
351
  msgid "Day"
352
  msgstr "روز"
353
 
354
+ #: ../event-organiser-calendar.php:55
355
+ msgid "day"
356
+ msgstr "روز"
357
+
358
  #: ../event-organiser-settings.php:271
359
  msgid "Day archive"
360
  msgstr "بایگانی روزانه"
642
 
643
  #: ../includes/event-organiser-cpt.php:217
644
  msgid "Event updated. <a href=\"%s\">View event</a>"
645
+ msgstr "رویداد بروز شد. <a href=\"%s\">مشاهده صفحه رویداد</a>"
646
 
647
  #: ../classes/class-eo-calendar-widget.php:88
648
  msgid "Event venue"
1043
  msgid "mm-dd-yyyy"
1044
  msgstr ""
1045
 
 
 
 
 
1046
  #: ../event-organiser-calendar.php:229
1047
  msgid "Month"
1048
  msgstr "ماه"
1049
 
1050
+ #: ../event-organiser-calendar.php:57
1051
+ msgid "month"
1052
+ msgstr "ماه"
1053
+
1054
  #: ../event-organiser-settings.php:270
1055
  msgid "Month archive"
1056
  msgstr "بایگانی ماهانه"
1105
 
1106
  #: ../includes/event-organiser-cpt.php:150
1107
  msgid "No events found in Trash"
1108
+ msgstr "رویدادی در سطل زباله یافت نشد"
1109
 
1110
  #: ../includes/class-event-organiser-im-export.php:316
1111
  msgid "No events were imported."
1341
 
1342
  #: ../includes/event-organiser-cpt.php:107
1343
  msgid "Separate tags with commas"
1344
+ msgstr "برچسب ها را با کاما جدا کنید"
1345
 
1346
  #: ../includes/event-organiser-cpt.php:39
1347
  msgid "Separate venues with commas"
1631
  msgid "Venue Location"
1632
  msgstr "آدرس مکان"
1633
 
 
 
 
 
1634
  #: ../event-organiser-venues.php:399
1635
  msgid "Venue name"
1636
  msgstr "نام مکان"
1637
 
1638
+ #: ../event-organiser-edit.php:221
1639
+ msgid "Venue Name"
1640
+ msgstr "نام مکان"
1641
+
1642
  #: ../event-organiser-settings.php:220
1643
  msgid "Venue page:"
1644
  msgstr "صفحه مکان:"
1689
  msgid "View will take you to the venue's page"
1690
  msgstr ""
1691
 
 
 
 
 
1692
  #: ../event-organiser-calendar.php:229
1693
  msgid "Week"
1694
  msgstr "هفته"
1695
 
1696
+ #: ../event-organiser-calendar.php:56
1697
+ msgid "week"
1698
+ msgstr "هفته"
1699
+
1700
  #: ../event-organiser-edit.php:126
1701
  msgid "weekly"
1702
  msgstr "هفتگی"
languages/eventorganiser-id_ID.mo ADDED
Binary file
languages/eventorganiser-id_ID.po ADDED
@@ -0,0 +1,1791 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr "Project-Id-Version: Event Organiser\n"
3
+ "Report-Msgid-Bugs-To: stephenh1988@gmail.com\n"
4
+ "POT-Creation-Date: 2008-09-01 09:37+0000\n"
5
+ "PO-Revision-Date: 2013-10-21 23:33:37+0000\n"
6
+ "Last-Translator: Ebta <ebta.setiawan@gmail.com>\n"
7
+ "Language-Team: \n"
8
+ "Language: Indonesian (Indonesia)\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ ""
13
+
14
+ #: ../templates/taxonomy-event-category.php:49
15
+ #: ../templates/taxonomy-event-category.php:107
16
+ #: ../templates/archive-event.php:56
17
+ #: ../templates/archive-event.php:111
18
+ #: ../templates/taxonomy-event-tag.php:49
19
+ #: ../templates/taxonomy-event-tag.php:107
20
+ #: ../templates/taxonomy-event-venue.php:49
21
+ #: ../templates/taxonomy-event-venue.php:106
22
+ msgid " <span class=\"meta-nav\">&larr;</span> Newer events"
23
+ msgstr ""
24
+
25
+ #: ../includes/class-event-organiser-im-export.php:335
26
+ msgid "%d categories were created"
27
+ msgstr ""
28
+
29
+ #: ../includes/class-event-organiser-im-export.php:324
30
+ msgid "%d events were successfully imported"
31
+ msgstr ""
32
+
33
+ #: ../includes/class-event-organiser-im-export.php:329
34
+ msgid "%d venues were created"
35
+ msgstr "% lokasi sudah dibuat"
36
+
37
+ #: ../event-organiser-debug.php:416
38
+ msgid "%s has only been tested up to %s %s"
39
+ msgstr ""
40
+
41
+ #: ../event-organiser-debug.php:423
42
+ msgid "%s requires %s version %s or higher"
43
+ msgstr ""
44
+
45
+ #: ../event-organiser-manage.php:200
46
+ msgid "&mdash; No Change &mdash;"
47
+ msgstr ""
48
+
49
+ #: ../classes/class-eo-event-list-widget.php:90
50
+ msgid "'No events' message"
51
+ msgstr ""
52
+
53
+ #: ../includes/class-event-organiser-im-export.php:333
54
+ msgid "1 category was created"
55
+ msgstr "1 kategori sudah dibuat"
56
+
57
+ #: ../includes/class-event-organiser-im-export.php:322
58
+ msgid "1 event was successfully imported"
59
+ msgstr ""
60
+
61
+ #: ../includes/class-event-organiser-im-export.php:327
62
+ msgid "1 venue was created"
63
+ msgstr "1 lokasi sudah dibuat"
64
+
65
+ #: ../event-organiser-calendar.php:210
66
+ msgid "24 hour time"
67
+ msgstr ""
68
+
69
+ #: ../includes/event-organiser-register.php:604
70
+ msgid "<h4>City & State Fields Added</h4>City and state / province fields for "
71
+ "venues have now been added. </br> If you'd like, Event Organiser can <a "
72
+ "href='%s'>attempt to auto-fill them</a>. You can always manually change the "
73
+ "details aftewards."
74
+ msgstr ""
75
+
76
+ #: ../includes/event-organiser-register.php:611
77
+ msgid "<h4>The Default Templates Have Changed</h4>Don't panic! If you've set up "
78
+ "your own templates in your theme you won't notice any change. </br> If you "
79
+ "haven't and want the old templates back, <a "
80
+ "href='http://wp-event-organiser.com/blog/new-default-templates-in-1-7'>see "
81
+ "this post<a/>."
82
+ msgstr ""
83
+
84
+ #: ../classes/class-eo-widget-categories.php:10
85
+ msgid "A list or dropdown of event categories"
86
+ msgstr ""
87
+
88
+ #: ../classes/class-eo-widget-venues.php:11
89
+ msgid "A list or dropdown of event venues"
90
+ msgstr ""
91
+
92
+ #: ../event-organiser-settings.php:132
93
+ msgid "Add an 'events' link to the navigation menu:"
94
+ msgstr ""
95
+
96
+ #: ../includes/event-organiser-cpt.php:483
97
+ msgid "Add Event"
98
+ msgstr ""
99
+
100
+ #: ../event-organiser-go-pro.php:82
101
+ msgid "Add information on your venue pages with venue custom fields, or give your "
102
+ "venues more attentioned with their own 'featured image'"
103
+ msgstr ""
104
+
105
+ #: ../event-organiser-venues.php:230
106
+ #: ../event-organiser-venues.php:268
107
+ msgid "Add New"
108
+ msgstr ""
109
+
110
+ #: ../includes/event-organiser-cpt.php:68
111
+ msgid "Add New Category"
112
+ msgstr "Tambah Kategori Baru"
113
+
114
+ #: ../includes/event-organiser-cpt.php:143
115
+ msgid "Add New Event"
116
+ msgstr "Tambah Agenda Baru"
117
+
118
+ #: ../includes/event-organiser-cpt.php:101
119
+ msgid "Add New Tag"
120
+ msgstr "Tambah Kata Kunci Baru"
121
+
122
+ #: ../event-organiser-venues.php:272
123
+ msgid "Add New Venue"
124
+ msgstr ""
125
+
126
+ #: ../includes/event-organiser-cpt.php:106
127
+ msgid "Add or remove tags"
128
+ msgstr "Tambah atau hapus kata-kata kunci"
129
+
130
+ #: ../includes/event-organiser-cpt.php:38
131
+ msgid "Add or remove venues"
132
+ msgstr "Tambah atau hapus tempat/lokasi"
133
+
134
+ #: ../includes/event-organiser-ajax.php:545
135
+ msgid "Add To Google Calendar"
136
+ msgstr "Tambahkan ke Google Calendar"
137
+
138
+ #: ../event-organiser-venues.php:345
139
+ msgid "Add Venue"
140
+ msgstr ""
141
+
142
+ #: ../event-organiser-settings.php:57
143
+ msgid "Add-on Licence keys"
144
+ msgstr ""
145
+
146
+ #: ../event-organiser-go-pro.php:76
147
+ msgid "Additional shortcodes & improved UI"
148
+ msgstr ""
149
+
150
+ #: ../includes/event-organiser-venue-functions.php:882
151
+ msgid "Address"
152
+ msgstr ""
153
+
154
+ #: ../includes/event-organiser-cpt.php:63
155
+ msgid "All Categories"
156
+ msgstr "Semua Kategori"
157
+
158
+ #: ../includes/event-organiser-cpt.php:428
159
+ msgid "All dates and times must be entered in the specified format. This format can "
160
+ "changed in the settings page."
161
+ msgstr ""
162
+
163
+ #: ../includes/event-organiser-ajax.php:540
164
+ #: ../includes/event-organiser-event-functions.php:1297
165
+ msgid "All Day"
166
+ msgstr "Setiap hari"
167
+
168
+ #: ../event-organiser-edit.php:117
169
+ msgid "All day"
170
+ msgstr ""
171
+
172
+ #: ../includes/event-organiser-cpt.php:146
173
+ msgid "All events"
174
+ msgstr "Semua Agenda"
175
+
176
+ #: ../includes/event-organiser-cpt.php:95
177
+ msgid "All Tags"
178
+ msgstr "Semua Kata-kata Kunci"
179
+
180
+ #: ../includes/event-organiser-cpt.php:31
181
+ msgid "All Venues"
182
+ msgstr "Semua Tempat/Lokasi"
183
+
184
+ #: ../templates/taxonomy-event-category.php:120
185
+ msgid "Apologies, but no events were found for the requested category. "
186
+ msgstr ""
187
+
188
+ #: ../templates/taxonomy-event-tag.php:120
189
+ msgid "Apologies, but no events were found for the requested tag. "
190
+ msgstr ""
191
+
192
+ #: ../templates/taxonomy-event-venue.php:118
193
+ msgid "Apologies, but no events were found for the requested venue. "
194
+ msgstr ""
195
+
196
+ #: ../templates/archive-event.php:123
197
+ msgid "Apologies, but no results were found for the requested archive. "
198
+ msgstr ""
199
+
200
+ #: ../event-organiser-settings.php:168
201
+ msgid "Are current events past?"
202
+ msgstr ""
203
+
204
+ #: ../classes/class-eo-event-list-widget.php:61
205
+ msgid "ASC"
206
+ msgstr ""
207
+
208
+ #: ../includes/event-organiser-cpt.php:616
209
+ msgid "Assign the category a colour."
210
+ msgstr ""
211
+
212
+ #: ../event-organiser-settings.php:112
213
+ msgid "Author"
214
+ msgstr ""
215
+
216
+ #: ../event-organiser-debug.php:76
217
+ msgid "Below any <strong>known</strong> plug-in and theme conflicts are highlighted "
218
+ "in red."
219
+ msgstr ""
220
+
221
+ #: ../includes/event-organiser-ajax.php:347
222
+ msgid "Break this series"
223
+ msgstr ""
224
+
225
+ #: ../event-organiser-go-pro.php:56
226
+ msgid "But that's not all &hellip;"
227
+ msgstr ""
228
+
229
+ #: ../includes/event-organiser-cpt.php:479
230
+ msgid "By clicking the relevant tab, you can view events in Month, Week or Day "
231
+ "mode. You can also filter the events by events by category and venue. The "
232
+ "'go to date' button allows you to quickly jump to a specific date."
233
+ msgstr ""
234
+
235
+ #: ../event-organiser-calendar.php:203
236
+ msgid "Calendar options"
237
+ msgstr ""
238
+
239
+ #: ../event-organiser-calendar.php:22
240
+ #: ../event-organiser-calendar.php:23
241
+ msgid "Calendar View"
242
+ msgstr ""
243
+
244
+ #: ../event-organiser-edit.php:239
245
+ #: ../event-organiser-calendar.php:282
246
+ #: ../event-organiser-calendar.php:289
247
+ msgid "Cancel"
248
+ msgstr ""
249
+
250
+ #: ../event-organiser-manage.php:26
251
+ msgid "Categories"
252
+ msgstr ""
253
+
254
+ #: ../event-organiser-settings.php:235
255
+ msgid "Check this option to prevent any stylesheets from Event Organiser being "
256
+ "loaded on the front-end"
257
+ msgstr ""
258
+
259
+ #: ../event-organiser-edit.php:76
260
+ msgid "Check to edit this event and its reoccurrences"
261
+ msgstr ""
262
+
263
+ #: ../event-organiser-settings.php:600
264
+ msgid "Choose a custom permalink structure for events, venues, event categories and "
265
+ "event tags."
266
+ msgstr ""
267
+
268
+ #: ../includes/event-organiser-cpt.php:104
269
+ msgid "Choose from the most used tags"
270
+ msgstr "Pilih kata-kata kunci yang sering digunakan"
271
+
272
+ #: ../includes/event-organiser-cpt.php:437
273
+ msgid "Choose the reoccurrence end date. No further occurrences are added after "
274
+ "this date, but an occurrence that starts before may finish after this date."
275
+ msgstr ""
276
+
277
+ #: ../includes/event-organiser-venue-functions.php:883
278
+ msgid "City"
279
+ msgstr "Kota"
280
+
281
+ #: ../includes/event-organiser-cpt.php:610
282
+ #: ../includes/event-organiser-cpt.php:633
283
+ msgid "Color"
284
+ msgstr ""
285
+
286
+ #: ../event-organiser-settings.php:116
287
+ msgid "Comments"
288
+ msgstr ""
289
+
290
+ #: ../includes/event-organiser-venue-functions.php:886
291
+ msgid "Country"
292
+ msgstr "Negara"
293
+
294
+ #: ../event-organiser-calendar.php:244
295
+ msgid "Create an event"
296
+ msgstr ""
297
+
298
+ #: ../includes/event-organiser-cpt.php:423
299
+ msgid "Creating events"
300
+ msgstr ""
301
+
302
+ #: ../includes/event-organiser-cpt.php:424
303
+ msgid "Creating events:"
304
+ msgstr ""
305
+
306
+ #: ../event-organiser-calendar.php:239
307
+ msgid "Current date/time"
308
+ msgstr ""
309
+
310
+ #: ../event-organiser-edit.php:127
311
+ msgid "custom"
312
+ msgstr ""
313
+
314
+ #: ../includes/event-organiser-cpt.php:219
315
+ msgid "Custom field deleted."
316
+ msgstr ""
317
+
318
+ #: ../includes/event-organiser-cpt.php:218
319
+ msgid "Custom field updated."
320
+ msgstr ""
321
+
322
+ #: ../event-organiser-settings.php:115
323
+ msgid "Custom Fields"
324
+ msgstr ""
325
+
326
+ #: ../includes/event-organiser-event-functions.php:706
327
+ msgid "custom reoccurrence"
328
+ msgstr ""
329
+
330
+ #: ../event-organiser-edit.php:126
331
+ msgid "daily"
332
+ msgstr ""
333
+
334
+ #: ../event-organiser-debug.php:533
335
+ msgid "Database character set"
336
+ msgstr ""
337
+
338
+ #: ../event-organiser-debug.php:532
339
+ msgid "Database tables"
340
+ msgstr ""
341
+
342
+ #: ../event-organiser-debug.php:531
343
+ msgid "Databse Prefix"
344
+ msgstr ""
345
+
346
+ #: ../event-organiser-settings.php:137
347
+ msgid "Date Format:"
348
+ msgstr ""
349
+
350
+ #: ../event-organiser-calendar.php:229
351
+ msgid "Day"
352
+ msgstr ""
353
+
354
+ #: ../event-organiser-calendar.php:55
355
+ msgid "day"
356
+ msgstr ""
357
+
358
+ #: ../event-organiser-settings.php:271
359
+ msgid "Day archive"
360
+ msgstr ""
361
+
362
+ #: ../event-organiser-edit.php:161
363
+ msgid "day of month"
364
+ msgstr ""
365
+
366
+ #: ../event-organiser-edit.php:165
367
+ msgid "day of week"
368
+ msgstr ""
369
+
370
+ #: ../includes/event-organiser-register.php:218
371
+ msgid "days"
372
+ msgstr ""
373
+
374
+ #: ../event-organiser-settings.php:143
375
+ msgid "dd-mm-yyyy"
376
+ msgstr ""
377
+
378
+ #: ../event-organiser-debug.php:555
379
+ msgid "Debug mode"
380
+ msgstr ""
381
+
382
+ #: ../includes/event-organiser-cpt.php:492
383
+ msgid "Debugging Event Organiser"
384
+ msgstr ""
385
+
386
+ #: ../classes/class-eo-venue-list-table.php:70
387
+ #: ../classes/class-eo-venue-list-table.php:127
388
+ msgid "Delete"
389
+ msgstr ""
390
+
391
+ #: ../event-organiser-settings.php:36
392
+ #: ../event-organiser.php:103
393
+ msgid "Delete Events"
394
+ msgstr ""
395
+
396
+ #: ../event-organiser-settings.php:180
397
+ msgid "Delete expired events:"
398
+ msgstr ""
399
+
400
+ #: ../event-organiser-settings.php:38
401
+ #: ../event-organiser.php:105
402
+ msgid "Delete Other's Events"
403
+ msgstr ""
404
+
405
+ #: ../includes/event-organiser-ajax.php:333
406
+ msgid "Delete this occurrence"
407
+ msgstr ""
408
+
409
+ #: ../includes/event-organiser-cpt.php:468
410
+ msgid "Delete will permanently remove the venue"
411
+ msgstr ""
412
+
413
+ #: ../classes/class-eo-event-list-widget.php:62
414
+ msgid "DESC"
415
+ msgstr ""
416
+
417
+ #: ../event-organiser-settings.php:229
418
+ msgid "Disable CSS:"
419
+ msgstr ""
420
+
421
+ #: ../includes/event-organiser-register.php:648
422
+ msgid "Dismiss"
423
+ msgstr ""
424
+
425
+ #: ../includes/event-organiser-register.php:647
426
+ msgid "Dismiss this notice"
427
+ msgstr ""
428
+
429
+ #: ../classes/class-eo-widget-categories.php:96
430
+ msgid "Display as dropdown"
431
+ msgstr ""
432
+
433
+ #: ../event-organiser-settings.php:129
434
+ #: ../event-organiser-settings.php:156
435
+ msgid "Display past events on calendars, event lists and archives (this can be "
436
+ "over-ridden by shortcode attributes and widget options)."
437
+ msgstr ""
438
+
439
+ #: ../classes/class-eo-calendar-widget.php:22
440
+ msgid "Displays a calendar of your events"
441
+ msgstr ""
442
+
443
+ #: ../classes/class-eo-event-list-widget.php:22
444
+ msgid "Displays a list of events"
445
+ msgstr ""
446
+
447
+ #: ../classes/class-eo-agenda-widget.php:11
448
+ msgid "Displays a list of events, grouped by date"
449
+ msgstr ""
450
+
451
+ #: ../event-organiser-settings.php:626
452
+ msgid "Do not add to menu"
453
+ msgstr ""
454
+
455
+ #: ../includes/class-event-organiser-im-export.php:104
456
+ msgid "Download Export File"
457
+ msgstr ""
458
+
459
+ #: ../event-organiser-debug.php:84
460
+ msgid "Download system information file"
461
+ msgstr ""
462
+
463
+ #: ../includes/event-organiser-ajax.php:255
464
+ msgid "Draft"
465
+ msgstr ""
466
+
467
+ #: ../templates/single-event.php:71
468
+ msgid "Edit"
469
+ msgstr ""
470
+
471
+ #: ../includes/event-organiser-cpt.php:66
472
+ msgid "Edit Category"
473
+ msgstr "Sunting Kategori"
474
+
475
+ #: ../includes/event-organiser-ajax.php:314
476
+ #: ../includes/event-organiser-cpt.php:144
477
+ msgid "Edit Event"
478
+ msgstr ""
479
+
480
+ #: ../event-organiser-settings.php:34
481
+ #: ../event-organiser.php:101
482
+ msgid "Edit Events"
483
+ msgstr ""
484
+
485
+ #: ../event-organiser-settings.php:37
486
+ #: ../event-organiser.php:104
487
+ msgid "Edit Others' Events"
488
+ msgstr ""
489
+
490
+ #: ../includes/event-organiser-cpt.php:99
491
+ msgid "Edit Tag"
492
+ msgstr "Sunting Kata Kunci"
493
+
494
+ #: ../includes/event-organiser-cpt.php:467
495
+ msgid "Edit takes you to the editing screen for that venue. You can also reach that "
496
+ "screen by clicking on the venue title."
497
+ msgstr ""
498
+
499
+ #: ../event-organiser-venues.php:267
500
+ msgid "Edit Venue"
501
+ msgstr ""
502
+
503
+ #: ../event-organiser-settings.php:244
504
+ msgid "Enable event pretty permalinks:"
505
+ msgstr ""
506
+
507
+ #: ../event-organiser-settings.php:189
508
+ msgid "Enable events ICAL feed:"
509
+ msgstr ""
510
+
511
+ #: ../event-organiser-settings.php:206
512
+ msgid "Enable templates:"
513
+ msgstr ""
514
+
515
+ #: ../includes/event-organiser-ajax.php:283
516
+ msgid "End"
517
+ msgstr ""
518
+
519
+ #: ../event-organiser-edit.php:105
520
+ #: ../event-organiser-manage.php:28
521
+ msgid "End Date/Time"
522
+ msgstr ""
523
+
524
+ #: ../event-organiser-edit.php:88
525
+ msgid "Ensure dates are entered in %1$s format and times in %2$s (24 hour) format"
526
+ msgstr ""
527
+
528
+ #: ../event-organiser-manage.php:19
529
+ msgid "Event"
530
+ msgstr ""
531
+
532
+ #: ../event-organiser-settings.php:263
533
+ msgid "Event (archive)"
534
+ msgstr ""
535
+
536
+ #: ../event-organiser-settings.php:254
537
+ msgid "Event (single)"
538
+ msgstr ""
539
+
540
+ #: ../event-organiser-settings.php:282
541
+ msgid "Event Categories"
542
+ msgstr ""
543
+
544
+ #: ../classes/class-eo-event-list-widget.php:39
545
+ #: ../classes/class-eo-calendar-widget.php:77
546
+ msgid "Event categories"
547
+ msgstr ""
548
+
549
+ #: ../templates/taxonomy-event-category.php:31
550
+ msgid "Event Category Archives: %s"
551
+ msgstr ""
552
+
553
+ #: ../classes/class-eo-agenda-widget.php:43
554
+ msgid "Event date/time format"
555
+ msgstr ""
556
+
557
+ #: ../event-organiser-edit.php:376
558
+ msgid "Event dates were not saved."
559
+ msgstr ""
560
+
561
+ #: ../event-organiser-calendar.php:310
562
+ msgid "Event Detail"
563
+ msgstr ""
564
+
565
+ #: ../event-organiser-edit.php:14
566
+ #: ../event-organiser-calendar.php:308
567
+ msgid "Event Details"
568
+ msgstr ""
569
+
570
+ #: ../includes/event-organiser-cpt.php:229
571
+ msgid "Event draft updated. <a target=\"_blank\" href=\"%s\">Preview event</a>"
572
+ msgstr ""
573
+
574
+ #: ../classes/class-eo-event-list-widget.php:78
575
+ msgid "Event list widget placeholders"
576
+ msgstr ""
577
+
578
+ #: ../event-organiser-settings.php:29
579
+ msgid "Event Organiser"
580
+ msgstr ""
581
+
582
+ #: ../event-organiser-add-ons.php:19
583
+ #: ../event-organiser-add-ons.php:95
584
+ msgid "Event Organiser Extensions"
585
+ msgstr ""
586
+
587
+ #: ../event-organiser-add-ons.php:99
588
+ msgid "Event Organiser offers a range of extension which add additional features to "
589
+ "the plug-in."
590
+ msgstr ""
591
+
592
+ #: ../event-organiser-go-pro.php:55
593
+ msgid "Event Organiser Pro is a premium add-on bringing advanced booking management "
594
+ "to Event Organiser."
595
+ msgstr ""
596
+
597
+ #: ../event-organiser-settings.php:28
598
+ msgid "Event Organiser Settings"
599
+ msgstr ""
600
+
601
+ #: ../event-organiser-settings.php:219
602
+ msgid "Event page:"
603
+ msgstr ""
604
+
605
+ #: ../includes/event-organiser-cpt.php:223
606
+ msgid "Event published. <a href=\"%s\">View event</a>"
607
+ msgstr ""
608
+
609
+ #: ../includes/event-organiser-cpt.php:222
610
+ msgid "Event restored to revision from %s"
611
+ msgstr ""
612
+
613
+ #: ../includes/event-organiser-cpt.php:224
614
+ msgid "Event saved."
615
+ msgstr ""
616
+
617
+ #: ../includes/event-organiser-cpt.php:226
618
+ msgid "Event scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" "
619
+ "href=\"%2$s\">Preview event</a>"
620
+ msgstr ""
621
+
622
+ #: ../includes/event-organiser-cpt.php:225
623
+ msgid "Event submitted. <a target=\"_blank\" href=\"%s\">Preview event</a>"
624
+ msgstr ""
625
+
626
+ #: ../templates/taxonomy-event-tag.php:31
627
+ msgid "Event Tag Archives: %s"
628
+ msgstr ""
629
+
630
+ #: ../event-organiser-settings.php:118
631
+ #: ../event-organiser-settings.php:290
632
+ msgid "Event Tags"
633
+ msgstr ""
634
+
635
+ #: ../event-organiser-calendar.php:253
636
+ msgid "Event Title"
637
+ msgstr ""
638
+
639
+ #: ../includes/event-organiser-cpt.php:220
640
+ msgid "Event updated."
641
+ msgstr ""
642
+
643
+ #: ../includes/event-organiser-cpt.php:217
644
+ msgid "Event updated. <a href=\"%s\">View event</a>"
645
+ msgstr ""
646
+
647
+ #: ../classes/class-eo-calendar-widget.php:88
648
+ msgid "Event venue"
649
+ msgstr ""
650
+
651
+ #: ../includes/event-organiser-cpt.php:28
652
+ msgid "Event Venues"
653
+ msgstr "Tempat/Lokasi Agenda"
654
+
655
+ #: ../event-organiser.php:127
656
+ #: ../event-organiser-venues.php:432
657
+ #: ../templates/archive-event.php:42
658
+ msgid "Events"
659
+ msgstr ""
660
+
661
+ #: ../classes/class-eo-agenda-widget.php:19
662
+ msgid "Events Agenda"
663
+ msgstr ""
664
+
665
+ #: ../event-organiser-settings.php:218
666
+ msgid "Events archives:"
667
+ msgstr ""
668
+
669
+ #: ../templates/taxonomy-event-venue.php:31
670
+ msgid "Events at: %s"
671
+ msgstr ""
672
+
673
+ #: ../event-organiser-calendar.php:225
674
+ msgid "Events Calendar"
675
+ msgstr ""
676
+
677
+ #: ../event-organiser-settings.php:221
678
+ msgid "Events Category page:"
679
+ msgstr ""
680
+
681
+ #: ../event-organiser-manage.php:148
682
+ msgid "Events within %d months"
683
+ msgstr ""
684
+
685
+ #: ../event-organiser-manage.php:146
686
+ msgid "Events within %d weeks"
687
+ msgstr ""
688
+
689
+ #: ../event-organiser-manage.php:147
690
+ msgid "Events within 1 month"
691
+ msgstr ""
692
+
693
+ #: ../event-organiser-manage.php:145
694
+ msgid "Events within 1 week"
695
+ msgstr ""
696
+
697
+ #: ../event-organiser-manage.php:149
698
+ msgid "Events within 1 year"
699
+ msgstr ""
700
+
701
+ #: ../event-organiser-manage.php:144
702
+ msgid "Events within 24 hours"
703
+ msgstr ""
704
+
705
+ #: ../templates/archive-event.php:34
706
+ #: ../templates/archive-event.php:37
707
+ #: ../templates/archive-event.php:40
708
+ msgid "Events: "
709
+ msgstr ""
710
+
711
+ #: ../includes/event-organiser-register.php:226
712
+ #: ../includes/event-organiser-event-functions.php:715
713
+ msgid "every %d days"
714
+ msgstr ""
715
+
716
+ #: ../includes/event-organiser-register.php:230
717
+ #: ../includes/event-organiser-event-functions.php:736
718
+ msgid "every %d months on the"
719
+ msgstr ""
720
+
721
+ #: ../includes/event-organiser-register.php:228
722
+ #: ../includes/event-organiser-event-functions.php:723
723
+ msgid "every %d weeks on"
724
+ msgstr ""
725
+
726
+ #: ../includes/event-organiser-event-functions.php:767
727
+ msgid "every %d years"
728
+ msgstr "tiap %d tahun"
729
+
730
+ #: ../includes/event-organiser-register.php:232
731
+ msgid "every %d years on the"
732
+ msgstr ""
733
+
734
+ #: ../includes/event-organiser-register.php:225
735
+ #: ../includes/event-organiser-event-functions.php:713
736
+ msgid "every day"
737
+ msgstr ""
738
+
739
+ #: ../includes/event-organiser-register.php:229
740
+ #: ../includes/event-organiser-event-functions.php:734
741
+ msgid "every month on the"
742
+ msgstr ""
743
+
744
+ #: ../includes/event-organiser-register.php:227
745
+ #: ../includes/event-organiser-event-functions.php:721
746
+ msgid "every week on"
747
+ msgstr ""
748
+
749
+ #: ../includes/event-organiser-event-functions.php:765
750
+ msgid "every year"
751
+ msgstr "tiap tahun"
752
+
753
+ #: ../includes/event-organiser-register.php:231
754
+ msgid "every year on the"
755
+ msgstr ""
756
+
757
+ #: ../event-organiser-settings.php:114
758
+ msgid "Excerpt"
759
+ msgstr ""
760
+
761
+ #: ../event-organiser-settings.php:198
762
+ msgid "Exclude events from searches:"
763
+ msgstr ""
764
+
765
+ #: ../event-organiser-manage.php:143
766
+ msgid "Expired events"
767
+ msgstr ""
768
+
769
+ #: ../event-organiser-settings.php:21
770
+ msgid "Export"
771
+ msgstr ""
772
+
773
+ #: ../includes/class-event-organiser-im-export.php:98
774
+ msgid "Export Events"
775
+ msgstr ""
776
+
777
+ #: ../event-organiser-add-ons.php:20
778
+ msgid "Extensions"
779
+ msgstr ""
780
+
781
+ #: ../includes/class-event-organiser-im-export.php:68
782
+ msgid "File Error encountered: %d"
783
+ msgstr ""
784
+
785
+ #: ../includes/class-event-organiser-im-export.php:80
786
+ msgid "File size: %s. File type: %s"
787
+ msgstr ""
788
+
789
+ #: ../event-organiser-go-pro.php:90
790
+ #: ../event-organiser-add-ons.php:130
791
+ msgid "Find out more &hellip;"
792
+ msgstr ""
793
+
794
+ #: ../includes/event-organiser-register.php:235
795
+ #: ../includes/event-organiser-event-functions.php:693
796
+ msgid "first"
797
+ msgstr ""
798
+
799
+ #: ../event-organiser-go-pro.php:71
800
+ msgid "Flexible Booking Options"
801
+ msgstr ""
802
+
803
+ #: ../event-organiser-settings.php:212
804
+ msgid "For each of the pages, the corresponding template is used. To use your own "
805
+ "template simply give it the same name and store in your theme folder. By "
806
+ "default, if Event Organiser cannot find a template in your theme directory, "
807
+ "it will use its own default template. To prevent this, uncheck this option. "
808
+ "WordPress will then decide which template from your theme's folder to use."
809
+ msgstr ""
810
+
811
+ #: ../includes/event-organiser-cpt.php:490
812
+ msgid "For more information"
813
+ msgstr ""
814
+
815
+ #: ../event-organiser-settings.php:224
816
+ msgid "For more information see documentation <a href='%s'>on editing the "
817
+ "templates</a>"
818
+ msgstr ""
819
+
820
+ #: ../includes/event-organiser-register.php:235
821
+ #: ../includes/event-organiser-event-functions.php:693
822
+ msgid "fourth"
823
+ msgstr ""
824
+
825
+ #: ../event-organiser-manage.php:142
826
+ msgid "Future events"
827
+ msgstr ""
828
+
829
+ #: ../event-organiser-settings.php:18
830
+ #: ../event-organiser-settings.php:58
831
+ msgid "General"
832
+ msgstr ""
833
+
834
+ #: ../event-organiser-go-pro.php:52
835
+ msgid "Get Event Organiser Pro"
836
+ msgstr ""
837
+
838
+ #: ../event-organiser-go-pro.php:24
839
+ msgid "Get Event Organiser Pro Add-On"
840
+ msgstr ""
841
+
842
+ #: ../event-organiser-venues.php:412
843
+ msgid "Get Link"
844
+ msgstr ""
845
+
846
+ #: ../event-organiser-go-pro.php:77
847
+ msgid "Give your users the ability to search and filter through your events with "
848
+ "the event search shortcode. Event Organiser Pro also adds a text editor "
849
+ "button to make inserting and configuring your shortcodes that bit easier. "
850
+ msgstr ""
851
+
852
+ #: ../event-organiser-go-pro.php:25
853
+ msgid "Go Pro"
854
+ msgstr ""
855
+
856
+ #: ../includes/event-organiser-cpt.php:493
857
+ msgid "Go Pro!"
858
+ msgstr ""
859
+
860
+ #: ../event-organiser-calendar.php:58
861
+ msgid "go to date"
862
+ msgstr ""
863
+
864
+ #: ../event-organiser-go-pro.php:96
865
+ msgid "Go to Event Organiser settings"
866
+ msgstr ""
867
+
868
+ #: ../classes/class-eo-agenda-widget.php:31
869
+ msgid "Group by"
870
+ msgstr ""
871
+
872
+ #: ../classes/class-eo-agenda-widget.php:39
873
+ msgid "Group date format"
874
+ msgstr ""
875
+
876
+ #: ../event-organiser-settings.php:159
877
+ msgid "Group occurrences"
878
+ msgstr ""
879
+
880
+ #: ../includes/event-organiser-register.php:212
881
+ msgid "Hide dates"
882
+ msgstr "Sembunyikan tanggal"
883
+
884
+ #: ../includes/event-organiser-register.php:215
885
+ msgid "Hour"
886
+ msgstr "Jam"
887
+
888
+ #: ../includes/event-organiser-cpt.php:465
889
+ msgid "Hovering over a row in the venues list will display action links that allow "
890
+ "you to manage that venue. You can perform the following actions:"
891
+ msgstr ""
892
+
893
+ #: ../event-organiser-settings.php:177
894
+ msgid "If 'no' is selected, an occurrence of an event is only past when it has "
895
+ "finished. Otherwise, an occurrence is considered 'past' as soon as it "
896
+ "starts."
897
+ msgstr ""
898
+
899
+ #: ../includes/event-organiser-cpt.php:438
900
+ msgid "If monthly reoccurrence is selected, select whether this should repeat on "
901
+ "that date of the month (e.g. on the 24th) or on the day of the month (e.g. "
902
+ "on the third Tuesday) "
903
+ msgstr ""
904
+
905
+ #: ../event-organiser-settings.php:165
906
+ msgid "If selected only one occurrence of an event will be displayed on event lists "
907
+ "and archives (this can be over-ridden by shortcode attributes and widget "
908
+ "options."
909
+ msgstr ""
910
+
911
+ #: ../event-organiser-settings.php:186
912
+ msgid "If selected the event will be automatically trashed 24 hours after the last "
913
+ "occurrence finishes."
914
+ msgstr ""
915
+
916
+ #: ../event-organiser-settings.php:195
917
+ msgid "If selected, visitors can subscribe to your events with the url: %s"
918
+ msgstr ""
919
+
920
+ #: ../includes/event-organiser-cpt.php:439
921
+ msgid "If weekly reoccurrence is selected, select which days of the week the event "
922
+ "should be repeated. If no days are selected, the day of the start date is "
923
+ "used"
924
+ msgstr ""
925
+
926
+ #: ../event-organiser-settings.php:250
927
+ msgid "If you have pretty permalinks enabled, select to have pretty premalinks for "
928
+ "events."
929
+ msgstr ""
930
+
931
+ #: ../event-organiser-settings.php:21
932
+ msgid "Import"
933
+ msgstr ""
934
+
935
+ #: ../includes/class-event-organiser-im-export.php:110
936
+ msgid "Import an ICS file."
937
+ msgstr ""
938
+
939
+ #: ../includes/class-event-organiser-im-export.php:112
940
+ msgid "Import categories"
941
+ msgstr ""
942
+
943
+ #: ../includes/class-event-organiser-im-export.php:107
944
+ msgid "Import Events"
945
+ msgstr ""
946
+
947
+ #: ../includes/class-event-organiser-im-export.php:111
948
+ msgid "Import venues"
949
+ msgstr ""
950
+
951
+ #: ../classes/class-eo-agenda-widget.php:47
952
+ msgid "Include 'Add To Google' link"
953
+ msgstr ""
954
+
955
+ #: ../classes/class-eo-event-list-widget.php:66
956
+ #: ../classes/class-eo-calendar-widget.php:46
957
+ msgid "Include past events"
958
+ msgstr ""
959
+
960
+ #: ../event-organiser-edit.php:180
961
+ msgid "Include/Exclude occurrences"
962
+ msgstr ""
963
+
964
+ #: ../includes/class-event-organiser-im-export.php:586
965
+ #: ../includes/class-eo-ical-parser.php:449
966
+ msgid "Invalid date. Date expected in YYYYMMDD format."
967
+ msgstr "Format tanggal salah, yang benar YYYYMMDD"
968
+
969
+ #: ../includes/class-event-organiser-im-export.php:618
970
+ #: ../includes/class-eo-ical-parser.php:482
971
+ msgid "Invalid datetime. Date expected in YYYYMMDDTHHiissZ or YYYYMMDDTHHiiss "
972
+ "format."
973
+ msgstr "Tanggal dan jam salah. Yang benar dengan format YYYYMMDDTHHiissZ or "
974
+ "YYYYMMDDTHHiiss"
975
+
976
+ #: ../includes/class-event-organiser-im-export.php:78
977
+ msgid "Invalid file uploaded. The file must be a ics calendar file of type "
978
+ "'text/calendar', no larger than 2MB."
979
+ msgstr ""
980
+
981
+ #: ../includes/event.php:548
982
+ msgid "Invalid monthly schedule (invalid ordinal)"
983
+ msgstr ""
984
+
985
+ #: ../event-organiser-debug.php:245
986
+ msgid "Known plug-in & theme conflicts, highlighted in red, may be minor or have a "
987
+ "simple resolution. Please contact support."
988
+ msgstr ""
989
+
990
+ #: ../includes/event-organiser-register.php:235
991
+ #: ../includes/event-organiser-event-functions.php:693
992
+ msgid "last"
993
+ msgstr ""
994
+
995
+ #: ../templates/taxonomy-event-category.php:48
996
+ #: ../templates/taxonomy-event-category.php:106
997
+ #: ../templates/archive-event.php:55
998
+ #: ../templates/archive-event.php:110
999
+ #: ../templates/taxonomy-event-tag.php:48
1000
+ #: ../templates/taxonomy-event-tag.php:106
1001
+ #: ../templates/taxonomy-event-venue.php:48
1002
+ #: ../templates/taxonomy-event-venue.php:105
1003
+ msgid "Later events <span class=\"meta-nav\">&rarr;</span>"
1004
+ msgstr ""
1005
+
1006
+ #: ../includes/class-event-organiser-im-export.php:275
1007
+ #: ../includes/class-event-organiser-im-export.php:301
1008
+ #: ../includes/class-eo-ical-parser.php:257
1009
+ msgid "Line: %1$d"
1010
+ msgstr ""
1011
+
1012
+ #: ../classes/class-eo-calendar-widget.php:66
1013
+ msgid "Link directly to event for days with only one event"
1014
+ msgstr ""
1015
+
1016
+ #: ../classes/class-eo-event-list-widget.php:41
1017
+ #: ../classes/class-eo-calendar-widget.php:80
1018
+ msgid "List category slug(s), seperate by comma. Leave blank for all"
1019
+ msgstr ""
1020
+
1021
+ #: ../event-organiser-calendar.php:232
1022
+ msgid "Loading&#8230;"
1023
+ msgstr ""
1024
+
1025
+ #: ../includes/event-organiser-cpt.php:228
1026
+ msgid "M j, Y @ G:i"
1027
+ msgstr ""
1028
+
1029
+ #: ../event-organiser-settings.php:41
1030
+ #: ../event-organiser.php:108
1031
+ msgid "Manage Event Categories & Tags"
1032
+ msgstr ""
1033
+
1034
+ #: ../event-organiser-settings.php:40
1035
+ #: ../event-organiser.php:107
1036
+ msgid "Manage Venues"
1037
+ msgstr ""
1038
+
1039
+ #: ../includes/event-organiser-register.php:216
1040
+ msgid "Minute"
1041
+ msgstr "Menit"
1042
+
1043
+ #: ../event-organiser-settings.php:144
1044
+ msgid "mm-dd-yyyy"
1045
+ msgstr ""
1046
+
1047
+ #: ../event-organiser-calendar.php:229
1048
+ msgid "Month"
1049
+ msgstr ""
1050
+
1051
+ #: ../event-organiser-calendar.php:57
1052
+ msgid "month"
1053
+ msgstr ""
1054
+
1055
+ #: ../event-organiser-settings.php:270
1056
+ msgid "Month archive"
1057
+ msgstr ""
1058
+
1059
+ #: ../event-organiser-edit.php:127
1060
+ msgid "monthly"
1061
+ msgstr ""
1062
+
1063
+ #: ../includes/event-organiser-register.php:222
1064
+ msgid "months"
1065
+ msgstr ""
1066
+
1067
+ #: ../event-organiser-debug.php:72
1068
+ msgid "Most bugs arise from theme or plug-in conflicts. You can check this by "
1069
+ "disabling all other plug-ins and switching to TwentyTweleve."
1070
+ msgstr ""
1071
+
1072
+ #: ../includes/event-organiser-cpt.php:69
1073
+ msgid "New Category Name"
1074
+ msgstr "Nama Kategori baru"
1075
+
1076
+ #: ../includes/event-organiser-cpt.php:145
1077
+ msgid "New Event"
1078
+ msgstr "Agenda Baru"
1079
+
1080
+ #: ../includes/event-organiser-cpt.php:102
1081
+ msgid "New Tag Name"
1082
+ msgstr "Kata Kunci Baru"
1083
+
1084
+ #: ../includes/event-organiser-cpt.php:36
1085
+ msgid "New Venue Name"
1086
+ msgstr "Tempat/Lokasi baru"
1087
+
1088
+ #: ../classes/class-eo-calendar-widget.php:260
1089
+ msgid "Next month"
1090
+ msgstr ""
1091
+
1092
+ #: ../event-organiser-debug.php:178
1093
+ #: ../event-organiser-debug.php:182
1094
+ #: ../event-organiser-debug.php:186
1095
+ #: ../event-organiser-settings.php:174
1096
+ msgid "No"
1097
+ msgstr ""
1098
+
1099
+ #: ../includes/event-organiser-cpt.php:70
1100
+ msgid "No categories found"
1101
+ msgstr "Kategori tidak ditemukan"
1102
+
1103
+ #: ../includes/event-organiser-cpt.php:149
1104
+ msgid "No events found"
1105
+ msgstr "Agenda tidak ditemukan"
1106
+
1107
+ #: ../includes/event-organiser-cpt.php:150
1108
+ msgid "No events found in Trash"
1109
+ msgstr ""
1110
+
1111
+ #: ../includes/class-event-organiser-im-export.php:316
1112
+ msgid "No events were imported."
1113
+ msgstr ""
1114
+
1115
+ #: ../includes/class-event-organiser-im-export.php:75
1116
+ msgid "No file detected."
1117
+ msgstr ""
1118
+
1119
+ #: ../includes/event-organiser-cpt.php:103
1120
+ msgid "No tags found"
1121
+ msgstr "Kata kunci tidak ditemukan"
1122
+
1123
+ #: ../includes/event-organiser-ajax.php:594
1124
+ msgid "No Venue"
1125
+ msgstr "Tidak ada tempat/lokasi"
1126
+
1127
+ #: ../includes/event-organiser-cpt.php:37
1128
+ msgid "No venues found"
1129
+ msgstr "Tempat/Lokasi tidak ditemukan"
1130
+
1131
+ #: ../event-organiser-settings.php:571
1132
+ msgid "None"
1133
+ msgstr ""
1134
+
1135
+ #: ../templates/taxonomy-event-category.php:116
1136
+ #: ../templates/archive-event.php:119
1137
+ #: ../templates/taxonomy-event-tag.php:116
1138
+ #: ../templates/taxonomy-event-venue.php:115
1139
+ msgid "Nothing Found"
1140
+ msgstr ""
1141
+
1142
+ #: ../classes/class-eo-event-list-widget.php:35
1143
+ msgid "Number of events"
1144
+ msgstr ""
1145
+
1146
+ #: ../event-organiser-calendar.php:191
1147
+ msgid "Occurrence deleted."
1148
+ msgstr ""
1149
+
1150
+ #: ../includes/event.php:744
1151
+ msgid "Occurrence not deleted. Occurrence not found."
1152
+ msgstr ""
1153
+
1154
+ #: ../event-organiser-edit.php:146
1155
+ #: ../templates/shortcode-event-list.php:52
1156
+ msgid "on"
1157
+ msgstr ""
1158
+
1159
+ #: ../event-organiser-edit.php:126
1160
+ msgid "once"
1161
+ msgstr ""
1162
+
1163
+ #: ../includes/event-organiser-event-functions.php:703
1164
+ msgid "one time only"
1165
+ msgstr "sekali waktu saja"
1166
+
1167
+ #: ../includes/event-organiser-cpt.php:448
1168
+ msgid "Only pre-existing venues can be selected. To add a venue, go to the venues "
1169
+ "page."
1170
+ msgstr ""
1171
+
1172
+ #: ../classes/class-eo-event-list-widget.php:55
1173
+ msgid "Order by"
1174
+ msgstr ""
1175
+
1176
+ #: ../event-organiser-settings.php:112
1177
+ #: ../event-organiser-edit.php:31
1178
+ #: ../event-organiser-manage.php:23
1179
+ msgid "Organiser"
1180
+ msgstr ""
1181
+
1182
+ #: ../includes/event-organiser-cpt.php:458
1183
+ #: ../includes/event-organiser-cpt.php:477
1184
+ msgid "Overview"
1185
+ msgstr ""
1186
+
1187
+ #: ../event-organiser-settings.php:630
1188
+ msgid "Page list (fallback)"
1189
+ msgstr ""
1190
+
1191
+ #: ../includes/event-organiser-cpt.php:64
1192
+ #: ../includes/event-organiser-cpt.php:65
1193
+ msgid "Parent Category"
1194
+ msgstr "Kategori Induk"
1195
+
1196
+ #: ../event-organiser-venues.php:405
1197
+ msgid "Permalink:"
1198
+ msgstr ""
1199
+
1200
+ #: ../event-organiser-settings.php:20
1201
+ msgid "Permalinks"
1202
+ msgstr ""
1203
+
1204
+ #: ../event-organiser-settings.php:19
1205
+ msgid "Permissions"
1206
+ msgstr ""
1207
+
1208
+ #: ../event-organiser-settings.php:601
1209
+ msgid "Please note to enable these structures you must first have pretty permalinks "
1210
+ "enabled on WordPress in Settings > Permalinks."
1211
+ msgstr ""
1212
+
1213
+ #: ../includes/event-organiser-cpt.php:96
1214
+ msgid "Popular Tags"
1215
+ msgstr "Kata-kata Kunci Populer"
1216
+
1217
+ #: ../includes/event-organiser-venue-functions.php:885
1218
+ msgid "Post Code"
1219
+ msgstr "Kode Pos"
1220
+
1221
+ #: ../classes/class-eo-calendar-widget.php:257
1222
+ msgid "Previous month"
1223
+ msgstr ""
1224
+
1225
+ #: ../includes/event-organiser-ajax.php:253
1226
+ msgid "Private"
1227
+ msgstr ""
1228
+
1229
+ #: ../includes/event-organiser-ajax.php:251
1230
+ msgid "Protected"
1231
+ msgstr ""
1232
+
1233
+ #: ../event-organiser-calendar.php:285
1234
+ msgid "Publish Event"
1235
+ msgstr ""
1236
+
1237
+ #: ../event-organiser-settings.php:35
1238
+ #: ../event-organiser.php:102
1239
+ msgid "Publish Events"
1240
+ msgstr ""
1241
+
1242
+ #: ../event-organiser-settings.php:39
1243
+ #: ../event-organiser.php:106
1244
+ msgid "Read Private Events"
1245
+ msgstr ""
1246
+
1247
+ #: ../event-organiser-edit.php:124
1248
+ msgid "Reoccurence:"
1249
+ msgstr ""
1250
+
1251
+ #: ../event-organiser-manage.php:29
1252
+ msgid "Reoccurrence"
1253
+ msgstr ""
1254
+
1255
+ #: ../event-organiser-edit.php:140
1256
+ msgid "Repeat every"
1257
+ msgstr ""
1258
+
1259
+ #: ../includes/event-organiser-cpt.php:433
1260
+ msgid "Repeating events"
1261
+ msgstr ""
1262
+
1263
+ #: ../event-organiser-settings.php:117
1264
+ msgid "Revisions"
1265
+ msgstr ""
1266
+
1267
+ #: ../event-organiser-settings.php:560
1268
+ msgid "Role"
1269
+ msgstr ""
1270
+
1271
+ #: ../event-organiser-venues.php:154
1272
+ msgid "Save"
1273
+ msgstr ""
1274
+
1275
+ #: ../event-organiser-calendar.php:281
1276
+ msgid "Save Draft"
1277
+ msgstr ""
1278
+
1279
+ #: ../includes/event.php:458
1280
+ msgid "Schedule end date is before is before the start date."
1281
+ msgstr ""
1282
+
1283
+ #: ../includes/event.php:470
1284
+ msgid "Schedule not recognised."
1285
+ msgstr ""
1286
+
1287
+ #: ../event-organiser-debug.php:556
1288
+ msgid "Script mode"
1289
+ msgstr ""
1290
+
1291
+ #: ../includes/event-organiser-cpt.php:62
1292
+ msgid "Search Categories"
1293
+ msgstr "Cari Kategori"
1294
+
1295
+ #: ../includes/event-organiser-cpt.php:148
1296
+ msgid "Search events"
1297
+ msgstr "Cari agenda"
1298
+
1299
+ #: ../event-organiser-venues.php:233
1300
+ msgid "Search results for &#8220;%s&#8221;"
1301
+ msgstr ""
1302
+
1303
+ #: ../includes/event-organiser-cpt.php:94
1304
+ msgid "Search Tags"
1305
+ msgstr "Pencarian Kata-kata Kunci"
1306
+
1307
+ #: ../event-organiser-venues.php:243
1308
+ msgid "Search Venues"
1309
+ msgstr ""
1310
+
1311
+ #: ../includes/event-organiser-register.php:235
1312
+ #: ../includes/event-organiser-event-functions.php:693
1313
+ msgid "second"
1314
+ msgstr ""
1315
+
1316
+ #: ../includes/event-organiser-cpt.php:491
1317
+ msgid "See the <a %s> documentation</a>"
1318
+ msgstr ""
1319
+
1320
+ #: ../event-organiser-edit.php:211
1321
+ msgid "Select a venue"
1322
+ msgstr ""
1323
+
1324
+ #: ../classes/class-eo-widget-categories.php:45
1325
+ msgid "Select Category"
1326
+ msgstr ""
1327
+
1328
+ #: ../event-organiser-settings.php:107
1329
+ msgid "Select which features events should support"
1330
+ msgstr ""
1331
+
1332
+ #: ../includes/event-organiser-cpt.php:444
1333
+ #: ../includes/event-organiser-cpt.php:445
1334
+ msgid "Selecting a venue"
1335
+ msgstr ""
1336
+
1337
+ #: ../event-organiser-go-pro.php:72
1338
+ msgid "Sell tickets for specific dates or sell tickets for all dates of an event - "
1339
+ "such as booking places on a course. You can offer multiple tickets, and "
1340
+ "customise the booking form to suit your needs."
1341
+ msgstr ""
1342
+
1343
+ #: ../includes/event-organiser-cpt.php:107
1344
+ msgid "Separate tags with commas"
1345
+ msgstr "Pisahkan kata kunci (tag) dengan tanda koma"
1346
+
1347
+ #: ../includes/event-organiser-cpt.php:39
1348
+ msgid "Separate venues with commas"
1349
+ msgstr "Pisahkan tempat/lokasi dengan tanda koma"
1350
+
1351
+ #: ../event-organiser-settings.php:555
1352
+ msgid "Set permissions for events and venue management"
1353
+ msgstr ""
1354
+
1355
+ #: ../includes/event-organiser-register.php:335
1356
+ msgid "Settings"
1357
+ msgstr ""
1358
+
1359
+ #: ../event-organiser-edit.php:183
1360
+ msgid "Show dates"
1361
+ msgstr ""
1362
+
1363
+ #: ../classes/class-eo-widget-categories.php:99
1364
+ msgid "Show hierarchy"
1365
+ msgstr ""
1366
+
1367
+ #: ../includes/event-organiser-register.php:52
1368
+ msgid "Show Less"
1369
+ msgstr "Tampilkan sedikit saja"
1370
+
1371
+ #: ../classes/class-eo-calendar-widget.php:56
1372
+ msgid "Show long events"
1373
+ msgstr ""
1374
+
1375
+ #: ../includes/event-organiser-register.php:51
1376
+ msgid "Show More"
1377
+ msgstr "Tampilkan lebih banyak"
1378
+
1379
+ #: ../event-organiser-settings.php:123
1380
+ #: ../event-organiser-settings.php:150
1381
+ msgid "Show past events:"
1382
+ msgstr ""
1383
+
1384
+ #: ../event-organiser-venues.php:431
1385
+ msgid "Slug"
1386
+ msgstr ""
1387
+
1388
+ #: ../includes/event-organiser-cpt.php:436
1389
+ msgid "Specify how regularly the event should repeat (default 1)"
1390
+ msgstr ""
1391
+
1392
+ #: ../templates/event-meta-event-single.php:58
1393
+ #: ../includes/event-organiser-ajax.php:282
1394
+ msgid "Start"
1395
+ msgstr ""
1396
+
1397
+ #: ../classes/class-eo-event-list-widget.php:57
1398
+ msgid "Start date"
1399
+ msgstr ""
1400
+
1401
+ #: ../includes/event.php:445
1402
+ msgid "Start date not provided."
1403
+ msgstr ""
1404
+
1405
+ #: ../includes/event.php:455
1406
+ msgid "Start date occurs after end date."
1407
+ msgstr ""
1408
+
1409
+ #: ../event-organiser-edit.php:92
1410
+ #: ../event-organiser-manage.php:27
1411
+ msgid "Start Date/Time"
1412
+ msgstr ""
1413
+
1414
+ #: ../includes/event-organiser-venue-functions.php:884
1415
+ msgid "State / Province"
1416
+ msgstr "Propinsi"
1417
+
1418
+ #: ../event-organiser-calendar.php:291
1419
+ msgid "Submit for Review"
1420
+ msgstr ""
1421
+
1422
+ #: ../event-organiser-debug.php:13
1423
+ #: ../event-organiser-debug.php:14
1424
+ #: ../event-organiser-debug.php:59
1425
+ msgid "System Info"
1426
+ msgstr ""
1427
+
1428
+ #: ../templates/event-meta-event-single.php:73
1429
+ #: ../includes/event-organiser-event-functions.php:1388
1430
+ #: ../includes/event-organiser-cpt.php:105
1431
+ msgid "Tags"
1432
+ msgstr ""
1433
+
1434
+ #: ../classes/class-eo-event-list-widget.php:76
1435
+ msgid "Template (leave blank for default)"
1436
+ msgstr ""
1437
+
1438
+ #: ../event-organiser-settings.php:59
1439
+ msgid "Templates"
1440
+ msgstr ""
1441
+
1442
+ #: ../event-organiser-debug.php:67
1443
+ msgid "The 'system info' link in under the Events admin tab is only visible to "
1444
+ "admins and only when <code>WP_DEBUG</code> is set to <code>true</code>."
1445
+ msgstr ""
1446
+
1447
+ #: ../includes/event-organiser-cpt.php:427
1448
+ msgid "The end date is the date the event finishes. If the event is a reoccuring "
1449
+ "event, this is the end date of the first occurrence."
1450
+ msgstr ""
1451
+
1452
+ #: ../includes/class-event-organiser-im-export.php:101
1453
+ msgid "The export button below generates an ICS file of your events that can be "
1454
+ "imported in to other calendar applications such as Google Calendar."
1455
+ msgstr ""
1456
+
1457
+ #: ../includes/event-organiser-cpt.php:426
1458
+ msgid "The start date is the date the event starts. If the event is a reoccuring "
1459
+ "event, this is the start date of the first occurrence."
1460
+ msgstr ""
1461
+
1462
+ #: ../classes/class-eventorganiser-shortcodes.php:356
1463
+ msgid "There is no excerpt because this is a protected post."
1464
+ msgstr ""
1465
+
1466
+ #: ../includes/class-eo-ical-parser.php:90
1467
+ msgid "There was an error detecting ICAL source."
1468
+ msgstr ""
1469
+
1470
+ #: ../includes/class-eo-ical-parser.php:136
1471
+ msgid "There was an error fetching the feed. Response code: %s."
1472
+ msgstr ""
1473
+
1474
+ #: ../includes/class-eo-ical-parser.php:156
1475
+ msgid "There was an error opening the ICAL file."
1476
+ msgstr ""
1477
+
1478
+ #: ../includes/class-event-organiser-im-export.php:318
1479
+ msgid "There was an error with %1$d of %2$d events in the ical file"
1480
+ msgstr ""
1481
+
1482
+ #: ../includes/event-organiser-register.php:235
1483
+ #: ../includes/event-organiser-event-functions.php:693
1484
+ msgid "third"
1485
+ msgstr ""
1486
+
1487
+ #: ../event-organiser-settings.php:147
1488
+ msgid "This alters the default format for inputting dates."
1489
+ msgstr ""
1490
+
1491
+ #: ../templates/event-meta-event-single.php:50
1492
+ msgid "This event finished on %s"
1493
+ msgstr ""
1494
+
1495
+ #: ../includes/event-organiser-cpt.php:230
1496
+ msgid "This event has been broken from a recurring event."
1497
+ msgstr ""
1498
+
1499
+ #: ../templates/event-meta-event-single.php:46
1500
+ msgid "This event is running from %1$s until %2$s. It is next occurring on %3$s"
1501
+ msgstr ""
1502
+
1503
+ #: ../includes/event-organiser-ajax.php:308
1504
+ msgid "This event reoccurs"
1505
+ msgstr ""
1506
+
1507
+ #: ../templates/single-event.php:60
1508
+ msgid "This event was posted by <a href=\"%5$s\">%4$s</a>. Bookmark the <a "
1509
+ "href=\"%2$s\" title=\"Permalink to %3$s\" rel=\"bookmark\">permalink</a>."
1510
+ msgstr ""
1511
+
1512
+ #: ../templates/single-event.php:58
1513
+ msgid "This event was posted in %1$s by <a href=\"%5$s\">%4$s</a>. Bookmark the <a "
1514
+ "href=\"%2$s\" title=\"Permalink to %3$s\" rel=\"bookmark\">permalink</a>."
1515
+ msgstr ""
1516
+
1517
+ #: ../includes/event-organiser-register.php:233
1518
+ msgid "This event will repeat"
1519
+ msgstr ""
1520
+
1521
+ #: ../event-organiser-edit.php:75
1522
+ msgid "This is a reoccurring event"
1523
+ msgstr ""
1524
+
1525
+ #: ../includes/event-organiser-cpt.php:459
1526
+ msgid "This is the list of all saved events. Note that <strong> reoccurring events "
1527
+ "appear as a single row </strong> in the table and the start and end date "
1528
+ "refers to the first occurrence of that event."
1529
+ msgstr ""
1530
+
1531
+ #: ../event-organiser-debug.php:65
1532
+ msgid "This page highlights useful information for debugging. If you're reporting a "
1533
+ "bug, please include this information."
1534
+ msgstr ""
1535
+
1536
+ #: ../includes/event-organiser-cpt.php:478
1537
+ msgid "This page shows all (occurrances of) events. You can view the summary of an "
1538
+ "event by clicking on it. If you have the necessary permissions, a link to "
1539
+ "the event's edit page will appear also."
1540
+ msgstr ""
1541
+
1542
+ #: ../event-organiser-settings.php:113
1543
+ msgid "Thumbnail"
1544
+ msgstr ""
1545
+
1546
+ #: ../classes/class-eo-event-list-widget.php:31
1547
+ #: ../classes/class-eo-event-list-widget.php:58
1548
+ #: ../classes/class-eo-calendar-widget.php:36
1549
+ #: ../classes/class-eo-agenda-widget.php:27
1550
+ msgid "Title"
1551
+ msgstr ""
1552
+
1553
+ #: ../classes/class-eo-widget-categories.php:92
1554
+ msgid "Title:"
1555
+ msgstr ""
1556
+
1557
+ #: ../event-organiser-debug.php:74
1558
+ msgid "To help speed things along, if you report a bug please indicate if you have "
1559
+ "done so. Once the plug-in or theme has been identified it is often easy to "
1560
+ "resolve the issue."
1561
+ msgstr ""
1562
+
1563
+ #: ../includes/event-organiser-cpt.php:434
1564
+ msgid "To repeat an event according to some regular pattern, use the reoccurrence "
1565
+ "dropdown menu to select how the event is to repeat. Further options then "
1566
+ "appear, "
1567
+ msgstr ""
1568
+
1569
+ #: ../event-organiser-calendar.php:54
1570
+ msgid "today"
1571
+ msgstr ""
1572
+
1573
+ #: ../event-organiser-debug.php:444
1574
+ msgid "unknown"
1575
+ msgstr ""
1576
+
1577
+ #: ../event-organiser-edit.php:170
1578
+ msgid "until"
1579
+ msgstr ""
1580
+
1581
+ #: ../templates/event-meta-event-single.php:88
1582
+ msgid "Upcoming Dates"
1583
+ msgstr ""
1584
+
1585
+ #: ../includes/event-organiser-cpt.php:67
1586
+ msgid "Update Category"
1587
+ msgstr "Perbarui Kategori"
1588
+
1589
+ #: ../includes/event-organiser-cpt.php:100
1590
+ msgid "Update Tag"
1591
+ msgstr "Perbarui Kata Kunci"
1592
+
1593
+ #: ../event-organiser-venues.php:345
1594
+ msgid "Update Venue"
1595
+ msgstr ""
1596
+
1597
+ #: ../includes/class-event-organiser-im-export.php:116
1598
+ msgid "Upload ICS file"
1599
+ msgstr ""
1600
+
1601
+ #: ../includes/event-organiser-cpt.php:447
1602
+ msgid "Use the venues input field to search for existing venues"
1603
+ msgstr ""
1604
+
1605
+ #: ../event-organiser-edit.php:208
1606
+ #: ../event-organiser-manage.php:25
1607
+ #: ../event-organiser-venues.php:424
1608
+ msgid "Venue"
1609
+ msgstr ""
1610
+
1611
+ #: ../event-organiser-venues.php:170
1612
+ msgid "Venue <strong>created</strong>"
1613
+ msgstr ""
1614
+
1615
+ #: ../event-organiser-venues.php:171
1616
+ msgid "Venue <strong>updated</strong>"
1617
+ msgstr ""
1618
+
1619
+ #: ../event-organiser-venues.php:86
1620
+ msgid "Venue <strong>was not</strong> created"
1621
+ msgstr ""
1622
+
1623
+ #: ../event-organiser-venues.php:49
1624
+ msgid "Venue <strong>was not</strong> updated"
1625
+ msgstr ""
1626
+
1627
+ #: ../event-organiser-go-pro.php:81
1628
+ msgid "Venue custom fields & thumbnails"
1629
+ msgstr ""
1630
+
1631
+ #: ../event-organiser-venues.php:300
1632
+ msgid "Venue Location"
1633
+ msgstr ""
1634
+
1635
+ #: ../event-organiser-venues.php:399
1636
+ msgid "Venue name"
1637
+ msgstr ""
1638
+
1639
+ #: ../event-organiser-edit.php:221
1640
+ msgid "Venue Name"
1641
+ msgstr ""
1642
+
1643
+ #: ../event-organiser-settings.php:220
1644
+ msgid "Venue page:"
1645
+ msgstr ""
1646
+
1647
+ #: ../event-organiser-venues.php:172
1648
+ msgid "Venue(s) <strong>deleted</strong>"
1649
+ msgstr ""
1650
+
1651
+ #: ../event-organiser-venues.php:142
1652
+ msgid "Venue(s) <strong>were not </strong> deleted"
1653
+ msgstr ""
1654
+
1655
+ #: ../event-organiser-settings.php:274
1656
+ #: ../event-organiser-venues.php:13
1657
+ #: ../event-organiser-venues.php:14
1658
+ #: ../event-organiser-venues.php:162
1659
+ #: ../event-organiser-venues.php:229
1660
+ msgid "Venues"
1661
+ msgstr ""
1662
+
1663
+ #: ../includes/event-organiser-ajax.php:544
1664
+ msgid "View"
1665
+ msgstr "Lihat"
1666
+
1667
+ #: ../event-organiser-calendar.php:59
1668
+ #: ../event-organiser-manage.php:114
1669
+ msgid "View all categories"
1670
+ msgstr ""
1671
+
1672
+ #: ../event-organiser-manage.php:141
1673
+ msgid "View all events"
1674
+ msgstr ""
1675
+
1676
+ #: ../event-organiser-calendar.php:60
1677
+ #: ../event-organiser-manage.php:128
1678
+ msgid "View all venues"
1679
+ msgstr ""
1680
+
1681
+ #: ../includes/event-organiser-cpt.php:147
1682
+ msgid "View Event"
1683
+ msgstr "Lihat Agenda"
1684
+
1685
+ #: ../event-organiser-venues.php:413
1686
+ msgid "View Venue"
1687
+ msgstr ""
1688
+
1689
+ #: ../includes/event-organiser-cpt.php:469
1690
+ msgid "View will take you to the venue's page"
1691
+ msgstr ""
1692
+
1693
+ #: ../event-organiser-calendar.php:229
1694
+ msgid "Week"
1695
+ msgstr ""
1696
+
1697
+ #: ../event-organiser-calendar.php:56
1698
+ msgid "week"
1699
+ msgstr ""
1700
+
1701
+ #: ../event-organiser-edit.php:126
1702
+ msgid "weekly"
1703
+ msgstr ""
1704
+
1705
+ #: ../includes/event-organiser-register.php:220
1706
+ msgid "weeks"
1707
+ msgstr ""
1708
+
1709
+ #: ../event-organiser-calendar.php:249
1710
+ msgid "When"
1711
+ msgstr ""
1712
+
1713
+ #: ../event-organiser-calendar.php:257
1714
+ msgid "Where"
1715
+ msgstr ""
1716
+
1717
+ #: ../includes/event-organiser-register.php:223
1718
+ msgid "year"
1719
+ msgstr ""
1720
+
1721
+ #: ../event-organiser-settings.php:269
1722
+ msgid "Year archive"
1723
+ msgstr ""
1724
+
1725
+ #: ../event-organiser-edit.php:127
1726
+ msgid "yearly"
1727
+ msgstr ""
1728
+
1729
+ #: ../includes/event-organiser-register.php:224
1730
+ msgid "years"
1731
+ msgstr ""
1732
+
1733
+ #: ../event-organiser-debug.php:178
1734
+ #: ../event-organiser-debug.php:182
1735
+ #: ../event-organiser-debug.php:186
1736
+ #: ../event-organiser-settings.php:175
1737
+ msgid "Yes"
1738
+ msgstr ""
1739
+
1740
+ #: ../includes/event-organiser-cpt.php:484
1741
+ msgid "You can create an event on this Calendar, by clicking on day or dragging "
1742
+ "over multiple days (in Month view) or multiple times (in Week and Day view). "
1743
+ "You can give the event a title, specify a venue and provide a descripton. "
1744
+ "The event can be immediately published or saved as a draft. In any case, the "
1745
+ "event is created and you are forwarded to that event's edit page."
1746
+ msgstr ""
1747
+
1748
+ #: ../classes/class-eo-event-list-widget.php:80
1749
+ msgid "You can use specified tags as placeholders for event information which you "
1750
+ "want to appear in the widget. <a href=\"%s\" target=\"_blank\"> Find out "
1751
+ "more</a>."
1752
+ msgstr ""
1753
+
1754
+ #: ../event-organiser-venues.php:115
1755
+ msgid "You do not have permission to delete this venue"
1756
+ msgstr ""
1757
+
1758
+ #: ../event-organiser-venues.php:42
1759
+ #: ../event-organiser-venues.php:71
1760
+ msgid "You do not have permission to edit this venue."
1761
+ msgstr ""
1762
+
1763
+ #: ../event-organiser-venues.php:37
1764
+ msgid "You do not have permission to manage venues"
1765
+ msgstr ""
1766
+
1767
+ #: ../event-organiser-calendar.php:107
1768
+ msgid "You do not have sufficient permissions to create events. "
1769
+ msgstr ""
1770
+
1771
+ #: ../event-organiser-calendar.php:181
1772
+ msgid "You do not have sufficient permissions to delete this event. "
1773
+ msgstr ""
1774
+
1775
+ #: ../event-organiser-calendar.php:163
1776
+ msgid "You do not have sufficient permissions to edit this event. "
1777
+ msgstr ""
1778
+
1779
+ #: ../includes/class-event-organiser-im-export.php:171
1780
+ msgid "You do not have sufficient permissions to import events."
1781
+ msgstr ""
1782
+
1783
+ #: ../event-organiser-settings.php:602
1784
+ msgid "You may also need to go to WordPress Settings > Permalinks and click 'Save "
1785
+ "Changes' before any changes will take effect."
1786
+ msgstr ""
1787
+
1788
+ #: ../event-organiser-settings.php:145
1789
+ msgid "yyyy-mm-dd"
1790
+ msgstr ""
1791
+
languages/eventorganiser-nl_NL.po CHANGED
@@ -1207,37 +1207,6 @@ msgstr "Overzicht"
1207
  msgid "Page list (fallback)"
1208
  msgstr ""
1209
 
1210
- #: ../event-organiser-settings.php:112
1211
- #: ../event-organiser-edit.php:31
1212
- #: ../event-organiser-manage.php:23
1213
- msgid "Organiser"
1214
- msgstr "Organisator"
1215
-
1216
- #: ../includes/event-organiser-cpt.php:458
1217
- #: ../includes/event-organiser-cpt.php:477
1218
- msgid "Overview"
1219
- msgstr "Overzicht"
1220
-
1221
- #: ../event-organiser-settings.php:630
1222
- msgid "Page list (fallback)"
1223
- msgstr ""
1224
-
1225
- #: ../event-organiser-settings.php:96
1226
- #: ../event-organiser-edit.php:28
1227
- #: ../event-organiser-manage.php:22
1228
- msgid "Organiser"
1229
- msgstr "Organisator"
1230
-
1231
- #: ../includes/event-organiser-cpt.php:456
1232
- #: ../includes/event-organiser-cpt.php:475
1233
- msgid "Overview"
1234
- msgstr "Overzicht"
1235
-
1236
- #: ../event-organiser-settings.php:554
1237
- msgid "Page list (fallback)"
1238
- msgstr ""
1239
-
1240
- #: ../includes/event-organiser-cpt.php:63
1241
  #: ../includes/event-organiser-cpt.php:64
1242
  #: ../includes/event-organiser-cpt.php:65
1243
  msgid "Parent Category"
1207
  msgid "Page list (fallback)"
1208
  msgstr ""
1209
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1210
  #: ../includes/event-organiser-cpt.php:64
1211
  #: ../includes/event-organiser-cpt.php:65
1212
  msgid "Parent Category"
languages/eventorganiser-pl_PL.po CHANGED
@@ -401,7 +401,7 @@ msgstr "Usuń"
401
  #: ../event-organiser-settings.php:36
402
  #: ../event-organiser.php:103
403
  msgid "Delete Events"
404
- msgstr "Items verwijderen"
405
 
406
  #: ../event-organiser-settings.php:180
407
  msgid "Delete expired events:"
401
  #: ../event-organiser-settings.php:36
402
  #: ../event-organiser.php:103
403
  msgid "Delete Events"
404
+ msgstr "Usuwanie wydarzeń"
405
 
406
  #: ../event-organiser-settings.php:180
407
  msgid "Delete expired events:"
languages/eventorganiser.pot CHANGED
@@ -2,8 +2,8 @@ msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Event Organiser\n"
4
  "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2013-09-21 23:02+0100\n"
6
- "PO-Revision-Date: 2013-09-21 23:02+0100\n"
7
  "Last-Translator: Stephen Harris <contact@stephenharris.info>\n"
8
  "Language-Team: \n"
9
  "Language: \n"
@@ -105,14 +105,12 @@ msgstr ""
105
  msgid "Export"
106
  msgstr ""
107
 
108
- #: ../event-organiser-debug.php:132
109
- msgid "PHP cURL Support"
110
  msgstr ""
111
 
112
- #: ../event-organiser-debug.php:133
113
- #: ../event-organiser-debug.php:408
114
- #: ../event-organiser-settings.php:173
115
- msgid "Yes"
116
  msgstr ""
117
 
118
  #: ../event-organiser-settings.php:34
@@ -350,35 +348,39 @@ msgstr ""
350
  msgid "Event Categories"
351
  msgstr ""
352
 
353
- #: ../event-organiser-settings.php:555
 
 
 
 
354
  msgid "Set permissions for events and venue management"
355
  msgstr ""
356
 
357
- #: ../event-organiser-settings.php:560
358
  msgid "Role"
359
  msgstr ""
360
 
361
- #: ../event-organiser-settings.php:571
362
  msgid "None"
363
  msgstr ""
364
 
365
- #: ../event-organiser-settings.php:600
366
  msgid "Choose a custom permalink structure for events, venues, event categories and event tags."
367
  msgstr ""
368
 
369
- #: ../event-organiser-settings.php:601
370
  msgid "Please note to enable these structures you must first have pretty permalinks enabled on WordPress in Settings > Permalinks."
371
  msgstr ""
372
 
373
- #: ../event-organiser-settings.php:602
374
  msgid "You may also need to go to WordPress Settings > Permalinks and click 'Save Changes' before any changes will take effect."
375
  msgstr ""
376
 
377
- #: ../event-organiser-settings.php:626
378
  msgid "Do not add to menu"
379
  msgstr ""
380
 
381
- #: ../event-organiser-settings.php:630
382
  msgid "Page list (fallback)"
383
  msgstr ""
384
 
@@ -447,7 +449,6 @@ msgid "Repeat every"
447
  msgstr ""
448
 
449
  #: ../event-organiser-edit.php:146
450
- #: ../templates/shortcode-event-list.php:52
451
  msgid "on"
452
  msgstr ""
453
 
@@ -665,7 +666,6 @@ msgstr ""
665
 
666
  #: ../event-organiser.php:127
667
  #: ../event-organiser-venues.php:432
668
- #: ../templates/archive-event.php:42
669
  msgid "Events"
670
  msgstr ""
671
 
@@ -922,13 +922,10 @@ msgid "This event finished on %s"
922
  msgstr ""
923
 
924
  #: ../templates/event-meta-event-single.php:58
925
- #: ../includes/event-organiser-ajax.php:282
926
  msgid "Start"
927
  msgstr ""
928
 
929
  #: ../templates/event-meta-event-single.php:73
930
- #: ../includes/event-organiser-event-functions.php:1388
931
- #: ../includes/event-organiser-cpt.php:105
932
  msgid "Tags"
933
  msgstr ""
934
 
@@ -975,6 +972,7 @@ msgid "All Day"
975
  msgstr ""
976
 
977
  #: ../includes/event-organiser-ajax.php:544
 
978
  msgid "View"
979
  msgstr ""
980
 
@@ -1101,44 +1099,48 @@ msgstr ""
1101
  msgid "Settings"
1102
  msgstr ""
1103
 
1104
- #: ../includes/event-organiser-register.php:604
1105
  #, php-format
1106
  msgid "<h4>City & State Fields Added</h4>City and state / province fields for venues have now been added. </br> If you'd like, Event Organiser can <a href='%s'>attempt to auto-fill them</a>. You can always manually change the details aftewards."
1107
  msgstr ""
1108
 
1109
- #: ../includes/event-organiser-register.php:611
1110
  msgid "<h4>The Default Templates Have Changed</h4>Don't panic! If you've set up your own templates in your theme you won't notice any change. </br> If you haven't and want the old templates back, <a href='http://wp-event-organiser.com/blog/new-default-templates-in-1-7'>see this post<a/>."
1111
  msgstr ""
1112
 
1113
- #: ../includes/event-organiser-register.php:647
1114
  msgid "Dismiss this notice"
1115
  msgstr ""
1116
 
1117
- #: ../includes/event-organiser-register.php:648
1118
  msgid "Dismiss"
1119
  msgstr ""
1120
 
1121
- #: ../includes/event.php:445
 
 
 
 
1122
  msgid "Start date not provided."
1123
  msgstr ""
1124
 
1125
- #: ../includes/event.php:455
1126
  msgid "Start date occurs after end date."
1127
  msgstr ""
1128
 
1129
- #: ../includes/event.php:458
1130
  msgid "Schedule end date is before is before the start date."
1131
  msgstr ""
1132
 
1133
- #: ../includes/event.php:470
1134
- msgid "Schedule not recognised."
1135
  msgstr ""
1136
 
1137
- #: ../includes/event.php:548
1138
- msgid "Invalid monthly schedule (invalid ordinal)"
1139
  msgstr ""
1140
 
1141
- #: ../includes/event.php:744
1142
  msgid "Occurrence not deleted. Occurrence not found."
1143
  msgstr ""
1144
 
@@ -1179,118 +1181,105 @@ msgstr ""
1179
  msgid "every %d years"
1180
  msgstr ""
1181
 
1182
- #: ../includes/class-event-organiser-im-export.php:68
1183
  #, php-format
1184
  msgid "File Error encountered: %d"
1185
  msgstr ""
1186
 
1187
- #: ../includes/class-event-organiser-im-export.php:75
1188
  msgid "No file detected."
1189
  msgstr ""
1190
 
1191
- #: ../includes/class-event-organiser-im-export.php:78
1192
  msgid "Invalid file uploaded. The file must be a ics calendar file of type 'text/calendar', no larger than 2MB."
1193
  msgstr ""
1194
 
1195
- #: ../includes/class-event-organiser-im-export.php:80
1196
  #, php-format
1197
  msgid "File size: %s. File type: %s"
1198
  msgstr ""
1199
 
1200
- #: ../includes/class-event-organiser-im-export.php:98
1201
  msgid "Export Events"
1202
  msgstr ""
1203
 
1204
- #: ../includes/class-event-organiser-im-export.php:101
1205
  msgid "The export button below generates an ICS file of your events that can be imported in to other calendar applications such as Google Calendar."
1206
  msgstr ""
1207
 
1208
- #: ../includes/class-event-organiser-im-export.php:104
1209
  msgid "Download Export File"
1210
  msgstr ""
1211
 
1212
- #: ../includes/class-event-organiser-im-export.php:107
1213
  msgid "Import Events"
1214
  msgstr ""
1215
 
1216
- #: ../includes/class-event-organiser-im-export.php:110
1217
  msgid "Import an ICS file."
1218
  msgstr ""
1219
 
1220
- #: ../includes/class-event-organiser-im-export.php:111
1221
  msgid "Import venues"
1222
  msgstr ""
1223
 
1224
- #: ../includes/class-event-organiser-im-export.php:112
1225
  msgid "Import categories"
1226
  msgstr ""
1227
 
1228
- #: ../includes/class-event-organiser-im-export.php:116
1229
  msgid "Upload ICS file"
1230
  msgstr ""
1231
 
1232
- #: ../includes/class-event-organiser-im-export.php:171
1233
  msgid "You do not have sufficient permissions to import events."
1234
  msgstr ""
1235
 
1236
- #: ../includes/class-event-organiser-im-export.php:275
1237
- #: ../includes/class-event-organiser-im-export.php:301
1238
- #: ../includes/class-eo-ical-parser.php:257
1239
- #, php-format
1240
- msgid "Line: %1$d"
1241
  msgstr ""
1242
 
1243
- #: ../includes/class-event-organiser-im-export.php:316
1244
- msgid "No events were imported."
1245
  msgstr ""
1246
 
1247
- #: ../includes/class-event-organiser-im-export.php:318
1248
- #, php-format
1249
- msgid "There was an error with %1$d of %2$d events in the ical file"
1250
  msgstr ""
1251
 
1252
- #: ../includes/class-event-organiser-im-export.php:322
1253
  msgid "1 event was successfully imported"
1254
  msgstr ""
1255
 
1256
- #: ../includes/class-event-organiser-im-export.php:324
1257
  #, php-format
1258
  msgid "%d events were successfully imported"
1259
  msgstr ""
1260
 
1261
- #: ../includes/class-event-organiser-im-export.php:327
1262
  msgid "1 venue was created"
1263
  msgstr ""
1264
 
1265
- #: ../includes/class-event-organiser-im-export.php:329
1266
  #, php-format
1267
  msgid "%d venues were created"
1268
  msgstr ""
1269
 
1270
- #: ../includes/class-event-organiser-im-export.php:333
1271
  msgid "1 category was created"
1272
  msgstr ""
1273
 
1274
- #: ../includes/class-event-organiser-im-export.php:335
1275
  #, php-format
1276
  msgid "%d categories were created"
1277
  msgstr ""
1278
 
1279
- #: ../includes/class-event-organiser-im-export.php:586
1280
- #: ../includes/class-eo-ical-parser.php:449
1281
- msgid "Invalid date. Date expected in YYYYMMDD format."
1282
- msgstr ""
1283
-
1284
- #: ../includes/class-event-organiser-im-export.php:618
1285
- #: ../includes/class-eo-ical-parser.php:482
1286
- msgid "Invalid datetime. Date expected in YYYYMMDDTHHiissZ or YYYYMMDDTHHiiss format."
1287
- msgstr ""
1288
-
1289
  #: ../includes/event-organiser-cpt.php:28
1290
  msgid "Event Venues"
1291
  msgstr ""
1292
 
1293
  #: ../includes/event-organiser-cpt.php:31
 
1294
  msgid "All Venues"
1295
  msgstr ""
1296
 
@@ -1593,19 +1582,35 @@ msgstr ""
1593
  msgid "Assign the category a colour."
1594
  msgstr ""
1595
 
1596
- #: ../includes/class-eo-ical-parser.php:90
1597
  msgid "There was an error detecting ICAL source."
1598
  msgstr ""
1599
 
1600
- #: ../includes/class-eo-ical-parser.php:136
1601
  #, php-format
1602
  msgid "There was an error fetching the feed. Response code: %s."
1603
  msgstr ""
1604
 
1605
- #: ../includes/class-eo-ical-parser.php:156
1606
  msgid "There was an error opening the ICAL file."
1607
  msgstr ""
1608
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1609
  #: ../classes/class-eo-widget-categories.php:10
1610
  msgid "A list or dropdown of event categories"
1611
  msgstr ""
@@ -1637,8 +1642,6 @@ msgstr ""
1637
 
1638
  #: ../classes/class-eo-event-list-widget.php:31
1639
  #: ../classes/class-eo-event-list-widget.php:58
1640
- #: ../classes/class-eo-calendar-widget.php:36
1641
- #: ../classes/class-eo-agenda-widget.php:27
1642
  msgid "Title"
1643
  msgstr ""
1644
 
@@ -1647,12 +1650,10 @@ msgid "Number of events"
1647
  msgstr ""
1648
 
1649
  #: ../classes/class-eo-event-list-widget.php:39
1650
- #: ../classes/class-eo-calendar-widget.php:77
1651
  msgid "Event categories"
1652
  msgstr ""
1653
 
1654
  #: ../classes/class-eo-event-list-widget.php:41
1655
- #: ../classes/class-eo-calendar-widget.php:80
1656
  msgid "List category slug(s), seperate by comma. Leave blank for all"
1657
  msgstr ""
1658
 
@@ -1673,7 +1674,6 @@ msgid "DESC"
1673
  msgstr ""
1674
 
1675
  #: ../classes/class-eo-event-list-widget.php:66
1676
- #: ../classes/class-eo-calendar-widget.php:46
1677
  msgid "Include past events"
1678
  msgstr ""
1679
 
@@ -1714,15 +1714,15 @@ msgstr ""
1714
  msgid "Event venue"
1715
  msgstr ""
1716
 
1717
- #: ../classes/class-eo-calendar-widget.php:257
1718
  msgid "Previous month"
1719
  msgstr ""
1720
 
1721
- #: ../classes/class-eo-calendar-widget.php:260
1722
  msgid "Next month"
1723
  msgstr ""
1724
 
1725
- #: ../classes/class-eventorganiser-shortcodes.php:356
1726
  msgid "There is no excerpt because this is a protected post."
1727
  msgstr ""
1728
 
2
  msgstr ""
3
  "Project-Id-Version: Event Organiser\n"
4
  "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2013-10-29 18:11+0100\n"
6
+ "PO-Revision-Date: 2013-10-29 18:11+0100\n"
7
  "Last-Translator: Stephen Harris <contact@stephenharris.info>\n"
8
  "Language-Team: \n"
9
  "Language: \n"
105
  msgid "Export"
106
  msgstr ""
107
 
108
+ #: ../event-organiser-settings.php:28
109
+ msgid "Event Organiser Settings"
110
  msgstr ""
111
 
112
+ #: ../event-organiser-settings.php:29
113
+ msgid "Event Organiser"
 
 
114
  msgstr ""
115
 
116
  #: ../event-organiser-settings.php:34
348
  msgid "Event Categories"
349
  msgstr ""
350
 
351
+ #: ../event-organiser-settings.php:557
352
+ msgid "Event management permissions"
353
+ msgstr ""
354
+
355
+ #: ../event-organiser-settings.php:558
356
  msgid "Set permissions for events and venue management"
357
  msgstr ""
358
 
359
+ #: ../event-organiser-settings.php:563
360
  msgid "Role"
361
  msgstr ""
362
 
363
+ #: ../event-organiser-settings.php:574
364
  msgid "None"
365
  msgstr ""
366
 
367
+ #: ../event-organiser-settings.php:603
368
  msgid "Choose a custom permalink structure for events, venues, event categories and event tags."
369
  msgstr ""
370
 
371
+ #: ../event-organiser-settings.php:604
372
  msgid "Please note to enable these structures you must first have pretty permalinks enabled on WordPress in Settings > Permalinks."
373
  msgstr ""
374
 
375
+ #: ../event-organiser-settings.php:605
376
  msgid "You may also need to go to WordPress Settings > Permalinks and click 'Save Changes' before any changes will take effect."
377
  msgstr ""
378
 
379
+ #: ../event-organiser-settings.php:629
380
  msgid "Do not add to menu"
381
  msgstr ""
382
 
383
+ #: ../event-organiser-settings.php:633
384
  msgid "Page list (fallback)"
385
  msgstr ""
386
 
449
  msgstr ""
450
 
451
  #: ../event-organiser-edit.php:146
 
452
  msgid "on"
453
  msgstr ""
454
 
666
 
667
  #: ../event-organiser.php:127
668
  #: ../event-organiser-venues.php:432
 
669
  msgid "Events"
670
  msgstr ""
671
 
922
  msgstr ""
923
 
924
  #: ../templates/event-meta-event-single.php:58
 
925
  msgid "Start"
926
  msgstr ""
927
 
928
  #: ../templates/event-meta-event-single.php:73
 
 
929
  msgid "Tags"
930
  msgstr ""
931
 
972
  msgstr ""
973
 
974
  #: ../includes/event-organiser-ajax.php:544
975
+ #: ../classes/class-eo-venue-list-table.php:71
976
  msgid "View"
977
  msgstr ""
978
 
1099
  msgid "Settings"
1100
  msgstr ""
1101
 
1102
+ #: ../includes/event-organiser-register.php:607
1103
  #, php-format
1104
  msgid "<h4>City & State Fields Added</h4>City and state / province fields for venues have now been added. </br> If you'd like, Event Organiser can <a href='%s'>attempt to auto-fill them</a>. You can always manually change the details aftewards."
1105
  msgstr ""
1106
 
1107
+ #: ../includes/event-organiser-register.php:614
1108
  msgid "<h4>The Default Templates Have Changed</h4>Don't panic! If you've set up your own templates in your theme you won't notice any change. </br> If you haven't and want the old templates back, <a href='http://wp-event-organiser.com/blog/new-default-templates-in-1-7'>see this post<a/>."
1109
  msgstr ""
1110
 
1111
+ #: ../includes/event-organiser-register.php:650
1112
  msgid "Dismiss this notice"
1113
  msgstr ""
1114
 
1115
+ #: ../includes/event-organiser-register.php:651
1116
  msgid "Dismiss"
1117
  msgstr ""
1118
 
1119
+ #: ../includes/event.php:484
1120
+ msgid "Schedule not recognised."
1121
+ msgstr ""
1122
+
1123
+ #: ../includes/event.php:493
1124
  msgid "Start date not provided."
1125
  msgstr ""
1126
 
1127
+ #: ../includes/event.php:511
1128
  msgid "Start date occurs after end date."
1129
  msgstr ""
1130
 
1131
+ #: ../includes/event.php:514
1132
  msgid "Schedule end date is before is before the start date."
1133
  msgstr ""
1134
 
1135
+ #: ../includes/event.php:596
1136
+ msgid "Invalid monthly schedule (invalid ordinal)"
1137
  msgstr ""
1138
 
1139
+ #: ../includes/event.php:716
1140
+ msgid "Event does not contain any dates."
1141
  msgstr ""
1142
 
1143
+ #: ../includes/event.php:806
1144
  msgid "Occurrence not deleted. Occurrence not found."
1145
  msgstr ""
1146
 
1181
  msgid "every %d years"
1182
  msgstr ""
1183
 
1184
+ #: ../includes/class-event-organiser-im-export.php:61
1185
  #, php-format
1186
  msgid "File Error encountered: %d"
1187
  msgstr ""
1188
 
1189
+ #: ../includes/class-event-organiser-im-export.php:68
1190
  msgid "No file detected."
1191
  msgstr ""
1192
 
1193
+ #: ../includes/class-event-organiser-im-export.php:71
1194
  msgid "Invalid file uploaded. The file must be a ics calendar file of type 'text/calendar', no larger than 2MB."
1195
  msgstr ""
1196
 
1197
+ #: ../includes/class-event-organiser-im-export.php:73
1198
  #, php-format
1199
  msgid "File size: %s. File type: %s"
1200
  msgstr ""
1201
 
1202
+ #: ../includes/class-event-organiser-im-export.php:91
1203
  msgid "Export Events"
1204
  msgstr ""
1205
 
1206
+ #: ../includes/class-event-organiser-im-export.php:94
1207
  msgid "The export button below generates an ICS file of your events that can be imported in to other calendar applications such as Google Calendar."
1208
  msgstr ""
1209
 
1210
+ #: ../includes/class-event-organiser-im-export.php:97
1211
  msgid "Download Export File"
1212
  msgstr ""
1213
 
1214
+ #: ../includes/class-event-organiser-im-export.php:100
1215
  msgid "Import Events"
1216
  msgstr ""
1217
 
1218
+ #: ../includes/class-event-organiser-im-export.php:103
1219
  msgid "Import an ICS file."
1220
  msgstr ""
1221
 
1222
+ #: ../includes/class-event-organiser-im-export.php:104
1223
  msgid "Import venues"
1224
  msgstr ""
1225
 
1226
+ #: ../includes/class-event-organiser-im-export.php:105
1227
  msgid "Import categories"
1228
  msgstr ""
1229
 
1230
+ #: ../includes/class-event-organiser-im-export.php:109
1231
  msgid "Upload ICS file"
1232
  msgstr ""
1233
 
1234
+ #: ../includes/class-event-organiser-im-export.php:160
1235
  msgid "You do not have sufficient permissions to import events."
1236
  msgstr ""
1237
 
1238
+ #: ../includes/class-event-organiser-im-export.php:242
1239
+ msgid "No events were imported."
 
 
 
1240
  msgstr ""
1241
 
1242
+ #: ../includes/class-event-organiser-im-export.php:251
1243
+ msgid "Error:"
1244
  msgstr ""
1245
 
1246
+ #: ../includes/class-event-organiser-im-export.php:261
1247
+ msgid "Warning:"
 
1248
  msgstr ""
1249
 
1250
+ #: ../includes/class-event-organiser-im-export.php:266
1251
  msgid "1 event was successfully imported"
1252
  msgstr ""
1253
 
1254
+ #: ../includes/class-event-organiser-im-export.php:269
1255
  #, php-format
1256
  msgid "%d events were successfully imported"
1257
  msgstr ""
1258
 
1259
+ #: ../includes/class-event-organiser-im-export.php:272
1260
  msgid "1 venue was created"
1261
  msgstr ""
1262
 
1263
+ #: ../includes/class-event-organiser-im-export.php:275
1264
  #, php-format
1265
  msgid "%d venues were created"
1266
  msgstr ""
1267
 
1268
+ #: ../includes/class-event-organiser-im-export.php:279
1269
  msgid "1 category was created"
1270
  msgstr ""
1271
 
1272
+ #: ../includes/class-event-organiser-im-export.php:282
1273
  #, php-format
1274
  msgid "%d categories were created"
1275
  msgstr ""
1276
 
 
 
 
 
 
 
 
 
 
 
1277
  #: ../includes/event-organiser-cpt.php:28
1278
  msgid "Event Venues"
1279
  msgstr ""
1280
 
1281
  #: ../includes/event-organiser-cpt.php:31
1282
+ #: ../classes/class-eo-event-list-widget.php:47
1283
  msgid "All Venues"
1284
  msgstr ""
1285
 
1582
  msgid "Assign the category a colour."
1583
  msgstr ""
1584
 
1585
+ #: ../includes/class-eo-ical-parser.php:101
1586
  msgid "There was an error detecting ICAL source."
1587
  msgstr ""
1588
 
1589
+ #: ../includes/class-eo-ical-parser.php:147
1590
  #, php-format
1591
  msgid "There was an error fetching the feed. Response code: %s."
1592
  msgstr ""
1593
 
1594
+ #: ../includes/class-eo-ical-parser.php:167
1595
  msgid "There was an error opening the ICAL file."
1596
  msgstr ""
1597
 
1598
+ #: ../includes/class-eo-ical-parser.php:273
1599
+ #: ../includes/class-eo-ical-parser.php:289
1600
+ #, php-format
1601
+ msgid "[Line %1$d]"
1602
+ msgstr ""
1603
+
1604
+ #: ../includes/class-eo-ical-parser.php:586
1605
+ #, php-format
1606
+ msgid "Invalid date \"%s\". Date expected in YYYYMMDD format."
1607
+ msgstr ""
1608
+
1609
+ #: ../includes/class-eo-ical-parser.php:624
1610
+ #, php-format
1611
+ msgid "Invalid datetime \"%s\". Date expected in YYYYMMDDTHHiissZ or YYYYMMDDTHHiiss format."
1612
+ msgstr ""
1613
+
1614
  #: ../classes/class-eo-widget-categories.php:10
1615
  msgid "A list or dropdown of event categories"
1616
  msgstr ""
1642
 
1643
  #: ../classes/class-eo-event-list-widget.php:31
1644
  #: ../classes/class-eo-event-list-widget.php:58
 
 
1645
  msgid "Title"
1646
  msgstr ""
1647
 
1650
  msgstr ""
1651
 
1652
  #: ../classes/class-eo-event-list-widget.php:39
 
1653
  msgid "Event categories"
1654
  msgstr ""
1655
 
1656
  #: ../classes/class-eo-event-list-widget.php:41
 
1657
  msgid "List category slug(s), seperate by comma. Leave blank for all"
1658
  msgstr ""
1659
 
1674
  msgstr ""
1675
 
1676
  #: ../classes/class-eo-event-list-widget.php:66
 
1677
  msgid "Include past events"
1678
  msgstr ""
1679
 
1714
  msgid "Event venue"
1715
  msgstr ""
1716
 
1717
+ #: ../classes/class-eo-calendar-widget.php:262
1718
  msgid "Previous month"
1719
  msgstr ""
1720
 
1721
+ #: ../classes/class-eo-calendar-widget.php:265
1722
  msgid "Next month"
1723
  msgstr ""
1724
 
1725
+ #: ../classes/class-eventorganiser-shortcodes.php:359
1726
  msgid "There is no excerpt because this is a protected post."
1727
  msgstr ""
1728
 
package.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
  "name": "event-organiser",
3
- "version": "2.3.2",
4
  "description": "Event mangement plugin for WordPress",
5
  "main": "Gruntfile.js",
6
  "repository": {
@@ -18,6 +18,7 @@
18
  "grunt-contrib-jshint": "~0.6.3",
19
  "grunt-shell": "~0.3.1",
20
  "grunt-contrib-compress": "~0.5.2",
21
- "grunt-wp-readme-to-markdown": "~0.1.0"
 
22
  }
23
  }
1
  {
2
  "name": "event-organiser",
3
+ "version": "2.4.0",
4
  "description": "Event mangement plugin for WordPress",
5
  "main": "Gruntfile.js",
6
  "repository": {
18
  "grunt-contrib-jshint": "~0.6.3",
19
  "grunt-shell": "~0.3.1",
20
  "grunt-contrib-compress": "~0.5.2",
21
+ "grunt-wp-readme-to-markdown": "~0.4.0",
22
+ "grunt-phpunit": "~0.3.0"
23
  }
24
  }
readme.md CHANGED
@@ -3,8 +3,8 @@
3
  **Donate link:** http://www.wp-event-organiser.com/donate
4
  **Tags:** events, event, event categories, event organizer, events calendar, event management, ical, locations, google map, widget, venues, maps, gigs, shows,
5
  **Requires at least:** 3.3
6
- **Tested up to:** 3.6.1
7
- **Stable tag:** 2.3.2
8
  **License:** GPLv3
9
 
10
  Create and maintain events, including complex reoccurring patterns, venue management (with Google maps), calendars and customisable event lists
@@ -201,6 +201,28 @@ More information on shortcodes is [available here](http://wp-event-organiser.com
201
 
202
  ## Changelog ##
203
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
204
  ### 2.3.2 ###
205
  * Fixes bug (introduced in 2.3) with iCal export feed.
206
  * Fixes conflict with Easy Content Types
@@ -219,8 +241,8 @@ More information on shortcodes is [available here](http://wp-event-organiser.com
219
  * Adds option to disable front-end stylesheets
220
  * Set event text colour (fullCalendar) according to event colour. Thanks to @mperry2. [See #108](https://github.com/stephenharris/Event-Organiser/pull/#108).
221
  * Adds data attributes to widget calendar
222
- *** Added translations:** Arabic, Spanish (Peru), Persian, Slovakian, Slovenian
223
- *** Updated translations:** Czech, German, Dutch, Portuguese (Portugal), Turkish, Ukrainian, Chinese
224
  * Checked compatability with 3.6.1
225
  * Deprecated `eo_get_the_GoogleLink()` in favour of `eo_get_add_to_google_link()`. Fixes bugs.
226
  * Fixes bug with quick edit (venue disappearing)
@@ -252,7 +274,7 @@ More information on shortcodes is [available here](http://wp-event-organiser.com
252
  * Adds `eo_get_event_category_feed()` and `eo_get_event_venue_feed()` functions. See [docs](http://codex.wp-event-organiser.com).
253
  * Fixes errors with "Organiser" metabox. [#106](https://github.com/stephenharris/Event-Organiser/pull/106)
254
  * Fixes bug with `eo_get_event_classes()` function
255
- *** Added 'show long events' otion for widget calendar:** Show all days of events spanning multiple days on the widget calendar, not just the first.
256
  * Added 'link to single event' option for widget calendar. If a day has only one event, link directly to that event, not the day archive.###
257
  * Fixes conflict with Yoast SEO plug-in ( http://wordpress.org/support/topic/events-are-missing-information?replies=6 )
258
  * Fixes colours not appearing on admin calendar drop-down [#109](https://github.com/stephenharris/Event-Organiser/pull/109)
@@ -422,9 +444,9 @@ More information on shortcodes is [available here](http://wp-event-organiser.com
422
  * 'Under the hood' improvements
423
  * Improved documentation & source-code comments
424
  * More tags for shortcode & event list widget template - [see this page](http://wp-event-organiser.com/documentation/shortcodes/event-list-shortcode/)
425
- *** Extra hooks available, see:** http://wp-event-organiser.com/documentation/developers/hooks/
426
  * Various bug fixes and major code refactoring (especially of javascript).
427
- *** Improved default location for venues:** https://github.com/stephenh1988/Event-Organiser/issues/3
428
 
429
  A special thanks to **kuemerle** and **csaba-erdei**.
430
 
@@ -489,7 +511,7 @@ A special thanks to **kuemerle** and **csaba-erdei**.
489
  * Fixes a weekly schedule bug, occurs for some users.
490
 
491
  ### 1.4 ###
492
- *** A big update:** venue address data migrated to new venue meta table
493
  * Introduces support for venue meta data and custom metaboxes (see )
494
  * Improved venue admin page UI
495
 
@@ -510,7 +532,7 @@ A special thanks to **kuemerle** and **csaba-erdei**.
510
 
511
  ### 1.3.3 ###
512
  * Added 'no events' option for event list widget
513
- *** Added template tags for widget/shortcode:** `%cat_color%` and `%event_excerpt%`
514
  * Added hook `eventorganiser_calendar_event_link` to alter full calendar event link
515
  * Added `eo_has_event_started`, `eo_has_event_finished`, `eo_event_color`,`eo_get_blog_timezone` functions
516
  * Fixed the following bugs
@@ -589,7 +611,7 @@ A special thanks to **kuemerle** and **csaba-erdei**.
589
  * Option to decide when event is past
590
  * Show all occurrences of an event or 'group occurrences'
591
  * Improved user-interface
592
- *** Added template functions:** `eo_get_the_occurrences`, `eo_get_the_venues`, `eo_event_venue_dropdown`, `eo_event_category_dropdown`, `eo_is_allday`, `eo_get_the_GoogleLink`, `eo_get_events_feed`. See [template functions documentation](http://www.harriswebsolutions.co.uk/event-organiser/documentation/function-reference/)
593
  * Localisation (currently translations for French and Portugese (Brazil) are included)
594
  * Improved default templates
595
  * Fixed bugs [reported here](http://www.harriswebsolutions.co.uk/event-organiser/forums/forum/bugs/)
3
  **Donate link:** http://www.wp-event-organiser.com/donate
4
  **Tags:** events, event, event categories, event organizer, events calendar, event management, ical, locations, google map, widget, venues, maps, gigs, shows,
5
  **Requires at least:** 3.3
6
+ **Tested up to:** 3.7.1
7
+ **Stable tag:** 2.4
8
  **License:** GPLv3
9
 
10
  Create and maintain events, including complex reoccurring patterns, venue management (with Google maps), calendars and customisable event lists
201
 
202
  ## Changelog ##
203
 
204
+ ### 2.4 ###
205
+ * iCal parser updated. Specifically:
206
+ - Improved timezone handling
207
+ - Support for 'COUNT' property
208
+ - Improved error & warning feedback
209
+ - Handle GEO tag
210
+ - Import venue latitude/longtitude
211
+ * Themes can switch off plug-in template handling from functions.php with `add_theme_support( 'event-organiser' )`
212
+ * Added support for `event_occurrence__not_in` in `eo_get_events()` and `WP_Query()`
213
+ * Improved MP6 compatability
214
+ * Add filter `eventorganiser_blog_is_24` (determines whether time-input should be 12 hour or 24 hour).
215
+ * Schedule meta for weekly schedule now optional (defaults to 'start' date)
216
+ * Unit tests added (largely for date generation & iCal parsing/generation)
217
+ * Fixes venues not appearing in Appearance > Menus
218
+ * Fixes bug with importing events that have no dates
219
+ * Fixes bug with importing all-day events across timezones
220
+ * Fixes bug with occurrence picker
221
+ * Fixes bug with modal overlay
222
+ * Code refactoring (old iCal parser removed)
223
+ * Updated translations: Arabic, Czech, Danish, German, Greek, Persian,
224
+ * Added translations: Indonesian
225
+
226
  ### 2.3.2 ###
227
  * Fixes bug (introduced in 2.3) with iCal export feed.
228
  * Fixes conflict with Easy Content Types
241
  * Adds option to disable front-end stylesheets
242
  * Set event text colour (fullCalendar) according to event colour. Thanks to @mperry2. [See #108](https://github.com/stephenharris/Event-Organiser/pull/#108).
243
  * Adds data attributes to widget calendar
244
+ * Added translations: Arabic, Spanish (Peru), Persian, Slovakian, Slovenian
245
+ * Updated translations: Czech, German, Dutch, Portuguese (Portugal), Turkish, Ukrainian, Chinese
246
  * Checked compatability with 3.6.1
247
  * Deprecated `eo_get_the_GoogleLink()` in favour of `eo_get_add_to_google_link()`. Fixes bugs.
248
  * Fixes bug with quick edit (venue disappearing)
274
  * Adds `eo_get_event_category_feed()` and `eo_get_event_venue_feed()` functions. See [docs](http://codex.wp-event-organiser.com).
275
  * Fixes errors with "Organiser" metabox. [#106](https://github.com/stephenharris/Event-Organiser/pull/106)
276
  * Fixes bug with `eo_get_event_classes()` function
277
+ * Added 'show long events' otion for widget calendar: Show all days of events spanning multiple days on the widget calendar, not just the first.
278
  * Added 'link to single event' option for widget calendar. If a day has only one event, link directly to that event, not the day archive.###
279
  * Fixes conflict with Yoast SEO plug-in ( http://wordpress.org/support/topic/events-are-missing-information?replies=6 )
280
  * Fixes colours not appearing on admin calendar drop-down [#109](https://github.com/stephenharris/Event-Organiser/pull/109)
444
  * 'Under the hood' improvements
445
  * Improved documentation & source-code comments
446
  * More tags for shortcode & event list widget template - [see this page](http://wp-event-organiser.com/documentation/shortcodes/event-list-shortcode/)
447
+ * Extra hooks available, see: http://wp-event-organiser.com/documentation/developers/hooks/
448
  * Various bug fixes and major code refactoring (especially of javascript).
449
+ * Improved default location for venues: https://github.com/stephenh1988/Event-Organiser/issues/3
450
 
451
  A special thanks to **kuemerle** and **csaba-erdei**.
452
 
511
  * Fixes a weekly schedule bug, occurs for some users.
512
 
513
  ### 1.4 ###
514
+ * A big update: venue address data migrated to new venue meta table
515
  * Introduces support for venue meta data and custom metaboxes (see )
516
  * Improved venue admin page UI
517
 
532
 
533
  ### 1.3.3 ###
534
  * Added 'no events' option for event list widget
535
+ * Added template tags for widget/shortcode: `%cat_color%` and `%event_excerpt%`
536
  * Added hook `eventorganiser_calendar_event_link` to alter full calendar event link
537
  * Added `eo_has_event_started`, `eo_has_event_finished`, `eo_event_color`,`eo_get_blog_timezone` functions
538
  * Fixed the following bugs
611
  * Option to decide when event is past
612
  * Show all occurrences of an event or 'group occurrences'
613
  * Improved user-interface
614
+ * Added template functions: `eo_get_the_occurrences`, `eo_get_the_venues`, `eo_event_venue_dropdown`, `eo_event_category_dropdown`, `eo_is_allday`, `eo_get_the_GoogleLink`, `eo_get_events_feed`. See [template functions documentation](http://www.harriswebsolutions.co.uk/event-organiser/documentation/function-reference/)
615
  * Localisation (currently translations for French and Portugese (Brazil) are included)
616
  * Improved default templates
617
  * Fixed bugs [reported here](http://www.harriswebsolutions.co.uk/event-organiser/forums/forum/bugs/)
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: stephenharris
3
  Donate link: http://www.wp-event-organiser.com/donate
4
  Tags: events, event, event categories, event organizer, events calendar, event management, ical, locations, google map, widget, venues, maps, gigs, shows,
5
  Requires at least: 3.3
6
- Tested up to: 3.6.1
7
- Stable tag: 2.3.2
8
  License: GPLv3
9
 
10
  Create and maintain events, including complex reoccurring patterns, venue management (with Google maps), calendars and customisable event lists
@@ -189,6 +189,28 @@ More information on shortcodes is [available here](http://wp-event-organiser.com
189
 
190
  == Changelog ==
191
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
192
  = 2.3.2 =
193
  * Fixes bug (introduced in 2.3) with iCal export feed.
194
  * Fixes conflict with Easy Content Types
3
  Donate link: http://www.wp-event-organiser.com/donate
4
  Tags: events, event, event categories, event organizer, events calendar, event management, ical, locations, google map, widget, venues, maps, gigs, shows,
5
  Requires at least: 3.3
6
+ Tested up to: 3.7.1
7
+ Stable tag: 2.4
8
  License: GPLv3
9
 
10
  Create and maintain events, including complex reoccurring patterns, venue management (with Google maps), calendars and customisable event lists
189
 
190
  == Changelog ==
191
 
192
+ = 2.4 =
193
+ * iCal parser updated. Specifically:
194
+ - Improved timezone handling
195
+ - Support for 'COUNT' property
196
+ - Improved error & warning feedback
197
+ - Handle GEO tag
198
+ - Import venue latitude/longtitude
199
+ * Themes can switch off plug-in template handling from functions.php with `add_theme_support( 'event-organiser' )`
200
+ * Added support for `event_occurrence__not_in` in `eo_get_events()` and `WP_Query()`
201
+ * Improved MP6 compatability
202
+ * Add filter `eventorganiser_blog_is_24` (determines whether time-input should be 12 hour or 24 hour).
203
+ * Schedule meta for weekly schedule now optional (defaults to 'start' date)
204
+ * Unit tests added (largely for date generation & iCal parsing/generation)
205
+ * Fixes venues not appearing in Appearance > Menus
206
+ * Fixes bug with importing events that have no dates
207
+ * Fixes bug with importing all-day events across timezones
208
+ * Fixes bug with occurrence picker
209
+ * Fixes bug with modal overlay
210
+ * Code refactoring (old iCal parser removed)
211
+ * Updated translations: Arabic, Czech, Danish, German, Greek, Persian,
212
+ * Added translations: Indonesian
213
+
214
  = 2.3.2 =
215
  * Fixes bug (introduced in 2.3) with iCal export feed.
216
  * Fixes conflict with Easy Content Types
templates/archive-event.php CHANGED
@@ -90,7 +90,7 @@ get_header(); ?>
90
  <!-- Display event meta list -->
91
  <?php echo eo_get_event_meta_list(); ?>
92
 
93
- <!-- Event excerpt -->
94
  <?php the_excerpt(); ?>
95
 
96
  </div><!-- .event-entry-meta -->
90
  <!-- Display event meta list -->
91
  <?php echo eo_get_event_meta_list(); ?>
92
 
93
+ <!-- Show Event text as 'the_excerpt' or 'the_content' -->
94
  <?php the_excerpt(); ?>
95
 
96
  </div><!-- .event-entry-meta -->
templates/taxonomy-event-category.php CHANGED
@@ -87,7 +87,7 @@ get_header(); ?>
87
  <!-- Display event meta list -->
88
  <?php echo eo_get_event_meta_list(); ?>
89
 
90
- <!-- Event excerpt -->
91
  <?php the_excerpt(); ?>
92
 
93
  </div><!-- .event-entry-meta -->
87
  <!-- Display event meta list -->
88
  <?php echo eo_get_event_meta_list(); ?>
89
 
90
+ <!-- Show Event text as 'the_excerpt' or 'the_content' -->
91
  <?php the_excerpt(); ?>
92
 
93
  </div><!-- .event-entry-meta -->
templates/taxonomy-event-tag.php CHANGED
@@ -87,7 +87,7 @@ get_header(); ?>
87
  <!-- Display event meta list -->
88
  <?php echo eo_get_event_meta_list(); ?>
89
 
90
- <!-- Event excerpt -->
91
  <?php the_excerpt(); ?>
92
 
93
  </div><!-- .event-entry-meta -->
87
  <!-- Display event meta list -->
88
  <?php echo eo_get_event_meta_list(); ?>
89
 
90
+ <!-- Show Event text as 'the_excerpt' or 'the_content' -->
91
  <?php the_excerpt(); ?>
92
 
93
  </div><!-- .event-entry-meta -->
templates/taxonomy-event-venue.php CHANGED
@@ -87,7 +87,7 @@ get_header(); ?>
87
  <!-- Display event meta list -->
88
  <?php echo eo_get_event_meta_list(); ?>
89
 
90
- <!-- Event excerpt -->
91
  <?php the_excerpt(); ?>
92
 
93
  </div><!-- .event-entry-meta -->
87
  <!-- Display event meta list -->
88
  <?php echo eo_get_event_meta_list(); ?>
89
 
90
+ <!-- Show Event text as 'the_excerpt' or 'the_content' -->
91
  <?php the_excerpt(); ?>
92
 
93
  </div><!-- .event-entry-meta -->