// block in included file. Use known javascript version numbers
// supplied by various browsers...
if (document.getElementByID) {
// NS 6+, IE 5+, Mozilla, etc.
jsVersion = 1.3;
} else if (document.all || document.layers) {
// IE 4, NS 4
jsVersion = 1.2;
} else if (navigator.appVersion.indexOf("3.") == 0) {
// NS 3
jsVersion = 1.1;
} else {
jsVersion = 1.0;
}
// check the browser...we're looking for ie/win
var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.indexOf("Windows") != -1) ? true : false;
// write vbscript detection if we're not on mac.
if (isIE && isWin && jsVersion > 1.0) {
// don't write vbscript tags on anything but ie win
document.write(' \n');
document.write('on error resume next \n');
for (var i = 2; i <= maxVersion; i++) {
document.write('flash' + i + 'Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.' + i + '"))) \n');
}
document.write(' \n');
// break up end tag so it doesn't end our script
}
// next comes the standard javascript detection that uses the
// navigator.plugins array. We pack the detector into a function so
// it loads before we run it
function detectFlash() {
var flashVersion = 0;
if (navigator.mimeTypes &&
navigator.mimeTypes['application/x-shockwave-flash']) {
var plugin =
navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin;
if (plugin && plugin.description) {
var desc = plugin.description;
flashVersion = parseInt(desc.substring(desc.indexOf('.')-1));
}
}
if (!flashVersion && navigator.plugins) { // does navigator.plugins exist?
if (navigator.plugins["Shockwave Flash 2.0"] || // yes>> then is Flash 2
navigator.plugins["Shockwave Flash"]) { // or flash 3+ installed?
// set convenient references to flash 2 and the plugin description
var isVersion2 =
navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
var desc =
navigator.plugins["Shockwave Flash" + isVersion2].description;
// a flash plugin-description looks like this: Shockwave Flash 4.0 r5
// so we can get the major version by grabbing the character
// before the period
// note that we don't bother with minor version detection. do that
// in your movie with $version
flashVersion = parseInt(desc.charAt(desc.indexOf(".")-1));
}
}
if (flashVersion) {
if (flashVersion > maxVersion) {
for (var i = maxVersion; i <= flashVersion; i++) {
eval("flash" + i + "Installed = false");
}
maxVersion = flashVersion;
}
// we know the version, now set appropriate version flags
for (var i = 2; i <= maxVersion; i++) {
eval("flash" + i + "Installed = " +
(flashVersion == i ? 'true' : 'false'));
}
}
// loop through all versions we're checking, and set
// actualVersion to highest detected version
for (var i = 2; i <= maxVersion; i++) {
if (eval("flash" + i + "Installed") == true) {
actualVersion = i;
}
}
// if we're on webtv, the version supported is 2
// (pre-summer2000, or 3, post-summer2000)
// note that we don't bother sniffing varieties of webtv. you could
// if you were sadistic...
if (navigator.userAgent.indexOf("WebTV") != -1) {
actualVersion = 2;
}
// uncomment next line to display flash version during testing
// alert("version detected: " + actualVersion);
// we're finished getting the version. time to take the appropriate action
if (actualVersion >= requiredVersion) {
// user has a new enough version
hasRightVersion = true;
// flag: it's okay to write out the object/embed tags later
if (useRedirect) {
// if the redirection option is on, load the flash page
if (jsVersion > 1.0) {
// need javascript1.1 to do location.replace
// use replace() so we don't break the back button
window.location.replace(flashPage);
} else {
window.location = flashPage; // otherwise, use .location
}
}
} else {
// user doesn't have a new enough version.
if (useRedirect) {
// if the redirection option is on, load the
// appropriate alternate page
if (jsVersion > 1.0) {
// need javascript1.1 to do location.replace
window.location.replace((actualVersion >= 2) ?
upgradePage : noFlashPage);
} else {
window.location =
(actualVersion >= 2) ? upgradePage : noFlashPage;
}
}
}
}
detectFlash(); // call our detector now that it's safely loaded.
// -->
Welcome to Physical Sciences Inc.
Physical Sciences Inc. focuses on providing contract research and development services in a variety of technical areas to both government and commercial customers. Our interests range from basic research to technology development, with an emphasis on applied research.
Physical Sciences Inc. is located in Andover, Massachusetts, 30 minutes north of Boston.