function Spaz()
{
	this.reqWidgetQueue= new Array();//queue with the widgets that made a request through this controller object
	var self=this;
	
	this.letter = null;
	this.gameEnded = false;
	this.gameSuccess = false;
	
	/**
	 * @param The manager index of the request 
	 * @desc This method is a handler for the completition of one request
	 */
	this.handleResponse=function (managerIndex)
	{		
		var code = RequestManager.getInstance().getRequestObj (managerIndex).getResponseErrorCode();
		var content = RequestManager.getInstance().getRequestObj (managerIndex).getResponseContent();
		switch(code)
		{
//			litera exista 
			case 1 :
				 var letters = content.split(",");
				 for(i in letters)
				 {
				 	_e("c_letter_"+letters[i]).src = Config.APP_URL+"images/l_set1/"+this.letter+".gif";
				 }
			break;
			case 3 :
				 var letters = content.split(",");
				 for(i in letters)
				 {
				 	_e("c_letter_"+letters[i]).src = Config.APP_URL+"images/l_set1/"+this.letter+".gif";
				 }
				 alert("Felicitari, ai ghicit cuvantul,\n pentru a mai ghici unul, reincarca pagina");
				 this.gameSuccess = true;
			break;
//			nu am gasit litera
			case 2 :
				_e("the_face_"+content).src = Config.APP_URL+"images/sp_sad_face.gif";
				if(content=='5')
				{
					this.gameEnded = true;
					alert("Ne pare rau dar nu ai ghicit cuvantul!\n Pentru a incerca din nou, reincarcati pagina!");
				}
			break;
		}
	}
	
	/**
	 * @param object widget object
	 * @param array parameters of the request	
	 * @desc this method registers a widget with the controller object 
	 * @return number The index of the widget
	 */
	this.testLetter=function(letter)
	{
		if(this.gameEnded == true)
		{
			alert("Jocul s-a sfarsit!\n Reincarcati pagina pentru a incerca din nou!");
			return false;
		}
		if(this.gameSuccess == true)
		{
			alert("A-TI GHICIT CUVANTUL !!!\n Pentru a mai ghici unul reincarcati pagina!");
			return false;
		}
		this.letter = letter;
		var rqid=RequestManager.getInstance().createRequest(self,Config.APP_URL+"dy.php?action=test_letter&letter="+letter);
		RequestManager.getInstance().startRequest(rqid);
		return rqid;
	}

	/**
	 * @param the index of the request 
	 * @desc Remove widget from the queue
	 */
	this.removeWidget=function (managerIndex)
	{
		RequestManager.getInstance().removeRequest(managerIndex);		
		self.reqWidgetQueue[managerIndex]=null;
	}
}

Spaz.useLetter =function(objReff)
{
	var x = getLeft(objReff);
	var y = getTop(objReff);
	
	var n_img = document.createElement("img");
	n_img.src = Config.APP_URL+"images/used.gif";
	
	n_img.setAttribute("class","used_letter");
	n_img.className = "used_letter";
	
	if(Config.browserName=="msie")
	{
		x += 10;
	}
	else
	{
		x += 10;
		y -= 10;
	}
	
	n_img.style.left = x+"px";
	n_img.style.top = y+"px";
	
	document.getElementsByTagName("body")[0].appendChild(n_img);
}

Spaz.__instance__=null;

Spaz.getInstance=function()
{
	if(Spaz.__instance__==null)
	{
		Spaz.__instance__=new Spaz();
	}
	return Spaz.__instance__;
}