Только что в одной news-группе спрашивали, почему код (см. ниже) вызывает "конфликт" имён?
<html>
<head>
    <title>Test</title>
    <script type="text/javascript">
        function test() {
            alert("Test");
        }
    </script>
</head>
<body>
    <form>
        <input type="button" name="test" onclick="test();" value="Test" />
    </form>
</body>
</html>
Данный код вызывает 
"test" is not a function. Очевидно завязанное имя элемента - это данность, вопрос в том, 
почему именно так?
P.S. этот небольшой тест развивает/определяет понимание механизма самого JS.