createMasks = function (pane) {
		var
			$P	= $Ps[pane]
		,	s	= state[pane]
		,	o	= options[pane]
		,	z	= options.zIndexes
		,	isIframe, el, $M, css, i
		;
		if (!o.maskContents && !o.maskObjects) return $([]);
		// if o.maskObjects=true, then loop TWICE to create BOTH kinds of mask, else only create a DIV
		for (i=0; i < (o.maskObjects ? 2 : 1); i++) {
			isIframe = o.maskObjects && i==0;
			el = document.createElement( isIframe ? "iframe" : "div" );
			$M = $(el).data("layoutMask", pane); // add data to relate mask to pane
			el.className = "ui-layout-mask ui-layout-mask-"+ pane; // for user styling
			css = el.style;
			// Both DIVs and IFRAMES
			css.background	= "#FFF";
			css.position	= "absolute";
			css.display		= "block";
			if (isIframe) { // IFRAME-only props
				el.src		= "about:blank";
				el.frameborder = 0;
				css.border	= 0;
				css.opacity	= 0;
				css.filter	= "Alpha(Opacity='0')";
				//el.allowTransparency = true; - for IE, but breaks masking ability!
			}
			else { // DIV-only props
				css.opacity	= 0.001;
				css.filter	= "Alpha(Opacity='1')";
			}
			// if pane IS an IFRAME, then must mask the pane itself
			if (s.tagName == "IFRAME") {
				// NOTE sizing done by a subroutine so can be called during live-resizing
				css.zIndex	= z.pane_normal+1; // 1-higher than pane
				$N.append( el ); // append to LAYOUT CONTAINER
			}
			// otherwise put masks *inside the pane* to mask its contents
			else {
				$M.addClass("ui-layout-mask-inside-pane");
				css.zIndex	= o.maskZindex || z.content_mask; // usually 1, but customizable
				css.top		= 0;
				css.left	= 0;
				css.width	= "100%";
				css.height	= "100%";
				$P.append( el ); // append INSIDE pane element
			}
			// add Mask to cached array so can be resized & reused
			$Ms = $Ms.add( el );
		}
		return $Ms;
	}
createMasks

Generates both DIV (ALWAYS used) and IFRAME (optional) elements as masks
An IFRAME mask is created *under* the DIV when maskObjects=true, because a DIV cannot mask an applet

@param {string}	pane