function dump(o, show_values) {
	var s = [];
	for(i in o) {
		s.push(i + (show_values ? " = " + o[i] : ""));
	}
	return s.sort().join(show_values ? "\n" : ", ");
}

var URL = new Class({
	initialize: function(prefix, force_sync, log_response) {
		this.prefix = prefix || $getInstance($Config).getKey("url_prefix", "project") || "";
		this.force_sync = force_sync || false;
		this.log_response = log_response || false;
		this.responses = [];
	},
	
	checkPrefix: function() {
		this.prefix = $getInstance($Config).getKey("url_prefix", "project") || "";
	},
	
	prepareJSON: function(data){
		var request = new Request.JSON(data);
		
		request.options.url = this.prefix + request.options.url;
		request.options.async = this.force_sync ? false : request.options.async;
		
		return request;
	},
	
	// Depricated ---------------------------------------------------------------
	prepare: function (request, key) {
		var self = this;
		request.options.url = this.prefix + request.options.url;
		request.options.async = this.force_sync ? false : request.options.async;
		
		if(this.log_response){
			this.responses[key] = null;
			request.addEvent("onComplete", function(response){
				self.responses[key] = response;
			});
		}
		
		return request;
	},
	// --------------------------------------------------------------------------
	
	// Depricated ------------------------------------------------
	getResponse: function(key) {
		return this.responses[key] ? this.responses[key] : false;
	},
	
	clearResponses: function() {
		this.responses = [];
	},
	// -----------------------------------------------------------
	
	
	ModUsers: {
		onShowLogin: function () {
			return $URL.prepare(new Request({url: "/login"}), "onShowLogin");
		},
		
		loadInterestsLevel: function(data){
			data.url = "/ajax/user/interests/level_list";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;

			return $URL.prepareJSON(data);
		},

		addInterestsLevel: function(data){
			data.url = "/ajax/user/interests/level_add";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;

			return $URL.prepareJSON(data);
		},

		loadInterestsUser: function(data){
			data.url = "/ajax/user/interests/load";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;

			return $URL.prepareJSON(data);
		},

		saveInterestsUser: function(data){
			data.url = "/ajax/user/interests/save";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			
			return $URL.prepareJSON(data);
		},
		
		onBlockUser: function(data){
			data.url = "/ajax/user/block";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			
			return $URL.prepareJSON(data);
		},
		
		onUnblockUser: function(data){
			data.url = "/ajax/user/unblock";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			
			return $URL.prepareJSON(data);
		},
		
		onSubmitLogin: function (o) {
			o.url = "/ajax/login";
			o.onComplete = o.onSuccess;
			delete o.onSuccess;
			return $URL.prepare(new Request.JSON(o), "onSubmitLogin");
		},
		
		onForgotPassword: function (o) {
			o.url = "/ajax/user/forgot-password/";
			o.onComplete = o.onSuccess;
			delete o.onSuccess;
			return $URL.prepare(new Request.JSON(o), "onForgotPassword");
		},
		
		onSubmitSignup: function(data) {
			data.url = "/ajax/user/signup/";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onSubmitSignup" );
		},

		onDeleteUser: function(data) {
			data.url = "/ajax/user/delete/";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onDeletetUser" );
		},

		onCreateWS: function(data) {
			data.url = "/ajax/user/create-ws/";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onCreateWS" );
		},
		
		onRemailSignup: function(data) {
			data.url = "/ajax/user/remailsignup";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onRemailSignup" );
		},
		
		onCheckLogin: function(data) {
			data.url = "/ajax/signup/try-reserve-login";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onCheckLogin" ); 
		},
		
		onCheckWorkspace: function(data) {
			data.url = "/ajax/signup/try-reserve-workspace";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onCheckWorkspace" ); 
		},
		
		onSubmitUpdateProfile: function(data) {
			data.url = "/ajax/user/submit-update/profile";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) ); 
		},
		
		onSubmitUpdatePersonal: function(data) {
			data.url = "/ajax/user/submit-update/personal";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) ); 
		},
		
		onGetSettings: function(data) {
			data.url = "/ajax/user/settings/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) ); 
		},
		
		onGetContacts: function(data) {
			data.url = "/ajax/user/contacts/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) ); 
		},
		
		onSetContacts: function(data) {
			data.url = "/ajax/user/contacts/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) ); 
		},
		
		onUserSuggest: function(data) {
			data.url = "/ajax/user/suggest/";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) ); 
		},
		
		onUserSuggestForAdmin: function(data) {
			data.url = "/ajax/user/suggest/admin";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) ); 
		},
		
		onGetWorkspaces: function(data) {
			data.url = "/ajax/user/workspaces/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) ); 
		},
		
		onSetFriends: function(data) {
			data.url = "/ajax/user/friend/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) ); 
		},
		
		onRemoveFriends: function(data) {
			data.url = "/ajax/user/friend/remove";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) ); 
		},
		
		getTagsSuggestUser: function(data){
			data.url = "/ajax/user/interests/suggest";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			
			return $URL.prepareJSON(data);
		},
		
		onGetUserSuggestForBlackList: function(data){
			data.url = "/ajax/user/suggest/black_list";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			
			return $URL.prepareJSON(data);
		},
		
		onSetBookmark: function(data){
			data.url = "/ajax/user/bookmark/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			
			return $URL.prepareJSON(data);
		},
		
		onDeleteBookmark: function(data){
			data.url = "/ajax/user/bookmark/delete";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			
			return $URL.prepareJSON(data);
		}
	},
	
	ModMailer: {
		onSendMail: function(data) {
			data.url = "/ajax/mailer/send";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare(new Request.JSON(data));
		},
		
		onSendExport: function(data) {
			data.url = "/ajax/mailer/export";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare(new Request.JSON(data));
		}
	},
	
	ModRubricatorRss: {
		onGetBlockRss: function(data) {
			data.url = "/ajax/rubricator/block/rss/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetTab" );
		},
		
		onPublicateBlockRss: function(data) {
			data.url = "/ajax/rubricator/block/rss/publicate";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onPublicateBlockRss" );
		},
		
		onUnPublicateBlockRss: function(data) {
			data.url = "/ajax/rubricator/block/rss/unpublicate";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onUnPublicateBlockRss" );
		}
	},
	
	ModMessage: {
		getMessages: function(data) {
			data.url = "/ajax/message/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "getMessages" );
		},
		
		getAllMessages: function(data) {
			data.url = "/ajax/message/all/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "getMessages" );
		},

		deleteMessage: function(data) {
			data.url = "/ajax/message/del";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "deleteMessage" );
		},

		sendMessage: function(data) {
			data.url = "/ajax/message/send";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "sendMessage" );
		}
	},
	
	ModBlockComments: {
		
		onLoadSettings: function(data) {
			data.url = "/ajax/block/last-comments/settings";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare(new Request.JSON(data));
		}
	},
	
	ModBlockStatistics: {
		onCreate: function(data){
			data.url = "/ajax/block-statistics/create";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onCreate" );
		},
		
		onDelete: function(data){
			data.url = "/ajax/block-statistics/delete";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onDelete" );
		},
		
		onGetStatisticsData: function(data){
			data.url = "/ajax/statistics/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetStatisticsData" );
		}
	},
	
	ModRubricator: {
		onGetDivisions: function(data) {
			data.url = "/ajax/rubricator/divisions/get";
			return $URL.prepare( new Request.JSON(data), "onGetDivisions");
		},
		
		onGetSuggestTags: function(data) {
			data.url = "/ajax/rubricator/suggest/tags/get/" + data.data;
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetSuggestTags" );
		},
		
		onGetWorkspace: function(data) {
			data.url = "/ajax/rubricator/workspaces/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetWorkspace" );
		},
		
		onPublicateWorkspace: function(data) {
			data.url = "/ajax/rubricator/workspaces/publicate";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onPublicateWorkspace" );
		},
		
		onUnPublicateWorkspace: function(data) {
			data.url = "/ajax/rubricator/workspaces/unpublicate";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onUnPublicateWorkspace" );
		},
		
		onGetTab: function(data) {
			data.url = "/ajax/rubricator/tab/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetTab" );
		},

		onGetTabNews: function(data) {
			data.url = "/ajax/rubricator/news/tab/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetTabNews" );
		},
		
		onGetTabBlog: function(data) {
			data.url = "/ajax/rubricator/blog/tab/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetTabBlog" );
		},
		
		onPublicateTab: function(data) {
			data.url = "/ajax/rubricator/tab/publicate";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onPublicateTab" );
		},
		
		onPublicateTabNews: function(data) {
			data.url = "/ajax/rubricator/news/tab/publicate";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onPublicateTabNews" );
		},
		
		onPublicateTabBlog: function(data) {
			data.url = "/ajax/rubricator/blog/tab/publicate";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onPublicateTabBlog" );
		},
		
		onUnPublicateTab: function(data) {
			data.url = "/ajax/rubricator/tab/unpublicate";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onUnPublicateTab" );
		},
		
		onUnPublicateTabNews: function(data) {
			data.url = "/ajax/rubricator/news/tab/unpublicate";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onUnPublicateTabNews" );
		},
		
		onUnPublicateTabBlog: function(data) {
			data.url = "/ajax/rubricator/blog/tab/unpublicate";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onUnPublicateTabBlog" );
		},
		
		onGetTags: function(data) {
			data.url = "/ajax/rubricator/tags/get";
			return $URL.prepare( new Request.JSON(data), "onGetTags" ); 
		},
		
		onGetTagsFilter: function(data) {
			data.url = "/ajax/rubricator/tags/filter/get";
			return $URL.prepare( new Request.JSON(data), "onGetTagsFilter" );
		},
		
		onGetFilterResult: function(data) {
			data.url = "/ajax/rubricator/filter-result/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetFilterResult" );
		},
		
		onGetRatingFilterResult: function(data) {
			data.url = "/ajax/rubricator/workspace/rating/filter/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetRatingFilterResult" );
		},
		
		onSetRatingFilterResult: function(data) {
			data.url = "/ajax/rubricator/workspace/rating/filter/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onSetRatingFilterResult" );
		},
		
		onGetTemplate: function(data) {
			data.url = "/ajax/rubricator/template/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetTemplate" );
		}
	},
	
	ModGeo: {
		onLoadCountries: function (data) {
			data = data || {};
			data.url = "/ajax/geo/countries/list";
			return $URL.prepare( new Request.JSON(data), "onLoadCountries" ); 
		},
		
		onLoadRegions: function (data) {
			data.url = "/ajax/geo/regions/list/" + data.data.country_id;
			return $URL.prepare( new Request.JSON(data), "onLoadRegions" ); 
		},
		
		onLoadCities: function (data) {
			data.url = "/ajax/geo/cities/list/" + data.data.region_id;
			return $URL.prepare( new Request.JSON(data), "onLoadCities" ); 
		},
		
		onLoadGeoIpCountries: function (data) {
			data = data || {};
			data.url = "/ajax/geo/ip/countries/list";
			return $URL.prepare( new Request.JSON(data), "onLoadGeoIpCountries" ); 
		},
		
		onLoadGeoIpRegions: function (data) {
			data.url = "/ajax/geo/ip/regions/list/" + data.data.country_id;
			return $URL.prepare( new Request.JSON(data), "onLoadGeoIpRegions" ); 
		},
		
		onLoadGeoIpCities: function (data) {
			data.url = "/ajax/geo/ip/cities/list/" + data.data.region_id;
			return $URL.prepare( new Request.JSON(data), "onLoadGeoIpCities" ); 
		}
	},
	
	ModTabNavigator: {
		onResortTabs: function (data) {
			data.url = "/ajax/tabs/resort";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onResortTabs" );
		},
		
		onRenameTab: function (data) {
			data.url = "/ajax/tab/title/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) ); 
		},
		
		onCreateTab: function (data) {
			data.url = "/ajax/tab/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onCreateTab" ); 
		},
		
		onDeleteTab: function(data){
			data.url = "/ajax/tab/delete/" + data.tab_id;
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onDeleteTab" ); 
		},
		
		onActivateTab: function (data) {
			data.url = "/ajax/tab/activate/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onActivateTab" ); 
		},
		
		onTranslateTab: function (data) {
			data.url = "/ajax/tab-navigator/translate/";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onTranslateTab" ); 
		}
		
		
	},
	
	ModBlockNavigator: {
		onResortBlocks: function(data) {
			data.url = "/ajax/blocks/resort";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onGetBlockSettings: function(data) {
			data.url = "/ajax/block/settings/load";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onSetBlockSettings: function(data) {
			data.url = "/ajax/block/settings/save";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onGetFilter: function(data) {
			data.url = "/ajax/filter/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onSetFilter: function(data) {
			data.url = "/ajax/filter/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onDeleteFilter: function(data) {
			data.url = "/ajax/filter/delete";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onGetContentBlocks: function(data) {
			data.url = "/ajax/blocks/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		}
	},
	
	ModBlock: {
		onLoadBlock: function(data) {
			data.url = "/ajax/block/load";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			
			return $URL.prepareJSON(data);
		},
		
		onMoveBlock: function(data) {
			data.url = "/ajax/block/move";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			
			return $URL.prepareJSON(data);
		},
		
		onSetColors: function(data) {
			data.url = "/ajax/block/color/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			
			return $URL.prepareJSON(data);
		}
	},
	
	ModBlockMyFriends: {
		onSwitchContent: function(data) {
			data.url = "/ajax/block/friends/switch/content";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			
			return $URL.prepareJSON(data);
		},
		
		onRemoveFriend: function(data){
			data.url = "/ajax/block/friends/remove";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			
			return $URL.prepareJSON(data);
		}
	},
	
	ModBlockText: {
		onSave: function (data) { 
			data.url = "/ajax/block-text/content/update";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onSave" );
		},
		
		onDelete: function (data) { 
			data.url = "/ajax/block-text/delete";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onDelete" );
		},
		
		onCreate: function(data){
			data.url = "/ajax/block-text/create";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		}
	},
	
	ModBlockFeedback: {
		onCreate: function(data){
			data.url = "/ajax/block/feedback/create";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onSaveText: function(data){
			data.url = "/ajax/block/feedback/text/save";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onSend: function(data){
			data.url = "/ajax/block/feedback/send";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onSetBlockSettings: function(data){
			data.url = "/ajax/block/feedback/settings/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onSetBlockPermissions: function(data){
			data.url = "/ajax/block/feedback/permissions/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onDelete: function(data){
			data.url = "/ajax/block/feedback/delete";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		}
	},
	
	ModBlockRating: {
		onGetSettings: function(data){
			data.url = "/ajax/block/rating/settings/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onSetSettings: function(data){
			data.url = "/ajax/block/rating/settings/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onCreate: function(data){
			data.url = "/ajax/block/rating/create";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onDeleteBlock: function (data) { 
			data.url = "/ajax/block/rating/delete";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onDeleteBlock" );
		},
		
		getTargetList: function (data){
			data.url = "/ajax/block/rating/target/list/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "getTargetList" );
		}
	},
	
	ModBlockRss: {
		onGetSuggestUrl: function (data) { 
			data.url = "/ajax/block/rss/suggest/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onSetBlockRss: function (data) { 
			data.url = "/ajax/block/rss/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare(new Request.JSON(data), "onSetBlockRss");
		},
		
		onGetBlockRss: function (data) { 
			data.url = "/ajax/block/rss/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetBlockRss" );
		},

		onTranslateBlockRss: function (data) { 
			data.url = "/ajax/block/rss/translate";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onTranslateBlockRss" );
		},
		
		onUpdateRssBlock: function (data) { 
			data.url = "/ajax/block/rss/update";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onUpdateRssBlock" );
		},
		
		onLoadRss: function (data) {
			data.url = "/ajax/block/rss/load";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onLoadRss" );
		},

		onMarkRss: function (data) {
			data.url = "/ajax/block/rss/mark";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onMarkRss" );
		},

		onLoadRssAndList: function (data) { 
			data.url = "/ajax/block/rss/list";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onLoadRssAndList" );
		},
		
		onRemoveBlockRss: function (data) { 
			data.url = "/ajax/block/rss/remove";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onRemoveBlockRss" );
		},
		
		onGetBlockSettings: function (data) { 
			data.url = "/ajax/block/rss/settings/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetBlockSettings" );
		},
		
		onSetBlockSettings: function (data) { 
			data.url = "/ajax/block/rss/settings/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onSetBlockSettings" );
		},
		onGetBlockPermissions: function (data) { 
			data.url = "/ajax/block/rss/permissions/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetBlockPermissions" );
		},
		
		onSetBlockPermissions: function (data) { 
			data.url = "/ajax/block/rss/permissions/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onSetBlockPermissions" );
		}
	},
	
	ModNewsDivisions: {
		
		onGetNewsDivisionBlockSettings: function(data) {
			data.url = "/ajax/news/div/block/settings/load";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetNewsDivisionBlockSettings" );
		},
		
		onGetNewsDivisionBlockSettingsSort: function(data) {
			data.url = "/ajax/news/div/block/settings/sort/load";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetNewsDivisionBlockSettingsSort" );
		},
		
		onSetNewsDivisionBlockSettingsSort: function(data) {
			data.url = "/ajax/news/div/block/settings/sort/update";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onSetNewsDivisionBlockSettingsSort" );
		},
		
		onSetNewsDivisionBlockSettings: function(data) {
			data.url = "/ajax/news/div/block/settings/save";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onSetNewsDivisionBlockSettings" );
		},
		
		onNewNewsDivision: function(data) {
			data.url = "/ajax/news/div/new";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onNewNewsDivision" );
		},
		
		onGetNewsDivisionList: function(data) {
			data.url = "/ajax/news/div/get/list";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetNewsDivisionList" );
		},
		
		onSetNewsDivision: function(data) {
			data.url = "/ajax/news/div/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onSetNewsDivision" );
		},
		
		onDelNewsDivision: function(data) {
			data.url = "/ajax/news/div/del";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onDelNewsDivision" );
		}
	},
	
	ModBlogDivisions: {
		
		onGetBlogDivisionBlockSettings: function(data) {
			data.url = "/ajax/blog/div/block/settings/load";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetBlogDivisionBlockSettings" );
		},
		
		onSetBlogDivisionBlockSettings: function(data) {
			data.url = "/ajax/blog/div/block/settings/save";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onSetBlogDivisionBlockSettings" );
		},
		
		onGetDivisionBlockSettingsSort: function(data) {
			data.url = "/ajax/blog/div/block/settings/sort/load";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetDivisionBlockSettingsSort" );
		},
		
		onSetDivisionBlockSettingsSort: function(data) {
			data.url = "/ajax/blog/div/block/settings/sort/update";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onSetDivisionBlockSettingsSort" );
		},
		
		onNewBlogDivision: function(data) {
			data.url = "/ajax/blog/div/new";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onNewBlogDivision" );
		},
		
		onGetBlogDivisionList: function(data) {
			data.url = "/ajax/blog/div/get/list";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetBlogDivisionList" );
		},
		
		onSetBlogDivision: function(data) {
			data.url = "/ajax/blog/div/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onSetBlogDivision" );
		},
		
		onDelBlogDivision: function(data) {
			data.url = "/ajax/blog/div/del";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onDelBlogDivision" );
		}
	},
	
	ModNews: {
		onCreateTab: function (data) {
			data.url = "/ajax/news/create-tab";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onTabNewsCreate" );
		},
		
		onGetTabNewsSettings: function (data) {
			data.url = "/ajax/news/settings/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetTabNewsSettings" );
		},
		
		onSetTabNewsSettings: function (data) {
			data.url = "/ajax/news/settings/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onSetTabNewsSettings" );
		},
		
		onSetTabNewsSettingsRule: function (data) {
			data.url = "/ajax/news/rule/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onSetTabNewsSettingsRule" );
		},
		
		onGetTabNewsSettingsRule: function (data) {
			data.url = "/ajax/news/rule/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetTabNewsSettingsRule" );
		},	
		
		onGetTabNewsPermissions: function (data) {
			data.url = "/ajax/news/permissions/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetTabNewsPermissions" );
		},
		
		onSetTabNewsPermissions: function (data) {
			data.url = "/ajax/news/permissions/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onSetTabNewsPermissions" );
		},
		
		onAddStoplistUrl: function (data) {
			data.url = "/ajax/news/external/stoplist/add";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onAddStoplistUrl" );
		},
		
		onDeleteStoplistUrl: function (data) {
			data.url = "/ajax/news/external/stoplist/delete";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onDeleteStoplistUrl" );
		},
		
		onSetExternalNewsSettings: function (data) {
			data.url = "/ajax/news/external/settings/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onSetExternalNewsSettings" );
		},
		
		onGetExternalNewsSettings: function (data) {
			data.url = "/ajax/news/external/settings/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetExternalNewsSettings" );
		},
		
		onCreateNewsDivision: function (data) {
			data.url = "/ajax/news/divisions/create";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onCreateNewsDivision" );
		},
		
		onGetTabNewsNames: function (data) {
			data.url = "/ajax/news/names/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetTabNewsNames" );
		},
		
		onSetTabNewsNames: function (data) {
			data.url = "/ajax/news/names/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onSetTabNewsNames" );
		},
		
		onDeleteTabNews: function(data){
			data.url = "/ajax/news/tab/delete";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onDeleteTabNews" ); 
		}
	},
	
	ModTab: {
		onGetTabInfo: function(data){
			data.url = "/ajax/tab/info_get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetTabInfo" );
		},
		
		onSetTabInfo: function(data){
			data.url = "/ajax/tab/info_set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onSetTabInfo" );
		},
		
		onDeleteTab: function(data){
			data.url = "/ajax/tab/delete/" + data.data.tab_id;
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onDeleteTab" );
		},
		
		onDeleteBlogToProfile: function(data){
			data.url = "/ajax/blog/delete/" + data.data.tab_id;
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onDeleteBlogToProfile" );
		},
		
		onGetTabsList: function(data){
			data.url = "/ajax/tab/list/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetTabsList" );
		},
		
		onMoveTab: function(data){
			data.url = "/ajax/tab/move";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onMoveTab" );
		},
		
		onSetWidthColumn: function(data){
			data.url = "/ajax/tab/width/column/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onSetWidthColumn" );
		},
		
		onSetTabColumnCount: function(data){
			data.url = "/ajax/tab/column/count/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onSetTabColumnCount" );
		},
		
		onDeleteTabColumns: function(data){
			data.url = "/ajax/tab/column/delete";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onDeleteTabColumns" );
		},
		
		onGetTabIcon: function(data){
			data.url = "/ajax/tab/icon/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetTabIcon" );
		},
		
		onRemoveTabIcon: function(data){
			data.url = "/ajax/tab/icon/remove";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onRemoveTabIcon" );
		},
		
		onSetColumnColor: function(data){
			data.url = "/ajax/tab/column/color/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onSetColumnColor" );
		},
		
		onSetServicePanelColor: function(data){
			data.url = "/ajax/tab/service_panel/color/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onSetServicePanelColor" );
		},
		
		onSetServicePanelDefaultColor: function(data){
			data.url = "/ajax/tab/service_panel/default_color/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onSetServicePanelDefaultColor" );
		}
	},
	
	ModBlockFavourites:{
		onCreate: function(data) {
			data.url = "/ajax/block-favourites/create";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data));
		},
		
		onRemove: function(data) {
			data.url = "/ajax/block-favourites/remove";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data));
		},
		
		onSetBlockSettings: function(data) {
			data.url = "/ajax/block-favourites/settings/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data));
		},
		
		onSetBlockPermissions: function(data) {
			data.url = "/ajax/block-favourites/permissions/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data));
		},
		
		onValidate: function(data) {
			data.url = "/ajax/block-favourites/link/validate";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data));
		},
		
		onCreateBookmark: function(data) {
			data.url = "/ajax/block-favourites/link/add";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data));
		},
		
		onEdit: function(data) {
			data.url = "/ajax/block-favourites/bookmark/edit";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data));
		},
		
		onRemoveBookmark: function(data) {
			data.url = "/ajax/block-favourites/bookmark/remove";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data));
		},
		
		onResort: function(data) {
			data.url = "/ajax/block-favourites/bookmark/resort";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data));
		}
	},
	
	ModTabNews: {
		onGetTabNewsSuggestTags: function(data){
			data.url = "/ajax/news/tab/tags/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onTabNewsCreate" );
		}
	},
	
	ModBlockNewsArticle: {
		onTranslateBlock: function(data) {
			data.url = "/ajax/block/news/translate";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data));
		}
	},
	
	ModNewsArticle: {
		onNewsCommentVote: function(data) {
			data.url = "/ajax/news/comment/vote";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onNewsCommentVote");
		},

		onGetArticles: function(data) {
			data.url = "/ajax/news/article/list/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data));
		},

		onGetArticlesSortByDate: function(data) {
			data.url = "/ajax/news/article/list/sort_by_date";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data));
		},
		
		onLoadTabNews: function(data) {
			data.url = "/ajax/news/tab/load";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onTabNewsCreate" );
		},
		
		onCreateNewsArticle: function(data) {
			data.url = "/ajax/news/article/create";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare(new Request.JSON(data));
		},
		
		onLoadArticle: function(data) {
			data.url = "/ajax/news/article/load";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare(new Request.JSON(data));
		},

		onEditNewsArticle: function(data) {
			data.url = "/ajax/news/article/edit";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare(new Request.JSON(data));
		},

		onSaveArticle: function(data) {
			data.url = "/ajax/news/article/save";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare(new Request.JSON(data));
		},

		onVoteArticle: function(data) {
			data.url = "/ajax/news/article/vote";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare(new Request.JSON(data));
		},
		
		onLoadNewsList: function(data) {
			data.url = "/ajax/news/list/load";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare(new Request.JSON(data));
		},
		
		onRemoveNewsArticle: function(data) {
			data.url = "/ajax/news/article/remove";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare(new Request.JSON(data));
		},
		
		onLoadBlockSettings: function(data) {
			data.url = "/ajax/news/block/settings/load";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare(new Request.JSON(data));
		},
		
		onLoadBlockCommentsSettings: function(data) {
			data.url = "/ajax/news/block-comments/settings/load";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare(new Request.JSON(data));
		},
		
		onSaveBlockCommentsSettings: function(data) {
			data.url = "/ajax/news/block-comments/settings/save";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare(new Request.JSON(data));
		},
		
		onSaveBlockSettings: function (data) {
			data.url = "/ajax/news/block/settings/save",
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare(new Request.JSON(data));
		},
		
		onCloseTranslateBlock: function (data) {
			data.url = "/ajax/block/news/translate/close",
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare(new Request.JSON(data));
		},
		
		onCreateComment: function (data) {
			data.url = "/ajax/news/add-comment",
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare(new Request.JSON(data));
		},
		
		onRemoveComment: function (data) {
			data.url = "/ajax/news/comment/remove",
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare(new Request.JSON(data));
		},
		
		onRemoveComments: function (data) {
			data.url = "/ajax/news/comments/remove",
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare(new Request.JSON(data));
		},
		
		onEditComment: function (data) {
			data.url = "/ajax/news/comment/update",
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare(new Request.JSON(data));
		}

	},

	ModNewsTags:{
		onListTags: function(data) {
			data.url = "/ajax/news/tags/list";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onListTags");
		},
		
		onGetRelatedTags: function(data) {
			data.url = "/ajax/news/tags/related/list";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetRelatedTags");
		},
		
		onGetSettings: function(data) {
			data.url = "/ajax/news/tags/settings/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetSettings");
		},
		
		onSetSettings: function(data) {
			data.url = "/ajax/news/tags/settings/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onSetSettings");
		},
		
		onGetListTagSettings: function(data) {
			data.url = "/ajax/news/tags/list/settings/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetListTagSettings");
		},
		
		onDeleteTag: function(data) {
			data.url = "/ajax/news/tag/delete";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onDeleteTag");
		},
		
		onRenameTag: function(data) {
			data.url = "/ajax/news/tag/update";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onRenameTag");
		}
	},
	
	ModBlog: {
		onPostCommentVote: function(data) {
			data.url = "/ajax/blog/comment/vote";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onPostCommentVote");
		},

		getCreateData: function (data) {
			data.url = "/ajax/blog/prepare-create-post";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			
			return $URL.prepareJSON(data);
		},
		
		onCreate: function(data) {
			data.url = "/ajax/blog/create";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onBlogCreate" );
		},
		
		onCreatePost: function(data) {
			data.url = "/ajax/blog/post/create";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			
			return $URL.prepareJSON(data);
		},
		
		onPrepareEditPost: function (data) {
			data.url = "/ajax/blog/post/edit";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			
			return $URL.prepareJSON(data);
		},
		
		onEditPost: function(data) {
			data.url = "/ajax/blog/post/save";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onGetBlogSettings: function(data) {
			data.url = "/ajax/blog/settings/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetBlogSettings" );
		},
		
		onSetBlogSettings: function(data) {
			data.url = "/ajax/blog/settings/save";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onSetBlogSettings" );
		},
		
		onLoadBlogDivisions: function(data) {
			data.url = "/ajax/blog/divisions/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			
			return $URL.prepareJSON(data);
//			return $URL.prepare(new Request.JSON(data));
		},
		
		onGetBlogDivisions: function(data) {
			data.url = "/ajax/blog/divisions/list";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare(new Request.JSON(data));
		},
		
		onGetBlogPermissions: function(data) {
			data.url = "/ajax/blog/permissions/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetBlogPermissions" );
		},
		
		onSetBlogPermissions: function(data) {
			data.url = "/ajax/blog/permissions/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onSetBlogPermissions" );
		},
		
		onPrepareCreatePost: function (data) {
			data.url = "/ajax/blog/prepare-create-post";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepareJSON(data);
		},
		
		onRemovePost: function(data) {
			data.url = "/ajax/blog/post/delete";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			
			return $URL.prepareJSON(data);
		},
		
		onGetBlogSuggestTags: function(data) {
			data.url = "/ajax/blog/tags/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetBlogSuggestTags" );
		},
		
		onGetPost: function(data) {
			data.url = "/ajax/blog/post/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data));
		},
		
		onGetPostList: function(data) {
			data.url = "/ajax/blog/post/list/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data));
		},
		
		onAddCustomDivision: function(data) {
			data.url = "/ajax/blog/custom-division/add";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			
			return $URL.prepareJSON(data);
		},
		
		onListTags: function(data) {
			data.url = "/ajax/blog/tags/list";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onListTags");
		},
		
		onGetRelatedTags: function(data) {
			data.url = "/ajax/blog/tags/related/list";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetRelatedTags");
		},
		
		onListTagsSettings: function(data) {
			data.url = "/ajax/blog/tags/list/settings";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onListTagsSettings");
		},
		
		onGetPostsDivisionsSettings: function(data) {
			data.url = "/ajax/block/blog-divisions/settings/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetPostsDivisionsSettings");
		},
		
		onSavePostsDivisionsSettings: function(data) {
			data.url = "/ajax/block/blog-divisions/settings/save";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onSavePostsDivisionsSettings");
		},
		
		onGetCommentsSettings: function(data) {
			data.url = "/ajax/block/comments/settings/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetCommentsSettings");
		},
		
		onSetCommentsSettings: function(data) {
			data.url = "/ajax/block/comments/settings/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onSetCommentsSettings");
		},
		
		onUpdateBlogDivision: function(data) {
			data.url = "/ajax/blog/division/update";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onUpdateBlogDivision");
		},
		
		onMovePosts: function(data) {
			data.url = "/ajax/blog/posts/move";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onMovePosts");
		},
		
		onDeleteBlogDivision: function(data) {
			data.url = "/ajax/blog/division/delete";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onDeleteBlogDivision");
		},	
		
		onGetPopularPostsSettings: function(data) {
			data.url = "/ajax/block/popular-posts/settings/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetPopularPostsSettings");
		},	
		
		onSetPopularPostsSettings: function(data) {
			data.url = "/ajax/block/popular-posts/settings/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onSetPopularPostsSettings");
		},	

		onGetTranslateData: function(data) {
			data.url = "/ajax/block/popular-posts/translate_data/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetTranslateData");
		},	
		
		onTranslatePopularPosts: function(data) {
			data.url = "/ajax/block/popular-posts/translate";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onTranslatePopularPosts");
		},

		onCloseTranslatePopularPosts: function(data) {
			data.url = "/ajax/block/popular-posts/translate/close";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onCloseTranslatePopularPosts");
		},	
		
		onGetTagsSettings: function(data) {
			data.url = "/ajax/block/tags/settings/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetTagsSettings");
		},

		onSetTagsSettings: function(data) {
			data.url = "/ajax/block/tags/settings/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onSetTagsSettings");
		},

		onDeleteBlogTag: function(data) {
			data.url = "/ajax/block/tags/managment/tag/delete";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onDeleteBlogTag");
		},

		onRenameBlogTag: function(data) {
			data.url = "/ajax/block/tags/managment/tag/rename";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onRenameBlogTag");
		},
		
		onCreateComment: function (data, callback) {
			data.url = "/ajax/blog/add-comment";
			data.onComplete = callback;
			return $URL.prepare( new Request.JSON(data), "ModBlog.onCreateComment");
		},

		onLoadBlogDrafts: function(data) {
			data.url = "/ajax/blog/draft/list";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onLoadBlogDrafts");
		},
		
		onRemoveComment: function (data) {
			data.url = "/ajax/post/comment/remove",
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare(new Request.JSON(data));
		},
		
		onRemoveComments: function (data) {
			data.url = "/ajax/post/comments/remove",
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare(new Request.JSON(data));
		},
		
		onEditComment: function (data) {
			data.url = "/ajax/blog/comment/update",
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare(new Request.JSON(data));
		},
		
		onVotePost: function (data) {
			data.url = "/ajax/blog/post/vote",
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare(new Request.JSON(data));
		}
	},
	
	ModWorkspace: {
		onGetTranslateData: function(data) {
			data.url = "/ajax/workspace/translate_data/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetTranslateData");
		},
		
		onSetWorkspaceSettings: function(data) {
			data.url = "/ajax/workspace/settings/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onSetWorkspaceSettings");
		},
		
		onSetWorkspacePrivacy: function(data) {
			data.url = "/ajax/workspace/privacy/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onSetWorkspacePrivacy");
		},
		
		onSetWorkspaceHeight: function(data) {
			data.url = "/ajax/workspace/height/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onSetWorkspaceHeight");
		},
		
		onCheckInvates: function(data) {
			data.url = "/ajax/invites/check";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onCheckInvates");
		},
		
		onGetWsList: function(data) {
			data.url = "/ajax/workspace/list/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetWsList");
		},
		
		onGetWorkspaceLogo: function(data) {
			data.url = "/ajax/workspace/logo/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onGetWorkspaceLogo");
		},
		
		onSetWorkspaceLogo: function(data) {
			data.url = "/ajax/workspace/logo/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onSetWorkspaceLogo");
		},
		
		onSetDefaultLogo: function(data) {
			data.url = "/ajax/workspace/logo/default/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onSetDefaultLogo");
		},
		
		onSetColor: function(data){
			data.url = "/ajax/workspace/color/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onSetColor");
		},
		
		onMoveWorkspace: function(data){
			data.url = "/ajax/workspace/move";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onMoveWorkspace");
		},
		
		onDeleteWs: function(data){
			data.url = "/ajax/workspace/delete";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onDeleteWs");
		},
		
		onDeleteUserAndWorkspace: function(data){
			data.url = "/ajax/workspace_and_user/delete";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onDeleteUserAndWorkspace");
		},
		
		onDeleteUserAndMoveWorkspace: function(data){
			data.url = "/ajax/user_delete/workspace_move";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onDeleteUserAndMoveWorkspace");
		},
		
		onWsSuggestForAdmin: function(data){
			data.url = "/ajax/suggest/workspace";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onWsSuggestForAdmin");
		},
		
		onClickCountBaner: function(data){
			data.url = "/click/count/banner";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onClickCountBaner");
		},
		
		onLoadBindDomain: function(data){
			data.url = "/ajax/load/bind/domain/";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onLoadBindDomain");
		},
		
		onBindDomain: function(data){
			data.url = "/ajax/bind/domain/";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onBindDomain");
		},
		
		addNewBindDomain: function(data){
			data.url = "/ajax/add/new/bind/domain/";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "onBindDomain");
		},
		
		getConfig: function(data){
			data.url = "/ajax/get/config/";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "getConfig");
		},
		
		setConfig: function(data){
			data.url = "/ajax/set/config/";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "setConfig");
		},
		
		setDefaultConfig: function(data){
			data.url = "/ajax/set/default/config/";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "setDefaultConfig");
		},
		
		getBlackList: function(data){
			data.url = "/ajax/get/black_list/";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "getBlackList");
		},
		
		setBlackList: function(data){
			data.url = "/ajax/set/black_list/";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "setBlackList");
		},
		
		getTagsSynonyms: function(data){
			data.url = "/ajax/get/tags/synonyms";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "getTagsSynonyms");
		},
		
		setTagsSynonyms: function(data){
			data.url = "/ajax/set/tags/synonyms";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data), "setTagsSynonyms");
		}
	},
	
	ModBlockPosts: {
		onGetContent:  function(data) {
			data.url = "/ajax/block-posts/content/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data));
		},
		
		onSetSettings:  function(data) {
			data.url = "/ajax/block-posts/settings/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data));
		}
		
	},
	
	ModPublic: {
		onGetServerDate: function(data) {
			data.url = "/ajax/public/date/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			
			return $URL.prepareJSON(data);
		}
	},
	
	ModResource: {
		onGetImageList: function(data) {
			data.url = "/ajax/resource/image/list_get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},

		onDeleteImage: function(data) {
			data.url = "/ajax/resource/image/delete";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},

		onSetImageInfo: function(data) {
			data.url = "/ajax/resource/image/info_set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},

		onGetUserImage: function() {
			return $URL.prefix + "/ajax/resource/user-image/get";
		},
		
		onSetUserImage: function() {
			return $URL.prefix + "/ajax/resource/user-image/set";
		},
		
		onRemoveUserImage: function() {
			return $URL.prefix + "/ajax/resource/user-image/del";
		},
		
		onAddUserImage: function() {
			return $URL.prefix + "/ajax/resource/avatar/user_add";
		},

		onSaveUserImage: function() {
			return $URL.prefix + "/ajax/resource/avatar/user_save";
		},
		
		onRemoveResourceImage: function(data) {
			data.url = "/ajax/resource/avatar/delete";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		}
	},
	
	ModTag: {
		onAddTag: function(data) {
			data.url = "/ajax/tag/add";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onAddPostTag: function(data) {
			data.url = "/ajax/post/tag/add";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onAddUserTag: function(data){
			data.url = "/ajax/user/tag/add";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			
			return $URL.prepareJSON(data);
		},
		
		onFindTagSynonyms: function(data) {
			data.url = "/ajax/tag/synonyms";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onLoadSettings: function(data) {
			data.url = "/ajax/block/tags/settings/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onSuggestWsTags: function(data) {
			data.url = "/ajax/ws/tag/suggest";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onGetUserTagSynonyms: function(data) {
			data.url = "/ajax/user/tag/synonyms/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			
			return $URL.prepareJSON(data);
		},
		
		onSuggestTabsTags: function(data) {
			data.url = "/ajax/tabs/tag/suggest";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onSuggestPostTags: function(data) {
			data.url = "/ajax/post/tag/suggest";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onSuggestNewsTags: function(data) {
			data.url = "/ajax/news/tag/suggest";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onSuggestRssTags: function(data) {
			data.url = "/ajax/rss/tag/suggest";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onGetWsTagSynonyms: function(data) {
			data.url = "/ajax/ws/tag/synonyms/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onGetTabsTagSynonyms: function(data) {
			data.url = "/ajax/tabs/tag/synonyms/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onGetPostTagSynonyms: function(data) {
			data.url = "/ajax/post/tag/synonyms/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onGetNewsTagSynonyms: function(data) {
			data.url = "/ajax/news/tag/synonyms/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onGetRssTagSynonyms: function(data) {
			data.url = "/ajax/rss/tag/synonyms/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		}
	},
	
	ModNewsCalendar: {
		onGetSettings: function(data) {
			data.url = "/ajax/news/calendar/settings/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onSetSettings: function(data) {
			data.url = "/ajax/news/calendar/settings/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		}
	},
	
	ModBlogCalendar: {
		onGetSettings: function(data) {
			data.url = "/ajax/blog/calendar/settings/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onSetSettings: function(data) {
			data.url = "/ajax/blog/calendar/settings/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		}
	},
	
	ModCalendar: {
		onGetMonthPattern: function(data){
			data.url = "/ajax/get/month/pattert";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		}
	},
	
	ModBlogSearch: {
		onGetSettings: function(data) {
			data.url = "/ajax/blog/search/settings/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onSetSettings: function(data) {
			data.url = "/ajax/blog/search/settings/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		}
	},
	
	ModNewsSearch: {
		onGetSettings: function(data) {
			data.url = "/ajax/news/search/settings/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onSetSettings: function(data) {
			data.url = "/ajax/news/search/settings/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		}
	},
	
	ModBlockPolls: {
		onCreate: function(data) {
			data.url = "/ajax/block/polls/create";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onCreatePoll: function(data) {
			data.url = "/ajax/block/polls/question/create";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onDelete: function(data) {
			data.url = "/ajax/block/polls/delete";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onReloadContent: function(data) {
			data.url = "/ajax/block/polls/content/reload";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onVouting: function(data) {
			data.url = "/ajax/block/polls/vouting";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onFullTabLoad: function(data) {
			data.url = "/ajax/block/polls/full-tab/load";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onDeletePoll: function(data) {
			data.url = "/ajax/poll/delete";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onReloadTags: function(data) {
			data.url = "/ajax/block/polls/tags/reload";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onLoadDataPoll: function(data){
			data.url = "/ajax/block/polls/question/load";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onEditPoll: function(data){
			data.url = "/ajax/block/polls/question/edit";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onGetUsersVote: function(data){
			data.url = "/ajax/block/polls/get/users/vote";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onTranslateBlock: function(data){
			data.url = "/ajax/transletion/block/polls/";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onCloseTranslateBlock: function(data){
			data.url = "/ajax/transletion/close/block/polls/";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onLoadDataSettings: function(data){
			data.url = "/ajax/load/settings/block/polls/";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onSetDataPermissionSettings: function(data){
			data.url = "/ajax/set/data/permission/settings/block/polls/";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		}
	},
	
	ModGmt: {
		onLoadGmt: function(data) {
			data.url = "/ajax/gmt/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		}
	},
	
	ModAd: {
		onCreateBanner: function(data) {
			data.url = "/ajax/ad/banner_inter/add";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onLoadEditBanner: function(data) {
			data.url = "/ajax/ad/banner_inter/edit/get";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onEditBanner: function(data) {
			data.url = "/ajax/ad/banner_inter/set";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		},
		
		onRemoveBanner: function(data) {
			data.url = "/ajax/ad/banner_inter/delete";
			data.onComplete = data.onSuccess;
			delete data.onSuccess;
			return $URL.prepare( new Request.JSON(data) );
		}
	}
	
});

var $URL = new URL();

var $Locale = {
	MSG_ACL_DENY: 			function () { return "&#x412; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x435; &#x43E;&#x442;&#x43A;&#x430;&#x437;&#x430;&#x43D;&#x43E;!"; },
	MSG_OBJECT_NOT_FOUND:	function () { return "&#x41E;&#x431;&#x44A;&#x435;&#x43A;&#x442; &#x43D;&#x435; &#x43D;&#x430;&#x439;&#x434;&#x435;&#x43D;!"; },
	MSG_SETTINGS_SUCCESS: 	function () { return "&#x41D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x438; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x44B;!" },
	MSG_FILTER_SETTINGS_SUCCESS: 	function () { return "&#x424;&#x438;&#x43B;&#x44C;&#x442;&#x440; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x43D;!" },
	MSG_FILTER_DELETE_SUCCESS: 		function () { return "&#x424;&#x438;&#x43B;&#x44C;&#x442;&#x440; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x443;&#x434;&#x430;&#x43B;&#x435;&#x43D;!" },
	MSG_FILTER_DELETE_ERROR: 		function () { return "&#x41E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x443;&#x434;&#x430;&#x43B;&#x435;&#x43D;&#x438;&#x44F; &#x444;&#x438;&#x43B;&#x44C;&#x442;&#x440;&#x430;!" },
	MSG_FILTER_SAVE_ERROR: 			function () { return "&#x41E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x444;&#x438;&#x43B;&#x44C;&#x442;&#x440;&#x430;!" },
	MSG_CREATE_LIMIT: 		function() { return "&#x41B;&#x438;&#x43C;&#x438;&#x442; &#x431;&#x43B;&#x43E;&#x43A;&#x43E;&#x432; &#x43F;&#x440;&#x435;&#x432;&#x44B;&#x448;&#x435;&#x43D;!"; },
	MSG_SEETING_CLOSE: 		function() { return "&#x41F;&#x435;&#x440;&#x435;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x44C;&#x441;&#x44F; &#x438; &#x43F;&#x43E;&#x442;&#x435;&#x440;&#x44F;&#x442;&#x44C; &#x432;&#x441;&#x435; &#x43D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x438;?"; },
	MSG_NO_FUNCTIONALITY: 		function() { return "&#x424;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x43E;&#x43D;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x441;&#x442;&#x44C; &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x43D;&#x435;&#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x430;."; },
	MSG_UNKNOWN_ERROR: 		function() { return "&#x41D;&#x435;&#x438;&#x437;&#x432;&#x435;&#x441;&#x442;&#x43D;&#x430;&#x44F; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x430;!"; },
	MSG_BLACK_LIST: 		function() { return "&#x412;&#x43B;&#x430;&#x434;&#x435;&#x43B;&#x435;&#x446; &#x432;&#x43A;&#x43B;&#x430;&#x434;&#x43A;&#x438; &#x432;&#x43D;&#x435;&#x441; &#x432;&#x430;&#x441; &#x432; &#x447;&#x435;&#x440;&#x43D;&#x44B;&#x439; &#x441;&#x43F;&#x438;&#x441;&#x43E;&#x43A;."; },
	MSG_SUCCESS_SINGUP: 	function(){ return "&#x420;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x43F;&#x440;&#x43E;&#x448;&#x43B;&#x430; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E;, &#x43D;&#x430; &#x43F;&#x43E;&#x447;&#x442;&#x443; &#x432;&#x44B;&#x441;&#x43B;&#x430;&#x43D;&#x43E; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x435;. &#x41F;&#x435;&#x440;&#x435;&#x439;&#x442;&#x438; &#x43D;&#x430; &#x441;&#x432;&#x43E;&#x439; &#x434;&#x43E;&#x43C;&#x435;&#x43D;?"},
	MSG_ERROR:	function(){ return "&#x41E;&#x448;&#x438;&#x431;&#x43A;&#x430;!" },
	MSG_ENTRY:  function(){ return "&#x414;&#x43B;&#x44F; &#x432;&#x44B;&#x43F;&#x43E;&#x43B;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x446;&#x438;&#x438; &#x437;&#x430;&#x439;&#x434;&#x438;&#x442;&#x435; &#x438;&#x43B;&#x438; &#x437;&#x430;&#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435;&#x441;&#x44C;." },
	MSG_MAILER_OK: function(count) {return "Сообщений отправлено: " + count; },
	MSG_EXPORT_OK: function(count) {return "Файл сохранен и содержит " + count + " записей"; },
	
	Logotype: {
		ExValidateFails: function () { return "&#x41A;&#x43E;&#x43E;&#x440;&#x434;&#x438;&#x43D;&#x430;&#x442;&#x44B; &#x437;&#x430;&#x434;&#x430;&#x43D;&#x44B; &#x43D;&#x435; &#x432;&#x435;&#x440;&#x43D;&#x43E;!"; },
		MSG_LOGO_LOAD_SUCCESS: function () { return "&#x41A;&#x430;&#x440;&#x442;&#x438;&#x43D;&#x43A;&#x430; &#x434;&#x43B;&#x44F; &#x43B;&#x43E;&#x433;&#x43E;&#x442;&#x438;&#x43F;&#x430; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x430;!"; }
	},
	
	DlgStatistics: {
		Discription: {
			ALL_TABS:	function() {return "&#x412;&#x441;&#x435; &#x432;&#x43A;&#x43B;&#x430;&#x434;&#x43A;&#x438;";},
			TABS:		function() {return "&#x41E;&#x431;&#x44B;&#x447;&#x43D;&#x44B;&#x435; &#x432;&#x43A;&#x43B;&#x430;&#x434;&#x43A;&#x438;";},
			BLOGS:		function() {return "&#x411;&#x43B;&#x43E;&#x433;&#x438;";},
			NEWS:		function() {return "&#x41D;&#x43E;&#x432;&#x43E;&#x441;&#x442;&#x438;";},
			ALL_COMM:	function() {return "&#x412;&#x441;&#x435; &#x43A;&#x43E;&#x43C;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x440;&#x438;&#x438;";},
			POST_COMM:	function() {return "&#x41A;&#x43E;&#x43C;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x440;&#x438;&#x438; &#x43A; &#x43F;&#x43E;&#x441;&#x442;&#x430;&#x43C;";},
			NEWS_COMM:	function() {return "&#x41A;&#x43E;&#x43C;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x440;&#x438;&#x438; &#x43A; &#x43D;&#x43E;&#x432;&#x43E;&#x441;&#x442;&#x44F;&#x43C;";}
		},
		Type: {
			USERS: 		function() { return "&#x41F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x438;"},
			WS: 		function() { return "&#x414;&#x43E;&#x43C;&#x435;&#x43D;&#x44B;"},
			TABS: 		function() { return "&#x422;&#x430;&#x431;&#x44B;"},
			POSTS: 		function() { return "&#x41F;&#x43E;&#x441;&#x442;&#x44B;"},
			NEWS_ART: 	function() { return "&#x41D;&#x43E;&#x432;&#x43E;&#x441;&#x442;&#x438;"},
			QUESTS: 	function() { return "&#x41E;&#x43F;&#x440;&#x43E;&#x441;&#x44B;"},
			RSS: 		function() { return "RSS-&#x43A;&#x430;&#x43D;&#x430;&#x43B;&#x44B;"},
			COMMENTS: 	function() { return "&#x41A;&#x43E;&#x43C;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x440;&#x438;&#x438;"}
		}
	},
	
	ModBlockInterests: {
		MSG_ADD_RATING_FOR_TAG: function() { return "&#x412;&#x44B; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x445;&#x43E;&#x442;&#x438;&#x442;&#x435; &#x43F;&#x440;&#x43E;&#x43A;&#x430;&#x447;&#x430;&#x442;&#x44C; &#x44D;&#x442;&#x43E;&#x442; &#x442;&#x435;&#x433;?"},
		MSG_NEED_WORK_TO_TAG: function() { return "&#x41D;&#x430;&#x434; &#x44D;&#x442;&#x438;&#x43C; &#x441;&#x442;&#x43E;&#x438;&#x442; &#x435;&#x449;&#x435; &#x43F;&#x43E;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x442;&#x44C;."}
	},
	
	Nobody: {
		MSG_MENU_OPEN:		function() { return "&#x414;&#x43B;&#x44F; &#x442;&#x43E;&#x433;&#x43E;, &#x447;&#x442;&#x43E;&#x431;&#x44B; &#x43C;&#x435;&#x43D;&#x44E; &#x441;&#x442;&#x430;&#x43B;&#x43E; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x44B;&#x43C;, &#x437;&#x430;&#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435;&#x441;&#x44C; &#x438;&#x43B;&#x438; &#x430;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x437;&#x443;&#x439;&#x442;&#x435;&#x441;&#x44C;." },
		MSG_ACL_DENY:		function() { return "&#x414;&#x43B;&#x44F; &#x442;&#x43E;&#x433;&#x43E;, &#x447;&#x442;&#x43E;&#x431;&#x44B; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x441;&#x442;&#x430;&#x43B;&#x430; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x43E;&#x439;, &#x437;&#x430;&#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435;&#x441;&#x44C; &#x438;&#x43B;&#x438; &#x430;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x437;&#x443;&#x439;&#x442;&#x435;&#x441;&#x44C;." },
		MSG_COMMENT_CREATE:	function() { return "&#x414;&#x43B;&#x44F; &#x442;&#x43E;&#x433;&#x43E;, &#x447;&#x442;&#x43E;&#x431;&#x44B; &#x43A;&#x43E;&#x43C;&#x43C;&#x435;&#x43D;&#x442;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C;, &#x437;&#x430;&#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435;&#x441;&#x44C; &#x438;&#x43B;&#x438; &#x430;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x437;&#x443;&#x439;&#x442;&#x435;&#x441;&#x44C;." },
		MSG_NEWS_CREATE:	function() { return "&#x414;&#x43B;&#x44F; &#x442;&#x43E;&#x433;&#x43E;, &#x447;&#x442;&#x43E;&#x431;&#x44B; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x432;&#x430;&#x442;&#x44C; &#x441;&#x442;&#x430;&#x442;&#x44C;&#x438;, &#x437;&#x430;&#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x438;&#x440;&#x443;&#x439;&#x442;&#x435;&#x441;&#x44C; &#x438;&#x43B;&#x438; &#x430;&#x432;&#x442;&#x43E;&#x440;&#x438;&#x437;&#x443;&#x439;&#x442;&#x435;&#x441;&#x44C;." }
	},
		
	Calendar: {
		DAYS: ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'],
		MONTHS: ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь']
	},
	
	ModBlockText:{
		MSG_DELETE_SUCCESS:	function () { return "&#x411;&#x43B;&#x43E;&#x43A; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x443;&#x434;&#x430;&#x43B;&#x451;&#x43D;." }
	},
	
	ModAd: {
		MSG_BANNER_ADD_SUCCESS: function() { return "&#x411;&#x430;&#x43D;&#x43D;&#x435;&#x440; &#x443;&#x434;&#x430;&#x447;&#x43D;&#x43E; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x43D;."},
		MSG_BANNER_SAVE_SUCCESS: function() { return "&#x411;&#x430;&#x43D;&#x43D;&#x435;&#x440; &#x443;&#x434;&#x430;&#x447;&#x43D;&#x43E; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;."},
		DELETE_CONFIRM: function() { return "&#x412;&#x44B; &#x434;&#x435;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x445;&#x43E;&#x442;&#x438;&#x442;&#x435; &#x443;&#x434;&#x430;&#x43B;&#x438;&#x442;&#x44C; &#x431;&#x430;&#x43D;&#x435;&#x440;?"},
		MSG_BANNER_DELETE_SUCCESS: function() { return "&#x411;&#x430;&#x43D;&#x43D;&#x435;&#x440; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x443;&#x434;&#x430;&#x43B;&#x435;&#x43D;."},
		MSG_NOT_FOUND_ADVERTISER: function() {return "&#x41E;&#x448;&#x438;&#x431;&#x43A;&#x430;! &#x420;&#x435;&#x43A;&#x43B;&#x430;&#x43C;&#x43E;&#x434;&#x430;&#x442;&#x435;&#x43B;&#x44C;. &#x422;&#x430;&#x43A;&#x43E;&#x439; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C; &#x43D;&#x435; &#x43D;&#x430;&#x439;&#x434;&#x435;&#x43D;!";}
	},
	
	ModUsers: {
		MSG_LOGIN_SUCCESS:		function () { return "&#x412;&#x44B; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x432;&#x43E;&#x448;&#x43B;&#x438; &#x432; &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x443;!"; },
		MSG_BLOCK_USER:			function () { return "&#x412;&#x44B; &#x432;&#x440;&#x435;&#x43C;&#x435;&#x43D;&#x43D;&#x43E; &#x437;&#x430;&#x431;&#x43B;&#x43E;&#x43A;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x44B;!"; },
		MSG_FORGOT_PASSWORD:	function () { return "&#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; &#x43F;&#x43E;&#x447;&#x442;&#x443;!"; },
		MSG_LOGIN_ERROR:		function () { return "&#x412; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x435; &#x43E;&#x442;&#x43A;&#x430;&#x437;&#x430;&#x43D;&#x43E;!"; },
		MSG_UNCONFIRMED:		function () { return "&#x412; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x435; &#x43E;&#x442;&#x43A;&#x430;&#x437;&#x430;&#x43D;&#x43E;! &#x412;&#x44B; &#x43D;&#x435; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x434;&#x438;&#x43B;&#x438; &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x430;&#x446;&#x438;&#x44E;!"; },
		MSG_USER_CONFIRM:		function () { return "&#x412;&#x44B; &#x43D;&#x435; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x434;&#x438;&#x43B;&#x438; &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x430;&#x446;&#x438;&#x44E;."; },
		MSG_REMAIL:				function () { return "&#x412;&#x44B;&#x441;&#x43B;&#x430;&#x442;&#x44C; &#x43F;&#x438;&#x441;&#x44C;&#x43C;&#x43E; &#x441; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x435;&#x43C;?"; },
		MSG_REMAIL_OK:			function () { return "&#x41F;&#x438;&#x441;&#x44C;&#x43C;&#x43E; &#x432;&#x44B;&#x441;&#x43B;&#x430;&#x43D;&#x43E;."; },
		MSG_REMAIL_CONFIRM:		function () { return "&#x412;&#x44B; &#x443;&#x436;&#x435; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x434;&#x438;&#x43B;&#x438; &#x440;&#x435;&#x433;&#x438;&#x441;&#x442;&#x440;&#x430;&#x446;&#x438;&#x44E;."; },
		MSG_DELETE_TABS:		function () { return "&#x421; &#x434;&#x43E;&#x43C;&#x435;&#x43D;&#x430; &#x431;&#x44B;&#x43B;&#x438; &#x443;&#x434;&#x430;&#x43B;&#x435;&#x43D;&#x44B; &#x432;&#x43A;&#x43B;&#x430;&#x434;&#x43A;&#x438;, &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x44B;&#x435; &#x441;&#x442;&#x430;&#x43B;&#x438; &#x43D;&#x435;&#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x44B;&#x43C;&#x438;."; },
		MSG_CONFIRM_OK:			function () { return "&#x41F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x435; &#x43F;&#x440;&#x43E;&#x448;&#x43B;&#x43E; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E;."; },
		MSG_CONFIRM_ERROR:		function () { return "&#x41D;&#x435;&#x432;&#x435;&#x440;&#x43D;&#x44B;&#x439; &#x43A;&#x43E;&#x434; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x44F;."; },
		MSG_CREATE_WS_OK:		function () { return "&#x414;&#x43E;&#x43C;&#x435;&#x43D; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x43D;."; },
		MSG_CREATE_WS_ERROR:	function () { return "&#x41E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x43D;&#x438;&#x44F; &#x434;&#x43E;&#x43C;&#x435;&#x43D;&#x430;."; },
		MSG_DELETE_WS_ERROR:	function () { return "&#x41E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x443;&#x434;&#x430;&#x43B;&#x435;&#x43D;&#x438;&#x44F; &#x434;&#x43E;&#x43C;&#x435;&#x43D;&#x430;."; },
		MSG_DELETE_USER_CONFIRM:function () { return "&#x423;&#x434;&#x430;&#x43B;&#x438;&#x442;&#x44C; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44F; &#x438; &#x435;&#x433;&#x43E; &#x434;&#x43E;&#x43C;&#x435;&#x43D;&#x44B;?" },
		MSG_DELETE_USER_SUCCESS:function () { return "&#x414;&#x43E;&#x43C;&#x435;&#x43D;&#x44B; &#x438; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x443;&#x434;&#x430;&#x43B;&#x435;&#x43D;&#x44B;." },
		DELETE_BOOKMARK_CONFIRM:function () { return "&#x412;&#x44B; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x445;&#x43E;&#x442;&#x438;&#x442;&#x435; &#x443;&#x434;&#x430;&#x43B;&#x438;&#x442;&#x44C; &#x437;&#x430;&#x43A;&#x43B;&#x430;&#x434;&#x43A;&#x443;?" }
	},
	
	ModTab: {
		MSG_TABS_LIMIT: function() { return "&#x414;&#x43E;&#x441;&#x442;&#x438;&#x433;&#x43D;&#x443;&#x442;&#x43E; &#x43C;&#x430;&#x43A;&#x441;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x43A;&#x43E;&#x43B;&#x438;&#x447;&#x435;&#x441;&#x442;&#x432;&#x43E; &#x432;&#x43A;&#x43B;&#x430;&#x434;&#x43E;&#x43A;." },
		MSG_OBJECT_NOT_FOUND: function() { return "&#x41E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x43F;&#x440;&#x438; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x43D;&#x438;&#x438;!" },
		MSG_DUPLICATE_OBJECT: function() { return "&#x41E;&#x448;&#x438;&#x431;&#x43A;&#x430;, &#x43D;&#x430; &#x434;&#x430;&#x43D;&#x43D;&#x43E;&#x43C; &#x434;&#x43E;&#x43C;&#x435;&#x43D;&#x435; &#x442;&#x430;&#x43A;&#x430;&#x44F; &#x432;&#x43A;&#x43B;&#x430;&#x434;&#x43A;&#x430; &#x443;&#x436;&#x435; &#x441;&#x443;&#x449;&#x435;&#x441;&#x442;&#x432;&#x443;&#x435;&#x442;!" },
		MSG_SETTINGS_SUCCESS: 	function () { return "&#x41D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x438; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x44B;!" },
		MSG_DELETE_SUCCESS: 	function () { return "&#x412;&#x43A;&#x43B;&#x430;&#x434;&#x43A;&#x430; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x443;&#x434;&#x430;&#x43B;&#x435;&#x43D;&#x430;!" },
		MSG_TRANSLATE_SUCCESS: 	function () { return "&#x412;&#x43A;&#x43B;&#x430;&#x434;&#x43A;&#x430; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x442;&#x440;&#x430;&#x43D;&#x441;&#x43B;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;&#x430;!" },
		CONFIRM_DELETE_TAB: function() { return "&#x423;&#x434;&#x430;&#x43B;&#x438;&#x442;&#x44C; &#x432;&#x43A;&#x43B;&#x430;&#x434;&#x43A;&#x443;?" },
		ACL_DENY_DELETE_TAB: function() { return "You don't deleted this tab!" },
		TAB_NOT_EXISTS: function() { return "&#x412;&#x43A;&#x43B;&#x430;&#x434;&#x43A;&#x430; &#x43D;&#x435; &#x43D;&#x430;&#x439;&#x434;&#x435;&#x43D;&#x430;!" },
		CANT_DELETE_LAST_TAB: function() { return "&#x41D;&#x435;&#x43B;&#x44C;&#x437;&#x44F; &#x443;&#x434;&#x430;&#x43B;&#x438;&#x442;&#x44C;!"},
		MSG_TAB_TITLE_EMPTY: function() { return "&#x41D;&#x430;&#x437;&#x432;&#x430;&#x43D;&#x438;&#x435; &#x43D;&#x435; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x431;&#x44B;&#x442;&#x44C; &#x43F;&#x443;&#x441;&#x442;&#x44B;&#x43C;!"},
		MSG_TAB_TITLE_LIMIT: function() { return "&#x421;&#x43B;&#x438;&#x448;&#x43A;&#x43E;&#x43C; &#x434;&#x43B;&#x438;&#x43D;&#x43D;&#x43E;&#x435; &#x43D;&#x430;&#x437;&#x432;&#x430;&#x43D;&#x438;&#x435;!"},
		// action column
		MSG_TAB_COLUMN_ADD_SUCCESS: function() { return "&#x41A;&#x43E;&#x43B;&#x43E;&#x43D;&#x43A;&#x430; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x430;!"},
		MSG_TAB_COLUMNS_DELETE_SUCCESS: function() { return "&#x41A;&#x43E;&#x43B;&#x43E;&#x43D;&#x43A;&#x430; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x443;&#x434;&#x430;&#x43B;&#x435;&#x43D;&#x430;!"},
		MSG_TAB_COLUMNS_DELETE_CONFIRM: function() { return "&#x412;&#x44B; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x445;&#x43E;&#x442;&#x438;&#x442;&#x435; &#x443;&#x434;&#x430;&#x43B;&#x438;&#x442;&#x44C; &#x432;&#x44B;&#x434;&#x435;&#x43B;&#x435;&#x43D;&#x44B;&#x435; &#x43A;&#x43E;&#x43B;&#x43E;&#x43D;&#x43A;&#x438;?"},
		MSG_TAB_NOTIFY_DELETE_ALL: function() { return "&#x41D;&#x435;&#x43B;&#x44C;&#x437;&#x44F; &#x443;&#x434;&#x430;&#x43B;&#x438;&#x442;&#x44C; &#x432;&#x441;&#x435; &#x43A;&#x43E;&#x43B;&#x43E;&#x43D;&#x43A;&#x438;!"},
		MSG_TAB_NOTIFY_DELETE_NULL: function() { return "&#x427;&#x442;&#x43E; &#x431;&#x44B; &#x443;&#x434;&#x430;&#x43B;&#x438;&#x442;&#x44C; &#x43A;&#x43E;&#x43B;&#x43E;&#x43D;&#x43A;&#x438; &#x43D;&#x435;&#x43E;&#x431;&#x445;&#x43E;&#x434;&#x438;&#x43C;&#x43E; &#x432;&#x44B;&#x431;&#x440;&#x430;&#x442;&#x44C; &#x445;&#x43E;&#x442;&#x44F; &#x431;&#x44B; &#x43E;&#x434;&#x43D;&#x443; &#x438;&#x437; &#x43D;&#x438;&#x445;!"},
		//icon
		MSG_TAB_ICON_LOAD_SUCCESS: function() { return "&#x418;&#x43A;&#x43E;&#x43D;&#x43A;&#x430; &#x442;&#x430;&#x431;&#x430; &#x443;&#x434;&#x430;&#x447;&#x43D;&#x43E; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x430;!"},
		MSG_TAB_ICON_DELETE_CONFIRM: function() { return "&#x412;&#x44B; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x445;&#x43E;&#x442;&#x438;&#x442;&#x435; &#x443;&#x434;&#x430;&#x43B;&#x438;&#x442;&#x44C; &#x438;&#x43A;&#x43E;&#x43D;&#x43A;&#x443;?"},
		MSG_TAB_ICON_DELETE_SUCCESS: function() { return "&#x418;&#x43A;&#x43E;&#x43D;&#x43A;&#x430; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x430; &#x443;&#x434;&#x430;&#x43B;&#x435;&#x43D;&#x430;!"}
	},

	ModMessage: {
		MSG_SEND:				function() { return "&#x421;&#x43E;&#x43E;&#x431;&#x449;&#x435;&#x43D;&#x438;&#x435; &#x43E;&#x442;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x43D;&#x43E;."},
		MSG_DELETE_CONFIRM:		function() { return "&#x412;&#x44B; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x445;&#x43E;&#x442;&#x438;&#x442;&#x435; &#x443;&#x434;&#x430;&#x43B;&#x438;&#x442;&#x44C; &#x441;&#x43E;&#x43E;&#x431;&#x449;&#x435;&#x43D;&#x438;&#x435;?"},
		MSG_ACL_DENY: 			function () { return "&#x412; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x435; &#x43E;&#x442;&#x43A;&#x430;&#x437;&#x430;&#x43D;&#x43E;!"; },
		MSG_OBJECT_NOT_FOUND:	function () { return "&#x41E;&#x431;&#x44A;&#x435;&#x43A;&#x442; &#x43D;&#x435; &#x43D;&#x430;&#x439;&#x434;&#x435;&#x43D;!"; },
		MSG_LIMIT:				function () { return "&#x41F;&#x440;&#x435;&#x432;&#x44B;&#x448;&#x435;&#x43D; &#x43B;&#x438;&#x43C;&#x438;&#x442; &#x438;&#x441;&#x445;&#x43E;&#x434;&#x44F;&#x449;&#x438;&#x445; &#x441;&#x43E;&#x43E;&#x431;&#x449;&#x435;&#x43D;&#x438;&#x439;!";}
	},
	
	ModNewsArticles: {
		MSG_COMMENT_DELETE_SUCCESS: function() { return "&#x423;&#x434;&#x430;&#x43B;&#x435;&#x43D;&#x438;&#x435; &#x43F;&#x440;&#x43E;&#x448;&#x43B;&#x43E; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E;!"},
		MSG_COMMENT_EDIT_SUCCESS: function() { return "&#x412;&#x44B; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x43E;&#x442;&#x440;&#x435;&#x434;&#x430;&#x43A;&#x442;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43B;&#x438; &#x43A;&#x43E;&#x43C;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x440;&#x438;&#x439;!"},
		MSG_OBJECT_NOT_FOUND: function() { return "&#x41E;&#x431;&#x44A;&#x435;&#x43A;&#x442; &#x43D;&#x435; &#x43D;&#x430;&#x439;&#x434;&#x435;&#x43D;!"},
		MSG_COMMENT_NOT_FOUND: function() { return "&#x41A;&#x43E;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x440;&#x438;&#x439; &#x43D;&#x435; &#x43D;&#x430;&#x439;&#x434;&#x435;&#x43D;!"},
		MSG_ACL_DENY: function() { return "&#x41D;&#x435;&#x442; &#x43F;&#x440;&#x430;&#x432;!"}
	},
		
	ModBlockNavigator: {
		RESORT_ERROR_ACL_DENY: 			function() {return "&#x414;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x435; &#x43D;&#x435; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x43D;&#x43E; &#x43F;&#x43E; &#x43F;&#x440;&#x430;&#x432;&#x430;&#x43C;!"},
		RESORT_ERROR_OBJECT_NOT_FOUND: 	function(){ return "&#x41E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x43F;&#x440;&#x438; &#x441;&#x43E;&#x432;&#x435;&#x440;&#x448;&#x435;&#x43D;&#x438;&#x438; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x446;&#x438;&#x438;!"},
		RESORT_ERROR_BLOCK_NAVIGATOR: 	function() { return "&#x41E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x43F;&#x440;&#x438; &#x441;&#x43E;&#x432;&#x435;&#x440;&#x448;&#x435;&#x43D;&#x438;&#x438; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x446;&#x438;&#x438;!"},
		RESORT_ERROR_TAB: 				function() { return "&#x41E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x43F;&#x440;&#x438; &#x441;&#x43E;&#x432;&#x435;&#x440;&#x448;&#x435;&#x43D;&#x438;&#x438; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x446;&#x438;&#x438;!"},
		MSG_BLOCK_NOT_FOUND: 			function() { return "&#x411;&#x43B;&#x43E;&#x43A; &#x43D;&#x435; &#x43D;&#x430;&#x439;&#x434;&#x435;&#x43D;!"},
		MSG_BLOCK_CONTENT_ACL_DENY: 	function() { return "&#x412; &#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x435; &#x43E;&#x442;&#x43A;&#x430;&#x437;&#x430;&#x43D;&#x43E;!"},
		MSG_BLOCK_DELETE_SUCCESS:		function() { return "&#x411;&#x43B;&#x43E;&#x43A; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x443;&#x434;&#x430;&#x43B;&#x435;&#x43D;!"}
	},
	
	ModTabNavigator: {
		MSG_TAB_NOT_FOUND: 	function() { return "&#x422;&#x430;&#x431; &#x43D;&#x435; &#x43D;&#x430;&#x439;&#x434;&#x435;&#x43D;!"}
	},
	
	ModBlockRss: {
		MSG_RSS_NOT_FOUND: 			function() {return "&#x41D;&#x435; &#x43D;&#x430;&#x439;&#x434;&#x435;&#x43D; RSS."},
		MSG_TAB_NOT_FOUND: 			function() {return "&#x41D;&#x435; &#x43D;&#x430;&#x439;&#x434;&#x435;&#x43D;&#x430; &#x432;&#x43A;&#x43B;&#x430;&#x434;&#x43A;&#x430;."},
		MSG_BLOCK_LIMIT: 			function() {return "&#x414;&#x43E;&#x441;&#x442;&#x438;&#x433;&#x43D;&#x443;&#x442;&#x43E; &#x43C;&#x430;&#x43A;&#x441;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x43A;&#x43E;&#x43B;&#x438;&#x447;&#x435;&#x441;&#x442;&#x432;&#x43E; &#x431;&#x43B;&#x43E;&#x43A;&#x43E;&#x432; &#x434;&#x43B;&#x44F; &#x432;&#x43A;&#x43B;&#x430;&#x434;&#x43A;&#x438;."},
		MSG_URL_NOT_FOUND: 			function() {return "URL &#x43D;&#x435;&#x434;&#x43E;&#x441;&#x442;&#x443;&#x43F;&#x435;&#x43D;."},
		MSG_FILE_SIZE_LIMIT: 		function() {return "&#x421;&#x43B;&#x438;&#x448;&#x43A;&#x43E;&#x43C; &#x431;&#x43E;&#x43B;&#x44C;&#x448;&#x43E;&#x439; RSS."},
		MSG_URL_IN_STOPLIST: 		function() {return "URL &#x43D;&#x430;&#x445;&#x43E;&#x434;&#x438;&#x442;&#x441;&#x44F; &#x441;&#x442;&#x43E;&#x43F;-&#x43B;&#x438;&#x441;&#x442;&#x435;."},
		MSG_ACL_DENY: 				function() {return "&#x41D;&#x435;&#x442; &#x43F;&#x440;&#x430;&#x432;!"},
		MSG_INVALID_XML: 			function() {return "&#x41D;&#x435;&#x432;&#x435;&#x440;&#x43D;&#x44B;&#x439; &#x444;&#x43E;&#x440;&#x43C;&#x430;&#x442; RSS."},
		MSG_BLOCK_DELETE_CONFIRM:	function() {return "&#x412;&#x44B; &#x434;&#x435;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x445;&#x43E;&#x442;&#x438;&#x442;&#x435; &#x443;&#x434;&#x430;&#x43B;&#x438;&#x442;&#x44C; &#x431;&#x43B;&#x43E;&#x43A;?"}
	},
	
	TabNavigator: {
		MSG_RESORT_HACK: 			function () { return "&#x41E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x43F;&#x435;&#x440;&#x435;&#x43C;&#x435;&#x449;&#x435;&#x43D;&#x438;&#x44F; &#x432;&#x43A;&#x43B;&#x430;&#x434;&#x43A;&#x438;!" },
		MSG_ACTIVATE_ERROR: 		function () { return "&#x41E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x430;&#x43A;&#x442;&#x438;&#x432;&#x430;&#x446;&#x438;&#x438; &#x432;&#x43A;&#x43B;&#x430;&#x434;&#x43A;&#x438;!" },
		MSG_LOAD_ERROR: 			function () { return "&#x41E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x43D;&#x438;&#x44F; &#x432;&#x43A;&#x43B;&#x430;&#x434;&#x43A;&#x438;!" },
		LABEL_LIST_HEADER_TITLE: 	function () { return "&#x415;&#x449;&#x435; &#x432;&#x43A;&#x43B;&#x430;&#x434;&#x43A;&#x438;" }
	},
	
	TabUserProfile: {
		MSG_ADD_FRIEND:				function(user) { return "&#x412;&#x44B; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x445;&#x43E;&#x442;&#x438;&#x442;&#x435; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x438;&#x442;&#x44C; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44F; <b>" + user + "</b> &#x432; &#x434;&#x440;&#x443;&#x437;&#x44C;&#x44F;?"},
		MSG_ADD_FRIEND_SUCCESS:		function() 	   { return "&#x41F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x43B;&#x435;&#x43D; &#x412;&#x430;&#x43C; &#x432; &#x434;&#x440;&#x443;&#x437;&#x44C;&#x44F;."},
		MSG_REMOVE_FRIEND:				function(user) { return "&#x412;&#x44B; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x445;&#x43E;&#x442;&#x438;&#x442;&#x435; &#x443;&#x434;&#x430;&#x43B;&#x438;&#x442;&#x44C; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44F; <b>" + user + "</b> &#x438;&#x437; &#x434;&#x440;&#x443;&#x437;&#x435;&#x439;?"},
		MSG_REMOVE_FRIEND_SUCCESS:		function() 	   { return "&#x41F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x443;&#x434;&#x430;&#x43B;&#x435;&#x43D; &#x438;&#x437; &#x434;&#x440;&#x443;&#x437;&#x435;&#x439;."}
		
	},
	
	ModWorkspace: {
		MSG_SETTINGS_SUCCESS: 			function () { return "&#x41D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x438; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x44B;!" },
		MSG_USER_BLOCK_SUCCESS: 		function () { return "&#x41F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x437;&#x430;&#x431;&#x43B;&#x43E;&#x43A;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;!" },
		MSG_USER_UNBLOCK_SUCCESS: 		function () { return "&#x41F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x440;&#x430;&#x437;&#x431;&#x43B;&#x43E;&#x43A;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;!" },
		MSG_ACL_DENY: 					function () { return "&#x41D;&#x435;&#x442; &#x43F;&#x440;&#x430;&#x432;!" },
		MSG_OBJECT_NOT_FOUND: 			function () { return "&#x41D;&#x435;&#x442; &#x442;&#x430;&#x43A;&#x43E;&#x433;&#x43E; &#x434;&#x43E;&#x43C;&#x435;&#x43D;&#x430;!" },
		MSG_WS_MOVE_SUCCESS: 			function () { return "&#x414;&#x43E;&#x43C;&#x435;&#x43D; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x43F;&#x435;&#x440;&#x435;&#x43C;&#x435;&#x449;&#x435;&#x43D;." },
		MSG_WS_BIND_DOMAIN_SUCCESS: 	function () { return "&#x41F;&#x440;&#x438;&#x432;&#x44F;&#x437;&#x43A;&#x430; &#x434;&#x43E;&#x43C;&#x435;&#x43D;&#x430; &#x43F;&#x440;&#x43E;&#x448;&#x43B;&#x430; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; ;)" },
		MSG_LIMIT_COUNT_WS: 			function () { return "&#x423; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44F; &#x432;&#x441;&#x435;&#x433;&#x43E; &#x43E;&#x434;&#x438;&#x43D; &#x434;&#x43E;&#x43C;&#x435;&#x43D;! &#x423;&#x434;&#x430;&#x43B;&#x438;&#x442;&#x44C; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44F;?" },
		MSG_DELETE_WS_CONFIRM: 			function () { return "&#x423;&#x434;&#x430;&#x43B;&#x438;&#x442;&#x44C; &#x434;&#x43E;&#x43C;&#x435;&#x43D;?" },
		MSG_DELETE_WS_SUCCESS: 			function () { return "&#x414;&#x43E;&#x43C;&#x435;&#x43D; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x443;&#x434;&#x430;&#x43B;&#x435;&#x43D;." },
		MSG_DELETE_USER_AND_WS_CONFIRM:	function () { return "&#x423; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44F; &#x432;&#x441;&#x435;&#x433;&#x43E; &#x43E;&#x434;&#x438;&#x43D; &#x434;&#x43E;&#x43C;&#x435;&#x43D;! &#x423;&#x434;&#x430;&#x43B;&#x438;&#x442;&#x44C; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44F; &#x438; &#x434;&#x43E;&#x43C;&#x435;&#x43D;?" },
		MSG_DELETE_USER_AND_WS_SUCCESS: function () { return "&#x414;&#x43E;&#x43C;&#x435;&#x43D; &#x438; &#x43F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x443;&#x434;&#x430;&#x43B;&#x435;&#x43D;&#x44B;." },
		MSG_NOT_FOUND_USER: 			function () { return "&#x41F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x44C; &#x43D;&#x435; &#x43D;&#x430;&#x439;&#x434;&#x435;&#x43D;!" },
		MSG_SAVE_CONFIG:				function() { return "&#x418;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x44B; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E;"; },
		MSG_SET_DEFAULT:				function() { return "&#x417;&#x43D;&#x430;&#x447;&#x435;&#x43D;&#x438;&#x44F; &#x43F;&#x43E; &#x443;&#x43C;&#x43E;&#x43B;&#x447;&#x430;&#x43D;&#x438;&#x44E; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x432;&#x44B;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x44B;"; }
	},
	
	ModRubricator: {
		MSG_CREATE_SUCCESS : function() { return "&#x411;&#x43B;&#x43E;&#x43A; &#x440;&#x435;&#x439;&#x442;&#x438;&#x43D;&#x433;&#x430; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x43D;!"; },
		MSG_CREATE_ERROR : function() { return "&#x41E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x43F;&#x440;&#x438; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x43D;&#x438;&#x438;!"; },
		MSG_SETTINGS_WS_SUCCESS: function () { return "&#x412;&#x430;&#x448; &#x434;&#x43E;&#x43C;&#x435;&#x43D; &#x43E;&#x43F;&#x443;&#x431;&#x43B;&#x438;&#x43A;&#x43E;&#x432;&#x430;&#x43D;!" },
		MSG_UNPUBLICATE_WS_SUCCESS: function () { return "&#x412;&#x430;&#x448; &#x434;&#x43E;&#x43C;&#x435;&#x43D; &#x441;&#x43D;&#x44F;&#x442; &#x441; &#x43F;&#x443;&#x431;&#x43B;&#x438;&#x43A;&#x430;&#x446;&#x438;&#x438;!" },
		MSG_SETTINGS_TAB_SUCCESS: function () { return "&#x412;&#x430;&#x448;&#x430; &#x432;&#x43A;&#x43B;&#x430;&#x434;&#x43A;&#x430; &#x43E;&#x43F;&#x443;&#x431;&#x438;&#x43A;&#x43E;&#x432;&#x430;&#x43D;&#x430;!" },
		MSG_UNPUBLICATE_TAB_SUCCESS: function () { return "&#x412;&#x430;&#x448; &#x432;&#x43A;&#x43B;&#x430;&#x434;&#x43A;&#x430; &#x441;&#x43D;&#x44F;&#x442;&#x430; &#x441; &#x43F;&#x443;&#x431;&#x43B;&#x438;&#x43A;&#x430;&#x446;&#x438;&#x438;!" },
		MSG_OBJECT_NOT_FOUND: function () { return "&#x41E;&#x431;&#x44A;&#x435;&#x43A;&#x442; &#x43D;&#x435; &#x43D;&#x430;&#x439;&#x434;&#x435;&#x43D;!" },
		MSG_ACL_DENY: function () { return "&#x41D;&#x435;&#x442; &#x43F;&#x440;&#x430;&#x432;!" },
		MSG_SAVE_ERROR: function () { return "&#x41E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x43F;&#x440;&#x438; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x438;&#x438;!" },
		MSG_SAVE_OK: function () { return "&#x424;&#x438;&#x43B;&#x44C;&#x442;&#x440; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x451;&#x43D;" }
	},
	
	ModRubricatorRss: {
		MSG_UNPUBLICATE_SUCCESS: function () { return "&#x412;&#x430;&#x448; &#x43A;&#x430;&#x43D;&#x430;&#x43B; &#x441;&#x43D;&#x44F;&#x442; &#x441; &#x43F;&#x443;&#x431;&#x43B;&#x438;&#x43A;&#x430;&#x446;&#x438;&#x438;!" },
		MSG_PUBLICATE_SUCCESS: function () { return "&#x41A;&#x430;&#x43D;&#x430;&#x43B; &#x43E;&#x43F;&#x443;&#x431;&#x43B;&#x438;&#x43A;&#x43E;&#x432;&#x430;&#x43D;!" },
		MSG_OBJECT_NOT_FOUND: function () { return "&#x41E;&#x431;&#x44A;&#x435;&#x43A;&#x442; &#x43D;&#x435; &#x43D;&#x430;&#x439;&#x434;&#x435;&#x43D;!" },
		MSG_ACL_DENY: function () { return "&#x41D;&#x435;&#x442; &#x43F;&#x440;&#x430;&#x432;!" },
		MSG_CODE_NOT_FOUND: function () { return "&#x41D;&#x435; &#x43D;&#x430;&#x439;&#x434;&#x435;&#x43D; &#x43A;&#x43E;&#x434; &#x43F;&#x43E;&#x434;&#x442;&#x432;&#x435;&#x440;&#x436;&#x434;&#x435;&#x43D;&#x438;&#x44F;!" }
	},
	
	ModResource: {
		MSG_ACL_DENY: function () { return "&#x41D;&#x435;&#x442; &#x43F;&#x440;&#x430;&#x432;!" },
		MSG_OBJECT_NOT_FOUND: function () { return "&#x41E;&#x431;&#x44A;&#x435;&#x43A;&#x442; &#x43D;&#x435; &#x43D;&#x430;&#x439;&#x434;&#x435;&#x43D;!" },
		MSG_PHOTO_DELETE: function () { return "&#x424;&#x43E;&#x442;&#x43E; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x443;&#x434;&#x430;&#x43B;&#x435;&#x43D;&#x43E;!" },
		MSG_PHOTO_NOT_FOUND: function () { return "&#x424;&#x43E;&#x442;&#x43E; &#x43D;&#x435; &#x43D;&#x430;&#x439;&#x434;&#x435;&#x43D;&#x43E;!" },
		MSG_PHOTO_DELETE_CONFIRM: function () { return "&#x412;&#x44B; &#x434;&#x435;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x445;&#x43E;&#x442;&#x438;&#x442;&#x435; &#x443;&#x434;&#x430;&#x43B;&#x438;&#x442;&#x44C; &#x444;&#x43E;&#x442;&#x43E;?" },
		MSG_IMG_DELETE: function () { return "&#x41A;&#x430;&#x440;&#x442;&#x438;&#x43D;&#x43A;&#x430; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x443;&#x434;&#x430;&#x43B;&#x435;&#x43D;&#x430;!" },
		MSG_IMG_DELETE_CONFIRM: function () { return "&#x412;&#x44B; &#x434;&#x435;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x445;&#x43E;&#x442;&#x438;&#x442;&#x435; &#x443;&#x434;&#x430;&#x43B;&#x438;&#x442;&#x44C; &#x43A;&#x430;&#x440;&#x442;&#x438;&#x43D;&#x43A;&#x443;?" },
		MSG_IMG_NOT_TITLE_SET: function () { return "&#x417;&#x430;&#x433;&#x43E;&#x43B;&#x43E;&#x432;&#x43E;&#x43A; &#x43D;&#x435; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x431;&#x44B;&#x442;&#x44C; &#x43F;&#x443;&#x441;&#x442;&#x44B;&#x43C;!" },
		MSG_IMG_TITLE_SET: function () { return "&#x417;&#x430;&#x433;&#x43E;&#x43B;&#x43E;&#x432;&#x43E;&#x43A; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x438;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;!" }
	},
	
	ModNews: {
		CONFIRM_DELETE_TAB: function() { return "&#x423;&#x434;&#x430;&#x43B;&#x438;&#x442;&#x44C; &#x432;&#x43A;&#x43B;&#x430;&#x434;&#x43A;&#x443;?" },
		MSG_DELETE_SUCCESS: function () { return "&#x412;&#x43A;&#x43B;&#x430;&#x434;&#x43A;&#x430; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x443;&#x434;&#x430;&#x43B;&#x435;&#x43D;&#x430;!" },
		MSG_ACL_DENY: function () { return "&#x423; &#x412;&#x430;&#x441; &#x43D;&#x435;&#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x43E; &#x43F;&#x440;&#x430;&#x432; &#x434;&#x43B;&#x44F; &#x441;&#x43E;&#x432;&#x435;&#x440;&#x448;&#x435;&#x43D;&#x438;&#x44F; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x446;&#x438;&#x438;!" },
		SEARCH_RESULTS_TITLE: function () { return "&#x420;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442;&#x44B; &#x43F;&#x43E;&#x438;&#x441;&#x43A;&#x430;" },
		MSG_SETTINGS_SUCCESS: function() {return "&#x41D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x438; &#x432;&#x43A;&#x43B;&#x430;&#x434;&#x43A;&#x438; &#x43D;&#x43E;&#x432;&#x43E;&#x441;&#x442;&#x435;&#x439; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x44B;!"},
		MSG_INCORECT_FORMAT: function() {return "&#x41D;&#x435;&#x432;&#x435;&#x440;&#x43D;&#x44B;&#x439; &#x444;&#x43E;&#x440;&#x43C;&#x430;&#x442; &#x438;&#x43C;&#x435;&#x43D;!"},
		MSG_IN_STOPLIST: function() {return "&#x414;&#x430;&#x43D;&#x43D;&#x44B;&#x439; URL &#x443;&#x436;&#x435; &#x435;&#x441;&#x442;&#x44C;!"},
		MSG_TAB_NEWS_NOT_FOUND: function() {return "&#x412;&#x43A;&#x43B;&#x430;&#x434;&#x43A;&#x430; &#x43D;&#x43E;&#x432;&#x43E;&#x441;&#x442;&#x435;&#x439; &#x43D;&#x435; &#x43D;&#x430;&#x439;&#x434;&#x435;&#x43D;!"},
		CANT_DELETE_LAST_TAB: function() { return "&#x41D;&#x435;&#x43B;&#x44C;&#x437;&#x44F; &#x443;&#x434;&#x430;&#x43B;&#x438;&#x442;&#x44C; &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43D;&#x44E;&#x44E; &#x432;&#x43A;&#x43B;&#x430;&#x434;&#x43A;&#x443;!"}
	},

	ModNewsTags: {
		MSG_SETTINGS_SUCCESS: function(){return "&#x41D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x438; &#x431;&#x43B;&#x43E;&#x43A;&#x430; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x44B;!"},
		MSG_RENAME_TAG_SUCCESS: function(){return "&#x422;&#x435;&#x433; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x43F;&#x435;&#x440;&#x435;&#x438;&#x43C;&#x435;&#x43D;&#x43E;&#x432;&#x430;&#x43D;!"},
		MSG_TAG_NOT_FOUND: function(){return "&#x422;&#x435;&#x433; &#x43D;&#x435; &#x43D;&#x430;&#x439;&#x434;&#x435;&#x43D;!"},
		MSG_OBJECT_NOT_FOUND: function(){return "&#x41E;&#x431;&#x44A;&#x435;&#x43A;&#x442; &#x43D;&#x435; &#x43D;&#x430;&#x439;&#x434;&#x435;&#x43D;!"},
		MSG_ACL_DENY: function(){return "&#x423; &#x432;&#x430;&#x441; &#x43D;&#x435;&#x442; &#x43F;&#x440;&#x430;&#x432;!"},
		MSG_NEWS_NOT_FOUND: function(){return "&#x412;&#x43A;&#x43B;&#x430;&#x434;&#x43A;&#x430; &#x43D;&#x430;&#x432;&#x43E;&#x441;&#x442;&#x435;&#x439; &#x43D;&#x435; &#x43D;&#x430;&#x439;&#x434;&#x435;&#x43D;!"},
		MSG_DELETE_TAG: function(){return "&#x412;&#x44B; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x445;&#x43E;&#x442;&#x438;&#x442;&#x435; &#x443;&#x434;&#x430;&#x43B;&#x438;&#x442;&#x44C; &#x442;&#x435;&#x433;?"},
		MSG_DELETE_TAG_SUCCESS: function(){return "&#x412;&#x44B; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x443;&#x434;&#x430;&#x43B;&#x438;&#x43B;&#x438; &#x442;&#x435;&#x433;!"}
		
	},
	
	ModNewsArticle: {
		URL_EXISTS: function() { return "&#x412;&#x432;&#x434;&#x435;&#x43D;&#x43D;&#x44B;&#x439; URL &#x443;&#x436;&#x435; &#x441;&#x443;&#x449;&#x435;&#x441;&#x442;&#x432;&#x443;&#x435;&#x442;"; },
		SUCCESS_CREATE_NEWS_ARTICLE: function() { return "&#x41D;&#x43E;&#x432;&#x43E;&#x441;&#x442;&#x44C; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x43E;&#x43F;&#x443;&#x431;&#x43B;&#x438;&#x43A;&#x43E;&#x432;&#x430;&#x43D;&#x430;"; },
		SUCCESS_SAVE_NEWS_ARTICLE: function() { return "&#x41D;&#x43E;&#x432;&#x43E;&#x441;&#x442;&#x44C; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x430;"; },
		TAB_NOT_FOUND_ERROR: function() {return "&#x412;&#x43A;&#x43B;&#x430;&#x434;&#x43A;&#x430; &#x43D;&#x43E;&#x432;&#x43E;&#x441;&#x442;&#x435;&#x439; &#x43D;&#x435; &#x43D;&#x430;&#x439;&#x434;&#x435;&#x43D;"},
		ARTICLE_NOT_FOUND: function() {return "&#x41D;&#x43E;&#x432;&#x43E;&#x441;&#x442;&#x44C; &#x43D;&#x435; &#x43D;&#x430;&#x439;&#x434;&#x435;&#x43D;&#x430;."},
		ERROR_LOAD_NEWS_ARTICLE: function() {return "&#x41E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438; &#x43D;&#x43E;&#x432;&#x43E;&#x441;&#x442;&#x438;."},
		CLIPBOARD_SAVE:  function () { return "&#x422;&#x435;&#x43A;&#x441;&#x442; &#x43A;&#x43E;&#x43C;&#x43C;&#x435;&#x43D;&#x430;&#x440;&#x438;&#x44F; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x43B;&#x435;&#x43D; &#x432; &#x431;&#x443;&#x444;&#x435;&#x440; &#x43E;&#x431;&#x43C;&#x435;&#x43D;&#x430;" },
		DELETE_ARTICLE_CONFIRM: function() {return "&#x412;&#x44B; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x445;&#x43E;&#x442;&#x438;&#x442;&#x435; &#x443;&#x434;&#x430;&#x43B;&#x438;&#x442;&#x44C; &#x43D;&#x43E;&#x432;&#x43E;&#x441;&#x442;&#x44C;?"},
		MSG_DELETE_SUCCESS: function() {return "&#x41D;&#x43E;&#x432;&#x43E;&#x441;&#x442;&#x44C; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x443;&#x434;&#x430;&#x43B;&#x435;&#x43D;&#x430;."},
		MSG_SAVE_BLOCK_SETTINGS_OK: function () {return "&#x41D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x438; &#x431;&#x43B;&#x43E;&#x43A;&#x430; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x44B;"},
		MSG_SAVE_BLOCK_SETTINGS_FAILED: function () {return "&#x41E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x43D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x435;&#x43A;"}
	},
	
	ModBlog: {
		MSG_POST_NOT_FOUND: function () { return "&#x41F;&#x43E;&#x441;&#x442; &#x43D;&#x435; &#x43D;&#x430;&#x439;&#x434;&#x435;&#x43D;!" },
		MSG_BLOG_ALREDY_EXIST: function () { return "&#x41D;&#x435;&#x43B;&#x44C;&#x437;&#x44F; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x442;&#x44C; &#x431;&#x43E;&#x43B;&#x435;&#x435; &#x43E;&#x434;&#x43D;&#x43E;&#x433;&#x43E; &#x431;&#x43B;&#x43E;&#x433;&#x430;.<br/> &#x423; &#x432;&#x430;&#x441; &#x443;&#x436;&#x435; &#x435;&#x441;&#x442;&#x44C; &#x43E;&#x434;&#x438;&#x43D; &#x431;&#x43B;&#x43E;&#x433;!" },
		MSG_DUPLICATE_DIVISION: function () { return "&#x420;&#x443;&#x431;&#x440;&#x438;&#x43A;&#x430; &#x441; &#x442;&#x430;&#x43A;&#x438;&#x43C; &#x43D;&#x430;&#x437;&#x432;&#x430;&#x43D;&#x438;&#x435;&#x43C; &#x443;&#x436;&#x435; &#x441;&#x443;&#x449;&#x435;&#x441;&#x442;&#x432;&#x443;&#x435;&#x442;" },
		MSG_CANT_DELETED_LAST_DIVISION: function () { return "&#x41D;&#x435;&#x43B;&#x44C;&#x437;&#x44F; &#x443;&#x434;&#x430;&#x43B;&#x438;&#x442;&#x44C; &#x43F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43D;&#x44E;&#x44E; &#x440;&#x443;&#x431;&#x440;&#x438;&#x43A;&#x443;!" },
		MSG_DIVISION_NOT_FOUND: function () { return "&#x420;&#x443;&#x431;&#x440;&#x438;&#x43A;&#x430; &#x43D;&#x435; &#x43D;&#x430;&#x439;&#x434;&#x435;&#x43D;&#x430;!" },
		MSG_BLOG_NOT_FOUND: function () { return "&#x411;&#x43B;&#x43E;&#x433; &#x43D;&#x435; &#x43D;&#x430;&#x439;&#x434;&#x435;&#x43D;!" },
		MSG_BLOG_PUBLICATED: function () { return "&#x411;&#x43B;&#x43E;&#x433; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x43E;&#x43F;&#x443;&#x431;&#x43B;&#x438;&#x43A;&#x43E;&#x432;&#x430;&#x43D;" },
		MSG_BLOG_UNPUBLICATED: function () { return "&#x412;&#x430;&#x448; &#x431;&#x43B;&#x43E;&#x433; &#x441;&#x43D;&#x44F;&#x442; &#x441; &#x43F;&#x443;&#x431;&#x43B;&#x438;&#x43A;&#x430;&#x446;&#x438;&#x438;" },
		MSG_CONFIRM_BLOG_UNPUBLICATE: function () { return "&#x412;&#x430;&#x448; &#x431;&#x43B;&#x43E;&#x433; &#x431;&#x443;&#x434;&#x435;&#x442; &#x441;&#x43D;&#x44F;&#x442; &#x441; &#x43F;&#x443;&#x431;&#x43B;&#x438;&#x43A;&#x430;&#x446;&#x438;&#x438;. &#x41F;&#x440;&#x43E;&#x434;&#x43E;&#x43B;&#x436;&#x438;&#x442;&#x44C;?" },
		MSG_CONFIRM_DIVISION_MOVE: function () { return "&#x41F;&#x43E;&#x441;&#x442;&#x44B; &#x438;&#x437; &#x434;&#x430;&#x43D;&#x43D;&#x43E;&#x439; &#x440;&#x443;&#x431;&#x440;&#x438;&#x43A;&#x438; &#x431;&#x443;&#x434;&#x443;&#x442; &#x43F;&#x435;&#x440;&#x435;&#x43D;&#x435;&#x441;&#x435;&#x43D;&#x44B;. &#x41F;&#x440;&#x43E;&#x434;&#x43E;&#x43B;&#x436;&#x438;&#x442;&#x44C;?" },
		MSG_CONFIRM_DIVISION_DELETE: function () { return "&#x41F;&#x43E;&#x441;&#x442;&#x44B; &#x438;&#x437; &#x434;&#x430;&#x43D;&#x43D;&#x43E;&#x439; &#x440;&#x443;&#x431;&#x440;&#x438;&#x43A;&#x438; &#x431;&#x443;&#x434;&#x443;&#x442; &#x443;&#x434;&#x430;&#x43B;&#x435;&#x43D;&#x44B;. &#x41F;&#x440;&#x43E;&#x434;&#x43E;&#x43B;&#x436;&#x438;&#x442;&#x44C;?" },
		MSG_ACL_DENY: function () { return "&#x423; &#x412;&#x430;&#x441; &#x43D;&#x435;&#x434;&#x43E;&#x441;&#x442;&#x430;&#x442;&#x43E;&#x447;&#x43D;&#x43E; &#x43F;&#x440;&#x430;&#x432; &#x434;&#x43B;&#x44F; &#x441;&#x43E;&#x432;&#x435;&#x440;&#x448;&#x435;&#x43D;&#x438;&#x44F; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x446;&#x438;&#x438;!" },
		MSG_ACL_DENY_HACK: function () { return "&#x412;&#x44B; &#x432;&#x441;&#x435; &#x435;&#x449;&#x435; &#x43B;&#x43E;&#x43C;&#x430;&#x435;&#x442;&#x435;? &#x422;&#x43E;&#x433;&#x434;&#x430; &#x43C;&#x44B; &#x435;&#x434;&#x435;&#x43C; &#x43A; &#x432;&#x430;&#x43C;!" },
		MSG_PUBLICATE_POST_SUCCESS: function () { return "&#x41F;&#x43E;&#x441;&#x442; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x43D;"; },
			MSG_CREATE_DRAFT: function () { return "&#x427;&#x435;&#x440;&#x43D;&#x43E;&#x432;&#x438;&#x43A; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;"; },
		MSG_CLOSE_UNSAVED_POST: function () { return "&#x418;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x431;&#x443;&#x434;&#x443;&#x442; &#x443;&#x442;&#x435;&#x440;&#x44F;&#x43D;&#x44B;. &#x41F;&#x440;&#x43E;&#x434;&#x43E;&#x43B;&#x436;&#x438;&#x442;&#x44C;?"; },
		MSG_SETTINGS_SUCCESS: function () { return "&#x41D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x438; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x44B;"; },
		MSG_AUTOSAVE_FAILED: function () { return "&#x410;&#x432;&#x442;&#x43E;&#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x441;&#x43B;&#x43E;&#x43C;&#x430;&#x43B;&#x43E;&#x441;&#x44C;! :(<br/>&#x41F;&#x440;&#x43E;&#x432;&#x435;&#x440;&#x44C;&#x442;&#x435; &#x441;&#x43E;&#x435;&#x434;&#x438;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x441; &#x418;&#x43D;&#x442;&#x435;&#x440;&#x43D;&#x435;&#x442;."; },
		MSG_DELETE_POST: function () { return "&#x412;&#x44B; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x445;&#x43E;&#x442;&#x438;&#x442;&#x435; &#x443;&#x434;&#x430;&#x43B;&#x438;&#x442;&#x44C; &#x43F;&#x43E;&#x441;&#x442;?"; },
		MSG_DELETE_POST_OK: function () { return "&#x41F;&#x43E;&#x441;&#x442; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x443;&#x434;&#x430;&#x43B;&#x435;&#x43D;"; },
			MSG_DELETE_TAG: function () { return "&#x412;&#x44B; &#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x438;&#x442;&#x435;&#x43B;&#x44C;&#x43D;&#x43E; &#x445;&#x43E;&#x442;&#x438;&#x442;&#x435; &#x443;&#x434;&#x430;&#x43B;&#x438;&#x442;&#x44C; &#x442;&#x435;&#x433;?"; },
		MSG_DELETE_TAG_SUCCESS: function () { return "&#x422;&#x435;&#x433; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x443;&#x434;&#x430;&#x43B;&#x435;&#x43D;"; },
		MSG_RENAME_TAG_SUCCESS: function () { return "&#x418;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x43D;&#x438;&#x44F; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x44B;"; },
		MSG_TAG_NOT_FOUND: function () { return "&#x422;&#x435;&#x433; &#x43D;&#x435; &#x43D;&#x430;&#x439;&#x434;&#x435;&#x43D;"; },
		SEARCH_RESULTS_TITLE: function () { return "&#x420;&#x435;&#x437;&#x443;&#x43B;&#x44C;&#x442;&#x430;&#x442;&#x44B; &#x43F;&#x43E;&#x438;&#x441;&#x43A;&#x430;" },
		MSG_TEXT_ADD_IN_BUFER: function () { return "&#x422;&#x435;&#x43A;&#x441;&#x442; &#x43A;&#x43E;&#x43C;&#x43C;&#x435;&#x43D;&#x430;&#x440;&#x438;&#x44F; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x43B;&#x435;&#x43D; &#x432; &#x431;&#x443;&#x444;&#x435;&#x440; &#x43E;&#x431;&#x43C;&#x435;&#x43D;&#x430;" },
		TITLE_DEFAULT_DIVISION: function() {return "&#x412;&#x44B;&#x431;&#x440;&#x430;&#x442;&#x44C;..."},

		MSG_TRANSLATE_SUCCESS: function () { return "&#x411;&#x43B;&#x43E;&#x43A; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x442;&#x440;&#x430;&#x43D;&#x441;&#x43B;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x43D;!" },
		MSG_CLOSE_TRANSLATE_SUCCESS: function () { return "&#x411;&#x43B;&#x43E;&#x43A; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x437;&#x430;&#x43A;&#x440;&#x44B;&#x442;! &#x41F;&#x43E;&#x437;&#x434;&#x440;&#x430;&#x432;&#x43B;&#x44F;&#x435;&#x43C;!" },
		MSG_TRANSLATE_BLOCKS_LIMIT: function () { return "&#x41F;&#x440;&#x435;&#x432;&#x44B;&#x448;&#x435;&#x43D; &#x43B;&#x438;&#x43C;&#x438;&#x442; &#x431;&#x43B;&#x43E;&#x43A;&#x43E;&#x432; &#x43D;&#x430; &#x432;&#x44B;&#x431;&#x440;&#x430;&#x43D;&#x43D;&#x43E;&#x439; &#x432;&#x43A;&#x43B;&#x430;&#x434;&#x43A;&#x435;!" },
		
		// Remove comments for FullTabPostRead
		MSG_REMOVE_COMMENT_NODE: function () { return "&#x423;&#x434;&#x430;&#x43B;&#x438;&#x442;&#x44C; &#x43A;&#x43E;&#x43C;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x440;&#x438;&#x439;?" },
		MSG_COMMENT_CREATE_SUCCESS: function() { return "&#x41A;&#x43E;&#x43C;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x440;&#x438;&#x439; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x43B;&#x435;&#x43D;."; }
		
	},
	
	ModTag: {
		MSG_TAG_NOT_FOUND: function(){ return "&#x422;&#x435;&#x433; &#x43D;&#x435; &#x43D;&#x430;&#x439;&#x434;&#x435;&#x43D;!"; },
		MAS_TAG_NOT_EMPTY: function(){ return "&#x422;&#x435;&#x433; &#x43D;&#x435; &#x43C;&#x43E;&#x436;&#x435;&#x442; &#x431;&#x44B;&#x442;&#x44C; &#x43F;&#x443;&#x441;&#x442;&#x44B;&#x43C;!"; }
	},
	
	BlockNavigator: {
		MSG_OBJECT_NOT_FOUND: function(){ return "&#x411;&#x43B;&#x43E;&#x43A; &#x43D;&#x435; &#x43D;&#x430;&#x439;&#x434;&#x435;&#x43D;!"; },
		MSG_ACL_DENY: function(){ return "&#x41D;&#x435;&#x442; &#x43F;&#x440;&#x430;&#x432; &#x43D;&#x430; &#x43F;&#x440;&#x43E;&#x441;&#x43C;&#x43E;&#x442;&#x440; &#x431;&#x43B;&#x43E;&#x43A;&#x430;!"; }
	},
	
	Panel: {
		MSG_CLOSE_CONFIRM: function() { return "&#x412; &#x43F;&#x430;&#x43D;&#x435;&#x43B;&#x438; &#x435;&#x441;&#x442;&#x44C; &#x43D;&#x435;&#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x43D;&#x44B;&#x435; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x435;. &#x417;&#x430;&#x43A;&#x440;&#x44B;&#x442;&#x44C; &#x43F;&#x430;&#x43D;&#x435;&#x43B;&#x44C;?"; }
	},
	
	BlockMenu: {
		BLOCK_TEXT : function() { return "&#x411;&#x43B;&#x43E;&#x43A; &#x442;&#x435;&#x441;&#x442;&#x430;"; },
		BLOCK_RSS : function() { return "&#x411;&#x43B;&#x43E;&#x43A; RSS"; },
		BLOCK_RATING : function() { return "&#x411;&#x43B;&#x43E;&#x43A; &#x440;&#x435;&#x439;&#x442;&#x438;&#x43D;&#x433;&#x430;"; },
		BLOCK_POLLS : function() { return "&#x411;&#x43B;&#x43E;&#x43A; &#x43E;&#x43F;&#x440;&#x43E;&#x441;&#x43E;&#x432;"; },
		BLOCK_FAVOURITES : function() { return "&#x411;&#x43B;&#x43E;&#x43A; &#x437;&#x430;&#x43A;&#x43B;&#x430;&#x434;&#x43E;&#x43A;"; },
		BLOCK_STATISTICS : function() { return "&#x411;&#x43B;&#x43E;&#x43A; &#x441;&#x442;&#x430;&#x442;&#x438;&#x441;&#x442;&#x438;&#x43A;&#x438;"; },
		BLOCK_FEEDBACK : function() { return "&#x411;&#x43B;&#x43E;&#x43A; &#x43E;&#x431;&#x440;&#x430;&#x442;&#x43D;&#x43E;&#x439; &#x441;&#x432;&#x44F;&#x437;&#x438;"; }
	},
	
	BlockText: {
		MSG_CREATE_SUCCESS : function() { return "&#x411;&#x43B;&#x43E;&#x43A; &#x442;&#x435;&#x43A;&#x441;&#x442;&#x430; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x43D;!"; },
		MSG_CREATE_ERROR : function() { return "&#x41E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x43F;&#x440;&#x438; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x43D;&#x438;&#x438;!"; }
	},
	
	BlockFeedback: {
		MSG_CREATE_SUCCESS: function() { return "&#x411;&#x43B;&#x43E;&#x43A; &#x43E;&#x431;&#x440;&#x430;&#x442;&#x43D;&#x43E;&#x439; &#x441;&#x432;&#x44F;&#x437;&#x438; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x43D;"; },
		MSG_SEND_SUCCESS: function() {return "&#x412;&#x430;&#x448;&#x435; &#x441;&#x43E;&#x43E;&#x431;&#x449;&#x435;&#x43D;&#x438;&#x435; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x43E;&#x442;&#x43F;&#x440;&#x430;&#x432;&#x43B;&#x435;&#x43D;&#x43E;!";},
		MSG_DELETE_SUCCESS: function() { return "&#x411;&#x43B;&#x43E;&#x43A; &#x43E;&#x431;&#x440;&#x430;&#x442;&#x43D;&#x43E;&#x439; &#x441;&#x432;&#x44F;&#x437;&#x438; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x443;&#x434;&#x430;&#x43B;&#x435;&#x43D;!"; }
	},
	
	
	BlockStatistics: {
		MSG_CREATE_SUCCESS : function() { return "&#x411;&#x43B;&#x43E;&#x43A; &#x441;&#x442;&#x430;&#x442;&#x438;&#x441;&#x442;&#x438;&#x43A;&#x438; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x43D;!"; },
		MSG_CREATE_ERROR : function() { return "&#x41E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x43F;&#x440;&#x438; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x43D;&#x438;&#x438;!"; },
		MSG_DELETE_SUCCESS:	function () { return "&#x411;&#x43B;&#x43E;&#x43A; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x443;&#x434;&#x430;&#x43B;&#x451;&#x43D;."; }
	},
	
	BlockPolls: {
		MSG_CREATE_SUCCESS : function() { return "&#x411;&#x43B;&#x43E;&#x43A; &#x43E;&#x43F;&#x440;&#x43E;&#x441;&#x43E;&#x432; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x43D;!"; },
		MSG_CREATE_ERROR : function() { return "&#x41E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x43F;&#x440;&#x438; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x43D;&#x438;&#x438;!"; },
		SELECT_ANSWERS: "&#x41D;&#x443;&#x436;&#x43D;&#x43E; &#x432;&#x44B;&#x431;&#x440;&#x430;&#x442;&#x44C; &#x43E;&#x442;&#x432;&#x435;&#x442;(&#x44B;)!",
		ERRORS_POLLS: "&#x41E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x43F;&#x440;&#x438; &#x433;&#x43E;&#x43B;&#x43E;&#x441;&#x43E;&#x432;&#x430;&#x43D;&#x438;&#x438;!",
		SECOND_VOTE: "&#x412;&#x44B; &#x443;&#x436;&#x435; &#x433;&#x43E;&#x43B;&#x43E;&#x441;&#x43E;&#x432;&#x430;&#x43B;&#x438; &#x437;&#x430; &#x44D;&#x442;&#x43E;&#x442; &#x43E;&#x43F;&#x440;&#x43E;&#x441;!",
		VOTE_SUCCESS: "&#x412;&#x44B; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x43F;&#x440;&#x43E;&#x433;&#x43E;&#x43B;&#x43E;&#x441;&#x43E;&#x432;&#x430;&#x43B;&#x438;!",
		DELETE_SUCCESS: "&#x41E;&#x43F;&#x440;&#x43E;&#x441; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x443;&#x434;&#x430;&#x43B;&#x451;&#x43D;",
		LIMIT_ANSWERS: function(c_var) {return "&#x412;&#x44B; &#x43C;&#x43E;&#x436;&#x435;&#x442;&#x435; &#x432;&#x44B;&#x431;&#x440;&#x430;&#x442;&#x44C; &#x43D;&#x435; &#x431;&#x43E;&#x43B;&#x435;&#x435; "+c_var+" &#x432;&#x430;&#x440;&#x438;&#x430;&#x43D;&#x442;&#x43E;&#x432;!";},
		VOTE_TIME_ERROR: function() { return "Время голосования истекло"; }
	},
	
	Statistics: {
		MSG_DRAW_DOT_CHART_ERROR : function() { return "&#x41D;&#x435;&#x432;&#x43E;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x43D;&#x430;&#x440;&#x438;&#x441;&#x43E;&#x432;&#x430;&#x442;&#x44C; &#x433;&#x440;&#x430;&#x444;&#x438;&#x43A;!"; }
	},
	
	ModNewsCalendar: {
		MSG_SETTINGS_SUCCESS : function() { return "&#x41D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x43A;&#x438; &#x431;&#x43B;&#x43E;&#x43A;&#x430; &#x43A;&#x430;&#x43B;&#x435;&#x43D;&#x434;&#x430;&#x440;&#x44F; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x44B;!"; }
	},
	
	ModBlogCalendar: {
		MSG_SETTINGS_SUCCESS : function() { return "&#x41D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x43A;&#x438; &#x431;&#x43B;&#x43E;&#x43A;&#x430; &#x43A;&#x430;&#x43B;&#x435;&#x43D;&#x434;&#x430;&#x440;&#x44F; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x44B;!"; }
	},
	
	ModNewsSearch: {
		MSG_SETTINGS_SUCCESS : function() { return "&#x41D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x43A;&#x438; &#x431;&#x43B;&#x43E;&#x43A;&#x430; &#x43F;&#x43E;&#x438;&#x441;&#x43A;&#x430; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x44B;!"; }
	},
	
	ModBlogSearch: {
		MSG_SETTINGS_SUCCESS : function() { return "&#x41D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x43A;&#x438; &#x431;&#x43B;&#x43E;&#x43A;&#x430; &#x43F;&#x43E;&#x438;&#x441;&#x43A;&#x430; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x44B;!"; }
	},
	
	ModBlockMyFriends: {
		MSG_NOT_FOUND: 			function() { return "&#x41E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x437;&#x430;&#x433;&#x440;&#x443;&#x437;&#x43A;&#x438; &#x434;&#x430;&#x43D;&#x43D;&#x44B;&#x445;!"; },
		MSG_ACL_DENY: 			function() { return "&#x41D;&#x435;&#x442; &#x43F;&#x440;&#x430;&#x432; &#x434;&#x43B;&#x44F; &#x441;&#x43E;&#x432;&#x435;&#x440;&#x448;&#x435;&#x43D;&#x438;&#x44F; &#x434;&#x430;&#x43D;&#x43D;&#x43E;&#x439; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x446;&#x438;&#x438;!"; }
	},
	
	ModBlockRating: {
		MSG_DELETE_SUCCESS: function() { return "&#x411;&#x43B;&#x43E;&#x43A; &#x440;&#x435;&#x439;&#x442;&#x438;&#x43D;&#x433;&#x430; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x443;&#x434;&#x430;&#x43B;&#x435;&#x43D;!"; },
		MSG_CREATE_SUCCESS: function() { return "&#x411;&#x43B;&#x43E;&#x43A; &#x440;&#x435;&#x439;&#x442;&#x438;&#x43D;&#x433;&#x430; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x43D;."; },
		MSG_NEED_SELECT_TAB: function() { return "&#x412;&#x44B;&#x431;&#x435;&#x440;&#x438;&#x442;&#x435; &#x432;&#x43A;&#x43B;&#x430;&#x434;&#x43A;&#x443; &#x43D;&#x430; &#x43A;&#x43E;&#x442;&#x43E;&#x440;&#x43E;&#x439; &#x445;&#x43E;&#x442;&#x438;&#x442;&#x435; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x442;&#x44C; &#x431;&#x43B;&#x43E;&#x43A; &#x440;&#x435;&#x439;&#x442;&#x438;&#x43D;&#x433;&#x430;."}
		
	},
	
	ModBlock: {
		MSG_SET_COLOR_ERROR: function() { return "&#x426;&#x432;&#x435;&#x442;&#x430; &#x437;&#x430;&#x434;&#x430;&#x43D;&#x44B; &#x43D;&#x435; &#x432;&#x435;&#x440;&#x43D;&#x43E;!"; }
	},
	
	ModBlockFavourites: {
		MSG_RESORT_SUCCESS: function() { return "&#x421;&#x43E;&#x440;&#x442;&#x438;&#x440;&#x43E;&#x432;&#x43A;&#x430; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x430;!"; },
		MSG_RESORT_ERROR: function() { return "&#x41D;&#x435;&#x438;&#x437;&#x432;&#x435;&#x441;&#x442;&#x43D;&#x430;&#x44F; &#x43E;&#x448;&#x438;&#x431;&#x43A;&#x430; &#x43F;&#x440;&#x438; &#x441;&#x43E;&#x440;&#x442;&#x438;&#x440;&#x43E;&#x432;&#x43A;&#x435;!"; }
	},
	
	ModBlockPolls: {
		MSG_CREATE_POLL_SUCCESS: function() { return "&#x41E;&#x43F;&#x440;&#x43E;&#x441; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x441;&#x43E;&#x437;&#x434;&#x430;&#x43D;!"; },
		MSG_QUESTION_NULL: function() { return "&#x412;&#x432;&#x435;&#x434;&#x438;&#x442;&#x435; &#x445;&#x43E;&#x442;&#x44F; &#x431;&#x44B; &#x43E;&#x434;&#x438;&#x43D; &#x432;&#x430;&#x440;&#x438;&#x430;&#x43D;&#x442; &#x43E;&#x442;&#x432;&#x435;&#x442;&#x430;!"; },
		MSG_DELETE_SUCCESS:	function () { return "&#x411;&#x43B;&#x43E;&#x43A; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x443;&#x434;&#x430;&#x43B;&#x451;&#x43D;." },
		MSG_LIMIT_ANSWERS: function() { return "&#x41F;&#x440;&#x435;&#x432;&#x44B;&#x448;&#x435;&#x43D;&#x43E; &#x43C;&#x430;&#x43A;&#x441;&#x438;&#x43C;&#x430;&#x43B;&#x44C;&#x43D;&#x43E;&#x435; &#x43A;&#x43E;&#x43B;&#x438;&#x447;&#x435;&#x441;&#x442;&#x432;&#x43E; &#x432;&#x430;&#x440;&#x438;&#x430;&#x43D;&#x442;&#x43E;&#x432; &#x43E;&#x442;&#x432;&#x435;&#x442;&#x43E;&#x432;!"; },
		MSC_EDIT_SUCCESS: function(){ return "&#x418;&#x437;&#x43C;&#x435;&#x43D;&#x435;&#x438;&#x44F; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E; &#x441;&#x43E;&#x445;&#x440;&#x430;&#x43D;&#x435;&#x43D;&#x44B;.";}
	}
}

var WEB_1 = 1;
var WEB_2 = 2;

var $POLICY = {
 	OWNER:		1,
 	EDITOR:		2,
 	READER:		4,
 	FRIEND:		8,
 	TRANSLATOR:	16
};

var POLICY = {
	OWNER:		1,
	EDITOR:		2,
	READER:		4,
	FRIEND: 	8,
 	TRANSLATOR:	16
};

var VISIBILITY = {
	PUBLIC:		1,
	FRIENDS:	2,
	PRIVATE:	8,
	EDITORS:	4
};

var $PUBLISHER_TYPE = {
		WS:				1,
		TABS:			2,
		BLOGS:			3,
		NEWS:			4,
		RSS:			5,
		POST:			6,
		USERS:			7,
		NEWS_ARTICLE:	8
};

var $STATISTICS_TYPE = {
		USERS:		1,
		WS:			2,
		TABS:		3,
		POSTS:		4,
		NEWS_ART:	5,
		QUESTS:		6,
		RSS:		7,
		COMMENTS:	8
};

var $TYPE = {
	BLOCK_TEXT: 				1,
	BLOCK_FAVOURITES: 			2,
	BLOCK_RATING: 				3,
	BLOCK_COMMENTS: 			4,
	BLOCK_POSTS: 				5,
	BLOCK_POSTS_SEARCH: 		6,
	BLOCK_POSTS_DIVISIONS: 		7,
	BLOCK_BLOG_TAGS: 			8,
	BLOCK_POSTS_CALENDAR: 		9,
	BLOCK_POPULAR_POSTS: 		10,
	BLOCK_NEWS_ARTICLES:		11,
	BLOCK_NEWS_COMMENTS:		12,
	BLOCK_NEWS_DIVISIONS:		13,
	BLOCK_NEWS_TAGS:			14,
	BLOCK_NEWS_SEARCH:			15,
	BLOCK_NEWS_CALENDAR:		16,
	BLOCK_RSS:					17,
	BLOCK_PERSONAL_INFORMATION:	18,
	BLOCK_POLLS:				23,
	BLOCK_FEEDBACK:				26
}

var $WHERE_SEND = [
	"&#x41D;&#x430; &#x43F;&#x43E;&#x447;&#x442;&#x443;",
	"&#x412; &#x43B;&#x438;&#x447;&#x43D;&#x44B;&#x435;",
	"&#x41D;&#x430; &#x43F;&#x43E;&#x447;&#x442;&#x443; &#x438; &#x432; &#x43B;&#x438;&#x447;&#x43D;&#x44B;&#x435;"
];

var $BLOCK_POLLS_TEXT = function (c_var) {return "&#x41D;&#x435; &#x431;&#x43E;&#x43B;&#x435;&#x435; "+c_var+" &#x432;&#x430;&#x440;&#x438;&#x430;&#x43D;&#x442;&#x43E;&#x432;"};

$MONTH = ["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"];

var $Const = {
 	TabNavigator: {
 		MinTabLineWidth: 800
 	}, 	
 	BlockPosts: {
 		ShiftStep: 20,
 		NLO: "Смыло дождем;)",
 		COMMENTS: "Комментариев: "
 	},
 	
 	Comments: {
 		MaxLevel: 4
 	},
 	
 	HttpPort: ":81"
};

var $Event = {
	Editor: {
		onKeyup: "onkey_up_editor"
	},
	
	Logotype: {
		onLoadSuccess: "load_logotype_event"
	},
	
	Tab: {
		Activate: "tab_activate",
		Settings:{
			Filter:{
				onStartAddTag: "on_suggest_start_add_tag_to_settings_tab",
				onEndAddTag: "on_cloud_end_add_tag_to_settings_tab",
				onEndRemoveTag: "on_cloud_end_remove_tag_to_settings_tab"
			},
			
			Permissions:{
				onStartAddUser: "on_suggest_start_add_user_in_black_list_to_settings_tab",
				onEndAddUser: "on_cloud_end_add_user_in_black_list_to_settings_tab",
				onEndRemoveUser: "on_cloud_end_remove_user_in_black_list_to_settings_tab"
			}
		},
		
		makeResizeColumn: "make-resize-colum"
	},
	
	FullTab: {
		OnClose: "on_close_full_tab_action",
		OnOpen: "on_open_full_tab_action"
	},
	
	FullTabPostRead:{
		onError: "post_read_error",
		CommentsHide: "post_read_comments_hide",
		CommentsShow: "post_read_comments_show"
	},
	
	UserProfile: {
		reloadCloudInterests: "reload_cloud_interests"
	},

	PanelUserImage: {
		selectImage: "select_user_image"
	},
	
	PostsSearch: {
		applyPhrase: "post_search_apply_phrase"
	},
	PostsCalendar: {
		applyDate: "post_calendar_apply_date"
	},
	PopularPosts: {
		onMenuSettingsClick: "popular_posts_menu_settings_click",
		onMenuTranslatedClick: "popular_posts_menu_translated_click",
		
		Settings:{
			Filter:{
				onStartAddTag: "on_suggest_start_add_tag_to_settings_popular_posts",
				onEndAddTag: "on_cloud_end_add_tag_to_settings_popular_posts",
				onEndRemoveTag: "on_cloud_end_remove_tag_to_settings_popular_posts"
			}
		}
	},
	
	BlockFavorites:{
		Settings:{
			Filter:{
				onStartAddTag: "on_suggest_start_add_tag_to_settings_popular_favorites",
				onEndAddTag: "on_cloud_end_add_tag_to_settings_popular_favorites",
				onEndRemoveTag: "on_cloud_end_remove_tag_to_settings_popular_favorites"
			}
		}
	},
	
	PostsDivisions: {
		onTurnOnDivision: "post_divisions_turn_on",
		onTurnOffDivision: "post_divisions_turn_off",
		onMenuSettingsClick: "post_divisions_menu_settings_click"
	},
	
	BlockNavigator: {
		onLoadBlock: "block_navigator_on_load_block"
	},
	
	TabNavigator: {
		onReloadTab: "tab_navigator_on_reload_tab",
		onReloadTabOnly: "tab_navigator_on_reload_tab_only"
	},
	
	BlockPosts: {
		Filter: {
			Changed: "block_posts_filter_changed",
			onRemoveDivision: "block_posts_filter_remove_division",
			onChangeCompleted: "block_posts_filter_change_completed",
			onStartAddTag: "on_suggest_start_add_tag_to_settings_posts",
			onEndAddTag: "on_cloud_end_add_tag_to_settings_posts",
			onEndRemoveTag: "on_cloud_end_remove_tag_to_settings_posts"
			
		},
		onMenuTranslatedClick: "block_posts_menu_translated_click"
	},
	
	PublisherWs: {
		calendarForm: "publisher_ws_calendar_apply_date",
		searchForm: "publisher_ws_search_apply_phrase",
		tagsForm: "publisher_ws_tag_add",
		formDivisions: {
			onTurnOnDivision: "publisher_ws_divisions_turn_on",
			onTurnOffDivision: "publisher_ws_divisions_turn_off"
		},
		Filter: {
			Changed: "publisher_ws_filter_changed",
			onRemoveDivision: "publisher_ws_filter_remove_division",
			onRemoveTags: "publisher_ws_filter_remove_tags",
			onChangeCompleted: "publisher_ws_filter_change_completed"
		}
	},
	
	PublisherTabs: {
		calendarForm: "publisher_tabs_calendar_apply_date",
		searchForm: "publisher_tabs_search_apply_phrase",
		tagsForm: "publisher_tabs_tag_add",
		formDivisions: {
			onTurnOnDivision: "publisher_tabs_divisions_turn_on",
			onTurnOffDivision: "publisher_tabs_divisions_turn_off"
		},
		Filter: {
			Changed: "publisher_tabs_filter_changed",
			onRemoveDivision: "publisher_tabs_filter_remove_division",
			onRemoveTags: "publisher_tabs_filter_remove_tags",
			onChangeCompleted: "publisher_tabs_filter_change_completed"
		}
	},
	
	PublisherNews: {
		calendarForm: "publisher_news_calendar_apply_date",
		searchForm: "publisher_news_search_apply_phrase",
		tagsForm: "publisher_news_tag_add",
		formDivisions: {
			onTurnOnDivision: "publisher_news_divisions_turn_on",
			onTurnOffDivision: "publisher_news_divisions_turn_off"
		},
		Filter: {
			Changed: "publisher_news_filter_changed",
			onRemoveDivision: "publisher_news_filter_remove_division",
			onRemoveTags: "publisher_news_filter_remove_tags",
			onChangeCompleted: "publisher_news_filter_change_completed",
			onStartAddTag: "on_suggest_start_add_tag_to_settings_tab_news",
			onEndAddTag: "on_cloud_end_add_tag_to_settings_tab_news",
			onEndRemoveTag: "on_cloud_end_remove_tag_to_settings_tab_news"			
		}
	},
	
	PublisherBlogs: {
		calendarForm: "publisher_blogs_calendar_apply_date",
		searchForm: "publisher_blogs_search_apply_phrase",
		tagsForm: "publisher_blogs_tag_add",
		formDivisions: {
			onTurnOnDivision: "publisher_blogs_divisions_turn_on",
			onTurnOffDivision: "publisher_blogs_divisions_turn_off"
		},
		Filter: {
			Changed: "publisher_blogs_filter_changed",
			onRemoveDivision: "publisher_blogs_filter_remove_division",
			onRemoveTags: "publisher_blogs_filter_remove_tags",
			onChangeCompleted: "publisher_blogs_filter_change_completed"
		}
	},
	
	PublisherRss: {
		calendarForm: "publisher_rss_calendar_apply_date",
		searchForm: "publisher_rss_search_apply_phrase",
		tagsForm: "publisher_rss_tag_add",
		formDivisions: {
			onTurnOnDivision: "publisher_rss_divisions_turn_on",
			onTurnOffDivision: "publisher_rss_divisions_turn_off"
		},
		Filter: {
			Changed: "publisher_rss_filter_changed",
			onRemoveDivision: "publisher_rss_filter_remove_division",
			onRemoveTags: "publisher_rss_filter_remove_tags",
			onChangeCompleted: "publisher_rss_filter_change_completed"
		}
	},	
	
	PublisherPost: {
		calendarForm: "publisher_post_calendar_apply_date",
		searchForm: "publisher_post_search_apply_phrase",
		tagsForm: "publisher_post_tag_add",
		formDivisions: {
			onTurnOnDivision: "publisher_post_divisions_turn_on",
			onTurnOffDivision: "publisher_post_divisions_turn_off"
		},
		Filter: {
			Changed: "publisher_post_filter_changed",
			onRemoveDivision: "publisher_post_filter_remove_division",
			onRemoveTags: "publisher_post_filter_remove_tags",
			onChangeCompleted: "publisher_post_filter_change_completed"
		}
	},
	PublisherUsers: {
		calendarForm: "publisher_users_calendar_apply_date",
		searchForm: "publisher_users_search_apply_phrase",
		tagsForm: "publisher_users_tag_add",
		formDivisions: {
			onTurnOnDivision: "publisher_users_divisions_turn_on",
			onTurnOffDivision: "publisher_users_divisions_turn_off"
		},
		Filter: {
			Changed: "publisher_users_filter_changed",
			onRemoveDivision: "publisher_users_filter_remove_division",
			onRemoveTags: "publisher_users_filter_remove_tags",
			onChangeCompleted: "publisher_users_filter_change_completed"
		}
	},
	
	PublisherNewsArticle: {
		calendarForm: "publisher_news_article_calendar_apply_date",
		searchForm: "publisher_news_article_search_apply_phrase",
		tagsForm: "publisher_news_article_tag_add",
		formDivisions: {
			onTurnOnDivision: "publisher_news_article_divisions_turn_on",
			onTurnOffDivision: "publisher_news_article_divisions_turn_off"
		},
		Filter: {
			Changed: "publisher_news_article_filter_changed",
			onRemoveDivision: "publisher_news_article_filter_remove_division",
			onRemoveTags: "publisher_news_article_filter_remove_tags",
			onChangeCompleted: "publisher_news_article_filter_change_completed"
		}
	},
	
	BlockNewsArticles: {
		Filter: {
			Changed: "block_news_articles_filter_changed",
			onRemoveDivision: "block_news_articles_filter_remove_division",
			onChangeCompleted: "block_news_articles_filter_change_completed",
			onStartAddTag: "on_suggest_start_add_tag_to_settings_block_news",
			onEndAddTag: "on_cloud_end_add_tag_to_settings_block_news",
			onEndRemoveTag: "on_cloud_end_remove_tag_to_settings_block_news"
		},
		onMenuTranslatedClick: "block_news_articles_menu_translated_click"
	},
	BlockNewsCalendar: {
		applyDate: "block_news_calendar_apply_date"
	},
	BlockNewsSearch: {
		applyPhrase: "block_news_search_apply_phrase"
	},
	BlockNewsDivisions: {
		onTurnOnDivision: "block_news_divisions_turn_on",
		onTurnOffDivision: "block_news_divisions_turn_off",
		onMenuSettingsClick: "block_news_divisions_menu_settings_click"
	},
	BlockNewsTags: {
		onAddTagIntoFilter: "block_news_tag_on_add_tag_into_filter"
	},
	
	BlockComments: {
		onLoadSettings: 'block_comments_load_settings'
	},
	
	BlockNewsComments: {
		onLoadSettings: 'block_news_comments_load_settings'
	},
	
	BlogDivisionsPanel: {
		onClosePanel: "blog_divisions_panel_on_close_panel",
		PanelClosed: "blog_divisions_panel_panel_closed"
	},
	
	BlogTagsPanel: {
		onClosePanel: "blog_tags_panel_on_close_panel",
		PanelClosed: "blog_tags_panel_panel_closed"
	},
	
	BlockTranslatedPostsCreatePanel: {
		onClosePanel: "block_translated_posts_create_panel_on_close_panel",
		PanelClosed: "block_translated_posts_create_panel_closed"
	},
	
	Blog: {
		Post: {
			onStartAddTag: "on_suggest_start_add_tag_to_post",
			onEndAddTag: "on_cloud_end_add_tag_to_post",
			onEndRemoveTag: "on_cloud_end_remove_tag_to_post",
			onAddPost: "on_add_post"
		},
		
		Settings: {
			Filter: {
				onStartAddTag: "on_suggest_start_add_tag_to_settings_post",
				onEndAddTag: "on_cloud_end_add_tag_to_settings_post",
				onEndRemoveTag: "on_cloud_end_remove_tag_to_settings_post"
			}
		}
	},
	
	BlockText: {
		Settings: {
			Filter: {
				onStartAddTag: "on_suggest_start_add_tag_to_settings_text",
				onEndAddTag: "on_cloud_end_add_tag_to_settings_text",
				onEndRemoveTag: "on_cloud_end_remove_tag_to_settings_text"
			}
		}
	},
	
	BlockTags: {
		Filter: {
			onAddTagIntoFilter: "on_add_tag_into_filter"
		}
	},
	
	BlockRssPanel: {
		onClosePanel : "Block_rss_panel_on_cloce_panel",
		Settings: {
			Filter: {
				onStartAddTag: "on_suggest_start_add_tag_to_settings_rss",
				onEndAddTag: "on_cloud_end_add_tag_to_settings_rss",
				onEndRemoveTag: "on_cloud_end_remove_tag_to_settings_rss"
			}
		}
	},
	
	Panel: {
		onShowPanel: "Panel_onShowPanel",
		onHidePanel: "Panel_onHidePanel"
	},
	
	FullTabStatistics: {
		onSearchCalendar: "statistics_calendar_search",
		onSearchTags: "statistics_tags_search",
		Filter: {
			Changed: "statistics_filter_changed"
		}
	},

	BlockRss: {
		onUpdate:"on_update_block_rss"
	},
	
	Workspace: {
		Settings: {
			BindDomain: {
				onStartAddUser: "on_suggest_start_add_domain_in_to_settings_workspace",
				onEndAddUser: "on_cloud_end_add_domian_to_settings_workspace",
				onEndRemoveUser: "on_cloud_end_remove_domain_to_settings_workspace"
			}
		}
	},
	
	News: {
		NewsArticles: {
			onStartAddTag: "on_suggest_start_add_tag_to_news",
			onEndAddTag: "on_cloud_end_add_tag_to_news",
			onEndRemoveTag: "on_cloud_end_remove_tag_to_news"
		}
	},
	
	FullTab: {
		Close: "bin-full-tab-close"
	}
};

// ------------------------------------------------------------------------------------------------
function onMouseOverToBM(block_id, bookmark_id){
		try {
			$getInstance($BinBlockFavourites).showEditBtn(block_id, bookmark_id);
		} catch(err){}
	}

function onMouseOutToBM(bookmark_id){
		try {
			$getInstance($BinBlockFavourites).hideEditBtn(bookmark_id);
		} catch(err) {}
	}
// ------------------------------------------------------------------------------------------------

/**
 @deprecated? 
 See js/ir2/core/exceptions.js
**/
var $E = {
	ExFatal: 			"ExFatal",
	ExObjectNotFound: 	"ExObjectNotFound",
	ExUserNotFound: 	"ExUserNotFound",
	ExDuplicateObjectId:"ExDuplicateObjectId",
	ExCommentNotFound: 	"ExCommentNotFound",
	ExTabNotFound: 		"ExTabNotFound",
	ExBlogNotFound: 	"ExBlogNotFound",
	ExDbUnique: 		"ExDbUnique",
	ExValidateFails: 	"ExValidateFails",
	ExAclDeny: 			"ExAclDeny",
	ExWorkspace:		"ExWorkspace",
	ExTabNavigator:		"ExTabNavigator",
	ExBlockNavigator:	"ExBlockNavigator",
	ExTab:				"ExTab",
	ExVisibility:		"ExVisibility",
	ExLimit:			"ExLimit",
	ExUrlExists:		"ExUrlExists",
	ExClosedUrl:		"ExClosedUrl",
	ExInvalidFormat:    "ExInvalidFormat",
	Ex404:    			"Ex404",
	ExInStoplist:    	"ExInStoplist",
	ExInvalidXML:		"ExInvalidXML",
	ExUserUnconfirmed:	"ExUserUnconfirmed",
	ExUserConfirmed:	"ExUserConfirmed",
	ExBlogAlredyExist:	"ExBlogAlredyExist",
	ExCodeNotFound:		"ExCodeNotFound",
	ExNotArray:			"ExNotArray",
	ExAlreadyVotedByUser:			"ExAlreadyVotedByUser"
}

var $sleep = function(delay) {
	var t = new Date();
	var start = t.getTime();
	var sleeping = true;
	
	do {
       var alarm = new Date();
       var stop  = alarm.getTime();
    } while((stop - start) <= delay)
}


var $equalsLogic = function(object, object2) {
	for(var i in object) {
		if(typeof(object2[i]) == "undefined") {
			return false;
		}
		
		var type = (typeof(object[i])).toUpperCase();
		
		if(type == "OBJECT" || type == "ARRAY") {
			if($equals(object[i], object2[i]) == false) {
				return false;
			}
		} else {
			if(object[i] !== object2[i]) {
				return false;
			}
		}
	}
	
	return true;
}


var $equals = function(object, object2) {
	if($equalsLogic(object, object2) == false) {
		return false;
	}
	
	return $equalsLogic(object2, object);
};

var $findObjectById = function(list, object_id){

	var object = null;
	list.each(function(obj){
		if(obj.id == object_id){
			object = obj;
			return false;
		}
	});
	return object;
}

var $findObjectsByIds = function(list, object_ids){
	list = list instanceof Array ? list : new Array();
	object_ids = object_ids instanceof Array ? object_ids : new Array();
	
	var objects = new Array();
	list.each(function(obj){
		if( object_ids.contains(obj.id) ){
			objects.push(obj);
		}
	});
	return objects;
}

var $getVisibillitiTitles = function(id){
	return $findObjectById(VISIBILITY_TITLES, id).title;
}

var VISIBILITY_TITLES = [
	{id: VISIBILITY.PUBLIC,  title: "&#x432;&#x441;&#x435;&#x43C;"},
	{id: VISIBILITY.FRIENDS, title: "&#x434;&#x440;&#x443;&#x437;&#x44C;&#x44F;&#x43C;"},
	{id: VISIBILITY.EDITORS, title: "&#x440;&#x435;&#x434;&#x430;&#x43A;&#x442;&#x43E;&#x440;&#x430;&#x43C;"},
	{id: VISIBILITY.PRIVATE, title: "&#x442;&#x43E;&#x43B;&#x44C;&#x43A;&#x43E; &#x43C;&#x43D;&#x435;"}
];

var TABS_TYPE = {
	SIMPLE: 1,
	BLOG: 2,
	NEWS: 3,
	MAIN: 4,
	PROFILE: 5,
	SAMPLE: 6
}

var PUBLISHER_TYPE = {
	WS:				1,
	TABS:			2,
	BLOGS:			3,
	NEWS:			4,
	RSS:			5,
	POST:			6,
	USERS:			7,
	NEWS_ARTICLES:	8
}

var SORT_BY = {
	DATE: 4,
	RATING: 0,
	DATE_RATING: 3,
	COMMENTS: 2,
	VOTES: 1,
	FORUMS: 5
}

var SORT_BY_TITLES = [
	{value: SORT_BY.DATE, text: "&#x414;&#x430;&#x442;&#x435;"},
	{value: SORT_BY.RATING, text: "&#x420;&#x435;&#x439;&#x442;&#x438;&#x43D;&#x433;&#x443;"},
	{value: SORT_BY.DATE_RATING, text: "&#x414;&#x430;&#x442;&#x435; &#x438; &#x440;&#x435;&#x439;&#x442;&#x438;&#x43D;&#x433;&#x443;"},
	{value: SORT_BY.COMMENTS, text: "&#x41A;&#x43E;&#x43B;&#x438;&#x447;&#x435;&#x441;&#x442;&#x432;&#x443; &#x43A;&#x43E;&#x43C;&#x43C;&#x435;&#x43D;&#x442;&#x430;&#x440;&#x438;&#x435;&#x432;"},
	{value: SORT_BY.VOTES, text: "&#x41A;&#x43E;&#x43B;&#x438;&#x447;&#x435;&#x441;&#x442;&#x432;&#x443; &#x433;&#x43E;&#x43B;&#x43E;&#x441;&#x43E;&#x432;"},
	{value: SORT_BY.FORUMS, text: "&#x424;&#x43e;&#x440;&#x443;&#x43c;&#x43d;&#x430;&#x44f;"}
];

var $CObjectFilter = {
	TYPE_TAB: 1,
	TYPE_BLOCK: 2
}

var BANNER_POSITION = [
	{value: 1, text: "&#x412;&#x432;&#x435;&#x440;&#x445;&#x443;"},
	{value: 2, text: "&#x412; &#x43A;&#x43E;&#x43D;&#x442;&#x435;&#x43D;&#x442;&#x43D;&#x43E;&#x439; &#x43E;&#x431;&#x43B;&#x430;&#x441;&#x442;&#x438;"},
	{value: 3, text: "&#x412; &#x448;&#x430;&#x43F;&#x43A;&#x435;"}
];

var $HTTP_HOST = '';
var $HOME_SUBDOMAIN = 'www';
var $SESSION_OPEN_DLG_CREATE_RSS = "rss_url";
var $SESSION_OPEN_DLG_CREATE_RSS_FOR_COOKIE = "rss_url_cookie";

var fixFooter = function(){
	window.findElementById("tab-footer").setStyle("bottom", "43");
	window.findElementById("tab-footer").setStyle("bottom", "42");
	window.findElementById("ws-footer").setStyle("bottom", "1");
	window.findElementById("ws-footer").setStyle("bottom", "0");
}

var $BLOCK_MENU = {
	SETTINGS: "&#x41D;&#x430;&#x441;&#x442;&#x440;&#x43E;&#x439;&#x43A;&#x438;",
	DELETE: "&#x423;&#x434;&#x430;&#x43B;&#x438;&#x442;&#x44C;",
	UPDATE: "&#x41E;&#x431;&#x43D;&#x43E;&#x432;&#x438;&#x442;&#x44C;",
	TRANSLATE: "&#x422;&#x440;&#x430;&#x43D;&#x441;&#x43B;&#x438;&#x440;&#x43E;&#x432;&#x430;&#x442;&#x44C;",
	CLOSE: "&#x417;&#x430;&#x43A;&#x440;&#x44B;&#x442;&#x44C; &#x431;&#x43B;&#x43E;&#x43A;",
	CREATE_POLLS: "&#x421;&#x43E;&#x437;&#x434;&#x430;&#x442;&#x44C; &#x43E;&#x43F;&#x440;&#x43E;&#x441;",
	CHANGE_FILTER: "&#x418;&#x437;&#x43C;&#x435;&#x43D;&#x438;&#x442;&#x44C; &#x444;&#x438;&#x43B;&#x44C;&#x442;&#x440;"
};

var $PUBLISHER_LIST = {
	WS: "&#x414;&#x43E;&#x43C;&#x435;&#x43D;&#x44B;",
	TABS: "&#x412;&#x43A;&#x43B;&#x430;&#x434;&#x43A;&#x438;",
	BLOGS: "&#x412;&#x43A;&#x43B;&#x430;&#x434;&#x43A;&#x438; &#x431;&#x43B;&#x43E;&#x433;&#x43E;&#x432;",
	NEWS: "&#x412;&#x43A;&#x43B;&#x430;&#x434;&#x43A;&#x438; &#x43D;&#x43E;&#x432;&#x43E;&#x441;&#x442;&#x435;&#x439;",
	RSS: "RSS &#x43B;&#x435;&#x43D;&#x442;&#x44B;",
	POSTS: "&#x41F;&#x43E;&#x441;&#x442;&#x44B;",
	NEWS_ARTICLES: "&#x41D;&#x43E;&#x432;&#x43E;&#x441;&#x442;&#x438;",
	USERS: "&#x41F;&#x43E;&#x43B;&#x44C;&#x437;&#x43E;&#x432;&#x430;&#x442;&#x435;&#x43B;&#x438;"
};

var $BLOCK_MSG = {
	ENTER: "&#x412;&#x445;&#x43E;&#x434;&#x44F;&#x449;&#x438;&#x435; &#x441;&#x43E;&#x43E;&#x431;&#x449;&#x435;&#x43D;&#x438;&#x44F;",
	SEND: "&#x418;&#x441;&#x445;&#x43E;&#x434;&#x44F;&#x449;&#x438;&#x435; &#x441;&#x43E;&#x43E;&#x431;&#x449;&#x435;&#x43D;&#x438;&#x44F;",
	NEW: "&#x41D;&#x43E;&#x432;&#x43E;&#x435; &#x441;&#x43E;&#x43E;&#x431;&#x449;&#x435;&#x43D;&#x438;&#x435;",
	MSG_TITLE: "&#x421;&#x43E;&#x43E;&#x431;&#x449;&#x435;&#x43D;&#x438;&#x44F;"
};

var $COLOR_ARRAY = [
	"#FF0000",
	"#3300CC",
	"#339900",
	"#0099FF",
	"#FFCC00",
	"#FF6699",
	"#660099",
	"#00FF33",
	"#000000",
	"#663300",
	"#FF66CC",
	"#330066",
	"#FFFF33",
	"#00CCFF",
	"#9966CC",
	"#666600",
	"#333333",
	"#CC3300",
	"#996666",
	"#3300FF",
	"#660066",
	"#006666",
	"#00CC00",
	"#666666",
	"#CCCC99",
	"#0099CC",
	"#663366",
	"#990000",
	"#663300",
	"#CC0033",
	"#CC6666",
	"#CC3366",
	"#990066",
	"#9900CC",
	"#333399",
	"#0066CC",
	"#3399CC",
	"#009933",
	"#669966",
	"#CCCCCC",
	"#FFFF99",
	"#CC9999",
	"#993366",
	"#996699",
	"#6666CC",
	"#33CCCC",
	"#99FF33",
	"#996600",
	"#FFCC33"
];

// Function counter -------------------------------------------------------------------------------

function updateLiveInternetCounter(){
	return new Image().src = "http://counter.yadro.ru/hit;interby?r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+ ";h"+escape(document.title.substring(0,80))+ ";"+Math.random();
}

// ------------------------------------------------------------------------------------------------

// Init block menu --------------------------------------------------------------------------------
	function onClickBlockMenu(block_id){
		
		if($getInstance($User).role_id==$ROLE.NOBODY) {
			$getInstance($Application).aclConfirm($Locale.Nobody.MSG_MENU_OPEN());
			return;
		}
		
		var container = $(block_id).getElement("#menu");
		var display = container.getStyle("display") == "none" ? "block" : "none";
		
		var block = $(block_id);
		var z_index = 2;
		
		if(block.getStyle("z-index") == "auto" || block.getStyle("z-index") == 2){
			var z_index = 1;
		}
		
		block.setStyle("z-index", z_index);
		container.setStyle("display", display);
		
		if(Browser.Engine.trident){
			(function(){ container.hide() }).delay(3000, this);
		} else {
			container.removeEvents("mouseleave");
			container.addEvent("mouseleave", function(e){
				container.hide();
			});
		}
	}
// ------------------------------------------------------------------------------------------------

function $importFile(src){
    var scriptElem = document.createElement('script');
    scriptElem.setAttribute('src',src);
    scriptElem.setAttribute('type','text/javascript');
    document.getElementsByTagName('head')[0].appendChild(scriptElem);
}

// ------------------------------------------------------------------------------------------------

function $loadSuggestUsers(){
	var suggest = window.findElementById("suggest-user-for-admin");
    
	new Suggest(suggest, {
		url: $URL.ModUsers.onUserSuggestForAdmin({}).options.url, 
		responseVar: "users"
	});
}

function $loadSuggestWs(){
	var suggest = window.findElementById("suggest-ws-for-admin");
    	
	new Suggest(suggest, {
		url: $URL.ModWorkspace.onWsSuggestForAdmin({}).options.url, 
		responseVar: "ws"
	});
}

// ------------------------------------------------------------------------------------------------

function onClickCountBanner(item_id){
	$URL.ModWorkspace.onClickCountBaner({data: {item_id: item_id}, async: false }).send();
}

// ------------------------------------------------------------------------------------------------

var $SPACE_TYPE = {
	WORKSPACE: 1,
	PROFILE: 2
};

var $SPACE = 1;


var $isResponseOk = function(response){
	return response.status == "OK" ? true : false;
}
var utf8_encode = function( str_data ) {    
    str_data = str_data.replace(/\r\n/g,"\n");
    var utftext = "";
 
    for (var n = 0; n < str_data.length; n++) {
        var c = str_data.charCodeAt(n);
        if (c < 128) {
            utftext += String.fromCharCode(c);
        } else if((c > 127) && (c < 2048)) {
            utftext += String.fromCharCode((c >> 6) | 192);
            utftext += String.fromCharCode((c & 63) | 128);
        } else {
            utftext += String.fromCharCode((c >> 12) | 224);
            utftext += String.fromCharCode(((c >> 6) & 63) | 128);
            utftext += String.fromCharCode((c & 63) | 128);
        }
    }
 
    return utftext;
}

var md5 = function  ( str ) {    

	var RotateLeft = function(lValue, iShiftBits) {
		return (lValue<<iShiftBits) | (lValue>>>(32-iShiftBits));
	};
 
    var AddUnsigned = function(lX,lY) {
        var lX4,lY4,lX8,lY8,lResult;
        lX8 = (lX & 0x80000000);
        lY8 = (lY & 0x80000000);
        lX4 = (lX & 0x40000000);
        lY4 = (lY & 0x40000000);
        lResult = (lX & 0x3FFFFFFF)+(lY & 0x3FFFFFFF);
        if (lX4 & lY4) {
            return (lResult ^ 0x80000000 ^ lX8 ^ lY8);
        }
        if (lX4 | lY4) {
            if (lResult & 0x40000000) {
                return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);
            } else {
                return (lResult ^ 0x40000000 ^ lX8 ^ lY8);
            }
        } else {
            return (lResult ^ lX8 ^ lY8);
        }
    };
 
    var F = function(x,y,z) { return (x & y) | ((~x) & z); };
    var G = function(x,y,z) { return (x & z) | (y & (~z)); };
    var H = function(x,y,z) { return (x ^ y ^ z); };
    var I = function(x,y,z) { return (y ^ (x | (~z))); };
 
    var FF = function(a,b,c,d,x,s,ac) {
        a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac));
        return AddUnsigned(RotateLeft(a, s), b);
    };
 
    var GG = function(a,b,c,d,x,s,ac) {
        a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac));
        return AddUnsigned(RotateLeft(a, s), b);
    };
 
    var HH = function(a,b,c,d,x,s,ac) {
        a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac));
        return AddUnsigned(RotateLeft(a, s), b);
    };
 
    var II = function(a,b,c,d,x,s,ac) {
        a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac));
        return AddUnsigned(RotateLeft(a, s), b);
    };
 
    var ConvertToWordArray = function(str) {
        var lWordCount;
        var lMessageLength = str.length;
        var lNumberOfWords_temp1=lMessageLength + 8;
        var lNumberOfWords_temp2=(lNumberOfWords_temp1-(lNumberOfWords_temp1 % 64))/64;
        var lNumberOfWords = (lNumberOfWords_temp2+1)*16;
        var lWordArray=Array(lNumberOfWords-1);
        var lBytePosition = 0;
        var lByteCount = 0;
        while ( lByteCount < lMessageLength ) {
            lWordCount = (lByteCount-(lByteCount % 4))/4;
            lBytePosition = (lByteCount % 4)*8;
            lWordArray[lWordCount] = (lWordArray[lWordCount] | (str.charCodeAt(lByteCount)<<lBytePosition));
            lByteCount++;
        }
        lWordCount = (lByteCount-(lByteCount % 4))/4;
        lBytePosition = (lByteCount % 4)*8;
        lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80<<lBytePosition);
        lWordArray[lNumberOfWords-2] = lMessageLength<<3;
        lWordArray[lNumberOfWords-1] = lMessageLength>>>29;
        return lWordArray;
    };
 
    var WordToHex = function(lValue) {
        var WordToHexValue="",WordToHexValue_temp="",lByte,lCount;
        for (lCount = 0;lCount<=3;lCount++) {
            lByte = (lValue>>>(lCount*8)) & 255;
            WordToHexValue_temp = "0" + lByte.toString(16);
            WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length-2,2);
        }
        return WordToHexValue;
    };
 
    var x=Array();
    var k,AA,BB,CC,DD,a,b,c,d;
    var S11=7, S12=12, S13=17, S14=22;
    var S21=5, S22=9 , S23=14, S24=20;
    var S31=4, S32=11, S33=16, S34=23;
    var S41=6, S42=10, S43=15, S44=21;
 
    str = utf8_encode(str);
    x = ConvertToWordArray(str);
    a = 0x67452301; b = 0xEFCDAB89; c = 0x98BADCFE; d = 0x10325476;
 
    for (k=0;k<x.length;k+=16) {
        AA=a; BB=b; CC=c; DD=d;
        a=FF(a,b,c,d,x[k+0], S11,0xD76AA478);
        d=FF(d,a,b,c,x[k+1], S12,0xE8C7B756);
        c=FF(c,d,a,b,x[k+2], S13,0x242070DB);
        b=FF(b,c,d,a,x[k+3], S14,0xC1BDCEEE);
        a=FF(a,b,c,d,x[k+4], S11,0xF57C0FAF);
        d=FF(d,a,b,c,x[k+5], S12,0x4787C62A);
        c=FF(c,d,a,b,x[k+6], S13,0xA8304613);
        b=FF(b,c,d,a,x[k+7], S14,0xFD469501);
        a=FF(a,b,c,d,x[k+8], S11,0x698098D8);
        d=FF(d,a,b,c,x[k+9], S12,0x8B44F7AF);
        c=FF(c,d,a,b,x[k+10],S13,0xFFFF5BB1);
        b=FF(b,c,d,a,x[k+11],S14,0x895CD7BE);
        a=FF(a,b,c,d,x[k+12],S11,0x6B901122);
        d=FF(d,a,b,c,x[k+13],S12,0xFD987193);
        c=FF(c,d,a,b,x[k+14],S13,0xA679438E);
        b=FF(b,c,d,a,x[k+15],S14,0x49B40821);
        a=GG(a,b,c,d,x[k+1], S21,0xF61E2562);
        d=GG(d,a,b,c,x[k+6], S22,0xC040B340);
        c=GG(c,d,a,b,x[k+11],S23,0x265E5A51);
        b=GG(b,c,d,a,x[k+0], S24,0xE9B6C7AA);
        a=GG(a,b,c,d,x[k+5], S21,0xD62F105D);
        d=GG(d,a,b,c,x[k+10],S22,0x2441453);
        c=GG(c,d,a,b,x[k+15],S23,0xD8A1E681);
        b=GG(b,c,d,a,x[k+4], S24,0xE7D3FBC8);
        a=GG(a,b,c,d,x[k+9], S21,0x21E1CDE6);
        d=GG(d,a,b,c,x[k+14],S22,0xC33707D6);
        c=GG(c,d,a,b,x[k+3], S23,0xF4D50D87);
        b=GG(b,c,d,a,x[k+8], S24,0x455A14ED);
        a=GG(a,b,c,d,x[k+13],S21,0xA9E3E905);
        d=GG(d,a,b,c,x[k+2], S22,0xFCEFA3F8);
        c=GG(c,d,a,b,x[k+7], S23,0x676F02D9);
        b=GG(b,c,d,a,x[k+12],S24,0x8D2A4C8A);
        a=HH(a,b,c,d,x[k+5], S31,0xFFFA3942);
        d=HH(d,a,b,c,x[k+8], S32,0x8771F681);
        c=HH(c,d,a,b,x[k+11],S33,0x6D9D6122);
        b=HH(b,c,d,a,x[k+14],S34,0xFDE5380C);
        a=HH(a,b,c,d,x[k+1], S31,0xA4BEEA44);
        d=HH(d,a,b,c,x[k+4], S32,0x4BDECFA9);
        c=HH(c,d,a,b,x[k+7], S33,0xF6BB4B60);
        b=HH(b,c,d,a,x[k+10],S34,0xBEBFBC70);
        a=HH(a,b,c,d,x[k+13],S31,0x289B7EC6);
        d=HH(d,a,b,c,x[k+0], S32,0xEAA127FA);
        c=HH(c,d,a,b,x[k+3], S33,0xD4EF3085);
        b=HH(b,c,d,a,x[k+6], S34,0x4881D05);
        a=HH(a,b,c,d,x[k+9], S31,0xD9D4D039);
        d=HH(d,a,b,c,x[k+12],S32,0xE6DB99E5);
        c=HH(c,d,a,b,x[k+15],S33,0x1FA27CF8);
        b=HH(b,c,d,a,x[k+2], S34,0xC4AC5665);
        a=II(a,b,c,d,x[k+0], S41,0xF4292244);
        d=II(d,a,b,c,x[k+7], S42,0x432AFF97);
        c=II(c,d,a,b,x[k+14],S43,0xAB9423A7);
        b=II(b,c,d,a,x[k+5], S44,0xFC93A039);
        a=II(a,b,c,d,x[k+12],S41,0x655B59C3);
        d=II(d,a,b,c,x[k+3], S42,0x8F0CCC92);
        c=II(c,d,a,b,x[k+10],S43,0xFFEFF47D);
        b=II(b,c,d,a,x[k+1], S44,0x85845DD1);
        a=II(a,b,c,d,x[k+8], S41,0x6FA87E4F);
        d=II(d,a,b,c,x[k+15],S42,0xFE2CE6E0);
        c=II(c,d,a,b,x[k+6], S43,0xA3014314);
        b=II(b,c,d,a,x[k+13],S44,0x4E0811A1);
        a=II(a,b,c,d,x[k+4], S41,0xF7537E82);
        d=II(d,a,b,c,x[k+11],S42,0xBD3AF235);
        c=II(c,d,a,b,x[k+2], S43,0x2AD7D2BB);
        b=II(b,c,d,a,x[k+9], S44,0xEB86D391);
        a=AddUnsigned(a,AA);
        b=AddUnsigned(b,BB);
        c=AddUnsigned(c,CC);
        d=AddUnsigned(d,DD);
    }
 
    var temp = WordToHex(a)+WordToHex(b)+WordToHex(c)+WordToHex(d);
 
    return temp.toLowerCase();
}

window.addEvent("resize", function(){
	var $elementServicePanel = window.findElementById("service-panel");
	var $elementTabContent = window.findElementById("tab-content");
	var $elementWsNavigator = window.findElementById("ws-navigator");
	
	if($chk($elementServicePanel)){
		$elementServicePanel.setStyle("width", $elementTabContent.getCoordinates().width);
		$elementWsNavigator.setStyle("width", $elementTabContent.getCoordinates().width);
	}
});