var mediaSlider =
{
  currentIndex : 0,
  children : null,
  nrItems: 0,
  settings :
  {
    wrapperId : 'ms-wrapper',
    nextBtn : 'ms-next',
    prevBtn : 'ms-prev',
    titleId : 'ms-title'
  },
  init : function(itemWrapperId, nextId, prevId, titleId)
  {
    //override default settings
    mediaSlider.settings.wrapperId = (itemWrapperId) ? itemWrapperId : mediaSlider.settings.wrapperId;
    mediaSlider.settings.nextBtn = (nextId) ? nextId : mediaSlider.settings.nextBtn;
    mediaSlider.settings.prevId = (prevId) ? prevId : mediaSlider.settings.prevId;
    mediaSlider.settings.titleId = (titleId) ? titleId : mediaSlider.settings.titleId; 
    
    //get children
    mediaSlider.children = $(mediaSlider.settings.wrapperId).childElements();
    
    //set num items
    mediaSlider.nrItems = mediaSlider.children.length;
    
    //init eventlisteners
    mediaSlider.initEventListeners();
  },
  initEventListeners : function()
  {
    var nextButton = $(mediaSlider.settings.nextBtn);
    if(nextButton) nextButton.observe('click', function() { mediaSlider.displayNext(); }, false);
    
    var prefButton = $(mediaSlider.settings.prevBtn);
    if(prefButton) prefButton.observe('click', function() { mediaSlider.displayPrevious(); }, false);
  },
  displayNext : function(event)
  {
    //hide current
    mediaSlider.hideCurrent();
    
    //check not over limit
    if(mediaSlider.currentIndex == (mediaSlider.nrItems - 1))
      mediaSlider.currentIndex = 0;
    else
      mediaSlider.currentIndex++;
      
    //show next
    mediaSlider.displayCurrent();
    
    //reset title
    mediaSlider.resetTitle();
    
    return false;
  },
  displayPrevious : function()
  {
    //hide current
    mediaSlider.hideCurrent();
    
    //check not over limit
    if(mediaSlider.currentIndex == 0)
      mediaSlider.currentIndex = (mediaSlider.nrItems - 1);
    else
      mediaSlider.currentIndex--;
      
    //show previous
    mediaSlider.displayCurrent();
    
    //reset title
    mediaSlider.resetTitle();
    
    return false;
  },
  resetTitle : function()
  {
    //hide title
    $(mediaSlider.settings.titleId).hide();
    
    //set inner HTML
    $(mediaSlider.settings.titleId).innerHTML = mediaSlider.children[mediaSlider.currentIndex].title;
    
    //make it gracefully appear again
    $(mediaSlider.settings.titleId).appear();
  },
  hideCurrent : function()
  {
    mediaSlider.children[mediaSlider.currentIndex].hide();
  },
  displayCurrent : function()
  {
    mediaSlider.children[mediaSlider.currentIndex].show();
  }
}

//on dom loaded => start mediaSlider
document.observe('dom:loaded', function()
{
  //check if the mediaSlider is actually needed
  if($('ms-wrapper')) mediaSlider.init('ms-wrapper', 'ms-next', 'ms-prev');
  
}, false);

