		document.onmousemove = mouseMove;
		document.onmouseup = mouseUp;
		var dragObject     = null;
		var mouseOffset = null;

		function mouseMove(ev){
			ev           = ev || window.event;
			var mousePos = mouseCoords(ev);

			if(dragObject){
				dragObject.style.position = 'absolute';
				dragObject.style.top      = mousePos.y - mouseOffset.y;
				dragObject.style.left     = mousePos.x - mouseOffset.x;
				if (sHookElement!="")
				{
					if (sHookElement.indexOf(dragObject.name)>=0)
					{
						sArTmp = sHookElement.split(",")
						document.getElementById(sArTmp[1]).style.position = 'absolute';
						document.getElementById(sArTmp[1]).style.top      = mousePos.y - mouseOffset.y;
						document.getElementById(sArTmp[1]).style.left     = mousePos.x - mouseOffset.x;
						
					}
				}

				return false;
			}
		}

		function mouseCoords(ev){
			if(ev.pageX || ev.pageY){
				return {x:ev.pageX, y:ev.pageY};
			}
			return {
				x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
				y:ev.clientY + document.body.scrollTop  - document.body.clientTop
			};
		}

		
		function makeClickable(object){
			object.onmousedown = function(){
				dragObject = this;
			}
		}

		function mouseUp(ev){
			dragObject = null;
			//alert("up")
		}

		function getMouseOffset(target, ev){
			ev = ev || window.event;

			var docPos    = getPosition(target);
			var mousePos  = mouseCoords(ev);
			return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y};
		}

		function getPosition(e){
			var left = 0;
			var top  = 0;

			while (e.offsetParent){
				left += e.offsetLeft;
				top  += e.offsetTop;
				e     = e.offsetParent;
			}

			left += e.offsetLeft;
			top  += e.offsetTop;

			return {x:left, y:top};
		}
		
		function makeDraggable(item){
			if(!item) return;
			item.onmousedown = function(ev){
				dragObject  = this;
				mouseOffset = getMouseOffset(this, ev);
				return false;
			}
		}