I think your opening <form> tag may be lacking an id attribute.
In your example, you have only given it a name.
The name attribute alone is not enough to address an element using the W3C DOM.
Give the form an id that is the same as the name.
e.g... <form name="form1" id="form1" ...> ... </form>
If there is no form tag with the form1 id then, as far as the W3C DOM is concerned, the form1 element does not exist and cannot be used as part of an element address.
An element that does not exist will have "no properties" either.
Fwiw, if you are using getElementById() then you don't even need to reference the form in the command.
If the Next button/image tag has an id (id="Next") then you can simply reference it directly.
e.g... document.getElementById('Next').click()
That should do it, but in case you are still unclear I will post the entire code from my basic test page.
It shows several DOM methods of address and clicking the alert button at the bottom.
This code has been tested and found to work without error on the browsers that I mentioned earlier.
Code:
<html>
<head>
<title>proxy click() test (W3C DOM)</title>
<script type="text/javascript">
function clickMe1() {
document.getElementById('Next').click()
}
function clickMe2(id) {
document.getElementById(id).click()
}
function clickMe3() {
document.getElementById('form1').Next.click()
}
function clickMe4() {
document.forms[0].Next.click();
}
</script>
</head>
<body>
<form id="form1">
<input type="button" value="proxy alert button 01" onclick="clickMe1()"><br>
<input type="button" value="proxy alert button 02" onclick="clickMe2('Next')"><br>
<input type="button" value="proxy alert button 03" onclick="clickMe3()"><br>
<input type="button" value="proxy alert button 04" onclick="clickMe4()"><br><br>
<input type="button" value="alert button" id="Next" onclick="alert('This Works')">
</form>
</body>
</html>
Again, try the adjustments I mentioned above and let me know how you get on. 
Footnote:
Fwiw, the name attribute in form elements has become largely obsolete and id is more commonly used to identify elements.
However, if you are using old CGI scripts they still may require that you use the name attribute.
The best thing to do would be to update your CGI to a newer script.
Alternatively, you can use both the id attribute *and* the name attribute (though not If you want your page to validate as either HTML 4 Strict or XHTML 1 Strict. Both of these standards no longer use the name attribute and use the id attribute instead. Name is still valid in X/HTML Transitional.)
P.S.
As I mentioned earlier, it is sometimes easier to look at the entire page's code (from <html> to </html>). It would possibly have made spotting the problem here simpler with less need to test/guess.
Just a thought.
Bookmarks