/* ***********************************

     mikezilla.com (c) copyright 2002
     AUTHOR: Mike Golding
     MAIL:   mike@notestips.com
     TITLE:  mikezilla.js

     MODIFIED: 30/10/02

   *********************************** */

// Browser detect code is a PART of http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
// Ultimate client-side JavaScript client sniff. Version 3.03
// (C) Netscape Communications 1999-2001.  Permission granted to reuse and distribute.

    // convert all characters to lowercase to simplify testing
    var agt=navigator.userAgent.toLowerCase();

    // *** BROWSER VERSION ***
    // Note: On IE5, these return 4, so use is_ie5up to detect IE5.
    var is_major = parseInt(navigator.appVersion);
    var is_minor = parseFloat(navigator.appVersion);

    // Note: Opera and WebTV spoof Navigator.  We do strict client detection.
    // If you want to allow spoofing, take out the tests for opera and webtv.
    var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
                && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
                && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1));
    var is_nav2 = (is_nav && (is_major == 2));
    var is_nav3 = (is_nav && (is_major == 3));
    var is_nav4 = (is_nav && (is_major == 4));
    var is_nav4up = (is_nav && (is_major >= 4));
    var is_navonly      = (is_nav && ((agt.indexOf(";nav") != -1) ||
                          (agt.indexOf("; nav") != -1)) );
    var is_nav6 = (is_nav && (is_major == 5));
    var is_nav6up = (is_nav && (is_major >= 5));
    var is_gecko = (agt.indexOf('gecko') != -1);

    var is_ie     = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
    var is_ie3    = (is_ie && (is_major < 4));
    var is_ie4    = (is_ie && (is_major == 4) && (agt.indexOf("msie 4")!=-1) );
    var is_ie4up  = (is_ie && (is_major >= 4));
    var is_ie5    = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")!=-1) );
    var is_ie5_5  = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.5") !=-1));
    var is_ie5up  = (is_ie && !is_ie3 && !is_ie4);
    var is_ie5_5up =(is_ie && !is_ie3 && !is_ie4 && !is_ie5);
    var is_ie6    = (is_ie && (is_major == 4) && (agt.indexOf("msie 6.")!=-1) );
    var is_ie6up  = (is_ie && !is_ie3 && !is_ie4 && !is_ie5 && !is_ie5_5);

    // KNOWN BUG: On AOL4, returns false if IE3 is embedded browser
    // or if this is the first browser window opened.  Thus the
    // variables is_aol, is_aol3, and is_aol4 aren't 100% reliable.
    var is_aol   = (agt.indexOf("aol") != -1);
    var is_aol3  = (is_aol && is_ie3);
    var is_aol4  = (is_aol && is_ie4);
    var is_aol5  = (agt.indexOf("aol 5") != -1);
    var is_aol6  = (agt.indexOf("aol 6") != -1);

    var is_notes = (agt.indexOf("lotus-notes") != -1);

    var is_opera = (agt.indexOf("opera") != -1);
    var is_opera2 = (agt.indexOf("opera 2") != -1 || agt.indexOf("opera/2") != -1);
    var is_opera3 = (agt.indexOf("opera 3") != -1 || agt.indexOf("opera/3") != -1);
    var is_opera4 = (agt.indexOf("opera 4") != -1 || agt.indexOf("opera/4") != -1);
    var is_opera5 = (agt.indexOf("opera 5") != -1 || agt.indexOf("opera/5") != -1);
    var is_opera5up = (is_opera && !is_opera2 && !is_opera3 && !is_opera4);
    var is_opera6 = (agt.indexOf("opera 6") != -1 || agt.indexOf("opera/6") != -1);


    // *** PLATFORM ***
    var is_win   = ( (agt.indexOf("win")!=-1) || (agt.indexOf("16bit")!=-1) );
    // NOTE: On Opera 3.0, the userAgent string includes "Windows 95/NT4" on all
    //        Win32, so you can't distinguish between Win95 and WinNT.
    var is_win95 = ((agt.indexOf("win95")!=-1) || (agt.indexOf("windows 95")!=-1));

    // is this a 16 bit compiled version?
    var is_win16 = ((agt.indexOf("win16")!=-1) || 
               (agt.indexOf("16bit")!=-1) || (agt.indexOf("windows 3.1")!=-1) || 
               (agt.indexOf("windows 16-bit")!=-1) );  

    var is_win31 = ((agt.indexOf("windows 3.1")!=-1) || (agt.indexOf("win16")!=-1) ||
                    (agt.indexOf("windows 16-bit")!=-1));

    var is_winme = ((agt.indexOf("win 9x 4.90")!=-1) || (agt.indexOf("windows me")!=-1));
    var is_win2k = ((agt.indexOf("windows nt 5.0")!=-1) || (agt.indexOf("windows 2000")!=-1));
    var is_winxp = ((agt.indexOf("windows nt 5.1")!=-1) || (agt.indexOf("windows xp")!=-1));

    // NOTE: Reliable detection of Win98 may not be possible. It appears that:
    //       - On Nav 4.x and before you'll get plain "Windows" in userAgent.
    //       - On Mercury client, the 32-bit version will return "Win98", but
    //         the 16-bit version running on Win98 will still return "Win95".
    var is_win98 = ((agt.indexOf("win98")!=-1) || (agt.indexOf("windows 98")!=-1));
    var is_winnt = ((agt.indexOf("winnt")!=-1) || (agt.indexOf("windows nt")!=-1));
    var is_win32 = (is_win95 || is_winnt || is_win98 || 
                    ((is_major >= 4) && (navigator.platform == "Win32")) ||
                    (agt.indexOf("win32")!=-1) || (agt.indexOf("32bit")!=-1));

    var is_os2   = ((agt.indexOf("os/2")!=-1) || 
                    (navigator.appVersion.indexOf("OS/2")!=-1) ||   
                    (agt.indexOf("ibm-webexplorer")!=-1));

    var is_mac    = (agt.indexOf("mac")!=-1);
    var is_linux = (agt.indexOf("inux")!=-1);


