PageSourceSearch

https://www.jackboise.com/wp-content/plugins/advertise/modules/ajax-reload-banners/js/banner-reload.js?ver=1.5

js jackboise.com collected 2026-10-02 15:37:40 UTC 20,114 bytes, 473 lines download raw bytes

1var ITM_Banner = window.ITM_Banner || {};
2ITM_Banner.ITM_OneCmsBannerLoad = false;
3ITM_Banner.ITM_OneCmsBannerLoad_Flag = '';
4/**
5 * Add banner reload feature
6 */
7window.console.log('hi to banner-reload.js file loaded..........'); //we need this....
8
9"use strict";
10
11//WPB-3497
12jQuery(document).ready(function( $ ){
13	readyFn_BannerAjax( $ , 'document.ready' );
14	ITM_Banner.ITM_OneCmsBannerLoad_Flag = 'document.ready';
15});
16
17//jQuery(document).ready(function($){
18function readyFn_BannerAjax( $ , flagCheck = '') {
19	if (ITM_Banner.ITM_OneCmsBannerLoad) {
20		window.console.log('ITM_OneCmsBannerLoad return : '+flagCheck);
21		window.console.log('ITM_OneCmsBannerLoad_Flag : '+ITM_Banner.ITM_OneCmsBannerLoad_Flag);
22		//donot want to call this func again..... from pjax....
23		return;
24	}
25
26	//we need to call only once. if pjax and or document.ready above.
27	ITM_Banner.ITM_OneCmsBannerLoad = true;
28
29	/* //WD-527 -- commented this because now we have ajax request, instead of direct on page load.
30	// Banners that has no available attribute will no be reloaded, because we assume they are single
31	var banners = $('.js-reload-banner[data-available-banners]');
32	// Add listners to all banners
33	banners.on( 'reload', function(e) {
34		reloadBanner( $(this) );
35	});
36	// Add global listner to page body
37	$('body').on('reload-banners', function() {
38		banners.trigger('reload');
39	});
40	*/
41	window.console.log('readyFn_BannerAjax >> banner-reload.js..... '+flagCheck);
42
43	//*****************************************************************************************************************************************************
44	//stop everything js code from ajax-reaload.php file and used here into one js function.
45	//WD-671 + WD-619
46	var dealyOnEachAjaxRequest = 10; //miliseconds timining on each ajax request. as we have cookie to remove duplicate banners on single page visit.
47	var totalBannerHiddenOnPage = $('.banner-ajax-hidden-class').length;
48	//window.console.log('totalBannerHiddenOnPage : '+totalBannerHiddenOnPage);
49
50	var iBanneCount = 1; var timeOutValue_Last = 0; var displayed_banner_on_page = ''; var bannerDisplayIds = ''; var siteId_Banner = 0; 
51
52	//Stop but keep code as usual.
53	/*var cookieInstanceCode = false; //right now stop to create cookie from js code means instance number wise last banner displayed.
54	var cookieInstanceWithBanner_arr = new Array();*/
55
56	var bannerDisplayedJsArr = new Array(); 
57	$('.banner-ajax-hidden-class').each(function(index, ObjHidden){
58	      	var bannerHiddenValue = ObjHidden.value;
59			if (bannerHiddenValue) {
60				var bannerHiddenValueArr = bannerHiddenValue.split('#:#');
61				
62				var bannerId_Ajax = bannerHiddenValueArr[0];
63				var data_available_Ajax = bannerHiddenValueArr[1];
64				var instance_Ajax = bannerHiddenValueArr[2];
65				var location_Ajax = bannerHiddenValueArr[3];
66				var bannerbinId_Ajax = bannerHiddenValueArr[4];
67				var advPluginUrl_Ajax = bannerHiddenValueArr[5];
68				var siteId_Ajax = bannerHiddenValueArr[6];
69				var inc_path_Ajax = bannerHiddenValueArr[7];
70				var gmt_offset_site_Ajax = bannerHiddenValueArr[8];
71				var is_https_site_Ajax = bannerHiddenValueArr[9];
72				var really_simple_ssl_plugin_Ajax = bannerHiddenValueArr[10];
73				var chk_this = bannerHiddenValueArr[11]; //WPB-5212
74				//window.console.log('bannerId_Ajax : '+bannerId_Ajax);
75				//WD-928
76				var extraBannerHiddenObj = jQuery('#banner-ajax-hidden-extra-'+instance_Ajax);
77
78				//WD-670 -- managing remove duplicate through javascript code, removed ajax dealy and cookie reading code to remove duplicate banners.
79				var bannerId_Ajax_For_div_Id = bannerId_Ajax;
80				//-----------------------------------------------------------------------
81				if (index == 0) {
82					siteId_Banner = siteId_Ajax;
83					//----------------------------------------------
84					//Stop but keep code as usual............
85					/*if (cookieInstanceCode) {
86						var cookieInstanceWithBanner = getCookie_Banner('bannerDisplayed_'+siteId_Banner);
87						//alert(cookieInstanceWithBanner);
88						if (cookieInstanceWithBanner) {
89							var partArr1 = cookieInstanceWithBanner.split("@");
90							//alert(partArr1.length);
91							for (var i = 0; i < partArr1.length; i++) {
92								var partArr2 = partArr1[i].split(":");
93								//alert(partArr2[0] + ' -- ' + partArr2[1]);
94								var instanceNo = partArr2[0];
95								cookieInstanceWithBanner_arr[instanceNo] = partArr2[1];
96							}
97						}
98					}*/
99					//----------------------------------------------
100				}//End of if (index == 0)
101
102				//if data_available_Ajax comma separated banners found then only.
103				var data_available_arr = new Array();
104				if (data_available_Ajax) {
105					data_available_arr = data_available_Ajax.split(",");
106				}
107
108				var index_banner = 0;
109				if (data_available_arr.length > 0) {
110					//make new array and remove banner which is already displayed on page.
111					/*var data_available_arr_new = new Array();
112					var data_available_bannerId = 0;
113					var data_available_bannerIds_new_str = '';
114					var j = 0;
115					for (var i = 0; i < data_available_arr.length; i++) {
116						data_available_bannerId = data_available_arr[i];
117						if (bannerDisplayedJsArr[data_available_bannerId] && bannerDisplayedJsArr[data_available_bannerId] != 'undefined') {
118							//remove which is already displyed. ( from available array check displayed banner and unset it )
119						}
120						else {
121							//if not displyaed then set into new array.
122							data_available_arr_new[j] = data_available_bannerId;
123							data_available_bannerIds_new_str = data_available_bannerId + ',';
124							j++;
125						}
126					}*/
127
128					//instead of direct code, created separate fun. -- WD-928
129					var resultRemoveDuplicateArr = removeDuplicateBannersFromDisplayedBannersJsArr(bannerDisplayedJsArr, data_available_arr);
130					var data_available_arr_new = resultRemoveDuplicateArr['data_available_arr_new'];
131					var data_available_bannerIds_new_str = resultRemoveDuplicateArr['data_available_bannerIds_new_str'];
132
133					if (data_available_arr_new.length > 0) {
134						data_available_arr = data_available_arr_new;
135						data_available_bannerIds_new_str = data_available_bannerIds_new_str.slice(0,-1);
136						//data_available_Ajax = data_available_bannerIds_new_str;
137					}
138
139					//pickup random banner from available banners.
140					index_banner = Math.floor(Math.random() * data_available_arr.length);
141
142					//----------------------------------------------
143					//Stop but keep code as usual............
144					/*if (cookieInstanceWithBanner_arr && cookieInstanceCode) {
145						//for (var i in cookieInstanceWithBanner_arr) {
146						   //alert('key is: ' + i + ', value is: ' + cookieInstanceWithBanner_arr[i]);
147						//}
148						if (cookieInstanceWithBanner_arr[instance_Ajax] && cookieInstanceWithBanner_arr[instance_Ajax] != 'undefined') {
149							var bannerOfInstance = cookieInstanceWithBanner_arr[instance_Ajax];
150							for (var i = 0; i < data_available_arr.length; i++) {
151								if (bannerOfInstance == data_available_arr[i]) {
152									index_banner = i;
153									index_banner = index_banner + 1; //take next index means banner to next from last displyed banner.
154									if (index_banner >= data_available_arr.length) {
155										index_banner = 0; //take first one
156									}
157									break;
158								}
159							}
160						}
161					}//End of if (cookieInstanceWithBanner_arr)*/
162					//----------------------------------------------
163					//overwrite value which will pass into ajax request.
164					bannerId_Ajax = data_available_arr[index_banner];
165				}//End of if (data_available_arr.length > 0)
166				//-----------------------------------------------------------------------
167
168				if (bannerDisplayedJsArr[bannerId_Ajax] && bannerDisplayedJsArr[bannerId_Ajax] != 'undefined') {
169					var donotAllowAjaxRequest = true;
170					//----------------------------------
171					//WD-928 -- check run of sites banners and pickup anyone random.
172					if (extraBannerHiddenObj && extraBannerHiddenObj != 'undefined') {
173						var extraBannerHiddenValue = extraBannerHiddenObj.val();
174						if (extraBannerHiddenValue) {
175							var extraBannerHiddenValueArr = extraBannerHiddenValue.split('#:#');
176							var bannerCommaSepIds = extraBannerHiddenValueArr[0]; //all banners comma sep ids for particular banner bin.
177							var runOfSiteBannerCommaSepIds = extraBannerHiddenValueArr[1]; //only run of sites banners.
178
179							var run_of_sites_banner_arr = new Array();
180							if (runOfSiteBannerCommaSepIds) {
181								run_of_sites_banner_arr = runOfSiteBannerCommaSepIds.split(",");
182								//check run of sites also not duplicates.
183								var resultRemoveDuplicateArr = removeDuplicateBannersFromDisplayedBannersJsArr(bannerDisplayedJsArr, run_of_sites_banner_arr);
184								var data_available_arr_new = resultRemoveDuplicateArr['data_available_arr_new'];
185								var data_available_bannerIds_new_str = resultRemoveDuplicateArr['data_available_bannerIds_new_str'];
186								if (data_available_arr_new.length > 0) {
187									run_of_sites_banner_arr = data_available_arr_new;
188								}
189
190								if (run_of_sites_banner_arr.length > 0) {
191									//pickup run of sites banner and display it.
192									index_banner = Math.floor(Math.random() * run_of_sites_banner_arr.length);
193
194									bannerId_Ajax = run_of_sites_banner_arr[index_banner];
195									donotAllowAjaxRequest = false; //allow run of site banner.
196								}
197							}
198						}//End of if (extraBannerHiddenValue)
199					}
200					//----------------------------------
201					if (donotAllowAjaxRequest) {
202						bannerDisplayIds = bannerDisplayIds + instance_Ajax + ':' + '0' + '@';
203						//window.console.log('advertise-ajax.php file return........');
204						return;
205					}
206				}
207				else {
208					bannerDisplayedJsArr[bannerId_Ajax] = bannerId_Ajax;
209				}
210
211				//window.console.log('advertise-ajax.php file called........');
212				bannerDisplayIds = bannerDisplayIds + instance_Ajax + ':' + bannerId_Ajax + '@';
213
214				//
215				// Send ajax request , after checking duplication into bannerDisplayedJsArr js array.
216				//
217				var urlVal = advPluginUrl_Ajax + 'advertise-ajax.php?bannerAjax=true&callFromFile=ajax-reload.php&bannerId='+bannerId_Ajax+'&dataAvailable='+data_available_Ajax+'&bannerInstance='+instance_Ajax+'&siteId='+siteId_Ajax+'&bannerBinSlug='+location_Ajax+'&bannerbinId='+bannerbinId_Ajax+'&inc_path='+inc_path_Ajax+'&gmt_offset_site='+gmt_offset_site_Ajax+'&is_https='+is_https_site_Ajax+'&https_plug='+really_simple_ssl_plugin_Ajax+'&_wpnonce='+chk_this;
218				/*if (bannerbinId_Ajax == 59 || bannerbinId_Ajax == '59')
219					alert(urlVal);*/
220				var currentUrl = location.href;
221				if(currentUrl.indexOf("https:") >= 0){
222					urlVal = urlVal.replace("http:","https:");
223				}
224
225				var uniqueDivId = 'banner-ajax-div-'+bannerId_Ajax_For_div_Id+'-'+instance_Ajax;
226				if (iBanneCount == 1) {
227					var timeOutValue = 2; //2 milliseconds
228				}
229				else {
230					var timeOutValue = (20 + ((instance_Ajax - 1) * dealyOnEachAjaxRequest));
231				}
232
233				jQuery('#'+uniqueDivId).html('<div style="height:200px;width:250px;" class="banner-loading-div-class"><br /><br />&nbsp;&nbsp;<br /><br /></div>');
234
235				//stop set time out and set async : false to ajax request. so, each ajax request will wait upto first one is not finished.
236				//if async : true then we may need setTimeout() things.
237				//setTimeout( function() {
238						jQuery.ajax({
239								  type: "GET",
240						          url: urlVal,
241						          async: true, //Async:False will hold the execution of rest code. Once you get response of ajax, only then, rest of the code will execute.
242						          /*Setting async to false means that the statement you are calling has to complete before the next statement in your function can be called. 
243						          If you set async: true then that statement will begin it's execution and 
244						          the next statement will be called regardless of whether the async statement has completed yet.*/
245						          //dataType: "html",
246						          success: function(data) {
247						               jQuery('#'+uniqueDivId).html(data);
248						          }//End of success function.
249						 });
250					//}, timeOutValue );
251
252					timeOutValue_Last = timeOutValue;
253
254				iBanneCount++;
255			}//End of if (bannerHiddenValue)
256	});
257	bannerDisplayIds = bannerDisplayIds.slice(0,-1);
258	//Stop but keep code as usual............
259	/*if (cookieInstanceCode)
260		setCookie_Banner('bannerDisplayed_'+siteId_Banner,bannerDisplayIds,1,'/');*/
261
262	//WD-928
263	function removeDuplicateBannersFromDisplayedBannersJsArr(bannerDisplayedJsArr_param, data_available_arr_param) {
264		//make new array and remove banner which is already displayed on page.
265		var data_available_arr_new = new Array();
266		var data_available_bannerId = 0;
267		var data_available_bannerIds_new_str = '';
268
269		var j = 0;
270		for (var i = 0; i < data_available_arr_param.length; i++) {
271			data_available_bannerId = data_available_arr_param[i];
272			if (bannerDisplayedJsArr_param[data_available_bannerId] && bannerDisplayedJsArr_param[data_available_bannerId] != 'undefined') {
273				//remove which is already displyed. ( from available array check displayed banner and unset it )
274			}
275			else {
276				//if not displyaed then set into new array.
277				data_available_arr_new[j] = data_available_bannerId;
278				data_available_bannerIds_new_str = data_available_bannerId + ',';
279				j++;
280			}
281		}
282
283		var resultRetArr = new Array();
284		resultRetArr['data_available_arr_new'] = data_available_arr_new;
285		resultRetArr['data_available_bannerIds_new_str'] = data_available_bannerIds_new_str;
286
287		return resultRetArr;
288	}//End of function removeDuplicateBannersFromDisplayedBannersJsArr	
289	//*****************************************************************************************************************************************************
290
291	//--------------------------------------------------------------------------------
292	//WD-527 -- we have now ajax request for banners. so, we also need ajax div class, instead of direct js-reload-banner
293	var ajax_banners = $('.banner-ajax-div-class');
294	if (ajax_banners && ajax_banners != 'unedefined') {
295		var totalBannerOnPage = 0;
296		totalBannerOnPage = ajax_banners.length;
297		
298		if (totalBannerOnPage > 0) {
299			var millisecondBanner = 0;
300			if (totalBannerOnPage > 1) { //if more than one banner means if 7 then 7-1 = 6. so, 6 * 620 = 3720 milliseconds means near by 4 seconds. 1000 = 1 second.
301				millisecondBanner = ((totalBannerOnPage - 1) * dealyOnEachAjaxRequest) + dealyOnEachAjaxRequest;
302				//used set time out because once all ajax request gets for banners then start changing banner on image gallery.
303				setTimeout(ajax_reloadBanner, millisecondBanner);
304			}
305			else { //if only 1 banner into page.
306				millisecondBanner = totalBannerOnPage * dealyOnEachAjaxRequest;
307				setTimeout(ajax_reloadBanner, millisecondBanner);
308			}
309		}//End of if (totalBannerOnPage > 0)
310	}//End of if (ajax_banners && ajax_banners != 'unedefined')
311	
312	//moved direct code of .js-reload-banner banner into fun of set time out.
313	function ajax_reloadBanner() {
314		// Banners that has no available attribute will no be reloaded, because we assume they are single
315		var banners = $('.js-reload-banner[data-available-banners]');
316		// Add listners to all banners
317		banners.on( 'reload', function(e) {
318			//reloadBanner( $(this) ); //we can stop this and try to use hidden and with reloadBanner_New() function later on.
319			reloadBanner_useCacheFile( $(this) ); //we can comment this to if we want to use hiddedn and reloadBanner_New() fun.
320		});
321		// Add global listner to page body
322		$('body').on('reload-banners', function() {
323			banners.trigger('reload');
324		});
325	}//End of function ajax_reloadBanner
326	
327	/**
328	 * Reload single banner
329	 * @param  {[type]} banner [description]
330	 * @return {[type]}        [description]
331	 */
332	 //reloadBanner -- STOP TO USE THIS FUN INTO ABOVE FUN ajax_reloadBanner() -- we are using reloadBanner_useCacheFile() below fun.
333	function reloadBanner( banner ) {
334		var exclude = banner.prop('data-exclude'),
335			available = banner.attr('data-available-banners').split(','),
336			notDisplayed,
337			targetBannerId;
338
339		// Exit flow if banner has not loaded
340		if ( banner.attr('data-reloading') ) {
341			return;
342		}
343
344		// Either use single banner_id or list of ids to exclude from query
345		if (typeof exclude === 'undefined') {
346			exclude = [ banner.attr('data-banner-id') ];
347		} else if ( exclude !== '' ) {
348			exclude = exclude.split(',');
349		} else {
350			exclude = [];
351		}
352
353		// Get ids that were not yet displayed
354		notDisplayed = $(available).not(exclude).get();
355
356		// If all banners were already displayed -> reset exclude property
357		if ( notDisplayed.length == 0 ) {
358			notDisplayed = available;
359			exclude = [];
360		}
361
362		targetBannerId = notDisplayed.shift();
363
364		// Send request to reload banner
365		$.ajax({
366			url: ajaxurl,
367			data: {
368				action: 'reload_banner',
369				id: targetBannerId
370			},
371			dataType: 'html',
372			beforeSend: function ( xhr ) {
373				// Attribute to prevent banner reload while one has not been loaded
374				banner.attr('data-reloading', '1');
375			}
376		}).success(function(code){
377			// Banner has loaded succefully
378			banner.removeAttr('data-reloading');
379			// Update banner code
380			banner.html(code);
381			// UPdate exclude prop
382			exclude.push(targetBannerId);
383			banner.prop('data-exclude', exclude.join());
384			// 3-rd party integration
385			banner.find('.adv-banner').trigger('reloaded');
386		});
387	}//End of function reloadBanner
388	
389	//WD-527
390	function reloadBanner_useCacheFile( banner ) {
391		var exclude = banner.prop('data-exclude'),
392			available = banner.attr('data-available-banners').split(','),
393			notDisplayed,
394			targetBannerId,
395			instance_banner = banner.attr('data-instance-no'); //for cache.
396
397		// Exit flow if banner has not loaded
398		if ( banner.attr('data-reloading') ) {
399			return;
400		}
401
402		// Either use single banner_id or list of ids to exclude from query
403		if (typeof exclude === 'undefined') {
404			exclude = [ banner.attr('data-banner-id') ];
405		} else if ( exclude !== '' ) {
406			exclude = exclude.split(',');
407		} else {
408			exclude = [];
409		}
410
411		// Get ids that were not yet displayed
412		notDisplayed = $(available).not(exclude).get();
413
414		// If all banners were already displayed -> reset exclude property
415		if ( notDisplayed.length == 0 ) {
416			notDisplayed = available;
417			exclude = [];
418		}
419
420		targetBannerId = notDisplayed.shift();
421		//for cache.
422		var ajaxurl_banner = '';
423		if (instance_banner) {
424			var bannerHiddenObj = jQuery('#banner-ajax-hidden-'+instance_banner);
425			var bannerHiddenValue = bannerHiddenObj.val();
426			if (bannerHiddenValue) {
427				var bannerHiddenValueArr = bannerHiddenValue.split('#:#');
428				
429				var bannerId_GalleryReload = bannerHiddenValueArr[0];
430				var data_available_GalleryReload = bannerHiddenValueArr[1];
431				var instance_GalleryReload = bannerHiddenValueArr[2];
432				var location_GalleryReload = bannerHiddenValueArr[3];
433				var bannerbinId_GalleryReload = bannerHiddenValueArr[4];
434				var advPluginUrl_GalleryReload = bannerHiddenValueArr[5];
435				var siteId_GalleryReload = bannerHiddenValueArr[6];
436				
437				ajaxurl_banner = advPluginUrl_GalleryReload + 'advertise-gallery-ajax.php?bannerGalleryAjax=true&callFromFile=banner-reload.js&bannerId='+targetBannerId+'&dataAvailable='+data_available_GalleryReload+'&bannerInstance='+instance_GalleryReload+'&siteId='+siteId_GalleryReload+'&bannerBinSlug='+location_GalleryReload+'&bannerbinId='+bannerbinId_GalleryReload;
438			}
439		}
440		
441		if (ajaxurl_banner) {
442			
443		}
444		else {
445			return;
446		}
447
448		// Send request to reload banner
449		$.ajax({
450			url: ajaxurl_banner, //for cache.
451			/*data: {
452				action: 'reload_banner',
453				id: targetBannerId
454			},*/
455			dataType: 'html',
456			beforeSend: function ( xhr ) {
457				// Attribute to prevent banner reload while one has not been loaded
458				banner.attr('data-reloading', '1');
459			}
460		}).success(function(code){
461			// Banner has loaded succefully
462			banner.removeAttr('data-reloading');
463			// Update banner code
464			banner.html(code);
465			// UPdate exclude prop
466			exclude.push(targetBannerId);
467			banner.prop('data-exclude', exclude.join());
468			// 3-rd party integration
469			banner.find('.adv-banner').trigger('reloaded');
470		});
471	}//End of function reloadBanner_useCacheFile
472//});
473};

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.