function imgpreload(img) 
{
  var a=new Image(); a.src=img; return a; 
}

function pageinfo( name, buttonid, titletext, url, back, next, down, up) {
  this.name      = name;
  this.buttonid  = buttonid;
  this.titletext = titletext;
  this.url       = url;
  this.back      = back;
  this.next      = next;
  this.down      = down;
  this.up        = up;
}

function navbutton(name, curpage, alttext, url, btnsrc, hovsrc, parsrc, selsrc) {
  this.name    = name;
  this.curpage = curpage;
  this.alttext = alttext;
  this.url     = url;
  this.btnsrc  = btnsrc;
  this.hovsrc  = hovsrc;
  this.parsrc  = parsrc;
  this.selsrc  = selsrc;
  this.bflag   = 0;
  this.hflag   = 0;
  this.pflag   = 0;
  this.sflag   = 0;
}

function addpage( name, buttonid, titletext, url, back, next, down, up) {
  var pg = new pageinfo();
  var sq = '\'';
  apgs[name]           = pg;
  apgs[name].name      = pg.name      = name;
  apgs[name].buttonid  = pg.buttonid  = buttonid;
  apgs[name].titletext = pg.titletext = titletext;
  if (url == '') {
    apgs[name].url     = pg.url       = 'javascript:__doPostBack(' + sq + buttonid + sq + "," + sq + name + sq + ');'
  } else {
    apgs[name].url     = pg.url       = url;
  }
  apgs[name].back      = pg.back      = back;
  apgs[name].next      = pg.next      = next;
  apgs[name].down      = pg.down      = down;
  apgs[name].up        = pg.up        = up;
  apgi[pagecount]      = name;
  pagecount            = pagecount + 1;
}

function addglobalbutton(name)
{
  var bname = hname = pname = sname = outstring = '';
  var btnprefix = baseprefix + 'images/' + name.toLowerCase();
  var btn = new navbutton();
  var sq = '\'';
  abtns[name]         = btn;
  abtns[name].name    = btn.name    = name;
  abtns[name].alttext = btn.alttext = apgs[name].titletext;
  abtns[name].url     = btn.url     = apgs[name].url;
  if (name == gscreen) {
    bname = btnprefix + '_sel.gif';
    hname = btnprefix + '_sel.gif';
    pname = btnprefix + '_sel.gif';
    sname = btnprefix + '_sel.gif';
  } else {
    bname = btnprefix + '_btn.gif';
    hname = btnprefix + '_hov.gif';
    pname = btnprefix + '_par.gif';
    sname = btnprefix + '_sel.gif';
  }
  abtns[name].btnsrc  = btn.btnsrc  = bname;
  abtns[name].hovsrc  = btn.hovsrc  = hname;
  abtns[name].parsrc  = btn.parsrc  = pname;
  abtns[name].selsrc  = btn.selsrc  = sname;
}

function globalhover(name)
{
  stopTimer();
  setupmenu(name,true);
}

function globalout(name)
{
  menutimer(name);
}

function stopTimer() {
  clearTimeout(timerID);
}

function menutimer() {
  timerID = setTimeout('setupmenu(originalmenu,false)', 1000);
}

function setupmenu(setgname,hoverflag)
{
  var nextbtn;
  ishover = hoverflag;
  currentmenu = setgname;
  setbutton('HOME',setgname);
  nextbtn = apgs['HOME'].down;
  while (nextbtn != '') {
    setbutton(nextbtn,setgname);
    nextbtn = apgs[nextbtn].next;
  }
  loadmenu(setgname);
}

function setbutton(curgname,setgname)
{
  if (ishover == true) {
    if (curgname == setgname) {
      if (curgname == originalmenu) {
        if (curgname == gscreen) {
          loadbutton(curgname,curgname,'sel');
        } else {
          loadbutton(curgname,curgname,'par');
        }
      } else {
        loadbutton(curgname,curgname,'hov');
      }
    } else {
      if (curgname == originalmenu) {
        if (curgname == gscreen) {
          loadbutton(curgname,curgname,'sel');
        } else {
          loadbutton(curgname,curgname,'par');
        }
      } else {
        loadbutton(curgname,curgname,'btn');
      }
    }
  } else {
    if (curgname == setgname) {
      if (curgname == gscreen) {
        loadbutton(curgname,curgname,'sel');
      } else {
        loadbutton(curgname,curgname,'par');
      }
    } else {
      loadbutton(curgname,curgname,'btn');
    }
  }
}

