var_mode = 1

var_lang = {"Nederlands", "English", "Deutsch", "Français", "По-русский"}

var_count=0
var_agenda=false
var_sw=false


------------------------------------------------------------------------------------
--       Initiating a minimum number of arrays
------------------------------------------------------------------------------------

function var_choose(m)

if m == 1 then -- Dutch
------------------------------------------------------------------------------------
digit = {"een", "twee", "drie", "vier", "vijf", "zes", "zeven", "acht", "negen", "tien", "elf", "twaalf", "dertien", "veertien", "vijftien", "zestien", "zeventien", "achttien", "negentien"}

tens = {"tien", "twintig", "dertig", "veertig", "vijftig", "zestig", "zeventig", "tachtig", "negentig"}

pre = {"eenen", "tweeën", "drieën", "vieren", "vijfen", "zesen", "zevenen", "achten", "negenen"}

var_day = {"Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag", "Zondag"}

var_month = {"januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"}

var_text = {"Het is", "minus", "honderd", "duizend", " uur precies!", " over ", "kwart", " voor ", "half ", "", "nul", "AGENDA", "Vandaag verder geen afspraken", "Stopwatch", "uren", "minuten", "seconden"}
end


if m == 2 then -- English
------------------------------------------------------------------------------------
digit = {"one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eightteen", "nineteen"}

tens = {"ten", "twenty", "thirty", "fourty", "fifty", "sixty", "seventy", "eighty", "ninety"}

var_day = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"}

var_month = {"january", "february", "march", "april", "june", "july", "august", "september", "october", "november", "december"}

var_text = {"It's", "minus", "hundred", "thousand", " o'clock", " past ", "a quarter", " to ", "half past ", "exactly ", "zero", "AGENDA", "No further appointments for today", "Stopwatch", "hours", "minutes", "seconds"}
end


if m == 3 then -- German
------------------------------------------------------------------------------------
digit = {"ein", "zwei", "drei", "vier", "fünf", "sechs", "sieben", "acht", "neun", "zehn", "elf", "zwölf", "dreizehn", "vierzehn", "fünfzehn", "sechszehn", "siebzehn", "achtzehn", "neunzehn"}

tens = {"zehn", "zwanzig", "dreizig", "vierzig", "fünfzig", "sechszig", "siebzich", "achtzig", "neunzig"}

pre = {"einund", "zweiund", "dreiund", "vierund", "fünfund", "sechsund", "siebenund", "achtund", "neunund"}

var_day = {"Montag", "Dinstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag"}

var_month = {"Januar", "Februar", "März", "April", "Mei", "Juni", "Juli", "August", "September", "October", "November", "December"}

var_text = {"Es ist", "Minus", "hundert", "tauzend", " Uhr genau!", " nach ", "ein Viertel", " für ", "halb ", "", "Nul", "AGENDA", "Keine weiteren Terminen für heute", "Stoppuhr", "Stunden", "Minuten", "Sekunden"}
end


if m == 4 then -- French
------------------------------------------------------------------------------------
digit = {"un", "deux", "trois", "quatre", "cinq", "six", "sept", "huit", "neuf", "dix", "onze", "douze", "treize", "quatorze", "quinze", "seize", "dix-sept", "dix-huit", "dix-neuf"}

tens = {"dix", "vingt", "trente", "quarante", "cinquante", "soissante", "soissante-dix", "quatre-vingt", "quatre-vingt-dix"}

var_day = {"Lundi", "Mardi", "Mecredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"}

var_month = {"janvier", "février", "mars", "avril", "may", "juin", "juli", "août", "septembre", "octobre", "novembre", "decembre"}

var_text = {"Il est", "moins", "cent", "mille", "heure", "après", "un quart d'heure", "avant", " et demie", "Exactement ", "zero", "AGENDA", "Aucun autre rendez-vous" .. string.char(10) .. "pour aujourd'hui", "Chronomètre", "heures", "minutes", "secondes"}
end

if m == 5 then -- Russian
------------------------------------------------------------------------------------
digit = {"один", "два", "три", "четыре", "пять", "шесть", "семь", "восемь", "девять", "десять", "одиннадцать", "двенадцать", "тринадцать", "четырнадцать", "пятнадцать", "шестнадцать", "семнадцать", "восемнадцать", "девятнадцать"}

tens = {"десять", "двадцать", "тридцать", "сорок", "пятьдесят", "шестьдесят", "семьдесят", "восемьдесят", "девяносто"}

var_day = {"Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота", "Воскресенье"}

var_month = {"января", "февраля", "марта", "апреля", "мая", "июньэя", "июля", "августа", "сентября", "октября", "ноября", "декабря", ""}

