	
//JS to set, increment and animate the progress wheel.

var progresswheel_theta;
var progresswheel_progressImage;
var progresswheel_interval;
var progresswheel_textbox;
var progresswheel_speed;

var wheelImages;
var wheelReady;

var wheelIsAnimating;

var progressachievements;

//spritesheet
var progress_sprite_width;
var progress_sprite_height;
	
var progress_sprite_wheelwidth;
var progress_sprite_wheelheight;

var progress_sprite_across;
var progress_sprite_down;

var progress_wheel_x;
var progress_wheel_y;

//pre-calculated coords
var wheelCoords;

function progressWheelPoint(x,y)
{
	this.x = x;
	this.y = y;
}

function progresswheel_init(wheelimageID,textboxID,speed)
{
	//alert("init progwheel");
	
	progress_sprite_width = 1200;
	progress_sprite_height = 750;
	
	progress_sprite_wheelwidth =50;
	progress_sprite_wheelheight =50;

	progress_sprite_across = Math.floor((progress_sprite_width/progress_sprite_wheelwidth));
	progress_sprite_down = Math.floor((progress_sprite_height/progress_sprite_wheelheight));
	
	wheelCoords = new Array();
	for(var j = 0;j<=360;j++)
	{
		wheelCoords[j] = new progressWheelPoint((j % progress_sprite_across) * progress_sprite_wheelwidth, Math.floor(j / progress_sprite_across) * progress_sprite_wheelheight);				
	}
	
	wheelReady= 1;	
	progresswheel_theta = 1;
	progresswheel_progressImage = document.getElementById(wheelimageID);
	progresswheel_textbox = document.getElementById(textboxID);
	
	//override
	progresswheel_speed = 20;	
	
	progressachievements = new Array();
	progressachievements["at20"] = false;
	progressachievements["at50"] = false;
	progressachievements["at70"] = false;
	progressachievements["at100"] = false;
}

function progresswheel_animate(target)
{			
	//alert("doing animate");

	var x=0;
	var y=0;
	
	var percent = parseInt((progresswheel_theta/3.6));
	
	if(percent >= 20 && progressachievements["at20"] == false
		|| percent >= 50 && progressachievements["at50"] == false
		|| percent >= 70 && progressachievements["at70"] == false
		|| percent >= 100 && progressachievements["at100"] == false)
	{		
		//FloatingText_AddObjectAtElement('floatingTextHolder','progressFrameImage',-40,20,'floatingTextClass','Achievement Unlocked!',250,0,0.02,1500,0,-2,25);
		switch(percent)
		{
			case 20: $('prog_crown_1').src="img/crownbronze.png" ;$('prog_crown_1').title="Bronze Profile Achievement Unlocked" ; progressachievements["at20"] = true;break;
			case 50: $('prog_crown_2').src="img/crownsilver.png" ;$('prog_crown_2').title="Silver Profile Achievement Unlocked";progressachievements["at50"] = true;break;
			case 70: $('prog_crown_3').src="img/crowngold.png" ;$('prog_crown_3').title="Gold Profile Achievement Unlocked";progressachievements["at70"] = true;break;
			case 100: $('prog_crown_4').src="img/crowngold.png" ;$('prog_crown_4').title="Super Mega Profile Achievement Unlocked";progressachievements["at1000"] = true;break;
		}
	}
		
	progresswheel_progressImage.style.backgroundPosition = (-wheelCoords[progresswheel_theta].x)+"px "+(-wheelCoords[progresswheel_theta].y)+"px";	
				
	if(percent<10)
		progresswheel_textbox.innerHTML = "0"+percent+"%";
	else
		progresswheel_textbox.innerHTML = percent+"%";	
		
	if(progresswheel_theta<target)
		progresswheel_theta++;
	else
	{
		window.clearInterval(progresswheel_interval);			
		progresswheel_progressImage.style.backgroundPosition = (-wheelCoords[progresswheel_theta].x)+"px "+(-wheelCoords[progresswheel_theta].y)+"px";					
		wheelIsAnimating =0;
	}		
}

function progresswheel_progressInc(percentage)
{
	//alert("progress int");

	if(debug_switch)
		alert("Progress Inc"); //debug
	var target = (percentage/5)*18;
	//alert("target "+target); //debug	
	progresswheel_interval = window.setInterval("progresswheel_animate("+target+");",progresswheel_speed);
}

function progresswheel_progressSet(percentage)
{
	//alert("progress set " + percentage); //debug
	
	progresswheel_theta = (percentage/5)*18;		
	progresswheel_progressImage.style.backgroundPosition = (-wheelCoords[progresswheel_theta].x)+"px "+(-wheelCoords[progresswheel_theta].y)+"px";		
	
	if(percentage>20)
		progressachievements["at20"]=true;
	if(percentage>50)
		progressachievements["at50"]=true;
	if(percentage>70)
		progressachievements["at70"]=true;
	if(percentage>100)
		progressachievements["at100"]=true;
}

function UpdateProgressWheel(oldlevel,newlevel)	
{
	//alert("update wheel "+oldlevel+" "+newlevel);
	
	progresswheel_init("ProgressWheelImage","progressTextbox",1);		
		
	progresswheel_progressSet(oldlevel);		
	if(oldlevel != newlevel)
	{
		//alert("calling progress inc " + (newlevel)); //debug
		FloatingText_AddObjectAtElement('floatingTextHolder','progressFrameImage',0,0,'floatingTextClass','+'+(newlevel-oldlevel)+'% !',250,0,0.02,1500,0,-1,25);
		progresswheel_progressInc(newlevel);
	}	
}
