DomElement.prototype.slideTo=function (endx,endy,inc,speed) {
	if (endx==null) endx=this.getX()
	if (endy==null) endy=this.getY()
	var distx=endx-this.getX()
	var disty=endy-this.getY()
	this.slideStart(endx,endy,distx,disty,inc,speed)
}
DomElement.prototype.slideBy=function (distx,disty,inc,speed) {
	if (distx==null) distx=0
	if (disty==null) disty=0
	var endx=this.getX()+distx
	var endy=this.getY()+disty
	this.slideStart(endx,endy,distx,disty,inc,speed)
}
DomElement.prototype.slideStart=function (endx,endy,distx,disty,inc,speed) {
	if (this.slideActive) return
	if (!inc) inc=10
	if (!speed) speed=20
	this.slideN=Math.floor(Math.sqrt(Math.pow(distx,2) + Math.pow(disty,2))/inc)
	if (this.slideN==0) return
	this.slideEndX=endx
	this.slideEndY=endy
	this.slideDX=distx/this.slideN
	this.slideDY=disty/this.slideN
	this.slideActive=true
	this.slideI=0
	this.slideInterval=setInterval(this.obj+".slide()",speed) 
}
DomElement.prototype.slide=function () {
	if (!this.slideActive) {
		clearInterval(this.slideInterval)
		this.slideActive=false
	} else if (this.slideI++<this.slideN) {
		this.setXY(this.getX()+this.slideDX,this.getY()+this.slideDY)
		this.invokeEvent("slide")
	} else {
		this.setXY(this.slideEndX,this.slideEndY)
		this.invokeEvent("slide")
		this.slideActive=false
		clearInterval(this.slideInterval)
		this.invokeEvent("slideend")
	}
}

