1/* 2 * Javascript: EventON functions for all calendars 3 * @version: 4.2.2 4 */ 5(function($){ 6 7 // Calendar function s 8 $.fn.evo_cal_functions = function(O){ 9 el = this; 10 switch(O.return){ 11 // load shortcodes inside calendar data 12 case 'load_shortcodes': 13 return el.find('.evo_cal_data').data('sc'); 14 break; 15 case 'update_shortcodes': 16 el.find('.evo_cal_data').data( 'sc', O.SC ); 17 break; 18 } 19 }; 20 21 // Count down // @+ 3.0 22 $.fn.evo_countdown_get = function(opt){ 23 var defaults = { gap:''}; 24 var OPT = $.extend({}, defaults, opt); 25 26 distance = (OPT.gap * 1000); 27 28 var days = Math.floor(distance / (1000 * 60 * 60 * 24)); 29 var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); 30 var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)); 31 var seconds = Math.floor((distance % (1000 * 60)) / 1000); 32 33 minutes = minutes<10? '0'+minutes : minutes; 34 seconds = seconds<10? '0'+seconds : seconds; 35 36 return { 37 'd': days, 38 'h':hours, 39 'm':minutes, 40 's':seconds 41 }; 42 }; 43 $.fn.evo_countdown = function(opt){ 44 var defaults = { S1:''}; 45 var OPT = $.extend({}, defaults, opt); 46 var el = $(this); 47 48 const day_text = ( el.data('d') !== undefined && el.data('d') != '' )? el.data('d'):'Day'; 49 const days_text = ( el.data('ds') !== undefined && el.data('ds') != '' )? el.data('ds'):'Days'; 50 51 // intial run 52 var gap = parseInt(el.data('gap')); 53 var text = el.data('t'); 54 if(text === undefined) text = ''; 55 56 if( el.hasClass('evo_cd_on')) return; 57 58 if( gap > 0 ){ 59 dd = el.evo_countdown_get({ 'gap': gap}); 60 el.html( ( dd.d>0 ? dd.d + ' ' + ( dd.d >1 ? days_text: day_text ) + " " :'') + dd.h + ":" + dd.m +':'+ dd.s +' '+text ); 61 62 el.data('gap', (gap -1) ); 63 var duration = el.data('dur'); 64 65 el.addClass('evo_cd_on'); 66 67 // maybe adopt moment 68 //var M = moment(); 69 //console.log(M); 70 71 // set intervals 72 var CD = setInterval(function(){ 73 74 gap = el.data('gap'); 75 duration = el.data('dur'); 76 77 const bar_elm = el.closest('.evo_event_progress').find('.evo_ep_bar'); 78 79 if( gap > 0 ){ 80 81 // increase bar width if exists 82 if( duration !== undefined && bar_elm.length){ 83 perc = ( (duration - gap)/ duration ) * 100; 84 bar_elm.find('b').css('width',perc+'%'); 85 } 86 87 dd = el.evo_countdown_get({ 'gap': gap}); 88 89 el.html( ( dd.d>0 ? dd.d + ' ' + ( dd.d >1 ? days_text: day_text ) + " ":'') + dd.h + ":" + dd.m +':'+ dd.s +' '+text ); 90 el.data('gap', ( gap - 1) ); 91 92 }else{ 93 94 const expire_timer_action = el.data('exp_act'); 95 96 // perform ajax task after expiration 97 if(expire_timer_action !== undefined){ 98 $('body').trigger('runajax_refresh_now_cal',[ 99 el , 100 el.data('n'), 101 ]); 102 } 103 104 const _complete_text = el.evo_get_txt({V:'event_completed'}); 105 106 // live now text 107 if(bar_elm.length){ 108 bar_elm.addClass('evo_completed'); 109 //el.siblings('.evo_ep_pre').html( _complete_text ); 110 } 111 112 113 // event tag & live elements 114 if( el.closest('.evcal_desc').length){ 115 el.closest('.evcal_desc').find('.eventover').html( _complete_text); 116 el.closest('.evcal_desc').find('.evo_live_now').remove(); 117 } 118 119 // event card 120 if( el.closest('.eventon_list_event').length){ 121 el.closest('.eventon_list_event').find('span.evo_live_now').hide(); 122 } 123 124 el.html(''); 125 clearInterval(CD); 126 } 127 128 },1000); 129 }else{ 130 clearInterval(CD); 131 } 132 }; 133 134 // access page GLOBALS 135 $.fn.evo_get_global = function(opt){ 136 var defaults = { S1:'', S2:''}; 137 var OPT = $.extend({}, defaults, opt); 138 139 var BUS = $('#evo_global_data').data('d'); 140 141 if(!(OPT.S1 in BUS)) return false; 142 if(!(OPT.S2 in BUS[OPT.S1])) return false; 143 return BUS[OPT.S1][OPT.S2]; 144 } 145 $.fn.evo_get_txt = function(opt){ 146 var defaults = { V:''} 147 var OPT = $.extend({}, defaults, opt); 148 149 var BUS = $('#evo_global_data').data('d'); 150 if(!('txt' in BUS)) return false; 151 if(!(OPT.V in BUS.txt)) return false;
152 return BUS.txt[OPT.V]; 153 } 154 $.fn.evo_get_cal_def = function(opt){ 155 var defaults = { V:''} 156 var OPT = $.extend({}, defaults, opt); 157 158 var BUS = $('#evo_global_data').data('d'); 159 if(!('cal_def' in BUS)) return false; 160 if(!(OPT.V in BUS.cal_def)) return false; 161 return BUS.cal_def[OPT.V]; 162 } 163 164 // return dms translates values from global data 165 // added 4.0 166 $.fn.evo_get_dms_vals = function(opt){ 167 // type = d, d1,d3, m, m3 168 // V = 0-x 169 var defaults = { type:'d', V:''} 170 var OPT = $.extend({}, defaults, opt); 171 172 var BUS = $('#evo_global_data').data('d'); 173 if(!('dms' in BUS)) return false; 174 if(!(OPT.type in BUS.dms)) return false; 175 176 return BUS.dms[ OPT.type ][ OPT.V ]; 177 178 } 179 180 // GENERAL AJAX ACCESS + 4.1.2 181 $.fn.evo_admin_get_ajax = function(opt){ 182 var defs = { 183 'lightbox_key':'', 184 'lightbox_loader': true, 185 'load_new_content': true, 186 'ajaxdata':{ 187 'load_lbcontent':'', 188 'load_new_content':'' 189 }, 190 'uid':'', 191 'end':'admin', // admin or client 192 } 193 194 var OO = $.extend({}, defs, opt); 195 196 197 var ajaxdata = OO.ajaxdata; 198 199 // passing nonce 200 ajaxdata['nn'] = ( OO.end == 'client' ) ? evo_general_params.n : evo_admin_ajax_handle.postnonce; 201 202 LB = false; 203 if( OO.lightbox_key != '') LB = $('body').find('.evo_lightbox.'+ OO.lightbox_key); 204 205 var returnvals = ''; 206 207 $.ajax({ 208 beforeSend: function(){ 209 $('body').trigger('evo_ajax_beforesend_' + OO.uid ,[ OO ]); 210 if( LB && OO.lightbox_loader){ 211 LB.find('.ajde_popup_text').addClass( 'loading'); 212 } 213 }, 214 type: 'POST', 215 url: (OO.end == 'admin')? evo_admin_ajax_handle.ajaxurl : evo_general_params.ajaxurl, 216 data: ajaxdata, 217 dataType:'json', 218 success:function(data){ 219 console.log(OO); 220 221 if( OO.ajaxdata.load_lbcontent ) LB.evo_lightbox_populate_content({content: data.content}); 222 if( OO.ajaxdata.load_new_content ) LB.evo_lightbox_populate_content({content: data.content}); 223 224 $('body').trigger('evo_ajax_success_' + OO.uid,[ OO, data ]); 225 226 },complete:function(){ 227 $('body').trigger('evo_ajax_complete_' + OO.uid ,[ OO ]); 228 if( LB && OO.lightbox_loader){ 229 LB.find('.ajde_popup_text').removeClass( 'loading'); 230 } 231 } 232 }); 233 } 234 235 // submit forms via ligtbox 236 // @since 4.2.2 237 $.fn.evo_ajax_lightbox_form_submit = function(opt){ 238 var defs = { 239 'lightbox_key':'', // lightbox class 240 'lightbox_loader': true, // show lightbox loading animations 241 'uid':'', 242 'end':'admin', // admin or client 243 'hide_lightbox':false, 244 'hide_message':false, 245 'load_new_content':false, 246 } 247 248 var OO = $.extend({}, defs, opt); 249 250 const form = this.closest('form'); 251 var LB = false; 252 if( OO.lightbox_key != '') LB = $('body').find('.evo_lightbox.'+ OO.lightbox_key); 253 254 form.ajaxSubmit({ 255 beforeSubmit: function(){ 256 $('body').trigger('evo_ajax_beforesend_' + OO.uid ,[ OO ]); 257 if( LB && OO.lightbox_loader) LB.evo_lightbox_start_inloading(); 258 }, 259 dataType: 'json', url: the_ajax_script.ajaxurl, type: 'POST', 260 success:function(data){ 261 262 $('body').trigger('evo_ajax_success_' + OO.uid,[ OO, data ]); 263 264 if( data.status == 'good'){ 265 LB.evo_lightbox_show_msg({'type': 'good', 266 'message':data.msg, 267 hide_lightbox: OO.hide_lightbox, 268 hide_message: OO.hide_message 269 }); 270 271 if( OO.load_new_content ) LB.evo_lightbox_populate_content({content: data.content}); 272 273 }else{ 274 LB.evo_lightbox_show_msg({'type': 'bad', 'message':data.msg}); 275 } 276 }, 277 complete:function(){ 278 $('body').trigger('evo_ajax_complete_' + OO.uid ,[ OO ]); 279 if( LB && OO.lightbox_loader) LB.evo_lightbox_stop_inloading(); 280 } 281 }); 282 } 283 284 // LIGHTBOX version 4.2 285 // @version 4.2 286 $('body').on('click','.evolb_trigger', function(event){ 287 event.preventDefault(); 288 event.stopPropagation(); 289 $(this).evo_lightbox_open($(this).data('lbvals')); 290 }); 291 $('body').on('click','.evolb_close_btn', function (){ 292 const LB = $(this).closest('.evo_lightbox'); 293 LB.evo_lightbox_close(); 294 }); 295 296 // @since 4.2.2 297 $('body').on('click','.evolb_trigger_save, .evo_submit_form', function(event){ 298 event.preventDefault(); 299 event.stopPropagation(); 300 $(this).evo_ajax_lightbox_form_submit( $(this).data('d') ); 301 }); 302 303 $('body').on('click','.evo_trigger_ajax_run', function(event){ 304 event.preventDefault(); 305 event.stopPropagation(); 306 $(this).evo_admin_get_ajax( $(this).data('d') ); 307 }); 308 309 310 $.fn.evo_lightbox_open = function (opt){ 311 var defaults = { 312 'uid':'', 313 't':'', //title 314 'lbc':'',// * lightbox class - REQUIRED 315 'lbsz':'',// lightbox size = mid small 316 'content':'',// passed on dynamic content 317 'content_id' :'',// id to get dynamic content from page 318 'ajax':'no',// use ajax to load content yes no 319 'ajax_url':'', 320 'd':'', // data object for ajax 321 'end':'admin',// admin or client end 322 'other_data':'', 323 }; 324 325 var OO = $.extend({}, defaults, opt); 326 327 // create lightbox HTML 328 var html = '<div class="evo_lightbox '+OO.lbc+' '+OO.end+'"><div class="evolb_content_in"><div class="evolb_content_inin"><div class="evolb_box '+OO.lbc+' '+OO.lbsz +'"><div class="evolb_header"><a class="evolb_backbtn" style="display:none"><i class="fa fa-angle-left"></i></a><p class="evolb_title">' + OO.t + '</p><a class="evolb_close_btn evolbclose ">X</a></div><div class="evolb_content"></div><p class="message"></p></div></div></div></div>'; 329 330 $('#evo_lightboxes').append( html ); 331 332 333 LIGHTBOX = $('.evo_lightbox.'+ OO.lbc); 334 335 // Open lightbox on page 336 setTimeout( function(){ 337 $('#evo_lightboxes').show(); 338 LIGHTBOX.addClass('show'); 339 $('body').addClass('evo_overflow'); 340 $('html').addClass('evo_overflow'); 341 },300); 342 343 // show loading animation 344 LIGHTBOX.evo_lightbox_show_open_animation(); 345 346 // Load content 347 // dynamic content within the site 348 if(OO.content_id != ''){ 349 var content = $('#'+ OO.content_id ).html(); 350 LIGHTBOX.find('.evolb_content').html( content); 351 } 352 // load passed on content 353 if(OO.content != ''){ 354 LIGHTBOX.find('.evolb_content').html( OO.content); 355 } 356 357 // run ajax to load content for the lightbox inside 358 if( OO.ajax == 'yes' && OO.d != ''){ 359 360 var D = {}; 361 D = OO.d; 362 363 LB.evo_admin_get_ajax({ 364 ajaxdata: D, 365 lightbox_key: OO.lbc, 366 uid: OO.d.uid, 367 end: OO.end 368 }); 369 } 370 371 // load content from a AJAX file 372 if( OO.ajax_url != ''){ 373 $.ajax({ 374 beforeSend: function(){}, 375 url: OO.ajax_url, 376 success:function(data){ 377 LIGHTBOX.find('.evolb_content').html( data); 378 },complete:function(){} 379 }); 380 } 381 382 $('body').trigger('evo_lightbox_processed', [ OO, LIGHTBOX]); 383 } 384 385 $.fn.evo_lightbox_close = function (opt){ 386 LB = this; 387 var defaults = { 388 'delay':500, 389 'remove_from_dom':true, 390 }; 391 392 if( !(LB.hasClass('show')) ) return; 393 394 var OO = $.extend({}, defaults, opt); 395 396 var hide_delay = parseInt( OO.delay); 397 398 complete_close = (LB.parent().find('.evo_lightbox.show').length == 1)? true: false;
399 400 if( hide_delay > 500){ 401 setTimeout( function(){ 402 LB.removeClass('show'); 403 }, ( hide_delay - 500 ) ); 404 }else{ 405 LB.removeClass('show'); 406 } 407 408 setTimeout( function(){ 409 if(complete_close){ 410 $('body').removeClass('evo_overflow'); 411 $('html').removeClass('evo_overflow'); 412 } 413 // remove lightbox HTML from DOM 414 if( OO.remove_from_dom) LB.remove(); 415 }, hide_delay); 416 } 417 418 419 $.fn.evo_lightbox_populate_content = function(opt){ 420 LB = this; 421 var defaults = { 422 'content':'', 423 }; var OO = $.extend({}, defaults, opt); 424 425 LB.find('.evolb_content').html( OO.content ); 426 } 427 $.fn.evo_lightbox_start_inloading = function(opt){ 428 LB = this; 429 LB.find('.evolb_content').addClass('loading'); 430 } 431 $.fn.evo_lightbox_stop_inloading = function(opt){ 432 LB = this; 433 LB.find('.evolb_content').removeClass('loading'); 434 } 435 $.fn.evo_lightbox_show_msg = function(opt){ 436 LB = this; 437 var defaults = { 438 'type':'good', 439 'message':'', 440 'hide_message': false,// hide message after some time pass time or false 441 'hide_lightbox': false, // hide lightbox after some time of false 442 }; var OO = $.extend({}, defaults, opt); 443 LB.find('.message').removeClass('bad good').addClass( OO.type ).html( OO.message ).fadeIn(); 444 445 if( OO.hide_message ) setTimeout(function(){ LB.evo_lightbox_hide_msg() }, OO.hide_message ); 446 447 if( OO.hide_lightbox ) LB.evo_lightbox_close({ delay: OO.hide_lightbox }); 448 } 449 $.fn.evo_lightbox_hide_msg = function(opt){ 450 LB = this; 451 LB.find('p.message').hide(); 452 } 453 454 455 $.fn.evo_lightbox_show_open_animation = function(opt){ 456 LB = this; 457 var defaults = { 458 'animation_type':'initial', // animation type initial or saving 459 }; 460 var OO = $.extend({}, defaults, opt); 461 462 if( OO.animation_type == 'initial'){ 463 LB.find('.evolb_content').html('<div class="evo_loading_bar_holder"><div class="evo_loading_bar wid_40 hi_50"></div><div class="evo_loading_bar"></div><div class="evo_loading_bar"></div><div class="evo_loading_bar"></div><div class="evo_loading_bar wid_25"></div></div>'); 464 } 465 466 if( OO.animation_type == 'saving') 467 LB.find('.evolb_content').addClass('loading'); 468 469 } 470 471 472 // Handlebar process template data into html 473 $.fn.evo_HB_process_template = function(opt){ 474 var defaults = { TD:'', part:''} 475 var OPT = $.extend({}, defaults, opt); 476 477 BUS = $('#evo_global_data').data('d'); 478 479 template = Handlebars.compile( BUS.temp[ OPT.part ] ); 480 return template( OPT.TD ); 481 } 482 483 // Date range and events 484 // Date range and events - from webpage 485 $.fn.evo_cal_events_in_range = function(opt){ 486 var defaults = { S:'', E:'', 487 hide: true, 488 closeEC:true, 489 showEV: false, // show events 490 showEVL: false, // show events list 491 showAllEvs: false // show all events regardless of the range 492 }; 493 var OPT = $.extend({}, defaults, opt); 494 var CAL = $(this); 495 496 eJSON = CAL.find('.evo_cal_events').data('events'); 497 498 R = {}; 499 html = ''; 500 json = {}; 501 502 show = 0; 503 504 // using events JSON data 505 if( eJSON && eJSON.length > 0){ 506 $.each(eJSON, function(ind, ED){ 507 eO = CAL.find('#event_'+ ED._ID); 508 if(eO === undefined || eO.length==0) return; 509 510 if(OPT.hide) eO.hide(); // pre hide 511 this_show = false; 512 513 // month long or year long events 514 if( ED.month_long || ED.year_long ){ 515 this_show = true; 516 517 }else{ 518 if(CAL.evo_is_in_range({ 519 'S': OPT.S, 'E': OPT.E, 'start': ED.event_start_unix , 'end':ED.event_end_unix 520 })){ 521 this_show = true; 522 } 523 } 524 525 if( OPT.showAllEvs) this_show = true; 526 527 if( this_show){ 528 // show event 529 if( OPT.showEV) eO.show(); 530 531 // close open event cards 532 if(OPT.closeEC && SC.evc_open == 'no') eO.find('.event_description').hide().removeClass('open'); 533 534 html += eO[0].outerHTML; 535 json[ ED._ID] = ED; 536 show++; 537 } 538 }); 539 }else{ 540 // get all the events in the events list 541 var cal_events = CAL.find('.eventon_list_event'); 542
543 cal_events.each(function(index, elm){ 544 var ED = $(elm).evo_cal_get_basic_eventdata(); 545 if( !ED) return; 546 547 if(OPT.hide) $(elm).hide(); // pre hide 548 this_show = false; 549 550 // month long or year long events 551 if( $(elm).hasClass('month_long') || $(elm).hasClass('year_long') ){ 552 this_show = true; 553 554 }else{ 555 if(CAL.evo_is_in_range({ 556 'S': OPT.S, 'E': OPT.E, 'start': ED.event_start_unix , 'end':ED.event_end_unix 557 })){ 558 this_show = true; 559 } 560 } 561 562 if( OPT.showAllEvs) this_show = true; 563 564 if( this_show){ 565 // show event 566 if( OPT.showEV) $(elm).show(); 567 568 // close open event cards 569 if(OPT.closeEC && SC.evc_open == 'no') 570 $(elm).find('.event_description').hide().removeClass('open'); 571 572 html += $(elm)[0].outerHTML; 573 json[ ED.uID ] = ED; 574 show++; 575 } 576 }); 577 } 578 579 580 // No events 581 if( OPT.showEV){ 582 583 no_event_content = CAL.evo_get_global({S1: 'html', S2:'no_events'}); 584 585 tx_noevents = CAL.evo_get_txt({V:'no_events'}); 586 EL = CAL.find('.eventon_events_list'); 587 EL.find('.eventon_list_event.no_events').remove(); 588 if( show == 0 ) 589 EL.append('<div class="eventon_list_event no_events">'+ no_event_content +'</div>'); 590 } 591 592 // if show events list 593 if( OPT.showEVL){ 594 CAL.find('.eventon_events_list').show().removeClass('evo_hide'); 595 } 596 597 R['count'] = show; 598 R['html'] = html; 599 R['json'] = json; 600 601 return R; 602 } 603 604 // check if an event is in the given date range 605 $.fn.evo_is_in_range = function(opt){ 606 var defaults = { S:'', E:'', start:'',end:''} 607 var OPT = $.extend({}, defaults, opt); 608 609 S = parseInt(OPT.S); 610 E = parseInt(OPT.E); 611 start = parseInt(OPT.start); 612 end = parseInt(OPT.end); 613 614 return ( 615 ( start <= S && end >= E ) || 616 ( start <= S && end >= S && end <= E) || 617 ( start <= E && end >= E ) || 618 ( start >= S && end <= E ) 619 ) ? true: false; 620 } 621 $.fn.evo_cal_hide_events = function(){ 622 CAL = $(this); 623 CAL.find('.eventon_list_event').hide(); 624 } 625 626 // get event data basics from html event on page 627 // ~@version 4.0.3 628 $.fn.evo_cal_get_basic_eventdata = function(){ 629 var ELM = $(this); 630 631 var _time = ELM.data('time'); 632 if( _time === undefined ) return false; 633 634 const time = _time.split('-'); 635 const ri = ELM.data('ri').replace('r',''); 636 const eID = ELM.data('event_id'); 637 638 var _event_title = ELM.find('.evcal_event_title').text(); 639 _event_title = _event_title.replace(/'/g, '''); 640 641 642 var RR = { 643 'uID': eID + '_' + ri, 644 'ID': eID , 645 'event_id': eID , 646 'ri': ri, 647 'event_start_unix': parseInt(time[0]), 648 'event_end_unix': parseInt(time[1]), 649 'ux_val': ELM.find('.evcal_list_a').data('ux_val'), 650 'event_title': _event_title, 651 'hex_color': ELM.data('colr'), 652 'hide_et': ELM.hasClass('no_et') ? 'y':'n', 653 'evcal_event_color': ELM.data('colr'), 654 }; 655 656 return RR; 657 658 } 659 660 661 // DATE time functions @+2.8 662 $.fn.evo_day_in_month = function(opt){ 663 var defaults = { M:'', Y:''} 664 var OPT = $.extend({}, defaults, opt); 665 666 return new Date(OPT.Y, OPT.M, 0).getDate(); 667 } 668 $.fn.evo_get_day_name_index = function(opt){ 669 var defaults = { M:'', Y:'', D:''} 670 var OPT = $.extend({}, defaults, opt); 671 672 //return moment(OPT.Y+'-'+OPT.M+'-'+OPT.D).utc().day(); 673 674 return new Date( Date.UTC(OPT.Y, OPT.M-1, OPT.D) ).getUTCDay(); 675 } 676 677 // LIGHTBOX 678 // page Lightbox functions @+2.8 679 // append to the lightbox main class name .evo_lightbox 680 681 // Legacy 682 $.fn.evo_prepare_lb = function(){ 683 $(this).find('.evo_lightbox_body').html(''); 684 } 685 $.fn.evo_show_lb = function(opt){ 686 var defaults = { RTL:'', calid:''} 687 var OPT = $.extend({}, defaults, opt); 688 689 $(this).addClass('show '+ OPT.RTL).attr('data-cal_id', OPT.calid); 690 $('body').trigger('evolightbox_show'); 691 } 692 $.fn.evo_append_lb = function(opt){ 693 var defaults = { C:'', CAL:''} 694 var OPT = $.extend({}, defaults, opt); 695 $(this).find('.evo_lightbox_body').html( OPT.C); 696 697 if( OPT.CAL!= '' && OPT.CAL !== undefined && OPT.CAL.hasClass('color')){ 698 const LIST = $(this).find('.eventon_events_list'); 699 if( LIST.length>0){ 700 LIST.find('.eventon_list_event').addClass('color'); 701 } 702 } 703 } 704 705 706 707 // Shortcodes 708 // update shortcode values from filter changes 709 $.fn.evo_update_sc_from_filters = function(){
710 var ev_cal = $(this); 711 SC = ev_cal.find('.evo_cal_data').data('sc'); 712 713 var filter_section = ev_cal.find('.eventon_filter_line').first(); 714 715 filter_section.find('.eventon_filter').each(function(index){ 716 O = $(this); 717 var filter_val = O.data('filter_val'); 718 filter_val = filter_val == ''? 'NOT-all': filter_val; 719 720 ADD = (O.data('fl_o') && O.data('fl_o') != 'IN')? O.data('fl_o')+'-': ''; 721 SC[ O.data('filter_field') ] = ADD + filter_val; 722 }); 723 724 ev_cal.find('.evo_cal_data').data( 'sc', SC ); 725 } 726 727 // get shortcodes from evo bottom 728 $.fn.evo_shortcode_data = function(){ 729 var ev_cal = $(this); 730 return ev_cal.find('.evo_cal_data').data('sc'); 731 } 732 733 // get shortcode single value 734 $.fn.evo_get_sc_val = function(opt){ 735 var defaults = { F:''} 736 var OPT = $.extend({}, defaults, opt); 737 var ev_cal = $(this); 738 739 if(OPT.F=='') return false; 740 SC = ev_cal.find('.evo_cal_data').data('sc'); 741 742 if(!(SC[ OPT.F])) return false; 743 return SC[ OPT.F]; 744 } 745 // UPDATE Single value 746 $.fn.evo_update_cal_sc = function(opt){ 747 var defaults = { 748 F:'', V:'' 749 } 750 var OPT = $.extend({}, defaults, opt); 751 var ev_cal = $(this); 752 SC = ev_cal.find('.evo_cal_data').data('sc'); 753 754 SC[ OPT.F ] = OPT.V; 755 756 ev_cal.find('.evo_cal_data').data( 'sc', SC ); 757 } 758 // UPDATE all shortcode values 759 $.fn.evo_update_all_cal_sc = function(opt){ 760 var defaults = {SC:''} 761 var OPT = $.extend({}, defaults, opt); 762 var CAL = $(this); 763 CAL.find('.evo_cal_data').data( 'sc', OPT.SC ); 764 } 765 766 // OTHERS 767 // hex colors // @+2.8 768 $.fn.evo_is_hex_dark = function(opt){ 769 var defaults = { hex:'808080'} 770 var OPT = $.extend({}, defaults, opt); 771 772 hex = OPT.hex; 773 774 var c = hex.replace('#',''); 775 var is_hex = typeof c === 'string' && c.length === 6 && !isNaN(Number('0x' + c)); 776 777 if(is_hex){ 778 var values = c.split(''); 779 r = parseInt(values[0].toString() + values[1].toString(), 16); 780 g = parseInt(values[2].toString() + values[3].toString(), 16); 781 b = parseInt(values[4].toString() + values[5].toString(), 16); 782 }else{ 783 var vals = c.substring(c.indexOf('(') +1, c.length -1).split(', '); 784 var r = vals[0] // extract red 785 var g = vals[1]; // extract green 786 var b = vals[2]; 787 } 788 789 var luma = ((r * 299) + (g * 587) + (b * 114)) / 1000; // per ITU-R BT.709 790 791 return luma>155? true:false; 792 } 793 // Other data 794 $.fn.evo_get_OD = function(){ 795 var ev_cal = $(this); 796 return ev_cal.find('.evo_cal_data').data('od'); 797 } 798 799 // return all filter values for given calendar -- DEP 2.8 800 $.fn.evoGetFilters = function(){ 801 802 var ev_cal = $(this); 803 var evodata = ev_cal.find('.evo-data'); 804 805 var filters_on = ( evodata.attr('data-filters_on')=='true')?'true':'false'; 806 807 // creat the filtering data array if exist 808 if(filters_on =='true'){ 809 var filter_section = ev_cal.find('.eventon_filter_line'); 810 var filter_array = []; 811 812 813 filter_section.find('.eventon_filter').each(function(index){ 814 var filter_val = $(this).attr('data-filter_val'); 815 816 if(filter_val !='all'){ 817 var filter_ar = {}; 818 filter_ar['filter_type'] = $(this).attr('data-filter_type'); 819 filter_ar['filter_name'] = $(this).attr('data-filter_field'); 820 821 if($(this).attr('data-fl_o')=='NOT'){ 822 filter_ar['filter_op']='NOT IN'; 823 } 824 filter_ar['filter_val'] = filter_val; 825 filter_array.push(filter_ar); 826 } 827 }); 828 }else{ 829 var filter_array =''; 830 } 831 return filter_array; 832 } 833 834 835 // get evo data for a given calendar 836 $.fn.evo_getevodata = function(){ 837 838 var ev_cal = $(this); 839 var evoData = {}; 840 841 ev_cal.find('.evo-data').each(function(){ 842 $.each(this.attributes, function(i, attrib){ 843 var name = attrib.name; 844 if(attrib.name!='class' && attrib.name!='style' ){ 845 name__ = attrib.name.split('-'); 846 evoData[name__[1]] = attrib.value; 847 } 848 }); 849 }); 850 851 return evoData; 852 } 853 854 // eventon loading functions 855 // v 2.4.5 856 $.fn.evo_loader_animation = function(opt){ 857 var defaults = { 858 direction:'start' 859 } 860 var OPT = $.extend({}, defaults, opt); 861 862 if(OPT.direction == 'start'){ 863 $(this).find('#eventon_loadbar').slideDown(); 864 }else{ 865 $(this).find('#eventon_loadbar').slideUp(); 866 } 867 } 868 869 // DEPRECATED functions 870 $.fn.evo_item_shortcodes = function(){ 871 var OBJ = $(this); 872 var shortcode_array ={}; 873 OBJ.each(function(){ 874 $.each(this.attributes, function(i, attrib){ 875 var name = attrib.name; 876 if(attrib.name!='class' && attrib.name!='style' && attrib.value !=''){ 877 name__ = attrib.name.split('-'); 878 shortcode_array[name__[1]] = attrib.value; 879 } 880 }); 881 }); 882 return shortcode_array; 883 } 884 $.fn.evo_shortcodes = function(){
885 var ev_cal = $(this); 886 var shortcode_array ={}; 887 888 ev_cal.find('.cal_arguments').each(function(){ 889 $.each(this.attributes, function(i, attrib){ 890 var name = attrib.name; 891 if(attrib.name!='class' && attrib.name!='style' && attrib.value !=''){ 892 name__ = attrib.name.split('-'); 893 shortcode_array[name__[1]] = attrib.value; 894 } 895 }); 896 }); 897 return shortcode_array; 898 } 899 900 901}(jQuery));
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.