PageSourceSearch

https://www.misskyra.com/bt_js_ads.cms?version=2

js misskyra.com collected 2026-10-02 17:49:11 UTC 30,790 bytes, 608 lines download raw bytes

1
2	        if(typeof(_geo) === "undefined"){
3	            var _geo = (typeof(geolocation) !== "undefined")?geolocation:100;
4	        }else{
5			    _geo = (typeof geolocation !== "undefined")?geolocation:_geo;
6	        }
7			var crtg_nid = '4306';
8            var crtg_cookiename = 'crtg_rta';
9            var crtg_varname = 'crtg_content';
10            function crtg_getCookie(c_name){ var i,x,y,ARRCookies=document.cookie.split(";");for(i=0;i<ARRCookies.length;i++){x=ARRCookies[i].substr(0,ARRCookies[i].indexOf("="));y=ARRCookies[i].substr(ARRCookies[i].indexOf("=")+1);x=x.replace(/^\s+|\s+$/g,"");if(x==c_name){return unescape(y);} }return'';}
11            var crtg_content = crtg_getCookie(crtg_cookiename);
12            var crtg_rnd=Math.floor(Math.random()*99999999999);
13            (function(){
14                if(_geo!=1){
15                    var crtg_url=location.protocol+'//rtax.criteo.com/delivery/rta/rta.js?netId='+escape(crtg_nid);
16                    crtg_url +='&cookieName='+escape(crtg_cookiename);
17                    crtg_url +='&rnd='+crtg_rnd;
18                    crtg_url +='&varName=' + escape(crtg_varname);
19                    var crtg_script=document.createElement('script');crtg_script.type='text/javascript';crtg_script.src=crtg_url;crtg_script.async=true;
20                    if(document.getElementsByTagName("head").length>0)document.getElementsByTagName("head")[0].appendChild(crtg_script);
21                    else if(document.getElementsByTagName("body").length>0)document.getElementsByTagName("body")[0].appendChild(crtg_script);
22                }
23            })();
24            
25			var googletag = googletag || {};
26			googletag.cmd = googletag.cmd || [];
27			(function() {
28			var gads = document.createElement('script');
29			gads.async = true;
30			gads.type = 'text/javascript';
31			var useSSL = 'https:' == document.location.protocol;
32			gads.src = (useSSL ? 'https:' : 'http:') + 
33			'//www.googletagservices.com/tag/js/gpt.js';
34			var node = document.getElementsByTagName('script')[0];
35			node.parentNode.insertBefore(gads, node);
36			})();
37			var _fic;
38            if (document.referrer && document.referrer.search(/timesofindia|jcmsdev|toidev/) == -1) {
39                var _ficarr = document.cookie.match(/(?:\s)?fic=(\w+);?/);
40                _fic = (_ficarr && _ficarr[1])?parseInt(_ficarr[1], 10)+1:1;
41                document.cookie="fic="+_fic;
42            }else{
43                _fic=0;
44            }
45			
46		
47		
48		var adsthrottle = function ( delay, callback ) {
49        	var _timeout;
50        	var _exec = 0;
51        	return function callable() {
52        		var elapsed = +new Date() - _exec;
53        		var tthis = this;
54        		var args = arguments;
55        
56        		function run() {
57        			_exec = +new Date();
58        			callback.apply( tthis, args );
59        		}
60        		_timeout && clearTimeout( _timeout );
61        		if( elapsed > delay ) run();
62        		else _timeout = setTimeout( run, delay - elapsed );
63        	};
64        }
65        var dfpadsLoad = function(){
66            if($( "[data-adsSlot]" ).length > 0){
67        		adsReadTag('default');
68            }
69        };
70        var SCP = 0;
71        var slotObj = Object();
72        var inViewCtr = 0;
73        var adsReadTag = function(msid){
74            googletag.cmd.push(function() { 
75                googletag.pubads().enableAsyncRendering();
76                 googletag.pubads().collapseEmptyDivs(true);
77                // if(window.TimesGDPR && TimesGDPR.common.consentModule.isEUuser()){
78               //0 means personalize ads and 1 means non-personalize ads
79                window.TimesGDPR.common.consentModule.gdprCallback(function(dataObj){
80                           if (dataObj.isEUuser && dataObj.didUserOptOut === false ) {
81                                //user has has given consent for personalised ads ( i.e did not opt out )
82                                window.googletag.pubads().setRequestNonPersonalizedAds(0);
83                              }else if (dataObj.isEUuser){
84                                  window.googletag.pubads().setRequestNonPersonalizedAds(1);
85                          }
86                        });
87            // }
88                googletag.enableServices();
89                
90                var dfpads = {'containers': $( "[data-adsSlot],[data-adsslot]" )};
91        		dfpads['len'] = dfpads.containers.length;
92        		dfpads['arr'] = [];
93        		var slot = '';
94        		var adsid = [];
95        		
96	    
97	    
98	    <!-- Audience Segment Targeting -->
99		var _auds = new Array();
100		if(typeof(_ccaud)!='undefined') {
101		for(var i=0;i<_ccaud.Profile.Audiences.Audience.length;i++)
102		if(i<200)
103		_auds.push(_ccaud.Profile.Audiences.Audience[i].abbr);
104		}
105		<!-- End Audience Segment Targeting -->
106		
107		<!-- Contextual Targeting -->
108		var _HDL = '';
109		var _ARC1 = '';
110		var _Hyp1 = (typeof _Hyp1_pg != "undefined") ? _Hyp1_pg : '';
111		_Hyp1 = (typeof(qmsid)!='undefined' && qmsid=='49332082') ? 'manipal hospitals' : _Hyp1;
112		var _SCN = (typeof _SCN_pg != "undefined") ? _SCN_pg : ((typeof toiprops != "undefined" && toiprops.hasOwnProperty("_SCN_pg") && typeof toiprops._SCN_pg != "undefined") ? toiprops._SCN_pg : '');
113		var _SubSCN = (typeof toiprops != "undefined" && toiprops.hasOwnProperty("_SubSCN_pg") && typeof toiprops._SubSCN_pg != "undefined") ? toiprops._SubSCN_pg : '';
114		var _Tmpl = (typeof toiprops != "undefined" && toiprops.hasOwnProperty("_Tmpl_pg") && typeof toiprops._Tmpl_pg != "undefined") ? toiprops._Tmpl_pg : '';
115		var _PGT = (typeof _PGT_pg != "undefined") ? _PGT_pg : ((typeof toiprops != "undefined" && toiprops.hasOwnProperty("_PGT_pg") && typeof toiprops._PGT_pg != "undefined") ? toiprops._PGT_pg : '');
116		var _BL = (typeof toiprops != "undefined" && toiprops.hasOwnProperty("_BL_pg") && typeof toiprops._BL_pg != "undefined") ? 1 : 0;
117		var _Tmpl_SCN = (_Tmpl && _SCN) ? _Tmpl+"_"+_SCN : '';
118		var _article = '';
119		var _tval = function(v) {
120		if(typeof(v)=='undefined') return '';
121		if(v.length>100) return v.substr(0,100);
122		return v;
123		}
124		<!-- End Contextual Targeting -->
125		
126	
127                var exc = function(adsid,adssize,adsSlot,msid){
128    			    //adsid=$ele.attr('id');
129    			    if(msid!='' && msid!='default' && !adsid.match(new RegExp(msid,'g'))) {
130    			        return true;
131    			    }
132                    if(adssize && $ele.css('display')!='none'){
133                        slot = googletag.defineSlot(adsSlot, adssize, adsid).addService(googletag.pubads());
134                    }else if($ele.css('display')!='none'){
135                    	slot = googletag.defineOutOfPageSlot(adsSlot, adsid).addService(googletag.pubads());
136                    }
137                    
138                    
139                    if(msid != 'default'){
140                        googletag.pubads().refresh([slot]);
141                    }
142                    if($ele.data('adsrefresh') && $ele.data('adsrefresh')!='all') slotObj[adsid]=slot;
143                    dfpads['arr'].push(adsid);
144    			};
145
146
147    			var chkGeoLogic = function(cas, geo){
148                   var c = (cas+"").split("|");
149                   if((cas+"").indexOf("!") >= 0){//Not case
150                      if(c.indexOf("!" + geo) >= 0){
151                        return true;
152                      }else{
153                        return false;
154                      }
155                    }else{
156                      if(c.indexOf(geo) >= 0){  
157                        return false;
158                      }else{
159                        return true;
160                      }      
161                    }      
162                };
163            
164        		for(var i=0; i<dfpads.len; i++){
165        			var $ele = $(dfpads.containers[i]);
166        			var adsSlot = $ele.data('adsSlot')||$ele.data('adsslot');
167        			if(!(adsSlot.match(/^7176/))){
168        				adsSlot = "/7176/"+adsSlot;
169        			}
170        			var adssize=$ele.data('size');
171        			adsid=$ele.attr('id');
172        			/********* check cookies ******************/
173        			var ad_ck = $ele.data('cookie');
174        			if(ad_ck && ad_ck!=''){
175        			    var get_ck = times.cookie.get(ad_ck);
176        			    if(get_ck){
177        			        $('#'+adsid).removeAttr('data-adsSlot').removeAttr('data-adsslot');
178        			        continue;
179        			    }
180        			}
181        			/********* end check cookies **************/
182        			/********* check  ******************/
183        			var ad_in = $ele.data('inview');
184        			if(ad_in && ad_in!=''){
185        			    if($(window).scrollTop() < ad_in && inViewCtr!=-1){ 
186        			        continue;
187        			    }
188        			    $('#'+adsid).removeAttr('data-adsSlot').removeAttr('data-adsslot');
189        			    $('#'+adsid).removeAttr('data-inview');
190        			    //inViewCtr--;
191        			}
192        			/********* end check cookies **************/
193        			
194        			/********* Geo targetted ads **************/
195        			var ad_geo = $ele.data('geo');
196        			if(ad_geo && ad_geo!='' ){
197        			    if(_geo!=''){
198        			        //if(ad_geo!=_geo){continue;}
199        			        if(chkGeoLogic(ad_geo,_geo)){//(ad_geo+"").split('|').indexOf(_geo)==-1){
200        			            $('#'+adsid).removeAttr('data-adsSlot').removeAttr('data-adsslot');
201            			        continue;
202            			    }
203        			        exc(adsid,adssize,adsSlot,msid);
204        			    }
205        			}else{
206        			    exc(adsid,adssize,adsSlot,msid);
207        			    //if(_geo=='' && i==0)chkGeo();
208        			}
209        			/********* end Geo targetted ads **************/
210        		}
211        		
212        		
213	    
214        googletag.pubads().setTargeting('sg', _auds).setTargeting('HDL', _tval(_HDL))
215        .setTargeting('ARC1', _tval(_ARC1)).setTargeting('fic',_fic + '').setTargeting('SCP', SCP + '')
216        .setTargeting('Hyp1', _tval(_Hyp1)).setTargeting('article', _tval(_article)).setTargeting('SCN', _SCN + '') 
217        .setTargeting('Tmpl', _Tmpl + '').setTargeting('Tmpl_SCN', _Tmpl_SCN + '')
218        .setTargeting('SubSCN', _SubSCN + '').setTargeting('PGT', _PGT + '').setTargeting('BL', _BL + ''); 
219        
220        
221            
222            var crtg_split= (crtg_content|| '').split(';');
223            var pubads = googletag.pubads();
224            var cto_values= [];
225            if(crtg_split.length > 0){
226                for (var i=1;i<crtg_split.length;i++){
227                    cto_values.push( "" + crtg_split[i-1].split('=')[1] + "");
228                }
229            }
230            if (cto_values.length> 0) {
231                pubads.setTargeting('crtotoi',cto_values);
232            }
233            
234        
235        
236        googletag.pubads().enableAsyncRendering();
237         googletag.pubads().collapseEmptyDivs(true);
238        // if(window.TimesGDPR && TimesGDPR.common.consentModule.isEUuser()){
239               //0 means personalize ads and 1 means non-personalize ads
240                window.TimesGDPR.common.consentModule.gdprCallback(function(dataObj){
241                           if (dataObj.isEUuser && dataObj.didUserOptOut === false ) {
242                                //user has has given consent for personalised ads ( i.e did not opt out )
243                                window.googletag.pubads().setRequestNonPersonalizedAds(0);
244                              }else if (dataObj.isEUuser){
245                                  window.googletag.pubads().setRequestNonPersonalizedAds(1);
246                          }
247                        });
248            // }
249        
250        googletag.enableServices();
251        
252	
253        		
254        		for(var i=0; i<dfpads['arr'].length; i++){
255        			adsid=dfpads['arr'][i];
256        			googletag.display(adsid);
257                    $('#'+adsid).removeAttr('data-adsSlot').removeAttr('data-adsslot');
258        		}
259            });
260        };
261        
262        var buildAdsAj = function(msid,refresh){
263            if(msid!=''){
264                SCP++;
265                if(refresh){
266                    if($("[data-adsrefresh][data-adsrefresh!='all']:not([data-adsslot])").length > 0)adRefresh(msid);                    
267                }
268            }
269    		adsReadTag(msid);
270        };
271        
272        var adRefresh = function(msid){
273            googletag.cmd.push(function() { 
274                for(var x in slotObj){
275                    var regx = new RegExp(msid);
276                    if(regx.test(x)){
277                        googletag.pubads().refresh([slotObj[x]]);
278                    }
279                }
280            });
281        }
282        
283        var onScroll = adsthrottle(2000,function(){
284            if($("[data-inview]").length > 0){inViewCtr=-1;buildAdsAj();}
285        });
286        
287        $( document ).ready(function() {
288            dfpadsLoad('default');
289            inViewCtr = $("[data-inview]").length;
290            $(window).scroll(function() {
291                onScroll();
292            });
293        });
294        $(window).load(function() {
295            onScroll();
296        });
297		
298		
299	    
300            var colombia = colombia || {};
301	        colombia.fns = colombia.fns || [];
302	        var ctnAds = {
303                loadColombiaJS: function(){
304                    var cads = document.createElement("script");
305                	cads.async = true;
306                	cads.type = "text/javascript";
307                    cads.src = "https://static.clmbtech.com/ad/commons/js/colombia_v2.js";
308                	var node = document.getElementsByTagName("script")[0];
309                	node.parentNode.insertBefore(cads, node);
310                    if (!Object.keys) {
311                      Object.keys = function(obj) {
312                        var keys = [];
313                        for (var i in obj) {
314                          if (obj.hasOwnProperty(i)) {
315                            keys.push(i);
316                          }
317                        }
318                        return keys;
319                      };
320                    }
321                },
322                /**
323            	 * Refresh Ads
324            	 *
325            	 * @param identifier {string} id Attr of the ctnad div
326            	 */
327                refresh : function(identifier) {
328                    colombia.fns.push(function() {
329                        colombia.refresh(identifier);
330                    });
331                },
332                colombiaClear : function(){
333                    colombia.clear();
334                },
335                getCtnAdConfigParams : function($containerElem, ctnAdCp){
336                    var ctnAdConfigParams = typeof(ctnAdCp)==='object'?ctnAdCp:{};
337                    ctnAdConfigParams['slot'] = ctnAdConfigParams['slot']?ctnAdConfigParams['slot']:$containerElem.data('slot');
338                    ctnAdConfigParams['position'] = ctnAdConfigParams['position']?ctnAdConfigParams['position']:$containerElem.data('position');
339                    ctnAdConfigParams['slotType'] = $containerElem.data('slot-type');
340                    ctnAdConfigParams['pos'] = $containerElem.data('pos');
341                    ctnAdConfigParams['secid'] = ctnAdConfigParams['secid']?ctnAdConfigParams['secid']:(($containerElem.data('secid'))?$containerElem.data('secid'):0);
342                    ctnAdConfigParams['descLen'] = ctnAdConfigParams['descLen']?ctnAdConfigParams['descLen']:$containerElem.data('desc-len');
343                    ctnAdConfigParams['callback'] = ctnAdConfigParams['callback']?ctnAdConfigParams['callback']:$c
343ontainerElem.data('callback');
344                    ctnAdConfigParams['pgTag'] = $containerElem.data('pg-tag');
345                    ctnAdConfigParams['tplId'] = ctnAdConfigParams['tplId']?ctnAdConfigParams['tplId']:($containerElem.data('native-tmpl-temp')?$containerElem.data('native-tmpl-temp'):$containerElem.data('native-tmpl'));
346                    return ctnAdConfigParams;
347                },
348                /*
349            	 * Renders HTML Template of CTNAd 
350            	 * @param status {boolean} true-success to display ad and false-failure to display ad
351            	 * @param callback {string} callback function name 
352            	 * @param $containerElem {jquery element} ad container to be filled
353            	 */
354                notify : function(status, callback, $containerElem){
355                    if(callback != ''){
356                        try{
357                            window[callback](status,$containerElem);
358                        } catch(e){}
359                    }
360                },
361                /**
362            	 * Renders HTML Template of CTNAd 
363            	 *
364            	 * @param adsData {string} id Attr of the ctnad div
365            	 * @param $containerElem {jquery element} ad container to be filled
366            	 * @param ctnAdCP {object} CtnAdConfigParams object returned from getCtnAdConfigParams()
367            	 */
368                tmplrender : function(adsData,$containerElem,ctnAdCP){
369                    try{
370                        ctnAdCP = ctnAds.getCtnAdConfigParams($containerElem, ctnAdCP);
371                        var tplHtml = $('#' + ctnAdCP.tplId).html();
372                        $containerElem.hide().empty();
373                        for(var i=0; i<adsData.length ; i++){
374                            var tpl = tplHtml;
375                            if(adsData[i].itemType === 4){
376                                tpl = $containerElem.data('native-vid-tmpl')?$('#' + $containerElem.data('native-vid-tmpl')).html():tpl;                        
377                            }
378                            var nameDescTrim = ctnAdCP.descLen?((adsData[i].title + ' ' + adsData[i].text).substring(0,ctnAdCP.descLen-3) + '...'):(adsData[i].title + ' ' + adsData[i].text);
379                            nameDescTrim = nameDescTrim.length<=25?nameDescTrim.substring(0,nameDescTrim.length-3):nameDescTrim;
380                            var keyMap = {
381                                "~url~":adsData[i].itemType===5?'#':adsData[i].clk[0],
382                                "~ctaurl~":adsData[i].itemType===5?'event.preventDefault();'+adsData[i].clk[0]:'',
383                                "~sImg~":adsData[i].mainimage,
384                                "~wideImg~":adsData[i].extraImages[0],
385                                "~name~":adsData[i].title,
386                                "~desc~":(ctnAdCP.descLen?(adsData[i].text.substring(0,ctnAdCP.descLen-3) + '...'):adsData[i].text),
387                                "~brandtext~":adsData[i].brandtext,
388                                "~colombiaImg~":'https://static.clmbtech.com/ad/commons/images/colombia_red_small.png',
389                                "~icon-colombia~":'<i class="clmcup"></i>',
390                                "~name-desc~": adsData[i].title + ' ' + adsData[i].text,
391                                "~name-desc-trim~": nameDescTrim,
392                                "~pg-tag~": isNaN(+ctnAdCP.pgTag)?ctnAdCP.pgTag:((+ctnAdCP.pgTag)+i),
393                                "~ctadiv~": adsData[i].ctaText?'<button type="button" class="ctabtn" onclick="' + adsData[i].clk[0] + '">' + adsData[i].ctaText + '</button>':'',
394                                "~icon-ctn-vid~": (adsData[i].itemType===4?'<i class="sprite_bg icon_player icon_ctn_vid"></i>':''),
395                                "~ctn-vid-ad-container~": (adsData[i].itemType===4?'<div class="ctn-vid-ad"><div class="ctn_loader"></div></div>':'')
396                            };
397                            var regExp = new RegExp("~url~",'g');
398                            for(var km in keyMap){
399                                if(keyMap.hasOwnProperty(km)){
400                                    var regExp = new RegExp(km,'g');
401                                    tpl= tpl.replace(regExp,keyMap[km]);
402                                }
403                            }
404                            $containerElem.append(tpl);
405                            if(adsData[i].itemType === 4){
406                                ctnAds.renderVideoAds($containerElem,adsData[i],ctnAdCP, keyMap["~url~"]);
407                            }
408                        }
409                        if($containerElem.data('loop')==0 && adsData && adsData.length!=0 && adsData[0].itemType==4){
410                            $containerElem.parent().hide();
411                        } else{
412                            $containerElem.show();
413                            ctnAds.notify(true,ctnAdCP.callback,$containerElem);
414                        }
415                    }catch(e){console.error(e);}
416                    return true;
417                },
418                renderVideoAds : function($containerElem,vidAdData,ctnAdCP,adLinkUrl){
419                    $containerElem.find('a').attr({
420                        'href':'javascript:void(0);',
421                        'target':''
422                    });
423                    var dataSize = $containerElem.data('ad-size')?$containerElem.data('ad-size'):[0,250];
424                    var dataExpansionSize = $containerElem.data('expansion-size')?$containerElem.data('expansion-size'):[0,250];
425                    var iframeUrl = $containerElem.data('loop')==0?'/ads_native_video_dev.cms':'';
426                    if(dataSize && dataSize.length >= 2){
427                        var existingSize = {};
428                        var size = {};
429                        if(dataSize[0] !== 0){
430                            size['width'] = dataSize[0] + 'px';
431                            size['eWidth'] = dataExpansionSize[0]?dataExpansionSize[0]:undefined;
432                            existingSize['width'] = $containerElem.width() + 'px';
433                        }
434                        if(dataSize[1] !== 0){
435                            size['height'] = dataSize[1] + 'px';
436                            size['eHeight'] = dataExpansionSize[1]?dataExpansionSize[1]:undefined;
437                            existingSize['height'] = $containerElem.height() + 'px';
438                        }
439                        
440                        var vidAd = {'placeholderId': $containerElem.attr('id') + '-iframe', 'container': $containerElem.find('.ctn-vid-ad')};
441                        vidAd.placeholder = $('#'+vidAd.placeholderId);
442                        
443                        if(!vidAd.placeholder.length){
444                            vidAd.placeholder = $('<iframe></iframe>').attr({
445                                'id': vidAd.placeholderId,
446                                'class': 'ctn-vid-ad-iframe',
447                                'width': (size.width?size.width:'100%'),
448                                'height': size.height,
449                                'frameborder':'0',
450                                'scrolling': 'no',
451                                'src': iframeUrl,
452                                'style': 'display:none;background-color:#000;'
453                            })
454                            .data('existing-size',existingSize)
455                            .load(function(){
456                                if($containerElem.data('loop')!=0){
457                                    $(this).show();
458                                }
459                                $(this).siblings('.ctn_loader').hide();
460                                vidAdData.autoplay = $containerElem.data('autoplay')?1:0;
461                                vidAdData.audio = $containerElem.data("audio")?1:0;
462                                
463                                if(this.contentWindow.colombiaVideoAd){
464                                    this.contentWindow.colombiaVideoAd(vidAdData, $containerElem.attr('id')); 
465                                }
466                            });
467                            vidAd.container.css('width',(size.width?size.width:'100%')).append(vidAd.placeholder);
468                        }
469                    }
470                    $containerElem.on('click',function(e){
471                        if(vidAd.container.is(':hidden') || $(this).data('loop')==0){
472                            if($(this).data('loop')!=0){
473                                vidAd.placeholder.attr('src','/ads_native_video_dev.cms');
474                            } else{
475                                vidAd.container.attr('data-played','true');                            
476                                $(this).find('#'+vidAd.placeholderId).show();
477                            }
478                            $('.ctn-vid-ad:visible').not(vidAd.container).not('[data-loop="0"]').each(function(i,c){
479                                $($(c).find('.ctn-vid-ad-iframe')[0].contentDocument).find('#abort-vid-ad').click();
480                            });
481                            $containerElem.find('.hid-vid-play').fadeOut("slow", function(){
482                                var animateSize = {'width': size.width, 'height':'+='+(+size.eHeight+30)};
483                                $($containerElem).animate(animateSize,{duration: "slow", queue: false});
484                                vidAd.container.show();
485                                $(vidAd.container).animate({'height':size.height}, {duration: "slow", queue: false, 
486                                    complete: function(){
487                                        //vidAd.placeholder.delay( 800 ).show();
488                                    }
489                                });                                
490                            }).delay(300);
491                        }
492                    });
493                    //For AutoPlay on International Homepage
494                    if($('.ctn-vid-ad[data-played]').length === 0 &&  $containerElem.data('autoplay') && $containerElem.data('loop')!=0){
495                        $containerElem.click();
496                    }
497                },
498                inViewCTN: function (icon) {
499                    var win = $(window);
500                    var viewport = {top: win.scrollTop(), left: win.scrollLeft()};
501                    viewport.right = viewport.left + win.width();
502                    viewport.bottom = viewport.top + win.height();
503                    var height = icon.outerHeight();
504                    var width = icon.outerWidth();
505                    if (!width || !height) {
506                        return false;
507                    }
508                    var bounds = icon.offset();
509                    bounds.right = bounds.left + width;
510                    bounds.bottom = bounds.top + height;
511                    return(!(viewport.right < bounds.left || viewport.top > bounds.bottom || viewport.left >
511 bounds.right || viewport.bottom < bounds.top));
512                },
513                showVideoAd: function(vidFrame,vidFrameContainer){
514                    var identifier = vidFrame.attr('id');
515                    if(ctnAds.inViewCTN(vidFrameContainer)){
516                        $(window).off('scroll.'+identifier);
517                        vidFrameContainer.click();
518                    }
519                },
520            };
521            
522            $(document).ready(function() {
523                $.each( $("[data-callid]"), function( key, value ) {
524                  var datacallid = $(this).attr("data-callid");
525                  $( this ).replaceWith( $('#'+datacallid).clone() );
526                });
527            });
528            
529            var processCtnAds = function(response, containerStr){
530                var $containerElem = $('#' + containerStr);
531                var ctnAdCP = ctnAds.getCtnAdConfigParams($containerElem);
532                
533                /*For Testing 
534                 *Pass ctnfail = 1 
535                 *Pass ctnfailcode = <adcode>
536                 *All the CTN Ads on the page will fail
537                */
538                try{
539                    if(window.location.hostname.match(/^toidev|^jcmsdev/)){
540                        var urlParams = window.location.search 
541                        if(urlParams.match(/[?&]ctnfail=1/)){
542                            response=null;
543                        } else if(urlParams.match(/[?&]ctnfailcode=[\d]+/)[0].indexOf(ctnAdCP.slot)!=-1){
544                            response=null;
545                        }
546                    }
547                } catch(e){}
548                /* \For Testing*/
549                
550                if(response===null){
551                    //console.log(containerStr + '-' + response);
552                    $containerElem.hide();
553                    ctnAds.notify(false,ctnAdCP.callback,$containerElem);
554                    return true;
555                }
556                var types = Object.keys(response);
557                for(var t=0;t<types.length;t++){
558                    try{
559                        if(types[t].indexOf('Ads')>-1){
560                            var adsData = response[types[t]];
561                            if(types.length>2){
562                                ctnAds.tmplrender(adsData,$containerElem.find('[data-slot-type="'+types[t]+'"]'),ctnAdCP);
563                            } else{
564                                ctnAds.tmplrender(adsData,$containerElem,ctnAdCP);
565                            }
566                        }
567                    } catch(e){console.log(e);}
568                }
569                return true;
570            };
571            
572            var colombiaVidAdStart = function(identifier){
573                var vidFrame = $('#' + identifier);
574                var vidFrameContainer = $('#' + identifier.replace('-iframe',''));
575                if(vidFrameContainer.data('loop')==0){
576                    ctnAds.notify(true,vidFrameContainer.data('callback'),vidFrameContainer);
577                    if(ctnAds.inViewCTN(vidFrameContainer)){
578                        ctnAds.showVideoAd(vidFrame,vidFrameContainer);
579                    } else{
580                        $(window).on('scroll.'+identifier,function(){
581                            ctnAds.showVideoAd(vidFrame,vidFrameContainer);
582                        });
583                    }
584                }
585            };
586            var colombiaVidAdComplete = function(identifier){                var vidFrame = $('#' + identifier);
587                var vidFrameContainer = $('#' + identifier.replace('-iframe',''));
588                var parentExistingSize = vidFrame.data('existing-size');
589                //Hides the video 
590                if(vidFrameContainer.data('loop') === 0){
591                    //Removing slot once video is completed
592                    vidFrameContainer.parent().slideUp(1000, function(){ $(this).remove();});
593                } else{
594                    $(vidFrameContainer).animate(parentExistingSize, "slow", function(){
595                        vidFrame.hide().parent().hide().css('height','');
596                        vidFrame.attr('src','');
597                        vidFrameContainer.css('height','').find('.hid-vid-play').fadeIn("slow");
598                    });
599                }
600            };
601        
602        
603             
604                $(document).ready(function() {
605                    ctnAds.loadColombiaJS();
606                });
607            
608            

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.