Hex Artifact Content
Not logged in

Artifact d0527f77fa102d004186c830c424df392eb1f9d6:


0000: 2f 2a 20 54 68 69 73 20 66 69 6c 65 20 69 73 20  /* This file is 
0010: 61 20 70 61 72 74 20 6f 66 20 43 61 6e 44 79 44  a part of CanDyD
0020: 4f 43 20 66 69 6c 65 73 65 74 2e 0a 20 20 20 46  OC fileset..   F
0030: 69 6c 65 20 69 73 20 77 72 69 74 74 65 6e 20 62  ile is written b
0040: 79 20 56 69 63 74 6f 72 20 4e 61 6b 6f 72 79 61  y Victor Nakorya
0050: 6b 6f 76 20 61 6e 64 20 70 6c 61 63 65 64 20 69  kov and placed i
0060: 6e 74 6f 20 74 68 65 20 70 75 62 6c 69 63 20 64  nto the public d
0070: 6f 6d 61 69 6e 2e 0a 0a 20 20 20 54 68 69 73 20  omain...   This 
0080: 66 69 6c 65 20 69 73 20 6a 61 76 61 73 63 72 69  file is javascri
0090: 70 74 20 77 69 74 68 20 63 6c 61 73 73 65 73 20  pt with classes 
00a0: 74 68 61 74 20 72 65 70 72 65 73 65 6e 74 73 20  that represents 
00b0: 6e 61 74 69 76 65 20 73 74 79 6c 65 20 74 72 65  native style tre
00c0: 65 20 63 6f 6e 74 72 6f 6c 2e 20 2a 2f 0d 0a 20  e control. */.. 
00d0: 20 20 0d 0a 76 61 72 20 70 6d 4e 6f 6e 65 20 3d    ..var pmNone =
00e0: 20 30 3b 0d 0a 76 61 72 20 70 6d 50 6c 75 73 20   0;..var pmPlus 
00f0: 3d 20 31 3b 0d 0a 76 61 72 20 70 6d 4d 69 6e 75  = 1;..var pmMinu
0100: 73 20 3d 20 32 3b 0d 0a 0d 0a 76 61 72 20 68 6c  s = 2;....var hl
0110: 4e 6f 6e 65 20 3d 20 30 3b 0d 0a 76 61 72 20 68  None = 0;..var h
0120: 6c 47 72 65 79 20 3d 20 31 3b 0d 0a 76 61 72 20  lGrey = 1;..var 
0130: 68 6c 53 65 6c 65 63 74 65 64 20 3d 20 32 3b 0d  hlSelected = 2;.
0140: 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 54 72 65 65  ...function Tree
0150: 56 69 65 77 28 68 72 65 66 4d 6f 64 65 29 0d 0a  View(hrefMode)..
0160: 7b 0d 0a 20 20 20 20 74 68 69 73 2e 64 6f 6d 45  {..    this.domE
0170: 6e 74 72 79 20 3d 20 64 6f 63 75 6d 65 6e 74 2e  ntry = document.
0180: 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 22 64  createElement("d
0190: 69 76 22 29 3b 0d 0a 20 20 20 20 74 68 69 73 2e  iv");..    this.
01a0: 63 68 69 6c 64 72 65 6e 20 3d 20 6e 65 77 20 41  children = new A
01b0: 72 72 61 79 28 29 3b 0d 0a 20 20 20 20 74 68 69  rray();..    thi
01c0: 73 2e 73 65 6c 65 63 74 69 6f 6e 20 3d 20 6e 75  s.selection = nu
01d0: 6c 6c 3b 0d 0a 20 20 20 20 74 68 69 73 2e 68 72  ll;..    this.hr
01e0: 65 66 4d 6f 64 65 20 3d 20 68 72 65 66 4d 6f 64  efMode = hrefMod
01f0: 65 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 74 68  e;..    ..    th
0200: 69 73 2e 63 72 65 61 74 65 42 72 61 6e 63 68 20  is.createBranch 
0210: 3d 20 66 75 6e 63 74 69 6f 6e 28 74 65 78 74 2c  = function(text,
0220: 20 69 63 6f 6e 53 72 63 29 0d 0a 20 20 20 20 7b   iconSrc)..    {
0230: 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20 72 6f  ..        var ro
0240: 6f 74 20 3d 20 6e 65 77 20 54 72 65 65 4e 6f 64  ot = new TreeNod
0250: 65 28 74 65 78 74 2c 20 69 63 6f 6e 53 72 63 2c  e(text, iconSrc,
0260: 20 74 68 69 73 2e 68 72 65 66 4d 6f 64 65 29 3b   this.hrefMode);
0270: 0d 0a 20 20 20 20 20 20 20 20 72 6f 6f 74 2e 6f  ..        root.o
0280: 77 6e 65 72 20 3d 20 74 68 69 73 3b 0d 0a 20 20  wner = this;..  
0290: 20 20 20 20 20 20 74 68 69 73 2e 63 68 69 6c 64        this.child
02a0: 72 65 6e 5b 20 74 68 69 73 2e 63 68 69 6c 64 72  ren[ this.childr
02b0: 65 6e 2e 6c 65 6e 67 74 68 20 5d 20 3d 20 72 6f  en.length ] = ro
02c0: 6f 74 3b 0d 0a 20 20 20 20 20 20 20 20 74 68 69  ot;..        thi
02d0: 73 2e 64 6f 6d 45 6e 74 72 79 2e 61 70 70 65 6e  s.domEntry.appen
02e0: 64 43 68 69 6c 64 28 20 72 6f 6f 74 2e 64 6f 6d  dChild( root.dom
02f0: 45 6e 74 72 79 20 29 3b 0d 0a 20 20 20 20 20 20  Entry );..      
0300: 20 20 72 65 74 75 72 6e 20 72 6f 6f 74 3b 0d 0a    return root;..
0310: 20 20 20 20 7d 0d 0a 20 20 20 20 0d 0a 20 20 20      }..    ..   
0320: 20 74 68 69 73 2e 62 72 61 6e 63 68 20 3d 20 66   this.branch = f
0330: 75 6e 63 74 69 6f 6e 28 74 65 78 74 29 0d 0a 20  unction(text).. 
0340: 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 76 61     {..        va
0350: 72 20 72 65 74 20 3d 20 6e 75 6c 6c 3b 0d 0a 20  r ret = null;.. 
0360: 20 20 20 20 20 20 20 66 6f 72 20 28 76 61 72 20         for (var 
0370: 69 20 3d 20 30 3b 20 69 20 3c 20 74 68 69 73 2e  i = 0; i < this.
0380: 63 68 69 6c 64 72 65 6e 2e 6c 65 6e 67 74 68 3b  children.length;
0390: 20 2b 2b 69 29 0d 0a 20 20 20 20 20 20 20 20 20   ++i)..         
03a0: 20 20 20 69 66 20 28 74 68 69 73 2e 63 68 69 6c     if (this.chil
03b0: 64 72 65 6e 5b 69 5d 2e 74 65 78 74 45 6c 65 6d  dren[i].textElem
03c0: 65 6e 74 2e 64 61 74 61 20 3d 3d 20 74 65 78 74  ent.data == text
03d0: 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b  )..            {
03e0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
03f0: 20 20 72 65 74 20 3d 20 74 68 69 73 2e 63 68 69    ret = this.chi
0400: 6c 64 72 65 6e 5b 69 5d 3b 0d 0a 20 20 20 20 20  ldren[i];..     
0410: 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b             break
0420: 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d  ;..            }
0430: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a  ..            ..
0440: 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 72          return r
0450: 65 74 3b 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20  et;..    }..    
0460: 0d 0a 20 20 20 20 74 68 69 73 2e 64 6f 6d 45 6e  ..    this.domEn
0470: 74 72 79 2e 73 74 79 6c 65 2e 66 6f 6e 74 53 69  try.style.fontSi
0480: 7a 65 20 3d 20 22 31 30 70 78 22 3b 0d 0a 20 20  ze = "10px";..  
0490: 20 20 74 68 69 73 2e 64 6f 6d 45 6e 74 72 79 2e    this.domEntry.
04a0: 73 74 79 6c 65 2e 63 75 72 73 6f 72 20 3d 20 22  style.cursor = "
04b0: 64 65 66 61 75 6c 74 22 3b 0d 0a 20 20 20 20 74  default";..    t
04c0: 68 69 73 2e 64 6f 6d 45 6e 74 72 79 2e 73 74 79  his.domEntry.sty
04d0: 6c 65 2e 77 68 69 74 65 53 70 61 63 65 20 3d 20  le.whiteSpace = 
04e0: 22 6e 6f 77 72 61 70 22 3b 0d 0a 7d 0d 0a 0d 0a  "nowrap";..}....
04f0: 76 61 72 20 69 64 43 6f 75 6e 74 65 72 20 3d 20  var idCounter = 
0500: 30 3b 0d 0a 66 75 6e 63 74 69 6f 6e 20 54 72 65  0;..function Tre
0510: 65 4e 6f 64 65 28 74 65 78 74 2c 20 69 63 6f 6e  eNode(text, icon
0520: 53 72 63 2c 20 68 72 65 66 4d 6f 64 65 29 0d 0a  Src, hrefMode)..
0530: 7b 0d 0a 20 20 20 20 74 68 69 73 2e 69 64 20 20  {..    this.id  
0540: 20 20 20 20 20 20 20 20 20 20 20 3d 20 69 64 43             = idC
0550: 6f 75 6e 74 65 72 2b 2b 3b 0d 0a 20 20 20 20 74  ounter++;..    t
0560: 68 69 73 2e 70 61 72 65 6e 74 4e 6f 64 65 20 20  his.parentNode  
0570: 20 20 20 3d 20 6e 75 6c 6c 3b 0d 0a 20 20 20 20     = null;..    
0580: 74 68 69 73 2e 63 68 69 6c 64 72 65 6e 20 20 20  this.children   
0590: 20 20 20 20 3d 20 6e 65 77 20 41 72 72 61 79 28      = new Array(
05a0: 29 3b 0d 0a 20 20 20 20 74 68 69 73 2e 64 6f 6d  );..    this.dom
05b0: 45 6e 74 72 79 20 20 20 20 20 20 20 3d 20 64 6f  Entry       = do
05c0: 63 75 6d 65 6e 74 2e 63 72 65 61 74 65 45 6c 65  cument.createEle
05d0: 6d 65 6e 74 28 22 64 69 76 22 29 3b 0d 0a 20 20  ment("div");..  
05e0: 20 20 74 68 69 73 2e 69 63 6f 6e 20 20 20 20 20    this.icon     
05f0: 20 20 20 20 20 20 3d 20 64 6f 63 75 6d 65 6e 74        = document
0600: 2e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 22  .createElement("
0610: 69 6d 67 22 29 3b 0d 0a 20 20 20 20 74 68 69 73  img");..    this
0620: 2e 74 65 78 74 45 6c 65 6d 65 6e 74 20 20 20 20  .textElement    
0630: 3d 20 64 6f 63 75 6d 65 6e 74 2e 63 72 65 61 74  = document.creat
0640: 65 54 65 78 74 4e 6f 64 65 28 74 65 78 74 29 3b  eTextNode(text);
0650: 0d 0a 20 20 20 20 74 68 69 73 2e 74 65 78 74 53  ..    this.textS
0660: 70 61 6e 20 20 20 20 20 20 20 3d 20 64 6f 63 75  pan       = docu
0670: 6d 65 6e 74 2e 63 72 65 61 74 65 45 6c 65 6d 65  ment.createEleme
0680: 6e 74 28 22 73 70 61 6e 22 29 3b 0d 0a 20 20 20  nt("span");..   
0690: 20 74 68 69 73 2e 6c 69 6e 65 44 69 76 20 20 20   this.lineDiv   
06a0: 20 20 20 20 20 3d 20 64 6f 63 75 6d 65 6e 74 2e       = document.
06b0: 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 22 64  createElement("d
06c0: 69 76 22 29 3b 0d 0a 20 20 20 20 74 68 69 73 2e  iv");..    this.
06d0: 68 69 65 72 61 72 63 68 79 49 6d 67 73 20 20 3d  hierarchyImgs  =
06e0: 20 6e 65 77 20 41 72 72 61 79 28 29 3b 0d 0a 20   new Array();.. 
06f0: 20 20 20 74 68 69 73 2e 6f 6e 63 6c 69 63 6b 20     this.onclick 
0700: 20 20 20 20 20 20 20 3d 20 6e 75 6c 6c 3b 0d 0a         = null;..
0710: 20 20 20 20 0d 0a 20 20 20 20 66 75 6e 63 74 69      ..    functi
0720: 6f 6e 20 63 72 65 61 74 65 49 63 6f 6e 28 29 0d  on createIcon().
0730: 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20  .    {..        
0740: 76 61 72 20 69 6d 67 20 3d 20 64 6f 63 75 6d 65  var img = docume
0750: 6e 74 2e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74  nt.createElement
0760: 28 22 69 6d 67 22 29 3b 0d 0a 20 20 20 20 20 20  ("img");..      
0770: 20 20 69 6d 67 2e 73 74 79 6c 65 2e 76 65 72 74    img.style.vert
0780: 69 63 61 6c 41 6c 69 67 6e 20 3d 20 22 6d 69 64  icalAlign = "mid
0790: 64 6c 65 22 3b 0d 0a 20 20 20 20 20 20 20 20 69  dle";..        i
07a0: 6d 67 2e 73 74 79 6c 65 2e 70 6f 73 69 74 69 6f  mg.style.positio
07b0: 6e 20 3d 20 22 72 65 6c 61 74 69 76 65 22 3b 0d  n = "relative";.
07c0: 0a 20 20 20 20 20 20 20 20 69 6d 67 2e 73 74 79  .        img.sty
07d0: 6c 65 2e 74 6f 70 20 3d 20 22 2d 31 70 78 22 3b  le.top = "-1px";
07e0: 0d 0a 20 20 20 20 20 20 20 20 69 6d 67 2e 77 69  ..        img.wi
07f0: 64 74 68 20 3d 20 31 36 3b 0d 0a 20 20 20 20 20  dth = 16;..     
0800: 20 20 20 69 6d 67 2e 68 65 69 67 68 74 20 3d 20     img.height = 
0810: 31 36 3b 0d 0a 20 20 20 20 20 20 20 20 72 65 74  16;..        ret
0820: 75 72 6e 20 69 6d 67 3b 0d 0a 20 20 20 20 7d 0d  urn img;..    }.
0830: 0a 20 20 20 20 0d 0a 20 20 20 20 66 75 6e 63 74  .    ..    funct
0840: 69 6f 6e 20 63 72 65 61 74 65 48 69 65 72 61 72  ion createHierar
0850: 63 68 79 49 6d 61 67 65 28 29 0d 0a 20 20 20 20  chyImage()..    
0860: 7b 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20 69  {..        var i
0870: 6d 67 20 3d 20 63 72 65 61 74 65 49 63 6f 6e 28  mg = createIcon(
0880: 29 3b 0d 0a 20 20 20 20 20 20 20 20 69 6d 67 2e  );..        img.
0890: 70 6f 69 6e 74 73 54 6f 70 20 3d 20 66 61 6c 73  pointsTop = fals
08a0: 65 3b 0d 0a 20 20 20 20 20 20 20 20 69 6d 67 2e  e;..        img.
08b0: 70 6f 69 6e 74 73 42 6f 74 74 6f 6d 20 3d 20 66  pointsBottom = f
08c0: 61 6c 73 65 3b 0d 0a 20 20 20 20 20 20 20 20 69  alse;..        i
08d0: 6d 67 2e 70 6f 69 6e 74 73 52 69 67 68 74 20 3d  mg.pointsRight =
08e0: 20 66 61 6c 73 65 3b 0d 0a 20 20 20 20 20 20 20   false;..       
08f0: 20 69 6d 67 2e 70 6d 53 74 61 74 65 20 3d 20 70   img.pmState = p
0900: 6d 4e 6f 6e 65 3b 0d 0a 20 20 20 20 20 20 20 20  mNone;..        
0910: 72 65 74 75 72 6e 20 69 6d 67 3b 0d 0a 20 20 20  return img;..   
0920: 20 7d 0d 0a 20 20 20 20 0d 0a 20 20 20 20 66 75   }..    ..    fu
0930: 6e 63 74 69 6f 6e 20 67 65 6e 48 69 65 72 61 72  nction genHierar
0940: 63 68 79 49 6d 61 67 65 53 72 63 28 68 69 65 72  chyImageSrc(hier
0950: 61 72 63 68 79 49 6d 67 29 0d 0a 20 20 20 20 7b  archyImg)..    {
0960: 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20 6e 61  ..        var na
0970: 6d 65 20 3d 20 22 22 3b 0d 0a 20 20 20 20 20 20  me = "";..      
0980: 20 20 69 66 20 28 68 69 65 72 61 72 63 68 79 49    if (hierarchyI
0990: 6d 67 2e 70 6f 69 6e 74 73 54 6f 70 29 0d 0a 20  mg.pointsTop).. 
09a0: 20 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 20             name 
09b0: 2b 3d 20 22 74 22 3b 0d 0a 20 20 20 20 20 20 20  += "t";..       
09c0: 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 69       ..        i
09d0: 66 20 28 68 69 65 72 61 72 63 68 79 49 6d 67 2e  f (hierarchyImg.
09e0: 70 6f 69 6e 74 73 42 6f 74 74 6f 6d 29 0d 0a 20  pointsBottom).. 
09f0: 20 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 20             name 
0a00: 2b 3d 20 22 62 22 3b 0d 0a 20 20 20 20 20 20 20  += "b";..       
0a10: 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 69       ..        i
0a20: 66 20 28 68 69 65 72 61 72 63 68 79 49 6d 67 2e  f (hierarchyImg.
0a30: 70 6f 69 6e 74 73 52 69 67 68 74 29 0d 0a 20 20  pointsRight)..  
0a40: 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 20 2b            name +
0a50: 3d 20 22 72 22 3b 0d 0a 20 20 20 20 20 20 20 20  = "r";..        
0a60: 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 69 66      ..        if
0a70: 20 28 68 69 65 72 61 72 63 68 79 49 6d 67 2e 70   (hierarchyImg.p
0a80: 6d 53 74 61 74 65 20 3d 3d 20 70 6d 50 6c 75 73  mState == pmPlus
0a90: 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 6e  )..            n
0aa0: 61 6d 65 20 2b 3d 20 22 70 22 3b 0d 0a 20 20 20  ame += "p";..   
0ab0: 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 68 69       else if (hi
0ac0: 65 72 61 72 63 68 79 49 6d 67 2e 70 6d 53 74 61  erarchyImg.pmSta
0ad0: 74 65 20 3d 3d 20 70 6d 4d 69 6e 75 73 29 0d 0a  te == pmMinus)..
0ae0: 20 20 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65              name
0af0: 20 2b 3d 20 22 6d 22 3b 0d 0a 20 20 20 20 20 20   += "m";..      
0b00: 20 20 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28    ..        if (
0b10: 6e 61 6d 65 20 3d 3d 20 22 22 29 0d 0a 20 20 20  name == "")..   
0b20: 20 20 20 20 20 20 20 20 20 6e 61 6d 65 20 3d 20           name = 
0b30: 22 73 68 69 6d 22 3b 0d 0a 20 20 20 20 20 20 20  "shim";..       
0b40: 20 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72   ..        retur
0b50: 6e 20 22 63 61 6e 64 79 64 6f 63 2f 69 6d 67 2f  n "candydoc/img/
0b60: 74 72 65 65 2f 22 20 2b 20 6e 61 6d 65 20 2b 20  tree/" + name + 
0b70: 22 2e 67 69 66 22 3b 0d 0a 20 20 20 20 7d 0d 0a  ".gif";..    }..
0b80: 20 20 20 20 0d 0a 20 20 20 20 66 75 6e 63 74 69      ..    functi
0b90: 6f 6e 20 73 65 74 53 72 63 28 69 63 6f 6e 2c 20  on setSrc(icon, 
0ba0: 73 72 63 29 0d 0a 20 20 20 20 7b 0d 0a 20 20 20  src)..    {..   
0bb0: 20 20 20 20 20 69 63 6f 6e 2e 73 72 63 20 3d 20       icon.src = 
0bc0: 73 72 63 3b 0d 0a 20 20 20 20 20 20 20 20 2f 2f  src;..        //
0bd0: 20 41 66 74 65 72 20 73 72 63 20 63 68 61 6e 67   After src chang
0be0: 65 20 77 69 64 74 68 20 61 6e 64 20 68 65 69 67  e width and heig
0bf0: 68 74 20 61 72 65 20 72 65 73 65 74 65 64 20 69  ht are reseted i
0c00: 6e 20 49 45 2e 0d 0a 20 20 20 20 20 20 20 20 2f  n IE...        /
0c10: 2f 20 42 75 67 20 77 6f 72 6b 61 72 6f 75 6e 64  / Bug workaround
0c20: 3a 0d 0a 20 20 20 20 20 20 20 20 69 63 6f 6e 2e  :..        icon.
0c30: 77 69 64 74 68 20 3d 20 31 36 3b 0d 0a 20 20 20  width = 16;..   
0c40: 20 20 20 20 20 69 63 6f 6e 2e 68 65 69 67 68 74       icon.height
0c50: 20 3d 20 31 36 3b 0d 0a 20 20 20 20 7d 0d 0a 20   = 16;..    }.. 
0c60: 20 20 20 0d 0a 20 20 20 20 74 68 69 73 2e 63 72     ..    this.cr
0c70: 65 61 74 65 43 68 69 6c 64 20 3d 20 66 75 6e 63  eateChild = func
0c80: 74 69 6f 6e 28 74 65 78 74 2c 20 69 63 6f 6e 53  tion(text, iconS
0c90: 72 63 29 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20  rc)..    {..    
0ca0: 20 20 20 20 76 61 72 20 63 68 69 6c 64 20 3d 20      var child = 
0cb0: 6e 65 77 20 54 72 65 65 4e 6f 64 65 28 74 65 78  new TreeNode(tex
0cc0: 74 2c 20 69 63 6f 6e 53 72 63 2c 20 74 68 69 73  t, iconSrc, this
0cd0: 2e 6f 77 6e 65 72 2e 68 72 65 66 4d 6f 64 65 29  .owner.hrefMode)
0ce0: 3b 0d 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e  ;..        this.
0cf0: 63 68 69 6c 64 72 65 6e 5b 20 74 68 69 73 2e 63  children[ this.c
0d00: 68 69 6c 64 72 65 6e 2e 6c 65 6e 67 74 68 20 5d  hildren.length ]
0d10: 20 3d 20 63 68 69 6c 64 3b 0d 0a 20 20 20 20 20   = child;..     
0d20: 20 20 20 74 68 69 73 2e 64 6f 6d 45 6e 74 72 79     this.domEntry
0d30: 2e 61 70 70 65 6e 64 43 68 69 6c 64 28 20 63 68  .appendChild( ch
0d40: 69 6c 64 2e 64 6f 6d 45 6e 74 72 79 20 29 3b 0d  ild.domEntry );.
0d50: 0a 20 20 20 20 20 20 20 20 63 68 69 6c 64 2e 70  .        child.p
0d60: 61 72 65 6e 74 4e 6f 64 65 20 3d 20 74 68 69 73  arentNode = this
0d70: 3b 0d 0a 20 20 20 20 20 20 20 20 63 68 69 6c 64  ;..        child
0d80: 2e 6f 77 6e 65 72 20 3d 20 74 68 69 73 2e 6f 77  .owner = this.ow
0d90: 6e 65 72 3b 0d 0a 20 20 20 20 20 20 20 20 0d 0a  ner;..        ..
0da0: 20 20 20 20 20 20 20 20 2f 2f 20 69 6e 73 65 72          // inser
0db0: 74 20 68 69 65 72 61 72 63 68 79 20 69 6d 61 67  t hierarchy imag
0dc0: 65 73 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20  es according to 
0dd0: 64 65 65 70 6e 65 73 73 20 6c 65 76 65 6c 0d 0a  deepness level..
0de0: 20 20 20 20 20 20 20 20 2f 2f 20 6f 66 20 63 72          // of cr
0df0: 65 61 74 65 64 20 63 68 69 6c 64 2e 0d 0a 20 20  eated child...  
0e00: 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20        ..        
0e10: 69 66 20 28 74 68 69 73 2e 63 68 69 6c 64 72 65  if (this.childre
0e20: 6e 2e 6c 65 6e 67 74 68 20 3e 20 31 29 0d 0a 20  n.length > 1).. 
0e30: 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20         {..      
0e40: 20 20 20 20 20 20 2f 2f 20 74 68 65 72 65 20 77        // there w
0e50: 65 72 65 20 61 6c 72 65 61 64 79 20 61 64 64 65  ere already adde
0e60: 64 20 63 68 69 6c 64 20 62 65 66 6f 72 65 2e 20  d child before. 
0e70: 53 6f 20 63 6f 70 79 20 60 6c 65 76 65 6c 2d 31  So copy `level-1
0e80: 60 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f  `..            /
0e90: 2f 20 68 69 65 72 61 72 63 68 79 20 69 6d 61 67  / hierarchy imag
0ea0: 65 73 20 66 72 6f 6d 20 69 74 2e 0d 0a 20 20 20  es from it...   
0eb0: 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20           ..     
0ec0: 20 20 20 20 20 20 20 76 61 72 20 70 72 65 76 41         var prevA
0ed0: 64 64 65 64 43 68 69 6c 64 20 3d 20 74 68 69 73  ddedChild = this
0ee0: 2e 63 68 69 6c 64 72 65 6e 5b 20 74 68 69 73 2e  .children[ this.
0ef0: 63 68 69 6c 64 72 65 6e 2e 6c 65 6e 67 74 68 20  children.length 
0f00: 2d 20 32 20 5d 3b 0d 0a 20 20 20 20 20 20 20 20  - 2 ];..        
0f10: 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20      ..          
0f20: 20 20 66 6f 72 20 28 76 61 72 20 69 20 3d 20 30    for (var i = 0
0f30: 3b 20 69 20 3c 20 70 72 65 76 41 64 64 65 64 43  ; i < prevAddedC
0f40: 68 69 6c 64 2e 68 69 65 72 61 72 63 68 79 49 6d  hild.hierarchyIm
0f50: 67 73 2e 6c 65 6e 67 74 68 20 2d 20 31 3b 20 2b  gs.length - 1; +
0f60: 2b 69 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20  +i)..           
0f70: 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20   {..            
0f80: 20 20 20 20 76 61 72 20 70 72 65 76 41 64 64 65      var prevAdde
0f90: 64 43 68 69 6c 64 49 6d 67 20 3d 20 70 72 65 76  dChildImg = prev
0fa0: 41 64 64 65 64 43 68 69 6c 64 2e 68 69 65 72 61  AddedChild.hiera
0fb0: 72 63 68 79 49 6d 67 73 5b 69 5d 3b 0d 0a 20 20  rchyImgs[i];..  
0fc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61                va
0fd0: 72 20 69 6d 67 20 3d 20 63 72 65 61 74 65 48 69  r img = createHi
0fe0: 65 72 61 72 63 68 79 49 6d 61 67 65 28 29 3b 0d  erarchyImage();.
0ff0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
1000: 20 73 65 74 53 72 63 28 69 6d 67 2c 20 70 72 65   setSrc(img, pre
1010: 76 41 64 64 65 64 43 68 69 6c 64 49 6d 67 2e 73  vAddedChildImg.s
1020: 72 63 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20  rc);..          
1030: 20 20 20 20 20 20 69 6d 67 2e 70 6f 69 6e 74 73        img.points
1040: 54 6f 70 20 3d 20 70 72 65 76 41 64 64 65 64 43  Top = prevAddedC
1050: 68 69 6c 64 49 6d 67 2e 70 6f 69 6e 74 73 54 6f  hildImg.pointsTo
1060: 70 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  p;..            
1070: 20 20 20 20 69 6d 67 2e 70 6f 69 6e 74 73 42 6f      img.pointsBo
1080: 74 74 6f 6d 20 3d 20 70 72 65 76 41 64 64 65 64  ttom = prevAdded
1090: 43 68 69 6c 64 49 6d 67 2e 70 6f 69 6e 74 73 42  ChildImg.pointsB
10a0: 6f 74 74 6f 6d 3b 0d 0a 20 20 20 20 20 20 20 20  ottom;..        
10b0: 20 20 20 20 20 20 20 20 69 6d 67 2e 70 6f 69 6e          img.poin
10c0: 74 73 52 69 67 68 74 20 3d 20 70 72 65 76 41 64  tsRight = prevAd
10d0: 64 65 64 43 68 69 6c 64 49 6d 67 2e 70 6f 69 6e  dedChildImg.poin
10e0: 74 73 52 69 67 68 74 3b 0d 0a 20 20 20 20 20 20  tsRight;..      
10f0: 20 20 20 20 20 20 20 20 20 20 69 6d 67 2e 70 6d            img.pm
1100: 53 74 61 74 65 20 3d 20 70 72 65 76 41 64 64 65  State = prevAdde
1110: 64 43 68 69 6c 64 49 6d 67 2e 70 6d 53 74 61 74  dChildImg.pmStat
1120: 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  e;..            
1130: 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20      ..          
1140: 20 20 20 20 20 20 63 68 69 6c 64 2e 68 69 65 72        child.hier
1150: 61 72 63 68 79 49 6d 67 73 5b 20 63 68 69 6c 64  archyImgs[ child
1160: 2e 68 69 65 72 61 72 63 68 79 49 6d 67 73 2e 6c  .hierarchyImgs.l
1170: 65 6e 67 74 68 20 5d 20 3d 20 69 6d 67 3b 0d 0a  ength ] = img;..
1180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1190: 63 68 69 6c 64 2e 6c 69 6e 65 44 69 76 2e 69 6e  child.lineDiv.in
11a0: 73 65 72 74 42 65 66 6f 72 65 28 69 6d 67 2c 20  sertBefore(img, 
11b0: 63 68 69 6c 64 2e 69 63 6f 6e 29 3b 0d 0a 20 20  child.icon);..  
11c0: 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20            }..   
11d0: 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20           ..     
11e0: 20 20 20 20 20 20 20 2f 2f 20 63 68 61 6e 67 65         // change
11f0: 20 6c 61 73 74 20 68 69 65 72 61 72 63 68 79 20   last hierarchy 
1200: 69 6d 61 67 65 20 6f 66 20 70 72 65 76 41 64 64  image of prevAdd
1210: 65 64 43 68 69 6c 64 20 66 72 6f 6d 20 7c 5f 20  edChild from |_ 
1220: 74 6f 20 7c 2d 0d 0a 20 20 20 20 20 20 20 20 20  to |-..         
1230: 20 20 20 76 61 72 20 6c 61 73 74 48 69 65 72 61     var lastHiera
1240: 72 63 68 79 49 6d 67 20 3d 20 70 72 65 76 41 64  rchyImg = prevAd
1250: 64 65 64 43 68 69 6c 64 2e 68 69 65 72 61 72 63  dedChild.hierarc
1260: 68 79 49 6d 67 73 5b 20 70 72 65 76 41 64 64 65  hyImgs[ prevAdde
1270: 64 43 68 69 6c 64 2e 68 69 65 72 61 72 63 68 79  dChild.hierarchy
1280: 49 6d 67 73 2e 6c 65 6e 67 74 68 20 2d 20 31 20  Imgs.length - 1 
1290: 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  ];..            
12a0: 6c 61 73 74 48 69 65 72 61 72 63 68 79 49 6d 67  lastHierarchyImg
12b0: 2e 70 6f 69 6e 74 73 42 6f 74 74 6f 6d 20 3d 20  .pointsBottom = 
12c0: 74 72 75 65 3b 0d 0a 20 20 20 20 20 20 20 20 20  true;..         
12d0: 20 20 20 73 65 74 53 72 63 28 6c 61 73 74 48 69     setSrc(lastHi
12e0: 65 72 61 72 63 68 79 49 6d 67 2c 20 67 65 6e 48  erarchyImg, genH
12f0: 69 65 72 61 72 63 68 79 49 6d 61 67 65 53 72 63  ierarchyImageSrc
1300: 28 6c 61 73 74 48 69 65 72 61 72 63 68 79 49 6d  (lastHierarchyIm
1310: 67 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20  g));..          
1320: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a                ..
1330: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 63              // c
1340: 68 61 6e 67 65 20 68 69 65 72 61 72 63 68 79 20  hange hierarchy 
1350: 69 6d 61 67 65 73 20 6f 66 20 70 72 65 76 41 64  images of prevAd
1360: 64 65 64 43 68 69 6c 64 27 73 20 63 68 69 6c 64  dedChild's child
1370: 72 65 6e 20 6f 6e 20 69 74 27 73 20 6c 61 73 74  ren on it's last
1380: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f  ..            //
1390: 20 6c 65 76 65 6c 20 74 6f 20 7c 0d 0a 20 20 20   level to |..   
13a0: 20 20 20 20 20 20 20 20 20 70 72 65 76 41 64 64           prevAdd
13b0: 65 64 43 68 69 6c 64 2e 61 64 64 48 69 65 72 61  edChild.addHiera
13c0: 72 63 68 79 54 42 4c 69 6e 65 28 70 72 65 76 41  rchyTBLine(prevA
13d0: 64 64 65 64 43 68 69 6c 64 2e 68 69 65 72 61 72  ddedChild.hierar
13e0: 63 68 79 49 6d 67 73 2e 6c 65 6e 67 74 68 20 2d  chyImgs.length -
13f0: 20 31 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d   1);..        }.
1400: 0a 20 20 20 20 20 20 20 20 65 6c 73 65 0d 0a 20  .        else.. 
1410: 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20         {..      
1420: 20 20 20 20 20 20 2f 2f 20 74 68 69 73 20 69 73        // this is
1430: 20 61 20 66 69 72 73 74 20 63 68 69 6c 64 2e 20   a first child. 
1440: 53 6f 20 63 6f 70 79 20 60 6c 65 76 65 6c 2d 32  So copy `level-2
1450: 60 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f  `..            /
1460: 2f 20 68 69 65 72 61 72 63 68 79 20 69 6d 61 67  / hierarchy imag
1470: 65 73 20 66 72 6f 6d 20 70 61 72 65 6e 74 2c 20  es from parent, 
1480: 69 2e 65 2e 20 74 68 69 73 2e 0d 0a 20 20 20 20  i.e. this...    
1490: 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20          ..      
14a0: 20 20 20 20 20 20 66 6f 72 20 28 76 61 72 20 69        for (var i
14b0: 20 3d 20 30 3b 20 69 20 3c 20 74 68 69 73 2e 68   = 0; i < this.h
14c0: 69 65 72 61 72 63 68 79 49 6d 67 73 2e 6c 65 6e  ierarchyImgs.len
14d0: 67 74 68 20 2d 20 31 3b 20 2b 2b 69 29 0d 0a 20  gth - 1; ++i).. 
14e0: 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20             {..  
14f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61                va
1500: 72 20 70 61 72 65 6e 74 49 6d 67 20 3d 20 74 68  r parentImg = th
1510: 69 73 2e 68 69 65 72 61 72 63 68 79 49 6d 67 73  is.hierarchyImgs
1520: 5b 69 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20  [i];..          
1530: 20 20 20 20 20 20 76 61 72 20 69 6d 67 20 3d 20        var img = 
1540: 63 72 65 61 74 65 48 69 65 72 61 72 63 68 79 49  createHierarchyI
1550: 6d 61 67 65 28 29 3b 0d 0a 20 20 20 20 20 20 20  mage();..       
1560: 20 20 20 20 20 20 20 20 20 73 65 74 53 72 63 28           setSrc(
1570: 69 6d 67 2c 20 70 61 72 65 6e 74 49 6d 67 2e 73  img, parentImg.s
1580: 72 63 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20  rc);..          
1590: 20 20 20 20 20 20 69 6d 67 2e 70 6f 69 6e 74 73        img.points
15a0: 54 6f 70 20 3d 20 70 61 72 65 6e 74 49 6d 67 2e  Top = parentImg.
15b0: 70 6f 69 6e 74 73 54 6f 70 3b 0d 0a 20 20 20 20  pointsTop;..    
15c0: 20 20 20 20 20 20 20 20 20 20 20 20 69 6d 67 2e              img.
15d0: 70 6f 69 6e 74 73 42 6f 74 74 6f 6d 20 3d 20 70  pointsBottom = p
15e0: 61 72 65 6e 74 49 6d 67 2e 70 6f 69 6e 74 73 42  arentImg.pointsB
15f0: 6f 74 74 6f 6d 3b 0d 0a 20 20 20 20 20 20 20 20  ottom;..        
1600: 20 20 20 20 20 20 20 20 69 6d 67 2e 70 6f 69 6e          img.poin
1610: 74 73 52 69 67 68 74 20 3d 20 70 61 72 65 6e 74  tsRight = parent
1620: 49 6d 67 2e 70 6f 69 6e 74 73 52 69 67 68 74 3b  Img.pointsRight;
1630: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
1640: 20 20 69 6d 67 2e 70 6d 53 74 61 74 65 20 3d 20    img.pmState = 
1650: 70 61 72 65 6e 74 49 6d 67 2e 70 6d 53 74 61 74  parentImg.pmStat
1660: 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  e;..            
1670: 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20      ..          
1680: 20 20 20 20 20 20 63 68 69 6c 64 2e 68 69 65 72        child.hier
1690: 61 72 63 68 79 49 6d 67 73 5b 20 63 68 69 6c 64  archyImgs[ child
16a0: 2e 68 69 65 72 61 72 63 68 79 49 6d 67 73 2e 6c  .hierarchyImgs.l
16b0: 65 6e 67 74 68 20 5d 20 3d 20 69 6d 67 3b 0d 0a  ength ] = img;..
16c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16d0: 63 68 69 6c 64 2e 6c 69 6e 65 44 69 76 2e 69 6e  child.lineDiv.in
16e0: 73 65 72 74 42 65 66 6f 72 65 28 69 6d 67 2c 20  sertBefore(img, 
16f0: 63 68 69 6c 64 2e 69 63 6f 6e 29 3b 0d 0a 20 20  child.icon);..  
1700: 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20            }..   
1710: 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20           ..     
1720: 20 20 20 20 20 20 20 69 66 20 28 74 68 69 73 2e         if (this.
1730: 68 69 65 72 61 72 63 68 79 49 6d 67 73 2e 6c 65  hierarchyImgs.le
1740: 6e 67 74 68 20 3e 20 30 29 20 2f 2f 20 77 65 20  ngth > 0) // we 
1750: 61 72 65 20 6e 6f 74 20 72 6f 6f 74 0d 0a 20 20  are not root..  
1760: 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20            {..   
1770: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20               // 
1780: 63 68 61 6e 67 65 20 6c 61 73 74 20 68 69 65 72  change last hier
1790: 61 72 63 68 79 20 69 6d 61 67 65 20 6f 66 20 70  archy image of p
17a0: 61 72 65 6e 74 20 28 69 2e 65 2e 20 74 68 69 73  arent (i.e. this
17b0: 29 3a 20 61 64 64 20 6d 69 6e 75 73 20 74 6f 20  ): add minus to 
17c0: 69 74 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  it..            
17d0: 20 20 20 20 76 61 72 20 6c 61 73 74 48 69 65 72      var lastHier
17e0: 61 72 63 68 79 49 6d 67 20 3d 20 74 68 69 73 2e  archyImg = this.
17f0: 68 69 65 72 61 72 63 68 79 49 6d 67 73 5b 20 74  hierarchyImgs[ t
1800: 68 69 73 2e 68 69 65 72 61 72 63 68 79 49 6d 67  his.hierarchyImg
1810: 73 2e 6c 65 6e 67 74 68 20 2d 20 31 5d 3b 0d 0a  s.length - 1];..
1820: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1830: 6c 61 73 74 48 69 65 72 61 72 63 68 79 49 6d 67  lastHierarchyImg
1840: 2e 70 6d 53 74 61 74 65 20 3d 20 70 6d 4d 69 6e  .pmState = pmMin
1850: 75 73 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20  us;..           
1860: 20 20 20 20 20 73 65 74 53 72 63 28 6c 61 73 74       setSrc(last
1870: 48 69 65 72 61 72 63 68 79 49 6d 67 2c 20 67 65  HierarchyImg, ge
1880: 6e 48 69 65 72 61 72 63 68 79 49 6d 61 67 65 53  nHierarchyImageS
1890: 72 63 28 6c 61 73 74 48 69 65 72 61 72 63 68 79  rc(lastHierarchy
18a0: 49 6d 67 29 29 3b 0d 0a 20 20 20 20 20 20 20 20  Img));..        
18b0: 20 20 20 20 20 20 20 20 6c 61 73 74 48 69 65 72          lastHier
18c0: 61 72 63 68 79 49 6d 67 2e 6f 77 6e 65 72 20 3d  archyImg.owner =
18d0: 20 74 68 69 73 3b 0d 0a 20 20 20 20 20 20 20 20   this;..        
18e0: 20 20 20 20 20 20 20 20 6c 61 73 74 48 69 65 72          lastHier
18f0: 61 72 63 68 79 49 6d 67 2e 6f 6e 63 6c 69 63 6b  archyImg.onclick
1900: 20 3d 20 6e 65 77 20 46 75 6e 63 74 69 6f 6e 28   = new Function(
1910: 22 65 22 2c 20 22 74 68 69 73 2e 6f 77 6e 65 72  "e", "this.owner
1920: 2e 70 72 6f 63 65 73 73 50 4d 43 6c 69 63 6b 28  .processPMClick(
1930: 65 29 3b 22 29 3b 0d 0a 20 20 20 20 20 20 20 20  e);");..        
1940: 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20          ..      
1950: 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6d 61 6b            // mak
1960: 65 20 64 65 63 69 73 69 6f 6e 20 6f 6e 20 69 6d  e decision on im
1970: 61 67 65 20 6f 6e 20 60 6c 65 76 65 6c 2d 31 60  age on `level-1`
1980: 2e 20 49 74 20 64 65 70 65 6e 64 73 20 6f 6e 20  . It depends on 
1990: 70 61 72 65 6e 74 27 73 20 28 69 65 20 74 68 69  parent's (ie thi
19a0: 73 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  s)..            
19b0: 20 20 20 20 2f 2f 20 69 6d 61 67 65 20 6f 6e 20      // image on 
19c0: 73 61 6d 65 20 6c 65 76 65 6c 2e 0d 0a 20 20 20  same level...   
19d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72               var
19e0: 20 70 61 72 65 6e 74 4c 31 48 69 65 72 61 72 63   parentL1Hierarc
19f0: 68 79 49 6d 67 20 3d 20 6c 61 73 74 48 69 65 72  hyImg = lastHier
1a00: 61 72 63 68 79 49 6d 67 3b 0d 0a 20 20 20 20 20  archyImg;..     
1a10: 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 6c             var l
1a20: 31 48 69 65 72 61 72 63 68 79 49 6d 67 20 3d 20  1HierarchyImg = 
1a30: 63 72 65 61 74 65 48 69 65 72 61 72 63 68 79 49  createHierarchyI
1a40: 6d 61 67 65 28 29 3b 0d 0a 20 20 20 20 20 20 20  mage();..       
1a50: 20 20 20 20 20 20 20 20 20 69 66 20 28 70 61 72           if (par
1a60: 65 6e 74 4c 31 48 69 65 72 61 72 63 68 79 49 6d  entL1HierarchyIm
1a70: 67 2e 70 6f 69 6e 74 73 42 6f 74 74 6f 6d 29 0d  g.pointsBottom).
1a80: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
1a90: 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20   {..            
1aa0: 20 20 20 20 20 20 20 20 6c 31 48 69 65 72 61 72          l1Hierar
1ab0: 63 68 79 49 6d 67 2e 70 6f 69 6e 74 73 54 6f 70  chyImg.pointsTop
1ac0: 20 3d 20 74 72 75 65 3b 0d 0a 20 20 20 20 20 20   = true;..      
1ad0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 31                l1
1ae0: 48 69 65 72 61 72 63 68 79 49 6d 67 2e 70 6f 69  HierarchyImg.poi
1af0: 6e 74 73 42 6f 74 74 6f 6d 20 3d 20 74 72 75 65  ntsBottom = true
1b00: 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  ;..             
1b10: 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20     }..          
1b20: 20 20 20 20 20 20 73 65 74 53 72 63 28 6c 31 48        setSrc(l1H
1b30: 69 65 72 61 72 63 68 79 49 6d 67 2c 20 67 65 6e  ierarchyImg, gen
1b40: 48 69 65 72 61 72 63 68 79 49 6d 61 67 65 53 72  HierarchyImageSr
1b50: 63 28 6c 31 48 69 65 72 61 72 63 68 79 49 6d 67  c(l1HierarchyImg
1b60: 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20  ));..           
1b70: 20 20 20 20 20 63 68 69 6c 64 2e 68 69 65 72 61       child.hiera
1b80: 72 63 68 79 49 6d 67 73 5b 20 63 68 69 6c 64 2e  rchyImgs[ child.
1b90: 68 69 65 72 61 72 63 68 79 49 6d 67 73 2e 6c 65  hierarchyImgs.le
1ba0: 6e 67 74 68 20 5d 20 3d 20 6c 31 48 69 65 72 61  ngth ] = l1Hiera
1bb0: 72 63 68 79 49 6d 67 3b 0d 0a 20 20 20 20 20 20  rchyImg;..      
1bc0: 20 20 20 20 20 20 20 20 20 20 63 68 69 6c 64 2e            child.
1bd0: 6c 69 6e 65 44 69 76 2e 69 6e 73 65 72 74 42 65  lineDiv.insertBe
1be0: 66 6f 72 65 28 6c 31 48 69 65 72 61 72 63 68 79  fore(l1Hierarchy
1bf0: 49 6d 67 2c 20 63 68 69 6c 64 2e 69 63 6f 6e 29  Img, child.icon)
1c00: 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d  ;..            }
1c10: 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20  ..        }..   
1c20: 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 2f       ..        /
1c30: 2f 20 69 6e 20 61 6e 79 20 63 61 73 65 20 6f 6e  / in any case on
1c40: 20 6c 61 73 74 20 6c 65 76 65 6c 20 6f 75 72 20   last level our 
1c50: 63 68 69 6c 64 20 77 69 6c 6c 20 68 61 76 65 20  child will have 
1c60: 69 63 6f 6e 20 7c 5f 0d 0a 20 20 20 20 20 20 20  icon |_..       
1c70: 20 76 61 72 20 69 6d 67 20 3d 20 63 72 65 61 74   var img = creat
1c80: 65 48 69 65 72 61 72 63 68 79 49 6d 61 67 65 28  eHierarchyImage(
1c90: 29 3b 0d 0a 20 20 20 20 20 20 20 20 69 6d 67 2e  );..        img.
1ca0: 70 6f 69 6e 74 73 54 6f 70 20 3d 20 74 72 75 65  pointsTop = true
1cb0: 3b 0d 0a 20 20 20 20 20 20 20 20 69 6d 67 2e 70  ;..        img.p
1cc0: 6f 69 6e 74 73 52 69 67 68 74 20 3d 20 74 72 75  ointsRight = tru
1cd0: 65 3b 0d 0a 20 20 20 20 20 20 20 20 73 65 74 53  e;..        setS
1ce0: 72 63 28 69 6d 67 2c 20 67 65 6e 48 69 65 72 61  rc(img, genHiera
1cf0: 72 63 68 79 49 6d 61 67 65 53 72 63 28 69 6d 67  rchyImageSrc(img
1d00: 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20  ));..        .. 
1d10: 20 20 20 20 20 20 20 63 68 69 6c 64 2e 68 69 65         child.hie
1d20: 72 61 72 63 68 79 49 6d 67 73 5b 20 63 68 69 6c  rarchyImgs[ chil
1d30: 64 2e 68 69 65 72 61 72 63 68 79 49 6d 67 73 2e  d.hierarchyImgs.
1d40: 6c 65 6e 67 74 68 20 5d 20 3d 20 69 6d 67 3b 0d  length ] = img;.
1d50: 0a 20 20 20 20 20 20 20 20 63 68 69 6c 64 2e 6c  .        child.l
1d60: 69 6e 65 44 69 76 2e 69 6e 73 65 72 74 42 65 66  ineDiv.insertBef
1d70: 6f 72 65 28 69 6d 67 2c 20 63 68 69 6c 64 2e 69  ore(img, child.i
1d80: 63 6f 6e 29 3b 0d 0a 20 20 20 20 20 20 20 20 0d  con);..        .
1d90: 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20  .        return 
1da0: 63 68 69 6c 64 3b 0d 0a 20 20 20 20 7d 0d 0a 20  child;..    }.. 
1db0: 20 20 20 0d 0a 20 20 20 20 74 68 69 73 2e 6c 61     ..    this.la
1dc0: 73 74 43 68 69 6c 64 20 3d 20 66 75 6e 63 74 69  stChild = functi
1dd0: 6f 6e 28 29 0d 0a 20 20 20 20 7b 0d 0a 20 20 20  on()..    {..   
1de0: 20 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 73       return this
1df0: 2e 63 68 69 6c 64 72 65 6e 5b 20 74 68 69 73 2e  .children[ this.
1e00: 63 68 69 6c 64 72 65 6e 2e 6c 65 6e 67 74 68 20  children.length 
1e10: 2d 20 31 20 5d 3b 0d 0a 20 20 20 20 7d 0d 0a 20  - 1 ];..    }.. 
1e20: 20 20 20 0d 0a 20 20 20 20 74 68 69 73 2e 63 68     ..    this.ch
1e30: 69 6c 64 20 3d 20 66 75 6e 63 74 69 6f 6e 28 74  ild = function(t
1e40: 65 78 74 29 0d 0a 20 20 20 20 7b 0d 0a 20 20 20  ext)..    {..   
1e50: 20 20 20 20 20 76 61 72 20 72 65 74 20 3d 20 6e       var ret = n
1e60: 75 6c 6c 3b 0d 0a 20 20 20 20 20 20 20 20 66 6f  ull;..        fo
1e70: 72 20 28 76 61 72 20 69 20 3d 20 30 3b 20 69 20  r (var i = 0; i 
1e80: 3c 20 74 68 69 73 2e 63 68 69 6c 64 72 65 6e 2e  < this.children.
1e90: 6c 65 6e 67 74 68 3b 20 2b 2b 69 29 0d 0a 20 20  length; ++i)..  
1ea0: 20 20 20 20 20 20 20 20 20 20 69 66 20 28 74 68            if (th
1eb0: 69 73 2e 63 68 69 6c 64 72 65 6e 5b 69 5d 2e 74  is.children[i].t
1ec0: 65 78 74 45 6c 65 6d 65 6e 74 2e 64 61 74 61 20  extElement.data 
1ed0: 3d 3d 20 74 65 78 74 29 0d 0a 20 20 20 20 20 20  == text)..      
1ee0: 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20        {..       
1ef0: 20 20 20 20 20 20 20 20 20 72 65 74 20 3d 20 74           ret = t
1f00: 68 69 73 2e 63 68 69 6c 64 72 65 6e 5b 69 5d 3b  his.children[i];
1f10: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
1f20: 20 20 62 72 65 61 6b 3b 0d 0a 20 20 20 20 20 20    break;..      
1f30: 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20        }..       
1f40: 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 72       ..        r
1f50: 65 74 75 72 6e 20 72 65 74 3b 0d 0a 20 20 20 20  eturn ret;..    
1f60: 7d 0d 0a 20 20 20 20 0d 0a 20 20 20 20 74 68 69  }..    ..    thi
1f70: 73 2e 61 64 64 48 69 65 72 61 72 63 68 79 54 42  s.addHierarchyTB
1f80: 4c 69 6e 65 20 3d 20 66 75 6e 63 74 69 6f 6e 28  Line = function(
1f90: 6c 65 76 65 6c 29 0d 0a 20 20 20 20 7b 0d 0a 20  level)..    {.. 
1fa0: 20 20 20 20 20 20 20 66 6f 72 20 28 76 61 72 20         for (var 
1fb0: 69 20 3d 20 30 3b 20 69 20 3c 20 74 68 69 73 2e  i = 0; i < this.
1fc0: 63 68 69 6c 64 72 65 6e 2e 6c 65 6e 67 74 68 3b  children.length;
1fd0: 20 2b 2b 69 29 0d 0a 20 20 20 20 20 20 20 20 7b   ++i)..        {
1fe0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61  ..            va
1ff0: 72 20 69 6d 67 20 3d 20 74 68 69 73 2e 63 68 69  r img = this.chi
2000: 6c 64 72 65 6e 5b 69 5d 2e 68 69 65 72 61 72 63  ldren[i].hierarc
2010: 68 79 49 6d 67 73 5b 6c 65 76 65 6c 5d 3b 0d 0a  hyImgs[level];..
2020: 20 20 20 20 20 20 20 20 20 20 20 20 69 6d 67 2e              img.
2030: 70 6f 69 6e 74 73 54 6f 70 20 3d 20 74 72 75 65  pointsTop = true
2040: 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69  ;..            i
2050: 6d 67 2e 70 6f 69 6e 74 73 42 6f 74 74 6f 6d 20  mg.pointsBottom 
2060: 3d 20 74 72 75 65 3b 0d 0a 20 20 20 20 20 20 20  = true;..       
2070: 20 20 20 20 20 73 65 74 53 72 63 28 69 6d 67 2c       setSrc(img,
2080: 20 67 65 6e 48 69 65 72 61 72 63 68 79 49 6d 61   genHierarchyIma
2090: 67 65 53 72 63 28 69 6d 67 29 29 3b 0d 0a 20 20  geSrc(img));..  
20a0: 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 63            this.c
20b0: 68 69 6c 64 72 65 6e 5b 69 5d 2e 61 64 64 48 69  hildren[i].addHi
20c0: 65 72 61 72 63 68 79 54 42 4c 69 6e 65 28 6c 65  erarchyTBLine(le
20d0: 76 65 6c 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d  vel);..        }
20e0: 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 0d 0a 20  ..    }..    .. 
20f0: 20 20 20 74 68 69 73 2e 65 78 70 61 6e 64 20 3d     this.expand =
2100: 20 66 75 6e 63 74 69 6f 6e 28 29 0d 0a 20 20 20   function()..   
2110: 20 7b 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20   {..        var 
2120: 69 6d 67 20 3d 20 74 68 69 73 2e 68 69 65 72 61  img = this.hiera
2130: 72 63 68 79 49 6d 67 73 5b 20 74 68 69 73 2e 68  rchyImgs[ this.h
2140: 69 65 72 61 72 63 68 79 49 6d 67 73 2e 6c 65 6e  ierarchyImgs.len
2150: 67 74 68 20 2d 20 31 20 5d 3b 0d 0a 20 20 20 20  gth - 1 ];..    
2160: 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 69 66      ..        if
2170: 20 28 69 6d 67 2e 70 6d 53 74 61 74 65 20 3d 3d   (img.pmState ==
2180: 20 70 6d 50 6c 75 73 29 0d 0a 20 20 20 20 20 20   pmPlus)..      
2190: 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20    {..           
21a0: 20 69 6d 67 2e 70 6d 53 74 61 74 65 20 3d 20 70   img.pmState = p
21b0: 6d 4d 69 6e 75 73 3b 0d 0a 20 20 20 20 20 20 20  mMinus;..       
21c0: 20 20 20 20 20 73 65 74 53 72 63 28 69 6d 67 2c       setSrc(img,
21d0: 20 67 65 6e 48 69 65 72 61 72 63 68 79 49 6d 61   genHierarchyIma
21e0: 67 65 53 72 63 28 69 6d 67 29 29 3b 0d 0a 20 20  geSrc(img));..  
21f0: 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20            ..    
2200: 20 20 20 20 20 20 20 20 66 6f 72 20 28 76 61 72          for (var
2210: 20 69 20 3d 20 30 3b 20 69 20 3c 20 74 68 69 73   i = 0; i < this
2220: 2e 63 68 69 6c 64 72 65 6e 2e 6c 65 6e 67 74 68  .children.length
2230: 3b 20 2b 2b 69 29 0d 0a 20 20 20 20 20 20 20 20  ; ++i)..        
2240: 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 68 69          this.chi
2250: 6c 64 72 65 6e 5b 69 5d 2e 64 6f 6d 45 6e 74 72  ldren[i].domEntr
2260: 79 2e 73 74 79 6c 65 2e 64 69 73 70 6c 61 79 20  y.style.display 
2270: 3d 20 22 22 3b 0d 0a 20 20 20 20 20 20 20 20 7d  = "";..        }
2280: 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 0d 0a 20  ..    }..    .. 
2290: 20 20 20 74 68 69 73 2e 63 6f 6c 6c 61 70 73 65     this.collapse
22a0: 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 0d 0a 20   = function().. 
22b0: 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 76 61     {..        va
22c0: 72 20 69 6d 67 20 3d 20 74 68 69 73 2e 68 69 65  r img = this.hie
22d0: 72 61 72 63 68 79 49 6d 67 73 5b 20 74 68 69 73  rarchyImgs[ this
22e0: 2e 68 69 65 72 61 72 63 68 79 49 6d 67 73 2e 6c  .hierarchyImgs.l
22f0: 65 6e 67 74 68 20 2d 20 31 20 5d 3b 0d 0a 20 20  ength - 1 ];..  
2300: 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20        ..        
2310: 69 66 20 28 69 6d 67 2e 70 6d 53 74 61 74 65 20  if (img.pmState 
2320: 3d 3d 20 70 6d 4d 69 6e 75 73 29 0d 0a 20 20 20  == pmMinus)..   
2330: 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20       {..        
2340: 20 20 20 20 69 6d 67 2e 70 6d 53 74 61 74 65 20      img.pmState 
2350: 3d 20 70 6d 50 6c 75 73 3b 0d 0a 20 20 20 20 20  = pmPlus;..     
2360: 20 20 20 20 20 20 20 73 65 74 53 72 63 28 69 6d         setSrc(im
2370: 67 2c 20 67 65 6e 48 69 65 72 61 72 63 68 79 49  g, genHierarchyI
2380: 6d 61 67 65 53 72 63 28 69 6d 67 29 29 3b 0d 0a  mageSrc(img));..
2390: 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20              ..  
23a0: 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 76            for (v
23b0: 61 72 20 69 20 3d 20 30 3b 20 69 20 3c 20 74 68  ar i = 0; i < th
23c0: 69 73 2e 63 68 69 6c 64 72 65 6e 2e 6c 65 6e 67  is.children.leng
23d0: 74 68 3b 20 2b 2b 69 29 0d 0a 20 20 20 20 20 20  th; ++i)..      
23e0: 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 63            this.c
23f0: 68 69 6c 64 72 65 6e 5b 69 5d 2e 64 6f 6d 45 6e  hildren[i].domEn
2400: 74 72 79 2e 73 74 79 6c 65 2e 64 69 73 70 6c 61  try.style.displa
2410: 79 20 3d 20 22 6e 6f 6e 65 22 3b 0d 0a 20 20 20  y = "none";..   
2420: 20 20 20 20 20 7d 0d 0a 20 20 20 20 7d 0d 0a 20       }..    }.. 
2430: 20 20 20 0d 0a 20 20 20 20 74 68 69 73 2e 74 6f     ..    this.to
2440: 67 67 6c 65 20 3d 20 66 75 6e 63 74 69 6f 6e 28  ggle = function(
2450: 29 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 20  )..    {..      
2460: 20 20 76 61 72 20 69 6d 67 20 3d 20 74 68 69 73    var img = this
2470: 2e 68 69 65 72 61 72 63 68 79 49 6d 67 73 5b 20  .hierarchyImgs[ 
2480: 74 68 69 73 2e 68 69 65 72 61 72 63 68 79 49 6d  this.hierarchyIm
2490: 67 73 2e 6c 65 6e 67 74 68 20 2d 20 31 20 5d 3b  gs.length - 1 ];
24a0: 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 6d  ..        if (im
24b0: 67 2e 70 6d 53 74 61 74 65 20 3d 3d 20 70 6d 4d  g.pmState == pmM
24c0: 69 6e 75 73 29 0d 0a 20 20 20 20 20 20 20 20 20  inus)..         
24d0: 20 20 20 74 68 69 73 2e 63 6f 6c 6c 61 70 73 65     this.collapse
24e0: 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 65 6c 73  ();..        els
24f0: 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 74  e..            t
2500: 68 69 73 2e 65 78 70 61 6e 64 28 29 3b 0d 0a 20  his.expand();.. 
2510: 20 20 20 7d 0d 0a 20 20 20 20 0d 0a 20 20 20 20     }..    ..    
2520: 74 68 69 73 2e 73 65 6c 65 63 74 20 3d 20 66 75  this.select = fu
2530: 6e 63 74 69 6f 6e 28 29 0d 0a 20 20 20 20 7b 0d  nction()..    {.
2540: 0a 20 20 20 20 20 20 20 20 69 66 20 28 74 68 69  .        if (thi
2550: 73 2e 6f 77 6e 65 72 2e 73 65 6c 65 63 74 69 6f  s.owner.selectio
2560: 6e 20 21 3d 20 74 68 69 73 29 0d 0a 20 20 20 20  n != this)..    
2570: 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20      {..         
2580: 20 20 20 69 66 20 28 74 68 69 73 2e 6f 77 6e 65     if (this.owne
2590: 72 2e 73 65 6c 65 63 74 69 6f 6e 29 0d 0a 20 20  r.selection)..  
25a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68                th
25b0: 69 73 2e 6f 77 6e 65 72 2e 73 65 6c 65 63 74 69  is.owner.selecti
25c0: 6f 6e 2e 73 65 74 48 69 67 68 6c 69 67 68 74 28  on.setHighlight(
25d0: 68 6c 4e 6f 6e 65 29 3b 0d 0a 20 20 20 20 20 20  hlNone);..      
25e0: 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20            ..    
25f0: 20 20 20 20 20 20 20 20 74 68 69 73 2e 6f 77 6e          this.own
2600: 65 72 2e 73 65 6c 65 63 74 69 6f 6e 20 3d 20 74  er.selection = t
2610: 68 69 73 3b 0d 0a 20 20 20 20 20 20 20 20 20 20  his;..          
2620: 20 20 74 68 69 73 2e 73 65 74 48 69 67 68 6c 69    this.setHighli
2630: 67 68 74 28 68 6c 53 65 6c 65 63 74 65 64 29 3b  ght(hlSelected);
2640: 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20  ..        }..   
2650: 20 7d 0d 0a 20 20 20 20 0d 0a 20 20 20 20 74 68   }..    ..    th
2660: 69 73 2e 73 65 74 48 69 67 68 6c 69 67 68 74 20  is.setHighlight 
2670: 3d 20 66 75 6e 63 74 69 6f 6e 28 6d 6f 64 65 29  = function(mode)
2680: 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20  ..    {..       
2690: 20 69 66 20 28 6d 6f 64 65 20 3d 3d 20 68 6c 4e   if (mode == hlN
26a0: 6f 6e 65 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d  one)..        {.
26b0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69  .            thi
26c0: 73 2e 74 65 78 74 53 70 61 6e 2e 73 74 79 6c 65  s.textSpan.style
26d0: 2e 62 61 63 6b 67 72 6f 75 6e 64 43 6f 6c 6f 72  .backgroundColor
26e0: 20 3d 20 22 22 3b 0d 0a 20 20 20 20 20 20 20 20   = "";..        
26f0: 20 20 20 20 74 68 69 73 2e 74 65 78 74 53 70 61      this.textSpa
2700: 6e 2e 73 74 79 6c 65 2e 63 6f 6c 6f 72 20 3d 20  n.style.color = 
2710: 22 22 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20  "";..           
2720: 20 74 68 69 73 2e 74 65 78 74 53 70 61 6e 2e 73   this.textSpan.s
2730: 74 79 6c 65 2e 62 6f 72 64 65 72 20 3d 20 22 22  tyle.border = ""
2740: 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20  ;..        }..  
2750: 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 6d        else if (m
2760: 6f 64 65 20 3d 3d 20 68 6c 47 72 65 79 29 0d 0a  ode == hlGrey)..
2770: 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20          {..     
2780: 20 20 20 20 20 20 20 74 68 69 73 2e 74 65 78 74         this.text
2790: 53 70 61 6e 2e 73 74 79 6c 65 2e 62 61 63 6b 67  Span.style.backg
27a0: 72 6f 75 6e 64 43 6f 6c 6f 72 20 3d 20 22 23 61  roundColor = "#a
27b0: 61 61 61 61 61 22 3b 0d 0a 20 20 20 20 20 20 20  aaaaa";..       
27c0: 20 20 20 20 20 74 68 69 73 2e 74 65 78 74 53 70       this.textSp
27d0: 61 6e 2e 73 74 79 6c 65 2e 63 6f 6c 6f 72 20 3d  an.style.color =
27e0: 20 22 22 3b 0d 0a 20 20 20 20 20 20 20 20 20 20   "";..          
27f0: 20 20 74 68 69 73 2e 74 65 78 74 53 70 61 6e 2e    this.textSpan.
2800: 73 74 79 6c 65 2e 62 6f 72 64 65 72 20 3d 20 22  style.border = "
2810: 22 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20  ";..        }.. 
2820: 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28         else if (
2830: 6d 6f 64 65 20 3d 3d 20 68 6c 53 65 6c 65 63 74  mode == hlSelect
2840: 65 64 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a  ed)..        {..
2850: 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73              this
2860: 2e 74 65 78 74 53 70 61 6e 2e 73 74 79 6c 65 2e  .textSpan.style.
2870: 62 61 63 6b 67 72 6f 75 6e 64 43 6f 6c 6f 72 20  backgroundColor 
2880: 3d 20 22 33 33 39 39 63 63 22 3b 0d 0a 20 20 20  = "3399cc";..   
2890: 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 65           this.te
28a0: 78 74 53 70 61 6e 2e 73 74 79 6c 65 2e 63 6f 6c  xtSpan.style.col
28b0: 6f 72 20 3d 20 22 77 68 69 74 65 22 3b 0d 0a 20  or = "white";.. 
28c0: 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e             this.
28d0: 74 65 78 74 53 70 61 6e 2e 73 74 79 6c 65 2e 62  textSpan.style.b
28e0: 6f 72 64 65 72 20 3d 20 22 64 6f 74 74 65 64 20  order = "dotted 
28f0: 31 70 78 20 72 65 64 22 3b 0d 0a 20 20 20 20 20  1px red";..     
2900: 20 20 20 7d 0d 0a 20 20 20 20 7d 0d 0a 20 20 20     }..    }..   
2910: 20 0d 0a 20 20 20 20 74 68 69 73 2e 73 65 74 4f   ..    this.setO
2920: 6e 63 6c 69 63 6b 20 3d 20 66 75 6e 63 74 69 6f  nclick = functio
2930: 6e 28 70 72 6f 63 29 0d 0a 20 20 20 20 7b 0d 0a  n(proc)..    {..
2940: 20 20 20 20 20 20 20 20 74 68 69 73 2e 6f 6e 63          this.onc
2950: 6c 69 63 6b 20 3d 20 70 72 6f 63 3b 0d 0a 20 20  lick = proc;..  
2960: 20 20 7d 0d 0a 20 20 20 20 0d 0a 20 20 20 20 74    }..    ..    t
2970: 68 69 73 2e 73 65 74 52 65 66 20 3d 20 66 75 6e  his.setRef = fun
2980: 63 74 69 6f 6e 28 75 72 6c 29 0d 0a 20 20 20 20  ction(url)..    
2990: 7b 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 74  {..        if (t
29a0: 68 69 73 2e 61 6e 63 68 6f 72 29 0d 0a 20 20 20  his.anchor)..   
29b0: 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 61 6e           this.an
29c0: 63 68 6f 72 2e 68 72 65 66 20 3d 20 75 72 6c 3b  chor.href = url;
29d0: 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 0d 0a 20  ..    }..    .. 
29e0: 20 20 20 74 68 69 73 2e 70 72 6f 63 65 73 73 50     this.processP
29f0: 4d 43 6c 69 63 6b 20 3d 20 66 75 6e 63 74 69 6f  MClick = functio
2a00: 6e 28 65 29 0d 0a 20 20 20 20 7b 0d 0a 20 20 20  n(e)..    {..   
2a10: 20 20 20 20 20 74 68 69 73 2e 74 6f 67 67 6c 65       this.toggle
2a20: 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20  ();..        .. 
2a30: 20 20 20 20 20 20 20 2f 2f 20 70 72 65 76 65 6e         // preven
2a40: 74 20 74 68 69 73 20 6c 69 6e 65 20 73 65 6c 65  t this line sele
2a50: 63 74 69 6f 6e 2c 20 73 74 6f 70 20 62 75 62 62  ction, stop bubb
2a60: 6c 69 6e 67 0d 0a 20 20 20 20 20 20 20 20 69 66  ling..        if
2a70: 20 28 65 29 0d 0a 20 20 20 20 20 20 20 20 20 20   (e)..          
2a80: 20 20 65 2e 73 74 6f 70 50 72 6f 70 61 67 61 74    e.stopPropagat
2a90: 69 6f 6e 28 29 3b 20 2f 2f 20 4d 6f 7a 69 6c 6c  ion(); // Mozill
2aa0: 61 20 77 61 79 0d 0a 20 20 20 20 20 20 20 20 69  a way..        i
2ab0: 66 20 28 77 69 6e 64 6f 77 2e 65 76 65 6e 74 29  f (window.event)
2ac0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 77 69  ..            wi
2ad0: 6e 64 6f 77 2e 65 76 65 6e 74 2e 63 61 6e 63 65  ndow.event.cance
2ae0: 6c 42 75 62 62 6c 65 20 3d 20 74 72 75 65 3b 20  lBubble = true; 
2af0: 2f 2f 20 49 45 20 77 61 79 0d 0a 20 20 20 20 7d  // IE way..    }
2b00: 0d 0a 20 20 20 20 0d 0a 20 20 20 20 74 68 69 73  ..    ..    this
2b10: 2e 70 72 6f 63 65 73 73 4f 6e 63 6c 69 63 6b 20  .processOnclick 
2b20: 3d 20 66 75 6e 63 74 69 6f 6e 28 29 0d 0a 20 20  = function()..  
2b30: 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 74 68 69    {..        thi
2b40: 73 2e 73 65 6c 65 63 74 28 29 3b 0d 0a 20 20 20  s.select();..   
2b50: 20 20 20 20 20 69 66 20 28 74 68 69 73 2e 6f 6e       if (this.on
2b60: 63 6c 69 63 6b 20 69 6e 73 74 61 6e 63 65 6f 66  click instanceof
2b70: 20 46 75 6e 63 74 69 6f 6e 29 0d 0a 20 20 20 20   Function)..    
2b80: 20 20 20 20 20 20 20 20 74 68 69 73 2e 6f 6e 63          this.onc
2b90: 6c 69 63 6b 28 29 3b 0d 0a 20 20 20 20 7d 0d 0a  lick();..    }..
2ba0: 20 20 20 20 0d 0a 20 20 20 20 2f 2f 2f 2f 2f 2f      ..    //////
2bb0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
2bc0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
2bd0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
2be0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
2bf0: 2f 2f 2f 2f 2f 0d 0a 20 20 20 20 69 66 20 28 69  /////..    if (i
2c00: 63 6f 6e 53 72 63 29 0d 0a 20 20 20 20 20 20 20  conSrc)..       
2c10: 20 74 68 69 73 2e 69 63 6f 6e 2e 73 72 63 20 3d   this.icon.src =
2c20: 20 69 63 6f 6e 53 72 63 3b 0d 0a 20 20 20 20 65   iconSrc;..    e
2c30: 6c 73 65 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20  lse..    {..    
2c40: 20 20 20 20 74 68 69 73 2e 69 63 6f 6e 2e 77 69      this.icon.wi
2c50: 64 74 68 20 3d 20 30 3b 0d 0a 20 20 20 20 20 20  dth = 0;..      
2c60: 20 20 74 68 69 73 2e 69 63 6f 6e 2e 68 65 69 67    this.icon.heig
2c70: 68 74 20 3d 20 30 3b 0d 0a 20 20 20 20 7d 0d 0a  ht = 0;..    }..
2c80: 20 20 20 20 0d 0a 20 20 20 20 74 68 69 73 2e 69      ..    this.i
2c90: 63 6f 6e 2e 73 74 79 6c 65 2e 76 65 72 74 69 63  con.style.vertic
2ca0: 61 6c 41 6c 69 67 6e 20 3d 20 22 6d 69 64 64 6c  alAlign = "middl
2cb0: 65 22 3b 0d 0a 20 20 20 20 74 68 69 73 2e 69 63  e";..    this.ic
2cc0: 6f 6e 2e 73 74 79 6c 65 2e 70 6f 73 69 74 69 6f  on.style.positio
2cd0: 6e 20 3d 20 22 72 65 6c 61 74 69 76 65 22 3b 0d  n = "relative";.
2ce0: 0a 20 20 20 20 74 68 69 73 2e 69 63 6f 6e 2e 73  .    this.icon.s
2cf0: 74 79 6c 65 2e 74 6f 70 20 3d 20 22 2d 31 70 78  tyle.top = "-1px
2d00: 22 3b 0d 0a 20 20 20 20 74 68 69 73 2e 69 63 6f  ";..    this.ico
2d10: 6e 2e 73 74 79 6c 65 2e 70 61 64 64 69 6e 67 52  n.style.paddingR
2d20: 69 67 68 74 20 3d 20 22 32 70 78 22 3b 0d 0a 20  ight = "2px";.. 
2d30: 20 20 20 0d 0a 20 20 20 20 69 66 20 28 21 68 72     ..    if (!hr
2d40: 65 66 4d 6f 64 65 29 0d 0a 20 20 20 20 7b 0d 0a  efMode)..    {..
2d50: 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 65 78          this.tex
2d60: 74 53 70 61 6e 2e 61 70 70 65 6e 64 43 68 69 6c  tSpan.appendChil
2d70: 64 28 20 74 68 69 73 2e 74 65 78 74 45 6c 65 6d  d( this.textElem
2d80: 65 6e 74 20 29 3b 0d 0a 20 20 20 20 7d 0d 0a 20  ent );..    }.. 
2d90: 20 20 20 65 6c 73 65 0d 0a 20 20 20 20 7b 0d 0a     else..    {..
2da0: 20 20 20 20 20 20 20 20 74 68 69 73 2e 61 6e 63          this.anc
2db0: 68 6f 72 20 3d 20 64 6f 63 75 6d 65 6e 74 2e 63  hor = document.c
2dc0: 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 22 61 22  reateElement("a"
2dd0: 29 3b 0d 0a 20 20 20 20 20 20 20 20 74 68 69 73  );..        this
2de0: 2e 61 6e 63 68 6f 72 2e 61 70 70 65 6e 64 43 68  .anchor.appendCh
2df0: 69 6c 64 28 20 74 68 69 73 2e 74 65 78 74 45 6c  ild( this.textEl
2e00: 65 6d 65 6e 74 20 29 3b 0d 0a 20 20 20 20 20 20  ement );..      
2e10: 20 20 74 68 69 73 2e 74 65 78 74 53 70 61 6e 2e    this.textSpan.
2e20: 61 70 70 65 6e 64 43 68 69 6c 64 28 20 74 68 69  appendChild( thi
2e30: 73 2e 61 6e 63 68 6f 72 20 29 3b 0d 0a 20 20 20  s.anchor );..   
2e40: 20 7d 0d 0a 20 20 20 20 0d 0a 20 20 20 20 74 68   }..    ..    th
2e50: 69 73 2e 6c 69 6e 65 44 69 76 2e 61 70 70 65 6e  is.lineDiv.appen
2e60: 64 43 68 69 6c 64 28 20 74 68 69 73 2e 69 63 6f  dChild( this.ico
2e70: 6e 20 29 3b 0d 0a 20 20 20 20 74 68 69 73 2e 6c  n );..    this.l
2e80: 69 6e 65 44 69 76 2e 61 70 70 65 6e 64 43 68 69  ineDiv.appendChi
2e90: 6c 64 28 20 74 68 69 73 2e 74 65 78 74 53 70 61  ld( this.textSpa
2ea0: 6e 20 29 3b 0d 0a 20 20 20 20 74 68 69 73 2e 64  n );..    this.d
2eb0: 6f 6d 45 6e 74 72 79 2e 61 70 70 65 6e 64 43 68  omEntry.appendCh
2ec0: 69 6c 64 28 20 74 68 69 73 2e 6c 69 6e 65 44 69  ild( this.lineDi
2ed0: 76 20 29 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20  v );..    ..    
2ee0: 74 68 69 73 2e 6c 69 6e 65 44 69 76 2e 6f 77 6e  this.lineDiv.own
2ef0: 65 72 20 3d 20 74 68 69 73 3b 0d 0a 20 20 20 20  er = this;..    
2f00: 0d 0a 20 20 20 20 69 66 20 28 21 68 72 65 66 4d  ..    if (!hrefM
2f10: 6f 64 65 29 0d 0a 20 20 20 20 20 20 20 20 74 68  ode)..        th
2f20: 69 73 2e 6c 69 6e 65 44 69 76 2e 6f 6e 63 6c 69  is.lineDiv.oncli
2f30: 63 6b 20 3d 20 6e 65 77 20 46 75 6e 63 74 69 6f  ck = new Functio
2f40: 6e 28 22 74 68 69 73 2e 6f 77 6e 65 72 2e 70 72  n("this.owner.pr
2f50: 6f 63 65 73 73 4f 6e 63 6c 69 63 6b 28 29 3b 22  ocessOnclick();"
2f60: 29 3b 0d 0a 7d 0d 0a                             );..}..