

var dragobjekt = null;
var dragx = 0;
var dragy = 0;
var posx = 0;
var posy = 0;
var zindex = 1;
var opacity_buffer = "";
var dragged_obj = new Array();

function draginit() {
	document.onmousemove = drag;
	document.onmouseup = dragstop;
	debug.log("drag eventhandlers initialized");
}


function dragstart(element) {
	opacity_buffer = getopacity(element.id);
	setopacity(element.id, 7);
	dragobjekt = element;
	if(dragobjekt.style.position != "absolute" && dragobjekt.style.position != "fixed"){
		dragobjekt.style.position = "fixed";
	}
	dragobjekt.style.zIndex = zindex;
	dragx = posx - dragobjekt.offsetLeft;
	dragy = posy - dragobjekt.offsetTop;
	zindex++;
	dragged_obj.splice(dragged_obj.length, 0, dragobjekt);
	debug.log("drag started at "+dragobjekt.offsetLeft+"x"+dragobjekt.offsetTop+" with object "+dragobjekt.id);
}

	
function dragstop() {
	debug.log("drag stopped called "+dragy);
	if(dragobjekt != null){
		setopacity(dragobjekt.id, opacity_buffer);
		debug.log("drag stopped at "+dragobjekt.offsetLeft+"x"+dragobjekt.offsetTop+" with object "+dragobjekt.id);
		dragobjekt=null;
	}
}


var dirty = true;
function drag(ereignis) {
	//document.getElementById('dnd_diag').value = "left:"+(posx - dragx)+" top:"+(posy - dragy);
	posx = document.all ? window.event.clientX : ereignis.pageX;
	posy = document.all ? window.event.clientY : ereignis.pageY;

	if(dragobjekt != null) {
		if(document.getElementById('oelfleck')){
			var clean_top = document.getElementById('oelfleck').offsetTop + (document.getElementById('oelfleck').offsetHeight/2);
			var clean_left = document.getElementById('oelfleck').offsetLeft + (document.getElementById('oelfleck').offsetWidth/2);
		}

		dragobjekt.style.left = (posx - dragx) + "px";
		dragobjekt.style.right = "";
		dragobjekt.style.top = (posy - dragy) + "px";
		dragobjekt.style.bottom = "";

		if(dirty){
			if(dragobjekt.id == "drag_2" || dragobjekt.id == "drag_3"){
				if(dragobjekt.offsetTop < clean_top && (dragobjekt.offsetTop+dragobjekt.offsetHeight) > clean_top && dragobjekt.offsetLeft < clean_left && (dragobjekt.offsetLeft+dragobjekt.offsetWidth) > clean_left){
					log("putzen ("+clean_top+"x"+clean_left+") -> ("+dragobjekt.offsetTop+"x"+dragobjekt.offsetLeft+")");
					var opa = getopacity("oelfleck");
					if(opa == 1){
						dirty = false;
						alert("weggeputzt.");
					}else{
						opa -= 0.1;
						setopacity("oelfleck", opa);
					}
				}
			}
		}
	}
}


