<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
    <p>Test for <a href="http://bugs.webkit.org/show_bug.cgi?id=11402">bug 11402</a> and 
    <a href="http://bugs.webkit.org/show_bug.cgi?id=12701">bug 12701</a>:
    An onChange event should fire when the first item is not the default, and
    after changing the value via JavaScript.</p>
    <p>After following the steps below, both selects should display "SUCCESS".</p>

    <form action="" method="post" name="areaform" id="areaform">
        <select name="selectitem" onChange="onChange1(this)">
            <option value="1">Please change this to another value</option>
            <option value="2">(to this one)</option>
        </select>
    </form>
    <form action="" method="post" name="areaform2" id="areaform2">
        <select name="selectitem2" onChange="onChange2(this)">
            <option value="1">(to this one)</option>
            <option value="2" selected>Please change this to another value</option>
        </select>
    </form>

    <script>
        function onChange1(sel) {
            if (sel.secondTry) {
                sel.options[1].text='SUCCESS';
            } else {
                sel.options[0].text='Please change this to another value once again';
                sel.value = '1';
                sel.secondTry = 1;
            }
        }
        
        function onChange2(sel) {
            if (sel.secondTry) {
                sel.options[0].text='SUCCESS';
            } else {
                sel.options[1].text='Please change this to another value once again';
                document.forms.areaform2.selectitem2.options[1].selected = true;
                sel.secondTry = 1;
            }
        }
    </script>

</body>
</html>
