Hola:
Los dos temas son cosas Ajax, pero cuando se trata de imágenes no sirve el objeto Ajax normal (XMLHttpRequest), porque loas peticiones Ajax no admiten las cabeceras para subir imágenes... (tal vez te suene a chino...), y el sistema que comentas sí que trabajan con el sistema Ajax normal...
En el artículo, no se comenta lo del gif animado, pero si que se vé en el link que te comenté... pero para no dar muchas vueltas, trataré de explicarte el sisrtema...
Hace falta un formulario con ese campo file para las imágenes, y obligatoriamente el método post, y el enctype multipart/form-data, y un target que coincida con el nombre de un iframe oculto.
Cuando se selecciona una imagen, se lanza el evento change del control file (onchange), y en ese momento se debe enviar ese formulario, y mostrar esa imagen oculta (el gif animado)... luego cuando se termine de cargar la página en el iframe (onload) se advierte a la página padre pare que vuelva a ocultar la animación... chino, pero lógico...
Saludos