OR.prototype.MID=function(ex,ey,duration,acc,fullAnim,ef){
	this.acc=acc;
	this.fullAnim=fullAnim||0;
	this.oX=this.x;
	this.oY=this.y;
	this.dX=ex-this.x;
	this.dY=ey-this.y;
	this.maal=_int(duration/50);
	this.loopdone=0;
	this.moving=true;
	this.eFnc=ef||0;
	this.MIDloop();
}
OR.prototype.MIDloop=function(){
	var nx,ny,frac;
	if(this.loopdone<this.maal){
		this.loopdone++;
		frac = this.loopdone/this.maal;
		if(this.acc>0){
			nx=this.oX+_int((1-Math.cos(frac*0.5*Math.PI))*this.dX);
			ny=this.oY+_int((1-Math.cos(frac*0.5*Math.PI))*this.dY);
		}else if(this.acc<0){
			nx=this.oX+_int(Math.sin(frac*0.5*Math.PI)*this.dX);
			ny=this.oY+_int(Math.sin(frac*0.5*Math.PI)*this.dY);
		}else{
			if(this.fullAnim){
				nx=this.oX+_int((1-Math.cos(frac*Math.PI))*this.dX*0.5);
				ny=this.oY+_int((1-Math.cos(frac*Math.PI))*this.dY*0.5);
			}else{
				nx=this.oX+_int(frac*this.dX);
				ny=this.oY+_int(frac*this.dY);				
		}}
		this.MT(nx,ny);
		var str="";
		str+= this.obj+".MIDloop()";
		this.midTim = setTimeout(str,50);
	}else{
		clearTimeout(this.midTim);
		this.MT(this.oX+this.dX,this.oY+this.dY);
		this.moving=false;
		if(this.eFnc){ 
			eval(this.eFnc);
			this.eFnc=null;
		}this.chkMoves();
}}
OR.prototype.cancelMoves = false;
OR.prototype.moving = false;
OR.prototype.doDelayed = function(meth,wait,args){
	var tst = typeof args;
	var str = meth+"(";
	if(tst=="object"){
		for(var i=0;i<args.length;i++){
			if(typeof args[i]=="string") str+="'"+args[i]+"'";
			else str += args[i];
			if(i<args.length-1) str += ",";
	}}
	else if(tst=="string") str += "'"+args+"'";
	else str += args;
	str +=")";
	this.moves.push(str);
	this.mvTim = setTimeout(this.obj+'.doMoves()',wait);
}
OR.prototype.chkMoves = function(){
	if(this.moves && this.moves.length) this.doMoves();
}
OR.prototype.doCancelMoves = function(keepCurrent) {
	if(keepCurrent) this.cancelMoves = true;
	this.moves = new Array();
}
OR.prototype.addMove = function(meth,args) {
	var str = meth+"(";
	if(args){
	var tst = typeof args;
		if(tst=="object"){
			for(var i=0;i<args.length;i++){
				if(typeof args[i]=="string") str+="'"+args[i]+"'";
				else str += args[i];
				if(i<args.length-1) str += ",";
		}}
		else if(tst=="string") str += "'"+args+"'";
		else str += args;
	}
	str +=")";
	if(!this.moves) this.moves=new Array();
	this.moves.push(str);
}
OR.prototype.doMoves = function() {
	if(this.moves && this.moves.length){
		var curMove = this.moves.shift();
		//_sts('doing:' + curMove);
		clearTimeout(this.mvTim);
		eval(this.obj+"."+curMove);
}}
OR.prototype.CID = function(t,r,b,l,duration,ef) {
	if(ef) this.eFnc = ef;
	this.clipping=true;
	this.loopdone=0;
	this.maal = _int(duration/50);
	var t,r,b,l;
	ct=this.ct||0;
	cr=this.cr||this.GS('width');
	cb=this.cb||this.GS('height');
	cl=this.cl||0;
	this.CT(ct,cr,cb,cl,0);
	this.endClip=[ct,cr,cb,cl];
	this.CIDloop(t,r,b,l);
}
OR.prototype.CIDloop = function(t,r,b,l){
	var fractie=0;
	this.loopdone++;
	if(this.loopdone<this.maal){
		fractie = this.loopdone/this.maal;
		with (Math){			
			var q = sin(fractie*0.5*PI);
			var ct = parseInt(this.endClip[0]+(t*q));
			var cr = parseInt(this.endClip[1]+(r*q));
			var cb = parseInt(this.endClip[2]+(b*q));
			var cl = parseInt(this.endClip[3]+(l*q));
		}
		this.CT(ct,cr,cb,cl,1);
		var str="";
		str+= this.obj+".CIDloop("+t+","+r+","+b+","+l+")";
		this.clipTim = setTimeout(str,50);
	}else{
		clearTimeout(this.clipTim);
		this.CT(this.endClip[0]+t,this.endClip[1]+r,this.endClip[2]+b,this.endClip[3]+l,0);
		this.clipping=false;
		if(this.eFnc){
			eval(this.eFnc);
			this.eFnc=null;
		}
		this.chkMoves();
}}
OR.prototype.clipping = false;
OR.prototype.ClipFromMiddle=function(setwidth,endF,dur){
	var sw=setwidth||0;
	var ef=endF||0;
	var tim=dur||400;
	var horClip = _int(this.GS('offsetWidth')/2-1);
	var vertClip = _int(this.GS('offsetHeight')/2-1);
	this.CT(vertClip,horClip,vertClip,horClip,sw);
	this.CID(-vertClip,horClip,vertClip,-horClip,tim,ef);
}