////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// BELOW IS THE USER AGENT DETECT////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////<!--/*BrowserDetector()Parses User-Agent string into useful info.Source: Webmonkey Code Library(http://www.hotwired.com/webmonkey/javascript/code_library/)Author: Richard BlaylockAuthor Email: blaylock@wired.comUsage: var bd = new BrowserDetector(navigator.userAgent);*/// Utility function to trim spaces from both ends of a stringfunction Trim(inString) {  var retVal = "";  var start = 0;  while ((start < inString.length) && (inString.charAt(start) == ' ')) {    ++start;  }  var end = inString.length;  while ((end > 0) && (inString.charAt(end - 1) == ' ')) {    --end;  }  retVal = inString.substring(start, end);  return retVal;}function BrowserDetector(ua) {// Defaults  this.browser = "Unknown";  this.platform = "Unknown";  this.version = "";  this.majorver = "";  this.minorver = "";  uaLen = ua.length;// ##### Split into stuff before parens and stuff in parens  var preparens = "";  var parenthesized = "";  i = ua.indexOf("(");  if (i >= 0) {    preparens = Trim(ua.substring(0,i));        parenthesized = ua.substring(i+1, uaLen);        j = parenthesized.indexOf(")");        if (j >= 0) {          parenthesized = parenthesized.substring(0, j);        }  }  else {    preparens = ua;  }// ##### First assume browser and version are in preparens// ##### override later if we find them in the parenthesized stuff  var browVer = preparens;  var tokens = parenthesized.split(";");  var token = "";// # Now go through parenthesized tokens  for (var i=0; i < tokens.length; i++) {    token = Trim(tokens[i]);        //## compatible - might want to reset from Netscape        if (token == "compatible") {          //## One might want to reset browVer to a null string          //## here, but instead, we'll assume that if we don't          //## find out otherwise, then it really is Mozilla          //## (or whatever showed up before the parens).        //## browser - try for Opera or IE    }        else if (token.indexOf("MSIE") >= 0) {      browVer = token;    }    else if (token.indexOf("Opera") >= 0) {      browVer = token;    }        //'## platform - try for X11, SunOS, Win, Mac, PPC    else if ((token.indexOf("X11") >= 0) || (token.indexOf("SunOS") >= 0) ||(token.indexOf("Linux") >= 0)) {      this.platform = "Unix";        }    else if (token.indexOf("Win") >= 0) {      this.platform = token;        }    else if ((token.indexOf("Mac") >= 0) || (token.indexOf("PPC") >= 0)) {      this.platform = token;        }  }  var msieIndex = browVer.indexOf("MSIE");  if (msieIndex >= 0) {    browVer = browVer.substring(msieIndex, browVer.length);  }  var leftover = "";  if (browVer.substring(0, "Mozilla".length) == "Mozilla") {    this.browser = "Netscape";        leftover = browVer.substring("Mozilla".length+1, browVer.length);  }  else if (browVer.substring(0, "Lynx".length) == "Lynx") {    this.browser = "Lynx";        leftover = browVer.substring("Lynx".length+1, browVer.length);  }  else if (browVer.substring(0, "MSIE".length) == "MSIE") {    this.browser = "IE";    leftover = browVer.substring("MSIE".length+1, browVer.length);  }  else if (browVer.substring(0, "Microsoft Internet Explorer".length) == "Microsoft Internet Explorer") {    this.browser = "IE"        leftover = browVer.substring("Microsoft Internet Explorer".length+1, browVer.length);  }  else if (browVer.substring(0, "Opera".length) == "Opera") {    this.browser = "Opera"    leftover = browVer.substring("Opera".length+1, browVer.length);  }  leftover = Trim(leftover);  // # Try to get version info out of leftover stuff  i = leftover.indexOf(" ");  if (i >= 0) {    this.version = leftover.substring(0, i);  }  else  {    this.version = leftover;  }  j = this.version.indexOf(".");  if (j >= 0) {    this.majorver = this.version.substring(0,j);    this.minorver = this.version.substring(j+1, this.version.length);  }  else {    this.majorver = this.version;  }//////// THIS WAS INSERTED BY BRIAN HEMESATH, RAVIANT NETWORKS//  window.document.type_check.browser.value = this.browser;//  window.document.type_check.os.value = this.platform;//////// THIS WAS INSERTED BY BRIAN HEMESATH, RAVIANT NETWORKS} // function BrowserDetector// -->////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// BELOW IS THE PLUG-IN////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////<!--/*Plugin Detector()Source: Webmonkey Code Library(http://www.hotwired.com/webmonkey/javascript/code_library/)Author: Nadav SavioAuthor Email: webmonkey@giantant.com*/// this is where we write out the VBScript for MSIE Windowsvar WM_startTagFix = '</';var msie_windows = 0;if ((navigator.userAgent.indexOf('MSIE') != -1) && (navigator.userAgent.indexOf('Win') != -1)){  msie_windows = 1;  document.writeln('<script language="VBscript">');  document.writeln('\'This will scan for plugins for all versions of Internet Explorer that have a VBscript engine version 2 or greater.');  document.writeln('\'This includes all versions of IE4 and beyond and some versions of IE 3.');  document.writeln('Dim WM_detect_through_vb');  document.writeln('WM_detect_through_vb = 0');  document.writeln('If ScriptEngineMajorVersion >= 2 then');  document.writeln('  WM_detect_through_vb = 1');  document.writeln('End If');  document.writeln('Function WM_activeXDetect(activeXname)');  document.writeln('  on error resume next');  document.writeln('  If ScriptEngineMajorVersion >= 2 then');  document.writeln('     WM_activeXDetect = False');  document.writeln('     WM_activeXDetect = IsObject(CreateObject(activeXname))');  document.writeln('     If (err) then');  document.writeln('        WM_activeXDetect = False');  document.writeln('     End If');  document.writeln('   Else');  document.writeln('     WM_activeXDetect = False');  document.writeln('   End If');  document.writeln('End Function');  document.writeln(WM_startTagFix+'script>');}function WM_pluginDetect(plugindescription, pluginxtension, pluginmime, activeXname){  //This script block will test all user agents that have a real plug-in array  //(i.e. Netscape) and set the variables, otherwise it directs the routine  // to WM_activeXDetect to detect the activeX control.  // First define some variables  var i,plugin_undetectable=0,detected=0, daPlugin=new Object();  // Then we check to see if it's an MSIE browser that you can actually  // check for the plugin in question.   if (msie_windows && WM_detect_through_vb){      plugin_undetectable = 0;  } else {      plugin_undetectable = 1;  }  // If it has a real plugins or mimetypes array, we look there for the plugin first  if(navigator.plugins) {      numPlugins = navigator.plugins.length;      if (numPlugins > 1) {	  if (navigator.mimeTypes && navigator.mimeTypes[pluginmime] && navigator.mimeTypes[pluginmime].enabledPlugin && (navigator.mimeTypes[pluginmime].suffixes.indexOf(pluginxtension) != -1)) { // seems like we have it, let's just make sure and check the version (if specified)	      if ((navigator.appName == 'Netscape') && (navigator.appVersion.indexOf('4.0') != -1)) { // stupid, stupid Netscape can't handle the references to navigator.plugins by number, sooo...		  for(i in navigator.plugins) {		      if ((navigator.plugins[i].description.indexOf(plugindescription) != -1) || (i.indexOf(plugindescription) != -1)) { // some versions of quicktime have no description. feh!			  detected=1;			  break;		      }		  }	      } else {		  for (i = 0; i < numPlugins; i++) {		      daPlugin = navigator.plugins[i];		      if ((daPlugin.description.indexOf(plugindescription) != -1) || (daPlugin.name.indexOf(plugindescription) != -1)) {			  detected=1;			  break;		      }		  }	      }	      // Mac weirdness      if (navigator.mimeTypes[pluginmime] == null) {		  detected = 0;	      }	  }	  return detected;      } else if((msie_windows == 1) && !plugin_undetectable){	  return WM_activeXDetect(activeXname);      } else { 			  return 0;      }  } else {      return 0;  }}// this next function just makes it easy to detect the common pluginsfunction WM_easyDetect(whichPlugin) {    // this function just makes it easy to do basic plug-in detection without    // knowing all the mimetypes and activeX names and such    var isItThere = 0;    if( (whichPlugin == 'flash') || (whichPlugin == 'Flash') ) {	isItThere = WM_pluginDetect('Flash', 'swf', 'application/x-shockwave-flash', 'ShockwaveFlash.ShockwaveFlash');    } else if( (whichPlugin == 'director') || (whichPlugin == 'Director') ) {	isItThere = WM_pluginDetect('Shockwave', 'dcr', 'application/x-director', 'SWCtl.SWCtl.1');    } else if( (whichPlugin == 'quicktime') || (whichPlugin == 'Quicktime') || (whichPlugin == 'QuickTime') ) {	isItThere = WM_pluginDetect('QuickTime', 'mov', 'video/quicktime', '');    } else if( (whichPlugin == 'realaudio') || (whichPlugin == 'Realaudio') || (whichPlugin == 'RealAudio') ) {	isItThere = (WM_pluginDetect('RealPlayer', 'rpm', 'audio/x-pn-realaudio-plugin', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)')) || (WM_pluginDetect('RealPlayer', 'rpm', 'audio/x-pn-realaudio-plugin','rmocx.RealPlayer G2 Control')) || (WM_pluginDetect('RealPlayer', 'rpm', 'audio/x-pn-realaudio-plugin','RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)')) || (WM_pluginDetect('RealPlayer', 'rpm', 'audio/x-pn-realaudio-plugin','RealVideo.RealVideo(tm) ActiveX Control (32-bit)'))    } else {	alert('You need to tell me which plug-in to look for, like so:\n\n' + '          WM_easyDetect(\'flash\')\n\n' + '          WM_easyDetect(\'director\')\n\n' + '          WM_easyDetect(\'quicktime\')\n\n' + '          WM_easyDetect(\'realaudio\')');    }    return isItThere;}// -->