<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>
