PageSourceSearch

https://www.hot981.com/wp-content/plugins/wpb-post-core/assets/jquery.lightbox.js?ver=1.5

js hot981.com collected 2026-10-02 15:20:36 UTC 48,537 bytes, 1,098 lines download raw bytes

1/**
2 * WP jQuery Lightbox
3 * Version 1.4.5 - 2013-06-09
4 * @author Ulf Benjaminsson (http://www.ulfben.com)
5 * This is a modified version of Warren Krevenkis Lightbox-port (see notice below) for use in the WP jQuery Lightbox-
6 * plugin (http://wordpress.org/extend/plugins/wp-jquery-lightbox/)
7 *  Modifications include:
8 *	. added slideshow
9 *	. added swipe-support
10 *	. added "support" for WordPress admin bar.
11 *	. improved the resizing code to respect aspect ratio
12 *	. improved scaling routines to maximize images while taking captions into account
13 *  . added support for browser resizing and orientation changes
14 *	. grabs image caption from WordPress [gallery] or media library output
15 *	. using WordPress API to localize script (with safe fallbacks)
16 *	. grabs image title if the link lacks one
17 *	. using rel attribute instead of class
18 *	. auto-lightboxing all links after page load
19 *	. replaced explicit IMG-urls with divs, styled through the CSS.
20 *	. honors empty captions / titles
21 *	. use only title if captions is identical
22 *  . added support for disabling all animations
23 *	. using no-conflict mode (for good measure)
24 **/
25/**
26 * jQuery Lightbox
27 * Version 0.5 - 11/29/2007
28 * @author Warren Krewenki
29 * This package is distributed under the BSD license.
30 * For full license information, see LICENSE.TXT
31 * Based on Lightbox 2 by Lokesh Dhakar (http://www.huddletogether.com/projects/lightbox2/)
32 * Originally written to make use of the Prototype framework, and Script.acalo.us, now altered to use jQuery.
33 **/
34 /** toyNN: [email protected]: fixed IE7-8 incompatabilities in 1.3.* branch **/ 
35(function($){
36	//http://stackoverflow.com/a/16187766/347764
37	function versionCompare(a, b){
38		var i, l, d;
39		a = a.split('.');
40		b = b.split('.');
41		l = Math.min(a.length, b.length);
42		for (i=0; i<l; i++) {
43			d = parseInt(a[i], 10) - parseInt(b[i], 10);
44			if (d !== 0) {
45				return d;
46			}
47		}
48		return a.length - b.length;
49	}//End of function versionCompare
50
51    $.fn.lightbox = function(options) {
52        var opts = $.extend({}, $.fn.lightbox.defaults, options);
53		if($("#overlay").is(':visible')){//to resize the overlay whenever doLightbox is invoked
54			$(window).trigger('resize'); //we need this to deal with InfiniteScroll and similar.
55		}
56		function onClick() {
57            initialize();
58            start(this);
59            return false;
60        }	
61		if(versionCompare($.fn.jquery, '1.7') > 0){
62			return $(this).on("click", onClick);
63        }else{
64			return $(this).on("click", onClick); //deprecated since 1.7
65		}
66		function initialize() {
67            $(window).bind('orientationchange', resizeListener);
68            $(window).bind('resize', resizeListener);
69            $('#overlay').remove();
70            $('#lightbox').remove();
71            opts.isIE8 = isIE8(); // //http://www.grayston.net/2011/internet-explorer-v8-and-opacity-issues/
72            opts.inprogress = false;
73			opts.auto = -1;
74			var txt = opts.strings;
75			
76			//WD-187 -- options
77			opts.bannerBinContainerHeight = 0;
78			var bannerBin = true;
79			opts.bannerBin = bannerBin;
80			opts.instanceNo = '';
81			var bannerBinData = '<div id="bannerBinContainer" class="clearfix"></div>'; //Banner comes here.....
82			
83            var outerImage = '<div id="outerImageContainer"><div id="imageContainer"><iframe id="lightboxIframe" /><img id="lightboxImage"><div id="hoverNav"><a href="javascript://" title="' + txt.prevLinkTitle + '" id="prevLink"></a><a href="javascript://" id="nextLink" title="' + txt.nextLinkTitle + '"></a></div><div id="jqlb_loading"><a href="javascript://" id="loadingLink"><div id="jqlb_spinner"></div></a></div></div></div>';
84            var imageData = '<div id="imageDataContainer" class="clearfix"><div id="imageData"><div id="imageDetails"><span id="caption"></span><p id="controls"><span id="numberDisplay"></span> <span id="downloadLink"><a href="" target="'+opts.linkTarget+'">' + txt.download + '</a></span></p></div><div id="bottomNav">';
85            if (opts.displayHelp) {
86                imageData += '<span id="helpDisplay">' + txt.help + '</span>';
87            }
88            imageData += '<a href="javascript://" id="bottomNavClose" title="' + txt.closeTitle + '"><div id="jqlb_closelabel"></div></a></div></div></div>';
89            var string;
90            if (opts.navbarOnTop) {
91            	if (bannerBin)
92            		string = '<div id="overlay"></div><div id="lightbox">' + imageData + outerImage + bannerBinData + '</div>';
93            	else
94                	string = '<div id="overlay"></div><div id="lightbox">' + imageData + outerImage + '</div>';
95                
96                $("body").append(string);
97                $("#imageDataContainer").addClass('ontop');
98                
99                if (bannerBin)
100                	$("#bannerBinContainer").addClass('ontop');
101            } else {
102            	if (bannerBin)
103                	string = '<div id="overlay"></div><div id="lightbox">' + bannerBinData + outerImage + imageData + '</div>';
104                else
105                	string = '<div id="overlay"></div><div id="lightbox">' + outerImage + imageData + '</div>';	
106                $("body").append(string);
107            }
108            $("#overlay").click(function () { end(); }).hide();
109            $("#lightbox").click(function () { end(); }).hide();
110            $("#loadingLink").click(function () { end(); return false; });
111            $("#bottomNavClose").click(function () { end(); return false; });
112            $('#outerImageContainer').width(opts.widthCurrent).height(opts.heightCurrent);
113            $('#imageDataContainer').width(opts.widthCurrent);
114            if (bannerBin)
115            	$('#bannerBinContainer').width(opts.widthCurrent);
116            if (!opts.imageClickClose) {
117                $("#lightboxImage").click(function () { return false; });
118                $("#hoverNav").click(function () { return false; });
119            }
120        };	
121        //allow image to reposition & scale if orientation change or resize occurs.
122        function resizeListener(e) {
123            if (opts.resizeTimeout) {
124                clearTimeout(opts.resizeTimeout);
125                opts.resizeTimeout = false;
126            }
127            opts.resizeTimeout = setTimeout(function () { doScale(); }, 50); //a delay to avoid duplicate event calls.
128        }
129        function getPageSize(){
130            var pgDocHeight = $(document).height();
131            if (opts.isIE8 && pgDocHeight > 4096) {
132                pgDocHeight = 4096;
133            }
134			var viewportHeight = $(window).height() - opts.adminBarHeight;
135			//$(document).width() returns width of HTML document
136            return new Array($(document).width(), pgDocHeight, $(window).width(), viewportHeight, $(document).height());
137        };
138        //code for IE8 check provided by http://kangax.github.com/cft/
139        function isIE8() {
140            var isBuggy = false;
141            if (document.createElement) {
142                var el = document.createElement("div");
143                if (el && el.querySelectorAll) {
144                    el.innerHTML = "<object><param name=\"\"></object>";
145                    isBuggy = el.querySelectorAll("param").length != 1;
146                }
147                el = null;
148            }
149            return isBuggy;
150        };
151        function getPageScroll() {
152            var xScroll = 0; var yScroll = 0;
153            if (self.pageYOffset) {
154                yScroll = self.pageYOffset;
155                xScroll = self.pageXOffset;
156            } else if (document.documentElement && document.documentElement.scrollTop) {  // Explorer 6 Strict
157                yScroll = document.documentElement.scrollTop;
158                xScroll = document.documentElement.scrollLeft;
159            } else if (document.body) {// all other Explorers
160                yScroll = document.body.scrollTop;
161                xScroll = document.body.scrollLeft;
162            }
163			if(opts.adminBarHeight && parseInt($('#wpadminbar').css('top'), 10) === 0){
164				yScroll += opts.adminBarHeight;
165			}
166            return new Array(xScroll, yScroll);
167        };
168		function start(imageLink) {
169           // $("select, embed, object").hide();
170            var arrayPageSize = getPageSize();
171            var arrayPagePos = getPageScroll();
172            var newTop = 0;
173            if (opts.bannerBin)
174            	//tried to add bannerBinContainer height.
175            	//$("#overlay").hide().css({width: arrayPageSize[0] + 'px', height: (arrayPageSize[1] + $("#bannerBinContainer").height()) + 'px', opacity: opts.overlayOpacity}).fadeIn(400);
176            	$("#overlay").hide().css({width: arrayPageSize[0] + 'px', height: arrayPageSize[1] + 'px', opacity: opts.overlayOpacity}).fadeIn(400);
177            else
178            	$("#overlay").hide().css({width: arrayPageSize[0] + 'px', height: arrayPageSize[1] + 'px', opacity: opts.overlayOpacity}).fadeIn(400);
179            
180            if (opts.isIE8 && arrayPageSize[1] == 4096) {
181                if (arrayPagePos[1] >= 1000) {
182                    newTop = arrayPagePos[1] - 1000;
183                    if ((arrayPageSize[4] - (arrayPagePos[1] + 3096)) < 0) {
184                        newTop -= (arrayPagePos[1] + 3096) - arrayPageSize[4];
185                    }
186                    $("#overlay").css({ top: newTop + 'px' });
187                }
188            }
189            var imageNum = 0;
190			var images = [];
191			opts.downloads = {}; //to keep track of any custom download links
192            var instance_gallery_first_time = '';
193
194            //This is the loop of all images into gallery.
195			$("a").each(function(){
196				if(!this.href || (this.rel != imageLink.rel)) {
197					return;
198				}
199				
200				if (opts.bannerBin) {
201					galleryDivId = this.parentNode.parentNode.parentNode.id;
202					galleryIdArr = galleryDivId.split('-');
203
204					instanceNo = galleryIdArr[1];
205                    //alert(instanceNo);
206					opts.instanceNo = instanceNo;
207
208                    instance_gallery_first_time = instanceNo;
209				}
210				
211				var title = '';
212				var caption = '';
213				var captionText = '';
214				var jqThis = $(this);
215				var jqImg = jqThis.children('img:first-child');
216				if (this.title) { //title of link
217					title = this.title;
218				} else if (jqImg.attr('title')) {
219					title = jqImg.attr('title'); //grab the title from the image if the link lacks one
220				} else if(jqImg.attr('alt')){
221					title = jqImg.attr('alt'); //if neither link nor image have a title attribute
222				}
223				if (jqThis.parent().next('.gallery-caption').html()) {
224					var jq = jqThis.parent().next('.gallery-caption');
225					caption = jq.html();
226					captionText = jq.text();
227				} else if (jqThis.next('.wp-caption-text').html()) {
228					caption = jqThis.next('.wp-caption-text').html();
229					captionText = jqThis.next('.wp-caption-text').text();
230				}
231				title = $.trim(title);
232				captionText = $.trim(captionText).replace('&#8217;', '&#039;').replace('’', '\''); //http://nickjohnson.com/b/wordpress-apostrophe-vs-right-single-quote
233				if (title.toLowerCase() == captionText.toLowerCase()) {
234					title = caption; //to keep linked captions
235					caption = ''; //but not duplicate the text
236				}
237				var s = '';
238				if (title != '') {
239					s = '<span id="titleText">' + title + '</span>';
240				}
241				
242                //stop to do this way into for loop..... //WD-547
243				/*if (opts.bannerBin && false) {
244					bannerBinContainerObj = document.getElementById('bannerBinContainer');
245					bannerWidgetCodeObj = document.getElementById('bannerWidgetCode-'+instanceNo);
246                    //bannerActualCodeObj = document.getElementById('banner-ajax-div-6252-2'); //temp check direct value.
247
248					//bannerBinContainerObj.innerHTML = '<div class="js-reload-banner" data-banner-id="676"><div class="adv-banner-center" data-id="676"><a href="http://itmwpb.com?bannerclick=676/" target=""><img src="http://itmwpb.com/wp-content/uploads/2014/12/CAR1_jpg.jpg" alt="CAR1_jpg" height="165" width="305" align="center"></a></div></div>';
249					
250					if (bannerWidgetCodeObj && bannerWidgetCodeObj != 'undefined') {
251						bannerDivInfo = bannerWidgetCodeObj.innerHTML;
252                        //bannerDivInfo = jQuery('#bannerWidgetCode-'+instanceNo).html();
253
254                        //temp check direct value.
255                        //bannerDivInfo = bannerActualCodeObj.innerHTML;
256                        //bannerDivInfo = jQuery('#banner-ajax-div-6252-2').html();
257
258                        //alert(bannerDivInfo);
259						bannerDivInfo = bannerDivInfo.replace("adv-banner", "adv-banner-center");
260
261                        //stop to set this way from here.
262                        bannerBinContainerObj.innerHTML = bannerDivInfo;
263                        //jQuery('#bannerBinContainer').html(bannerDivInfo);
264					}
265				}//End of if (opts.bannerBin)*/
266                                if (jqImg.offsetParent().context.nextElementSibling == null){
267                                    console.log("There is no caption");
268                                } else {
269                                    var title2 = jqImg.offsetParent().context.nextElementSibling.textContent;
270                                    caption = title2;
271                                }
272				if (caption != '') {
273					if (title != ''){
274						s += '<br />';
275					} 
276					s += '<span id="captionText">' + caption +'</span>';
277				}
278				if(opts.displayDownloadLink || jqThis.attr("data-download")){
279					opts.downloads[images.length] = jqThis.attr("data-download"); //use length as an index. convenient since it will always be unique
280				}
281				images.push(new Array(this.href, opts.displayTitle ? s : '', images.length));
282			});
283            if (images.length > 1) {
284                for (i = 0; i < images.length; i++) {
285                    for (j = images.length - 1; j > i; j--) {
286                        if (images[i][0] == images[j][0]) {
287                            images.splice(j, 1);
288                        }
289                    }
290                }
291                while (images[imageNum][0] != imageLink.href) { imageNum++; }
292            }
293            opts.imageArray = images;
294            setLightBoxPos(arrayPagePos[1], arrayPagePos[0]).show();// calculate top and left offset for the lightbox
295            changeImage(imageNum);
296			setNav();
297			//if (opts.bannerBin) {
298				//bannerWidgetCodeObj.innerHTML = '';
299			//}
300            
301            //WD-547
302            //just do this at end of the for loop. but right nos stop this code too.
303            /*if (opts.bannerBin && false) {
304                bannerBinContainerObj = document.getElementById('bannerBinContainer');
305                bannerWidgetCodeObj = document.getElementById('bannerWidgetCode-'+instance_gallery_first_time);
306                //alert(bannerWidgetCodeObj.innerHTML);
307                bannerObjForGallery = getBannerObjectFromGalleryInstanceNo(instance_gallery_first_time);
308                //alert(bannerObjForGallery.innerHTML);
309                jQuery('#bannerBinContainer').html(bannerObjForGallery.innerHTML);
310            }*/
311
312            //WD-547
313            if (opts.bannerBin) {
314                var instance_banner_first_time = 0;
315
316                /*bannerObjForGallery = getBannerObjectFromGalleryInstanceNo(instance_gallery_first_time);
317                //alert(bannerObjForGallery);
318                if (bannerObjForGallery) {
319                    bannerObj = jQuery(bannerObjForGallery);
320                    instance_banner_first_time = bannerObj.attr('data-instance-no');
321                }*/    
322
323                //temp set direct check ajax url by adding here.
324                //var ajaxurl_banner_first_time = 'http://www.kprifm.com/wp-content/plugins/advertise/advertise-gallery-ajax.php?bannerGalleryAjax=true&callFromFile=banner-reload.js&bannerId=6252&dataAvailable=6252,6999&bannerInstance=2&siteId=124&bannerBinSlug=dfp-responsive-test&bannerbinId=123';
325
326                bannerAjaxHiddenObjForGallery = getBannerAjaxHiddenObjectFromGalleryInstanceNo(instance_gallery_first_time);
327                //alert(bannerAjaxHiddenObjForGallery);
328                if (bannerAjaxHiddenObjForGallery) {
329                    bannerAjaxHiddenId = bannerAjaxHiddenObjForGallery.id;
330                    //alert(bannerAjaxHiddenId);
331                    if (bannerAjaxHiddenId) {
332                        idArr = bannerAjaxHiddenId.split('-');
333                        instance_banner_first_time = idArr[idArr.length - 1];
334                    }
335                }
336
337                //for cache.
338                var ajaxurl_banner_first_time = '';
339                //alert(instance_banner_first_time);
340                
341                //instance_banner_first_time = 2; //temp set direct hidden of banner.
342
343                if (instance_banner_first_time) {
344                    var bannerHiddenObj = jQuery('#banner-ajax-hidden-'+instance_banner_first_time);
345                    var bannerHiddenValue = bannerHiddenObj.val();
346                    //alert(bannerHiddenValue);
347                    if (bannerHiddenValue) {
348                        var bannerHiddenValueArr = bannerHiddenValue.split('#:#');
349                        
350                        var bannerId_GalleryReload = bannerHiddenValueArr[0];
351                        var data_available_GalleryReload = bannerHiddenValueArr[1];
352                        var instance_GalleryReload = bannerHiddenValueArr[2];
353                        var location_GalleryReload = bannerHiddenValueArr[3];
354                        var bannerbinId_GalleryReload = bannerHiddenValueArr[4];
355                        var advPluginUrl_GalleryReload = bannerHiddenValueArr[5];
356                        var siteId_GalleryReload = bannerHiddenValueArr[6];
357                        
358                        ajaxurl_banner_first_time = advPluginUrl_GalleryReload + 'advertise-gallery-ajax.php?bannerGalleryAjax=true&callFromFile=banner-reload.js&bannerId='+bannerId_GalleryReload+'&dataAvailable='+data_available_GalleryReload+'&bannerInstance='+instance_GalleryReload+'&siteId='+siteId_GalleryReload+'&bannerBinSlug='+location_GalleryReload+'&bannerbinId='+bannerbinId_GalleryReload;
359                    }
360                }
361
362                //alert(ajaxurl_banner_first_time);
363                
364                if (ajaxurl_banner_first_time) {
365                    var isJWPlayerBanner = false;
366                    var isSimpleBannerImage = false;
367                    var isDFPBanner = false;
368
369                    jQuery.ajax({
370                        url: ajaxurl_banner_first_time, //for cache.
371                        dataType: 'html',
372                        beforeSend: function ( xhr ) {
373
374                        }
375                    }).success(function(code){
376
377                        if (code) {
378                           var isJWPlayerBannerCodePosition = code.search(/content\.jwplatform\.com/ig);
379                           if(isJWPlayerBannerCodePosition > 0) {
380                              isJWPlayerBanner = true;
381                           }
382                           
383                            var isSimpleBannerImageCodePosition = code.search(/cloudfront.net/ig);
384                            if(isSimpleBannerImageCodePosition > 0) {
385                                isSimpleBannerImage = true;
386                            }
387
388                            var isDFPCodePosition = code.search(/googletag/ig);
389                            if(isDFPCodePosition > 0) {
390                                isDFPBanner = true;
391                            }
392                       }//End of if (code)
393
394                       //alert(isJWPlayerBanner + ' -- ' + isSimpleBannerImage + ' -- ' + isDFPBanner);
395
396                        // Update banner code
397                        bannerBinContainerObj = document.getElementById('bannerBinContainer');
398                        bannerDivInfo = code;
399                        bannerDivInfo = bannerDivInfo.replace("adv-banner", "adv-banner-center");
400                        //alert(bannerDivInfo);
401                        //bannerBinContainerObj.innerHTML = bannerDivInfo;
402                        jQuery('#bannerBinContainer').html(bannerDivInfo);
403
404                        /*setTimeout(function(){ bannerBinContainerObj = document.getElementById('bannerBinContainer');
405                            bannerDivInfo = code;  bannerDivInfo = bannerDivInfo.replace("adv-banner", "adv-banner-center");
406                            jQuery('#bannerBinContainer').html(bannerDivInfo);
407                          }, 2000);*/
408                    });
409                }
410            }
411        };
412		function setLightBoxPos(newTop, newLeft) {
413			if (opts.bannerBin) {
414				newTop = 50;
415			}
416            if (opts.resizeSpeed > 0) {
417                return $('#lightbox').animate({ top: newTop+ 'px', left: newLeft+ 'px' }, 250, 'linear');
418            }
419            return $('#lightbox').css({ top: newTop + 'px', left: newLeft + 'px' });
420        };
421        function changeImage(imageNum) {
422            if (opts.inprogress != false) {
423				return;
424			}
425			if(opts.auto > 0){
426				if (opts.bannerBin) {
427					$("html, body").animate({ scrollTop: 0 }, "slow");
428					callReloadBanner(opts.bannerBin, opts.instanceNo);
429				}
430			}
431			opts.inprogress = true;
432			opts.activeImage = imageNum;
433			// hide elements during transition
434			$('#jqlb_loading').show();
435			$('#lightboxImage').hide();
436			$('#hoverNav').hide();
437			$('#prevLink').hide();
438			$('#nextLink').hide();
439			doChangeImage();
440        };
441        function doChangeImage() {
442        	opts.imgPreloader = new Image();
443            /*opts.imgPreloader.onload = function () {
444                $('#lightboxImage').attr('src', opts.imageArray[opts.activeImage][0]);
445                doScale();  // once image is preloaded, resize image container
446                preloadNeighborImages();
447            };*/
448            //-----------------------------------------------------------
449            // opts.bannerBin
450            //Set image sizes to be specific.
451            //Currently it seems that most images are loading at their full size. Try to have the images have a maximum width of 800px
452            opts.imgPreloader.onload = function () {
453            	//http://slopjong.de/2013/04/02/lightbox2-limit-the-max-image-size/
454            	var maxwidth = 800;
455            	//alert('Original image size : ' + opts.imgPreloader.width + ' -- ' + opts.imgPreloader.height);
456            	//if we want to keep original image as it is , if width less than 800
457            	//but if width is max 800 then put it to 800
458            	if(opts.imgPreloader.width > maxwidth) {
459            		var scale = opts.imgPreloader.width / maxwidth;
460				    opts.imgPreloader.width = maxwidth;
461				    opts.imgPreloader.height = opts.imgPreloader.height / scale;
462				    //alert('Image Scale : '+ opts.imgPreloader.width + ' -- ' + opts.imgPreloader.height);
463				    $('#lightboxImage').css("maxWidth", maxwidth + "px");
464				    //$('#lightboxImage').width(maxwidth);
465            	}
466                $('#lightboxImage').attr('src', opts.imageArray[opts.activeImage][0]);
467                doScale();  // once image is preloaded, resize image container
468                preloadNeighborImages();
469            };
470            //-----------------------------------------------------------
471
472            opts.imgPreloader.src = opts.imageArray[opts.activeImage][0];
473        };
474        function doScale() {
475            if (!opts.imgPreloader) {
476                return;
477            }
478            var newWidth = opts.imgPreloader.width;
479            var newHeight = opts.imgPreloader.height;
480            var arrayPageSize = getPageSize();  
481			var noScrollWidth = (arrayPageSize[2] < arrayPageSize[0]) ? arrayPageSize[0] : arrayPageSize[2]; //if viewport is smaller than page, use page width.
482			//alert('doScale : '+arrayPageSize[1] + ' -- ' + $("#bannerBinContainer").height())
483			if (opts.bannerBin) {
484				if (opts.bannerBinContainerHeight) {
485					$("#overlay").css({ width: noScrollWidth + 'px', height: arrayPageSize[1] + 'px' });
486				}
487				else {
488					$("#overlay").css({ width: noScrollWidth + 'px', height: (arrayPageSize[1] + $("#bannerBinContainer").height()) + 'px' });
489					//$("#overlay").css({ width: noScrollWidth + 'px', height: arrayPageSize[1] + 'px' });
490					opts.bannerBinContainerHeight = $("#bannerBinContainer").height();
491				}
492			}
493			else
494				$("#overlay").css({ width: noScrollWidth + 'px', height: arrayPageSize[1] + 'px' });
495			
496			if (opts.bannerBin)
497            	//var maxHeight = (arrayPageSize[3]) - ($("#imageDataContainer").height() + $("#bannerBinContainer").height() + (2 * opts.borderSize));
498            	var maxHeight = (arrayPageSize[3]) - ($("#imageDataContainer").height() + (2 * opts.borderSize));
499            else
500            	var maxHeight = (arrayPageSize[3]) - ($("#imageDataContainer").height() + (2 * opts.borderSize));
501            
502            var maxWidth = (arrayPageSize[2]) - (2*opts.borderSize);
503            //opts.fitToScreen = 1 set by default from js code only, instead of wordpress get option setting.
504			if (opts.fitToScreen){
505				var displayHeight = maxHeight-opts.marginSize;	
506				var displayWidth = maxWidth-opts.marginSize;
507				if($(window).width() > 500){ //high rez display
508					displayHeight -= opts.marginSize;
509					displayWidth -= opts.marginSize;
510				}
511				var ratio = 1;
512                if (newHeight > displayHeight) {
513                    ratio = displayHeight / newHeight; //ex. 600/1024 = 0.58
514                }
515                newWidth = newWidth * ratio;
516                newHeight = newHeight * ratio;
517                ratio = 1;
518                if (newWidth > displayWidth) {
519                    ratio = displayWidth / newWidth; //ex. 800/1280 == 0.62
520                }
521                newWidth = Math.round(newWidth * ratio);
522                newHeight = Math.round(newHeight * ratio);
523            }
524			var arrayPageScroll = getPageScroll();
525			var centerY = arrayPageScroll[1] + (maxHeight * 0.5);
526			var newTop = centerY - newHeight * 0.5;
527			var newLeft = arrayPageScroll[0];
528			//alert('Image set : '+ newWidth + ' -- ' + newHeight); //$('#lightboxImage').width(opts.imgPreloader.width).height(opts.imgPreloader.height);
529			$('#lightboxImage').width(newWidth).height(newHeight);
530			resizeImageContainer(newWidth, newHeight, newTop, newLeft);
531        }; //End of function doScale
532        function resizeImageContainer(imgWidth, imgHeight, lightboxTop, lightboxLeft) {
533            opts.widthCurrent = $("#outerImageContainer").outerWidth();
534            opts.heightCurrent = $("#outerImageContainer").outerHeight();
535            var widthNew = Math.max(300, imgWidth + (opts.borderSize * 2)); //300 = iphone. http://wordpress.org/support/topic/image-not-resized-correctly-with-wptouch?replies=6#post-4205735
536            var heightNew = (imgHeight + (opts.borderSize * 2));
537            // scalars based on change from old to new
538            opts.xScale = (widthNew / opts.widthCurrent) * 100;
539            opts.yScale = (heightNew / opts.heightCurrent) * 100;
540            setLightBoxPos(lightboxTop, lightboxLeft);
541            updateDetails(); //toyNN: moved updateDetails() here, seems to work fine.    
542			$('#imageDataContainer').animate({width:widthNew}, opts.resizeSpeed, 'linear');
543			if (opts.bannerBin)
544				$('#bannerBinContainer').animate({width:widthNew}, opts.resizeSpeed, 'linear');
545			$('#outerImageContainer').animate({width:widthNew,height:heightNew}, opts.resizeSpeed, 'linear', function () {
546					showImage();
547			});
548			if (opts.imageArray.length > 1) {
549                $('#hoverNav').show();
550				$('#prevLink').show();
551				$('#nextLink').show();
552            }
553            $('#prevLink,#nextLink').height(imgHeight);
554        };
555        function showImage() {
556            //assumes updateDetails have been called earlier!
557            $("#imageData").show();
558            $('#caption').show();
559            $('#jqlb_loading').hide();
560            if (opts.resizeSpeed > 0) {
561                $('#lightboxImage').fadeIn("fast", function(){
562					onImageVisible();
563				});
564            } else {
565                $('#lightboxImage').show();
566				onImageVisible();
567            }
568            opts.inprogress = false;
569        };
570		function onImageVisible(){
571			if(opts.auto != -1){
572				clearTimeout(opts.auto); //in case we came here after mouse/keyboard interaction
573				opts.auto = setTimeout(function(){changeImage((opts.activeImage == (opts.imageArray.length - 1)) ? 0 : opts.activeImage + 1);}, opts.slidehowSpeed);
574			}
575			enableKeyboardNav();
576		};
577		function preloadNeighborImages() {
578            if (opts.imageArray.length > 1) {
579                preloadNextImage = new Image();
580                preloadNextImage.src = opts.imageArray[(opts.activeImage == (opts.imageArray.length - 1)) ? 0 : opts.activeImage + 1][0]
581                preloadPrevImage = new Image();
582                preloadPrevImage.src = opts.imageArray[(opts.activeImage == 0) ? (opts.imageArray.length - 1) : opts.activeImage - 1][0]
583            } else {
584                if ((opts.imageArray.length - 1) > opts.activeImage) {
585                    preloadNextImage = new Image();
586                    preloadNextImage.src = opts.imageArray[opts.activeImage + 1][0];
587                }
588                if (opts.activeImage > 0) {
589                    preloadPrevImage = new Image();
590                    preloadPrevImage.src = opts.imageArray[opts.activeImage - 1][0];
591                }
592            }
593        };
594        function updateDetails() {
595            $('#numberDisplay').html('');
596            $('#caption').html('').hide();
597			var images = opts.imageArray;
598			var txt = opts.strings;
599			var i = opts.activeImage;
600			var downloadIndex = images[i][2];
601            if (images[i][1] && opts.showInfo) {
602                $('#caption').html(images[i][1]).show();
603            }
604            var pos = (images.length > 1 && opts.showInfo) ? txt.image + (i + 1) + txt.of + images.length : '';   
605			if(opts.slidehowSpeed && images.length > 1){
606				var pp = (opts.auto === -1) ? txt.play : txt.pause;
607				pos += ' <a id="playpause" href="#">' + pp + '</a>';
608			}
609			if(opts.displayDownloadLink || opts.downloads[downloadIndex]){
610				var url = opts.downloads[downloadIndex] ? opts.downloads[downloadIndex] : images[i][0];
611				$('#downloadLink').show().children().attr("href", url);
612			}else{
613				$('#downloadLink').hide();
614			}
615            if(pos != ''){
616                $('#numberDisplay').html(pos).show();
617            }
618        };	
619        function setNav() {
620            if (opts.imageArray.length > 1) {
621				$('#prevLink').click(function () {
622					if (opts.bannerBin) {
623						$("html, body").animate({ scrollTop: 0 }, "slow");
624						callReloadBanner(opts.bannerBin, opts.instanceNo);
625					}
626					changeImage((opts.activeImage == 0) ? (opts.imageArray.length - 1) : opts.activeImage - 1); return false;
627				});
628				$('#nextLink').click(function () {
629					if (opts.bannerBin) {
630						$("html, body").animate({ scrollTop: 0 }, "slow");
631						callReloadBanner(opts.bannerBin, opts.instanceNo);
632					}
633					changeImage((opts.activeImage == (opts.imageArray.length - 1)) ? 0 : opts.activeImage + 1); return false;
634				});
635				if($.fn.touchwipe){
636					$('#imageContainer').touchwipe({
637						wipeLeft: function() { callReloadBanner(opts.bannerBin, opts.instanceNo); changeImage((opts.activeImage == (opts.imageArray.length - 1)) ? 0 : opts.activeImage + 1); },
638						wipeRight: function() { callReloadBanner(opts.bannerBin, opts.instanceNo); changeImage((opts.activeImage == 0) ? (opts.imageArray.length - 1) : opts.activeImage - 1); },
639						min_move_x: 20,
640						preventDefaultEvents: true
641					});
642				}
643				if(opts.slidehowSpeed){
644					$("#numberDisplay").unbind('click').click(function() {	
645						if(opts.auto != -1){
646							$(this).children("a").text(opts.strings.play);
647							clearTimeout(opts.auto);
648							opts.auto = -1;
649						}else{
650							$(this).children("a").text(opts.strings.pause);
651							opts.auto = setTimeout(function(){changeImage((opts.activeImage == (opts.imageArray.length - 1)) ? 0 : opts.activeImage + 1);}, opts.slidehowSpeed);
652						}
653						return false;
654					});
655				}
656                enableKeyboardNav();
657            }
658        };
659        function end() {
660            disableKeyboardNav();
661			clearTimeout(opts.auto);
662			opts.auto = -1;
663            $('#lightbox').hide();
664            $('#overlay').fadeOut();
665           // $('select, object, embed').show();
666        };
667        function keyboardAction(e) {
668            var o = e.data.opts;
669            var keycode = e.keyCode;
670            var escapeKey = 27;
671            var key = String.fromCharCode(keycode).toLowerCase();
672            if ((key == 'x') || (key == 'o') || (key == 'c') || (keycode == escapeKey)) { // close lightbox
673                end();
674            } else if ((key == 'p') || (keycode == 37)) { // display previous image
675				disableKeyboardNav();
676                changeImage((o.activeImage == 0) ? (o.imageArray.length - 1) : o.activeImage - 1);
677            } else if ((key == 'n') || (keycode == 39)) { // display next image
678                disableKeyboardNav();
679                changeImage((o.activeImage == (o.imageArray.length - 1)) ? 0 : o.activeImage + 1);
680            }
681            return false;
682        };
683        function enableKeyboardNav() {
684			$(document).unbind('keydown').bind('keydown', {opts: opts}, keyboardAction);
685        };
686        function disableKeyboardNav() {
687            $(document).unbind('keydown');
688        };
689    };
690    $.fn.lightbox.defaults = {
691		showInfo:false,
692		adminBarHeight:0, //28
693        overlayOpacity: 0.8,
694        borderSize: 10,
695        imageArray: new Array,
696        activeImage: null,
697        inprogress: false, //this is an internal state variable. don't touch.
698        widthCurrent: 250,
699        heightCurrent: 250,
700        xScale: 1,
701        yScale: 1,
702        displayTitle: true,
703        imageClickClose: true,
704        followScroll: false,
705        isIE8: false  //toyNN:internal value only
706    };	
707	$(document).ready(doLightBox);	
708})(jQuery);
709
710//you can call this manually at any time to activate the lightboxing. (useful for ajax-loaded content)
711function doLightBox(){
712	var haveConf = (typeof JQLBSettings == 'object');	
713	var ss, rs, ms = 0;
714	if(haveConf && JQLBSettings.slideshowSpeed) {
715		 ss = parseInt(JQLBSettings.slideshowSpeed);
716	}
717	if(haveConf && JQLBSettings.resizeSpeed) {
718		rs = parseInt(JQLBSettings.resizeSpeed);
719	}
720	if(haveConf && JQLBSettings.marginSize){
721		ms = parseInt(JQLBSettings.marginSize);
722	}
723	var default_strings = {
724		help: ' Browse images with your keyboard: Arrows or P(revious)/N(ext) and X/C/ESC for close.',
725		prevLinkTitle: 'previous image',
726		nextLinkTitle: 'next image',
727		closeTitle: 'close image gallery',
728		image: 'Image ',
729		of: ' of ',
730		download: 'Download',
731		pause: '(pause slideshow)',
732		play: '(play slideshow)'
733	};
734    try{
735    	jQuery('a[rel^="lightbox"]').lightbox({
736    		adminBarHeight: jQuery('#wpadminbar').height() || 0,
737    		linkTarget: (haveConf && JQLBSettings.linkTarget.length) ? JQLBSettings.linkTarget : '_self',
738    		showInfo: (haveConf && JQLBSettings.showInfo == '0') ? false : true,
739    		displayHelp: (haveConf && JQLBSettings.help.length) ? true : false,
740    		marginSize: (haveConf && ms) ? ms : 0,
741    		//fitToScreen: (haveConf && JQLBSettings.fitToScreen == '1') ? true : false,
742    		fitToScreen: true, // opts.bannerBin
743    		resizeSpeed: (haveConf && rs >= 0) ? rs : 400,
744    		slidehowSpeed: (haveConf && ss >= 0) ? ss : 4000,
745    		displayDownloadLink: (haveConf && JQLBSettings.displayDownloadLink == '0') ? false : true,
746    		navbarOnTop: (haveConf && JQLBSettings.navbarOnTop == '0') ? false : true,
747    		//navbarOnTop: true,
748    		strings: (haveConf && typeof JQLBSettings.help == 'string') ? JQLBSettings : default_strings
749    	});	
750    }catch(e){
751        //alert(e);
752    }
753}//End of function doLightBox
754
755//----------- functions created for banner light window -------------------------------------------------------------
756function getBannerAjaxHiddenObjectFromGalleryInstanceNo(instanceNo) {
757    bannerWidgetCodeObj = document.getElementById('bannerWidgetCode-'+instanceNo);
758    if (bannerWidgetCodeObj && bannerWidgetCodeObj != 'undefined') {
759        widgetCodeChildElements = bannerWidgetCodeObj.childNodes;
760        var i;
761        for (i = 0; i < widgetCodeChildElements.length; i++) {
762            //alert(widgetCodeChildElements[i]);
763            eltObj = widgetCodeChildElements[i];
764            if (eltObj && eltObj != 'undefined') {
765                try {
766                    if (eltObj.tagName) {
767                        if (eltObj.tagName.toLowerCase() == 'input') {
768                            if (eltObj.type.toLowerCase() == 'hidden') {
769                                return eltObj;
770                                break;
771                            }
772                        }
773                    }    
774                }
775                catch(e) {}
776            }
777        }
778    }
779}//End of function getBannerAjaxHiddenObjectFromGalleryInstanceNo
780
781function getBannerObjectFromGalleryInstanceNo(instanceNo) {
782    bannerWidgetCodeObj = document.getElementById('bannerWidgetCode-'+instanceNo);
783    if (bannerWidgetCodeObj && bannerWidgetCodeObj != 'undefined') {
784        //reloadBanner_LightWindow(bannerWidgetCodeObj.firstChild); //now we have ajax div and inside that we have banner code with its own div.
785        
786        //-----------------------------------------------------------------------------------------------
787        //WD-527
788        widgetCodeChildElements = bannerWidgetCodeObj.childNodes;
789        //.children
790        var i;
791        for (i = 0; i < widgetCodeChildElements.length; i++) {
792            //alert(widgetCodeChildElements[i]);
793            eltObj = widgetCodeChildElements[i];
794            if (eltObj && eltObj != 'undefined') {
795                try {
796                    if (eltObj.tagName) {
797                        if (eltObj.tagName.toLowerCase() == 'div') {
798                            //alert(eltObj.className);
799                            
800                            if (eltObj.className) {
801                                if (eltObj.className == 'banner-ajax-div-class') {
802                                    ajaxDivChildElements = eltObj.childNodes;
803                                    //alert(ajaxDivChildElements.length);
804                                    var j;
805                                    for (j = 0; j < ajaxDivChildElements.length; j++) {
806                                        //alert(ajaxDivChildElements[j]);
807                                        if (ajaxDivChildElements[j].tagName) {
808                                            if (ajaxDivChildElements[j].tagName.toLowerCase() == 'div') {
809                                                if (ajaxDivChildElements[j].className == 'js-reload-banner') {
810                                                    return ajaxDivChildElements[j];
811                                                    break;
812                                                }
813                                            }
814                                        }
815                                    }//End of for (j = 0; j < ajaxDivChildElements.length; j++)
816                                }
817                            }//End of if (eltObj.className)
818                            
819                        }
820                    }//End of if (eltObj.tagName)
821                }
822                catch(e) {}
823            }
824        }//End of for (i = 0; i < widgetCodeChildElements.length; i++)
825        //-----------------------------------------------------------------------------------------------
826    }
827
828    return null;
829}//End of function getBannerObjectFromGalleryInstanceNo
830
831function getBannerObjectFromLightBoxBannerBinContainer(instanceNo) {
832    bannerBinContainerObj = document.getElementById('bannerBinContainer');
833    if (bannerBinContainerObj && bannerBinContainerObj != 'undefined') {
834        lightboxBannerBinContChildElements = bannerBinContainerObj.childNodes;
835        var i;
836        for (i = 0; i < lightboxBannerBinContChildElements.length; i++) {
837            eltObj = lightboxBannerBinContChildElements[i];
838            if (eltObj && eltObj != 'undefined') {
839                //alert(eltObj.innerHTML);
840                try {
841                    if (eltObj.tagName) {
842                        if (eltObj.tagName.toLowerCase() == 'div') {
843                            if (eltObj.className) {
844                                if (eltObj.className == 'js-reload-banner') {
845                                    return eltObj;
846                                    break;
847                                }
848                            }
849                        }
850                    }
851                }
852                catch(e) {}
853            }
854        }
855    }
856
857    return null;
858}//End of function getBannerObjectFromLightBoxBannerBinContainer
859
860//new function // opts.bannerBin
861function callReloadBanner(bannerBin, instanceNo) {
862	if (bannerBin) {
863        
864        /*bannerObjForGallery = getBannerObjectFromGalleryInstanceNo(instanceNo);
865
866        if (bannerObjForGallery) {
867            //reloadBanner_LightWindow(bannerObjForGallery); //stop ajaxurl and stop calling db fun diz_get_banner_by_id()
868            reloadBanner_LightWindow_useCacheFile(bannerObjForGallery); //used ajaxurl_banner and used cache file.
869        }*/
870
871        bannerObjForGallery = getBannerObjectFromLightBoxBannerBinContainer(instanceNo);
872        if (bannerObjForGallery) {
873            reloadBanner_LightWindow_useCacheFile(bannerObjForGallery);
874        }
875
876	}
877}//End of function callReloadBanner
878
879//new function // opts.bannerBin
880function reloadBanner_LightWindow( banner ) {
881	bannerObj = jQuery(banner);
882	
883	var exclude = bannerObj.prop('data-exclude'),
884		//available = banner.getAttribute("data-available-banners").split(','),
885		//available = bannerObj.attr("data-available-banners").split(','),
886		notDisplayed,
887		targetBannerId;
888	
889	//check if data-available-banners found then only change banner image on click of next and previous button.
890	try {
891		var available = banner.getAttribute("data-available-banners").split(',');
892	}
893	catch(e) {
894		//if only one banner into banner bins OR if no banner into banner bins then we will not get data-available-banners. so, just return from here.
895		var available = [];
896		return;
897	}
898	
899	// Exit flow if banner has not loaded
900	if ( bannerObj.attr('data-reloading') ) {
901		return;
902	}
903	
904	// Either use single banner_id or list of ids to exclude from query
905	if (typeof exclude === 'undefined') {
906		exclude = [ banner.getAttribute('data-banner-id') ];
907	} else if ( exclude !== '' ) {
908		exclude = exclude.split(',');
909	} else {
910		exclude = [];
911	}
912	//ajaxurl = 'http://itmwpb.com/wp-admin/admin-ajax.php';
913	
914	// Get ids that were not yet displayed
915	notDisplayed = jQuery(available).not(exclude).get();
916	
917	// If all banners were already displayed -> reset exclude property
918	if ( notDisplayed.length == 0 ) {
919		notDisplayed = available;
920		exclude = [];
921	}
922	
923	targetBannerId = notDisplayed.shift();
924	
925	// Send request to reload banner
926	jQuery.ajax({
927		url: ajaxurl,
928		data: {
929			action: 'reload_banner',
930			id: targetBannerId
931		},
932		dataType: 'html',
933		beforeSend: function ( xhr ) {
934			// Attribute to prevent banner reload while one has not been loaded
935			bannerObj.attr('data-reloading', '1');
936		}
937	}).success(function(code){
938		
939		// Banner has loaded succefully
940		bannerObj.removeAttr('data-reloading');
941		
942		// Update banner code
943		bannerBinContainerObj = document.getElementById('bannerBinContainer');
944		bannerDivInfo = code;
945		bannerDivInfo = bannerDivInfo.replace("adv-banner", "adv-banner-center");
946		bannerBinContainerObj.innerHTML = bannerDivInfo;
947		
948		/*bannerBinContainerObj = jQuery(bannerBinContainerObj);
949		// Update banner code
950		bannerBinContainerObj.html(code);*/
951		
952		// UPdate exclude prop
953		exclude.push(targetBannerId);
954		bannerObj.prop('data-exclude', exclude.join());
955
956		// 3-rd party integration
957		bannerObj.find('.adv-banner').trigger('reloaded');
958	});
959}//End of function reloadBanner_LightWindow
960
961//WD-527
962function reloadBanner_LightWindow_useCacheFile( banner ) {
963	bannerObj = jQuery(banner);
964	
965	var exclude = bannerObj.prop('data-exclude'),
966		//available = banner.getAttribute("data-available-banners").split(','),
967		//available = bannerObj.attr("data-available-banners").split(','),
968		notDisplayed,
969		targetBannerId,
970		instance_banner = bannerObj.attr('data-instance-no'); //for cache.
971	
972	//check if data-available-banners found then only change banner image on click of next and previous button.
973	try {
974		var available = banner.getAttribute("data-available-banners").split(',');
975	}
976	catch(e) {
977		//if only one banner into banner bins OR if no banner into banner bins then we will not get data-available-banners. so, just return from here.
978		var available = [];
979		return;
980	}
981	
982	// Exit flow if banner has not loaded
983	if ( bannerObj.attr('data-reloading') ) {
984		return;
985	}
986	
987	// Either use single banner_id or list of ids to exclude from query
988	if (typeof exclude === 'undefined') {
989		exclude = [ banner.getAttribute('data-banner-id') ];
990	} else if ( exclude !== '' ) {
991		exclude = exclude.split(',');
992	} else {
993		exclude = [];
994	}
995	//ajaxurl = 'http://itmwpb.com/wp-admin/admin-ajax.php';
996	
997	// Get ids that were not yet displayed
998	notDisplayed = jQuery(available).not(exclude).get();
999	
1000	// If all banners were already displayed -> reset exclude property
1001	if ( notDisplayed.length == 0 ) {
1002		notDisplayed = available;
1003		exclude = [];
1004	}
1005	
1006	targetBannerId = notDisplayed.shift();
1007	
1008	//for cache.
1009	var ajaxurl_banner = '';
1010	//alert(instance_banner);
1011	
1012	if (instance_banner) {
1013		var bannerHiddenObj = jQuery('#banner-ajax-hidden-'+instance_banner);
1014		var bannerHiddenValue = bannerHiddenObj.val();
1015		//alert(bannerHiddenValue);
1016		if (bannerHiddenValue) {
1017			var bannerHiddenValueArr = bannerHiddenValue.split('#:#');
1018			
1019			var bannerId_GalleryReload = bannerHiddenValueArr[0];
1020			var data_available_GalleryReload = bannerHiddenValueArr[1];
1021			var instance_GalleryReload = bannerHiddenValueArr[2];
1022			var location_GalleryReload = bannerHiddenValueArr[3];
1023			var bannerbinId_GalleryReload = bannerHiddenValueArr[4];
1024			var advPluginUrl_GalleryReload = bannerHiddenValueArr[5];
1025			var siteId_GalleryReload = bannerHiddenValueArr[6];
1026			
1027			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;
1028		}
1029	}
1030	
1031	if (ajaxurl_banner) {
1032		
1033	}
1034	else {
1035		return;
1036	}
1037
1038    //alert(ajaxurl_banner);
1039
1040   var isJWPlayerBa
1040nner = false;
1041   var isSimpleBannerImage = false;
1042   var isDFPBanner = false;
1043
1044	// Send request to reload banner
1045	jQuery.ajax({
1046		url: ajaxurl_banner, //for cache.
1047		/*data: {
1048			action: 'reload_banner',
1049			id: targetBannerId
1050		},*/
1051		dataType: 'html',
1052		beforeSend: function ( xhr ) {
1053			// Attribute to prevent banner reload while one has not been loaded
1054			bannerObj.attr('data-reloading', '1');
1055		}
1056	}).success(function(code){
1057		
1058        if (code) {
1059           var isJWPlayerBannerCodePosition = code.search(/content\.jwplatform\.com/ig);
1060           if(isJWPlayerBannerCodePosition > 0) {
1061              isJWPlayerBanner = true;
1062           }
1063           
1064            var isSimpleBannerImageCodePosition = code.search(/cloudfront.net/ig);
1065            if(isSimpleBannerImageCodePosition > 0) {
1066                isSimpleBannerImage = true;
1067            }
1068
1069            var isDFPCodePosition = code.search(/googletag/ig);
1070            if(isDFPCodePosition > 0) {
1071                isDFPBanner = true;
1072            }
1073        }//End of if (code)
1074
1075        //alert(isJWPlayerBanner + ' -- ' + isSimpleBannerImage + ' -- ' + isDFPBanner);
1076
1077		// Banner has loaded succefully
1078		bannerObj.removeAttr('data-reloading');
1079		
1080		// Update banner code
1081		bannerBinContainerObj = document.getElementById('bannerBinContainer');
1082		bannerDivInfo = code;
1083		bannerDivInfo = bannerDivInfo.replace("adv-banner", "adv-banner-center");
1084		//bannerBinContainerObj.innerHTML = bannerDivInfo;
1085        jQuery('#bannerBinContainer').html(bannerDivInfo);
1086		
1087		/*bannerBinContainerObj = jQuery(bannerBinContainerObj);
1088		// Update banner code
1089		bannerBinContainerObj.html(code);*/
1090		
1091		// UPdate exclude prop
1092		exclude.push(targetBannerId);
1093		bannerObj.prop('data-exclude', exclude.join());
1094
1095		// 3-rd party integration
1096		bannerObj.find('.adv-banner').trigger('reloaded');
1097	});
1098}//End of function reloadBanner_LightWindow_useCacheFile

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.