Есть много способов ... например: вы можете скрыть изображение:
<div id='loading' style='display:none'><img src='img.gif'></div>
и покажите его, как только вы запустите AJAX-запрос:
document.getElementById('loading').style.display = 'inline';
Затем вы снова скрываете изображение после завершения запроса:
if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete"){
document.getElementById('loading').style.display = 'none';
document.getElementById("recipe_planner_container").innerHTML = xmlHttp.responseText;
}
Или вы можете использовать jQuery, Prototype, Mootools или любую другую библиотеку JS, которую вы хотите.
Bye!