var timerId;
var imagesOn = new Array;
var imagesOff = new Array;
var imagesSwap = new Array;
var imageKeys = new Array;
var imageSwapKeys = new Array;
var imagesLoaded = new Array;
var imagesDefault = new Array;
var lastMenu = new Array();
var menuTimer = new Array();
var lastImageKey = new Array();
var lastImageId = new Array();
var lastImageLayer = new Array();
var subnavMenuPosX = new Array(0, 148, 148, 148, 148, 148);
var subnavMenuPosY = new Array(0, 115, 145, 175, 205, 235);
var onSuffix = "on.gif";
var offSuffix = "off.gif";
var C = 0;
var C2 = 0;

function loadImagesFromArray(a, key, dir, on, ons, offs) {
   C++;
   var key2 = C;
   imageKeys[key] = C;
   imagesOn[key2] = new Array;
   imagesOff[key2] = new Array;
   if (!ons) {
      ons = onSuffix;
   }
   if (!offs) {
      offs = offSuffix;
   }
   for (i=0;i < a.length;i++) {
      imagesOn[key2][i+1] = new Image();
      imagesOn[key2][i+1].src = dir+"/"+a[i]+ons;
      imagesOff[key2][i+1] = new Image();
      imagesOff[key2][i+1].src = dir+"/"+a[i]+offs;
   }
   imagesLoaded[key2] = 1;
   imagesDefault[key2] = on;
}

function loadSwapImagesFromArray(a, dir, ext) {
   for (i=0;i < a.length;i++) {
      C2++;
      imageSwapKeys[a[i]] = C2;
      imagesSwap[C2] = new Image();
      imagesSwap[C2].src = dir+"/"+a[i]+ext;
   }
}

function loadImages(key, dir, count, on, ons, offs) {
   C++;
   var key2 = C;
   imageKeys[key] = C;
   imagesOn[key2] = new Array;
   imagesOff[key2] = new Array;
   if (!ons) {
      ons = onSuffix;
   }
   if (!offs) {
      offs = offSuffix;
   }
   for (i=1;i <= count;i++) {
      imagesOn[key2][i] = new Image();
      imagesOn[key2][i].src = dir+"/"+key+i+ons;
      imagesOff[key2][i] = new Image();
      imagesOff[key2][i].src = dir+"/"+key+i+offs;
   }
   imagesLoaded[key2] = 1;
   imagesDefault[key2] = on;
}

function turnOn(key, id, name) {
   var key2 = imageKeys[key];
   var d = document[key+id];
   if (name && document.layers) {
      d = document.layers[name].document[key+id];
   }
   if (imagesLoaded[key2] == 1) {
      d.src = eval("imagesOn["+key2+"]["+id+"].src");
   }
}

function turnOff(key, id, name) {
   var key2 = imageKeys[key];
   var d = document[key+id];
   if (name && document.layers) {
      d = document.layers[name].document[key+id];
   }
   if (imagesLoaded[key2] == 1 && imagesDefault[key2] != (key+id)) {
      d.src = eval("imagesOff["+key2+"]["+id+"].src");
   }
}

function display(id, str) {
   if (document.layers) {
      with (document[id].document) {
         open();
         write(str);
         close();
      }
   }
   else {
      document.all[id].innerHTML = str;
   }
}

function newWindow(url, name, w, h, toolbar, scroll, resize) {
   if (!w) {
      w = 200;
   }
   if (!h) {
      h = 200;
   }
   if (!toolbar) {
      toolbar = 'no';
   }
   if (!scroll) {
      scroll = 'yes';
   }
   if (!resize) {
      resize = 'yes';
   }
   var format = 'toolbar='+toolbar+',scrollbars='+scroll+',resizable='+resize+
                ',width='+w+',height='+h;
   newWin = open(url, name, format);
   if (newWin) {
      newWin.focus();
   }
}

function moveLayer(layerName, newx, newy) { 
   if (document.getElementById && !document.all) {
      document.getElementById(layerName).style.left = newx;
      document.getElementById(layerName).style.top = newy;
   }
   else if (document.layers) {
      document.layers[layerName].left = newx;
      document.layers[layerName].top = newy;
   }
   else if (document.all) {
      document.all[layerName].style.left = newx;
      document.all[layerName].style.top = newy;
   }
}

function moveMenus(layerPrefix, start, max, dx, dy) {
   for (var i=start+1;i <= max;i++) {
      var name=layerPrefix+i;
      var newx = eval(layerPrefix+'MenuPosX['+i+']')+dx;
      var newy = eval(layerPrefix+'MenuPosY['+i+']')+dy;
      moveLayer(name, newx, newy);
   }
}

