(function($) {

	$.extend({
	    
          add2cart: function(source, target, callback) {
        
          var shadow = $('#' + source.attr('name') + '_shadow');
          
          if( !shadow.attr('id') ) {
              $('body').prepend('<div id="'+source.attr('name')+'_shadow" style="display: none; background-color: #9f7; border: solid 1px darkgray; position: static; top: 0px; z-index: 100000;">&nbsp;</div>');
              var shadow = $('#'+source.attr('name')+'_shadow');
          }
          
          if( !shadow ) {
              alert('Cannot create the shadow div');
          }
          
          shadow.width(source.css('width')).
                       height(source.css('height')).
                       css('top', source.offset().top).
                       css('left', source.offset().left).
                       css('opacity', 0.5).show();
          shadow.css('position', 'absolute');
          
          shadow.animate({
              width: target.innerWidth(),
              height: target.innerHeight(),
              top: target.offset().top,
              left: target.offset().left
          }, {
              duration: 1000
          }).animate({
              opacity: 0
          }, {
              duration: 100,
              complete: function(){
                  $(this).remove();
              }});
          }
	});
})(jQuery);
