// boolean  : client_is_win/client_is_mac/client_is_ie/client_is_nsclient_cookies
//
// app: Netscape/Mozilla/Microsoft Internet Explorer
// client_browser_version
// client_referrer
// client_language de/en/
// client_cpu
		
// client_os: Windows 95/Windows 98/Windows XP/Windows NT/Windows 2000/Windows ME
//            Mac PPC Mac 68K/Unix Sun/Unix SGI/Unix HP/Unix IBM

var agt = navigator.userAgent;
var app = navigator.appName;
var l_agt = agt.toLowerCase();
var l_app = app.toLowerCase();
var client_user_agent=navigator.userAgent;
var client_app_name=navigator.appName;
var client_browser_generation = parseFloat(navigator.appVersion);
var client_language = 'unknown';
var client_is_cookies = false;
var client_cpu = "unknown";
var client_os="unknown";
var client_ip=-1;
var client_is_aol=false;
var client_platform="unknown";
var client_is_mac=false;

var client_is_ie = false;
var client_is_ie_compatible = false;
var client_is_ns = false;
var client_is_mozilla = false;
var client_is_opera = false;
var client_is_dhtml = false;
var client_is_vbscript = false;
var client_is_aol = false;
var client_is_java = navigator.javaEnabled();

if (document.getElementById) { client_is_dhtml = true; client_is_dom = true; }

if (app=="Microsoft Internet Explorer") {  client_is_ie = true; client_browser_name="Internet Explorer" }
if (app=="Netscape") { client_is_ns = true; client_browser_name="Netscape" } 

if ((agt.indexOf("Mozilla")!=-1) && (agt.indexOf("Gecko")!=-1)) { client_is_mozilla = true; client_is_ns = false; client_browser_name="Mozilla"} 
if ((agt.indexOf("Opera")!=-1) || (window.opera)) { client_is_opera = true; client_is_ie = false;  client_browser_name="Opera"; } 

if ((agt.indexOf("Safari")!=-1) || (window.opera)) { client_is_ie = false;  client_is_ie_compatible=true; client_browser_name="Safari"; client_is_mac = true; } 
if ((agt.indexOf("Konquerer")!=-1) || (window.opera)) { client_is_ie = false;  client_is_ie_compatible=true; client_browser_name="Konquerer"; } 


if ((agt.indexOf("Win")!=-1)||(agt.indexOf("Windows")!=-1)) { var client_is_win=true; } else { var client_is_win = false; }
if ((agt.indexOf("Mac")!=-1)||(agt.indexOf("Windows")!=-1)) { var client_is_mac=true; } else { var client_is_mac = false; }


if ((agt.indexOf("Win")!=-1)||(agt.indexOf("Windows")!=-1)) 
{ var client_is_win=true; } else { var client_is_win = false; }

if (agt.indexOf("Mac")!=-1) 
{ var client_is_mac=true; } else { var client_is_mac = false; }


if ((agt.indexOf("Win95")!=-1)||(agt.indexOf("Windows 95")!=-1)) 
{ client_os='Windows 95'; }

if ((agt.indexOf("Win98")!=-1)||(agt.indexOf("Windows 98")!=-1))
{ client_os='Windows 98'; }

if ((agt.indexOf("WinME")!=-1)||(agt.indexOf("Windows ME")!=-1))
{ client_os='Windows ME'; }

if ((agt.indexOf("WinNT")!=-1)||(agt.indexOf("Windows NT")!=-1))
{ 
  var str_start = String(agt).indexOf('NT');
  var str_end = String(agt).indexOf(';',str_start);
  
  nt_version = (parseFloat(rf(agt.substring(str_start+3, str_end))));
  client_os='Windows NT';
  if (nt_version>=6)
  {
    client_os='Windows Longhorn';	  
  }
  else if (nt_version>=5)
  {
    client_os='Windows XP';	  
  }
  else if (nt_version>=4)
  {
  	client_os='Windows 2000';
  }
}


if ((agt.indexOf("Win2000")!=-1) || (agt.indexOf("Windows 2000")!=-1) || agt.indexOf('nt 5')!=-1)
{ client_os='Windows 2000'; }

