/*
 *  Header animation
 */

$(document).ready(function() {
  var preload = 3;
  var loaded = [];
  var url = [];
  var load_count = 0;
  var visible = false;
  var elements = $("#slideshow-image img");
  var img_width;
  var img_height;
  for (var i = 0; i < elements.length; i++) {
    if (i < preload) {
      if (elements.eq(i)[0].complete) {
        load_count++;
        if (i == 0) {
          elements.eq(0).css("display", "block");
          elements.eq(0).parent().fadeTo("normal", 1.0);
        }
      }
      else {
        elements.eq(i).bind("load", function() {
          if (++load_count == preload) {
            elements.eq(0).css("display", "block");
            elements.eq(0).parent().fadeTo("normal", 1.0);
            start_cycle();
          }
        });
      }
    }
    else {
      url.push(elements.eq(i).attr("src"));
      elements.eq(i).remove(); 
    }
  }
  if (load_count == preload) {
    start_cycle();
  }
  function start_cycle() {
    img_width = parseInt(elements.eq(0)[0].width);
    img_height = parseInt(elements.eq(0)[0].height);
    $("#slideshow-image").cycle({
      fx:         "fade",
      speed:      2000,
      timeout:    5000,
      before:     onBefore,
      pause:      1
    });
  }
  function onBefore(curr, next, opts) { 
    if (url.length > 0) {
      var img = new Image(img_width, img_height);
      $(img).bind("load", function() { 
        loaded.push(this); 
      });
      img.src = url.shift();
    }
    if (opts.addSlide) {
      while (loaded.length) {
        opts.addSlide(loaded.shift()); 
      }
    }
  }
});
