Code Duplication    Length = 93-122 lines in 2 locations

api/js/etemplate/test/jquery.js 1 location

@@ 6256-6377 (lines=122) @@
6253
		return clone;
6254
	},
6255
6256
	clean: function( elems, context, fragment, scripts ) {
6257
		var checkScriptType;
6258
6259
		context = context || document;
6260
6261
		// !context.createElement fails in IE with an error but returns typeof 'object'
6262
		if ( typeof context.createElement === "undefined" ) {
6263
			context = context.ownerDocument || context[0] && context[0].ownerDocument || document;
6264
		}
6265
6266
		var ret = [], j;
6267
6268
		for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
6269
			if ( typeof elem === "number" ) {
6270
				elem += "";
6271
			}
6272
6273
			if ( !elem ) {
6274
				continue;
6275
			}
6276
6277
			// Convert html string into DOM nodes
6278
			if ( typeof elem === "string" ) {
6279
				if ( !rhtml.test( elem ) ) {
6280
					elem = context.createTextNode( elem );
6281
				} else {
6282
					// Fix "XHTML"-style tags in all browsers
6283
					elem = elem.replace(rxhtmlTag, "<$1></$2>");
6284
6285
					// Trim whitespace, otherwise indexOf won't work as expected
6286
					var tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase(),
6287
						wrap = wrapMap[ tag ] || wrapMap._default,
6288
						depth = wrap[0],
6289
						div = context.createElement("div");
6290
6291
					// Append wrapper element to unknown element safe doc fragment
6292
					if ( context === document ) {
6293
						// Use the fragment we've already created for this document
6294
						safeFragment.appendChild( div );
6295
					} else {
6296
						// Use a fragment created with the owner document
6297
						createSafeFragment( context ).appendChild( div );
6298
					}
6299
6300
					// Go to html and back, then peel off extra wrappers
6301
					div.innerHTML = wrap[1] + elem + wrap[2];
6302
6303
					// Move to the right depth
6304
					while ( depth-- ) {
6305
						div = div.lastChild;
6306
					}
6307
6308
					// Remove IE's autoinserted <tbody> from table fragments
6309
					if ( !jQuery.support.tbody ) {
6310
6311
						// String was a <table>, *may* have spurious <tbody>
6312
						var hasBody = rtbody.test(elem),
6313
							tbody = tag === "table" && !hasBody ?
6314
								div.firstChild && div.firstChild.childNodes :
6315
6316
								// String was a bare <thead> or <tfoot>
6317
								wrap[1] === "<table>" && !hasBody ?
6318
									div.childNodes :
6319
									[];
6320
6321
						for ( j = tbody.length - 1; j >= 0 ; --j ) {
6322
							if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) {
6323
								tbody[ j ].parentNode.removeChild( tbody[ j ] );
6324
							}
6325
						}
6326
					}
6327
6328
					// IE completely kills leading whitespace when innerHTML is used
6329
					if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {
6330
						div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild );
6331
					}
6332
6333
					elem = div.childNodes;
6334
				}
6335
			}
6336
6337
			// Resets defaultChecked for any radios and checkboxes
6338
			// about to be appended to the DOM in IE 6/7 (#8060)
6339
			var len;
6340
			if ( !jQuery.support.appendChecked ) {
6341
				if ( elem[0] && typeof (len = elem.length) === "number" ) {
6342
					for ( j = 0; j < len; j++ ) {
6343
						findInputs( elem[j] );
6344
					}
6345
				} else {
6346
					findInputs( elem );
6347
				}
6348
			}
6349
6350
			if ( elem.nodeType ) {
6351
				ret.push( elem );
6352
			} else {
6353
				ret = jQuery.merge( ret, elem );
6354
			}
6355
		}
6356
6357
		if ( fragment ) {
6358
			checkScriptType = function( elem ) {
6359
				return !elem.type || rscriptType.test( elem.type );
6360
			};
6361
			for ( i = 0; ret[i]; i++ ) {
6362
				if ( scripts && jQuery.nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) {
6363
					scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] );
6364
6365
				} else {
6366
					if ( ret[i].nodeType === 1 ) {
6367
						var jsTags = jQuery.grep( ret[i].getElementsByTagName( "script" ), checkScriptType );
6368
6369
						ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) );
