
function ActionBanner( idConteiner, Position )
{
   var myThis = this;

   this.idConteiner = idConteiner;
   this.Conteiner = null;
   
   this.Position = Position;
   this.BaseOffsetPosition = 0;
   this.CurrentOffsetPosition = 0;
   this.PixelStepOffset = 10;
   this.MSStepOffset = 10;
   
   this.idMoveInterval = null;
   this.MoveAction = null;

   this.Construct = function()
   {
      return this.getActionBannerConteiner() && 
         this.setOnMouseFunctionActionBannerConteiner() &&
         this.getActionBannerOffset()
         ;

   }
   
   this.getActionBannerConteiner = function()
   {
      return this.idConteiner && ( this.Conteiner = document.getElementById( this.idConteiner ) );
   }

   this.getActionBannerOffset = function()
   {
      /**
       * @todo: Offset jest ustalony na stałe z powodów czasowych.
       * W przyszłości można zwiększyć funksjonalność. 
       */
      this.BaseOffsetPosition = -255;
      
      /*
      if( this.Position == 'left' )
         this.BaseOffsetPosition = this.Conteiner.offsetLeft;
      
      else
         this.BaseOffsetPosition = this.Conteiner.offsetRight;
      */ 
      return true;
   }
   
   this.setOnMouseFunctionActionBannerConteiner = function()
   {
      this.Conteiner.onmouseover = function(){ myThis.OnMouseOverActionBanner(); };
      this.Conteiner.onmouseout = function(){ myThis.OnMouseOutActionBanner(); };
      
      return true;
   }
   
   
   
   
   this.OnMouseOverActionBanner = function()
   {
      this.MoveAction = 'show';
      
      clearInterval( this.idMoveInterval );
      this.idMoveInterval = setInterval( function(){ myThis.MoveActionBannerConteiner(); }, this.MSStepOffset );
   }

   this.OnMouseOutActionBanner = function()
   {
      this.MoveAction = 'hide';
      
      clearInterval( this.idMoveInterval );
      this.idMoveInterval = setInterval( function(){ myThis.MoveActionBannerConteiner(); }, this.MSStepOffset );
   }   
   
   
   this.MoveActionBannerConteiner = function()
   {
     
      if( this.MoveAction == 'show' )
         this.CurrentOffsetPosition += this.PixelStepOffset;

      else if( this.MoveAction == 'hide' )
         this.CurrentOffsetPosition -= this.PixelStepOffset;     
      
      
      if( this.CurrentOffsetPosition < 0 )
      {
         clearInterval( this.idMoveInterval );
         this.MoveAction = null;
         this.CurrentOffsetPosition = 0;
         
      }

      if(  this.CurrentOffsetPosition > Math.abs( this.BaseOffsetPosition )  )
      {
         clearInterval( this.idMoveInterval );
         this.MoveAction = null;
         
         this.CurrentOffsetPosition = Math.abs( this.BaseOffsetPosition );
      }      
      
      //console.log( 'Pos = ' + this.CurrentOffsetPosition );
      
      
      if( this.Position == 'left' )      
         this.Conteiner.style.marginLeft = this.CurrentOffsetPosition  + 'px';
      
      else
         this.Conteiner.style.marginRight = this.CurrentOffsetPosition  + 'px';
   }
   
   
   
   this.Construct();
}
