1/* 2 Javascript: EventON functions for all calendars 3 version: 0.1 4*/ 5(function($){ 6 // access page GLOBALS 7 $.fn.evo_get_global = function(opt){ 8 var defaults = { S1:'', S2:''} 9 var OPT = $.extend({}, defaults, opt); 10 11 var BUS = $('#evo_global_data').data('d'); 12 13 if(!(OPT.S1 in BUS)) return false; 14 if(!(OPT.S2 in BUS[OPT.S1])) return false; 15 return BUS[OPT.S1][OPT.S2]; 16 } 17 $.fn.evo_get_txt = function(opt){ 18 var defaults = { V:''} 19 var OPT = $.extend({}, defaults, opt); 20 21 var BUS = $('#evo_global_data').data('d'); 22 if(!('txt' in BUS)) return false; 23 if(!(OPT.V in BUS.txt)) return false; 24 return BUS.txt[OPT.V]; 25 } 26 $.fn.evo_get_cal_def = function(opt){ 27 var defaults = { V:''} 28 var OPT = $.extend({}, defaults, opt); 29 30 var BUS = $('#evo_global_data').data('d'); 31 if(!('cal_def' in BUS)) return false; 32 if(!(OPT.V in BUS.cal_def)) return false; 33 return BUS.cal_def[OPT.V]; 34 } 35 36 // Handlebar process template data into html 37 $.fn.evo_HB_process_template = function(opt){ 38 var defaults = { TD:'', part:''} 39 var OPT = $.extend({}, defaults, opt); 40 41 BUS = $('#evo_global_data').data('d'); 42 43 template = Handlebars.compile( BUS.temp[ OPT.part ] ); 44 return template( OPT.TD ); 45 } 46 47 // Date range and events 48 // Date range and events - from webpage 49 $.fn.evo_cal_events_in_range = function(opt){ 50 var defaults = { S:'', E:'', hide: true, 51 closeEC:true, 52 showEV: false, // show events 53 showEVL: false, // show events list 54 }; 55 var OPT = $.extend({}, defaults, opt); 56 var CAL = $(this); 57 58 eJSON = CAL.find('.evo_cal_events').data('events'); 59 60 R = {}; 61 html = ''; 62 json = {}; 63 64 show = 0; 65 66 $.each(eJSON, function(ind, ED){ 67 eO = CAL.find('#event_'+ ED._ID); 68 if(eO === undefined || eO.length==0) return; 69 70 if(OPT.hide) eO.hide(); // pre hide 71 this_show = false; 72 73 // month long or year long events 74 if( ED.month_long || ED.year_long ){ 75 this_show = true; 76 77 }else{ 78 if(CAL.evo_is_in_range({ 79 'S': OPT.S, 'E': OPT.E, 'start': ED.event_start_unix , 'end':ED.event_end_unix 80 })){ 81 this_show = true; 82 } 83 } 84 85 if( this_show){ 86 // show event 87 if( OPT.showEV) eO.show(); 88 89 // close open event cards 90 if(OPT.closeEC && SC.evc_open == 'no') eO.find('.event_description').hide().removeClass('open'); 91 92 html += eO[0].outerHTML; 93 json[ ED._ID] = ED; 94 show++; 95 } 96 }); 97 98 // No events 99 if( OPT.showEV){ 100 tx_noevents = CAL.evo_get_txt({V:'no_events'}); 101 EL = CAL.find('.eventon_events_list'); 102 EL.find('.eventon_list_event.no_events').remove(); 103 if( show == 0 ) 104 EL.append('<div class="eventon_list_event no_events"><p class="no_events">'+tx_noevents+'</p></div>'); 105 } 106 107 // if show events list 108 if( OPT.showEVL){ 109 CAL.find('.eventon_events_list').show().removeClass('evo_hide'); 110 } 111 112 R['count'] = show; 113 R['html'] = html; 114 R['json'] = json; 115 116 return R; 117 } 118 $.fn.evo_is_in_range = function(opt){ 119 var defaults = { S:'', E:'', start:'',end:''} 120 var OPT = $.extend({}, defaults, opt); 121 122 S = parseInt(OPT.S); 123 E = parseInt(OPT.E); 124 start = parseInt(OPT.start); 125 end = parseInt(OPT.end); 126 127 return ( 128 ( start <= S && end >= E ) || 129 ( start <= S && end >= S && end <= E) || 130 ( start <= E && end >= E ) || 131 ( start >= S && end <= E ) 132 ) ? true: false; 133 } 134 $.fn.evo_cal_hide_events = function(){ 135 CAL = $(this); 136 CAL.find('.eventon_list_event').hide(); 137 } 138 139 // DATE time functions @+2.8 140 $.fn.evo_day_in_month = function(opt){ 141 var defaults = { M:'', Y:''} 142 var OPT = $.extend({}, defaults, opt); 143 144 return new Date(OPT.Y, OPT.M, 0).getDate(); 145 } 146 $.fn.evo_get_day_name_index = function(opt){ 147 var defaults = { M:'', Y:'', D:''} 148 var OPT = $.extend({}, defaults, opt); 149 150 //return moment(OPT.Y+'-'+OPT.M+'-'+OPT.D).utc().day(); 151 152 return new Date( Date.UTC(OPT.Y, OPT.M-1, OPT.D) ).getUTCDay(); 153 } 154 155 // page Lightbox functions @+2.8 156 // append to the lightbox main class name .evo_lightbox 157 $.fn.evo_prepare_lb = function(){ 158 $(this).find('.evo_lightbox_body').html(''); 159 } 160 $.fn.evo_show_lb = function(opt){ 161 var defaults = { RTL:'', calid:''} 162 var OPT = $.extend({}, defaults, opt); 163 164 $(this).addClass('show '+ OPT.RTL).attr('data-cal_id', OPT.calid); 165 $('body').trigger('evolightbox_show'); 166 } 167 $.fn.evo_append_lb = function(opt){ 168 var defaults = { C:''} 169 var OPT = $.extend({}, defaults, opt); 170 $(this).find('.evo_lightbox_body').html( OPT.C); 171 } 172 173 // Shortcodes 174 // update shortcode values from filter changes 175 $.fn.evo_update_sc_from_filters = function(){
176 var ev_cal = $(this); 177 SC = ev_cal.find('.evo_cal_data').data('sc'); 178 179 var filter_section = ev_cal.find('.eventon_filter_line'); 180 181 filter_section.find('.eventon_filter').each(function(index){ 182 O = $(this); 183 var filter_val = O.data('filter_val'); 184 filter_val = filter_val == ''? 'NOT-all': filter_val; 185 186 ADD = (O.data('fl_o') && O.data('fl_o') != 'IN')? O.data('fl_o')+'-': ''; 187 SC[ O.data('filter_field') ] = ADD + filter_val; 188 }); 189 190 ev_cal.find('.evo_cal_data').data( 'sc', SC ); 191 } 192 193 // get shortcodes from evo bottom 194 $.fn.evo_shortcode_data = function(){ 195 var ev_cal = $(this); 196 return ev_cal.find('.evo_cal_data').data('sc'); 197 } 198 199 // get shortcode single value 200 $.fn.evo_get_sc_val = function(opt){ 201 var defaults = { F:''} 202 var OPT = $.extend({}, defaults, opt); 203 var ev_cal = $(this); 204 205 if(OPT.F=='') return false; 206 SC = ev_cal.find('.evo_cal_data').data('sc'); 207 if(!(SC[ OPT.F])) return false; 208 return SC[ OPT.F]; 209 } 210 // UPDATE Single value 211 $.fn.evo_update_cal_sc = function(opt){ 212 var defaults = { 213 F:'', V:'' 214 } 215 var OPT = $.extend({}, defaults, opt); 216 var ev_cal = $(this); 217 SC = ev_cal.find('.evo_cal_data').data('sc'); 218 219 SC[ OPT.F ] = OPT.V; 220 221 ev_cal.find('.evo_cal_data').data( 'sc', SC ); 222 } 223 // UPDATE all shortcode values 224 $.fn.evo_update_all_cal_sc = function(opt){ 225 var defaults = {SC:''} 226 var OPT = $.extend({}, defaults, opt); 227 var CAL = $(this); 228 CAL.find('.evo_cal_data').data( 'sc', OPT.SC ); 229 } 230 231 // OTHERS 232 // hex colors // @+2.8 233 $.fn.evo_is_hex_dark = function(opt){ 234 var defaults = { hex:'808080'} 235 var OPT = $.extend({}, defaults, opt); 236 237 hex = OPT.hex; 238 239 var c = hex.replace('#',''); 240 var is_hex = typeof c === 'string' && c.length === 6 && !isNaN(Number('0x' + c)); 241 242 if(is_hex){ 243 var values = c.split(''); 244 r = parseInt(values[0].toString() + values[1].toString(), 16); 245 g = parseInt(values[2].toString() + values[3].toString(), 16); 246 b = parseInt(values[4].toString() + values[5].toString(), 16); 247 }else{ 248 var vals = c.substring(c.indexOf('(') +1, c.length -1).split(', '); 249 var r = vals[0] // extract red 250 var g = vals[1]; // extract green 251 var b = vals[2]; 252 } 253 254 var luma = ((r * 299) + (g * 587) + (b * 114)) / 1000; // per ITU-R BT.709 255 256 return luma>155? true:false; 257 } 258 // Other data 259 $.fn.evo_get_OD = function(){ 260 var ev_cal = $(this); 261 return ev_cal.find('.evo_cal_data').data('od'); 262 } 263 264 // return all filter values for given calendar -- DEP 2.8 265 $.fn.evoGetFilters = function(){ 266 267 var ev_cal = $(this); 268 var evodata = ev_cal.find('.evo-data'); 269 270 var filters_on = ( evodata.attr('data-filters_on')=='true')?'true':'false'; 271 272 // creat the filtering data array if exist 273 if(filters_on =='true'){ 274 var filter_section = ev_cal.find('.eventon_filter_line'); 275 var filter_array = []; 276 277 278 filter_section.find('.eventon_filter').each(function(index){ 279 var filter_val = $(this).attr('data-filter_val'); 280 281 if(filter_val !='all'){ 282 var filter_ar = {}; 283 filter_ar['filter_type'] = $(this).attr('data-filter_type'); 284 filter_ar['filter_name'] = $(this).attr('data-filter_field'); 285 286 if($(this).attr('data-fl_o')=='NOT'){ 287 filter_ar['filter_op']='NOT IN'; 288 } 289 filter_ar['filter_val'] = filter_val; 290 filter_array.push(filter_ar); 291 } 292 }); 293 }else{ 294 var filter_array =''; 295 } 296 return filter_array; 297 } 298 // old shortcode method -- DEP 299 $.fn.evo_item_shortcodes = function(){ 300 var OBJ = $(this); 301 var shortcode_array ={}; 302 OBJ.each(function(){ 303 $.each(this.attributes, function(i, attrib){ 304 var name = attrib.name; 305 if(attrib.name!='class' && attrib.name!='style' && attrib.value !=''){ 306 name__ = attrib.name.split('-'); 307 shortcode_array[name__[1]] = attrib.value; 308 } 309 }); 310 }); 311 return shortcode_array; 312 } 313 $.fn.evo_shortcodes = function(){
314 var ev_cal = $(this); 315 var shortcode_array ={}; 316 317 ev_cal.find('.cal_arguments').each(function(){ 318 $.each(this.attributes, function(i, attrib){ 319 var name = attrib.name; 320 if(attrib.name!='class' && attrib.name!='style' && attrib.value !=''){ 321 name__ = attrib.name.split('-'); 322 shortcode_array[name__[1]] = attrib.value; 323 } 324 }); 325 }); 326 return shortcode_array; 327 } 328 329 // get evo data for a given calendar 330 $.fn.evo_getevodata = function(){ 331 332 var ev_cal = $(this); 333 var evoData = {}; 334 335 ev_cal.find('.evo-data').each(function(){ 336 $.each(this.attributes, function(i, attrib){ 337 var name = attrib.name; 338 if(attrib.name!='class' && attrib.name!='style' ){ 339 name__ = attrib.name.split('-'); 340 evoData[name__[1]] = attrib.value; 341 } 342 }); 343 }); 344 345 return evoData; 346 } 347 348 // eventon loading functions 349 // v 2.4.5 350 $.fn.evo_loader_animation = function(opt){ 351 var defaults = { 352 direction:'start' 353 } 354 var OPT = $.extend({}, defaults, opt); 355 356 if(OPT.direction == 'start'){ 357 $(this).find('#eventon_loadbar').slideDown(); 358 }else{ 359 $(this).find('#eventon_loadbar').slideUp(); 360 } 361 } 362 363 364 365 366}(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.