<!--
/* **********************************************************************************************************
Module Name  : browser.js
Date Written : 12/21/2000
Company      : CRKInteractive
Copyright    : (c) 2000, 2001 CRKInteractive All Rights Reserved
Purpose      : To provide a set of functions that identify browser characteristics
Revisions    :
************************************************************************************************************/
/* **********************************************************************************************************
Constants
************************************************************************************************************/

/* **********************************************************************************************************
Variables
************************************************************************************************************/
//var mobjCurrentBrowser = new BrowserOBJ();

/* **********************************************************************************************************
Startup Code
************************************************************************************************************/

/* **********************************************************************************************************
Functions
************************************************************************************************************/
/* ----------------------------------------------------------------------------------------------------------
Routine Name : BrowserOBJ
Date Written : 02/12/1999
Author       : Peter R Lynch (plynch@crkinteractive.com)
Purpose      : To make a broswer object based on the number of parameters passed in
Parameters   : Variable arguments accessed through argv and argc
Returns      : Requirement object created
Revisions    :
-----------------------------------------------------------------------------------------------------------*/
function BrowserOBJ()
{ this.CPU           = navigator.cpuClass;
  this.OS            = GetOsSTR();
  this.Application   = navigator.appName;
  this.UserAgent     = navigator.userAgent;
  this.Version       = GetBrowserVersionFLT(this.UserAgent);
  this.Codename      = navigator.appCodeName;
  this.CurrentWidth  = screen.width;
  this.CurrentHeight = screen.height;
  this.MaxWidth      = window.screen.availWidth;
  this.MaxHeight     = window.screen.availHeight;
  this.ColorDepth    = window.screen.colorDepth;
  this.NoOfColors    = Math.pow(2, this.ColorDepth);
  this.JavaEnabled   = navigator.javaEnabled();
  this.FontSmoothing = window.screen.fontSmoothingEnabled;
  this.Language      = navigator.browserLanguage;
  this.Cookies       = CookiesEnabledBLN();
  return(this);
}
//Method definitions
function BrowserOBJ_IsNetscapeBLN()
{ return(this.Application.indexOf("Netscape") != -1);
}
function BrowserOBJ_IsMicrosoftBLN()
{ return(this.Application.indexOf("Microsoft") != -1);
}
//Prototype objects - Used for inheritance

//Prototype properties - Used to create a single reference to a property that propagates to all instances