var_text = {"Сейчас", "минус", "", "", "", "", "", "", "", "", "нуль", "АГЕНДА", "Севодня дальше нечего", "Секундомер", "(часов)", "(минут)", "(секунд)"}
end
end

var_first = {"первого", "второго", "третьего", "четвёртого", "пятого", "шестого", "седьмого", "восьмого", "девятого", "десятого", "одиннадцатого", "двенадцатого"}

var_second = {"одной", "двух", "трёх", "четырёх", "пяти", "шести", "семи", "восьми", "девяти", "десяти", "одиннадцати", "двенадцати", "тринадцати", "четырнадцати", "пятнадцати", "шестнадцати", "семнадцати", "восемнадцати", "девятнадцати", "двацати", "двацати одной", "двацати двух", "двацати трёх", "двацати четырёх", "двацати пяти", "двацати шести", "двацати семи", "двацати восеми", "двацати девяти"}

var_choose(var_mode)


------------------------------------------------------------------------------------
--                        Number substitution
------------------------------------------------------------------------------------

function var_num(n)
if n<0 then sign=var_text[4] .. " " n=-n else sign="" end
if n==0 and not var_sw then return("") else if n==0 then return(var_text[11]) end end
if n<20 then return(sign .. digit[n]) end
if var_mode==1 or var_mode==3 then
   if n<100 then return(sign .. tienvoud(n)) end
   if n<1000 then return(sign .. honderdvoud(n)) end
   if n<1000000 then return(sign .. duizendvoud(n)) else return(n) end
end
if var_mode==2 then
   if n<100 then return(sign .. tenfold(n)) end
   if n<1000 then return(sign .. hundredfold(n)) end
   if n<1000000 then return(sign .. thousandfold(n)) else return(n) end
end
if var_mode==4 then
   x="-"
   if n%10==1 then e="-et-" else e="-" end
   if n<100 then return(sign .. dix(n)) end
   if n<1000 then return(sign .. cent(n)) end
   if n<1000000 then return(sign .. mille(n)) else return(n) end
end
if var_mode==5 then
   x=" "
   if n<100 then return(sign .. desit(n)) end
   if n<1000 then return(sign .. sto(n)) end
   if n<1000000 then return(sign .. tysit(n)) else return(n) end
end
end


function tienvoud(t)  -- Dutch and German
if t%10 == 0 then return(tens[t/10]) else return(pre[t%10] .. tens[math.floor(t/10)]) end
end

function honderdvoud(h)
if h<200 then return(var_text[3] .. var_num(h%100)) else return(digit[math.floor(h/100)] .. var_text[3] .. var_num(h%100)) end
end

function duizendvoud(d)
if d%1000<100 then
   if d<2000 then return(var_text[4] .. var_num(d%1000)) else return(var_num(math.floor(d/1000)) .. var_text[4] .. var_num(d%1000)) end
 else
   if d<2000 then return(var_num(math.floor(d/100)) .. var_text[3] .. var_num(d%100)) else return(var_num(math.floor(d/1000)) .. var_text[4] .. var_num(d%1000)) end
end
end


function tenfold(t) -- English
if t%10==0 then return(tens[math.floor(t/10)]) else return(tens[math.floor(t/10)] ..digit[t%10]) end
end

function hundredfold(h)
if h<200 then return(var_text[3] ..var_num(h%100)) else return(digit[math.floor(h/100)] .. var_text[3] .. var_num(h%100)) end
end

function thousandfold(d)
if d%1000<100 then
   if d<2000 then return(var_text[4] .. var_num(d%1000)) else return(var_num(math.floor(d/1000)) .. var_text[4] .. var_num(d%1000)) end
 else
   if d<2000 then return(var_num(math.floor(d/100)) .. var_text[3] .. var_num(d%100)) else return(var_num(math.floor(d/1000)) .. var_text[4] .. var_num(d%1000)) end
end
end


function dix(t) -- French
if t%10==0 then return(tens[math.floor(t/10)]) else return(tens[math.floor(t/10)] .. e ..digit[t%10]) end
end

function cent(h)
if h<200 then return(var_text[3] .. x ..var_num(h%100)) else return(digit[math.floor(h/100)] .. x .. var_text[3] .."s"  .. x .. var_num(h%100)) end
end

function mille(d)
if d%1000<100 then
   if d<2000 then return(var_text[4] .. x .. var_num(d%1000)) else return(var_num(math.floor(d/1000)) .. x .. var_text[4] .. "s" .. x .. var_num(d%1000)) end
 else
   if d<2000 then return(var_num(math.floor(d/100)) .. x .. var_text[3] .. x .. var_num(d%100)) else return(var_num(math.floor(d/1000)) .. x .. var_text[4] .. "s" .. x .. var_num(d%1000)) end
