var e_cache = new Array();
function e(o, c) { if(!e_cache[o] || c) e_cache[o] = document.getElementById(o); return e_cache[o];}

var mRI = 0;
var mRB;

function mRU(o, b) {
	if(!mRI) {
		o = e(o);
		if(!o) return false;

		o.style.visibility='hidden';
		o.style.display='inline';

		t = o.getElementsByTagName('A');
		for(i in t) t[i].onmouseover = mRU;

		o.onmouseover = mRU;
		o.onmouseout = mRD;
		b.onmouseout = mRD;

		m = new Object();
		m.x1 = getX(b); m.x2 = getX(o); m.w1 = getW(b); m.w2 = getW(o); m.y1 = getY(b); m.y2 = getY(o); m.h1 = getH(b); m.h2 = getH(o);

		m.object = o;
		m.speed = 10;
		m.frames = 10;
		m.count = 0;
		m.shadow = true;
		mRI = m;
		mRDraw(1);
	}
	mRI.count++;
}

function mRDraw(a) {

	m = mRI;
	o = m.object;

	x1 = m.x1; x2 = m.x2; w1 = m.w1; w2 = m.w2; y1 = m.y1; y2 = m.y2; h1 = m.h1; h2 = m.h2;

	if(typeof(mRB) != 'object') {
		mRB = document.createElement('div');
		with(mRB.style) {
			border = '1px solid #cde4ed';
			background = '#ffffff';
			width = (a? w1: w2) + 'px';
			height = (a? h1: h2) + 'px';
			position = 'absolute';
			zIndex = 50;
			left = (a? x1: x2) + 'px';
			top = (a? y1: y2) + 'px';
		}
		m.i = m.frames;
		if(m.shadow) e(o.id+'Shadow').style.display = 'none';
		o.style.visibility='visible';
		o.style.display = 'none';
		w = (a? w1: w2);
		h = (a? h1: h2);
		document.body.appendChild(mRB);
	}

	if(h > 0 && w > 0 && --m.i) {
	w = w - (a? -1: 1) * w2 / m.frames + (a? -1: 1) * w1 / m.frames;
	h = h - (a? -1: 1) * h2 / m.frames + (a? -1: 1) * h1 / m.frames;

		with(mRB.style) {
			left = Math.floor(x2 - (x1 > x2? -1: 1) * (a? m.i: m.frames - m.i) * Math.abs(x1 - x2) / m.frames) + 'px';
			top = Math.floor(y2 - (y1 > y2? -1: 1) * (a? m.i: m.frames - m.i) * Math.abs(y1 - y2) / m.frames) + 'px';

			width = w + 'px';
			height = h + 'px';
		}
		setTimeout('mRDraw('+a+')', m.speed);
	} else {
		document.body.removeChild(mRB);
		mRB = void(0);
		if(a) {
			o.style.display = 'inline';
			if(m.shadow) e(o.id+'Shadow').style.display = 'block';
		} else {
			if(m.shadow) e(o.id+'Shadow').style.display = 'none';
			mRI = void(0);
		}
	}
}

function mRD() { setTimeout('mRDrawWait('+mRI.count+')', 333); }
function mRDrawWait(p) { if(mRI.count == p) mRDraw(0); }

function getInt(n) { return n == 'auto'? 0: parseInt(n.replace('px', '')); }
function getStyle(o, s) { if(o.currentStyle) return o.currentStyle[s]; else if(window.getComputedStyle) return document.defaultView.getComputedStyle(o, null).getPropertyValue(s.replace(/([A-Z]+)/g, '-$1').toLowerCase()); }
function getX(o) { return getXY(o, 1); }
function getY(o) { return getXY(o, 0); }
function getW(o) { return getInt(getStyle(o, 'width')) + getInt(getStyle(o, 'paddingLeft')) + getInt(getStyle(o, 'paddingRight')); }
function getH(o) { return getInt(getStyle(o, 'height')) + getInt(getStyle(o, 'paddingTop')) + getInt(getStyle(o, 'paddingBottom')); }
function getXY(o, xy) { var p = 0; if(o.offsetParent) while(1) { p += (xy? o.offsetLeft: o.offsetTop); if(!o.offsetParent) break; o = o.offsetParent; } else if(o.x || o.y) p += (xy? o.x: o.y); return p; }

