
/****************************************************************************************************
**
** TOOL - BROWSER CHECK V1.2
**
** Dateiname:			browser_check_v1_1.js
** Letzte Änderung:		20.02.2004
** Programmierer:		Heiko Pfefferkorn (o2cell.com) (work: i-fabrik.de)
**
*****************************************************************************************************
**
** INFOMATION
**
** Erklärungen und Definitionen entnehmen Sie bitte den Kommentaren in den jeweiligen
** Code-Abschnitten
**
** AKTUALISIERUNG
**
** Es ist nicht immer sofort möglich ein neues Update online zur Verfügung zu stellen...
** Mit ein wenig Vorbelastung im JS-Bereich sollte es auch eiligen User'n möglich sein
** eine neue Browser-Version mit einzubinden. Bitte beachten Sie jedoch die Copyright-Hinweise.
**
** COPYRIGHT
**
** Das Copyright liegt bei Heiko Pfefferkorn (o2cell.com) (work: i-fabrik.de).
** Eine Änderung bzw. Anpassung des Quellcodes darf erfolgen, jedoch darf der Quellcode nicht
** kommerziell genutzt werden. Das bedeutet, Sie können ihn einbauen, nutzen, ev. auch anpassen
** aber nicht verkaufen oder gegen eine Gebühr anbieten.
**
****************************************************************************************************/


/****************************************************************************************************
** VAR - DEFINITIONEN
****************************************************************************************************/

/* Variablendefinition - User-Betriebssystem
------------------------------------------*/
var sysWin 				= false;		// wahr wenn Windows Plattform
var sysMac 				= false;		// wahr wenn Macintosh Plattform


/* Check-Variable
-- Wird false sobald eine version erkannt wurde, somit werden die anderen
-- Prüfungen übersprungen. Spart Zeit und Rechner-Leistung :-) (minimal)
------------------------------------------------------------------------*/
var chk 				= true; 


/* Variabledefinitionen - Browser
-- Im Array "browser" gibt es zu Zeit 4 Browser auf die geprüft wird.
-- Ein Eintrag in dem Array ohne Versionsnummer, zum Beispiel 'browser["vIsMoz"]'
-- bedeutet das dieser Eintrag auf wahr gesetzt wird wenn die Version nicht erkannt wurde
----------------------------------------------------------------------------------------*/
var bNav 				= false;		// wahr wenn Netscape Navigator Browser (noch keine Version)
var bMsi 				= false;		// wahr wenn Internet Explorer Browser (noch keine Version)
var bMoz 				= false;		// wahr wenn Mozilla Browser (noch keine Version)
var bOpe 				= false;		// wahr wenn Opera Browser (noch keine Version)


var browser 			= new Array();	// beinhaltet die Browserversionen auf die geprüft wird
browser["vIsMoz"] 		= false;
browser["vIsMoz1_0"]  	= false;
browser["vIsMoz1_1"]  	= false;
browser["vIsMoz1_2"]  	= false;
browser["vIsMoz1_3"]  	= false;
browser["vIsMoz1_4"] 	= false;
browser["vIsMoz1_5"] 	= false;
browser["vIsMoz1_6"] 	= false;
browser["vIsMoz1_7"] 	= false;

browser["vIsMsi"] 		= false;
browser["vIsMsi3"] 		= false;
browser["vIsMsi4"] 		= false;
browser["vIsMsi5"] 		= false;
browser["vIsMsi6"] 		= false;

browser["vIsNav"] 		= false;
browser["vIsNav2"] 		= false;
browser["vIsNav3"] 		= false;
browser["vIsNav4"] 		= false;
browser["vIsNav4x"] 	= false;
browser["vIsNav6"] 		= false;
browser["vIsNav7"] 		= false;

