Patch 3.3.5/API changes

== New API functions ==
: BNAcceptFriendInvite(inviteId)
: isConnected = BNConnected()
: BNCreateConversation(player1, player2)
: BNDeclineFriendInvite(inviteId)
: isEnabled = BNFeaturesEnabled
: isEnabledAndConnected = BNFeaturesEnabledAndConnected()
: presenceId, blockName = BNGetBlockedInfo(blockId)
: blockID, blockName = BNGetBlockedToonInfo(blockId or index)
: conversationType = BNGetConversationInfo(conversationId)
: accountId, toonId, name = BNGetConversationMemberInfo(conversationId, participantId)
: BNetBroadcasts, numOnlineBroadcasts, numOfflineBroadcasts = BNGetCustomMessageTable([BNetBroadcasts])
: friendID, givenName, surname, isMutual = BNGetFOFInfo(presenceId, showMutual, showPotential, friendsIndex)
: presenceID, givenName, surname = BNGetFriendInfo(friendId)
: presenceID, givenName, surname, toonName, toonID, client, isOnline, lastOnline, isAFK, isDND, messageText, noteText = BNGetFriendInfoByID(presenceID)
: inviteId, name, surname, message, timeSent, days = BNGetFriendInviteInfo(offset);
: hasFocus, toonName, client, realmName, faction, race, class, guild, zoneName, level, gameText = BNGetFriendToonInfo(friendId, toonIdx)
: presenceID, toonID, broadcastText, bnetAFK, bnetDND = BNGetInfo()
: isEnabled = BNGetMatureLanguageFilter()
: maxPlayers = BNGetMaxPlayersInConversation();
: numBlocks = BNGetNumBlocked();
: numToonBlocks = BNGetNumBlockedToons()
: numMembers = BNGetNumConversationMembers(conversationId)
: numMutual, numPotential = BNGetNumFOF(presenceId)
: numPendingInvites = BNGetNumFriendInvites();
: numToons = BNGetNumFriendToons(friendId)
: numTotal, numOnline = BNGetNumFriends();
: friendId = BNGetSelectedFriend();
: blockIndex = BNGetSelectedToonBlock();
: hasFocus, toonName, client, realmName, faction, race, class, guild, zoneName, level, gameText, broadcastText, broadcastTime, ? = BNGetToonInfo(toonId);
: BNInviteToConversation(conversationId, player)
: BNIsBlocked
: isFriend = BNIsFriend(presenceId)
: isSelf = BNIsSelf(presenceId)
: isBlocked = BNIsToonBlocked(presenceId)
: BNLeaveConversation(conversationId)
: BNListConversation(conversationId)
: BNRemoveFriend(presenceId)
: BNReportFriendInvite(inviteId)
: BNReportPlayer(presenceId, reportType, comments)
: BNRequestFOFInfo(presenceId)
: BNSendConversationMessage(target, text)
: BNSendFriendInvite(name, note)
: BNSendFriendInviteByID(presenceId, note)
: BNSendWhisper(presenceId, text)
: BNSetAFK(isAFK)
: BNSetBlocked(presenceId, isBlocked)
: BNSetCustomMessage(text)
: BNSetDND(isDND)
: BNSetFocus
: BNSetFriendNote(presenceId, note)
: BNSetMatureLanguageFilter(enable)
: BNSetSelectedFriend(id)
: BNSetSelectedToonBlock(id)
: BNSetToonBlocked(presenceId, block)
: CommentatorGetSkirmishMode
: CommentatorGetSkirmishQueueCount
: CommentatorGetSkirmishQueuePlayerInfo
: CommentatorRequestSkirmishMode
: CommentatorRequestSkirmishQueueData
: CommentatorSetSkirmishMatchmakingMode
: CommentatorStartSkirmishMatch
: GetAutoCompletePresenceID(name)
: width, height = GetChatWindowSavedDimensions(chatFrameId)
: point, xOfs, yOfs = GetChatWindowSavedPosition(chatFrameId)
: IsBNLogin
: SendSystemMessage(message)
: SetChatWindowSavedDimensions(chatFrameId, width, height)
: SetChatWindowSavedPosition(chatFrameId, point, xOfs, yOfs)
== New FrameXML API ==
: ignoreId = BNGetSelectedBlock()
: BNSetSelectedBlock(id)
: CanCooperateWithToon(toonId)
: SynchronizeBNetStatus()
: BetterDate(format, time)
: link = GetFixedLink(text)
== New Events ==
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: (presenceId)
: 
: 
: (presenceId)
: (presenceId)
: (presenceId)
: 
: 
: 
: 
: 
: 
: 
: 
: (presenceId, name)
: 
: 
: 
: 
: 
: (presenceId, name)
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
== API Changes ==
* It is no longer guaranteed that the server will provide inventory information for every request; should the server choose to throttle a particular request, events indicating availability of inspection data will not fire.
== Removed FrameXML API==
: UIFrameFlashSwitch
: ToggleCombatLog