if(typeof(KX)=="object"&&!KX.Sys.Browser){
	KX.Sys.Browser=KX.Browser=function(){
		var _userAgent=window.navigator.userAgent;
		var _name=null;
		var _version=null;
		var _buildNumber=null;
		var _platform=null;
		var _geckoRevision=null;
		var _geckoVersion=null;
		if(_userAgent.match(/([\s+]?(\([\w\s\.\-\;]+\))[\s+]?.+)?(Opera).([\d.\d]+)[\s+]?(\([\w\s\.\-\;]+\))?/)){
			_name=RegExp.$3;
			_version=RegExp.$4.formatVersion();
			if(window.opera&&opera.buildNumber){
				_buildNumber=opera.buildNumber('inconspicuous');
			};
			_platform=RegExp.$1!=""?RegExp.$1.indexOf("MSIE")>0?RegExp.$1.split(";")[2].trim():RegExp.$1.split(";")[0].replace("(","").trim():RegExp.$5.split(";")[1].trim();
			_geckoRevision=null;
			_geckoVersion=null;
		}
		else if(_userAgent.match(/Mozilla\/[\d.\d]+.+(MSIE).([\d.\d]+);.([\w\s\.\-\;]+)/)){
			_name=RegExp.$1;
			_version=RegExp.$2.formatVersion();
			_buildNumber=null;
			_platform=RegExp.$3.indexOf("Win 9x")>=0?RegExp.$3.split(";")[1].trim():RegExp.$3.split(";")[0].trim();
			_geckoRevision=null;
			_geckoVersion=null;
		}
		else if(_userAgent.match(/Mozilla\/5.0[\s+](\([\w\s\.\-\;]+\)).+(Safari|SunriseBrowser)\/([\.\d]+)/)){
			_name=RegExp.$2;
			_version=RegExp.$3.formatVersion();
			_buildNumber=null;
			_platform=RegExp.$1.split(";")[2].trim();
			_geckoRevision=null;
			_geckoVersion=null;
		}
		else if(_userAgent.match(/Mozilla\/5.0.+(Konqueror)\/([\.\d]+)(;+([\w\s\.\-\;]+))?/)){
			_name=RegExp.$1;
			_version=RegExp.$2.formatVersion();
			_buildNumber=null;
			_platform=RegExp.$3!=""?RegExp.$3:null;
			_geckoRevision=null;
			_geckoVersion=null;
		}
		else if(_userAgent.match(/Mozilla\/5.0.+\(([\w\s\.\-\;]+)?.+rv:([\d.\d]+).+Gecko\/([\d]+)[\s+](Netscape|Phoenix|Mozilla Firebird|Firefox|SeaMonkey|Flock|Camino|K-Meleon|BonEcho)(.\W+|\/)([\.\d]+)/)){
			_name=RegExp.$4;
			_version=RegExp.$6.formatVersion();
			_buildNumber=null;
			_platform=RegExp.$1.split(";")[2].trim();
			_geckoRevision=RegExp.$2.formatVersion();
			_geckoVersion=RegExp.$3;
		}
		else if(_userAgent.match(/(Mozilla)\/5.0.+\(([\w\s\.\-\;]+)?.+rv:([\.\d]+).+Gecko\/([\d]+)/)){
			_name=RegExp.$1;
			_version=RegExp.$3.formatVersion();
			_buildNumber=null;
			_platform=RegExp.$2.split(";")[2].trim();
			_geckoRevision=RegExp.$3.formatVersion();
			_geckoVersion=RegExp.$4;
		}
		else if(_userAgent.match(/Mozilla\/([\.\d]+).+\(([\w\s\.\-\;]+)\)/)){
			_name="Netscape";
			_version=RegExp.$1.formatVersion();
			_buildNumber=null;
			_platform=RegExp.$2.split(";")[0].trim();
			_geckoRevision=null;
			_geckoVersion=null;
		};
		return({
			name:_name,
			version:_version,
			buildNumber:_buildNumber,
			platform:_platform,
			geckoRevision:_geckoRevision,
			geckoVersion:_geckoVersion
		});
	}();
};