
//control for showing application status to user

function IMS2_Status()
{
	var self = this;

	this.top;
	this.left;
	this.width;
	this.height;
	this.text;
	this.opacity = 0; //opacity
	this.opacity2;
	this.increase = 1; //increase opacity indicator
	this.decrease = 0; //decrease opacity indicator
	

	function GetContainingDiv(){
		var div;
		div = document.getElementById("status");
		return(div);
	}
	this.GetContainingDiv = GetContainingDiv;
	
	//display status message
	//provide screen position and the text for the message
	function ShowStatus(top,left,text){
		var div = self.GetContainingDiv();
		if(div){
			div.style.top = top + "px";
			div.style.left = left + "px";
			div.innerHTML = text;
			div.style.display = "block";
			setInterval("IMS2_Status.Fade()",250);
		}
	}
	this.ShowStatus = ShowStatus;
	
	function HideStatus(){
		var div = self.GetContainingDiv();
		if(div){
			div.style.display = "none";
		}
	}
	this.HideStatus = HideStatus;
	
	//change the status message while displaying
	function UpdateText(text)
	{
		self.text = text;
		var div = self.GetContainingDiv();
		if(div){
			div.innerHTML = text;
		}
	}
	this.UpdateText = UpdateText;
	
	
	//make status message fade in and out so user doesn't think the app is stuck
	function Fade(){
		var div = self.GetContainingDiv();
		if(div && div.style.display == "block")
		{
			if (self.opacity < 1 && self.increase)
				self.opacity += 0.025;
			else
			{
				self.increase = 0;
				self.decrease = 1;
			}

			if (self.opacity > 0 && self.decrease)
				self.opacity -= 0.025;
			else
			{
				self.increase = 1;
				self.decrease = 0;
			}

			self.opacity2 = (Math.sin(self.opacity * Math.PI) * 0.75) + 0.25;
			
			if(IMS2_isMSIE()){
				div.style.filter = "Alpha(Opacity=" + (self.opacity2 * 100) + ")";
			}else{
				div.style.MozOpacity = self.opacity2;
			}
		}	
	}
	this.Fade = Fade;

}

var IMS2_Status = new IMS2_Status();