var ImageRotator = Class.create();
ImageRotator.prototype = {
	initialize: function(image_id, image_list, image_name_id) {
    this.image_index = -1;
    this.interval = 3000; // delay between rotating images (in milliseconds)
    this.random_display = 0; // 0 = no, 1 = yes
    this.image_list = image_list;
    this.number_of_image = this.image_list.length;
    this.image_id = image_id;
    this.image_name_id = image_name_id;
  },

  setImageList: function(new_image_list) {
    this.image_list = new_image_list;
    this.number_of_image = this.image_list.length;
  },

  generate: function(x, y) {
    var range = y - x + 1;
    return Math.floor(Math.random() * range) + x;
  },

  getNextImageInfo: function() {
    if (this.random_display) {
    this.image_index = this.generate(0, this.number_of_image-1);
    }
    else {
    this.image_index = (this.image_index+1) % this.number_of_image;
    }
   return this.image_list[this.image_index];
  },

  rotateImage: function() {
    if (this.image_list.length > 0){
      var new_image_info = this.getNextImageInfo();
      $(this.image_id).src = new_image_info.src;
      if (this.image_name_id) {
        $(this.image_name_id).innerHTML = new_image_info.name;
      }
    }
    var recur_call = "imageRotator.rotateImage()";
    setTimeout(recur_call, this.interval);
  }
};