<html>
<head>
    <title>Align in select test</title>
    <style type="text/css">
        select { width: 300px; }
    </style>
</head>
<body>
    <p>The following select elements should all be rendered on the left, with their text left justified.</p>
    <select align="right"><option>This is should be left justified.</option></select>
    <br>
    <select align="left"><option>This is should be left justified.</select>
    <br>
    <select align="center"><option>This is should be left justified.</option></select>
    <br>
    <select><option>This is should be left justified.</option></select>
    <br>

    <select id="test1"><option>This is should be left justified.</option></select>
    <script>
    <!--
        var obj1 = document.getElementById('test1');
        obj1.setAttribute('align', 'right');
    -->
    </script>

    <div id='insertionpoint'></div>
    <script>
    <!--
        var ins = document.getElementById('insertionpoint');
        var obj2 = document.createElement('SELECT');
        obj2.setAttribute('align', 'right');
        var option = document.createElement('OPTION');
        option.appendChild(document.createTextNode('This is should be left justified.'));
        obj2.appendChild(option);
        ins.appendChild(obj2);
    //-->
    </script>
</body>
</html>
