(function(){

var slowmove = 0.0001;
var normalmove = 0.001;

var requestAnimFrame = (function(){
	return window.requestAnimationFrame ||
		window.webkitRequestAnimationFrame ||
		window.mozRequestAnimationFrame ||
		window.oRequestAnimationFrame ||
		window.msRequestAnimationFrame ||
		function(/* function FrameRequestCallback */ callback, /* DOMElement Element */ element) {
			window.setTimeout(callback, 1000/60);
		};
})();
var a = document.getElementsByTagName("UL");
if (!a)
	a = [];
var newest;
for (var i = 0; i < a.length; i++) {
	var c = a[i];
	if (/(^| )newest( |$)/.test("" + c.className)) {
		newest = c;
		break;
	}
}
if (newest) {
	newest.style.position = "relative";
	newest.style.height = "320px";
	a = newest.getElementsByTagName("LI");
	var lis = [];
	var p;
	for (i = 0; i < a.length; i++) {
		p = a[i].getElementsByTagName("P");
		p[0].style.display = "none";
		a[i].infop = p[0];
		p[0].style.marginLeft = "110px";
		p[0].style.paddingTop = "150px";
		lis[lis.length] = a[i];
	}
	if (!lis.length)
		return;
	var target = -1;
	for (i = 0; i < lis.length; i++) {
		lis[i].flowpos = 2 * 3.1415 / lis.length * i;
		lis[i].contimg = lis[i].getElementsByTagName('IMG')[0];
		lis[i].contimg.style.position = "absolute";
		(function(){
		var closure_i = i;
		lis[i].contimg.onmouseover = function() {
			target = closure_i;
		};
		lis[i].contimg.onmouseout = function() {
			target = -1;
		};
		})();
	}
	var move = slowmove;
	var last = new Date().getTime();
	var showp = lis[lis.length-1].infop;
	var animate = function() {
		var now = new Date().getTime();
		var diff = now - last;
		if (diff < 20) {
			requestAnimFrame(animate);
			return;
		}
		last = now;

		var m = move * diff;

		if (target != -1) {
			m = normalmove * diff;
			if (lis[target].flowpos < 3.1415)
				m = -m;
			var fp = lis[target].flowpos + m;
			if (fp < 0 || fp > 2*3.1415)
				m = 0;
		}

		var maxz = -2.0;
		var maxli;
		for (i = 0; i < lis.length; i++) {
			var li = lis[i];
			li.flowpos += m;
			if (li.flowpos < 0.0)
				li.flowpos += 2*3.1415;
			if (li.flowpos >= 2*3.1415)
				li.flowpos -= 2*3.1415;
			var y = Math.cos(li.flowpos + 3.1415 / 2);
			var z = Math.cos(li.flowpos);
			if (z > maxz) {
				maxz = z;
				maxli = li;
			}
			var x = 30 - (z + 1.0) / 2.0 * 30;
			var w = 70 + z * 30;
			y = (y + 1.0) / 2.0 * 260;
			li.contimg.style.top = y + "px";
			li.contimg.style.left = x + "px";
			li.contimg.style.zIndex = "" + Math.floor(z * 2000 + 3000);
			li.contimg.style.width = Math.floor(w) + "px";
		}
		if (maxli.infop != showp) {
			showp.style.display = "none";
			showp = maxli.infop;
			showp.style.display = "block";
		}
		requestAnimFrame(animate);
	};
	requestAnimFrame(animate);
}
})();

