#include <GUIConstants.au3>
#include <GuiListView.au3>
Opt("GUIOnEventMode", 1)

Dim $arAlleSN, $arTreffer[1], $Fehler = 0, $SN
Dim $alleRichtig = 0, $dreiRichtig = 0, $zweiRichtig = 0, $einRichtig = 0, $lastEntry, $new = 0
Dim $rot = 0xFF0000
$arAlleSN = IniReadSection(@ScriptDir & "\SN10Euro.INI", "serien")
$arTreffer[0] = 0
If @error = 1 Then $Fehler = 1

$Form1 = GUICreate("100.000 für 10", 636, 344, -1, -1)
GUISetOnEvent($GUI_EVENT_CLOSE, "Ende")
$ListView1 = GUICtrlCreateListView("Seriennummern", 17, 19, 353, 305)
_GUICtrlListViewSetColumnWidth(-1, 0, 349)
$Group0 = GUICtrlCreateGroup(" Modus ", 384, 17, 240, 40)
$Radio1 = GUICtrlCreateRadio("Erfassen", 400, 30, 80)
GUICtrlSetOnEvent(-1, "RadioErfassen")
$Radio2 = GUICtrlCreateRadio("Vergleichen", 520, 30, 80)
GUICtrlSetOnEvent(-1, "RadioVergleichen")
GUICtrlSetState(-1, $GUI_CHECKED)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group1 = GUICtrlCreateGroup(" Seriennummer ", 384, 59, 240, 57)
$Input1 = GUICtrlCreateInput("", 395, 81, 220, 21, $ES_UPPERCASE)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button1 = GUICtrlCreateButton("Vergleichen", 384, 128, 70, 21, 0)
GUICtrlSetOnEvent(-1, "Vergleichen")
$Group2 = GUICtrlCreateGroup(" Ergebnis ", 384, 158, 240, 167)
$Label0 = GUICtrlCreateLabel("Hauptgewinn", 465, 180, 90, 17)
GUICtrlSetColor($Label0, $rot)
GUICtrlSetStyle(-1, $WS_DISABLED)
$Label1 = GUICtrlCreateLabel("letzte 3 Ziffern richtig", 396, 214, 102, 17)
GUICtrlSetStyle(-1, $WS_DISABLED)
$Label2 = GUICtrlCreateLabel("letzte 2 Ziffern richtig", 396, 252, 102, 17)
GUICtrlSetStyle(-1, $WS_DISABLED)
$Label3 = GUICtrlCreateLabel("letzte Ziffer richtig", 396, 290, 87, 17)
GUICtrlSetStyle(-1, $WS_DISABLED)
$Input2 = GUICtrlCreateInput("", 550, 211, 45, 21, BitOR($ES_RIGHT,$ES_AUTOHSCROLL,$ES_READONLY))
$Input3 = GUICtrlCreateInput("", 550, 249, 45, 21, BitOR($ES_RIGHT,$ES_AUTOHSCROLL,$ES_READONLY))
$Input4 = GUICtrlCreateInput("", 550, 287, 45, 21, BitOR($ES_RIGHT,$ES_AUTOHSCROLL,$ES_READONLY))
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button2 = GUICtrlCreateButton("Ende", 554, 128, 70, 21, 0)
GUICtrlSetOnEvent(-1, "Ende")
$Button3 = GUICtrlCreateButton("Löschen", 469, 128, 70, 21, 0)
GUICtrlSetOnEvent(-1, "DeleteSN")

If $Fehler = 1 Then
	$lastEntry = 0
Else
	$lastEntry = StringTrimLeft($arAlleSN[$arAlleSN[0][0]][1], 2)
	_ListAllSN()
EndIf
If Not FileExists(@ScriptDir & "\SN10Euro.INI") Then 
	GUICtrlSetState($Button3, $GUI_DISABLE)
Else
	GUICtrlSetState($Button3, $GUI_ENABLE)
EndIf

GUISetState(@SW_SHOW)
ControlFocus("", "", $Input1)

While 1
	Sleep(100)
WEnd

Func _ListAllSN()
	If IsArray($arAlleSN) Then
		For $i = 1 To $arAlleSN[0][0]
			_GUICtrlListViewInsertItem($ListView1, -1, $arAlleSN[$i][1])
		Next
	EndIf
EndFunc

Func RadioErfassen()
	GUICtrlSetData($Button1, "Erfassen")
	If Not FileExists(@ScriptDir & "\SN10Euro.INI") Then 
		GUICtrlSetState($Button3, $GUI_DISABLE)
	Else
		GUICtrlSetState($Button3, $GUI_ENABLE)
	EndIf
	GUICtrlSetStyle($Label0, $WS_DISABLED)
	GUICtrlSetStyle($Label1, $WS_DISABLED)
	GUICtrlSetStyle($Label2, $WS_DISABLED)
	GUICtrlSetStyle($Label3, $WS_DISABLED)
	_GUICtrlListViewDeleteAllItems($ListView1)
	If $Fehler = 0 Then _ListAllSN()
	ControlFocus("", "", $Input1)
	GUICtrlSetData($Input2, "")
	GUICtrlSetData($Input3, "")
	GUICtrlSetData($Input4, "")
