PageSourceSearch

https://onwardstate.com//wp-content/plugins/ad-layers/js/ad-layers-dfp.js?ver=0.0.3

js onwardstate.com collected 2026-10-02 03:05:44 UTC 6,220 bytes, 219 lines download raw bytes

1(function( $ ) {
2
3	/*
4	The AdLayersDFPAPI class implements functionality specific to DFP For the AdLayersAPI.
5	*/
6	AdLayersDFPAPI = function() {}
7
8	// Refreshes a specific ad unit
9	AdLayersDFPAPI.prototype.refresh = function( ad_unit ) {
10		if ( 'undefined' !== typeof dfpAdUnits[ ad_unit ] ) {
11			googletag.pubads().refresh( [ dfpAdUnits[ ad_unit ] ] );
12		}
13	}
14
15	// Refreshes all ad units
16	AdLayersDFPAPI.prototype.refreshAll = function() {
17		if ( false === $.isEmptyObject( dfpAdUnits ) ) {
18			// DFP needs a numerical indexed array
19			var unitsToRefresh = new Array;
20			for ( var adUnit in dfpAdUnits ) {
21				unitsToRefresh.push( dfpAdUnits[ adUnit ] );
22			}
23			googletag.pubads().refresh( unitsToRefresh );
24		}
25	}
26
27	AdLayersDFPAPI.prototype.buildAd = function( slotName, path, sizes, targets, sizeMapping ) {
28		if ( AdLayersAPI.isDebug() ) {
29			var adSizes = [];
30
31			if ( sizeMapping ) {
32				// Get the appropriate sizes for this breakpoint
33				var maxWidth = -1;
34				var maxHeight = -1;
35				$.each( sizeMapping, function( index, value ) {
36					if ( $( window ).width() >= value[0][0]
37						&& $( window ).height() >= value[0][1]
38						&& value[0][0] >= maxWidth
39						&& value[0][1] >= maxHeight
40					) {
41						maxWidth = value[0][0];
42						maxHeight = value[0][1];
43						adSizes = value[1];
44					}
45				});
46			} else {
47				if ( sizes && sizes[0] ) {
48					// Ensure sizes is a two-dimensional array
49					if ( ! sizes[0][0] ) {
50						sizes = [ sizes ];
51					}
52					adSizes = sizes;
53				}
54			}
55
56			AdLayersDFPAPI.addDebugPlaceholder( $( '#' + adLayersDFP.adUnitPrefix + slotName ), adSizes );
57		} else {
58			return googletag.cmd.push( function() {
59				var key, value, divId;
60				divId = adLayersDFP.adUnitPrefix + slotName;
61				dfpAdUnits = dfpAdUnits || {};
62				dfpAdUnits[ slotName ] = googletag.defineSlot( path, sizes, divId );
63				if ( targets ) {
64					for ( key in targets ) {
65						value = targets[ key ];
66						dfpAdUnits[ slotName ].setTargeting( key, value );
67					}
68				}
69				if ( sizeMapping ) {
70					dfpAdUnits[ slotName ].defineSizeMapping( sizeMapping );
71				}
72				dfpAdUnits[ slotName ].addService( googletag.pubads() );
73				googletag.display( divId );
74			} );
75		}
76	};
77
78	AdLayersDFPAPI.prototype.lazyLoadAd = function( args ) {
79		if ( ! args.slotName ) {
80			return;
81		}
82
83		if ( args.format ) {
84			if ( ! ( dfpAdDetails && dfpAdDetails[ args.format ] ) ) {
85				return;
86			}
87			if ( ! args.path ) {
88				args.path = dfpAdDetails[ args.format ].path;
89			}
90			if ( ! args.sizes ) {
91				args.sizes = dfpAdDetails[ args.format ].sizes;
92			}
93			if ( ! args.targeting ) {
94				args.targeting = dfpAdDetails[ args.format ].targeting;
95			}
96			if ( ! args.sizeMapping ) {
97				if ( dfpBuiltMappings && dfpBuiltMappings[ args.format ] ) {
98					args.sizeMapping = dfpBuiltMappings[ args.format ];
99				} else {
100					args.sizeMapping = null;
101				}
102			}
103		}
104		return this.buildAd( args.slotName, args.path, args.sizes, args.targeting, args.sizeMapping );
105	};
106
107
108	// Switches sizes in debug mode
109	AdLayersDFPAPI.swapSizes = function( $size ) {
110		// Unselect all other sizes and set this one
111		$size.siblings().removeClass( 'selected' );
112		$size.addClass( 'selected' );
113
114		// Set the width and height
115		$size.parents( '.dfp-ad' ).width( $size.data( 'width' ) );
116		$size.parents( '.dfp-ad' ).height( $size.data( 'height' ) );
117
118		// Center the debug container vertically
119		$size.parents( '.dfp-debug-container' ).css({
120			top: ( $size.data( 'height' ) - $size.parents( '.dfp-debug-container' ).outerHeight() )/2,
121		});
122	}
123
124	AdLayersDFPAPI.addDebugPlaceholder = function( $adDiv, adSizes ) {
125		// Get the ad slot sizes for the current breakpoint
126		var adSlot = $adDiv.data( 'adUnit' );
127
128		// Set the background
129		$adDiv.addClass( 'dfp-debug' );
130
131		// Create a container for the ad data
132		$container = $( '<div>' )
133			.addClass( 'dfp-debug-container' );
134
135		// Add a label
136		$label = $( '<div>' )
137			.addClass( 'dfp-debug-unit' )
138			.text( adSlot );
139		$container.append( $label );
140
141		// Add additional sizes for selection
142		$.each( adSizes, function( index, value ) {
143			$link = $( '<a>' )
144				.attr( 'href', '#' )
145				.data( 'width', value[0] )
146				.data( 'height', value[1] )
147				.text( value[0] + 'x' + value[1] )
148				.addClass( 'dfp-debug-size' );
149
150			$container.append( $link );
151		});
152
153		// Add to the ad div
154		$adDiv.append( $container );
155
156		// Set to the first size
157		AdLayersDFPAPI.swapSizes( $adDiv.find( 'a' ).first() );
158	}
159
160	// Enables debug mode
161	AdLayersDFPAPI.prototype.debug = function() {
162		// Iterate through all of the ad units and display them in debug mode
163		$( '.dfp-ad' ).each( function() {
164			var $adDiv = $( this ),
165				adSlot = $adDiv.data( 'adUnit' );
166
167			if ( adSlot && 'undefined' !== dfpSizeMapping[ adSlot ] ) {
168				// Get the appropriate sizes for this breakpoint
169				var adSizes = [];
170				var maxWidth = -1;
171				var maxHeight = -1;
172				$.each( dfpSizeMapping[ adSlot ], function( index, value ) {
173					if ( $( window ).width() >= value[0][0]
174						&& $( window ).height() >= value[0][1]
175						&& value[0][0] >= maxWidth
176						&& value[0][1] >= maxHeight
177					) {
178						maxWidth = value[0][0];
179						maxHeight = value[0][1];
180						adSizes = value[1];
181					}
182				});
183
184				AdLayersDFPAPI.addDebugPlaceholder( $( this ), adSizes );
185			}
186		});
187
188		// Add a debug bar with general layer information and a DFP console toggle
189		$layerTitle = $( '<div>' )
190				.addClass( 'dfp-ad-layer' )
191				.text( adLayersDFP.layerDebugLabel + ': ' + dfpAdLayer.title );
192
193		$googleConsole = $( '<a>' )
194				.addClass( 'dfp-console' )
195				.attr( 'href', window.location.href.replace( 'adlayers_debug', 'googfc' ) )
196				.text( adLayersDFP.consoleDebugLabel );
197
198		$debugBar = $( '<div>' )
199			.attr( 'id', 'dfp-debug-bar' )
200			.addClass( 'dfp-debug' )
201			.append( $layerTitle )
202			.append( $googleConsole );
203
204		$( 'body' ).append( $debugBar );
205
206		// If the WordPress admin bar exists, push it down
207		if ( $( '#wpadminbar' ).length ) {
208			$( '#dfp-debug-bar' ).css( 'top', '32px' );
209		}
210	}
211
212	// Handle click actions for swapping ad unit sizes
213	$( document ).ready(function() {
214		$( 'body' ).on( 'click', 'a.dfp-debug-size', function( e ) {
215			e.preventDefault();
216			AdLayersDFPAPI.swapSizes( $( this ) );
217		});
218	});
219})( jQuery );

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.