/**
 * считывает данные с в указанной форме и передаёт их через ajax в скрипт
 */
(AjaxRequest = {
	req : {}, // Объект JsHtppRequest
	
	form : function(form_id, preloader_message, advanced_param) {
		var event_file = $('#'+form_id).attr('action');
		this.send(form_id, event_file, preloader_message, true, advanced_param);
	},
	
	action : function(event, preloader_message, advanced_param) {
		this.send('', event_file, preloader_message, true, advanced_param);
	},
	
	/**
	 * Depricated use AjaxRequest.form, AjaxRequest.data instead 
	 */
	send : function (form_id, event_file, preloader_message, use_lock, advanced_params) {
		this.get_brace_number = new Array();
		this.lock = true;
		this.req = new JsHttpRequest();
		this.req.caching = false;
		this.req.open('POST', event_file, true);
		
		this.req.onreadystatechange = function() {
			AjaxRequest.responseParser();
		}
		var param = (byId(form_id)) ? form2array(form_id) : new Array();
				
		// Добавляем дополнтельные параметры
		if (advanced_params) {
			for (key in advanced_params) {
				field_name = getBraceNumber(key);
				param[ field_name ] = advanced_params[key];
			}
		}
		this.req.send(param);
		
		// Показываем preloader
		if (preloader_message) {
			$('#ajaxPreloader').css('display', 'block').html(preloader_message);
			centerDiv('ajaxPreloader');
		}
	},
	

	responseParser : function () {
		if (this.req.readyState != 4) {
			return;
		}
		
		if (this.req.responseText!='') {
			centerDiv('ajaxPreloader');
			$('#ajaxPreloader').css('text-align', 'left').html('<div style="text-align:right;"><a href="javascript:void(0);" onclick="$(\'#ajaxPreloader\').css(\'display\', \'none\')">[x] Закрыть</a></div>'+this.req.responseText).show();
		} else {
			$('#ajaxPreloader').css('display', 'none');
		}
		
		for (key in this.req.responseJS) {
			if (key == 'javascript') {
				eval(this.req.responseJS[key]);
			} else if (key == 'action_ok') {
				$.jGrowl(this.req.responseJS[key], {position:'center','life':3000});
			} else if (key == 'action_warning') {
				$.jGrowl(this.req.responseJS[key], {position:'center','life':3000});
			} else if (key == 'action_error') {
				$.jGrowl(this.req.responseJS[key], {position:'center','life':3000});
			} else {
				$('#layer_'+key).html(this.req.responseJS[key]);
			}
		}
	}
}
)