if ((agt.indexOf("WinXP")!=-1)||(agt.indexOf("Windows XP")!=-1)) 
{ client_os='Windows XP'; }

if ((agt.indexOf("Win16")!=-1)||(agt.indexOf("Windows 3.1")!=-1))
{ client_os='Windows 3.x'; }

if (agt.indexOf("Mac")!=-1) 
{
  if ((agt.indexOf("PC)")!=-1) || (navigator.platform!="MacPPC")) 
   { client_os='Mac PPC'; } else { client_os='Mac 68K'; }
}

if (agt.indexOf("Mac OSX")!=-1) { client_os='Mac OSX'; }

if (agt.indexOf("unix")!=-1) { client_os='Unix'; }
if (agt.indexOf("SunOS")!=-1) { client_os='Unix Sun'; }
if (agt.indexOf("IRIX")!=-1) { client_os='Unix SGI'; }
if (agt.indexOf("HP-UX")!=-1) { client_os='Unix HP'; }
if (agt.indexOf("AIX")!=-1) { client_os='Unix IBM'; }

if (l_agt.indexOf("os/2")!=-1) { client_os='OS/2'; }

if (l_agt.indexOf("bsd")!=-1) { client_os='BSD'; }
if (l_agt.indexOf("freebsd")!=-1) { client_os='FreeBSD'; }
if (l_agt.indexOf("openbsd")!=-1) { client_os='OpenBSD'; }
if (l_agt.indexOf("netbsd")!=-1) { client_os='NetBSD'; }

if (l_agt.indexOf("webtv")!=-1) { client_os='WebTV'; }

if (agt.indexOf("AOL")!=-1) { client_is_aol=true; }

// Real Browser Version - as seen on splash-screens
var client_browser_version = "undefined";

function rf(s)
{
 var rs =''; var yy = s.indexOf('.');
 for (z=0; z<s.length; z++)
 {

  if ((s.charAt(z)!='.') || (z==yy)) { rs+=s.charAt(z); }
 } 	 
 return rs;
}

if (client_is_opera)
{
  var str_start = String(agt).indexOf('Opera');
  var str_end = String(agt).indexOf(' ',str_start+6);
  var client_browser_version = parseFloat(rf(agt.substring(str_start+5, str_end)));
 } else if (client_is_mozilla) {
  var str_start = String(agt).indexOf('rv:');
  
  var str_end = String(agt).indexOf(')',str_start);
  var client_browser_version = parseFloat(rf(agt.substring(str_start+3, str_end)));
} else if (client_is_ie) {
  var str_start = String(agt).indexOf('MSIE');
  var str_end = String(agt).indexOf(';',str_start);
  var client_browser_version = parseFloat(rf(agt.substring(str_start+5, str_end)));
} else {
 var client_browser_version = client_browser_generation;
}



var client_language = navigator.browserLanguage;

	
if (client_is_ns)
{

 // The Netscape-Way - get it from Browser Version
 var str_start = String(agt).indexOf('[');
 var str_end = String(agt).indexOf(']');
 client_language=String(agt).substring(str_start+1,str_end); 
}

if (client_is_mozilla)
{
 client_language="unknown";
 if (String(agt).indexOf("en")!=-1) { client_language="en"; } 
 if (String(agt).indexOf("de")!=-1) { client_language="de"; } 
}

// IE 5.22 is only OSX+ above
if ((client_is_mac) && (client_is_ie) && (client_browser_version>=5.21)) { client_os='Mac OSX'; }


if (client_is_ie) { client_browser_generation=parseInt(client_browser_version); }

// cookies
if (client_browser_generation >= 4) 
{

  client_platform=navigator.platform;
  client_cpu = navigator.cpuClass; 
  if (navigator.cookieEnabled==true) 
  {
    client_is_cookies=true;
  } else {
  	var today = new Date();
    var xpire = new Date(today.getTime() + 10000); 
    document.cookie = "cookie=test; expires="+xpire;
    if (document.cookie.indexOf("cookie")) { client_is_cookies=true; }
  }

}


