// C2 Browser Detector v1.7.4
// Author: Sunghwa Park (ceprix [at] gmail [dot] com)
// Documentation: http://www.ceprix.net/archives/c2-browser-detector/
// Download URI: http://www.ceprix.net/scripts/browser-detector.js
// License: CeprixConception (http://www.ceprix.net)
// Last Update Date: 09/02/2006

	var agent = navigator.userAgent.toLowerCase();
	var browserName, engineName, browserVersion, engineVersion, pos, os;

// ** Web Browser Names and Versions **

// Web browsers for Mac
	if (this.isOW = agent.indexOf('omniweb')!=-1) {
		browserName = "OmniWeb";
  	engineName = "omniweb/v";
  	pos = agent.indexOf(engineName);
  	engineVersion = agent.substring(pos + engineName.length, agent.length);
  	browserVersion = engineVersion.substring(0, 6);
  	// convert engine versions to browser versions from here
  	if (browserVersion >= 577)          browserVersion = "5.5b";
  	else if (browserVersion >= 563.66)  browserVersion = "5.1.3";
  	else if (browserVersion >= 563.60)  browserVersion = "5.1.2";
  	else if (browserVersion >= 563.51)  browserVersion = "5.1.1";
		else if (browserVersion >= 563.34)  browserVersion = "5.1";
		else if (browserVersion >= 558.48)  browserVersion = "5.0.1";
		else if (browserVersion >= 558.36)  browserVersion = "5.0";
		else if (browserVersion >= 496)     browserVersion = "4.5";
		}
	else if (this.isShiira = agent.indexOf('shiira')!=-1) {
		browserName = "Shiira";
		engineName = "shiira/";
  	pos = agent.indexOf(engineName);
  	engineVersion = agent.substring(pos + engineName.length, agent.length);
  	browserVersion = engineVersion.substring(0, 5);
  	browserVersion = browserVersion.replace(' s',''); // get rid of an "S" from "Safari" in UA
		}
	else if (this.isDB = agent.indexOf('deskbrowse')!=-1) {
		browserName = "DeskBrowse";
		engineName = "deskbrowse/";
  	pos = agent.indexOf(engineName);
  	engineVersion = agent.substring(pos + engineName.length, agent.length);
  	browserVersion = engineVersion.substring(0, 5);
		}
  else if (this.isSF = agent.indexOf('safari')!=-1) {
  	browserName = "Safari";
  	engineName = "safari/";
  	pos = agent.indexOf(engineName);
  	engineVersion = agent.substring(pos + engineName.length, agent.length);
  	browserVersion = engineVersion.substring(0, 7);
  	// convert engine versions to browser versions from here
  	if (browserVersion >= 419.3)        browserVersion = "2.0.4";
  	else if (browserVersion >= 417.8)   browserVersion = "2.0.3";
  	else if (browserVersion >= 416.12)  browserVersion = "2.0.2";
  	else if (browserVersion >= 412.5)   browserVersion = "2.0.1";
  	else if (browserVersion >= 412)     browserVersion = "2.0";
  	else if (browserVersion >= 312.5)   browserVersion = "1.3.2";
  	else if (browserVersion >= 312.3)   browserVersion = "1.3.1";
  	else if (browserVersion >= 312)     browserVersion = "1.3";
  	else if (browserVersion >= 125.11)  browserVersion = "1.2.4";
  	else if (browserVersion >= 125.9)   browserVersion = "1.2.3";
  	else if (browserVersion >= 125.7)   browserVersion = "1.2.2";
  	else if (browserVersion >= 125)     browserVersion = "1.2";
  	else if (browserVersion >= 100.1)   browserVersion = "1.1.1";
  	else if (browserVersion >= 100)     browserVersion = "1.1";
  	else if (browserVersion >= 85.8)    browserVersion = "1.0.3";
  	else if (browserVersion >= 85.7)    browserVersion = "1.0.2";
  	else if (browserVersion >= 85.5)    browserVersion = "1.0";
  	else if (browserVersion < 85.5)     browserVersion = "1.0b";
		}
	else if (this.isCamino = agent.indexOf('camino')!=-1) {
  	browserName = "Camino";
  	engineName = "camino/";
  	pos = agent.indexOf(engineName);
  	engineVersion = agent.substring(pos + engineName.length, agent.length);
  	browserVersion = engineVersion.substring(0, 5);
  	}
  else if (this.isiCab = agent.indexOf('icab')!=-1) {
  	browserName = "iCab";
  	engineName = "icab ";
  	pos = agent.indexOf(engineName);
  	engineVersion = agent.substring(pos + engineName.length, agent.length);
  	browserVersion = engineVersion.substring(0, 3);
  	}
	else if (this.NNW = agent.indexOf('netnewswire')!=-1) {
		browserName = "NetNewsWire";
		engineName = "netnewswire/";
  	pos = agent.indexOf(engineName);
  	engineVersion = agent.substring(pos + engineName.length, agent.length);
  	browserVersion = engineVersion.substring(0, 5);
		}
	else if (this.isVienna = agent.indexOf('vienna')!=-1) {
		browserName = "Vienna";
		engineName = "vienna/";
  	pos = agent.indexOf(engineName);
  	engineVersion = agent.substring(pos + engineName.length, agent.length);
  	browserVersion = engineVersion.substring(0, 5);
		}

