/*
	simpledrag.js
	(c) mass:werk (N. Landsteiner) 2003; http://www.masswerk.at
*/

var dragobject=null;
var dragdescants=null;
var dragLastX, dragLastY;
var dragLock=false;

function dragElement() {
	if (dragLock) return;
	var id=arguments[0];
	dragobject =new Object();
	var obj=dragobject.obj= (document.getElementById)? document.getElementById(id):document.all[id];
	dragobject.ofsX = parseInt(obj.style.left);
	dragobject.ofsY = parseInt(obj.style.top);
	if (arguments.length>1) {
		dragdescants=new Array();
		for (var i=1; i<arguments.length; i++) {
			d=dragdescants[i-1]=new Object();
			var dobj= d.obj= (document.getElementById)? document.getElementById(arguments[i]):document.all[arguments[i]];
			d.ofsX = parseInt(dobj.style.left);
			d.ofsY = parseInt(dobj.style.top);
		}
	}
}

function drag(e) {
	if (dragLock) return true;
	if (dragobject!=null) {
		if (window.event) e = window.event;
		var x = (typeof e.clientX != 'undefined')? e.clientX:e.pageX;
		var y = (typeof e.clientY != 'undefined')? e.clientY:e.pageY;
		dragobject.obj.style.left=x+dragobject.ofsX-dragLastX;
		dragobject.obj.style.top=y+dragobject.ofsY-dragLastY;
		if (dragdescants) {
			for (var i=0; i<dragdescants.length; i++) {
				var d=dragdescants[i];
				d.obj.style.left=x+d.ofsX-dragLastX;
				d.obj.style.top=y+d.ofsY-dragLastY;
			}
		}
		if (e.preventDefault) e.preventDefault();
		if (e.stopPropagation) e.stopPropagation();
		e.cancleBubble=true;
		e.returnValue=false;
		return false;
	}
	return true;
}

function dragStart(e) {
	if (window.event) e = window.event;
	dragLastX = (typeof e.clientX != 'undefined')? e.clientX:e.pageX;
	dragLastY = (typeof e.clientY != 'undefined')? e.clientY:e.pageY;
	if (dragobject!=null) {
		if (e.preventDefault) e.preventDefault();
		if (e.stopPropagation) e.stopPropagation();
		e.cancleBubble=true;
		e.returnValue=false;
		return false;
	}
	return true;
}

function dragRelease(e) {
	dragobject=null;
	dragdescants=null;
}

document.onmousemove=drag;
document.onmouseup=dragRelease;
document.onmousedown=dragStart;

// eof
