
var bubbleleft = new Image();
bubbleleft.src = '/images/mouseover/bubble_left.gif';
var bubblemid = new Image();
bubblemid.src = '/images/mouseover/bubble_mid.gif';
var bubbleright = new Image();
bubbleright.src = '/images/mouseover/bubble_right.gif';
var leftbulge = new Image();
leftbulge.src = '/images/mouseover/leftbulge.gif';
var rightbulge = new Image();
rightbulge.src = '/images/mouseover/rightbulge.gif';
var leftbulgehit = new Image();
leftbulgehit.src = '/images/mouseover/leftbulgehit.gif';
var rightbulgehit = new Image();
rightbulgehit.src = '/images/mouseover/rightbulgehit.gif';
var bubbleleftinv = new Image();
bubbleleftinv.src = '/images/mouseover/bubble_left_inv.gif';
var bubblemidinv = new Image();
bubblemidinv.src = '/images/mouseover/bubble_mid_inv.gif';
var bubblerightinv = new Image();
bubblerightinv.src = '/images/mouseover/bubble_right_inv.gif';
var leftbulgeinv = new Image();
leftbulgeinv.src = '/images/mouseover/leftbulgeinv.gif';
var rightbulgeinv = new Image();
rightbulgeinv.src = '/images/mouseover/rightbulgeinv.gif';
var bulge=null;
var bubbleopen = false;
var extendtimer=[];
var cleanuptimer=null;
var jumpdelay;
var clicked;
var invflashdelay = 130;
var bulgehitdelay = 250;
var invtextcolor = '#ffffff';
var textcolor='#A3E3F5';
//var bulgelink;
var zzz=0;
var mouseoveron=true;
var clicktimer;

/*
function mouseoverload() {
  var a = document.getElementById('1');
  a.onmouseout = function() { cleanup('1'); }
  var b= document.getElementById('2');
  b.onmouseout =  function() { cleanup('2'); }
  var c=document.getElementById('3');
  c.onmouseout = function() { cleanup('3'); }
  var d = document.getElementById('4');
  d.onmouseout = function() { cleanup('4'); }
  var e = document.getElementById('5');
  e.onmouseout = function() { cleanup('5'); }
}
*/

function mouse_over(id, event, link) {
  if (!clicked) {
    if (!bubbleopen && id != bulge) {
      var mx = event.clientX;
      bubbleopen = true;
      bubble_open(id, mx, link);
      if (bulge) {
        clearTimeout(cleanuptimer);
        cleanuptimer = setTimeout("delayedbulgecleanup('"+bulge+"')", 200);  
      }
    }
    if (id==bulge) {
      clearTimeout(cleanuptimer);
      cleanuptimer=null;
    } 
  }
}

function bubble_open(id, mx, link) {
  var a = document.getElementById(id);
  a.style.zIndex = zzz+2; //this HAS to be ahead of everthing else, otherwise chaos (IE7)
  
  a.style.fontWeight = 'bold'; 
  a.style.color='#000000';
  var ax = a.offsetLeft;
  var ay = a.offsetTop-1;
  var aw = a.offsetWidth;
  var ac = ax+(aw/2);
  a.style.cursor = 'pointer';
  a.onclick = function() { jump(id,link); } //this is new
 
  var b = document.getElementById("bubble");
  //if (a.offsetParent) {
    a.offsetParent.appendChild(b); //} //this line only was original code
  //else { a.appendChild(b); }
  b.style.top = ay-3;
  var bw = aw + 4;
  var bl = ac-((bw+24)/2);
  b.style.left = bl; //this was previously AFTER the innerhtml below
  b.innerHTML = "<img id='left' src='"+bubbleleft.src+"'/><img id='mid' src='"+bubblemid.src+"' width='"+bw+"' height='24'/><img id='right' src='"+bubbleright.src+"'/>";
  b.style.zIndex = zzz+1;
  b.style.display = "";
  var speed = 3;
  var extra = 0;
  if (cleanuptimer) { extra = 150;  }
  var delay = 150 + extra;
  if (mouseoveron) {
    var axy = findpos(a);
    var atruex = axy[0];
    var trueac = atruex+(aw/2);
    if (mx < trueac) { 
      for (i=1; i<=24; i += 4) {
        extendtimer[i]=setTimeout("extendleft("+i+","+bl+","+bw+");", (i*speed)+delay);
      }
      i+=1;
      extendtimer[i]=setTimeout("left_bulge("+id+",'"+link+"')", (i*speed)+delay+50);
    }
    else {  
      for (i=1; i<=24; i += 4) {
        extendtimer[i]=setTimeout("extendright("+i+","+bw+");", (i*speed)+delay);
      }
      i+=1;
      extendtimer[i]=setTimeout("right_bulge("+id+",'"+link+"')", (i*speed)+delay+50);
    }
  }
}

function extendleft(i, bl, bw) {
  if (!clicked) {
    document.getElementById('bubble').style.left = bl - i;
    document.getElementById('mid').width = bw + i;
    extendtimer[i]=null;
  }
}