browser["vIsOpe"] 		= false;
browser["vIsOpe2"] 		= false;
browser["vIsOpe3"] 		= false;
browser["vIsOpe4"] 		= false;
browser["vIsOpe5"] 		= false;
browser["vIsOpe6"] 		= false;
browser["vIsOpe7"] 		= false;


/* Auslesen des UserAgent und Konvertierung in Kleinbuchstaben
-------------------------------------------------------------*/
var uAgent 		= navigator.userAgent.toLowerCase();


/* Auslesen der AppVersion
-------------------------------------------------------------*/
var vNumber 	= parseInt(navigator.appVersion);
var vNumber2 	= parseFloat(navigator.appVersion);


/****************************************************************************************************
** WELCHES SYSTEM
****************************************************************************************************/

/* Welches System hat der User (Win.Mac)
---------------------------------------*/
if ((uAgent.indexOf("win")!= -1) || (uAgent.indexOf("16bit")!= -1))
	sysWin = true; 		// Windows System

if (uAgent.indexOf("mac")!= -1)
	sysMac = true;		// Macintosh System

/* Sollte ein anderes System da sein dann setze sysWin als Standard
------------------------------------------------------------------*/
if ((sysWin == false) && (sysMac == false))
	sysWin =true;


/****************************************************************************************************
** WELCHER BROWSER
****************************************************************************************************/

/* Welcher Browser (ohne Version)
-- Variablen im Bereich 'Variabledefinitionen - Browser' (weiter oben) werden
-- auf wahr gesetzt
----------------------------------------------------------------------------*/
if ((uAgent.indexOf('mozilla') != -1) && (uAgent.indexOf('spoofer')== -1) && (uAgent.indexOf('compatible') == -1) && (uAgent.indexOf('opera') == -1)) {
	if ((uAgent.indexOf('rv:1.') != -1) && (uAgent.indexOf("netscape") == -1)) {
		bMoz = true;					// Mozilla Browser
	} else {
		bNav = true;					// Netscape Browser
	}
}

if ((uAgent.indexOf("msie") != -1) && (uAgent.indexOf("opera") == -1))
	bMsi = true;						// Internet Explorer Browser

if (uAgent.indexOf("opera") != -1)
	bOpe = true;						// Opera Browser


/* Welche Browserversion
----------------------------------------------------------------------------*/
if (chk && bMoz) {		// Mozilla-Versions-Check
	if (uAgent.indexOf("rv:1.7") != -1) { 			// Version: mozilla 1.7
		browser["vIsMoz1_7"] 	= true;
		chk 					= false;
	} else if (uAgent.indexOf("rv:1.6") != -1) { 	// Version: mozilla 1.6
		browser["vIsMoz1_6"] 	= true;
		chk 					= false;
	} else if (uAgent.indexOf("rv:1.5") != -1) { 	// Version: mozilla 1.5
		browser["vIsMoz1_5"] 	= true;
		chk 					= false;
	} else if (uAgent.indexOf("rv:1.4") != -1) { 	// Version: mozilla 1.4
		browser["vIsMoz1_4"] 	= true;
		chk 					= false;
	} else if (uAgent.indexOf("rv:1.3") != -1) { 	// Version: mozilla 1.3
		browser["vIsMoz1_3"] 	= true;
		chk 					= false;
	} else if (uAgent.indexOf("rv:1.2") != -1) { 	// Version: mozilla 1.2
		browser["vIsMoz1_2"] 	= true;
		chk 					= false;
	} else if (uAgent.indexOf("rv:1.1") != -1) { 	// Version: mozilla 1.1
		browser["vIsMoz1_1"] 	= true;
		chk 					= false;
	} else if (uAgent.indexOf("rv:1.0") != -1) { 	// Version: mozilla 1.0
		browser["vIsMoz1_0"] 	= true;
		chk 					= false;
	} else { 										// Version: nicht erkannt
		browser["vIsMoz"] 		= true;
		chk 					= false;
	}
}

