Bond,
вот эта строка лишняя в вашем коде
setInterval("show_img();",slider_interval);
поставьте вызов show_img во все animate --
так на всякий случай
var slider_interval = 4000;//интервал между сменой слайдов, милисекунд
var zoom_delay = 4000;//время, в течение которого происходит увеличение и перемещение картинки, милисекунд
данные секунды никогда несовпадут -- и интервал запустит лишние анимации отсюда и рывки -- можно конечно ничего не менять добавив stop(true,true) перед animate -- но лучше в таких анимациях отказ от использования setInterval