DOM.frenadoTo = function(el,x,y,velocidad,intervalo){
	
	var el = this.getElement(el);
	var endX = (x!=null) ? x : this.getX(el);
	var endY = (y!=null) ? y : this.getY(el);

	var frenado;

	if (frenado = getFrenadoByElement(el))
	{
		frenado.posX = DOM.getX(el);
		frenado.posY = DOM.getY(el);
		frenado.endX = endX;
		frenado.endY = endY;
		clearTimeout(frenado.timer)
		frenado.loop()
	}
	else
		frenado = new DOMfrenado(el,endX,endY,velocidad,intervalo);
	
	
	
}

var DOMfrenadoCounter = 0;
var DOMfrenadoArray = [];

getFrenadoByElement  = function(el)
{
	var rt = null;
	for (var i in DOMfrenadoArray)
	{
		if (DOMfrenadoArray[i].el == el)
		{
			rt = DOMfrenadoArray[i];
			break;
		}
	}
	return rt;
}

function DOMfrenado(el,endX,endY,velocidad,intervalo)
{
	this.el = el;
	this.endX = endX;
	this.endY = endY;
	this.velocidad = velocidad;
	this.intervalo = intervalo;
	
	if (this.timer) clearTimeout(this.timer)
	this.timer = null
	
	this.posX = DOM.getX(this.el);
	this.posY = DOM.getY(this.el);

	this.obj = 'frenado'+DOMfrenadoCounter++;
	eval(this.obj+'=this');	
	
	this.arrayPosition = DOMfrenadoArray.length
	DOMfrenadoArray[this.arrayPosition] = this

	this.loop();
}



DOMfrenado.prototype.loop = function(){

	this.posX=(this.endX+this.velocidad*this.posX)/(this.velocidad+1);
	this.posY=(this.endY+this.velocidad*this.posY)/(this.velocidad+1);

	DOM.moveTo(this.el,this.posX,this.posY);
	
	if ((Math.abs(this.endY-this.posY)<1)&&(Math.abs(this.endX-this.posX)<1)) {
		DOM.moveTo(this.el,this.endX,this.endY);
		if (this.el.onFrenadoEnd) this.el.onFrenadoEnd();
		//DOMfrenadoArray.splice(this.arrayPosition,1)
	}
	else this.timer = setTimeout(this.obj+".loop()",this.intervalo);
}
