// .arena v2.0 
// .drag (01.04.01) [requiere .math]
// (C) Copyright 2001 por Emiliano Benítez, Israel Pastrana
// Prohibido su uso o distribucion en su totalidad o en parte del codigo sin autorizacion del autor.

arena.arenaIns.prototype.drag = function(limX,limY,iniEve,onEve,endEve){
	this.mDown(this.id+".dragOn(event)");
	if (arena.nav=="ns4" || document.addEventListener) this.mMove(this.id+".dragMove(event)");
	this.mUp(this.id+".dragOff()");
	this.limX = (limX||[-Infinity,Infinity]);
	this.limY = (limY||[-Infinity,Infinity]);
	this.onIniDrag = iniEve;
	this.onDrag = onEve;
	this.onEndDrag = endEve;
	this.draging = false;
}

arena.arenaIns.prototype.noDrag = function(){
	if (arena.nav=="sup" && document.addEventListener){
		window.onmousemove = null;
		window.onmouseup = null;
	}else{
		this.releaseEv("mousedown",this.id+".dragOn(event)",false);
		(arena.nav!="ns4")? this.dragIE() : this.releaseEv("mousemove",this.id+".dragMove(event)",false); 
		this.releaseEv("mouseup",this.id+".dragOff()",false);
	}
}

arena.arenaIns.prototype.dragOn = function(e){
	var x = (arena.nav=="ns4")? e.pageX : (document.addEventListener)? e.clientX : event.x+document.body.scrollLeft;
	var y = (arena.nav=="ns4")? e.pageY : (document.addEventListener)? e.clientY : event.y+document.body.scrollTop;
	this.xdrag = x-this.x;
	this.ydrag = y-this.y;
	this.draging = true;
	this.origZ = this.z();
	this.z(2000);
	if (this.onIniDrag) eval(this.onIniDrag);
	if (arena.nav!="ns4" && !document.addEventListener){
		eval("document.onmousemove=function(){"+this.id+".dragMove()}");
		eval("document.onmouseup=function(){"+this.id+".dragOff()}");
		document.ondragstart=function(){event.returnValue=false};
	} else if (arena.nav!="ns4") {
		var temp = "arena.dMove("+this.id+",event)";
		window.onmousemove = function(event) { eval(temp); };
		var temp2 = "arena.dOff("+this.id+")";
		window.onmouseup = function(event) { eval(temp2); };
	}
	return false;
}

arena.arenaIns.prototype.dragMove = function(e){
	var x = (arena.nav=="ns4")? e.pageX : (document.addEventListener)? e.clientX : event.x+document.body.scrollLeft;
	var y = (arena.nav=="ns4")? e.pageY : (document.addEventListener)? e.clientY : event.y+document.body.scrollTop;
	var xAux = x-this.xdrag;
	var yAux = y-this.ydrag;
	if (this.draging) {
		this.move(((xAux>=this.limX[0] && xAux<=this.limX[1])? xAux : ((xAux<this.limX[0])? this.limX[0] : this.limX[1])),((yAux>=this.limY[0] && yAux<=this.limY[1])? yAux : ((yAux<this.limY[0])? this.limY[0] : this.limY[1])));
		if (this.onDrag) eval(this.onDrag);
		return false
	}else return true
}

arena.arenaIns.prototype.dragOff = function(){
	this.draging = false;
	this.z(this.origZ);
	if (arena.nav!="ns4") this.dragIE();	
	if (this.onEndDrag) eval(this.onEndDrag);
	return false;
}

arena.arenaIns.prototype.dragIE = function(){
	if (!document.addEventListener){
		document.onmousemove=null;
		document.onmouseup=null;
		document.ondragstart=function(){event.returnValue=true};
	}else{
		window.onmousemove = null;
		window.onmouseup = null;
	}	
}

arena.dMove = function(quien, e) { quien.dragMove(e);  }

arena.dOff = function(quien) { quien.dragOff(); }
