<html>
<head>
<title>Input Align</title>
</head>

<body>

    <p>The following 5 inputs should be all be rendered exactly the same, aligned to the left side.</p>

    <input type='text' align='right' value='The quick brown...' />
    <br>
    <input type='text' value='The quick brown...' />
    <br>
    <input type='text' value='The quick brown...' id='test1' />
    <br>
    <script>
    <!--
        // This script tries to set the align attribute on an input of type text.
        // Nothing should happen...
        var obj1 = document.getElementById('test1');
        obj1.setAttribute('align', 'right');
    -->
    </script>

    <input type='image' align='right' value='The quick brown...' id='test2' />
    <br>
    <script>
    <!--
        // This script tries to set the align attribute on an input of type text.
        // Nothing should happen...
        var obj2 = document.getElementById('test2');
        obj2.setAttribute('type', 'text');
    -->
    </script>

    <div id='insertionpoint'></div>

    <script>
    <!--
        var ins = document.getElementById('insertionpoint');
        var obj3 = document.createElement('INPUT');
        obj3.setAttribute('align', 'right');
        obj3.setAttribute('value', 'The quick brown...');
        ins.appendChild(obj3);
    //-->
    </script>
</body>
</html>
