/
home
/
faureele
/
extra-til
/
wp-content
/
uploads
/
dpProEventCalendar
/
js
/
Upload File
HOME
/* * jQuery DP Pro Event Calendar v3 * * Copyright 2012, Diego Pereyra * * @Web: http://www.dpereyra.com * @Email: info@dpereyra.com * * Depends: * jquery.js */ (function ($) { function DPProEventCalendar(element, options) { this.calendar = $(element); this.eventDates = $('.dp_pec_date', this.calendar); /* Setting vars*/ this.settings = $.extend({}, $.fn.dpProEventCalendar.defaults, options); this.category = ''; this.location = ''; this.cache = new Array; this.cache_param = ''; this.view = "monthly"; this.grid = undefined; this.monthlyView = "calendar"; this.type = 'calendar'; this.defaultDate = 0; this.startTime = 0; this.init(); } DPProEventCalendar.prototype = { init : function(){ var instance = this; instance.init_tooltips(); $(document).on('click', '.dpProEventCalendar_close_modal_btn', function(e) { $('.dpProEventCalendarModal, .dpProEventCalendarOverlay').fadeOut('fast'); $('body, html').css('overflow', ''); }); if(instance.settings.type == 'single_page') { instance.create_overlay(); instance.create_book_event(); instance.create_event_modal(true); instance.make_event_form_work(instance.calendar); instance.open_options(); instance.remove_event(); instance.starts_in(); return; } var pec_new_event_captcha; instance.view = instance.settings.view; instance.defaultDate = instance.settings.defaultDate; if(instance.settings.type == 'compact') { instance.view = "monthly"; } if(instance.settings.type == 'carousel-2' || instance.settings.type == 'carousel-3') { instance.settings.type = 'carousel'; } if(instance.settings.type == 'slider-2' || instance.settings.type == 'slider-3') { instance.settings.type = 'slider'; } if(instance.settings.type == 'countdown') { if($('.dp_pec_countdown_event', instance.calendar).length) { $('.dp_pec_countdown_event', instance.calendar).each(function() { var launchDateFix = new Date( $(this).data('countdown-year'), ($(this).data('countdown-month') - 1), $(this).data('countdown-day'), $(this).data('countdown-hour'), $(this).data('countdown-minute') ); var currentDate = new Date( $(this).data('current-year'), ($(this).data('current-month') - 1), $(this).data('current-day'), $(this).data('current-hour'), $(this).data('current-minute'), $(this).data('current-second') ); instance._setup_countdown(launchDateFix, currentDate, this, $(this).data('countdown-tzo')); }); } } $(instance.calendar).not('.dp_pec_compact_wrapper').addClass(instance.settings.skin); instance._makeResponsive(); instance.create_overlay(); instance.create_book_event(); if($('.pec_upcoming_layout', instance.calendar).length) { instance.create_isotope( '.pec_upcoming_layout' ); /* $(".pec_upcoming_layout .dp_pec_event_photo img", instance.calendar).one("load", function() { instance.grid.isotope('layout'); }).each(function() { if(this.complete) $(this).load(); });*/ instance.create_event_modal(true); } $(instance.calendar).on('click', '.prev_month', function(e) { instance._prevMonth(instance); }); if(instance.settings.dateRangeStart && instance.settings.dateRangeStart.substr(0, 7) == instance.settings.actualYear+"-"+instance._str_pad(instance.settings.actualMonth, 2, "0", 'STR_PAD_LEFT') && !instance.settings.isAdmin) { $('.prev_month', instance.calendar).hide(); } $(instance.calendar).on('click', '.next_month', function(e) { instance._nextMonth(instance); }); if(instance.settings.dateRangeEnd && instance.settings.dateRangeEnd.substr(0, 7) == instance.settings.actualYear+"-"+instance._str_pad(instance.settings.actualMonth, 2, "0", 'STR_PAD_LEFT') && !instance.settings.isAdmin) { $('.next_month', instance.calendar).hide(); } $('.prev_day', instance.calendar).click(function(e) { instance._prevDay(instance); }); $('.next_day', instance.calendar).click(function(e) { instance._nextDay(instance); }); $('.prev_week', instance.calendar).click(function(e) { instance._prevWeek(instance); }); $('.next_week', instance.calendar).click(function(e) { instance._nextWeek(instance); }); if(instance.settings.type == "add-event") { instance.make_event_form_work(instance.calendar); instance.create_datepicker(instance.calendar); } if(instance.settings.type == "grid-upcoming") { // Functions for Grid Layout $(instance.calendar).on('click', '.dp_pec_grid_event', function() { //$('.dp_pec_grid_link_image', $(this).closest('.dp_pec_grid_event')).attr('target', '_blank'); $('.dp_pec_grid_link_image', $(this))[0].click(); }) } if(instance.settings.type == "accordion") { instance.create_event_modal(true); instance.make_event_form_work(instance.calendar); } if(instance.settings.type == "list-author") { instance.create_event_modal(true); instance.make_event_form_work(instance.calendar); } if(instance.settings.type == "yearly") { // Functions for Grid Layout $(instance.calendar).on('click', '.next_year, .prev_year', function(event) { $('.dp_pec_yearly_calendar', instance.calendar).addClass( 'dp_pec_content_loading' ); var year_header = $('h3', $(this).closest('.dp_pec_yearly_header')); if($(this).hasClass('next_year')) { year_header.html(parseInt(instance.settings.actualYear) + 1); instance.settings.actualYear++; } else { year_header.html(parseInt(instance.settings.actualYear) - 1); instance.settings.actualYear--; } var params = { year: instance.settings.actualYear, calendar: instance.settings.calendar, category: (instance.settings.category != "" ? instance.settings.category : $('select.pec_categories_list', instance.calendar).val()), location: (instance.settings.location != "" ? instance.settings.location : $('select.pec_location_list', instance.calendar).val()), is_admin: instance.settings.isAdmin, event_id: instance.settings.event_id, author: instance.settings.author, include_all_events: instance.settings.include_all_events, modal: instance.settings.modal, hide_old_dates: instance.settings.hide_old_dates, type: instance.settings.type, action: 'getYear', postEventsNonce : ProEventCalendarAjax.postEventsNonce }; instance.cache_param = JSON.stringify(params); if(typeof instance.cache[instance.cache_param] != 'undefined') { instance._get_year( instance.cache[instance.cache_param] ); } else { $.post(ProEventCalendarAjax.ajaxurl, params, function(data) { instance._get_year(data); }); } event.preventDefault(); return false; }); $(instance.calendar).on('click', '.dp_pec_yearly_calendar_month_date.pec_has_events', function(event) { var position = $(this).closest('.dp_pec_yearly_calendar_month_date').offset(); var eventsPreview = $(this).find('.pec_yearly_eventsPreview'); eventsPreview.removeClass('previewRight'); if(position && position.left + eventsPreview.outerWidth() >= $( window ).width()) { eventsPreview.addClass('previewRight'); } eventsPreview.toggle(); }); $(document).mouseup(function(e) { var container = $(".pec_yearly_eventsPreview", instance.calendar); container.hide(); }); } if(instance.settings.type == "carousel") { // Functions for carousel layout var carousel_items = $('.dp_pec_carousel_item', instance.calendar); const carousel_columns = parseInt(instance.settings.columns); $(instance.calendar).on('click', '.dp_pec_carousel_nav a', function(e) { e.preventDefault(); const nav_last = $('.dp_pec_carousel_active', instance.calendar).data('pec-nav'); $('.dp_pec_carousel_nav a', instance.calendar).removeClass('dp_pec_carousel_active'); $(this).addClass('dp_pec_carousel_active'); const nav = $(this).data('pec-nav'); const nav_start = nav * carousel_columns; const nav_start_first = (nav + 1) * carousel_columns; var visible_carousel_item = $('.dp_pec_carousel_item_visible', instance.calendar); visible_carousel_item.removeClass('dp_pec_carousel_item_visible dp_pec_carousel_item_animation_left dp_pec_carousel_item_animation_right'); if( nav < nav_last) { var item_to_show = carousel_items.slice( (nav_start_first - carousel_columns), nav_start_first ); item_to_show.addClass('dp_pec_carousel_item_visible dp_pec_carousel_item_animation_right'); } else { var item_to_show = carousel_items.slice( nav_start, (nav_start + carousel_columns) ); item_to_show.addClass('dp_pec_carousel_item_visible dp_pec_carousel_item_animation_left'); } }) instance.create_event_modal(true); instance.make_event_form_work(instance.calendar); } if(instance.settings.type == "slider") { // Functions for Slider layout var slider_items = $('.dp_pec_slider_item', instance.calendar); var slider_loop = $(instance.calendar).hasClass('dp_pec_slider_loop'); $(instance.calendar).on('click', '.dp_pec_slider_prev', function() { $('.dp_pec_slider_next', instance.calendar).show(); var visible_slider_item = $('.dp_pec_slider_item_visible', instance.calendar); var slider_item_prev = visible_slider_item.prev(); // Loop? if(slider_loop) { if(typeof slider_item_prev[0] == 'undefined') { slider_item_prev = slider_items.last(); } } else { if(slider_item_prev.is(':first-child')) $(this).hide(); } slider_item_prev.addClass('dp_pec_slider_item_visible dp_pec_slider_item_animation_right'); visible_slider_item.removeClass('dp_pec_slider_item_visible dp_pec_slider_item_animation_left dp_pec_slider_item_animation_right'); }) $(instance.calendar).on('click', '.dp_pec_slider_next', function() { $('.dp_pec_slider_prev', instance.calendar).show(); var visible_slider_item = $('.dp_pec_slider_item_visible', instance.calendar); var slider_item_next = visible_slider_item.next(); // Loop? if(slider_loop) { if(typeof slider_item_next[0] == 'undefined') { slider_item_next = slider_items.first(); } } else { if(slider_item_next.is(':last-child')) $(this).hide(); } slider_item_next.addClass('dp_pec_slider_item_visible dp_pec_slider_item_animation_left'); visible_slider_item.removeClass('dp_pec_slider_item_visible dp_pec_slider_item_animation_left dp_pec_slider_item_animation_right'); }) instance.create_event_modal(true); instance.make_event_form_work(instance.calendar); } if(instance.settings.type == "timeline") { // Functions for Card layout var tl_left = 0; var tl_direction = ''; if( !instance.isMobile() ) { $(".dp_pec_timeline_drag", instance.calendar).draggable({ axis: "x", cancel: ".dp_pec_timeline_date_mark, .dp_pec_timeline_date_popup", drag: function( event, ui) { var position = ui.position; //ui.originalPosition.left = 0; if( position.left < tl_left ) { tl_direction = 'left'; } else if( position.left > tl_left ) { tl_direction = 'right'; } tl_left = position.left; $( this ).draggable( 'option', 'revert', false ); if(tl_left > 0) { //$(this).css('left', 0); ui.originalPosition.left = -20; $( this ).draggable( 'option', 'revert', true ).trigger( 'mouseup' ); } var outerWidth = $(this).outerWidth(); var outerWidth_parent = $(this).parent().outerWidth(); if(outerWidth_parent + ( tl_left * -1 ) > outerWidth) { ui.originalPosition.left = tl_left + 50; $( this ).draggable( 'option', 'revert', true ).trigger( 'mouseup' ); } }, stop: function () { //console.log('end' + tl_direction); } }); } else { var pos, isDragging = false; $(instance.calendar).pec_touch({ // Turn on document tracking for smoother dragging. trackDocument: true, // Set drag threshold to zero for maximum drag sensitivity. dragThreshold: 0, // Set drag delay to zero for fastest drag response. dragDelay: 0, // Delegate touch events to items. delegateSelector: '.dp_pec_timeline_drag', // Lower tap and hold delay. tapAndHoldDelay: 0, // Prevent default events for drag events. preventDefault: { drag: false } }).on('dragStart tapAndHold', '.dp_pec_timeline_drag', function(event) { // Stop propagation. event.stopPropagation(); // Vars. var $this = $(this); if(typeof pos == 'undefined') pos = $this.offset(); // Already dragging? Bail. if (isDragging) return; // Set dragging state. isDragging = true; // Mark as dragging. $this.addClass('pec-is-dragging'); }) .on('drag', '.dp_pec_timeline_drag', function(event, o) { // Stop propagation. event.stopPropagation(); // Vars. var $this = $(this); var tl_left = (( o.x - o.exStart) - (pos.left) ); //$( this ).draggable( 'option', 'revert', false ); if(tl_left > 0) { //$(this).css('left', 0); //ui.originalPosition.left = -20; //$( this ).draggable( 'option', 'revert', true ).trigger( 'mouseup' ); $( this ).trigger( 'mouseup' ); if( !instance.isMobile() ) { $this.animate({ left: "-=20" }, 500); } return false; } var outerWidth = $(this).outerWidth(); var outerWidth_parent = $(this).parent().outerWidth(); if(outerWidth_parent + ( tl_left * -1 ) > outerWidth) { //ui.originalPosition.left = tl_left + 50; //$( this ).draggable( 'option', 'revert', true ).trigger( 'mouseup' ); $( this ).trigger( 'mouseup' ); if( !instance.isMobile() ) { $this.animate({ left: "+=50" }, 500); } return false; } // Update position. $this .css('left', tl_left + 'px'); }).on('dragEnd tapAndHoldEnd', '.dp_pec_timeline_drag', function(event) { // Stop propagation. event.stopPropagation(); // Vars. var $this = $(this); // Clear dragging state. isDragging = false; // Unmark as dragging. $this.removeClass('pec-is-dragging'); }); } $(instance.calendar).on('click', '.dp_pec_timeline_date_separator', function( e ) { if($(e.target).hasClass('dp_pec_timeline_date_mark')) { $elem = $(this).closest('.dp_pec_timeline_date_separator'); } else { $elem = $(this); } const has_class = $elem.hasClass('dp_pec_timeline_date_active'); $('.dp_pec_timeline_date_separator', instance.calendar).removeClass('dp_pec_timeline_date_active'); if(!has_class) { $elem.addClass('dp_pec_timeline_date_active'); } }); } if(instance.settings.type == "card") { // Functions for Card layout $(instance.calendar).on('click', '.dp_pec_card_event:not(.dp_pec_card_active)', function() { $('.dp_pec_card_event', $(this).parent()).removeClass('dp_pec_card_active'); $(this).addClass('dp_pec_card_active'); // Open card Data $('.dp_pec_card_selected h3', $(this).closest('.dp_pec_card_wrapper')).text($(this).data('event-title')); var location =$(this).data('event-location'); if(location == ""){ $('.dp_pec_card_selected .dp_pec_card_location', $(this).closest('.dp_pec_card_wrapper')).hide(); } else { $('.dp_pec_card_selected .dp_pec_card_location', $(this).closest('.dp_pec_card_wrapper')).show(); } $('.dp_pec_card_selected .dp_pec_card_location span', $(this).closest('.dp_pec_card_wrapper')).text(location); $('.dp_pec_card_selected .dp_pec_card_time span', $(this).closest('.dp_pec_card_wrapper')).text($(this).data('event-time')); $('.dp_pec_card_selected', $(this).closest('.dp_pec_card_wrapper')).css('background-image', 'url(' + $(this).data('event-background') + ')'); $('.dp_pec_card_selected_foot a', $(this).closest('.dp_pec_card_wrapper')).attr('href', $(this).data('event-link')); $('.dp_pec_card_selected', $(this).closest('.dp_pec_card_wrapper')).css('opacity', 0).stop().animate( {opacity:1}, {duration:500}); }) } $(instance.calendar).on('click', '.dp_pec_event_description_more', function(e) { if( $(this).attr('href') == '#' ) { e.preventDefault(); $(this).closest('.dp_pec_event_description').addClass('dp_pec_event_description_full'); if(typeof instance.grid != "undefined") { instance.grid.isotope('layout'); } } }); if( !instance.settings.isAdmin ) { $( instance.calendar ).on({ mouseenter: function(e) { if($('.dp_pec_content', instance.calendar).hasClass('dp_pec_content_loading')) return; if(!$('.eventsPreviewDiv').length) { $('body').append($('<div />').addClass('eventsPreviewDiv')); } $('.eventsPreviewDiv').removeClass('pec_skin_light pec_skin_dark').addClass(instance.settings.skin); $('.eventsPreviewDiv').html($('.eventsPreview', $(this)).html()); /*$(this).off( "mouseenter mouseenter", ".dp_daily_event:not(.dp_daily_event_show_more)"); $(this).off( "mouseenter mouseenter", ".dp_daily_event.dp_daily_event_show_more"); */ if($('.eventsPreviewDiv').html() != "" && !$('.dp_daily_event', instance.calendar).is(':visible')) { $('.eventsPreviewDiv').fadeIn('fast'); } $('.eventsPreviewDiv ul li').removeClass('dp_pec_preview_event').show(); }, mouseleave: function() { if(!$('.dp_daily_event', instance.calendar).is(':visible')) { $('.eventsPreviewDiv').html('').stop().hide(); } /* $(this).off( "mouseenter mouseenter", ".dp_daily_event:not(.dp_daily_event_show_more)"); $(this).off( "mouseenter mouseenter", ".dp_daily_event.dp_daily_event_show_more"); */ } }, '.dp_pec_date:not(.disabled)' ).bind('mousemove', function(e){ if($('.eventsPreviewDiv').html() != "") { var body_pos = $("body").css('position'); if(body_pos == "relative") { $("body").css('position', 'static'); } $('.eventsPreviewDiv').removeClass('previewRight'); var position = $(e.target).closest('.dp_pec_date').offset(); var target_height = $(e.target).closest('.dp_pec_date').height(); if(typeof position != "undefined") { $('.eventsPreviewDiv').css({ left: position.left, top: position.top, marginTop: (target_height + 12) + "px", marginLeft: (position.left + $('.eventsPreviewDiv').outerWidth() >= $( window ).width() ? -($('.eventsPreviewDiv').outerWidth() - 30) + "px" : 0) }); } if(position && position.left + $('.eventsPreviewDiv').outerWidth() >= $( window ).width()) { $('.eventsPreviewDiv').addClass('previewRight'); } } }); $(instance.calendar).on({ mouseenter: function(e) { if($('.dp_pec_content', instance.calendar).hasClass('dp_pec_content_loading')) return; $('.eventsPreviewDiv ul li').hide(); var event_id = $(e.target).data('dppec-event'); if(typeof event_id == "undefined") { event_id = $(e.target).closest('.dp_daily_event').data('dppec-event') } $(".eventsPreviewDiv ul").find("li[data-dppec-event='" + event_id + "']").addClass('dp_pec_preview_event').show(); if($('.eventsPreviewDiv').html() != "") { $('.eventsPreviewDiv').fadeIn('fast'); } }, mouseleave: function() { $('.eventsPreviewDiv ul li').removeClass('dp_pec_preview_event').show(); $('.eventsPreviewDiv').stop().hide(); } }, '.dp_daily_event:not(.dp_daily_event_show_more)'); $(instance.calendar).on({ mouseenter: function(e) { if($('.dp_pec_content', instance.calendar).hasClass('dp_pec_content_loading')) return; $('.eventsPreviewDiv ul li').hide(); $(".eventsPreviewDiv ul li:gt("+( instance.settings.calendar_per_date - 1 )+")").addClass('dp_pec_preview_event').show(); if($('.eventsPreviewDiv').html() != "") { $('.eventsPreviewDiv').fadeIn('fast'); } }, mouseleave: function() { $('.eventsPreviewDiv ul li').removeClass('dp_pec_preview_event').show(); $('.eventsPreviewDiv').stop().hide(); } }, '.dp_daily_event.dp_daily_event_show_more'); $(instance.calendar).on('mouseup', '.dp_pec_date:not(.disabled)', function(event) { if(($(event.target).hasClass('dp_daily_event') || $(event.target).parent().hasClass('dp_daily_event') ) && (!$(event.target).hasClass('dp_daily_event_show_more'))) { return; } if(instance.settings.type == "modern") { if($(event.target).hasClass('dp_daily_event_show_more')) { $('.dp_daily_event', $(this)).show(); $('.dp_daily_event_show_more', $(this)).hide(); } return; } if(instance.calendar.hasClass('dp_pec_daily')) { return; } if(instance.calendar.hasClass('dp_pec_weekly')) { return; } if(instance.settings.event_id != '' && $('.dp_pec_form_desc').length) { if( !$(this).find('.dp_book_event_radio').length ) { return; } $('.dp_book_event_radio', instance.calendar).removeClass('dp_book_event_radio_checked'); $(this).find('.dp_book_event_radio').addClass('dp_book_event_radio_checked'); $('#pec_event_page_book_date', '.dpProEventCalendarModal').val($(this).data('dppec-date')); return; } if(!$('.dp_pec_content', instance.calendar).hasClass('isDragging') && (event.which === 1 || event.which === 0)) { //instance._goToByScroll($(instance.calendar)); instance._removeElements(); var params = { date: $(this).data('dppec-date'), calendar: instance.settings.calendar, category: (instance.settings.category != "" ? instance.settings.category : $('select.pec_categories_list', instance.calendar).val()), location: (instance.settings.location != "" ? instance.settings.location : $('select.pec_location_list', instance.calendar).val()), event_id: instance.settings.event_id, calendar_per_date: instance.settings.calendar_per_date, author: instance.settings.author, include_all_events: instance.settings.include_all_events, modal: instance.settings.modal, hide_old_dates: instance.settings.hide_old_dates, type: instance.settings.type, action: 'getEvents', postEventsNonce : ProEventCalendarAjax.postEventsNonce }; instance.cache_param = JSON.stringify(params); if(typeof instance.cache[instance.cache_param] != 'undefined') { instance._get_events( instance.cache[instance.cache_param] ); } else { $.post(ProEventCalendarAjax.ajaxurl, params, function(data) { instance._get_events(data); }); } } }); $(instance.calendar).on('click', '.dp_pec_date_event_image_zoom', function(event) { if((event.which === 1 || event.which === 0)) { if(typeof $(this).data('img-url') != 'undefined') { $('body').append($('<img>').addClass('dpProEventCalendar_Image').attr('src', $(this).data('img-url')).fadeIn(300).click(function(event) { if((event.which === 1 || event.which === 0)) { instance.close_modal(); } })); instance.show_overlay(); } } }); $(instance.calendar).on('click', '.dp_daily_event:not(.dp_daily_event_show_more)', function(event) { if((event.which === 1 || event.which === 0)) { if(instance.settings.modal) { event.preventDefault(); instance._open_event( $(this).data('dppec-event'), $(this).data('dppec-date')); return false; } if($(this).attr('href') != "javascript:void(0);" && $(this).attr('href') != "#") { //event.preventDefault(); //return false; } else { instance._removeElements(); var params = { event: $(this).data('dppec-event'), calendar: instance.settings.calendar, date:$(this).data('dppec-date'), action: 'getEvent', postEventsNonce : ProEventCalendarAjax.postEventsNonce }; instance.cache_param = JSON.stringify(params); if( instance.isMobile() ) { instance._goToByScroll( instance.calendar ); } if(typeof instance.cache[instance.cache_param] != 'undefined') { instance._get_event( instance.cache[instance.cache_param] ); } else { $.post(ProEventCalendarAjax.ajaxurl, params, function(data) { instance._get_event(data); }); } event.preventDefault(); return false; } } }); } $(instance.calendar).on('click', '.dp_pec_date_event_back', function(event) { event.preventDefault(); instance._removeElements(); instance._changeLayout(); }); $(instance.calendar).on({ 'mouseenter': function(i) { $('.dp_pec_user_rate li a').addClass('is-off'); for(var x = $(this).data('rate-val'); x > 0; x--) { $('.dp_pec_user_rate li a[data-rate-val="'+x+'"]', instance.calendar).removeClass('is-off').addClass('is-on'); } }, 'mouseleave': function() { $('.dp_pec_user_rate li a', instance.calendar).removeClass('is-on'); $('.dp_pec_user_rate li a', instance.calendar).removeClass('is-off'); }, 'click': function() { $('.dp_pec_user_rate', instance.calendar).replaceWith($('<div>').addClass('dp_pec_loading').attr({ id: 'dp_pec_loading_rating' })); jQuery.post(ProEventCalendarAjax.ajaxurl, { event_id: $(this).data('event-id'), rate: $(this).data('rate-val'), calendar: instance.settings.calendar, action: 'ProEventCalendar_RateEvent', postEventsNonce : ProEventCalendarAjax.postEventsNonce }, function(data) { $('#dp_pec_loading_rating', instance.calendar).replaceWith(data); } ); return false; } }, '.dp_pec_user_rate li a'); $('.dpProEventCalendar_subscribe', instance.calendar).click(function(e) { e.preventDefault(); $('body, html').css('overflow', 'hidden'); var mailform = $(this).next('.dpProEventCalendar_subscribe_form'); if($('.dpProEventCalendarModal').length) { $('.dpProEventCalendarModal').remove() } if(!$('.dpProEventCalendarModal').length) { $('body').append( $('<div>').addClass('dpProEventCalendarModal').prepend( $('<h2>').text(instance.settings.lang_subscribe).append( $('<a>').addClass('dpProEventCalendarClose').attr({ 'href': '#' }).html('<i class="fa fa-times"></i>') ) ).append( $('<div>').addClass('dpProEventCalendar_mailform').html( mailform.html() ) ).show() ); instance.show_overlay(); //dpShareLoadEvents(); } else { $('.dpProEventCalendarModal .pec_book_select_date, .dpProEventCalendarModal .dpProEventCalendar_mailform').remove(); $('.dpProEventCalendarModal').append( $('<div>').addClass('dpProEventCalendar_mailform').html(mailform.html()) ) $('.dpProEventCalendarModal, .dpProEventCalendarOverlay').removeAttr('style').show(); } var $modal = $('.dpProEventCalendarModal'); $('.dpProEventCalendar_subscribe_form', '.dpProEventCalendarModal').show(); //Close modals instance.close_button($modal); if(ProEventCalendarAjax.recaptcha_enable && ProEventCalendarAjax.recaptcha_site_key != "") { var pec_subscribe_captcha; pec_subscribe_captcha = grecaptcha.render($('#pec_subscribe_captcha', '.dpProEventCalendarModal')[0], { 'sitekey' : ProEventCalendarAjax.recaptcha_site_key }); } $('.dpProEventCalendar_send', '.dpProEventCalendarModal').click(function(e) { e.preventDefault(); $(this).prop('disabled', true); $('.dpProEventCalendar_sending_email', '.dpProEventCalendarModal').css('display', 'inline-block'); var post_obj = { your_name: $('#dpProEventCalendar_your_name', '.dpProEventCalendarModal').val(), your_email: $('#dpProEventCalendar_your_email', '.dpProEventCalendarModal').val(), calendar: instance.settings.calendar, action: 'ProEventCalendar_NewSubscriber', postEventsNonce : ProEventCalendarAjax.postEventsNonce } var captcha_error = false; if(ProEventCalendarAjax.recaptcha_enable && ProEventCalendarAjax.recaptcha_site_key != "") { post_obj.grecaptcharesponse = grecaptcha.getResponse(pec_subscribe_captcha); if(post_obj.grecaptcharesponse == "") { captcha_error = true; } } if( $('#dpProEventCalendar_your_name', '.dpProEventCalendarModal').val() != "" && $('#dpProEventCalendar_your_email', '.dpProEventCalendarModal').val() != "" && !captcha_error) { jQuery.post(ProEventCalendarAjax.ajaxurl, post_obj, function(data) { $('.dpProEventCalendar_send', '.dpProEventCalendarModal').prop('disabled', false); $('.dpProEventCalendar_sending_email', '.dpProEventCalendarModal').hide(); $('.dp_pec_notification_event_succesfull, .dp_pec_notification_event_error', '.dpProEventCalendarModal').hide(); $('.dp_pec_notification_event_succesfull', '.dpProEventCalendarModal').css('display', 'inline-block'); $('form', '.dpProEventCalendarModal')[0].reset(); if (typeof grecaptcha !== 'undefined') { grecaptcha.reset(pec_subscribe_captcha); } } ); } else { $(this).prop('disabled', false); $('.dpProEventCalendar_sending_email', '.dpProEventCalendarModal').hide(); $('.dp_pec_notification_event_succesfull, .dp_pec_notification_event_error', '.dpProEventCalendarModal').hide(); $('.dp_pec_notification_event_error', '.dpProEventCalendarModal').css('display', 'inline-block'); } }); $("input, textarea", '.dpProEventCalendarModal').placeholder(); }); $('.dp_pec_references', instance.calendar).click(function(e) { e.preventDefault(); if(!$(this).hasClass('active')) { $(this).addClass('active'); $('.dp_pec_references_div', instance.calendar).slideDown('fast'); } else { $(this).removeClass('active'); $('.dp_pec_references_div', instance.calendar).slideUp('fast'); } }); $(instance.calendar).on('click', '.dp_pec_open_map', function(e) { e.preventDefault(); instance.show_overlay(); instance.open_map(this); }); instance.open_options(); if(instance.monthlyView == "calendar") { var dppec_date = $('.dp_pec_content', instance.calendar).find(".dp_pec_date[data-dppec-date='" + instance.settings.defaultDateFormat + "']"); if(typeof dppec_date.attr('style') == 'undefined' && instance.settings.show_current_date && instance.settings.current_date_color != "") { dppec_date.addClass('dp_pec_special_date'); $('.dp_pec_date_item, .dp_special_date_dot', dppec_date).css('background-color', instance.settings.current_date_color); } } $('.dp_pec_view_all', instance.calendar).click(function(event) { event.preventDefault(); if(!$('.dp_pec_content', instance.calendar).hasClass('isDragging') && (event.which === 1 || event.which === 0)) { if(instance.monthlyView == "calendar") { $(this).html($(this).data('translation-calendar')); instance.monthlyView = "list"; } else { $(this).html($(this).data('translation-list')); instance.monthlyView = "calendar"; } instance._changeMonth(); } }); $('.dp_pec_search_btn', instance.calendar).click(function(event) { event.preventDefault(); if((event.which === 1 || event.which === 0)) { instance.show_search(false); } }); $('.dp_pec_search_close', instance.calendar).click(function(event) { event.preventDefault(); if((event.which === 1 || event.which === 0)) { instance.show_search(false); } }); if(instance.settings.selectric) { $('.dp_pec_layout select, .dp_pec_add_form select, .dp_pec_nav select, .dp_pec_accordion_wrapper select', instance.calendar).selectric(); } $(window).bind('unload', function(e){ $('.dp_pec_nav .selectric-wrapper', instance.calendar).remove(); }); if(instance.view == "monthly-all-events" && instance.settings.type != "accordion" && instance.settings.type != "accordion-upcoming" && instance.settings.type != "add-event" && instance.settings.type != "list-author" && instance.settings.type != "grid" && instance.settings.type != "grid-upcoming" && instance.settings.type != "card" && instance.settings.type != "slider" && instance.settings.type != "carousel" && instance.settings.type != "compact-upcoming" && instance.settings.type != "list-upcoming" && instance.settings.type != "gmaps-upcoming" && instance.settings.type != "today-events" && instance.settings.type != "bookings-user" && instance.settings.type != "past" && instance.settings.type != "compact" && instance.settings.type != "modern" && instance.settings.type != "countdown") { $('.dp_pec_view_all', instance.calendar).addClass('active'); instance.monthlyView = "list"; instance._changeMonth(); } $('.dp_pec_references_close', instance.calendar).click(function(e) { e.preventDefault(); $('.dp_pec_references', instance.calendar).removeClass('active'); $('.dp_pec_references_div', instance.calendar).slideUp('fast'); }); $('.dp_pec_search', instance.calendar).one('click', function(event) { $(this).val(""); }); if($('.dp_pec_accordion_event', instance.calendar).length) { $(instance.calendar).on('click', '.dp_pec_accordion_event', function(e) { if( $(e.target).hasClass('dp_pec_more_options') || $(e.target).hasClass('pec_event_page_book') || $(e.target).hasClass('fa-calendar') || $(e.target).hasClass('dp_pec_open_map') ) return; if(!$(this).hasClass('visible')) { if(e.target.className != "dp_pec_date_event_close" && e.target.className != "fa fa-close") { $('.dp_pec_accordion_event', instance.calendar).removeClass('visible'); $(this).addClass('visible'); //instance._goToByScroll($(this)); if(typeof instance.grid != "undefined") { instance.grid.isotope('layout'); } } } else { //$(this).removeClass('visible'); } }); $(instance.calendar).on('click', '.dp_pec_date_event_close', function(e) { $('.dp_pec_accordion_event', instance.calendar).removeClass('visible'); if(typeof instance.grid != "undefined") { instance.grid.isotope('layout'); } }); } if($('.dp_pec_view_action', instance.calendar).length) { $('.dp_pec_view_action', instance.calendar).click(function(e) { e.preventDefault(); $('.dp_pec_view_action', instance.calendar).removeClass('active'); $(this).addClass('active'); if(instance.view != $(this).data('pec-view')) { instance.view = $(this).data('pec-view'); instance._changeLayout(); } }); } instance.create_event_modal(false); if($('.dp_pec_cancel_event', instance.calendar).length) { $('.dp_pec_cancel_event', instance.calendar).click(function(e) { e.preventDefault(); $(this).hide(); $('.dp_pec_add_event', instance.calendar).show(); $('.dp_pec_add_form', instance.calendar).slideUp('fast'); $('.dp_pec_notification_event_succesfull', instance.calendar).hide(); }); } if($('.event_image', instance.calendar).length) { $(instance.calendar).on('change', '.event_image', function() { $('#event_image_lbl', $(this).parent()).val($(this).val().replace(/^.*[\\\/]/, '')); }); } instance.remove_event(); $(instance.calendar).on('click', '.pec_cancel_booking', function(e) { e.preventDefault(); $('body, html').css('overflow', 'hidden'); if(!$('.dpProEventCalendarModalEditEvent').length) { $('body').append( $('<div>').addClass('dpProEventCalendarModalEditEvent dpProEventCalendarModalSmall dp_pec_new_event_wrapper').prepend( $('<h2>').text($(this).text()).append( $('<a>').addClass('dpProEventCalendarClose').attr({ 'href': '#' }).html('<i class="fa fa-times"></i>') ) ).append( $('<div>').addClass('dpProEventCalendar_eventform').append($(this).next().children().clone(true)) ).show() ); instance.show_overlay(); } else { $('.dpProEventCalendar_eventform').html($(this).next().html()); $('.dpProEventCalendarModalEditEvent').addClass('dpProEventCalendarModalSmall'); $('.dpProEventCalendarModalEditEvent h2').text($(this).text()).append( $('<a>').addClass('dpProEventCalendarClose').attr({ 'href': '#' }).html('<i class="fa fa-times"></i>') ); $('.dpProEventCalendarModalEditEvent, .dpProEventCalendarOverlay').show(); } $modal = $('.dpProEventCalendarModalEditEvent'); instance.close_button($modal); $('.dpProEventCalendarModalEditEvent').on('click', '.dp_pec_cancel_booking', function(e) { e.preventDefault(); $(this).addClass('dp_pec_disabled'); var form = $(this).closest(".add_new_event_form"); var origName = $(this).html(); $(this).html(instance.settings.lang_sending); var me = this; var form = $(this).closest('form'); var post_obj = { calendar: instance.settings.calendar, action: 'cancelBooking', postEventsNonce : ProEventCalendarAjax.postEventsNonce } $(this).closest(".add_new_event_form").ajaxForm({ url: ProEventCalendarAjax.ajaxurl, data: post_obj, success:function(data){ $(me).html(origName); location.reload(); $(me).removeClass('dp_pec_disabled'); } }).submit(); }); }); function pec_createWindowNotification(text) { if(!$('.dpProEventCalendar_windowNotification').length) { $('body').append( $('<div>').addClass('dpProEventCalendar_windowNotification').text(text).show() ); } else { $('.dpProEventCalendar_windowNotification').removeClass('fadeOutDown').text(text).show(); } setTimeout(function() { $('.dpProEventCalendar_windowNotification').addClass('fadeOutDown'); }, 3000) } //if($('.dp_pec_submit_event', instance.calendar).length) { //$([instance.calendar, '.dpProEventCalendarModalEditEvent']).each(function() { instance.submit_event_hook(instance.calendar); //}); //} $('.dp_pec_search_form', instance.calendar).submit(function() { if($(this).find('.dp_pec_search').val() != "" && !$('.dp_pec_content', instance.calendar).hasClass( 'dp_pec_content_loading' )) { instance._removeElements(); $.post(ProEventCalendarAjax.ajaxurl, { key: $(this).find('.dp_pec_search').val(), calendar: instance.settings.calendar, columns: instance.settings.columns, calendar_per_date: instance.settings.calendar_per_date, author: instance.settings.author, action: 'getSearchResults', postEventsNonce : ProEventCalendarAjax.postEventsNonce }, function(data) { $('.dp_pec_content', instance.calendar).removeClass( 'dp_pec_content_loading' ).empty().html(data); instance.create_event_modal(true); instance.eventDates = $('.dp_pec_date', instance.calendar); instance.eventDates.hide().fadeIn(500); instance.create_isotope( '.dp_pec_search_results' ); } ); } return false; }); $('.dp_pec_icon_search', instance.calendar).click(function(e) { e.preventDefault(); if($(this).parent().find('.dp_pec_content_search_input').val() != "" && !$('.dp_pec_content', instance.calendar).hasClass( 'dp_pec_content_loading' )) { instance._removeElements(); var results_lang = $(this).data('results_lang'); $('.events_loading', instance.calendar).show(); $.post(ProEventCalendarAjax.ajaxurl, { key: $(this).parent().find('.dp_pec_content_search_input').val(), type: 'accordion', calendar: instance.settings.calendar, calendar_per_date: instance.settings.calendar_per_date, columns: instance.settings.columns, author: instance.settings.author, action: 'getSearchResults', postEventsNonce : ProEventCalendarAjax.postEventsNonce }, function(data) { instance.accordion_update_content( data ); $('.dp_pec_content', instance.calendar).removeClass( 'dp_pec_content_loading' ); $('.actual_month', instance.calendar).text(results_lang); $('.return_layout', instance.calendar).show(); $('.month_arrows', instance.calendar).hide(); $('.events_loading', instance.calendar).hide(); } ); } return false; }); $('.return_layout', instance.calendar).click(function() { $(this).hide(); $('.month_arrows', instance.calendar).show(); $('.dp_pec_content_search_input', instance.calendar).val(''); instance._changeMonth(); }); $(instance.calendar).on('click', '.dpProEventCalendar_load_more', function() { var items = $(this).parent().find('.dp_pec_isotope:not(.dp_pec_date_event_head,.dp_pec_date_block_wrap):hidden').slice(0,$(this).data('pagination')); items.show(); $(this).parent().find('.dp_pec_isotope:not(.dp_pec_date_event_head):visible:last').prevAll('.dp_pec_date_block_wrap').show(); /*$.each($(this).parent().find('.dp_pec_isotope:not(.dp_pec_date_event_head)'), function(index) { if($(this).is(':visible')) { $(this).prevAll('.dp_pec_date_block_wrap').show(); } });*/ if($(this).data('total') <= $(this).parent().find('.dp_pec_isotope:not(.dp_pec_date_event_head,.dp_pec_date_block_wrap):visible').length) { $(this).hide(); } if(typeof instance.grid != "undefined") { instance.grid.isotope('appended', items); } return false; }); $('.dp_pec_content_search_input', instance.calendar).keyup(function (e) { if (e.keyCode == 13) { // Do something $('.dp_pec_icon_search', instance.calendar).trigger('click'); } }); if($('.pec_categories_list', instance.calendar).length) { instance.category = $('.pec_categories_list', instance.calendar).val(); $('.pec_categories_list', instance.calendar).on('change', function() { if(instance.category == $(this).val()) { return false; } instance.category = $(this).val(); $('.dp_pec_search_form', instance.calendar).find('.dp_pec_search').val(''); if(instance.view == "monthly" || instance.view == "monthly-all-events") { instance._changeMonth(); } if(instance.view == "daily") { instance._changeDay(); } if(instance.view == "weekly") { instance._changeWeek(); } return false; }); } if($('.pec_location_list', instance.calendar).length) { instance.location = $('.pec_location_list', instance.calendar).val(); $('.pec_location_list', instance.calendar).on('change', function() { if(instance.location == $(this).val()) { return false; } instance.location = $(this).val(); $('.dp_pec_search_form', instance.calendar).find('.dp_pec_search').val(''); if(instance.view == "monthly" || instance.view == "monthly-all-events") { instance._changeMonth(); } if(instance.view == "daily") { instance._changeDay(); } if(instance.view == "weekly") { instance._changeWeek(); } return false; }); } $('.dp_pec_nav select.pec_switch_year', instance.calendar).on('change', function() { $('.dp_pec_search_form', instance.calendar).find('.dp_pec_search').val(''); instance.settings.actualYear = $(this).val(); instance._changeMonth(); return false; }); $('.dp_pec_nav select.pec_switch_month', instance.calendar).on('change', function() { $('.dp_pec_search_form', instance.calendar).find('.dp_pec_search').val(''); var changed_month = $(this).val(); if(changed_month.indexOf('-') !== -1) { var changed_month_split = changed_month.split('-'); instance.settings.actualYear = parseInt(changed_month_split[1], 10); changed_month = changed_month_split[0]; } for(i = 0; i < instance.settings.monthNames.length; i++) { if(instance.settings.monthNames[i] == changed_month) { instance.settings.actualMonth = i + 1; } } instance._changeMonth(); return false; }); }, _open_event : function ( event_id, date ) { var instance = this; instance.show_overlay(); if($('.dpProEventCalendarEventModal').length) { $('.dpProEventCalendarEventModal').remove() } $('body').append( $('<div>').addClass('dpProEventCalendarEventModal').prepend( $('<a>').addClass('dp_pec_close').attr({ 'href': '#' }).html(instance.settings.lang_close) ).show() ); const $modal = $('.dpProEventCalendarEventModal'); //Close modals instance.close_button($modal); var params = { calendar: instance.settings.calendar, event_id: event_id, date: date, action: 'getEventModal', postEventsNonce : ProEventCalendarAjax.postEventsNonce }; instance.cache_param = JSON.stringify(params); if(typeof instance.cache[instance.cache_param] != 'undefined') { instance._get_event_modal( instance.cache[instance.cache_param], $modal ); } else { $.post(ProEventCalendarAjax.ajaxurl, params, function(data) { instance._get_event_modal(data, $modal); }); } }, isMobile : function () { return ('ontouchstart' in document.documentElement); }, _get_event_modal : function (data, modal) { var instance = this; if(typeof instance.cache[instance.cache_param] == 'undefined') instance.cache[instance.cache_param] = data; modal.append( data ); }, _goToByScroll : function(id){ // Scroll $('html,body').animate({ scrollTop: (id.offset().top - 30)}, 'slow'); }, _pec_update_location : function(val, elem) { var instance = this; jQuery('.pec_location_options', elem).hide(); switch(val) { case "-1": jQuery(".pec_location_options", elem).show(); break; } }, _pec_update_frequency : function(val, elem) { jQuery('.pec_daily_frequency', elem).hide(); jQuery('.pec_weekly_frequency', elem).hide(); jQuery('.pec_monthly_frequency', elem).hide(); switch(val) { case "1": jQuery(".pec_daily_frequency", elem).show(); jQuery(".pec_weekly_frequency", elem).hide(); jQuery(".pec_monthly_frequency", elem).hide(); break; case "2": jQuery(".pec_daily_frequency", elem).hide(); jQuery(".pec_weekly_frequency", elem).show(); jQuery(".pec_monthly_frequency", elem).hide(); break; case "3": jQuery(".pec_daily_frequency", elem).hide(); jQuery(".pec_weekly_frequency", elem).hide(); jQuery(".pec_monthly_frequency", elem).show(); break; case "4": jQuery(".pec_daily_frequency", elem).hide(); jQuery(".pec_weekly_frequency", elem).hide(); jQuery(".pec_monthly_frequency", elem).hide(); break; } }, _makeResponsive : function() { var instance = this; if(instance.calendar.width() < 500) { $(instance.calendar).addClass('dp_pec_400'); $('.dp_pec_dayname span', instance.calendar).each(function(i) { if($(this).closest('.dp_pec_responsive_weekly').length == 0) $(this).html($(this).html().substr(0,3)); }); $('.prev_month strong', instance.calendar).hide(); $('.next_month strong', instance.calendar).hide(); $('.prev_day strong', instance.calendar).hide(); $('.next_day strong', instance.calendar).hide(); } else { $(instance.calendar).removeClass('dp_pec_400'); $('.prev_month strong', instance.calendar).show(); $('.next_month strong', instance.calendar).show(); $('.prev_day strong', instance.calendar).show(); $('.next_day strong', instance.calendar).show(); } }, _removeElements : function () { var instance = this; $('.dpProEventCalendar_load_more', instance.calendar).hide(); $('.dp_pec_date, .dp_pec_date_weekly_time, .dp_pec_daily_grid, .dp_pec_dayname, .dp_pec_isotope', instance.calendar).fadeTo(500, .1); $('.dp_pec_monthly_row, .dp_pec_monthly_row_space, .dp_pec_responsive_weekly', instance.calendar).hide(); $('.dp_pec_content', instance.calendar).addClass( 'dp_pec_content_loading' ); $('.eventsPreviewDiv').html('').hide(); }, _prevMonth : function (instance) { if(!$('.dp_pec_content', instance.calendar).hasClass( 'dp_pec_content_loading' )) { instance.settings.actualMonth--; instance.settings.actualMonth = instance.settings.actualMonth == 0 ? 12 : (instance.settings.actualMonth); instance.settings.actualYear = instance.settings.actualMonth == 12 ? instance.settings.actualYear - 1 : instance.settings.actualYear; instance._changeMonth(); } }, _nextMonth : function (instance) { if(!$('.dp_pec_content', instance.calendar).hasClass( 'dp_pec_content_loading' )) { instance.settings.actualMonth++; instance.settings.actualMonth = instance.settings.actualMonth == 13 ? 1 : (instance.settings.actualMonth); instance.settings.actualYear = instance.settings.actualMonth == 1 ? instance.settings.actualYear + 1 : instance.settings.actualYear; instance._changeMonth(); } }, _prevDay : function (instance) { if(!$('.dp_pec_content', instance.calendar).hasClass( 'dp_pec_content_loading' )) { instance.settings.actualDay--; //instance.settings.actualDay = instance.settings.actualDay == 0 ? 12 : (instance.settings.actualDay); instance._changeDay(); } }, _nextDay : function (instance) { if(!$('.dp_pec_content', instance.calendar).hasClass( 'dp_pec_content_loading' )) { instance.settings.actualDay++; //instance.settings.actualDay = instance.settings.actualDay == 13 ? 1 : (instance.settings.actualDay); instance._changeDay(); } }, _prevWeek : function (instance) { if(!$('.dp_pec_content', instance.calendar).hasClass( 'dp_pec_content_loading' )) { instance.settings.actualDay -= 7; //instance.settings.actualDay = instance.settings.actualDay == 0 ? 12 : (instance.settings.actualDay); instance._changeWeek(); } }, _nextWeek : function (instance) { if(!$('.dp_pec_content', instance.calendar).hasClass( 'dp_pec_content_loading' )) { instance.settings.actualDay += 7; //instance.settings.actualDay = instance.settings.actualDay == 13 ? 1 : (instance.settings.actualDay); instance._changeWeek(); } }, _changeMonth : function () { var instance = this; //$('.dp_pec_content', instance.calendar).css({'overflow': 'hidden'}); $('.dp_pec_nav_monthly', instance.calendar).show(); $('.actual_month', instance.calendar).html( instance.settings.monthNames[(instance.settings.actualMonth - 1)] + ' ' + instance.settings.actualYear ); if($('.dp_pec_nav select.pec_switch_month', instance.calendar).length) { if($('.dp_pec_nav select.pec_switch_month', instance.calendar).val().indexOf('-') !== -1) { $('.dp_pec_nav select.pec_switch_month', instance.calendar).val(instance.settings.monthNames[(instance.settings.actualMonth - 1)]+'-'+instance.settings.actualYear); } else { $('.dp_pec_nav select.pec_switch_month', instance.calendar).val(instance.settings.monthNames[(instance.settings.actualMonth - 1)]); } } $('.dp_pec_nav select.pec_switch_year', instance.calendar).val(instance.settings.actualYear); $('.dp_pec_nav select', instance.calendar).selectric('refresh'); instance._removeElements(); //Hide search instance.show_search(true); if(instance.settings.dateRangeStart && instance.settings.dateRangeStart.substr(0, 7) == instance.settings.actualYear+"-"+instance._str_pad(instance.settings.actualMonth, 2, "0", 'STR_PAD_LEFT') && !instance.settings.isAdmin) { $('.prev_month', instance.calendar).hide(); } else { $('.prev_month', instance.calendar).show(); } if(instance.settings.dateRangeEnd && instance.settings.dateRangeEnd.substr(0, 7) == instance.settings.actualYear+"-"+instance._str_pad(instance.settings.actualMonth, 2, "0", 'STR_PAD_LEFT') && !instance.settings.isAdmin) { $('.next_month', instance.calendar).hide(); } else { $('.next_month', instance.calendar).show(); } var date_timestamp = Date.UTC(instance.settings.actualYear, (instance.settings.actualMonth - 1), 15) / 1000; if(instance.settings.type == "accordion") { $('.events_loading', instance.calendar).show(); var params = { month: instance.settings.actualMonth, year: instance.settings.actualYear, calendar: instance.settings.calendar, columns: instance.settings.columns, limit: instance.settings.limit, widget: instance.settings.widget, category: (instance.settings.category != "" ? instance.settings.category : $('select.pec_categories_list', instance.calendar).val()), location: (instance.settings.location != "" ? instance.settings.location : $('select.pec_location_list', instance.calendar).val()), event_id: instance.settings.event_id, author: instance.settings.author, include_all_events: instance.settings.include_all_events, modal: instance.settings.modal, hide_old_dates: instance.settings.hide_old_dates, action: 'getEventsMonthList', postEventsNonce : ProEventCalendarAjax.postEventsNonce }; instance.cache_param = JSON.stringify(params); if(typeof instance.cache[instance.cache_param] != 'undefined') { instance._get_events_month_list( instance.cache[instance.cache_param] ); } else { $.post(ProEventCalendarAjax.ajaxurl, params, function(data) { instance._get_events_month_list(data); }); } } else { if(instance.monthlyView == "calendar") { var start = new Date().getTime(); // note getTime() var params = { date: date_timestamp, calendar: instance.settings.calendar, category: (instance.settings.category != "" ? instance.settings.category : $('select.pec_categories_list', instance.calendar).val()), location: (instance.settings.location != "" ? instance.settings.location : $('select.pec_location_list', instance.calendar).val()), is_admin: instance.settings.isAdmin, event_id: instance.settings.event_id, calendar_per_date: instance.settings.calendar_per_date, author: instance.settings.author, include_all_events: instance.settings.include_all_events, modal: instance.settings.modal, hide_old_dates: instance.settings.hide_old_dates, type: instance.settings.type, action: 'getDate', postEventsNonce : ProEventCalendarAjax.postEventsNonce }; instance.cache_param = JSON.stringify(params); if(typeof instance.cache[instance.cache_param] != 'undefined') { instance._get_date( instance.cache[instance.cache_param] ); } else { $.post(ProEventCalendarAjax.ajaxurl, params, function(data) { instance._get_date(data); }); } } else { var params = { month: instance.settings.actualMonth, year: instance.settings.actualYear, calendar: instance.settings.calendar, category: (instance.settings.category != "" ? instance.settings.category : $('select.pec_categories_list', instance.calendar).val()), location: (instance.settings.location != "" ? instance.settings.location : $('select.pec_location_list', instance.calendar).val()), event_id: instance.settings.event_id, calendar_per_date: instance.settings.calendar_per_date, author: instance.settings.author, include_all_events: instance.settings.include_all_events, modal: instance.settings.modal, hide_old_dates: instance.settings.hide_old_dates, action: 'getEventsMonth', postEventsNonce : ProEventCalendarAjax.postEventsNonce }; instance.cache_param = JSON.stringify(params); if(typeof instance.cache[instance.cache_param] != 'undefined') { instance._get_events_month( instance.cache[instance.cache_param] ); } else { $.post(ProEventCalendarAjax.ajaxurl, params, function(data) { instance._get_events_month(data); }); } } } }, _get_events_month : function (data) { var instance = this; if(typeof instance.cache[instance.cache_param] == 'undefined') instance.cache[instance.cache_param] = data; instance.create_event_modal(true); $('.dp_pec_content', instance.calendar).removeClass( 'dp_pec_content_loading' ).empty().html(data); $(instance.calendar).removeClass('dp_pec_daily'); $(instance.calendar).removeClass('dp_pec_weekly'); $(instance.calendar).addClass('dp_pec_'+instance.view); $('.dp_pec_wrapper', instance.calendar).removeClass('dp_pec_daily'); $('.dp_pec_wrapper', instance.calendar).removeClass('dp_pec_weekly'); $('.dp_pec_wrapper', instance.calendar).addClass('dp_pec_'+instance.view); instance.eventDates = $('.dp_pec_date', instance.calendar); $('.dp_pec_date', instance.calendar).hide().fadeIn(500); instance._makeResponsive(); }, _get_events_month_list : function (data) { var instance = this; if(typeof instance.cache[instance.cache_param] == 'undefined') instance.cache[instance.cache_param] = data; $('.events_loading', instance.calendar).hide(); instance.accordion_update_content( data ); $('.dp_pec_content', instance.calendar).removeClass( 'dp_pec_content_loading' ); }, _get_date : function (data) { var instance = this; if(typeof instance.cache[instance.cache_param] == 'undefined') instance.cache[instance.cache_param] = data; $('.dp_pec_content', instance.calendar).removeClass( 'dp_pec_content_loading' ).empty().html(data); var dppec_date = $('.dp_pec_content', instance.calendar).find(".dp_pec_date[data-dppec-date='" + instance.settings.defaultDateFormat + "']"); var dppec_date_item = dppec_date.find('.dp_pec_date_item'); if(typeof dppec_date_item.attr('style') == 'undefined' && instance.settings.show_current_date && instance.settings.current_date_color != "") { dppec_date.addClass('dp_pec_special_date'); dppec_date_item.css('background-color', instance.settings.current_date_color); $('.dp_special_date_dot', dppec_date_item).css('background-color', instance.settings.current_date_color); } $(instance.calendar).removeClass('dp_pec_daily'); $(instance.calendar).removeClass('dp_pec_weekly'); $(instance.calendar).addClass('dp_pec_'+instance.view); $('.dp_pec_wrapper', instance.calendar).removeClass('dp_pec_daily'); $('.dp_pec_wrapper', instance.calendar).removeClass('dp_pec_weekly'); $('.dp_pec_wrapper', instance.calendar).addClass('dp_pec_'+instance.view); instance.eventDates = $('.dp_pec_date', instance.calendar); // Load time debug //console.log( end - start ); $('.dp_pec_date', instance.calendar).hide().show(); instance._makeResponsive(); }, _get_year : function (data) { var instance = this; if(typeof instance.cache[instance.cache_param] == 'undefined') instance.cache[instance.cache_param] = data; $('.dp_pec_yearly_calendar', instance.calendar).removeClass( 'dp_pec_content_loading' ).empty().html(data); instance._makeResponsive(); }, _get_events : function (data) { var instance = this; if(typeof instance.cache[instance.cache_param] == 'undefined') instance.cache[instance.cache_param] = data; instance.display_results_events( data ); }, _get_event : function (data) { var instance = this; if(typeof instance.cache[instance.cache_param] == 'undefined') instance.cache[instance.cache_param] = data; instance.display_results_events( data ); }, _changeDay : function () { var instance = this; $('.dp_pec_nav_daily', instance.calendar).show(); //$('span.actual_month', instance.calendar).html( instance.settings.monthNames[(instance.settings.actualMonth - 1)] + ' ' + instance.settings.actualYear ); instance._removeElements(); var date_timestamp = Date.UTC(instance.settings.actualYear, (instance.settings.actualMonth - 1), (instance.settings.actualDay)) / 1000; const daily_param = { date: date_timestamp, calendar: instance.settings.calendar, category: (instance.settings.category != "" ? instance.settings.category : $('select.pec_categories_list', instance.calendar).val()), location: (instance.settings.location != "" ? instance.settings.location : $('select.pec_location_list', instance.calendar).val()), event_id: instance.settings.event_id, calendar_per_date: instance.settings.calendar_per_date, author: instance.settings.author, columns: instance.settings.columns, include_all_events: instance.settings.include_all_events, modal: instance.settings.modal, hide_old_dates: instance.settings.hide_old_dates, is_admin: instance.settings.isAdmin, action: 'getDaily', postEventsNonce : ProEventCalendarAjax.postEventsNonce } instance.cache_param = JSON.stringify(daily_param); if(typeof instance.cache[instance.cache_param] != 'undefined') { instance._get_daily( instance.cache[instance.cache_param] ); } else { $.post(ProEventCalendarAjax.ajaxurl, daily_param, function(data) { instance._get_daily(data); }); } }, _get_daily : function(data) { var instance = this; if(typeof instance.cache[instance.cache_param] == 'undefined') instance.cache[instance.cache_param] = data; var newDate = data.substr(0, data.indexOf(">!]-->")).replace("<!--", ""); $('span.actual_day', instance.calendar).html( newDate ); $('.dp_pec_content', instance.calendar).removeClass( 'dp_pec_content_loading' ).empty().html(data); $(instance.calendar).removeClass('dp_pec_monthly'); $(instance.calendar).removeClass('dp_pec_weekly'); $(instance.calendar).addClass('dp_pec_daily'); $('.dp_pec_wrapper', instance.calendar).removeClass('dp_pec_monthly'); $('.dp_pec_wrapper', instance.calendar).removeClass('dp_pec_weekly'); $('.dp_pec_wrapper', instance.calendar).addClass('dp_pec_daily'); instance.eventDates = $('.dp_pec_date', instance.calendar); $('.dp_pec_date', instance.calendar).hide().show(); instance._makeResponsive(); }, _changeWeek : function () { var instance = this; $('.dp_pec_nav_weekly', instance.calendar).show(); //$('span.actual_month', instance.calendar).html( instance.settings.monthNames[(instance.settings.actualMonth - 1)] + ' ' + instance.settings.actualYear ); instance._removeElements(); var date_timestamp = Date.UTC(instance.settings.actualYear, (instance.settings.actualMonth - 1), (instance.settings.actualDay)) / 1000; const weekly_param = { date: date_timestamp, calendar: instance.settings.calendar, category: (instance.settings.category != "" ? instance.settings.category : $('select.pec_categories_list', instance.calendar).val()), location: (instance.settings.location != "" ? instance.settings.location : $('select.pec_location_list', instance.calendar).val()), event_id: instance.settings.event_id, author: instance.settings.author, calendar_per_date: instance.settings.calendar_per_date, include_all_events: instance.settings.include_all_events, modal: instance.settings.modal, hide_old_dates: instance.settings.hide_old_dates, is_admin: instance.settings.isAdmin, action: 'getWeekly', postEventsNonce : ProEventCalendarAjax.postEventsNonce }; instance.cache_param = JSON.stringify(weekly_param); if(typeof instance.cache[instance.cache_param] != 'undefined') { instance._get_weekly( instance.cache[instance.cache_param] ); } else { $.post(ProEventCalendarAjax.ajaxurl, weekly_param, function(data) { instance._get_weekly(data); }); } }, _get_weekly : function(data) { var instance = this; if(typeof instance.cache[instance.cache_param] == 'undefined') instance.cache[instance.cache_param] = data; var newDate = data.substr(0, data.indexOf(">!]-->")).replace("<!--", ""); $('span.actual_week', instance.calendar).html( newDate ); $('.dp_pec_content', instance.calendar).removeClass( 'dp_pec_content_loading' ).empty().html(data); $('.dp_daily_event', instance.calendar).each(function () { if($(this).width() > 0 && $(this).width() < 80) $(this).find('span').hide(); }); $(instance.calendar).removeClass('dp_pec_monthly'); $(instance.calendar).removeClass('dp_pec_daily'); $(instance.calendar).addClass('dp_pec_weekly'); $('.dp_pec_wrapper', instance.calendar).removeClass('dp_pec_monthly'); $('.dp_pec_wrapper', instance.calendar).removeClass('dp_pec_daily'); $('.dp_pec_wrapper', instance.calendar).addClass('dp_pec_weekly'); instance.eventDates = $('.dp_pec_date', instance.calendar); $('.dp_pec_date', instance.calendar).hide().show(); instance._makeResponsive(); }, _changeLayout : function () { var instance = this; instance._removeElements(); //Hide search instance.show_search(true); if(instance.settings.type != 'compact') { $('.dp_pec_nav', instance.calendar).hide(); } if(instance.view == "monthly" || instance.view == "monthly-all-events") { instance._changeMonth(); } if(instance.view == "daily") { instance._changeDay(); } if(instance.view == "weekly") { instance._changeWeek(); } }, display_results_events: function ( data ) { var instance = this; $('.dp_pec_content', instance.calendar).removeClass( 'dp_pec_content_loading' ).empty().html(data); instance.eventDates = $('.dp_pec_date', instance.calendar); $('.dp_pec_date', instance.calendar).hide().fadeIn(500); instance.create_event_modal(true); }, starts_in: function () { var instance = this; var elem = $('.pec_event_page_date', instance.calendar).find('span.pec_starts_in'); var launchDate = new Date( elem.data('countdown-year'), (elem.data('countdown-month') - 1), elem.data('countdown-day'), elem.data('countdown-hour'), elem.data('countdown-minute') ); var myTZO = elem.data('tzo'); var currentTime = new Date(), differenceTime; //var currentTime = new Date(currentDate.getTime()), differenceTime; currentTime_getTime = currentTime.getTime(); differenceTime = new Date(launchDate.getTime() - currentTime.getTime() + (1000 * 60 * ( myTZO - currentTime.getTimezoneOffset()))); //differenceTime = new Date(launchDate.getTime() - currentTime_getTime ); var d = Math.floor(Math.abs((launchDate.getTime() - currentTime.getTime() + (1000 * 60 * ( myTZO - currentTime.getTimezoneOffset()))) / (24*60*60*1000))); //var d = Math.floor(Math.abs((launchDate.getTime() - currentTime_getTime ) / (24*60*60*1000))); var h = differenceTime.getUTCHours(); var m = differenceTime.getUTCMinutes(); var started = false; if( differenceTime.getTime() < 0 ) { d = 0; h = 0; m = 0; started = true; } if(started) { $('.pec_event_page_date p.pec_event_page_date_starts_in', instance.calendar).hide(); } else { var string_format = ""; if(d > 0) { var days_txt = instance.settings.translate.days; if(d == 1) { days_txt = instance.settings.translate.day; } string_format += d + ' '+ days_txt +' '; } if(h > 0 && d == 0) { var hour_txt = instance.settings.translate.hours; if(h == 1) { hour_txt = instance.settings.translate.hour; } string_format += h + ' '+hour_txt+' '; } if(d == 0) { var minutes_txt = instance.settings.translate.minutes; if(m == 1) { minutes_txt = instance.settings.translate.minute; } string_format += m + ' '+minutes_txt; } $('.pec_event_page_date', instance.calendar).find('span.pec_starts_in').html( string_format ); } }, _setup_countdown: function (launchDate, currentDate, element, myTZO) { var instance = this; var seconds_sum = 0; setInterval(function(){ seconds_sum += 1000; //var currentTime = new Date(), differenceTime; var currentTime = new Date(currentDate.getTime()), differenceTime; currentTime_getTime = currentTime.getTime() + seconds_sum; //differenceTime = new Date(launchDate.getTime() - currentTime.getTime() + (1000 * 60 * ( myTZO - currentTime.getTimezoneOffset()))); differenceTime = new Date(launchDate.getTime() - currentTime_getTime ); //var d = Math.floor(Math.abs((launchDate.getTime() - currentTime.getTime() + (1000 * 60 * ( myTZO - currentTime.getTimezoneOffset()))) / (24*60*60*1000))); var d = Math.floor(Math.abs((launchDate.getTime() - currentTime_getTime ) / (24*60*60*1000))); var h = differenceTime.getUTCHours(); var m = differenceTime.getUTCMinutes(); var s = differenceTime.getUTCSeconds(); if( differenceTime.getTime() < 0 ) { d = 0; h = 0; m = 0; s = 0; } //console.log(differenceTime.getTime()); $('.dp_pec_countdown .dp_pec_countdown_days', $(element)).html(instance._str_pad(d, 2, "0", "STR_PAD_LEFT")); if(d == 0) { $('.dp_pec_countdown .dp_pec_countdown_days_wrap, .dp_pec_countdown .dp_pec_countdown_days_wrap *', $(element)).hide(); } if(d == 1) { $('.dp_pec_countdown .dp_pec_countdown_days_wrap .dp_pec_countdown_days_txt', $(element)).text($('.dp_pec_countdown .dp_pec_countdown_days_wrap .dp_pec_countdown_days_txt').data('day')); } else { $('.dp_pec_countdown .dp_pec_countdown_days_wrap .dp_pec_countdown_days_txt', $(element)).text($('.dp_pec_countdown .dp_pec_countdown_days_wrap .dp_pec_countdown_days_txt').data('days')); } $('.dp_pec_countdown .dp_pec_countdown_hours', $(element)).html(instance._str_pad(h, 2, "0", "STR_PAD_LEFT")); if(h == 1) { $('.dp_pec_countdown .dp_pec_countdown_hours_wrap .dp_pec_countdown_hours_txt', $(element)).text($('.dp_pec_countdown .dp_pec_countdown_hours_wrap .dp_pec_countdown_hours_txt').data('hour')); } else { $('.dp_pec_countdown .dp_pec_countdown_hours_wrap .dp_pec_countdown_hours_txt', $(element)).text($('.dp_pec_countdown .dp_pec_countdown_hours_wrap .dp_pec_countdown_hours_txt').data('hours')); } $('.dp_pec_countdown .dp_pec_countdown_minutes', $(element)).html(instance._str_pad(m, 2, "0", "STR_PAD_LEFT")); $('.dp_pec_countdown .dp_pec_countdown_seconds', $(element)).html(instance._str_pad(s, 2, "0", "STR_PAD_LEFT")); },1000); }, init_tooltips: function() { var instance = this; $( '[data-pec-tooltip]', instance.calendar ).each( function() { var $tooltip = $( this ); if( $tooltip.find( '.dp-pec-tooltip' ).length ) return; var text = $tooltip.data( 'pec-tooltip' ); $tooltip.append( $( '<div>' ).addClass( 'dp-pec-tooltip' ).text( text ) ); }); }, _str_pad: function (input, pad_length, pad_string, pad_type) { var half = '', pad_to_go; var str_pad_repeater = function (s, len) { var collect = '', i; while (collect.length < len) { collect += s; } collect = collect.substr(0, len); return collect; }; input += ''; pad_string = pad_string !== undefined ? pad_string : ' '; if (pad_type != 'STR_PAD_LEFT' && pad_type != 'STR_PAD_RIGHT' && pad_type != 'STR_PAD_BOTH') { pad_type = 'STR_PAD_RIGHT'; } if ((pad_to_go = pad_length - input.length) > 0) { if (pad_type == 'STR_PAD_LEFT') { input = str_pad_repeater(pad_string, pad_to_go) + input; } else if (pad_type == 'STR_PAD_RIGHT') { input = input + str_pad_repeater(pad_string, pad_to_go); } else if (pad_type == 'STR_PAD_BOTH') { half = str_pad_repeater(pad_string, Math.ceil(pad_to_go / 2)); input = half + input + half; input = input.substr(0, pad_length); } } return input; }, remove_event: function ( ) { var instance = this; $(instance.calendar).on('click', '.pec_remove_event', function(e) { $('body, html').css('overflow', 'hidden'); if(!$('.dpProEventCalendarModalEditEvent').length) { $('body').append( $('<div>').addClass('dpProEventCalendarModalEditEvent dpProEventCalendarModalSmall dp_pec_new_event_wrapper').prepend( $('<h2>').text($(this).text()).append( $('<a>').addClass('dpProEventCalendarClose').attr({ 'href': '#' }).html('<i class="fa fa-times"></i>') ) ).append( $('<div>').addClass('dpProEventCalendar_eventform').append($(this).next().children().clone(true)) ).show() ); instance.show_overlay(); } else { $('.dpProEventCalendar_eventform').html($(this).next().html()); $('.dpProEventCalendarModalEditEvent').addClass('dpProEventCalendarModalSmall'); $('.dpProEventCalendarModalEditEvent h2').text($(this).text()).append( $('<a>').addClass('dpProEventCalendarClose').attr({ 'href': '#' }).html('<i class="fa fa-times"></i>') ); $('.dpProEventCalendarModalEditEvent, .dpProEventCalendarOverlay').show(); } $modal = $('.dpProEventCalendarModalEditEvent'); instance.close_button($modal); $('.dpProEventCalendarModalEditEvent').on('click', '.dp_pec_remove_event', function(e) { e.preventDefault(); $(this).addClass('dp_pec_disabled'); var form = $(this).closest(".add_new_event_form"); var origName = $(this).html(); $(this).html(instance.settings.lang_sending); var me = this; var form = $(this).closest('form'); var post_obj = { calendar: instance.settings.calendar, action: 'removeEvent', postEventsNonce : ProEventCalendarAjax.postEventsNonce } $(this).closest(".add_new_event_form").ajaxForm({ url: ProEventCalendarAjax.ajaxurl, data: post_obj, success:function(data){ $(me).html(origName); location.reload(); $(me).removeClass('dp_pec_disabled'); } }).submit(); }); return false; }); }, open_options: function ( ) { var instance = this; $(instance.calendar).on('click', '.dp_pec_more_options', function(e) { e.preventDefault(); if(!$(this).hasClass('dp_pec_active')) { $(this).addClass('dp_pec_active'); $(this).next('.dp_pec_more_options_hidden').slideDown(200); } else { $(this).removeClass('dp_pec_active'); $(this).next('.dp_pec_more_options_hidden').slideUp(200); } }); $(document).mouseup(function(e) { if($(e.target).hasClass('dp_pec_more_options')) { return; } $('.dp_pec_more_options', instance.calendar).removeClass('dp_pec_active'); $('.dp_pec_more_options_hidden', instance.calendar).slideUp(200); }); }, close_modal: function ( $close_btn ) { var instance = this; if($('.dpProEventCalendarMapModal').is(':visible')) { const modal = $('.dpProEventCalendarMapModal'); const modal_canvas = modal.find('.dp_pec_date_event_map_canvas'); $('#'+modal.data('button'), instance.calendar).next('.dp_pec_open_map_wrap').prepend(modal_canvas); } if($('.dpProEventCalendar_Image').is(':visible')) { $('.dpProEventCalendar_Image').remove(); } $('.dpProEventCalendarModalEditEvent, .dpProEventCalendarModal, .dpProEventCalendarMapModal, .dpProEventCalendarEventModal, .dpProEventCalendarOverlay').fadeOut('fast'); $('body, html').css('overflow', ''); if( typeof $close_btn != 'undefined' ) { $( $close_btn ).off('click', '.dpProEventCalendarClose, .dp_pec_close'); } }, close_button: function( $modal ) { var instance = this; $( $modal ).on('click', '.dpProEventCalendarClose, .dp_pec_close', function(e) { e.preventDefault(); instance.close_modal( $modal ); }); }, accordion_update_content: function ( data ) { var instance = this; if(typeof instance.grid != "undefined") { //instance.grid.isotope( 'appended', data ) instance.grid.isotope( 'remove', $('.dp_pec_content_ajax .dp_pec_isotope', instance.calendar) ); var toAppend = []; //array containing promises var tasks = []; var data_noscript = data; $('script', data_noscript).remove(); var element = $(data_noscript); if( element.length == 0 ) { return; } //toAppend only contains non-empty elements $.each(element, function(i, el){ toAppend.push(el); }); //console.log(toAppend); instance.grid.isotope('insert', toAppend); instance.grid.isotope('layout'); $('script', data).appendTo(instance.grid); } else { $('.dp_pec_content_ajax', instance.calendar).empty().html(data); } instance.init_tooltips(); }, submit_event_hook: function ( el ) { var instance = this; $(el).off('click', '.dp_pec_submit_event'); $(el).on('click', '.dp_pec_submit_event', function(e) { e.preventDefault(); if(typeof tinyMCE != "undefined") { tinyMCE.triggerSave(); } //var form = $(this).closest(".add_new_event_form"); var origName = $(this).html(); var me = this; var form = $(this).closest('form'); var post_obj = { calendar: instance.settings.calendar, action: 'submitEvent', postEventsNonce : ProEventCalendarAjax.postEventsNonce } var is_valid = true; $('.pec_required', form).each(function() { $(this).removeClass('dp_pec_validation_error'); if($(this).is(':checkbox')) { if($(this).is( ":checked" ) == false) { $(this).addClass('dp_pec_validation_error'); $(this).next('.dp_pec_new_event_validation_msg').show(); is_valid = false; return; } } else { if($(this).val() == "") { if($(this).is('select')) { $(this).closest('.selectric-pec_required').removeClass('dp_pec_validation_error'); $(this).closest('.selectric-pec_required').addClass('dp_pec_validation_error'); } $(this).addClass('dp_pec_validation_error'); $(this).next('.dp_pec_new_event_validation_msg').show(); is_valid = false; return; } } }); if(!is_valid) { return false; } if(ProEventCalendarAjax.recaptcha_enable && ProEventCalendarAjax.recaptcha_site_key != "") { post_obj.grecaptcharesponse = grecaptcha.getResponse(pec_new_event_captcha); if(post_obj.grecaptcharesponse == "") { return false; } } $(this).addClass('dp_pec_disabled'); form.fadeTo('fast', .5); $(this).html($(this).data('lang-sending')); $(this).closest(".add_new_event_form").ajaxForm({ url: ProEventCalendarAjax.ajaxurl, data: post_obj, success:function(data){ $(me).html(origName); if(!form.hasClass('edit_event_form')) { $(form)[0].reset(); } //} else { // location.reload(); //} $('select', form).selectric('refresh'); $('.dp_pec_form_title', form).removeClass('dp_pec_validation_error'); $(me).removeClass('dp_pec_disabled'); $('.dp_pec_notification_event_succesfull', form.parent()).show(); //instance._goToByScroll($('.dp_pec_notification_event_succesfull', form.parent())); instance.goToFirstStep(el); form.fadeTo('fast', 1); } }).submit(); }); }, create_event_modal: function( edit ) { var instance = this; var button = '.dp_pec_add_event'; var btn_action = 'getNewEventForm'; if(edit) { button = '.pec_edit_event'; btn_action = 'getEditEventForm'; } $(instance.calendar).off('click', button); $(instance.calendar).on('click', button, function(e) { $('body, html').css('overflow', 'hidden'); var $btn = $(this); if(!$('.dpProEventCalendarModalEditEvent').length) { $('body').append( $('<div>').addClass('dpProEventCalendarModalEditEvent dp_pec_new_event_wrapper').attr('id', 'dpProEventCalendarModal_'+instance.settings.calendar ).prepend( $('<h2>').text($btn.attr('title')).append( $('<a>').addClass('dpProEventCalendarClose').attr({ 'href': '#' }).html('<i class="fa fa-times"></i>') ) ).append( $('<div>').addClass('dpProEventCalendar_eventform dp_pec_content_loading') ).show() ); instance.show_overlay(); //$('.dpProEventCalendar_eventform').html($('.dpProEventCalendar_eventform').html().replace(/_pecremoveedit/g, '')); } else { $('.dpProEventCalendar_eventform').empty().addClass('dp_pec_content_loading'); $('.dpProEventCalendarModalEditEvent').attr('id', 'dpProEventCalendarModal_' + instance.settings.calendar ).removeClass('dpProEventCalendarModalSmall'); $('.dpProEventCalendarModalEditEvent h2').text($btn.attr('title')).append( $('<a>').addClass('dpProEventCalendarClose').attr({ 'href': '#' }).html('<i class="fa fa-times"></i>') ); $('.dpProEventCalendarModalEditEvent, .dpProEventCalendarOverlay').show(); } var $modal = $('.dpProEventCalendarModalEditEvent'); //Close modals instance.close_button($modal); $('.dpProEventCalendarModalEditEvent').off('change', '.event_image'); $('.dpProEventCalendarModalEditEvent').on('change', '.event_image', function() { $('#event_image_lbl', $(this).parent()).val($(this).val().replace(/^.*[\\\/]/, '')); }); var opts = { event_id: (edit ? $btn.data('event-id') : 0), calendar: instance.settings.calendar, action: btn_action, postEventsNonce : ProEventCalendarAjax.postEventsNonce }; if( typeof $(this).data( 'time' ) != 'undefined' ) opts.time = $(this).data( 'time' ); $.post(ProEventCalendarAjax.ajaxurl, opts, function(data) { $('.dpProEventCalendar_eventform').removeClass('dp_pec_content_loading').empty().html(data); instance.make_event_form_work($modal); instance.create_datepicker($modal); instance.submit_event_hook($modal); } ); return false; }); }, set_other_location: function ( elem ) { var instance = this; jQuery("#pec_map_address", elem).on('focus', function () { $('.map_lnlat_wrap', elem).show(); jQuery("#pec_map_address", elem).off('focus'); var geocoder = new google.maps.Geocoder(); var map; var marker; function geocodePosition(pos) { geocoder.geocode({ latLng: pos }, function(responses) { if (responses && responses.length > 0) { updateMarkerAddress(responses[0].formatted_address); } else { //updateMarkerAddress("Cannot determine address at this location."); } }); } function updateMarkerPosition(latLng) { jQuery("#map_lnlat", elem).val([ latLng.lat(), latLng.lng() ].join(", ")); } function updateMarkerAddress(str) { jQuery("#pec_map_address", elem).val(str); } function pec_map_initialize() { var latLng = new google.maps.LatLng(instance.settings.map_lat,instance.settings.map_lng); map = new google.maps.Map(jQuery("#pec_mapCanvas", elem)[0], { zoom: (instance.settings.map_lat != 0 ? 12 : 3), center: latLng, mapTypeId: google.maps.MapTypeId.ROADMAP }); marker = new google.maps.Marker({ position: latLng, title: "Location", map: map, draggable: true }); // Update current position info. updateMarkerPosition(latLng); //geocodePosition(latLng); // Add dragging event listeners. google.maps.event.addListener(marker, "dragstart", function() { updateMarkerAddress(""); }); google.maps.event.addListener(marker, "drag", function() { updateMarkerPosition(marker.getPosition()); }); google.maps.event.addListener(marker, "dragend", function() { geocodePosition(marker.getPosition()); }); } var timeout; jQuery("#pec_map_address", elem).on('keyup', function () { clearTimeout( timeout ); timeout = setTimeout(function() { geocoder.geocode( { "address": jQuery("#pec_map_address", elem).val()}, function(results, status) { if(status != "OVER_QUERY_LIMIT") { var latlng = results[0].geometry.location; marker.setPosition(latlng); // var listener = google.maps.event.addListener(map, "idle", function() { if (map.getZoom() < 12) map.setZoom(12); map.setCenter(latlng); //google.maps.event.removeListener(listener); //}); updateMarkerPosition(latlng); } }); }, 1000); }); // Onload handler to fire off the app. pec_map_initialize(); //google.maps.event.addDomListener(window, "load", pec_map_initialize); }); }, goToFirstStep: function (elem) { var instance = this; var visible_step = $('.dp_pec_form_step_visible', elem); var first_step = $('.dp_pec_new_event_steps:first-child', elem); $('.pec_form_back, .dp_pec_submit_event', elem).hide(); $('.pec_form_next', elem).show(); first_step.addClass('dp_pec_form_step_visible dp_pec_form_step_animation_right'); visible_step.removeClass('dp_pec_form_step_visible dp_pec_form_step_animation_left dp_pec_form_step_animation_right'); }, create_overlay: function ( ) { var instance = this; if(!$('.dpProEventCalendarOverlay').length) { $('body').append( $('<div>').addClass('dpProEventCalendarOverlay').click(function() { if($('.dpProEventCalendarMapModal').is(':visible')) { $('.dpProEventCalendarMapModal').find('.dp_pec_close').trigger('click'); } else { instance.close_modal(); } }) ); } }, show_overlay: function ( ) { $('body, html').css('overflow', 'hidden'); $('.dpProEventCalendarOverlay').fadeIn('fast'); }, open_map: function ( elem ) { var instance = this; if($('.dpProEventCalendarMapModal').length) { $('.dpProEventCalendarMapModal').remove() } const map = $(elem).next('.dp_pec_open_map_wrap').find('.dp_pec_date_event_map_canvas'); $('body').append( $('<div>').addClass('dpProEventCalendarMapModal').data('button', $(elem).attr('id')).prepend( map ).prepend( $('<a>').addClass('dp_pec_close').attr({ 'href': '#' }).html(instance.settings.lang_close) ).show() ); const $modal = $('.dpProEventCalendarMapModal'); //Close modals instance.close_button($modal); }, create_book_event: function ( ) { var instance = this; $(document).off('click', '.pec_event_page_book'); $(document).on('click', '.pec_event_page_book', function(e) { if($(window).width() > 720) { $('body, html').css('overflow', 'hidden'); } var text = $(this).find('strong').text(); if( text == '' ) text = $(this).data( 'pec-tooltip' ); if($('.dpProEventCalendarModal').length) { $('.dpProEventCalendarModal').remove() } if(!$('.dpProEventCalendarModal').length) { $('body').append( $('<div>').addClass('dpProEventCalendarModal').prepend( $('<h2>').text( text ).append( $('<a>').addClass('dpProEventCalendarClose').attr({ 'href': '#' }).html('<i class="fa fa-times"></i>') ) ).show() ); instance.show_overlay(); } const $modal = $('.dpProEventCalendarModal'); $modal.show(); //Close modals instance.close_button($modal); $('.dpProEventCalendarModal').addClass('dpProEventCalendarModal_Preload'); $.post(ProEventCalendarAjax.ajaxurl, { event_id: $(this).data('event-id'), calendar: $(this).data('calendar'), date: $(this).data('date'), action: 'getBookEventForm', postEventsNonce : ProEventCalendarAjax.postEventsNonce }, function(data) { $('.dpProEventCalendarModal').removeClass('dpProEventCalendarModal_Preload').append(data); $('select', '.dpProEventCalendarModal').selectric(); $('#pec_event_page_book_date', '.dpProEventCalendarModal').trigger('change'); $("input, textarea", '.dpProEventCalendarModal').placeholder(); } ); return false; }); }, create_isotope: function ( div ) { var instance = this; instance.grid = $(div, instance.calendar).isotope({ getSortData: { number: '[data-event-number] parseInt' }, itemSelector: '.dp_pec_date_event_wrap', layoutMode: 'masonry', isOriginLeft : (instance.settings.isRTL ? false : true), masonry: { gutter: 20 } }); }, show_search: function ( force_hide ) { var instance = this; if(!$('.dp_pec_search_form', instance.calendar).is(':visible') && !force_hide) { $('.dp_pec_search_btn', instance.calendar).addClass('active'); $('.dp_pec_search_form', instance.calendar).show(); $('.dp_pec_search_form input[type=search]', instance.calendar).focus(); // Hide pther navs $('.dp_pec_nav.dp_pec_nav_monthly', instance.calendar).hide(); } else { $('.dp_pec_search_btn', instance.calendar).removeClass('active'); $('.dp_pec_search_form', instance.calendar).hide(); $('.dp_pec_nav.dp_pec_nav_monthly', instance.calendar).show(); } }, create_datepicker: function ( elem ) { var instance = this; var multiple_dates = new Array(); var multiple_dates_hidden = new Array(); if($(".dp_pec_extra_dates", elem).length && $(".dp_pec_extra_dates", elem).val() != "") { multiple_dates = $(".dp_pec_extra_dates", elem).data('extra-dates-parsed').split(' /// '); multiple_dates_hidden = $(".dp_pec_extra_dates_hidden", elem).val().split(','); } $(".dp_pec_date_input, .dp_pec_end_date_input, .dp_pec_extra_dates", elem).datepicker({ beforeShow: function(input, inst) { $("#ui-datepicker-div").removeClass("dp_pec_datepicker"); $("#ui-datepicker-div").addClass("dp_pec_datepicker"); }, onSelect: function (dateText, inst) { if($(inst.input).hasClass("dp_pec_extra_dates")) { var dates = $(inst.input).val(); var index = jQuery.inArray(dateText, multiple_dates); if (index >= 0) multiple_dates.splice(index, 1); else multiple_dates.push(dateText); var printExtraDates = new String; multiple_dates.forEach(function (val) { printExtraDates += val + ", "; }); $(inst.input).val(printExtraDates.slice(0, -2)); if($(this).prev(".dp_pec_extra_dates_hidden").length) { var hidden = $(this).prev(".dp_pec_extra_dates_hidden"); var dates = hidden.val(); var date_month = (inst.selectedMonth + 1).toString(); var format_date = inst.selectedYear + "-" + (date_month.padStart(2, "0")) + "-" + inst.selectedDay; var index = jQuery.inArray(format_date, multiple_dates_hidden); if (index >= 0) multiple_dates_hidden.splice(index, 1); else multiple_dates_hidden.push(format_date); var printExtraDates = new String; multiple_dates_hidden.forEach(function (val) { printExtraDates += val + ", "; }); $(hidden).val(printExtraDates.slice(0, -2)); } } }, showOn: "button", isRTL: instance.settings.isRTL, buttonText: "<i class=\"far fa-calendar-plus\"></i>", buttonImageOnly: false, minDate: 0, monthNames: instance.settings.monthNames, dayNamesMin: instance.settings.dayNamesMin, firstDay: instance.settings.firstDay, dateFormat: instance.settings.datepicker_dateFormat }); }, make_event_form_work: function (elem) { var instance = this; if($('.pec-editor-test', elem).length && elem.hasClass('dpProEventCalendarModalEditEvent')) { var editor_id = $('.pec-editor-test', elem).attr('id'); //init tinymce if(typeof tinyMCE != "undefined") { tinymce.init( { selector: editor_id, toolbar: "bold italic underline blockquote strikethrough | bullist numlist | alignleft aligncenter alignright | undo redo | link unlink" } ); tinyMCE.execCommand('mceAddEditor', false, editor_id); } } $(elem) .off('click', '.pec_form_back') .on('click', '.pec_form_back', function() { $('.pec_form_next', elem).show(); $('.dp_pec_submit_event', elem).hide(); var visible_step = $('.dp_pec_form_step_visible', elem); var step_prev = visible_step.prev(); if(step_prev.is(':first-child')) $(this).hide(); step_prev.addClass('dp_pec_form_step_visible dp_pec_form_step_animation_right'); visible_step.removeClass('dp_pec_form_step_visible dp_pec_form_step_animation_left dp_pec_form_step_animation_right'); }) $(elem) .off('click', '.pec_form_next') .on('click', '.pec_form_next', function() { var visible_step = $('.dp_pec_form_step_visible', elem); const is_first_step = visible_step.is(':first-child'); //Validation var is_valid = true; var form = $(this).closest('form'); $('.pec_required', form).each(function() { $(this).removeClass('dp_pec_validation_error'); $(this).next('.dp_pec_new_event_validation_msg').hide(); if( is_first_step ) { if( $(this).hasClass('dp_pec_form_title') && $(this).val() == '' ) { $(this).addClass('dp_pec_validation_error'); $(this).next('.dp_pec_new_event_validation_msg').show(); is_valid = false; } return; } if($(this).is(':checkbox')) { if($(this).is( ":checked" ) == false) { $(this).addClass('dp_pec_validation_error'); $(this).next('.dp_pec_new_event_validation_msg').show(); is_valid = false; return; } } else { if( $(this).val() == "" ) { if($(this).is('select')) { $(this).closest('.selectric-pec_required').removeClass('dp_pec_validation_error'); $(this).closest('.selectric-pec_required').addClass('dp_pec_validation_error'); } $(this).addClass('dp_pec_validation_error'); $(this).next('.dp_pec_new_event_validation_msg').show(); is_valid = false; return; } } }); if( ! is_valid ) { return false; } $('.pec_form_back', elem).show(); var step_next = visible_step.next(); if(step_next.is(':last-child')) { $(this).hide(); $(this).next().show(); } step_next.addClass('dp_pec_form_step_visible dp_pec_form_step_animation_left'); visible_step.removeClass('dp_pec_form_step_visible dp_pec_form_step_animation_left dp_pec_form_step_animation_right'); // Remove notifications $('.dp_pec_notification_event_succesfull', elem).hide(); // Update Description if editor if (typeof tinymce !== 'undefined') { $('.dp_pec_event_form_preview_description', elem).html(tinymce.get( $('.pec-editor-test', elem).attr('id') ).getContent()); } }) $(elem) .off('click', '.dp_pec_event_form_options_item') .on('click', '.dp_pec_event_form_options_item', function(e) { $('.dp_pec_event_form_options_item', elem).removeClass('dp_pec_event_form_options_item_open'); $(this).addClass('dp_pec_event_form_options_item_open'); if($(this).find('input').length && !$(e.target).hasClass('dp_pec_new_event_text')) $(this).find('input')[0].focus(); if($(this).has('.dp_pec_date_input').length) { $('.dp_pec_date_input', elem).datepicker("option", "onSelect", function(dateText, inst){ $(this).prev('.dp_pec_date_input_hidden').val(inst.selectedYear + "-" + (instance._str_pad((inst.selectedMonth + 1), 2, "0", 'STR_PAD_LEFT')) + "-" + (instance._str_pad(inst.selectedDay, 2, "0", 'STR_PAD_LEFT'))); $('.dp_pec_event_form_options_item_date_start', elem).html(dateText); }); } if($(this).has('.dp_pec_end_date_input').length) { $('.dp_pec_end_date_input', elem).datepicker("option", "onSelect", function(dateText, inst){ $(this).prev('.dp_pec_end_date_input_hidden').val(inst.selectedYear + "-" + (instance._str_pad((inst.selectedMonth + 1), 2, "0", 'STR_PAD_LEFT')) + "-" + (instance._str_pad(inst.selectedDay, 2, "0", 'STR_PAD_LEFT'))); $('.dp_pec_event_form_options_item_date_end', elem).html(dateText); }); } }) $(document).mouseup(function(e) { const container = $(".dp_pec_event_form_options_item", elem); const closest = $(e.target).closest('.dp_pec_event_form_options_item_hidden'); const is_datepicker = $(e.target).closest('.dp_pec_datepicker'); if(!closest.length && !is_datepicker.length) container.removeClass('dp_pec_event_form_options_item_open'); }); $(elem) .off('focusout', '.dp_pec_form_title') .on('focusout', '.dp_pec_form_title', function() { $('.dp_pec_event_form_preview_title', elem).html($(this).val()); }); $(elem) .off('focusout', '.dp_pec_form_description') .on('focusout', '.dp_pec_form_description', function() { $('.dp_pec_event_form_preview_description', elem).html($(this).val()); }); if($('.dp_pec_clear_end_date', elem).length) { $('.dp_pec_clear_end_date', elem).click(function(e) { e.preventDefault(); $('.dp_pec_end_date_input', elem).val(''); if($('.dp_pec_event_form_options_item_date_end', elem).length) $('.dp_pec_event_form_options_item_date_end', elem).html(''); }); } // Category Items //////////////////////////////// $(elem) .off('ifChanged', '.dp_pec_event_form_options_item_category input[type="checkbox"]') .on('ifChanged', '.dp_pec_event_form_options_item_category input[type="checkbox"]', function(event) { let category_string = new Array; $.each( $('.dp_pec_event_form_options_item_category input[type="checkbox"]', elem), function( key, value ) { const $this_checkbox = $(value)[0]; if($this_checkbox.checked) { category_string.push($($this_checkbox).data('cat-name')); } }); $('.dp_pec_event_form_options_item_category .dp_pec_event_form_options_item_sub', elem).html(category_string.join(', ')); }); // Speaker Items //////////////////////////////// $(elem) .off('ifChanged', '.dp_pec_event_form_options_item_speakers input[type="checkbox"]') .on('ifChanged', '.dp_pec_event_form_options_item_speakers input[type="checkbox"]', function(event) { let speaker_string = new Array; $.each( $('.dp_pec_event_form_options_item_speakers input[type="checkbox"]', elem), function( key, value ) { const $this_checkbox = $(value)[0]; if($this_checkbox.checked) { speaker_string.push($($this_checkbox).data('speaker-name')); } }); $('.dp_pec_event_form_options_item_speakers .dp_pec_event_form_options_item_sub', elem).html(speaker_string.join(', ')); }); // Frequency Items //////////////////////////////// $(elem) .off('change', 'select.pec_recurring_frequency') .on('change', 'select.pec_recurring_frequency', function(event) { $('.dp_pec_event_form_options_item_frequency .dp_pec_event_form_options_item_sub', elem).html($(this).children("option:selected").text()); instance._pec_update_frequency(this.value, elem); }); // Time Items //////////////////////////////// $(elem) .off('change', '.dp_pec_event_form_options_item_time .dp_pec_new_event_time') .on('change', '.dp_pec_event_form_options_item_time .dp_pec_new_event_time', function(event) { const item_time = $(this).closest('.dp_pec_event_form_options_item_time'); const $time = item_time.find('.dp_pec_start_time_hh').children("option:selected").text() + ':' + item_time.find('.dp_pec_start_time_mm').children("option:selected").text(); $('.dp_pec_event_form_options_item_time .dp_pec_event_form_options_item_time_start', elem).html($time); if(item_time.find('.dp_pec_end_time_hh').length) { const $end_time = item_time.find('.dp_pec_end_time_hh').children("option:selected").text() + ':' + item_time.find('.dp_pec_end_time_mm').children("option:selected").text(); $('.dp_pec_event_form_options_item_time .dp_pec_event_form_options_item_time_end', elem).html($end_time); } }); // Location Items //////////////////////////////// $(elem) .off('change', 'select.pec_location_form') .on('change', 'select.pec_location_form', function(event) { $('.dp_pec_event_form_options_item_location .dp_pec_event_form_options_item_sub', elem).html( $(this).children("option:selected").text() ); instance._pec_update_location(this.value, elem); }); instance.set_other_location(elem); // Custom Fields //////////////////////////////// $(elem) .off('ifChanged', '.dp_pec_event_form_options_item_custom_multiple input[type="checkbox"]') .on('ifChanged', '.dp_pec_event_form_options_item_custom_multiple input[type="checkbox"]', function(event) { let value_string = new Array; const parent_div = $(this).closest('.dp_pec_event_form_options_item_custom_multiple'); $.each( $('input[type="checkbox"]', parent_div), function( key, value ) { const $this_checkbox = $(value)[0]; if($this_checkbox.checked) { value_string.push($($this_checkbox).val()); } }); $('.dp_pec_event_form_options_item_sub', parent_div).html(value_string.join(', ')); }); $('.dp_pec_new_event_wrapper select').selectric(); $('.dp_pec_new_event_wrapper input.new_event_checkbox').iCheck({ checkboxClass: 'icheckbox_flat', radioClass: 'iradio_flat', increaseArea: '20%' // optional }); if(ProEventCalendarAjax.recaptcha_enable && ProEventCalendarAjax.recaptcha_site_key != "") { $(window).load(function() { pec_new_event_captcha = grecaptcha.render($('#pec_new_event_captcha', elem)[0], { 'sitekey' : ProEventCalendarAjax.recaptcha_site_key }); }); } }, /** * Returns a MS time stamp of the current time */ getTimeStamp : function() { var now = new Date(); return now.getTime(); } } $.fn.dpProEventCalendar = function(options){ var dpProEventCalendar; this.each(function(){ dpProEventCalendar = new DPProEventCalendar($(this), options); $(this).data("dpProEventCalendar", dpProEventCalendar); }); return this; } /* Default Parameters and Events */ $.fn.dpProEventCalendar.defaults = { monthNames : new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'), actualMonth : '', actualYear : '', actualDay : '', defaultDate : '', lang_sending: 'Sending...', skin : 'pec_skin_light', view: 'monthly', type: 'calendar', limit: '', widget: 0, selectric: true, lockVertical: true, include_all_events: false, modal: false, hide_old_dates: 0, calendar: null, show_current_date: true, dateRangeStart: null, dateRangeEnd: null, draggable: true, isAdmin: false, dragOffset: 50, recaptcha_enable : false, allowPageScroll: "vertical", fingers: 1 }; $.fn.dpProEventCalendar.settings = {} })(jQuery); /* onShowProCalendar custom event */ (function($){ $.fn.extend({ onShowProCalendar: function(callback, unbind){ return this.each(function(){ var obj = this; var bindopt = (unbind==undefined)?true:unbind; if($.isFunction(callback)){ if($(this).is(':hidden')){ var checkVis = function(){ if($(obj).is(':visible')){ callback.call(); if(bindopt){ $('body').unbind('click keyup keydown', checkVis); } } } $('body').bind('click keyup keydown', checkVis); } else{ callback.call(); } } }); } }); })(jQuery); (function($) { /** * Used for version test cases. * * @param {string} left A string containing the version that will become * the left hand operand. * @param {string} oper The comparison operator to test against. By * default, the "==" operator will be used. * @param {string} right A string containing the version that will * become the right hand operand. By default, the current jQuery * version will be used. * * @return {boolean} Returns the evaluation of the expression, either * true or false. */ $.proCalendar_isVersion = function(version1, version2){ if ('undefined' === typeof version1) { throw new Error("$.versioncompare needs at least one parameter."); } version2 = version2 || $.fn.jquery; if (version1 == version2) { return 0; } var v1 = normalize(version1); var v2 = normalize(version2); var len = Math.max(v1.length, v2.length); for (var i = 0; i < len; i++) { v1[i] = v1[i] || 0; v2[i] = v2[i] || 0; if (v1[i] == v2[i]) { continue; } return v1[i] > v2[i] ? 1 : 0; } return 0; }; function normalize(version){ return $.map(version.split('.'), function(value){ return parseInt(value, 10); }); } $(document).ready(function() { $(document).on('change', '#pec_event_page_book_date', function(e) { jQuery('#pec_event_page_book_quantity option').removeAttr('disabled'); $('#pec_event_page_book_quantity', '.dpProEventCalendarModal').val(1).change(); $('#pec_event_page_book_quantity', '.dpProEventCalendarModal').selectric('refresh'); if(this.value == 0) { jQuery('.pec_event_page_send_booking').prop('disabled', true); } else { jQuery('.pec_event_page_send_booking').prop('disabled', false); $('#pec_event_page_book_quantity option:gt('+(jQuery(this).find(':selected').data('available') - 1)+')', '.dpProEventCalendarModal').attr('disabled', 'disabled'); $('#pec_event_page_book_quantity', '.dpProEventCalendarModal').selectric('refresh'); } }); $(document).on('change', '#pec_event_page_book_quantity', function(e) { if($('.dp_pec_payment_price').length) { var new_price = ($('.dp_pec_payment_price').find('span.dp_pec_payment_price_value').data('price') * $(this).val()).toFixed(2); $('.dp_pec_payment_price').find('span.dp_pec_payment_price_value').text( new_price ); $('.dp_pec_payment_price').find('span.dp_pec_payment_price_value').data( 'price-updated', new_price ); if($('#pec_payment_discount_value', '.dpProEventCalendarModal').length) { var coupon_value = $('#pec_payment_discount_value', '.dpProEventCalendarModal').val(); if(coupon_value != "") { var result = ((100 - coupon_value) / 100) * new_price; $('.dp_pec_payment_price', '.dpProEventCalendarModal').find('span.dp_pec_payment_price_value').text( result.toFixed(2) ); } } } }); $(document).on('submit', '.dp_pec_coupon_form', function() { if($(this).find('.dp_pec_coupon').val() != "") { var coupon_inp = $(this).find('.dp_pec_coupon'); coupon_inp.removeClass('dp_pec_validation_error'); if(coupon_inp.hasClass('dp_pec_validation_correct')) { return false; } $.post(ProEventCalendarAjax.ajaxurl, { code: $(this).find('.dp_pec_coupon').val(), action: 'getCoupon', postEventsNonce : ProEventCalendarAjax.postEventsNonce }, function(data) { //coupon_inp.val(""); if(data == "null") { coupon_inp.addClass('dp_pec_validation_error'); } else { data = jQuery.parseJSON(data); if($('.dp_pec_payment_price', '.dpProEventCalendarModal').length) { var result = ((100 - data.discount) / 100) * $('.dp_pec_payment_price', '.dpProEventCalendarModal').find('span.dp_pec_payment_price_value').data('price-updated'); $('.dp_pec_payment_price', '.dpProEventCalendarModal').find('span.dp_pec_payment_price_value').text( result.toFixed(2) ); $('#pec_payment_discount_id', '.dpProEventCalendarModal').val(data.id); $('#pec_payment_discount_coupon', '.dpProEventCalendarModal').val(data.coupon); $('#pec_payment_discount_value', '.dpProEventCalendarModal').val(data.discount); coupon_inp.addClass('dp_pec_validation_correct'); coupon_inp.closest('.dp_pec_coupon_form').addClass('dp_pec_validation_form_correct'); coupon_inp.prop("readonly", true); } } } ); } return false; }); $(document).on('keyup', '.dp_pec_coupon', function (e) { if (e.keyCode == 13) { // Do something $('.dp_pec_coupon_go', '.dpProEventCalendarModal').trigger('click'); } }); if($('.pec_event_page_action_menu').length) { $(document).on('touchstart click', function(e) { $('.pec_event_page_action_menu').each(function(e) { var $parent = $(this).parent(); if($(this).is(':visible') && !$(this).is(':animated')) { $('.pec_event_page_action', $parent).trigger('click'); } }) }); } $(document).on('click', '.pec_event_page_action', function(e) { e.preventDefault(); var $parent = $(this).parent(); if(!$(this).hasClass('active')) { $(this).addClass('active'); $('.pec_event_page_action_menu', $parent).slideDown('fast'); } else { $(this).removeClass('active'); $('.pec_event_page_action_menu', $parent).slideUp('fast'); } }); $(document).on('click', '.dp_pec_notification_close', function(e) { e.preventDefault(); $(this).closest('.dp_pec_notification_event').fadeOut('fast'); }); $(document).on('click', '.pec_event_page_send_booking', function(e) { var instance = this; if($('#pec_event_page_book_name', '.dpProEventCalendarModal').length) { $('#pec_event_page_book_name, #pec_event_page_book_email', '.dpProEventCalendarModal').removeClass('dp_pec_validation_error'); if($('#pec_event_page_book_name', '.dpProEventCalendarModal').val() == '') { $('#pec_event_page_book_name', '.dpProEventCalendarModal').addClass('dp_pec_validation_error'); return false; } var re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i; if($('#pec_event_page_book_email', '.dpProEventCalendarModal').val() == '' || !re.test($('#pec_event_page_book_email', '.dpProEventCalendarModal').val())) { $('#pec_event_page_book_email', '.dpProEventCalendarModal').addClass('dp_pec_validation_error'); return false; } } if($('#pec_event_page_book_phone', '.dpProEventCalendarModal').length) { $('#pec_event_page_book_phone', '.dpProEventCalendarModal').removeClass('dp_pec_validation_error'); if($('#pec_event_page_book_phone', '.dpProEventCalendarModal').val() == '') { $('#pec_event_page_book_phone', '.dpProEventCalendarModal').addClass('dp_pec_validation_error'); return false; } } var is_valid = true; $('.pec_required', '.dpProEventCalendarModal').each(function() { $(this).removeClass('dp_pec_validation_error'); if($(this).is(':checkbox')) { $(this).closest('.dp_pec_wrap_checkbox').removeClass('dp_pec_validation_error'); if($(this).is( ":checked" ) == false) { $(this).closest('.dp_pec_wrap_checkbox').addClass('dp_pec_validation_error'); is_valid = false; return; } } else { if($(this).val() == "") { $(this).addClass('dp_pec_validation_error'); is_valid = false; return; } } }); if(!is_valid) { return false; } if($('#pec_event_page_book_terms_conditions', '.dpProEventCalendarModal').length) { if($('#pec_event_page_book_terms_conditions', '.dpProEventCalendarModal').is( ":checked" ) == false) { $('#pec_event_page_book_terms_conditions', '.dpProEventCalendarModal').focus(); return false; } } var extra_fields = {}; if($('.pec_event_page_book_extra_fields', '.dpProEventCalendarModal').length) { $('.pec_event_page_book_extra_fields', '.dpProEventCalendarModal').each(function( index ) { if($(this).attr('type') == 'checkbox') { if($(this).is(':checked')) { extra_fields[$(this).attr('name')] = 1; } } else { extra_fields[$(this).attr('name')] = $(this).val(); } }); } var $btn_booking = $(this); $btn_booking.prop('disabled', true); $btn_booking.css('opacity', .6); var event_id = $('#pec_event_page_book_event_id', '.dpProEventCalendarModal').val(); var quantity = $('#pec_event_page_book_quantity', '.dpProEventCalendarModal').val(); $.post(ProEventCalendarAjax.ajaxurl, { event_date: $('#pec_event_page_book_date', '.dpProEventCalendarModal').val(), ticket: $('#pec_event_page_book_ticket', '.dpProEventCalendarModal').val(), event_id: event_id, calendar: $('#pec_event_page_book_calendar', '.dpProEventCalendarModal').val(), comment: $('#pec_event_page_book_comment', '.dpProEventCalendarModal').val(), quantity: quantity, name: ($('#pec_event_page_book_name', '.dpProEventCalendarModal').length ? $('#pec_event_page_book_name', '.dpProEventCalendarModal').val() : ''), email: ($('#pec_event_page_book_email', '.dpProEventCalendarModal').length ? $('#pec_event_page_book_email', '.dpProEventCalendarModal').val() : ''), phone: ($('#pec_event_page_book_phone', '.dpProEventCalendarModal').length ? $('#pec_event_page_book_phone', '.dpProEventCalendarModal').val() : ''), pec_payment_discount_id: ($('#pec_payment_discount_id', '.dpProEventCalendarModal').length ? $('#pec_payment_discount_id', '.dpProEventCalendarModal').val() : ''), pec_payment_discount_coupon: ($('#pec_payment_discount_coupon', '.dpProEventCalendarModal').length ? $('#pec_payment_discount_coupon', '.dpProEventCalendarModal').val() : ''), extra_fields: extra_fields, return_url: window.location.href, action: 'bookEvent', postEventsNonce : ProEventCalendarAjax.postEventsNonce }, function(data) { data = jQuery.parseJSON(data); $('#pec_event_page_book_comment', '.dpProEventCalendarModal').val(''); $btn_booking.prop('disabled', false); $btn_booking.css('opacity', 1); if(data.gateway_screen != "") { $('.pec_book_select_date', '.dpProEventCalendarModal').html(data.gateway_screen); $('.pec_gateway_form select', '.dpProEventCalendarModal').selectric(); } else { $('.pec_book_select_date', '.dpProEventCalendarModal').html(data.notification); //$('.dp_pec_attendees_counter_'+ event_id +' span', instance.calendar).text( parseInt($('.dp_pec_attendees_counter_'+ event_id +' span', instance.calendar).text(), 10) + parseInt(quantity, 10) ); } } ); }); }); })(jQuery);