Assuming, as reko_t has commented, you can't just create grey scale versions of the images on the server for some reason, it's possible in IE using the proprietary filter
CSS attribute, BasicImage with grayScale. You don't need JS to do this, it can be declared in CSS:
a {
display: block;
width: 80px;
height: 15px;
background-image: url(http://www.boogdesign.com/images/buttons/microformat_hcard.png);
}
a:hover {
filter:progid:DXImageTransform.Microsoft.BasicImage(grayScale=1);
}
In Firefox, you could apply an SVG mask, or you could try using the canvas element.
However, the simplest solution may be to either manually create grey scale versions of your images, or do it server side with something like GD.