/** * File: browser.js * Author: Hans Bieshaar * Date: August 7, 2007 * Purpose: a simple client sniffer * * This module defines an object named "browser" that is easier to use than * the "navigator" object. */ var browser = { // original properties in the rhino book version: parseInt(navigator.appVersion), isMicrosoft: navigator.appName.indexOf("Microsoft") != -1, isNetscape: navigator.appName.indexOf("Netscape") != -1, isKonqueror: navigator.appName.indexOf("Konqueror") != -1, // additional properties based on DHTML and CSS isDHTML: false, isID: false, isAll: false, isLayers: false, // parameters to pass to following PHP requests params: "Browser=" }; if ( document.getElementById ) browser.isID = true; else if ( document.all ) browser.isAll = true; else if ( document.layers ) browser.isLayers = true; else if ( browser.isNetscape && browser.version == 4 ) browser.isLayers = true; browser.isDHTML = browser.isID || browser.isAll || browser.isLayers; if ( browser.isID ) { browser.getObject = function(objectID) { return document.getElementById(objectID); } browser.getObjectStyle = function(objectID) { return document.getElementById(objectID).style; }; } else if ( browser.isAll ) { browser.getObject = function(objectID) { return document.all[objectID]; } browser.getObjectStyle = function(objectID) { return document.all[objectID].style; } } else if ( browser.isLayers ) { browser.getObject = function(objectID) { return document.layers[objectID]; } browser.getObjectStyle = browser.getObject; } else { browser.getObject = function(objectID) { return null; } browser.getObjectStyle = browser.getObject; } /** * The following code creates the parameters to be passed to following * PHP, CSS, and javascript requests */ if ( browser.isMicrosoft ) browser.params += "IE"; else if ( browser.isNetscape ) browser.params += "NS"; else if ( browser.isKonqueror ) browser.params += "KQ"; else browser.params += "XX"; browser.params += "&Version=" + browser.version; if ( browser.isID ) browser.params += "&Type=ID"; else if ( browser.isAll ) browser.params += "&Type=All"; else if (browser.isLayers ) browser.params += "&Type=Layers"; else browser.params += "&Type=none";