/**
* Методы для общения с сервером
* @namespace serverMethods
*/
/* exported serverMethods */
var serverMethods = {
	sendAction: function(field, card){
		var actions = actionHandler.possibleActions;
		if(!actions){
			return null;
		}
		for(var ai = 0; ai < actions.length; ai++){
			var action = actions[ai];
			if(action.cid == card.id && field.id == action.field){
				ui.rope.stop();
				//actionHandler.reset();
				connection.proxy.recieveCompleteAction(action);
				return action;
			}
		}
		return null;
	},
	sendButtonAction: function(type){
		var actions = actionHandler.possibleActions;
		if(!actions || !actions.length){
			return;
		}
		var actionTypes = actions.map(function(a){return a.type;});
		if(~actionTypes.indexOf(type)){
			var action = {type: type};
			actionHandler.reset();
			connection.proxy.recieveCompleteAction(action);
		}
	},
	sendResponse: function(){
		if(connection.serverWaiting){
			connection.serverWaiting = false;
			connection.proxy.recieveResponse();
		}
	},
	
	reconnect: function(){
		connection.proxy.requestGameInfo();
	},
	concede: function(){
		connection.proxy.concedeClient();
	},
	restoreClientName: function(){
		var oldName = gameOptions.get('profile_name');
		if(oldName){
			connection.proxy.changeClientName(oldName);
		}
		else{
			ui.cornerButtons.getByName('name').show();
			ui.modalManager.openModal('name');
		}
	},
	tryJoiningLinkedQueue: function(){
		var qid = location.hash.substring(1);
		if(qid.length > 0 && game.state.currentSync != 'queue' && game.state.currentSync != 'play'){
			connection.proxy.joinCustomQueue(qid);
		}
	}
};