

document.userSystem = new PF_getUserSystem(navigator.userAgent);

/*

  BROWSER CHECK MAIN

-------------------------------------------------*/

function PF_getUserSystem() {



	var key, index, keyIndex, keyIndexEnd, versionKey, i, j;

	var uaString = PF_getUserSystem.arguments[0].toUpperCase();



	this.osLongName = "---";

	this.osShortName = "---";

	this.browserLongName = "---";

	this.browserShortName = "---";

	this.browserVersion = "---";



	var OSTYPE = new Object();

	OSTYPE['W95'] = new PF_setOS('Windows 95','win','WINDOWS 95,WIN95');

	OSTYPE['W98'] = new PF_setOS('Windows 98','win','WINDOWS 98,WIN98,Win 9x');

	OSTYPE['WCE'] = new PF_setOS('Windows CE','win','WINDOWS CE,WINCE');

	OSTYPE['WME'] = new PF_setOS('Windows Me','win','WINDOWS ME,WINME');

	OSTYPE['WNT'] = new PF_setOS('Windows NT','win','WINDOWS NT),WINDOWS NT 3,WINDOWS NT 4,WINDOWS NT;,WINNT');

	OSTYPE['W2K'] = new PF_setOS('Windows 2000','win','WINDOWS 2000,WINDOWS NT 5.0,WIN2000');

	OSTYPE['WXP'] = new PF_setOS('Windows XP','win','WINDOWS NT 5.1,WINDOWS NT 5.2,Windows NT 6.0,WINDOWS XP,WINDOWS VISTA');

	OSTYPE['MAC'] = new PF_setOS('Macintosh','mac','MAC');

	OSTYPE['LNX'] = new PF_setOS('Linux','lnx','LINUX');

	OSTYPE['BSD'] = new PF_setOS('FreeBSD','bsd','FREEBSD');

	OSTYPE['X11'] = new PF_setOS('UNIX','x11','X11');

	OSTYPE['OSX'] = new PF_setOS('Mac OS X','osx','OS X');



	var BROWSERS = new Object();

	BROWSERS['MZ'] = new PF_setBrowser('Mozilla','mz','GECKO');

	BROWSERS['IE'] = new PF_setBrowser('Internet Explorer','ie','MSIE');

	BROWSERS['AO'] = new PF_setBrowser('AOL','ao','AOL');

	BROWSERS['SF'] = new PF_setBrowser('Safari','sf','SAFARI');

	BROWSERS['OP'] = new PF_setBrowser('Opera','op','OPERA');

	BROWSERS['OW'] = new PF_setBrowser('OmniWeb','ow','OMNIWEB');

	BROWSERS['IC'] = new PF_setBrowser('iCab','ic','ICAB');

	BROWSERS['NS'] = new PF_setBrowser('Netscape','ns','NETSCAPE,NETSCAPE6');

	BROWSERS['NN'] = new PF_setBrowser('Netscape Navigator','nn','MOZILLA');

	BROWSERS['FF'] = new PF_setBrowser('Firefox','ff','FIREFOX');

	

	var UNIXDETAIL = new Array("LNX","BSD");

	var checkVersionExp01 = new Array(' ', '/', '-', '');

	var checkVersionExp02 = new Array(';', ' ', '(', '[', ')', '+', '-', '/');



	uaString = " " + uaString + ";";

	

	index = 0;

	for (key in OSTYPE) {

		for (i=0; i<OSTYPE[key].keyword.length; i++) {

			keyIndex = uaString.indexOf(OSTYPE[key].keyword[i].toUpperCase());

			if (keyIndex > index) {

				this.osLongName = OSTYPE[key].longName;

				this.osShortName = OSTYPE[key].shortName;

				index = keyIndex;

			}

		}

	}



	// UNIX is reary?

	if (this.osShortName == "x11") {

		for (i=0; i<UNIXDETAIL.length; i++) {

			key = UNIXDETAIL[i];

			for (j=0; j<OSTYPE[key].keyword.length; j++) {

				if (uaString.indexOf(OSTYPE[key].keyword[j].toUpperCase()) > 0) {

					this.osLongName = OSTYPE[key].longName;

					this.osShortName = OSTYPE[key].shortName;

				}

			}

		}

	}



	// Mac OS is reary?

	if (this.osShortName == "mac") {

		var myPlugin = navigator.plugins;

		for (i=0; i<myPlugin.length; i++) {

			if(typeof(myPlugin[i].filename)!="undefined"){

				if (myPlugin[i].filename.indexOf(".plugin") != -1 || myPlugin[i].filename.indexOf(".app") != -1) {

					this.osLongName = OSTYPE["OSX"].longName;

					this.osShortName = OSTYPE["OSX"].shortName;

				}

			}

		}

		if (uaString.indexOf("MSIE 5.2") > 0) {

			this.osLongName = OSTYPE["OSX"].longName;

			this.osShortName = OSTYPE["OSX"].shortName;

		}

	}



	index = 0;

	for (key in BROWSERS) {

		for (i=0; i<BROWSERS[key].keyword.length; i++) {

			keyIndex = uaString.indexOf(BROWSERS[key].keyword[i].toUpperCase());

			if (keyIndex > index) {

				this.browserLongName = BROWSERS[key].longName;

				this.browserShortName = BROWSERS[key].shortName;

				versionKey = BROWSERS[key].keyword[i].toUpperCase();

				index = keyIndex;

			}

		}

	}



	// Navigator is reary?

	if (this.browserShortName == "nn" && uaString.indexOf("COMPATIBLE")>0) {

		this.browserLongName = "---";

		this.browserShortName = "---";

	}



	// Version Check

	if (this.browserLongName != "---") {

		for (i=0; i<checkVersionExp01.length; i++) {

			key = versionKey + checkVersionExp01[i];

			if ( ( keyIndex = uaString.indexOf(key) ) > 0 ) break;

		}

		// Mozilla

		if ( key == 'GECKO/' ) {

			key = 'RV:';

			keyIndex = uaString.indexOf(key);

		}

		keyIndex = keyIndex + key.length;

		index = uaString.length;

		for (i=0; i<checkVersionExp02.length; i++) {

			if ((key = uaString.indexOf(checkVersionExp02[i], keyIndex)) > 0) {

				if (key < index) {

					keyIndexEnd = key;

					index = keyIndexEnd;

				}

			}

		}

		this.browserVersion = uaString.substring(keyIndex, keyIndexEnd);

	}



}

/*

  Setting OS Object

-------------------------------------------------*/

function PF_setOS(longName,shortName,keyWord) {

	this.longName = longName;

	this.shortName = shortName;

	this.keyword = keyWord.split(",");

}

/*

  Setting BROWSER Object

-------------------------------------------------*/

function PF_setBrowser(longName,shortName,keyWord) {

	this.longName = longName;

	this.shortName = shortName;

	this.keyword = keyWord.split(",");

}