if (chk && bNav) {		// Netscape Versions Check
	if (uAgent.indexOf("netscape/7") != -1) {									// Version: navigator 7
		browser["vIsNav7"] 	= true;
		chk 				= false;
	} else if ((vNumber == 5) && (uAgent.indexOf("netscape6") != -1)) {			// Version: navigator 6
		browser["vIsNav6"] 	= true;
		chk 				= false;
	} else if ((vNumber >= 4) && (vNumber < 5)) {								// Version: navigator 4.x
		browser["vIsNav4x"] = true;
		chk 				= false;
	} else if ((vNumber == 4) && (uAgent.indexOf("netscape4") != -1)) {			// Version: navigator 4
		browser["vIsNav4"] 	= true;
		chk 				= false;
	} else if (vNumber == 3) {													// Version: navigator 3
		browser["vIsNav3"] 	= true;
		chk 				= false;
	} else if (vNumber == 2) {													// Version: navigator 2
		browser["vIsNav2"] 	= true;
		chk 				= false;
	} else if ((uAgent.indexOf(";nav") != -1) || (uAgent.indexOf("; nav") != -1)) {	// Version: navigator
		browser["vIsNav"] 	= true;
		chk 				= false;
	} else {																	// Version: navigator
		browser["vIsNav"] 	= true;
		chk 				= false;
	}
}

if (chk && bMsi) {		// Internet Explorer Versions Check
	if ((vNumber >= 4) && (uAgent.indexOf("msie 6.") != -1)) {					// Version: msie 6.x
		browser["vIsMsi6"] 	= true;
		chk 				= false;
	} else if ((vNumber >= 4) && (uAgent.indexOf("msie 5.") != -1)) {			// Version: msie 5.x
		vNumber == 5;
		browser["vIsMsi5"] 	= true;
		chk 				= false;
	} else if (((vNumber == 4) || (vNumber >= 4)) && (uAgent.indexOf("msie 4") != -1)) {	// Version: msie 4.x
		browser["vIsMsi4"] 	= true;
		chk 				= false;
	} else if (vNumber < 4) {													// Version: msie 3
		browser["vIsMsi3"] 	= true;
		chk 				= false;
	} else {																	// Version: msie
		browser["vIsMsi"] 	= true;
		chk 				= false;
	}
}

if (chk && bOpe) {		// Opera Versions Check
	if ((uAgent.indexOf("opera 7") != -1) || (uAgent.indexOf("opera/7") != -1)) {			// Version: opera 7
		browser["vIsOpe7"] 	= true;
		chk 				= false;
	} else if ((uAgent.indexOf("opera 6") != -1) || (uAgent.indexOf("opera/6") != -1)) {	// Version: opera 6
		browser["vIsOpe6"] 	= true;
		chk 				= false;
	} else if ((uAgent.indexOf("opera 5") != -1) || (uAgent.indexOf("opera/5") != -1)) {	// Version: opera 5
		browser["vIsOpe5"] 	= true;
		chk 				= false;
	} else if ((uAgent.indexOf("opera 4") != -1) || (uAgent.indexOf("opera/4") != -1)) {	// Version: opera 4
		browser["vIsOpe4"] 	= true;
		chk 				= false;
	} else if ((uAgent.indexOf("opera 3") != -1) || (uAgent.indexOf("opera/3") != -1)) {	// Version: opera 3
		browser["vIsOpe3"] 	= true;
		chk 				= false;
	} else if ((uAgent.indexOf("opera 2") != -1) || (uAgent.indexOf("opera/2") != -1)) {	// Version: opera 2
		browser["vIsOpe2"] 	= true;
		chk 				= false;
	} else {																				// Version: opera 2
		browser["vIsOpe"] 	= true;
		chk 				= false;
	}
}


/****************************************************************************************************
** BROWSER - INFO
****************************************************************************************************/

