Effect.SlideWithinView = function(orientation, position, offset, element, element_contents, options)
{
  var options = Object.extend({
    duration: 0.3
  }, options || {});
  element=$(element);
  element_contents=$(element_contents);
  element.style.overflow = 'hidden';
  element_contents.style.position = 'relative';
  
  if ( orientation == "horizontal")
  {
    element_contents.style.left = position + "px";
    element_contents.style.visibility='visible';
    new Effect.MoveBy(element_contents, 0, offset, options);  
  }
}

Effect.SetUpSlideWithinView = function(element, element_contents, options)
{
  element_contents=$(element_contents);
  if ( !Element.visible(element_contents))
  {
    element_contents.style.visibility='hidden';
    element_contents.style.display='';
  }
}

Effect.SlideLeftIntoView = function(element, element_contents, options) 
{                       
  Effect.SetUpSlideWithinView(element, element_contents, options);
  new Effect.SlideWithinView("horizontal", $(element_contents).offsetWidth, -$(element_contents).offsetWidth, element, element_contents, options)
}

Effect.SlideLeftOutOfView = function(element, element_contents, options) 
{
  Effect.SetUpSlideWithinView(element, element_contents, options);
  new Effect.SlideWithinView("horizontal", 0, -$(element_contents).offsetWidth, element, element_contents, options)
}

Effect.SlideRightIntoView = function(element, element_contents, options) {
  Effect.SetUpSlideWithinView(element, element_contents, options);
  new Effect.SlideWithinView("horizontal", -$(element_contents).offsetWidth, $(element_contents).offsetWidth, element, element_contents, options)
}

Effect.SlideRightOutOfView = function(element, element_contents, options) {
  Effect.SetUpSlideWithinView(element, element_contents, options);
  new Effect.SlideWithinView("horizontal", 0, $(element_contents).offsetWidth, element, element_contents, options)
}