ImageMapster makes HTML image maps useful.

ImageMapster is a jQuery plugin that lets you activate HTML image maps without using Flash. It works
just about everywhere that Javascript does, including modern browsers, Internet Explorer 6, and mobile devices like iPads, iPhones and Androids.

Note: ImageMapster used to be distributed as a ZIP archive. You can still download the full package including examples and source as a zip from GitHub but I will no longer be building a version-specific ZIP file with each release.

Automatically scale imagemaps to any display size, even while active

This web site uses CsQuery - a feature-complete (as of 2/12) server side implementation of
jQuery written in C# that I've been working on since early 2011. It is a standalone library and not framework dependent, e.g. it will work with
MVC, Webforms, or anywhere else you want to use it. It's fast enough to use in real-time to process and serve web pages.

You can manipulate HTML the same way on the server that you can with jQuery on the client - making it easy to do things like
grab stuff from other web sites and add it into a page. It lets you use CSS selectors and jQuery DOM manipulation methods against any
HTML from the server.

For grabbing data, it's much faster than using client-side requests because the end-user will never wait for the request to complete. That is,
instead of requiring each client to make requests, the server can do it on a schedule (like this) and cache the results, which will be available
(most likely) the next time the page is accessed. You can greatly reduce the amount of traffic generated, and also eliminate any
delays since all your data is gathered asynchronously. As far as the user is
concerned, it was already there. Also, since you aren't running queries from the client, you aren't limited by cross-browser
restrictions imposed by web browsers. You can grab whetever you want, from wherever you want.

Here's the basic code used to pull that stuff from GitHub. Since there's no real need to have that info updated in real time, I do it
every four hours to keep the number of server requests generated to a reasonable level. This code starts async requests when the info
is missing or stale, then updates static variables to cache their values. The CQ object is essentially the same as a
jQuery object on the client side.