function extendright(i,  bw) {
  if (!clicked) {
    document.getElementById('mid').width = bw + i;
    extendtimer[i]=null;
  }
}

function left_bulge(id, link) {
  if (!clicked) {
    bulge = id;
    var a=document.getElementById(id); //gets metrics off <a> element
    var b = document.getElementById('bulgebubble'); 
    var c = document.getElementById('bulge');
    var d = document.getElementById('gapbubble');
      a.offsetParent.appendChild(b);
      a.offsetParent.appendChild(c);
      a.offsetParent.appendChild(d);
    b.style.zIndex = zzz+1;
    c.style.zIndex = zzz+3;
    d.style.zIndex = zzz+1;
    var ax = a.offsetLeft;
    var ay = a.offsetTop-1;
    
    var aw = a.offsetWidth;
    var ac = ax+(aw/2);
    a.onclick = function() { 
      if (!cleanuptimer) { cleanuptimer = true; }
      leftjump(id,link);
    }
    b.style.top = ay-3;
    var bw = aw + 2;
    b.innerHTML = "<img id='midb' src='"+bubblemid.src+"' width='"+bw+"' height='24'/><img id='rightb' src='"+bubbleright.src+"'/>";
    var bl = ac-((bw+24)/2)+13;
    b.style.left = bl;
    b.style.display = "";

    c.innerHTML="<img id='bulgeimg' src='"+leftbulge.src+"' />"
    c.style.left = bl-40;
    c.style.top = ay-9;
    c.style.display = "";
    c.onmouseout = function() { 
      if (!clicked) {
        clearTimeout(jumpdelay);
        document.getElementById('bulgeimg').src=leftbulge.src;
      }
    }
    c.onmouseover = function() { 
      jumpdelay=setTimeout("leftjump("+id+",'"+link+"');", bulgehitdelay);
      document.getElementById('bulgeimg').src=leftbulgehit.src;
    }

    d.style.top = ay-3;
    d.style.left = bl-12;
    d.style.cursor = 'pointer';
    d.innerHTML = "<img id='gap' src='"+bubblemid.src+"' width='12' height='24'/>";
    d.style.display="";
    d.onmouseout = function() { cleanup(id); }
    d.onmouseover = function() { clearTimeout(cleanuptimer); cleartimeout=null; }
    prebulgecleanup(id);
  }
}

function right_bulge(id,link) {
  if (!clicked) {
    bulge = id;
    var a=document.getElementById(id); //gets metrics off <a> element
    var b = document.getElementById('bulgebubble'); 
    var c = document.getElementById('bulge');
    var d = document.getElementById('gapbubble');
    a.offsetParent.appendChild(b);
    a.offsetParent.appendChild(c);
    a.offsetParent.appendChild(d);
    b.style.zIndex = zzz+1;
    c.style.zIndex = zzz+3;
    d.style.zIndex = zzz+1;
    var ax = a.offsetLeft;
    var ay = a.offsetTop-1;
    var aw = a.offsetWidth;
    var ac = ax+(aw/2);
    a.onclick = function() {
      if (!cleanuptimer) { cleanuptimer = true; }
      rightjump(id,link); 
    }
    b.style.top = ay-3;
    var bw = aw + 2;
    b.innerHTML = "<img id='leftb' src='"+bubbleleft.src+"'/><img id='midb' src='"+bubblemid.src+"' width='"+bw+"' height='24'/>";
    var bl = ac-((bw+24)/2)-1;
    b.style.left = bl;
    b.style.display = "";

    c.innerHTML="<img id='bulgeimg' src='"+rightbulge.src+"' />"
    var cl = bl+bw+18;
    c.style.left = cl;
    c.style.top = ay-9;
    c.style.display = "";
    c.onmouseout = function() { 
      if (!clicked) {
        clearTimeout(jumpdelay);
        document.getElementById('bulgeimg').src=rightbulge.src;
      }
    }
    c.onmouseover = function() { 
      jumpdelay=setTimeout("rightjump("+id+",'"+link+"');", bulgehitdelay);
      document.getElementById('bulgeimg').src=rightbulgehit.src;
    }

    d.style.top = ay-3;
    d.style.left = cl-12;
    d.style.cursor = 'pointer';
    d.innerHTML = "<img id='gap' src='"+bubblemid.src+"' width='12' height='24'/>";
    d.style.display="";
    d.onmouseout = function() { cleanup(id); }
    d.onmouseover = function() { clearTimeout(cleanuptimer); cleanuptimer = null;}
    prebulgecleanup(id);

  }
}

function leftjump(id,link) {
  if (cleanuptimer && bulge==id && !clicked) {
    clickedtrue();
    var a;
    if (a=document.getElementById(id)) { a.style.color = invtextcolor; }
    document.getElementById('midb').src = bubblemidinv.src;
    document.getElementById('rightb').src = bubblerightinv.src;
    document.getElementById('gap').src = bubblemidinv.src;
    document.getElementById('bulgeimg').src = leftbulgeinv.src;
    setTimeout("leftlight(); textdark('"+id+"');", invflashdelay);
    //setTimeout("window.location = '"+link+"'", 250);
    setTimeout("executelink('"+id+"','"+link+"');", 250);
  }
}

