$.AjaxCFC({require:'json,dDumper,blockUI,jquery.fastSerialize'});
$.AjaxCFCHelper.setDebug(false);
$.AjaxCFCHelper.setBlockUI(false);
$.AjaxCFCHelper.setUseDefaultErrorHandler(true);
$.AjaxCFCHelper.setSerialization('json');

function ajaxCall(cfcName, cfcFunc, nxtElem, frmData, parData, callBack) {
	var params = {};
	if(frmData != null && frmData != '') {
		params = $(frmData).fastSerialize(frmData);
	}
	if(parData != null && parData != '') {
		var arrPar = parData.split(',');
		for (i=0; i<arrPar.length; i++) {
			par = arrPar[i].split('=');
			params[par[0]] = unescape(par[1]);
		}
	}
	if(nxtElem != null && nxtElem != '') {
		params['elem'] = nxtElem;
	}
	if(!callBack || (callBack != null && callBack != '')) {
		callBack = 'ajaxCallBack';
	}
	ajaxCallCfc(cfcName, cfcFunc, params, eval(callBack));
}
function ajaxCallCfc(cfcName, cfcFunc, params, callBack) {
	$.AjaxCFC({
		url: cfcName,
		method: cfcFunc,
		data: params,
		success: function(data) {
			callBack(data);
	  	}
	});
	return false;
}
function ajaxCallBack(data) {
	if(data.BEFOREJS)
		eval(data.BEFOREJS);
	if(data.ELEM && data.HTML && document.getElementById(data.ELEM))
		$('#'+data.ELEM).html(data.HTML);
	if(data.AFTERJS)
		eval(data.AFTERJS);
}