function getLayerLeft(layerName) {
   if (document.getElementById && !document.all) {
      return(document.getElementById(layerName).style.left);
   }
   else if (document.layers) {
      return(document.layers[layerName].left);
   }
   else if (document.all) {
      return(document.all[layerName].style.left);
   }
}

function getLayerTop(layerName) {
   if (document.getElementById && !document.all) {
      return(document.getElementById(layerName).style.top);
   }
   else if (document.layers) {
      return(window.document.layers[layerName].top);
   }
   else if (document.all) {
      return(window.document.all[layerName].style.top);
   }
}

function centerLayer(layerName, ow, oh, center) {
  var w, h, newx, newy;
   if (document.getElementById && !document.all) {
      w = document.body.offsetWidth -20;
      h = document.body.offsetHeight -20;
   }
   else if (document.layers) {
      w = window.innerWidth -16;
      h = window.innerHeight -16;
   }
   else if (document.all) {
      w = document.body.offsetWidth -20;
      h = document.body.offsetHeight -20;
   }
   newx = getLayerLeft(layerName);
   if (center == "horiz" || center == "both") {
      newx = (w - ow)/2;
   }
   newy = getLayerTop(layerName);
   if (center == "vert" || center == "both") {
      newy = (h - oh)/2;
   }
   moveLayer(layerName, newx, newy);
}

function centerLayerRelative(layerName, ow, oh, x, y, center) {
  var w, h, newx, newy;
   if (document.getElementById && !document.all) {
      w = document.body.offsetWidth;
      h = document.body.offsetHeight;
   }
   else if (document.layers) {
      w = window.innerWidth -16;
      h = window.innerHeight -16;
   }
   else if (document.all) {
      w = document.body.offsetWidth -20;
      h = document.body.offsetHeight -20;
   }
   if (w < ow) {
      w = ow;
   }
   if (h < oh) {
      h = oh;
   }
   newx = getLayerLeft(layerName);
   if (center == "horiz" || center == "both") {
      newx = x+(w - ow)/2-0.5;
   }
   newy = getLayerTop(layerName);
   if (center == "vert" || center == "both") {
      newy = y+(h - oh)/2-0.5;
   }
   moveLayer(layerName, newx, newy);
}
function showLayer(layerName) {
      if (document.getElementById && !document.all) {
         document.getElementById(layerName).style.visibility = "visible";
      }
      else if (document.layers) {
         document.layers[layerName].visibility = "visible";
      }
      else if (document.all) {
         document.all[layerName].style.visibility = "visible";
      }
}

function hideLayer(layerName) {
      if (document.getElementById && !document.all) {
         document.getElementById(layerName).style.visibility = "hidden";
      }
      else if (document.layers) {
         document.layers[layerName].visibility = "hidden";
      }
      else if (document.all) {
         document.all[layerName].style.visibility = "hidden";
      }
}

function menuOn(layerName, level, imageKey, imageId, imageLayer) {
   if (!level) {
      level = 0;
   }
   if (lastMenu[level] && lastMenu[level] == layerName) {
      return;
   }
   menuOff(lastMenu[level], level);
   clearTimer(level);
   lastImageKey[level] = null;
   lastImageId[level] = null;
   lastImageLayer[level] = null;
   if (imageKey) {
      turnOn(imageKey, imageId, imageLayer);
      lastImageKey[level] = imageKey;
      lastImageId[level] = imageId;
      lastImageLayer[level] = imageLayer;
   }
   showLayer(layerName);
   lastMenu[level] = layerName;
}

function menuOff(layerName, level) {
   if (!level) {
      level = 0;
   }
   if (!layerName) {
      layerName = lastMenu[level];
   }
   if (lastImageKey[level]) {
      turnOff(lastImageKey[level], lastImageId[level], lastImageLayer[level]);
   }
   if (!layerName || layerName == '') {
      return;
   }
   hideLayer(layerName);
   lastMenu[level] = '';
}

function dummy() {
}

function setTimer(amount, layerName, level) {
   if (!amount) {
      amount = 1000;
   }
   if (!level) {
      level = 0;
   }
   clearTimer(level);
   var fn = "menuOff('"+layerName+"', "+level+")";
   timerId = setTimeout(fn, amount);
   menuTimer[level] = timerId;
}

function clearTimer(level, menu) {
   if (lastMenu[level] && lastMenu[level] != menu) {
      return;
   }
   var id = timerId;
   if (level) {
      id = menuTimer[level];
   }
   clearTimeout(id);
}

function swap(sname1, sname2, name) {
   var key = imageSwapKeys[sname2];
   var d = document[sname1];
   if (name && document.layers) {
      d = document.layers[name].document[sname1];
   }
   d.src = eval("imagesSwap["+key+"].src");
}
