
var mysbx_slider_list = new Array;

function mysbx_slider_js_bind (slider_params) {
  var slider_id = slider_params.slider_container_id;
  mysbx_slider_list[slider_id] = new mysbxSlider (slider_params);
}

function mysbxSlider (slider_params) {
  this.container_id = slider_params.container_id;
  this.prev_button_id = slider_params.prev_button_id;
  this.next_button_id = slider_params.next_button_id;
  this.pause_button_id = slider_params.pause_button_id;
  this.timer_in_msec = slider_params.timer_in_msec;
}

mysbxSlider.prototype.init = function () {
  var this_slider = this;
	this.slider_container = $('#' + this.container_id);
	this.slider_frames = this.slider_container.children('div');
	this.total_frames = this.slider_frames.length;
	this.current_frame_index = 0;  // Zero based index
	this.timer_id = 0;
	
	$('.' + this.prev_button_id).bind ('click', function () {
		this_slider.stop_timer ();
		this_slider.current_frame_index -= 1;
		if (this_slider.current_frame_index < 0) {
			this_slider.current_frame_index = this_slider.total_frames - 1;
		}
		this_slider.refresh_slider_feame_display (this_slider.current_frame_index);
		this_slider.start_timer ();
	});
	
	$('.' + this.next_button_id).bind ('click', function () {
		this_slider.stop_timer ();
		this_slider.current_frame_index += 1;
		if (this_slider.current_frame_index >= this_slider.total_frames) {
			this_slider.current_frame_index = 0;
		}
		this_slider.refresh_slider_feame_display (this_slider.current_frame_index);
		this_slider.start_timer ();
	});
}

mysbxSlider.prototype.start = function () {
	this.refresh_slider_feame_display (this.current_frame_index);
	this.start_timer ();
}

mysbxSlider.prototype.start_timer = function () {
  var this_slider = this;
	this.timer_id = setInterval (
    function () {
		  this_slider.current_frame_index += 1;
		  if (this_slider.current_frame_index >= this_slider.total_frames) {
			  this_slider.current_frame_index = 0;
		  }
		  this_slider.refresh_slider_feame_display (this_slider.current_frame_index);
	  },
	  this_slider.timer_in_msec
  );
}

mysbxSlider.prototype.stop_timer = function () {
	if (this.timer_id != 0) {
		clearInterval (this.timer_id);
	}
	this.timer_id = 0;
}

mysbxSlider.prototype.refresh_slider_feame_display = function (display_frame_index) {
	this.slider_frames.each ( function () {
		$(this).hide();
	});
	$(this.slider_frames[display_frame_index]).show();
}

$(document).ready (function () {
  for (slider_id in mysbx_slider_list) {
    var slider = mysbx_slider_list[slider_id];
    slider.init ();
    slider.start ();
  }
});

/*
  var slider_frame_markup = " \
  		<div class=\"mysbxDLContainer\"> \
  			<div class=\"DLContainer\" style=\"display: block;\"> \
  				<div id=\"prev_frame_button\" class=\"DLPrev DLPrevHorizontal\" style=\"display: block;\"></div> \
  				<div id=\"next_frame_button\" class=\"DLNext DLNextHorizontal\" style=\"display: block;\"></div> \
  				<div class=\"DLClip DLClipHorizontal\"> \
  					<div id=\"mysbxHomepageDL\" class=\"\"> \
  					</div><!-- /#mysbxHomepageDL --> \
  				</div><!-- /.DLClip --> \
  			</div><!-- /.DLContainer --> \
  		</div><!-- /.mysbxDLContainer --> \
  ";
  
*/
