$.fn.extend({
	//---鍏冪礌鎷栧姩鎻掍欢
	dragging: function(data) {
		var $this = $(this);
		var xPage;
		var yPage;
		var X; //
		var Y; //
		var xRand = 0; //
		var yRand = 0; //
		var father = $this.parent();
		var defaults = {
			move: 'both',
			randomPosition: true,
			hander: 1
		}
		var opt = $.extend({}, defaults, data);
		var movePosition = opt.move;
		var random = opt.randomPosition;

		var hander = opt.hander;

		if(hander == 1) {
			hander = $this;
		} else {
			hander = $this.find(opt.hander);
		}

		//---鍒濆鍖�
		father.css({
			"position": "relative",
			"overflow": "hidden"
		});
		$this.css({
			"position": "absolute"
		});
		hander.css({
			"cursor": "move"
		});

		var faWidth = father.width();
		var faHeight = father.height();
		var thisWidth = $this.width() + parseInt($this.css('padding-left')) + parseInt($this.css('padding-right'));
		var thisHeight = $this.height() + parseInt($this.css('padding-top')) + parseInt($this.css('padding-bottom'));

		var mDown = false; //
		var positionX;
		var positionY;
		var moveX;
		var moveY;

		if(random) {
			$thisRandom();
		}

		function $thisRandom() { //闅忔満鍑芥暟
			$this.each(function(index) {
				var randY = parseInt(Math.random() * (faHeight - thisHeight)); ///
				var randX = parseInt(Math.random() * (faWidth - thisWidth)); ///
				if(movePosition.toLowerCase() == 'x') {
					$(this).css({
						left: randX
					});
				} else if(movePosition.toLowerCase() == 'y') {
					$(this).css({
						top: randY
					});
				} else if(movePosition.toLowerCase() == 'both') {
					$(this).css({
						top: randY,
						left: randX
					});
				}

			});
		}

		hander.mousedown(function(e) {
			father.children().css({
				"zIndex": "0"
			});
			$this.css({
				"zIndex": "1"
			});
			mDown = true;
			X = e.pageX;
			Y = e.pageY;
			positionX = $this.position().left;
			positionY = $this.position().top;
			return false;
		});

		$(document).mouseup(function(e) {
			mDown = false;
		});

		$(document).mousemove(function(e) {
			xPage = e.pageX; //--
			moveX = positionX + xPage - X;

			yPage = e.pageY; //--
			moveY = positionY + yPage - Y;

			function thisXMove() { //x杞寸Щ鍔�
				if(mDown == true) {
					$this.css({
						"left": moveX
					});
				} else {
					return;
				}
				if(moveX < 0) {
					$this.css({
						"left": "0"
					});
				}
				if(moveX > (faWidth - thisWidth)) {
					$this.css({
						"left": faWidth - thisWidth
					});
				}
				return moveX;
			}

			function thisYMove() { //y杞寸Щ鍔�
				if(mDown == true) {
					$this.css({
						"top": moveY
					});
				} else {
					return;
				}
				if(moveY < 0) {
					$this.css({
						"top": "0"
					});
				}
				if(moveY > (faHeight - thisHeight)) {
					$this.css({
						"top": faHeight - thisHeight
					});
				}
				return moveY;
			}

			function thisAllMove() { //鍏ㄩ儴绉诲姩
				if(mDown == true) {
					$this.css({
						"left": moveX,
						"top": moveY
					});
				} else {
					return;
				}
				if(moveX < 0) {
					$this.css({
						"left": "0"
					});
				}
				if(moveX > (faWidth - thisWidth)) {
					$this.css({
						"left": faWidth - thisWidth
					});
				}

				if(moveY < 0) {
					$this.css({
						"top": "0"
					});
				}
				if(moveY > (faHeight - thisHeight)) {
					$this.css({
						"top": faHeight - thisHeight
					});
				}
			}
			if(movePosition.toLowerCase() == "x") {
				thisXMove();
			} else if(movePosition.toLowerCase() == "y") {
				thisYMove();
			} else if(movePosition.toLowerCase() == 'both') {
				thisAllMove();
			}
		});
	}
});