!define MUI_PRODUCT "AutoUpdate UI"
!define MUI_VERSION "1.0 BETA"

!include "${NSISDIR}\Contrib\Modern UI\system.nsh"
;!include "${NSISDIR}\Contrib\Modern UI\ZipDLL.nsh"
!include Sections.nsh

  OutFile "pmsupdater.exe"

  InstallDir $EXEDIR

  !define TEMP $R0

  !define MUI_WELCOMEPAGE

; - - - verschiedene Designs - - - - 
  !define MUI_SPECIALBITMAP "${NSISDIR}\Contrib\Icons\modern-wizard-update.bmp"
  !define MUI_ICON "${NSISDIR}\Contrib\Icons\new_nsis_3.ico"
  !define MUI_CHECKBITMAP "${NSISDIR}\Contrib\Icons\yi-simple_check.bmp"
  !define MUI_HEADERBITMAP "${NSISDIR}\Contrib\Icons\modern-header 4.bmp"
  !define MUI_BRANDINGTEXT "PM Update UI auf NSIS2 / Christian Gitte"
 
  !define MUI_COMPONENTSPAGE
  !define MUI_COMPONENTSPAGE_SMALLDESC

  !define MUI_FINISHPAGE
  !define MUI_FINISHPAGE_RUN "$INSTDIR\phoenixrr.exe"
  !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\pmreleasenotes.rtf"
  !define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED

; - - - - - - sucks at win98se: - - - - -

  !define MUI_FINISHPAGE_LINK "Website von Phoenix Mail 2003 besuchen..."
  !define MUI_FINISHPAGE_LINK_LOCATION http://www.rr4u.de

; - - - - - - - - - - - - - - - - - - - - - - - - 

  !define MUI_FINISHPAGE_NOAUTOCLOSE
  
; - - - - - - - - Eigene Dialoge - - - - - - - - -

  !define MUI_CUSTOMPAGECOMMANDS
  !insertmacro MUI_PAGE_WELCOME
  Page custom SetCustomB 
  !insertmacro MUI_PAGE_COMPONENTS
  !insertmacro MUI_PAGE_INSTFILES
  !insertmacro MUI_PAGE_FINISH

; - - - - - - - - Sprachinformationen - - - - - - - - - -
  
  !insertmacro MUI_LANGUAGE "german3"

  LangString TITLE_Datei1 ${LANG_GERMAN} "rr4u - Update-Server"
  LangString DESC_Datei1 ${LANG_GERMAN} "Aktualisiert Phoenix Mail 2003 direkt aus dem Internet."
  LangString TITLE_Datei2 ${LANG_GERMAN} "Odin's Doghouse - Update-Server"
  LangString DESC_Datei2 ${LANG_GERMAN} "Aktualisiert Phoenix Mail 2003 direkt aus dem Internet."


; -------------- Dateien und Aktionen werden festgelegt --------------------------

Function SetCustomB
  !insertmacro MUI_HEADER_TEXT "Verbindungsprüfung" "Interntezugang wird geprüft."
;  call ConnectInternet
FunctionEnd

Function ConnectInternet
 
   Push $R0
     
     ClearErrors
     Dialer::AttemptConnect
     IfErrors noie3
     
     Pop $R0
     StrCmp $R0 "online" connected
       MessageBox MB_OK|MB_ICONSTOP "Update UI kann keine Internet-Verbindung feststellen. $\n$\nUpdate UI wird geschlossen."
       Quit ;Remove to make error not fatal
     
     noie3:
   
     ; IE3 not installed
     MessageBox MB_OK|MB_ICONINFORMATION "Bitte stellen Sie jetzt eine Internet-Verbindung her..."
     
     connected:
   
   Pop $R0
   
 FunctionEnd


  ; - - - - Erste Datei von rr4u- - - - - -

   Section $(TITLE_Datei1) Datei1

       SetOutPath "$INSTDIR"

         NSISdl::download "http://galileo.spaceports.com/~pm2003/down/updatepm2003.zip" "updatepm2003.zip"
;              Pop $R0 ;Get the return value
 ;                StrCmp $R0 "success" +3
  ;                      MessageBox MB_OK "Download gescheitert: $R0 $\n$\n- Überprüfen Sie Ihre Internet-Verbindung$\n- Wählen Sie evtl. einen anderen Update-Server$\n- Starten Sie den Updatevorgang erneut$\n$\nNutzen Sie immer die neueste Version$\nvon Phoenix Mail AutoUpdate UI."
   ;      Quit

         ZipDLL::extractall "updatepm2003.zip" ""
         Delete "${NSISDIR}\updatepm2003.zip"

   SectionEnd

  ; - - - - Zweite Datei von Odin's Doghouse- - - - - -

   Section /o $(TITLE_Datei2) Datei2

       SetOutPath "$INSTDIR"

         NSISdl::download "http://galileo.spaceports.com/~pm2003/down/updatepm2003.zip" "updatepm2003.zip"
              Pop $R0 ;Get the return value
                 StrCmp $R0 "success" +3
                        MessageBox MB_OK "Download gescheitert: $R0 $\n$\n- Überprüfen Sie Ihre Internet-Verbindung$\n- Wählen Sie evtl. einen anderen Update-Server$\n- Starten Sie den Updatevorgang erneut"
    Quit

         ZipDLL::extractall "updatepm2003.zip" ""
         Delete "${NSISDIR}\updatepm2003.zip"

   SectionEnd

  ; - - - - - - One-Selection - - - - - -


Function .onInit
	StrCpy $1 ${Datei1} ; Gotta remember which section we are at now...
FunctionEnd

Function .onSelChange
	Push $0

	; Turn off old selected section
	SectionGetFlags $1 $0
	IntOp $0 $0 & ${SECTION_OFF}
	SectionSetFlags $1 $0
	# !insertmacro UnselectSection $1

	; Now remember the current selection
	Push $2
	StrCpy $2 $1

	SectionGetFlags ${Datei1} $0
	IntOp $0 $0 & ${SF_SELECTED}
	IntCmp $0 ${SF_SELECTED} 0 +2 +2
		StrCpy $1 ${Datei1}
	SectionGetFlags ${Datei2} $0
	IntOp $0 $0 & ${SF_SELECTED}
	IntCmp $0 ${SF_SELECTED} 0 +2 +2
		StrCpy $1 ${Datei2}
;	SectionGetFlags ${sec3} $0
;	IntOp $0 $0 & ${SF_SELECTED}
;	IntCmp $0 ${SF_SELECTED} 0 +2 +2
;		StrCpy $1 ${sec3}
;	SectionGetFlags ${sec4} $0
;	IntOp $0 $0 & ${SF_SELECTED}
;	IntCmp $0 ${SF_SELECTED} 0 +2 +2
;		StrCpy $1 ${sec4}

	StrCmp $2 $1 0 +4 ; selection hasn't changed
		SectionGetFlags $1 $0
		IntOp $0 $0 | ${SF_SELECTED}
		SectionSetFlags $1 $0
		# !insertmacro SelectSection $1
	Pop $2
	Pop $0
FunctionEnd

  ; - - - - Kommentare für die Komponentenseite werden initialisiert - - - - - 

      !insertmacro MUI_FUNCTIONS_DESCRIPTION_BEGIN
         !insertmacro MUI_DESCRIPTION_TEXT ${Datei1} $(DESC_Datei1)
         !insertmacro MUI_DESCRIPTION_TEXT ${Datei2} $(DESC_Datei2)
      !insertmacro MUI_FUNCTIONS_DESCRIPTION_END

