Beej30, I just implemented this for a client.
My code plays nicely with option_selection.js and uses jQuery.
It does rely on a proper naming convention for your image files. The file name must contain in it the option that is selected.
If you have many sets of options, say Material and Color, and it is the Color that interests you, then the image file(s) that go(es) with ‘Red’ must contain the string red in it (case-insensitive). That way, you don’t need to worry about the order of your images in your admin, or how many images you’ve got to illustrate a particular option.
By the way, your image code is not quite working: when you change the main image by clicking on a thumb, and you zoom in that image, the Fancy Box showcases the old image not the new one.
If you need help with this, contact me. I’ll give you a quote.
Here are some examples: