$-функция возвращает список элементов, а не сам элемент.
Поэтому надо так:
function buyDialog( nameBuy, idBuy ) {
$('#whatToBuy')[0].innerHTML = nameBuy;
$('#idBuy')[0].value = idBuy;
showDialog($('#buy'));
}
Или так (вообще без jQuery)
function $(id) {
return document.getElementById(id);
}
function buyDialog( nameBuy, idBuy ) {
$('whatToBuy').innerHTML = nameBuy;
$('idBuy').value = idBuy;
showDialog($('buy'));
}