--- /dev/null
+#ifndef _JDISP_BROWSER_JSH\r
+#define _JDISP_BROWSER_JSH\r
+\r
+#define BROWSER_IS_IE() (HAS_SUBSTRING(navigator.userAgent, "MSIE"))\r
+#define BROWSER_IS_FIREFOX() (HAS_SUBSTRING(navigator.userAgent, "Firefox"))\r
+#define BROWSER_IS_OPERA() (IS_DEFINED(window.opera))\r
+#define BROWSER_IS_CHROME() (HAS_SUBSTRING(navigator.userAgent, "Chrome"))\r
+#define BROWSER_IS_SAFARI() (HAS_SUBSTRING(navigator.userAgent, "Apple"))\r
+#define BROWSER_IS_KONQUEROR() (HAS_SUBSTRING(navigator.vendor, "KDE"))\r
+#define BROWSER_IS_OMNIWEB() (HAS_SUBSTRING(navigator.userAgent, "OmniWeb"))\r
+#define BROWSER_IS_ICAB() (HAS_SUBSTRING(navigator.vendor, "iCab"))\r
+#define BROWSER_IS_CAMINO() (HAS_SUBSTRING(navigator.vendor, "Camino"))\r
+#define BROWSER_IS_NETSCAPE() (HAS_SUBSTRING(navigator.userAgent, "Netscape") \\r
+ || HAS_SUBSTRING(navigator.userAgent, "Gecko") \\r
+ || HAS_SUBSTRING(navigator.userAgent, "Mozilla") \\r
+ )\r
+#define TEST_BROWSER(n) (("BROWSER_IS_" + #n + "=") + (BROWSER_IS_##n()))\r
+#define TEST_BROWSER_DETECTION(log) (function () { \\r
+ log.append(TEST_BROWSER(IE)); \\r
+ log.append(TEST_BROWSER(FIREFOX)); \\r
+ log.append(TEST_BROWSER(OPERA)); \\r
+ log.append(TEST_BROWSER(CHROME)); \\r
+ log.append(TEST_BROWSER(SAFARI)); \\r
+ log.append(TEST_BROWSER(KONQUEROR)); \\r
+ log.append(TEST_BROWSER(OMNIWEB)); \\r
+ log.append(TEST_BROWSER(ICAB)); \\r
+ log.append(TEST_BROWSER(CAMINO)); \\r
+ log.append(TEST_BROWSER(NETSCAPE)); \\r
+})()\r
+\r
+OOP_CLASS(Browser) = function()\r
+{\r
+};\r
+\r
+OOP_METHOD(Browser, test) = function(log)\r
+{\r
+ TEST_BROWSER_DETECTION(log);\r
+};\r
+\r
+#endif /* _JDISP_BROWSER_JSH */\r