/**********************
created by Mark Lewis
Mass Transmit, LLC
http://masstransmit.com
info@masstransmit.com
**********************/

/**********************
FUNCTIONS
	osdetect()
		- returns OS of client
		- returns "Windows" | "Macintosh" | "other"

	imageState(rolloff, rollon, clickon)
		- 3 state image object containing URLs for onMouseOver, onMouseOut, and onClick events
		- DO NOT NAME <IMG> the same as the corresponding 3 state image object
	turnOn(imgname, imgobj)
		- set imgname to imgobj.rollon
	turnOff(imgname, imgobj)
		- set imgname to imgobj.rolloff
	clickOn(imgname, imgobj)
		- set imgname to imgobj.clickon

	getEnabledPlugin(mtype)
		- returns the enabled plugin for the MIME-type mtype (NS only)
	pluginIndex(plugintocheck)
		- returns index of plugins array which corresponds with plugin named plugintocheck (NS only)
	installedPlugin(plugintocheck)
		- return a 1 if plugin is installed.  0 otherwise.
**********************/

window.onerror = null;

var browser = navigator.appName;				// browser name
var version = parseFloat(navigator.appVersion);	// browser version
var imgsupport = 0;								// browser image support

if (((browser == "Netscape") && (version >= 3)) || ((browser == "Microsoft Internet Explorer") && (version > 3))) {
  imgsupport = 1;
}

if (document.images) {
  imgsupport = 1;
}

function osdetect() {					// returns client OS (Windows | Macintosh | other)
  var ua = navigator.userAgent;			// HTTP_USER_AGENT
  var os = "other";
  var i, charchk, strwin;
  
  i = ua.length - 3;					// examine HTTP_USER_AGENT string beginning at end
  while (i >= 0) {
    charchk = ua.substring(i, i+1);
    if (charchk == "W") {				// check to see if 'W' begins 'Win'
      strwin = ua.substring(i, i+3);
      if (strwin == "Win") {
        os = "Windows";
        break;
      }
    }
    if (charchk == "M") {				// check to see if 'M' begins 'Mac'
      strwin = ua.substring(i, i+3);
      if (strwin == "Mac") {
        os = "Macintosh";
        break;
      }
    }
    i--;								// move back one character
  }
  
  return os;
}



/* image rollovers */
function imageState(rolloff, rollon, clickon) { // 3 state image object
  if (imgsupport) {
    // rolloff = url of image in OFF state
    // rollon = url of image in ON state
    // clickon = url of image in CLICKED state
    // be sure name of <IMG> is NOT the same as the corresponding 3 state image object
    this.rolloff = new Image();
    this.rolloff.src = rolloff;
    this.rollon = new Image();
    this.rollon.src = rollon;
    this.clickon = new Image();
    this.clickon.src = clickon;
  }
}

function turnOn(imgname, imgobj) {
  if (imgsupport) {
    eval("document." + imgname + ".src = " + imgobj + ".rollon.src");
  }
}

function turnOff(imgname, imgobj) {
  if (imgsupport) {
    eval("document." + imgname + ".src = " + imgobj + ".rolloff.src");
  }
}

function clickOn(imgname, imgobj) {
  if (imgsupport) {
    eval("document." + imgname + ".src = " + imgobj + ".clickon.src");
  }
}



/* plugins */
function getEnabledPlugin(mtype) {
  var mimeobj;
  var pname = "-1";
  if (browser == "Netscape") {
    mimeobj = checkMimeType(mtype);
    if (mimeobj != -1) {
      if (navigator.mimeTypes[mimeobj].enabledPlugin != null) {
        pname = navigator.mimeTypes[mimeobj].enabledPlugin.name;
      }
    }
  }
  return pname;
}


function checkMimeType(mtype) {
  var i;
  var index = 0;
  var plugindex = -1;
  var indexarray = new Array;

  indexarray[0] = -1;
  if (browser == "Netscape") {
    for (i=0; i < navigator.mimeTypes.length; i++) {
      if (navigator.mimeTypes[i].type == mtype) {
        indexarray[index] = i;
        index++;
      }
    }

    if (indexarray[0] == -1) {
      plugindex = -1;
    }
    else {
      for (i=0; i < indexarray.length; i++) {
        if (navigator.mimeTypes[indexarray[i]].enabledPlugin != null) {
          plugindex = indexarray[i];
          break;
        }
      }
    }
  }
  return plugindex;
}


function pluginIndex(plugintocheck) {
  var i, pluginname;
  var returnindex = "-1";
  
  for (i=0; i < navigator.plugins.length; i++) { // scan plugins array for named plugin
    pluginname = navigator.plugins[i].name;
    if (plugintocheck == pluginname) {
      returnindex = i;
      break;
    }
  }
  
  return returnindex;  // return index number.  -1 if not present.
}


function checkInstall(pname) { // see if pname is installed. return index of plugins array
  if (browser == "Netscape") {
    var i, pluginname, basename;
    var returnval = -1;

    for (i=0; i < navigator.plugins.length; i++) {
      pluginname = navigator.plugins[i].name;
      basename = pluginname.indexOf(pname);
      if (basename != -1) {
        returnval = i;
        break;
      }
    }
    return returnval;
  }
}
