<html>

<head>

<script>

function runTest()
{
    if (!window.eventSender)
        return;

    testRunner.dumpAsText();

    eventSender.mouseMoveTo(340, 140);
    eventSender.mouseDown();
    eventSender.mouseUp();
}

function setResult(message)
{
    document.getElementById('result').firstChild.data = message;
}

</script>

</head>

<body onload="runTest()" style="margin:0; zoom: 2" onclick="setResult('FAILURE')">

<map name="navmap">
<area shape=rect coords="30,30,70,70" href onclick="setResult('SUCCESS'); event.stopPropagation(); event.preventDefault();"> 
</map>

<img style="position: relative; left: 100px" border="20" width="100" height="100" usemap="#navmap" src="no-img.png" ismap>

<hr>

<p>This tests that client side image maps still work when zooming is in effect.</p>

<div id="result">TEST NOT RUN</div>

</body>

</html>
