var nVer = navigator.appVersion;
var nAgt = navigator.userAgent;
var browserName  = '';
var browserNameDisplay  = '';
var fullVersion  = 0;
var fullVersionStr = '';
var temp = '';   
var majorVersion = 0;
var verOffset = 0;
var verOffset2 = 0;
var nameOffset = 0;

// In Internet Explorer, the true version is after "MSIE" in userAgent
if ((verOffset=nAgt.indexOf("MSIE"))!=-1) {
 browserName  = "Microsoft Internet Explorer"; //ASOL logic uses the old name
 browserNameDisplay  = "Windows Internet Explorer"; 
 temp = nAgt.substring(verOffset+5);
 verOffset2 = temp.indexOf(";"); 
 fullVersionStr = temp.substring(0, verOffset2);
 fullVersion  = parseFloat(fullVersionStr);
 majorVersion = parseInt(''+fullVersion);
}

// In Opera, the true version is after "Opera"
else if ((verOffset=nAgt.indexOf("Opera"))!=-1) {
 browserName  = "Opera";
 browserNameDisplay = browserName;
 fullVersionStr = nAgt.substring(verOffset+6);
 fullVersion  = parseFloat(fullVersionStr);
 majorVersion = parseInt(''+fullVersion);
}

// In Firefox, the true version is after "Firefox"
else if ((verOffset=nAgt.indexOf("Firefox"))!=-1) {
 browserName  = "Firefox";
 browserNameDisplay = browserName;
 fullVersionStr  = nAgt.substring(verOffset+8);
 fullVersion  = parseFloat(fullVersionStr);
 majorVersion = parseInt(''+fullVersion);
}

// In Safari, the true version is after "Version"
else if ((nameOffset=nAgt.indexOf("Safari"))!=-1) {
 browserName  = "Safari";
 browserNameDisplay  = browserName;
 verOffset=nAgt.indexOf("Version");
 fullVersionStr  = nAgt.substring(verOffset+8, nameOffset);
 fullVersion  = parseFloat(fullVersionStr);
 majorVersion = parseInt(''+fullVersion);
}

// In most other browsers, "name/version" is at the end of userAgent
else if ((nameOffset=nAgt.lastIndexOf(' ')+1) < (verOffset=nAgt.lastIndexOf('/'))) {
 browserName  = nAgt.substring(nameOffset,verOffset);
 browserNameDisplay = browserName ;
 fullVersionStr = nAgt.substring(verOffset+1);
 fullVersion  = parseFloat(fullVersionStr);
 if (!isNaN(fullVersion)) majorVersion = parseInt(''+fullVersion);
 else {fullVersion  = 0; majorVersion = 0;}
}

// Finally, if no name and/or no version detected from userAgent...
if (browserName.toLowerCase() == browserName.toUpperCase() || fullVersion==0 || majorVersion == 0) {
 browserName  = navigator.appName;
 browserNameDisplay = browserName ;
 fullVersionStr = nVer;
 fullVersion  = parseFloat(nVer);
 majorVersion = parseInt(nVer);
}