<html>
<body>
    <div>
    This test checks to make sure the hashchange event is fired __ansynchronously__ when the value of location.hash changes.<br/>
    It assumes there is a hashchange event for each location.hash change.<br/>
    <br/>
    </div>
    <div id="msg"></div>
</body>
<script language="javascript">
<!--

var hashChanging = false;
var failed = false;
var msgs = [];

var lc = window.testRunner;
if (lc) {
    lc.dumpAsText();
    lc.waitUntilDone();
}

function updateHash (hash) {
    msgs.push('updateHash("' + hash + '")');
    location.href = hash;
};

function loadHandler () {
    hashChanging = true;
    updateHash('#foo');
    updateHash('#bar');
    hashChanging = false;
};

var cnt = 0;
function hashChangeHandler () {
    msgs.push('hashChangeHandler()');
    if (hashChanging) {
        failed = true;
    }
    if (++cnt == 2) {
        msgs.push('', failed ? "FAILURE" : "SUCCESS");
        document.getElementById("msg").innerHTML = msgs.join('<br/>');
        if (lc) {
            lc.notifyDone();
        }
    }
};

window.addEventListener('load', loadHandler, false);
window.addEventListener('hashchange', hashChangeHandler, false);

//-->
</script>
</html>
