var current_image = '01';
var slideshow_image = null;
var swapping = false;

if (document.images) {
  var image = new Array();
  for (var i = 0; i < number_children; i++) {
    image[i] = new Image();
    if ((i+1) < 10) {
      image[i].src = path + '0' + (i+1) + '.jpg';
    } else {
      image[i].src = path + (i+1) + '.jpg';
    }
  }
}

function slideshow_init() {
  var css_test = get_element_by_id('css-test');
  if ((!css_test) || (!css_test.style) || (css_test.style.display != 'none')) return;
  if (!slideshow_image) slideshow_image = get_element_by_id('slideshow-image');
}

function swap_image(next_image) {
  var do_swap = false;
  if (next_image < 0) {
    if (current_image != '01') do_swap = true;
  } else {
    if (parseInt(current_image, 10) != number_children) do_swap = true;
  }
  if (do_swap && !swapping) {
    swapping = true;
    fade_out(next_image, 100);
  }
  return false;
}

function fade_out(next_image, opacity) {
  if (slideshow_image && slideshow_image.style) {
    if (opacity >= 0) {
      set_opacity(slideshow_image, opacity);
      opacity -= 10;
      window.setTimeout(function(){ fade_out(next_image, opacity) },50);
    } else {
      if ((parseInt(current_image, 10) + next_image) < 10) {
        current_image = '0' + (parseInt(current_image, 10) + next_image);
      } else {
        current_image = '' + (parseInt(current_image, 10) + next_image);
      }
      slideshow_image.src = image[parseInt(current_image, 10)-1].src;
      fade_in(slideshow_image, 0);
    }
  }
}

function fade_in(slideshow_image, opacity) {
  if (slideshow_image && slideshow_image.style) {
    if (opacity <= 100) {
      set_opacity(slideshow_image, opacity);
      opacity += 10;
      window.setTimeout(function(){ fade_in(slideshow_image, opacity) },50);
    } else {
      swapping = false;
    }
  }
}

function set_opacity(slideshow_image, opacity) {
  if (slideshow_image.style.opacity != null) {
    slideshow_image.style.opacity = opacity/100;
  } else if (slideshow_image.style.filter != null) {
    slideshow_image.style.filter = "alpha(opacity:" + opacity + ")";
  } else if (slideshow_image.style.KHTMLOpacity != null) {
    slideshow_image.style.KHTMLOpacity = opacity/100;
  } else if (slideshow_image.style.MozOpacity != null) {
    slideshow_image.style.MozOpacity = opacity/100;
  }
}

function get_element_by_id(id) {
  if (document.layers) {   
    return document.layers[id];
  } else if (document.all) {
    return document.all[id];
  } else if (document.getElementById) {
    return document.getElementById(id);
  } else {
    return null;
  }
}
