For the future, try not to include ANY media if you can help it, people are much more willing to help if they can just run the code without any hassle.
I think this is what you were looking for. If you know how to move the camera in a circle, then moving it in and out should be easy to understand. You just use another angle, and sin() again...
posx = COS(angle) * radius + radius * 2 * sin(zoomAngle)
posz = SIN(angle) * radius + radius * 2 * sin(zoomAngle)
angle = wrapvalue(angle + 1)
zoomAngle = wrapvalue(zoomAngle + 2)
As the angle increases, sin goes from 1 to 0 to 1 to 0 smoothly, in a sine wave (you may already know), so then if you times that by a value and add it onto the radius, you will get a smoothly increasing and decreasing radius, which results in a zooming camera. I also included wrapvalue() which wraps the angle around to 0 if it reaches 360. This stops the value getting rediculously high.
Also, in the future use "sync on" and "sync". If you use sync on, it tuns manual screen refreshing on, so the screen only refreshes when you use "sync". This can make the screen seem smoother. "sync rate" sets the maximum frames per second.
Hope I helped.
Athelon XP 1600+/Radeon 9600 Pro/256 RAM