/*
	Module:			WindowsMediaPlayerDetect_v1.js
	Description:	Javascript to detect Windows Media Player information

	Sample usage:
	
		var oWMPInfo = detectWMP();
		document.write('Browser architecture supports: ' + oWMPInfo.strControlType + '\n');
		document.write('Windows Media Player installed: ' + oWMPInfo.bInstalled + '\n');
		if (oWMPInfo.bInstalled) {
			document.write('Windows Media scriptable: ' + oWMPInfo.bScriptable + '\n');
			document.write('Windows Media Version: ' + oWMPInfo.strVersion + '\n');
		}


	Change History
	
		Created:	Alex Moses	29 Nov 2005
		Modified:
*/


	function detectWMP() {

		var voWMPInfo = {
			bInstalled: false,
			bScriptable: false,
			strControlType: null,
			strVersion: null
		};
		var voWMP64 = 'MediaPlayer.MediaPlayer.1';
		var voWMP7 = 'WMPlayer.OCX.7';
		
		if ((window.ActiveXObject && browserName=='IE') || window.GeckoActiveXObject) {
			voWMPInfo.strControlType = 'ActiveX';
			var oWMP = createActiveXObject(voWMP7);
			if (oWMP) {
				voWMPInfo.bInstalled = true;
				voWMPInfo.bScriptable = true;
				voWMPInfo.strVersion = oWMP.strVersion;
				return voWMPInfo;
			} else {
				oWMP = createActiveXObject(voWMP64);
				if (oWMP) {
					voWMPInfo.bInstalled = true;
					voWMPInfo.bScriptable = true;
					voWMPInfo.strVersion = '6.4';
					return voWMPInfo;
				}
				else {
					voWMPInfo.strVersion = 'none';
					return voWMPInfo;
				}
			}
		} else if(navigator.mimeTypes) {
			voWMPInfo.strControlType = 'NetscapePlugin';
			var oWMP = navigator.mimeTypes['application/x-mplayer2'].enabledPlugin;
			if (oWMP) {	
				voWMPInfo.bInstalled = true;
				voWMPInfo.strVersion = 'PluginVersion';
				return voWMPInfo;
			}
			return voWMPInfo;
		}
	}


	function createActiveXObject(pID) {
	  var e;
	  var voControl = null;

		try {
			if (window.ActiveXObject) {
				voControl = new ActiveXObject(pID);
			} else if (window.GeckoActiveXObject) {
				voControl = new GeckoActiveXObject(pID);
			}
		} catch (e) {}
		
		return voControl;
	}