// Web browsers for Windows
	else if (this.isAOLE = agent.indexOf('america online browser')!=-1) {
		browserName = "AOL Explorer";
		pos = agent.indexOf(engineName);
		engineVersion = agent.substring(pos + engineName.length, agent.length);
		engineName = "america online browser ";
		browserVersion = engineVersion.substring(0, 5);
		}
	else if (this.isMSN = agent.indexOf('msn')!=-1) {
		browserName = "MSN Explorer";
		engineName = "msn ";
		pos = agent.indexOf(engineName);
		engineVersion = agent.substring(pos + engineName.length, agent.length);
		browserVersion = engineVersion.substring(0, 3);
		}
	else if (this.isCrazy = agent.indexOf('crazy browser')!=-1) {
		browserName = "Crazy Browser";
		engineName = "crazy browser ";
		pos = agent.indexOf(engineName);
		engineVersion = agent.substring(pos + engineName.length, agent.length);
		browserVersion = engineVersion.substring(0, 5);
		}
	else if (this.isMaxthon = agent.indexOf('maxthon')!=-1) {
		browserName = "Maxthon";
		engineName = "maxthon";
		pos = agent.indexOf(engineName);
		browserVersion = "";  // no browser version in UA
		}
	else if (this.isIE = agent.indexOf('msie')!=-1 && agent.indexOf('opera')==-1 && agent.indexOf('aol')==-1 && agent.indexOf('netscape')==-1) { // prevent Opera, AOL and NS8 using IE engine from being identified as IE 
		browserName = "Internet Explorer";
		engineName = "msie ";
		pos = agent.indexOf(engineName);
		engineVersion = agent.substring(pos + engineName.length, agent.length);
		browserVersion = engineVersion.substring(0, 4);
		browserVersion = browserVersion.replace(';','');
		}
	else if (this.isKM = agent.indexOf('k-meleon')!=-1) {
		browserName = "K-Meleon";
		engineName = "k-meleon/";
		pos = agent.indexOf(engineName);
		engineVersion = agent.substring(pos + engineName.length, agent.length);
		browserVersion = engineVersion.substring(0, 5);
		}

