The Events Calendar - Version 3.8.1

Version Description

  • Fixed a bug where the wrong date was showing in the title of the page when a date was selected in the tribe bar
  • Fixed a bug where previous and next events links were (or were not) showing up when they're supposed to
  • Fixed a bug where sending our datepicker into no conflict mode could cause javascript errors on events pages were it was not loaded (thanks to adamvanbavel for reporting this on the forums!)
  • Added mailing list subscription options to the Welcome/Update plugin activation pages
  • Fixed a bug causing issues with the display of maps in single event and venue views (thanks to Trevor on the forums for the original report!)
Download this release

Release Info

Developer jazbek
Plugin Icon The Events Calendar
Version 3.8.1
Comparing to
See all releases

Code changes from version 3.8 to 3.8.1

admin-views/admin-update-message.php CHANGED
@@ -37,7 +37,9 @@
37
<h3><?php _e( 'PSST... Want a Discount?', 'tribe-events-calendar' ); ?></h3>
38
<p><?php _e( 'We send out discounts to our core users via our newsletter.' ); ?></p>
39
<form action="http://moderntribe.createsend.com/t/r/s/athqh/" method="post">
40
- <p><input id="fieldEmail" class="regular-text" name="cm-athqh-athqh" type="email" placeholder="Email" required /><br/></p>
41
<button type="submit" class="button-primary"><?php _e( 'Sign Up', 'tribe-events-calendar' ); ?></button>
42
</form>
43
<br/>
37
<h3><?php _e( 'PSST... Want a Discount?', 'tribe-events-calendar' ); ?></h3>
38
<p><?php _e( 'We send out discounts to our core users via our newsletter.' ); ?></p>
39
<form action="http://moderntribe.createsend.com/t/r/s/athqh/" method="post">
40
+ <p><input id="listthkduyk" name="cm-ol-thkduyk" type="checkbox" /> <label for="listthkduyk">Developer News</label></p>
41
+ <p><input id="listathqh" name="cm-ol-athqh" checked type="checkbox" /> <label for="listathqh">News and Announcements</label></p>
42
+ <p><input id="fieldEmail" class="regular-text" name="cm-athqh-athqh" type="email" placeholder="Email" required /></p>
43
<button type="submit" class="button-primary"><?php _e( 'Sign Up', 'tribe-events-calendar' ); ?></button>
44
</form>
45
<br/>
admin-views/admin-welcome-message.php CHANGED
@@ -4,7 +4,7 @@
4
* The template that displays the welcome message when the plugin is first activated.
5
*/
6
7
- $video_url = 'https://www.youtube.com/watch?v=HHohYGTk3QQ';
8
9
?>
10
@@ -23,9 +23,10 @@ $video_url = 'https://www.youtube.com/watch?v=HHohYGTk3QQ';
23
</div>
24
<div class="tribe-half-column">
25
<h3><?php _e( "Newsletter Signup", 'tribe-events-calendar' ); ?></h3>
26
- <p><?php _e( "Stay in touch with The Events Calendar Pro. We send out the occiasional update, key developer notices, and even the occasional discount.", 'tribe-events-calendar' ); ?></p>
27
<form action="http://moderntribe.createsend.com/t/r/s/athqh/" method="post">
28
<p><input id="listthkduyk" name="cm-ol-thkduyk" type="checkbox" /> <label for="listthkduyk">Developer News</label></p>
29
<p><input id="fieldEmail" class="regular-text" name="cm-athqh-athqh" type="email" placeholder="Email" required /></p>
30
<button type="submit" class="button-primary"><?php _e( 'Sign Up', 'tribe-events-calendar' ); ?></button>
31
</form>
4
* The template that displays the welcome message when the plugin is first activated.
5
*/
6
7
+ $video_url = 'http://vimeo.com/108805711';
8
9
?>
10
23
</div>
24
<div class="tribe-half-column">
25
<h3><?php _e( "Newsletter Signup", 'tribe-events-calendar' ); ?></h3>
26
+ <p><?php _e( "Stay in touch with The Events Calendar Pro. We send out periodic updates, key developer notices, and even the occasional discount.", 'tribe-events-calendar' ); ?></p>
27
<form action="http://moderntribe.createsend.com/t/r/s/athqh/" method="post">
28
<p><input id="listthkduyk" name="cm-ol-thkduyk" type="checkbox" /> <label for="listthkduyk">Developer News</label></p>
29
+ <p><input id="listathqh" name="cm-ol-athqh" checked type="checkbox" /> <label for="listathqh">News and Announcements</label></p>
30
<p><input id="fieldEmail" class="regular-text" name="cm-athqh-athqh" type="email" placeholder="Email" required /></p>
31
<button type="submit" class="button-primary"><?php _e( 'Sign Up', 'tribe-events-calendar' ); ?></button>
32
</form>
lib/EmbeddedMaps.php CHANGED
@@ -99,8 +99,8 @@ class TribeEvents_EmbeddedMaps {
99
100
tribe_get_template_part( 'modules/map', null, array(
101
'index' => $index,
102
- 'width' => null === $width ? tribe_get_option( 'embedGoogleMapsWidth', '100%' ) : $width,
103
- 'height' => null === $height ? tribe_get_option( 'embedGoogleMapsHeight', '350px' ) : $height,
104
) );
105
106
$this->setup_scripts();
99
100
tribe_get_template_part( 'modules/map', null, array(
101
'index' => $index,
102
+ 'width' => null === $width ? apply_filters( 'tribe_events_single_map_default_width', '100%' ) : $width,
103
+ 'height' => null === $height ? apply_filters( 'tribe_events_single_map_default_height', '350px' ) : $height,
104
) );
105
106
$this->setup_scripts();
lib/template-classes/list.php CHANGED
@@ -76,7 +76,7 @@ if ( ! class_exists( 'Tribe_Events_List_Template' ) ) {
76
$args[TribeEvents::TAXONOMY] = $_POST['tribe_event_category'];
77
}
78
79
- $query = TribeEventsQuery::getEvents( $args, true );
80
81
// $hash is used to detect whether the primary arguments in the query have changed (i.e. due to a filter bar request)
82
// if they have, we want to go back to page 1
76
$args[TribeEvents::TAXONOMY] = $_POST['tribe_event_category'];
77
}
78
79
+ $query = tribe_get_events( $args, true );
80
81
// $hash is used to detect whether the primary arguments in the query have changed (i.e. due to a filter bar request)
82
// if they have, we want to go back to page 1
lib/the-events-calendar.class.php CHANGED
@@ -24,7 +24,7 @@ if ( ! class_exists( 'TribeEvents' ) ) {
24
const VENUE_POST_TYPE = 'tribe_venue';
25
const ORGANIZER_POST_TYPE = 'tribe_organizer';
26
27
- const VERSION = '3.8';
28
const FEED_URL = 'http://tri.be/category/products/feed/';
29
const INFO_API_URL = 'http://wpapi.org/api/plugin/the-events-calendar.php';
30
const WP_PLUGIN_URL = 'http://wordpress.org/extend/plugins/the-events-calendar/';
24
const VENUE_POST_TYPE = 'tribe_venue';
25
const ORGANIZER_POST_TYPE = 'tribe_organizer';
26
27
+ const VERSION = '3.8.1';
28
const FEED_URL = 'http://tri.be/category/products/feed/';
29
const INFO_API_URL = 'http://wpapi.org/api/plugin/the-events-calendar.php';
30
const WP_PLUGIN_URL = 'http://wordpress.org/extend/plugins/the-events-calendar/';
lib/tribe-event-query.class.php CHANGED
@@ -79,12 +79,8 @@ if ( ! class_exists( 'TribeEventsQuery' ) ) {
79
$query->set( 'eventDisplay', TribeEvents::instance()->default_view() );
80
}
81
82
- do_action( 'log', 'multi_posttype', 'default', var_export( $query->tribe_is_multi_posttype, true ) );
83
- do_action( 'log', 'types', 'default', $types );
84
- do_action( 'log', 'request', 'default', $query->query_vars );
85
-
86
// check if any possiblity of this being an event category
87
- $query->tribe_is_event_category = ( isset( $query->query_vars[TribeEvents::TAXONOMY] ) && $query->query_vars[TribeEvents::TAXONOMY] != '' )
88
? true // it was an event category
89
: false;
90
@@ -97,14 +93,16 @@ if ( ! class_exists( 'TribeEventsQuery' ) ) {
97
: false;
98
99
$query->tribe_is_event_query = ( $query->tribe_is_event
100
- || $query->tribe_is_event_category
101
- || $query->tribe_is_event_venue
102
- || $query->tribe_is_event_organizer )
103
? true // this is an event query of some type
104
: false; // move along, this is not the query you are looking for
105
106
// is the query pulling posts from the past
107
- if ( ( $query->is_main_query() || tribe_is_ajax_view_request() ) && ! empty( $_REQUEST['tribe_event_display'] ) && $_REQUEST['tribe_event_display'] == 'past' ) {
108
$query->tribe_is_past = true;
109
} else {
110
$query->tribe_is_past = isset( $query->tribe_is_past ) ? $query->tribe_is_past : false;
@@ -173,12 +171,12 @@ if ( ! class_exists( 'TribeEventsQuery' ) ) {
173
$query->set( 'update_post_meta_cache', false );
174
$query->set( 'update_post_term_cache', false );
175
$query->set(
176
- 'meta_query', array(
177
- array(
178
- 'key' => '_EventStartDate',
179
- 'type' => 'DATETIME'
180
- )
181
- )
182
);
183
do_action( 'tribe_events_pre_get_posts', $query );
184
@@ -385,9 +383,11 @@ if ( ! class_exists( 'TribeEventsQuery' ) ) {
385
if ( ! empty( $query->tribe_is_event_query ) || ! empty( $query->tribe_is_multi_posttype ) ) {
386
if ( has_filter( 'tribe_events_query_posts_groupby' ) ) {
387
_deprecated_function( "The 'tribe_events_query_posts_groupby' filter", '3.8', " the 'posts_groupby' filter" );
388
return apply_filters( 'tribe_events_query_posts_groupby', $groupby_sql, $query );
389
}
390
}
391
return $groupby_sql;
392
}
393
@@ -761,8 +761,8 @@ if ( ! class_exists( 'TribeEventsQuery' ) ) {
761
$output_date_format = '%Y-%m-%d %H:%i:%s';
762
do_action( 'log', 'raw counts args', 'tribe-events-query', $args );
763
$raw_counts = $wpdb->get_results(
764
- $wpdb->prepare(
765
- "
766
SELECT tribe_event_start.post_id as ID,
767
tribe_event_start.meta_value as EventStartDate,
768
DATE_FORMAT( tribe_event_end_date.meta_value, '%1\$s') as EventEndDate,
@@ -777,18 +777,18 @@ if ( ! class_exists( 'TribeEventsQuery' ) ) {
777
OR ( tribe_event_start.meta_value >= '%3\$s' AND tribe_event_start.meta_value <= '%4\$s')
778
)
779
ORDER BY menu_order ASC, DATE(tribe_event_start.meta_value) ASC, TIME(tribe_event_start.meta_value) ASC;",
780
- $output_date_format,
781
- $output_date_format,
782
- $post_id_query->query_vars['start_date'],
783
- $post_id_query->query_vars['end_date'],
784
- implode( ',', array_map( 'intval', $post_ids ) )
785
- )
786
);
787
do_action( 'log', 'raw counts query', 'tribe-events-query', $wpdb->last_query );
788
$start_date = new DateTime( $post_id_query->query_vars['start_date'] );
789
$end_date = new DateTime( $post_id_query->query_vars['end_date'] );
790
$days = TribeDateUtils::dateDiff( $start_date->format( 'Y-m-d' ), $end_date->format( 'Y-m-d' ) );
791
- $term_id = isset( $wp_query->query_vars[TribeEvents::TAXONOMY] ) ? $wp_query->query_vars[TribeEvents::TAXONOMY] : null;
792
if ( is_int( $term_id ) ) {
793
$term = get_term_by( 'id', $term_id, TribeEvents::TAXONOMY );
794
} elseif ( is_string( $term_id ) ) {
@@ -831,8 +831,8 @@ if ( ! class_exists( 'TribeEventsQuery' ) ) {
831
$count ++;
832
}
833
}
834
- $event_ids[$formatted_date] = $_day_event_ids;
835
- $counts[$formatted_date] = $count;
836
}
837
break;
838
}
79
$query->set( 'eventDisplay', TribeEvents::instance()->default_view() );
80
}
81
82
// check if any possiblity of this being an event category
83
+ $query->tribe_is_event_category = ! empty ( $query->query_vars[ TribeEvents::TAXONOMY ] )
84
? true // it was an event category
85
: false;
86
93
: false;
94
95
$query->tribe_is_event_query = ( $query->tribe_is_event
96
+ || $query->tribe_is_event_category
97
+ || $query->tribe_is_event_venue
98
+ || $query->tribe_is_event_organizer )
99
? true // this is an event query of some type
100
: false; // move along, this is not the query you are looking for
101
102
// is the query pulling posts from the past
103
+ if ( $query->is_main_query() && ! empty( $_REQUEST['tribe_event_display'] ) && $_REQUEST['tribe_event_display'] == 'past' ) {
104
+ $query->tribe_is_past = true;
105
+ } elseif ( tribe_is_ajax_view_request() && $query->get( 'eventDisplay' ) == 'past' ) {
106
$query->tribe_is_past = true;
107
} else {
108
$query->tribe_is_past = isset( $query->tribe_is_past ) ? $query->tribe_is_past : false;
171
$query->set( 'update_post_meta_cache', false );
172
$query->set( 'update_post_term_cache', false );
173
$query->set(
174
+ 'meta_query', array(
175
+ array(
176
+ 'key' => '_EventStartDate',
177
+ 'type' => 'DATETIME'
178
+ )
179
+ )
180
);
181
do_action( 'tribe_events_pre_get_posts', $query );
182
383
if ( ! empty( $query->tribe_is_event_query ) || ! empty( $query->tribe_is_multi_posttype ) ) {
384
if ( has_filter( 'tribe_events_query_posts_groupby' ) ) {
385
_deprecated_function( "The 'tribe_events_query_posts_groupby' filter", '3.8', " the 'posts_groupby' filter" );
386
+
387
return apply_filters( 'tribe_events_query_posts_groupby', $groupby_sql, $query );
388
}
389
}
390
+
391
return $groupby_sql;
392
}
393
761
$output_date_format = '%Y-%m-%d %H:%i:%s';
762
do_action( 'log', 'raw counts args', 'tribe-events-query', $args );
763
$raw_counts = $wpdb->get_results(
764
+ $wpdb->prepare(
765
+ "
766
SELECT tribe_event_start.post_id as ID,
767
tribe_event_start.meta_value as EventStartDate,
768
DATE_FORMAT( tribe_event_end_date.meta_value, '%1\$s') as EventEndDate,
777
OR ( tribe_event_start.meta_value >= '%3\$s' AND tribe_event_start.meta_value <= '%4\$s')
778
)
779
ORDER BY menu_order ASC, DATE(tribe_event_start.meta_value) ASC, TIME(tribe_event_start.meta_value) ASC;",
780
+ $output_date_format,
781
+ $output_date_format,
782
+ $post_id_query->query_vars['start_date'],
783
+ $post_id_query->query_vars['end_date'],
784
+ implode( ',', array_map( 'intval', $post_ids ) )
785
+ )
786
);
787
do_action( 'log', 'raw counts query', 'tribe-events-query', $wpdb->last_query );
788
$start_date = new DateTime( $post_id_query->query_vars['start_date'] );
789
$end_date = new DateTime( $post_id_query->query_vars['end_date'] );
790
$days = TribeDateUtils::dateDiff( $start_date->format( 'Y-m-d' ), $end_date->format( 'Y-m-d' ) );
791
+ $term_id = isset( $wp_query->query_vars[ TribeEvents::TAXONOMY ] ) ? $wp_query->query_vars[ TribeEvents::TAXONOMY ] : null;
792
if ( is_int( $term_id ) ) {
793
$term = get_term_by( 'id', $term_id, TribeEvents::TAXONOMY );
794
} elseif ( is_string( $term_id ) ) {
831
$count ++;
832
}
833
}
834
+ $event_ids[ $formatted_date ] = $_day_event_ids;
835
+ $counts[ $formatted_date ] = $count;
836
}
837
break;
838
}
public/template-tags/loop.php CHANGED
@@ -129,8 +129,17 @@ if ( class_exists( 'TribeEvents' ) ) {
129
130
$title = __( 'Upcoming Events', 'tribe-events-calendar' );
131
132
if ( isset( $_REQUEST['tribe-bar-date'] ) && $wp_query->have_posts() ) {
133
- $first_event_date = tribe_get_end_date( $wp_query->posts[0], false );
134
$last_event_date = tribe_get_end_date( $wp_query->posts[count( $wp_query->posts ) - 1], false );
135
$title = sprintf( __( 'Events for %1$s - %2$s', 'tribe-events-calendar'), $first_event_date, $last_event_date );
136
} elseif ( tribe_is_past() ) {
@@ -179,6 +188,7 @@ if ( class_exists( 'TribeEvents' ) ) {
179
* @param string $return what to return, 'bool' or 'event'
180
*
181
* @return mixed
182
*/
183
function tribe_has_previous_event( $return = 'bool' ) {
184
global $wp_query;
@@ -186,13 +196,20 @@ if ( class_exists( 'TribeEvents' ) ) {
186
187
if ( tribe_is_event_query() ) {
188
// Edit the current event query to look for an upcoming event
189
- $args = (array) $wp_query->query;
190
- $args['eventDisplay'] = 'past';
191
192
if ( tribe_is_past() ) {
193
- $args['paged'] = $wp_query->query_vars['paged'] ? $wp_query->query_vars['paged'] + 1 : 2;
194
} else {
195
- $args['paged'] = $wp_query->query_vars['paged'] ? $wp_query->query_vars['paged'] - 1 : 0;
196
}
197
198
$events = tribe_get_events( $args );
@@ -201,7 +218,6 @@ if ( class_exists( 'TribeEvents' ) ) {
201
202
}
203
204
- // @todo 'tribe_has_past_events' filter is @deprecated as of 3.7
205
return apply_filters( 'tribe_has_previous_event', apply_filters( 'tribe_has_past_events', $previous_event ) );
206
}
207
@@ -219,13 +235,20 @@ if ( class_exists( 'TribeEvents' ) ) {
219
if ( tribe_is_event_query() && ! empty( $wp_query->posts ) ) {
220
221
// Edit the current event query to look for an upcoming event
222
- $args = (array) $wp_query->query;
223
- $args['eventDisplay'] = 'list';
224
225
if ( tribe_is_past() ) {
226
- $args['paged'] = $wp_query->query_vars['paged'] ? $wp_query->query_vars['paged'] - 1 : 0;
227
} else {
228
- $args['paged'] = $wp_query->query_vars['paged'] ? $wp_query->query_vars['paged'] + 1 : 2;
229
}
230
231
$events = tribe_get_events( $args );
129
130
$title = __( 'Upcoming Events', 'tribe-events-calendar' );
131
132
+ // If there's a date selected in the tribe bar, show the date range of the currently showing events
133
if ( isset( $_REQUEST['tribe-bar-date'] ) && $wp_query->have_posts() ) {
134
+
135
+ if ( $wp_query->get( 'paged' ) > 1 ) {
136
+ // if we're on page 1, show the selected tribe-bar-date as the first date in the range
137
+ $first_event_date = tribe_get_start_date( $wp_query->posts[0], false );
138
+ } else {
139
+ //otherwise show the start date of the first event in the results
140
+ $first_event_date = tribe_event_format_date( $_REQUEST['tribe-bar-date'], false );
141
+ }
142
+
143
$last_event_date = tribe_get_end_date( $wp_query->posts[count( $wp_query->posts ) - 1], false );
144
$title = sprintf( __( 'Events for %1$s - %2$s', 'tribe-events-calendar'), $first_event_date, $last_event_date );
145
} elseif ( tribe_is_past() ) {
188
* @param string $return what to return, 'bool' or 'event'
189
*
190
* @return mixed
191
+ * @todo 'tribe_has_past_events' filter is @deprecated as of 3.7
192
*/
193
function tribe_has_previous_event( $return = 'bool' ) {
194
global $wp_query;
196
197
if ( tribe_is_event_query() ) {
198
// Edit the current event query to look for an upcoming event
199
+ $args = (array) $wp_query->query;
200
201
if ( tribe_is_past() ) {
202
+ $args['eventDisplay'] = 'past';
203
+ $args['paged'] = $wp_query->get( 'paged' ) ? $wp_query->get( 'paged' ) + 1 : 2;
204
} else {
205
+ if ( $wp_query->get( 'paged' ) > 1 ) {
206
+ $args['eventDisplay'] = 'list';
207
+ $args['paged'] = $wp_query->get( 'paged' ) - 1;
208
+ } else {
209
+ // if we're on the first page of upcoming, previous events will page page one of the past
210
+ $args['eventDisplay'] = 'past';
211
+ $args['paged'] = 1;
212
+ }
213
}
214
215
$events = tribe_get_events( $args );
218
219
}
220
221
return apply_filters( 'tribe_has_previous_event', apply_filters( 'tribe_has_past_events', $previous_event ) );
222
}
223
235
if ( tribe_is_event_query() && ! empty( $wp_query->posts ) ) {
236
237
// Edit the current event query to look for an upcoming event
238
+ $args = (array) $wp_query->query;
239
240
if ( tribe_is_past() ) {
241
+ if ( $wp_query->get( 'paged' ) > 1 ) {
242
+ $args['eventDisplay'] = 'past';
243
+ $args['paged'] = $wp_query->get( 'paged' ) - 1;
244
+ } else {
245
+ // if we're on page one of the past, next events will be on page 1 of regular list view
246
+ $args['eventDisplay'] = 'list';
247
+ $args['paged'] = 1;
248
+ }
249
} else {
250
+ $args['eventDisplay'] = 'list';
251
+ $args['paged'] = $wp_query->get( 'paged' ) ? $wp_query->get( 'paged' ) + 1 : 2;
252
}
253
254
$events = tribe_get_events( $args );
readme.txt CHANGED
@@ -5,7 +5,7 @@ Tags: events, calendar, event, venue, organizer, dates, date, google maps, confe
5
Donate link: http://m.tri.be/29
6
Requires at least: 3.8
7
Tested up to: 4.0
8
- Stable tag: 3.8
9
License: GPLv2 or later
10
License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
@@ -324,6 +324,14 @@ At no point during the 3.0 lifecycle will the major version change. But you can
324
325
3.x is a complete overhaul of the plugin, and as a result we're starting the changelog fresh. For release notes from the 2.x lifecycle, see <a href="http://m.tri.be/k">our 2.x release notes.</a>
326
327
= 3.8 =
328
329
* Changed capability for importing events from "administrator" to "import"
5
Donate link: http://m.tri.be/29
6
Requires at least: 3.8
7
Tested up to: 4.0
8
+ Stable tag: 3.8.1
9
License: GPLv2 or later
10
License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
324
325
3.x is a complete overhaul of the plugin, and as a result we're starting the changelog fresh. For release notes from the 2.x lifecycle, see <a href="http://m.tri.be/k">our 2.x release notes.</a>
326
327
+ = 3.8.1 =
328
+
329
+ * Fixed a bug where the wrong date was showing in the title of the page when a date was selected in the tribe bar
330
+ * Fixed a bug where previous and next events links were (or were not) showing up when they're supposed to
331
+ * Fixed a bug where sending our datepicker into no conflict mode could cause javascript errors on events pages were it was not loaded (thanks to adamvanbavel for reporting this on the forums!)
332
+ * Added mailing list subscription options to the Welcome/Update plugin activation pages
333
+ * Fixed a bug causing issues with the display of maps in single event and venue views (thanks to Trevor on the forums for the original report!)
334
+
335
= 3.8 =
336
337
* Changed capability for importing events from "administrator" to "import"
resources/tribe-events.js CHANGED
@@ -460,7 +460,7 @@ Date.prototype.format = function( mask, utc ) {
460
$( this ).addClass( 'tribe-events-loading' ).css( 'opacity', .25 )
461
};
462
463
- if ( "undefined" !== typeof $.fn.datepicker ) {
464
var datepicker = $.fn.datepicker.noConflict();
465
$.fn.bootstrapDatepicker = datepicker;
466
}
460
$( this ).addClass( 'tribe-events-loading' ).css( 'opacity', .25 )
461
};
462
463
+ if ( "undefined" !== typeof $.fn.datepicker && "undefined" !== typeof $.fn.datepicker.noConflict ) {
464
var datepicker = $.fn.datepicker.noConflict();
465
$.fn.bootstrapDatepicker = datepicker;
466
}
resources/tribe-events.min.js CHANGED
@@ -1,25 +1,25 @@
1
var tribe_ev=window.tribe_ev||{},tribe_debug=!1;
2
- window.debug=function(){function e(c){a&&(g||!d||!d.log)&&a.apply(k,c)}for(var k=this,c=Array.prototype.slice,d=k.console,b={},a,g,f=9,h=["error","warn","info","debug","log"],l="assert clear count dir dirxml exception group groupCollapsed groupEnd profile profileEnd table time timeEnd trace".split(" "),m=l.length,q=[];0<=--m;)(function(a){b[a]=function(){0!==f&&d&&d[a]&&d[a].apply(d,arguments)}})(l[m]);for(m=h.length;0<=--m;)(function(a,g){b[g]=function(){var b=c.call(arguments),l=[g].concat(b);q.push(l);
3
- e(l);if(d&&(0<f?f>a:h.length+f<=a))d.firebug?d[g].apply(k,b):d[g]?d[g](b):d.log(b)}})(m,h[m]);b.setLevel=function(a){f="number"===typeof a?a:9};b.setCallback=function(){var f=c.call(arguments),b=q.length,d=b;a=f.shift()||null;g="boolean"===typeof f[0]?f.shift():!1;for(d-="number"===typeof f[0]?f.shift():b;d<b;)e(q[d++])};return b}();Object.prototype.hasOwnProperty.call(window,"tribe_ev")&&(tribe_ev.diagnostics={init:[]});var tribe_storage,t_fail,t_uid;
4
try{t_uid=new Date,(tribe_storage=window.localStorage).setItem(t_uid,t_uid),t_fail=tribe_storage.getItem(t_uid)!=t_uid,tribe_storage.removeItem(t_uid),t_fail&&(tribe_storage=!1)}catch(e$12){}
5
- var tribeDateFormat=function(){var e=/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,k=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,c=/[^-+\dA-Z]/g,d=function(c,a){c=String(c);for(a=a||2;c.length<a;)c="0"+c;return c};return function(b,a,g){var f=tribeDateFormat;1==arguments.length&&("[object String]"==Object.prototype.toString.call(b)&&!/\d/.test(b))&&(a=b,b=void 0);"string"===typeof b&&(b=b.replace(/-/g,
6
- "/"));b=b?new Date(b):new Date;if(!isNaN(b)){a=String(f.masks[a]||a||f.masks["default"]);"UTC:"==a.slice(0,4)&&(a=a.slice(4),g=!0);var h=g?"getUTC":"get",l=b[h+"Date"](),m=b[h+"Day"](),q=b[h+"Month"](),p=b[h+"FullYear"](),n=b[h+"Hours"](),r=b[h+"Minutes"](),s=b[h+"Seconds"](),h=b[h+"Milliseconds"](),t=g?0:b.getTimezoneOffset(),u={d:l,dd:d(l),ddd:f.i18n.dayNames[m],dddd:f.i18n.dayNames[m+7],m:q+1,mm:d(q+1),mmm:f.i18n.monthNames[q],mmmm:f.i18n.monthNames[q+12],yy:String(p).slice(2),yyyy:p,h:n%12||12,
7
- hh:d(n%12||12),H:n,HH:d(n),M:r,MM:d(r),s:s,ss:d(s),l:d(h,3),L:d(99<h?Math.round(h/10):h),t:12>n?"a":"p",tt:12>n?"am":"pm",T:12>n?"A":"P",TT:12>n?"AM":"PM",Z:g?"UTC":(String(b).match(k)||[""]).pop().replace(c,""),o:(0<t?"-":"+")+d(100*Math.floor(Math.abs(t)/60)+Math.abs(t)%60,4),S:["th","st","nd","rd"][3<l%10?0:(10!=l%100-l%10)*l%10]};return a.replace(e,function(a){return a in u?u[a]:a.slice(1,a.length-1)})}}}();
8
tribeDateFormat.masks={"default":"ddd mmm dd yyyy HH:MM:ss",tribeQuery:"yyyy-mm-dd",tribeMonthQuery:"yyyy-mm",0:"yyyy-mm-dd",1:"m/d/yyyy",2:"mm/dd/yyyy",3:"d/m/yyyy",4:"dd/mm/yyyy",5:"m-d-yyyy",6:"mm-dd-yyyy",7:"d-m-yyyy",8:"dd-mm-yyyy",m0:"yyyy-mm",m1:"m/yyyy",m2:"mm/yyyy",m3:"m/yyyy",m4:"mm/yyyy",m5:"m-yyyy",m6:"mm-yyyy",m7:"m-yyyy",m8:"mm-yyyy"};tribeDateFormat.i18n={dayNames:"Sun Mon Tue Wed Thu Fri Sat Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),monthNames:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec January February March April May June July August September October November December".split(" ")};
9
Date.prototype.format=function(e,k){return tribeDateFormat(this,e,k)};
10
- (function(){function e(c,d){var b=arguments.callee;b.cache[c]||(b.cache[c]=function(){var a=c,g=/^[\w\-]+#x2F;.test(c)?b.get(c):(a="template(string)",c),f=1,a=("try { "+(b.variable?"var "+b.variable+" = this.stash;":"with (this.stash) { ")+"this.ret += '"+g.replace(/\[\[/g,"\u0011").replace(/\]\]/g,"\u0013").replace(/'(?![^\x11\x13]+?\x13)/g,"\\x27").replace(/^\s*|\s*#x2F;g,"").replace(/\n/g,function(){return"';\nthis.line = "+ ++f+"; this.ret += '\\n"}).replace(/\x11=raw(.+?)\x13/g,"' + ($1) + '").replace(/\x11=(.+?)\x13/g,
11
"' + this.escapeHTML($1) + '").replace(/\x11(.+?)\x13/g,"'; $1; this.ret += '")+"'; "+(b.variable?"":"}")+"return this.ret;} catch (e) { throw 'TemplateError: ' + e + ' (on "+a+"' + ' line ' + this.line + ')'; } //@ sourceURL="+a+"\n").replace(/this\.ret \+= '';/g,""),d=new Function(a),e={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&#x22;","'":"&#x27;"},m=function(a){return(""+a).replace(/[&<>\'\"]/g,function(a){return e[a]})};return function(a){return d.call(b.context={escapeHTML:m,line:1,ret:"",stash:a})}}());
12
return d?b.cache[c](d):b.cache[c]}function k(c,d){var b=function(a){a.include=function(a,c){var d={},b;for(b in e.context.stash)e.context.stash.hasOwnProperty(b)&&(d[b]=e.context.stash[b]);if(c)for(b in c)c.hasOwnProperty(b)&&(d[b]=c[b]);b=e.context;b.ret+=e(a,d);e.context=b};a.wrapper=function(a,c){var b=e.context.ret;e.context.ret="";c.apply(e.context);var d=e.context.stash.content;e.context.stash.content=e.context.ret;e.context.ret=b+e(a,e.context.stash);e.context.stash.content=d};return e(c,a)};
13
return d?b(d):b}e.cache={};e.get=function(c){return document.getElementById(c).innerHTML};e.get=function(c){var d=k.get;return d?d(c):document.getElementById(c).innerHTML};this.tribe_tmpl=e;this.tribe_tmpl_extended=k})();
14
(function(e,k){e.fn.tribe_clear_form=function(){return this.each(function(){var c=this.type,b=this.tagName.toLowerCase();if("form"==b)return e(":input",this).tribe_clear_form();"text"==c||"password"==c||"textarea"==b?this.value="":"checkbox"==c||"radio"==c?this.checked=!1:"select"==b&&(this.selectedIndex=0)})};e.fn.tribe_has_attr=function(c){return this.attr(c)!==k};e.fn.tribe_spin=function(){e(".tribe-events-ajax-loading:first").clone().addClass("tribe-events-active-spinner").prependTo("#tribe-events-content");
15
- e(this).addClass("tribe-events-loading").css("opacity",0.25)};if("undefined"!==typeof e.fn.datepicker){var c=e.fn.datepicker.noConflict();e.fn.bootstrapDatepicker=c}"undefined"!==typeof tribe_bootstrap_datepicker_strings&&null!=tribe_bootstrap_datepicker_strings.dates&&(e.fn.bootstrapDatepicker.dates.en=tribe_bootstrap_datepicker_strings.dates)})(jQuery);
16
(function(e,k,c,d,b){tribe_ev.fn={current_date:function(){var a=new Date,c=a.getDate(),b=a.getMonth()+1,a=a.getFullYear();10>c&&(c="0"+c);10>b&&(b="0"+b);return a+"-"+b+"-"+c},disable_inputs:function(a,b){c(a).find(b).prop("disabled",!0);c(a).find(".select2-container").length&&c(a).find(".select2-container").each(function(){var a=c(this).attr("id");c("#"+a).select2("disable")})},disable_empty:function(a,b){c(a).find(b).each(function(){""===c(this).val()&&c(this).prop("disabled",!0)})},enable_inputs:function(a,
17
b){c(a).find(b).prop("disabled",!1);c(a).find(".select2-container").length&&c(a).find(".select2-container").each(function(){var a=c(this).attr("id");c("#"+a).select2("enable")})},execute_resize:function(){var a=tribe_ev.data.v_width;tribe_ev.fn.update_viewport_variables();a!==tribe_ev.data.v_width&&(tribe_ev.fn.mobile_class(),c(tribe_ev.events).trigger("tribe_ev_resizeComplete"))},get_base_url:function(){var a="",b=c("#tribe-events-header");b.length&&(a=b.data("baseurl"));return a},get_category:function(){return tribe_ev.fn.is_category()?
18
c("#tribe-events").data("category"):""},get_day:function(){var a="";c("#tribe-bar-date").length&&(a=c("#tribe-bar-date-day").val());d&&debug.info('TEC Debug: tribe_ev.fn.get_day returned this date: "'+a+'".');return a},get_params:function(){return location.search.substr(1)},get_url_param:function(a){return decodeURIComponent((RegExp("[?|&]"+a+"=([^&;]+?)(&|#|;|$)").exec(location.search)||[,""])[1].replace(/\+/g,"%20"))||null},in_params:function(a,c){return a.toLowerCase().indexOf(c)},invalid_date:function(a){a=
19
new Date(a);return isNaN(a)},invalid_date_in_params:function(a){return a.hasOwnProperty("tribe-bar-date")?isNaN(new Date(a["tribe-bar-date"])):!1},is_category:function(){var a=c("#tribe-events");return a.length&&a.tribe_has_attr("data-category")&&""!==a.data("category")?!0:!1},mobile_class:function(){var a=c("body");tribe_ev.data.v_width<=tribe_ev.data.mobile_break?a.addClass("tribe-mobile"):a.removeClass("tribe-mobile")},parse_string:function(a){var c={};a.replace(/([^&=]+)=?([^&]*)(?:&+|$)/g,function(a,
20
- b,d){(c[b]=c[b]||[]).push(d)});d&&debug.info("TEC Debug: tribe_ev.fn.parse_string returned this map:",c);return c},pre_ajax:function(a){a&&"function"===typeof a&&a()},scroll_to:function(a,b,d){c("html, body").stop().animate({scrollTop:c(a).offset().top-b},{duration:d})},serialize:function(a,b){tribe_ev.fn.enable_inputs(a,b);tribe_ev.fn.disable_empty(a,b);var f=c(a).serialize();tribe_ev.fn.disable_inputs(a,b);d&&f&&debug.info('TEC Debug: tribe_ev.fn.serialize returned these params: "'+f);return f},
21
- set_form:function(a){var b=c("body"),f=c("#tribe-bar-form");b.addClass("tribe-reset-on");f.length&&f.tribe_clear_form();a=tribe_ev.fn.parse_string(a);c.each(a,function(a,b){if("action"!==a){var d=decodeURI(a),g="";if(1===b.length)c('[name="'+d+'"]').is('input[type="text"], input[type="hidden"]')?c('[name="'+d+'"]').val(b):c('[name="'+d+'"][value="'+b+'"]').is(":checkbox, :radio")?c('[name="'+d+'"][value="'+b+'"]').prop("checked",!0):c('[name="'+d+'"]').is("select")&&c('select[name="'+d+'"] option[value="'+
22
- b+'"]').attr("selected",!0);else for(var f=0;f<b.length;f++)g=c('[name="'+d+'"][value="'+b[f]+'"]'),g.is(":checkbox, :radio")?g.prop("checked",!0):c('select[name="'+d+'"] option[value="'+b[f]+'"]').attr("selected",!0)}});b.removeClass("tribe-reset-on");d&&debug.info('TEC Debug: tribe_ev.fn.set_form fired these params: "'+a)},setup_ajax_timer:function(a){clearTimeout(tribe_ev.state.ajax_timer);tribe_ev.tests.reset_on()||(tribe_ev.state.ajax_timer=setTimeout(function(){a()},500),d&&debug.info('TEC Debug: tribe_ev.fn.setup_ajax_timer fired with a timeout of "500" ms'))},
23
snap:function(a,b,d){c(b).on("click",d,function(b){b.preventDefault();c("html, body").animate({scrollTop:c(a).offset().top-120},{duration:0})})},tooltips:function(){c("#tribe-events").on("mouseenter",'div[id*="tribe-events-event-"], div.event-is-recurring',function(){var a=0,b=c(this),d=c("body");d.hasClass("events-gridview")?a=b.find("a").outerHeight()+18:d.is(".single-tribe_events, .events-list, .tribe-events-day")?a=b.outerHeight()+12:d.is(".tribe-events-photo")&&(a=b.outerHeight()+10);b.parents(".tribe-events-calendar-widget").length&&
24
(a=b.outerHeight()-6);d.hasClass("tribe-events-week")||(d.hasClass("events-gridview")?(d=b.find(".tribe-events-tooltip"),d.length||(d=b.data("tribejson"),"string"==typeof d&&(d=c.parseJSON(d)),b.append(tribe_tmpl("tribe_tmpl_tooltip",d)),d=b.find(".tribe-events-tooltip")),d.css("bottom",a).show()):b.find(".tribe-events-tooltip").css("bottom",a).show())}).on("mouseleave",'div[id*="tribe-events-event-"], div[id*="tribe-events-daynum-"]:has(a), div.event-is-recurring',function(){c(this).find(".tribe-events-tooltip").stop(!0,
25
!1).fadeOut(200)})},update_picker:function(a){var b=c("#tribe-bar-date");c().bootstrapDatepicker&&b.length?(tribe_ev.state.updating_picker=!0,e.attachEvent&&!e.addEventListener&&(b.bootstrapDatepicker("remove"),b.val(""),b.bootstrapDatepicker(tribe_ev.data.datepicker_opts)),b.bootstrapDatepicker("setDate",a),tribe_ev.state.updating_picker=!1,d&&debug.info('TEC Debug: tribe_ev.fn.update_picker sent "'+a+'" to the boostrapDatepicker')):b.length?(b.val(a),d&&debug.warn('TEC Debug: tribe_ev.fn.update_picker sent "'+
@@ -27,8 +27,8 @@ a+'" to '+b)):d&&debug.warn('TEC Debug: tribe_ev.fn.update_picker couldnt send "
27
a.tribe_has_attr("data-live_ajax")&&"1"==a.data("live_ajax")?!0:!1},map_view:function(){return"undefined"!==typeof GeoLoc&&GeoLoc.map_view?!0:!1},no_bar:function(){return c("body").is(".tribe-bar-is-disabled")},pushstate:!(!e.history||!history.pushState),reset_on:function(){return c("body").is(".tribe-reset-on")},starting_delim:function(){return-1!=tribe_ev.state.cur_url.indexOf("?")?"&":"?"},webkit:"WebkitAppearance"in k.documentElement.style};tribe_ev.data={ajax_response:{},base_url:"",cur_url:tribe_ev.fn.url_path(k.URL),
28
cur_date:tribe_ev.fn.current_date(),datepicker_formats:{main:"yyyy-mm-dd m/d/yyyy mm/dd/yyyy d/m/yyyy dd/mm/yyyy m-d-yyyy mm-dd-yyyy d-m-yyyy dd-mm-yyyy".split(" "),month:"yyyy-mm m/yyyy mm/yyyy m/yyyy mm/yyyy m-yyyy mm-yyyy m-yyyy mm-yyyy".split(" ")},datepicker_opts:{},initial_url:tribe_ev.fn.url_path(k.URL),mobile_break:768,params:tribe_ev.fn.get_params(),v_height:0,v_width:0};tribe_ev.events={};tribe_ev.state={ajax_running:!1,ajax_timer:0,ajax_trigger:"",category:"",date:"",datepicker_format:"0",
29
do_string:!1,filters:!1,filter_cats:!1,initial_load:!0,mdate:"",paged:1,page_title:"",params:{},popping:!1,pushstate:!0,pushcount:0,recurrence:!1,updating_picker:!1,url_params:{},view:"",view_target:""}})(window,document,jQuery,tribe_debug);
30
- (function(e,k,c,d,b,a,g,f,h){c(k).ready(function(){function l(){c(".tribe-events-list").length&&c(".tribe-events-list-separator-month").prev(".vevent").addClass("tribe-event-end-month")}function m(){var a=k.URL,b="?";0<a.indexOf("?")&&(b="&");a=a+b+"ical=1&tribe_display="+g.view;c("a.tribe-events-ical").attr("href",a)}h&&debug.info("TEC Debug: Tribe Events JS init, Init Timer started from tribe-events.js.");a.update_viewport_variables();var q=c("body"),p=c("#tribe-events");c("#tribe-events-content");
31
- var n=c("#tribe-events-header"),r;p.removeClass("tribe-no-js");g.category=a.get_category();d.base_url=a.get_base_url();g.page_title=k.title;var s=a.get_url_param("tribe_event_display");s?g.view=s:n.length&&n.tribe_has_attr("data-view")&&(g.view=n.data("view"));p.tribe_has_attr("data-datepicker_format")&&1===p.attr("data-datepicker_format").length&&(g.datepicker_format=p.attr("data-datepicker_format"));g.view&&h&&debug.time("Tribe JS Init Timer");p.length&&p.tribe_has_attr("data-mobilebreak")&&(d.mobile_break=
32
parseInt(p.attr("data-mobilebreak")));p.length&&0<d.mobile_break&&q.addClass("tribe-is-responsive");c(".tribe-events-calendar-widget").not(":eq(0)").hide();a.tooltips();a.mobile_class();l();c(".tribe-events-list .tribe-events-notices").length&&c("#tribe-events-header .tribe-events-sub-nav").empty();c(".tribe-events-list").length&&c(".tribe-events-list-separator-month").prev(".vevent").addClass("tribe-event-end-month");c(b).on("tribe_ev_ajaxSuccess",function(){c(".tribe-events-active-spinner").remove();
33
- l()});c(b).on("tribe_ev_ajaxSuccess",function(){m()});m();c(e).resize(function(){clearTimeout(r);r=setTimeout(a.execute_resize,200)});h&&(debug.groupCollapsed("TEC Debug: Browser and events settings information:"),debug.log('User agent reported as: "'+navigator.userAgent),debug.log('Live ajax returned its state as: "'+f.live_ajax()),g.view&&debug.log('Tribe js detected the view to be: "'+g.view),debug.log('Supports pushstate: "'+f.pushstate),debug.groupEnd(),debug.info("TEC Debug: tribe-events.js successfully loaded"))})})(window,
34
document,jQuery,tribe_ev.data,tribe_ev.events,tribe_ev.fn,tribe_ev.state,tribe_ev.tests,tribe_debug);
1
var tribe_ev=window.tribe_ev||{},tribe_debug=!1;
2
+ window.debug=function(){function e(c){a&&(f||!d||!d.log)&&a.apply(k,c)}for(var k=this,c=Array.prototype.slice,d=k.console,b={},a,f,g=9,h=["error","warn","info","debug","log"],l="assert clear count dir dirxml exception group groupCollapsed groupEnd profile profileEnd table time timeEnd trace".split(" "),m=l.length,q=[];0<=--m;)(function(a){b[a]=function(){0!==g&&d&&d[a]&&d[a].apply(d,arguments)}})(l[m]);for(m=h.length;0<=--m;)(function(a,f){b[f]=function(){var b=c.call(arguments),l=[f].concat(b);q.push(l);
3
+ e(l);if(d&&(0<g?g>a:h.length+g<=a))d.firebug?d[f].apply(k,b):d[f]?d[f](b):d.log(b)}})(m,h[m]);b.setLevel=function(a){g="number"===typeof a?a:9};b.setCallback=function(){var g=c.call(arguments),b=q.length,d=b;a=g.shift()||null;f="boolean"===typeof g[0]?g.shift():!1;for(d-="number"===typeof g[0]?g.shift():b;d<b;)e(q[d++])};return b}();Object.prototype.hasOwnProperty.call(window,"tribe_ev")&&(tribe_ev.diagnostics={init:[]});var tribe_storage,t_fail,t_uid;
4
try{t_uid=new Date,(tribe_storage=window.localStorage).setItem(t_uid,t_uid),t_fail=tribe_storage.getItem(t_uid)!=t_uid,tribe_storage.removeItem(t_uid),t_fail&&(tribe_storage=!1)}catch(e$12){}
5
+ var tribeDateFormat=function(){var e=/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,k=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,c=/[^-+\dA-Z]/g,d=function(c,a){c=String(c);for(a=a||2;c.length<a;)c="0"+c;return c};return function(b,a,f){var g=tribeDateFormat;1==arguments.length&&("[object String]"==Object.prototype.toString.call(b)&&!/\d/.test(b))&&(a=b,b=void 0);"string"===typeof b&&(b=b.replace(/-/g,
6
+ "/"));b=b?new Date(b):new Date;if(!isNaN(b)){a=String(g.masks[a]||a||g.masks["default"]);"UTC:"==a.slice(0,4)&&(a=a.slice(4),f=!0);var h=f?"getUTC":"get",l=b[h+"Date"](),m=b[h+"Day"](),q=b[h+"Month"](),p=b[h+"FullYear"](),n=b[h+"Hours"](),r=b[h+"Minutes"](),s=b[h+"Seconds"](),h=b[h+"Milliseconds"](),t=f?0:b.getTimezoneOffset(),u={d:l,dd:d(l),ddd:g.i18n.dayNames[m],dddd:g.i18n.dayNames[m+7],m:q+1,mm:d(q+1),mmm:g.i18n.monthNames[q],mmmm:g.i18n.monthNames[q+12],yy:String(p).slice(2),yyyy:p,h:n%12||12,
7
+ hh:d(n%12||12),H:n,HH:d(n),M:r,MM:d(r),s:s,ss:d(s),l:d(h,3),L:d(99<h?Math.round(h/10):h),t:12>n?"a":"p",tt:12>n?"am":"pm",T:12>n?"A":"P",TT:12>n?"AM":"PM",Z:f?"UTC":(String(b).match(k)||[""]).pop().replace(c,""),o:(0<t?"-":"+")+d(100*Math.floor(Math.abs(t)/60)+Math.abs(t)%60,4),S:["th","st","nd","rd"][3<l%10?0:(10!=l%100-l%10)*l%10]};return a.replace(e,function(a){return a in u?u[a]:a.slice(1,a.length-1)})}}}();
8
tribeDateFormat.masks={"default":"ddd mmm dd yyyy HH:MM:ss",tribeQuery:"yyyy-mm-dd",tribeMonthQuery:"yyyy-mm",0:"yyyy-mm-dd",1:"m/d/yyyy",2:"mm/dd/yyyy",3:"d/m/yyyy",4:"dd/mm/yyyy",5:"m-d-yyyy",6:"mm-dd-yyyy",7:"d-m-yyyy",8:"dd-mm-yyyy",m0:"yyyy-mm",m1:"m/yyyy",m2:"mm/yyyy",m3:"m/yyyy",m4:"mm/yyyy",m5:"m-yyyy",m6:"mm-yyyy",m7:"m-yyyy",m8:"mm-yyyy"};tribeDateFormat.i18n={dayNames:"Sun Mon Tue Wed Thu Fri Sat Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),monthNames:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec January February March April May June July August September October November December".split(" ")};
9
Date.prototype.format=function(e,k){return tribeDateFormat(this,e,k)};
10
+ (function(){function e(c,d){var b=arguments.callee;b.cache[c]||(b.cache[c]=function(){var a=c,f=/^[\w\-]+#x2F;.test(c)?b.get(c):(a="template(string)",c),g=1,a=("try { "+(b.variable?"var "+b.variable+" = this.stash;":"with (this.stash) { ")+"this.ret += '"+f.replace(/\[\[/g,"\u0011").replace(/\]\]/g,"\u0013").replace(/'(?![^\x11\x13]+?\x13)/g,"\\x27").replace(/^\s*|\s*#x2F;g,"").replace(/\n/g,function(){return"';\nthis.line = "+ ++g+"; this.ret += '\\n"}).replace(/\x11=raw(.+?)\x13/g,"' + ($1) + '").replace(/\x11=(.+?)\x13/g,
11
"' + this.escapeHTML($1) + '").replace(/\x11(.+?)\x13/g,"'; $1; this.ret += '")+"'; "+(b.variable?"":"}")+"return this.ret;} catch (e) { throw 'TemplateError: ' + e + ' (on "+a+"' + ' line ' + this.line + ')'; } //@ sourceURL="+a+"\n").replace(/this\.ret \+= '';/g,""),d=new Function(a),e={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&#x22;","'":"&#x27;"},m=function(a){return(""+a).replace(/[&<>\'\"]/g,function(a){return e[a]})};return function(a){return d.call(b.context={escapeHTML:m,line:1,ret:"",stash:a})}}());
12
return d?b.cache[c](d):b.cache[c]}function k(c,d){var b=function(a){a.include=function(a,c){var d={},b;for(b in e.context.stash)e.context.stash.hasOwnProperty(b)&&(d[b]=e.context.stash[b]);if(c)for(b in c)c.hasOwnProperty(b)&&(d[b]=c[b]);b=e.context;b.ret+=e(a,d);e.context=b};a.wrapper=function(a,c){var b=e.context.ret;e.context.ret="";c.apply(e.context);var d=e.context.stash.content;e.context.stash.content=e.context.ret;e.context.ret=b+e(a,e.context.stash);e.context.stash.content=d};return e(c,a)};
13
return d?b(d):b}e.cache={};e.get=function(c){return document.getElementById(c).innerHTML};e.get=function(c){var d=k.get;return d?d(c):document.getElementById(c).innerHTML};this.tribe_tmpl=e;this.tribe_tmpl_extended=k})();
14
(function(e,k){e.fn.tribe_clear_form=function(){return this.each(function(){var c=this.type,b=this.tagName.toLowerCase();if("form"==b)return e(":input",this).tribe_clear_form();"text"==c||"password"==c||"textarea"==b?this.value="":"checkbox"==c||"radio"==c?this.checked=!1:"select"==b&&(this.selectedIndex=0)})};e.fn.tribe_has_attr=function(c){return this.attr(c)!==k};e.fn.tribe_spin=function(){e(".tribe-events-ajax-loading:first").clone().addClass("tribe-events-active-spinner").prependTo("#tribe-events-content");
15
+ e(this).addClass("tribe-events-loading").css("opacity",0.25)};if("undefined"!==typeof e.fn.datepicker&&"undefined"!==typeof e.fn.datepicker.noConflict){var c=e.fn.datepicker.noConflict();e.fn.bootstrapDatepicker=c}"undefined"!==typeof tribe_bootstrap_datepicker_strings&&null!=tribe_bootstrap_datepicker_strings.dates&&(e.fn.bootstrapDatepicker.dates.en=tribe_bootstrap_datepicker_strings.dates)})(jQuery);
16
(function(e,k,c,d,b){tribe_ev.fn={current_date:function(){var a=new Date,c=a.getDate(),b=a.getMonth()+1,a=a.getFullYear();10>c&&(c="0"+c);10>b&&(b="0"+b);return a+"-"+b+"-"+c},disable_inputs:function(a,b){c(a).find(b).prop("disabled",!0);c(a).find(".select2-container").length&&c(a).find(".select2-container").each(function(){var a=c(this).attr("id");c("#"+a).select2("disable")})},disable_empty:function(a,b){c(a).find(b).each(function(){""===c(this).val()&&c(this).prop("disabled",!0)})},enable_inputs:function(a,
17
b){c(a).find(b).prop("disabled",!1);c(a).find(".select2-container").length&&c(a).find(".select2-container").each(function(){var a=c(this).attr("id");c("#"+a).select2("enable")})},execute_resize:function(){var a=tribe_ev.data.v_width;tribe_ev.fn.update_viewport_variables();a!==tribe_ev.data.v_width&&(tribe_ev.fn.mobile_class(),c(tribe_ev.events).trigger("tribe_ev_resizeComplete"))},get_base_url:function(){var a="",b=c("#tribe-events-header");b.length&&(a=b.data("baseurl"));return a},get_category:function(){return tribe_ev.fn.is_category()?
18
c("#tribe-events").data("category"):""},get_day:function(){var a="";c("#tribe-bar-date").length&&(a=c("#tribe-bar-date-day").val());d&&debug.info('TEC Debug: tribe_ev.fn.get_day returned this date: "'+a+'".');return a},get_params:function(){return location.search.substr(1)},get_url_param:function(a){return decodeURIComponent((RegExp("[?|&]"+a+"=([^&;]+?)(&|#|;|$)").exec(location.search)||[,""])[1].replace(/\+/g,"%20"))||null},in_params:function(a,c){return a.toLowerCase().indexOf(c)},invalid_date:function(a){a=
19
new Date(a);return isNaN(a)},invalid_date_in_params:function(a){return a.hasOwnProperty("tribe-bar-date")?isNaN(new Date(a["tribe-bar-date"])):!1},is_category:function(){var a=c("#tribe-events");return a.length&&a.tribe_has_attr("data-category")&&""!==a.data("category")?!0:!1},mobile_class:function(){var a=c("body");tribe_ev.data.v_width<=tribe_ev.data.mobile_break?a.addClass("tribe-mobile"):a.removeClass("tribe-mobile")},parse_string:function(a){var c={};a.replace(/([^&=]+)=?([^&]*)(?:&+|$)/g,function(a,
20
+ b,d){(c[b]=c[b]||[]).push(d)});d&&debug.info("TEC Debug: tribe_ev.fn.parse_string returned this map:",c);return c},pre_ajax:function(a){a&&"function"===typeof a&&a()},scroll_to:function(a,b,d){c("html, body").stop().animate({scrollTop:c(a).offset().top-b},{duration:d})},serialize:function(a,b){tribe_ev.fn.enable_inputs(a,b);tribe_ev.fn.disable_empty(a,b);var e=c(a).serialize();tribe_ev.fn.disable_inputs(a,b);d&&e&&debug.info('TEC Debug: tribe_ev.fn.serialize returned these params: "'+e);return e},
21
+ set_form:function(a){var b=c("body"),e=c("#tribe-bar-form");b.addClass("tribe-reset-on");e.length&&e.tribe_clear_form();a=tribe_ev.fn.parse_string(a);c.each(a,function(a,b){if("action"!==a){var d=decodeURI(a),e="";if(1===b.length)c('[name="'+d+'"]').is('input[type="text"], input[type="hidden"]')?c('[name="'+d+'"]').val(b):c('[name="'+d+'"][value="'+b+'"]').is(":checkbox, :radio")?c('[name="'+d+'"][value="'+b+'"]').prop("checked",!0):c('[name="'+d+'"]').is("select")&&c('select[name="'+d+'"] option[value="'+
22
+ b+'"]').attr("selected",!0);else for(var f=0;f<b.length;f++)e=c('[name="'+d+'"][value="'+b[f]+'"]'),e.is(":checkbox, :radio")?e.prop("checked",!0):c('select[name="'+d+'"] option[value="'+b[f]+'"]').attr("selected",!0)}});b.removeClass("tribe-reset-on");d&&debug.info('TEC Debug: tribe_ev.fn.set_form fired these params: "'+a)},setup_ajax_timer:function(a){clearTimeout(tribe_ev.state.ajax_timer);tribe_ev.tests.reset_on()||(tribe_ev.state.ajax_timer=setTimeout(function(){a()},500),d&&debug.info('TEC Debug: tribe_ev.fn.setup_ajax_timer fired with a timeout of "500" ms'))},
23
snap:function(a,b,d){c(b).on("click",d,function(b){b.preventDefault();c("html, body").animate({scrollTop:c(a).offset().top-120},{duration:0})})},tooltips:function(){c("#tribe-events").on("mouseenter",'div[id*="tribe-events-event-"], div.event-is-recurring',function(){var a=0,b=c(this),d=c("body");d.hasClass("events-gridview")?a=b.find("a").outerHeight()+18:d.is(".single-tribe_events, .events-list, .tribe-events-day")?a=b.outerHeight()+12:d.is(".tribe-events-photo")&&(a=b.outerHeight()+10);b.parents(".tribe-events-calendar-widget").length&&
24
(a=b.outerHeight()-6);d.hasClass("tribe-events-week")||(d.hasClass("events-gridview")?(d=b.find(".tribe-events-tooltip"),d.length||(d=b.data("tribejson"),"string"==typeof d&&(d=c.parseJSON(d)),b.append(tribe_tmpl("tribe_tmpl_tooltip",d)),d=b.find(".tribe-events-tooltip")),d.css("bottom",a).show()):b.find(".tribe-events-tooltip").css("bottom",a).show())}).on("mouseleave",'div[id*="tribe-events-event-"], div[id*="tribe-events-daynum-"]:has(a), div.event-is-recurring',function(){c(this).find(".tribe-events-tooltip").stop(!0,
25
!1).fadeOut(200)})},update_picker:function(a){var b=c("#tribe-bar-date");c().bootstrapDatepicker&&b.length?(tribe_ev.state.updating_picker=!0,e.attachEvent&&!e.addEventListener&&(b.bootstrapDatepicker("remove"),b.val(""),b.bootstrapDatepicker(tribe_ev.data.datepicker_opts)),b.bootstrapDatepicker("setDate",a),tribe_ev.state.updating_picker=!1,d&&debug.info('TEC Debug: tribe_ev.fn.update_picker sent "'+a+'" to the boostrapDatepicker')):b.length?(b.val(a),d&&debug.warn('TEC Debug: tribe_ev.fn.update_picker sent "'+
27
a.tribe_has_attr("data-live_ajax")&&"1"==a.data("live_ajax")?!0:!1},map_view:function(){return"undefined"!==typeof GeoLoc&&GeoLoc.map_view?!0:!1},no_bar:function(){return c("body").is(".tribe-bar-is-disabled")},pushstate:!(!e.history||!history.pushState),reset_on:function(){return c("body").is(".tribe-reset-on")},starting_delim:function(){return-1!=tribe_ev.state.cur_url.indexOf("?")?"&":"?"},webkit:"WebkitAppearance"in k.documentElement.style};tribe_ev.data={ajax_response:{},base_url:"",cur_url:tribe_ev.fn.url_path(k.URL),
28
cur_date:tribe_ev.fn.current_date(),datepicker_formats:{main:"yyyy-mm-dd m/d/yyyy mm/dd/yyyy d/m/yyyy dd/mm/yyyy m-d-yyyy mm-dd-yyyy d-m-yyyy dd-mm-yyyy".split(" "),month:"yyyy-mm m/yyyy mm/yyyy m/yyyy mm/yyyy m-yyyy mm-yyyy m-yyyy mm-yyyy".split(" ")},datepicker_opts:{},initial_url:tribe_ev.fn.url_path(k.URL),mobile_break:768,params:tribe_ev.fn.get_params(),v_height:0,v_width:0};tribe_ev.events={};tribe_ev.state={ajax_running:!1,ajax_timer:0,ajax_trigger:"",category:"",date:"",datepicker_format:"0",
29
do_string:!1,filters:!1,filter_cats:!1,initial_load:!0,mdate:"",paged:1,page_title:"",params:{},popping:!1,pushstate:!0,pushcount:0,recurrence:!1,updating_picker:!1,url_params:{},view:"",view_target:""}})(window,document,jQuery,tribe_debug);
30
+ (function(e,k,c,d,b,a,f,g,h){c(k).ready(function(){function l(){c(".tribe-events-list").length&&c(".tribe-events-list-separator-month").prev(".vevent").addClass("tribe-event-end-month")}function m(){var a=k.URL,b="?";0<a.indexOf("?")&&(b="&");a=a+b+"ical=1&tribe_display="+f.view;c("a.tribe-events-ical").attr("href",a)}h&&debug.info("TEC Debug: Tribe Events JS init, Init Timer started from tribe-events.js.");a.update_viewport_variables();var q=c("body"),p=c("#tribe-events");c("#tribe-events-content");
31
+ var n=c("#tribe-events-header"),r;p.removeClass("tribe-no-js");f.category=a.get_category();d.base_url=a.get_base_url();f.page_title=k.title;var s=a.get_url_param("tribe_event_display");s?f.view=s:n.length&&n.tribe_has_attr("data-view")&&(f.view=n.data("view"));p.tribe_has_attr("data-datepicker_format")&&1===p.attr("data-datepicker_format").length&&(f.datepicker_format=p.attr("data-datepicker_format"));f.view&&h&&debug.time("Tribe JS Init Timer");p.length&&p.tribe_has_attr("data-mobilebreak")&&(d.mobile_break=
32
parseInt(p.attr("data-mobilebreak")));p.length&&0<d.mobile_break&&q.addClass("tribe-is-responsive");c(".tribe-events-calendar-widget").not(":eq(0)").hide();a.tooltips();a.mobile_class();l();c(".tribe-events-list .tribe-events-notices").length&&c("#tribe-events-header .tribe-events-sub-nav").empty();c(".tribe-events-list").length&&c(".tribe-events-list-separator-month").prev(".vevent").addClass("tribe-event-end-month");c(b).on("tribe_ev_ajaxSuccess",function(){c(".tribe-events-active-spinner").remove();
33
+ l()});c(b).on("tribe_ev_ajaxSuccess",function(){m()});m();c(e).resize(function(){clearTimeout(r);r=setTimeout(a.execute_resize,200)});h&&(debug.groupCollapsed("TEC Debug: Browser and events settings information:"),debug.log('User agent reported as: "'+navigator.userAgent),debug.log('Live ajax returned its state as: "'+g.live_ajax()),f.view&&debug.log('Tribe js detected the view to be: "'+f.view),debug.log('Supports pushstate: "'+g.pushstate),debug.groupEnd(),debug.info("TEC Debug: tribe-events.js successfully loaded"))})})(window,
34
document,jQuery,tribe_ev.data,tribe_ev.events,tribe_ev.fn,tribe_ev.state,tribe_ev.tests,tribe_debug);
the-events-calendar.php CHANGED
@@ -2,7 +2,7 @@
2
/*
3
Plugin Name: The Events Calendar
4
Description: The Events Calendar is a carefully crafted, extensible plugin that lets you easily share your events. Beautiful. Solid. Awesome.
5
- Version: 3.8
6
Author: Modern Tribe, Inc.
7
Author URI: http://m.tri.be/1x
8
Text Domain: tribe-events-calendar
2
/*
3
Plugin Name: The Events Calendar
4
Description: The Events Calendar is a carefully crafted, extensible plugin that lets you easily share your events. Beautiful. Solid. Awesome.
5
+ Version: 3.8.1
6
Author: Modern Tribe, Inc.
7
Author URI: http://m.tri.be/1x
8
Text Domain: tribe-events-calendar
views/modules/map.php CHANGED
@@ -12,6 +12,6 @@
12
13
defined( 'ABSPATH' ) or exit( '-1' );
14
15
- $style = apply_filters( 'tribe_events_embedded_map_style', "height: $height; width: $width; margin-bottom: 15px", $index );
16
?>
17
<div id="tribe-events-gmap-<?php esc_attr_e( $index ) ?>" style="<?php esc_attr_e( $style ) ?>"></div><!-- #tribe-events-gmap-<?php esc_attr_e( $index ) ?> -->
12
13
defined( 'ABSPATH' ) or exit( '-1' );
14
15
+ $style = apply_filters( 'tribe_events_embedded_map_style', "height: $height; width: $width", $index );
16
?>
17
<div id="tribe-events-gmap-<?php esc_attr_e( $index ) ?>" style="<?php esc_attr_e( $style ) ?>"></div><!-- #tribe-events-gmap-<?php esc_attr_e( $index ) ?> -->