// BROWSER SNIFFER (Sniff out the good and bad browsers)

function Is() {
  var agent = navigator.userAgent.toLowerCase();
  this.major = parseInt(navigator.appVersion);
  this.minor = parseFloat(navigator.appVersion);
  this.dom = document.getElementById ? 1 : 0;
  this.ns  = ((agent.indexOf('mozilla')!=-1) && ((agent.indexOf('spoofer')==-1) && (agent.indexOf('compatible') == -1)));
  this.ns2 = (this.ns && (this.major == 2));
  this.ns3 = (this.ns && (this.major == 3));
  this.ns4b = (this.ns && (this.minor < 4.04));
  this.ns4 = (this.ns && ((this.major >= 4) && (this.major < 5)));
  this.ns5 = (this.ns && ((this.major >= 5) && (this.major < 6)));
  this.ns6 = (this.ns && (this.major >= 6));
  this.ie   = (agent.indexOf("msie") != -1);
  this.ie3  = (this.ie && (this.major == 2));
  this.ie4  = (this.ie && (this.major >= 4));
  this.op3 = (agent.indexOf("opera") != -1);
  this.win   = (agent.indexOf("win")!=-1);
  this.mac   = (agent.indexOf("mac")!=-1);
  this.unix  = (agent.indexOf("x11")!=-1);
}

var is = new Is();

// DOCUMENT OBJECT MODEL SWITCH (Used for building cross_browser functions)

switch (true) {
  case is.ns4:
		doc = "document['"; sty = "']"; htm = "'].document"; obj = "']";
  case is.ie4:
		doc = "document.all['"; sty = "'].style"; htm = "']"; obj = "']";
  case is.dom:
		doc = "document.getElementById('"; sty = "').style"; htm = "').document"; obj = "')";
  default:
		doc = "document['"; sty = "']"; htm = "'].document"; obj = "']";
}