t_want_to_hide = 0;
t_want_to_hide_again = 0;
t_minislide = 0;
t_throbber = 0;
allow_hide = true;

done_loading = false;

function hide_scroller()
{
  document.getElementById('scroller').style.display = 'none';
}

function want_to_hide() {
  if (allow_hide) { hide_scroller(); }
}

function init() 
{
  done_loading = true;
  
  if (document.getElementById('scroller'))
  {
    /*
    t_want_to_hide_again = setTimeout(function() { t_want_to_hide = setInterval(want_to_hide, 500); }, 5000);
  
    document.getElementById('scroller').onmouseover = function() { allow_hide = false; };
    document.getElementById('scroller').onmouseout = function() { allow_hide = true; };
    */
    
    setTimeout(function() {
      document.getElementById('scroller').style.display = 'none';
      document.getElementById('scroller').className = 'loaded';
      }, 500);
  }
  
  if (document.getElementById('mailto'))
  {
    document.getElementById('mailto').setAttribute('href', ['gmail.com','vermeulen@',':milo','mailto'].reverse().join(''));
  }

  // set mouseover/mouseout events for minislides
  if (1 || location.href.indexOf('debug') > -1)
  {  
    all_li = document.getElementsByTagName('li');
    c = 0;
    for (i = 0; i < all_li.length; i++)
    {
      if (all_li[i].className && all_li[i].className.indexOf('multiple') > -1)
      {
        all_li_alternates = all_li[i].getElementsByTagName('li');
        c += all_li_alternates.length;
        
        e_id = all_li[i].getElementsByTagName('img')[0].getAttribute('id').replace('eimg', '');
        //document.title += '' + e_id + ':';
        
        alt_src[e_id] = [];
        for (j = 0; j < all_li_alternates.length; j++)
        {
          alt_src[e_id].push(all_li_alternates[j].firstChild.getAttribute('href'));
        }
        
        el_a = all_li[i].getElementsByTagName('a')[0];
        el_a.onmouseover = function() { 
          e_id = this.getElementsByTagName('img')[0].getAttribute('id').replace('eimg', '');
          clearTimeout(t_minislide);
          clearTimeout(t_minislide_step);
          t_minislide = setTimeout(function() { minislide(e_id); }, 1500);
          //clearTimeout(t_throbber);
          //animate_throbber(e_id, 0);
          };
        
        el_a.onmouseout = function() {
          clearTimeout(t_minislide);
          clearTimeout(t_minislide_step);
          //clearTimeout(t_throbber);
          //reset_throbber(e_id);
          };
      }
    }
    //document.title = c;
  }

} // init


function reset_throbber(e_id)
{
  document.getElementById('throbber'+e_id).firstChild.nodeValue = '...';
}

function animate_throbber(e_id, step)
{
  el_throbber = document.getElementById('throbber'+e_id);
  dots = '.';
  for (i = 0; i < (step % 3); i++) { dots += '.'; }
  el_throbber.firstChild.nodeValue = dots;
  t_throbber = setTimeout(function() { animate_throbber(e_id, step + 1); }, 400);
}


function jiggle()
{
  /*
  document.getElementById('scroller').style.display = 'block';
  clearTimeout(t_want_to_hide);
  clearTimeout(t_want_to_hide_again);
  t_want_to_hide_again = setTimeout(function() { t_want_to_hide = setInterval(want_to_hide, 500); }, 3000);
  */
}

window.onload = init;




if (window.addEventListener)
{
  window.addEventListener('mousemove', mousemoved, false); 
}

opac_scroller = t_scroller = 0;

