<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
	<head>
		<meta http-equiv="Content-type" content="text/html; charset=utf-8">
		<title>static</title>
		<style type="text/css" media="screen">
			body { margin: 1px; padding: 5px; }
			div.static { position: static; top: 0; left: 0; margin: 1px; border: 2px solid #000; padding: 5px; width: 100px; height: 100px; background: #fff; overflow: hidden; }
			#static-2 { top: 20px; left: 20px; }
			#marker { position: absolute; border: 2px solid #000; width: 50px; height: 50px; background: #ccc; }
		</style>
		<script src="../../jquery.js"></script>
		<script src="../iframeTest.js"></script>
		<script type="text/javascript" charset="utf-8">
			jQuery( function( $ ) {
				$( ".static" ).on( "click", function() {
					$( "#marker" ).css( $( this ).offset() );
					var pos = $( this ).position();
					$( this ).css( { position: 'absolute', top: pos.top, left: pos.left } );
					return false;
				} );
				startIframeTest();
			} );
		</script>
	</head>
	<body>
		<div id="static-1" class="static"><div id="static-1-1" class="static"><div id="static-1-1-1" class="static"></div></div></div>
		<div id="static-2" class="static"></div>
		<div id="marker"></div>
		<p class="instructions">Click the white box to move the marker to it. Clicking the box also changes the position to absolute (if not already) and sets the position according to the position method.</p>
	</body>
</html>