end
end


function desit(t) -- Russian
if t%10==0 then return(tens[math.floor(t/10)]) else return(tens[math.floor(t/10)] .. x ..digit[t%10]) end
end

function sto(h)
if h<200 then return("сто " .. var_num(h%100)) end 
if h<300 then return("двести " .. var_num(h%100)) end
if h<400 then return("триста " .. var_num(h%100)) end
if h<500 then return("четыреста " .. var_num(h%100)) end
if h<2000 then return(digit[math.floor(h/100)] .. "сот " .. var_num(h%100)) end
end

function tysit(d)
tys="тысяч"
if math.floor((d/1000)%10)<5 then tys="тысячи" end
if math.floor((d/1000)%10)==1 then tys="тысяча" end

if d<2000 then return(tys .. x .. var_num(d%1000)) end
if d>1999 then return(var_num(math.floor(d/1000)) .. x .. tys .. x .. var_num(d%1000)) end
end

------------------------------------------------------------------------------------
--                      Time and date functions
------------------------------------------------------------------------------------

function var_s_time()

if var_mode==1 or var_mode==3 then -- Dutch & German
uur=var_num(({dh}-1)%12+1)
if {dm}==0 then return(uur .. var_text[5]) end
if {dm}==15 then return(var_text[7] .. var_text[6] .. uur) end
if {dm}<18 then return(var_num({dm}) .. var_text[6] .. uur) end
uur=var_num(({dh})%12+1)
if {dm}==30 then return(var_text[9] .. uur) end
if {dm}<30 then return(var_num(30-{dm}) .. var_text[8] .. var_text[9] .. uur) end
if {dm}<43 then return(var_num({dm}-30) .. var_text[6] .. var_text[9] .. uur) end
if {dm}==45 then return(var_text[7] .. var_text[8] .. uur) end
if {dm}>42 then return(var_num(60-{dm}) .. var_text[8] .. uur) end
end

if var_mode==2 then -- English
uur=var_num(({dh}-1)%12+1)
if {dm}==0 then return(var_text[10] .. uur .. var_text[5] .. "!") end
if {dm}==15 then return(var_text[7] .. var_text[6] .. uur) end
if {dm}<30 then return(var_num({dm}) .. var_text[6] .. uur) end
if {dm}==30 then return(var_text[9] .. uur) end
uur=var_num(({dh})%12+1)
if {dm}==45 then return(var_text[7] .. var_text[8] .. uur) end
if {dm}>30 then return(var_num(60-{dm}) .. var_text[8] .. uur) end
end

if var_mode==4 then -- French
uur=var_num(({dh}-1)%12+1)
if uur=="un" then hour="une heure " else hour = uur .. " heures " end
if {dm}==0 then return(var_text[10] .. hour .. "!") end
if {dm}==15 then return(hour .. " et quart") end
if {dm}==30 then return(hour .. " et demie") end
if {dm}<45 then return(hour .. var_num({dm})) end
uur=var_num(({dh})%12+1)
if uur=="un" then hour="une heure " else hour = uur .. " heures " end
if {dm}==45 then return(hour .. " moins le quart") end
if {dm}>45 then return(hour .. " moins " .. var_num(60-{dm})) end
end

if var_mode==5 then -- Russian
hr=({dh}-1)%12+1
uur=var_num(hr)
hour=uur .. " часов"
if hr==1 then hour="час" end
if hr>1 and hr<5 then hour=uur .. " часа" end
if {dm}==0 then return(hour .. " ровно!") end

if {dm}>0 then
hr={dh}%12+1
if {dm}==1 then minute="одна" end
if {dm}==2 then minute="две" end
if {dm}>2 then minute=var_num({dm}) end
if {dm}<30 then return(minute .. " " .. var_first[hr]) end
if {dm}==30 then return("половина " .. var_first[hr]) end
if {dm}>30 then return("без " .. var_second[60-{dm}] .. " " .. var_num(hr)) end
end
end






if var_mode==6 then -- Simple Russian
hr=({dh}-1)%12+1
uur=var_num(hr)
hour=uur .. " часов"
if hr==1 then hour="час" end
if hr>1 and hr<5 then hour=uur .. " часа" end
if {dm}==0 then return("ровно " .. hour .. "!") end
if {dm}>0 then return(uur .. " — " .. var_num({dm})) end
end
end


function var_s_sec()
return(var_num({ds}))
end


tweens.show=0

function on_second()
if not {abright} then
   if var_agenda or var_sw then
      tweens.show=0
      var_agenda=false
      var_sw=false
      var_count=0
   end
end
end

function var_tween(A,B,C,D)
wm_schedule { 
   {action='tween', tween=D, from=A, to=B, duration=C, easing=linear}
}
end