Attribute VB_Name = "modformsubs"
'By the BWW-IRC Team. Distributed under the GPL.

'********CHANNEL MESSAGES*****

'Dispalys a message in a channel
Public Sub DisplayMessageInChannel(Message As String, Nickname As String, Channel As String, Optional color As Long = vbBlack)
    If frmmain.allChannels.Exists(Channel) Then DisplayMessage frmmain.allChannels(Channel), frmmain.allChannels(Channel).rtbView, Nickname, Message, color
End Sub

'Display an action in a channel
Public Sub DisplayActionInChannel(Action As String, Nickname As String, Channel As String)
    If frmmain.allChannels.Exists(Channel) Then Display Nickname + " " + Action, frmmain.allChannels(Channel).rtbView, &H800080, False, False, True, False
End Sub



'******PRIVATE MESSGAES*****

'Display Messsage in Private

Public Sub DisplayMessageInPrivate(Message As String, Nickname As String, Optional color As Long = vbBlack)
        If frmmain.allPrivates.Exists(Nickname) Then DisplayMessage frmmain.allPrivates(Nickname), frmmain.allPrivates(Nickname).rtbView, Nickname, Message, color
End Sub

'Display Action in private
Public Sub DisplayActionInPrivate(Action As String, Nickname As String)
    If frmmain.allPrivates.Exists(Nickname) Then Display Nickname + " " + Action, frmmain.allPrivates(Nickname).rtbView, &H800080, False, False, True, False
End Sub

'******Loading Forms*****

Public Sub LoadChannelForm(Channel As String)
    'Convert Channel to Uppercase
    Channel = UCase(Channel)
    
    'If it already exists - display it
    If frmmain.allChannels.Exists(Channel) Then
    frmmain.allChannels(Channel).Show
    
    'if is dosnt exist create, load and show a new form
    Else
    frmmain.allChannels.Add Channel, New frmChannel
    Load frmmain.allChannels(Channel)
    frmmain.allChannels(Channel).Caption = Channel
    frmmain.allChannels(Channel).Show
    End If
    
    'Value for last Cannel joined
    Call WriteValue("lastChannel", Channel)
End Sub

Public Sub LoadPrivateForm(Nickname As String)
    
    'Remove @ or + sign is they exist
    If Mid(Nickname, 1, 1) = "@" Then Nickname = Mid(Nickname, 2, Len(Nickname))
    If Mid(Nickname, 1, 1) = "+" Then Nickname = Mid(Nickname, 2, Len(Nickname))
    
    If frmmain.allPrivates.Exists(Nickname) Then
    
        frmmain.allPrivates(Nickname).Show
    
    Else
    
        frmmain.allPrivates.Add Nickname, New frmPrivate
        Load frmmain.allPrivates(Nickname)
        frmmain.allPrivates(Nickname).Caption = Nickname
        frmmain.allPrivates(Nickname).Show
    
    End If
    
End Sub


Public Sub JoinChannel(Channel As String)
LoadChannelForm (Channel)
frmmain.SendData ("Join " + Channel)
End Sub

'******People updates/remove/add*****


Public Sub PeopleUpdate(People As String, Channel As String)
    'This sub takes the NAMES string sent from the server
    frmmain.allChannels.Item(UCase(Channel)).People = frmmain.allChannels.Item(UCase(Channel)).People + People
    Dim users() As String
    'Splits it up in to users()
    users = Split(People, " ")
    
    'Adds the array users() to the list box lstPeople
    For i = 0 To UBound(users)
        If users(i) <> "" Then frmmain.allChannels.Item(UCase(Channel)).lstPeople.AddItem users(i)
    Next i
End Sub


Public Sub PersonAdd(Person As String, Channel As String)
    'Updates the peoples string
    frmmain.allChannels.Item(UCase(Channel)).People = frmmain.allChannels.Item(UCase(Channel)).People + " " + Person
    'Updates lstPeople
    frmmain.allChannels.Item(UCase(Channel)).lstPeople.AddItem Person
End Sub

Public Sub PersonRemove(Person As String, Channel As String)

    'This loop cycles though lstPeople and removes the peson
    For Count = 0 To frmmain.allChannels.Item(UCase(Channel)).lstPeople.ListCount - 1
        If frmmain.allChannels.Item(UCase(Channel)).lstPeople.List(Count) = Person Then frmmain.allChannels.Item(UCase(Channel)).lstPeople.RemoveItem (Count)
    Next Count

End Sub


