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