var gallery_position = 0;
var gallery_next_position = 0;
var gallery_div = 0;
var gallery_timer_ready = false;
var gallery_load_ready = false;
var gallery_running = false;
var gallery_actionlock = false;
var gallery_play = "<a href='javascript:gal_bresume()'><img src='"+gallery_install_path+"play.PNG' height=16 width=16 border=0 /></a>";
var gallery_pause = "<a href='javascript:gal_bpause()'><img src='"+gallery_install_path+"pause.PNG' height=16 width=16 border=0 /></a>";
var gallery_next = "<a href='javascript:gal_bnext()'><img src='"+gallery_install_path+"next.PNG' height=16 width=16 border=0 /></a>";
var gallery_prev = "<a href='javascript:gal_bprev()'><img src='"+gallery_install_path+"prev.PNG' height=16 width=16 border=0 /></a>";
var gallery_timer;
var gallery_waittimer;

function gal_set_next(photo_id) {
  gallery_load_ready = false;
  var next_img = $('gal' + (gallery_div+1)%2 + '-img');
  next_img.onload = function() { gal_onload(); }
  next_img.src = gallery_images_path + gallery_src[photo_id];
  gallery_next_position = photo_id;
}

function gal_set_timer() {
  clearTimeout(gallery_timer);
  gallery_timer = setTimeout("gal_ontimer()",gallery_timeout);
  gallery_timer_ready = false;
}

function gal_trigger() {
  if(gallery_load_ready && (gallery_timer_ready || !gallery_running)) {
    gal_swap();
  }
}

function gal_onload() {
  gallery_load_ready = true;
  gal_trigger();
}

function gal_ontimer() {
  if(gallery_running) {
    gallery_timer_ready = true;
    gal_trigger();
  }
}

function gal_swap() {
  $('gal' + gallery_div).fade('out');
  gallery_div = (gallery_div+1) % 2; 
  $('gal' + gallery_div).fade('in');
  gallery_position = gallery_next_position;
  $('gallery-caption').innerHTML = gallery_cap[gallery_position];
  gallery_actionlock = false;
  if(gallery_running) {
    gallery_waittimer = setTimeout("gal_waitrun()",550);
  }
}

function gal_waitrun() {
  gal_set_next(gal_next_id());
  gal_set_timer();
}

function gal_next_id() {
  return (gallery_position+1) % gallery_src.length;
}

function gal_prev_id() {
  if(gallery_position == 0) {
    return gallery_src.length - 1;
  }
  else {
    return gallery_position-1;
  }
}

function gal_init() {
  $('gallery').innerHTML = "<div id='gal0' class='gallery-member'><img id='gal0-img'></div>" + 
    "<div id='gal1' class='gallery-member'><img id='gal1-img'></div>" +
    "<div id='gallery-caption'></div><div id='gallery-controls'>"+gallery_prev+gallery_pause+gallery_next+"</div>";
  gallery_position = -1;
  $('gal0').set('tween', {duration: 500});
  $('gal1').set('tween', {duration: 500});
}

function gal_start() {
  gallery_running = true;
  gallery_timer_ready = true;
  gal_set_next(0);
}

function gal_bnext() {
  if(!gallery_actionlock) {
    //gallery_actionlock = true;
    gallery_running = false;
    gal_set_next(gal_next_id());
    $('gallery-controls').innerHTML = gallery_prev + gallery_play + gallery_next;
  }
}

function gal_bprev() {
  if(!gallery_actionlock) {
    //gallery_actionlock = true;
    gallery_running = false;
    gal_set_next(gal_prev_id());
    $('gallery-controls').innerHTML = gallery_prev + gallery_play + gallery_next;
  }
}

function gal_bpause() {
  gallery_running = false;
  $('gallery-controls').innerHTML = gallery_prev + gallery_play + gallery_next;
}

function gal_bresume() {
  if(!gallery_actionlock) {
    //gallery_actionlock = true;
    gallery_running = true;
    gallery_timer_ready = true;
    gal_set_next(gal_next_id());
    $('gallery-controls').innerHTML = gallery_prev + gallery_pause + gallery_next;
  }
}
