
/*
FILE CONCAT ADD FILE
PATH: /ft/resources/client/modules/internals/UserActions.js
*/

var UserActions = function() {
}


UserActions.prototype.BUFFER_CONTENT_TYPE = 'text/javascript';
UserActions.prototype.BUFFER_URL =          '/ft/internals/resources/buffer/UserActions.asp';


UserActions.prototype.init = function() {
	this.editIcons =   Element.parseSelector('DIV.editUser', 'wsod');
	this.deleteIcons = Element.parseSelector('DIV.deleteUser', 'wsod');

	Events.add(this.editIcons, 'click', this.editUser, this);
	Events.add(this.deleteIcons, 'click', this.deleteUser, this);
}


UserActions.prototype.editUser = function(ev, el) {
	var parentTable = Element.getParent(el, 'table');

	var querystring = [ 'username=', el.getAttribute('username'), '&role=', parentTable.getAttribute('role') ].join('');

	location.href = 'userDetails.asp?' + querystring;
}


UserActions.prototype.deleteUser = function(ev, el) {
	this.currentRow = Element.getParent(el, 'TR');

	var confirmTheDeleteRequest = confirm('To delete this user, press ok.');

	if (confirmTheDeleteRequest) {
		var inputs = {
			 'action':   'delete'
			,'userHash': el.getAttribute('userHash')
			,'userName': el.getAttribute('username')
		};

		this.completeAction(inputs);
	}
	else {
		this.currentRow = null;
	}
}


UserActions.prototype.completeAction = function(oArgs) {
	oArgs = oArgs || {};

	var serializedData = Common.getSerializer().serialize(oArgs);

	var contentBuffer = Common.getContentBuffer();
		contentBuffer.abortRequests();
		contentBuffer.load(
			{
				 contentType: this.BUFFER_CONTENT_TYPE
				,context:     this
				,data:        { serializedData:serializedData }
				,onload:      this.handleResults
				,onerror:     this.handleError
				,preventEval: true
				,url:         this.BUFFER_URL
			}
		);
}


UserActions.prototype.handleResults = function(cb) {
	var deserializedResults = Common.getSerializer().deserialize(cb.getResult());
	// console.log(deserializedResults);

	if (deserializedResults.isLocked) {
		Element.remove(this.currentRow);

		this.currentRow = null;
	}
}


UserActions.prototype.handleError = function(cb) {
	var deserializedResults = Common.getSerializer().deserialize(cb.getResult());
	// console.log(deserializedResults);

	this.currentRow = null;
}
