/**
 * @author jat
 */
function drag(dro, mvo) {
	var $do, $mo, offx, offy;
	
	function bindEvent(el, tp, fn) {
		if (el.addEventListener) el.addEventListener(tp, fn, false);
		else if (el.attachEvent) el.attachEvent("on" + tp, fn);
	}
	function unbindEvent(el, tp, fn) {
		if (el.removeEventListener) el.removeEventListener(tp, fn, false);
		else if (el.detachEvent) el.detachEvent("on" + tp, fn);
	}
	function start(e) {
		offx = e.clientX - $mo.offsetLeft;
		offy = e.clientY - $mo.offsetTop;
		bindEvent(document, "mousemove", move);
		bindEvent(document, "mouseup", end);
	}
	function end(e) {
		unbindEvent(document, "mousemove", move);
		unbindEvent(document, "mouseup", end);
	}
	function move(e) {
		$mo.style.left = (e.clientX - offx) + "px";
		$mo.style.top = (e.clientY - offy) + "px";
	}
	
	$do = dro;
	$mo = mvo || dro;
	bindEvent($do, "mousedown", start);
}

