-----------------------------
---  ADJUSTABLE DEFAULTS  ---
-----------------------------

var_lan=1       -- (English)
var_sec=true    -- (Second hand y/n)
var_chimes=1    -- (Hourly chimes 0-7)
var_sound=true  -- (Horrible gate sounds y/n)
var_slow=true   -- (Gate anime slow/fast y/n)
var_stopw=1     -- (Stopwatch type 1-4)
var_speed=4     -- (Scroll speed agenda text 1-10)
var_dist=0.7    -- (0.7 m/step)
var_kcal=0.0656 -- (kcal/step)
zoom1=554/518   -- (574/518 to remove outer ring)
tweens.z=1      -- (1: zoom out, zoom1: zoom in)


-----------------------------
---     OTHER DEFAULTS    ---
-----------------------------

zoom2=760/600
tweens.m=zoom2  -- zoom menu ring
zoom3=1/4
tweens.s=1      -- zoom shrinked dial
tweens.x=0      -- x coordinates hands
tweens.f=100    -- fade shrinked dial

tweens.gateU=300
tweens.gateL=300

tweens.moon=90-({wmp}-1)*22.5
tweens.sec=100

countA=-1
countW=-1
countC=-1
countS=-1
if var_slow then var_v=2 else var_v=1 end

var_menu=false
var_sensors=false
var_chrono=false
var_agenda=false
var_weather=false
var_shrink=false

var_entry=0      -- agenda entry
var_wd=0         -- weather day 1-5
var_sensor=1     -- sensors page 1
var_langs=5      -- number of languages
var_stw=var_stopw

tweens.tap=0


-----------------------------
---     CENTRAL ENGINE    ---
-----------------------------

function on_second()

tweens.second={drs}
tweens.minute={drm}
tweens.hour={drh}

-- Hourly chimes

if {dm}==0 then
  c=var_chimes
  if {ds}<{dh} then
    if c==2 or c==3 or c==6 or c==7 then
      wm_sfx('dong100',1)
    end
    if c==1 or c==3 or c==5 or c==7 then
      wm_sfx('ting100',1)
    end
  end
end

-- Open and close gates, change content

if var_shrink and not var_agenda and not var_chrono and not var_weather and not var_sensors and countA==-1 and countW==-1 and countC==-1 and countS==-1 then grow() end

-- Agenda
if countA>-1 then
  if countA==0 then
    var_tween('gateU',300,120,var_v*0.65,linear)
    if var_sound then wm_sfx('mgs867') end
    if not var_shrink then shrink() end
  end
  if countA==var_v then
    var_chrono = false
    var_agenda = not var_agenda
    if var_sound then wm_sfx('mgs846') end
    var_tween('gateU',120,300,var_v*.65,linear)
    countA=-2
  end
  countA=countA+1
end

-- Weather
if countW>-1 then
  if countW==0 then
    var_tween('gateL',300,120,var_v*.65,linear)
    if var_sound then wm_sfx('mgs867') end
    if not var_shrink then shrink() end
  end
  if countW==var_v then
    var_weather = not var_weather
    var_sensors=false
    var_wd=0
    var_tween('gateL',120,300,var_v*.65,linear)
    if var_sound then wm_sfx('mgs846') end
    countW=-2
  end
  countW=countW+1
end

-- Sensors
if countS>-1 then
  if countS==0 then
    var_tween('gateL',300,120,var_v*.65,linear)
    if var_sound then wm_sfx('mgs867') end
    if not var_shrink then shrink() end
  end
  if countS==var_v then
    var_sensors = not var_sensors
    if not var_sensors then var_sensor=1 end
    var_weather = false
    var_tween('gateL',120,300,var_v*.65,linear)
    if var_sound then wm_sfx('mgs846') end
    countS=-2
  end
  countS=countS+1
end

-- Stopwatch
if countC>-1 then
  if countC==0 then
    var_tween('gateU',300,120,var_v*.65,linear)
    if var_sound then wm_sfx('mgs867') end
    if not var_shrink then shrink() end
  end
  if countC==var_v then
    var_chrono = not var_chrono
    var_agenda = false
    var_tween('gateU',120,300,var_v*.65,linear)
    if var_sound then wm_sfx('mgs846') end
    countC=-2
  end
  countC=countC+1
end

-- Calculate colour hands
var_tint({drm})
  var_colm1=string.format('%.2x%2x%2x',   218,var_cm1,var_cm2)
  var_colm2=string.format('%.2x%2x%2x',218,var_cm3,var_cm4)
var_tint({drh})
  var_colh1=string.format('%.2x%2x%2x',   218,var_cm1,var_cm2)
  var_colh2=string.format('%.2x%2x%2x',218,var_cm3,var_cm4)
end


function var_tint(a)
-- colour one side = &da,var_cm1,var_cm2
-- dadaba to daa628 / 218,218,186 to 218,166,40
if a>59 and a<241 then
   var_cm1=math.floor((235-(a/180*52)))
   var_cm2=math.floor((235-(a/180*146)))
 else
-- 218,166,40 to 218,200,140
   if a>240 and a<360 then
      var_cm1=math.floor((98+a/120*34))
      var_cm2=math.floor((a/120*100)-160)
     else
