__libs = [];

var nsBase = new Class({

	initialize: function(options) 
	{
		if(!options.url)
		{
			dbug.log('При инициализации класса произошла ошибка. Не задан url в опциях.');
			return;
		}
			
		this.url = options.url;
		this.options = options;
	},

	request : function (options) 
	{
		if(nsPrgsBar && options.prgsMsg)
		{
				nsPrgsBar.show(options.prgsMsg);
				var completeFunc = options.onComplete?options.onComplete:0;
				options.onComplete = function (evt)
				{
					nsPrgsBar.hide();
					if ($type(completeFunc) == 'function')
						completeFunc(evt);

				}.bind(this);
		}

		if($type(options.data) == 'object')	
			options.data._enc="utf-8";
		else
			options.data += "&_enc=utf-8";
		return new Ajax(this.url, options).request();
	},

	submit : function (frm, options) {
		if (!frm)
			return;
		if ($type(options.data) == 'object')
			options.data = Object.toQueryString(options.data);

		if(options.data)
			options.data +='&';
		options.data += frm.toQueryString();
		return this.request(options);
	},

	load : function(libs) {
		libs.each(function(lib) {
			if ($type($(lib.id)) == 'element')
				return;
			switch(lib.type) {
				case 'css': new Asset.javascript(lib.src, {id: lib.id}); break;
				case 'js': new Asset.css(lib.src, {id: lib.id}); break;
			}
		});
	}
});
