whatNavigator();

function whatNavigator()
{	navigator.unknown=1;
	navigator.ie=2;
	navigator.netscape=4;
	navigator.opera=8;
	navigator.type=null;
	navigator.version=null;
	navigator.os=null;
	navigator.jsVersion=1.0;
	navigator.vbScriptEnabled=false;
	navigator.hasPlugin=havPlugin;
	navigator.selectPluginDetectType=whatPluginDetectType;
	navigator.setCookie=setThisCookie; //may6 rnm setThisCookie
	navigator.hasFlash=havFlash;
	startRun();
	
function startRun()
{	var strBrowserCookie=gsflash.cookie.get("whatBrowser");
	if(strBrowserCookie)
	{eval(strBrowserCookie);navigator.selectPluginDetectType();
	}else{analyzeUsrAgnt();
	document.write("<scr"+"ipt language=\"JavaScript1.1\">navigator.jsVersion = 1.1;</s"+"cript>");
	document.write("<scr"+"ipt language=\"JavaScript1.2\">navigator.jsVersion = 1.2;</s"+"cript>");
	document.write("<scr"+"ipt language=\"JavaScript1.3\">navigator.jsVersion = 1.3;</s"+"cript>");
	document.write("<scr"+"ipt language=\"JavaScript1.4\">navigator.jsVersion = 1.4;</s"+"cript>");
	document.write("<scr"+"ipt language=\"JavaScript1.5\">navigator.jsVersion = 1.5;</s"+"cript>");
	document.write("<scr"+"ipt language=\"JavaScript1.6\">navigator.jsVersion = 1.6;</s"+"cript>");
	document.write("<scr"+"ipt language=\"JavaScript2.0\">navigator.jsVersion = 2.0;</s"+"cript>");
	document.write("<scr"+"ipt language=\"VBScript\">navigator.vbScriptEnabled = true</s"+"cript>");
	document.write("<scr"+"ipt language=\"JavaScript\">navigator.selectPluginDetectType();navigator.setCookie();</s"+"cript>");
	}
}

function analyzeUsrAgnt()
	{	var version;switch(navigator.appName)
		{	case "Microsoft Internet Explorer":navigator.type=navigator.ie;
			navigator.version=getVersionIE();
			navigator.os=getOsIE();
			break;case "Netscape":navigator.type=navigator.netscape;
			navigator.version=getVersionNets();
			navigator.os=getOsNetscape();
			break;case "Opera":navigator.type=navigator.opera;
			navigator.version=getVersionOpera();
			navigator.os=getOsOpera();
			break;
			default:navigator.type=navigator.unknown;
			navigator.version=parseFloat(navigator.appVersion);navigator.os="Unknown";
			}
		}
		function getVersionIE()
		{	var strUserAgent=new String(navigator.userAgent);
			var arrUA=strUserAgent.split("MSIE ");
			return parseFloat(arrUA[1]);
		}
		function getVersionNets()
		{	var strUserAgent=new String(navigator.userAgent);
			var version,arrUA;
			if(strUserAgent.indexOf("Gecko")<0)
				{
				version=parseFloat(navigator.appVersion);
				}
					else if(strUserAgent.indexOf("Firefox")>-1)
					{
					arrUA=strUserAgent.split("Firefox");arrUA=arrUA[1].split("/");
					version=parseFloat(arrUA[1]);
					}
					else if(strUserAgent.indexOf("Safari")>-1)
					{
					arrUA=strUserAgent.split("Safari");
					arrUA=arrUA[1].split("/");
					version=parseFloat(arrUA[1]);
					}
					else
					{
					arrUA=strUserAgent.split("Netscape");
					arrUA=arrUA[1].split("/");
					version=parseFloat(arrUA[1]);
					}
			return version;
		}
		function getVersionOpera()
		{	var strUserAgent=new String(navigator.userAgent);
			var arrUA=strUserAgent.split("Opera/");
			return parseFloat(arrUA[1]);
		}
		function getOsIE()
		{	var strUserAgent=new String(navigator.userAgent);
			var arrUA=strUserAgent.split(";");
			return arrUA[2].substr(0,arrUA[2].length);
		}
		function getOsNetscape()
		{	var strOS;
			var strUserAgent=new String(navigator.userAgent);
			var arrUA=strUserAgent.split("(");arrUA=arrUA[1].split(";");
			if(this.version<6){strOS=arrUA[0];
			}
			else
			{
				strOS=arrUA[2];
			}
			return strOS;
		}
		function getOsOpera()
		{	var strUserAgent=new String(navigator.userAgent);
			var arrUA=strUserAgent.split("(");
			arrUA=(new String(arrUA[1])).split(";");
			return arrUA[0];
		}
		function havPlugin(strPluginName,strPluginObject)
		{	var blnHasPlugin=false;
			switch(navigator.pluginDetectType)
			{	case "plugins array":for(var i=0;i<navigator.plugins.length;i++)
				{	if(navigator.plugins[i].name.indexOf(strPluginName)>=0)
					{
					blnHasPlugin=true;
					break;
					}
				}
				break;
				case "detectPlugin function":blnHasPlugin=fxDetectPlugin(strPluginObject);
				break;
			}
			return blnHasPlugin;
		}
		function whatPluginDetectType()
		{	
		if((navigator.plugins)&&(navigator.plugins.length>0))
			{	
			navigator.pluginDetectType="plugins array";
			}
			else if(navigator.type=navigator.ie)
				{	
				if(navigator.jsVersion>=1.3)
					{	
						navigator.pluginDetectType="detectPlugin function";
			
						document.write("<scr"+"ipt language=\"JavaScript1.3\">\n");
						document.write("	function fxDetectPlugin(strPluginName){\n");
						document.write("		var blnHasPlugin = false;\n");
						document.write("		try{\n");
						document.write("			var obj = new ActiveXObject(strPluginName);\n");
						document.write("			blnHasPlugin = true;\n");
						document.write("		}   // try\n");
						document.write("		catch(Exception){");
						document.write("		}\n");
						document.write("		return blnHasPlugin;\n");
						document.write("	}   // fxCheckPlugin\n");
						document.write("</s"+"cript>\n");
					}
					else if(navigator.vbScriptEnabled){navigator.pluginDetectType="detectPlugin function";
						document.write("<scr"+"ipt language=\"VBScript\">\n");
						document.write("	function fxDetectPlugin(strPluginName)\n");
						document.write("		on error resume next\n");
						document.write("		if (IsObject(CreateObject(strPluginName))) then\n");
						document.write("			fxDetectPlugin = true\n");
						document.write("		else\n");
						document.write("			fxDetectPlugin = false\n");
						document.write("		end If\n");
						document.write("	end function\n");
						document.write("</s"+"cript>\n");
				}
				else{navigator.pluginDetectType="none";
				}
			}
		}

	function setThisCookie()
	{	var strCookieValue="navigator.type="+navigator.type+";\n"+"navigator.version="+navigator.version+";\n"+"navigator.os=\""+navigator.os+"\";\n"+"navigator.jsVersion="+navigator.jsVersion+";\n"+"navigator.vbScriptEnabled="+navigator.vbScriptEnabled+";\n";
		gsflash.cookie.set("whatBrowser",strCookieValue,null,"/");
	}
	
	function havFlash(fltVersion)
	{	var blnHasFlash=false;
		var strVersion;
		if(fltVersion)
		{	switch(navigator.pluginDetectType)
			{	case "plugins array":for(var i=0;i<navigator.plugins.length;i++)
				{	if(navigator.plugins[i].name.indexOf("Shockwave Flash")>=0)
					{	strVersion=navigator.plugins[i].description.substr(16,navigator.plugins[i].description.length);
						if(parseFloat(strVersion)>=fltVersion)
						{	
							blnHasFlash=true;
							break;
						}
					}
				}	
				break;
				case "detectPlugin function":blnHasFlash=fxDetectPlugin("ShockwaveFlash.ShockwaveFlash."+parseInt(fltVersion));
				break;
			}
		}
		else{
		blnHasFlash=navigator.hasPlugin("Shockwave Flash","ShockwaveFlash.ShockwaveFlash");
		}
		return blnHasFlash;
	}
}