1) функции нельзя объявлять внутри условий.
2) Че за китай-код? Вам платят за количество строк?
3) На кой вам onload если у вас под рукой jQuery с его $(document).ready() ?
Почему не так ?:
$(document).ready(function(){
var hash = location.hash.substring(1);
if (hash) {
var className = 'current' + hash;
$('.' + className).removeClass(className).addClass('current');
}
});
Вот только к чему все эти танцы с бубном? Какому человеку в здравом уме понадобится сначала генерить currentblabla на сервере, а затем заменять на current в браузере? Попахивает бредом, не говоря уж про кривизну рук.