$(document).ready(function(){
	jQuery.fn.redswap = function(options){
		var selectedItems = this;

		redsettings = jQuery.extend({
			speed:"Medium",
			opacity:0.7,
			stop: null
		}, options);

		$(selectedItems).mouseover(function(){
			$(selectedItems).disableSelection();
			$(selectedItems).droppable({
				drop: function(event, ui) {
					dropindex=$(selectedItems).index(this);
					var dragposition=$(selectedItems[dragindex]).position();
					var dropposition=$(selectedItems[dropindex]).position();
					
					withDifference=parseInt(dragposition.left)-parseInt(dropposition.left);
					heightDifference=parseInt(dragposition.top)-parseInt(dropposition.top);
					
					console.debug(dragindex);
					console.debug(dropindex);

					$(selectedItems[dropindex]).animate({
						left:'+='+withDifference,
						top:'+='+heightDifference
					},redsettings.speed,function(){
						
					});
					
					$(selectedItems[dragindex]).animate({
						left:'+='+(withDifference*(-1)),
						top:'+='+(heightDifference*(-1))
					},redsettings.speed,function(){
						//Complete
						if(typeof redsettings.stop == 'function') {
							redsettings.stop(dropindex, dragindex);
						}
					});
				}
		
		
			});
			
			$(this).draggable({ 
				opacity: redsettings.opacity, 
				helper: 'clone',
				containment: 'parent', 
				scroll: false,
				drag: function(event, ui) {
					dragindex = $(selectedItems).index(this);
				}
			});
		});
	};

});