//Prototype methods - Used to create a single reference to a method that propagates to all instances
BrowserOBJ.prototype.IsNS = BrowserOBJ_IsNetscapeBLN;
BrowserOBJ.prototype.IsIE = BrowserOBJ_IsMicrosoftBLN;
/* ----------------------------------------------------------------------------------------------------------
Routine Name : CookiesEnabledBLN
Date Written : 02/12/1999
Author       : Peter R Lynch (plynch@crkinteractive.com)
Purpose      : To determine if the browser supports cookies
Parameters   : none
Returns      : true or false
Revisions    :
-----------------------------------------------------------------------------------------------------------*/
function CookiesEnabledBLN()
{ var oneDay = 1 * 24 * 60 * 60 * 1000;
  var expDate = new Date();
  expDate.setTime(expDate.getTime() + oneDay);
  var cookieExpires = expDate.toGMTString();
  document.cookie = "verifyCookie=test; expires=" + cookieExpires;
  if(document.cookie.length > 0) blnHasCookies = true; else blnHasCookies = false;
  document.cookie = "verifyCookie=CLEAR; expires=Sun, 09-Nov-97 01:00:00 GMT";
  return blnHasCookies;
}
/* ----------------------------------------------------------------------------------------------------------
Routine Name : GetBrowserVersionFLT
Date Written : 02/12/1999
Author       : Peter R Lynch (plynch@crkinteractive.com)
Purpose      : To determine the browser version
Parameters   : strUserAgent - userAgent string
Returns      : floating point version number
Revisions    :
-----------------------------------------------------------------------------------------------------------*/
function GetBrowserVersionFLT(strUserAgent)
{ var fltVersion = 0;
  if(strUserAgent.indexOf('AOL 10') != -1)            fltVersion = 10.0;
  else if(strUserAgent.indexOf('AOL 9') != -1)        fltVersion = 9.0;
  else if(strUserAgent.indexOf('AOL 8') != -1)        fltVersion = 8.0;
  else if(strUserAgent.indexOf('AOL 7') != -1)        fltVersion = 7.0;
  else if(strUserAgent.indexOf('AOL 6') != -1)        fltVersion = 6.0;
  else if(strUserAgent.indexOf('AOL 5') != -1)        fltVersion = 5.0;
  else if(strUserAgent.indexOf('AOL 4') != -1)        fltVersion = 4.0;
  else if(strUserAgent.indexOf('AOL 3') != -1)        fltVersion = 3.0;
  else if(strUserAgent.indexOf('MSIE 9') != -1)       fltVersion = 9.0;
  else if(strUserAgent.indexOf('MSIE 8') != -1)       fltVersion = 8.0;
  else if(strUserAgent.indexOf('MSIE 7') != -1)       fltVersion = 7.0;
  else if(strUserAgent.indexOf('MSIE 6') != -1)       fltVersion = 6.0;
  else if(strUserAgent.indexOf('MSIE 5.5') != -1)     fltVersion = 5.5;
  else if(strUserAgent.indexOf('MSIE 5') != -1)       fltVersion = 5.0;
  else if(strUserAgent.indexOf('MSIE 4') != -1)       fltVersion = 4.0;
  else if(strUserAgent.indexOf('MSIE 3') != -1)       fltVersion = 3.0;
  else if(strUserAgent.indexOf("Mozilla/7") != -1)    fltVersion = 8.0;
  else if(strUserAgent.indexOf("Mozilla/6") != -1)    fltVersion = 7.0;
  else if(strUserAgent.indexOf("Mozilla/5") != -1)    fltVersion = 6.0;
  else if(strUserAgent.indexOf("Mozilla/4.78") != -1) fltVersion = 4.78;
  else if(strUserAgent.indexOf("Mozilla/4.77") != -1) fltVersion = 4.77;
  else if(strUserAgent.indexOf("Mozilla/4.75") != -1) fltVersion = 4.75;
  else if(strUserAgent.indexOf("Mozilla/4.73") != -1) fltVersion = 4.73;
  else if(strUserAgent.indexOf("Mozilla/4.7") != -1)  fltVersion = 4.7;
  else if(strUserAgent.indexOf("Mozilla/4.61") != -1) fltVersion = 4.61;
  else if(strUserAgent.indexOf("Mozilla/4.5") != -1)  fltVersion = 4.5;
  else if(strUserAgent.indexOf("Mozilla/4") != -1)    fltVersion = 4.0;
  else if(strUserAgent.indexOf("Mozilla/3") != -1)    fltVersion = 3.0;
  else if(strUserAgent.indexOf("Mozilla/2") != -1)    fltVersion = 2.0;
  else if(strUserAgent.indexOf("MSIE 4.5") != -1)     fltVersion = 4.5;
  return fltVersion;
}
/* ----------------------------------------------------------------------------------------------------------
Routine Name : GetOsSTR
Date Written : 02/12/1999
Author       : Peter R Lynch (plynch@crkinteractive.com)
Purpose      : To determine what OS the browser is running on
Parameters   : None
Returns      : OS name string
Revisions    :
-----------------------------------------------------------------------------------------------------------*/
function GetOsSTR()
{ var strOpSys = "Unknown";
  if(navigator.userAgent.indexOf('IRIX') != -1)         { strOpSys = "Irix"; }
  else if((navigator.userAgent.indexOf('Win') != -1) && 
          (navigator.userAgent.indexOf('ME') != -1))    { strOpSys = "Windows ME"; }
  else if((navigator.userAgent.indexOf('Win') != -1) && 
          (navigator.userAgent.indexOf('98') != -1))    { strOpSys = "Windows 98"; }
  else if((navigator.userAgent.indexOf('Win') != -1) &&
          (navigator.userAgent.indexOf('95') != -1))    { strOpSys = "Windows 95"; }
  else if(navigator.appVersion.indexOf("16") !=-1)      { strOpSys = "Windows 3.1"; }
  else if(navigator.appVersion.indexOf("XP") !=-1)      { strOpSys = "Windows XP"; }  
  else if(navigator.appVersion.indexOf("NT 5") !=-1)    { strOpSys = "Windows 2000"; }  
  else if(navigator.appVersion.indexOf("NT 4") !=-1)    { strOpSys = "Windows NT 4.0"; }  
  else if(navigator.appVersion.indexOf("NT") !=-1)      { strOpSys = "Windows NT"; }  
  else if(navigator.appVersion.indexOf("OS/2") !=-1)    { strOpSys = "OS/2"; }
  else if(navigator.appVersion.indexOf("SunOS") !=-1)   { strOpSys = "SunOS"; }
  else if(navigator.appVersion.indexOf("Linux") !=-1)   { strOpSys = "Linux"; }
  else if(navigator.userAgent.indexOf('Mac') != -1)     { strOpSys = "Macintosh"; }
  else if(navigator.appName=="WebTV Internet Terminal") { strOpSys = "WebTV"; }
  else if(navigator.appVersion.indexOf("HP") !=-1)      { strOpSys = "HP-UX"; }
  return strOpSys;
}

var mblnBrowserApiLoaded = true; //Flag variable to determine if this js file has been fully loaded
// -->