(function($) {

	$.extend({
		add2cart: function(source_id, target_id, callback) {
    
      	var source = $('#' + source_id );
     	var target = $('#' + target_id );
      				
      	var shadow = $('#' + source_id + '_shadow');
		if( !shadow.attr('id') ) {
		  $('body').prepend('<div id="'+source.attr('id')+'_shadow" style="display: none; background-color: #D2D2CB; border: 0; position: static; top: 0px; z-index: 100000;">&nbsp;</div>');
		  var shadow = $('#'+source.attr('id')+'_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.4).show();
		shadow.css('position', 'absolute');
		
		shadow.animate({width: target.innerWidth()+10, height: target.outerHeight()+10, top: target.offset().top-5, left: target.offset().left-5 }, { duration: 400 })
		.animate( { opacity: 0 }, { duration: 500, complete: callback });
		}
	});
})(jQuery);
