//First!!! Browser Detection script/*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;  }} // function BrowserCapvar bd = new BrowserDetector(navigator.userAgent); //sets with Browser user Agent stringvar bd_browsername = bd.browser; //sets browser namevar bd_browserver = bd.version; //sets browser versionvar bd_platform = bd.platform; //sets computer platformvar browser = "null";     //start browser detection          if (bd_browsername == "Netscape"){  //Netscape          if(bd_browserver > 3){               browser = "Netscape";  //Netscape browser version over 3          }          else          {               browser = "other";          }     }     if (bd_browsername == "IE"){  //Internet Explorer          if(bd_platform == "PPC"){  //PPC means Macintosh               if(bd_browserver < 5){                    browser = "other";               }               if(bd_browserver >= 5){                    browser = "IE";    //IE for Mac browser version over 5               }          }          else          {               if(bd_browserver >= 3){                    browser = "IE";       //IE for Win or other version over 3               }               if(bd_browserver < 3){                    browser = "other";               }          }     }     if (browser == "null"){ //not IE or Netscape         browser = "other";     }//Second!!! Plug-In Detection Script/*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;  }}var PlugInPresent;     //Start Plug-In Detection     if(browser == "Netscape"){          PlugInPresent = WM_pluginDetect('Flash', 'swf', 'application/x-shockwave-flash', 'ShockwaveFlash.ShockwaveFlash.5');     }     if(browser == "IE"){          PlugInPresent = WM_pluginDetect('Flash', 'swf', 'application/x-shockwave-flash', 'ShockwaveFlash.ShockwaveFlash.5');     }     if(browser == "other"){          PlugInPresent = false     }//Third!!! Write appropriate content to pageif(PlugInPresent == true){ document.write('<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" WIDTH=100% HEIGHT=100%>');document.write('<PARAM NAME=movie VALUE="openingmovie.swf">');document.write('<PARAM NAME=quality VALUE=high>');document.write('<PARAM NAME=bgcolor VALUE=#E6C785>');document.write('<EMBED src="openingmovie.swf" quality=high bgcolor=#E6C785 WIDTH=100% HEIGHT=100% TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">');document.write('</EMBED>');document.write('</OBJECT>');}if(PlugInPresent == false){document.write('<center>');document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="200" height="200">');document.write('<param name=movie value="sunmovie.swf">');document.write('<param name=quality value=high>');document.write('<embed src="sunmovie.swf" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="200" height="200">');document.write('</embed>');document.write('</object>');document.write('<br><br>');document.write('<p><img src="headline.gif" width="457" height="26" alt="Tell the story of your wedding with pictures..."></p>');document.write('<p><img src="ifyoucan.gif" width="284" height="20" alt="If you can see the sun above, you have Flash."></p>');document.write('<font face="Arial, Helvetica, sans-serif" size="2">');document.write('<P><A Href="openItAnyway.html">CLICK HERE</A></P>');document.write('<br>');document.write('<p><img src="ifnot.gif" width="300" height="36" alt="If not, download the free Flash Player by clicking the link below."></p>');document.write('<p><A Href="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">GO GET FLASH</A></p><BR>');document.write('</font>');document.write('<BR>');document.write('</center>');}