6370
					}
6371
					fragment.appendChild( ret[i] );
6372
				}
6373
			}
6374
		}
6375
6376
		return ret;
6377
	},
6378
6379
	cleanData: function( elems ) {
6380
		var data, id,

api/js/egw_action/test/js/jquery.js 1 location

@@ 5493-5585 (lines=93) @@
5490
		// Return the cloned set
5491
		return clone;
5492
  },
5493
	clean: function( elems, context, fragment, scripts ) {
5494
		context = context || document;
5495
5496
		// !context.createElement fails in IE with an error but returns typeof 'object'
5497
		if ( typeof context.createElement === "undefined" ) {
5498
			context = context.ownerDocument || context[0] && context[0].ownerDocument || document;
5499
		}
5500
5501
		var ret = [];
5502
5503
		for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
5504
			if ( typeof elem === "number" ) {
5505
				elem += "";
5506
			}
5507
5508
			if ( !elem ) {
5509
				continue;
5510
			}
5511
5512
			// Convert html string into DOM nodes
5513
			if ( typeof elem === "string" && !rhtml.test( elem ) ) {
5514
				elem = context.createTextNode( elem );
5515
5516
			} else if ( typeof elem === "string" ) {
5517
				// Fix "XHTML"-style tags in all browsers
5518
				elem = elem.replace(rxhtmlTag, "<$1></$2>");
5519
5520
				// Trim whitespace, otherwise indexOf won't work as expected
5521
				var tag = (rtagName.exec( elem ) || ["", ""])[1].toLowerCase(),
5522
					wrap = wrapMap[ tag ] || wrapMap._default,
5523
					depth = wrap[0],
5524
					div = context.createElement("div");
5525
5526
				// Go to html and back, then peel off extra wrappers
5527
				div.innerHTML = wrap[1] + elem + wrap[2];
5528
5529
				// Move to the right depth
5530
				while ( depth-- ) {
5531
					div = div.lastChild;
5532
				}
5533
5534
				// Remove IE's autoinserted <tbody> from table fragments
5535
				if ( !jQuery.support.tbody ) {
5536
5537
					// String was a <table>, *may* have spurious <tbody>
5538
					var hasBody = rtbody.test(elem),
5539
						tbody = tag === "table" && !hasBody ?
5540
							div.firstChild && div.firstChild.childNodes :
5541
5542
							// String was a bare <thead> or <tfoot>
5543
							wrap[1] === "<table>" && !hasBody ?
5544
								div.childNodes :
5545
								[];
5546
5547
					for ( var j = tbody.length - 1; j >= 0 ; --j ) {
5548
						if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) {
5549
							tbody[ j ].parentNode.removeChild( tbody[ j ] );
5550
						}
5551
					}
5552
5553
				}
5554
5555
				// IE completely kills leading whitespace when innerHTML is used
5556
				if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {
5557
					div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild );
5558
				}
5559
5560
				elem = div.childNodes;
5561
			}
5562
5563
			if ( elem.nodeType ) {
5564
				ret.push( elem );
5565
			} else {
5566
				ret = jQuery.merge( ret, elem );
5567
			}
5568
		}
5569
5570
		if ( fragment ) {
5571
			for ( i = 0; ret[i]; i++ ) {
5572
				if ( scripts && jQuery.nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) {
5573
					scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] );
5574
5575
				} else {
5576
					if ( ret[i].nodeType === 1 ) {
5577
						ret.splice.apply( ret, [i + 1, 0].concat(jQuery.makeArray(ret[i].getElementsByTagName("script"))) );
5578
					}
5579
					fragment.appendChild( ret[i] );
5580
				}
5581
			}
5582
		}
5583
5584
		return ret;
5585
	},
5586
5587
	cleanData: function( elems ) {
5588
		var data, id, cache = jQuery.cache, internalKey = jQuery.expando, special = jQuery.event.special,