Я конечно тоже не гуру, но попытаюсь помочь.
Во первых думаю две одинаковых функции - это лишнее, поэтому оставил все го лишь одну
.
Во вторых, так и не понял для чего у тега <table> определен сlass='mainmenu' который ни где не описан, поэтому выкинул лишний мусор.
В третьих Вы куда то потеряли закрывающий тег </table> основной таблицы
(исправил и этот ляп)
Ну и вот, думаю то что Вам было нужно:
<style>
.hide {display: none}
.hide2 {display: none}
.show {display: block}
</style>
<script>
function setTables(el) {
var tables=el.parentNode.getElementsByTagName("TABLE") ;
for (var i=0; i<tables.length; i++) {
tables[i].className=(tables[i].className=='hide')?'show':'hide';
}
}
</script>
<table><tr>
<td>
<a href='javascript:;' onClick='setTables(this);'>Меню</a>
<table border=0 width=170 class='hide' cellpadding="0" cellspacing="0" align=left><tr>
<td>
<a href='javascript:;' onClick='setTables(this);'>Пункт1</a>
<table border=0 width=170 class='hide2' cellpadding="0" cellspacing="0" align=left> <tr>
<td>
<a href='1.html'>Пункт1.1</a>
</td></tr>
</table>
</td></tr>
</table>
</td></tr>
</table>