﻿Global Count.b

#Snd = 0
#Snd1 = 1
#Snd2 = 2
#Snd3 = 3
#Snd4 = 4
#Snd5 = 5
#Snd6 = 6
#Snd7 = 7
#Snd8 = 8
#Snd9 = 9
#SndWait = 10
#SndOk = 11
#SndVoice1_0 = 12
#SndVoice1_1 = 13
#SndVoice1_2 = 14
#Rnd = 15
#CallButton = 10
#Text = 11
#Text_Count = 12
#RemButton = 13

Global Number.s

If InitSound()
  LoadSound(#Snd1, "sound/1.wav")
  LoadSound(#Snd2, "sound/2.wav")
  LoadSound(#Snd3, "sound/3.wav")
  LoadSound(#Snd4, "sound/4.wav")
  LoadSound(#Snd5, "sound/5.wav")
  LoadSound(#Snd6, "sound/6.wav")
  LoadSound(#Snd7, "sound/7.wav")
  LoadSound(#Snd8, "sound/8.wav")
  LoadSound(#Snd9, "sound/9.wav")
  LoadSound(#SndWait, "sound/wait.wav")
  LoadSound(#SndOk, "sound/ok.wav")
  LoadSound(#Rnd, "sound/rnd.wav")
Else
  End
EndIf

Procedure CheckCall(Parameter)
  Repeat
    Select Number
      Case "6985745" : DisableGadget(#CallButton, 0)
      Case "81756932" : DisableGadget(#CallButton, 0)
      Case "2698515" : DisableGadget(#CallButton, 0)
      Default : DisableGadget(#CallButton, 1)
    EndSelect
  Delay(200)
  ForEver
EndProcedure

Procedure AddNumber(Name.s, TelNum)
  AddGadgetItem(20, -1, Name + ": " + Str(TelNum), X0, 1)
EndProcedure

Macro Number(Num)
  If Num = 1 : PlaySound(#Snd1)
  ElseIf Num = 2 : PlaySound(#Snd2)
  ElseIf Num = 3 : PlaySound(#Snd3)
  ElseIf Num = 4 : PlaySound(#Snd4)
  ElseIf Num = 5 : PlaySound(#Snd5)
  ElseIf Num = 6 : PlaySound(#Snd6)
  ElseIf Num = 7 : PlaySound(#Snd7)
  ElseIf Num = 8 : PlaySound(#Snd8)
  ElseIf Num = 9 : PlaySound(#Snd9)
  EndIf
  Count + 1
  Number = Number + Str(Num)
EndMacro
  
Procedure Wait(Parameter)
  
  HideGadget(#Text_Count, 1)
  
  Rnd.b = Random(3)
  Chance.b = Random(2, 1)

  If Chance = 1
    LoadSound(#SndVoice1_0, "sound/Voice1_0.wav")
    LoadSound(#SndVoice1_1, "sound/Voice1_1.wav")
    LoadSound(#SndVoice1_2, "sound/Voice1_2.wav")
  ElseIf Chance = 2
    LoadSound(#SndVoice1_0, "sound/Voice2_0.wav")
    LoadSound(#SndVoice1_1, "sound/Voice2_1.wav")
    LoadSound(#SndVoice1_2, "sound/Voice2_2.wav")
  EndIf
  
  DisableGadget(#Snd1, 1)
  DisableGadget(#Snd2, 1)
  DisableGadget(#Snd3, 1)
  DisableGadget(#Snd4, 1)
  DisableGadget(#Snd5, 1)
  DisableGadget(#Snd6, 1)
  DisableGadget(#Snd7, 1)
  DisableGadget(#Snd8, 1)
  DisableGadget(#Snd9, 1)
  
  HideGadget(#CallButton, 1)
  HideGadget(#RemButton, 1)
  HideGadget(#Text, 0)
  SetGadgetText(#Text, "Connect...")
  
  WaitRnd = Random(8, 2)
  
  If WaitRnd = 8
    PlaySound(#SndWait)
    While Wait < WaitRnd : PlaySound(#SndWait) : Delay(2500) : Wait + 1 : Wend
    SetGadgetText(#Text, "Error.")
    Goto CloseConnect
  EndIf
  
  While Wait < WaitRnd : PlaySound(#SndWait) : Delay(2500) : Wait + 1 : Wend
    
  If Wait = WaitRnd
    SetGadgetText(#Text, "Connected")
    PlaySound(#SndOk)
    Delay(2000)
    PlaySound(#SndVoice1_0)
    Delay(3000)
    PlaySound(#SndVoice1_1)
    Delay(3000)
    PlaySound(#SndVoice1_2)
    Delay(3000)
    
    If Rnd = 2
      PlaySound(#Rnd)
      Delay(2700)
    EndIf
    
    PlaySound(#SndOk)
    SetGadgetText(#Text, "Disconnected")
    CloseConnect:
    Delay(1000)
    HideGadget(#Text, 1)
    HideGadget(#CallButton, 0)
    HideGadget(#Text_Count, 0)
    HideGadget(#RemButton, 0)
    Count = 0
    Wait = 0
    Number = ""
    DisableGadget(#Snd1, 0)
    DisableGadget(#Snd2, 0)
    DisableGadget(#Snd3, 0)
    DisableGadget(#Snd4, 0)
    DisableGadget(#Snd5, 0)
    DisableGadget(#Snd6, 0)
    DisableGadget(#Snd7, 0)
    DisableGadget(#Snd8, 0)
    DisableGadget(#Snd9, 0)
  EndIf

EndProcedure

If OpenWindow(0, 200, 200, 120, 85, "Telephone")
  
  TextGadget(#Text, 30, 65, 80, 20, "")
  HideGadget(#Text, 1)
  
  ButtonGadget(#Snd1, 0, 0, 40, 20, "1")
  ButtonGadget(#Snd2, 40, 0, 40, 20, "2")
  ButtonGadget(#Snd3, 80, 0, 40, 20, "3")
  ButtonGadget(#Snd4, 0, 20, 40, 20, "4")
  ButtonGadget(#Snd5, 40, 20, 40, 20, "5")
  ButtonGadget(#Snd6, 80, 20, 40, 20, "6")
  ButtonGadget(#Snd7, 0, 40, 40, 20, "7")
  ButtonGadget(#Snd8, 40, 40, 40, 20, "8")
  ButtonGadget(#Snd9, 80, 40, 40, 20, "9")

  TextGadget(#Text_Count, 5, 65, 15, 20, "")
  
  ButtonGadget(#RemButton, 21, 62, 20, 20, "<-")
  ButtonGadget(#CallButton, 40, 62, 80, 20, "Call")
  
  CreateThread(@CheckCall(), 154)
  
  XIncludeFile "TeleBook.pbi"
  
  SetActiveWindow(0)
  
  Repeat

    Event = WaitWindowEvent()
    Gadget = EventGadget()

    If Event = #PB_Event_Gadget And Gadget = #Snd1 : Number(1)
    ElseIf Event = #PB_Event_Gadget And Gadget = #Snd2 : Number(2)
    ElseIf Event = #PB_Event_Gadget And Gadget = #Snd3 : Number(3)
    ElseIf Event = #PB_Event_Gadget And Gadget = #Snd4 : Number(4)
    ElseIf Event = #PB_Event_Gadget And Gadget = #Snd5 : Number(5)
    ElseIf Event = #PB_Event_Gadget And Gadget = #Snd6 : Number(6)
    ElseIf Event = #PB_Event_Gadget And Gadget = #Snd7 : Number(7)
    ElseIf Event = #PB_Event_Gadget And Gadget = #Snd8 : Number(8)
    ElseIf Event = #PB_Event_Gadget And Gadget = #Snd9 : Number(9)
    ElseIf Event = #PB_Event_Gadget And Gadget = #CallButton : CreateThread(@Wait(), 154)
    ElseIf Event = #PB_Event_Gadget And Gadget = #RemButton : Count = 0 : Number = ""
    EndIf

    SetGadgetText(#Text_Count, Str(Count))
      
  Until Event = #PB_Event_CloseWindow
  
EndIf
End