function wlAjax (ajData, ajParams) {
	if (ajParams.screenBlock==undefined) ajParams.screenBlock = false;
	if (ajParams.caching==undefined) ajParams.caching = true;
	if (ajParams.windowtop==undefined) ajParams.windowtop = true;
	if (ajParams.callback==undefined) ajParams.callback = undefined;
	if (ajParams.backendPath==undefined) ajParams.backendPath = '/call/wlAjax.php';
	if (ajParams.include!=undefined) ajData['include'] = ajParams.include;
	//alert('ajData= '+ajData+', typeof(ajData)= '+typeof(ajData)+', ajData.length= '+ajData.length); // +', obj.tags(`img`)= '+obj.tags('img')+', obj.childNode.src= '+obj.childNode.src
	if (ajData!=undefined && typeof(ajData)=="object") { //  && ajData.length!=undefined
		var objAjaxResult = $('ajresult');
		JsHttpRequest.query(
				ajParams.backendPath, // backend
				ajData,
				function(result, errors) { // Function is called when an answer arrives
					if (errors!=undefined && errors!='') { // Write errors to the debug div
						if (objAjaxResult!=undefined) {
							if (ajParams.windowtop) scrollToObj(objAjaxResult);
							objAjaxResult.className = 'ajresulterror';
							objAjaxResult.innerHTML = errors;
						} else {
							alert('Не найден слой для вывода отчета/ошибок\n------------------------------\n'+errors+'\n------------------------------');
						}
					} else {
						if (objAjaxResult!=undefined) objAjaxResult.className = 'ajresult';
						
						if (ajParams.callback!=undefined) {
							if (result!=undefined) { // Write the answer
								eval(ajParams.callback+'(result)');
							}
						} else {
							alert('Не назначена функция для работы с результатом');
						}
						
					}
				},
				//false  // do not disable caching
				//true // надо что бы данные всегда обновлялись, когда люди вкл/выкл пункты...
				!ajParams.caching // надо что бы данные всегда обновлялись, когда люди вкл/выкл пункты...
		);
	}
}