function mousemoved(e)
{
  if (!done_loading || !document.getElementById('scroller')) { return; }
  
  el_scroller = document.getElementById('scroller');
  count_thumbs = el_scroller.getElementsByTagName('img').length;
  //document.title = el_scroller.clientHeight + ' : ' + e.clientY + '  /  ' + window.innerHeight + ' : ' + Math.ceil(count_thumbs / 9);
  count_rows = Math.ceil(count_thumbs / 9);
  
  do_show = (window.innerHeight - e.clientY < (count_rows * 90 + 60))
    && (Math.abs(e.clientX -.5 * window.innerWidth) < .5 * 1100);
  
  old_display = el_scroller.style.display;
  new_display = do_show ? 'block' : 'none';
  
  if (old_display != new_display)
  {
    if (location.href.indexOf('debug') > -1) { 
      //document.title = new_display + ' : ' + Math.random(); 
      el_scroller.style.display = 'block';
      clearTimeout(t_scroller);
      if (do_show)
      {
        opac_scroller = 0;
        t_scroller = setInterval(function() { 
          //document.title = opac_scroller;
          document.getElementById('scroller').style.opacity = opac_scroller;
          if (opac_scroller < 1) { opac_scroller += .2; } else { clearTimeout(t_scroller); }
          }, 55);
      }
      else
      {
        opac_scroller = 1;
        t_scroller = setInterval(function() { 
          //document.title = opac_scroller;
          document.getElementById('scroller').style.opacity = opac_scroller;
          if (opac_scroller > 0) { opac_scroller -= .2; } else { clearTimeout(t_scroller); }
          }, 55);
      }
    }
    else
    {
      el_scroller.style.display = new_display;
    }
    
    /*
    clearTimeout(timers['scroller']);
    if (do_show) { fade_el('scroller', 0, 0, 1, .1); }
    else { fade_el('scroller', 1, 1, 0, .1); }
    */
  }
}

timers = [];

function fade_el(el_id, opac, from, to, step)
{
  el = document.getElementById(el_id);
  if (!el) { return; }
  
  el.style.opacity = opac;
  
  old_opac = opac;
  if (from < to && opac < to)
  {
    opac += step;
  }
  else if (from > to && opac > to)
  {
    opac -= step;
  }
  
  if (old_opac != opac)
  {
    timers[el_id] = setTimeout(function() { fade_el(el_id, opac, from, to, step); }, 100);
  }
}


/* MINISLIDE */

t_minislide = 0;
t_minislide_step = 0;
t_fade = 0;
alt_src = [];
slidepos = [];
el_fader = document.createElement('img');

el_fader.style.opacity = 0;
el_fader.style.position = 'absolute';
el_fader.style.top = '0px';
el_fader.style.left = '2px';

function fade(e_id, opac, src_from, src_to, w, h)
{
  if (opac == 0)
  {
    document.getElementById('eimg'+e_id).parentNode.appendChild(el_fader);
    document.getElementById('eimg'+e_id).src = src_from;
    document.getElementById('eimg'+e_id).style.width = w + 'px';
    document.getElementById('eimg'+e_id).style.height = h + 'px';
    el_fader.style.width = w + 'px';
    el_fader.style.height = h + 'px';
    el_fader.src = src_to;
  }
  
  el_fader.style.opacity = .01 * opac;
  
  if (opac < 100)
  {
    t_fade = setTimeout(function() { fade(e_id, opac + 15, src_from, src_to, w, h); }, 35);
  }
  else
  {
    document.getElementById('eimg'+e_id).src = src_to;
    
    slidepos[e_id]++;
    if (slidepos[e_id] == alt_src[e_id].length) { slidepos[e_id] = 0; }
    
    wait = 4000;
    if (document.getElementsByTagName('body')[0].className.indexOf('size-l') > -1) { wait = 8000; 
      //document.title = 'waiting ' + wait;
       }
    t_minislide_step = setTimeout(function() { minislide(e_id); }, wait);
  }
}

function minislide(e_id)
{
  if (typeof slidepos[e_id] === 'undefined') { slidepos[e_id] = 1; }
  
  img_new = new Image();
  img_new.onload = function()
  {
    fade(e_id, 0, document.getElementById('eimg'+e_id).src, this.src, this.width, this.height);
  }
  img_new.src = alt_src[e_id][slidepos[e_id]];

  //document.title = "minisliding e_id " + e_id + " slidepos[e_id] " + slidepos[e_id]; 
}


