<head>
<script>
function test()
{
    var queryIndex = document.URL.indexOf('?');
    if (queryIndex == -1) {
        window.scrollTo(500, 500);

        if (window.layoutTestController) {
            layoutTestController.dumpAsText();
            layoutTestController.waitUntilDone();

            eventSender.mouseMoveTo(18, 18);
            eventSender.mouseDown();
            eventSender.mouseUp();
        }
    } else {
        document.write("<div>Form data: " + document.URL.substring(queryIndex + 1) + "</div>");
        document.write("<div>X and Y should both be about 10.</div>");

        if (window.layoutTestController)
            layoutTestController.notifyDone();
    }
}
</script>
</head>
<body onload="test()">
<div style="background:red; width:1000px; height:500px"></div>
<div style="background:blue; height:50px; width:500px; float:left"></div>
<a href="anchor-image-scrolled-x-y.html"><img src="resources/greenbox.png" ismap></a>
<div style="background:orange; width:3000px; height:3000px"></div>
</body>
