// *******************************************
// *  Detection de la version de navigateur  *
// *******************************************
// Sebastien Dinel - Version 3.1 - 29/07/2003

// Version 3.1
//  - Ajout de la detection de Safari
//  - Ajout de la fonctionnalite de debogage en vue de modification ulterieures
//  - Corrigee une petite erreur dans la recherche des descriptions connues

var niveauDebug = 0;	// Mettre a 1 pour afficher le resultat de la detection

var navName;
var navVersion;
var navVer;
var navSys;

var uaDesc = new Array(6);
var uaVer = new Array(6);

function debug(niveau, texte)
{
	if(niveauDebug>=niveau)
	{
		document.writeln('&gt; ' + texte + '<br>');
	}
}

function checkNav()
{
	var ua = navigator.userAgent.toLowerCase();
	debug(2, ua);
	var permDescs = new Array('mozilla', 'windows nt','netscape', 'msie', 'safari','firefox');
	var knownNavs = 'netscape, msie, safari, firefox';
	var curDesc = 0;
	var permDebuts = 'http://www.simplernetworks.com/'; // caracteres acceptes juste avant le numero de version
	var inDebut = false;
	var permChars = '01234567890.,'; // Carateres acceptes dans un numero de version
	var curVer = 0;
	var inVer = false;
	var lastPair = 0;
	
	// Recherche des descriptions dans la chaine ua
	// On recherche toutes les descriptions connue dans le tableau permDescs
	debug(3, '*************************************');
	debug(2, 'Recherche des descriptions connues...');
	for(var boucle = 0; boucle < permDescs.length; boucle++)
	{
		debug(4, boucle);
		
		if(ua.indexOf(permDescs[boucle]) >= 0)
		{
			// La description courante est dans la chaine du user agent
			debug(3, 'permDescs[boucle]='+permDescs[boucle]);
			debug(3, 'ua.indexOf(permDescs[boucle])='+ua.indexOf(permDescs[boucle]));
			
			// On l'ajoute a la liste des descriptions correspondantes
			uaDesc[curDesc] = permDescs[boucle];
			
			// Permutation des descriptions selon l'ordre dans la chaine ua (deux derniers seulement)
			if( curDesc > 0 && ua.indexOf(uaDesc[curDesc]) < ua.indexOf(uaDesc[curDesc - 1]) )
			{
				debug(3, 'permutation!');
				var temp = uaDesc[curDesc];
				uaDesc[curDesc] = uaDesc[curDesc-1];
				uaDesc[curDesc-1] = temp;
			}
	
			debug(3, uaDesc);
	
			curDesc++;
		}
	}
	
	// Recherche des numeros de versions
	debug(3, '*************************************');
	debug(2, 'Recherche du numero de version...');
	for(boucle = 0; boucle < ua.length; boucle++)
	{
		debug(3, boucle);
		
		if(permDebuts.indexOf(ua.charAt(boucle)) >= 0)
			inDebut = true;
		else
		{
			if (inDebut && permChars.indexOf(ua.charAt(boucle)) >= 0)
			{
				if(inVer)
					uaVer[curVer] += ua.charAt(boucle);
				else
				{	
					uaVer[curVer] = ua.charAt(boucle);
					inVer = true;
				}
			}
			else
			{
				if(inVer && (uaVer[curVer].indexOf('.') > 0 || uaVer[curVer].indexOf(',') > 0))
					curVer++;
					
				inVer = false;
				inDebut = false;
			}
		}
	}
	
	for(boucle = 0; boucle <= curVer; boucle++)
	{
		if(uaVer[boucle] != null && uaDesc[boucle] != null && knownNavs.indexOf(uaDesc[boucle]) >= 0)
			lastPair = boucle;
	}
	
	navName=(uaDesc[lastPair]=='mozilla')?'netscape':uaDesc[lastPair];
	navVersion=parseFloat(uaVer[lastPair]);
	navVer=Math.floor(navVersion);
	navSys=(navigator.appVersion.search('Mac')!=-1) ? 'mac' : '';
	navSys = (navSys=='' && navigator.appVersion.search('Win')!=-1) ? 'win' : navSys;	
}

function reportNav()
{
	document.writeln("<p><br><b>Resultats de detection du navigateur<\/b><p>");

	document.writeln("navigator.userAgent = " + navigator.userAgent.toLowerCase() + '<br>');
	document.writeln("navigator.appName = " + navigator.appName + '<br>');
	document.writeln("navigator.appVersion = " + navigator.appVersion + '<br>');

	document.writeln('<p>');

	document.writeln("navName = " + navName + '<br>');
	
	document.writeln("navVersion = " + navVersion + '<br>');
	
	document.writeln("navVer = " + navVer + '<br>');
	
	document.writeln("navSys = " + navSys + '<br>');
}
function reportNavForUser()
{
	//document.writeln("<p><br><b>Resultats de detection du navigateur<\/b><p>");

	document.writeln("navigator.userAgent = " + navigator.userAgent.toLowerCase() + '<br>');
	//document.writeln("navigator.appName = " + navigator.appName + '<br>');
	//document.writeln("navigator.appVersion = " + navigator.appVersion + '<br>');

	/*document.writeln('<p>');

	document.writeln("navName = " + navName + '<br>');
	
	document.writeln("navVersion = " + navVersion + '<br>');
	
	document.writeln("navVer = " + navVer + '<br>');
	
	document.writeln("navSys = " + navSys + '<br>');*/
}
checkNav();

if(niveauDebug > 0)
{
	reportNav();
}