-- 218,200,140 to 218,218,186
      var_cm1=math.floor((200+a/60*18))
      var_cm2=math.floor((140+a/60*46))
   end
end
-- colour other side is the opposite
var_cm3=384-var_cm1
var_cm4=226-var_cm2
end


function shrink()
if var_shrink==false then
  var_tween('s',1,zoom3,2,outQuad)
  var_tween('x',0,-104,2,outQuad)
  var_tween('f',100,0,2,outQuad)
  var_tween('second',{drs},{drs}+372,2,outQuad)
  var_tween('minute',{drm},{drm}+360,2,outQuad)
  var_tween('hour',{drh},{drh}-360,2,outQuad)
  var_shrink=true  
end
end

function grow()
  var_tween('s',zoom3,1,2,outQuad)
  var_tween('x',-104,0,2,outQuad)
  var_tween('f',0,100,2,outQuad)
  var_tween('second',{drs},{drs}+372,2,outQuad)
  var_tween('minute',{drm},{drm}+360,2,outQuad)
  var_tween('hour',{drh},{drh}-360,2,outQuad)
  var_shrink=false
end


function on_hour()
-- Moon wheel
tweens.moon=90-({wmp}-1)*22.5
-- Vibrated chimes
if c>3 and c<8 then
  wm_vibrate(490,{dh11})
end
end


-----------------------------
---        LANGUAGES      ---
-----------------------------

function var_language()

if var_lan==1 then
var_word={'English', 'No calendar entry', 'Agenda', 'Weather', 'Text speed +', 'Text speed -', 'Today', 'Tomorrow', 'FROM', 'TO', 'Sec. hand +', 'Sec. hand -', 'HEART', 'STEPS', 'WATCH', 'PHONE', 'ALTITUDE', 'No more entries', 'Stopwatch ', 'KCAL', 'DISTANCE'}

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

if var_lan==2 then
var_word={'Nederlands', 'Voorlopig geen afspraken', 'Agenda', 'Weer', 'Scrol tekst +', 'Scrol tekst -', 'Vandaag', 'Morgen', 'VAN', 'TOT', 'Sec. wijzer +', 'Sec. wijzer -', 'HART', 'STAPPEN', 'HORLOGE', 'TEL.', 'HOOGTE', 'Verder geen afspraken', 'Stopwatch ', 'KCAL', 'AFSTAND'}

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

if var_lan==3 then
var_word={'Deutsch', 'Keine Termine', 'Kalender', 'Wetter', 'Textscrol +', 'Textscrol -', 'Heute', 'Morgen', 'VON', 'BIS', 'Sek. Zeiger +', 'Sek. Zeiger -', 'HERTZ', 'SCHRITTE', 'UHR', 'TELEFON', 'HÖHE', 'Keine weiteren Termine', 'Stoppuhr ', 'KKAL', 'ABSTAND'}

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

if var_lan==4 then
var_word={'Français', 'Aucune d’entrée d’agenda', 'Calendrier', 'Météo', 'Défilement +', 'Défilement -', 'Aujourd’hui', 'Demain', 'DE', 'À', 'Trotteuse +', 'Trotteuse -', 'CŒUR', 'DES PAS', 'MONTRE', 'TELEPH.', 'ALTITUDE', 'Plus d’entrées d’agenda', 'Chronomètre ', 'KCAL', 'DISTANCE'}

var_day={'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi', 'Dimanche'}
end

if var_lan==5 then
var_word={'Русский', 'Нет записей календаря', 'Календарь', 'Погода', 'Т. прокрутка +', 'Т. прокрутка -', 'Сегодня', 'Завтра', 'ОТ', 'ДО', 'Сек. стрелка +', 'Сек. стрелка -', 'Сердце', 'ШАГИ', 'ЧАСЫ', 'ТЕЛЕФОН', 'ВЫСОТА', 'Больше нет записей', 'Секундомер ', 'KКАЛ', 'РАССТОЯНИЕ'}

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

var_language()


-----------------------------
---    OTHER FUNCTIONS    ---
-----------------------------

function on_millisecond()
-- Scroll agenda entries
if var_agenda then
  tweens.agenda=tweens.agenda-var_speed
  if tweens.agenda<-(13*var_len) then
    tweens.agenda = 400*tweens.z
  end
end
end


function on_display_bright()
var_tween('moon',90-({wmp}-1)*22.5,(90-({wmp}-1)*22.5)-360,2,outBack)
tweens.second={drs}
tweens.minute={drm}
tweens.hour={drh}
end


function on_display_not_bright()
var_agenda=false
var_weather=false
var_sensors=false
var_sensor=1
var_menu=false

tweens.gateU=300
tweens.gateL=300
tweens.m=zoom2

countA=-1
countW=-1
countC=-1
countS=-1

var_wd=0
tweens.second={drs}
tweens.minute={drm}
tweens.hour={drh}
end


function var_tap(Du)
wm_schedule{action = 'tween', tween = 'tap', from = 100, to = 0, duration = Du, easing = linear} 
end


function var_tween(Tw,Fr,To,Du,Ea)
wm_schedule { 
   {action='tween', tween=Tw, from=Fr, to=To, duration=Du, easing=Ea}
}
end