Here I would like to try to answer questions about OpenLayers. Please ask in a comment.

  1. How to enable animated zooming as in (though it seems they implemented their own method)

    View or The performance of those sites might not be as good as Tomtom's because they might not have as fast WMS servers or the tiles are not cached efficiently. If you need fast tile seeding/caching, have a look at MapServer and in particular MapCache on the server side. Both of which are CGI programs implementing WMS.

  2. How to restrict the map to a certain area by giving lon and lat values.

    View or (line 18; view source). Generally, I think the maxExtent property of the Map class will do the trick.