function UserAgentInfo()
{
	var agt=navigator.userAgent.toLowerCase();
	var appVer = navigator.appVersion.toLowerCase();
	
	/** DETECT OS **/
	var os = 'win';
	if (agt.indexOf('mac') != -1) os = 'mac';	
	this.os = os;

	/** DETECT BROWSER **/
	var version = parseFloat(appVer);
	var browser = 'unknown';
	if (agt.indexOf('opera') != -1) browser = 'opera';
	if (agt.indexOf('konqueror') != -1) browser = 'konqueror';
	if (agt.indexOf('mozilla') != -1) browser = 'mozilla';
	if (agt.indexOf('safari') != -1) browser = 'safari';
	if (agt.indexOf('msie') != -1) browser = 'msie';
	
	var isKHTML = (browser == 'safari' || browser == 'konqueror');
	var isGecko = ((!isKHTML) && (navigator.product)&&(navigator.product.toLowerCase()=="gecko")) ?true : false;
	if (agt.indexOf('mozilla/5') != -1 && isGecko) browser = 'firefox';	

	this.browserName = browser;
	this.browserVersion = version;
	this.flashVersion = -1;
	this.realPlayerVersion = -1;
	this.quickTimeVersion = -1;
	this.m_windowsMediaPlayerName = null;

	this.flashPlayer = function () {
		if (this.flashVersion == -1) {
			this.flashVersion = 0;
			var flashplugin = (	navigator.mimeTypes && 
												navigator.mimeTypes["application/x-shockwave-flash"] &&
												navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin) ?
												navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin : 0;
			if (flashplugin && flashplugin.description) {
					flashVersion = parseInt(flashplugin.description.substring(flashplugin.description.indexOf(".")-1));
			}

			if (os == 'win' && this.browserName == 'msie') {
				document.write(
					 '<scr' + 'ipt language=VBScript>' + '\n' +
					 'Dim hasPlayer, playerversion' + '\n' +
					 'hasPlayer = false' + '\n' +
					 'playerversion = 10' + '\n' +
					 'Do While playerversion > 0' + '\n' +
						'On Error Resume Next' + '\n' +
						'hasPlayer = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & playerversion)))' + '\n' +
						'If hasPlayer = true Then Exit Do' + '\n' +
						'playerversion = playerversion - 1' + '\n' +
					 'Loop' + '\n' +
					 'VB_UserAgentInfo = playerversion' + '\n' +
					 '<\/sc' + 'ript>'
				);
				this.flashVersion = VB_UserAgentInfo;
			}
		}
		return this.flashVersion;
	} // function flashPlayer()

	this.realPlayer = function() {
		if (this.realPlayerVersion == -1) {
			this.realPlayerVersion = 0;
			var numPlugins = navigator.plugins.length;
			for (var i = 0; i < numPlugins; ++i)
			{
				plugin = navigator.plugins[i];
				if (plugin.name.substring(0,10)=='RealPlayer')
				{
					this.realPlayerVersion = plugin.name;
					break;
				}
			}
		}
		return this.realPlayerVersion;
	} // function realPlayer()

	this.quickTime = function() {
		if (this.quickTimeVersion == -1) {
			var version = 0;
			var bHaveQT = false;
				if (navigator.plugins) {
				for (i=0; i < navigator.plugins.length; i++ ) {
					plugin = navigator.plugins[i];
						if (plugin.name.indexOf ("QuickTime") >= 0) {
						var verPos = plugin.name.lastIndexOf(' ');
						version = parseInt(plugin.name.substring(verPos + 1, plugin.name.length));
					}
				}
				}
				if ((navigator.appVersion.indexOf('Mac') != -1)
					&& (navigator.appName.substring(0,9) == 'Microsoft')
					&& (parseInt(navigator.appVersion) < 5) ) { 
				//bHaveQT = true;
			}



			if (this.os == 'win' && this.browserName == 'msie') {
				document.write('<scr' + 'ipt language=VBScript>' + '\n' +
							'On Error Resume Next' + '\n' +
							'Set theObject =' +
							'CreateObject("QuickTimeCheckObject.QuickTimeCheck.1")' + '\n' +
							'On Error goto 0' + '\n' +
							'If IsObject(theObject) Then' + '\n' +
								'If theObject.IsQuickTimeAvailable(0) Then' + '\n' +
									'VB_UserAgentInfo = 4' + '\n' +
									'VB_UserAgentInfo = (theObject.QuickTimeVersion and &Hff000000)/&H1000000' + '\n' +
								'End If' + '\n' +
							'End If' + '\n' +
							'<\/scr' + 'ipt>');
				version = VB_UserAgentInfo;
			}
			this.quickTimeVersion = version;
		}
		return this.quickTimeVersion;
	} // function quickTime()

	this.windowsMediaPlayerName = function() {
		if (this.m_windowsMediaPlayerName == null) {
			this.m_windowsMediaPlayerName = 'none';
			if (navigator.plugins) {
				for (i=0; i < navigator.plugins.length; i++ ) {
					plugin = navigator.plugins[i];
					if (plugin.name.indexOf ("Windows Media Player") >= 0) {
						if (this.m_windowsMediaPlayerName != null)
							this.m_windowsMediaPlayerName += ',';
						this.m_windowsMediaPlayerName = plugin.name;
					}
				}
			}
			if (this.os == 'win' && this.browserName == 'msie') {
				if (navigator.mimeTypes) {
					return 'test';
					if (navigator.mimeTypes["video/x-ms-wm"] && navigator.mimeTypes["video/x-ms-wm"].enabledPlugin) {
						this.m_windowsMediaPlayerName = '>= 6.2';
					}
				}
			}
		}
		return this.m_windowsMediaPlayerName;
	} // function windowsMediaPlayerName()

} // UserAgentInfo

