/**
 * common-browser-identity.js
 *  All the functions to obtain browser and os version
 */


var BROWSER_TYPE_UNKNOWN   = "An unknown browser";
var BROWSER_TYPE_KONQUEROR = "Konqueror";
var BROWSER_TYPE_SAFARI    = "Safari";
var BROWSER_TYPE_OMNIWEB   = "OmniWeb";
var BROWSER_TYPE_OPERA     = "Opera";
var BROWSER_TYPE_WEBTV     = "WebTV";
var BROWSER_TYPE_EXPLORER  = "Internet Explorer";
var BROWSER_TYPE_NETSCAPE  = "Netscape Navigator";

var OS_TYPE_UNKNOWN        = "An unknown operating system";
var OS_TYPE_LINUX          = "Linux";
var OS_TYPE_UNIX           = "Unix";
var OS_TYPE_MAC            = "Mac";
var OS_TYPE_WINDOWS        = "Windows";


// Browser compatibility

function isBrowserCSS1Compat()
{
	if((document.compatMode) && (document.compatMode == "CSS1Compat"))
		return true;
	else
		return false;
}


// Browser types

function isBrowserUnknown()
{
	return getBrowserType() == BROWSER_TYPE_UNKNOWN ;
}

function isBrowserKonqueror()
{
	return getBrowserType() == BROWSER_TYPE_KONQUEROR ;
}

function isBrowserSafari()
{
	return getBrowserType() == BROWSER_TYPE_SAFARI ;
}

function isBrowserOmniweb()
{
	return getBrowserType() == BROWSER_TYPE_OMNIWEB ;
}

function isBrowserOpera()
{
	return getBrowserType() == BROWSER_TYPE_OPERA ;
}

function isBrowserWebtv()
{
	return getBrowserType() == BROWSER_TYPE_WEBTV ;
}

function isBrowserExplorer()
{
	return getBrowserType() == BROWSER_TYPE_EXPLORER ;
}

function isBrowserNetscape()
{
	return getBrowserType() == BROWSER_TYPE_NETSCAPE ;
}



// Operative Systems

function isOsUnknown()
{
	return getOsType() == OS_TYPE_UNKNOWN ;
}

function isOsLinux()
{
	return getOsType() == OS_TYPE_LINUX ;
}

function isOsUnix()
{
	return getOsType() == OS_TYPE_UNIX ;
}

function isOsMac()
{
	return getOsType() == OS_TYPE_MAC ;
}

function isOsWindows()
{
	return getOsType() == OS_TYPE_WINDOWS ;
}



//

function getBrowserType()
{
	var detect = getUserAgent();
	
	var browser = BROWSER_TYPE_UNKNOWN;

	if (detect.indexOf('konqueror') + 1)
		browser = BROWSER_TYPE_KONQUEROR;
	else
		if (detect.indexOf('safari') + 1)
			browser = BROWSER_TYPE_SAFARI;
		else
			if (detect.indexOf('omniweb') + 1)
				browser = BROWSER_TYPE_OMNIWEB;
			else
				if (detect.indexOf('opera') + 1)
					browser = BROWSER_TYPE_OPERA;
				else
					if (detect.indexOf('webtv') + 1)
						browser = BROWSER_TYPE_WEBTV;
					else
						if (detect.indexOf('icab') + 1)
							browser = BROWSER_TYPE_ICAB;
						else
							if (detect.indexOf('msie') + 1)
								browser = BROWSER_TYPE_EXPLORER;
							else
								if (!(detect.indexOf('compatible') + 1))
									browser = BROWSER_TYPE_NETSCAPE;
	
	return browser;
}

function getUserAgent()
{
	return navigator.userAgent.toLowerCase();
}

function getOsType()
{
	var OS = OS_TYPE_UNKNOWN;

	if (!OS)
	{
		if ((detect.indexOf('linux') + 1) || (detect.indexOf('konqueror') + 1))
			OS = OS_TYPE_LINUX;
		else
			if (detect.indexOf('x11') + 1)
				OS = OS_TYPE_UNIX;
			else
				if (detect.indexOf('mac') + 1)
					OS = OS_TYPE_MAC;
				else
					if (detect.indexOf('win') + 1)
						OS = OS_TYPE_WINDOWS;
	}
	
	return OS;
}