/*
 * jQuery Sticky Layer Plugin for WYSIWYG Web Builder v7.0
 * Copyright Pablo Software solutions 2010
 * http://www.wysiwygwebbuilder.com/
 *
 */

(function($)
{
   $.fn.stickylayer = function(options) 
   {
      return this.each(function() 
      {   
         $.stickylayer(this, options);
      });
   };

   $.stickylayer = function(obj, options) 
   {
      var settings = 
      {
	orientation: 1,
	position: [0, 0],
        delay: 0
      };

      $obj = $(obj);
	
      if (options)
         settings = $.extend(settings, options);
 
      $obj.css('fixed', 'absolute');

      if (settings.orientation == 1)
      {
         $obj.css('left', settings.position[0]);
         $obj.css('top', settings.position[1]);
      }
      else
      if (settings.orientation == 2)
      {
         $obj.css('right', settings.position[0]);
         $obj.css('top', settings.position[1]);
      }
      else
      if (settings.orientation == 3)
      {
         $obj.css('right', settings.position[0]);
         $obj.css('bottom', settings.position[1]);
      }
      else
      if (settings.orientation == 4)
      {
         $obj.css('left', settings.position[0]);
         $obj.css('bottom', settings.position[1]);
      }

      $.stickylayer.updatePosition($obj, settings);

      var event = 'scroll.' + $obj.attr('id') + ' resize.' + $obj.attr('id');

      settings.id = $obj.attr('id');

      jQuery(window).bind(event, settings, function()
      {
         $obj = $('#' + settings.id);
         $.stickylayer.updatePosition($obj, settings);
      })
   };

   $.stickylayer.updatePosition = function($obj, settings)
   {
      if (settings.delay > 0)
      {
         $obj.stop();
      }

      var $window = jQuery(window);

      var x = $window.scrollLeft();
      var y = $window.scrollTop();

      if (settings.orientation == 1)
      {
         x = x + settings.position[0];
         y = y + settings.position[1];
      }
      else
      if (settings.orientation == 2)
      {
         x = x + $window.width() - $obj.outerWidth() - settings.position[0];
         y = y + settings.position[1];
      }
      else
      if (settings.orientation == 3)
      {
         x = x + $window.width() - $obj.outerWidth() - settings.position[0];
         y = y + $window.height() - $obj.outerHeight() - settings.position[1];
      }
      else
      if (settings.orientation == 4)
      {
         x = x + settings.position[0];
         y = y + $window.height() - $obj.outerHeight() - settings.position[1];
      }

      if (settings.delay > 0)
      {
         $obj.animate({left:x, top:y}, settings.delay);   
      }
      else
      {
         $obj.css({left:x+'px', top:y+'px'});
      }
   };
})(jQuery);