// Web browsers for Linux
	else if (this.isKQ = agent.indexOf('konqueror')!=-1) {
		browserName = "Konqueror";
		engineName = "konqueror/";
		pos = agent.indexOf(engineName);
		engineVersion = agent.substring(pos + engineName.length, agent.length);
		browserVersion = engineVersion.substring(0, 3);
		browserVersion = browserVersion.replace(';','');
		}
	else if (this.isGaleon = agent.indexOf('galeon')!=-1) {
		browserName = "Galeon";
		engineName = "galeon/";
		pos = agent.indexOf(engineName);
		engineVersion = agent.substring(pos + engineName.length, agent.length);
		browserVersion = engineVersion.substring(0, 5);
		}
	else if (this.isEP = agent.indexOf('epiphany')!=-1) {
		browserName = "Epiphany";
		engineName = "epiphany/";
		pos = agent.indexOf(engineName);
		engineVersion = agent.substring(pos + engineName.length, agent.length);
		browserVersion = engineVersion.substring(0, 5);
		}
	else if (this.isKH = agent.indexOf('kazehakase')!=-1) {
		browserName = "Kazehakase";
		engineName = "kazehakase/";
		pos = agent.indexOf(engineName);
		engineVersion = agent.substring(pos + engineName.length, agent.length);
		browserVersion = engineVersion.substring(0, 5);
		}
	else if (this.isDillo = agent.indexOf('dillo')!=-1) {
		browserName = "Dillo";
		engineName = "dillo/";
		pos = agent.indexOf(engineName);
		engineVersion = agent.substring(pos + engineName.length, agent.length);
		browserVersion = engineVersion.substring(0, 5);
		}

// Web browsers for Mac/Windows/Linux
	else if (this.isFlock = agent.indexOf('flock')!=-1) {
		browserName = "Flock";
		engineName = "flock/";
		pos = agent.indexOf(engineName);
		engineVersion = agent.substring(pos + engineName.length, agent.length);
		browserVersion = engineVersion.substring(0, 5);
		browserVersion = browserVersion.replace(' f',''); // get rid of an "F" from "Firefox" in UA
		}
	else if (this.isFF = agent.indexOf('firefox')!=-1) {
		browserName = "Firefox";
		engineName = "firefox/";
		pos = agent.indexOf(engineName);
		engineVersion = agent.substring(pos + engineName.length, agent.length);
		browserVersion = engineVersion.substring(0, 7);
		}
	else if (this.isNS = agent.indexOf('netscape')!=-1) {
		browserName = "Netscape";
		engineName = "netscape/";
		pos = agent.indexOf(engineName);
		engineVersion = agent.substring(pos + engineName.length, agent.length);
		browserVersion = engineVersion.substring(0, 5);
		}
	else if (this.isSM = agent.indexOf('seamonkey')!=-1) {
		browserName = "SeaMonkey";
		engineName = "seamonkey/";
		pos = agent.indexOf(engineName);
		engineVersion = agent.substring(pos + engineName.length, agent.length);
		browserVersion = engineVersion.substring(0, 5);
		}
	else if (this.isSB = agent.indexOf('songbird')!=-1) {
		browserName = "Songbird";
		engineName = "songbird/";
  	pos = agent.indexOf(engineName);
  	engineVersion = agent.substring(pos + engineName.length, agent.length);
  	browserVersion = engineVersion.substring(0, 3);
		}
	else if (this.isMZ = agent.indexOf('gecko/') !=-1) {
		browserName = "Mozilla";
		engineName = "rv:";
		pos = agent.indexOf(engineName);
		engineVersion = agent.substring(pos + engineName.length, agent.length);
		browserVersion = engineVersion.substring(0, 5);
		browserVersion = browserVersion.replace(') ','');
		}
	else if (this.isOpera = agent.indexOf('opera')!=-1) {
		browserName = "Opera";
		if (agent.indexOf('opera/')!=-1)
			engineName = "opera/"; // when identified as Opera
		else
			engineName = "opera "; // when identified as Mozilla or IE
		pos = agent.indexOf(engineName);
		engineVersion = agent.substring(pos + engineName.length, agent.length);
		browserVersion = engineVersion.substring(0, 4);
		}

