PageSourceSearch

https://mpgb.bank.in/js/respond.js

js mpgb.bank.in collected 2026-09-25 07:53:45 UTC 10,318 bytes, 340 lines download raw bytes

vendor: 4,740 bytes, lines 1-138
1/* NUGET: BEGIN LICENSE TEXT
2 *
3 * Microsoft grants you the right to use these script files for the sole
4 * purpose of either: (i) interacting through your browser with the Microsoft
5 * website or online service, subject to the applicable licensing or use
6 * terms; or (ii) using the files as included with a Microsoft product subject
7 * to that product's license terms. Microsoft reserves all other rights to the
8 * files not expressly granted by Microsoft, whether by implication, estoppel
9 * or otherwise. Insofar as a script file is dual licensed under GPL,
10 * Microsoft neither took the code under GPL nor distributes it thereunder but
11 * under the terms set out in this paragraph. All notices and licenses
12 * below are for informational purposes only.
13 *
14 * NUGET: END LICENSE TEXT */
15/*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas. Dual MIT/BSD license */
16/*! NOTE: If you're already including a window.matchMedia polyfill via Modernizr or otherwise, you don't need this part */
17window.matchMedia = window.matchMedia || (function(doc, undefined){
18  
19  var bool,
20      docElem  = doc.documentElement,
21      refNode  = docElem.firstElementChild || docElem.firstChild,
22      // fakeBody required for <FF4 when executed in <head>
23      fakeBody = doc.createElement('body'),
24      div      = doc.createElement('div');
25  
26  div.id = 'mq-test-1';
27  div.style.cssText = "position:absolute;top:-100em";
28  fakeBody.style.background = "none";
29  fakeBody.appendChild(div);
30  
31  return function(q){
32    
33    div.innerHTML = '&shy;<style media="'+q+'"> #mq-test-1 { width: 42px; }</style>';
34    
35    docElem.insertBefore(fakeBody, refNode);
36    bool = div.offsetWidth == 42;  
37    docElem.removeChild(fakeBody);
38    
39    return { matches: bool, media: q };
40  };
41  
42})(document);
43
44
45
46
47/*! Respond.js v1.2.0: min/max-width media query polyfill. (c) Scott Jehl. MIT/GPLv2 Lic. j.mp/respondjs  */
48(function( win ){
49	//exposed namespace
50	win.respond		= {};
51	
52	//define update even in native-mq-supporting browsers, to avoid errors
53	respond.update	= function(){};
54	
55	//expose media query support flag for external use
56	respond.mediaQueriesSupported	= win.matchMedia && win.matchMedia( "only all" ).matches;
57	
58	//if media queries are supported, exit here
59	if( respond.mediaQueriesSupported ){ return; }
60	
61	//define vars
62	var doc 			= win.document,
63		docElem 		= doc.documentElement,
64		mediastyles		= [],
65		rules			= [],
66		appendedEls 	= [],
67		parsedSheets 	= {},
68		resizeThrottle	= 30,
69		head 			= doc.getElementsByTagName( "head" )[0] || docElem,
70		base			= doc.getElementsByTagName( "base" )[0],
71		links			= head.getElementsByTagName( "link" ),
72		requestQueue	= [],
73		
74		//loop stylesheets, send text content to translate
75		ripCSS			= function(){
76			var sheets 	= links,
77				sl 		= sheets.length,
78				i		= 0,
79				//vars for loop:
80				sheet, href, media, isCSS;
81
82			for( ; i < sl; i++ ){
83				sheet	= sheets[ i ],
84				href	= sheet.href,
85				media	= sheet.media,
86				isCSS	= sheet.rel && sheet.rel.toLowerCase() === "stylesheet";
87
88				//only links plz and prevent re-parsing
89				if( !!href && isCSS && !parsedSheets[ href ] ){
90					// selectivizr exposes css through the rawCssText expando
91					if (sheet.styleSheet && sheet.styleSheet.rawCssText) {
92						translate( sheet.styleSheet.rawCssText, href, media );
93						parsedSheets[ href ] = true;
94					} else {
95						if( (!/^([a-zA-Z:]*\/\/)/.test( href ) && !base)
96							|| href.replace( RegExp.$1, "" ).split( "/" )[0] === win.location.host ){
97							requestQueue.push( {
98								href: href,
99								media: media
100							} );
101						}
102					}
103				}
104			}
105			makeRequests();
106		},
107		
108		//recurse through request queue, get css text
109		makeRequests	= function(){
110			if( requestQueue.length ){
111				var thisRequest = requestQueue.shift();
112				
113				ajax( thisRequest.href, function( styles ){
114					translate( styles, thisRequest.href, thisRequest.media );
115					parsedSheets[ thisRequest.href ] = true;
116					makeRequests();
117				} );
118			}
119		},
120		
121		//find media blocks in css text, convert to style blocks
122		translate			= function( styles, href, media ){
123			var qs			= styles.match(  /@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi ),
124				ql			= qs && qs.length || 0,
125				//try to get CSS path
126				href		= href.substring( 0, href.lastIndexOf( "/" )),
127				repUrls		= function( css ){
128					return css.replace( /(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g, "$1" + href + "$2$3" );
129				},
130				useMedia	= !ql && media,
131				//vars used in loop
132				i			= 0,
133				j, fullq, thisq, eachq, eql;
134
135			//if path exists, tack on trailing slash
136			if( href.length ){ href += "/"; }	
137				
138			//if no internal queries exist, but media attr does, use that	
139			//note: this currently lacks support for situations where a media attr is specified on a link AND
140				//its associated stylesheet has internal CSS media queries.
141				//In those cases, the media attribute will currently be ignored.
142			if( useMedia ){
143				ql = 1;
144			}
145			
146
147			for( ; i < ql; i++ ){
148				j	= 0;
149				
150				//media attr
151				if( useMedia ){
152					fullq = media;
153					rules.push( repUrls( styles ) );
154				}
155				//parse for styles
156				else{
157					fullq	= qs[ i ].match( /@media *([^\{]+)\{([\S\s]+?)$/ ) && RegExp.$1;
158					rules.push( RegExp.$2 && repUrls( RegExp.$2 ) );
159				}
160				
161				eachq	= fullq.split( "," );
162				eql		= eachq.length;
163					
164				for( ; j < eql; j++ ){
165					thisq	= eachq[ j ];
166					mediastyles.push( { 
167						media	: thisq.split( "(" )[ 0 ].match( /(only\s+)?([a-zA-Z]+)\s?/ ) && RegExp.$2 || "all",
168						rules	: rules.length - 1,
169						hasquery: thisq.indexOf("(") > -1,
170						minw	: thisq.match( /\(min\-width:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/ ) && parseFloat( RegExp.$1 ) + ( RegExp.$2 || "" ), 
171						maxw	: thisq.match( /\(max\-width:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/ ) && parseFloat( RegExp.$1 ) + ( RegExp.$2 || "" )
172					} );
173				}	
174			}
175
176			applyMedia();
177		},
178        	
179		lastCall,
180		
181		resizeDefer,
182		
183		// returns the value of 1em in pixels
184		getEmValue		= function() {
185			var ret,
186				div = doc.createElement('div'),
187				body = doc.body,
188				fakeUsed = false;
189									
190			div.style.cssText = "position:absolute;font-size:1em;width:1em";
191					
192			if( !body ){
193				body = fakeUsed = doc.createElement( "body" );
194				body.style.background = "none";
195			}
196					
197			body.appendChild( div );
198								
199			docElem.insertBefore( body, docElem.firstChild );
200								
201			ret = div.offsetWidth;
202								
203			if( fakeUsed ){
204				docElem.removeChild( body );
205			}
206			else {
207				body.removeChild( div );
208			}
209			
210			//also update eminpx before returning
211			ret = eminpx = parseFloat(ret);
212								
213			return ret;
214		},
215		
216		//cached container for 1em value, populated the first time it's needed 
217		eminpx,
218		
219		//enable/disable styles
220		applyMedia			= function( fromResize ){
221			var name		= "clientWidth",
222				docElemProp	= docElem[ name ],
223				currWidth 	= doc.compatMode === "CSS1Compat" && docElemProp || doc.body[ name ] || docElemProp,
224				styleBlocks	= {},
225				lastLink	= links[ links.length-1 ],
226				now 		= (new Date()).getTime();
227
228			//throttle resize calls	
229			if( fromResize && lastCall && now - lastCall < resizeThrottle ){
230				clearTimeout( resizeDefer );
231				resizeDefer = setTimeout( applyMedia, resizeThrottle );
232				return;
233			}
234			else {
235				lastCall	= now;
236			}
237										
238			for( var i in mediastyles ){
239				var thisstyle = mediastyles[ i ],
240					min = thisstyle.minw,
241					max = thisstyle.maxw,
242					minnull = min === null,
243					maxnull = max === null,
244					em = "em";
245				
246				if( !!min ){
247					min = parseFloat( min ) * ( min.indexOf( em ) > -1 ? ( eminpx || getEmValue() ) : 1 );
248				}
249				if( !!max ){
250					max = parseFloat( max ) * ( max.indexOf( em ) > -1 ? ( eminpx || getEmValue() ) : 1 );
251				}
252				
253				// if there's no media query at all (the () part), or min or max is not null, and if either is present, they're true
254				if( !thisstyle.hasquery || ( !minnull || !maxnull ) && ( minnull || currWidth >= min ) && ( maxnull || currWidth <= max ) ){
255						if( !styleBlocks[ thisstyle.media ] ){
256							styleBlocks[ thisstyle.media ] = [];
257						}
258						styleBlocks[ thisstyle.media ].push( rules[ thisstyle.rules ] );
259				}
260			}
261			
262			//remove any existing respond style element(s)
263			for( var i in appendedEls ){
264				if( appendedEls[ i ] && appendedEls[ i ].parentNode === head ){
265					head.removeChild( appendedEls[ i ] );
266				}
267			}
268			
269			//inject active styles, grouped by media type
270			for( var i in styleBlocks ){
271				var ss		= doc.createElement( "style" ),
272					css		= styleBlocks[ i ].join( "\n" );
273				
274				ss.type = "text/css";	
275				ss.media	= i;
276				
277				//originally, ss was appended to a documentFragment and sheets were appended in bulk.
278				//this caused crashes in IE in a number of circumstances, such as when the HTML element had a bg image set, so appending beforehand seems best. Thanks to @dvelyk for the initial research on this one!
279				head.insertBefore( ss, lastLink.nextSibling );
280				
281				if ( ss.styleSheet ){ 
282		        	ss.styleSheet.cssText = css;
283		        } 
284		        else {
285					ss.appendChild( doc.createTextNode( css ) );
286		        }
287		        
288				//push to appendedEls to track for later removal
289				appendedEls.push( ss );
290			}
291		},
292		//tweaked Ajax functions from Quirksmode
293		ajax = function( url, callback ) {
294			var req = xmlHttp();
295			if (!req){
296				return;
297			}	
298			req.open( "GET", url, true );
299			req.onreadystatechange = function () {
300				if ( req.readyState != 4 || req.status != 200 && req.status != 304 ){
301					return;
302				}
303				callback( req.responseText );
304			}
305			if ( req.readyState == 4 ){
306				return;
307			}
308			req.send( null );
309		},
310		//define ajax obj 
311		xmlHttp = (function() {
312			var xmlhttpmethod = false;	
313			try {
314				xmlhttpmethod = new XMLHttpRequest();
315			}
316			catch( e ){
317				xmlhttpmethod = new ActiveXObject( "Microsoft.XMLHTTP" );
318			}
319			return function(){
320				return xmlhttpmethod;
321			};
322		})();
323	
324	//translate CSS
325	ripCSS();
326	
327	//expose update for re-running respond later on
328	respond.update = ripCSS;
329	
330	//adjust on resize
331	function callMedia(){
332		applyMedia( true );
333	}
334	if( win.addEventListener ){
335		win.addEventListener( "resize", callMedia, false );
336	}
337	else if( win.attachEvent ){
338		win.attachEvent( "onresize", callMedia );
339	}
340})(this);

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.