function DragAndDrap() {
	var objectDragDrop = '';
	// ตำแหน่งที่คลิกภายในของวัตถุที่จะถูกเคลื่อนที่
	var objectDragDropLT = '';
	var statusDragDrop = '';
	var areaDragDrop = '';
	this.createDragDrop = createDragDrop;
	this.setAreaDragDrop = setAreaDragDrop;
	
	function createDragDrop(object, object2, dLeft, dTop, dRight, dBottom) {
		objectDragDrop = object;
		areaDragDrop = '';
		if ((dLeft !== '') && (dTop !== '') && (dRight !== '') && (dBottom !== '')) {
			if (dLeft < 0) {
				dLeft = 0;
			}
			if (dTop < 0) {
				dTop = 0;
			}
			areaDragDrop = {left:dLeft, top:dTop, right:dRight, bottom:dBottom};
		}
		object2.style.cursor = "move";
		object2.onmousedown = function(ev) {
			if (window.StopMoveDDS1) {
				StopMoveDDS1();
			}
			statusDragDrop = 1;
			var ev = ev || window.event;
			if (ev.clientX || ev.clientY) { // IE
				var left_ = ev.clientX - objectDragDrop.offsetLeft;
				var top_ = ev.clientY - objectDragDrop.offsetTop;			
			}
			else {
				var left_ = ev.pageX - objectDragDrop.offsetLeft;
				var top_ = ev.pageY - objectDragDrop.offsetTop;			
			}
			var scrollXY = getScrollXY();
			var scrollLeft_ = scrollXY[0];
			var scrollTop_ = scrollXY[1];
			left_ += scrollLeft_;
			top_ += scrollTop_;
			objectDragDropLT = {left:left_, top:top_};
			document.onmousemove = mouseMoveDragDrop;
			document.onmouseup = mouseUpDragDrop;
		}
	}
	
	function mouseMoveDragDrop(ev) {
		var ev = ev || window.event;
		var scrollXY = getScrollXY();
		var scrollLeft_ = scrollXY[0];
		var scrollTop_ = scrollXY[1];
		if (ev.clientX || ev.clientY) { // IE
			var left_ = ev.clientX + scrollLeft_;
			var top_ = ev.clientY + scrollTop_;
		}
		else {
			var left_ = ev.pageX + scrollLeft_;
			var top_ = ev.pageY + scrollTop_;
		}
		left_ -= objectDragDropLT.left;
		top_ -= objectDragDropLT.top;
		var documentAreaShowSize = getDocumentAreaShowSize();
		var width_ = documentAreaShowSize[0];
		var height_ =  documentAreaShowSize[1];
		var objectWidth = parseInt(objectDragDrop.style.width);
		var objectHeight = parseInt(objectDragDrop.style.height);
		if (areaDragDrop !='') {
			if (left_ < areaDragDrop.left) {
				left_ = areaDragDrop.left;
			}
			var right = areaDragDrop.right;
			if (right > width_) {
				right = width_;
			}
			if ((left_ + objectWidth) > right) {
				left_ = right - objectWidth;
			}
			if (top_ < areaDragDrop.top) {
				top_ = areaDragDrop.top;
			}
			var bottom = areaDragDrop.bottom;
			if (bottom > height_) {
				bottom = height_;
			}
			if ((top_ + objectHeight) > bottom) {
				top_ = bottom - objectHeight;
			}
		}
		else {
			if (left_ < 0) {
				left_ = 0;
			}
			if ((left_ + objectWidth) > width_) {
				left_ = width_ - objectWidth;
			}
			if (top_ < 0) {
				top_ = 0;
			}
			if ((top_ + objectHeight) > height_) {
				top_ = height_ - objectHeight;
			}
		}
		
		objectDragDrop.style.left = left_ + 'px';
		objectDragDrop.style.top = top_ + 'px';
	}
	
	function mouseUpDragDrop() {
		statusDragDrop = '';
		document.onmousemove = null;
		document.onmouseup = null;
	}
	
	function setAreaDragDrop(dLeft, dTop, dRight, dBottom) {
		if ((dLeft !== '') && (dTop !== '') && (dRight !== '') && (dBottom !== '')) {
			areaDragDrop = {left:dLeft, top:dTop, right:dRight, bottom:dBottom};
		}
		else {
			areaDragDrop = '';
		}
	}
}
