Hex Artifact Content Вы: nobody
Вход

Artifact e2d1ebb51f501655312bd898f1c2854bc4d085d4:


0000: ef bb bf 24 65 6e 67 69 6e 65 20 4a 53 63 72 69  ...$engine JScri
0010: 70 74 0d 0a 24 75 6e 61 6d 65 20 53 65 6c 65 63  pt..$uname Selec
0020: 74 56 61 6c 75 65 44 69 61 6c 6f 67 0d 0a 24 64  tValueDialog..$d
0030: 6e 61 6d 65 20 d0 9a d0 bb d0 b0 d1 81 d1 81 20  name .......... 
0040: 53 65 6c 65 63 74 56 61 6c 75 65 44 69 61 6c 6f  SelectValueDialo
0050: 67 0d 0a 24 61 64 64 69 6e 20 67 6c 6f 62 61 6c  g..$addin global
0060: 0d 0a 24 61 64 64 69 6e 20 73 74 64 63 6f 6d 6d  ..$addin stdcomm
0070: 61 6e 64 73 0d 0a 24 61 64 64 69 6e 20 73 74 64  ands..$addin std
0080: 6c 69 62 0d 0a 0d 0a 2f 2f 2f 2f 2f 2f 2f 2f 2f  lib..../////////
0090: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
00a0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
00b0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
00c0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
00d0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 0d  ///////////////.
00e0: 0a 2f 2f 2f 2f 7b 20 43 d0 ba d1 80 d0 b8 d0 bf  .////{ C........
00f0: d1 82 2d d0 b1 d0 b8 d0 b1 d0 bb d0 b8 d0 be d1  ..-.............
0100: 82 d0 b5 d0 ba d0 b0 20 53 65 6c 65 63 74 56 61  ....... SelectVa
0110: 6c 75 65 44 69 61 6c 6f 67 20 28 53 65 6c 65 63  lueDialog (Selec
0120: 74 56 61 6c 75 65 44 69 61 6c 6f 67 2e 6a 73 29  tValueDialog.js)
0130: 20 d0 b4 d0 bb d1 8f 20 d0 bf d1 80 d0 be d0 b5   ...... ........
0140: d0 ba d1 82 d0 b0 20 22 d0 a1 d0 bd d0 b5 d0 b3  ...... "........
0150: d0 be d0 bf d0 b0 d1 82 22 0d 0a 2f 2f 2f 2f 0d  ........"..////.
0160: 0a 2f 2f 2f 2f 20 d0 9e d0 bf d0 b8 d1 81 d0 b0  .//// ..........
0170: d0 bd d0 b8 d0 b5 3a 20 d0 94 d0 b8 d0 b0 d0 bb  ......: ........
0180: d0 be d0 b3 20 d0 b2 d1 8b d0 b1 d0 be d1 80 d0  .... ...........
0190: b0 20 d0 b7 d0 bd d0 b0 d1 87 d0 b5 d0 bd d0 b8  . ..............
01a0: d1 8f 20 d0 b8 d0 b7 20 d1 81 d0 bf d0 b8 d1 81  .. .... ........
01b0: d0 ba d0 b0 20 d1 81 20 d1 84 d0 b8 d0 bb d1 8c  .... .. ........
01c0: d1 82 d1 80 d0 b0 d1 86 d0 b8 d0 b5 d0 b9 20 d1  .............. .
01d0: 8d d0 bb d0 b5 d0 bc d0 b5 d0 bd d1 82 d0 be d0  ................
01e0: b2 2e 20 0d 0a 2f 2f 2f 2f 20 d0 9f d1 80 d0 b8  .. ..//// ......
01f0: d0 bc d0 b5 d1 80 20 d0 b8 d1 81 d0 bf d0 be d0  ...... .........
0200: bb d1 8c d0 b7 d0 be d0 b2 d0 b0 d0 bd d0 b8 d1  ................
0210: 8f 20 d1 81 d0 bc 2e 20 d0 b2 20 d1 81 d0 ba d1  . ..... .. .....
0220: 80 d0 b8 d0 bf d1 82 d0 b5 20 54 65 73 74 73 5c  ......... Tests\
0230: 45 78 61 6d 70 6c 65 73 5c 53 65 6c 65 63 74 56  Examples\SelectV
0240: 61 6c 75 65 44 69 61 6c 6f 67 5f 65 78 61 6d 70  alueDialog_examp
0250: 6c 65 2e 6a 73 0d 0a 2f 2f 2f 2f 20 d0 9c d0 be  le.js..//// ....
0260: d0 b6 d0 b5 d1 82 20 d0 bd d0 b0 d1 81 d0 bb d0  ...... .........
0270: b5 d0 b4 d0 be d0 b2 d0 b0 d1 82 d1 8c d1 81 d1  ................
0280: 8f 2e 0d 0a 2f 2f 2f 2f 0d 0a 2f 2f 2f 2f 20 d0  ....////..//// .
0290: 90 d0 b2 d1 82 d0 be d1 80 3a 20 d0 90 d0 bb d0  .........: .....
02a0: b5 d0 ba d1 81 d0 b0 d0 bd d0 b4 d1 80 20 d0 9a  ............. ..
02b0: d1 83 d0 bd d1 82 d0 b0 d1 88 d0 be d0 b2 20 3c  .............. <
02c0: 6b 75 6e 74 61 73 68 6f 76 40 67 6d 61 69 6c 2e  kuntashov@gmail.
02d0: 63 6f 6d 3e 2c 20 68 74 74 70 3a 2f 2f 63 6f 6d  com>, http://com
02e0: 70 61 75 64 2e 72 75 2f 62 6c 6f 67 0d 0a 2f 2f  paud.ru/blog..//
02f0: 2f 2f 7d 0d 0a 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  //}..///////////
0300: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
0310: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
0320: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
0330: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
0340: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 0d 0a 2f  /////////////../
0350: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
0360: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
0370: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
0380: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
0390: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
03a0: 2f 2f 2f 2f 2f 2f 2f 0d 0a 0d 0a 67 6c 6f 62 61  ///////....globa
03b0: 6c 2e 63 6f 6e 6e 65 63 74 47 6c 6f 62 61 6c 73  l.connectGlobals
03c0: 28 53 65 6c 66 53 63 72 69 70 74 29 0d 0a 73 74  (SelfScript)..st
03d0: 64 6c 69 62 2e 72 65 71 75 69 72 65 28 22 53 63  dlib.require("Sc
03e0: 72 69 70 74 46 6f 72 6d 2e 6a 73 22 2c 20 53 65  riptForm.js", Se
03f0: 6c 66 53 63 72 69 70 74 29 3b 0d 0a 73 74 64 6c  lfScript);..stdl
0400: 69 62 2e 72 65 71 75 69 72 65 28 22 54 65 78 74  ib.require("Text
0410: 43 68 61 6e 67 65 73 57 61 74 63 68 65 72 2e 6a  ChangesWatcher.j
0420: 73 22 2c 20 53 65 6c 66 53 63 72 69 70 74 29 3b  s", SelfScript);
0430: 0d 0a 73 74 64 6c 69 62 2e 72 65 71 75 69 72 65  ..stdlib.require
0440: 28 22 54 65 78 74 57 69 6e 64 6f 77 2e 6a 73 22  ("TextWindow.js"
0450: 2c 20 53 65 6c 66 53 63 72 69 70 74 29 3b 0d 0a  , SelfScript);..
0460: 0d 0a 53 65 6c 65 63 74 56 61 6c 75 65 44 69 61  ..SelectValueDia
0470: 6c 6f 67 20 3d 20 53 63 72 69 70 74 46 6f 72 6d  log = ScriptForm
0480: 2e 65 78 74 65 6e 64 28 7b 0d 0a 0d 0a 20 20 20  .extend({....   
0490: 20 63 61 70 74 69 6f 6e 3a 20 22 d0 92 d1 8b d0   caption: ".....
04a0: b1 d0 b5 d1 80 d0 b8 d1 82 d0 b5 20 d0 b7 d0 bd  ........... ....
04b0: d0 b0 d1 87 d0 b5 d0 bd d0 b8 d0 b5 22 2c 0d 0a  ............",..
04c0: 0d 0a 20 20 20 20 73 65 74 74 69 6e 67 73 52 6f  ..    settingsRo
04d0: 6f 74 50 61 74 68 20 3a 20 27 53 65 6c 65 63 74  otPath : 'Select
04e0: 56 61 6c 75 65 44 69 61 6c 6f 67 27 2c 0d 0a 20  ValueDialog',.. 
04f0: 20 20 20 0d 0a 20 20 20 20 73 65 74 74 69 6e 67     ..    setting
0500: 73 20 3a 20 7b 0d 0a 20 20 20 20 20 20 20 20 70  s : {..        p
0510: 66 6c 53 6e 65 67 6f 70 61 74 20 3a 20 7b 0d 0a  flSnegopat : {..
0520: 20 20 20 20 20 20 20 20 20 20 20 20 27 44 6f 4e              'DoN
0530: 6f 74 46 69 6c 74 65 72 27 3a 20 66 61 6c 73 65  otFilter': false
0540: 2c 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  , ..            
0550: 27 53 6f 72 74 42 79 4e 61 6d 65 27 20 3a 20 66  'SortByName' : f
0560: 61 6c 73 65 2c 20 0d 0a 20 20 20 20 20 20 20 20  alse, ..        
0570: 20 20 20 20 27 47 72 65 65 64 79 53 65 61 72 63      'GreedySearc
0580: 68 27 3a 20 66 61 6c 73 65 20 2f 2f d0 96 d0 b0  h': false //....
0590: d0 b4 d0 bd d1 8b d0 b9 20 d0 bf d0 be d0 b8 d1  ........ .......
05a0: 81 d0 ba 2c 20 d0 b8 d1 89 d0 b5 d0 bc 20 d0 b2  ..., ........ ..
05b0: 20 d0 bd d0 b5 d0 b7 d0 b0 d0 b2 d0 b8 d1 81 d0   ...............
05c0: b8 d0 bc d0 be d1 81 d1 82 d0 b8 20 d0 be d1 82  ........... ....
05d0: 20 d0 bf d0 be d1 80 d1 8f d0 b4 d0 ba d0 b0 20   .............. 
05e0: d0 b7 d0 b0 d0 bd d0 b5 d1 81 d0 b5 d0 bd d0 b8  ................
05f0: d1 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba 2e 0d 0a  .. .............
0600: 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 7d          }..    }
0610: 2c 0d 0a 0d 0a 20 20 20 20 63 6f 6e 73 74 72 75  ,....    constru
0620: 63 74 20 3a 20 66 75 6e 63 74 69 6f 6e 20 28 63  ct : function (c
0630: 61 70 74 69 6f 6e 2c 20 76 61 6c 75 65 73 29 20  aption, values) 
0640: 7b 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 74  {    ..        t
0650: 68 69 73 2e 5f 73 75 70 65 72 28 73 74 64 6c 69  his._super(stdli
0660: 62 2e 67 65 74 53 6e 65 67 6f 70 61 74 4d 61 69  b.getSnegopatMai
0670: 6e 46 6f 6c 64 65 72 28 29 20 2b 20 22 73 63 72  nFolder() + "scr
0680: 69 70 74 73 5c 5c 4c 69 62 73 5c 5c 53 65 6c 65  ipts\\Libs\\Sele
0690: 63 74 56 61 6c 75 65 44 69 61 6c 6f 67 2e 73 73  ctValueDialog.ss
06a0: 66 22 29 3b 0d 0a 20 20 20 20 20 20 20 20 69 66  f");..        if
06b0: 20 28 21 76 61 6c 75 65 73 29 20 7b 0d 0a 20 20   (!values) {..  
06c0: 20 20 20 20 20 20 09 76 61 6c 75 65 73 20 3d 20        .values = 
06d0: 5b 5d 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a  [];..        }..
06e0: 20 20 20 20 20 20 20 20 74 68 69 73 2e 6c 6f 61          this.loa
06f0: 64 56 61 6c 75 65 73 28 76 61 6c 75 65 73 29 3b  dValues(values);
0700: 0d 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 63  ..        this.c
0710: 61 70 74 69 6f 6e 20 3d 20 63 61 70 74 69 6f 6e  aption = caption
0720: 20 3f 20 63 61 70 74 69 6f 6e 20 3a 20 22 d0 92   ? caption : "..
0730: d1 8b d0 b1 d0 b5 d1 80 d0 b8 d1 82 d0 b5 20 d0  .............. .
0740: b7 d0 bd d0 b0 d1 87 d0 b5 d0 bd d0 b8 d0 b5 22  ..............."
0750: 3b 0d 0a 20 20 20 20 20 20 20 20 2f 2f d0 a1 d0  ;..        //...
0760: be d1 85 d1 80 d0 b0 d0 bd d0 b8 d0 bc 20 d0 ba  ............. ..
0770: d0 bb d1 8e d1 87 20 d0 bf d0 be d0 bb d0 be d0  ...... .........
0780: b6 d0 b5 d0 bd d0 b8 d1 8f 20 d0 be d0 ba d0 bd  ......... ......
0790: d0 b0 2e 0d 0a 20 20 20 20 20 20 20 20 74 68 69  .....        thi
07a0: 73 2e 66 6f 72 6d 2e 57 69 6e 64 6f 77 4f 70 74  s.form.WindowOpt
07b0: 69 6f 6e 73 4b 65 79 20 3d 74 68 69 73 2e 63 61  ionsKey =this.ca
07c0: 70 74 69 6f 6e 3b 0d 0a 20 20 20 20 20 20 20 20  ption;..        
07d0: 74 68 69 73 2e 66 6f 72 6d 2e 56 61 6c 75 65 73  this.form.Values
07e0: 4c 69 73 74 2e 43 6f 6c 75 6d 6e 73 2e 41 64 64  List.Columns.Add
07f0: 28 27 56 61 6c 75 65 27 29 3b 0d 0a 20 20 20 20  ('Value');..    
0800: 20 20 20 20 74 68 69 73 2e 73 65 74 56 61 6c 75      this.setValu
0810: 65 73 4c 69 73 74 28 74 68 69 73 2e 6f 72 69 67  esList(this.orig
0820: 69 6e 61 6c 4c 69 73 74 29 3b 0d 0a 20 20 20 20  inalList);..    
0830: 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 76 61      ..        va
0840: 72 20 73 76 20 3d 20 74 68 69 73 3b 0d 0a 20 20  r sv = this;..  
0850: 20 20 20 20 20 20 74 68 69 73 2e 74 63 57 61 74        this.tcWat
0860: 63 68 65 72 20 3d 20 6e 65 77 20 54 65 78 74 43  cher = new TextC
0870: 68 61 6e 67 65 73 57 61 74 63 68 65 72 28 74 68  hangesWatcher(th
0880: 69 73 2e 66 6f 72 6d 2e 43 6f 6e 74 72 6f 6c 73  is.form.Controls
0890: 2e 53 65 61 72 63 68 54 65 78 74 2c 20 33 2c 20  .SearchText, 3, 
08a0: 66 75 6e 63 74 69 6f 6e 28 74 29 7b 73 76 2e 75  function(t){sv.u
08b0: 70 64 61 74 65 4c 69 73 74 28 74 29 7d 29 3b 0d  pdateList(t)});.
08c0: 0a 20 20 20 20 7d 2c 0d 0a 0d 0a 20 20 20 20 73  .    },....    s
08d0: 65 6c 65 63 74 56 61 6c 75 65 3a 20 66 75 6e 63  electValue: func
08e0: 74 69 6f 6e 20 28 76 61 6c 75 65 73 29 20 7b 0d  tion (values) {.
08f0: 0a 20 20 20 20 20 20 20 20 69 66 20 28 76 61 6c  .        if (val
0900: 75 65 73 29 20 7b 0d 0a 20 20 20 20 20 20 20 20  ues) {..        
0910: 20 20 20 20 74 68 69 73 2e 6c 6f 61 64 56 61 6c      this.loadVal
0920: 75 65 73 28 76 61 6c 75 65 73 29 3b 0d 0a 20 20  ues(values);..  
0930: 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 73            this.s
0940: 65 74 56 61 6c 75 65 73 4c 69 73 74 28 74 68 69  etValuesList(thi
0950: 73 2e 6f 72 69 67 69 6e 61 6c 4c 69 73 74 29 3b  s.originalList);
0960: 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20  ..        }..   
0970: 20 20 20 20 20 74 68 69 73 2e 73 65 6c 65 63 74       this.select
0980: 65 64 56 61 6c 75 65 20 3d 20 74 68 69 73 2e 66  edValue = this.f
0990: 6f 72 6d 2e 44 6f 4d 6f 64 61 6c 28 29 3b 0d 0a  orm.DoModal();..
09a0: 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74          return t
09b0: 68 69 73 2e 73 65 6c 65 63 74 65 64 56 61 6c 75  his.selectedValu
09c0: 65 20 3f 20 74 72 75 65 20 3a 20 66 61 6c 73 65  e ? true : false
09d0: 3b 0d 0a 20 20 20 20 7d 2c 0d 0a 0d 0a 20 20 20  ;..    },....   
09e0: 20 61 64 64 52 6f 77 54 6f 56 54 3a 20 66 75 6e   addRowToVT: fun
09f0: 63 74 69 6f 6e 28 76 74 2c 20 76 61 6c 75 65 2c  ction(vt, value,
0a00: 20 6e 61 6d 65 29 20 7b 0d 0a 20 20 20 20 20 20   name) {..      
0a10: 20 20 76 61 72 20 6e 65 77 52 6f 77 20 3d 20 76    var newRow = v
0a20: 74 2e 41 64 64 28 29 3b 0d 0a 20 20 20 20 20 20  t.Add();..      
0a30: 20 20 6e 65 77 52 6f 77 2e 4f 72 64 65 72 20 3d    newRow.Order =
0a40: 20 76 74 2e 43 6f 75 6e 74 28 29 3b 0d 0a 20 20   vt.Count();..  
0a50: 20 20 20 20 20 20 6e 65 77 52 6f 77 2e 56 61 6c        newRow.Val
0a60: 75 65 20 3d 20 76 61 6c 75 65 3b 0d 0a 20 20 20  ue = value;..   
0a70: 20 20 20 20 20 6e 65 77 52 6f 77 2e 4e 61 6d 65       newRow.Name
0a80: 20 3d 20 27 27 20 2b 20 28 6e 61 6d 65 20 3f 20   = '' + (name ? 
0a90: 6e 61 6d 65 20 3a 20 76 61 6c 75 65 29 3b 09 09  name : value);..
0aa0: 0d 0a 20 20 20 20 7d 2c 0d 0a 0d 0a 20 20 20 20  ..    },....    
0ab0: 6c 6f 61 64 56 61 6c 75 65 73 3a 20 66 75 6e 63  loadValues: func
0ac0: 74 69 6f 6e 20 28 76 61 6c 75 65 73 29 20 7b 0d  tion (values) {.
0ad0: 0a 20 20 20 20 20 20 20 20 76 61 72 20 76 74 20  .        var vt 
0ae0: 3d 20 76 38 4e 65 77 28 27 56 61 6c 75 65 54 61  = v8New('ValueTa
0af0: 62 6c 65 27 29 3b 0d 0a 20 20 20 20 20 20 20 20  ble');..        
0b00: 76 74 2e 43 6f 6c 75 6d 6e 73 2e 41 64 64 28 27  vt.Columns.Add('
0b10: 4e 61 6d 65 27 29 3b 0d 0a 20 20 20 20 20 20 20  Name');..       
0b20: 20 76 74 2e 43 6f 6c 75 6d 6e 73 2e 41 64 64 28   vt.Columns.Add(
0b30: 27 4f 72 64 65 72 27 29 3b 0d 0a 20 20 20 20 20  'Order');..     
0b40: 20 20 20 76 74 2e 43 6f 6c 75 6d 6e 73 2e 41 64     vt.Columns.Ad
0b50: 64 28 27 56 61 6c 75 65 27 29 3b 0d 0a 20 20 20  d('Value');..   
0b60: 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 2f       ..        /
0b70: 2f 54 4f 44 4f 3a 20 d0 b4 d0 be d0 b1 d0 b0 d0  /TODO: .........
0b80: b2 d0 b8 d1 82 d1 8c 20 d0 bf d0 be d0 b4 d0 b4  ....... ........
0b90: d0 b5 d1 80 d0 b6 d0 ba d1 83 20 d1 81 d0 be d0  .......... .....
0ba0: be d1 82 d0 b2 d0 b5 d1 82 d1 81 d1 82 d0 b2 d0  ................
0bb0: b8 d1 8f 20 d0 b8 20 d1 81 d1 82 d1 80 d1 83 d0  ... .. .........
0bc0: ba d1 82 d1 83 d1 80 d1 8b 2e 0d 0a 20 20 20 20  ............    
0bd0: 20 20 20 20 76 61 72 20 74 79 70 65 4e 61 6d 65      var typeName
0be0: 20 3d 20 4f 62 6a 65 63 74 2e 70 72 6f 74 6f 74   = Object.protot
0bf0: 79 70 65 2e 74 6f 53 74 72 69 6e 67 2e 63 61 6c  ype.toString.cal
0c00: 6c 28 76 61 6c 75 65 73 29 3b 0d 0a 20 20 20 20  l(values);..    
0c10: 20 20 20 20 69 66 20 28 74 79 70 65 4e 61 6d 65      if (typeName
0c20: 20 3d 3d 3d 20 27 5b 6f 62 6a 65 63 74 20 41 72   === '[object Ar
0c30: 72 61 79 5d 27 29 20 7b 0d 0a 20 20 20 20 20 20  ray]') {..      
0c40: 20 20 20 20 20 20 66 6f 72 20 28 76 61 72 20 69        for (var i
0c50: 3d 30 3b 20 69 3c 76 61 6c 75 65 73 2e 6c 65 6e  =0; i<values.len
0c60: 67 74 68 3b 20 69 2b 2b 29 20 7b 0d 0a 20 20 20  gth; i++) {..   
0c70: 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69               thi
0c80: 73 2e 61 64 64 52 6f 77 54 6f 56 54 28 76 74 2c  s.addRowToVT(vt,
0c90: 20 76 61 6c 75 65 73 5b 69 5d 29 3b 0d 0a 20 20   values[i]);..  
0ca0: 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20            }..   
0cb0: 20 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 28       } else if (
0cc0: 74 79 70 65 4e 61 6d 65 20 3d 3d 3d 20 27 5b 6f  typeName === '[o
0cd0: 62 6a 65 63 74 20 4f 62 6a 65 63 74 5d 27 29 20  bject Object]') 
0ce0: 7b 09 09 09 0d 0a 20 20 20 20 20 20 20 20 20 20  {.....          
0cf0: 20 20 2f 2f 20 d0 98 d0 bb d0 b8 20 d0 be d0 b1    // ...... ....
0d00: d1 8a d0 b5 d0 ba d1 82 20 31 d0 a1 2c 20 d0 b8  ........ 1.., ..
0d10: d0 bb d0 b8 20 d0 be d0 b1 d1 8a d0 b5 d0 ba d1  .... ...........
0d20: 82 20 4a 61 76 61 53 63 72 69 70 74 2e 0d 0a 20  . JavaScript... 
0d30: 20 20 20 20 20 20 20 20 20 20 20 74 79 70 65 4e             typeN
0d40: 61 6d 65 20 3d 20 74 6f 56 38 56 61 6c 75 65 28  ame = toV8Value(
0d50: 76 61 6c 75 65 73 29 2e 74 79 70 65 4e 61 6d 65  values).typeName
0d60: 28 30 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20  (0);..          
0d70: 20 20 69 66 20 28 74 79 70 65 4e 61 6d 65 20 3d    if (typeName =
0d80: 3d 3d 20 27 43 4f 4d 4f 62 6a 65 63 74 27 29 20  == 'COMObject') 
0d90: 7b 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  { ..            
0da0: 20 20 20 20 2f 2f 20 d0 97 d0 bd d0 b0 d1 87 d0      // .........
0db0: b8 d1 82 2c 20 d1 8d d1 82 d0 be 20 d0 be d0 b1  ..., ...... ....
0dc0: d1 8a d0 b5 d0 ba d1 82 20 4a 61 76 61 53 63 72  ........ JavaScr
0dd0: 69 70 74 20 d0 b8 d0 bb d0 b8 20 43 4f 4d 2d d0  ipt ...... COM-.
0de0: be d0 b1 d1 8a d0 b5 d0 ba d1 82 2e 20 0d 0a 20  ............ .. 
0df0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
0e00: 2f 20 d0 9a d0 bb d1 8e d1 87 20 2d 20 d0 bf d1  / ........ - ...
0e10: 80 d0 b5 d0 b4 d1 81 d1 82 d0 b0 d0 b2 d0 bb d0  ................
0e20: b5 d0 bd d0 b8 d0 b5 2c 20 d0 b7 d0 bd d0 b0 d1  ......., .......
0e30: 87 d0 b5 d0 bd d0 b8 d0 b5 20 2d 20 d0 b7 d0 bd  ......... - ....
0e40: d0 b0 d1 87 d0 b5 d0 bd d0 b8 d0 b5 2e 0d 0a 20  ............... 
0e50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66                 f
0e60: 6f 72 20 28 76 61 72 20 70 72 6f 70 20 69 6e 20  or (var prop in 
0e70: 76 61 6c 75 65 73 29 20 7b 0d 0a 20 20 20 20 20  values) {..     
0e80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69                 i
0e90: 66 20 28 76 61 6c 75 65 73 2e 68 61 73 4f 77 6e  f (values.hasOwn
0ea0: 50 72 6f 70 65 72 74 79 28 70 72 6f 70 29 29 20  Property(prop)) 
0eb0: 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  {..             
0ec0: 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e             this.
0ed0: 61 64 64 52 6f 77 54 6f 56 54 28 76 74 2c 20 76  addRowToVT(vt, v
0ee0: 61 6c 75 65 73 5b 70 72 6f 70 5d 2c 20 70 72 6f  alues[prop], pro
0ef0: 70 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20  p);..           
0f00: 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20           }..    
0f10: 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20              }.. 
0f20: 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73             } els
0f30: 65 20 69 66 20 28 74 79 70 65 4e 61 6d 65 20 3d  e if (typeName =
0f40: 3d 3d 20 27 56 61 6c 75 65 4c 69 73 74 27 29 20  == 'ValueList') 
0f50: 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  {..             
0f60: 20 20 20 2f 2f 20 54 4f 44 4f 3a 20 d0 ba d0 b0     // TODO: ....
0f70: d1 80 d1 82 d0 b8 d0 bd d0 ba d1 83 20 d1 82 d0  ............ ...
0f80: be d0 b6 d0 b5 20 d0 bc d0 be d0 b6 d0 bd d0 be  ..... ..........
0f90: 20 d0 bf d0 be d0 ba d0 b0 d0 b7 d1 8b d0 b2 d0   ...............
0fa0: b0 d1 82 d1 8c 21 0d 0a 20 20 20 20 20 20 20 20  .....!..        
0fb0: 20 20 20 20 20 20 20 20 66 6f 72 20 28 76 61 72          for (var
0fc0: 20 69 3d 30 3b 20 69 3c 76 61 6c 75 65 73 2e 43   i=0; i<values.C
0fd0: 6f 75 6e 74 28 29 3b 20 69 2b 2b 29 20 7b 0d 0a  ount(); i++) {..
0fe0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0ff0: 20 20 20 20 76 61 72 20 65 6c 20 3d 20 76 61 6c      var el = val
1000: 75 65 73 2e 47 65 74 28 69 29 3b 0d 0a 20 20 20  ues.Get(i);..   
1010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1020: 20 74 68 69 73 2e 61 64 64 52 6f 77 54 6f 56 54   this.addRowToVT
1030: 28 76 74 2c 20 65 6c 2e 56 61 6c 75 65 2c 20 65  (vt, el.Value, e
1040: 6c 2e 50 72 65 73 65 6e 74 61 74 69 6f 6e 29 3b  l.Presentation);
1050: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
1060: 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20    }..           
1070: 20 7d 20 65 6c 73 65 20 69 66 20 28 74 79 70 65   } else if (type
1080: 4e 61 6d 65 20 3d 3d 3d 20 27 41 72 72 61 79 27  Name === 'Array'
1090: 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ) {..           
10a0: 20 20 20 20 20 66 6f 72 20 28 76 61 72 20 69 3d       for (var i=
10b0: 30 3b 20 69 3c 76 61 6c 75 65 73 2e 43 6f 75 6e  0; i<values.Coun
10c0: 74 28 29 3b 20 69 2b 2b 29 20 7b 0d 0a 20 20 20  t(); i++) {..   
10d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
10e0: 20 74 68 69 73 2e 61 64 64 52 6f 77 54 6f 56 54   this.addRowToVT
10f0: 28 76 74 2c 20 76 61 6c 75 65 73 2e 47 65 74 28  (vt, values.Get(
1100: 69 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20  i));..          
1110: 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20        }..       
1120: 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0d 0a 20       } else {.. 
1130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f                 /
1140: 2f 20 d0 9f d0 b5 d1 80 d0 b5 d0 b4 d0 b0 d0 bd  / ..............
1150: d0 bd d1 8b d0 b9 20 d0 bf d0 b0 d1 80 d0 b0 d0  ...... .........
1160: bc d0 b5 d1 82 d1 80 20 2d 20 d0 bd d0 b5 20 d0  ....... - .... .
1170: bf d0 be d0 b4 d0 b4 d0 b5 d1 80 d0 b6 d0 b8 d0  ................
1180: b2 d0 b0 d0 b5 d0 bc d0 b0 d1 8f 20 d0 ba d0 be  ........... ....
1190: d0 bb d0 bb d0 b5 d0 ba d1 86 d0 b8 d1 8f 2e 0d  ................
11a0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
11b0: 20 2f 2f 20 d0 a2 d0 be d0 b3 d0 b4 d0 b0 20 d0   // .......... .
11c0: b2 20 d1 81 d0 bf d0 b8 d1 81 d0 ba d0 b5 20 d1  . ............ .
11d0: 82 d0 be d0 bb d1 8c d0 ba d0 be 20 d0 be d0 b4  ........... ....
11e0: d0 bd d0 be 20 d0 bf d0 b5 d1 80 d0 b5 d0 b4 d0  .... ...........
11f0: b0 d0 bd d0 bd d0 be d0 b5 20 d0 b7 d0 bd d0 b0  ......... ......
1200: d1 87 d0 b5 d0 bd d0 b8 d0 b5 2e 0d 0a 20 20 20  .............   
1210: 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69               thi
1220: 73 2e 61 64 64 52 6f 77 54 6f 56 54 28 76 74 2c  s.addRowToVT(vt,
1230: 20 76 61 6c 75 65 73 29 3b 0d 0a 20 20 20 20 20   values);..     
1240: 20 20 20 20 20 20 20 7d 09 09 0d 0a 20 20 20 20         }....    
1250: 20 20 20 20 7d 20 65 6c 73 65 20 7b 0d 0a 20 20      } else {..  
1260: 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 61            this.a
1270: 64 64 52 6f 77 54 6f 56 54 28 76 74 2c 20 76 61  ddRowToVT(vt, va
1280: 6c 75 65 73 29 3b 0d 0a 20 20 20 20 20 20 20 20  lues);..        
1290: 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  }..             
12a0: 20 20 20 0d 0a 20 20 20 20 20 20 20 20 74 68 69     ..        thi
12b0: 73 2e 73 6f 72 74 56 61 6c 75 65 73 4c 69 73 74  s.sortValuesList
12c0: 28 74 68 69 73 2e 66 6f 72 6d 2e 53 6f 72 74 42  (this.form.SortB
12d0: 79 4e 61 6d 65 2c 20 76 74 29 3b 0d 0a 20 20 20  yName, vt);..   
12e0: 20 20 20 20 20 74 68 69 73 2e 6f 72 69 67 69 6e       this.origin
12f0: 61 6c 4c 69 73 74 09 3d 20 76 74 3b 0d 0a 20 20  alList.= vt;..  
1300: 20 20 20 20 20 20 72 65 74 75 72 6e 20 76 74 3b        return vt;
1310: 0d 0a 20 20 20 20 7d 2c 0d 0a 0d 0a 20 20 20 20  ..    },....    
1320: 73 6f 72 74 56 61 6c 75 65 73 4c 69 73 74 3a 20  sortValuesList: 
1330: 66 75 6e 63 74 69 6f 6e 20 28 73 6f 72 74 42 79  function (sortBy
1340: 4e 61 6d 65 2c 20 76 74 29 20 7b 0d 0a 20 20 20  Name, vt) {..   
1350: 20 20 20 20 20 69 66 20 28 21 76 74 29 20 7b 0d       if (!vt) {.
1360: 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 74 20  .            vt 
1370: 3d 20 74 68 69 73 2e 66 6f 72 6d 2e 56 61 6c 75  = this.form.Valu
1380: 65 73 4c 69 73 74 3b 0d 0a 20 20 20 20 20 20 20  esList;..       
1390: 20 7d 0d 0a 20 20 20 20 20 20 20 20 76 74 2e 53   }..        vt.S
13a0: 6f 72 74 28 73 6f 72 74 42 79 4e 61 6d 65 20 3f  ort(sortByName ?
13b0: 20 27 4e 61 6d 65 27 20 3a 20 27 4f 72 64 65 72   'Name' : 'Order
13c0: 27 29 3b 0d 0a 20 20 20 20 7d 2c 0d 0a 0d 0a 20  ');..    },.... 
13d0: 20 20 20 73 65 74 56 61 6c 75 65 73 4c 69 73 74     setValuesList
13e0: 3a 20 66 75 6e 63 74 69 6f 6e 28 76 74 29 20 7b  : function(vt) {
13f0: 0d 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 66  ..        this.f
1400: 6f 72 6d 2e 56 61 6c 75 65 73 4c 69 73 74 20 3d  orm.ValuesList =
1410: 20 76 74 2e 43 6f 70 79 28 29 3b 0d 0a 20 20 20   vt.Copy();..   
1420: 20 7d 2c 0d 0a 0d 0a 20 20 20 20 75 70 64 61 74   },....    updat
1430: 65 4c 69 73 74 3a 20 66 75 6e 63 74 69 6f 6e 20  eList: function 
1440: 28 6e 65 77 54 65 78 74 29 20 7b 0d 0a 20 20 20  (newText) {..   
1450: 20 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 21   ..        if (!
1460: 6e 65 77 54 65 78 74 20 7c 7c 20 6e 65 77 54 65  newText || newTe
1470: 78 74 2e 6d 61 74 63 68 28 2f 5e 5c 73 2a 24 2f  xt.match(/^\s*$/
1480: 29 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20  ))..        {.. 
1490: 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 74             if (t
14a0: 68 69 73 2e 6c 6f 61 64 65 64 4f 6e 4f 70 65 6e  his.loadedOnOpen
14b0: 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  )..             
14c0: 20 20 20 74 68 69 73 2e 6c 6f 61 64 65 64 4f 6e     this.loadedOn
14d0: 4f 70 65 6e 20 3d 20 66 61 6c 73 65 3b 0d 0a 20  Open = false;.. 
14e0: 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 0d             else.
14f0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 09 74 68  .            .th
1500: 69 73 2e 73 65 74 56 61 6c 75 65 73 4c 69 73 74  is.setValuesList
1510: 28 74 68 69 73 2e 6f 72 69 67 69 6e 61 6c 4c 69  (this.originalLi
1520: 73 74 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d  st);..        }.
1530: 0a 20 20 20 20 20 20 20 20 65 6c 73 65 20 0d 0a  .        else ..
1540: 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20          {..     
1550: 20 20 20 20 20 20 20 76 61 72 20 61 20 3d 20 6e         var a = n
1560: 65 77 54 65 78 74 2e 73 70 6c 69 74 28 2f 5c 73  ewText.split(/\s
1570: 2b 2f 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20  +/);..          
1580: 20 20 66 6f 72 20 28 76 61 72 20 69 3d 30 3b 20    for (var i=0; 
1590: 69 3c 61 2e 6c 65 6e 67 74 68 3b 20 69 2b 2b 29  i<a.length; i++)
15a0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
15b0: 20 20 61 5b 69 5d 20 3d 20 53 74 72 69 6e 67 55    a[i] = StringU
15c0: 74 69 6c 73 2e 61 64 64 53 6c 61 73 68 65 73 28  tils.addSlashes(
15d0: 61 5b 69 5d 29 3b 0d 0a 20 20 20 20 20 20 20 20  a[i]);..        
15e0: 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20          ..      
15f0: 20 20 20 20 20 20 76 61 72 20 72 65 20 3d 20 6e        var re = n
1600: 65 77 20 52 65 67 45 78 70 28 61 2e 6a 6f 69 6e  ew RegExp(a.join
1610: 28 22 2e 2a 3f 22 29 2c 20 27 69 27 29 3b 20 20  (".*?"), 'i');  
1620: 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20    ..            
1630: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66  ..            if
1640: 20 28 74 68 69 73 2e 66 6f 72 6d 2e 44 6f 4e 6f   (this.form.DoNo
1650: 74 46 69 6c 74 65 72 29 0d 0a 20 20 20 20 20 20  tFilter)..      
1660: 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20        {..       
1670: 20 20 20 20 20 20 20 20 20 76 61 72 20 63 75 72           var cur
1680: 72 65 6e 74 52 6f 77 20 3d 20 75 6e 64 65 66 69  rentRow = undefi
1690: 6e 65 64 3b 0d 0a 20 20 20 20 20 20 20 20 20 20  ned;..          
16a0: 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20        ..        
16b0: 20 20 20 20 20 20 20 20 76 61 72 20 76 74 4c 69          var vtLi
16c0: 73 74 20 3d 20 74 68 69 73 2e 6f 72 69 67 69 6e  st = this.origin
16d0: 61 6c 4c 69 73 74 2e 43 6f 70 79 28 29 3b 0d 0a  alList.Copy();..
16e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16f0: 66 6f 72 20 28 76 61 72 20 72 6f 77 4e 6f 20 3d  for (var rowNo =
1700: 20 30 3b 20 72 6f 77 4e 6f 20 3c 20 76 74 4c 69   0; rowNo < vtLi
1710: 73 74 2e 43 6f 75 6e 74 28 29 3b 20 72 6f 77 4e  st.Count(); rowN
1720: 6f 2b 2b 29 0d 0a 20 20 20 20 20 20 20 20 20 20  o++)..          
1730: 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20        {..       
1740: 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72               var
1750: 20 72 6f 77 20 3d 20 76 74 4c 69 73 74 2e 47 65   row = vtList.Ge
1760: 74 28 72 6f 77 4e 6f 29 3b 0d 0a 20 20 20 20 20  t(rowNo);..     
1770: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69                 i
1780: 66 20 28 72 65 2e 74 65 73 74 28 72 6f 77 2e 4e  f (re.test(row.N
1790: 61 6d 65 29 29 0d 0a 20 20 20 20 20 20 20 20 20  ame))..         
17a0: 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20             {..  
17b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17c0: 20 20 20 20 20 20 63 75 72 72 65 6e 74 52 6f 77        currentRow
17d0: 20 3d 20 72 6f 77 3b 0d 0a 20 20 20 20 20 20 20   = row;..       
17e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17f0: 20 62 72 65 61 6b 3b 0d 0a 20 20 20 20 20 20 20   break;..       
1800: 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a               }..
1810: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1820: 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  }..             
1830: 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20     ..           
1840: 20 20 20 20 20 74 68 69 73 2e 66 6f 72 6d 2e 43       this.form.C
1850: 6f 6e 74 72 6f 6c 73 2e 56 61 6c 75 65 73 4c 69  ontrols.ValuesLi
1860: 73 74 2e 56 61 6c 75 65 20 3d 20 76 74 4c 69 73  st.Value = vtLis
1870: 74 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  t;..            
1880: 20 20 20 20 69 66 20 28 63 75 72 72 65 6e 74 52      if (currentR
1890: 6f 77 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ow)..           
18a0: 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 66 6f           this.fo
18b0: 72 6d 2e 43 6f 6e 74 72 6f 6c 73 2e 56 61 6c 75  rm.Controls.Valu
18c0: 65 73 4c 69 73 74 2e 43 75 72 72 65 6e 74 52 6f  esList.CurrentRo
18d0: 77 20 3d 20 63 75 72 72 65 6e 74 52 6f 77 3b 0d  w = currentRow;.
18e0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a  .            }..
18f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a                ..
1900: 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65              else
1910: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d  ..            {.
1920: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
1930: 20 69 66 20 28 74 68 69 73 2e 66 6f 72 6d 2e 47   if (this.form.G
1940: 72 65 65 64 79 53 65 61 72 63 68 29 7b 0d 0a 20  reedySearch){.. 
1950: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1960: 20 20 20 76 61 72 20 61 20 3d 20 6e 65 77 54 65     var a = newTe
1970: 78 74 2e 73 70 6c 69 74 28 2f 5c 73 2b 2f 29 3b  xt.split(/\s+/);
1980: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
1990: 20 20 20 20 20 20 76 61 72 20 76 74 4c 69 73 74        var vtList
19a0: 20 3d 20 74 68 69 73 2e 66 6f 72 6d 2e 43 6f 6e   = this.form.Con
19b0: 74 72 6f 6c 73 2e 56 61 6c 75 65 73 4c 69 73 74  trols.ValuesList
19c0: 2e 56 61 6c 75 65 3b 0d 0a 20 20 20 20 20 20 20  .Value;..       
19d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 76 74 4c               vtL
19e0: 69 73 74 2e 43 6c 65 61 72 28 29 3b 20 20 20 20  ist.Clear();    
19f0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
1a00: 20 20 20 20 20 20 66 6f 72 20 28 76 61 72 20 72        for (var r
1a10: 6f 77 4e 6f 20 3d 20 30 3b 20 72 6f 77 4e 6f 20  owNo = 0; rowNo 
1a20: 3c 20 74 68 69 73 2e 6f 72 69 67 69 6e 61 6c 4c  < this.originalL
1a30: 69 73 74 2e 43 6f 75 6e 74 28 29 3b 20 72 6f 77  ist.Count(); row
1a40: 4e 6f 2b 2b 29 0d 0a 20 20 20 20 20 20 20 20 20  No++)..         
1a50: 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20             {..  
1a60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a70: 20 20 20 20 20 20 76 61 72 20 72 6f 77 20 3d 20        var row = 
1a80: 74 68 69 73 2e 6f 72 69 67 69 6e 61 6c 4c 69 73  this.originalLis
1a90: 74 2e 47 65 74 28 72 6f 77 4e 6f 29 3b 0d 0a 20  t.Get(rowNo);.. 
1aa0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ab0: 20 20 20 20 20 20 20 6e 65 65 64 41 64 64 20 3d         needAdd =
1ac0: 20 74 72 75 65 3b 0d 0a 20 20 20 20 20 20 20 20   true;..        
1ad0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ae0: 76 61 72 20 74 69 74 6c 65 20 3d 20 72 6f 77 2e  var title = row.
1af0: 4e 61 6d 65 2e 74 6f 4c 6f 77 65 72 43 61 73 65  Name.toLowerCase
1b00: 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ();..           
1b10: 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72               for
1b20: 20 28 76 61 72 20 69 3d 30 3b 20 69 3c 61 2e 6c   (var i=0; i<a.l
1b30: 65 6e 67 74 68 3b 20 69 2b 2b 29 7b 0d 0a 0d 0a  ength; i++){....
1b40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b50: 20 20 20 20 20 20 20 20 20 20 20 20 69 66 28 74              if(t
1b60: 69 74 6c 65 2e 69 6e 64 65 78 4f 66 28 61 5b 69  itle.indexOf(a[i
1b70: 5d 29 20 3c 20 30 29 0d 0a 20 20 20 20 20 20 20  ]) < 0)..       
1b80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b90: 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20       {..        
1ba0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bb0: 20 20 20 20 20 20 20 20 6e 65 65 64 41 64 64 20          needAdd 
1bc0: 3d 20 66 61 6c 73 65 3b 0d 0a 20 20 20 20 20 20  = false;..      
1bd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1be0: 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b            break;
1bf0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
1c00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d                }.
1c10: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
1c20: 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 20           }....  
1c30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c40: 20 20 20 20 20 20 69 66 20 28 6e 65 65 64 41 64        if (needAd
1c50: 64 29 20 7b 20 20 20 20 20 20 20 20 20 20 20 20  d) {            
1c60: 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20              ..  
1c70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c80: 20 20 20 20 20 20 20 20 20 20 76 61 72 20 6e 65            var ne
1c90: 77 52 6f 77 20 3d 20 76 74 4c 69 73 74 2e 41 64  wRow = vtList.Ad
1ca0: 64 28 29 3b 20 20 20 20 20 20 20 20 20 20 20 20  d();            
1cb0: 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20            ..    
1cc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cd0: 20 20 20 20 20 20 20 20 6e 65 77 52 6f 77 2e 56          newRow.V
1ce0: 61 6c 75 65 20 3d 20 72 6f 77 2e 56 61 6c 75 65  alue = row.Value
1cf0: 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  ;..             
1d00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e                 n
1d10: 65 77 52 6f 77 2e 4e 61 6d 65 20 3d 20 72 6f 77  ewRow.Name = row
1d20: 2e 4e 61 6d 65 3b 0d 0a 20 20 20 20 20 20 20 20  .Name;..        
1d30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d40: 20 20 20 20 6e 65 77 52 6f 77 2e 4f 72 64 65 72      newRow.Order
1d50: 20 3d 20 72 6f 77 2e 4f 72 64 65 72 0d 0a 20 20   = row.Order..  
1d60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d70: 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20        }..       
1d80: 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a               }..
1d90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1da0: 20 20 20 20 69 66 20 28 74 68 69 73 2e 66 6f 72      if (this.for
1db0: 6d 2e 43 6f 6e 74 72 6f 6c 73 2e 56 61 6c 75 65  m.Controls.Value
1dc0: 73 4c 69 73 74 2e 56 61 6c 75 65 2e 43 6f 75 6e  sList.Value.Coun
1dd0: 74 28 29 29 20 7b 0d 0a 20 20 20 20 20 20 20 20  t()) {..        
1de0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1df0: 74 68 69 73 2e 66 6f 72 6d 2e 43 6f 6e 74 72 6f  this.form.Contro
1e00: 6c 73 2e 56 61 6c 75 65 73 4c 69 73 74 2e 43 75  ls.ValuesList.Cu
1e10: 72 72 65 6e 74 52 6f 77 20 3d 20 74 68 69 73 2e  rrentRow = this.
1e20: 66 6f 72 6d 2e 43 6f 6e 74 72 6f 6c 73 2e 56 61  form.Controls.Va
1e30: 6c 75 65 73 4c 69 73 74 2e 56 61 6c 75 65 2e 47  luesList.Value.G
1e40: 65 74 28 30 29 3b 0d 0a 20 20 20 20 20 20 20 20  et(0);..        
1e50: 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d              }...
1e60: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
1e70: 20 7d 20 20 65 6c 73 65 20 7b 0d 0a 0d 0a 20 20   }  else {....  
1e80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e90: 20 20 76 61 72 20 76 74 4c 69 73 74 20 3d 20 74    var vtList = t
1ea0: 68 69 73 2e 66 6f 72 6d 2e 43 6f 6e 74 72 6f 6c  his.form.Control
1eb0: 73 2e 56 61 6c 75 65 73 4c 69 73 74 2e 56 61 6c  s.ValuesList.Val
1ec0: 75 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ue;..           
1ed0: 20 20 20 20 20 20 20 20 20 76 74 4c 69 73 74 2e           vtList.
1ee0: 43 6c 65 61 72 28 29 3b 20 20 20 20 0d 0a 20 20  Clear();    ..  
1ef0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f00: 20 20 66 6f 72 20 28 76 61 72 20 72 6f 77 4e 6f    for (var rowNo
1f10: 20 3d 20 30 3b 20 72 6f 77 4e 6f 20 3c 20 74 68   = 0; rowNo < th
1f20: 69 73 2e 6f 72 69 67 69 6e 61 6c 4c 69 73 74 2e  is.originalList.
1f30: 43 6f 75 6e 74 28 29 3b 20 72 6f 77 4e 6f 2b 2b  Count(); rowNo++
1f40: 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  )..             
1f50: 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20         {..      
1f60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f70: 20 20 76 61 72 20 72 6f 77 20 3d 20 74 68 69 73    var row = this
1f80: 2e 6f 72 69 67 69 6e 61 6c 4c 69 73 74 2e 47 65  .originalList.Ge
1f90: 74 28 72 6f 77 4e 6f 29 3b 0d 0a 20 20 20 20 20  t(rowNo);..     
1fa0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fb0: 20 20 20 69 66 20 28 72 65 2e 74 65 73 74 28 72     if (re.test(r
1fc0: 6f 77 2e 4e 61 6d 65 29 29 20 7b 20 20 20 20 20  ow.Name)) {     
1fd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1fe0: 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20     ..           
1ff0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2000: 20 2f 2f 46 69 6c 6c 50 72 6f 70 65 72 74 79 56   //FillPropertyV
2010: 61 6c 75 65 73 28 76 74 4c 69 73 74 2e 41 64 64  alues(vtList.Add
2020: 28 29 2c 20 72 6f 77 29 3b 20 20 20 20 20 20 20  (), row);       
2030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2040: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2050: 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20       ..         
2060: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2070: 20 20 20 76 61 72 20 6e 65 77 52 6f 77 20 3d 20     var newRow = 
2080: 76 74 4c 69 73 74 2e 41 64 64 28 29 3b 20 20 20  vtList.Add();   
2090: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
20a0: 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20     ..           
20b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
20c0: 20 6e 65 77 52 6f 77 2e 56 61 6c 75 65 20 3d 20   newRow.Value = 
20d0: 72 6f 77 2e 56 61 6c 75 65 3b 0d 0a 20 20 20 20  row.Value;..    
20e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
20f0: 20 20 20 20 20 20 20 20 6e 65 77 52 6f 77 2e 4e          newRow.N
2100: 61 6d 65 20 3d 20 72 6f 77 2e 4e 61 6d 65 3b 0d  ame = row.Name;.
2110: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
2120: 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 77               new
2130: 52 6f 77 2e 4f 72 64 65 72 20 3d 20 72 6f 77 2e  Row.Order = row.
2140: 4f 72 64 65 72 0d 0a 20 20 20 20 20 20 20 20 20  Order..         
2150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d                 }
2160: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
2170: 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20        }..       
2180: 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20               if 
2190: 28 74 68 69 73 2e 66 6f 72 6d 2e 43 6f 6e 74 72  (this.form.Contr
21a0: 6f 6c 73 2e 56 61 6c 75 65 73 4c 69 73 74 2e 56  ols.ValuesList.V
21b0: 61 6c 75 65 2e 43 6f 75 6e 74 28 29 29 20 7b 0d  alue.Count()) {.
21c0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
21d0: 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 66 6f           this.fo
21e0: 72 6d 2e 43 6f 6e 74 72 6f 6c 73 2e 56 61 6c 75  rm.Controls.Valu
21f0: 65 73 4c 69 73 74 2e 43 75 72 72 65 6e 74 52 6f  esList.CurrentRo
2200: 77 20 3d 20 74 68 69 73 2e 66 6f 72 6d 2e 43 6f  w = this.form.Co
2210: 6e 74 72 6f 6c 73 2e 56 61 6c 75 65 73 4c 69 73  ntrols.ValuesLis
2220: 74 2e 56 61 6c 75 65 2e 47 65 74 28 30 29 3b 0d  t.Value.Get(0);.
2230: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
2240: 20 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 20 20       }....      
2250: 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20            }.... 
2260: 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20             }..  
2270: 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 0d 0a 20        }..    .. 
2280: 20 20 20 20 20 20 20 74 68 69 73 2e 73 6f 72 74         this.sort
2290: 56 61 6c 75 65 73 4c 69 73 74 28 74 68 69 73 2e  ValuesList(this.
22a0: 66 6f 72 6d 2e 53 6f 72 74 42 79 4e 61 6d 65 29  form.SortByName)
22b0: 3b 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 20  ;..        ..   
22c0: 20 7d 2c 0d 0a 0d 0a 20 20 20 20 46 6f 72 6d 5f   },....    Form_
22d0: 4f 6e 4f 70 65 6e 3a 20 66 75 6e 63 74 69 6f 6e  OnOpen: function
22e0: 20 28 29 20 7b 0d 0a 0d 0a 20 20 20 20 20 20 20   () {....       
22f0: 20 74 68 69 73 2e 66 6f 72 6d 2e 43 61 70 74 69   this.form.Capti
2300: 6f 6e 20 3d 20 74 68 69 73 2e 63 61 70 74 69 6f  on = this.captio
2310: 6e 20 3f 20 74 68 69 73 2e 63 61 70 74 69 6f 6e  n ? this.caption
2320: 20 3a 20 22 d0 92 d1 8b d0 b1 d0 b5 d1 80 d0 b8   : "............
2330: d1 82 d0 b5 20 d0 b7 d0 bd d0 b0 d1 87 d0 b5 d0  .... ...........
2340: bd d0 b8 d0 b5 22 3b 0d 0a 0d 0a 20 20 20 20 20  .....";....     
2350: 20 20 20 74 68 69 73 2e 66 6f 72 6d 2e 43 6f 6e     this.form.Con
2360: 74 72 6f 6c 73 2e 43 6d 64 42 61 72 2e 42 75 74  trols.CmdBar.But
2370: 74 6f 6e 73 2e 53 6f 72 74 42 79 4e 61 6d 65 2e  tons.SortByName.
2380: 43 68 65 63 6b 20 3d 20 74 68 69 73 2e 66 6f 72  Check = this.for
2390: 6d 2e 53 6f 72 74 42 79 4e 61 6d 65 3b 0d 0a 20  m.SortByName;.. 
23a0: 20 20 20 20 20 20 20 74 68 69 73 2e 66 6f 72 6d         this.form
23b0: 2e 43 6f 6e 74 72 6f 6c 73 2e 43 6d 64 42 61 72  .Controls.CmdBar
23c0: 2e 42 75 74 74 6f 6e 73 2e 44 6f 4e 6f 74 46 69  .Buttons.DoNotFi
23d0: 6c 74 65 72 2e 43 68 65 63 6b 20 3d 20 74 68 69  lter.Check = thi
23e0: 73 2e 66 6f 72 6d 2e 44 6f 4e 6f 74 46 69 6c 74  s.form.DoNotFilt
23f0: 65 72 3b 09 20 20 20 20 0d 0a 20 20 20 20 20 20  er;.    ..      
2400: 20 20 09 20 20 20 0d 0a 20 20 20 20 20 20 20 20    .   ..        
2410: 74 68 69 73 2e 6c 6f 61 64 65 64 4f 6e 4f 70 65  this.loadedOnOpe
2420: 6e 20 3d 20 74 72 75 65 3b 09 20 20 20 20 20 0d  n = true;.     .
2430: 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20  .        ..     
2440: 20 20 20 74 68 69 73 2e 74 63 57 61 74 63 68 65     this.tcWatche
2450: 72 2e 73 74 61 72 74 28 29 3b 0d 0a 20 20 20 20  r.start();..    
2460: 7d 2c 0d 0a 0d 0a 20 20 20 20 46 6f 72 6d 5f 42  },....    Form_B
2470: 65 66 6f 72 65 43 6c 6f 73 65 20 3a 20 66 75 6e  eforeClose : fun
2480: 63 74 69 6f 6e 20 28 43 61 6e 63 65 6c 2c 20 53  ction (Cancel, S
2490: 74 61 6e 64 61 72 64 48 61 6e 64 6c 65 72 29 20  tandardHandler) 
24a0: 7b 0d 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e  {..        this.
24b0: 74 63 57 61 74 63 68 65 72 2e 73 74 6f 70 28 29  tcWatcher.stop()
24c0: 3b 0d 0a 20 20 20 20 7d 2c 0d 0a 0d 0a 20 20 20  ;..    },....   
24d0: 20 56 61 6c 75 65 73 4c 69 73 74 5f 53 65 6c 65   ValuesList_Sele
24e0: 63 74 69 6f 6e 3a 20 66 75 6e 63 74 69 6f 6e 20  ction: function 
24f0: 28 43 6f 6e 74 72 6f 6c 2c 20 53 65 6c 65 63 74  (Control, Select
2500: 65 64 52 6f 77 2c 20 43 6f 6c 75 6d 6e 2c 20 44  edRow, Column, D
2510: 65 66 61 75 6c 74 48 61 6e 64 6c 65 72 29 20 7b  efaultHandler) {
2520: 0d 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 66  ..        this.f
2530: 6f 72 6d 2e 43 6c 6f 73 65 28 53 65 6c 65 63 74  orm.Close(Select
2540: 65 64 52 6f 77 2e 76 61 6c 2e 56 61 6c 75 65 29  edRow.val.Value)
2550: 3b 0d 0a 20 20 20 20 7d 2c 0d 0a 0d 0a 20 20 20  ;..    },....   
2560: 20 43 6d 64 42 61 72 5f 53 6f 72 74 42 79 4e 61   CmdBar_SortByNa
2570: 6d 65 3a 20 66 75 6e 63 74 69 6f 6e 20 28 62 75  me: function (bu
2580: 74 74 6f 6e 29 20 7b 0d 0a 20 20 20 20 20 20 20  tton) {..       
2590: 20 62 75 74 74 6f 6e 2e 76 61 6c 2e 43 68 65 63   button.val.Chec
25a0: 6b 20 3d 20 21 62 75 74 74 6f 6e 2e 76 61 6c 2e  k = !button.val.
25b0: 43 68 65 63 6b 3b 0d 0a 20 20 20 20 20 20 20 20  Check;..        
25c0: 74 68 69 73 2e 66 6f 72 6d 2e 53 6f 72 74 42 79  this.form.SortBy
25d0: 4e 61 6d 65 20 3d 20 62 75 74 74 6f 6e 2e 76 61  Name = button.va
25e0: 6c 2e 43 68 65 63 6b 3b 0d 0a 20 20 20 20 20 20  l.Check;..      
25f0: 20 20 74 68 69 73 2e 73 6f 72 74 56 61 6c 75 65    this.sortValue
2600: 73 4c 69 73 74 28 62 75 74 74 6f 6e 2e 76 61 6c  sList(button.val
2610: 2e 43 68 65 63 6b 29 3b 0d 0a 20 20 20 20 7d 2c  .Check);..    },
2620: 0d 0a 0d 0a 20 20 20 20 43 6d 64 42 61 72 5f 44  ....    CmdBar_D
2630: 6f 4e 6f 74 46 69 6c 74 65 72 3a 20 66 75 6e 63  oNotFilter: func
2640: 74 69 6f 6e 20 28 62 75 74 74 6f 6e 29 20 7b 0d  tion (button) {.
2650: 0a 20 20 20 20 20 20 20 20 62 75 74 74 6f 6e 2e  .        button.
2660: 76 61 6c 2e 43 68 65 63 6b 20 3d 20 21 62 75 74  val.Check = !but
2670: 74 6f 6e 2e 76 61 6c 2e 43 68 65 63 6b 3b 0d 0a  ton.val.Check;..
2680: 20 20 20 20 20 20 20 20 74 68 69 73 2e 66 6f 72          this.for
2690: 6d 2e 44 6f 4e 6f 74 46 69 6c 74 65 72 20 3d 20  m.DoNotFilter = 
26a0: 62 75 74 74 6f 6e 2e 76 61 6c 2e 43 68 65 63 6b  button.val.Check
26b0: 3b 0d 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e  ;..        this.
26c0: 75 70 64 61 74 65 4c 69 73 74 28 74 68 69 73 2e  updateList(this.
26d0: 66 6f 72 6d 2e 43 6f 6e 74 72 6f 6c 73 2e 53 65  form.Controls.Se
26e0: 61 72 63 68 54 65 78 74 2e 56 61 6c 75 65 29 3b  archText.Value);
26f0: 0d 0a 20 20 20 20 7d 2c 0d 0a 0d 0a 20 20 20 20  ..    },....    
2700: 43 6d 64 42 61 72 4d 61 69 6e 5f d0 9e d0 9a 3a  CmdBarMain_....:
2710: 20 66 75 6e 63 74 69 6f 6e 20 28 d0 9a d0 bd d0   function (.....
2720: be d0 bf d0 ba d0 b0 29 20 7b 0d 0a 20 20 20 20  .......) {..    
2730: 20 20 20 20 76 61 72 20 53 65 6c 65 63 74 65 64      var Selected
2740: 52 6f 77 20 3d 20 74 68 69 73 2e 66 6f 72 6d 2e  Row = this.form.
2750: 43 6f 6e 74 72 6f 6c 73 2e 56 61 6c 75 65 73 4c  Controls.ValuesL
2760: 69 73 74 2e 43 75 72 72 65 6e 74 52 6f 77 3b 0d  ist.CurrentRow;.
2770: 0a 20 20 20 20 20 20 20 20 69 66 20 28 53 65 6c  .        if (Sel
2780: 65 63 74 65 64 52 6f 77 29 0d 0a 20 20 20 20 20  ectedRow)..     
2790: 20 20 20 20 20 20 20 74 68 69 73 2e 66 6f 72 6d         this.form
27a0: 2e 43 6c 6f 73 65 28 53 65 6c 65 63 74 65 64 52  .Close(SelectedR
27b0: 6f 77 2e 56 61 6c 75 65 29 3b 0d 0a 20 20 20 20  ow.Value);..    
27c0: 20 20 20 20 65 6c 73 65 0d 0a 20 20 20 20 20 20      else..      
27d0: 20 20 20 20 20 20 74 68 69 73 2e 66 6f 72 6d 2e        this.form.
27e0: 43 75 72 72 65 6e 74 43 6f 6e 74 72 6f 6c 20 3d  CurrentControl =
27f0: 20 74 68 69 73 2e 66 6f 72 6d 2e 43 6f 6e 74 72   this.form.Contr
2800: 6f 6c 73 2e 53 65 61 72 63 68 54 65 78 74 3b 0d  ols.SearchText;.
2810: 0a 20 20 20 20 7d 2c 0d 0a 0d 0a 20 20 20 20 53  .    },....    S
2820: 65 61 72 63 68 54 65 78 74 5f 54 75 6e 69 6e 67  earchText_Tuning
2830: 3a 20 66 75 6e 63 74 69 6f 6e 28 43 74 72 6c 2c  : function(Ctrl,
2840: 20 44 69 72 65 63 74 69 6f 6e 2c 20 44 65 66 61   Direction, Defa
2850: 75 6c 74 48 61 6e 64 6c 65 72 29 20 7b 0d 0a 20  ultHandler) {.. 
2860: 20 20 20 20 20 20 20 76 61 72 20 63 75 72 49 6e         var curIn
2870: 64 65 78 20 3d 20 2d 31 2c 0d 0a 20 20 20 20 20  dex = -1,..     
2880: 20 20 20 20 20 20 20 67 72 69 64 20 3d 20 74 68         grid = th
2890: 69 73 2e 66 6f 72 6d 2e 43 6f 6e 74 72 6f 6c 73  is.form.Controls
28a0: 2e 56 61 6c 75 65 73 4c 69 73 74 3b 0d 0a 20 20  .ValuesList;..  
28b0: 20 20 20 20 20 20 69 66 20 28 67 72 69 64 2e 43        if (grid.C
28c0: 75 72 72 65 6e 74 52 6f 77 29 20 7b 0d 0a 20 20  urrentRow) {..  
28d0: 20 20 20 20 20 20 20 20 20 20 63 75 72 49 6e 64            curInd
28e0: 65 78 20 3d 20 67 72 69 64 2e 56 61 6c 75 65 2e  ex = grid.Value.
28f0: 49 6e 64 65 78 4f 66 28 67 72 69 64 2e 43 75 72  IndexOf(grid.Cur
2900: 72 65 6e 74 52 6f 77 29 3b 0d 0a 20 20 20 20 20  rentRow);..     
2910: 20 20 20 20 20 20 20 63 75 72 49 6e 64 65 78 20         curIndex 
2920: 2d 3d 20 44 69 72 65 63 74 69 6f 6e 2e 76 61 6c  -= Direction.val
2930: 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69  ;..            i
2940: 66 20 28 63 75 72 49 6e 64 65 78 20 3c 20 30 29  f (curIndex < 0)
2950: 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20   {..            
2960: 20 20 20 20 63 75 72 49 6e 64 65 78 20 3d 20 67      curIndex = g
2970: 72 69 64 2e 56 61 6c 75 65 2e 43 6f 75 6e 74 28  rid.Value.Count(
2980: 29 20 2d 20 31 3b 0d 0a 20 20 20 20 20 20 20 20  ) - 1;..        
2990: 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 28 63      } else if (c
29a0: 75 72 49 6e 64 65 78 20 3e 3d 20 67 72 69 64 2e  urIndex >= grid.
29b0: 56 61 6c 75 65 2e 43 6f 75 6e 74 28 29 29 20 7b  Value.Count()) {
29c0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
29d0: 20 20 63 75 72 49 6e 64 65 78 20 3d 20 30 3b 0d    curIndex = 0;.
29e0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a  .            }..
29f0: 20 20 20 20 20 20 20 20 20 20 20 20 67 72 69 64              grid
2a00: 2e 43 75 72 72 65 6e 74 52 6f 77 20 3d 20 67 72  .CurrentRow = gr
2a10: 69 64 2e 56 61 6c 75 65 2e 47 65 74 28 63 75 72  id.Value.Get(cur
2a20: 49 6e 64 65 78 29 3b 0d 0a 20 20 20 20 20 20 20  Index);..       
2a30: 20 7d 0d 0a 20 20 20 20 20 20 20 20 44 65 66 61   }..        Defa
2a40: 75 6c 74 48 61 6e 64 6c 65 72 2e 76 61 6c 20 3d  ultHandler.val =
2a50: 20 66 61 6c 73 65 3b 0d 0a 20 20 20 20 7d 2c 0d   false;..    },.
2a60: 0a 20 20 20 20 2f 2f 20 d0 92 d1 81 d1 82 d0 b0  .    // ........
2a70: d0 b2 d0 bb d1 8f d0 b5 d1 82 20 d0 ba d0 bd d0  .......... .....
2a80: be d0 bf d0 ba d1 83 20 d0 b2 20 d0 ba d0 be d0  ....... .. .....
2a90: bc d0 b0 d0 bd d0 b4 d0 bd d1 83 d1 8e 20 d0 bf  ............. ..
2aa0: d0 b0 d0 bd d0 b5 d0 bb d1 8c 2c 20 d0 b2 20 d0  .........., .. .
2ab0: bf d1 80 d0 b0 d0 b2 d1 83 d1 8e 20 d1 87 d0 b0  ........... ....
2ac0: d1 81 d1 82 d1 8c 2e 0d 0a 20 20 20 20 41 64 64  .........    Add
2ad0: 43 6d 64 42 75 74 74 6f 6e 3a 20 66 75 6e 63 74  CmdButton: funct
2ae0: 69 6f 6e 28 63 6f 6d 6d 61 6e 64 73 29 20 7b 0d  ion(commands) {.
2af0: 0a 20 20 20 20 20 20 20 20 66 75 6e 63 74 69 6f  .        functio
2b00: 6e 20 74 75 6e 65 42 75 74 74 6f 6e 28 62 75 74  n tuneButton(but
2b10: 74 6f 6e 2c 20 70 61 72 61 6d 73 29 0d 0a 20 20  ton, params)..  
2b20: 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20        {..       
2b30: 20 20 20 20 20 66 6f 72 28 76 61 72 20 6b 20 69       for(var k i
2b40: 6e 20 70 61 72 61 6d 73 29 0d 0a 20 20 20 20 20  n params)..     
2b50: 20 20 20 20 20 20 20 20 20 20 20 62 75 74 74 6f             butto
2b60: 6e 5b 6b 5d 20 3d 20 70 61 72 61 6d 73 5b 6b 5d  n[k] = params[k]
2b70: 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20  ..        }..   
2b80: 20 20 20 20 20 76 61 72 20 70 54 68 69 73 20 3d       var pThis =
2b90: 20 74 68 69 73 3b 0d 0a 20 20 20 20 20 20 20 20   this;..        
2ba0: 28 66 75 6e 63 74 69 6f 6e 20 49 6e 73 65 72 74  (function Insert
2bb0: 43 6d 64 42 75 74 74 6f 6e 73 28 63 6d 64 73 2c  CmdButtons(cmds,
2bc0: 20 74 6f 2c 20 73 74 61 72 74 49 64 78 29 20 7b   to, startIdx) {
2bd0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f  ..            fo
2be0: 72 28 76 61 72 20 6b 20 69 6e 20 63 6d 64 73 29  r(var k in cmds)
2bf0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d  ..            {.
2c00: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
2c10: 20 76 61 72 20 63 6d 64 20 3d 20 63 6d 64 73 5b   var cmd = cmds[
2c20: 6b 5d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  k]..            
2c30: 20 20 20 20 69 66 28 63 6d 64 2e 69 64 20 3d 3d      if(cmd.id ==
2c40: 20 27 7c 27 29 0d 0a 20 20 20 20 20 20 20 20 20   '|')..         
2c50: 20 20 20 20 20 20 20 20 20 20 20 74 6f 2e d0 92             to...
2c60: d1 81 d1 82 d0 b0 d0 b2 d0 b8 d1 82 d1 8c 28 73  ..............(s
2c70: 74 61 72 74 49 64 78 2c 20 27 27 2c 20 d0 a2 d0  tartIdx, '', ...
2c80: b8 d0 bf d0 9a d0 bd d0 be d0 bf d0 ba d0 b8 d0  ................
2c90: 9a d0 be d0 bc d0 b0 d0 bd d0 b4 d0 bd d0 be d0  ................
2ca0: b9 d0 9f d0 b0 d0 bd d0 b5 d0 bb d0 b8 2e d0 a0  ................
2cb0: d0 b0 d0 b7 d0 b4 d0 b5 d0 bb d0 b8 d1 82 d0 b5  ................
2cc0: d0 bb d1 8c 29 0d 0a 20 20 20 20 20 20 20 20 20  ....)..         
2cd0: 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 28 63         else if(c
2ce0: 6d 64 2e 69 64 20 3d 3d 20 27 3e 27 29 0d 0a 20  md.id == '>').. 
2cf0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b                 {
2d00: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
2d10: 20 20 20 20 20 20 76 61 72 20 73 75 62 4d 65 6e        var subMen
2d20: 75 20 3d 20 74 6f 2e d0 92 d1 81 d1 82 d0 b0 d0  u = to..........
2d30: b2 d0 b8 d1 82 d1 8c 28 73 74 61 72 74 49 64 78  .......(startIdx
2d40: 2c 20 27 27 2c 20 d0 a2 d0 b8 d0 bf d0 9a d0 bd  , '', ..........
2d50: d0 be d0 bf d0 ba d0 b8 d0 9a d0 be d0 bc d0 b0  ................
2d60: d0 bd d0 b4 d0 bd d0 be d0 b9 d0 9f d0 b0 d0 bd  ................
2d70: d0 b5 d0 bb d0 b8 2e d0 9f d0 be d0 b4 d0 bc d0  ................
2d80: b5 d0 bd d1 8e 29 0d 0a 20 20 20 20 20 20 20 20  .....)..        
2d90: 20 20 20 20 20 20 20 20 20 20 20 20 74 75 6e 65              tune
2da0: 42 75 74 74 6f 6e 28 73 75 62 4d 65 6e 75 2c 20  Button(subMenu, 
2db0: 63 6d 64 2e 70 61 72 61 6d 73 29 0d 0a 20 20 20  cmd.params)..   
2dc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2dd0: 20 49 6e 73 65 72 74 43 6d 64 42 75 74 74 6f 6e   InsertCmdButton
2de0: 73 28 63 6d 64 2e 62 75 74 74 6f 6e 73 2c 20 73  s(cmd.buttons, s
2df0: 75 62 4d 65 6e 75 2e d0 9a d0 bd d0 be d0 bf d0  ubMenu..........
2e00: ba d0 b8 2c 20 30 29 0d 0a 20 20 20 20 20 20 20  ..., 0)..       
2e10: 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20           }..    
2e20: 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65              else
2e30: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
2e40: 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20    {..           
2e50: 20 20 20 20 20 20 20 20 20 76 61 72 20 62 75 74           var but
2e60: 74 6f 6e 20 3d 20 74 6f 2e d0 92 d1 81 d1 82 d0  ton = to........
2e70: b0 d0 b2 d0 b8 d1 82 d1 8c 28 73 74 61 72 74 49  .........(startI
2e80: 64 78 2c 20 63 6d 64 2e 69 64 2c 20 d0 a2 d0 b8  dx, cmd.id, ....
2e90: d0 bf d0 9a d0 bd d0 be d0 bf d0 ba d0 b8 d0 9a  ................
2ea0: d0 be d0 bc d0 b0 d0 bd d0 b4 d0 bd d0 be d0 b9  ................
2eb0: d0 9f d0 b0 d0 bd d0 b5 d0 bb d0 b8 2e d0 94 d0  ................
2ec0: b5 d0 b9 d1 81 d1 82 d0 b2 d0 b8 d0 b5 2c 20 75  ............., u
2ed0: 6e 64 65 66 69 6e 65 64 2c 20 76 38 4e 65 77 28  ndefined, v8New(
2ee0: 22 d0 94 d0 b5 d0 b9 d1 81 d1 82 d0 b2 d0 b8 d0  "...............
2ef0: b5 22 2c 20 22 5f 6f 6e 41 64 64 69 74 69 6f 6e  .", "_onAddition
2f00: 61 6c 42 75 74 74 6f 6e 22 29 29 0d 0a 20 20 20  alButton"))..   
2f10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2f20: 20 74 75 6e 65 42 75 74 74 6f 6e 28 62 75 74 74   tuneButton(butt
2f30: 6f 6e 2c 20 63 6d 64 2e 70 61 72 61 6d 73 29 0d  on, cmd.params).
2f40: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
2f50: 20 20 20 20 20 69 66 28 21 70 54 68 69 73 2e 68       if(!pThis.h
2f60: 61 6e 64 6c 65 72 73 29 0d 0a 20 20 20 20 20 20  andlers)..      
2f70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2f80: 20 20 70 54 68 69 73 2e 68 61 6e 64 6c 65 72 73    pThis.handlers
2f90: 20 3d 20 7b 7d 0d 0a 20 20 20 20 20 20 20 20 20   = {}..         
2fa0: 20 20 20 20 20 20 20 20 20 20 20 70 54 68 69 73             pThis
2fb0: 2e 68 61 6e 64 6c 65 72 73 5b 63 6d 64 2e 69 64  .handlers[cmd.id
2fc0: 5d 20 3d 20 63 6d 64 2e 68 61 6e 64 6c 65 72 0d  ] = cmd.handler.
2fd0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
2fe0: 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20   }..            
2ff0: 20 20 20 20 73 74 61 72 74 49 64 78 2b 2b 0d 0a      startIdx++..
3000: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3010: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d  ..            }.
3020: 0a 20 20 20 20 20 20 20 20 7d 29 28 63 6f 6d 6d  .        })(comm
3030: 61 6e 64 73 2c 20 74 68 69 73 2e 66 6f 72 6d 2e  ands, this.form.
3040: 43 6f 6e 74 72 6f 6c 73 2e 43 6d 64 42 61 72 4d  Controls.CmdBarM
3050: 61 69 6e 2e d0 9a d0 bd d0 be d0 bf d0 ba d0 b8  ain.............
3060: 2c 20 30 29 0d 0a 20 20 20 20 7d 2c 0d 0a 20 20  , 0)..    },..  
3070: 20 20 2f 2f 20 d0 9e d0 b1 d1 80 d0 b0 d0 b1 d0    // ...........
3080: be d1 82 d1 87 d0 b8 d0 ba 20 d0 bd d0 b0 d0 b6  ......... ......
3090: d0 b0 d1 82 d0 b8 d0 b9 20 d0 b4 d0 be d0 bf d0  ........ .......
30a0: be d0 bb d0 bd d0 b8 d1 82 d0 b5 d0 bb d1 8c d0  ................
30b0: bd d1 8b d1 85 20 d0 ba d0 bd d0 be d0 bf d0 be  ..... ..........
30c0: d0 ba 0d 0a 20 20 20 20 5f 6f 6e 41 64 64 69 74  ....    _onAddit
30d0: 69 6f 6e 61 6c 42 75 74 74 6f 6e 3a 20 66 75 6e  ionalButton: fun
30e0: 63 74 69 6f 6e 28 62 75 74 74 6f 6e 29 7b 0d 0a  ction(button){..
30f0: 20 20 20 20 20 20 20 20 62 75 74 74 6f 6e 20 3d          button =
3100: 20 62 75 74 74 6f 6e 2e 76 61 6c 0d 0a 20 20 20   button.val..   
3110: 20 20 20 20 20 76 61 72 20 53 65 6c 65 63 74 65       var Selecte
3120: 64 56 61 6c 20 3d 20 74 68 69 73 2e 66 6f 72 6d  dVal = this.form
3130: 2e 43 6f 6e 74 72 6f 6c 73 2e 56 61 6c 75 65 73  .Controls.Values
3140: 4c 69 73 74 2e 43 75 72 72 65 6e 74 52 6f 77 3b  List.CurrentRow;
3150: 0d 0a 20 20 20 20 20 20 20 20 69 66 28 53 65 6c  ..        if(Sel
3160: 65 63 74 65 64 56 61 6c 29 0d 0a 20 20 20 20 20  ectedVal)..     
3170: 20 20 20 20 20 20 20 53 65 6c 65 63 74 65 64 56         SelectedV
3180: 61 6c 20 3d 20 53 65 6c 65 63 74 65 64 56 61 6c  al = SelectedVal
3190: 2e 56 61 6c 75 65 3b 0d 0a 20 20 20 20 20 20 20  .Value;..       
31a0: 20 74 68 69 73 2e 68 61 6e 64 6c 65 72 73 5b 62   this.handlers[b
31b0: 75 74 74 6f 6e 2e d0 98 d0 bc d1 8f 5d 28 74 68  utton.......](th
31c0: 69 73 2c 20 53 65 6c 65 63 74 65 64 56 61 6c 2c  is, SelectedVal,
31d0: 20 62 75 74 74 6f 6e 29 0d 0a 20 20 20 20 7d 0d   button)..    }.
31e0: 0a 7d 29 3b 0d 0a                                .});..