// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults
function unimplemented() {
  alert("NOTICE\n\nThis feature is not implemented yet. Please check back again soon!");
}

var ElementSlider = Class.create();

ElementSlider.prototype = {
  initialize: function( container_element, item_element, back_button_element, forward_button_element ) {
     this.container_element = container_element;

    this.items = $( this.container_element ).select( item_element ).toArray();

    this.back_button_element = back_button_element;
    this.forward_button_element = forward_button_element;

    this.current_item_index = 0;

    this.observeBackButton();
    this.observeForwardButton();
  },

  observeBackButton: function() {
    Event.observe( this.back_button_element, 'click', this.moveBack.bindAsEventListener(this), false );
  },

  observeForwardButton: function() {
    Event.observe( this.forward_button_element, 'click', this.moveForward.bindAsEventListener(this), false );
  },

  moveForward: function() {
    if ( this.items[this.current_item_index] == this.items.last() ) {
      this.current_item_index = 0;
    } else {
      this.current_item_index += 1;
    }
    this.resetItems();
  },

  moveBack: function() {
    // if first, set to last
    if ( this.items[this.current_item_index] == this.items.first() ) {
      this.current_item_index = ( this.items.size() - 1 );
    } else {
      this.current_item_index = ( this.current_item_index - 1 );
    }
    this.resetItems();
  },

  resetItems: function() {
    this.items.each( function( item ) { $( item ).hide(); })
    this.items[this.current_item_index].show();
  }
}

jQuery(document).ready(function(){
  jQuery('a.hash_section').click(function () {
    jQuery.scrollTo( jQuery(this).attr("href"), 1000, {offset:-50} );
    return false;
  });
});