/* Класс для работы с макросами модулей */
function __mActions()
{
}

__mActions.prototype.addAction = function(module_id, tab_id, action, actions_set)
{
	if(MActions[tab_id] && MActions[tab_id].module_id == module_id && MActions[tab_id].action == action && MActions[tab_id].actions_set == actions_set)
		return;
	Profile.update('mactions', 'mactions_update', {}, {data: {module_id: module_id, tab_id: tab_id, action: action, actions_set: actions_set}});
}

__mActions.prototype.delActionsByTab = function(module_id, tab_id)
{
	//Profile.update('mactions', 'mactions_update', {}, {data: {module_id: module_id, tab_id: tab_id}});
	//Подразумевается, что действия удаляются автоматически в profile.php вместе с общим удалением вкладки
	if(MActions[tab_id])
		MActions[tab_id] = null;
}

__mActions.prototype.execute = function(module_id)
{
	if(MActions)
	{
		for(var tab_id in MActions)
		{
			if(!MActions[tab_id].module_id || MActions[tab_id].module_id != module_id)
				continue;
			switch(Modules[module_id].Object.type)
			{
				case 'Bookmarks':
				{
					Modules[module_id].Object.workspaceId = tab_id;
					switch(MActions[tab_id].action)
					{
						case 'showBookmarksByFolder': 
							Modules[module_id].Object.showBookmarksByFolder(MActions[tab_id].actions_set.folderId);
							break;
						case 'showBookmarksByTags': 
							Modules[module_id].Object.showBookmarksByTags(MActions[tab_id].actions_set.tags);
							break;
						case 'showBookmarksByKeyword':
							Modules[module_id].Object.showBookmarksByKeyword(MActions[tab_id].actions_set.kw, MActions[tab_id].actions_set.flTitle, MActions[tab_id].actions_set.flUrl, MActions[tab_id].actions_set.flDesc);
							break;
					}
					break;
				}
				case 'Addressbook':
				{
					Modules[module_id].Object.workspaceId = tab_id;
					switch(MActions[tab_id].action)
					{
						case 'showContactFull': 
							Modules[module_id].Object.showContactFull(MActions[tab_id].actions_set.contactId);
							break;
					}
					break;
				}
				case 'EMail':
				{
					switch(MActions[tab_id].action)
					{
						case 'showFolderMessagesFromTab':
							Modules[module_id].Object.mailAccounts[MActions[tab_id].actions_set.accountID].TabID = tab_id;
							Modules[module_id].Object.showFolderMessagesFromTab(MActions[tab_id].actions_set.accountID, MActions[tab_id].actions_set.folderID);
							break;
					}
					break;
				}
				case 'MultiRSS':
				{
					Modules[module_id].Object.workspaceId = tab_id;
					switch(MActions[tab_id].action)
					{
						case 'showInTab':
							Modules[module_id].Object.showInTab();
							break;
					}
					break;
				}
			}
		}
	}
}

mActionsInspector = new __mActions();