dunque, è tutta roba lato client quindi te la cavi con un po' di javascript e css.
Sul div in cui deve comparire un'immagine gestisci l'evento che intercetta il passaggio del mouse, il cui gestore va a modificare la proprietà background del css del div. Dovrai quindi intercettare sia l'evento del mouse che entra sia l'evento del mouse che esce per ripristinare il background di partenza.
Per far comparire un secondo div cliccando sul primo devi gestire un ulteriore evento che intercetti il click sul primo div: il gestore può ad esempio cambiare la proprietà hidden del css del nuovo div (il div è quindi già presente nel dom ma invisibile).
Per far scomparire il secondo div cliccando in qualuque punto della pagina gestisci l'evento che intercetta il click direttamente sul body il cui gestore re-imposta a true la proprietà hidden del nuovo div.
Guarda cmq se jquery e framework affini offrono qualcosa di già pronto