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