1/* 2 * Javascript: EventON functions for all calendars 3 * @version: 4.6.1 4 */ 5(function($){ 6 7 // Calendar function s 8 $.fn.evo_cal_functions = function(O){ 9 el = this; 10 switch(O.action){ 11 // load shortcodes inside calendar data 12 case 'load_shortcodes': 13 return el.find('.evo_cal_data').data('sc'); 14 break; 15 case 'update_json': 16 //console.log(O.json); 17 el.find('.evo_cal_events').data('events', O.json); 18 break; 19 case 'update_shortcodes': 20 //console.log(O.SC); 21 el.find('.evo_cal_data').data( 'sc', O.SC ); 22 break; 23 } 24 }; 25 26 // access page GLOBALS 27 $.fn.evo_get_global = function(opt){ 28 var defaults = { S1:'', S2:''}; 29 var OPT = $.extend({}, defaults, opt); 30 31 var BUS = $('#evo_global_data').data('d'); 32 33 if(!(OPT.S1 in BUS)) return false; 34 if(!(OPT.S2 in BUS[OPT.S1])) return false; 35 return BUS[OPT.S1][OPT.S2]; 36 } 37 $.fn.evo_get_txt = function(opt){ 38 var defaults = { V:''} 39 var OPT = $.extend({}, defaults, opt); 40 41 var BUS = $('#evo_global_data').data('d'); 42 //console.log(BUS); 43 if(!('txt' in BUS)) return false; 44 if(!(OPT.V in BUS.txt)) return false; 45 return BUS.txt[OPT.V]; 46 } 47 $.fn.evo_get_cal_def = function(opt){ 48 var defaults = { V:''} 49 var OPT = $.extend({}, defaults, opt); 50 51 var BUS = $('#evo_global_data').data('d'); 52 if(!('cal_def' in BUS)) return false; 53 if(!(OPT.V in BUS.cal_def)) return false; 54 return BUS.cal_def[OPT.V]; 55 } 56 57 // return dms translates values from global data 58 // added 4.0 59 $.fn.evo_get_dms_vals = function(opt){ 60 // type = d, d1,d3, m, m3 61 // V = 0-x 62 var defaults = { type:'d', V:''} 63 var OPT = $.extend({}, defaults, opt); 64 65 var BUS = $('#evo_global_data').data('d'); 66 if(!('dms' in BUS)) return false; 67 if(!(OPT.type in BUS.dms)) return false; 68 69 return BUS.dms[ OPT.type ][ OPT.V ]; 70 71 } 72 73 // GENERAL AJAX ACCESS + 4.1.2 74 $.fn.evo_admin_get_ajax = function(opt){ 75 var defs = { 76 'lightbox_key':'', // same as lightbox class 77 'lightbox_loader': true, 78 'load_new_content': true, 79 'load_new_content_id': '', // @since 4.3.5 80 'hide_lightbox':false, // @since 4.3.5 81 'hide_message':2000, // @since 4.3.5 82 'ajaxdata':{ 83 'load_lbcontent':'', 84 'load_new_content':'' 85 }, 86 'uid':'', 87 'end':'admin', // admin or client 88 'loader_el':'', 89 'ajax_type':'ajax', 90 'ajax_action':'', 91 } 92 93 var el = $(this); 94 var OO = $.extend({}, defs, opt); 95 96 var ajaxdata = OO.ajaxdata; 97 98 // passing nonce 99 ajaxdata['nn'] = ( OO.end == 'client' ) ? evo_general_params.n : evo_admin_ajax_handle.postnonce; 100 101 // uid use ajax_action as backup 102 if( OO.uid == '' && OO.ajax_action != '') OO.uid = OO.ajax_action; 103 104 LB = false; 105 if( OO.lightbox_key != '') LB = $('body').find('.evo_lightbox.'+ OO.lightbox_key); 106 107 108 var returnvals = ''; 109 110 // process action value 111 if( 'a' in ajaxdata ) ajaxdata['action'] = ajaxdata.a; 112 113 // add uid into ajax data 114 ajaxdata['uid'] = OO.uid; 115 116 // ajax url processing 117 var ajax_url = el.evo_get_ajax_url({a: OO.ajax_action, e: OO.end, type: OO.ajax_type}); 118 119 //console.log(ajaxdata); 120 //console.log(ajax_url); 121 $.ajax({ 122 beforeSend: function(){ 123 $('body').trigger('evo_ajax_beforesend_' + OO.uid ,[ OO, el ]); 124 if( LB && OO.lightbox_loader){ 125 LB.find('.ajde_popup_text').addClass( 'evoloading loading'); 126 LB.find('.evolb_content').addClass( 'evoloading loading'); 127 } 128 if( OO.loader_el){ 129 $( OO.loader_el ).addClass('evoloading loading'); 130 } 131 }, 132 type: 'POST', 133 url: ajax_url, 134 data: ajaxdata, 135 dataType:'json', 136 success:function(data){ 137 //return; 138 //console.log(OO); 139 if( LB ){ 140 // show message 141 if( 'msg' in data && data.msg != '' && LB){ 142 LB.evo_lightbox_show_msg({'type': data.status, 143 'message':data.msg, 144 hide_lightbox: OO.hide_lightbox, 145 hide_message: OO.hide_message 146 }); 147 } 148 149 // populate content 150 if( OO.ajaxdata.load_lbcontent || OO.ajaxdata.load_new_content || OO.load_new_content ){ 151 // populate a specific dom element with content 152 if( OO.load_new_content_id != '' ){ 153 $('body').find('#'+OO.load_new_content_id ).replaceWith( data.content ); 154 }else{ 155 LB.evo_lightbox_populate_content({content: data.content}); 156 } 157 } 158 }else{ 159 // populate content 160 if( OO.ajaxdata.load_lbcontent || OO.ajaxdata.load_new_content || OO.load_new_content ){ 161 // populate a specific dom element inside with content 162 if( OO.load_new_content_id != '' ){ 163 $('body').find('#'+OO.load_new_content_id ).html( data.content ); 164 } 165 } 166 } 167 168 // for SP content @since 4.5.2 169 if( 'sp_content' in data){ 170 $("body").find('#evops_content').html( data.sp_content); 171 } 172 // SP footer content @since 4.5.2 173 if( 'sp_content_foot' in data){ 174 $("body").find('.evosp_foot').html( data.sp_content_foot); 175 } 176 // process trumbowyg editors 177 $('body').trigger('evo_elm_load_interactivity'); 178 179 //console.log(OO); 180 $('body').trigger('evo_ajax_success_' + OO.uid,[ OO, data , el]); 181 182 },complete:function(){ 183 $('body').trigger('evo_ajax_complete_' + OO.uid ,[ OO , el ]); 184 if( LB && OO.lightbox_loader){ 185 LB.find('.ajde_popup_text').removeClass( 'evoloading loading'); 186 LB.find('.evolb_content').removeClass( 'evoloading loading'); 187 } 188 if( OO.loader_el){ 189 $( OO.loader_el ).removeClass('evoloading loading'); 190 } 191 } 192 }); 193 } 194 195 // submit forms via ligtbox 196 // @since 4.2.2 @updated 4.3.5 197 $.fn.evo_ajax_lightbox_form_submit = function(opt){ 198 var defs = { 199 'lightbox_key':'', // lightbox class 200 'lightbox_loader': true, // show lightbox loading animations 201 'uid':'', 202 'end':'admin', // admin or client 203 'hide_lightbox':false, 204 'hide_message':false, 205 'load_new_content':false, 206 'load_new_content_id':'', 207 'ajax_type':'ajax', 208 'ajax_action':'', 209 } 210 211 var OO = $.extend({}, defs, opt); 212 const el = this; 213 214 const form = this.closest('form');
215 var LB = false; 216 if( OO.lightbox_key != '') LB = $('body').find('.evo_lightbox.'+ OO.lightbox_key); 217 218 if( LB) LB.evo_lightbox_hide_msg(); 219 220 //console.log(OO); 221 222 var ajax_url = el.evo_get_ajax_url({a: OO.ajax_action, e: OO.end, type: OO.ajax_type}); 223 224 form.ajaxSubmit({ 225 beforeSubmit: function(opt, xhr){ 226 $('body').trigger('evo_ajax_beforesend_' + OO.uid ,[ OO , xhr, opt]); // 4.4.2 227 if( LB && OO.lightbox_loader) LB.evo_lightbox_start_inloading(); 228 }, 229 dataType: 'json', 230 url: ajax_url, type: 'POST', 231 success:function(data){ 232 233 $('body').trigger('evo_ajax_success_' + OO.uid,[ OO, data, el ]); 234 235 if( data.status == 'good'){ 236 if(LB && 'msg' in data){ 237 LB.evo_lightbox_show_msg({'type': 'good', 238 'message':data.msg, 239 hide_lightbox: OO.hide_lightbox, 240 hide_message: OO.hide_message 241 }); 242 } 243 244 // populate specific element 245 if( OO.load_new_content && OO.load_new_content_id != ''){ 246 $('body').find('#'+OO.load_new_content_id ).replaceWith( data.content ); 247 }else{ 248 // populate current lightbox 249 if( OO.load_new_content ) LB.evo_lightbox_populate_content({content: data.content}); 250 } 251 252 253 // if ajax data pass dom content to be replaced with run through each and replace - @4.2.3 254 if( 'refresh_dom_content' in data ){ 255 $.each(data.refresh_dom_content, function(domid, content){ 256 $('body').find('#'+ domid).replaceWith( content); 257 }); 258 } 259 260 }else{ 261 LB.evo_lightbox_show_msg({'type': 'bad', 'message':data.msg}); 262 } 263 }, 264 complete:function(){ 265 $('body').trigger('evo_ajax_complete_' + OO.uid ,[ OO ]); 266 $('body').trigger('evo_ajax_form_complete_' + OO.uid ,[ OO , form]); 267 if( LB && OO.lightbox_loader) LB.evo_lightbox_stop_inloading(); 268 } 269 }); 270 } 271 272 // LIGHTBOX version 4.2 273 // @version 4.2 274 $('body').on('click','.evolb_trigger', function(event){ 275 if( event !== undefined ){ 276 event.preventDefault(); 277 event.stopPropagation(); 278 } 279 280 $(this).evo_lightbox_open($(this).data('lbvals')); 281 }); 282 $('body').on('click','.evolb_close_btn', function (){ 283 const LB = $(this).closest('.evo_lightbox'); 284 LB.evo_lightbox_close(); 285 }); 286 287 // @since 4.2.2 288 $('body').on('click','.evolb_trigger_save, .evo_submit_form', function(event){ 289 if( event !== undefined ){ 290 event.preventDefault(); 291 event.stopPropagation(); 292 } 293 $(this).evo_ajax_lightbox_form_submit( $(this).data('d') ); 294 }); 295 296 $('body').on('click','.evo_trigger_ajax_run', function(event){ 297 if( event !== undefined ){ 298 event.preventDefault(); 299 event.stopPropagation(); 300 } 301 $(this).evo_admin_get_ajax( $(this).data('d') ); 302 }); 303 // @since 4.3.3 304 $('body').on('evo_lightbox_trigger', function(event, data){ 305 $('body').evo_lightbox_open(data); 306 }); 307 308 $.fn.evo_lightbox_open = function (opt){ 309 var defaults = { 310 'uid':'', 311 't':'', //title 312 'lbc':'',// * lightbox class - REQUIRED 313 'lbac':'',// ligthbox additional class 4.6 314 'lbsz':'',// lightbox size = mid small 315 'content':'',// passed on dynamic content 316 'content_id' :'',// id to get dynamic content from page 317 'ajax':'no',// use ajax to load content yes no 318 'ajax_url':'', 319 'd':'', // data object for ajax 320 'end':'admin',// admin or client end 321 'other_data':'', 322 'lightbox_loader': false, 323 'preload_temp_key': 'init', // 4.6 324 'load_new_content': true, // @since 4.3.5 325 'lb_padding': 'evopad30', // @4.3.5 326 'ajax_action':'', // @4.4 pass on ajax endpoint action key 327 'ajax_type':'ajax', // @4.4 ajax type, ajax, rest or endpoint 328 }; 329 330 var OO = $.extend({}, defaults, opt); 331 332 const fl_footer = OO.end == 'client' ? '<div class="evolb_footer"></div>' :''; 333 334 // create lightbox HTML 335 var html = '<div class="evo_lightbox '+OO.lbc+' '+OO.end+' '+OO.lbac+'" data-lbc="'+OO.lbc+'"><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><span class="evolb_close_btn evolbclose "><i class="fa fa-xmark"><i></span></div><div class="evolb_content '+ OO.lb_padding +'"></div><p class="message"></p>'+fl_footer+'</div></div></div></div>'; 336 337 $('#evo_lightboxes').append( html ); 338 339 //console.log(OO); 340 341 LIGHTBOX = $('.evo_lightbox.'+ OO.lbc); 342 343 // Open lightbox on page 344 setTimeout( function(){ 345 $('#evo_lightboxes').show(); 346 LIGHTBOX.addClass('show'); 347 $('body').addClass('evo_overflow'); 348 $('html').addClass('evo_overflow'); 349 },300); 350 351 // show loading animation 352 LIGHTBOX.evo_lightbox_show_open_animation(OO); 353 354 //return; 355 356 // Load content 357 // dynamic content within the site 358 if(OO.content_id != ''){ 359 var content = $('#'+ OO.content_id ).html(); 360 LIGHTBOX.find('.evolb_content').html( content); 361 } 362 // load passed on content 363 if(OO.content != ''){ 364 LIGHTBOX.find('.evolb_content').html( OO.content); 365 } 366 367 // run ajax to load content for the lightbox inside 368 if( OO.ajax == 'yes' && OO.d != ''){ 369 370 var D = {}; 371 D = OO.d; 372 373 LB.evo_admin_get_ajax({ 374 ajaxdata: D, 375 ajax_action: OO.ajax_action, 376 ajax_type: OO.ajax_type, 377 lightbox_key: OO.lbc, 378 uid: ( OO.uid != '' ) ? OO.uid : OO.d.uid, 379 end: OO.end, 380 lightbox_loader: OO.lightbox_loader, 381 load_new_content: OO.load_new_content, 382 }); 383 } 384 385 // load content from a AJAX file 386 if( OO.ajax_url != ''){ 387 $.ajax({ 388 beforeSend: function(){}, 389 url: OO.ajax_url, 390 success:function(data){ 391 LIGHTBOX.find('.evolb_content').html( data); 392 },complete:function(){} 393 }); 394 } 395 396 $('body').trigger('evo_lightbox_processed', [ OO, LIGHTBOX]); 397 } 398 399 $.fn.evo_lightbox_close = function (opt){ 400 LB = this; 401 var defaults = { 402 'delay':500, 403 'remove_from_dom':true, 404 }; 405 406 if( !(LB.hasClass('show')) ) return; 407 408 var OO = $.extend({}, defaults, opt); 409 410 var hide_delay = parseInt( OO.delay); 411 412 complete_close = (LB.parent().find('.evo_lightbox.show').length == 1)? true: false;
413 414 if( hide_delay > 500){ 415 setTimeout( function(){ 416 LB.removeClass('show'); 417 }, ( hide_delay - 500 ) ); 418 }else{ 419 LB.removeClass('show'); 420 } 421 422 setTimeout( function(){ 423 if(complete_close){ 424 $('body').removeClass('evo_overflow'); 425 $('html').removeClass('evo_overflow'); 426 } 427 // remove lightbox HTML from DOM 428 if( OO.remove_from_dom) LB.remove(); 429 }, hide_delay); 430 } 431 432 433 // Other LB functions 434 $.fn.evo_lightbox_populate_content = function(opt){ 435 LB = this; 436 var defaults = { 437 'content':'', 438 }; var OO = $.extend({}, defaults, opt); 439 LB.find('.evolb_content').html( OO.content ); 440 } 441 $.fn.evo_lightbox_start_inloading = function(opt){ 442 LB = this; 443 LB.find('.evolb_content').addClass('loading'); 444 } 445 $.fn.evo_lightbox_stop_inloading = function(opt){ 446 LB = this; 447 LB.find('.evolb_content').removeClass('loading'); 448 } 449 $.fn.evo_lightbox_show_msg = function(opt){ 450 LB = this; 451 var defaults = { 452 'type':'good', 453 'message':'', 454 'hide_message': false,// hide message after some time pass time or false 455 'hide_lightbox': false, // hide lightbox after some time of false 456 }; var OO = $.extend({}, defaults, opt); 457 LB.find('.message').removeClass('bad good').addClass( OO.type ).html( OO.message ).fadeIn(); 458 459 if( OO.hide_message ) setTimeout(function(){ LB.evo_lightbox_hide_msg() }, OO.hide_message ); 460 461 if( OO.hide_lightbox ) LB.evo_lightbox_close({ delay: OO.hide_lightbox }); 462 } 463 $.fn.evo_lightbox_hide_msg = function(opt){ 464 LB = this; 465 LB.find('p.message').hide(); 466 } 467 468 469 // add preload animations to lightbox u4.6 470 $.fn.evo_lightbox_show_open_animation = function(opt){ 471 LB = this; 472 var defaults = { 473 'animation_type':'initial', // animation type initial or saving 474 'preload_temp_key': 'init', // 4.6 passed on preload template key 475 'end':'admin', 476 }; 477 var OO = $.extend({}, defaults, opt); 478 479 if( OO.animation_type == 'initial'){ 480 481 passed_data = OO.end == 'admin' ? evo_admin_ajax_handle: evo_general_params; 482 483 html = passed_data.html.preload_general; 484 if( OO.preload_temp_key != 'init') html = passed_data.html[ OO.preload_temp_key ]; 485 LB.find('.evolb_content').html( html ); 486 } 487 488 if( OO.animation_type == 'saving') 489 LB.find('.evolb_content').addClass('loading'); 490 } 491 492 // eventcard Lightbox function v4.6 493 $.fn.evo_cal_lightbox_trigger = function( SC_data , obj, CAL ){ 494 const cancel_class = ( obj.hasClass('cancel_event')) ? ' cancel_event':''; 495 496 var other_data = { 497 extra_classes: 'evo_lightbox_body eventon_list_event evo_pop_body evcal_eventcard event_'+SC_data.event_id +'_'+ SC_data.repeat_interval + cancel_class, 498 CAL:CAL, 499 obj: obj, 500 et_data: obj.find('.evoet_data').data(),// @4.5.5 501 SC: SC_data 502 }; 503 504 // generate a random ID for this 505 maximum = 99; 506 minimum = 10; 507 var randomnumber = Math.floor(Math.random() * (maximum - minimum + 1)) + minimum; 508 509 // lightbox additional class 510 lbac = ''; 511 if( evo_general_params.cal.lbs == 'sc1') lbac = 'within'; 512 if( evo_general_params.cal.lbs == 'sc2') lbac = 'within ecSCR'; 513 514 // AJAX via lightbox 515 if(SC_data.ux_val == '3a'){ 516 517 var new_content = ''; 518 new_content += '<div class="evo_cardlb" style="padding:10px 10px 0 10px">'; 519 new_content += '<div style="margin-bottom:20px; width:100%; height:200px" class="evo_preloading"></div>'; 520 const box = '<div style="display:flex;justify-content: space-between;margin-bottom:10px"><div style="width:40px;height:40px; margin-right:20px" class="evo_preloading"></div> <div style="flex:1 0 auto"> <div class="evo_preloading" style="width:70%; height:20px; margin-bottom:10px"></div><div class="evo_preloading" style="width:100%; height:80px; margin-bottom:10px"></div> </div> </div>'; 521 new_content += box + box + box; 522 new_content += '</div>'; 523 524 525 var data_arg = {}; 526 data_arg['event_id'] = SC_data.event_id; 527 data_arg['ri'] = SC_data.repeat_interval; 528 data_arg['SC'] = SC_data; 529 data_arg['load_lbcontent'] = true; 530 data_arg['action'] = 'eventon_load_single_eventcard_content'; 531 data_arg['uid'] = 'load_single_eventcard_content_3a'; 532 if( CAL ) data_arg['calid'] = CAL.attr('id'); 533 534 535 //reset view to match 536 if( data_arg.SC.tile_style == '2') data_arg.SC.eventtop_style = '0'; 537 data_arg.SC.tile_style = '0'; 538 data_arg.SC.tile_bg = '0'; 539 data_arg.SC.tiles = 'no'; 540 541 $('body').evo_lightbox_open({ 542 uid:'evo_open_eventcard_lightbox', 543 //uid:'load_single_eventcard_content_3a', 544 lbc:'evo_eventcard_'+ randomnumber,lbac: lbac, 545 end:'client', 546 content: new_content, 547 ajax:'yes', 548 ajax_type: 'endpoint', 549 ajax_action: 'eventon_load_single_eventcard_content', 550 d: data_arg, 551 other_data: other_data 552 }); 553 554 // open lightbox using page event content 555 }else{ 556 557 var content = obj.closest('.eventon_list_event').find('.event_description').html(); 558 var _content = $(content).not('.evcal_close'); 559 560 clrW = obj.closest('.eventon_list_event').hasClass('clrW') ? 'clrW':'clrB';//4.6.2 561 562 CAL.evo_lightbox_open({ 563 uid:'evo_open_eventcard_lightbox', 564 lbc:'evo_eventcard_'+ randomnumber,lbac: lbac, 565 end:'client', 566 content: '<div class="evopop_top '+clrW+'">'+ obj.html() +'</div><div class="evopop_body">' + content +'</div>', 567 other_data: other_data 568 }); 569 570 return; 571 } 572 } 573 574 // listerners for lightbox on eventcard 575 $.fn.evo_cal_lb_listeners = function(){ 576 // Listerners 577 // process various lightbox types 578 $('body') 579 .on('evo_lightbox_processed', function(event, OO, LIGHTBOX){ 580 if( OO.uid != 'evo_open_eventcard_lightbox') return false;
581 582 var CAL = OO.other_data.CAL; 583 584 LIGHTBOX.addClass('eventcard eventon_events_list'); 585 LIGHTBOX_content = LIGHTBOX.find('.evolb_content'); 586 LIGHTBOX_content.attr('class', 'evolb_content '+ OO.other_data.extra_classes ); 587 588 var SC = OO.other_data.SC; 589 var obj = OO.other_data.obj; 590 591 //console.log(SC); 592 593 // update border color and eventtop color 594 const evoet_data = OO.other_data.et_data; 595 596 bgcolor = bggrad =''; 597 if( evoet_data ){ 598 bgcolor = evoet_data.bgc; 599 bggrad = evoet_data.bggrad; 600 } 601 602 603 // if tiles and eventtop style set to clean 604 var show_lightbox_color = ( SC.eventtop_style == '0' || SC.eventtop_style == '4') ? false: true; 605 606 if( (CAL && CAL.hasClass('color') && show_lightbox_color) || 607 (!CAL && show_lightbox_color) 608 609 ){ 610 LIGHTBOX_content.addClass('color'); 611 LIGHTBOX_content.find('.evopop_top').css({ 612 'background-color':bgcolor, 613 'background-image': bggrad, 614 }); 615 }else{ 616 LIGHTBOX_content.find('.evopop_top').css({'border-left':'3px solid '+bgcolor}); 617 } 618 619 // trigger 620 if( obj.data('runjs')){ 621 $('body').trigger('evo_load_single_event_content',[ SC.event_id, OO.other_data.obj]); 622 } 623 624 625 // RTL 626 if( SC.evortl =='yes') LIGHTBOX.addClass('evortl'); 627 628 $('body').trigger('evolightbox_end', [ LIGHTBOX , CAL, OO]); // @s4.6 629 630 }) 631 632 // after eventcard content is loaded to lightbox via 3a - @since 4.2.3 633 .on('evo_ajax_success_evo_open_eventcard_lightbox', function (event, OO, data){ 634 635 if( OO.ajaxdata.uid != "load_single_eventcard_content_3a") return false; 636 637 LIGHTBOX = $('.evo_lightbox.'+ OO.lightbox_key); 638 LIGHTBOX_content = LIGHTBOX.find('.evolb_content'); 639 640 CAL = $('body').find('#'+ OO.ajaxdata.calid); 641 642 $('body').trigger('evolightbox_end', [ LIGHTBOX , CAL, OO]); // @s4.6 643 }) 644 ; 645 } 646 647 // Get Ajax url @since 4.4 @u 4.5.5 648 $.fn.evo_get_ajax_url = function(opt){ 649 var defaults = { 650 a:'', // action key 651 e:'client', // end 652 type: 'ajax'}; 653 var OO = $.extend({}, defaults, opt); 654 655 // end point url 656 if( OO.type == 'endpoint'){ 657 var evo_ajax_url = ( OO.e == 'client' )? 658 evo_general_params.evo_ajax_url : evo_admin_ajax_handle.evo_ajax_url; 659 return evo_ajax_url.toString().replace( '%%endpoint%%', OO.a ); 660 // rest api url 661 }else if( OO.type == 'rest' ){ 662 var evo_ajax_url = ( OO.e == 'client' )? 663 evo_general_params.rest_url : evo_admin_ajax_handle.rest_url; 664 //console.log(evo_ajax_url); 665 //console.log(OO); 666 return evo_ajax_url.toString().replace( '%%endpoint%%', OO.a ); 667 }else{ 668 action_add = OO.a != '' ? '?action='+ OO.a: ''; 669 return ( OO.e == 'client' ) ? 670 evo_general_params.ajaxurl + action_add : evo_admin_ajax_handle.ajaxurl + action_add; 671 } 672 } 673 674 // Count down // @+ 4.5 675 $.fn.evo_countdown_get = function(opt){ 676 var defaults = { gap:'', endutc: ''}; 677 var OPT = $.extend({}, defaults, opt); 678 var gap = OPT.gap; 679 680 // if gap not provided use endutc 681 if( gap == '' ){ 682 var Mnow = moment().utc(); 683 var M = moment(); 684 M.set('millisecond', OPT.endutc ); 685 686 gap = OPT.endutc - Mnow.unix(); 687 } 688 689 // if negative gap 690 if( gap < 0){ 691 return { 692 'd': 0, 693 'h':0, 694 'm':0, 695 's':0 696 }; 697 } 698 699 distance = ( gap * 1000); 700 701 var days = Math.floor(distance / (1000 * 60 * 60 * 24)); 702 var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); 703 var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)); 704 var seconds = Math.floor((distance % (1000 * 60)) / 1000); 705 706 minutes = minutes<10? '0'+minutes : minutes; 707 seconds = seconds<10? '0'+seconds : seconds; 708 709 return { 710 'd': days, 711 'h':hours, 712 'm':minutes, 713 's':seconds 714 }; 715 }; 716 // @u 4.5.2 717 $.fn.evo_countdown = function(opt){ 718 var defaults = { S1:''}; 719 var OPT = $.extend({}, defaults, opt); 720 var el = $(this); 721 722 const day_text = ( el.data('d') !== undefined && el.data('d') != '' )? el.data('d'):'Day'; 723 const days_text = ( el.data('ds') !== undefined && el.data('ds') != '' )? el.data('ds'):'Days'; 724 725 // intial run 726 //var gap = parseInt(el.data('gap')); 727 var duration = el.data('dur'); 728 var endutc = parseInt(el.data('endutc')); 729 var text = el.data('t'); 730 731 if(text === undefined) text = ''; 732 733 if( el.hasClass('evo_cd_on')) return; 734 735 // get gap using end time utc 736 var Mnow = moment().utc(); 737 var M = moment(); 738 M.set('millisecond', OPT.endutc ); 739 740 //console.log(Mnow.unix()); 741 //console.log(endutc); 742 743 gap = endutc - Mnow.unix(); 744 745 746 // on initial run - event hasnt happened yet 747 if( gap > 0 ){ 748 749 // initial 750 dd = el.evo_countdown_get({ 'gap': gap }); 751 752 el.html( ( dd.d>0 ? dd.d + ' ' + ( dd.d >1 ? days_text: day_text ) + " " :'') + dd.h + ":" + dd.m +':'+ dd.s +' '+text ); 753
754 el.data('gap', ( gap - 1) ); // save new gap value 755 el.addClass('evo_cd_on'); 756 757 // set intervals 758 var CD = setInterval(function(){ 759 760 gap = el.data('gap'); // get gap for this cycle 761 duration = el.data('dur'); 762 763 const bar_elm = el.closest('.evo_event_progress').find('.evo_ep_bar'); 764 765 // when timer is ticking 766 if( gap > 0 ){ 767 768 // increase bar width if exists 769 if( duration !== undefined && bar_elm.length){ 770 perc = ( (duration - gap)/ duration ) * 100; 771 bar_elm.find('b').css('width',perc+'%'); 772 } 773 774 dd = el.evo_countdown_get({ 'gap': gap }); 775 776 el.html( ( dd.d>0 ? dd.d + ' ' + ( dd.d >1 ? days_text: day_text ) + " ":'') + dd.h + ":" + dd.m +':'+ dd.s +' '+text ); 777 el.data('gap', ( gap - 1) ); 778 779 // when timer expired 780 }else{ 781 782 const expire_timer_action = el.data('exp_act'); 783 784 // perform ajax task after expiration 785 if(expire_timer_action !== undefined){ 786 $('body').trigger('runajax_refresh_now_cal',[ 787 el , 788 el.data('n'), 789 ]); 790 } 791 792 const _complete_text = el.evo_get_txt({V:'event_completed'}); 793 794 // live now text 795 if(bar_elm.length){ 796 bar_elm.addClass('evo_completed'); 797 //el.siblings('.evo_ep_pre').html( _complete_text ); 798 } 799 800 801 // event tag & live elements 802 if( el.closest('.evcal_desc').length){ 803 el.closest('.evcal_desc').find('.eventover').html( _complete_text); 804 el.closest('.evcal_desc').find('.evo_live_now').remove(); 805 } 806 807 // event card 808 if( el.closest('.eventon_list_event').length){ 809 el.closest('.eventon_list_event').find('span.evo_live_now').hide(); 810 } 811 812 el.html(''); 813 clearInterval(CD); 814 } 815 816 },1000); 817 // event has already passed 818 }else{ 819 // if gap is less 820 el.closest('.evo_event_progress').find('.evo_ep_bar').hide(); 821 clearInterval(CD); 822 } 823 }; 824 825 // Handlebar process template data into html 826 $.fn.evo_HB_process_template = function(opt){ 827 var defaults = { TD:'', part:''} 828 var OPT = $.extend({}, defaults, opt); 829 830 BUS = $('#evo_global_data').data('d'); 831 832 template = Handlebars.compile( BUS.temp[ OPT.part ] ); 833 return template( OPT.TD ); 834 } 835 836 // Date range and events @4.5.7 837 // Date range and events - from webpage 838 $.fn.evo_cal_events_in_range = function(opt){ 839 var defaults = { S:'', E:'', 840 hide: true, 841 closeEC:true, 842 showEV: false, // show events 843 showEVL: false, // show events list 844 showAllEvs: false // show all events regardless of the range 845 }; 846 var OPT = $.extend({}, defaults, opt); 847 var CAL = $(this); 848 849 eJSON = CAL.find('.evo_cal_events').data('events'); 850 851 R = {}; 852 html = ''; 853 json = {}; 854 855 show = 0; 856 857 // using events JSON data 858 if( eJSON && eJSON.length > 0){ 859 $.each(eJSON, function(ind, ED){ 860 eO = CAL.find('#event_'+ ED._ID); 861 if(eO === undefined || eO.length==0) return; 862 863 if(OPT.hide) eO.hide(); // pre hide 864 this_show = false; 865 866 // month long or year long events 867 if( ED.month_long || ED.year_long ){ 868 this_show = true; 869 870 }else{ 871 if(CAL.evo_is_in_range({ 872 'S': OPT.S, 'E': OPT.E, 'start': ED.unix_start , 'end':ED.unix_end 873 })){ 874 this_show = true; 875 } 876 } 877 878 if( OPT.showAllEvs) this_show = true; 879 880 if( this_show){ 881 // show event 882 if( OPT.showEV) eO.show(); 883 884 // close open event cards 885 if(OPT.closeEC && SC.evc_open == 'no') eO.find('.event_description').hide().removeClass('open'); 886 887 html += eO[0].outerHTML; 888 json[ ED._ID] = ED; 889 show++; 890 } 891 }); 892 }else{ 893 // get all the events in the events list 894 var cal_events = CAL.find('.eventon_list_event'); 895
896 cal_events.each(function(index, elm){ 897 var ED = $(elm).evo_cal_get_basic_eventdata(); 898 if( !ED) return; 899 900 if(OPT.hide) $(elm).hide(); // pre hide 901 this_show = false; 902 903 // month long or year long events 904 if( $(elm).hasClass('month_long') || $(elm).hasClass('year_long') ){ 905 this_show = true; 906 907 }else{ 908 if(CAL.evo_is_in_range({ 909 'S': OPT.S, 'E': OPT.E, 'start': ED.unix_start , 'end':ED.unix_end 910 })){ 911 this_show = true; 912 } 913 } 914 915 if( OPT.showAllEvs) this_show = true; 916 917 if( this_show){ 918 // show event 919 if( OPT.showEV) $(elm).show(); 920 921 // close open event cards 922 if(OPT.closeEC && SC.evc_open == 'no') 923 $(elm).find('.event_description').hide().removeClass('open'); 924 925 html += $(elm)[0].outerHTML; 926 json[ ED.uID ] = ED; 927 show++; 928 } 929 }); 930 } 931 932 933 // No events 934 if( OPT.showEV){ 935 936 no_event_content = CAL.evo_get_global({S1: 'html', S2:'no_events'}); 937 938 tx_noevents = CAL.evo_get_txt({V:'no_events'}); 939 EL = CAL.find('.eventon_events_list'); 940 EL.find('.eventon_list_event.no_events').remove(); 941 if( show == 0 ) 942 EL.append('<div class="eventon_list_event no_events">'+ no_event_content +'</div>'); 943 } 944 945 // if show events list 946 if( OPT.showEVL){ 947 CAL.find('.eventon_events_list').show().removeClass('evo_hide'); 948 } 949 950 R['count'] = show; 951 R['html'] = html; 952 R['json'] = json; 953 954 return R; 955 } 956 957 // check if an event is in the given date range 958 $.fn.evo_is_in_range = function(opt){ 959 var defaults = { S:'', E:'', start:'',end:''} 960 var OPT = $.extend({}, defaults, opt); 961 962 S = parseInt(OPT.S); 963 E = parseInt(OPT.E); 964 start = parseInt(OPT.start); 965 end = parseInt(OPT.end); 966 967 return ( 968 ( start <= S && end >= E ) || 969 ( start <= S && end >= S && end <= E) || 970 ( start <= E && end >= E ) || 971 ( start >= S && end <= E ) 972 ) ? true: false; 973 } 974 $.fn.evo_cal_hide_events = function(){ 975 CAL = $(this); 976 CAL.find('.eventon_list_event').hide(); 977 } 978 979 // get event data basics from html event on page 980 // ~@version 4.0.3 981 $.fn.evo_cal_get_basic_eventdata = function(){ 982 var ELM = $(this); 983 984 var _time = ELM.data('time'); 985 if( _time === undefined ) return false; 986 987 const time = _time.split('-'); 988 const ri = ELM.data('ri').replace('r',''); 989 const eID = ELM.data('event_id'); 990 991 var _event_title = ELM.find('.evcal_event_title').text(); 992 _event_title = _event_title.replace(/'/g, '''); 993 994 995 var RR = { 996 'uID': eID + '_' + ri, 997 'ID': eID , 998 'event_id': eID , 999 'ri': ri, 1000 'event_start_unix': parseInt(time[0]), 1001 'event_end_unix': parseInt(time[1]), 1002 'ux_val': ELM.find('.evcal_list_a').data('ux_val'), 1003 'event_title': _event_title, 1004 'hex_color': ELM.data('colr'), 1005 'hide_et': ELM.hasClass('no_et') ? 'y':'n', // hide endtime 1006 'evcal_event_color': ELM.data('colr'), 1007 'unix_start': parseInt(time[0]),// @4.5.7 1008 'unix_end': parseInt(time[1]),// @4.5.7 1009 }; 1010 1011 // event type 1012 RR['ett1'] = {}; 1013 ELM.find('.evoet_eventtypes.ett1 .evoetet_val').each(function(){ 1014 RR['ett1'][ $(this).data('id')] = $(this).data('v'); 1015 }); 1016 1017 // since 4.3.5 1018 const eventtop_data = ELM.find('.evoet_data').data('d'); 1019 1020 // location 1021 if('loc.n' in eventtop_data && eventtop_data['loc.n'] != ''){ 1022 RR['location'] = eventtop_data['loc.n']; 1023 } 1024 1025 // organizer 1026 if('orgs' in eventtop_data && eventtop_data.orgs !== undefined ){ 1027 var org_names = ''; 1028 $.each(eventtop_data.orgs, function(index, value){ 1029 org_names += value +' '; 1030 }); 1031 RR['organizer'] = org_names; 1032 } 1033 1034 // event tags @s 4.5.2 1035 if( 'tags' in eventtop_data && eventtop_data.tags !== undefined ){ 1036 //console.log(eventtop_data.tags); 1037 RR['event_tags'] = eventtop_data.tags; 1038 } 1039 1040 1041 return RR; 1042 1043 } 1044 1045 1046 // DATE time functions @+2.8 1047 $.fn.evo_day_in_month = function(opt){ 1048 var defaults = { M:'', Y:''} 1049 var OPT = $.extend({}, defaults, opt); 1050 1051 return new Date(OPT.Y, OPT.M, 0).getDate(); 1052 } 1053 $.fn.evo_get_day_name_index = function(opt){ 1054 var defaults = { M:'', Y:'', D:''} 1055 var OPT = $.extend({}, defaults, opt); 1056 1057 //return moment(OPT.Y+'-'+OPT.M+'-'+OPT.D).utc().day(); 1058 1059 return new Date( Date.UTC(OPT.Y, OPT.M-1, OPT.D) ).getUTCDay(); 1060 } 1061 1062 // LIGHTBOX 1063 // page Lightbox functions @+2.8 1064 // append to the lightbox main class name .evo_lightbox 1065 // Legacy 1066 $.fn.evo_prepare_lb = function(){ 1067 $(this).find('.evo_lightbox_body').html(''); 1068 } 1069 $.fn.evo_show_lb = function(opt){ 1070 var defaults = { RTL:'', calid:''} 1071 var OPT = $.extend({}, defaults, opt); 1072 1073 $(this).addClass('show '+ OPT.RTL).attr('data-cal_id', OPT.calid); 1074 $('body').trigger('evolightbox_show'); 1075 } 1076 $.fn.evo_append_lb = function(opt){ 1077 var defaults = { C:'', CAL:''} 1078 var OPT = $.extend({}, defaults, opt); 1079 $(this).find('.evo_lightbox_body').html( OPT.C); 1080 1081 if( OPT.CAL!= '' && OPT.CAL !== undefined && OPT.CAL.hasClass('color')){ 1082 const LIST = $(this).find('.eventon_events_list'); 1083 if( LIST.length>0){ 1084 LIST.find('.eventon_list_event').addClass('color'); 1085 } 1086 } 1087 } 1088 1089 // event image gallery @4.6 1090 // adjust event image height on lightbox 1091 $.fn.eventon_check_img_size_on_lb = function( ){ 1092 LB = this; 1093 winH = parseInt($( window ).height()); 1094 winW = parseInt($( window ).width()); 1095 1096 var pad = 50; 1097 if( winW < 650) pad = 20; 1098 if( winW < 500) pad = 10; 1099 1100 winH -= pad*2; 1101 winW -= pad*2; 1102
1103 LB = $('body').find('.evolb_ft_img'); 1104 WINratio = winH/winW; 1105 1106 const IMG = LB.find('img'); 1107 IMGratio = parseInt( IMG.data('h') )/ parseInt( IMG.data('w') ); 1108 img_relative_w = parseInt(winH/IMGratio); 1109 1110 if(WINratio < 1 ){// wider window 1111 if(IMGratio<1){// wider image 1112 if(img_relative_w > winW){ // image wider than window 1113 IMG.css({'width': winW ,'height': 'auto' } ); 1114 }else{// image smaller than window width 1115 newIH = winH>parseInt(IMG.data('h'))? parseInt(IMG.data('h')): winH; 1116 newIW = (winH>parseInt(IMG.attr('h')) )? '100%': img_relative_w; 1117 IMG.css({'width': newIW ,'height': newIH } ); 1118 } 1119 }else{ 1120 IMG.css({'width': 'auto' ,'height': winH } ); 1121 } 1122 }else{ 1123 if(IMGratio<1){// wider image 1124 IMG.css({'width': winW ,'height': 'auto' } ); 1125 }else{// taller image 1126 if(img_relative_w > winW){ // relative image wider than window 1127 IMG.css({'width': winW ,'height': 'auto' } ); 1128 }else{ 1129 IMG.css({'width': 'auto' ,'height': winH } ); 1130 } 1131 } 1132 } 1133 } 1134 1135 $.fn.eventon_process_main_ft_img = function(OO){ 1136 IMG = this; 1137 img_sty = 'def'; 1138 if( IMG.hasClass('fit') ) img_sty = 'fit'; 1139 if( IMG.hasClass('full') ) img_sty = 'full'; 1140 1141 box_width = IMG.width(); 1142 box_height = IMG.height(); 1143 1144 img_height = parseInt( IMG.data('h') ); 1145 img_width = parseInt( IMG.data('w') ); 1146 img_ratio = IR = img_height / img_width; // image ratio 1147 1148 // fit style 1149 if( IMG.hasClass('fit')){ 1150 new_width = box_height / img_ratio; 1151 //console.log(new_width+' '+box_height +' '+img_ratio); 1152 new_height = box_height; 1153 if( new_width > box_width ){// width is wider than box 1154 1155 if( IR <1 ){ 1156 new_width = box_width; new_height = IR * new_width; 1157 }else{ 1158 new_height = box_height; new_width = new_height / IR; 1159 } 1160 } 1161 IMG.find('span').css({'width':new_width, 'height': new_height} ); 1162 } 1163 1164 // full style 1165 if( IMG.hasClass('full')){ 1166 new_height = img_ratio * box_width; 1167 new_width = box_width; 1168 IMG.find('span').css({'width':new_width, 'height': new_height} ); 1169 IMG.css({'height': new_height} ); 1170 } 1171 1172 //console.log(box_width +' '+img_width+' '+new_width); 1173 } 1174 1175 // Calendar Data & Shortcodes 1176 // get shortcodes from evo bottom 1177 $.fn.evo_shortcode_data = function(){ 1178 var ev_cal = $(this); 1179 return ev_cal.find('.evo_cal_data').data('sc'); 1180 } 1181 1182 // get filter data @4.6 1183 $.fn.evo_get_filter_data = function(){ 1184 return $(this).find('.evo_cal_data').data('filter_data'); 1185 } 1186 $.fn.evo_cal_get_filter_sub_data = function( tax , key){ 1187 newdata = $(this).evo_get_filter_data(); 1188 1189 return newdata[ tax ][ key ]; 1190 } 1191 $.fn.evo_cal_update_filter_data = function(tax, new_val, key){ 1192 1193 newdata = $(this).evo_get_filter_data(); 1194 1195 if( key === undefined) key = 'nterms'; 1196 1197 newdata[ tax ][ key ] = new_val; 1198 1199 $(this).find('.evo_cal_data').data('filter_data', newdata ); 1200 } 1201 $.fn.evo_cal_get_footer_data = function( key ){ 1202 data = $(this).find('.evo_cal_data').data(); 1203 1204 //console.log(data); 1205 1206 if( data === undefined ) return false; // 4.6.2 1207 if( key in data ) return data[ key ]; 1208 return false; 1209 } 1210 1211 // hide cal data from view 1212 $.fn.evo_cal_hide_data = function(){ 1213 $(this).find('.evo_cal_data').attr({ 1214 'data-sc':'', 1215 'data-filter_data':'', 1216 'data-nav_data':'', 1217 }); 1218 } 1219 1220 // update shortcode values from filter changes @u4.6 1221 $.fn.evo_update_sc_from_filters = function(){ 1222 var el = $(this); 1223 SC = el.evo_shortcode_data(); 1224 1225 $.each( el.evo_get_filter_data() , function(index, value){ 1226 var default_val = value.terms; 1227 var filter_val = value.nterms; 1228 const NOT_values = value.__notvals; 1229 1230 filter_val = filter_val == ''? 'NOT-all': filter_val; 1231 1232 var not_string = ''; 1233 1234 // if NOT filter in place > include that in tax value for query 1235 if( NOT_values!== undefined && NOT_values.length >0 && filter_val != default_val ){ 1236 1237 $.each(NOT_values, function(index, value){ 1238 not_string += 'NOT-'+ value +','; 1239 }); 1240 } 1241 1242 SC[ index ] = not_string + filter_val; 1243 }); 1244 1245 1246 el.find('.evo_cal_data').data( 'sc', SC ); 1247 } 1248 1249 1250 1251 // get shortcode single value 1252 $.fn.evo_get_sc_val = function(opt){ 1253 var defaults = { F:''} 1254 var OPT = $.extend({}, defaults, opt);
1255 var ev_cal = $(this); 1256 1257 if(OPT.F=='') return false; 1258 SC = ev_cal.find('.evo_cal_data').data('sc'); 1259 1260 if(!(SC[ OPT.F])) return false; 1261 return SC[ OPT.F]; 1262 } 1263 // UPDATE Single value 1264 $.fn.evo_update_cal_sc = function(opt){ 1265 var defaults = { 1266 F:'', V:'' 1267 } 1268 var OPT = $.extend({}, defaults, opt); 1269 var ev_cal = $(this); 1270 SC = ev_cal.find('.evo_cal_data').data('sc'); 1271 1272 SC[ OPT.F ] = OPT.V; 1273 1274 ev_cal.find('.evo_cal_data').data( 'sc', SC ); 1275 } 1276 // UPDATE all shortcode values 1277 $.fn.evo_update_all_cal_sc = function(opt){ 1278 var defaults = {SC:''} 1279 var OPT = $.extend({}, defaults, opt); 1280 var CAL = $(this); 1281 CAL.find('.evo_cal_data').data( 'sc', OPT.SC ); 1282 } 1283 1284 // OTHERS 1285 // hex colors // @+2.8 1286 $.fn.evo_is_hex_dark = function(opt){ 1287 var defaults = { hex:'808080'} 1288 var OPT = $.extend({}, defaults, opt); 1289 1290 hex = OPT.hex; 1291 1292 var c = hex.replace('#',''); 1293 var is_hex = typeof c === 'string' && c.length === 6 && !isNaN(Number('0x' + c)); 1294 1295 if(is_hex){ 1296 var values = c.split(''); 1297 r = parseInt(values[0].toString() + values[1].toString(), 16); 1298 g = parseInt(values[2].toString() + values[3].toString(), 16); 1299 b = parseInt(values[4].toString() + values[5].toString(), 16); 1300 }else{ 1301 var vals = c.substring(c.indexOf('(') +1, c.length -1).split(', '); 1302 var r = vals[0] // extract red 1303 var g = vals[1]; // extract green 1304 var b = vals[2]; 1305 } 1306 1307 var luma = ((r * 299) + (g * 587) + (b * 114)) / 1000; // per ITU-R BT.709 1308 1309 return luma>155? true:false; 1310 } 1311 1312 // get rgb from hex code @4.5 1313 $.fn.evo_rgb_process = function(opt){ 1314 var defaults = { data:'808080',type:'rgb', method:'rgb_to_val'} 1315 var opt = $.extend({}, defaults, opt); 1316 1317 const color = opt.data; 1318 1319 // RGB => hex 1320 if( opt.method == 'rgb_to_hex'){ 1321 if(color == '1'){ 1322 return; 1323 }else{ 1324 if(color !=='' && color){ 1325 rgb = color.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/); 1326 1327 return "#" + 1328 ("0" + parseInt(rgb[1],10).toString(16)).slice(-2) + 1329 ("0" + parseInt(rgb[2],10).toString(16)).slice(-2) + 1330 ("0" + parseInt(rgb[3],10).toString(16)).slice(-2); 1331 } 1332 } 1333 } 1334 1335 // RGB => rgb val 1336 if( opt.method == 'rgb_to_val'){ 1337 if( opt.type == 'hex'){ 1338 var rgba = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(color); 1339 var rgb = new Array(); 1340 rgb['r']= parseInt(rgba[1], 16); 1341 rgb['g']= parseInt(rgba[2], 16); 1342 rgb['b']= parseInt(rgba[3], 16); 1343 1344 }else{ 1345 rgb = color; 1346 } 1347 1348 return parseInt((rgb['r'] + rgb['g'] + rgb['b'])/3); 1349 } 1350 } 1351 1352 // Other data 1353 $.fn.evo_get_OD = function(){ 1354 var ev_cal = $(this); 1355 return ev_cal.find('.evo_cal_data').data('od'); 1356 } 1357 1358 1359 1360 // get evo data for a given calendar 1361 $.fn.evo_getevodata = function(){ 1362 1363 var ev_cal = $(this); 1364 var evoData = {}; 1365 1366 ev_cal.find('.evo-data').each(function(){ 1367 $.each(this.attributes, function(i, attrib){ 1368 var name = attrib.name; 1369 if(attrib.name!='class' && attrib.name!='style' ){ 1370 name__ = attrib.name.split('-'); 1371 evoData[name__[1]] = attrib.value; 1372 } 1373 }); 1374 }); 1375 1376 return evoData; 1377 } 1378 1379 // check if mobile device v4.6 1380 $.fn.evo_is_mobile = function(){ 1381 return ( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) )? true: false; 1382 } 1383 1384 // eventon loading functions 1385 // v 2.4.5 -- deprecating 1386 $.fn.evo_loader_animation = function(opt){ 1387 var defaults = { 1388 direction:'start' 1389 } 1390 var OPT = $.extend({}, defaults, opt); 1391 1392 if(OPT.direction == 'start'){ 1393 $(this).find('#eventon_loadbar').slideDown(); 1394 }else{ 1395 $(this).find('#eventon_loadbar').slideUp(); 1396 } 1397 } 1398 1399 // DEPRECATED functions 1400 $.fn.evo_item_shortcodes = function(){ 1401 var OBJ = $(this); 1402 var shortcode_array ={}; 1403 OBJ.each(function(){ 1404 $.each(this.attributes, function(i, attrib){ 1405 var name = attrib.name; 1406 if(attrib.name!='class' && attrib.name!='style' && attrib.value !=''){ 1407 name__ = attrib.name.split('-'); 1408 shortcode_array[name__[1]] = attrib.value; 1409 } 1410 }); 1411 }); 1412 return shortcode_array; 1413 } 1414 $.fn.evo_shortcodes = function(){
1415 var ev_cal = $(this); 1416 var shortcode_array ={}; 1417 1418 ev_cal.find('.cal_arguments').each(function(){ 1419 $.each(this.attributes, function(i, attrib){ 1420 var name = attrib.name; 1421 if(attrib.name!='class' && attrib.name!='style' && attrib.value !=''){ 1422 name__ = attrib.name.split('-'); 1423 shortcode_array[name__[1]] = attrib.value; 1424 } 1425 }); 1426 }); 1427 return shortcode_array; 1428 } 1429 1430 1431}(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.