-- Eurolaskin 1.1 

-- 2001 Tuomas Rosberg <vanhentunut>
-- Lähdekoodi on ilmaista ja tarkoitettu yleiseen käyttöön (public domain).
-- Sitä lainattessa kirjoittajan nimi on mainittava.
-- Koodilla ei ole mitään takuuta, ja sen sisältävää ohjelmaa käyttävät
-- toimivat omalla vastuullaan.

on run
   set Rate to 5.94573
   set Battery to "" -- Muuttuja numeron säilytystä varten 
   set Default to "" -- Ensimmäisen valintaikkunan oletusvastaus 
   set Answer to "" -- Laskettu arvo 
   
   repeat
      display dialog ¬
         "Anna luku ja valitse, mihin rahayksikköön se muutetaan. " default answer Default buttons {"Peru", "EUR", "FIM"}
      set theResult to result -- Valintaikkunan tulos sisältää syötetyn tekstin ja valitun painikkeen. 
      set theButton to button returned in theResult
      if Battery is "" then
         try
            set Battery to (text returned in theResult as number)
         on error
            display dialog "Ei ollut numero" buttons "Ohi" default button 1
            exit repeat -- Poistutaan 
         end try
      end if
      if theButton is "Peru" then
         exit repeat -- Poistutaan 
      else if theButton is "EUR" then
         set Battery to Battery / Rate
         set Answer to Battery & " Û"
      else if theButton is "FIM" then
         set Battery to Battery * Rate
         set Answer to Battery & " FIM"
      end if
      display dialog ¬
         "Tulos on " & Answer & return & return & ¬
         "Voit jatkaa tällä arvolla painikkeella ”Jatka” tai kopioida sen apupöydälle painikkeella ”Kopioi”. " buttons {"Kopioi", "Jatka", "OK"} default button "OK"
      if button returned of result is "Jatka" then
         set Answer to item 1 of Answer
         copy Answer to Default
      else if button returned of result is "Kopioi" then
         tell application "Finder"
            activate
            set the clipboard to Battery as string -- Muutetaan merkkijonoksi, koska numero ei siirry apupöydälle oikein. Syy?
         end tell
         exit repeat -- Poistutaan 
      else -- Käyttäjä painoi OK.
         exit repeat -- Poistutaan. 
      end if
   end repeat
end run