<table background="pictures/nav.jpg">
<tr>
<td id="nav1" onmouseover="changenav(this)">
<a name="ref1" href="">123</a></td>
<td id="nav2" onmouseover="changenav(this)">
<a name="ref2" href="">456</a></td>
</tr>
</table>
<script>
function changenav(obj) {
obj.style.backgroundImage = 'url(http://javascript.ru/forum/images/smilies/smile.gif)';
}
</script>
"-" не ставится, и слово должно начитаться с большой буквы.
И в присвоении значения вы вызываете функцию
url а должны же просто строку передавать.