В принципе подход верный, только при этом у всех блоков будет меняться значение display на противоположное. А нужно, чтобы при этом у элемента, на который нажали, display было block, а у остальных - none.
function ShowOrHide(id)
{
// обозначаем контейнер
var container = documentGetElementById('container');
//собираем все div'ы внутри контейнера
var divs = container.getElementsBYTagName('div');
//проходимся циклом по всем div'ам
for(var i = 0; i<divs.length; i++)
{
var divId = divs[i].id;
if (divId == id)
// если id текущего div'а совпадает с id, переданным функции, делаем его видимым
document.getElementById(divId).style.display = 'block';
else
//остальные элементы делаем невидимыми
document.getElementById(divId).style.display = 'none';
}
}
Еще можно на jQuery сделать, будет выглядеть примерно:
$('div[id^=newsbar]').toggleClass('visible').toggleClass('invisible');
При этом надо задать классу visible значение display: none и наоборот.