<!--
/*
  Browser Compatibility Layer
  ---------------------------
  made by SingularIT.com
*/

// constructs a browser information object
function checkBrowser() {

  this.ver=navigator.appVersion;
  this.dom=document.getElementById?1:0;
  this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0;
  this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom)?1:0;
  this.ie7=(this.ver.indexOf("MSIE 7")>-1 && this.dom)?1:0;
  this.ie8=(this.ver.indexOf("MSIE 8")>-1 && this.dom)?1:0;
  
  this.ie4=(document.all && !this.dom)?1:0;
  this.ns6=(this.dom && parseInt(this.ver) >= 5)?1:0;
  this.ns4=(document.layers && !this.dom)?1:0;
  this.ie4mac = (this.ver>=4) && (this.ver<5) && (navigator.appVersion.indexOf("Mac")>-1) && (!ns4) && (!ns6);
  this.ie5mac = (this.ver>=5) && (navigator.appVersion.indexOf("Mac")>-1) && (!n4) && (!ns6);

  // is the users browser compatible with the webapplication?
  this.compatible=(this.ie5 || this.ie4 || this.ns4 || this.ie5mac || this.ie6 || this.ie7 || this.ie8);
  this.ie = (this.ie4 || this.ie5 || this.ie5mac || this.ie6 || this.ie7 || this.ie8)
  //this.ie = (this.ie5 || this.ie5mac || this.ie6)
  this.ns = (this.ns4);
  this.mac = (navigator.appVersion.indexOf("Macintosh")>0)
  this.win = (navigator.appVersion.indexOf("Win")>0)

  if(this.ns4){
    x1=parseInt(navigator.appVersion.substr(2,1));
    x2=parseInt(navigator.appVersion.substr(3,1));
    x1=(x1*10);
    if(x2)x1=x1+x2;
    this.compatible=(x1)>3;
  }
  if (!this.compatible){
    location.href="NotSupported.asp";
  }
  return (this)
}

var browser = new checkBrowser();

// check scrolling in Netscape
function testScroll() {
  // Initialize scrollbar cache if necessary
  if (window._pageXOffset==null) {
    window._pageXOffset = window.pageXOffset
    window._pageYOffset = window.pageYOffset
  }
  // Expose Internet Explorer compatible object model
  document.body.unwatch("scrollTop")
  document.body.unwatch("scrollLeft")
  document.body.scrollTop = window.pageYOffset
  document.body.scrollLeft = window.pageXOffset
  window.document.body.scrollHeight = document.height
  window.document.body.scrollWidth = document.width
  document.body.watch("scrollTop",CheckScrollTop)
  document.body.watch("scrollLeft",CheckScrollLeft)

  document.body.clientWidth = window.innerWidth-20;
  document.body.clientHeight = window.innerHeight-20;

  // If cache!=current values, call the onscroll event
  if (((window.pageXOffset!=window._pageXOffset) || (window.pageYOffset!=window._pageYOffset)) && (window.onscroll))
    window.onscroll()
  // Cache new values
  window._pageXOffset = window.pageXOffset
  window._pageYOffset = window.pageYOffset
}

// Watch body.scrollTop in NS and respond in values change
function CheckScrollTop(prop,temp,newValue) {
  window.pageYOffset = newValue;
  return newValue
}

function CheckScrollLeft(prop,temp,newValue) {
  window.pageXOffset= newValue;
  return newValue
}

// Move and Resize CCS layers.
function layerMoveBy( idTarget, x, y) {
  if (browser.ie) {
    idTarget.style.pixelLeft = idTarget.offsetLeft+x;
    idTarget.style.pixelTop = idTarget.offsetTop+y;
    //idTarget.style.pixelLeft = idTarget.style.pixelLeft+x;
    //idTarget.style.pixelTop = idTarget.style.pixelTop+y;
  }
  else {
    idTarget.left = idTarget.left+x;
    idTarget.top = idTarget.top+y;
  }
}

function layerMoveTo( idTarget, x, y) {
  if (browser.ie) {
    idTarget.style.pixelLeft = x;
    idTarget.style.pixelTop = y;
  }
  else {
    idTarget.left = x;
    idTarget.top = y;
  }
}

function layerResizeBy( idTarget, x, y) {
  if (browser.ie) {
    idTarget.style.pixelWidth = idTarget.offsetWidth+x;
    idTarget.style.pixelHeight = idTarget.offsetHeight+y;
  }
  else {
    idTarget.resizeBy( x, y)
  }
}

function layerResizeTo( idTarget, x, y) {
  if (browser.ie) {
    idTarget.style.pixelWidth = x;
    idTarget.style.pixelHeight = y;
  }
  else {
    idTarget.resizeTo( x, y);
  }
}

// get layer properties
function layerGetX( idTarget ) {
  return (browser.ie?idTarget.offsetLeft:idTarget.left);
}

function layerGetY( idTarget ) {
  return (browser.ie?idTarget.offsetTop:idTarget.top);
}

