(function($){
		
		$.fn.makedraggable = function(opts){

				var defaults = {
							drag					: false,
							objToDrag 		: $("#nWindow"),
							snapDistance 	: 1,
							counter 			: 0
				},
				obj = this;
				
				$.extend(opts,defaults);
				
				obj.bind("mousedown",function(event){						
						opts.drag = true;
						var iniPos = $.getXYiniPos(event,opts.objToDrag);
						$.data(opts.objToDrag , "__posxy", {'px' : iniPos.px , 'py' : iniPos.py});
						
						opts.objToDrag.css({
								opacity	:	0.7,
								cursor	: 'move'
						});
						$("body").bind("mousemove",function(event){
								if(opts.drag){
										opts.counter++;
										if(opts.counter == opts.snapDistance){
												opts.objToDrag.css({
														left	: event.pageX - $.data(opts.objToDrag, "__posxy").px + 'px',
														top		: event.pageY - $.data(opts.objToDrag, "__posxy").py + 'px'
												});
												opts.counter = 0;
										}
								}
								
						});
						$("#nWindow").bind("mouseup",function(event){
								opts.objToDrag.css({
										opacity	:	1,
										cursor	: ''
								})
								opts.drag = false;
						});
						
				});
				
				$.getXYiniPos = function(event,obj){
						var pos = {
									px : (event.pageX - parseInt(obj.css('left'))),
									py : (event.pageY - parseInt(obj.css('top')))
						}
						return pos;
						
				};
		};
		
		
})(jQuery);
