// <div> with floating pano
var p;
// offset of p, inited
var l = -200;
// float increment, inited with no motion (0)
var d = 0;

// offsetTop of frame
var ot;
// offsetLeft of frame
var ol;
// timeout object
var mto;

// start function: gets pano, frame and its position
function s() {
	p = document.getElementById('wndI');
	o = document.getElementById('wnd');
	ot = o.offsetTop;
	ol = o.offsetLeft;
}

// mouse movement handler
function mm(e) {
	// remove tmeout
	clearTimeout(mto);
	
	// get mouse position relative to frame
	var x = e.clientX - ol;
	var y = e.clientY - ot + window.pageYOffset;
	
	if (x < 0 || y < 0 || x > 800 || y > 600) {
		// mouse out from frame. nothin to do
	} else {
		// re-get mouse coordinates
		var x = ((e.clientX > ol) ? e.clientX - ol : 0);
		var y = ((e.clientY > ot) ? e.clientY - ot : 0);
		if (x > 800) x = 800;
		// sign of mouse offset relative to center of frame
		xd = (x - 400) / Math.abs(x - 400);
		// mouse x-coord relative to center of frame
		x = Math.abs(x - 400);
		if (y > 600 - window.pageYOffset) y = 600 - window.pageYOffset;
		
		// set increment by regions
		if (x > 350) {
			d = 4 * xd;
		} else if (x > 200) {
			d = 3 * xd;
		} else if (x > 100) {
			d = 2 * xd;
		} else if (x > 30) {
			d = xd;
		} else {
			d = 0;
		}
		
		// spam statusbar, disabled
		//window.status = "X: " + x + ", Y: " + y + " " + xd + " " + d + " " + l + " == " + p.offsetWidth;
		
		// call mover
		m2();
	}
}

// move pano
function m2() {
	l -= d;
	// set to limit when reached
	if (l > 0) {
		l = 0;
	} else if (l < 800 - p.offsetWidth) {
		l = 800 - p.offsetWidth;
	} else {
		// or move periodically
		p.style.left = l+'px';
		mto = setTimeout('m2()', 100);
	}
}

