
var user = Object();
user.browser = Object();
//var navigator_language = navigator.userLanguage;
var navigator_language;
if (navigator.appName == 'Netscape')
    navigator_language = navigator.language;
else
    navigator_language = navigator.browserLanguage; 
user.language = navigator_language.substring(0,2); 
user.country = navigator_language.substring(3,5);

/*
if (user.language.indexOf('en') > -1) document.location.href = 'english.html';
else if (user.language.indexOf('nl') > -1) document.location.href = 'dutch.html';
else if (user.language.indexOf('fr') > -1) document.location.href = 'french.html';
else if (user.language.indexOf('de') > -1) document.location.href = 'german.html';
else if (user.language.indexOf('ja') > -1) document.location.href = 'japanese.html';
else if (user.language.indexOf('it') > -1) document.location.href = 'italian.html';
else if (user.language.indexOf('pt') > -1) document.location.href = 'portuguese.html';
else if (user.language.indexOf('es') > -1) document.location.href = 'spanish.html';
else if (user.language.indexOf('sv') > -1) document.location.href = 'swedish.html';
else if (user.language.indexOf('zh') > -1) document.location.href = 'chinese.html';
else document.location.href = 'english.html';
*/

function language_iso6391ToName(language_iso6391)
{
    var language = 'English';
    //if (language_iso6391 == 'en') language = 'English';
    if (language_iso6391 == 'nl') language = 'Dutch';
    else if (language_iso6391 == 'fr') language = 'French';
    else if (language_iso6391 == 'de') language = 'German';
    else if (language_iso6391 == 'ja') language = 'Japanese';
    else if (language_iso6391 == 'it') language = 'Italian';
    else if (language_iso6391 == 'pt') language = 'Portuguese';
    else if (language_iso6391 == 'es') language = 'Spanish';
    else if (language_iso6391 == 'sv') language = 'Swedish';
    else if (language_iso6391 == 'zh') language = 'Chinese';
    //else language = 'English';
    return language;    
}


var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			   string: navigator.userAgent,
			   subString: "iPhone",
			   identity: "iPhone/iPod"
	    },
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();

user.browser.name = BrowserDetect.browser;
user.browser.version = BrowserDetect.version;
user.os = BrowserDetect.OS;


/* There are a few instances in which the browser cannot ascertain the user's address, so we will instruct the browser to ignore errors by setting the onerror handler to null: */
//window .onerror = null;

/* We will also give hostaddress and hostname a default value in case the address look-up fails: */
user.hostaddress = hostname = "(unknown)";

/* Now we will try to gather the host information: */
try{
    user.localhost = java . net . InetAddress . getLocalHost ();
    user.hostaddress = user.localhost . getHostAddress ();
    user.hostname = user.localhost . getHostName ();
}
catch(error){
    user.localhost = null;
    user.hostaddress = null;
    user.hostname = null;
}

user.ip = '<!--#echo var="REMOTE_ADDR"-->';

//alert(user.ip);
/* The Java methods used above are capable of throwing exceptions. When Java exceptions occur within JavaScript, the script body is aborted. In order to make sure that the following statements get a chance to execute, we must include them in a separate script body: */
//alert(' navigator_language: '+navigator_language+' user.language: '+user.language+' user.country: '+user.country+' user.browser.name: '+user.browser.name+' user.browser.version: '+user.browser.version+' user.os: '+user.os;
