Firstly you were not passing a string into the 'toggle' function for it to select the element by it's id.
Then getting the CSS 'top' property using JQuery seems to solve the issue of 'elem.style.top' being empty on initialisation (requiring double click).
Here's the working fiddle: http://jsfiddle.net/gkhBM/
$("#clicketyclick").click(function() { toggle("navi"); });
function toggle(navi) {
var elem = document.getElementById(navi);
//console.log(elem.style.top);
//console.log($(elem).css('top'));
if($(elem).css('top') == "-604px"){
$(elem).css('top',"0px"); // elem.style.textDecoration = "underline";
}else{
$(elem).css('top',"-604px");//elem.style.textDecoration = "none";
}
}
console.log is extremely useful when debugging problems.