/* Funktion viewBrowserInfo
-- Einfach die Funktion aufrufen und schon wird ein Fenstergeöffnet
-- das die relevanten Browser-Daten anzeigt
------------------------------------------------------------------*/
function viewBrowserInfo () {
	infoWin = window.open("","binfo","width=500,height=160,left=100,top=100");
	infoWin.document.open();

	infoWin.document.write('<html>\n');
	infoWin.document.write('<head>\n');
	infoWin.document.write('<title>BROWSER-CHECK V1</title>\n');
	infoWin.document.write('</head>\n\n');
	infoWin.document.write('<body bgcolor="#ffffff" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">\n\n');

	infoWin.document.write('<table border="0" width="100%" height="100%" cellpadding="2" cellspacing="1">\n');

	/* UserAgent
	-----------*/
	infoWin.document.write('<tr>\n');
	infoWin.document.write('<td width="10%" align="left" valign="middle" bgcolor="#e72227"><font face="tahoma, verdana" size="1" color="#ffffff"><b>UserAgent&nbsp;</b></font></td>\n');
	infoWin.document.write('<td width="90%" align="left" valign="middle" bgcolor="#f2f2f2"><font face="tahoma, verdana" size="1" color="#666666"><b> ' + uAgent + '</b></font></td>\n');
	infoWin.document.write('</tr>\n');

	/* Browsertyp
	------------*/
	if (bNav) {
		bTyp = "Netscape Navigator";
	} else if (bMsi) {
		bTyp = "Internet Eplorer";
	} else if (bMoz) {
		bTyp = "Mozilla";
	} else if (bOpe) {
		bTyp = "Opera";
	} else {
		bTyp = "unbekannt";
	}

	infoWin.document.write('<tr>\n');
	infoWin.document.write('<td width="10%" align="left" valign="middle" bgcolor="#e72227"><font face="tahoma, verdana" size="1" color="#ffffff"><b>Browser&nbsp;Typ&nbsp;</b></font></td>\n');
	infoWin.document.write('<td width="90%" align="left" valign="middle" bgcolor="#f2f2f2"><font face="tahoma, verdana" size="1" color="#666666"><b> ' + bTyp + '</b></font></td>\n');
	infoWin.document.write('</tr>\n');

	/* Browserversion
	----------------*/
	if (vNumber) {
		vNum = vNumber;
		if (vNumber2)
			vNum = vNumber + ' [' + vNumber2 + ']';
	} else if (vNumber2) {
		vNum = vNumber2;
	} else {
		vNum = "unbekannt";
	}

	infoWin.document.write('<tr>\n');
	infoWin.document.write('<td width="10%" align="left" valign="middle" bgcolor="#e72227"><font face="tahoma, verdana" size="1" color="#ffffff"><b>Browser&nbsp;Version&nbsp;</b></font></td>\n');
	infoWin.document.write('<td width="90%" align="left" valign="middle" bgcolor="#f2f2f2"><font face="tahoma, verdana" size="1" color="#666666"><b> ' + vNum + '</b></font></td>\n');
	infoWin.document.write('</tr>\n');

	/* Plattform
	------------*/
	if (sysWin) {
		pF = "Windows";
	} else if (sysMac) {
		pF = "Macintosh";
	} else {
		pF = "unbekannt";
	}

	infoWin.document.write('<tr>\n');
	infoWin.document.write('<td width="10%" align="left" valign="middle" bgcolor="#e72227"><font face="tahoma, verdana" size="1" color="#ffffff"><b>System&nbsp;</b></font></td>\n');
	infoWin.document.write('<td width="90%" align="left" valign="middle" bgcolor="#f2f2f2"><font face="tahoma, verdana" size="1" color="#666666"><b> ' + pF + '</b></font></td>\n');
	infoWin.document.write('</tr>\n');

	infoWin.document.write('</table>\n');

	infoWin.document.write('\n</body>\n');
	infoWin.document.write('</html>\n');

	infoWin.document.close();

}