EndFunc

Func RadioVergleichen()
	GUICtrlSetData($Button1, "Vergleichen")
	ControlFocus("", "", $Input1)
EndFunc

Func Vergleichen()
	If GUICtrlRead($Radio2) = 1 Then ; vergleichen
		If $Fehler = 1 Then
			MsgBox(48, 'ACHTUNG', "Es sind noch keine Seriennummern zum Vergleich hinterlegt!")
			Return
		EndIf
		_vergleich()
		_GUICtrlListViewDeleteAllItems($ListView1)
		_treffer()
	Else ; erfassen
		$SN = GUICtrlRead($Input1)
		If $SN <> "" Then
			_GUICtrlListViewInsertItem($ListView1, -1, $SN)
			IniWrite(@ScriptDir & "\SN10Euro.INI", "serien", "sn" & $lastEntry +1, $SN)
			$lastEntry += 1
			$Fehler = 0
			$new = 1
			GUICtrlSetState($Button3, $GUI_ENABLE)
		Else
			MsgBox(0, 'ACHTUNG!', "Bitte eine Seriennummer für Vergleich eingeben!")
		EndIf
	EndIf
	ControlFocus("", "", $Input1)
EndFunc

Func DeleteSN()
Dim $tmp
	If $new = 1 Then $arAlleSN = IniReadSection(@ScriptDir & "\SN10Euro.INI", "serien")
	$tmp = _GUICtrlListViewGetItemText($ListView1)
	If $tmp <> "" And MsgBox(292,"Löschen","Soll die Seriennummer:" & @LF & $tmp & @LF & "wirklich gelöscht werden?") = 6 Then
		For $i = 1 To $arAlleSN[0][0]
			If $arAlleSN[$i][1] = $tmp Then 
				$arAlleSN[$i][1] = ""
				ExitLoop
			EndIf
		Next
		FileDelete(@ScriptDir & "\SN10Euro.INI")
		$lastEntry = 0
		For $i = 1 To $arAlleSN[0][0]
			If $arAlleSN[$i][1] <> "" Then
				IniWrite(@ScriptDir & "\SN10Euro.INI", "serien", "sn" & $lastEntry +1, $arAlleSN[$i][1])
				$lastEntry += 1
				$Fehler = 0	
			EndIf
		Next
		_GUICtrlListViewDeleteAllItems($ListView1)
		$arAlleSN = IniReadSection(@ScriptDir & "\SN10Euro.INI", "serien")
		_ListAllSN()
		If Not FileExists(@ScriptDir & "\SN10Euro.INI") Then GUICtrlSetState($Button3, $GUI_DISABLE)
	EndIf
EndFunc

Func _vergleich()
	$SN = GUICtrlRead($Input1)
	If $new = 1 Then $arAlleSN = IniReadSection(@ScriptDir & "\SN10Euro.INI", "serien")
	For $i = 1 To $arAlleSN[0][0]
		If $arAlleSN[$i][1] = $SN Then
			$alleRichtig += 1
			_ArrayAdd($arTreffer, $arAlleSN[$i][1] & " / Volltreffer = 100.000 €")
			$arTreffer[0] += 1
		ElseIf StringRight($arAlleSN[$i][1], 3) = StringRight($SN, 3) Then
			$dreiRichtig += 1
			_ArrayAdd($arTreffer, $arAlleSN[$i][1] & " / 3 R = 10.000 €")
			$arTreffer[0] += 1
		ElseIf StringRight($arAlleSN[$i][1], 2) = StringRight($SN, 2) Then
			$zweiRichtig += 1
			_ArrayAdd($arTreffer, $arAlleSN[$i][1] & " / 2 R = 1.000 €")
			$arTreffer[0] += 1
		ElseIf StringRight($arAlleSN[$i][1], 1) = StringRight($SN, 1) Then
			$einRichtig += 1
			_ArrayAdd($arTreffer, $arAlleSN[$i][1] & " / 1 R = 100 €")
			$arTreffer[0] += 1
		EndIf
	Next
EndFunc

Func _treffer()
	For $i = 1 To $arTreffer[0]
		_GUICtrlListViewInsertItem($ListView1, -1, $arTreffer[$i])
	Next
	If $alleRichtig = 1 Then GUICtrlSetStyle($Label0, $GUI_SS_DEFAULT_LABEL)
	GUICtrlSetState($Button3, $GUI_DISABLE)
	GUICtrlSetStyle($Label1, $GUI_SS_DEFAULT_LABEL)
	GUICtrlSetStyle($Label2, $GUI_SS_DEFAULT_LABEL)
	GUICtrlSetStyle($Label3, $GUI_SS_DEFAULT_LABEL)
	GUICtrlSetData($Input2, $dreiRichtig)
	GUICtrlSetData($Input3, $zweiRichtig)
	GUICtrlSetData($Input4, $einRichtig)
	ReDim $arTreffer[1]
	$arTreffer[0] = 0
	$dreiRichtig = 0
	$zweiRichtig = 0
	$einRichtig = 0
EndFunc

Func Ende()
	Exit
EndFunc