1var ifso_viewed_triggers = {}; 2 3var ifso_scope = { 4 evalScriptsFromHTML :function(html){ 5 if(typeof(jQuery) !== 'function') 6 return false; 7 8 var el = document.createElement('div'); 9 jQuery(el).append(html); 10 var scripts = ''; 11 jQuery(el).find('script').each(function(index){ 12 scripts += this.innerHTML; 13 }); 14 eval(scripts); 15 }, 16}; 17 18var ajax_triggers_loaded = document.createEvent('Event'); 19ajax_triggers_loaded.initEvent('ifso_ajax_triggers_loaded', true, true); 20ifso_scope.DispatchTriggersLoaded = function () {document.dispatchEvent(ajax_triggers_loaded);}; 21 22var ajax_conditions_loaded = document.createEvent('Event'); 23ajax_conditions_loaded.initEvent('ifso_ajax_conditions_loaded', true, true); 24ifso_scope.DispatchStandaloneCondLoaded = function () {document.dispatchEvent(ajax_conditions_loaded);}; 25 26 27(function( $ ) { 28 'use strict'; 29 30 $(document).ready(function () { 31 function if_so_public(){ 32 for(var ifso_scope_member_name in ifso_scope ){ 33 if(typeof(ifso_scope_member_name) !=='undefined' && typeof(ifso_scope[ifso_scope_member_name])!=='undefined'){ 34 this[ifso_scope_member_name] = ifso_scope[ifso_scope_member_name]; 35 } 36 } 37 } 38 39 if_so_public.prototype = { 40 lookForLoadLaterTriggers : function(defer=false){ 41 var ret = []; 42 var tags = $('IfSoTrigger'); 43 tags.each(function(index,el){ 44 var tid = el.getAttribute('tid'); 45 var deferAttr = el.getAttribute('defer'); 46 if((deferAttr===null && !defer) || (deferAttr!==null && defer)){ 47 if(null!== tid && $.inArray(tid,ret)<0){ 48 ret.push(tid); 49 } 50 } 51 }); 52 return ret; 53 }, 54 55 replaceLoadLaterTriggers : function(defer = false){ 56 var toReplace = this.lookForLoadLaterTriggers(defer); 57 var _this = this; 58 if (toReplace.length>0){ 59 this.sendAjaxReq('render_ifso_shortcodes',{triggers:toReplace,pageload_referrer:referrer_for_pageload},function(ret){ //Referrer from if-so public 60 if(ret && ret!== null){ 61 try{ 62 var data = JSON.parse(ret); 63 $.each(data, function(tid,tval){ 64 var tagsInDom = $('IfSoTrigger[tid="'+tid+'"]'); 65 tagsInDom.each(function(i,tag){ 66 tag.outerHTML = tval; 67 _this.evalScriptsFromHTML(tval); 68 }) 69 }); 70 ifso_scope.DispatchTriggersLoaded(); 71 } 72 catch(e){ 73 console.error('Error fetching if-so triggers!'); 74 console.error(e); 75 } 76 } 77 }) 78 } 79 }, 80 81 lookForStandaloneConditions : function(tags){ 82 var ret = []; 83 tags.each(function(index,el){ 84 var _content = el.getAttribute('content'); 85 var _default = el.getAttribute('default'); 86 var _rule = el.getAttribute('rule'); 87 var _hash = el.getAttribute('hash'); 88 var _data = {'content':_content,'default':_default,'rule':_rule,'hash':_hash}; 89 ret.push(_data); 90 }); 91 return ret; 92 }, 93 94 replaceStandaloneConditions : function(){ 95 var elements = $('IfSoCondition'); 96 var toReplace = this.lookForStandaloneConditions(elements); 97 console.log(toReplace); 98 var _this = this; 99 if(toReplace.length>0){ 100 this.sendAjaxReq('render_ifso_shortcodes',{triggers:JSON.stringify(toReplace),pageload_referrer:referrer_for_pageload,is_standalone_condition:true},function(ret){ //Referrer from if-so public 101 try{ 102 var data = JSON.parse(ret); 103 $.each(data, function(id,val){ 104 elements[id].outerHTML = val; 105 _this.evalScriptsFromHTML(val); 106 }); 107 ifso_scope.DispatchStandaloneCondLoaded(); 108 } 109 catch(e){ 110 console.error('Error fetching if-so standalone conditions!'); 111 console.error(e); 112 } 113 }); 114 } 115 }, 116 117 sendAjaxReq : function(action, data, cb) { 118 data['action'] = action; 119 data['nonce'] = nonce; 120 //data['page_url'] = ifso_page_url; 121 data['page_url'] = window.location.href; 122 123 $.post(ajaxurl, data, function(response) { 124 if (cb) 125 cb(response); 126 }); 127 }, 128 129 getCookie : function(c_name) { 130 var c_value = document.cookie, 131 c_start = c_value.indexOf(" " + c_name + "="); 132 if (c_start == -1) c_start = c_value.indexOf(c_name + "="); 133 if (c_start == -1) { 134 c_value = null; 135 } else { 136 c_start = c_value.indexOf("=", c_start) + 1; 137 var c_end = c_value.indexOf(";", c_start); 138 if (c_end == -1) { 139 c_end = c_value.length; 140 } 141 c_value = unescape(c_value.substring(c_start, c_end)); 142 } 143 return c_value; 144 }, 145 146 createCookie : function(name, value, days) { 147 var expires; 148 if (days) { 149 var date = new Date(); 150 date.setTime(date.getTime()+(days*24*60*60*1000)); 151 expires = "; expires="+date.toGMTString(); 152 } 153 else { 154 expires = ""; 155 } 156 document.cookie = name+"="+value+expires+"; path=/"; 157 }, 158 159 deleteCookie : function( name ) { 160 document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/;"; 161 }, 162 163 initialize_last_viewed_globals : function(){ 164 var cookie = this.getCookie('ifso_last_viewed');
165 try{ 166 var cookieObj = JSON.parse(cookie); 167 ifso_viewed_triggers = cookieObj; 168 } 169 catch(err){console.log('ERR! ' + err)} 170 }, 171 172 ifso_analytics_do_conversion : function(allowed,disallowed){ 173 var allowed_triggers = allowed!=null ? decodeURIComponent(allowed) : false; 174 var disallowed_triggers = disallowed ? decodeURIComponent(disallowed) : false; 175 var params = {an_action:'doConversion',postid:666, data:JSON.stringify(ifso_viewed_triggers)}; 176 if(allowed_triggers) params['allowed'] = allowed_triggers; 177 if(disallowed_triggers) params['disallowed'] = disallowed_triggers; 178 this.sendAjaxReq('ifso_analytics_req',params, function(){}); 179 } 180 }; 181 182 var ifso_public_instance = new if_so_public(); 183 184 ifso_public_instance.replaceLoadLaterTriggers(false); 185 var replace_defered = function(){ 186 ifso_public_instance.replaceLoadLaterTriggers(true); 187 $(document).unbind("click keydown keyup mousemove",replace_defered); 188 }; 189 $(document).on('click keydown keyup mousemove',replace_defered); 190 ifso_public_instance.replaceStandaloneConditions(); 191 $(document).on('ifso_ajax_conditions_loaded',ifso_public_instance.replaceStandaloneConditions.bind(ifso_public_instance)); 192 193 194 if(isPageVisitedOn || isVisitCountEnabled){ //Passed form if-so public 195 ifso_public_instance.sendAjaxReq('ifso_add_page_visit', {ifso_count_visit:parseInt(isVisitCountEnabled),isfo_save_page_visit:parseInt(isPageVisitedOn)}, function(response){}); 196 } 197 198 if(isAnalyticsOn){ //Passed from if-so public 199 ifso_public_instance.initialize_last_viewed_globals(); 200 if(ifso_public_instance.getCookie('ifso_viewing_triggers')) ifso_public_instance.sendAjaxReq('ifso_anal
200ytics_req',{postid:666,an_action:'ajaxViews',data:ifso_public_instance.getCookie('ifso_viewing_triggers') }); 201 202 if($('.ifso-conversion-complete').length>0){ 203 var allowed =[]; 204 var disallowed = []; 205 var doAll = false; 206 $.each($('.ifso-conversion-complete'),function(key,value){ 207 var allowed_here = value.getAttribute('allowed_triggers'); 208 var disallowed_here = value.getAttribute('disallowed_triggers'); 209 if(allowed_here!=null && allowed_here != 'all'){ 210 allowed_here = allowed_here.split(','); 211 allowed = allowed.concat(allowed_here); 212 } 213 else{ 214 doAll = true; 215 } 216 if(disallowed_here!=null){ 217 disallowed_here = disallowed_here.split(','); 218 disallowed = disallowed.concat(disallowed_here); 219 } 220 }); 221 if(disallowed == []) disallowed = false; 222 if(doAll) ifso_public_instance.ifso_analytics_do_conversion(null,disallowed); 223 else ifso_public_instance.ifso_analytics_do_conversion(allowed,disallowed); 224 } 225 } 226 227 228 //Bounce mechanism - not in use for now 229 /*if(getCookie('ifso_bounce')){
230 sendAjaxReq('ifso_analytics_req',{an_action:'decrementField',postid:ifso_last_viewed_trigger.triggerid, versionid:ifso_last_viewed_trigger.versionid, field:'bounce'}, function(){ 231 deleteCookie('ifso_bounce') 232 }); 233 } 234 window.addEventListener('beforeunload',function(e){ 235 if(!getCookie('ifso_bounce')){ 236 createCookie('ifso_bounce'); 237 sendAjaxReq('ifso_analytics_req',{an_action:'incrementField',postid:ifso_last_viewed_trigger.triggerid, versionid:ifso_last_viewed_trigger.versionid, field:'bounce'}, function(){}); 238 } 239 240 });*/ 241 242 243 }); 244 245})( jQuery ); 246
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.