function popup(url, w, h)
{
  var x = Math.round(0.8 * screen.width) - w;
  var y = Math.round(0.2 * screen.height);
  window.open(url, '', 'left=' + x + ',top=' + y + ',width=' + w + ',height=' +
    h + ',scrollbars=no');
}

function overname(src)
{
  var dot = src.lastIndexOf('.');
  return src.substr(0, dot) + '_over' + src.substr(dot);
}

function rollover(name)
{
  var img = document.images[name];
  var src = img.src;
  img.oldsrc = src;
  img.src = overname(src);
}

function rollout(name)
{
  var img = document.images[name];
  img.src = img.oldsrc;
}

function preload(src)
{
  var img = new Image();
  img.src = src;
}

function preloadover(img)
{
  preload(overname(img.src));
}

/*
 * This is a little bit tricky.
 * The image map is cut in ranges such that on initial rollover bnavMap[range]
 * yields the index of the navigation item in that range.
 * Then bnavRanges[item_index] contains the min and max ranges for which
 * bnavMap is overridden, because the nav item has popped out.
 */

var bnavSelection = -1;
var bnavLinks = [ '/en/merchandize.html', '/en/adoption.html', '/en/font.html',
  '/en/skulls/stats.html', '/en/pressclips.html', '/en/legal.html',
  '/en/skulls/search/substr.html', '/en/contact.html', '/en/links.html' ];
  // not language aware
var bnavItems = [ 'merchandize', 'adoption', 'font', 'zeitgeist', 'pressclips',
  'legal', 'search', 'contact', 'links' ];
var bnavRanges = [ [ 0, 2 ], [ 1, 5 ], [ 3, 7 ], [ 3, 8 ], [ 6, 10 ], [ 9, 12 ],
  [ 11, 14 ], [ 13, 15 ], [ 15, 17 ]
];
var bnavMap = [ 0, 0, 1, 1, 1, 2, 2, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8 ];
var bnavCancelReset;
var bnavPreloads = [
  'bnav_merchandize.gif',
  'bnav_adoption.gif',
  'bnav_font.gif',
  'bnav_assessment.gif',
  'bnav_pressclips.gif',
  'bnav_legal.gif',
  'bnav_search.gif',
  'bnav_contact.gif'
];

function bnavpreload(imgpath)
{
  for(var i=0; i<bnavPreloads.length; ++i) {
    preload(imgpath + '/' + bnavPreloads[i]);
  }
}


function bnavclick()
{
  if(bnavSelection < 0) return;
  
  location.href = bnavLinks[bnavSelection];
}

function bnavreset()
{
  if(!bnavCancelReset) {
    bnavSelection = -1;
    document.images.bnav.src = '/images/bnav.gif';
  }
}

function bnavover(i)
{
  bnavCancelReset = true;
  
  if(bnavSelection >= 0) {
    var range = bnavRanges[bnavSelection];
    if(i >= range[0] && i < range[1]) return;
  }
  
  bnavSelection = bnavMap[i];
  document.images.bnav.src = '/images/bnav_' + bnavItems[bnavSelection] +
    '.gif';
}

function bnavout()
{
  bnavCancelReset = false;
  
  setTimeout('bnavreset()', 150);
}