function layerGetWidth( idTarget ) {
  return (browser.ie?idTarget.offsetWidth:idTarget.clip.width);
}

function layerGetHeight( idTarget ) {
  return (browser.ie?idTarget.offsetHeight:idTarget.clip.height);
}

function layerGetRight( idTarget ) {
  return (layerGetWidth( idTarget ) + layerGetX( idTarget ));
}

function layerGetBottom( idTarget ) {
  return (layerGetHeight( idTarget ) + layerGetY( idTarget ));
}

function layerGetContentWidth( idTarget ) {
  if (browser.ie) {
    return (idTarget.scrollWidth);
  } else {
    return (idTarget.document.width);
  }
}

function layerGetContentHeight( idTarget ) {
  if (browser.ie) {
    return (idTarget.scrollHeight);
  }
  else {
        return (idTarget.document.height);
  }
}

function layerGetVisible( idTarget ) {
  if (browser.ie) {
    return (idTarget.style.visibility != "hidden");
  }
  else {
    return (idTarget.visibility != "hide");
  }
}

function layerGetZ( idTarget ) {
  if (browser.ie) {
    return (idTarget.style.zIndex);
  }
  else {
    return (idTarget.zIndex);  //might be incorrect
  }
}

function layerSetZ( idTarget, z ) {
  if (browser.ie) {
    idTarget.style.zIndex=z;
  }
  else {
    idTarget.zIndex=z;  //might be incorrect
  }
}

function layerShow( idTarget ) {
  if (browser.ie) {
    idTarget.style.visibility = "visible";
    idTarget.style.pixelHeight = layerGetContentHeight( idTarget );
  }
  else {
    idTarget.visibility = "show";
    idTarget.clip.height = layerGetContentHeight( idTarget );
  }
}

function layerHide( idTarget ) {
  if (browser.ie) {
    idTarget.style.visibility = "hidden";
    idTarget.style.pixelHeight = 0;
  }
  else {
    idTarget.visibility = "hide";
    idTarget.clip.height = 0;
  }
}

function layerInside( idTarget, x, y) {
  inside = false;
  if ((x>=layerGetX(idTarget)) && (x<=(layerGetX(idTarget)+layerGetWidth(idTarget))))
    if ((y>=layerGetY(idTarget)) && (y<=(layerGetY(idTarget)+layerGetContentHeight(idTarget))))
      inside = true;
  return (inside);
}

// fix resize bug in Netscape
function initResizeBug() {
  document.orPageWidth = innerWidth;
  document.orPageHeight = innerHeight;
  onresize = nsResizeBug;
}

function nsResizeBug() {
  if (innerWidth != document.orPageWidth || innerHeight != document.orPageHeight) location.reload();
}

// initiate the browser compatibility layer
// returns false if browser not compatible
function initBrowserComp() {
  if (browser.compatible) { // browser compatible ?
    if (browser.ns4) { // netscape 4? build a fake DOM
      document.all = document;
      document.body = new Object;
      document.body.clientWidth = window.innerWidth-20;
      document.body.clientHeight = window.innerHeight-20
      document.body.scrollTop = window.pageXOffset;
      document.body.scrollLeft = window.pageYOffset
      document.body.watch("scrollTop",CheckScrollTop);
      document.body.watch("scrollLeft",CheckScrollLeft);
      document.body.offsetParent = null;
      document.body.offsetLeft = document.body.offsetTop = 0;
      document.body.all = new Object;
      document.parentWindow = window;

      initResizeBug(); // init resize bug in NS

      testScroll();
      setInterval("testScroll()",50);

      document.captureEvents( Event.MOUSEMOVE || Event.MOUSEDOWN );
    }

    return (true);
  }
  else { // browser is not compatible
    return (false);
  }
}

// IMAGE PRELOAD AND SWAP

function preloadImages() {
  if (document.images) {
    var imgStr = preloadImages.arguments;
    if (!document.preloadArray) document.preloadArray = new Array();
    var n = document.preloadArray.length;
    for (var i=0; i<preloadImages.arguments.length; i++) {
      document.preloadArray[n] = new Image;
      document.preloadArray[n].src = imgStr[i];
      n++;
    }
  }
}

function swapImage(imgSrc,imgID,layerID,layerMother,layerGrandmother) {
  if(browser.ns) {
    var layerStr = (swapImage.arguments.length > 4) ? "document." + layerGrandmother + "." : "";
    layerStr += (swapImage.arguments.length > 3) ? "document." + layerMother + "." : "";
    layerStr += (swapImage.arguments.length > 2) ? "document." + layerID + "." : "";
    eval(layerStr + "document." + imgID + ".src = '" + imgSrc + "'");
  } else {
    var layerStr = (swapImage.arguments.length > 2) ? "document.all." + layerID + "." : "";
    eval(layerStr + "document." + imgID + ".src = '" + imgSrc + "'");
  }
}

function changeBgImg(layername,src) {
   if (browser.ie) eval("document.all(layername).style.background='url("+src+")';")
   else document.layers[layername].background.src=src;
}

// -->
