<!DOCTYPE html>
<html>
	<head>
		<title>Drag and drop alternating between windowless Flash and page</title>
		<style type="text/css">
div {
	width: 100px;
	height: 100px;
	background: fuchsia;
}
object {
	width: 400px;
	height: 400px;
	border: 5px solid black;
}
		</style>
		<script type="text/javascript">
window.onload = function () {
	document.getElementsByTagName('div')[0].ondragstart = function (e) {
		e.dataTransfer.effectAllowed = 'copy';
		e.dataTransfer.setData('text','dummy text');
	};
};
		</script>
	</head>
	<body>
		<noscript><p>Enable JavaScript and reload</p></noscript>
		<ol>
			<li>Drag the pink square onto the blue square and release it. The drag placeholder should disappear (either when releasing, or when passing the black square), and the mouse cursor should return to normal.</li>
			<li>Without moving your mouse outside the black square, drag the orange square onto the blue square and release it. The orange square should disappear, and the blue square should turn yellow. Fail if the orange square does not immediately respond to the drag attempt.</li>
			<li>Drag the pink square onto the yellow square and release it. The drag placeholder should disappear, and the mouse cursor should return to normal. Fail if the pink square does not immediately respond to the drag attempt.</li>
		</ol>
		<div draggable="true"></div>
		<script type="text/javascript">
var plugincode = '<object data="dragndrop.swf" type="application/x-shockwave-flash"><param name="wmode" value="opaque">Flash plugin is required for this test.</object>';
		</script>
		<script type="text/javascript" src="click-to-activate.js"></script>
	</body>
</html>