AjxEnv.js
Summary
No overview generated for 'AjxEnv.js'
function AjxEnv() {
}
AjxEnv._inited = false;
AjxEnv.reset = function () {
AjxEnv.browserVersion = -1;
AjxEnv.geckoDate = 0;
AjxEnv.mozVersion = -1;
AjxEnv.isMac = false;
AjxEnv.isWindows = false;
AjxEnv.isLinux = false;
AjxEnv.isNav = false;
AjxEnv.isIE = false;
AjxEnv.isNav4 = false;
AjxEnv.trueNs = true;
AjxEnv.isNav6 = false;
AjxEnv.isNav6up = false;
AjxEnv.isNav7 = false;
AjxEnv.isIE3 = false;
AjxEnv.isIE4 = false;
AjxEnv.isIE4up = false;
AjxEnv.isIE5 = false;
AjxEnv.isIE5_5 = false;
AjxEnv.isIE5up = false;
AjxEnv.isIE5_5up = false;
AjxEnv.isIE6 = false;
AjxEnv.isIE6up = false;
AjxEnv.isNormalResolution = false;
AjxEnv.ieScaleFactor = 1;
AjxEnv.isFirefox = false;
AjxEnv.isFirefox1up = false;
AjxEnv.isFirefox1_5up = false;
AjxEnv.isMozilla = false;
AjxEnv.isMozilla1_4up = false;
AjxEnv.isSafari = false;
AjxEnv.isGeckoBased = false;
AjxEnv.isOpera = false;
AjxEnv.useTransparentPNGs = false;
AjxEnv.is800x600orLower = screen.width <= 800 && screen.height <= 600;
};
AjxEnv.parseUA = function (userAgent) {
var agt = userAgent.toLowerCase();
var agtArr = agt.split(" ");
var i = 0;
var index = -1;
var token = null;
var isSpoofer = false;
var isWebTv = false;
var isHotJava = false;
var beginsWithMozilla = false;
var isCompatible = false;
if (agtArr != null) {
if ( (index = agtArr[0].search(/^\s*mozilla\
beginsWithMozilla = true;
AjxEnv.browserVersion = parseFloat(agtArr[0].substring(index + 8));
AjxEnv.isNav = true;
}
for ( ; i < agtArr.length; ++i ){
token = agtArr[i];
if (token.indexOf('compatible') != -1 ) {
isCompatible = true;
AjxEnv.isNav = false;
} else if ((token.indexOf('opera')) != -1){
AjxEnv.isOpera = true;
AjxEnv.isNav = false;
AjxEnv.browserVersion = parseFloat(agtArr[i+1]);
} else if ((token.indexOf('spoofer')) != -1){
isSpoofer = true;
AjxEnv.isNav = false;
} else if ((token.indexOf('webtv')) != -1) {
isWebTv = true;
AjxEnv.isNav = false;
} else if ((token.indexOf('hotjava')) != -1) {
isHotJava = true;
AjxEnv.isNav = false;
} else if ((index = token.indexOf('msie')) != -1) {
AjxEnv.isIE = true;
AjxEnv.browserVersion = parseFloat(agtArr[i+1]);
} else if ((index = token.indexOf('gecko/')) != -1){
AjxEnv.isGeckoBased = true;
AjxEnv.geckoDate = parseFloat(token.substr(index + 6));
} else if ((index = token.indexOf('rv:')) != -1){
AjxEnv.mozVersion = parseFloat(token.substr(index + 3));
AjxEnv.browserVersion = AjxEnv.mozVersion;
} else if ((index = token.indexOf('firefox/')) != -1){
AjxEnv.isFirefox = true;
AjxEnv.browserVersion = parseFloat(token.substr(index + 8));
} else if ((index = token.indexOf('netscape6/')) != -1){
AjxEnv.trueNs = true;
AjxEnv.browserVersion = parseFloat(token.substr(index + 10));
} else if ((index = token.indexOf('netscape/')) != -1){
AjxEnv.trueNs = true;
AjxEnv.browserVersion = parseFloat(token.substr(index + 9));
} else if ((index = token.indexOf('safari/')) != -1){
AjxEnv.isSafari = true;
AjxEnv.browserVersion = parseFloat(token.substr(index + 7));
} else if (token.indexOf('windows') != -1){
AjxEnv.isWindows = true;
} else if ((token.indexOf('macintosh') != -1) ||
(token.indexOf('mac_') != -1)){
AjxEnv.isMac = true;
} else if (token.indexOf('linux') != -1){
AjxEnv.isLinux = true;
}
}
AjxEnv.isNav = (beginsWithMozilla && !isSpoofer && !isCompatible &&
!AjxEnv.isOpera && !isWebTv && !isHotJava &&
!AjxEnv.isSafari);
AjxEnv.isIE = (AjxEnv.isIE && !AjxEnv.isOpera);
AjxEnv.isNav4 = (AjxEnv.isNav && (AjxEnv.browserVersion == 4) &&
(!AjxEnv.isIE));
AjxEnv.isNav6 = (AjxEnv.isNav && AjxEnv.trueNs &&
(AjxEnv.browserVersion >=6.0) &&
(AjxEnv.browserVersion < 7.0));
AjxEnv.isNav6up = (AjxEnv.isNav && AjxEnv.trueNs &&
(AjxEnv.browserVersion >= 6.0));
AjxEnv.isNav7 = (AjxEnv.isNav && AjxEnv.trueNs &&
(AjxEnv.browserVersion == 7.0));
AjxEnv.isIE3 = (AjxEnv.isIE && (AjxEnv.browserVersion < 4));
AjxEnv.isIE4 = (AjxEnv.isIE && (AjxEnv.browserVersion == 4) &&
(AjxEnv.browserVersion == 4.0));
AjxEnv.isIE4up = (AjxEnv.isIE && (AjxEnv.browserVersion >= 4));
AjxEnv.isIE5 = (AjxEnv.isIE && (AjxEnv.browserVersion == 4) &&
(AjxEnv.browserVersion == 5.0));
AjxEnv.isIE5_5 = (AjxEnv.isIE && (AjxEnv.browserVersion == 4) &&
(AjxEnv.browserVersion == 5.5));
AjxEnv.isIE5up = (AjxEnv.isIE && (AjxEnv.browserVersion >= 5.0));
AjxEnv.isIE5_5up =(AjxEnv.isIE && (AjxEnv.browserVersion >= 5.5));
AjxEnv.isIE6 = (AjxEnv.isIE && (AjxEnv.browserVersion == 6.0));
AjxEnv.isIE6up = (AjxEnv.isIE && (AjxEnv.browserVersion >= 6.0));
AjxEnv.isMozilla = ((AjxEnv.isNav && AjxEnv.mozVersion &&
AjxEnv.isGeckoBased && (AjxEnv.geckoDate != 0)));
AjxEnv.isMozilla1_4up = (AjxEnv.isMozilla && (AjxEnv.mozVersion >= 1.4));
AjxEnv.isFirefox = ((AjxEnv.isMozilla && AjxEnv.isFirefox));
AjxEnv.isFirefox1up = (AjxEnv.isFirefox && AjxEnv.browserVersion >= 1.0);
AjxEnv.isFirefox1_5up = (AjxEnv.isFirefox && AjxEnv.browserVersion >= 1.5);
}
if (AjxEnv.isIE){
AjxEnv.isNormalResolution = true;
AjxEnv.ieScaleFactor = screen.deviceXDPI / screen.logicalXDPI;
if (AjxEnv.ieScaleFactor > 1) {
AjxEnv.isNormalResolution = false;
}
}
AjxEnv.useTransparentPNGs = !AjxEnv.isIE && !AjxEnv.isLinux && !AjxEnv.isSafari;
AjxEnv._inited = !AjxEnv.isIE;
};
AjxEnv.reset();
AjxEnv.parseUA(navigator.userAgent);
if (AjxEnv.isSafari) {
if (!String.prototype._AjxOldReplace) {
String.prototype._AjxOldReplace = String.prototype.replace;
String.prototype.replace = function(re, val) {
if (typeof val != "function")
return this._AjxOldReplace(re, val);
else {
var str = this.slice(0), v, l, a;
while (a = re.exec(str)) {
v = val.apply(null, a);
l = a[0].length;
re.lastIndex -= l - v.length;
str = str.substr(0, a.index) + v + str.substr(a.index + l);
if (!re.global)
break;
}
return str;
}
};
}
}
Documentation generated by
JSDoc on Thu Apr 27 13:58:39 2006