A word about how the script works. In browsers that use the netscape plug-in API (Mozilla, Firefox…) the detection is pretty straightforward. It just checks the description property of the navigator.plugins array. Unfortunately it’s not so simple in Internet Explorer. ActiveX controls that IE can load typically have a class id that the browser uses to identify the control and usually this class id contains a version number. This doesn’t seem to be the case with the aw web player control which in the few versions I tested were all “Macromedia.AuthorwareShockwaveControl.1″. Here’s where the hack comes out. The 2004 web player added a few new methods to the activex control (see this MM technote for all you’ll ever want to know about the 2004 web player) so the script creates an instance of the control and then checks if GetVariable (one of those new methods) is a member of that instance. If it is we know that the player is the 2004 version.