function loadmenu(name)
{
  var n1; var n2; var n3; var n4; var tname;
  if (name == 'HOME') {
    n1 = 'HOME1';
    n2 = 'HOME2';
    n3 = 'HOME3';
    n4 = 'HOME4';
  } else {
    n1 = apgs[name].down;
    n2 = apgs[n1].next;
    n3 = apgs[n2].next;
    n4 = apgs[n3].next;
  }
  if (gscreen == n1) {
    loadbutton(n1,'HOME1','sel');
  } else {
    loadbutton(n1,'HOME1','btn');
  }
  if (gscreen == n2) {
    loadbutton(n2,'HOME2','sel');
  } else {
    loadbutton(n2,'HOME2','btn');
  }
  if (gscreen == n3) {
    loadbutton(n3,'HOME3','sel');
  } else {
    loadbutton(n3,'HOME3','btn');
  }
  if (gscreen == n4) {
    loadbutton(n4,'HOME4','sel');
  } else {
    loadbutton(n4,'HOME4','btn');
  }
  document['HOME1'].alt = abtns[n1].alttext;
  document['HOME2'].alt = abtns[n2].alttext;
  document['HOME3'].alt = abtns[n3].alttext;
  document['HOME4'].alt = abtns[n4].alttext;
}

function addchildrenforglobalbutton(name)
{
  if (name == 'HOME') {
    n1 = 'HOME1';
    n2 = 'HOME2';
    n3 = 'HOME3';
    n4 = 'HOME4';
  } else {
    n1 = apgs[name].down;
    n2 = apgs[n1].next;
    n3 = apgs[n2].next;
    n4 = apgs[n3].next;
  }
  addchildbutton(n1);
  addchildbutton(n2);
  addchildbutton(n3);
  addchildbutton(n4);
}

function addchildbutton(name)
{
  var bname = hname = sname = outstring = '';
  var btn = new navbutton();
  abtns[name]         = btn;
  abtns[name].name    = btn.name    = name;
  abtns[name].alttext = btn.alttext = apgs[name].titletext;
  abtns[name].url     = btn.url     = apgs[name].url;
  bname = baseprefix + 'images/' + name.toLowerCase() + '_btn.gif';
  hname = baseprefix + 'images/' + name.toLowerCase() + '_hov.gif';
  sname = baseprefix + 'images/' + name.toLowerCase() + '_sel.gif';
  abtns[name].btnsrc  = btn.btnsrc  = bname;
  abtns[name].hovsrc  = btn.hovsrc  = hname;
  abtns[name].selsrc  = btn.selsrc  = sname;
}

function childhover(cname,oname)
{
  var n1; var n2; var n3; var n4;
  stopTimer();
  if (currentmenu == 'HOME') {
    n1 = 'HOME1';
    n2 = 'HOME2';
    n3 = 'HOME3';
    n4 = 'HOME4';
  } else {
    n1 = apgs[currentmenu].down;
    n2 = apgs[n1].next;
    n3 = apgs[n2].next;
    n4 = apgs[n3].next;
  }
  switch (cname) {
  case 'HOME1' :
    if (gscreen == n1) {
	  loadbutton(n1,cname,'sel');
    } else {
	  loadbutton(n1,cname,'hov');
    }
    break;
  case 'HOME2' :
    if (gscreen == n2) {
	  loadbutton(n2,cname,'sel');
    } else {
	  loadbutton(n2,cname,'hov');
    }
    break;
  case 'HOME3' :
    if (gscreen == n3) {
	  loadbutton(n3,cname,'sel');
    } else {
	  loadbutton(n3,cname,'hov');
    }
    break;
  case 'HOME4' :
    if (gscreen == n4) {
	  loadbutton(n4,cname,'sel');
    } else {
	  loadbutton(n4,cname,'hov');
    }
    break;
  }
}

