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