var vFlashVersion    = "0";
var vPageTitle       = document.title.replace(/\s/g, "%20");
var vPageURL         = location.pathname.replace(/\s/g, "%20");
var vBrowser         = "";
var vOS 	     = "";

if(is_win31){vOS="Windows 3.x";
}else if(is_win95){vOS="Windows 95";
}else if(is_winme){vOS="Windows ME";
}else if(is_win2k){vOS="Windows 2000";
}else if(is_win98){vOS="Windows 98";
}else if(is_winxp){vOS="Windows XP";
}else if(is_winnt){vOS="Windows NT";
}else if(is_os2){vOS="OS2";
}else if(is_mac){vOS="Macintosh";
}else if(is_linux){vOS="Linux";
}else{vOS="other";}




if(is_gecko){vBrowser="Mozilla";
}else if(is_nav2){vBrowser="Netscape 2";
}else if(is_nav3){vBrowser="Netscape 3";
}else if(is_nav4){vBrowser="Netscape 4";
}else if(is_nav6){vBrowser="Netscape 6";
}else if(is_ie3){vBrowser="Internet Explorer 3";
}else if(is_ie4){vBrowser="Internet Explorer 4";
}else if(is_ie5){vBrowser="Internet Explorer 5";
}else if(is_ie5_5){vBrowser="Internet Explorer 5.5";
}else if(is_ie6){vBrowser="Internet Explorer 6";
}else if(is_aol3){vBrowser="AOL 3";
}else if(is_aol4){vBrowser="AOL 4";
}else if(is_aol5){vBrowser="AOL 5";
}else if(is_aol6){vBrowser="AOL 6";
}else if(is_notes){vBrowser="Lotus Notes";
}else if(is_opera2){vBrowser="Opera 2";
}else if(is_opera3){vBrowser="Opera 3";
}else if(is_opera4){vBrowser="Opera 4";
}else if(is_opera5){vBrowser="Opera 5";
}else if(is_opera6){vBrowser="Opera 6";
}else if(is_ie && is_mac){vBrowser="IE Mac";
}else{vBrowser="other";}


var vColors          = Math.pow (2,window.screen.colorDepth).toString();
var vColorDepth      = window.screen.colorDepth + "bit";
var vResWidth        = window.screen.width.toString();
var vResHeight       = window.screen.height.toString();
var vJava            = "";
var vReferrer			= document.referrer;
if (navigator.javaEnabled() < 1) vJava = "No";
if (navigator.javaEnabled() == 1) vJava = "Yes";



/* ***********************************

     GENERAL FUNCTIONS

   *********************************** */



/* ***********************************

     COOKIE FUNCTIONS

   *********************************** */


function makeCookie(Name,Value,Expiry,Path,Domain,Secure){
  if (Expiry != null) {
    var datenow = new Date();
    datenow.setTime(datenow.getTime() + Math.round(86400000*Expiry));
    Expiry = datenow.toGMTString();
  }

  Expiry = (Expiry != null) ? '; expires='+Expiry : '';
  Path = (Path != null)?'; path='+Path:'';
  Domain = (Domain != null) ? '; domain='+Domain : '';
  Secure = (Secure != null) ? '; secure' : '';

  document.cookie = Name + '=' + escape(Value) + Expiry + Path + Domain + Secure;
}


function readCookie(Name) {
  var cookies = document.cookie;
  if (cookies.indexOf(Name + '=') == -1) return null;
  var start = cookies.indexOf(Name + '=') + (Name.length + 1);
  var finish = cookies.substring(start,cookies.length);
  finish = (finish.indexOf(';') == -1) ? cookies.length : start + finish.indexOf(';');
  return unescape(cookies.substring(start,finish));
}


function cookie_examples(){
  makeCookie('view_cookie',pagename,90,'/');
  makeCookie('database_cookie',database,90,'/');
  x = readCookie('type_cookie');
}