function leftlight() {
  document.getElementById('midb').src = bubblemid.src;
  document.getElementById('rightb').src = bubbleright.src;
  document.getElementById('gap').src = bubblemid.src;
  document.getElementById('bulgeimg').src = leftbulge.src;
}

function rightjump(id,link) {
  if (cleanuptimer && bulge==id && !clicked) {
    clickedtrue();
    var a;
    if (a= document.getElementById(id)) { a.style.color = invtextcolor; }
    document.getElementById('midb').src = bubblemidinv.src;
    document.getElementById('leftb').src = bubbleleftinv.src;
    document.getElementById('gap').src = bubblemidinv.src;
    document.getElementById('bulgeimg').src = rightbulgeinv.src;
    setTimeout("rightlight(); textdark('"+id+"');", invflashdelay);
    setTimeout("executelink('"+id+"','"+link+"');", 250);
  }
}

function rightlight() {
  document.getElementById('midb').src = bubblemid.src;
  document.getElementById('leftb').src = bubbleleft.src;
  document.getElementById('gap').src = bubblemid.src;
  document.getElementById('bulgeimg').src = rightbulge.src;
}

function jump(id,link) { //if clicked pre-bulge
  if (!cleanuptimer && !clicked && (bubbleopen || bulge)) { //was just !cleanuptimer 
    clickedtrue();
    var a;
    if (a=document.getElementById(id)) { a.style.color = invtextcolor; }
    document.getElementById('left').src = bubbleleftinv.src;
    document.getElementById('mid').src = bubblemidinv.src;
    document.getElementById('right').src = bubblerightinv.src;
    setTimeout("light(); textdark('"+id+"');", invflashdelay);
    setTimeout("executelink('"+id+"','"+link+"');", 550);
  }
}

function textdark(id) {
  if (bubbleopen || bulge==id) {
    var a;
    if (a= document.getElementById(id)) { a.style.color = '#000000'; }
  }
}

function light() {
  document.getElementById('left').src = bubbleleft.src;
  document.getElementById('mid').src = bubblemid.src;
  document.getElementById('right').src = bubbleright.src;
}

function bulgecleanup(id, link) {
  cleanuptimer = setTimeout("delayedbulgecleanup('"+id+"','"+link+"');", 500);  //this has to be long because hit area is link ONLY
}

function delayedbulgecleanup(id, link) {
  cleanuptimer = null;
  if (true) { //was !clicked
    bulge=null;
   
    var b = document.getElementById('bulgebubble');
    b.onmouseout = null;
    b.style.display = "none";
    var c = document.getElementById('bulge');
    c.onmouseout = null;
    c.style.display = "none";
    var d = document.getElementById('gapbubble');
    d.onmouseout = null;
    d.style.display = "none";
    document.body.appendChild(b);
    document.body.appendChild(c);
    document.body.appendChild(d);

    var a;
    if (a=document.getElementById(id)) {
      a.style.zIndex = zzz+0;
      a.style.fontWeight = 'normal';
      //a.style.textDecoration = 'underline';
      a.style.color=textcolor;
      a.onclick = function() { jump(id, link); } //was bulgelink
    }
  }
}

function prebulgecleanup(id) {
  bubbleopen = false;
  document.getElementById('bubble').style.display = 'none';
}

function cleanup(id, link) {
  if (bulge==id) { bulgecleanup(id, link); }
  else {
    bubbleopen = false;
    var b = document.getElementById('bubble');
    b.style.display = 'none';
    //document.body.appendChild(b);
    var a;
    if (a=document.getElementById(id)) {
      a.style.zIndex = zzz+0;
      a.style.fontWeight = 'normal';
      a.style.color=textcolor;
    }
    //a.style.textDecoration = 'underline';
    cleanuptimer = null;
    for (i in extendtimer) {
      clearTimeout(extendtimer[i]);
      extendtimer[i]=null;
    }
    //document.getElementById(id).onclick = function() { jump(id,link); } //this wasnt here before
  }
}

function findpos(obj) { //got this code from http://www.quirksmode.org/js/findpos.html
  var curleft = curtop = 0;
  if (obj.offsetParent) {
    do {
      curleft += obj.offsetLeft;
      curtop += obj.offsetTop;
    } while (obj = obj.offsetParent); 
  }
  return [curleft,curtop];
}
  
function executelink(id, link) {
  eval(link);
  cleanup(id,link);
}

function togglemouseover(id) {
  if (mouseoveron) {
    mouseoveron = false;
    document.getElementById('34').innerHTML = "on"
  }
  else {
    mouseoveron = true;
    document.getElementById('34').innerHTML = "off"
  }
  setTimeout('clickedfalse()',500);
}

function clickedtrue() {
  clicked=true;
  clicktimer = setTimeout('location.reload()', 10000);
}

function clickedfalse() {
  clicked=false;
  clearTimeout(clicktimer);
}

