function SizeWatch(elemId, elemsToMove) {
	for(var i=0; window['__sizeWatch'+i]; i++);
	this.objName='window.__sizeWatch'+i;
	eval(this.objName+'=this');
	this.varName= document.body&&document.body.offsetWidth ? 'document.body.offset' : 'window.inner' ;
	if( !document.getElementById
			|| !(this.elem=document.getElementById(elemId))
			|| !this.elem.style
	) return null;
	this.elemWidth=this.elem.style.width.match(/^(\d+)px$/i) ? parseInt(RegExp.$1) : null;
	this.elemHeight=this.elem.style.height.match(/^(\d+)px$/i) ? parseInt(RegExp.$1) : null;
	this.elemsToMove={};
	if(elemsToMove) for(var i=0, elemsToMove=elemsToMove.split(','); i<elemsToMove.length; i++) {
		var e=document.getElementById( elemsToMove[i] );
		if(e && e.style) this.elemsToMove['_'+i]={
			elem:e
			,l:parseInt( e.style.left )
			,t:parseInt( e.style.top )
		}
	}
	this.check=function() {
		var w=parseInt( eval(this.varName+'Width') )
				,h=parseInt( eval(this.varName+'Height') )
				,l=this.elemWidth==null ? 0 : Math.max(0, (w-this.elemWidth)>>1)
				,t=this.elemHeight==null ? 0 : Math.max(0, (h-this.elemHeight)>>1)
		;
		if(this.lastLeft!=l || this.lastTop!=t) {
			this.elem.style.left=(this.lastLeft=l)+'px';
			this.elem.style.top=(this.lastTop=t)+'px';
			for(var _i in this.elemsToMove) {
				var e=this.elemsToMove[_i];
				e.elem.style.left=l+e.l;
				e.elem.style.top=t+e.t;
			}
		}
	};
	this.check();
	this.interval=window.setInterval(this.objName+'.check()', 500);
	return this;
}

