$(document).ready( function()
{

	$(".ui-spinner2").each( function (i) 
	{

		function updateSpinner( )
		{
			
			position += speed

			if (speed!=0)
			{
				speed /= 1.1
		
			
				if (speed>-1 && speed<1)
				{
					speed = 0
					if (interval)
					{
						interval = clearInterval(interval)
					}
				}
			}
			
			var os = 6.28 / items.length;
			
			items.each( function (i)
			{
				var it = (os*i)+(position/50)
				var cy = Math.cos(it)
				var cx = Math.sin(it)
				
				var z = 0.75+(cy/4)

				var innerWidth = width - (maxItemWidth * z)
				var innerHeight = height - (maxItemHeight * z)

				var y = innerHeight/2.5;
				var x = (cx * innerWidth/2) + innerWidth/2

				var w = maxItemWidth * z
				var h = maxItemHeight * z
				
				var jqthis = $(this)
				
				jqthis.css({ left: x, top:y, zIndex: parseInt(cy*10)+100 });
				jqthis.children("img").css({ width: w, height: h, opacity:0.3+z/1.5 });
			} )

		}

		var interval;
		var speed = 0
		var position = 0;
		
		var spinner = $(this)
		var lastX = 0;
		var width = spinner.get(0).clientWidth;
		var height = spinner.get(0).clientHeight;
		var maxItemHeight = 0
		var maxItemWidth = 0
		
		var items = spinner.children("a")
		
		for (var c=0; c<items.length;c++)
		{
			var itemHeight = items[c].clientHeight
			var itemWidth = items[c].clientWidth
			maxItemHeight = (itemHeight>maxItemHeight) ? itemHeight : maxItemHeight
			maxItemWidth = (itemWidth>maxItemWidth) ? itemWidth : maxItemWidth
		}

		var innerWidth = width - maxItemWidth
		var innerHeight = height - maxItemHeight
		
		
		this.onmousemove = function(ev)
		{
			if (!interval)
			{
				interval = setInterval( updateSpinner, 5)
			}
			var x = (ev || window.event).clientX
			speed = lastX - x;
			if (speed>15) speed = 15
			if (speed<-15) speed = -15
			lastX=x;

		}
		updateSpinner()
	} )	
} )

