// additional my functions
function showAjaxSpinner(sUpdateId) {
	var updateObj = $(sUpdateId);
	updateObj.addClass('_ajax_whileLoading');
	var w = updateObj.offsetWidth;

	var newDiv = new Element('span', { 'styles': {'width': w}, 'class': '_ajax_aboveLoading', 'id': sUpdateId+'spinnertemp'});
	newDiv.injectBefore(sUpdateId);
};

function removeEditors(sUpdateId) {
		
		// get all of textarea objects inside updated DOM element
	 var arTextareaObjects = $ES('textarea', sUpdateId);
	 if(arTextareaObjects.length > 0 ) {
			// remove all instances of tinyMCE editors from the view
		arTextareaObjects.each(
			function(textareaObject, key) {
				
				var textareaId = textareaObject.id;
				
				if(tinyMCE.getInstanceById(textareaId) != null) {
					tinyMCE.execCommand('mceFocus', false, textareaId);
					tinyMCE.execCommand('mceRemoveControl', false, textareaId);
				}
			}
		);
	 };
}

function ajaxRequest(sUrl, sUpdateId) {
		
	if(typeof tinyMCE != 'undefined') removeEditors(sUpdateId);
	showAjaxSpinner(sUpdateId);

//	alert('sUpdateId');
	
	new Ajax(sUrl, {
		method: 'get',
		update: $(sUpdateId),
		evalScripts: true,
		onComplete: function() {
			$(sUpdateId+'spinnertemp').remove();
			$(sUpdateId).removeClass('_ajax_whileLoading');
		}
	}).request();
	return false;
};

function ajaxFormRequest(sUrl, sUpdateId, formName) {
			
	if(typeof tinyMCE != 'undefined') removeEditors(sUpdateId);
	showAjaxSpinner(sUpdateId);
		// jesli jest zdefiniowany obiekt edytora tinyMCE
	if(typeof tinyMCE != 'undefined') tinyMCE.triggerSave();
	
//	alert('sUpdateId:'+sUpdateId);
	
	var formObj = $(formName);
	formObj.action = sUrl;
 
	formObj.send({
		method: 'post',
		update: $(sUpdateId),
		evalScripts: true,
		onComplete: function() {
			$(sUpdateId+'spinnertemp').remove();
			$(sUpdateId).removeClass('_ajax_whileLoading');
		}
	});
};
