All pastes #1084574 Raw Edit

Something

public text v1 · immutable
#1084574 ·published 2008-07-27 20:58 UTC
rendered paste body
;------------------------
;-- load and first run --
;------------------------
on *:START:{
  hadd -m badchans chans #idle #mSL #mIRC #support #irchelp #bash #iKick #php #programming #remy #scriptIDE #sonybot #trust
  if (!$hget(query)) hmake query 100
  if ($exists(query.txt)) {
    hload query query.txt
  }
  .timerdailyUpdate -o 00:00 1 0 dailyUpdate
  if ($hget(query,date) != $asctime(mmm d)) {
    hinc query days
    hsave query query.txt
  }
  if (!$readini(owwTheme.ini,theme,loaded)) {
    if ($true) {
      url -an http://www.microsoft.com/downloads/info.aspx?na=90&p=&SrcDisplayLang=en&SrcCategoryId=&SrcFamilyId=22e69ae4-7e40-4807-8a86-b3d36fab68d3&u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2fc%2f4%2f6%2fc46a63b8-d43e-4eff-8fba-aade660b6908%2fsetup.exe
      noop $input(Please download and install setup.exe to get the font required to use this theme. After it is installed $+ $chr(44) type /themeUpdate,o,Missing font!)
      exit -n
    }
    else {
      themeUpdate
    }
  }
}
on *:CLOSE:{
  var %i 1,%t $hget(query,0).item
  while (%i <= %t) {
    if (!$istok(today total days date,$hget(query,%i).item,32)) hdel query $hget(query,%i).item
    inc %i
  }
}
alias themeUpdate {
  timestamp -ef [hh:nn:ss]
  timestamp -eg [ddd mmm d|:|hh:nn:ss tt]
  color background 0
  color normal 1
  color action 6
  color highlight 4
  color listbox text 1
  color listbox 0
  color editbox text 1
  color editbox 0
  color own text 1
  color whois text 1
  color info text 2
  color quit text 2
  color treebar 0
  color treebar text 1
  font -dsgz -10 Consolas
  cnick * 4 @
  cnick * 7 %
  cnick * 12 +
  cnick * 1
  writeini owwTheme.ini theme loaded 1
}
;--------------------------
;----- make it work -------
;--------------------------
on &*:INPUT:#:{
  if (/* !iswm $1) || ($ctrlenter) {
    msg $active $hs($1-).msg
    halt
  }
}
on &*:INPUT:?:{
  if (/* !iswm $1) || ($ctrlenter) {
    msg $active $hs($$1-)
    halt
  }
}
alias msg {
  !.msg $$1 $hs($$2-).msg
  if ($show) {
    if ($1 ischan || $query($1)) {
      if ($1 ischan) {
        echo -i12t $1 < $+ $ncol($1,$me) $+ $cmod($1,$me) $+ $+($left($me,1),,$replace($mid($me,2,-1),_,$chr(32)),$ncol($1,$me),$right($me,1)) $+ > $hs($2-)
      }
      else {
        echo -i12t $1 $+(<,$left($me,1),,$replace($mid($me,2,-1),_,$chr(32)),$ncol($1,$me),$right($me,1)) $+ > $hs($2-)
      }
    }
    else {
      echo -i12t --> < $+ $1 $+ > $hs($2-)
    }
  }
}
alias describe {
  !.describe $$1 $$2-
  if ($show) {
    if ($1 ischan || $query($1)) {
      if ($1 ischan) {
        echo 6 -i12t $1 * $ncol($1,$me) $+ $cmod($1,$me) $+ $+($left($me,1),,$replace($mid($me,2,-1),_,$chr(32)),$ncol($1,$me),$right($me,1)) $+  $hs($2-)
      }
      else {
        echo 6 -i12t $1 * $+($left($me,1),,$replace($me,_,$chr(32)),$ncol($1,$me),$right($me,1)) $+  $hs($2-)
      }
    }
    else {
      echo 6 -i12t $1 —> * $1 $+  $hs($2-)
    }
  }
}
alias amsg {
  !.msg $left($regsubex($str(~,$chan(0)),/~/g,$iif(!$istok($hget(badchans,chans),$chan(\n),32),$chan(\n) $+ $chr(44))),-1) $hs($1-)
  if ($show) {
    var %i $chan(0)
    while (%i) {
      if (!$istok($hget(badchans,chans),$chan(%i),32)) echo -i12t $chan(%i) < $+ $ncol($chan(%i),$me) $+ $cmod($chan(%i),$me) $+ $+($left($me,1),,$replace($mid($me,2,-1),_,$chr(32)),$ncol($chan(%i),$me),$right($me,1)) $+ > $hs($1-)
      dec %i
    }
  }
}
alias ame {
  !.describe $left($regsubex($str(~,$chan(0)),/~/g,$iif(!$istok($hget(badchans,chans),$chan(\n),32),$chan(\n) $+ $chr(44))),-1) $hs($1-)
  if ($show) {
    var %i $chan(0)
    while (%i) {
      if (!$istok($hget(badchans,chans),$chan(%i),32)) echo -i12tc action $chan(%i) * $ncol($chan(%i),$me) $+ $cmod($chan(%i),$me) $+ $+($left($me,1),,$replace($mid($me,2,-1),_,$chr(32)),$ncol($chan(%i),$me),$right($me,1)) $+  $hs($1-)
      dec %i
    }
  }
}
on &^*:TEXT:*:#:{
  haltdef
  if ($regex($1-,/[a-zA-Z 0-9]*\b([10]{8})+\b[a-zA-Z 0-9]*/)) && !($regml(0) == 1 && $regml(1) == 10000000) tokenize 32 BINARY ** $b2t($1-)
  if ($chilight($1-)) {
    echo -lbfmti12c highlight $chan < $+ $ncol($chan,$nick) $+ $cmod($chan,$nick) $+ $nick $+ > $hs($1-)
    hilight $nick $chan normal $1-
    if ($hget(away,reason)) && (!$hget(away,$address($nick,3))) && ($nick != IdleBot) {
      hadd away $address($nick,3) told
      .notice $nick I am away ( $hget(away,reason) ) I left $duration($calc($ctime - $hget(away,ctime))) ago
    }
  }
  else {
    echo -lbfmti12c normal $chan < $+ $ncol($chan,$nick) $+ $cmod($chan,$nick) $+ $nick $+ > $hs($1-)
  }
}
on &^*:TEXT:*:?:{
  haltdef
  if (!$hget(query,$nick)) { queryStart $nick | haltdef }
  if ($chilight($1-)) {
    echo -lbfmti12c highlight $nick < $+ $nick $+ > $hs($1-)
    hilight $nick $nick normal $1-
    if ($hget(away,reason)) && (!$hget(away,$address($nick,3))) {
      hadd away $address($nick,3) told
      .notice $nick I am away ( $hget(away,reason) ) I left $duration($calc($ctime - $hget(away,ctime))) ago
    }
  }
  else {
    echo -lbfmti12c normal $nick < $+ $nick $+ > $hs($1-)
  }
}
on &^*:ACTION:*:#:{
  haltdef
  if ($chilight($1-)) {
    echo -lbfmti12c highlight $chan * $ncol($chan,$nick) $+ $cmod($chan,$nick) $+ $nick $+  $hs($1-)
    hilight $nick $chan action $1-
    if ($hget(away,reason)) && (!$hget(away,$address($nick,3))) {
      hadd away $address($nick,3) told
      .notice $nick I am away ( $hget(away,reason) ) I left $duration($calc($ctime - $hget(away,ctime))) ago
    }
  }
  else {
    echo -lbfmti12c action $chan * $ncol($chan,$nick) $+ $cmod($chan,$nick) $+ $nick $+  $hs($1-)
  }
}
on &^*:ACTION:*:?:{
  haltdef
  if ($chilight($1-)) {
    echo -lbfmti12c highlight $nick * $nick $hs($1-)
    hilight $nick $null action $1-
    if ($hget(away,reason)) && (!$hget(away,$address($nick,3))) {
      hadd away $address($nick,3) told
      .notice $nick I am away ( $hget(away,reason) ) I left $duration($calc($ctime - $hget(away,ctime))) ago
    }
  }
  else {
    echo -lbfmti12c action $nick * $nick $hs($1-)
  }
}
on &^*:OPEN:?:*:{
  noop $tip(Query $nick,Query with $nick,$nick opened a query with you $twrap($1-,3),8,,,,)
}
on &^*:CLOSE:?:{
  if ($hget(query,$nick)) hdel query $nick
}
on &^*:JOIN:#:{
  if ($nick == Fo_Reel) && ($chan == #rseos) { timer 1 2 mode #rseos -o+v Fo_Reel Fo_Reel }
  if (!$address($nick,1)) updatenl
  echo -bftc join $chan * JOIN: $nick $[]($right($address($nick,1),-3)).r 14< $+ $nick($chan,0) users>
  haltdef
}
on &^*:PART:#:{
  if (!$address($nick,1)) updatenl
  echo -bftc part $chan * PART: $nick $[]($right($address($nick,1),-3)).r $iif($1-,$[]($1-)) 14< $+ $calc($nick($chan,0) -1) users>
  haltdef
}
on &^*:QUIT:{
  if (!$address($nick,1)) updatenl
  var %i 1,%t $comchan($nick,0), %l * QUIT: $nick $[]($right($address($nick,1),-3)).r $iif($1-,$[]($1-))   
  while (%i <= %t) {
    echo -bftc quit $comchan($nick,%i) %l 14< $+ $calc($nick($comchan($nick,%i),0) -1) users>
    inc %i
  }
  haltdef
}
on &^*:KICK:#:{
  if (!$address($nick,1)) updatenl
  echo -bftc kick $chan * KICK: $nick —> $knick $[]($right($address($knick,1),-3)).r $iif($1-,$[]($1-)) 14< $+ $calc($nick($chan,0) -1) users>
  haltdef
}
on &^*:RAWMODE:#:{
  echo -bftc mode $chan * MODE: $+($ncol($chan,$nick),$cmod($chan,$nick),$nick) —> $1-
  haltdef
}
on &^*:SERVERMODE:#:{
  echo -bftc mode $chan * MODE: $+($ncol($chan,$nick),$cmod($chan,$nick),$nick) —> $1-
  haltdef
}
on &^*:NICK:{
  var %i 1,%t $comchan($newnick,0)
  while (%i <= %t) {
    var %c $comchan($newnick,%i),%p $+($ncol($chan,$nick),$cmod($chan,$nick),)
    echo -bftc nick %c * NICK: %p $+ $nick —> %p $+ $newnick
    inc %i
  }
  halt
}
raw *:*:{
  if ($numeric == 332) && ($3- != '') {
    hadd -mz topic $2 10
    echo -bfti12c topic $2 *TOPIC: $3-
    haltdef
  }
  elseif ($numeric == 333) && ($hget(topic,$2)) {
    echo -bfti12c topic $2 SET BY: $gettok($3,1,33) $iif(*@* iswm $3,$[]($right($mask($3,1),-3)).r) $[]($duration($calc($ctime - $4)))
    haltdef
  }
  elseif ($istok(353 366 324 329 302,$numeric,32)) haltdef
  elseif ($istok(401 402,$numeric,32)) {
    haltdef
    echo -sbfti12c whois $2 $+ : $3-
  }
  elseif ($istok(348 349 367 368,$numeric,32)) {
    haltdef
  }
  ;whois/whowas numerics
  elseif ($istok(301 310 311 378 319 312 307 335 317 318 313 671 320 536 314 369,$numeric,32)) {
    haltdef
    if ($numeric == 318) {
      if ($hget($2,active)) { 
        if ($hget($2,1)) {
          var %i 1
          while ($hget($2,%i)) { inc %i }
          dec %i
          hdel $2 %i
          if (%i == 1) hfree $2
          halt
        }
        else {
          if ($hget(whois. $+ $2)) {
            echo -sbfti12c whois   Flags: $hget(Whois. $+ $2,flags)
            hfree whois. $+ $2
          }
          echo -sbfti12c whois $chr(125)
          hfree $2
        }
      }
    }
    elseif ($hget($2,1)) {
      if ($numeric == 369) hfree $2
      halt
    }
    elseif ($numeric == 311) {
      hadd -m $2 active 1
      echo -sbfti12c whois $2 whois $chr(123)
      echo -sbfti12c whois   Address: $+($3,@,$4)
      echo -sbfti12c whois   Real Name: $6
    }
    elseif ($numeric == 319) {
      echo -sbftc whois   Channels $chr(123)
      var %i 3, %t $0
      while (%i <= %t) {
        if ($left($($+($,%i),2),1) == ~) var %ownerchans %ownerchans $right($($+($,%i),2),-1)
        elseif ($left($($+($,%i),2),1) == &) var %protectChans %protectChans $right($($+($,%i),2),-1)
        elseif ($left($($+($,%i),2),1) == @) var %opchans %opchans $right($($+($,%i),2),-1)
        elseif ($left($($+($,%i),2),1) == %) var %halfchans %halfchans $right($($+($,%i),2),-1)
        elseif ($left($($+($,%i),2),1) == +) var %voicechans %voicechans $right($($+($,%i),2),-1)
        else var %regchans %regchans $($+($,%i),2)
        inc %i
      }
      var %i 1,%t $comchan($2,0)
      while (%i <= %t) {
        %ownerChans = $replace(%ownerChans,$comchan($2,%i),$+($chr(31),$comchan($2,%i),$chr(31)))
        %protectChans = $replace(%protectChans,$comchan($2,%i),$+($chr(31),$comchan($2,%i),$chr(31)))
        %opchans = $replace(%opchans,$comchan($2,%i),$+($chr(31),$comchan($2,%i),$chr(31)))
        %halfchans = $replace(%halfchans,$comchan($2,%i),$+($chr(31),$comchan($2,%i),$chr(31)))
        %voicechans = $replace(%voicechans,$comchan($2,%i),$+($chr(31),$comchan($2,%i),$chr(31)))
        %regchans = $replace(%regchans,$comchan($2,%i),$+($chr(31),$comchan($2,%i),$chr(31)))
        inc %i
      }
      var %font $window(Status Window).font,%size $window(Status Window).fontsize, $&
        %width $calc($window($active).w * .3)
      if (%ownerChans) {
        var %i 1,%t $wrap(%opchans,%font,%size,%width,1,0)
        echo -sbftc whois     4Owner:            $wrap(%ownerChans,%font,%size,%width,1,1)
        inc %i
        while (%i <= %t) {
          echo -sbftc whois $str( ,17) ——> $wrap(%ownerChans,%font,%size,%width,1,%i)
          inc %i
        }
      }
      if (%protectChans) {
        var %i 1,%t $wrap(%opchans,%font,%size,%width,1,0)
        echo -sbftc whois     4Protect:          $wrap(%protectChans,%font,%size,%width,1,1)
        inc %i
        while (%i <= %t) {
          echo -sbftc whois $str( ,17) ——> $wrap(%protectChans,%font,%size,%width,1,%i)
          inc %i
        }
      }
      if (%opchans) {
        var %i 1,%t $wrap(%opchans,%font,%size,%width,1,0)
        echo -sbftc whois     4Opped Channels:   $wrap(%opchans,%font,%size,%width,1,1)
        inc %i
        while (%i <= %t) {
          echo -sbftc whois $str( ,17) ——> $wrap(%opchans,%font,%size,%width,1,%i)
          inc %i
        }
      }
      if (%halfchans) {
        var %i 1,%t $wrap(%halfchans,%font,%size,%width,1,0)
        echo -sbftc whois     7Halfed Channels:  $wrap(%halfchans,%font,%size,%width,1,1)
        inc %i
        while (%i <= %t) {
          echo -sbftc whois $str( ,17) ——> $wrap(%halfchans,%font,%size,%width,1,%i)
          inc %i
        }
      }
      if (%voicechans) {
        var %i 1,%t $wrap(%voicechans,%font,%size,%width,1,0)
        echo -sbftc whois     12Voiced Channels:  $wrap(%voicechans,%font,%size,%width,1,1)
        inc %i
        while (%i <= %t) {
          echo -sbftc whois $str( ,17) ——> $wrap(%voicechans,%font,%size,%width,1,%i)
          inc %i
        }
      }
      if (%regchans) {
        var %i 1,%t $wrap(%regchans,%font,%size,%width,1,0)
        echo -sbftc whois     Regular Channels: $wrap(%regchans,%font,%size,%width,1,1)
        inc %i
        while (%i <= %t) {
          echo -sbftc whois $str( ,17) ——> $wrap(%regchans,%font,%size,%width,1,%i)
          inc %i
        }
      }
      var %%
      if (%ownerChans) { %% = Owner: $numtok(%ownerChans,32) }
      if (%protectChans) { %% = %% Protected: $numtok(%protectChans,32) }
      if (%opchans) { %% = %% Opped: $numtok(%opchans,32) }
      if (%halfChans) { %% = %% Halfed: $numtok($v1,32) }
      if ($voicechans) { %% = %% Voiced: $numtok($v1,32) }
      if (%regchans) { %% = %% Reg: $numtok($v1,32) }
      echo -sbftc whois     Total Channels:   $calc($0 -2) $iif($calc($0 -2),14// $+ %%) $iif($comchan($2,0),14//Common channels: $comchan($2,0))
      echo -sbftc whois   $chr(125)
    }
    elseif ($numeric == 378) {
      echo -sbfti12c whois   Connecting from: $6 14// $+ $7
    }
    elseif ($numeric == 312) {
      echo -sbfti12c whois   Server: $3 14// $+ $4-
    }
    elseif ($numeric == 301) {
      whoisFlag $2 Away $[]($3-).r
    }
    elseif ($numeric == 307) {
      whoisFlag $2 Identified
    }
    elseif ($numeric == 335) {
      whoisFlag $2 Bot
    }
    elseif ($numeric == 313) {
      whoisFlag $2 $3-
    }
    elseif ($numeric == 671) {
      whoisFlag $2 Secure Connection
    }
    elseif ($numeric == 320) {
      whoisFlag $2 4ENRAGED
    }
    elseif ($numeric == 536) {
      whoisFlag $2 Filtering messages
    }
    elseif ($numeric == 310) {
      whoisFlag $2 Help op
    }
    elseif ($numeric == 317) {
      echo -sbfti12c whois   Signed on $asctime($4,ddd mmm d h:nn:ss tt) 14//Signed on $duration($calc($ctime - $4)) ago //Idle: $duration($3)
    }
    elseif ($numeric == 314) {
      echo -sbfti12c whois $2 whowas $chr(123)
      echo -sbfti12c whois   Address: $+($3,@,$4)
      echo -sbfti12c whois   Ident: $6-
    }
    elseif ($numeric == 369) {
      echo -sbfti12c whois $chr(125)
    }
  }
  ;end whois/whowas numerics
}
;---------------------------
;------- aliases -----------
;---------------------------
alias whoisFlag { 
  hadd -m Whois. $+ $1 flags $iif($hget(Whois. $+ $1,flags),$v1 $+ $chr(44)) $2-
}
alias nCol { return  $+ $base($nick($1,$2).color,10,10,2) }
alias cMod {
  if ($nick($1,$2).pnick != $2) { return $left($v1,1) }
  else { return  }
}
alias hs {
  if ($isid) {
    if (!$prop) tokenize 32 $regsubex($1-,/(\x03(?:01|1(?![0-5]))(?:(?!\x2C(?!0?1)))(?:\x2C\d{0,2})?)/g,\1)
    if (*c* iswmcs $chan($chan).mode || *c* iswmcs $chan($active).mode) && ($prop == msg) return $1-
    return $regsubex($1-,/(?<=^| |\x28)((?:(?:(?:https?|ftp):\/\/)(?:(?:[^ ()]{2,}\.[^ ()]*)|(?:[^ ()]?\.[^ ()]+)))|(?:(?:www\.)(?:(?:\.[^ ()]{3,})|(?:\w\.[^ ()]{2,})|(?:[^ ()]{2,}\.[^ ()]+))))(?=$| |\x29)/ig,12\1)
  }
}
alias [] return $+($chr($iif($prop == r,40,91)),$iif($prop != r,14),$1-,$iif($prop != r,),$chr($iif($prop == r,41,93)))
alias hilight {
  noop $tip(Hilighted : $2,Hilighted in $2 $+ !,$1 hilighted you in $2 $twrap($4-,3),8,,,,)
  window -g2 $2
  ;beep
  if ($2 != $active) || ($idle > 600) || ($hget(away,ctime)) echo -mti12c $3 $hlwin $ncol($2,$$1) $+ $cmod($2,$$1) $+ $$1 $+  $+ $iif($3 == normal,;,*) $+ $2 $+ ; $hs($4-)
}
alias chilight {
  if ($regex($1-,/\b(?:steven|buzz/Si)) { return 1 }
}
alias hlwin {
  if (!$window(@Hilights. $+ $cid)) { window -evk0n @Hilights. $+ $cid }
  return @Hilights. $+ $cid
}
alias chanUsers { return 14< $+ $1 users> }
alias say { msg $active $1- }
alias me { describe $active $1- }
alias tcase { return $regsubex($1-,/(?:^|\b|_)+([a-z])/g,$chr(32) $+ $upper(\1)) }
alias dailyUpdate {
  echo -bftc info2 $active The date has been changed to $asctime(dddd $+ $chr(44) mmm doo)
  hadd query today 0
  hadd query date $asctime(mmm d)
  hinc query days
  hsave query query.txt
  .timerlagForDailyUpdate -o 1 120 .timerdailyUpdate -o 00:00 1 0 dailyUpdate
}
alias queryStart {
  hadd query $1 1
  hinc query total
  hinc query today
  hsave query query.txt
  var %comchans, %i 1,%t $comchan($1,0)
  while (%i <= %t) {
    var %comchans %comchans $+ $iif(%comchans,$chr(44)) $cmod($chan,$nick) $+ $comchan($1,%i)
    inc %i
  }
  echo -bftc info2 $1 // ---
  echo -bftc info2 $1 // Query with ' $+ $1 $+ '/' $+ $right($address($1,0),-2) $+ ' opened on ' $+ $asctime(dddd $+ $chr(44) mmmm moo $+ $chr(44) h:nn:ss tt) $+ '
  echo -bftc info2 $1 // Total queries: ' $+ $hget(query,total) $+ '/'~ $+ $round($calc($hget(query,total) / $hget(query,days)),2) per day'
  echo -bftc info2 $1 // Queries today: ' $+ $hget(query,today) $+ '
  echo -bftc info2 $1 // Common channel $+ $iif($numtok(%comchans,44) > 1,s) $+ : ' $+ %comchans $+ '
  echo -bftc info2 $1 // ---
  echo -bftc info2 $1 
  if ($2) msg $1-
}
alias query {
  !.query $$iif($1 == -n,$$1-2,$$1)
  queryStart $iif($1 == -n,$2-,$1-)
}
alias q query $$1-
alias twrap {
  var %r,%size $calc(281 - $width($str( $chr(32),$2),$font,$size,0,1)),%i 1,%t $wrap($1,$font,$size,%size,1,0)
  while (%i <= %t) {
    var %r = %r $crlf $str( $chr(32),$2) $wrap($1,$font,$size,%size,1,%i)
    inc %i
  }
  return %r
}
alias font return Tahoma
alias size return 12
alias font return $window(Status Window).font
alias size return $window(Status Window).fontsize
alias closewins scon -a closeallwins
alias closeallwins {
  var %i $window(0)
  while (%i) {
    if (!$istok(text,$window(%i),32)) window -c $window(%i)
    dec %i
  }
}
alias b2t $iif($isid,return,echo -a) $regsubex($1-,/([10]{1,8})/g,$chr($base(\1,2,10,0)))
alias t2b $iif($isid,return,echo -a) $regsubex($1-,/(.)/g,$base($asc(\1),10,2,8))
alias t2h $iif($isid,return,echo -a) $regsubex($1-,/([^A-Za-z0-9])/g,% $+ $base($asc(\1),10,16,0))

;--------------------------
;--------- away -----------
;--------------------------
alias a away $1-
alias aw away $1-
alias away {
  !away $1-
  hadd -m away reason $1-
  if (!$hget(away,ctime)) {
    hadd away ctime $ctime
    hadd away oldNick $me
    nick $me $+ [A]
  }
  ame is now away. ( $1- ) Left at: $timestamp
  $iif($dialog(awaydialog) == $null,dialog -md Awaydialog Awaydialog)
}
alias bk b $1-
alias b {
  if ($hget(away)) {
    dialog -x awaydialog
    !away
    nick $hget(away,oldNick)
    ame is back ( $hget(away,reason) ) Gone for ( $duration($calc($ctime - $hget(away,ctime))) )
    hfree away
  }
}
dialog Awaydialog {
  title "Away"
  size -1 -1 250 218
  option pixels
  icon C:\Program Files\mIRC\favicon.ico, 0
  text "You are currently away with the reason:", 1, 7 16 235 15, right
  text "Not away...", 2, 7 33 235 27
  text "Time spent away:", 18, 7 62 87 16
  text "Updating timer goes here", 19, 97 62 145 16
  edit "", 4, 7 119 236 20, autohs
  button "Set &Back", 5, 176 189 64 25
  button "Change &Away Reason", 6, 128 142 115 25, default ok
  button "&Clear Reason", 8, 6 142 80 25
  check "Enable Editing", 7, 7 101 95 15
  check "Go back", 17, 7 191 65 20
  box "Away Status:", 9, 2 2 246 81
  box "Change Reason", 10, 2 86 245 85
  box "Back", 3, 2 174 244 42
}
on *:dialog:Awaydialog:*:*:{
  if ($devent == init) {
    .timer 1 1 did -ra $dname 2 $!hget(away,reason)
    did -b $dname 6
    did -b $dname 8
    did -m $dname 4
    did -b $dname 5
    $iif($away,did -a $dname 19 $duration($calc($ctime - $hget(away,ctime))))
    .timerawaytimer -o 0 1 away.timer
  }
  if ($devent == sclick) {
    ;-----------Buttons------------
    ;------------------------------
    ;------------------------------
    if ($did == 5) {
      if ($hget(away)) {
        b
      }
      dialog -x awaydialog
    }
    if ($did == 6) {
      a $did(awaydialog,4)
      did -n $dname 2
      did -m $dname 2
      did -r $dname 4
      did -b $dname 6
      did -b $dname 8
      did -u $dname 7
      did -m $dname 4
    }
    if ($did == 8) {
      did -r $dname 4
      did -b $dname 6
      did -b $dname 8
    }
    ;----------Checkboxes----------
    ;------------------------------
    ;------------------------------
    if ($did($dname,7).state == 1) {
      did -n $dname 4
      if ($did($dname,4) != $null) {
        did -e $dname 6
        did -e $dname 8
      }
    }
    if ($did($dname,7).state == 0) {
      did -m $dname 4
      did -b $dname 6
      did -b $dname 8
    }
    if ($did == 17) {
      if ($did($dname,17).state == 0) {
        did -b $dname 5
        .timeruncheckback off
        .timermakebackdisabled off
      }
      if ($did($dname,17).state == 1) {
        .timeruncheckback 1 15 did -u $dname 17
        .timermakebackdisabled 1 15 did -b $dname 5
        did -u $dname 7
        did -e $dname 5
        did -b $dname 6
        did -b $dname 8
        did -m $dname 4
      }
    }
  }
  if ($devent == edit) {
    if ($did == 4) {
      if ($did($dname,4) == $null) {
        did -b $dname 6
        did -b $dname 8
      }
      else {
        did -e $dname 6
        did -e $dname 8
      }
    }
  }
  if ($devent == close) {
    if ($hget(away)) {
      b
    }
  }
}
alias away.timer {
  if ($away) {
    did -ra awaydialog 19 $duration($calc($ctime - $hget(away,ctime)))
  }
}
;END