var env_obj = new TEnv();
var isMAC = ( env_obj.os == 'mac');
var isWIN = ( env_obj.os == 'win');
var isIE = ( env_obj.browser.name == 'msie');
var isNS = ( env_obj.browser.name == 'netscape');
var isOPERA = ( env_obj.browser.name == 'opera' || env_obj.browser.name == 'opera_msie' || env_obj.browser.name == 'opera_mozilla');
var isSAFARI = ( env_obj.browser.name == 'safari');
var isFIREFOX = ( env_obj.browser.name == 'firefox');
var browserVerStr = env_obj.browser.ver;
var browserVer = parseFloat( browserVerStr);

function TBrowserEnv() {
	this.name = '';
	this.ver = '';
	this.is_osx_ns = false;
	
	var user_agent = navigator.userAgent.toLowerCase();
	var ua_params = new Array();	
	var from = 0;
	var to = 0;

	while( from < user_agent.length) {
		if( user_agent.charAt( from) == '(') {
			to = user_agent.indexOf( ')', from);
		} else if( user_agent.charAt( from) == '[') {
			to = user_agent.indexOf( ']', from);
		} else {
			to = user_agent.indexOf( ' ', from);
		}
		to = ( to < 0) ? user_agent.length : to;
		to = ( user_agent.charAt( to) == ' ') ? to : to + 1;
		ua_params[ ua_params.length] = user_agent.substring( from, to);
		from = to + 1;
	}

	if( ua_params[0].indexOf( 'opera') >= 0) {
		this.name = 'opera';
		from = ua_params[0].indexOf( '/');
		this.ver = ua_params[0].substring( from + 1, ua_params[0].length);
	} else if( ua_params[1].indexOf( 'msie') >= 0) {
		this.name = 'msie';
		from = ua_params[1].indexOf( 'msie');
		this.ver = ua_params[1].substring( from + 5, ua_params[1].indexOf( ';', from));
	} else if( ua_params.length >= 4 && ua_params[ 3].indexOf( 'netscape') >= 0) {
		this.name = 'netscape';
		from = ua_params[ 3].indexOf( '/');
		this.ver = ua_params[ 3].substring( from + 1, ua_params[ 3].length);
	} else if( ua_params.length >= 5 && ua_params[ 4].indexOf( 'navigator') >= 0) {
		this.name = 'netscape';
		from = ua_params[ 4].indexOf( '/');
		this.ver = ua_params[ 4].substring( from + 1, ua_params[ 4].length);
	} else if( ua_params.length >= 4 && ua_params[ 3].indexOf( 'firefox') >= 0) {
		this.name = 'firefox';
		from = ua_params[ 3].indexOf( '/');
		this.ver = ua_params[ 3].substring( from + 1, ua_params[ 3].length);
	} else if( ua_params[ ua_params.length - 1].indexOf( 'safari') >= 0) {
		this.name = 'safari';
		from = ua_params[ ua_params.length - 1].indexOf( '/');
		var build_version = ua_params[ ua_params.length -1].substring( from + 1, ua_params[ ua_params.length -1].length);
		if( build_version <= 100) {
			this.ver = 0.8;
		} else if( build_version <= 125) {
			this.ver = 1.0;
		} else if( build_version <= 312) {
			this.ver = 1.2;
		} else if( build_version <= 412) {
			this.ver = 1.3;
		} else if( build_version <= 523) {
			this.ver = 2.0;
		} else {
			this.ver = 3.0;
		}
	} else if( ua_params[0].indexOf( 'mozilla') >= 0) {
		from = ua_params[0].indexOf( '/');
		this.ver = ua_params[0].substring( from + 1, ua_params[0].length);
		if( parseFloat( this.ver) < 5) {
			this.name = 'netscape';
		} else {
			this.name = 'mozilla';
		}
	} else {
		this.name = 'unknown';
	}

	if( ua_params[1].indexOf( 'msie') >= 0 && ua_params[2]) {
		if( ua_params[2] == 'opera') {
			this.name = 'opera_msie';
			this.ver = ua_params[3];
		}
	} else if( ua_params[0].indexOf( 'mozilla') >= 0 && ua_params[2]) {
		if( ua_params[2] == 'opera') {
			this.name = 'opera_mozilla';
			this.ver = ua_params[3];
		}
	}
	
	if( this.name != 'netscape' || Number( this.ver) < 5) {
		return;
	}
	if( ua_params[ 1].split( ';')[ 2].indexOf( 'mac os x') > 0) {
		this.is_osx_ns = true;
	}
}

function TEnv() {
	this.os = '';
	this.browser = new TBrowserEnv();

	var appVer = navigator.appVersion.toLowerCase();
	if( appVer.indexOf( 'mac') >= 0) {
		this.os = 'mac';
	} else if( appVer.indexOf( 'win') >= 0) {
		this.os = 'win';
	} else {
		this.os = 'win';
	}
}
