Attribute VB_Name = "Input"
Sub xINPUT(strData As String)
    strData = RTrim(strData)
    Dim x, y As Integer
    'don't set array it'll be set with ReDim
    Dim word() As String
    Dim parms As String
    
    'split the commands into seperate words
    'ReDim Preserve statement is the KEY
    If InStr(strData, Chr(32)) Then
        Do Until InStr(strData, Chr(32)) = 0
            x = InStr(strData, Chr(32))
            If x Then
                y = y + 1
                ReDim Preserve word(y)
                word(y) = Mid(strData, 1, x - 1)
                strData = Mid(strData, x + 1)
            End If
        Loop
        ReDim Preserve word(y + 1)
        word(y + 1) = strData
        
        'DO IT
        Select Case UCase(word(1))
            Case "RAW"
                For x = 2 To UBound(word)
                    parms = parms & word(x) & Chr(32)
                Next x
                parms = RTrim(parms)
                frmSocket.Socket.SendData parms
                frmStatus.rtfStatus.SelText = "->Server: " & parms
                frmStatus.rtfStatus.SelText = "-" & vbCrLf
            Case "MSG"
                For x = 3 To UBound(word)
                    parms = parms & word(x) & Chr(32)
                Next x
                parms = RTrim(parms)
                frmSocket.Socket.SendData "PRIVMSG " & word(2) & " :" & parms & vbCrLf
                'Adam Need to call a Docolor here...
                frmStatus.rtfStatus.SelColor = vbWhite
                frmStatus.rtfStatus.SelText = "-> *" & word(2) & "* " & parms & vbCrLf
                frmStatus.rtfStatus.SelText = "-" & vbCrLf
                frmStatus.rtfStatus.SelColor = vbWhite
            Case "WHOIS"
                frmSocket.Socket.SendData "WHOIS " & word(2) & vbCrLf
            Case "JOIN"
                If Left(word(2), 1) = "#" Then
                    frmSocket.Socket.SendData "JOIN " & word(2) & vbCrLf
                Else
                    frmSocket.Socket.SendData "JOIN #" & word(2) & vbCrLf
                End If
            Case "PART"
                If Left(word(2), 1) = "#" Then
                    frmSocket.Socket.SendData "PART " & word(2) & vbCrLf
                Else
                    frmSocket.Socket.SendData "PART #" & word(2) & vbCrLf
                End If
            Case "NICK"
                frmSocket.Socket.SendData "NICK " & ":" & word(2) & vbCrLf
        End Select
    Else
        'words that take no parameters just one word
        Select Case UCase(strData)
            Case "LIST"
                frmSocket.Socket.SendData "LIST" & vbCrLf
            Case "MOTD"
                frmSocket.Socket.SendData "MOTD" & vbCrLf
        End Select
    End If
End Sub