alias mp3system {
  if (%mp3f == $null) { .set %mp3f $$sdir="Select MP3 Folder" C: }
  %x = 0
  :Start
  inc %x
  window -lsnk @MP3  50 100 325 235
  .aline @MP3 $remove($findfile(%mp3f,*.mp3,%x),%mp3f,.mp3)
  while (%x < $findfile(%mp3f,*.mp3,0)) { goto start }
  .return
}
alias mp3len { return $replace($duration($calc($mp3($inmp3.fname).length / 1000)),$chr(32), ,mins,m,secs,s,hr,h,hs,h,min,m,sec,s) }
alias mp3song { return $remove(%mp3-song,%mp3f,.mp3,\) }
alias mp3size { return $round($calc($file($inmp3.fname).size / 1028 / 1000),2) $+ mb }
alias play {
  .splay %mp3f $+ \ $+ %selmp3 $+ .mp3
  /amsg 15media14:15 $+ $lower(%selmp3) $+ , $+ $mp3len $+ 14/15 $+ $mp3size
}
alias privplay {
  .splay %mp3f $+ \ $+ %selmp3 $+ .mp3
}

menu @MP3 {
  dclick {
    set %selmp3 $sline(@MP3,1) | play
  }
  &Play:/set %selmp3 $1- | /play
  &PlayPrivate:/set %selmp3 $1- | /privplay
  &Random:/randomplay
  &Pause:/splay pause
  &Resume:/splay resume
  &Stop:/splay stop
  &Cont
  .Cont &On://set %cont on
  .&Cont &Off://set %cont off
}
alias randomplay {
  set %mp3song $remove($findfile(%mp3f,*.mp3,$r(0,$findfile(%mp3f,*.mp3,0))),%mp3f,.mp3)
  set %mp3length $replace($m.dur($hget(mp3,full)),:,m) $+ s
  //splay %mp3f $+ \ $+ %mp3song $+ .mp3
}
;/amsg 15media14:15 $+ $lower(%mp3song) $+ , $+ $mp3len $+ 14/15 $+ $mp3size  }
on *:MP3END:{
  if (%cont == on) { .timermp3 1 5 randomplay }
}
alias newdir { .unset %mp3f }
alias mp3player { .mp3system }
menu status {
  -
  Mp3 Player
  .New Directory:{ /newdir | /mp3player }
  .Open Mp3:/mp3player
}
alias gone {
  /set %away $$?="Enter Away Message"
  /away ( $+ %away $+ ) %be
  /timer2 0 1500 /stillaway
  /set %atime $time(h:nn TT)
  .set %timegone 0
  .timer1 0 1 inc %timegone
  /amsg 15away5:14 %away $+ 0,5/14 $time(h:nn TT) $+ 0,
}
alias stillaway {
  set %1timegone $duration(%timegone)
  if (AM isin %1timegone) { set %1timegone $replace(%1timegone,AM,am) | goto days1 }
  if (PM isin %1timegone) { set %1timegone $replace(%1timegone,PM,pm) | goto days1 }
  :days1
  if (days isin %1timegone) { set %1timegone $replace(%1timegone,days,d) | goto hours1 }
  if (day isin %1timegone) { set %1timegone $replace(%1timegone,day,d) | goto hours1 }
  :hours1
  if (hrs isin %1timegone) { set %1timegone $replace(%1timegone,hrs,h) | goto minute1 }
  if (hr isin %1timegone) { set %1timegone $replace(%1timegone,hr,h) | goto minute1 }
  :minute1
  if (mins isin %1timegone) { set %1timegone $replace(%1timegone,mins,m) | goto seconds1 }
  if (min isin %1timegone) { set %1timegone $replace(%1timegone,min,m) | goto seconds1 }
  :seconds1
  if (secs isin %1timegone) { set %1timegone $replace(%1timegone,secs,s) | goto online1 }
  if (sec isin %1timegone) { set %1timegone $replace(%1timegone,sec,s) | goto online1 }
  :online1
  /amsg 15idle5:14 %away $+ 0,5/14 since: $+ %atime dur: $+ %1timegone 0,
}
alias back {
  /away
  set %1timegone $duration(%timegone)
  if (AM isin %1timegone) { set %1timegone $replace(%1timegone,AM,am) | goto days1 }
  if (PM isin %1timegone) { set %1timegone $replace(%1timegone,PM,pm) | goto days1 }
  :days1
  if (days isin %1timegone) { set %1timegone $replace(%1timegone,days,d) | goto hours1 }
  if (day isin %1timegone) { set %1timegone $replace(%1timegone,day,d) | goto hours1 }
  :hours1
  if (hrs isin %1timegone) { set %1timegone $replace(%1timegone,hrs,h) | goto minute1 }
  if (hr isin %1timegone) { set %1timegone $replace(%1timegone,hr,h) | goto minute1 }
  :minute1
  if (mins isin %1timegone) { set %1timegone $replace(%1timegone,mins,m) | goto seconds1 }
  if (min isin %1timegone) { set %1timegone $replace(%1timegone,min,m) | goto seconds1 }
  :seconds1
  if (secs isin %1timegone) { set %1timegone $replace(%1timegone,secs,s) | goto online1 }
  if (sec isin %1timegone) { set %1timegone $replace(%1timegone,sec,s) | goto online1 }
  :online1
  /amsg 15back5:14 %away $+ 0,5/14 since: $+ %atime time gone: $+ %1timegone 0,
  /unset %away
  /unset %1timegone
  /timer1 off
  /timer2 off
}