// Web browser for Mac/Windows
	else if (this.isAOL = agent.indexOf('aol')!=-1) {
		browserName = "AOL";
		engineName = "aol ";
		pos = agent.indexOf(engineName);
		engineVersion = agent.substring(pos + engineName.length, agent.length);
		browserVersion = engineVersion.substring(0, 5);
		}

// Compatible web browsers
	else if (this.isWK = agent.indexOf('applewebkit')!=-1)
		browserName = "Safari-based browser";

// Unknown web browsers
	else browserName = "an unknown browser";

// ** Operating Systems **

// Mac OS
	if (agent.indexOf('mac os x')!=-1) os = "Mac OS X";
	else if (agent.indexOf('mac')!=-1) os = "Mac OS Classic";

// Windows
	else if (agent.indexOf('win95')!=-1)          os = "Windows 95";
	else if (agent.indexOf('win98')!=-1)          os = "Windows 98";
	else if (agent.indexOf('win 9x 4.90')!=-1)    os = "Windows ME";
	else if (agent.indexOf('windows nt 5.0')!=-1) os = "Windows 2000";
	else if (agent.indexOf('windows nt 5.1')!=-1) os = "Windows XP";
	else if (agent.indexOf('windows nt 5.2')!=-1) os = "Windows 2003";
	else if (agent.indexOf('windows nt 6.0')!=-1) os = "Windows Vista";

// Linux/Unix
	else if (agent.indexOf('linux')!=-1) os = "Linux";
	else if (agent.indexOf('freebsd')!=-1) os = "FreeBSD";
	else if (agent.indexOf('x11')!=-1)   os = "Unix";
	else if (agent.indexOf('sunos')!=-1) os = "Solaris";

// Unknown OSes
	else os = "an unknown OS";

// ** Print Results **
// You can edit from here

// Recommended web browsers
	if (this.isOW || this.isShiira || this.isDB || this.isSF || this.isCamino || this.NNW || this.isVienna || this.isKM || this.isKQ || this.isGaleon || this.isEP || this.isKH || this.isFF || this.isFlock || this.isNS || this.isSM || this.isSB || this.isMZ || this.isOpera)
	document.write ('Welcome to Catzilla-Mla Cattery. Excellent! You are visiting with <ins>' + browserName + ' ' + browserVersion + '</ins>, which is a recommended web browser for this cattery, on <ins>' + os + '</ins>. Thanks for visiting.');
	else if (this.isWK)
	document.write ('Welcome to Catzilla-Mla Cattery. Excellent! You are visiting with <ins>' + browserName + '</ins>, which is a recommended web browser for this cattery, on <ins>' + os + '</ins>. Thanks for visiting.');

// Unrecommended web browsers
	// For Mac users
	else if (this.isiCab)
	document.write ('Welcome to Catzilla-Mla Cattery.<br>You are visiting with <ins>' + browserName + ' ' + browserVersion + '</ins>, which is an unrecommended web browser for this website, on <ins>' + os + '</ins>. Why not use a better web browser like');
	
	// For Windows/Linux users
	else if (this.isAOLE || this.isMSN || this.isCrazy || this.isMaxthon || this.isIE || this.isAOL || this.isDillo)
	document.write ('Welcome to Catzilla-Mla Cattery. You are visiting with <ins>' + browserName + ' ' + browserVersion + '</ins>, which is an unrecommended web browser for this cattery, on <ins>' + os + '</ins>. Why not use a better web browser like');

// Undetected web browsers
	else
	document.write ('Welcome to Catzilla-mla Cattery. You are visiting with <ins>' + browserName + '</ins> on <ins>' + os + '</ins>. Why not give a try on a better web browser like');

// Special thanks to Henrik Gemal for providing BrowserSpy (http://gemal.dk/browserspy/), an excellent online browser tool.
// This code is allowed to be distributed and modified on the condition that you do not remove the credits.
// Please, email me at ceprix [at] gmail [dot] com if you would like to make any corrections or suggestions on this script.