function childout(cname,oname)
{
  var n1; var n2; var n3; var n4;
  if (currentmenu == 'HOME') {
    n1 = 'HOME1';
    n2 = 'HOME2';
    n3 = 'HOME3';
    n4 = 'HOME4';
  } else {
    n1 = apgs[currentmenu].down;
    n2 = apgs[n1].next;
    n3 = apgs[n2].next;
    n4 = apgs[n3].next;
  }
  switch (cname) {
  case 'HOME1' :
    if (gscreen == n1) {
      loadbutton(n1,cname,'sel');
    } else {
	  loadbutton(n1,cname,'btn');
    }
    break;
  case 'HOME2' :
    if (gscreen == n2) {
      loadbutton(n2,cname,'sel');
    } else {
	  loadbutton(n2,cname,'btn');
    }
    break;
  case 'HOME3' :
    if (gscreen == n3) {
      loadbutton(n3,cname,'sel');
    } else {
	  loadbutton(n3,cname,'btn');
    }
    break;
  case 'HOME4' :
    if (gscreen == n4) {
	  loadbutton(n4,cname,'sel');
    } else {
      loadbutton(n4,cname,'btn');
    }
    break;
  }
  menutimer();
}

function addimage(name,alttext,url,w,h,btnsrc,hovsrc,selsrc)
{
  var btn = new navbutton();
  abtns[name]         = btn;
  abtns[name].name    = btn.name    = name;
  abtns[name].alttext = btn.alttext = alttext;
  abtns[name].url     = btn.url     = url;
  btnsrc = baseprefix + btnsrc;
  hovsrc = baseprefix + hovsrc;
  selsrc = baseprefix + selsrc;
  abtns[name].btnsrc  = btn.btnsrc  = btnsrc;
  abtns[name].hovsrc  = btn.hovsrc  = hovsrc;
  abtns[name].selsrc  = btn.selsrc  = selsrc;
}

function addbasketimg(name,w,h,btnsrc,hovsrc,selsrc)
{
  var btn = new navbutton();
  abtns[name]         = btn;
  abtns[name].name    = btn.name    = name;
  abtns[name].alttext = btn.alttext = 'Add to Basket';
  abtns[name].url     = btn.url     = '';
  abtns[name].btnsrc  = btn.btnsrc  = btnsrc;
  abtns[name].hovsrc  = btn.hovsrc  = hovsrc;
  abtns[name].selsrc  = btn.selsrc  = selsrc;
}

function imagehover(name)
{
  loadbutton(name,name,'hov');
}

function imageout(name)
{
  loadbutton(name,name,'btn');
}

function loadbutton(name,dest,type) {
  switch (type) {
  case 'btn' :
    if (abtns[name].bflag == 0) {
      abtns[name].btnsrc = imgpreload(abtns[name].btnsrc);
      abtns[name].bflag = 1;
    }
    document[dest].src = abtns[name].btnsrc.src;
    break;
  case 'hov' :
    if (abtns[name].hflag == 0) {
      abtns[name].hovsrc = imgpreload(abtns[name].hovsrc);
      abtns[name].hflag = 1;
    }
    document[dest].src = abtns[name].hovsrc.src;
    break;
  case 'par' :
    if (abtns[name].pflag == 0) {
      abtns[name].parsrc = imgpreload(abtns[name].parsrc);
      abtns[name].pflag = 1;
    }
    document[dest].src = abtns[name].parsrc.src;
    break;
  case 'sel' :
    if (abtns[name].sflag == 0) {
      abtns[name].selsrc = imgpreload(abtns[name].selsrc);
      abtns[name].sflag = 1;
    }
    document[dest].src = abtns[name].selsrc.src;
    break;
  }
}

function validateurl(cname)
{
  var n1; var n2; var n3; var n4; var url = '';
  if (currentmenu == 'HOME') {
    return false;
  } else {
    n1 = apgs[currentmenu].down;
    n2 = apgs[n1].next;
    n3 = apgs[n2].next;
    n4 = apgs[n3].next;
    if ((cname == 'HOME1' && gscreen == n1) ||
        (cname == 'HOME2' && gscreen == n2) ||
        (cname == 'HOME3' && gscreen == n3) ||
        (cname == 'HOME4' && gscreen == n4)) {
      return false;
    } else {
      return true;
    }
  }
}

function popwindow(url,title)
{
  window.open(url,title,'width=213,height=160,menubar:no,hotkeys:no,toolbar:no,status:no');
}

