/**
 * Global JavaScript object
 */
var GENTICS = {};

/**
 * set to true e.g. by drag and drop to prevent portlet reloading from
 * replacing portlets while the user drags.
 */
GENTICS.inprogress = false;
GENTICS.forceReload = false;

/**
 * Process AJAX result from server, decode and call functions
 */
GENTICS.processResult = function(data) {
	// for each element in the array, execute the function
	jQuery(data).each(function() {
		var functionName = this.functionName;
		var parameters = this.parameters;
		try {
			var func = eval(functionName);
			func(parameters);
			GENTICS.removeInProcessIndicator();
		} catch (ex) {
		}
	});
}


GENTICS.processIndicatorContainer = null;
GENTICS.processIndicatorImg = null;
GENTICS.processImageOriginalVisible = true;

GENTICS.addInProcessIndicator = function() {
	var elem = jQuery(GENTICS.processIndicatorContainer);
	if (elem != null) {
		var img2add = new Image();
		img2add.src = GENTICS.processIndicatorImg;
		elem.html(img2add);
		if (elem.is(":hidden")) {
			this.processImageOriginalVisible = false;
			var imageObj = jQuery(img2add);
			var marginTop = (elem.height() - imageObj.height()) / 2;
			var marginLeft = (elem.width() - imageObj.width()) / 2;
			imageObj.css("margin-left", marginLeft + "px");
			imageObj.css("margin-top", marginTop + "px");
			elem.show();
		}
	}
}

GENTICS.removeInProcessIndicator = function() {
	var elem = jQuery(GENTICS.processIndicatorContainer);
	if (elem != null && elem.html() != ""){
		elem.html("");
		if (!this.processImageOriginalVisible) {
			elem.hide();
		}
	}
}
