icn3d 3.13.2 → 3.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/icn3d.js CHANGED
@@ -4174,6 +4174,10 @@ class UtilsCls {
4174
4174
  return window.sessionStorage;
4175
4175
  }
4176
4176
 
4177
+ isLocalStorageSupported() { this.icn3dui;
4178
+ return window.localStorage;
4179
+ }
4180
+
4177
4181
  // http://stackoverflow.com/questions/5623838/rgb-to-hex-and-hex-to-rgb
4178
4182
  hexToRgb(hex, a) { this.icn3dui;
4179
4183
  let result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
@@ -7487,15 +7491,16 @@ class Strand {
7487
7491
  }
7488
7492
 
7489
7493
  let maxDist = 6.0;
7490
- //let bBrokenSs = (prevCoorCA && Math.abs(currentCA.x - prevCoorCA.x) > maxDist) || (prevCoorCA && Math.abs(currentCA.y - prevCoorCA.y) > maxDist) || (prevCoorCA && Math.abs(currentCA.z - prevCoorCA.z) > maxDist);
7491
- let bBrokenSs = !atoms.hasOwnProperty(atom.serial) || (prevCoorCA && Math.abs(currentCA.x - prevCoorCA.x) > maxDist) || (prevCoorCA && Math.abs(currentCA.y - prevCoorCA.y) > maxDist) || (prevCoorCA && Math.abs(currentCA.z - prevCoorCA.z) > maxDist);
7494
+ let bBrokenSs = (prevCoorCA && Math.abs(currentCA.x - prevCoorCA.x) > maxDist) || (prevCoorCA && Math.abs(currentCA.y - prevCoorCA.y) > maxDist) || (prevCoorCA && Math.abs(currentCA.z - prevCoorCA.z) > maxDist);
7495
+ // The following code didn't work to select one residue
7496
+ // let bBrokenSs = !atoms.hasOwnProperty(atom.serial) || (prevCoorCA && Math.abs(currentCA.x - prevCoorCA.x) > maxDist) || (prevCoorCA && Math.abs(currentCA.y - prevCoorCA.y) > maxDist) || (prevCoorCA && Math.abs(currentCA.z - prevCoorCA.z) > maxDist);
7492
7497
 
7493
- if(bBrokenSs && atom.ss === 'sheet') {
7494
- bSheetSegment = true;
7495
- }
7496
- else if(bBrokenSs && atom.ss === 'helix') {
7497
- bHelixSegment = true;
7498
- }
7498
+ // if(bBrokenSs && atom.ss === 'sheet') {
7499
+ // bSheetSegment = true;
7500
+ // }
7501
+ // else if(bBrokenSs && atom.ss === 'helix') {
7502
+ // bHelixSegment = true;
7503
+ // }
7499
7504
 
7500
7505
  if ((atom.ssbegin || atom.ssend || (drawnResidueCount === totalResidueCount - 1) || bBrokenSs) && pnts[0].length > 0 && bSameChain) {
7501
7506
  let atomName = 'CA';
@@ -11873,7 +11878,7 @@ class ShareLink {
11873
11878
  if(key === 'showtitle' && value === true) continue;
11874
11879
  if(key === 'showcommand' && value === true) continue;
11875
11880
 
11876
- if(key === 'simplemenu' && value === false) continue;
11881
+ //if(key === 'simplemenu' && value === false) continue;
11877
11882
  if(key === 'mobilemenu' && value === false) continue;
11878
11883
  //if(key === 'closepopup' && value === false) continue;
11879
11884
  if(key === 'showanno' && value === false) continue;
@@ -13782,7 +13787,10 @@ class DefinedSets {
13782
13787
  ic.hAtoms = {};
13783
13788
  this.setHAtomsFromSets(orArray, 'or');
13784
13789
 
13785
- if(Object.keys(ic.hAtoms).length == 0) ic.hAtoms = me.hashUtilsCls.cloneHash(ic.atoms);
13790
+ if(Object.keys(ic.hAtoms).length == 0) {
13791
+ //ic.hAtoms = me.hashUtilsCls.cloneHash(ic.atoms);
13792
+ ic.hAtoms = me.hashUtilsCls.cloneHash(ic.dAtoms);
13793
+ }
13786
13794
  this.setHAtomsFromSets(andArray, 'and');
13787
13795
 
13788
13796
  this.setHAtomsFromSets(notArray, 'not');
@@ -17862,7 +17870,7 @@ class SetColor {
17862
17870
  break;
17863
17871
 
17864
17872
  case 'chain':
17865
- if(ic.chainsColor !== undefined && Object.keys(ic.chainsColor).length > 0) { // mmdb input
17873
+ if(ic.chainsColor !== undefined && Object.keys(ic.chainsColor).length > 0) { // mmdb input
17866
17874
  this.setMmdbChainColor();
17867
17875
  }
17868
17876
  else {
@@ -22656,7 +22664,7 @@ class Dssp {
22656
22664
 
22657
22665
  ic.pdbParserCls.loadPdbDataRender(bAppend);
22658
22666
 
22659
- if(ic.deferredMmdbaf !== undefined) ic.deferredMmdbaf.resolve();
22667
+ //if(ic.deferredMmdbaf !== undefined) ic.deferredMmdbaf.resolve();
22660
22668
  if(ic.deferredSecondary !== undefined) ic.deferredSecondary.resolve();
22661
22669
  });
22662
22670
  }
@@ -22775,7 +22783,7 @@ class Dssp {
22775
22783
 
22776
22784
  ic.pdbParserCls.loadPdbDataRender(bAppend);
22777
22785
 
22778
- if(ic.deferredMmdbaf !== undefined) ic.deferredMmdbaf.resolve();
22786
+ //if(ic.deferredMmdbaf !== undefined) ic.deferredMmdbaf.resolve();
22779
22787
  if(ic.deferredSecondary !== undefined) ic.deferredSecondary.resolve();
22780
22788
  }
22781
22789
  }
@@ -22796,7 +22804,7 @@ class PdbParser {
22796
22804
  let url, dataType;
22797
22805
 
22798
22806
  if(bAf) {
22799
- url = "https://alphafold.ebi.ac.uk/files/AF-" + pdbid + "-F1-model_v2.pdb";
22807
+ url = "https://alphafold.ebi.ac.uk/files/AF-" + pdbid + "-F1-model_v3.pdb";
22800
22808
  ic.ParserUtilsCls.setYourNote(pdbid.toUpperCase() + '(AlphaFold) in iCn3D');
22801
22809
  }
22802
22810
  else {
@@ -22940,9 +22948,6 @@ class PdbParser {
22940
22948
 
22941
22949
  ic.asuCnt = ic.biomtMatrices.length;
22942
22950
  }
22943
- else {
22944
- $("#" + ic.pre + "assemblyWrapper").hide();
22945
- }
22946
22951
 
22947
22952
  if(ic.emd !== undefined) {
22948
22953
  $("#" + ic.pre + "mapWrapper1").hide();
@@ -23121,9 +23126,6 @@ class MmtfParser {
23121
23126
 
23122
23127
  ic.asuCnt = ic.biomtMatrices.length;
23123
23128
  }
23124
- else {
23125
- $("#" + ic.pre + "assemblyWrapper").hide();
23126
- }
23127
23129
 
23128
23130
  let oriindex2serial = {};
23129
23131
 
@@ -24087,7 +24089,7 @@ class MmdbParser {
24087
24089
 
24088
24090
  let molid2rescount = data.moleculeInfor;
24089
24091
  let molid2color = {}, chain2molid = {}, molid2chain = {};
24090
- let chainNameHash = {};
24092
+ let chainNameHash = {};
24091
24093
  for(let i in molid2rescount) {
24092
24094
  if(Object.keys(molid2rescount[i]).length === 0) continue;
24093
24095
 
@@ -24107,7 +24109,7 @@ class MmdbParser {
24107
24109
  chain2molid[chain] = i;
24108
24110
  molid2chain[i] = chain;
24109
24111
 
24110
- ic.chainsColor[chain] =(type !== undefined) ? me.parasCls.thr(me.htmlCls.GREY8) : me.parasCls.thr(color);
24112
+ ic.chainsColor[chain] = (type !== undefined && !me.cfg.mmdbafid) ? me.parasCls.thr(me.htmlCls.GREY8) : me.parasCls.thr(color);
24111
24113
 
24112
24114
  let geneId =(molid2rescount[i].geneId === undefined) ? '' : molid2rescount[i].geneId;
24113
24115
  let geneSymbol =(molid2rescount[i].geneSymbol === undefined) ? '' : molid2rescount[i].geneSymbol;
@@ -24272,10 +24274,6 @@ class MmdbParser {
24272
24274
  $("#" + ic.pre + "assemblyWrapper").show();
24273
24275
  //ic.bAssembly = true;
24274
24276
  }
24275
- else {
24276
- $("#" + ic.pre + "assemblyWrapper").hide();
24277
- //ic.bAssembly = false;
24278
- }
24279
24277
 
24280
24278
  if(ic.emd !== undefined) {
24281
24279
  $("#" + ic.pre + "mapWrapper1").hide();
@@ -25679,7 +25677,7 @@ class ChainalignParser {
25679
25677
 
25680
25678
  let url_t;
25681
25679
  if(ic.mmdbid_t.length > 5) {
25682
- url_t = "https://alphafold.ebi.ac.uk/files/AF-" + ic.mmdbid_t + "-F1-model_v2.pdb";
25680
+ url_t = "https://alphafold.ebi.ac.uk/files/AF-" + ic.mmdbid_t + "-F1-model_v3.pdb";
25683
25681
 
25684
25682
  targetAjax = $.ajax({
25685
25683
  url: url_t,
@@ -25717,7 +25715,7 @@ class ChainalignParser {
25717
25715
 
25718
25716
  let url_q, queryAjax;
25719
25717
  if(ic.mmdbid_q.length > 5) {
25720
- url_q = "https://alphafold.ebi.ac.uk/files/AF-" + ic.mmdbid_q + "-F1-model_v2.pdb";
25718
+ url_q = "https://alphafold.ebi.ac.uk/files/AF-" + ic.mmdbid_q + "-F1-model_v3.pdb";
25721
25719
 
25722
25720
  queryAjax = $.ajax({
25723
25721
  url: url_q,
@@ -26020,7 +26018,7 @@ class ChainalignParser {
26020
26018
  let structure = ic.structArray[i];
26021
26019
 
26022
26020
  if(isNaN(structure) && structure.length > 5) {
26023
- url_t = "https://alphafold.ebi.ac.uk/files/AF-" + ic.structArray[i] + "-F1-model_v2.pdb";
26021
+ url_t = "https://alphafold.ebi.ac.uk/files/AF-" + ic.structArray[i] + "-F1-model_v3.pdb";
26024
26022
 
26025
26023
  targetAjax = $.ajax({
26026
26024
  url: url_t,
@@ -26085,6 +26083,8 @@ class ChainalignParser {
26085
26083
  let hAtoms = {}, hAtomsTmp = {};
26086
26084
  let bLastQuery = false;
26087
26085
 
26086
+ ic.opts['color'] = (structArray.length == 1) ? 'chain' : 'structure';
26087
+
26088
26088
  for(let i = 0, il = structArray.length; i < il; ++i) {
26089
26089
  if(i == structArray.length - 1) bLastQuery = true;
26090
26090
 
@@ -26097,10 +26097,11 @@ class ChainalignParser {
26097
26097
  targetOrQuery = 'query';
26098
26098
  bAppend = true;
26099
26099
  }
26100
-
26100
+
26101
26101
  //if(structArray[i].length > 4) {
26102
26102
  if(structArray[i].length > 5) { // PDB ID plus postfix could be 5
26103
- let bNoDssp = true;
26103
+ //let bNoDssp = true;
26104
+ let bNoDssp = false; // get secondary structure info
26104
26105
  hAtomsTmp = ic.pdbParserCls.loadPdbData(queryDataArray[i], structArray[i], false, bAppend, targetOrQuery, bLastQuery, bNoDssp);
26105
26106
  }
26106
26107
  else {
@@ -26113,7 +26114,7 @@ class ChainalignParser {
26113
26114
 
26114
26115
  // calculate secondary structures with applyCommandDssp
26115
26116
  if(bQuery && me.cfg.matchedchains) {
26116
- $.when(ic.pdbParserCls.applyCommandDssp(true)).then(function() {
26117
+ // $.when(ic.pdbParserCls.applyCommandDssp(true)).then(function() {
26117
26118
  let bRealign = true, bPredefined = true;
26118
26119
  ic.realignParserCls.realignChainOnSeqAlign(undefined, ic.chainidArray, bRealign, bPredefined);
26119
26120
  // reset annotations
@@ -26122,11 +26123,10 @@ class ChainalignParser {
26122
26123
  if($('#' + ic.pre + 'dl_selectannotations').dialog( 'isOpen' )) {
26123
26124
  $('#' + ic.pre + 'dl_selectannotations').dialog( 'close' );
26124
26125
  }
26125
- });
26126
- }
26127
- else {
26128
- ic.pdbParserCls.applyCommandDssp(true);
26126
+ //});
26129
26127
  }
26128
+
26129
+ if(ic.deferredMmdbaf !== undefined) ic.deferredMmdbaf.resolve();
26130
26130
  }
26131
26131
  }
26132
26132
 
@@ -27574,6 +27574,24 @@ class LoadScript {
27574
27574
 
27575
27575
  return;
27576
27576
  }
27577
+ else if(ic.commands[i].trim().indexOf('set annotation ptm') == 0 ) { // the command may have "|||{"factor"...
27578
+ let strArray = ic.commands[i].split("|||");
27579
+
27580
+ if(Object.keys(ic.proteins).length > 0 &&(ic.bAjaxPTM === undefined || !ic.bAjaxPTM) ) {
27581
+ $.when(thisClass.applyCommandPTM(strArray[0].trim())).then(function() {
27582
+ thisClass.execCommandsBase(i + 1, end, steps);
27583
+ });
27584
+ }
27585
+ else {
27586
+ if(Object.keys(ic.proteins).length > 0) {
27587
+ thisClass.applyCommandPTM(strArray[0].trim());
27588
+ }
27589
+
27590
+ this.execCommandsBase(i + 1, end, steps);
27591
+ }
27592
+
27593
+ return;
27594
+ }
27577
27595
  else if(ic.commands[i].trim().indexOf('set annotation 3ddomain') == 0) { // the command may have "|||{"factor"...
27578
27596
  let strArray = ic.commands[i].split("|||");
27579
27597
 
@@ -27804,6 +27822,8 @@ class LoadScript {
27804
27822
  ic.hAtoms = ic.definedSetsCls.getAtomsFromNameArray(nameArray);
27805
27823
  }
27806
27824
 
27825
+ me.cfg.aligntool = 'vast';
27826
+
27807
27827
  $.when(thisClass.applyCommandRealignByStruct(command)).then(function() {
27808
27828
  thisClass.execCommandsBase(i + 1, end, steps);
27809
27829
  });
@@ -27964,6 +27984,9 @@ class LoadScript {
27964
27984
  else if(lastCommand.indexOf('set annotation snp') == 0) {
27965
27985
  thisClass.applyCommandSnp(lastCommand);
27966
27986
  }
27987
+ else if(lastCommand.indexOf('set annotation ptm') == 0) {
27988
+ thisClass.applyCommandPTM(lastCommand);
27989
+ }
27967
27990
  else if(lastCommand.indexOf('set annotation 3ddomain') == 0) {
27968
27991
  thisClass.applyCommand3ddomain(lastCommand);
27969
27992
  }
@@ -28014,6 +28037,9 @@ class LoadScript {
28014
28037
  let nameArray = paraArray[1].split(',');
28015
28038
  ic.hAtoms = ic.definedSetsCls.getAtomsFromNameArray(nameArray);
28016
28039
  }
28040
+
28041
+ me.cfg.aligntool = 'vast';
28042
+
28017
28043
  thisClass.applyCommandRealignByStruct(lastCommand);
28018
28044
  }
28019
28045
  else if(lastCommand.indexOf('realign on tmalign') == 0) {
@@ -28419,6 +28445,25 @@ class LoadScript {
28419
28445
  return ic.deferredSnp.promise();
28420
28446
  }
28421
28447
 
28448
+ applyCommandPTMBase(command) { let ic = this.icn3d; ic.icn3dui;
28449
+ // chain functions together
28450
+ let pos = command.lastIndexOf(' '); // set annotation clinvar
28451
+ command.substr(pos + 1);
28452
+
28453
+ ic.annotationCls.setAnnoTabPTM();
28454
+ }
28455
+
28456
+ applyCommandPTM(command) { let ic = this.icn3d; ic.icn3dui;
28457
+ let thisClass = this;
28458
+
28459
+ // chain functions together
28460
+ ic.deferredPTM = $.Deferred(function() {
28461
+ thisClass.applyCommandPTMBase(command);
28462
+ }); // end of me.deferred = $.Deferred(function() {
28463
+
28464
+ return ic.deferredPTM.promise();
28465
+ }
28466
+
28422
28467
  applyCommand3ddomainBase(command) { let ic = this.icn3d; ic.icn3dui;
28423
28468
  // chain functions together
28424
28469
  let pos = command.lastIndexOf(' ');
@@ -29960,7 +30005,8 @@ class ShowSeq {
29960
30005
  if(seqLength > ic.maxAnnoLength) {
29961
30006
  ic.maxAnnoLength = seqLength;
29962
30007
  }
29963
- let itemArray = ['giseq', 'cddsite', 'clinvar', 'snp', 'domain', 'interaction', 'custom', 'ssbond', 'crosslink', 'transmem'];
30008
+ //let itemArray = ['giseq', 'cddsite', 'ptm', 'clinvar', 'snp', 'domain', 'interaction', 'custom', 'ssbond', 'crosslink', 'transmem'];
30009
+ let itemArray = ['giseq', 'cddsite', 'clinvar', 'snp', 'ptm', 'ssbond', 'crosslink', 'transmem', 'domain', 'custom', 'interaction'];
29964
30010
  for(let i in itemArray) {
29965
30011
  let item = itemArray[i];
29966
30012
  if($("#" + ic.pre + item + "_" + chnid).length) $("#" + ic.pre + item + "_" + chnid).width(divLength);
@@ -32922,6 +32968,9 @@ class ApplyCommand {
32922
32968
  else if(command == 'set annotation interaction') {
32923
32969
  ic.annotationCls.setAnnoTabInteraction();
32924
32970
  }
32971
+ else if(command == 'set annotation ptm') {
32972
+ ic.annotationCls.setAnnoTabPTM();
32973
+ }
32925
32974
  else if(command == 'set annotation cdd') {
32926
32975
  ic.annotationCls.setAnnoTabCdd();
32927
32976
  }
@@ -32968,6 +33017,9 @@ class ApplyCommand {
32968
33017
  else if(type == 'site') {
32969
33018
  ic.annotationCls.hideAnnoTabSite();
32970
33019
  }
33020
+ else if(type == 'ptm') {
33021
+ ic.annotationCls.hideAnnoTabPTM();
33022
+ }
32971
33023
  else if(type == 'interaction') {
32972
33024
  ic.annotationCls.hideAnnoTabInteraction();
32973
33025
  }
@@ -34120,7 +34172,7 @@ class ApplyCommand {
34120
34172
  else if(cmd.indexOf('realign on seq align') == 0) return 'File > Realign Selection > on Sequence Alignment';
34121
34173
  else if(cmd.indexOf('realign') == 0) return 'File > Realign Selection > Residue by Residue';
34122
34174
  else if(cmd.indexOf('graph interaction pairs') == 0) return hbondIntStr + ' > 2D Graph(Force-Directed)';
34123
- else if(cmd.indexOf('export canvas') == 0) return 'File > Save Files > iCn3D PNG Image';
34175
+ else if(cmd.indexOf('export canvas') == 0) return 'File > Save File > iCn3D PNG Image';
34124
34176
  else if(cmd == 'export stl file') return printStr + 'STL';
34125
34177
  else if(cmd == 'export vrml file') return printStr + 'VRML(Color)';
34126
34178
  else if(cmd == 'export stl stabilizer file') return printStr + 'STL W/ Stabilizers';
@@ -34166,6 +34218,7 @@ class ApplyCommand {
34166
34218
  else if(cmd== 'set view overview') return seqAnnoStr + ': "Summary" tab';
34167
34219
  else if(cmd == 'set annotation custom') return seqAnnoStr + ': "Custom" checkbox';
34168
34220
  else if(cmd == 'set annotation interaction') return seqAnnoStr + ': "Interactions" checkbox';
34221
+ else if(cmd == 'set annotation ptm') return seqAnnoStr + ': "PTM" checkbox';
34169
34222
  else if(cmd == 'set annotation cdd') return seqAnnoStr + ': "Conserved Domains" checkbox';
34170
34223
  else if(cmd == 'set annotation site') return seqAnnoStr + ': "Functional Sites" checkbox';
34171
34224
  else if(cmd == 'set annotation ssbond') return seqAnnoStr + ': "Disulfide Bonds" checkbox';
@@ -34454,7 +34507,9 @@ class SelectByCommand {
34454
34507
  bResidueId = true;
34455
34508
  }
34456
34509
  else {
34457
- if(residueStrArray[j][0] === '3' && residueStrArray[j].length > 1 &&(residueStrArray[j].length - 1) % 3 === 0) { // three letter residue string, such as :3LysArg
34510
+ //if(residueStrArray[j].length > 1 && residueStrArray[j][0] === '3' && (residueStrArray[j].length - 1) % 3 === 0) { // three letter residue string, such as :3LysArg
34511
+ if(residueStrArray[j].length > 1 && residueStrArray[j][0] === '3'
34512
+ && isNaN(residueStrArray[j][1]) && residueStrArray[j][0] !== '-') { // three letter residue string, such as :3LysArg or :3ZN, but not :30 neither :3-10
34458
34513
  let tmpStr = residueStrArray[j].toUpperCase();
34459
34514
  threeLetterResidueStr = tmpStr.substr(1);
34460
34515
  bResidueArrayThree = true;
@@ -34570,7 +34625,8 @@ class SelectByCommand {
34570
34625
  }
34571
34626
  else if(bResidueArrayThree) {
34572
34627
  let threeLetter = me.utilsCls.residueAbbr2Name(ic.chainsSeq[molecule_chain][s].name);
34573
- chainSeq +=(threeLetter.length == 3) ? threeLetter : ' ';
34628
+
34629
+ chainSeq +=(threeLetter.length == 3) ? threeLetter : threeLetter.padEnd(3, '_');
34574
34630
  }
34575
34631
  resiArray.push(ic.chainsSeq[molecule_chain][s].resi);
34576
34632
  }
@@ -35468,7 +35524,8 @@ class SetSeqAlign {
35468
35524
  if(i > 0) {
35469
35525
  let index1 = alignIndex;
35470
35526
  for(let j = prevIndex1 + 1, jl = start1; j < jl; ++j) {
35471
- if(ic.chainsSeq[chainid1] === undefined) break;
35527
+ if(ic.chainsSeq[chainid1] === undefined || ic.chainsSeq[chainid1][j] === undefined) break;
35528
+
35472
35529
  let resi = ic.chainsSeq[chainid1][j].resi;
35473
35530
  let resn = ic.chainsSeq[chainid1][j].name.toLowerCase();
35474
35531
 
@@ -35482,7 +35539,8 @@ class SetSeqAlign {
35482
35539
 
35483
35540
  let index2 = alignIndex;
35484
35541
  for(let j = prevIndex2 + 1, jl = start2; j < jl; ++j) {
35485
- if(ic.chainsSeq[chainid2] === undefined) break;
35542
+ if(ic.chainsSeq[chainid2] === undefined || ic.chainsSeq[chainid2] === undefined) break;
35543
+
35486
35544
  let resi = ic.chainsSeq[chainid2][j].resi;
35487
35545
  let resn = ic.chainsSeq[chainid2][j].name.toLowerCase();
35488
35546
 
@@ -37404,9 +37462,6 @@ class MmcifParser {
37404
37462
 
37405
37463
  ic.asuCnt = ic.biomtMatrices.length;
37406
37464
  }
37407
- else {
37408
- $("#" + ic.pre + "assemblyWrapper").hide();
37409
- }
37410
37465
 
37411
37466
  ic.setStyleCls.setAtomStyleByOptions(ic.opts);
37412
37467
  ic.setColorCls.setColorByOptions(ic.opts, ic.atoms);
@@ -37432,8 +37487,8 @@ class HlSeq {
37432
37487
  if(me.bNode) return;
37433
37488
 
37434
37489
  let thisClass = this;
37435
- $("#" + ic.pre + "dl_sequence2").add("[id^=" + ic.pre + "dt_giseq]").add("[id^=" + ic.pre + "dt_custom]").add("[id^=" + ic.pre + "dt_site]").add("[id^=" + ic.pre + "dt_snp]").add("[id^=" + ic.pre + "dt_clinvar]").add("[id^=" + ic.pre + "dt_cdd]").add("[id^=" + ic.pre + "dt_domain]").add("[id^=" + ic.pre + "dt_interaction]").add("[id^=" + ic.pre + "dt_ssbond]").add("[id^=" + ic.pre + "dt_crosslink]").add("[id^=" + ic.pre + "dt_transmem]")
37436
- .add("[id^=" + ic.pre + "tt_giseq]").add("[id^=" + ic.pre + "tt_custom]").add("[id^=" + ic.pre + "tt_site]").add("[id^=" + ic.pre + "tt_snp]").add("[id^=" + ic.pre + "tt_clinvar]").add("[id^=" + ic.pre + "tt_cdd]").add("[id^=" + ic.pre + "tt_domain]").add("[id^=" + ic.pre + "tt_interaction]").add("[id^=" + ic.pre + "tt_ssbond]").add("[id^=" + ic.pre + "tt_crosslink]").add("[id^=" + ic.pre + "tt_transmem]")
37490
+ $("#" + ic.pre + "dl_sequence2").add("[id^=" + ic.pre + "dt_giseq]").add("[id^=" + ic.pre + "dt_custom]").add("[id^=" + ic.pre + "dt_site]").add("[id^=" + ic.pre + "dt_ptm]").add("[id^=" + ic.pre + "dt_snp]").add("[id^=" + ic.pre + "dt_clinvar]").add("[id^=" + ic.pre + "dt_cdd]").add("[id^=" + ic.pre + "dt_domain]").add("[id^=" + ic.pre + "dt_interaction]").add("[id^=" + ic.pre + "dt_ssbond]").add("[id^=" + ic.pre + "dt_crosslink]").add("[id^=" + ic.pre + "dt_transmem]")
37491
+ .add("[id^=" + ic.pre + "tt_giseq]").add("[id^=" + ic.pre + "tt_custom]").add("[id^=" + ic.pre + "tt_site]").add("[id^=" + ic.pre + "tt_ptm]").add("[id^=" + ic.pre + "tt_snp]").add("[id^=" + ic.pre + "tt_clinvar]").add("[id^=" + ic.pre + "tt_cdd]").add("[id^=" + ic.pre + "tt_domain]").add("[id^=" + ic.pre + "tt_interaction]").add("[id^=" + ic.pre + "tt_ssbond]").add("[id^=" + ic.pre + "tt_crosslink]").add("[id^=" + ic.pre + "tt_transmem]")
37437
37492
  .selectable({
37438
37493
  distance: 1, //Tolerance, in pixels, for when selecting should start. If specified, selecting will not start until the mouse has been dragged beyond the specified distance.
37439
37494
  stop: function() { let ic = thisClass.icn3d;
@@ -37486,11 +37541,11 @@ class HlSeq {
37486
37541
  }
37487
37542
  });
37488
37543
 
37489
- $("[id^=" + ic.pre + "ov_giseq]").add("[id^=" + ic.pre + "ov_custom]").add("[id^=" + ic.pre + "ov_site]").add("[id^=" + ic.pre + "ov_snp]").add("[id^=" + ic.pre + "ov_clinvar]").add("[id^=" + ic.pre + "ov_cdd]").add("[id^=" + ic.pre + "ov_domain]").add("[id^=" + ic.pre + "ov_interaction]").add("[id^=" + ic.pre + "ov_ssbond]").add("[id^=" + ic.pre + "ov_crosslink]").add("[id^=" + ic.pre + "ov_transmem]")
37490
- .add("[id^=" + ic.pre + "tt_giseq]").add("[id^=" + ic.pre + "tt_custom]").add("[id^=" + ic.pre + "tt_site]").add("[id^=" + ic.pre + "tt_snp]").add("[id^=" + ic.pre + "tt_clinvar]").add("[id^=" + ic.pre + "tt_cdd]").add("[id^=" + ic.pre + "tt_domain]").add("[id^=" + ic.pre + "tt_interaction]").add("[id^=" + ic.pre + "tt_ssbond]").add("[id^=" + ic.pre + "tt_crosslink]").add("[id^=" + ic.pre + "tt_transmem]")
37544
+ $("[id^=" + ic.pre + "ov_giseq]").add("[id^=" + ic.pre + "ov_custom]").add("[id^=" + ic.pre + "ov_site]").add("[id^=" + ic.pre + "ov_ptm]").add("[id^=" + ic.pre + "ov_snp]").add("[id^=" + ic.pre + "ov_clinvar]").add("[id^=" + ic.pre + "ov_cdd]").add("[id^=" + ic.pre + "ov_domain]").add("[id^=" + ic.pre + "ov_interaction]").add("[id^=" + ic.pre + "ov_ssbond]").add("[id^=" + ic.pre + "ov_crosslink]").add("[id^=" + ic.pre + "ov_transmem]")
37545
+ .add("[id^=" + ic.pre + "tt_giseq]").add("[id^=" + ic.pre + "tt_custom]").add("[id^=" + ic.pre + "tt_site]").add("[id^=" + ic.pre + "tt_ptm]").add("[id^=" + ic.pre + "tt_snp]").add("[id^=" + ic.pre + "tt_clinvar]").add("[id^=" + ic.pre + "tt_cdd]").add("[id^=" + ic.pre + "tt_domain]").add("[id^=" + ic.pre + "tt_interaction]").add("[id^=" + ic.pre + "tt_ssbond]").add("[id^=" + ic.pre + "tt_crosslink]").add("[id^=" + ic.pre + "tt_transmem]")
37491
37546
 
37492
- .add("#" + ic.pre + "dl_sequence2").add("[id^=" + ic.pre + "dt_giseq]").add("[id^=" + ic.pre + "dt_custom]").add("[id^=" + ic.pre + "dt_site]").add("[id^=" + ic.pre + "dt_snp]").add("[id^=" + ic.pre + "dt_clinvar]").add("[id^=" + ic.pre + "dt_cdd]").add("[id^=" + ic.pre + "dt_domain]").add("[id^=" + ic.pre + "dt_interaction]").add("[id^=" + ic.pre + "dt_ssbond]").add("[id^=" + ic.pre + "dt_crosslink]").add("[id^=" + ic.pre + "dt_transmem]")
37493
- .add("[id^=" + ic.pre + "tt_giseq]").add("[id^=" + ic.pre + "tt_custom]").add("[id^=" + ic.pre + "tt_site]").add("[id^=" + ic.pre + "tt_snp]").add("[id^=" + ic.pre + "tt_clinvar]").add("[id^=" + ic.pre + "tt_cdd]").add("[id^=" + ic.pre + "tt_domain]").add("[id^=" + ic.pre + "tt_interaction]").add("[id^=" + ic.pre + "tt_ssbond]").add("[id^=" + ic.pre + "tt_crosslink]").add("[id^=" + ic.pre + "tt_transmem]")
37547
+ .add("#" + ic.pre + "dl_sequence2").add("[id^=" + ic.pre + "dt_giseq]").add("[id^=" + ic.pre + "dt_custom]").add("[id^=" + ic.pre + "dt_site]").add("[id^=" + ic.pre + "dt_ptm]").add("[id^=" + ic.pre + "dt_snp]").add("[id^=" + ic.pre + "dt_clinvar]").add("[id^=" + ic.pre + "dt_cdd]").add("[id^=" + ic.pre + "dt_domain]").add("[id^=" + ic.pre + "dt_interaction]").add("[id^=" + ic.pre + "dt_ssbond]").add("[id^=" + ic.pre + "dt_crosslink]").add("[id^=" + ic.pre + "dt_transmem]")
37548
+ .add("[id^=" + ic.pre + "tt_giseq]").add("[id^=" + ic.pre + "tt_custom]").add("[id^=" + ic.pre + "tt_site]").add("[id^=" + ic.pre + "tt_ptm]").add("[id^=" + ic.pre + "tt_snp]").add("[id^=" + ic.pre + "tt_clinvar]").add("[id^=" + ic.pre + "tt_cdd]").add("[id^=" + ic.pre + "tt_domain]").add("[id^=" + ic.pre + "tt_interaction]").add("[id^=" + ic.pre + "tt_ssbond]").add("[id^=" + ic.pre + "tt_crosslink]").add("[id^=" + ic.pre + "tt_transmem]")
37494
37549
 
37495
37550
  .on('click', '.icn3d-seqTitle', function(e) { let ic = thisClass.icn3d;
37496
37551
  e.stopImmediatePropagation();
@@ -37531,7 +37586,7 @@ class HlSeq {
37531
37586
 
37532
37587
  let thisClass = this;
37533
37588
 
37534
- $("#" + ic.pre + "dl_sequence2").add("[id^=" + ic.pre + "giseq]").add("[id^=" + ic.pre + "custom]").add("[id^=" + ic.pre + "site]").add("[id^=" + ic.pre + "clinvar]").add("[id^=" + ic.pre + "snp]").add("[id^=" + ic.pre + "cdd]").add("[id^=" + ic.pre + "domain]").add("[id^=" + ic.pre + "interaction]").add("[id^=" + ic.pre + "ssbond]").add("[id^=" + ic.pre + "crosslink]").add("[id^=" + ic.pre + "transmem]").on('click', '.icn3d-residue', function(e) { let ic = thisClass.icn3d;
37589
+ $("#" + ic.pre + "dl_sequence2").add("[id^=" + ic.pre + "giseq]").add("[id^=" + ic.pre + "custom]").add("[id^=" + ic.pre + "site]").add("[id^=" + ic.pre + "ptm]").add("[id^=" + ic.pre + "clinvar]").add("[id^=" + ic.pre + "snp]").add("[id^=" + ic.pre + "cdd]").add("[id^=" + ic.pre + "domain]").add("[id^=" + ic.pre + "interaction]").add("[id^=" + ic.pre + "ssbond]").add("[id^=" + ic.pre + "crosslink]").add("[id^=" + ic.pre + "transmem]").on('click', '.icn3d-residue', function(e) { let ic = thisClass.icn3d;
37535
37590
  e.stopImmediatePropagation();
37536
37591
  /*
37537
37592
  //if($(this).attr('id') === ic.pre + "dl_sequence2") {
@@ -37580,7 +37635,7 @@ class HlSeq {
37580
37635
 
37581
37636
  let thisClass = this;
37582
37637
 
37583
- $("#" + ic.pre + "dl_sequence2").add("[id^=" + ic.pre + "giseq]").add("[id^=" + ic.pre + "custom]").add("[id^=" + ic.pre + "site]").add("[id^=" + ic.pre + "feat]").add("[id^=" + ic.pre + "clinvar]").add("[id^=" + ic.pre + "snp]").add("[id^=" + ic.pre + "cdd]").add("[id^=" + ic.pre + "domain]").add("[id^=" + ic.pre + "interaction]").add("[id^=" + ic.pre + "ssbond]").add("[id^=" + ic.pre + "crosslink]").add("[id^=" + ic.pre + "transmem]").on('click', '.icn3d-seqTitle', function(e) { let ic = thisClass.icn3d;
37638
+ $("#" + ic.pre + "dl_sequence2").add("[id^=" + ic.pre + "giseq]").add("[id^=" + ic.pre + "custom]").add("[id^=" + ic.pre + "site]").add("[id^=" + ic.pre + "ptm]").add("[id^=" + ic.pre + "feat]").add("[id^=" + ic.pre + "clinvar]").add("[id^=" + ic.pre + "snp]").add("[id^=" + ic.pre + "cdd]").add("[id^=" + ic.pre + "domain]").add("[id^=" + ic.pre + "interaction]").add("[id^=" + ic.pre + "ssbond]").add("[id^=" + ic.pre + "crosslink]").add("[id^=" + ic.pre + "transmem]").on('click', '.icn3d-seqTitle', function(e) { let ic = thisClass.icn3d;
37584
37639
  e.stopImmediatePropagation();
37585
37640
 
37586
37641
  //if($(this).attr('id') === ic.pre + "dl_sequence2") {
@@ -37777,7 +37832,7 @@ class HlSeq {
37777
37832
  let residueid;
37778
37833
  let structure = chainid.substr(0, chainid.indexOf('_'));
37779
37834
  for(let i = 0, il = posArray.length; i < il; ++i) {
37780
- if($(that).attr('site') !== undefined) {
37835
+ if($(that).attr('site') !== undefined || $(that).attr('ptm') !== undefined) {
37781
37836
  if(ic.bNCBI) {
37782
37837
  let residNCBI = chainid + '_' +(parseInt(posArray[i])+1).toString();
37783
37838
  // AlphaFold domains calculated on-the-fly have no conversion
@@ -38179,6 +38234,8 @@ class ShowAnno {
38179
38234
  ++i;
38180
38235
  }
38181
38236
  ic.interactChainbase = me.hashUtilsCls.unionHash(ic.interactChainbase, chemical_chainid);
38237
+ ic.PTMChainbase = me.hashUtilsCls.unionHash(ic.PTMChainbase, ic.protein_chainid);
38238
+
38182
38239
  ic.ssbondChainbase = me.hashUtilsCls.unionHash(ic.ssbondChainbase, ic.protein_chainid);
38183
38240
  ic.ssbondChainbase = me.hashUtilsCls.unionHash(ic.ssbondChainbase, chemical_chainid);
38184
38241
  ic.crosslinkChainbase = me.hashUtilsCls.unionHash(ic.crosslinkChainbase, ic.protein_chainid);
@@ -38210,8 +38267,10 @@ class ShowAnno {
38210
38267
  //if(proteinName.length > 40) proteinName = proteinName.substr(0, 40) + "...";
38211
38268
  let categoryStr =(index == 0) ? "<span class='icn3d-annoLargeTitle'><b>Proteins</b>: </span><br><br>" : "";
38212
38269
  let geneLink =(ic.chainsGene[chnid] && ic.chainsGene[chnid].geneId) ? "(Gene: <a href='https://www.ncbi.nlm.nih.gov/gene/" + ic.chainsGene[chnid].geneId + "' target='_blank' title='" + ic.chainsGene[chnid].geneDesc + "'>" + ic.chainsGene[chnid].geneSymbol + "</a>)" : '';
38270
+ let structure = chnid.substr(0, chnid.indexOf('_'));
38271
+ let chainLink = (structure.length > 5) ? '<a href="https://alphafold.ebi.ac.uk/entry/' + structure + '" target="_blank">' + chnid + '</a>' : chnid;
38213
38272
  let chainHtml = "<div id='" + ic.pre + "anno_" + chnid + "' class='icn3d-annotation'>" + categoryStr
38214
- + "<span style='font-weight:bold;'>Annotations of " + chnid
38273
+ + "<span style='font-weight:bold;'>Annotations of " + chainLink
38215
38274
  + "</span>: <a class='icn3d-blue' href='https://www.ncbi.nlm.nih.gov/protein?term="
38216
38275
  + chnid + "' target='_blank' title='" + fullProteinName + "'>" + proteinName + "</a>"
38217
38276
  + geneLink + "&nbsp;&nbsp;&nbsp;"
@@ -38224,7 +38283,8 @@ class ShowAnno {
38224
38283
  + this.addButton(chnid, "icn3d-sheetsets", "Sheet Sets", "Define sets for each sheet in this chain and add them to the menu of \"Defined Sets\"", 60, buttonStyle) + "&nbsp;"
38225
38284
  + this.addButton(chnid, "icn3d-coilsets", "Coil Sets", "Define sets for each coil in this chain and add them to the menu of \"Defined Sets\"", 60, buttonStyle);
38226
38285
  $("#" + ic.pre + "dl_annotations").append(chainHtml);
38227
- let itemArray = ['giseq', 'cdd', 'clinvar', 'snp', 'domain', 'site', 'interaction', 'custom', 'ssbond', 'crosslink', 'transmem'];
38286
+ //let itemArray = ['giseq', 'cdd', 'clinvar', 'snp', 'domain', 'site', 'ptm', 'interaction', 'custom', 'ssbond', 'crosslink', 'transmem'];
38287
+ let itemArray = ['giseq', 'cdd', 'clinvar', 'snp', 'site', 'ptm', 'ssbond', 'crosslink', 'transmem', 'domain', 'custom', 'interaction'];
38228
38288
  // dt: detailed view, hide by default; ov: overview, show by default
38229
38289
  for(let i in itemArray) {
38230
38290
  let item = itemArray[i];
@@ -38652,6 +38712,286 @@ class ShowAnno {
38652
38712
 
38653
38713
  }
38654
38714
 
38715
+ /**
38716
+ * @author Jiyao Wang <wangjiy@ncbi.nlm.nih.gov> / https://github.com/ncbi/icn3d
38717
+ */
38718
+
38719
+ class AnnoPTM {
38720
+ constructor(icn3d) {
38721
+ this.icn3d = icn3d;
38722
+ }
38723
+
38724
+ //Show the annotations of CDD domains and binding sites.
38725
+ showPTM(chnid, chnidBase) { let ic = this.icn3d; ic.icn3dui;
38726
+ let thisClass = this;
38727
+
38728
+ // UniProt ID
38729
+ let structure = chnid.substr(0, chnid.indexOf('_'));
38730
+ let chain = chnid.substr(chnid.indexOf('_') + 1);
38731
+
38732
+ // UniProt ID
38733
+ if( structure.length > 5 ) {
38734
+ let url = "https://www.ebi.ac.uk/proteins/api/features/" + structure;
38735
+ $.ajax({
38736
+ url: url,
38737
+ dataType: 'json',
38738
+ cache: true,
38739
+ tryCount : 0,
38740
+ retryLimit : 0, //1
38741
+ success: function(data) {
38742
+ thisClass.parsePTM(data, chnid);
38743
+ if(ic.deferredPTM !== undefined) ic.deferredPTM.resolve();
38744
+ },
38745
+ error : function(xhr, textStatus, errorThrown ) {
38746
+ this.tryCount++;
38747
+ if(this.tryCount <= this.retryLimit) {
38748
+ //try again
38749
+ $.ajax(this);
38750
+ return;
38751
+ }
38752
+
38753
+ thisClass.getNoPTM(chnid);
38754
+
38755
+ return;
38756
+ }
38757
+ });
38758
+ }
38759
+ else { // PDB
38760
+ // get PDB to UniProt mapping
38761
+ // https://www.ebi.ac.uk/pdbe/api/doc/
38762
+ let structLower = structure.substr(0, 4).toLowerCase();
38763
+ let urlMap = "https://www.ebi.ac.uk/pdbe/api/mappings/uniprot/" + structLower;
38764
+
38765
+ $.ajax({
38766
+ url: urlMap,
38767
+ dataType: 'json',
38768
+ cache: true,
38769
+ success: function(dataMap) {
38770
+ let UniProtID = '';
38771
+ if(!ic.UPResi2ResiPosPerChain) ic.UPResi2ResiPosPerChain = {};
38772
+ ic.UPResi2ResiPosPerChain[chnid] = {};
38773
+ let mapping = dataMap[structLower].UniProt;
38774
+
38775
+ let bFound = false;
38776
+ for(let up in mapping) {
38777
+ let chainArray = mapping[up].mappings;
38778
+ if(bFound) break;
38779
+
38780
+ for(let i = 0, il = chainArray.length; i < il; ++i) {
38781
+ //"entity_id": 3, "end": { "author_residue_number": null, "author_insertion_code": "", "residue_number": 219 }, "chain_id": "A", "start": { "author_residue_number": 94, "author_insertion_code": "", "residue_number": 1 }, "unp_end": 312, "unp_start": 94, "struct_asym_id": "C"
38782
+ let chainObj = chainArray[i];
38783
+ if(chainObj.chain_id == chain) {
38784
+ let start = chainObj.unp_start;
38785
+ let end = chainObj.unp_end;
38786
+ let posStart = chainObj.start.residue_number;
38787
+ let posEnd = chainObj.end.residue_number;
38788
+
38789
+ if(posEnd - posStart != end - start) {
38790
+ console.log("There might be some issues in the PDB to UniProt residue mapping.");
38791
+ }
38792
+
38793
+ for(let j = 0; j <= end - start; ++j) {
38794
+ ic.UPResi2ResiPosPerChain[chnid][j + start] = j + posStart - 1; // 0-based
38795
+ }
38796
+
38797
+ UniProtID = up;
38798
+ bFound = true;
38799
+ break;
38800
+ }
38801
+ }
38802
+ }
38803
+
38804
+ if(UniProtID == '') {
38805
+ thisClass.getNoPTM(chnid);
38806
+ }
38807
+ else {
38808
+ let url = "https://www.ebi.ac.uk/proteins/api/features/" + UniProtID;
38809
+ $.ajax({
38810
+ url: url,
38811
+ dataType: 'json',
38812
+ cache: true,
38813
+ tryCount : 0,
38814
+ retryLimit : 0, //1
38815
+ success: function(data) {
38816
+ thisClass.parsePTM(data, chnid);
38817
+ if(ic.deferredPTM !== undefined) ic.deferredPTM.resolve();
38818
+ },
38819
+ error : function(xhr, textStatus, errorThrown ) {
38820
+ this.tryCount++;
38821
+ if(this.tryCount <= this.retryLimit) {
38822
+ //try again
38823
+ $.ajax(this);
38824
+ return;
38825
+ }
38826
+
38827
+ thisClass.getNoPTM(chnid);
38828
+
38829
+ return;
38830
+ }
38831
+ });
38832
+ }
38833
+ },
38834
+ error : function(xhr, textStatus, errorThrown ) {
38835
+ thisClass.getNoPTM(chnid);
38836
+ }
38837
+ });
38838
+ }
38839
+ }
38840
+
38841
+ parsePTM(data, chnid) { let ic = this.icn3d, me = ic.icn3dui;
38842
+
38843
+ if(me.bNode) {
38844
+ //if(!ic.resid2ptm) ic.resid2ptm = {};
38845
+ ic.resid2ptm = {};
38846
+ ic.resid2ptm[chnid] = [];
38847
+ }
38848
+
38849
+ let ptmHash = {};
38850
+ for(let i = 0, il = data.features.length; i < il; ++i) {
38851
+ let feature = data.features[i];
38852
+
38853
+ if(feature.category == 'PTM' && feature.type != 'DISULFID' && feature.type != 'CROSSLNK') {
38854
+ let title = '';
38855
+ if(feature.type == 'CARBOHYD') {
38856
+ //title = 'Glycosylation, ' + feature.description;
38857
+ title = 'Glycosylation';
38858
+ }
38859
+ else if(feature.type == 'LIPID') {
38860
+ title = 'Lipidation, ' + feature.description;
38861
+ }
38862
+ else if(feature.description.indexOf('Phospho') == 0) {
38863
+ title = 'Phosphorylation';
38864
+ }
38865
+ else if(feature.description) {
38866
+ title = feature.description;
38867
+ }
38868
+ else {
38869
+ title = feature.type;
38870
+ }
38871
+
38872
+ if(!ptmHash[title]) ptmHash[title] = [];
38873
+ ptmHash[title].push(feature);
38874
+ }
38875
+ }
38876
+
38877
+ let index = 0;
38878
+ let html = '', html2 = '', html3 = '';
38879
+ html += '<div id="' + ic.pre + chnid + '_ptmseq_sequence" class="icn3d-cdd icn3d-dl_sequence">';
38880
+ html2 += html;
38881
+ html3 += html;
38882
+ let stucture = chnid.substr(0, chnid.indexOf('_'));
38883
+
38884
+ for(let ptm in ptmHash) {
38885
+ let ptmArray = ptmHash[ptm];
38886
+ //"type": "MOD_RES", "category": "PTM", "description": "4-hydroxyproline", "begin": "382", "end": "382",
38887
+ let resPosArray = [];
38888
+ let bCoordinates = false;
38889
+ for(let i = 0, il = ptmArray.length; i < il; ++i) {
38890
+ let begin = parseInt(ptmArray[i].begin);
38891
+ let end = parseInt(ptmArray[i].end);
38892
+
38893
+
38894
+ for(let j = begin; j <= end; ++j) {
38895
+ if(stucture.length > 5) { // UniProt
38896
+ resPosArray.push(j - 1); // 0-based
38897
+ }
38898
+ else { // PDB
38899
+ if(ic.UPResi2ResiPosPerChain[chnid][j]) resPosArray.push(ic.UPResi2ResiPosPerChain[chnid][j]);
38900
+ }
38901
+
38902
+ if(!bCoordinates && ic.residues.hasOwnProperty(chnid + '_' + j)) {
38903
+ bCoordinates = true;
38904
+ }
38905
+ }
38906
+ }
38907
+
38908
+ if(resPosArray.length == 0) continue;
38909
+
38910
+ let resCnt = resPosArray.length;
38911
+ let title = 'PTM: ' + ptm;
38912
+ if(title.length > 17) title = title.substr(0, 17) + '...';
38913
+ let fulltitle = ptm;
38914
+
38915
+ let linkStr = (bCoordinates) ? 'icn3d-link icn3d-blue' : '';
38916
+
38917
+ let htmlTmp2 = '<div class="icn3d-seqTitle ' + linkStr + '" ptm="ptm" posarray="' + resPosArray.toString() + '" shorttitle="' + title + '" setname="' + chnid + '_ptm_' + index + '" anno="sequence" chain="' + chnid + '" title="' + fulltitle + '">' + title + ' </div>';
38918
+ let htmlTmp3 = '<span class="icn3d-residueNum" title="residue count">' + resCnt.toString() + ' Res</span>';
38919
+ let htmlTmp = '<span class="icn3d-seqLine">';
38920
+ html3 += htmlTmp2 + htmlTmp3 + '<br>';
38921
+ html += htmlTmp2 + htmlTmp3 + htmlTmp;
38922
+ html2 += htmlTmp2 + htmlTmp3 + htmlTmp;
38923
+ let pre = 'ptm' + index.toString();
38924
+ //var widthPerRes = ic.seqAnnWidth / ic.maxAnnoLength;
38925
+ let prevEmptyWidth = 0;
38926
+ let prevLineWidth = 0;
38927
+ let widthPerRes = 1;
38928
+ for(let i = 0, il = ic.giSeq[chnid].length; i < il; ++i) {
38929
+ html += ic.showSeqCls.insertGap(chnid, i, '-');
38930
+ if(resPosArray.indexOf(i) != -1) {
38931
+ let cFull = ic.giSeq[chnid][i];
38932
+ let c = cFull;
38933
+ if(cFull.length > 1) {
38934
+ c = cFull[0] + '..';
38935
+ }
38936
+ let pos = ic.annoCddSiteCls.getAdjustedResi(i, chnid, ic.matchedPos, ic.chainsSeq, ic.baseResi);
38937
+
38938
+ html += '<span id="' + pre + '_' + ic.pre + chnid + '_' + pos + '" title="' + c + pos + '" class="icn3d-residue">' + cFull + '</span>';
38939
+ if(me.bNode) {
38940
+ let obj = {};
38941
+ obj[chnid + '_' + pos] = 'PTM: ' + ptm;
38942
+ ic.resid2ptm[chnid].push(obj);
38943
+ }
38944
+
38945
+ html2 += ic.showSeqCls.insertGapOverview(chnid, i);
38946
+ let emptyWidth =(me.cfg.blast_rep_id == chnid) ? Math.round(ic.seqAnnWidth * i /(ic.maxAnnoLength + ic.nTotalGap) - prevEmptyWidth - prevLineWidth) : Math.round(ic.seqAnnWidth * i / ic.maxAnnoLength - prevEmptyWidth - prevLineWidth);
38947
+ //if(emptyWidth < 0) emptyWidth = 0;
38948
+ if(emptyWidth >= 0) {
38949
+ html2 += '<div style="display:inline-block; width:' + emptyWidth + 'px;">&nbsp;</div>';
38950
+ html2 += '<div style="display:inline-block; background-color:#000; width:' + widthPerRes + 'px;" title="' + c + pos + '">&nbsp;</div>';
38951
+ prevEmptyWidth += emptyWidth;
38952
+ prevLineWidth += widthPerRes;
38953
+ }
38954
+ }
38955
+ else {
38956
+ html += '<span>-</span>'; //'<span>-</span>';
38957
+ }
38958
+ }
38959
+ htmlTmp = '<span class="icn3d-residueNum" title="residue count">&nbsp;' + resCnt.toString() + ' Residues</span>';
38960
+ htmlTmp += '</span>';
38961
+ htmlTmp += '<br>';
38962
+ html += htmlTmp;
38963
+ html2 += htmlTmp;
38964
+
38965
+ ++index;
38966
+ }
38967
+
38968
+ html += '</div>';
38969
+ html2 += '</div>';
38970
+ html3 += '</div>';
38971
+
38972
+ $("#" + ic.pre + "dt_ptm_" + chnid).html(html);
38973
+ $("#" + ic.pre + "ov_ptm_" + chnid).html(html2);
38974
+ $("#" + ic.pre + "tt_ptm_" + chnid).html(html3);
38975
+
38976
+ // add here after the ajax call
38977
+ ic.showAnnoCls.enableHlSeq();
38978
+ ic.bAjaxPTM = true;
38979
+ }
38980
+
38981
+ getNoPTM(chnid) { let ic = this.icn3d; ic.icn3dui;
38982
+ console.log( "No PTM data were found for the chain " + chnid + "..." );
38983
+
38984
+ $("#" + ic.pre + "dt_ptm_" + chnid).html('');
38985
+ $("#" + ic.pre + "ov_ptm_" + chnid).html('');
38986
+ $("#" + ic.pre + "tt_ptm_" + chnid).html('');
38987
+
38988
+ // add here after the ajax call
38989
+ ic.showAnnoCls.enableHlSeq();
38990
+ ic.bAjaxPTM = true;
38991
+ if(ic.deferredPTM !== undefined) ic.deferredPTM.resolve();
38992
+ }
38993
+ }
38994
+
38655
38995
  /**
38656
38996
  * @author Jiyao Wang <wangjiy@ncbi.nlm.nih.gov> / https://github.com/ncbi/icn3d
38657
38997
  */
@@ -39968,7 +40308,8 @@ class Annotation {
39968
40308
  this.setAnnoSeqBase(false);
39969
40309
  }
39970
40310
  setAnnoSeqBase(bShow) { let ic = this.icn3d; ic.icn3dui;
39971
- let itemArray = ['site', 'snp', 'clinvar', 'cdd', 'domain', 'interaction', 'ssbond', 'crosslink', 'transmem'];
40311
+ //let itemArray = ['site', 'ptm', 'snp', 'clinvar', 'cdd', 'domain', 'interaction', 'ssbond', 'crosslink', 'transmem'];
40312
+ let itemArray = ['cdd', 'clinvar', 'snp', 'site', 'ptm', 'ssbond', 'crosslink', 'transmem', 'domain', 'interaction'];
39972
40313
  for(let i in itemArray) {
39973
40314
  let item = itemArray[i];
39974
40315
  if(bShow) {
@@ -39980,7 +40321,8 @@ class Annotation {
39980
40321
  }
39981
40322
  }
39982
40323
  setAnnoTabBase(bChecked) { let ic = this.icn3d; ic.icn3dui;
39983
- let itemArray = ['all', 'binding', 'snp', 'clinvar', 'cdd', '3dd', 'interact', 'custom', 'ssbond', 'crosslink', 'transmem'];
40324
+ //let itemArray = ['all', 'binding', 'ptm', 'snp', 'clinvar', 'cdd', '3dd', 'interact', 'custom', 'ssbond', 'crosslink', 'transmem'];
40325
+ let itemArray = ['all', 'cdd', 'clinvar', 'snp', 'binding', 'ptm', 'ssbond', 'crosslink', 'transmem', '3dd', 'custom', 'interact'];
39984
40326
  for(let i in itemArray) {
39985
40327
  let item = itemArray[i];
39986
40328
  if($("#" + ic.pre + "anno_" + item).length) $("#" + ic.pre + "anno_" + item)[0].checked = bChecked;
@@ -39992,10 +40334,11 @@ class Annotation {
39992
40334
  this.updateClinvar();
39993
40335
  this.updateSnp();
39994
40336
  this.updateDomain();
39995
- this.updateInteraction();
40337
+ this.updatePTM();
39996
40338
  this.updateSsbond();
39997
40339
  this.updateCrosslink();
39998
40340
  this.updateTransmem();
40341
+ this.updateInteraction();
39999
40342
  }
40000
40343
  hideAnnoTabAll() { let ic = this.icn3d; ic.icn3dui;
40001
40344
  this.setAnnoTabBase(false);
@@ -40048,6 +40391,11 @@ class Annotation {
40048
40391
  ic.bInteractionShown = false;
40049
40392
  this.updateInteraction();
40050
40393
  }
40394
+ if($("#" + ic.pre + "anno_ptm").length && $("#" + ic.pre + "anno_ptm")[0].checked) {
40395
+ $("[id^=" + ic.pre + "ptm]").show();
40396
+ ic.bPTMShown = false;
40397
+ this.updatePTM();
40398
+ }
40051
40399
  if($("#" + ic.pre + "anno_custom").length && $("#" + ic.pre + "anno_custom")[0].checked) {
40052
40400
  $("[id^=" + ic.pre + "custom]").show();
40053
40401
  }
@@ -40129,6 +40477,15 @@ class Annotation {
40129
40477
  $("[id^=" + ic.pre + "interaction]").hide();
40130
40478
  if($("#" + ic.pre + "anno_interact").length) $("#" + ic.pre + "anno_interact")[0].checked = false;
40131
40479
  }
40480
+ setAnnoTabPTM() { let ic = this.icn3d; ic.icn3dui;
40481
+ $("[id^=" + ic.pre + "ptm]").show();
40482
+ if($("#" + ic.pre + "anno_ptm").length) $("#" + ic.pre + "anno_ptm")[0].checked = true;
40483
+ this.updatePTM();
40484
+ }
40485
+ hideAnnoTabPTM() { let ic = this.icn3d; ic.icn3dui;
40486
+ $("[id^=" + ic.pre + "ptm]").hide();
40487
+ if($("#" + ic.pre + "anno_ptm").length) $("#" + ic.pre + "anno_ptm")[0].checked = false;
40488
+ }
40132
40489
  setAnnoTabSsbond() { let ic = this.icn3d; ic.icn3dui;
40133
40490
  $("[id^=" + ic.pre + "ssbond]").show();
40134
40491
  if($("#" + ic.pre + "anno_ssbond").length) $("#" + ic.pre + "anno_ssbond")[0].checked = true;
@@ -40240,6 +40597,17 @@ class Annotation {
40240
40597
  }
40241
40598
  });
40242
40599
 
40600
+ me.myEventCls.onIds("#" + ic.pre + "anno_ptm", "click", function(e) {
40601
+ if($("#" + ic.pre + "anno_ptm")[0].checked) {
40602
+ thisClass.setAnnoTabPTM();
40603
+ me.htmlCls.clickMenuCls.setLogCmd("set annotation ptm", true);
40604
+ }
40605
+ else {
40606
+ thisClass.hideAnnoTabPTM();
40607
+ me.htmlCls.clickMenuCls.setLogCmd("hide annotation ptm", true);
40608
+ }
40609
+ });
40610
+
40243
40611
  //$("#" + ic.pre + "anno_custom", "click", function(e) {
40244
40612
  me.myEventCls.onIds("#" + ic.pre + "anno_custom", "click", function(e) {
40245
40613
  if($("#" + ic.pre + "anno_custom")[0].checked) {
@@ -40335,7 +40703,7 @@ class Annotation {
40335
40703
  }
40336
40704
  }
40337
40705
  setAnnoDisplay(display, prefix) { let ic = this.icn3d; ic.icn3dui;
40338
- let itemArray = ['giseq', 'custom', 'site', 'snp', 'clinvar', 'cdd', 'domain', 'interaction', 'ssbond', 'crosslink', 'transmem'];
40706
+ let itemArray = ['giseq', 'custom', 'site', 'ptm', 'snp', 'clinvar', 'cdd', 'domain', 'interaction', 'ssbond', 'crosslink', 'transmem'];
40339
40707
  for(let i in itemArray) {
40340
40708
  let item = itemArray[i];
40341
40709
  $("[id^=" + ic.pre + prefix + "_" + item + "]").attr('style', display);
@@ -40406,6 +40774,15 @@ class Annotation {
40406
40774
  }
40407
40775
  ic.bInteractionShown = true;
40408
40776
  }
40777
+ updatePTM() { let ic = this.icn3d; ic.icn3dui;
40778
+ if(ic.bPTMShown === undefined || !ic.bPTMShown) {
40779
+ for(let chainid in ic.PTMChainbase) {
40780
+ let chainidBase = ic.PTMChainbase[chainid];
40781
+ ic.annoPTMCls.showPTM(chainid, chainidBase);
40782
+ }
40783
+ }
40784
+ ic.bPTMShown = true;
40785
+ }
40409
40786
  updateSsbond() { let ic = this.icn3d; ic.icn3dui;
40410
40787
  if(ic.bSSbondShown === undefined || !ic.bSSbondShown) {
40411
40788
  for(let chainid in ic.ssbondChainbase) {
@@ -42139,9 +42516,12 @@ class Selection {
42139
42516
 
42140
42517
  //Show the selection.
42141
42518
  showSelection() { let ic = this.icn3d, me = ic.icn3dui;
42142
- ic.dAtoms = {};
42519
+ //ic.dAtoms = {};
42143
42520
 
42144
- if(Object.keys(ic.hAtoms).length == 0) this.selectAll_base();
42521
+ if(Object.keys(ic.hAtoms).length == 0) {
42522
+ //this.selectAll_base();
42523
+ ic.hAtoms = me.hashUtilsCls.cloneHash(ic.dAtoms);
42524
+ }
42145
42525
 
42146
42526
  ic.dAtoms = me.hashUtilsCls.cloneHash(ic.hAtoms);
42147
42527
  ic.viewSelectionAtoms = me.hashUtilsCls.cloneHash(ic.hAtoms);
@@ -42782,11 +43162,14 @@ class SetStyle {
42782
43162
  console.log("WebGL context was lost. Reset WebGLRenderer and launch iCn3D again.");
42783
43163
 
42784
43164
  ic.renderer = new THREE.WebGLRenderer({
42785
- canvas: ic.container.get(0),
42786
- antialias: true,
42787
- preserveDrawingBuffer: true,
42788
- alpha: true
43165
+ canvas: ic.oriContainer.get(0), //this.container.get(0),
43166
+ antialias: true,
43167
+ preserveDrawingBuffer: true,
43168
+ sortObjects: false,
43169
+ alpha: true
42789
43170
  });
43171
+ // Enable VR
43172
+ ic.renderer.xr.enabled = true;
42790
43173
 
42791
43174
  ic.drawCls.draw();
42792
43175
 
@@ -43995,7 +44378,8 @@ class ApplySymd {
43995
44378
  }
43996
44379
  else { // bSymd, subset, and one chain
43997
44380
  if(Object.keys(ic.hAtoms).length == 0) {
43998
- ic.hAtoms = me.hashUtilsCls.cloneHash(ic.atoms);
44381
+ //ic.hAtoms = me.hashUtilsCls.cloneHash(ic.atoms);
44382
+ ic.hAtoms = me.hashUtilsCls.cloneHash(ic.dAtoms);
43999
44383
  }
44000
44384
 
44001
44385
  // pick the first 1/order of selection
@@ -53372,6 +53756,95 @@ class ClickMenu {
53372
53756
  $("#" + me.pre + id2).resizable();
53373
53757
  }
53374
53758
 
53759
+ applyShownMenus() { let me = this.icn3dui; me.icn3d;
53760
+ let idArray = [];
53761
+ for(let id in me.htmlCls.allMenus) {
53762
+ if(me.htmlCls.shownMenus.hasOwnProperty(id)) {
53763
+ $("#" + id).parent().show();
53764
+ idArray.push(id);
53765
+ }
53766
+ else {
53767
+ $("#" + id).parent().hide();
53768
+ }
53769
+ }
53770
+
53771
+ if(Object.keys(me.htmlCls.shownMenus).length == Object.keys(me.htmlCls.allMenus).length) {
53772
+ $(".icn3d-menusep").show();
53773
+ }
53774
+ else {
53775
+ $(".icn3d-menusep").hide();
53776
+ }
53777
+
53778
+ // save to localStorage
53779
+ if(localStorage) localStorage.setItem('menulist', JSON.stringify(idArray));
53780
+ }
53781
+
53782
+ getShownMenusFromCookie() { let me = this.icn3dui; me.icn3d;
53783
+ me.htmlCls.shownMenus = {};
53784
+
53785
+ let idArrayStr = (localStorage) ? localStorage.getItem('menulist') : '';
53786
+
53787
+ if(idArrayStr) {
53788
+ let idArray = JSON.parse(idArrayStr);
53789
+
53790
+ for(let i = 0, il = idArray.length; i < il; ++i) {
53791
+ me.htmlCls.shownMenus[idArray[i]] = 1;
53792
+ }
53793
+ }
53794
+ else {
53795
+ me.htmlCls.shownMenus = me.hashUtilsCls.cloneHash(me.htmlCls.allMenus);
53796
+ }
53797
+ }
53798
+
53799
+ displayShownMenus() { let me = this.icn3dui; me.icn3d;
53800
+ let html = "<form name='" + me.pre + "selmenu'>";
53801
+ html += "<table><tr><th>File</th><th>Select</th><th>View</th><th>Style</th><th>Color</th><th>Analysis</th><th>Help</th></tr>";
53802
+ html += "<tr>";
53803
+ for(let id in me.htmlCls.allMenusSel) {
53804
+ // skip all unicolor: too many
53805
+ let len = me.pre.length;
53806
+ if(id.substr(0, 6 + len) == me.pre + 'uniclr'
53807
+ || id.substr(0, 11 + len) == me.pre + 'mn5_opacity'
53808
+ || id.substr(0, 14 + len) == me.pre + 'mn6_labelscale'
53809
+ || id.substr(0, 4 + len) == me.pre + 'faq_'
53810
+ || id.substr(0, 4 + len) == me.pre + 'dev_') {
53811
+ continue;
53812
+ }
53813
+
53814
+ if(id == me.pre + 'mn1_searchstru') {
53815
+ html += "<td valign='top'>";
53816
+ }
53817
+ else if(id == me.pre + 'mn2_definedsets') {
53818
+ html += "</td><td valign='top'>";
53819
+ }
53820
+ else if(id == me.pre + 'mn2_show_selected') {
53821
+ html += "</td><td valign='top'>";
53822
+ }
53823
+ else if(id == me.pre + 'mn3_proteinwrap' || (me.cfg.cid && id == me.pre + 'mn3_ligwrap')) {
53824
+ html += "</td><td valign='top'>";
53825
+ }
53826
+ else if(id == me.pre + 'mn4_clrwrap') {
53827
+ html += "</td><td valign='top'>";
53828
+ }
53829
+ else if(id == me.pre + 'mn6_selectannotations') {
53830
+ html += "</td><td valign='top'>";
53831
+ }
53832
+ else if(id == me.pre + 'abouticn3d') {
53833
+ html += "</td><td valign='top'>";
53834
+ }
53835
+
53836
+ let checkStr = (me.htmlCls.shownMenus.hasOwnProperty(id)) ? "checked" : "";
53837
+
53838
+ let selType = me.htmlCls.allMenusSel[id];
53839
+ let styleStr = (selType == 3) ? " style='margin-left:30px'" : ((selType == 2) ? " style='margin-left:15px'" : "");
53840
+
53841
+ html += "<span style='white-space:nowrap'><input type='checkbox' name='" + id + "' value='" + id + "'" + checkStr + styleStr + ">" + me.htmlCls.allMenus[id] + "</span><br>";
53842
+ }
53843
+ html += "</td></tr></table></form>";
53844
+
53845
+ $("#" + me.pre + "menulist").html(html);
53846
+ }
53847
+
53375
53848
 
53376
53849
  clickMenu1() { let me = this.icn3dui; me.icn3d;
53377
53850
  if(me.bNode) return;
@@ -53753,6 +54226,98 @@ class ClickMenu {
53753
54226
  ic.resizeCanvasCls.replayoff();
53754
54227
  thisClass.setLogCmd("replay off", true);
53755
54228
  });
54229
+
54230
+ me.myEventCls.onIds("#" + me.pre + "mn1_menuall", "click", function(e) { me.icn3d;
54231
+ me.htmlCls.shownMenus = me.hashUtilsCls.cloneHash(me.htmlCls.allMenus);
54232
+
54233
+ thisClass.applyShownMenus();
54234
+ });
54235
+
54236
+ me.myEventCls.onIds("#" + me.pre + "mn1_menusimple", "click", function(e) { me.icn3d;
54237
+ me.htmlCls.shownMenus = me.hashUtilsCls.cloneHash(me.htmlCls.simpleMenus);
54238
+
54239
+ thisClass.applyShownMenus();
54240
+ });
54241
+
54242
+ me.myEventCls.onIds("#" + me.pre + "mn1_menupref", "click", function(e) { me.icn3d;
54243
+ me.htmlCls.dialogCls.openDlg('dl_menupref', 'Select Menus');
54244
+
54245
+ thisClass.getShownMenusFromCookie();
54246
+
54247
+ thisClass.displayShownMenus();
54248
+ });
54249
+
54250
+ me.myEventCls.onIds("#" + me.pre + "apply_menupref", "click", function(e) { me.icn3d;
54251
+ var checkboxes = document.querySelectorAll('form[name="' + me.pre + 'selmenu"] input:checked');
54252
+ me.htmlCls.shownMenus = {};
54253
+ for (var checkbox of checkboxes) {
54254
+ me.htmlCls.shownMenus[checkbox.value] = 1;
54255
+ }
54256
+
54257
+ thisClass.applyShownMenus();
54258
+ });
54259
+
54260
+ me.myEventCls.onIds("#" + me.pre + "reset_menupref", "click", function(e) { me.icn3d;
54261
+ me.htmlCls.shownMenus = me.hashUtilsCls.cloneHash(me.htmlCls.simpleMenus);
54262
+
54263
+ thisClass.applyShownMenus();
54264
+ thisClass.displayShownMenus();
54265
+ });
54266
+
54267
+ me.myEventCls.onIds("#" + me.pre + "reset_menupref_all", "click", function(e) { me.icn3d;
54268
+ me.htmlCls.shownMenus = me.hashUtilsCls.cloneHash(me.htmlCls.allMenus);
54269
+
54270
+ thisClass.applyShownMenus();
54271
+ thisClass.displayShownMenus();
54272
+ });
54273
+
54274
+ me.myEventCls.onIds("#" + me.pre + "savepref", "click", function(e) { let ic = me.icn3d;
54275
+ let menuStr = '[';
54276
+
54277
+ var checkboxes = document.querySelectorAll('form[name="' + me.pre + 'selmenu"] input:checked');
54278
+ let cnt = 0;
54279
+ for (var checkbox of checkboxes) {
54280
+ if(cnt > 0) menuStr += ', ';
54281
+ menuStr += '"' + checkbox.value + '"';
54282
+ ++cnt;
54283
+ }
54284
+
54285
+ menuStr += ']';
54286
+
54287
+ ic.saveFileCls.saveFile('icn3d_shown_menus.txt', 'text', [menuStr]);
54288
+ });
54289
+
54290
+ me.myEventCls.onIds("#" + me.pre + "reload_menupreffile", "click", function(e) { me.icn3d;
54291
+ e.preventDefault();
54292
+ if(!me.cfg.notebook) dialog.dialog( "close" );
54293
+ let file = $("#" + me.pre + "menupreffile")[0].files[0];
54294
+ if(!file) {
54295
+ var aaa = 1; //alert("Please select a file before clicking 'Load'");
54296
+ }
54297
+ else {
54298
+ me.htmlCls.setHtmlCls.fileSupport();
54299
+ let reader = new FileReader();
54300
+ reader.onload = function(e) {
54301
+ let dataStr = e.target.result; // or = reader.result;
54302
+ let idArray = JSON.parse(dataStr);
54303
+
54304
+ me.htmlCls.shownMenus = {};
54305
+ for(let i = 0, il = idArray.length; i < il; ++i) {
54306
+ me.htmlCls.shownMenus[idArray[i]] = 1;
54307
+ }
54308
+
54309
+ thisClass.applyShownMenus();
54310
+ thisClass.displayShownMenus();
54311
+ };
54312
+ reader.readAsText(file);
54313
+ }
54314
+ });
54315
+
54316
+ me.myEventCls.onIds("#" + me.pre + "mn1_menuloadpref", "click", function(e) { me.icn3d;
54317
+ me.htmlCls.dialogCls.openDlg('dl_menuloadpref', 'Please input the menu preference file');
54318
+ });
54319
+
54320
+
53756
54321
  // },
53757
54322
  // clkMn1_link_structure: function() {
53758
54323
  me.myEventCls.onIds("#" + me.pre + "mn1_link_structure", "click", function(e) { let ic = me.icn3d;
@@ -55396,8 +55961,9 @@ class ClickMenu {
55396
55961
  // },
55397
55962
  // clkmn5_setThickness: function() {
55398
55963
  me.myEventCls.onIds("#" + me.pre + "mn3_setThickness", "click", function(e) { me.icn3d;
55399
- me.htmlCls.dialogCls.openDlg('dl_thickness2', 'Preferences');
55964
+ me.htmlCls.dialogCls.openDlg('dl_thickness2', 'Style Preferences');
55400
55965
  });
55966
+
55401
55967
  // },
55402
55968
  // clkmn1_thicknessReset: function() {
55403
55969
  /*
@@ -55539,26 +56105,24 @@ class SetMenu {
55539
56105
  let tdStr = '<td valign="top">';
55540
56106
  html += tdStr + this.setMenu1() + '</td>';
55541
56107
 
55542
- //if(!me.cfg.simplemenu) {
55543
- html += tdStr + this.setMenu2() + '</td>';
55544
- //}
56108
+ html += tdStr + this.setMenu2() + '</td>';
55545
56109
 
55546
56110
  html += tdStr + this.setMenu2b() + '</td>';
55547
56111
  html += tdStr + this.setMenu3() + '</td>';
55548
56112
  html += tdStr + this.setMenu4() + '</td>';
55549
56113
 
55550
- //if(!me.cfg.simplemenu) {
55551
- html += tdStr + this.setMenu5() + '</td>';
55552
- //html += tdStr + this.setMenu5b() + '</td>';
55553
- html += tdStr + this.setMenu6() + '</td>';
56114
+ html += tdStr + this.setMenu5() + '</td>';
56115
+ //html += tdStr + this.setMenu5b() + '</td>';
56116
+ html += tdStr + this.setMenu6() + '</td>';
55554
56117
 
55555
- html += tdStr + "<div style='position:relative; margin-left:6px;'>" + str1;
55556
- html += "<div class='icn3d-commandTitle' style='min-width:40px; margin-top: 3px; white-space: nowrap;'>" + str2;
56118
+ me.htmlCls.shownMenus = me.hashUtilsCls.cloneHash(me.htmlCls.simpleMenus);
55557
56119
 
55558
- html += tdStr + '<div class="icn3d-commandTitle" style="white-space:nowrap; margin-top:10px; border-left:solid 1px #888888"><span id="' + me.pre + 'selection_expand" class="icn3d-expand icn3d-link" style="display:block;" title="Expand">' + me.htmlCls.space2 + 'Toolbar <span class="ui-icon ui-icon-plus" style="width:15px"></span>' + me.htmlCls.space2 + '</span><span id="' + me.pre + 'selection_shrink" class="icn3d-shrink icn3d-link" style="display:none;" title="Shrink">' + me.htmlCls.space2 + 'Toolbar <span class="ui-icon ui-icon-minus" style="width:15px"></span>' + me.htmlCls.space2 + '</span></div></td>';
56120
+ html += tdStr + "<div style='position:relative; margin-left:6px;'>" + str1;
56121
+ html += "<div class='icn3d-commandTitle' style='min-width:40px; margin-top: 3px; white-space: nowrap;'>" + str2;
55559
56122
 
55560
- html += tdStr + '<div class="icn3d-commandTitle" style="white-space:nowrap; margin-top:8px; border-left:solid 1px #888888">' + me.htmlCls.space2 + '<input type="text" id="' + me.pre + 'search_seq" size="10" placeholder="one-letter seq."> <button style="white-space:nowrap;" id="' + me.pre + 'search_seq_button">Search</button> <a style="text-decoration: none;" href="' + me.htmlCls.baseUrl + 'icn3d/icn3d.html#selectb" target="_blank" title="Specification tips">?</a></div></td>';
55561
- //}
56123
+ html += tdStr + '<div class="icn3d-commandTitle" style="white-space:nowrap; margin-top:10px; border-left:solid 1px #888888"><span id="' + me.pre + 'selection_expand" class="icn3d-expand icn3d-link" style="display:block;" title="Expand">' + me.htmlCls.space2 + 'Toolbar <span class="ui-icon ui-icon-plus" style="width:15px"></span>' + me.htmlCls.space2 + '</span><span id="' + me.pre + 'selection_shrink" class="icn3d-shrink icn3d-link" style="display:none;" title="Shrink">' + me.htmlCls.space2 + 'Toolbar <span class="ui-icon ui-icon-minus" style="width:15px"></span>' + me.htmlCls.space2 + '</span></div></td>';
56124
+
56125
+ html += tdStr + '<div class="icn3d-commandTitle" style="white-space:nowrap; margin-top:8px; border-left:solid 1px #888888">' + me.htmlCls.space2 + '<input type="text" id="' + me.pre + 'search_seq" size="10" placeholder="one-letter seq."> <button style="white-space:nowrap;" id="' + me.pre + 'search_seq_button">Search</button> <a style="text-decoration: none;" href="' + me.htmlCls.baseUrl + 'icn3d/icn3d.html#selectb" target="_blank" title="Specification tips">?</a></div></td>';
55562
56126
 
55563
56127
  html += "</tr>";
55564
56128
  html += "</table>";
@@ -55674,6 +56238,8 @@ class SetMenu {
55674
56238
  html += liStr + ">Help</span>";
55675
56239
  html += this.setMenu6_base();
55676
56240
 
56241
+ me.htmlCls.shownMenus = me.hashUtilsCls.cloneHash(me.htmlCls.simpleMenus);
56242
+
55677
56243
  html += "<li><div style='position:relative; margin-top:-6px;'>" + str1;
55678
56244
  html += "<div class='icn3d-commandTitle' style='margin-top: 3px; white-space: nowrap;'>" + str2;
55679
56245
 
@@ -55972,159 +56538,157 @@ class SetMenu {
55972
56538
  let html = "";
55973
56539
 
55974
56540
  html += "<ul class='icn3d-mn-item'>";
55975
- html += "<li><a href='https://www.ncbi.nlm.nih.gov/structure' target='_blank'>Search Structure " + me.htmlCls.wifiStr + "</a></li>";
56541
+ //html += "<li><a href='https://www.ncbi.nlm.nih.gov/structure' target='_blank'>Search Structure " + me.htmlCls.wifiStr + "</a></li>";
56542
+ html += me.htmlCls.setHtmlCls.getMenuUrl('mn1_searchstru', "https://www.ncbi.nlm.nih.gov/structure", "Search Structure " + me.htmlCls.wifiStr, 1, 1);
55976
56543
 
55977
- html += "<li><span>Search Similar</span>";
56544
+ //html += "<li><span>Search Similar</span>";
56545
+ html += me.htmlCls.setHtmlCls.getMenuText('mn1_searchsimilar', 'Search Similar', undefined, undefined, 1);
55978
56546
  html += "<ul>";
55979
- html += me.htmlCls.setHtmlCls.getLink('mn1_vastplus', 'NCBI VAST+ (PDB Assembly)' + me.htmlCls.wifiStr);
55980
- html += me.htmlCls.setHtmlCls.getLink('mn1_vast', 'NCBI VAST (PDB)' + me.htmlCls.wifiStr);
55981
- html += me.htmlCls.setHtmlCls.getLink('mn1_foldseek', 'Foldseek (PDB & AlphaFold)' + me.htmlCls.wifiStr);
56547
+ html += me.htmlCls.setHtmlCls.getLink('mn1_vastplus', 'NCBI VAST+ (PDB Assembly)' + me.htmlCls.wifiStr, undefined, 2);
56548
+ html += me.htmlCls.setHtmlCls.getLink('mn1_vast', 'NCBI VAST (PDB)' + me.htmlCls.wifiStr, undefined, 2);
56549
+ html += me.htmlCls.setHtmlCls.getLink('mn1_foldseek', 'Foldseek (PDB & AlphaFold)' + me.htmlCls.wifiStr, undefined, 2);
55982
56550
  html += "</ul>";
56551
+ html += "</li>";
55983
56552
 
55984
- html += "<li><span>Retrieve by ID</span>";
56553
+ //html += "<li><span>Retrieve by ID</span>";
56554
+ html += me.htmlCls.setHtmlCls.getMenuText('mn1_retrievebyid', 'Retrieve by ID', undefined, 1, 1);
55985
56555
  html += "<ul>";
55986
- html += me.htmlCls.setHtmlCls.getLink('mn1_mmdbid', 'MMDB ID ' + me.htmlCls.wifiStr);
55987
- html += me.htmlCls.setHtmlCls.getLink('mn1_mmtfid', 'MMTF ID ' + me.htmlCls.wifiStr);
55988
- html += me.htmlCls.setHtmlCls.getLink('mn1_pdbid', 'PDB ID ' + me.htmlCls.wifiStr);
55989
- html += me.htmlCls.setHtmlCls.getLink('mn1_afid', 'AlphaFold UniProt ID ' + me.htmlCls.wifiStr);
55990
- html += me.htmlCls.setHtmlCls.getLink('mn1_mmdbafid', 'MMDB or AlphaFold IDs' + me.htmlCls.wifiStr);
55991
- if(!me.cfg.simplemenu) {
55992
- html += me.htmlCls.setHtmlCls.getLink('mn1_opmid', 'OPM PDB ID ' + me.htmlCls.wifiStr);
55993
- html += me.htmlCls.setHtmlCls.getLink('mn1_mmcifid', 'mmCIF ID ' + me.htmlCls.wifiStr);
55994
- html += me.htmlCls.setHtmlCls.getLink('mn1_gi', 'NCBI gi ' + me.htmlCls.wifiStr);
55995
- }
56556
+
56557
+ html += me.htmlCls.setHtmlCls.getLink('mn1_mmdbafid', 'PDB/MMDB/AlphaFold IDs' + me.htmlCls.wifiStr, 1, 2);
56558
+ html += me.htmlCls.setHtmlCls.getLink('mn1_mmdbid', 'MMDB ID ' + me.htmlCls.wifiStr, undefined, 2);
56559
+ html += me.htmlCls.setHtmlCls.getLink('mn1_mmtfid', 'MMTF ID ' + me.htmlCls.wifiStr, undefined, 2);
56560
+ html += me.htmlCls.setHtmlCls.getLink('mn1_pdbid', 'PDB ID ' + me.htmlCls.wifiStr, undefined, 2);
56561
+ html += me.htmlCls.setHtmlCls.getLink('mn1_afid', 'AlphaFold UniProt ID ' + me.htmlCls.wifiStr, undefined, 2);
56562
+ html += me.htmlCls.setHtmlCls.getLink('mn1_opmid', 'OPM PDB ID ' + me.htmlCls.wifiStr, undefined, 2);
56563
+ html += me.htmlCls.setHtmlCls.getLink('mn1_mmcifid', 'mmCIF ID ' + me.htmlCls.wifiStr, undefined, 2);
56564
+ html += me.htmlCls.setHtmlCls.getLink('mn1_gi', 'NCBI gi ' + me.htmlCls.wifiStr, undefined, 2);
56565
+
55996
56566
  //html += me.htmlCls.setHtmlCls.getLink('mn1_uniprotid', 'UniProt ID ' + me.htmlCls.wifiStr);
55997
- html += me.htmlCls.setHtmlCls.getLink('mn1_cid', 'PubChem CID ' + me.htmlCls.wifiStr);
56567
+ html += me.htmlCls.setHtmlCls.getLink('mn1_cid', 'PubChem CID ' + me.htmlCls.wifiStr, 1, 2);
55998
56568
 
55999
56569
  html += "</ul>";
56000
56570
  html += "</li>";
56001
- html += "<li><span>Open File</span>";
56571
+
56572
+ //html += "<li><span>Open File</span>";
56573
+ html += me.htmlCls.setHtmlCls.getMenuText('mn1_openfile', 'Open File', undefined, 1, 1);
56002
56574
  html += "<ul>";
56003
56575
  // html += me.htmlCls.setHtmlCls.getLink('mn1_pdbfile', 'PDB File');
56004
56576
  // html += me.htmlCls.setHtmlCls.getLink('mn1_pdbfile_app', 'PDB File (append)');
56005
- html += me.htmlCls.setHtmlCls.getLink('mn1_pdbfile_app', 'PDB Files (appendable)');
56006
- if(!me.cfg.simplemenu) html += me.htmlCls.setHtmlCls.getLink('mn1_mmciffile', 'mmCIF File');
56007
- html += me.htmlCls.setHtmlCls.getLink('mn1_mol2file', 'Mol2 File');
56008
- html += me.htmlCls.setHtmlCls.getLink('mn1_sdffile', 'SDF File');
56009
- html += me.htmlCls.setHtmlCls.getLink('mn1_xyzfile', 'XYZ File');
56010
- html += me.htmlCls.setHtmlCls.getLink('mn1_afmapfile', 'AlphaFold PAE File');
56011
-
56012
- if(!me.cfg.simplemenu) html += me.htmlCls.setHtmlCls.getLink('mn1_urlfile', 'URL(Same Host) ' + me.htmlCls.wifiStr);
56013
- html += "<li>-</li>";
56014
- html += me.htmlCls.setHtmlCls.getLink('mn1_pngimage', 'iCn3D PNG Image');
56015
- html += me.htmlCls.setHtmlCls.getLink('mn1_state', 'State/Script File');
56016
- if(!me.cfg.simplemenu) html += me.htmlCls.setHtmlCls.getLink('mn1_fixedversion', 'Share Link in Archived Ver. ' + me.htmlCls.wifiStr);
56017
- html += me.htmlCls.setHtmlCls.getLink('mn1_selection', 'Selection File');
56018
-
56019
- if(!me.cfg.simplemenu) {
56020
- html += "<li>-</li>";
56021
-
56022
- html += "<li><span>Electron Density(DSN6)</span>";
56023
- html += "<ul>";
56024
- html += me.htmlCls.setHtmlCls.getLink('mn1_dsn6', 'Local File');
56025
- html += me.htmlCls.setHtmlCls.getLink('mn1_dsn6url', 'URL(Same Host) ' + me.htmlCls.wifiStr);
56026
- html += "</ul>";
56027
- }
56577
+ html += me.htmlCls.setHtmlCls.getLink('mn1_pdbfile_app', 'PDB Files (appendable)', 1, 2);
56578
+ html += me.htmlCls.setHtmlCls.getLink('mn1_mmciffile', 'mmCIF File', undefined, 2);
56579
+ html += me.htmlCls.setHtmlCls.getLink('mn1_mol2file', 'Mol2 File', undefined, 2);
56580
+ html += me.htmlCls.setHtmlCls.getLink('mn1_sdffile', 'SDF File', undefined, 2);
56581
+ html += me.htmlCls.setHtmlCls.getLink('mn1_xyzfile', 'XYZ File', undefined, 2);
56582
+ html += me.htmlCls.setHtmlCls.getLink('mn1_afmapfile', 'AlphaFold PAE File', undefined, 2);
56583
+
56584
+ html += me.htmlCls.setHtmlCls.getLink('mn1_urlfile', 'URL(Same Host) ' + me.htmlCls.wifiStr, undefined, 2);
56585
+ html += me.htmlCls.setHtmlCls.getMenuSep();
56586
+ html += me.htmlCls.setHtmlCls.getLink('mn1_pngimage', 'iCn3D PNG Image', 1, 2);
56587
+ html += me.htmlCls.setHtmlCls.getLink('mn1_state', 'State/Script File', undefined, 2);
56588
+ html += me.htmlCls.setHtmlCls.getLink('mn1_fixedversion', 'Share Link in Archived Ver. ' + me.htmlCls.wifiStr, undefined, 2);
56589
+ html += me.htmlCls.setHtmlCls.getLink('mn1_selection', 'Selection File', undefined, 2);
56590
+
56591
+ html += me.htmlCls.setHtmlCls.getMenuSep();
56592
+
56593
+ //html += "<li><span>Electron Density(DSN6)</span>";
56594
+ html += me.htmlCls.setHtmlCls.getMenuText('mn1_dsn6wrap', 'Electron Density(DSN6)', undefined, undefined, 2);
56595
+ html += "<ul>";
56596
+ html += me.htmlCls.setHtmlCls.getLink('mn1_dsn6', 'Local File', undefined, 3);
56597
+ html += me.htmlCls.setHtmlCls.getLink('mn1_dsn6url', 'URL(Same Host) ' + me.htmlCls.wifiStr, undefined, 3);
56598
+ html += "</ul>";
56028
56599
 
56029
56600
  html += "</ul>";
56030
56601
  html += "</li>";
56031
- html += "<li><span>Align</span>";
56602
+
56603
+ //html += "<li><span>Align</span>";
56604
+ html += me.htmlCls.setHtmlCls.getMenuText('mn1_alignwrap', 'Align', undefined, 1, 1);
56032
56605
  html += "<ul>";
56033
56606
 
56034
- html += "<li><span>Multiple Chains</span>";
56607
+ //html += "<li><span>Multiple Chains</span>";
56608
+ html += me.htmlCls.setHtmlCls.getMenuText('mn1_chainalignwrap', 'Multiple Chains', undefined, 1, 2);
56035
56609
  html += "<ul>";
56036
- html += me.htmlCls.setHtmlCls.getRadio('mn1_chainalignRad', 'mn1_chainalign', 'by Structure Alignment ' + me.htmlCls.wifiStr);
56037
- html += me.htmlCls.setHtmlCls.getRadio('mn1_chainalignRad', 'mn1_chainalign2', 'by Sequence Alignment ' + me.htmlCls.wifiStr);
56038
- html += me.htmlCls.setHtmlCls.getRadio('mn1_chainalignRad', 'mn1_chainalign3', 'Residue by Residue');
56610
+ html += me.htmlCls.setHtmlCls.getRadio('mn1_chainalignRad', 'mn1_chainalign', 'by Structure Alignment ' + me.htmlCls.wifiStr, undefined, 1, 3);
56611
+ html += me.htmlCls.setHtmlCls.getRadio('mn1_chainalignRad', 'mn1_chainalign2', 'by Sequence Alignment ' + me.htmlCls.wifiStr, undefined, 1, 3);
56612
+ html += me.htmlCls.setHtmlCls.getRadio('mn1_chainalignRad', 'mn1_chainalign3', 'Residue by Residue', undefined, undefined, 3);
56039
56613
  html += "</ul>";
56040
56614
  html += "</li>";
56041
56615
 
56042
- html += "<li><span>Structure to Structure</span>";
56616
+ //html += "<li><span>Structure to Structure</span>";
56617
+ html += me.htmlCls.setHtmlCls.getMenuText('mn1_aligntwostru', 'Structure to Structure', undefined, undefined, 2);
56043
56618
  html += "<ul>";
56044
- html += me.htmlCls.setHtmlCls.getLink('mn1_align', 'Two PDB Structures ' + me.htmlCls.wifiStr);
56045
- html += me.htmlCls.setHtmlCls.getLink('mn1_alignaf', 'Two AlphaFold Structures ' + me.htmlCls.wifiStr);
56619
+ html += me.htmlCls.setHtmlCls.getLink('mn1_align', 'Two PDB Structures ' + me.htmlCls.wifiStr, undefined, 3);
56620
+ html += me.htmlCls.setHtmlCls.getLink('mn1_alignaf', 'Two AlphaFold Structures ' + me.htmlCls.wifiStr, undefined, 3);
56046
56621
  html += "</ul>";
56047
56622
 
56048
- html += me.htmlCls.setHtmlCls.getLink('mn1_blast_rep_id', 'Sequence to Structure');
56623
+ html += me.htmlCls.setHtmlCls.getLink('mn1_blast_rep_id', 'Sequence to Structure', undefined, 2);
56049
56624
 
56050
56625
  html += "</ul>";
56051
56626
  html += "</li>";
56052
56627
 
56053
- html += "<li id='" + me.pre + "mn2_realignWrap'><span>Realign Selection</span>";
56628
+ //html += "<li id='" + me.pre + "mn2_realignWrap'><span>Realign Selection</span>";
56629
+ html += me.htmlCls.setHtmlCls.getMenuText('mn2_realignWrap', 'Realign Selection', undefined, undefined, 1);
56054
56630
  html += "<ul>";
56055
56631
 
56056
- html += me.htmlCls.setHtmlCls.getRadio('mn2_realign', 'mn2_realignonstruct', 'by Structure Alignment ' + me.htmlCls.wifiStr);
56632
+ html += me.htmlCls.setHtmlCls.getRadio('mn2_realign', 'mn2_realignonstruct', 'by Structure Alignment ' + me.htmlCls.wifiStr, undefined, undefined, 2);
56057
56633
 
56058
- html += me.htmlCls.setHtmlCls.getRadio('mn2_realign', 'mn2_realignonseqalign', 'by Sequence Alignment ' + me.htmlCls.wifiStr);
56059
- html += me.htmlCls.setHtmlCls.getRadio('mn2_realign', 'mn2_realignresbyres', 'Residue by Residue');
56634
+ html += me.htmlCls.setHtmlCls.getRadio('mn2_realign', 'mn2_realignonseqalign', 'by Sequence Alignment ' + me.htmlCls.wifiStr, undefined, undefined, 2);
56635
+ html += me.htmlCls.setHtmlCls.getRadio('mn2_realign', 'mn2_realignresbyres', 'Residue by Residue', undefined, undefined, 2);
56060
56636
  html += "</ul>";
56061
56637
  html += "</li>";
56062
56638
 
56063
- html += "<li><span>3D Printing</span>";
56639
+ //html += "<li><span>3D Printing</span>";
56640
+ html += me.htmlCls.setHtmlCls.getMenuText('mn1_3dpprint', '3D Printing', undefined, 1, 1);
56064
56641
  html += "<ul>";
56065
56642
  if(me.cfg.cid === undefined) {
56066
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportVrmlStab', 'WRL/VRML(Color, W/ Stab.)');
56067
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportStlStab', 'STL(W/ Stabilizers)');
56068
- html += "<li>-</li>";
56069
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportVrml', 'WRL/VRML(Color)');
56070
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportStl', 'STL');
56071
-
56072
- if(!me.cfg.simplemenu) {
56073
- html += "<li>-</li>";
56074
- html += me.htmlCls.setHtmlCls.getLink('mn1_stabilizerYes', 'Add All Stabilizers');
56075
- html += me.htmlCls.setHtmlCls.getLink('mn1_stabilizerNo', 'Remove All Stabilizers');
56076
- html += "<li>-</li>";
56077
- html += me.htmlCls.setHtmlCls.getLink('mn1_stabilizerOne', 'Add One Stabilizer');
56078
- html += me.htmlCls.setHtmlCls.getLink('mn1_stabilizerRmOne', 'Remove One Stabilizer');
56079
- html += "<li>-</li>";
56080
- html += me.htmlCls.setHtmlCls.getLink('mn1_thicknessSet', 'Set Thickness');
56081
- //html += me.htmlCls.setHtmlCls.getLink('mn1_thicknessReset', 'Reset Thickness');
56082
- }
56643
+ html += me.htmlCls.setHtmlCls.getLink('mn1_exportVrmlStab', 'WRL/VRML(Color, W/ Stab.)', 1, 2);
56644
+ html += me.htmlCls.setHtmlCls.getLink('mn1_exportStlStab', 'STL(W/ Stabilizers)', 1, 2);
56645
+ html += me.htmlCls.setHtmlCls.getMenuSep();
56646
+ html += me.htmlCls.setHtmlCls.getLink('mn1_exportVrml', 'WRL/VRML(Color)', undefined, 2);
56647
+ html += me.htmlCls.setHtmlCls.getLink('mn1_exportStl', 'STL', undefined, 2);
56648
+
56649
+ html += me.htmlCls.setHtmlCls.getMenuSep();
56650
+ html += me.htmlCls.setHtmlCls.getLink('mn1_stabilizerYes', 'Add All Stabilizers', undefined, 2);
56651
+ html += me.htmlCls.setHtmlCls.getLink('mn1_stabilizerNo', 'Remove All Stabilizers', undefined, 2);
56652
+ html += me.htmlCls.setHtmlCls.getMenuSep();
56653
+ html += me.htmlCls.setHtmlCls.getLink('mn1_stabilizerOne', 'Add One Stabilizer', undefined, 2);
56654
+ html += me.htmlCls.setHtmlCls.getLink('mn1_stabilizerRmOne', 'Remove One Stabilizer', undefined, 2);
56655
+ html += me.htmlCls.setHtmlCls.getMenuSep();
56656
+ html += me.htmlCls.setHtmlCls.getLink('mn1_thicknessSet', 'Set Thickness', undefined, 2);
56083
56657
  }
56084
56658
  else {
56085
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportVrml', 'VRML(Color)');
56086
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportStl', 'STL');
56659
+ html += me.htmlCls.setHtmlCls.getLink('mn1_exportVrml', 'VRML(Color)', 1, 2);
56660
+ html += me.htmlCls.setHtmlCls.getLink('mn1_exportStl', 'STL', 1, 2);
56087
56661
  }
56088
56662
 
56089
56663
  html += "</ul>";
56090
56664
  html += "</li>";
56091
56665
 
56092
- html += "<li><span>Save Files</span>";
56666
+ //html += "<li><span>Save File</span>";
56667
+ html += me.htmlCls.setHtmlCls.getMenuText('mn1_savefile', 'Save File', undefined, 1, 1);
56093
56668
  html += "<ul>";
56094
- //html += me.htmlCls.setHtmlCls.getLink('mn1_exportCanvas', 'iCn3D PNG Image');
56095
-
56096
- html += "<li><span>iCn3D PNG Image</span>";
56669
+ //html += "<li><span>iCn3D PNG Image</span>";
56670
+ html += me.htmlCls.setHtmlCls.getMenuText('mn1_savepngimage', 'iCn3D PNG Image', undefined, 1, 2);
56097
56671
  html += "<ul>";
56098
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportCanvas', 'Original Size & HTML');
56099
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportCanvas1', 'Original Size');
56100
- if(!me.cfg.simplemenu) {
56101
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportCanvas2', '2X Large');
56102
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportCanvas4', '4X Large');
56103
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportCanvas8', '8X Large');
56104
- }
56105
- html += "</ul>";
56106
- html += "</li>";
56672
+ html += me.htmlCls.setHtmlCls.getLink('mn1_exportCanvas', 'Original Size & HTML', 1, 3);
56673
+ html += me.htmlCls.setHtmlCls.getLink('mn1_exportCanvas1', 'Original Size', undefined, 3);
56107
56674
 
56108
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportState', 'State File');
56109
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportSelections', 'Selection File');
56110
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportSelDetails', 'Selection Details');
56111
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportCounts', 'Residue Counts');
56675
+ html += me.htmlCls.setHtmlCls.getLink('mn1_exportCanvas2', '2X Large', undefined, 3);
56676
+ html += me.htmlCls.setHtmlCls.getLink('mn1_exportCanvas4', '4X Large', undefined, 3);
56677
+ html += me.htmlCls.setHtmlCls.getLink('mn1_exportCanvas8', '8X Large', undefined, 3);
56112
56678
 
56113
- /*
56114
- html += "<li><span>PDB</span>";
56115
- html += "<ul>";
56116
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportPdbRes', 'Selected Residues');
56117
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportPdbChain', 'Selected Chains');
56118
- html += "<li><br/></li>";
56119
56679
  html += "</ul>";
56120
56680
  html += "</li>";
56121
- */
56122
56681
 
56123
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportPdbRes', 'PDB');
56124
- html += me.htmlCls.setHtmlCls.getLink('delphipdbh', 'PDB with Hydrogens');
56682
+ html += me.htmlCls.setHtmlCls.getLink('mn1_exportState', 'State File', undefined, 2);
56683
+ html += me.htmlCls.setHtmlCls.getLink('mn1_exportSelections', 'Selection File', undefined, 2);
56684
+ html += me.htmlCls.setHtmlCls.getLink('mn1_exportSelDetails', 'Selection Details', undefined, 2);
56685
+ html += me.htmlCls.setHtmlCls.getLink('mn1_exportCounts', 'Residue Counts', undefined, 2);
56686
+
56687
+ html += me.htmlCls.setHtmlCls.getLink('mn1_exportPdbRes', 'PDB', 1, 2);
56688
+ html += me.htmlCls.setHtmlCls.getLink('delphipdbh', 'PDB with Hydrogens', undefined, 2);
56125
56689
 
56126
56690
  if(me.cfg.cid === undefined) {
56127
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportSecondary', 'Secondary Structure');
56691
+ html += me.htmlCls.setHtmlCls.getLink('mn1_exportSecondary', 'Secondary Structure', undefined, 2);
56128
56692
  }
56129
56693
 
56130
56694
  html += "<li><br/></li>";
@@ -56132,9 +56696,21 @@ class SetMenu {
56132
56696
  html += "</ul>";
56133
56697
  html += "</li>";
56134
56698
 
56135
- html += me.htmlCls.setHtmlCls.getLink('mn1_sharelink', 'Share Link ' + me.htmlCls.wifiStr);
56699
+ html += me.htmlCls.setHtmlCls.getLink('mn1_sharelink', 'Share Link ' + me.htmlCls.wifiStr, 1, 1);
56700
+
56701
+ html += me.htmlCls.setHtmlCls.getLink('mn1_replayon', 'Replay Each Step', undefined, 1);
56136
56702
 
56137
- html += me.htmlCls.setHtmlCls.getLink('mn1_replayon', 'Replay Each Step');
56703
+ html += me.htmlCls.setHtmlCls.getMenuSep();
56704
+
56705
+ html += me.htmlCls.setHtmlCls.getMenuText('mn1_menuwrap', 'Customize Menus', undefined, 1, 1);
56706
+ html += "<ul>";
56707
+ html += me.htmlCls.setHtmlCls.getLink('mn1_menuall', 'All Menus', 1, 2);
56708
+ html += me.htmlCls.setHtmlCls.getLink('mn1_menusimple', 'Simple Menus', 1, 2);
56709
+ html += me.htmlCls.setHtmlCls.getMenuSep();
56710
+ html += me.htmlCls.setHtmlCls.getLink('mn1_menupref', 'Preferences', 1, 2);
56711
+ html += me.htmlCls.setHtmlCls.getLink('mn1_menuloadpref', 'Load Preferences', 1, 2);
56712
+ html += "</ul>";
56713
+ html += "</li>";
56138
56714
 
56139
56715
  html += "<li><br/></li>";
56140
56716
 
@@ -56170,87 +56746,86 @@ class SetMenu {
56170
56746
 
56171
56747
  html += "<ul class='icn3d-mn-item'>";
56172
56748
 
56173
- if(!me.cfg.simplemenu) html += me.htmlCls.setHtmlCls.getLink('mn2_definedsets', 'Defined Sets');
56174
- html += me.htmlCls.setHtmlCls.getLink('mn2_selectall', 'All');
56175
- if(!me.cfg.simplemenu) html += me.htmlCls.setHtmlCls.getLink('mn2_selectdisplayed', 'Displayed Set');
56176
- html += me.htmlCls.setHtmlCls.getLink('mn2_aroundsphere', 'by Distance');
56749
+ html += me.htmlCls.setHtmlCls.getLink('mn2_definedsets', 'Defined Sets', 1, 1);
56750
+ html += me.htmlCls.setHtmlCls.getLink('mn2_selectall', 'All', undefined, 1);
56751
+ html += me.htmlCls.setHtmlCls.getLink('mn2_selectdisplayed', 'Displayed Set', undefined, 1);
56752
+ html += me.htmlCls.setHtmlCls.getLink('mn2_aroundsphere', 'by Distance', 1, 1);
56177
56753
 
56178
- html += "<li><span>by Property</span>";
56754
+ //html += "<li><span>by Property</span>";
56755
+ html += me.htmlCls.setHtmlCls.getMenuText('mn2_selbyprop', 'by Property', undefined, undefined, 1);
56179
56756
  html += "<ul>";
56180
- html += me.htmlCls.setHtmlCls.getLink('mn2_propPos', 'Positive');
56181
- html += me.htmlCls.setHtmlCls.getLink('mn2_propNeg', 'Negative');
56182
- html += me.htmlCls.setHtmlCls.getLink('mn2_propHydro', 'Hydrophobic');
56183
- html += me.htmlCls.setHtmlCls.getLink('mn2_propPolar', 'Polar');
56184
- html += me.htmlCls.setHtmlCls.getLink('mn2_propBfactor', 'B-factor');
56185
- html += me.htmlCls.setHtmlCls.getLink('mn2_propSolAcc', 'Solvent Accessibility');
56757
+ html += me.htmlCls.setHtmlCls.getLink('mn2_propPos', 'Positive', undefined, 2);
56758
+ html += me.htmlCls.setHtmlCls.getLink('mn2_propNeg', 'Negative', undefined, 2);
56759
+ html += me.htmlCls.setHtmlCls.getLink('mn2_propHydro', 'Hydrophobic', undefined, 2);
56760
+ html += me.htmlCls.setHtmlCls.getLink('mn2_propPolar', 'Polar', undefined, 2);
56761
+ html += me.htmlCls.setHtmlCls.getLink('mn2_propBfactor', 'B-factor', undefined, 2);
56762
+ html += me.htmlCls.setHtmlCls.getLink('mn2_propSolAcc', 'Solvent Accessibility', undefined, 2);
56186
56763
  html += "</ul>";
56187
56764
  html += "</li>";
56188
56765
 
56189
- if(!me.cfg.simplemenu) {
56190
- html += me.htmlCls.setHtmlCls.getLink('mn2_selectcomplement', 'Inverse');
56191
- html += me.htmlCls.setHtmlCls.getLink('mn2_selectmainchains', 'Main Chains');
56192
- html += me.htmlCls.setHtmlCls.getLink('mn2_selectsidechains', 'Side Chains');
56193
- html += me.htmlCls.setHtmlCls.getLink('mn2_selectmainsidechains', 'Main & Side Chains');
56194
- html += me.htmlCls.setHtmlCls.getLink('mn2_command', 'Advanced');
56195
- }
56766
+ html += me.htmlCls.setHtmlCls.getLink('mn2_selectcomplement', 'Inverse', undefined, 1);
56767
+ html += me.htmlCls.setHtmlCls.getLink('mn2_selectmainchains', 'Main Chains', undefined, 1);
56768
+ html += me.htmlCls.setHtmlCls.getLink('mn2_selectsidechains', 'Side Chains', undefined, 1);
56769
+ html += me.htmlCls.setHtmlCls.getLink('mn2_selectmainsidechains', 'Main & Side Chains', undefined, 1);
56770
+ html += me.htmlCls.setHtmlCls.getLink('mn2_command', 'Advanced', undefined, 1);
56196
56771
 
56197
56772
  if(me.cfg.cid === undefined) {
56198
- html += "<li><span>Select on 3D</span>";
56773
+ //html += "<li><span>Select on 3D</span>";
56774
+ html += me.htmlCls.setHtmlCls.getMenuText('mn2_selon3d', 'Select on 3D', undefined, 1, 1);
56199
56775
  html += "<ul>";
56200
56776
 
56201
56777
  html += "<li>\"Alt\"+Click: start selection</li>";
56202
56778
  html += "<li>\"Ctrl\"+Click: union selection</li>";
56203
56779
  html += "<li>\"Shift\"+Click: range Selection</li>";
56204
- html += "<li>-</li>";
56205
- html += me.htmlCls.setHtmlCls.getRadio('mn2_pk', 'mn2_pkChain', 'Chain');
56780
+ html += me.htmlCls.setHtmlCls.getMenuSep();
56781
+ html += me.htmlCls.setHtmlCls.getRadio('mn2_pk', 'mn2_pkChain', 'Chain', undefined, 1, 2);
56206
56782
  if(me.cfg.mmdbid !== undefined || me.cfg.gi !== undefined) {
56207
- html += me.htmlCls.setHtmlCls.getRadio('mn2_pk', 'mn2_pkDomain', '3D Domain');
56783
+ html += me.htmlCls.setHtmlCls.getRadio('mn2_pk', 'mn2_pkDomain', '3D Domain', undefined, undefined, 2);
56208
56784
  }
56209
- html += me.htmlCls.setHtmlCls.getRadio('mn2_pk', 'mn2_pkStrand', 'Strand/Helix');
56210
- html += me.htmlCls.setHtmlCls.getRadio('mn2_pk', 'mn2_pkResidue', 'Residue', true);
56211
- html += me.htmlCls.setHtmlCls.getRadio('mn2_pk', 'mn2_pkYes', 'Atom');
56212
- html += me.htmlCls.setHtmlCls.getRadio('mn2_pk', 'mn2_pkNo', 'None');
56785
+ html += me.htmlCls.setHtmlCls.getRadio('mn2_pk', 'mn2_pkStrand', 'Strand/Helix', undefined, undefined, 2);
56786
+ html += me.htmlCls.setHtmlCls.getRadio('mn2_pk', 'mn2_pkResidue', 'Residue', true, 1, 2);
56787
+ html += me.htmlCls.setHtmlCls.getRadio('mn2_pk', 'mn2_pkYes', 'Atom', undefined, 1, 2);
56788
+ html += me.htmlCls.setHtmlCls.getRadio('mn2_pk', 'mn2_pkNo', 'None', undefined, undefined, 2);
56213
56789
  html += "</ul>";
56214
56790
  html += "</li>";
56215
56791
  }
56216
56792
  else {
56217
56793
  if(me.utilsCls.isMobile()) {
56218
- html += "<li><span>Touch to pick</span>";
56794
+ html += "<li><span>Touch to pick</span></li>";
56219
56795
  }
56220
56796
  else {
56221
- html += "<li><span>Picking with<br>\"Alt\" + Click</span>";
56797
+ html += "<li><span>Picking with<br>\"Alt\" + Click</span></li>";
56222
56798
  }
56223
56799
  }
56224
56800
 
56225
- html += "<li>-</li>";
56801
+ html += me.htmlCls.setHtmlCls.getMenuSep();
56226
56802
 
56227
- html += me.htmlCls.setHtmlCls.getLink('mn2_saveselection', 'Save Selection');
56228
- html += me.htmlCls.setHtmlCls.getLink('clearall', 'Clear Selection');
56803
+ html += me.htmlCls.setHtmlCls.getLink('mn2_saveselection', 'Save Selection', 1, 1);
56804
+ html += me.htmlCls.setHtmlCls.getLink('clearall', 'Clear Selection', undefined, 1);
56229
56805
 
56230
- html += "<li>-</li>";
56806
+ html += me.htmlCls.setHtmlCls.getMenuSep();
56231
56807
 
56232
- if(!me.cfg.simplemenu) {
56233
- html += "<li><span>Highlight Color</span>";
56234
- html += "<ul>";
56235
- html += me.htmlCls.setHtmlCls.getRadio('mn2_hl_clr', 'mn2_hl_clrYellow', 'Yellow', true);
56236
- html += me.htmlCls.setHtmlCls.getRadio('mn2_hl_clr', 'mn2_hl_clrGreen', 'Green');
56237
- html += me.htmlCls.setHtmlCls.getRadio('mn2_hl_clr', 'mn2_hl_clrRed', 'Red');
56238
- html += "</ul>";
56239
- html += "</li>";
56240
- html += "<li><span>Highlight Style</span>";
56241
- html += "<ul>";
56808
+ //html += "<li><span>Highlight Color</span>";
56809
+ html += me.htmlCls.setHtmlCls.getMenuText('mn2_hlcolor', 'Highlight Color', undefined, undefined, 1);
56810
+ html += "<ul>";
56811
+ html += me.htmlCls.setHtmlCls.getRadio('mn2_hl_clr', 'mn2_hl_clrYellow', 'Yellow', true, undefined, 2);
56812
+ html += me.htmlCls.setHtmlCls.getRadio('mn2_hl_clr', 'mn2_hl_clrGreen', 'Green', undefined, undefined, 2);
56813
+ html += me.htmlCls.setHtmlCls.getRadio('mn2_hl_clr', 'mn2_hl_clrRed', 'Red', undefined, undefined, 2);
56814
+ html += "</ul>";
56815
+ html += "</li>";
56816
+ //html += "<li><span>Highlight Style</span>";
56817
+ html += me.htmlCls.setHtmlCls.getMenuText('mn2_hlstyle', 'Highlight Style', undefined, undefined, 1);
56818
+ html += "<ul>";
56242
56819
 
56243
- html += me.htmlCls.setHtmlCls.getRadio('mn2_hl_style', 'mn2_hl_styleOutline', 'Outline', true);
56244
- html += me.htmlCls.setHtmlCls.getRadio('mn2_hl_style', 'mn2_hl_styleObject', '3D Objects');
56245
- //html += me.htmlCls.setHtmlCls.getRadio('mn2_hl_style', 'mn2_hl_styleNone', 'No Highlight');
56820
+ html += me.htmlCls.setHtmlCls.getRadio('mn2_hl_style', 'mn2_hl_styleOutline', 'Outline', true, undefined, 2);
56821
+ html += me.htmlCls.setHtmlCls.getRadio('mn2_hl_style', 'mn2_hl_styleObject', '3D Objects', undefined, undefined, 2);
56246
56822
 
56247
- html += "</ul>";
56248
- html += "</li>";
56249
- }
56823
+ html += "</ul>";
56824
+ html += "</li>";
56250
56825
 
56251
56826
  //html += me.htmlCls.setHtmlCls.getLink('mn2_hl_styleNone', 'Clear Highlight');
56252
56827
 
56253
- html += me.htmlCls.setHtmlCls.getLink('toggleHighlight2', 'Toggle Highlight');
56828
+ html += me.htmlCls.setHtmlCls.getLink('toggleHighlight2', 'Toggle Highlight', 1, 1);
56254
56829
 
56255
56830
  html += "<li><br/></li>";
56256
56831
 
@@ -56284,108 +56859,104 @@ class SetMenu {
56284
56859
  let html = "";
56285
56860
  html += "<ul class='icn3d-mn-item'>";
56286
56861
 
56287
- html += me.htmlCls.setHtmlCls.getLink('mn2_show_selected', 'View Selection');
56288
- if(!me.cfg.simplemenu) html += me.htmlCls.setHtmlCls.getLink('mn2_hide_selected', 'Hide Selection');
56289
- html += me.htmlCls.setHtmlCls.getLink('mn2_selectedcenter', 'Zoom in Selection');
56290
- html += me.htmlCls.setHtmlCls.getLink('mn6_center', 'Center Selection');
56862
+ html += me.htmlCls.setHtmlCls.getLink('mn2_show_selected', 'View Selection', 1, 1);
56863
+ html += me.htmlCls.setHtmlCls.getLink('mn2_hide_selected', 'Hide Selection', 1, 1);
56864
+ html += me.htmlCls.setHtmlCls.getLink('mn2_selectedcenter', 'Zoom in Selection', 1, 1);
56865
+ html += me.htmlCls.setHtmlCls.getLink('mn6_center', 'Center Selection', undefined, 1);
56291
56866
  html += me.htmlCls.setHtmlCls.getLink('mn2_fullstru', 'View Full Structure');
56292
- html += "<li id='" + me.pre + "mn2_alternateWrap'><span id='" + me.pre + "mn2_alternate' class='icn3d-link'>Alternate(Key \"a\")</span></li>";
56867
+ //html += "<li id='" + me.pre + "mn2_alternateWrap'><span id='" + me.pre + "mn2_alternate' class='icn3d-link'>Alternate(Key \"a\")</span></li>";
56868
+ html += me.htmlCls.setHtmlCls.getLinkWrapper('mn2_alternate', 'Alternate(Key "a")', 'mn2_alternateWrap', undefined, 1);
56293
56869
 
56294
56870
  if(me.cfg.opmid !== undefined) {
56295
- html += "<li id='" + me.pre + "togglememli'><span id='" + me.pre + "togglemem' class='icn3d-link'>Toggle Membrane</span></li>";
56296
- html += "<li id='" + me.pre + "adjustmemli'><span id='" + me.pre + "adjustmem' class='icn3d-link'>Adjust Membrane</span></li>";
56297
- html += "<li id='" + me.pre + "selectplaneli'><span id='" + me.pre + "selectplane' class='icn3d-link'>Select between<br>Two X-Y Planes</span></li>";
56298
- }
56299
- else {
56300
- html += "<li id='" + me.pre + "togglememli' style='display:none'><span id='" + me.pre + "togglemem' class='icn3d-link'>Toggle Membrane</span></li>";
56301
- html += "<li id='" + me.pre + "adjustmemli' style='display:none'><span id='" + me.pre + "adjustmem' class='icn3d-link'>Adjust Membrane</span></li>";
56302
- html += "<li id='" + me.pre + "selectplaneli' style='display:none'><span id='" + me.pre + "selectplane' class='icn3d-link'>Select between<br>Two X-Y Planes</span></li>";
56871
+ //html += "<li id='" + me.pre + "togglememli'><span id='" + me.pre + "togglemem' class='icn3d-link'>Toggle Membrane</span></li>";
56872
+ html += me.htmlCls.setHtmlCls.getLinkWrapper('togglemem', 'Toggle Membrane', 'togglememli', undefined, 1);
56873
+ //html += "<li id='" + me.pre + "adjustmemli'><span id='" + me.pre + "adjustmem' class='icn3d-link'>Adjust Membrane</span></li>";
56874
+ html += me.htmlCls.setHtmlCls.getLinkWrapper('adjustmem', 'Adjust Membrane', 'adjustmemli', undefined, 1);
56875
+ //html += "<li id='" + me.pre + "selectplaneli'><span id='" + me.pre + "selectplane' class='icn3d-link'>Select between<br>Two X-Y Planes</span></li>";
56876
+ html += me.htmlCls.setHtmlCls.getLinkWrapper('selectplane', 'Select between<br>Two X-Y Planes</span>', 'selectplaneli', undefined, 1);
56303
56877
  }
56304
56878
 
56305
- html += "<li>-</li>";
56306
-
56307
- let liStr = "<li><a href='";
56879
+ html += me.htmlCls.setHtmlCls.getMenuSep();
56308
56880
 
56309
- html += "<li><span>VR & AR Hints</span>";
56881
+ //html += "<li><span>VR & AR Hints</span>";
56882
+ html += me.htmlCls.setHtmlCls.getMenuText('mn2_vrarhints', 'VR & AR Hints', undefined, 1, 1);
56310
56883
  html += "<ul>";
56311
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#vr' target='_blank'>VR: VR Headsets</a></li>";
56312
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#ar' target='_blank'>AR: Chrome in Android</a></li>";
56884
+ html += me.htmlCls.setHtmlCls.getMenuUrl("vrhint", me.htmlCls.baseUrl + "icn3d/icn3d.html#vr", "VR: VR Headsets", 1, 2);
56885
+ html += me.htmlCls.setHtmlCls.getMenuUrl("arhint", me.htmlCls.baseUrl + "icn3d/icn3d.html#ar", "AR: Chrome in Android", 1, 2);
56313
56886
  html += "</ul>";
56314
- /*
56315
- let liStr = "<li><a href='";
56316
-
56317
- html += "<ul class='icn3d-mn-item'>";
56318
-
56319
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#about' target='_blank'>About iCn3D<span style='font-size:0.9em'> " + me.REVISION + "</span></a></li>";
56320
-
56321
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#gallery' target='_blank'>Live Gallery " + me.htmlCls.wifiStr + "</a></li>";
56322
- */
56887
+ html += "</li>";
56323
56888
 
56324
- html += me.htmlCls.setHtmlCls.getLink('mn6_sidebyside', 'Side by Side');
56889
+ html += me.htmlCls.setHtmlCls.getLink('mn6_sidebyside', 'Side by Side', 1, 1);
56325
56890
 
56326
- html += "<li><span>Rotate</span>";
56891
+ //html += "<li><span>Rotate</span>";
56892
+ html += me.htmlCls.setHtmlCls.getMenuText('mn2_rotate', 'Rotate', undefined, 1, 1);
56327
56893
  html += "<ul>";
56328
56894
 
56329
- html += "<li><span>Rotate 90&deg;</span>";
56895
+ //html += "<li><span>Rotate 90&deg;</span>";
56896
+ html += me.htmlCls.setHtmlCls.getMenuText('mn2_rotate90', 'Rotate 90&deg;', undefined, undefined, 2);
56330
56897
  html += "<ul>";
56331
- html += me.htmlCls.setHtmlCls.getRadio('mn6_rotate90', 'mn6_rotatex', 'X-axis(Shift + Key M)');
56332
- html += me.htmlCls.setHtmlCls.getRadio('mn6_rotate90', 'mn6_rotatey', 'Y-axis(Shift + Key J)');
56333
- html += me.htmlCls.setHtmlCls.getRadio('mn6_rotate90', 'mn6_rotatez', 'Z-axis');
56898
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_rotate90', 'mn6_rotatex', 'X-axis(Shift + Key M)', undefined, undefined, 2);
56899
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_rotate90', 'mn6_rotatey', 'Y-axis(Shift + Key J)', undefined, undefined, 2);
56900
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_rotate90', 'mn6_rotatez', 'Z-axis', undefined, undefined, 2);
56334
56901
  html += "</ul>";
56335
56902
  html += "</li>";
56336
- html += "<li><span>Auto Rotation</span>";
56903
+ //html += "<li><span>Auto Rotation</span>";
56904
+ html += me.htmlCls.setHtmlCls.getMenuText('mn2_rotateauto', 'Auto Rotation', undefined, 1, 2);
56337
56905
  html += "<ul>";
56338
- html += me.htmlCls.setHtmlCls.getRadio('mn6_rotate', 'mn6_rotateleft', 'Rotate Left');
56339
- html += me.htmlCls.setHtmlCls.getRadio('mn6_rotate', 'mn6_rotateright', 'Rotate Right');
56340
- html += me.htmlCls.setHtmlCls.getRadio('mn6_rotate', 'mn6_rotateup', 'Rotate Up');
56341
- html += me.htmlCls.setHtmlCls.getRadio('mn6_rotate', 'mn6_rotatedown', 'Rotate Down');
56906
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_rotate', 'mn6_rotateleft', 'Rotate Left', undefined, 1, 3);
56907
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_rotate', 'mn6_rotateright', 'Rotate Right', undefined, 1, 3);
56908
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_rotate', 'mn6_rotateup', 'Rotate Up', undefined, 1, 3);
56909
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_rotate', 'mn6_rotatedown', 'Rotate Down', undefined, 1, 3);
56342
56910
  html += "</ul>";
56343
56911
  html += "</li>";
56344
56912
 
56345
56913
  html += "</ul>";
56346
56914
  html += "</li>";
56347
56915
 
56348
- html += "<li><span>Camera</span>";
56916
+ //html += "<li><span>Camera</span>";
56917
+ html += me.htmlCls.setHtmlCls.getMenuText('mn2_camera', 'Camera', undefined, undefined, 1);
56349
56918
  html += "<ul>";
56350
- html += me.htmlCls.setHtmlCls.getRadio('mn6_camera', 'mn6_cameraPers', 'Perspective', true);
56351
- html += me.htmlCls.setHtmlCls.getRadio('mn6_camera', 'mn6_cameraOrth', 'Orthographic');
56919
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_camera', 'mn6_cameraPers', 'Perspective', true, undefined, 2);
56920
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_camera', 'mn6_cameraOrth', 'Orthographic', undefined, undefined, 2);
56352
56921
  html += "</ul>";
56353
56922
  html += "</li>";
56354
- html += "<li><span>Fog for Selection</span>";
56923
+ //html += "<li><span>Fog for Selection</span>";
56924
+ html += me.htmlCls.setHtmlCls.getMenuText('mn2_fog', 'Fog for Selection', undefined, undefined, 1);
56355
56925
  html += "<ul>";
56356
- html += me.htmlCls.setHtmlCls.getRadio('mn6_showfog', 'mn6_showfogYes', 'On');
56357
- html += me.htmlCls.setHtmlCls.getRadio('mn6_showfog', 'mn6_showfogNo', 'Off', true);
56926
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_showfog', 'mn6_showfogYes', 'On', undefined, undefined, 2);
56927
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_showfog', 'mn6_showfogNo', 'Off', true, undefined, 2);
56358
56928
  html += "</ul>";
56359
56929
  html += "</li>";
56360
- html += "<li><span>Slab for Selection</span>";
56930
+ //html += "<li><span>Slab for Selection</span>";
56931
+ html += me.htmlCls.setHtmlCls.getMenuText('mn2_slab', 'Slab for Selection', undefined, undefined, 1);
56361
56932
  html += "<ul>";
56362
- html += me.htmlCls.setHtmlCls.getRadio('mn6_showslab', 'mn6_showslabYes', 'On');
56363
- html += me.htmlCls.setHtmlCls.getRadio('mn6_showslab', 'mn6_showslabNo', 'Off', true);
56933
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_showslab', 'mn6_showslabYes', 'On', undefined, undefined, 2);
56934
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_showslab', 'mn6_showslabNo', 'Off', true, undefined, 2);
56364
56935
  html += "</ul>";
56365
56936
  html += "</li>";
56366
- html += "<li><span>XYZ-axes</span>";
56937
+ //html += "<li><span>XYZ-axes</span>";
56938
+ html += me.htmlCls.setHtmlCls.getMenuText('mn2_axes', 'XYZ-axes', undefined, 1);
56367
56939
  html += "<ul>";
56368
- html += me.htmlCls.setHtmlCls.getRadio('mn6_showaxis', 'mn6_showaxisYes', 'Original');
56369
- html += me.htmlCls.setHtmlCls.getRadio('mn6_showaxis', 'mn6_showaxisSel', 'Prin. Axes on Sel.');
56370
- html += me.htmlCls.setHtmlCls.getRadio('mn6_showaxis', 'mn6_showaxisNo', 'Hide', true);
56940
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_showaxis', 'mn6_showaxisYes', 'Original', undefined, undefined, 2);
56941
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_showaxis', 'mn6_showaxisSel', 'Prin. Axes on Sel.', undefined, undefined, 2);
56942
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_showaxis', 'mn6_showaxisNo', 'Hide', true, undefined, 2);
56371
56943
  html += "</ul>";
56372
56944
  html += "</li>";
56373
56945
 
56374
- html += "<li>-</li>";
56946
+ html += me.htmlCls.setHtmlCls.getMenuSep();
56375
56947
 
56376
- html += "<li><span>Reset</span>";
56948
+ //html += "<li><span>Reset</span>";
56949
+ html += me.htmlCls.setHtmlCls.getMenuText('mn2_resetwrap', 'Reset', undefined, 1, 1);
56377
56950
  html += "<ul>";
56378
- html += me.htmlCls.setHtmlCls.getRadio('mn6_reset', 'reset', 'All');
56379
- html += me.htmlCls.setHtmlCls.getRadio('mn6_reset', 'mn6_resetOrientation', 'Orientation');
56951
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_reset', 'reset', 'All', undefined, 1, 2);
56952
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_reset', 'mn6_resetOrientation', 'Orientation', undefined, 1, 2);
56380
56953
  html += "</ul>";
56381
56954
  html += "</li>";
56382
56955
 
56383
- if(!me.cfg.simplemenu) {
56384
- html += me.htmlCls.setHtmlCls.getLink('mn6_back', 'Undo');
56385
- html += me.htmlCls.setHtmlCls.getLink('mn6_forward', 'Redo');
56386
- }
56956
+ html += me.htmlCls.setHtmlCls.getLink('mn6_back', 'Undo', undefined, 1);
56957
+ html += me.htmlCls.setHtmlCls.getLink('mn6_forward', 'Redo', undefined, 1);
56387
56958
 
56388
- html += me.htmlCls.setHtmlCls.getLink('mn6_fullscreen', 'Full Screen');
56959
+ html += me.htmlCls.setHtmlCls.getLink('mn6_fullscreen', 'Full Screen', undefined, 1);
56389
56960
  // html += me.htmlCls.setHtmlCls.getLink('mn6_exitfullscreen', 'Exit Full Screen');
56390
56961
 
56391
56962
  html += "<li><br/></li>";
@@ -56423,243 +56994,248 @@ class SetMenu {
56423
56994
  html += "<ul class='icn3d-mn-item'>";
56424
56995
 
56425
56996
  if(me.cfg.cid === undefined) {
56426
- html += "<li><span>Proteins</span>";
56997
+ //html += "<li><span>Proteins</span>";
56998
+ html += me.htmlCls.setHtmlCls.getMenuText('mn3_proteinwrap', 'Proteins', undefined, 1, 1);
56427
56999
  html += "<ul>";
56428
57000
  if(me.cfg.align !== undefined || me.cfg.chainalign !== undefined) {
56429
- html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsRibbon', 'Ribbon');
57001
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsRibbon', 'Ribbon', undefined, 1, 2);
56430
57002
  }
56431
57003
  else {
56432
- html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsRibbon', 'Ribbon', true);
57004
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsRibbon', 'Ribbon', true, 1, 2);
56433
57005
  }
56434
57006
 
56435
- html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsStrand', 'Strand');
56436
- html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsCylinder', 'Cylinder and Plate');
56437
- html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsSchematic', 'Schematic');
57007
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsStrand', 'Strand', undefined, undefined, 2);
57008
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsCylinder', 'Cylinder and Plate', undefined, undefined, 2);
57009
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsSchematic', 'Schematic', undefined, 1, 2);
56438
57010
 
56439
57011
  if(me.cfg.align !== undefined || me.cfg.chainalign !== undefined) {
56440
- html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsCalpha', 'C Alpha Trace', true);
57012
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsCalpha', 'C Alpha Trace', true, 1, 2);
56441
57013
  }
56442
57014
  else {
56443
- html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsCalpha', 'C Alpha Trace');
57015
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsCalpha', 'C Alpha Trace', undefined, 1, 2);
56444
57016
  }
56445
57017
 
56446
- html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsBackbone', 'Backbone');
56447
- html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsBfactor', 'B-factor Tube');
56448
- html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsLines', 'Lines');
56449
- html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsStick', 'Stick');
56450
- html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsBallstick', 'Ball and Stick');
56451
- html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsSphere', 'Sphere');
56452
- html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsNo', 'Hide');
57018
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsBackbone', 'Backbone', undefined, undefined, 2);
57019
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsBfactor', 'B-factor Tube', undefined, 1, 2);
57020
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsLines', 'Lines', undefined, 1, 2);
57021
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsStick', 'Stick', undefined, 1, 2);
57022
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsBallstick', 'Ball and Stick', undefined, 1, 2);
57023
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsSphere', 'Sphere', undefined, 1, 2);
57024
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsNo', 'Hide', undefined, 1, 2);
56453
57025
  html += "</ul>";
56454
57026
  html += "</li>";
56455
57027
 
56456
- html += "<li><span>Side Chains</span>";
57028
+ //html += "<li><span>Side Chains</span>";
57029
+ html += me.htmlCls.setHtmlCls.getMenuText('mn3_sidecwrap', 'Side Chains', undefined, 1, 1);
56457
57030
  html += "<ul>";
56458
57031
 
56459
- html += me.htmlCls.setHtmlCls.getRadio('mn3_sidec', 'mn3_sidecLines', 'Lines');
56460
- html += me.htmlCls.setHtmlCls.getRadio('mn3_sidec', 'mn3_sidecStick', 'Stick');
56461
- html += me.htmlCls.setHtmlCls.getRadio('mn3_sidec', 'mn3_sidecBallstick', 'Ball and Stick');
56462
- html += me.htmlCls.setHtmlCls.getRadio('mn3_sidec', 'mn3_sidecSphere', 'Sphere');
56463
- html += me.htmlCls.setHtmlCls.getRadio('mn3_sidec', 'mn3_sidecNo', 'Hide', true);
57032
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_sidec', 'mn3_sidecLines', 'Lines', undefined, 1, 2);
57033
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_sidec', 'mn3_sidecStick', 'Stick', undefined, 1, 2);
57034
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_sidec', 'mn3_sidecBallstick', 'Ball and Stick', undefined, 1, 2);
57035
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_sidec', 'mn3_sidecSphere', 'Sphere', undefined, 1, 2);
57036
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_sidec', 'mn3_sidecNo', 'Hide', true, 1, 2);
56464
57037
  html += "</ul>";
56465
57038
  html += "</li>";
56466
57039
 
56467
- html += "<li><span>Nucleotides</span>";
57040
+ //html += "<li><span>Nucleotides</span>";
57041
+ html += me.htmlCls.setHtmlCls.getMenuText('mn3_nuclwrap', 'Nucleotides', undefined, 1, 1);
56468
57042
  html += "<ul>";
56469
- html += me.htmlCls.setHtmlCls.getRadio('mn3_nucl', 'mn3_nuclCartoon', 'Cartoon', true);
56470
- html += me.htmlCls.setHtmlCls.getRadio('mn3_nucl', 'mn3_nuclPhos', "O3' Trace");
56471
- html += me.htmlCls.setHtmlCls.getRadio('mn3_nucl', 'mn3_nuclBackbone', 'Backbone');
56472
- html += me.htmlCls.setHtmlCls.getRadio('mn3_nucl', 'mn3_nuclSchematic', 'Schematic');
56473
- html += me.htmlCls.setHtmlCls.getRadio('mn3_nucl', 'mn3_nuclLines', 'Lines');
56474
- html += me.htmlCls.setHtmlCls.getRadio('mn3_nucl', 'mn3_nuclStick', 'Stick');
56475
- html += me.htmlCls.setHtmlCls.getRadio('mn3_nucl', 'mn3_nuclBallstick', 'Ball and Stick');
56476
- html += me.htmlCls.setHtmlCls.getRadio('mn3_nucl', 'mn3_nuclSphere', 'Sphere');
56477
- html += me.htmlCls.setHtmlCls.getRadio('mn3_nucl', 'mn3_nuclNo', 'Hide');
57043
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_nucl', 'mn3_nuclCartoon', 'Cartoon', true, 1, 2);
57044
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_nucl', 'mn3_nuclPhos', "O3' Trace", undefined, 1, 2);
57045
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_nucl', 'mn3_nuclBackbone', 'Backbone', undefined, undefined, 2);
57046
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_nucl', 'mn3_nuclSchematic', 'Schematic', undefined, 1, 2);
57047
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_nucl', 'mn3_nuclLines', 'Lines', undefined, 1, 2);
57048
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_nucl', 'mn3_nuclStick', 'Stick', undefined, 1, 2);
57049
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_nucl', 'mn3_nuclBallstick', 'Ball and Stick', undefined, 1, 2);
57050
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_nucl', 'mn3_nuclSphere', 'Sphere', undefined, 1, 2);
57051
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_nucl', 'mn3_nuclNo', 'Hide', undefined, 1, 2);
56478
57052
  html += "</ul>";
56479
57053
  html += "</li>";
56480
57054
 
56481
- html += "<li><span>Nucl. Bases</span>";
57055
+ //html += "<li><span>Nucl. Bases</span>";
57056
+ html += me.htmlCls.setHtmlCls.getMenuText('mn3_ntbasewrap', 'Nucl. Bases', undefined, 1, 1);
56482
57057
  html += "<ul>";
56483
57058
 
56484
- html += me.htmlCls.setHtmlCls.getRadio('mn3_ntbase', 'mn3_ntbaseLines', 'Lines');
56485
- html += me.htmlCls.setHtmlCls.getRadio('mn3_ntbase', 'mn3_ntbaseStick', 'Stick');
56486
- html += me.htmlCls.setHtmlCls.getRadio('mn3_ntbase', 'mn3_ntbaseBallstick', 'Ball and Stick');
56487
- html += me.htmlCls.setHtmlCls.getRadio('mn3_ntbase', 'mn3_ntbaseSphere', 'Sphere');
56488
- html += me.htmlCls.setHtmlCls.getRadio('mn3_ntbase', 'mn3_ntbaseNo', 'Hide', true);
57059
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_ntbase', 'mn3_ntbaseLines', 'Lines', undefined, 1, 2);
57060
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_ntbase', 'mn3_ntbaseStick', 'Stick', undefined, 1, 2);
57061
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_ntbase', 'mn3_ntbaseBallstick', 'Ball and Stick', undefined, 1, 2);
57062
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_ntbase', 'mn3_ntbaseSphere', 'Sphere', undefined, 1, 2);
57063
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_ntbase', 'mn3_ntbaseNo', 'Hide', true, 1, 2);
56489
57064
  html += "</ul>";
56490
57065
  html += "</li>";
56491
57066
  }
56492
57067
 
56493
- html += "<li><span>Chemicals</span>";
57068
+ //html += "<li><span>Chemicals</span>";
57069
+ html += me.htmlCls.setHtmlCls.getMenuText('mn3_ligwrap', 'Chemicals', undefined, 1, 1);
56494
57070
  html += "<ul>";
56495
- html += me.htmlCls.setHtmlCls.getRadio('mn3_lig', 'mn3_ligLines', 'Lines');
57071
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_lig', 'mn3_ligLines', 'Lines', undefined, 1, 2);
56496
57072
  if(me.cfg.cid === undefined) {
56497
- html += me.htmlCls.setHtmlCls.getRadio('mn3_lig', 'mn3_ligStick', 'Stick', true);
56498
- html += me.htmlCls.setHtmlCls.getRadio('mn3_lig', 'mn3_ligBallstick', 'Ball and Stick');
57073
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_lig', 'mn3_ligStick', 'Stick', true, 1, 2);
57074
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_lig', 'mn3_ligBallstick', 'Ball and Stick', undefined, 1, 2);
56499
57075
  }
56500
57076
  else {
56501
- html += me.htmlCls.setHtmlCls.getRadio('mn3_lig', 'mn3_ligStick', 'Stick');
56502
- html += me.htmlCls.setHtmlCls.getRadio('mn3_lig', 'mn3_ligBallstick', 'Ball and Stick', true);
57077
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_lig', 'mn3_ligStick', 'Stick', undefined, 1, 2);
57078
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_lig', 'mn3_ligBallstick', 'Ball and Stick', true, 1, 2);
56503
57079
  }
56504
- html += me.htmlCls.setHtmlCls.getRadio('mn3_lig', 'mn3_ligSchematic', 'Schematic');
56505
- html += me.htmlCls.setHtmlCls.getRadio('mn3_lig', 'mn3_ligSphere', 'Sphere');
56506
- html += me.htmlCls.setHtmlCls.getRadio('mn3_lig', 'mn3_ligNo', 'Hide');
57080
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_lig', 'mn3_ligSchematic', 'Schematic', undefined, 1, 2);
57081
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_lig', 'mn3_ligSphere', 'Sphere', undefined, 1, 2);
57082
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_lig', 'mn3_ligNo', 'Hide', undefined, 1, 2);
56507
57083
  html += "</ul>";
56508
57084
  html += "</li>";
56509
57085
 
56510
57086
  //if(me.cfg.cid !== undefined) {
56511
- html += "<li><span>Hydrogens</span>";
57087
+ //html += "<li><span>Hydrogens</span>";
57088
+ html += me.htmlCls.setHtmlCls.getMenuText('mn3_hydrogenswrap', 'Hydrogens', undefined, 1, 1);
56512
57089
  html += "<ul>";
56513
- html += me.htmlCls.setHtmlCls.getRadio('mn3_hydrogens', 'mn3_hydrogensYes', 'Show', true);
56514
- html += me.htmlCls.setHtmlCls.getRadio('mn3_hydrogens', 'mn3_hydrogensNo', 'Hide');
57090
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_hydrogens', 'mn3_hydrogensYes', 'Show', true, 1, 2);
57091
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_hydrogens', 'mn3_hydrogensNo', 'Hide', undefined, 1, 2);
56515
57092
  html += "</ul>";
56516
57093
  html += "</li>";
56517
57094
  //}
56518
57095
 
56519
57096
  if(me.cfg.cid === undefined) {
56520
- html += "<li><span>Glycans</span>";
57097
+ //html += "<li><span>Glycans</span>";
57098
+ html += me.htmlCls.setHtmlCls.getMenuText('mn3_glycanwrap', 'Glycans', undefined, undefined, 1);
56521
57099
  html += "<ul>";
56522
- html += me.htmlCls.setHtmlCls.getRadio('mn3_glycansCart', 'mn3_glycansCartYes', 'Show Cartoon');
56523
- html += me.htmlCls.setHtmlCls.getRadio('mn3_glycansCart', 'mn3_glycansCartNo', 'Hide Cartoon', true);
57100
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_glycansCart', 'mn3_glycansCartYes', 'Show Cartoon', undefined, undefined, 2);
57101
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_glycansCart', 'mn3_glycansCartNo', 'Hide Cartoon', true, undefined, 2);
56524
57102
  html += "</ul>";
56525
57103
  html += "</li>";
56526
57104
  }
56527
57105
 
56528
- html += "<li><span>Ions</span>";
57106
+ //html += "<li><span>Ions</span>";
57107
+ html += me.htmlCls.setHtmlCls.getMenuText('mn3_ionswrap', 'Ions', undefined, 1, 1);
56529
57108
  html += "<ul>";
56530
- html += me.htmlCls.setHtmlCls.getRadio('mn3_ions', 'mn3_ionsSphere', 'Sphere', true);
56531
- html += me.htmlCls.setHtmlCls.getRadio('mn3_ions', 'mn3_ionsDot', 'Dot');
56532
- html += me.htmlCls.setHtmlCls.getRadio('mn3_ions', 'mn3_ionsNo', 'Hide');
57109
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_ions', 'mn3_ionsSphere', 'Sphere', true, 1, 2);
57110
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_ions', 'mn3_ionsDot', 'Dot', undefined, 1, 2);
57111
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_ions', 'mn3_ionsNo', 'Hide', undefined, 1, 2);
56533
57112
  html += "</ul>";
56534
57113
  html += "</li>";
56535
57114
 
56536
- html += "<li><span>Water</span>";
57115
+ //html += "<li><span>Water</span>";
57116
+ html += me.htmlCls.setHtmlCls.getMenuText('mn3_waterwrap', 'Water', undefined, 1, 1);
56537
57117
  html += "<ul>";
56538
- html += me.htmlCls.setHtmlCls.getRadio('mn3_water', 'mn3_waterSphere', 'Sphere');
56539
- html += me.htmlCls.setHtmlCls.getRadio('mn3_water', 'mn3_waterDot', 'Dot');
56540
- html += me.htmlCls.setHtmlCls.getRadio('mn3_water', 'mn3_waterNo', 'Hide', true);
57118
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_water', 'mn3_waterSphere', 'Sphere', undefined, 1, 2);
57119
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_water', 'mn3_waterDot', 'Dot', undefined, 1, 2);
57120
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_water', 'mn3_waterNo', 'Hide', true, 1, 2);
56541
57121
  html += "</ul>";
56542
57122
  html += "</li>";
56543
57123
 
56544
- html += me.htmlCls.setHtmlCls.getLink('mn3_setThickness', 'Preferences');
57124
+ html += me.htmlCls.setHtmlCls.getLink('mn3_setThickness', 'Preferences', undefined, 1);
56545
57125
 
56546
- if(!me.cfg.simplemenu) {
56547
- html += "<li>-</li>";
56548
- html += me.htmlCls.setHtmlCls.getLink('mn3_styleSave', 'Save Style');
56549
- html += me.htmlCls.setHtmlCls.getLink('mn3_styleApplySave', 'Apply Saved Style');
56550
- }
57126
+ html += me.htmlCls.setHtmlCls.getMenuSep();
57127
+ html += me.htmlCls.setHtmlCls.getLink('mn3_styleSave', 'Save Style', undefined, 2);
57128
+ html += me.htmlCls.setHtmlCls.getLink('mn3_styleApplySave', 'Apply Saved Style', undefined, 2);
56551
57129
 
56552
- html += "<li>-</li>";
57130
+ html += me.htmlCls.setHtmlCls.getMenuSep();
56553
57131
 
56554
- html += "<li><span>Surface Type</span>";
57132
+ //html += "<li><span>Surface Type</span>";
57133
+ html += me.htmlCls.setHtmlCls.getMenuText('mn5_surfacewrap', 'Surface Type', undefined, 1, 1);
56555
57134
  html += "<ul>";
56556
- html += me.htmlCls.setHtmlCls.getRadio('mn5_surface', 'mn5_surfaceVDW', 'Van der Waals');
56557
- if(!me.cfg.simplemenu) html += me.htmlCls.setHtmlCls.getRadio('mn5_surface', 'mn5_surfaceVDWContext', 'VDW with Context');
56558
- html += me.htmlCls.setHtmlCls.getRadio('mn5_surface', 'mn5_surfaceMolecular', 'Molecular Surface');
56559
- if(!me.cfg.simplemenu) html += me.htmlCls.setHtmlCls.getRadio('mn5_surface', 'mn5_surfaceMolecularContext', 'MS with Context');
56560
- html += me.htmlCls.setHtmlCls.getRadio('mn5_surface', 'mn5_surfaceSAS', 'Solvent Accessible');
56561
- if(!me.cfg.simplemenu) html += me.htmlCls.setHtmlCls.getRadio('mn5_surface', 'mn5_surfaceSASContext', 'SA with Context');
57135
+ html += me.htmlCls.setHtmlCls.getRadio('mn5_surface', 'mn5_surfaceVDW', 'Van der Waals', undefined, 1, 2);
57136
+ html += me.htmlCls.setHtmlCls.getRadio('mn5_surface', 'mn5_surfaceVDWContext', 'VDW with Context', undefined, undefined, 2);
57137
+ html += me.htmlCls.setHtmlCls.getRadio('mn5_surface', 'mn5_surfaceMolecular', 'Molecular Surface', undefined, 1, 2);
57138
+ html += me.htmlCls.setHtmlCls.getRadio('mn5_surface', 'mn5_surfaceMolecularContext', 'MS with Context', undefined, undefined, 2);
57139
+ html += me.htmlCls.setHtmlCls.getRadio('mn5_surface', 'mn5_surfaceSAS', 'Solvent Accessible', undefined, 1, 2);
57140
+ html += me.htmlCls.setHtmlCls.getRadio('mn5_surface', 'mn5_surfaceSASContext', 'SA with Context', undefined, undefined, 2);
56562
57141
  html += "</ul>";
56563
57142
  html += "</li>";
56564
57143
 
56565
- html += me.htmlCls.setHtmlCls.getLink('mn5_surfaceNo', 'Remove Surface');
57144
+ html += me.htmlCls.setHtmlCls.getLink('mn5_surfaceNo', 'Remove Surface', 1, 1);
56566
57145
 
56567
- html += "<li><span>Surface Opacity</span>";
57146
+ //html += "<li><span>Surface Opacity</span>";
57147
+ html += me.htmlCls.setHtmlCls.getMenuText('mn5_surfaceop', 'Surface Opacity', undefined, 1, 1);
56568
57148
  html += "<ul>";
56569
57149
 
56570
- html += "<li><span>Fast Transparency</span>";
57150
+ //html += "<li><span>Fast Transparency</span>";
57151
+ html += me.htmlCls.setHtmlCls.getMenuText('mn5_surfaceopfast', 'Fast Transparency', undefined, 1, 2);
56571
57152
  html += "<ul>";
56572
- html += me.htmlCls.setHtmlCls.getRadio('mn5_opacity', 'mn5_opacity10', '1.0', true);
57153
+ html += me.htmlCls.setHtmlCls.getRadio('mn5_opacity', 'mn5_opacity10', '1.0', true, 1, 3);
56573
57154
 
56574
57155
  for(let i = 9; i > 0; --i) {
56575
- html += me.htmlCls.setHtmlCls.getRadio('mn5_opacity', 'mn5_opacity0' + i, '0.' + i);
57156
+ html += me.htmlCls.setHtmlCls.getRadio('mn5_opacity', 'mn5_opacity0' + i, '0.' + i, 1, 3);
56576
57157
  }
56577
57158
  html += "</ul>";
56578
57159
  html += "</li>";
56579
57160
 
56580
- html += "<li><span>Slow Transparency</span>";
57161
+ //html += "<li><span>Slow Transparency</span>";
57162
+ html += me.htmlCls.setHtmlCls.getMenuText('mn5_surfaceopslow', 'Slow Transparency', undefined, undefined, 2);
56581
57163
  html += "<ul>";
56582
- html += me.htmlCls.setHtmlCls.getRadio('mn5_opacityslow', 'mn5_opacityslow10', '1.0', true);
57164
+ html += me.htmlCls.setHtmlCls.getRadio('mn5_opacityslow', 'mn5_opacityslow10', '1.0', true, undefined, 3);
56583
57165
 
56584
57166
  for(let i = 9; i > 0; --i) {
56585
- html += me.htmlCls.setHtmlCls.getRadio('mn5_opacityslow', 'mn5_opacityslow0' + i, '0.' + i);
57167
+ html += me.htmlCls.setHtmlCls.getRadio('mn5_opacityslow', 'mn5_opacityslow0' + i, '0.' + i, undefined, undefined, 3);
56586
57168
  }
56587
57169
  html += "</ul>";
56588
57170
  html += "</li>";
56589
57171
 
56590
57172
  html += "</ul>"; // end of Surface Opacity
56591
57173
 
56592
- html += "<li><span>Surface Wireframe</span>";
57174
+ //html += "<li><span>Surface Wireframe</span>";
57175
+ html += me.htmlCls.setHtmlCls.getMenuText('mn5_wireframewrap', 'Surface Wireframe', undefined, 1, 1);
56593
57176
  html += "<ul>";
56594
- html += me.htmlCls.setHtmlCls.getRadio('mn5_wireframe', 'mn5_wireframeYes', 'Yes');
56595
- html += me.htmlCls.setHtmlCls.getRadio('mn5_wireframe', 'mn5_wireframeNo', 'No', true);
57177
+ html += me.htmlCls.setHtmlCls.getRadio('mn5_wireframe', 'mn5_wireframeYes', 'Yes', undefined, 1, 2);
57178
+ html += me.htmlCls.setHtmlCls.getRadio('mn5_wireframe', 'mn5_wireframeNo', 'No', true, 1, 2);
56596
57179
  html += "</ul>";
56597
57180
  html += "</li>";
56598
57181
 
56599
57182
  if(me.cfg.cid === undefined && me.cfg.align === undefined && me.cfg.chainalign === undefined && me.cfg.mmdbaf === undefined) {
56600
- if(!me.cfg.simplemenu) {
56601
- html += "<li>-</li>";
57183
+ html += me.htmlCls.setHtmlCls.getMenuSep();
56602
57184
 
56603
- html += "<li id='" + me.pre + "mapWrapper1'><span>Electron Density</span>";
56604
- html += "<ul>";
56605
- html += me.htmlCls.setHtmlCls.getRadio('mn5_elecmap', 'mn5_elecmap2fofc', '2Fo-Fc Map');
56606
- html += me.htmlCls.setHtmlCls.getRadio('mn5_elecmap', 'mn5_elecmapfofc', 'Fo-Fc Map');
56607
- html += "</ul>";
56608
- html += "</li>";
57185
+ //html += "<li id='" + me.pre + "mapWrapper1'><span>Electron Density</span>";
57186
+ html += me.htmlCls.setHtmlCls.getMenuText('mapWrapper1', 'Electron Density', undefined, undefined, 1);
57187
+ html += "<ul>";
57188
+ html += me.htmlCls.setHtmlCls.getRadio('mn5_elecmap', 'mn5_elecmap2fofc', '2Fo-Fc Map', undefined, undefined, 2);
57189
+ html += me.htmlCls.setHtmlCls.getRadio('mn5_elecmap', 'mn5_elecmapfofc', 'Fo-Fc Map', undefined, undefined, 2);
57190
+ html += "</ul>";
57191
+ html += "</li>";
56609
57192
 
56610
- html += me.htmlCls.setHtmlCls.getLinkWrapper('mn5_elecmapNo', 'Remove Map', 'mapWrapper2');
57193
+ html += me.htmlCls.setHtmlCls.getLinkWrapper('mn5_elecmapNo', 'Remove Map', 'mapWrapper2', undefined, 1);
56611
57194
 
56612
- html += "<li id='" + me.pre + "mapWrapper3'><span>Map Wireframe</span>";
56613
- html += "<ul>";
56614
- html += me.htmlCls.setHtmlCls.getRadio('mn5_mapwireframe', 'mn5_mapwireframeYes', 'Yes', true);
56615
- html += me.htmlCls.setHtmlCls.getRadio('mn5_mapwireframe', 'mn5_mapwireframeNo', 'No');
56616
- html += "</ul>";
56617
- html += "</li>";
57195
+ //html += "<li id='" + me.pre + "mapWrapper3'><span>Map Wireframe</span>";
57196
+ html += me.htmlCls.setHtmlCls.getMenuText('mapWrapper3', 'Map Wireframe', undefined, undefined, 1);
57197
+ html += "<ul>";
57198
+ html += me.htmlCls.setHtmlCls.getRadio('mn5_mapwireframe', 'mn5_mapwireframeYes', 'Yes', true, undefined, 2);
57199
+ html += me.htmlCls.setHtmlCls.getRadio('mn5_mapwireframe', 'mn5_mapwireframeNo', 'No', undefined, undefined, 2);
57200
+ html += "</ul>";
57201
+ html += "</li>";
56618
57202
 
56619
- if(me.cfg.mmtfid === undefined) {
56620
- //html += "<li>-</li>";
57203
+ if(me.cfg.mmtfid === undefined) {
57204
+ //html += me.htmlCls.setHtmlCls.getMenuSep();
56621
57205
 
56622
- html += me.htmlCls.setHtmlCls.getLinkWrapper('mn5_emmap', 'EM Density Map', 'emmapWrapper1');
56623
- html += me.htmlCls.setHtmlCls.getLinkWrapper('mn5_emmapNo', 'Remove EM Map', 'emmapWrapper2');
57206
+ html += me.htmlCls.setHtmlCls.getLinkWrapper('mn5_emmap', 'EM Density Map', 'emmapWrapper1', undefined, 1);
57207
+ html += me.htmlCls.setHtmlCls.getLinkWrapper('mn5_emmapNo', 'Remove EM Map', 'emmapWrapper2', undefined, 1);
56624
57208
 
56625
- html += "<li id='" + me.pre + "emmapWrapper3'><span>EM Map Wireframe</span>";
56626
- html += "<ul>";
56627
- html += me.htmlCls.setHtmlCls.getRadio('mn5_emmapwireframe', 'mn5_emmapwireframeYes', 'Yes', true);
56628
- html += me.htmlCls.setHtmlCls.getRadio('mn5_emmapwireframe', 'mn5_emmapwireframeNo', 'No');
56629
- html += "</ul>";
56630
- html += "</li>";
56631
- }
57209
+ //html += "<li id='" + me.pre + "emmapWrapper3'><span>EM Map Wireframe</span>";
57210
+ html += me.htmlCls.setHtmlCls.getLinkWrapper('mn5_emmapwfwrap', 'EM Map Wireframe', 'emmapWrapper3', undefined, 1);
57211
+ html += "<ul>";
57212
+ html += me.htmlCls.setHtmlCls.getRadio('mn5_emmapwireframe', 'mn5_emmapwireframeYes', 'Yes', true, undefined, 2);
57213
+ html += me.htmlCls.setHtmlCls.getRadio('mn5_emmapwireframe', 'mn5_emmapwireframeNo', 'No', undefined, undefined, 2);
57214
+ html += "</ul>";
57215
+ html += "</li>";
56632
57216
  }
56633
57217
  }
56634
57218
 
56635
- html += "<li>-</li>";
57219
+ html += me.htmlCls.setHtmlCls.getMenuSep();
56636
57220
 
56637
- html += "<li><span>Background</span>";
57221
+ //html += "<li><span>Background</span>";
57222
+ html += me.htmlCls.setHtmlCls.getMenuText('mn6_bkgdwrap', 'Background', undefined, 1, 1);
56638
57223
  html += "<ul>";
56639
- html += me.htmlCls.setHtmlCls.getRadio('mn6_bkgd', 'mn6_bkgdTransparent', 'Transparent');
56640
- html += me.htmlCls.setHtmlCls.getRadio('mn6_bkgd', 'mn6_bkgdBlack', 'Black', true);
56641
- html += me.htmlCls.setHtmlCls.getRadio('mn6_bkgd', 'mn6_bkgdGrey', 'Gray');
56642
- html += me.htmlCls.setHtmlCls.getRadio('mn6_bkgd', 'mn6_bkgdWhite', 'White');
57224
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_bkgd', 'mn6_bkgdTransparent', 'Transparent', undefined, 1, 2);
57225
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_bkgd', 'mn6_bkgdBlack', 'Black', true, 1, 2);
57226
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_bkgd', 'mn6_bkgdGrey', 'Gray', undefined, 1, 2);
57227
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_bkgd', 'mn6_bkgdWhite', 'White', undefined, 1, 2);
56643
57228
  html += "</ul>";
56644
57229
  html += "</li>";
56645
57230
 
56646
- if(!me.cfg.simplemenu) {
56647
- html += "<li><span>Dialog Color</span>";
56648
- html += "<ul>";
56649
- html += me.htmlCls.setHtmlCls.getRadio('mn6_theme', 'mn6_themeBlue', 'Blue', true);
56650
- html += me.htmlCls.setHtmlCls.getRadio('mn6_theme', 'mn6_themeOrange', 'Orange');
56651
- html += me.htmlCls.setHtmlCls.getRadio('mn6_theme', 'mn6_themeBlack', 'Black');
56652
- html += "</ul>";
56653
- html += "</li>";
56654
- }
56655
-
56656
- // html += "<li><span>Two-color Helix</span>";
56657
- // html += "<ul>";
56658
- // html += me.htmlCls.setHtmlCls.getRadio('mn6_doublecolor', 'mn6_doublecolorYes', 'Yes');
56659
- // html += me.htmlCls.setHtmlCls.getRadio('mn6_doublecolor', 'mn6_doublecolorNo', 'No', true);
56660
- // html += "</ul>";
56661
- // html += "</li>";
56662
-
57231
+ html += "<li><span>Dialog Color</span>";
57232
+ html += me.htmlCls.setHtmlCls.getMenuText('mn6_themewrap', 'Dialog Color', undefined, undefined, 1);
57233
+ html += "<ul>";
57234
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_theme', 'mn6_themeBlue', 'Blue', true, undefined, 2);
57235
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_theme', 'mn6_themeOrange', 'Orange', undefined, undefined, 2);
57236
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_theme', 'mn6_themeBlack', 'Black', undefined, undefined, 2);
57237
+ html += "</ul>";
57238
+ html += "</li>";
56663
57239
 
56664
57240
  html += "<li><br/></li>";
56665
57241
 
@@ -56695,316 +57271,309 @@ class SetMenu {
56695
57271
 
56696
57272
  html += "<ul class='icn3d-mn-item'>";
56697
57273
 
56698
- html += "<li><span style='padding-left:1.5em;'>Unicolor</span>";
57274
+ //html += "<li><span style='padding-left:1.5em!important;'>Unicolor</span>";
57275
+ html += me.htmlCls.setHtmlCls.getMenuText('mn4_clrwrap', 'Unicolor', 'icn3d-menupd', 1, 1);
56699
57276
  html += "<ul>";
56700
57277
 
56701
57278
  html += "<li><span>Red</span>";
57279
+ html += me.htmlCls.setHtmlCls.getMenuText('uniclrRedwrap', 'Red', undefined, 1, 2);
56702
57280
  html += "<ul>";
56703
- //html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrRed', 'Red');
56704
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrRed1', 'Red', 'F00');
56705
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrRed2', 'Indian Red', 'CD5C5C');
56706
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrRed3', 'Light Coral', 'F08080');
56707
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrRed4', 'Salmon', 'FA8072');
56708
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrRed5', 'Dark Salmon', 'E9967A');
56709
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrRed6', 'Light Salmon', 'FFA07A');
56710
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrRed7', 'Crimson', 'DC143C');
56711
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrRed8', 'Fire Brick', 'B22222');
56712
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrRed9', 'Dark Red', '8B0000');
57281
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrRed1', 'Red', 'F00', undefined, 1, 3);
57282
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrRed2', 'Indian Red', 'CD5C5C', undefined, 1, 3);
57283
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrRed3', 'Light Coral', 'F08080', undefined, 1, 3);
57284
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrRed4', 'Salmon', 'FA8072', undefined, 1, 3);
57285
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrRed5', 'Dark Salmon', 'E9967A', undefined, 1, 3);
57286
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrRed6', 'Light Salmon', 'FFA07A', undefined, 1, 3);
57287
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrRed7', 'Crimson', 'DC143C', undefined, 1, 3);
57288
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrRed8', 'Fire Brick', 'B22222', undefined, 1, 3);
57289
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrRed9', 'Dark Red', '8B0000', undefined, 1, 3);
56713
57290
  html += "</ul>";
56714
57291
 
56715
- html += "<li><span>Pink</span>";
57292
+ //html += "<li><span>Pink</span>";
57293
+ html += me.htmlCls.setHtmlCls.getMenuText('uniclrPinkwrap', 'Pink', undefined, 1, 2);
56716
57294
  html += "<ul>";
56717
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrPink1', 'Pink', 'FFC0CB');
56718
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrPink2', 'Light Pink', 'FFB6C1');
56719
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrPink3', 'Hot Pink', 'FF69B4');
56720
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrPink4', 'Deep Pink', 'FF1493');
56721
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrPink5', 'Medium Violet Red', 'C71585');
56722
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrPink6', 'Pale Violet Red', 'DB7093');
57295
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrPink1', 'Pink', 'FFC0CB', undefined, 1, 3);
57296
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrPink2', 'Light Pink', 'FFB6C1', undefined, 1, 3);
57297
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrPink3', 'Hot Pink', 'FF69B4', undefined, 1, 3);
57298
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrPink4', 'Deep Pink', 'FF1493', undefined, 1, 3);
57299
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrPink5', 'Medium Violet Red', 'C71585', undefined, 1, 3);
57300
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrPink6', 'Pale Violet Red', 'DB7093', undefined, 1, 3);
56723
57301
  html += "</ul>";
56724
57302
 
56725
- html += "<li><span>Orange</span>";
57303
+ //html += "<li><span>Orange</span>";
57304
+ html += me.htmlCls.setHtmlCls.getMenuText('uniclrOrangewrap', 'Orange', undefined, 1, 2);
56726
57305
  html += "<ul>";
56727
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrOran1', 'Orange', 'FFA500');
56728
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrOran2', 'Dark Orange', 'FF8C00');
56729
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrOran3', 'Orange Red', 'FF4500');
56730
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrOran4', 'Tomato', 'FF6347');
56731
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrOran5', 'Coral', 'FF7F50');
56732
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrOran6', 'Light Salmon', 'FFA07A');
57306
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrOran1', 'Orange', 'FFA500', undefined, 1, 3);
57307
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrOran2', 'Dark Orange', 'FF8C00', undefined, 1, 3);
57308
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrOran3', 'Orange Red', 'FF4500', undefined, 1, 3);
57309
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrOran4', 'Tomato', 'FF6347', undefined, 1, 3);
57310
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrOran5', 'Coral', 'FF7F50', undefined, 1, 3);
57311
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrOran6', 'Light Salmon', 'FFA07A', undefined, 1, 3);
56733
57312
  html += "</ul>";
56734
57313
 
56735
- html += "<li><span>Yellow</span>";
57314
+ //html += "<li><span>Yellow</span>";
57315
+ html += me.htmlCls.setHtmlCls.getMenuText('uniclrYellowwrap', 'Yellow', undefined, 1, 2);
56736
57316
  html += "<ul>";
56737
- //html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrYllw', 'Yellow');
56738
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrYllw1', 'Yellow', 'FF0');
56739
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrYllw2', 'Gold', 'FFD700');
56740
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrYllw3', 'Light Yellow', 'FFFFE0');
56741
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrYllw4', 'Lemon Chiffon', 'FFFACD');
56742
- //html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrYllw5', 'Light Golden Rod Yellow', 'FAFAD2');
56743
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrYllw5', 'Light Golden Rod', 'FAFAD2');
56744
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrYllw6', 'Papaya Whip', 'FFEFD5');
56745
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrYllw7', 'Moccasin', 'FFE4B5');
56746
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrYllw8', 'Peach Puff', 'FFDAB9');
56747
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrYllw9', 'Pale Golden Rod', 'EEE8AA');
56748
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrYllw10', 'Khaki', 'F0E68C');
56749
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrYllw11', 'Dark Khaki', 'BDB76B');
57317
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrYllw1', 'Yellow', 'FF0', undefined, 1, 3);
57318
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrYllw2', 'Gold', 'FFD700', undefined, 1, 3);
57319
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrYllw3', 'Light Yellow', 'FFFFE0', undefined, 1, 3);
57320
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrYllw4', 'Lemon Chiffon', 'FFFACD', undefined, 1, 3);
57321
+ //html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrYllw5', 'Light Golden Rod Yellow', 'FAFAD2', undefined, 1, 3);
57322
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrYllw5', 'Light Golden Rod', 'FAFAD2', undefined, 1, 3);
57323
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrYllw6', 'Papaya Whip', 'FFEFD5', undefined, 1, 3);
57324
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrYllw7', 'Moccasin', 'FFE4B5', undefined, 1, 3);
57325
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrYllw8', 'Peach Puff', 'FFDAB9', undefined, 1, 3);
57326
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrYllw9', 'Pale Golden Rod', 'EEE8AA', undefined, 1, 3);
57327
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrYllw10', 'Khaki', 'F0E68C', undefined, 1, 3);
57328
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrYllw11', 'Dark Khaki', 'BDB76B', undefined, 1, 3);
56750
57329
  html += "</ul>";
56751
57330
 
56752
- html += "<li><span>Magenta</span>";
57331
+ //html += "<li><span>Magenta</span>";
57332
+ html += me.htmlCls.setHtmlCls.getMenuText('uniclrMagentawrap', 'Magenta', undefined, 1, 2);
56753
57333
  html += "<ul>";
56754
- //html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrMgnt', 'Magenta');
56755
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrMgnt1', 'Magenta', 'F0F');
56756
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrMgnt2', 'Orchid', 'DA70D6');
56757
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrMgnt3', 'Violet', 'EE82EE');
56758
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrMgnt4', 'Plum', 'DDA0DD');
56759
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrMgnt5', 'Thistle', 'D8BFD8');
56760
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrMgnt6', 'Lavender', 'E6E6FA');
56761
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrMgnt7', 'Medium Orchid', 'BA55D3');
56762
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrMgnt8', 'Medium Purple', '9370DB');
56763
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrMgnt9', 'Rebecca Purple', '663399');
56764
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrMgnt10', 'Blue Violet', '8A2BE2');
56765
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrMgnt11', 'Dark Violet', '9400D3');
56766
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrMgnt12', 'Dark Orchid', '9932CC');
56767
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrMgnt13', 'Dark Magenta', '8B008B');
56768
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrMgnt14', 'Purple', '800080');
56769
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrMgnt15', 'Indigo', '4B0082');
56770
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrMgnt16', 'Slat Blue', '6A5ACD');
56771
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrMgnt17', 'Dark Slate Blue', '483D8B');
56772
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrMgnt18', 'Medium Slat Blue', '6A5ACD');
57334
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrMgnt1', 'Magenta', 'F0F', undefined, 1, 3);
57335
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrMgnt2', 'Orchid', 'DA70D6', undefined, 1, 3);
57336
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrMgnt3', 'Violet', 'EE82EE', undefined, 1, 3);
57337
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrMgnt4', 'Plum', 'DDA0DD', undefined, 1, 3);
57338
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrMgnt5', 'Thistle', 'D8BFD8', undefined, 1, 3);
57339
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrMgnt6', 'Lavender', 'E6E6FA', undefined, 1, 3);
57340
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrMgnt7', 'Medium Orchid', 'BA55D3', undefined, 1, 3);
57341
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrMgnt8', 'Medium Purple', '9370DB', undefined, 1, 3);
57342
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrMgnt9', 'Rebecca Purple', '663399', undefined, 1, 3);
57343
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrMgnt10', 'Blue Violet', '8A2BE2', undefined, 1, 3);
57344
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrMgnt11', 'Dark Violet', '9400D3', undefined, 1, 3);
57345
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrMgnt12', 'Dark Orchid', '9932CC', undefined, 1, 3);
57346
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrMgnt13', 'Dark Magenta', '8B008B', undefined, 1, 3);
57347
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrMgnt14', 'Purple', '800080', undefined, 1, 3);
57348
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrMgnt15', 'Indigo', '4B0082', undefined, 1, 3);
57349
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrMgnt16', 'Slat Blue', '6A5ACD', undefined, 1, 3);
57350
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrMgnt17', 'Dark Slate Blue', '483D8B', undefined, 1, 3);
57351
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrMgnt18', 'Medium Slat Blue', '6A5ACD', undefined, 1, 3);
56773
57352
  html += "</ul>";
56774
57353
 
56775
- html += "<li><span>Green</span>";
57354
+ //html += "<li><span>Green</span>";
57355
+ html += me.htmlCls.setHtmlCls.getMenuText('uniclrGreenwrap', 'Green', undefined, 1, 2);
56776
57356
  html += "<ul>";
56777
- //html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrGrn', 'Green');
56778
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn1', 'Green', '0F0');
56779
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn2', 'Dark Green', '006400');
56780
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn3', 'Yellow Green', '9ACD32');
56781
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn4', 'Olive Drab', '6B8E23');
56782
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn5', 'Olive', '808000');
56783
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn6', 'Dark Olive Green', '556B2F');
56784
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn7', 'Medium Aquamarine', '66CDAA');
56785
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn8', 'Dark Sea Green', '8FBC8B');
56786
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn9', 'Lignt Sea Green', '20B2AA');
56787
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn10', 'Dark Cyan', '008B8B');
56788
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn11', 'Teal', '008080');
56789
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn12', 'Forest Green', '228B22');
56790
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn13', 'Sea Green', '2E8B57');
56791
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn14', 'Medium Sea Green', '3CB371');
56792
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn15', 'Spring Green', '00FF7F');
56793
- //html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn16', 'Medium Spring Green', '00FA9A');
56794
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn16', 'Medium Spring', '00FA9A');
56795
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn17', 'Light Green', '90EE90');
56796
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn18', 'Pale Green', '98FB98');
56797
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn19', 'Lime Green', '32CD32');
56798
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn20', 'Lawn Green', '7CFC00');
56799
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn21', 'Chartreuse', '7FFF00');
56800
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn22', 'Green Yellow', 'ADFF2F');
57357
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn1', 'Green', '0F0', undefined, 1, 3);
57358
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn2', 'Dark Green', '006400', undefined, 1, 3);
57359
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn3', 'Yellow Green', '9ACD32', undefined, 1, 3);
57360
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn4', 'Olive Drab', '6B8E23', undefined, 1, 3);
57361
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn5', 'Olive', '808000', undefined, 1, 3);
57362
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn6', 'Dark Olive Green', '556B2F', undefined, 1, 3);
57363
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn7', 'Medium Aquamarine', '66CDAA', undefined, 1, 3);
57364
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn8', 'Dark Sea Green', '8FBC8B', undefined, 1, 3);
57365
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn9', 'Lignt Sea Green', '20B2AA', undefined, 1, 3);
57366
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn10', 'Dark Cyan', '008B8B', undefined, 1, 3);
57367
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn11', 'Teal', '008080', undefined, 1, 3);
57368
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn12', 'Forest Green', '228B22', undefined, 1, 3);
57369
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn13', 'Sea Green', '2E8B57', undefined, 1, 3);
57370
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn14', 'Medium Sea Green', '3CB371', undefined, 1, 3);
57371
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn15', 'Spring Green', '00FF7F', undefined, 1, 3);
57372
+ //html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn16', 'Medium Spring Green', '00FA9A', undefined, 1, 3);
57373
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn16', 'Medium Spring', '00FA9A', undefined, 1, 3);
57374
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn17', 'Light Green', '90EE90', undefined, 1, 3);
57375
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn18', 'Pale Green', '98FB98', undefined, 1, 3);
57376
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn19', 'Lime Green', '32CD32', undefined, 1, 3);
57377
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn20', 'Lawn Green', '7CFC00', undefined, 1, 3);
57378
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn21', 'Chartreuse', '7FFF00', undefined, 1, 3);
57379
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn22', 'Green Yellow', 'ADFF2F', undefined, 1, 3);
56801
57380
  html += "</ul>";
56802
57381
 
56803
- html += "<li><span>Cyan</span>";
57382
+ //html += "<li><span>Cyan</span>";
57383
+ html += me.htmlCls.setHtmlCls.getMenuText('uniclrCyanwrap', 'Cyan', undefined, 1, 2);
56804
57384
  html += "<ul>";
56805
- //html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrCyan', 'Cyan');
56806
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrCyan1', 'Cyan', '0FF');
56807
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrCyan2', 'Light Cyan', 'E0FFFF');
56808
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrCyan3', 'Pale Turquoise', 'AFEEEE');
56809
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrCyan4', 'Aquamarine', '7FFFD4');
56810
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrCyan5', 'Turquoise', '40E0D0');
56811
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrCyan6', 'Medium Turquoise', '48D1CC');
56812
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrCyan7', 'Dark Turquoise', '00CED1');
57385
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrCyan1', 'Cyan', '0FF', undefined, 1, 3);
57386
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrCyan2', 'Light Cyan', 'E0FFFF', undefined, 1, 3);
57387
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrCyan3', 'Pale Turquoise', 'AFEEEE', undefined, 1, 3);
57388
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrCyan4', 'Aquamarine', '7FFFD4', undefined, 1, 3);
57389
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrCyan5', 'Turquoise', '40E0D0', undefined, 1, 3);
57390
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrCyan6', 'Medium Turquoise', '48D1CC', undefined, 1, 3);
57391
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrCyan7', 'Dark Turquoise', '00CED1', undefined, 1, 3);
56813
57392
  html += "</ul>";
56814
57393
 
56815
- html += "<li><span>Blue</span>";
57394
+ //html += "<li><span>Blue</span>";
57395
+ html += me.htmlCls.setHtmlCls.getMenuText('uniclrBluewrap', 'Blue', undefined, 1, 2);
56816
57396
  html += "<ul>";
56817
- //html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrBlue', 'Blue');
56818
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBlue1', 'Blue', '00F');
56819
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBlue2', 'Medium Blue', '0000CD');
56820
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBlue3', 'Dark Blue', '00008B');
56821
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBlue4', 'Navy', '000080');
56822
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBlue5', 'Midnight Blue', '191970');
56823
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBlue6', 'Royal Blue', '4169E1');
56824
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBlue7', 'Medium Slate Blue', '7B68EE');
56825
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBlue8', 'Corn Flower Blue', '6495ED');
56826
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBlue9', 'Dodger Blue', '1E90FF');
56827
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBlue10', 'Deep Sky Blue', '00BFFF');
56828
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBlue11', 'Light Sky Blue', '87CEFA');
56829
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBlue12', 'Sky Blue', '87CEEB');
56830
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBlue13', 'Light Blue', 'ADD8E6');
56831
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBlue14', 'Powder Blue', 'B0E0E6');
56832
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBlue15', 'Light Steel Blue', 'B0C4DE');
56833
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBlue16', 'Steel Blue', '4682B4');
56834
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBlue17', 'Cadet Blue', '5F9EA0');
57397
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBlue1', 'Blue', '00F', undefined, 1, 3);
57398
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBlue2', 'Medium Blue', '0000CD', undefined, 1, 3);
57399
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBlue3', 'Dark Blue', '00008B', undefined, 1, 3);
57400
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBlue4', 'Navy', '000080', undefined, 1, 3);
57401
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBlue5', 'Midnight Blue', '191970', undefined, 1, 3);
57402
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBlue6', 'Royal Blue', '4169E1', undefined, 1, 3);
57403
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBlue7', 'Medium Slate Blue', '7B68EE', undefined, 1, 3);
57404
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBlue8', 'Corn Flower Blue', '6495ED', undefined, 1, 3);
57405
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBlue9', 'Dodger Blue', '1E90FF', undefined, 1, 3);
57406
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBlue10', 'Deep Sky Blue', '00BFFF', undefined, 1, 3);
57407
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBlue11', 'Light Sky Blue', '87CEFA', undefined, 1, 3);
57408
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBlue12', 'Sky Blue', '87CEEB', undefined, 1, 3);
57409
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBlue13', 'Light Blue', 'ADD8E6', undefined, 1, 3);
57410
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBlue14', 'Powder Blue', 'B0E0E6', undefined, 1, 3);
57411
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBlue15', 'Light Steel Blue', 'B0C4DE', undefined, 1, 3);
57412
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBlue16', 'Steel Blue', '4682B4', undefined, 1, 3);
57413
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBlue17', 'Cadet Blue', '5F9EA0', undefined, 1, 3);
56835
57414
  html += "</ul>";
56836
57415
 
56837
- html += "<li><span>Brown</span>";
57416
+ //html += "<li><span>Brown</span>";
57417
+ html += me.htmlCls.setHtmlCls.getMenuText('uniclrBrownwrap', 'Brown', undefined, 1, 2);
56838
57418
  html += "<ul>";
56839
- //html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrBrown', 'Brown');
56840
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBrown1', 'Brown', 'A52A2A');
56841
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBrown2', 'Maroon', '800000');
56842
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBrown3', 'Sienna', 'A0522D');
56843
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBrown4', 'Saddle Brown', '8B4513');
56844
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBrown5', 'Chocolate', 'D2691E');
56845
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBrown6', 'Peru', 'CD853F');
56846
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBrown7', 'Dark Golden Rod', 'B8860B');
56847
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBrown8', 'Golden Rod', 'DAA520');
56848
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBrown9', 'Sandy Brown', 'F4A460');
56849
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBrown10', 'Rosy Brown', 'BC8F8F');
56850
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBrown11', 'Tan', 'D2B48C');
56851
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBrown12', 'Burlywood', 'DEB887');
56852
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBrown13', 'Wheat', 'F5DEB3');
56853
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBrown14', 'Navajo White', 'FFDEAD');
56854
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBrown15', 'Bisque', 'FFE4C4');
56855
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBrown16', 'Blanched Almond', 'FFEBCD');
56856
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBrown17', 'Corn Silk', 'FFF8DC');
57419
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBrown1', 'Brown', 'A52A2A', undefined, 1, 3);
57420
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBrown2', 'Maroon', '800000', undefined, 1, 3);
57421
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBrown3', 'Sienna', 'A0522D', undefined, 1, 3);
57422
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBrown4', 'Saddle Brown', '8B4513', undefined, 1, 3);
57423
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBrown5', 'Chocolate', 'D2691E', undefined, 1, 3);
57424
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBrown6', 'Peru', 'CD853F', undefined, 1, 3);
57425
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBrown7', 'Dark Golden Rod', 'B8860B', undefined, 1, 3);
57426
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBrown8', 'Golden Rod', 'DAA520', undefined, 1, 3);
57427
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBrown9', 'Sandy Brown', 'F4A460', undefined, 1, 3);
57428
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBrown10', 'Rosy Brown', 'BC8F8F', undefined, 1, 3);
57429
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBrown11', 'Tan', 'D2B48C', undefined, 1, 3);
57430
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBrown12', 'Burlywood', 'DEB887', undefined, 1, 3);
57431
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBrown13', 'Wheat', 'F5DEB3', undefined, 1, 3);
57432
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBrown14', 'Navajo White', 'FFDEAD', undefined, 1, 3);
57433
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBrown15', 'Bisque', 'FFE4C4', undefined, 1, 3);
57434
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBrown16', 'Blanched Almond', 'FFEBCD', undefined, 1, 3);
57435
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBrown17', 'Corn Silk', 'FFF8DC', undefined, 1, 3);
56857
57436
  html += "</ul>";
56858
57437
 
56859
57438
  html += "<li><span>White</span>";
57439
+ html += me.htmlCls.setHtmlCls.getMenuText('uniclrWhitewrap', 'White', undefined, 1, 2);
56860
57440
  html += "<ul>";
56861
- //html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrWhite', 'White');
56862
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrWhite1', 'White', 'FFF');
56863
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrWhite2', 'Snow', 'FFFAFA');
56864
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrWhite3', 'Honey Dew', 'F0FFF0');
56865
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrWhite4', 'Mint Cream', 'F5FFFA');
56866
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrWhite5', 'Azure', 'F0FFFF');
56867
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrWhite6', 'Alice Blue', 'F0F8FF');
56868
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrWhite7', 'Ghost White', 'F8F8FF');
56869
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrWhite8', 'White Smoke', 'F5F5F5');
56870
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrWhite9', 'Sea Shell', 'FFF5EE');
56871
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrWhite10', 'Beige', 'F5F5DC');
56872
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrWhite11', 'Old Lace', 'FDF5E6');
56873
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrWhite12', 'Floral White', 'FFFAF0');
56874
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrWhite13', 'Ivory', 'FFFFF0');
56875
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrWhite14', 'Antique White', 'FAEBD7');
56876
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrWhite15', 'Linen', 'FAF0E6');
56877
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrWhite16', 'Lavenderblush', 'FFF0F5');
56878
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrWhite17', 'Misty Rose', 'FFE4E1');
57441
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrWhite1', 'White', 'FFF', undefined, 1, 3);
57442
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrWhite2', 'Snow', 'FFFAFA', undefined, 1, 3);
57443
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrWhite3', 'Honey Dew', 'F0FFF0', undefined, 1, 3);
57444
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrWhite4', 'Mint Cream', 'F5FFFA', undefined, 1, 3);
57445
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrWhite5', 'Azure', 'F0FFFF', undefined, 1, 3);
57446
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrWhite6', 'Alice Blue', 'F0F8FF', undefined, 1, 3);
57447
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrWhite7', 'Ghost White', 'F8F8FF', undefined, 1, 3);
57448
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrWhite8', 'White Smoke', 'F5F5F5', undefined, 1, 3);
57449
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrWhite9', 'Sea Shell', 'FFF5EE', undefined, 1, 3);
57450
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrWhite10', 'Beige', 'F5F5DC', undefined, 1, 3);
57451
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrWhite11', 'Old Lace', 'FDF5E6', undefined, 1, 3);
57452
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrWhite12', 'Floral White', 'FFFAF0', undefined, 1, 3);
57453
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrWhite13', 'Ivory', 'FFFFF0', undefined, 1, 3);
57454
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrWhite14', 'Antique White', 'FAEBD7', undefined, 1, 3);
57455
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrWhite15', 'Linen', 'FAF0E6', undefined, 1, 3);
57456
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrWhite16', 'Lavenderblush', 'FFF0F5', undefined, 1, 3);
57457
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrWhite17', 'Misty Rose', 'FFE4E1', undefined, 1, 3);
56879
57458
  html += "</ul>";
56880
57459
 
56881
- html += "<li><span>Gray</span>";
57460
+ //html += "<li><span>Gray</span>";
57461
+ html += me.htmlCls.setHtmlCls.getMenuText('uniclrGraywrap', 'Gray', undefined, 1, 2);
56882
57462
  html += "<ul>";
56883
- //html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrGray', 'Gray');
56884
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGray1', 'Gray', '808080');
56885
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGray2', 'Dim Gray', '696969');
56886
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGray3', 'Light Slate Gray', '778899');
56887
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGray4', 'Slate Gray', '708090');
56888
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGray5', 'Dark Slate Gray', '2F4F4F');
56889
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGray6', 'Black', '000000');
56890
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGray7', 'Dark Gray', 'A9A9A9');
56891
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGray8', 'Silver', 'C0C0C0');
56892
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGray9', 'Light Gray', 'D3D3D3');
56893
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGray10', 'Gainsboro', 'DCDCDC');
57463
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGray1', 'Gray', '808080', undefined, 1, 3);
57464
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGray2', 'Dim Gray', '696969', undefined, 1, 3);
57465
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGray3', 'Light Slate Gray', '778899', undefined, 1, 3);
57466
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGray4', 'Slate Gray', '708090', undefined, 1, 3);
57467
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGray5', 'Dark Slate Gray', '2F4F4F', undefined, 1, 3);
57468
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGray6', 'Black', '000000', undefined, 1, 3);
57469
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGray7', 'Dark Gray', 'A9A9A9', undefined, 1, 3);
57470
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGray8', 'Silver', 'C0C0C0', undefined, 1, 3);
57471
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGray9', 'Light Gray', 'D3D3D3', undefined, 1, 3);
57472
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGray10', 'Gainsboro', 'DCDCDC', undefined, 1, 3);
56894
57473
  html += "</ul>";
56895
57474
 
56896
57475
  html += "</ul>";
56897
57476
 
56898
- if(!me.cfg.simplemenu) {
56899
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrCustom', 'Color Picker');
56900
- html += "<li>-</li>";
56901
- }
57477
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrCustom', 'Color Picker', undefined, undefined, 1);
57478
+ html += me.htmlCls.setHtmlCls.getMenuSep();
56902
57479
 
56903
57480
  if(me.cfg.cid === undefined) {
56904
57481
  //html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrRainbow', 'Rainbow (R-V)');
56905
- html += "<li><span style='padding-left:1.5em;'>Rainbow (R-V)</span>";
57482
+ //html += "<li><span style='padding-left:1.5em!important;'>Rainbow (R-V)</span>";
57483
+ html += me.htmlCls.setHtmlCls.getMenuText('mn4_clrRainbowwrap', 'Rainbow (R-V)', 'icn3d-menupd', 1, 1);
56906
57484
  html += "<ul>";
56907
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrRainbow', 'for Selection');
56908
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrRainbowChain', 'for Chains');
56909
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrRainbowSets', 'for Sets');
57485
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrRainbow', 'for Selection', undefined, 1, 2);
57486
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrRainbowChain', 'for Chains', undefined, 1, 2);
57487
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrRainbowSets', 'for Sets', undefined, undefined, 2);
56910
57488
  html += "</ul>";
56911
57489
 
56912
- if(!me.cfg.simplemenu) {
56913
- //html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrSpectrum', 'Spectrum (V-R)');
56914
- html += "<li><span style='padding-left:1.5em;'>Spectrum (V-R)</span>";
56915
- html += "<ul>";
56916
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrSpectrum', 'for Selection');
56917
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrSpectrumChain', 'for Chains');
56918
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrSpectrumSets', 'for Sets');
56919
- html += "</ul>";
56920
- }
56921
-
56922
- html += "<li><span style='padding-left:1.5em;'>Secondary</span>";
57490
+ html += me.htmlCls.setHtmlCls.getMenuText('mn4_clrSpectrumwrap', 'Spectrum (V-R)', 'icn3d-menupd', 1, 1);
56923
57491
  html += "<ul>";
56924
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrSSGreen', 'Sheet in Green');
56925
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrSSYellow', 'Sheet in Yellow');
56926
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrSSSpectrum', 'Spectrum');
57492
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrSpectrum', 'for Selection', undefined, 1, 2);
57493
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrSpectrumChain', 'for Chains', undefined, 1, 2);
57494
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrSpectrumSets', 'for Sets', undefined, undefined, 2);
56927
57495
  html += "</ul>";
56928
57496
 
56929
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrCharge', 'Charge');
56930
-
56931
- // if(!me.cfg.notebook && !me.cfg.hidelicense) {
56932
- // html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn1_delphi2', 'DelPhi<br><span style="padding-left:1.5em;">Potential ' + me.htmlCls.licenseStr + '</span>');
56933
- // }
57497
+ //html += "<li><span style='padding-left:1.5em!important;'>Secondary</span>";
57498
+ html += me.htmlCls.setHtmlCls.getMenuText('mn4_clrSSwrap', 'Secondary', 'icn3d-menupd', 1, 1);
57499
+ html += "<ul>";
57500
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrSSGreen', 'Sheet in Green', undefined, 1, 2);
57501
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrSSYellow', 'Sheet in Yellow', undefined, 1, 2);
57502
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrSSSpectrum', 'Spectrum', undefined, undefined, 2);
57503
+ html += "</ul>";
56934
57504
 
56935
- //html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrHydrophobic', 'Wimley-White<br><span style="padding-left:1.5em;">Hydrophobicity</span>');
57505
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrCharge', 'Charge', undefined, 1, 1);
56936
57506
 
56937
- html += "<li><span style='padding-left:1.5em;'>Hydrophobicity</span>";
57507
+ //html += "<li><span style='padding-left:1.5em!important;'>Hydrophobicity</span>";
57508
+ html += me.htmlCls.setHtmlCls.getMenuText('mn4_hydrophobicwrap', 'Hydrophobicity', 'icn3d-menupd', 1, 1);
56938
57509
  html += "<ul>";
56939
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrNormalizedHP', 'Normalized');
56940
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrHydrophobic', 'Wimley-White');
57510
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrNormalizedHP', 'Normalized', undefined, 1, 2);
57511
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrHydrophobic', 'Wimley-White', undefined, undefined, 2);
56941
57512
  html += "</ul>";
56942
57513
 
56943
- html += "<li><span style='padding-left:1.5em;'>B-factor</span>";
57514
+ //html += "<li><span style='padding-left:1.5em!important;'>B-factor</span>";
57515
+ html += me.htmlCls.setHtmlCls.getMenuText('mn4_clrBfactorwrap', 'B-factor', 'icn3d-menupd', 1, 1);
56944
57516
  html += "<ul>";
56945
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrBfactor', 'Original');
56946
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrBfactorNorm', 'Percentile');
57517
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrBfactor', 'Original', undefined, 1, 2);
57518
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrBfactorNorm', 'Percentile', undefined, 1, 2);
56947
57519
  html += "</ul>";
56948
57520
 
56949
- if(!me.cfg.simplemenu) html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrArea', 'Solvent<br><span style="padding-left:1.5em;">Accessibility</span>');
57521
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrArea', 'Solvent<br><span style="padding-left:1.5em;">Accessibility</span>', undefined, undefined, 1);
56950
57522
 
56951
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrStructure', 'Structure');
57523
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrStructure', 'Structure', undefined, 1, 1);
56952
57524
 
56953
57525
  if(me.cfg.align !== undefined || me.cfg.chainalign !== undefined || me.cfg.blast_rep_id !== undefined) {
56954
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrChain', 'Chain');
57526
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrChain', 'Chain', undefined, 1, 1);
56955
57527
  }
56956
57528
  else {
56957
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrChain', 'Chain', true);
57529
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrChain', 'Chain', true, 1, 1);
56958
57530
  }
56959
57531
 
56960
57532
  //if(me.cfg.mmdbid !== undefined || me.cfg.gi !== undefined) {
56961
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrdomain', '3D Domain');
57533
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrdomain', '3D Domain', undefined, undefined, 1);
56962
57534
  //}
56963
57535
 
56964
57536
  if(me.cfg.cid === undefined) {
56965
- if(!me.cfg.simplemenu) {
56966
- html += "<li><span style='padding-left:1.5em;'>Defined Sets</span>";
56967
- html += "<ul>";
56968
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrsets', 'Rainbow for Selected Sets<br>in "Analysis > Defined Sets"');
56969
- html += "</ul>";
56970
- }
57537
+ //html += "<li><span style='padding-left:1.5em!important;'>Defined Sets</span>";
57538
+ html += me.htmlCls.setHtmlCls.getMenuText('mn4_clrsetswrap', 'Defined Sets', 'icn3d-menupd', undefined, 1);
57539
+ html += "<ul>";
57540
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrsets', 'Rainbow for Selected Sets<br><span style="padding-left:1.5em;">in "Analysis > Defined Sets"</span>', undefined, undefined, 2);
57541
+ html += "</ul>";
57542
+ html += "</li>";
56971
57543
  }
56972
57544
 
56973
- //html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrResidue', 'Residue');
56974
-
56975
- html += "<li><span style='padding-left:1.5em;'>Residue</span>";
57545
+ //html += "<li><span style='padding-left:1.5em!important;'>Residue</span>";
57546
+ html += me.htmlCls.setHtmlCls.getMenuText('mn4_clrResiduewrap', 'Residue', 'icn3d-menupd', 1, 1);
56976
57547
  html += "<ul>";
56977
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrResidue', 'Default');
56978
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrResidueCustom', 'Custom');
57548
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrResidue', 'Default', undefined, 1, 2);
57549
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrResidueCustom', 'Custom', undefined, undefined, 2);
56979
57550
  html += "</ul>";
56980
57551
 
56981
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrAtom', 'Atom');
57552
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrAtom', 'Atom', undefined, 1, 1);
56982
57553
 
56983
57554
  if(me.cfg.align !== undefined || me.cfg.chainalign !== undefined) {
56984
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrIdentity', 'Identity', true);
56985
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrConserved', 'Conservation');
57555
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrIdentity', 'Identity', true, undefined, 2);
57556
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrConserved', 'Conservation', undefined, undefined, 2);
56986
57557
  }
56987
57558
  else if(me.cfg.blast_rep_id !== undefined) {
56988
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrIdentity', 'Identity');
56989
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrConserved', 'Conservation', true);
57559
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrIdentity', 'Identity', undefined, undefined, 2);
57560
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrConserved', 'Conservation', true, undefined, 2);
56990
57561
  }
56991
57562
 
56992
57563
  //if(me.cfg.afid) html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrConfidence', 'AF Confidence');
56993
57564
  //if(!me.cfg.mmtfid && !me.cfg.pdbid && !me.cfg.opmid && !me.cfg.mmdbid && !me.cfg.gi && !me.cfg.uniprotid && !me.cfg.blast_rep_id && !me.cfg.cid && !me.cfg.mmcifid && !me.cfg.align && !me.cfg.chainalign) {
56994
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrConfidence', 'AlphaFold<br><span style="padding-left:1.5em;">Confidence</span>');
57565
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrConfidence', 'AlphaFold<br><span style="padding-left:1.5em;">Confidence</span>', undefined, 1, 1);
56995
57566
  //}
56996
57567
  }
56997
57568
  else {
56998
57569
  //if(!me.cfg.hidelicense) html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn1_delphi2', 'DelPhi<br><span style="padding-left:1.5em;">Potential ' + me.htmlCls.licenseStr + '</span>');
56999
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrAtom', 'Atom', true);
57570
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrAtom', 'Atom', true, 1, 1);
57000
57571
  }
57001
57572
 
57002
- if(!me.cfg.simplemenu) {
57003
- html += "<li>-</li>";
57573
+ html += me.htmlCls.setHtmlCls.getMenuSep();
57004
57574
 
57005
- html += me.htmlCls.setHtmlCls.getLink('mn4_clrSave', 'Save Color');
57006
- html += me.htmlCls.setHtmlCls.getLink('mn4_clrApplySave', 'Apply Saved Color');
57007
- }
57575
+ html += me.htmlCls.setHtmlCls.getLink('mn4_clrSave', 'Save Color', undefined, 1);
57576
+ html += me.htmlCls.setHtmlCls.getLink('mn4_clrApplySave', 'Apply Saved Color', undefined, 1);
57008
57577
 
57009
57578
  html += "<li><br/></li>";
57010
57579
  html += "</ul>";
@@ -57040,197 +57609,194 @@ class SetMenu {
57040
57609
  html += "<ul class='icn3d-mn-item'>";
57041
57610
 
57042
57611
  if(me.cfg.cid === undefined) {
57043
- html += me.htmlCls.setHtmlCls.getLink('mn6_selectannotations', 'Seq. & Annotations ' + me.htmlCls.wifiStr);
57612
+ html += me.htmlCls.setHtmlCls.getLink('mn6_selectannotations', 'Seq. & Annotations ' + me.htmlCls.wifiStr, 1, 1);
57044
57613
 
57045
57614
  //if(me.cfg.align !== undefined || me.cfg.chainalign !== undefined) { // || ic.bRealign || ic.bSymd || ic.bInputfile) {
57046
- html += me.htmlCls.setHtmlCls.getLink('mn2_alignment', 'Aligned Seq. ' + me.htmlCls.wifiStr);
57615
+ html += me.htmlCls.setHtmlCls.getLink('mn2_alignment', 'Aligned Seq. ' + me.htmlCls.wifiStr, undefined, 1);
57047
57616
  //}
57048
57617
 
57049
57618
  if(me.cfg.mmdbid !== undefined || me.cfg.gi !== undefined || me.cfg.blast_rep_id !== undefined || me.cfg.align !== undefined || me.cfg.chainalign !== undefined) {
57050
- html += me.htmlCls.setHtmlCls.getLink('mn2_2ddgm', '2D Diagram ' + me.htmlCls.wifiStr);
57619
+ html += me.htmlCls.setHtmlCls.getLink('mn2_2ddgm', '2D Diagram ' + me.htmlCls.wifiStr, 1, 1);
57051
57620
  }
57052
57621
 
57053
- html += "<li><span>2D Cartoon</span>";
57622
+ //html += "<li><span>2D Cartoon</span>";
57623
+ html += me.htmlCls.setHtmlCls.getMenuText('2dctnwrap', '2D Cartoon', undefined, 1);
57054
57624
  html += "<ul>";
57055
- html += me.htmlCls.setHtmlCls.getLink('2dctn_chain', 'Chain Level');
57056
- html += me.htmlCls.setHtmlCls.getLink('2dctn_domain', 'Domain Level');
57057
- html += me.htmlCls.setHtmlCls.getLink('2dctn_secondary', 'Helix/Sheet Level');
57625
+ html += me.htmlCls.setHtmlCls.getLink('2dctn_chain', 'Chain Level', undefined, 2);
57626
+ html += me.htmlCls.setHtmlCls.getLink('2dctn_domain', 'Domain Level', undefined, 2);
57627
+ html += me.htmlCls.setHtmlCls.getLink('2dctn_secondary', 'Helix/Sheet Level', undefined, 2);
57058
57628
  html += "</ul>";
57059
57629
  html += "</li>";
57060
57630
 
57061
- html += me.htmlCls.setHtmlCls.getLink('definedsets2', 'Defined Sets');
57631
+ html += me.htmlCls.setHtmlCls.getLink('definedsets2', 'Defined Sets', 1, 1);
57062
57632
 
57063
- html += "<li>-</li>";
57633
+ html += me.htmlCls.setHtmlCls.getMenuSep();
57064
57634
 
57065
- html += me.htmlCls.setHtmlCls.getLink('mn6_hbondsYes', 'Interactions');
57635
+ html += me.htmlCls.setHtmlCls.getLink('mn6_hbondsYes', 'Interactions', 1, 1);
57066
57636
  //html += me.htmlCls.setHtmlCls.getLink('mn6_hbondsNo', 'Remove H-Bonds <br>& Interactions');
57067
57637
 
57068
- if(!me.cfg.simplemenu) html += me.htmlCls.setHtmlCls.getLink('mn6_contactmap', 'Contact Map');
57069
- /*
57070
- html += "<li><span>Bring to Front</span>";
57071
- html += "<ul>";
57072
- html += me.htmlCls.setHtmlCls.getLink('mn1_window_table', 'Interaction Table');
57073
- html += me.htmlCls.setHtmlCls.getLink('mn1_window_linegraph', '2D Interaction Network');
57074
- html += me.htmlCls.setHtmlCls.getLink('mn1_window_scatterplot', '2D Interaction Map');
57075
- html += me.htmlCls.setHtmlCls.getLink('mn1_window_graph', '2D Graph(Force-Directed)');
57076
- html += "</ul>";
57077
- html += "</li>";
57078
- */
57638
+ html += me.htmlCls.setHtmlCls.getLink('mn6_contactmap', 'Contact Map', undefined, 1);
57079
57639
 
57080
57640
  if(!me.cfg.notebook) {
57081
- html += me.htmlCls.setHtmlCls.getLink('mn1_mutation', 'Mutation ' + me.htmlCls.wifiStr);
57641
+ html += me.htmlCls.setHtmlCls.getLink('mn1_mutation', 'Mutation ' + me.htmlCls.wifiStr, 1, 1);
57082
57642
  }
57083
57643
 
57084
- if(!me.cfg.simplemenu) html += "<li>-</li>";
57644
+ html += me.htmlCls.setHtmlCls.getMenuSep();
57085
57645
  }
57086
57646
 
57087
57647
  if(!me.cfg.notebook && !me.cfg.hidelicense) {
57088
- html += me.htmlCls.setHtmlCls.getLink('mn1_delphi', 'DelPhi Potential ' + me.htmlCls.licenseStr);
57648
+ html += me.htmlCls.setHtmlCls.getLink('mn1_delphi', 'DelPhi Potential ' + me.htmlCls.licenseStr, 1, 1);
57089
57649
 
57090
- if(!me.cfg.simplemenu) {
57091
- html += "<li><span>Load PQR/Phi</span>";
57092
- html += "<ul>";
57093
- html += me.htmlCls.setHtmlCls.getLink('mn1_phi', 'Local PQR/Phi/Cube File');
57094
- html += me.htmlCls.setHtmlCls.getLink('mn1_phiurl', 'URL PQR/Phi/Cube File');
57095
- html += "</ul>";
57096
- html += me.htmlCls.setHtmlCls.getLink('delphipqr', 'Download PQR');
57097
- }
57650
+ //html += "<li><span>Load PQR/Phi</span>";
57651
+ html += me.htmlCls.setHtmlCls.getMenuText('mn1_phiwrap', 'Load PQR/Phi', undefined, undefined, 1);
57652
+ html += "<ul>";
57653
+ html += me.htmlCls.setHtmlCls.getLink('mn1_phi', 'Local PQR/Phi/Cube File', undefined, 2);
57654
+ html += me.htmlCls.setHtmlCls.getLink('mn1_phiurl', 'URL PQR/Phi/Cube File', undefined, 2);
57655
+ html += "</ul>";
57656
+ html += "</li>";
57657
+ html += me.htmlCls.setHtmlCls.getLink('delphipqr', 'Download PQR', undefined, 1);
57098
57658
 
57099
- html += "<li>-</li>";
57659
+ html += me.htmlCls.setHtmlCls.getMenuSep();
57100
57660
  }
57101
57661
 
57102
- html += "<li><span>Distance</span>";
57662
+ //html += "<li><span>Distance</span>";
57663
+ html += me.htmlCls.setHtmlCls.getMenuText('mn6_distancewrap', 'Distance', undefined, 1, 1);
57103
57664
  html += "<ul>";
57104
- html += me.htmlCls.setHtmlCls.getRadio('mn6_distance', 'mn6_distanceYes', 'between Two Atoms');
57105
- html += me.htmlCls.setHtmlCls.getRadio('mn6_distance', 'mn6_distTwoSets', 'between Two Sets');
57106
- html += me.htmlCls.setHtmlCls.getRadio('mn6_distance', 'mn6_distManySets', 'Among Many Sets');
57107
- html += me.htmlCls.setHtmlCls.getRadio('mn6_distance', 'mn6_distanceNo', 'Hide', true);
57665
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_distance', 'mn6_distanceYes', 'between Two Atoms', undefined, 1, 2);
57666
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_distance', 'mn6_distTwoSets', 'between Two Sets', undefined, undefined, 2);
57667
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_distance', 'mn6_distManySets', 'Among Many Sets', undefined, undefined, 2);
57668
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_distance', 'mn6_distanceNo', 'Hide', true, 1, 2);
57108
57669
  html += "</ul>";
57109
57670
  html += "</li>";
57110
57671
 
57111
- html += me.htmlCls.setHtmlCls.getLink('mn6_area', 'Surface Area');
57672
+ html += me.htmlCls.setHtmlCls.getLink('mn6_area', 'Surface Area', 1, 1);
57112
57673
 
57113
- html += "<li><span>Label</span>";
57674
+ //html += "<li><span>Label</span>";
57675
+ html += me.htmlCls.setHtmlCls.getMenuText('mn6_addlabelwrap', 'Label', undefined, 1, 1);
57114
57676
  html += "<ul>";
57115
- html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_addlabelYes', 'by Picking Atoms');
57116
- html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_addlabelSelection', 'per Selection');
57117
- html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_addlabelAtoms', 'per Atom');
57118
- html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_addlabelElements', 'per Atom Element');
57677
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_addlabelYes', 'by Picking Atoms', undefined, undefined, 2);
57678
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_addlabelSelection', 'per Selection', undefined, undefined, 2);
57679
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_addlabelAtoms', 'per Atom', undefined, undefined, 2);
57680
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_addlabelElements', 'per Atom Element', undefined, 1, 2);
57119
57681
  if(me.cfg.cid === undefined) {
57120
- html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_addlabelResidues', 'per Residue');
57121
- html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_addlabelResnum', 'per Residue & Number');
57122
- html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_addlabelChains', 'per Chain');
57123
- html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_addlabelTermini', 'N- & C-Termini');
57682
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_addlabelResidues', 'per Residue', undefined, 1, 2);
57683
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_addlabelResnum', 'per Residue & Number', undefined, 1, 2);
57684
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_addlabelChains', 'per Chain', undefined, undefined, 2);
57685
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_addlabelTermini', 'N- & C-Termini', undefined, 1, 2);
57124
57686
  }
57125
57687
 
57126
- html += "<li>-</li>";
57127
- html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_labelColor', 'Change Label Color', true);
57128
- html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_addlabelNo', 'Remove', true);
57688
+ html += me.htmlCls.setHtmlCls.getMenuSep();
57689
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_labelColor', 'Change Label Color', undefined, 1, 2);
57690
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_addlabelNo', 'Remove', true, 1, 2);
57129
57691
  html += "</ul>";
57130
57692
  html += "</li>";
57131
57693
 
57132
- html += "<li><span>Label Scale</span>";
57694
+ //html += "<li><span>Label Scale</span>";
57695
+ html += me.htmlCls.setHtmlCls.getMenuText('labelscalewrap', 'Label Scale', undefined, 1, 1);
57133
57696
  html += "<ul>";
57134
57697
 
57135
57698
  for(let i = 1; i <= 4; ++i) {
57136
57699
  let twoi = 2 * i;
57137
- html += me.htmlCls.setHtmlCls.getRadio('mn6_labelscale', 'mn6_labelscale0' + twoi, '0.' + twoi);
57700
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_labelscale', 'mn6_labelscale0' + twoi, '0.' + twoi, undefined, 1, 2);
57138
57701
  }
57139
57702
 
57140
57703
  for(let i = 1; i <= 5; ++i) {
57141
57704
  if(i == 1) {
57142
- html += me.htmlCls.setHtmlCls.getRadio('mn6_labelscale', 'mn6_labelscale' + i + '0', i + '.0', true);
57705
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_labelscale', 'mn6_labelscale' + i + '0', i + '.0', true, 1, 2);
57143
57706
  }
57144
57707
  else {
57145
- html += me.htmlCls.setHtmlCls.getRadio('mn6_labelscale', 'mn6_labelscale' + i + '0', i + '.0');
57708
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_labelscale', 'mn6_labelscale' + i + '0', i + '.0', undefined, 1, 2);
57146
57709
  }
57147
57710
  }
57148
57711
 
57149
57712
  html += "</ul>";
57150
57713
  html += "</li>";
57151
57714
 
57152
- html += "<li>-</li>";
57715
+ html += me.htmlCls.setHtmlCls.getMenuSep();
57153
57716
 
57154
57717
  if(me.cfg.cid === undefined) {
57155
- if(!me.cfg.simplemenu) {
57156
- html += "<li><span>Chem. Binding</span>";
57157
- html += "<ul>";
57158
- html += me.htmlCls.setHtmlCls.getRadio('mn6_chemicalbinding', 'mn6_chemicalbindingshow', 'Show');
57159
- html += me.htmlCls.setHtmlCls.getRadio('mn6_chemicalbinding', 'mn6_chemicalbindinghide', 'Hide', true);
57160
- html += "</ul>";
57161
- html += "</li>";
57162
- }
57718
+ //html += "<li><span>Chem. Binding</span>";
57719
+ html += me.htmlCls.setHtmlCls.getMenuText('mn6_chemicalbindingwrap', 'Chem. Binding', undefined, undefined, 1);
57720
+ html += "<ul>";
57721
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_chemicalbinding', 'mn6_chemicalbindingshow', 'Show', undefined, undefined, 2);
57722
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_chemicalbinding', 'mn6_chemicalbindinghide', 'Hide', true, undefined, 2);
57723
+ html += "</ul>";
57724
+ html += "</li>";
57163
57725
 
57164
- html += "<li><span>Disulfide Bonds</span>";
57726
+ //html += "<li><span>Disulfide Bonds</span>";
57727
+ html += me.htmlCls.setHtmlCls.getMenuText('mn6_ssbondswrap', 'Disulfide Bonds', undefined, 1, 1);
57165
57728
  html += "<ul>";
57166
- html += me.htmlCls.setHtmlCls.getRadio('mn6_ssbonds', 'mn6_ssbondsYes', 'Show', true);
57167
- html += me.htmlCls.setHtmlCls.getRadio('mn6_ssbonds', 'mn6_ssbondsExport', 'Export Pairs');
57168
- html += me.htmlCls.setHtmlCls.getRadio('mn6_ssbonds', 'mn6_ssbondsNo', 'Hide');
57729
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_ssbonds', 'mn6_ssbondsYes', 'Show', true, 1, 2);
57730
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_ssbonds', 'mn6_ssbondsExport', 'Export Pairs', undefined, undefined, 2);
57731
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_ssbonds', 'mn6_ssbondsNo', 'Hide', undefined, 1, 2);
57169
57732
  html += "</ul>";
57170
57733
  html += "</li>";
57171
57734
 
57172
- if(!me.cfg.simplemenu) {
57173
- html += "<li><span>Cross-Linkages</span>";
57174
- html += "<ul>";
57175
- html += me.htmlCls.setHtmlCls.getRadio('mn6_clbonds', 'mn6_clbondsYes', 'Show', true);
57176
- html += me.htmlCls.setHtmlCls.getRadio('mn6_clbonds', 'mn6_clbondsExport', 'Export Pairs');
57177
- html += me.htmlCls.setHtmlCls.getRadio('mn6_clbonds', 'mn6_clbondsNo', 'Hide');
57178
- html += "</ul>";
57179
- html += "</li>";
57180
- }
57735
+ //html += "<li><span>Cross-Linkages</span>";
57736
+ html += me.htmlCls.setHtmlCls.getMenuText('mn6_clbondswrap', 'Cross-Linkages', undefined, undefined, 1);
57737
+ html += "<ul>";
57738
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_clbonds', 'mn6_clbondsYes', 'Show', true, undefined, 2);
57739
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_clbonds', 'mn6_clbondsExport', 'Export Pairs', undefined, undefined, 2);
57740
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_clbonds', 'mn6_clbondsNo', 'Hide', undefined, undefined, 2);
57741
+ html += "</ul>";
57742
+ html += "</li>";
57181
57743
 
57182
- let bOnePdb = me.cfg.mmtfid !== undefined || me.cfg.pdbid !== undefined || me.cfg.opmid !== undefined || me.cfg.mmcifid !== undefined || me.cfg.mmdbid !== undefined || me.cfg.gi !== undefined || me.cfg.blast_rep_id !== undefined;
57744
+ let bOnePdb = me.cfg.mmtfid !== undefined || me.cfg.pdbid !== undefined || me.cfg.opmid !== undefined || me.cfg.mmcifid !== undefined || me.cfg.mmdbid !== undefined || me.cfg.mmdbafid !== undefined || me.cfg.gi !== undefined || me.cfg.blast_rep_id !== undefined;
57183
57745
 
57184
57746
  if(bOnePdb) {
57185
- html += "<li id='" + me.pre + "assemblyWrapper'><span>Assembly</span>";
57747
+ //html += "<li id='" + me.pre + "assemblyWrapper'><span>Assembly</span>";
57748
+ html += me.htmlCls.setHtmlCls.getMenuText('assemblyWrapper', 'Assembly', undefined, 1, 1);
57186
57749
  html += "<ul>";
57187
57750
 
57188
57751
  if(!me.cfg.bu) {
57189
- html += me.htmlCls.setHtmlCls.getRadio('mn6_assembly', 'mn6_assemblyYes', 'Biological Assembly');
57190
- html += me.htmlCls.setHtmlCls.getRadio('mn6_assembly', 'mn6_assemblyNo', 'Asymmetric Unit', true);
57752
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_assembly', 'mn6_assemblyYes', 'Biological Assembly', undefined, 1, 2);
57753
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_assembly', 'mn6_assemblyNo', 'Asymmetric Unit', true, 1, 2);
57191
57754
  }
57192
57755
  else {
57193
- html += me.htmlCls.setHtmlCls.getRadio('mn6_assembly', 'mn6_assemblyYes', 'Biological Assembly', true);
57194
- html += me.htmlCls.setHtmlCls.getRadio('mn6_assembly', 'mn6_assemblyNo', 'Asymmetric Unit');
57756
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_assembly', 'mn6_assemblyYes', 'Biological Assembly', true, 1, 2);
57757
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_assembly', 'mn6_assemblyNo', 'Asymmetric Unit', undefined, 1, 2);
57195
57758
  }
57196
57759
 
57197
57760
  html += "</ul>";
57198
57761
  html += "</li>";
57199
-
57200
57762
  }
57201
57763
 
57202
- html += "<li><span>Symmetry</span>";
57764
+ //html += "<li><span>Symmetry</span>";
57765
+ html += me.htmlCls.setHtmlCls.getMenuText('mn6_symmetrywrap', 'Symmetry', undefined, undefined, 1);
57203
57766
  html += "<ul>";
57204
- if(bOnePdb) html += me.htmlCls.setHtmlCls.getLink('mn6_symmetry', 'from PDB(precalculated) ' + me.htmlCls.wifiStr);
57205
- if(!me.cfg.simplemenu) {
57206
- html += me.htmlCls.setHtmlCls.getLink('mn6_symd', 'from SymD(Dynamic) ' + me.htmlCls.wifiStr);
57207
- html += me.htmlCls.setHtmlCls.getLink('mn6_clear_sym', 'Clear SymD Symmetry');
57208
- html += me.htmlCls.setHtmlCls.getLink('mn6_axes_only', 'Show Axes Only');
57209
- }
57767
+ if(bOnePdb) html += me.htmlCls.setHtmlCls.getLink('mn6_symmetry', 'from PDB(precalculated) ' + me.htmlCls.wifiStr, undefined, 2);
57768
+
57769
+ html += me.htmlCls.setHtmlCls.getLink('mn6_symd', 'from SymD(Dynamic) ' + me.htmlCls.wifiStr, undefined, 2);
57770
+ html += me.htmlCls.setHtmlCls.getLink('mn6_clear_sym', 'Clear SymD Symmetry', undefined, 2);
57771
+ html += me.htmlCls.setHtmlCls.getLink('mn6_axes_only', 'Show Axes Only', undefined, 2);
57772
+
57210
57773
  html += "</ul>";
57211
57774
  html += "</li>";
57212
57775
 
57213
- html += "<li>-</li>";
57776
+ html += me.htmlCls.setHtmlCls.getMenuSep();
57214
57777
  }
57215
57778
 
57216
- if(!me.cfg.simplemenu) html += me.htmlCls.setHtmlCls.getLink('mn6_yournote', 'Window Title');
57779
+ html += me.htmlCls.setHtmlCls.getLink('mn6_yournote', 'Window Title', undefined, 1);
57217
57780
 
57218
57781
  if(me.cfg.cid !== undefined) {
57219
- html += "<li><span>Links</span>";
57782
+ //html += "<li><span>Links</span>";
57783
+ html += me.htmlCls.setHtmlCls.getMenuText('mn1_linkwrap', 'Links', undefined, undefined, 1);
57784
+
57220
57785
  html += "<ul>";
57221
- html += me.htmlCls.setHtmlCls.getLink('mn1_link_structure', 'Compound Summary ' + me.htmlCls.wifiStr);
57222
- html += me.htmlCls.setHtmlCls.getLink('mn1_link_vast', 'Similar Compounds ' + me.htmlCls.wifiStr);
57223
- html += me.htmlCls.setHtmlCls.getLink('mn1_link_bind', 'Structures Bound ' + me.htmlCls.wifiStr);
57786
+ html += me.htmlCls.setHtmlCls.getLink('mn1_link_structure', 'Compound Summary ' + me.htmlCls.wifiStr, undefined, 2);
57787
+ html += me.htmlCls.setHtmlCls.getLink('mn1_link_vast', 'Similar Compounds ' + me.htmlCls.wifiStr, undefined, 2);
57788
+ html += me.htmlCls.setHtmlCls.getLink('mn1_link_bind', 'Structures Bound ' + me.htmlCls.wifiStr, undefined, 2);
57224
57789
  html += "</ul>";
57225
57790
  html += "</li>";
57226
57791
  }
57227
57792
  else {
57228
- html += "<li><span>Links</span>";
57793
+ //html += "<li><span>Links</span>";
57794
+ html += me.htmlCls.setHtmlCls.getMenuText('mn1_linkwrap', 'Links', undefined, undefined, 1);
57229
57795
  html += "<ul>";
57230
- html += me.htmlCls.setHtmlCls.getLink('mn1_link_structure', 'Structure Summary ' + me.htmlCls.wifiStr);
57231
- html += me.htmlCls.setHtmlCls.getLink('mn1_link_vast', 'Similar Structures ' + me.htmlCls.wifiStr);
57232
- html += me.htmlCls.setHtmlCls.getLink('mn1_link_pubmed', 'Literature ' + me.htmlCls.wifiStr);
57233
- html += me.htmlCls.setHtmlCls.getLink('mn1_link_protein', 'Protein ' + me.htmlCls.wifiStr);
57796
+ html += me.htmlCls.setHtmlCls.getLink('mn1_link_structure', 'Structure Summary ' + me.htmlCls.wifiStr, undefined, 2);
57797
+ html += me.htmlCls.setHtmlCls.getLink('mn1_link_vast', 'Similar Structures ' + me.htmlCls.wifiStr, undefined, 2);
57798
+ html += me.htmlCls.setHtmlCls.getLink('mn1_link_pubmed', 'Literature ' + me.htmlCls.wifiStr, undefined, 2);
57799
+ html += me.htmlCls.setHtmlCls.getLink('mn1_link_protein', 'Protein ' + me.htmlCls.wifiStr, undefined, 2);
57234
57800
  //html += me.htmlCls.setHtmlCls.getLink('mn1_link_gene', 'Gene');
57235
57801
  //html += me.htmlCls.setHtmlCls.getLink('mn1_link_chemicals', 'Chemicals');
57236
57802
  html += "</ul>";
@@ -57269,55 +57835,77 @@ class SetMenu {
57269
57835
 
57270
57836
  let html = "";
57271
57837
 
57272
- let liStr = "<li><a href='";
57273
-
57274
57838
  html += "<ul class='icn3d-mn-item'>";
57275
57839
 
57276
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#about' target='_blank'>About iCn3D<span style='font-size:0.9em'> " + me.REVISION + "</span></a></li>";
57840
+ //html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#about' target='_blank'>About iCn3D<span style='font-size:0.9em'> " + me.REVISION + "</span></a></li>";
57841
+ html += me.htmlCls.setHtmlCls.getMenuUrl('abouticn3d', me.htmlCls.baseUrl + "icn3d/icn3d.html#about", "About iCn3D<span style='font-size:0.9em'> " + me.REVISION + "</span>", 1, 1);
57842
+
57843
+ //html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#gallery' target='_blank'>Live Gallery " + me.htmlCls.wifiStr + "</a></li>";
57844
+ html += me.htmlCls.setHtmlCls.getMenuUrl('gallery', me.htmlCls.baseUrl + "icn3d/icn3d.html#gallery", "Live Gallery " + me.htmlCls.wifiStr, 1, 1);
57845
+ //html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#videos' target='_blank'>iCn3D Videos</a></li>";
57846
+ html += me.htmlCls.setHtmlCls.getMenuUrl('video', me.htmlCls.baseUrl + "icn3d/icn3d.html#videos", "iCn3D Videos", 1, 1);
57277
57847
 
57278
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#gallery' target='_blank'>Live Gallery " + me.htmlCls.wifiStr + "</a></li>";
57848
+ //html += "<li><span>FAQ</span>";
57849
+ html += me.htmlCls.setHtmlCls.getMenuText('mn6_faq', 'FAQ', undefined, 1, 1);
57279
57850
 
57280
- html += "<li><span>Tutorial</span>";
57281
57851
  html += "<ul>";
57282
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#useicn3d' target='_blank'>Use iCn3D</a></li>";
57283
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#videos' target='_blank'>iCn3D Videos</a></li>";
57284
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#parameters' target='_blank'>URL Parameters</a></li>";
57285
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#commands' target='_blank'>Commands</a></li>";
57852
+ html += me.htmlCls.setHtmlCls.getMenuUrl('faq_viewstru', me.htmlCls.baseUrl + "icn3d/icn3d.html#viewstru", "View structure", 1, 2);
57853
+ html += me.htmlCls.setHtmlCls.getMenuUrl('faq_tfstru', me.htmlCls.baseUrl + "icn3d/icn3d.html#tfstru", "Transform Structure", 1, 2);
57854
+ html += me.htmlCls.setHtmlCls.getMenuUrl('faq_selsubset', me.htmlCls.baseUrl + "icn3d/icn3d.html#selsubset", "Select Subsets", 1, 2);
57855
+ html += me.htmlCls.setHtmlCls.getMenuUrl('faq_stylecolor', me.htmlCls.baseUrl + "icn3d/icn3d.html#changestylecolor", "Change Style/Color", 1, 2);
57856
+ html += me.htmlCls.setHtmlCls.getMenuUrl('faq_savework', me.htmlCls.baseUrl + "icn3d/icn3d.html#saveview", "Save Work", 1, 2);
57857
+ html += me.htmlCls.setHtmlCls.getMenuUrl('faq_showanno', me.htmlCls.baseUrl + "icn3d/icn3d.html#showanno", "Show Annotations", 1, 2);
57858
+ html += me.htmlCls.setHtmlCls.getMenuUrl('faq_exportanno', me.htmlCls.baseUrl + "icn3d/icn3d.html#exportanno", "Export Annotations", 1, 2);
57859
+ html += me.htmlCls.setHtmlCls.getMenuUrl('faq_interanal', me.htmlCls.baseUrl + "icn3d/icn3d.html#interanalysis", "Interactions Analysis", 1, 2);
57860
+ html += me.htmlCls.setHtmlCls.getMenuUrl('faq_mutanal', me.htmlCls.baseUrl + "icn3d/icn3d.html#mutationanalysis", "Mutation Analysis", 1, 2);
57861
+ html += me.htmlCls.setHtmlCls.getMenuUrl('faq_elecpot', me.htmlCls.baseUrl + "icn3d/icn3d.html#elecpot", "Electrostatic Pot.", 1, 2);
57862
+ html += me.htmlCls.setHtmlCls.getMenuUrl('faq_simipdb', me.htmlCls.baseUrl + "icn3d/icn3d.html#simivast", "Similar PDB", 1, 2);
57863
+ html += me.htmlCls.setHtmlCls.getMenuUrl('faq_simialphapdb', me.htmlCls.baseUrl + "icn3d/icn3d.html#simifoldseek", "Similar AlphaFold/PDB", 1, 2);
57864
+ html += me.htmlCls.setHtmlCls.getMenuUrl('faq_alnstru', me.htmlCls.baseUrl + "icn3d/icn3d.html#alignmul", "Align Multiple Structures", 1, 2);
57865
+ html += me.htmlCls.setHtmlCls.getMenuUrl('faq_batchanal', me.htmlCls.baseUrl + "icn3d/icn3d.html#batchanalysis", "Batch Analysis", 1, 2);
57866
+ html += me.htmlCls.setHtmlCls.getMenuUrl('faq_embedicn3d', me.htmlCls.baseUrl + "icn3d/icn3d.html#embedicn3d", "Embed iCn3D", 1, 2);
57286
57867
  html += "</ul>";
57287
57868
  html += "</li>";
57288
57869
 
57289
- html += liStr + "https://www.ncbi.nlm.nih.gov/structure' target='_blank'>Search Structure " + me.htmlCls.wifiStr + "</a></li>";
57290
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#citing' target='_blank'>Citing iCn3D</a></li>";
57870
+ //html += liStr + "https://www.ncbi.nlm.nih.gov/structure' target='_blank'>Search Structure " + me.htmlCls.wifiStr + "</a></li>";
57871
+ //html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#citing' target='_blank'>Citing iCn3D</a></li>";
57872
+ html += me.htmlCls.setHtmlCls.getMenuUrl('citing', me.htmlCls.baseUrl + "icn3d/icn3d.html#citing", "Citing iCn3D", undefined, 1);
57291
57873
 
57292
- html += "<li><span>Source Code</span>";
57874
+ //html += "<li><span>Source Code</span>";
57875
+ html += me.htmlCls.setHtmlCls.getMenuText('mn6_source', 'Source Code', undefined, 1, 1);
57293
57876
  html += "<ul>";
57294
- html += liStr + "https://github.com/ncbi/icn3d' target='_blank'>GitHub (browser) " + me.htmlCls.wifiStr + "</a></li>";
57295
- html += liStr + "https://www.npmjs.com/package/icn3d' target='_blank'>npm (Node.js) " + me.htmlCls.wifiStr + "</a></li>";
57296
- html += liStr + "https://pypi.org/project/icn3dpy' target='_blank'>Jupyter Notebook " + me.htmlCls.wifiStr + "</a></li>";
57877
+ html += me.htmlCls.setHtmlCls.getMenuUrl('github', "https://github.com/ncbi/icn3d", "GitHub (browser) " + me.htmlCls.wifiStr, 1, 2);
57878
+ html += me.htmlCls.setHtmlCls.getMenuUrl('npm', "https://www.npmjs.com/package/icn3d", "npm (Node.js) " + me.htmlCls.wifiStr, 1, 2);
57879
+ html += me.htmlCls.setHtmlCls.getMenuUrl('notebook', "https://pypi.org/project/icn3dpy", "Jupyter Notebook " + me.htmlCls.wifiStr, 1, 2);
57297
57880
  html += "</ul>";
57298
57881
  html += "</li>";
57299
57882
 
57300
- if(!me.cfg.simplemenu) {
57301
- html += "<li><span>Develop</span>";
57302
- html += "<ul>";
57303
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#HowToUse' target='_blank'>How to Embed</a></li>";
57304
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#datastructure' target='_blank'>Data Structure</a></li>";
57305
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#classstructure' target='_blank'>Class Structure</a></li>";
57306
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#addclass' target='_blank'>Add New Classes</a></li>";
57307
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#modifyfunction' target='_blank'>Modify Functions</a></li>";
57308
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#restfulapi' target='_blank'>RESTful APIs</a></li>";
57309
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#contributors' target='_blank'>Codeathon Contributors</a></li>";
57310
- html += "</ul>";
57311
- html += "</li>";
57312
- }
57883
+ //html += "<li><span>Develop</span>";
57884
+ html += me.htmlCls.setHtmlCls.getMenuText('mn6_develop', 'Develop', undefined, undefined, 1);
57885
+ html += "<ul>";
57886
+ html += me.htmlCls.setHtmlCls.getMenuUrl('dev_embedicn3d2', me.htmlCls.baseUrl + "icn3d/icn3d.html#HowToUse", "Embed iCn3D", undefined, 2);
57887
+ html += me.htmlCls.setHtmlCls.getMenuUrl('dev_urlpara', me.htmlCls.baseUrl + "icn3d/icn3d.html#parameters", "URL Parameters", undefined, 2);
57888
+ html += me.htmlCls.setHtmlCls.getMenuUrl('dev_command', me.htmlCls.baseUrl + "icn3d/icn3d.html#commands", "Commands", undefined, 2);
57889
+
57890
+ html += me.htmlCls.setHtmlCls.getMenuUrl('dev_datastru', me.htmlCls.baseUrl + "icn3d/icn3d.html#datastructure", "Data Structure", undefined, 2);
57891
+ html += me.htmlCls.setHtmlCls.getMenuUrl('dev_classstru', me.htmlCls.baseUrl + "icn3d/icn3d.html#classstructure", "Class Structure", undefined, 2);
57892
+ html += me.htmlCls.setHtmlCls.getMenuUrl('dev_addclass', me.htmlCls.baseUrl + "icn3d/icn3d.html#addclass", "Add New Classes", undefined, 2);
57893
+ html += me.htmlCls.setHtmlCls.getMenuUrl('dev_modfunc', me.htmlCls.baseUrl + "icn3d/icn3d.html#modifyfunction", "Modify Functions", undefined, 2);
57894
+ html += me.htmlCls.setHtmlCls.getMenuUrl('dev_restful', me.htmlCls.baseUrl + "icn3d/icn3d.html#restfulapi", "RESTful APIs", undefined, 2);
57895
+ html += me.htmlCls.setHtmlCls.getMenuUrl('dev_contributor', me.htmlCls.baseUrl + "icn3d/icn3d.html#contributors", "Codeathon Contributors", undefined, 2);
57896
+ html += "</ul>";
57897
+ html += "</li>";
57313
57898
 
57314
- html += liStr + me.htmlCls.baseUrl + "icn3d/docs/icn3d_help.html' target='_blank'>Help Doc " + me.htmlCls.wifiStr + "</a></li>";
57899
+ //html += liStr + me.htmlCls.baseUrl + "icn3d/docs/icn3d_help.html' target='_blank'>Help Doc " + me.htmlCls.wifiStr + "</a></li>";
57900
+ html += me.htmlCls.setHtmlCls.getMenuUrl('helpdoc', me.htmlCls.baseUrl + "icn3d/docs/icn3d_help.html", "Help Doc " + me.htmlCls.wifiStr, 1, 1);
57315
57901
 
57316
- html += "<li>-</li>";
57902
+ html += me.htmlCls.setHtmlCls.getMenuSep();
57317
57903
 
57318
- html += "<li><span>Transform Hints</span>";
57904
+ //html += "<li><span>Transform Hints</span>";
57905
+ html += me.htmlCls.setHtmlCls.getMenuText('mn6_tfhint', 'Transform Hints', undefined, 1, 1);
57319
57906
  html += "<ul>";
57320
- html += "<li><span>Rotate</span>";
57907
+ //html += "<li><span>Rotate</span>";
57908
+ html += me.htmlCls.setHtmlCls.getMenuText('mn6_rotate', 'Rotate', undefined, 1, 2);
57321
57909
  html += "<ul>";
57322
57910
  html += "<li>Left Mouse (Click & Drag)</li>";
57323
57911
  html += "<li>Key l: Left</li>";
@@ -57330,14 +57918,16 @@ class SetMenu {
57330
57918
  html += "<li>Shift + Key m: Down 90&deg;</li>";
57331
57919
  html += "</ul>";
57332
57920
  html += "</li>";
57333
- html += "<li><span>Zoom</span>";
57921
+ //html += "<li><span>Zoom</span>";
57922
+ html += me.htmlCls.setHtmlCls.getMenuText('mn6_zoom', 'Zoom', undefined, 1, 2);
57334
57923
  html += "<ul>";
57335
57924
  html += "<li>Middle Mouse <br>(Pinch & Spread)</li>";
57336
57925
  html += "<li>Key z: Zoom in</li>";
57337
57926
  html += "<li>Key x: Zoom out</li>";
57338
57927
  html += "</ul>";
57339
57928
  html += "</li>";
57340
- html += "<li><span>Translate</span>";
57929
+ //html += "<li><span>Translate</span>";
57930
+ html += me.htmlCls.setHtmlCls.getMenuText('mn6_translate', 'Translate', undefined, 1, 2);
57341
57931
  html += "<ul>";
57342
57932
  html += "<li>Right Mouse <br>(Two Finger Click & Drag)</li>";
57343
57933
  html += "</ul>";
@@ -57345,11 +57935,10 @@ class SetMenu {
57345
57935
  html += "</ul>";
57346
57936
  html += "</li>";
57347
57937
 
57348
- if(!me.cfg.simplemenu) {
57349
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#HowToUseStep5' target='_blank'>Selection Hints</a></li>";
57350
-
57351
- html += liStr + "https://support.nlm.nih.gov/support/create-case/' target='_blank'>Write to Help Desk</a></li>";
57352
- }
57938
+ //html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#HowToUseStep5' target='_blank'>Selection Hints</a></li>";
57939
+ html += me.htmlCls.setHtmlCls.getMenuUrl('selhints', me.htmlCls.baseUrl + "icn3d/icn3d.html#HowToUseStep5", "Selection Hints", undefined, 1);
57940
+ //html += liStr + "https://support.nlm.nih.gov/support/create-case/' target='_blank'>Write to Help Desk</a></li>";
57941
+ html += me.htmlCls.setHtmlCls.getMenuUrl('helpdesk', "https://support.nlm.nih.gov/support/create-case/", "Write to Help Desk", 1, 1);
57353
57942
 
57354
57943
  html += "<li><br/></li>";
57355
57944
  html += "</ul>";
@@ -58068,8 +58657,8 @@ class SetDialog {
58068
58657
  html += "</div>";
58069
58658
 
58070
58659
  html += me.htmlCls.divStr + "dl_foldseek' class='" + dialogClass + "' style='max-width:500px'>";
58071
- html += 'Note: You can search similar PDB or AlphaFold structures for any structure at the fast <a href="https://search.foldseek.com/search" target="_blank">Foldseek</a> web server. <br><br>Once you see the structure neighbors, you can view the alignment in iCn3D by inputing a list of chain IDs below. <br><br>The PDB chain IDs are the same as the record names such as "1hho_A". The AlphaFold chain IDs are the UniProt ID plus "_A". For example, the UniProt ID for the record name "AF-P69905-F1-model_v2" is "P69905".<br><br>';
58072
- html += "Chain ID List: " + me.htmlCls.inputTextStr + "id='" + me.pre + "foldseekchainids' value='P69905_A,P01942_A,1HHO_A' size=30> ";
58660
+ html += 'Note: You can search similar PDB or AlphaFold structures for any structure at the fast <a href="https://search.foldseek.com/search" target="_blank">Foldseek</a> web server. <br><br>Once you see the structure neighbors, you can view the alignment in iCn3D by inputing a list of PDB chain IDs or AlphaFold UniProt IDs below. <br><br>The PDB chain IDs are the same as the record names such as "1hho_A". The UniProt ID is the text between "AF-" and "-F1". For example, the UniProt ID for the record name "AF-P69905-F1-model_v3" is "P69905".<br><br>';
58661
+ html += "Chain ID List: " + me.htmlCls.inputTextStr + "id='" + me.pre + "foldseekchainids' value='P69905,P01942,1hho_A' size=30> ";
58073
58662
  html += me.htmlCls.buttonStr + "reload_foldseek'>Align</button>";
58074
58663
  html += "</div>";
58075
58664
 
@@ -58191,11 +58780,19 @@ class SetDialog {
58191
58780
  html += 'Please specify the mutations with a comma separated mutation list. Each mutation can be specified as "[PDB ID or AlphaFold UniProt ID]_[Chain ID]_[Residue Number]_[One Letter Mutatnt Residue]". E.g., the mutation of N501Y in the E chain of PDB 6M0J can be specified as "6M0J_E_501_Y". For AlphaFold structures, the "Chain ID" is "A".<br/><br/>';
58192
58781
  html += "<div style='display:inline-block; width:110px'>Mutations: </div>" + me.htmlCls.inputTextStr + "id='" + me.pre + "mutationids' value='6M0J_E_484_K,6M0J_E_501_Y,6M0J_E_417_N' size=50><br/><br/>";
58193
58782
 
58194
- html += "<b>Data Source</b>: <select id='" + me.pre + "idsource'>";
58195
- html += "<option value='mmdbid' selected>PDB ID</option>";
58196
- html += "<option value='afid'>AlphaFold UniProt ID</option>";
58197
- html += "</select><br/><br/>";
58198
-
58783
+ // html += "<b>Data Source</b>: <select id='" + me.pre + "idsource'>";
58784
+ // html += "<option value='mmdbid' selected>PDB ID</option>";
58785
+ // html += "<option value='afid'>AlphaFold UniProt ID</option>";
58786
+ // html += "</select><br/><br/>";
58787
+
58788
+ html += '<b>ID Type</b>: ';
58789
+ html += '<input type="radio" name="' + me.pre + 'idsource" id="' + me.pre + 'type_mmdbid" value="mmdbid" checked>PDB ID';
58790
+ html += '<input type="radio" name="' + me.pre + 'idsource" id="' + me.pre + 'type_afid" value="afid" style="margin-left:20px">AlphaFold UniProt ID<br><br>';
58791
+
58792
+ html += '<b>Show Mutation in</b>: ';
58793
+ html += '<input type="radio" name="' + me.pre + 'pdbsource" id="' + me.pre + 'showin_currentpage" value="currentpage">Current Page';
58794
+ html += '<input type="radio" name="' + me.pre + 'pdbsource" id="' + me.pre + 'showin_newpage" value="newpage" style="margin-left:20px" checked>New Page<br><br>';
58795
+
58199
58796
  html += me.htmlCls.buttonStr + "reload_mutation_3d' title='Show the mutations in 3D using the scap program'>3D with scap</button>";
58200
58797
  html += me.htmlCls.buttonStr + "reload_mutation_inter' style='margin-left:20px' title='Show the mutations in 3D and the change of interactions'>Interactions</button>";
58201
58798
  html += me.htmlCls.buttonStr + "reload_mutation_pdb' style='margin-left:20px' title='Show the mutations in 3D and export the PDB of the mutant within 10 angstrom'>PDB</button>";
@@ -58279,7 +58876,7 @@ class SetDialog {
58279
58876
  html += "</div>";
58280
58877
 
58281
58878
  html += me.htmlCls.divStr + "dl_yournote' class='" + dialogClass + "'>";
58282
- html += "Your note will be saved in the HTML file when you click \"File > Save Files > iCn3D PNG Image\".<br><br>";
58879
+ html += "Your note will be saved in the HTML file when you click \"File > Save File > iCn3D PNG Image\".<br><br>";
58283
58880
  html += "<textarea id='" + me.pre + "yournote' rows='5' style='width: 100%; height: " +(me.htmlCls.LOG_HEIGHT) + "px; padding: 0px; border: 0px;' placeholder='Enter your note here'></textarea><br>";
58284
58881
  html += me.htmlCls.buttonStr + "applyyournote'>Save</button>";
58285
58882
  html += "</div>";
@@ -58322,6 +58919,11 @@ class SetDialog {
58322
58919
  html += me.htmlCls.buttonStr + "reload_selectionfile' style='margin-top: 6px;'>Load</button>";
58323
58920
  html += "</div>";
58324
58921
 
58922
+ html += me.htmlCls.divStr + "dl_menuloadpref' class='" + dialogClass + "'>";
58923
+ html += "Preference file: " + me.htmlCls.inputFileStr + "id='" + me.pre + "menupreffile'><br/>";
58924
+ html += me.htmlCls.buttonStr + "reload_menupreffile' style='margin-top: 6px;'>Load</button>";
58925
+ html += "</div>";
58926
+
58325
58927
  html += me.htmlCls.divStr + "dl_dsn6' class='" + dialogClass + "'>";
58326
58928
  html += "<b>Note</b>: Always load a PDB file before loading DSN6 files. <br/><br/><br/>";
58327
58929
 
@@ -58816,6 +59418,15 @@ class SetDialog {
58816
59418
  html += me.htmlCls.setHtmlCls.setThicknessHtml('style');
58817
59419
  html += "</div>";
58818
59420
 
59421
+ html += me.htmlCls.divStr + "dl_menupref' class='" + dialogClass + "'>";
59422
+ html += "<b>Note</b>: The following parameters will be saved in cache. You just need to set them once. <br><br>";
59423
+ html += "<div id='" + me.pre + "menulist' style='max-width:500px; max-height:300px; overflow:scroll'></div><br><br>";
59424
+ html += me.htmlCls.spanNowrapStr + "" + me.htmlCls.buttonStr + "apply_menupref'>Apply</button></span>";
59425
+ html += me.htmlCls.spanNowrapStr + "" + me.htmlCls.buttonStr + "reset_menupref' style='margin-left:30px'>Reset to Simple Menus</button></span>";
59426
+ html += me.htmlCls.spanNowrapStr + "" + me.htmlCls.buttonStr + "reset_menupref_all' style='margin-left:30px'>Reset to All Menus</button></span>";
59427
+ html += me.htmlCls.spanNowrapStr + "" + me.htmlCls.buttonStr + "savepref' style='margin-left:30px'>Save Preferences</button></span>";
59428
+ html += "</div>";
59429
+
58819
59430
  html += me.htmlCls.divStr + "dl_addtrack' class='" + dialogClass + "'>";
58820
59431
  html += " <input type='hidden' id='" + me.pre + "track_chainid' value=''>";
58821
59432
 
@@ -59034,10 +59645,17 @@ class SetDialog {
59034
59645
  html += tmpStr1 + me.htmlCls.inputCheckStr + "id='" + me.pre + "anno_custom'>Custom" + me.htmlCls.space2 + "</span></td>";
59035
59646
  html += tmpStr2 + me.htmlCls.inputCheckStr + "id='" + me.pre + "anno_3dd'>3D Domains" + me.htmlCls.space2 + "</span></td>";
59036
59647
  html += tmpStr1 + me.htmlCls.inputCheckStr + "id='" + me.pre + "anno_snp'>SNPs" + me.htmlCls.space2 + "</span></td>";
59037
- html += tmpStr1 + me.htmlCls.inputCheckStr + "id='" + me.pre + "anno_interact'>Interactions" + me.htmlCls.space2 + "</span></td>";
59648
+
59649
+ // if(me.cfg.mmdbid != undefined || me.cfg.pdbid != undefined || me.cfg.mmtfid != undefined || me.cfg.mmcifid != undefined) { // PDB
59650
+ // html += tmpStr1 + me.htmlCls.inputCheckStr + "id='" + me.pre + "anno_ptm' disabled>PTM (UniProt)" + me.htmlCls.space2 + "</span></td>";
59651
+ // }
59652
+ // else {
59653
+ html += tmpStr1 + me.htmlCls.inputCheckStr + "id='" + me.pre + "anno_ptm'>PTM (UniProt)" + me.htmlCls.space2 + "</span></td>";
59654
+ // }
59038
59655
  html += "<td></td>";
59039
59656
  html += "</tr><tr>";
59040
59657
  html += tmpStr1 + me.htmlCls.inputCheckStr + "id='" + me.pre + "anno_ssbond'>Disulfide Bonds" + me.htmlCls.space2 + "</span></td>";
59658
+ html += tmpStr1 + me.htmlCls.inputCheckStr + "id='" + me.pre + "anno_interact'>Interactions" + me.htmlCls.space2 + "</span></td>";
59041
59659
  html += tmpStr1 + me.htmlCls.inputCheckStr + "id='" + me.pre + "anno_crosslink'>Cross-Linkages" + me.htmlCls.space2 + "</span></td>";
59042
59660
  if(me.cfg.opmid !== undefined) {
59043
59661
  html += "<td style='min-width:110px;'><span id='" + me.pre + "anno_transmemli' style='white-space:nowrap'>" + me.htmlCls.inputCheckStr + "id='" + me.pre + "anno_transmem'>Transmembrane" + me.htmlCls.space2 + "</span></td>";
@@ -59076,6 +59694,17 @@ class Events {
59076
59694
  }
59077
59695
  }
59078
59696
 
59697
+ convertUniProtInChains(alignment) { let me = this.icn3dui; me.icn3d;
59698
+ let idArray = alignment.split(',');
59699
+ let alignment_final = '';
59700
+ for(let i = 0, il = idArray.length; i < il; ++i) {
59701
+ alignment_final += (idArray[i].indexOf('_') != -1) ? idArray[i] : idArray[i] + '_A'; // AlphaFold ID
59702
+ if(i < il - 1) alignment_final += ',';
59703
+ }
59704
+
59705
+ return alignment_final;
59706
+ }
59707
+
59079
59708
  searchSeq() { let me = this.icn3dui, ic = me.icn3d;
59080
59709
  let select = $("#" + me.pre + "search_seq").val();
59081
59710
  if(isNaN(select) && select.indexOf('$') == -1 && select.indexOf('.') == -1 && select.indexOf(':') == -1 && select.indexOf('@') == -1) {
@@ -59414,10 +60043,7 @@ class Events {
59414
60043
  ic.hAtoms = ic.definedSetsCls.getAtomsFromNameArray(nameArray);
59415
60044
  }
59416
60045
 
59417
- // save the current selection
59418
- //ic.selectionCls.saveSelectionPrep();
59419
- //let name = 'realignSetsByStruct';
59420
- //ic.selectionCls.saveSelection(name, name);
60046
+ me.cfg.aligntool = 'vast';
59421
60047
 
59422
60048
  ic.realignParserCls.realignOnStructAlign();
59423
60049
  if(nameArray.length > 0) {
@@ -59549,8 +60175,16 @@ class Events {
59549
60175
  me.myEventCls.onIds("#" + me.pre + "reload_foldseek", "click", function(e) { me.icn3d;
59550
60176
  e.preventDefault();
59551
60177
  if(!me.cfg.notebook) dialog.dialog( "close" );
59552
- me.htmlCls.clickMenuCls.setLogCmd("load chainalignment " + $("#" + me.pre + "foldseekchainids").val(), true);
59553
- window.open(hostUrl + '?chainalign=' + $("#" + me.pre + "foldseekchainids").val(), '_self');
60178
+
60179
+ // me.htmlCls.clickMenuCls.setLogCmd("load chainalignment " + $("#" + me.pre + "foldseekchainids").val(), true);
60180
+ // window.open(hostUrl + '?chainalign=' + $("#" + me.pre + "foldseekchainids").val(), '_self');
60181
+
60182
+
60183
+ let alignment = $("#" + me.pre + "foldseekchainids").val();
60184
+ let alignment_final = thisClass.convertUniProtInChains(alignment);
60185
+
60186
+ me.htmlCls.clickMenuCls.setLogCmd("load chainalignment " + alignment_final, true);
60187
+ window.open(hostUrl + '?chainalign=' + alignment_final + '&aligntool=tmalign&showalignseq=1&bu=0', '_self');
59554
60188
  });
59555
60189
 
59556
60190
  me.myEventCls.onIds("#" + me.pre + "reload_mmtf", "click", function(e) { me.icn3d;
@@ -59692,12 +60326,7 @@ class Events {
59692
60326
  if(!me.cfg.notebook) dialog.dialog( "close" );
59693
60327
 
59694
60328
  let alignment = $("#" + me.pre + "chainalignids").val();
59695
- let idArray = alignment.split(',');
59696
- let alignment_final = '';
59697
- for(let i = 0, il = idArray.length; i < il; ++i) {
59698
- alignment_final += (idArray[i].indexOf('_') != -1) ? idArray[i] : idArray[i] + '_A'; // AlphaFold ID
59699
- if(i < il - 1) alignment_final += ',';
59700
- }
60329
+ let alignment_final = thisClass.convertUniProtInChains(alignment);
59701
60330
  let resalign = $("#" + me.pre + "resalignids").val();
59702
60331
  let predefinedres = $("#" + me.pre + "predefinedres").val().trim().replace(/\n/g, '; ');
59703
60332
  if(predefinedres && alignment_final.split(',').length - 1 != predefinedres.split('; ').length) {
@@ -59715,12 +60344,7 @@ class Events {
59715
60344
  if(!me.cfg.notebook) dialog.dialog( "close" );
59716
60345
 
59717
60346
  let alignment = $("#" + me.pre + "chainalignids").val();
59718
- let idArray = alignment.split(',');
59719
- let alignment_final = '';
59720
- for(let i = 0, il = idArray.length; i < il; ++i) {
59721
- alignment_final += (idArray[i].indexOf('_') != -1) ? idArray[i] : idArray[i] + '_A'; // AlphaFold ID
59722
- if(i < il - 1) alignment_final += ',';
59723
- }
60347
+ let alignment_final = thisClass.convertUniProtInChains(alignment);
59724
60348
 
59725
60349
  me.htmlCls.clickMenuCls.setLogCmd("load chains " + alignment_final + " on asymmetric unit | residues | resdef ", false);
59726
60350
  window.open(hostUrl + '?chainalign=' + alignment_final + '&resnum=&resdef=&showalignseq=1&bu=0', '_blank');
@@ -59731,12 +60355,7 @@ class Events {
59731
60355
  if(!me.cfg.notebook) dialog.dialog( "close" );
59732
60356
 
59733
60357
  let alignment = $("#" + me.pre + "chainalignids2").val();
59734
- let idArray = alignment.split(',');
59735
- let alignment_final = '';
59736
- for(let i = 0, il = idArray.length; i < il; ++i) {
59737
- alignment_final += (idArray[i].indexOf('_') != -1) ? idArray[i] : idArray[i] + '_A'; // AlphaFold ID
59738
- if(i < il - 1) alignment_final += ',';
59739
- }
60358
+ let alignment_final = thisClass.convertUniProtInChains(alignment);
59740
60359
  let resalign = $("#" + me.pre + "resalignids").val();
59741
60360
 
59742
60361
  me.htmlCls.clickMenuCls.setLogCmd("load chains " + alignment_final + " on asymmetric unit | residues " + resalign + " | resdef ", false);
@@ -59748,12 +60367,7 @@ class Events {
59748
60367
  if(!me.cfg.notebook) dialog.dialog( "close" );
59749
60368
 
59750
60369
  let alignment = $("#" + me.pre + "chainalignids3").val();
59751
- let idArray = alignment.split(',');
59752
- let alignment_final = '';
59753
- for(let i = 0, il = idArray.length; i < il; ++i) {
59754
- alignment_final += (idArray[i].indexOf('_') != -1) ? idArray[i] : idArray[i] + '_A'; // AlphaFold ID
59755
- if(i < il - 1) alignment_final += ',';
59756
- }
60370
+ let alignment_final = thisClass.convertUniProtInChains(alignment);
59757
60371
 
59758
60372
  let predefinedres = $("#" + me.pre + "predefinedres").val().trim().replace(/\n/g, '; ');
59759
60373
  if(predefinedres && alignment_final.split(',').length - 1 != predefinedres.split('; ').length) {
@@ -59770,66 +60384,133 @@ class Events {
59770
60384
  if(!me.cfg.notebook) dialog.dialog( "close" );
59771
60385
 
59772
60386
  let alignment = $("#" + me.pre + "chainalignids").val();
59773
- let idArray = alignment.split(',');
59774
- let alignment_final = '';
59775
- for(let i = 0, il = idArray.length; i < il; ++i) {
59776
- alignment_final += (idArray[i].indexOf('_') != -1) ? idArray[i] : idArray[i] + '_A'; // AlphaFold ID
59777
- if(i < il - 1) alignment_final += ',';
59778
- }
60387
+ let alignment_final = thisClass.convertUniProtInChains(alignment);
59779
60388
 
59780
60389
  me.htmlCls.clickMenuCls.setLogCmd("load chains " + alignment_final + " on asymmetric unit | residues | resdef | align tmalign", false);
59781
60390
  window.open(hostUrl + '?chainalign=' + alignment_final + '&aligntool=tmalign&resnum=&resdef=&showalignseq=1&bu=0', '_blank');
59782
60391
  });
59783
60392
 
59784
- me.myEventCls.onIds("#" + me.pre + "reload_mutation_3d", "click", function(e) { me.icn3d;
60393
+ me.myEventCls.onIds("#" + me.pre + "reload_mutation_3d", "click", function(e) { let ic = me.icn3d;
59785
60394
  e.preventDefault();
59786
60395
  if(!me.cfg.notebook) dialog.dialog( "close" );
59787
60396
  let mutationids = $("#" + me.pre + "mutationids").val();
59788
- let idsource = $("#" + me.pre + "idsource").val();
59789
- let mmdbid = mutationids.substr(0, mutationids.indexOf('_'));
59790
- me.htmlCls.clickMenuCls.setLogCmd("3d of mutation " + mutationids, false);
59791
- //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?mmdbid=' + mmdbid + '&command=scap 3d ' + mutationids + '; select displayed set', '_blank');
59792
- window.open(hostUrl + '?' + idsource + '=' + mmdbid + '&command=scap 3d ' + mutationids + '; select displayed set', '_blank');
60397
+ //let idsource = $("#" + me.pre + "idsource").val();
60398
+ let idsource, pdbsource;
60399
+ if($("#" + me.pre + "type_mmdbid").is(":checked")) {
60400
+ idsource = 'mmdbid';
60401
+ }
60402
+ else {
60403
+ idsource = 'afid';
60404
+ }
60405
+ if($("#" + me.pre + "showin_currentpage").is(":checked")) {
60406
+ pdbsource = 'currentpage';
60407
+ }
60408
+ else {
60409
+ pdbsource = 'newpage';
60410
+ }
60411
+
60412
+ if(pdbsource == 'currentpage') {
60413
+ let snp = mutationids;
60414
+
60415
+ ic.scapCls.retrieveScap(snp);
60416
+ me.htmlCls.clickMenuCls.setLogCmd('scap 3d ' + snp, true);
60417
+ me.htmlCls.clickMenuCls.setLogCmd("select displayed set", true);
60418
+ }
60419
+ else {
60420
+ let mmdbid = mutationids.substr(0, mutationids.indexOf('_'));
60421
+ me.htmlCls.clickMenuCls.setLogCmd("3d of mutation " + mutationids, false);
60422
+ window.open(hostUrl + '?' + idsource + '=' + mmdbid + '&command=scap 3d ' + mutationids + '; select displayed set', '_blank');
60423
+ }
59793
60424
  });
59794
60425
 
59795
- me.myEventCls.onIds("#" + me.pre + "reload_mutation_pdb", "click", function(e) { me.icn3d;
60426
+ me.myEventCls.onIds("#" + me.pre + "reload_mutation_pdb", "click", function(e) { let ic = me.icn3d;
59796
60427
  e.preventDefault();
59797
60428
  if(!me.cfg.notebook) dialog.dialog( "close" );
59798
60429
  let mutationids = $("#" + me.pre + "mutationids").val();
59799
- let idsource = $("#" + me.pre + "idsource").val();
59800
- let mmdbid = mutationids.substr(0, mutationids.indexOf('_'));
59801
- me.htmlCls.clickMenuCls.setLogCmd("pdb of mutation " + mutationids, false);
59802
- //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?mmdbid=' + mmdbid + '&command=scap pdb ' + mutationids + '; select displayed set', '_blank');
59803
- window.open(hostUrl + '?' + idsource + '=' + mmdbid + '&command=scap pdb ' + mutationids + '; select displayed set', '_blank');
60430
+ //let idsource = $("#" + me.pre + "idsource").val();
60431
+ let idsource, pdbsource;
60432
+ if($("#" + me.pre + "type_mmdbid").is(":checked")) {
60433
+ idsource = 'mmdbid';
60434
+ }
60435
+ else {
60436
+ idsource = 'afid';
60437
+ }
60438
+ if($("#" + me.pre + "showin_currentpage").is(":checked")) {
60439
+ pdbsource = 'currentpage';
60440
+ }
60441
+ else {
60442
+ pdbsource = 'newpage';
60443
+ }
60444
+
60445
+ if(pdbsource == 'currentpage') {
60446
+ let snp = mutationids;
60447
+
60448
+ let bPdb = true;
60449
+ ic.scapCls.retrieveScap(snp, undefined, bPdb);
60450
+ me.htmlCls.clickMenuCls.setLogCmd('scap pdb ' + snp, true);
60451
+ }
60452
+ else {
60453
+ let mmdbid = mutationids.substr(0, mutationids.indexOf('_'));
60454
+ me.htmlCls.clickMenuCls.setLogCmd("pdb of mutation " + mutationids, false);
60455
+ window.open(hostUrl + '?' + idsource + '=' + mmdbid + '&command=scap pdb ' + mutationids + '; select displayed set', '_blank');
60456
+ }
59804
60457
  });
59805
60458
 
59806
60459
  me.myEventCls.onIds("#" + me.pre + "reload_mutation_inter", "click", function(e) { let ic = me.icn3d;
59807
60460
  e.preventDefault();
59808
60461
  if(!me.cfg.notebook) dialog.dialog( "close" );
59809
60462
  let mutationids = $("#" + me.pre + "mutationids").val();
59810
- let idsource = $("#" + me.pre + "idsource").val();
59811
-
59812
- let mutationArray = mutationids.split(',');
59813
- let residArray = [];
59814
- for(let i = 0, il = mutationArray.length; i < il; ++i) {
59815
- let pos = mutationArray[i].lastIndexOf('_');
59816
- let resid = mutationArray[i].substr(0, pos);
59817
- residArray.push(resid);
60463
+ //let idsource = $("#" + me.pre + "idsource").val();
60464
+ let idsource, pdbsource;
60465
+ if($("#" + me.pre + "type_mmdbid").is(":checked")) {
60466
+ idsource = 'mmdbid';
60467
+ }
60468
+ else {
60469
+ idsource = 'afid';
59818
60470
  }
60471
+ if($("#" + me.pre + "showin_currentpage").is(":checked")) {
60472
+ pdbsource = 'currentpage';
60473
+ }
60474
+ else {
60475
+ pdbsource = 'newpage';
60476
+ }
59819
60477
 
59820
- let mmdbid = mutationids.substr(0, mutationids.indexOf('_'));
60478
+ if(pdbsource == 'currentpage') {
60479
+ let snp = mutationids;
59821
60480
 
59822
- // if no structures are loaded yet
59823
- if(!ic.structures) {
59824
- ic.structures = {};
59825
- ic.structures[mmdbid] = 1;
60481
+ let bInteraction = true;
60482
+ ic.scapCls.retrieveScap(snp, bInteraction);
60483
+ me.htmlCls.clickMenuCls.setLogCmd('scap interaction ' + snp, true);
60484
+
60485
+ let idArray = snp.split('_'); //stru_chain_resi_snp
60486
+ let select = '.' + idArray[1] + ':' + idArray[2];
60487
+ let name = 'snp_' + idArray[1] + '_' + idArray[2];
60488
+ me.htmlCls.clickMenuCls.setLogCmd("select " + select + " | name " + name, true);
60489
+ me.htmlCls.clickMenuCls.setLogCmd("line graph interaction pairs | selected non-selected | hbonds,salt bridge,interactions,halogen,pi-cation,pi-stacking | false | threshold 3.8 6 4 3.8 6 5.5", true);
60490
+ me.htmlCls.clickMenuCls.setLogCmd("adjust dialog dl_linegraph", true);
60491
+ me.htmlCls.clickMenuCls.setLogCmd("select displayed set", true);
59826
60492
  }
59827
- ic.resid2specCls.residueids2spec(residArray);
60493
+ else {
60494
+ let mutationArray = mutationids.split(',');
60495
+ let residArray = [];
60496
+ for(let i = 0, il = mutationArray.length; i < il; ++i) {
60497
+ let pos = mutationArray[i].lastIndexOf('_');
60498
+ let resid = mutationArray[i].substr(0, pos);
60499
+ residArray.push(resid);
60500
+ }
60501
+
60502
+ let mmdbid = mutationids.substr(0, mutationids.indexOf('_'));
60503
+
60504
+ // if no structures are loaded yet
60505
+ if(!ic.structures) {
60506
+ ic.structures = {};
60507
+ ic.structures[mmdbid] = 1;
60508
+ }
60509
+ ic.resid2specCls.residueids2spec(residArray);
59828
60510
 
59829
- me.htmlCls.clickMenuCls.setLogCmd("interaction change of mutation " + mutationids, false);
59830
- //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?mmdbid=' + mmdbid + '&command=scap interaction ' + mutationids + '; select ' + selectSpec + ' | name test; line graph interaction pairs | selected non-selected | hbonds,salt bridge,interactions,halogen,pi-cation,pi-stacking | false | threshold 3.8 6 4 3.8 6 5.5; adjust dialog dl_linegraph; select displayed set', '_blank');
59831
- //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?mmdbid=' + mmdbid + '&command=scap interaction ' + mutationids, '_blank');
59832
- window.open(hostUrl + '?' + idsource + '=' + mmdbid + '&command=scap interaction ' + mutationids, '_blank');
60511
+ me.htmlCls.clickMenuCls.setLogCmd("interaction change of mutation " + mutationids, false);
60512
+ window.open(hostUrl + '?' + idsource + '=' + mmdbid + '&command=scap interaction ' + mutationids, '_blank');
60513
+ }
59833
60514
  });
59834
60515
 
59835
60516
  // },
@@ -61660,26 +62341,68 @@ class SetHtml {
61660
62341
  this.icn3dui = icn3dui;
61661
62342
  }
61662
62343
 
61663
- getLink(id, text) { let me = this.icn3dui; me.icn3d;
62344
+ getLink(id, text, bSimpleMenu, selType) { let me = this.icn3dui; me.icn3d;
62345
+ me.htmlCls.allMenus[me.pre + id] = text;
62346
+ if(selType) me.htmlCls.allMenusSel[me.pre + id] = selType;
62347
+ if(bSimpleMenu) me.htmlCls.simpleMenus[me.pre + id] = 1;
62348
+
61664
62349
  return "<li><span id='" + me.pre + id + "' class='icn3d-link'>" + text + "</span></li>";
61665
62350
  }
61666
62351
 
61667
- getLinkWrapper(id, text, wrapper) { let me = this.icn3dui; me.icn3d;
62352
+ // a group of menus
62353
+ getMenuText(id, text, classname, bSimpleMenu, selType) { let me = this.icn3dui; me.icn3d;
62354
+ me.htmlCls.allMenus[me.pre + id] = text;
62355
+ if(selType) me.htmlCls.allMenusSel[me.pre + id] = selType;
62356
+ if(bSimpleMenu) me.htmlCls.simpleMenus[me.pre + id] = 1;
62357
+
62358
+ let styleStr = (classname == 'icn3d-menupd') ? " style='padding-left:1.5em!important;'" : "";
62359
+
62360
+ // no ending "</li>"" since this is usually the start of a group of menus
62361
+ return "<li><span id='" + me.pre + id + "'" + styleStr + ">" + text + "</span>";
62362
+ }
62363
+
62364
+ getMenuUrl(id, url, text, bSimpleMenu, selType) { let me = this.icn3dui; me.icn3d;
62365
+ me.htmlCls.allMenus[me.pre + id] = text;
62366
+ if(selType) me.htmlCls.allMenusSel[me.pre + id] = selType;
62367
+ if(bSimpleMenu) me.htmlCls.simpleMenus[me.pre + id] = 1;
62368
+
62369
+ return "<li><a id='" + me.pre + id + "' href='" + url + "' target='_blank'>" + text + "</a></li>";
62370
+ }
62371
+
62372
+ getMenuSep() { let me = this.icn3dui; me.icn3d;
62373
+ return "<li class='icn3d-menusep'>-</li>";
62374
+ }
62375
+
62376
+ getLinkWrapper(id, text, wrapper, bSimpleMenu, selType) { let me = this.icn3dui; me.icn3d;
62377
+ me.htmlCls.allMenus[me.pre + id] = text;
62378
+ if(selType) me.htmlCls.allMenusSel[me.pre + id] = selType;
62379
+ if(bSimpleMenu) me.htmlCls.simpleMenus[me.pre + id] = 1;
62380
+
61668
62381
  return "<li id='" + me.pre + wrapper + "'><span id='" + me.pre + id + "' class='icn3d-link'>" + text + "</span></li>";
61669
62382
  }
61670
62383
 
61671
- getRadio(radioid, id, text, bChecked) { let me = this.icn3dui; me.icn3d;
62384
+ getRadio(radioid, id, text, bChecked, bSimpleMenu, selType) { let me = this.icn3dui; me.icn3d;
62385
+ me.htmlCls.allMenus[me.pre + id] = text;
62386
+ if(selType) me.htmlCls.allMenusSel[me.pre + id] = selType;
62387
+ if(bSimpleMenu) me.htmlCls.simpleMenus[me.pre + id] = 1;
62388
+
61672
62389
  let checkedStr =(bChecked) ? ' checked' : '';
61673
62390
 
61674
62391
  //https://stackoverflow.com/questions/17541614/use-images-instead-of-radio-buttons/17541916
61675
- return "<li><label for='" + me.pre + id + "' class='icn3d-rad'>" + me.htmlCls.inputRadioStr + "name='" + me.pre + radioid + "' " + "class='" + me.pre + radioid + "' " + "v='" + text + "' id='" + me.pre + id + "'" + checkedStr + "><span class='ui-icon ui-icon-blank'></span> <span class='icn3d-rad-text'>" + text + "</span></label></li>";
62392
+ //return "<li><label for='" + me.pre + id + "' class='icn3d-rad'>" + me.htmlCls.inputRadioStr + "name='" + me.pre + radioid + "' " + "class='" + me.pre + radioid + "' " + "v='" + text + "' id='" + me.pre + id + "'" + checkedStr + "><span class='ui-icon ui-icon-blank'></span> <span class='icn3d-rad-text'>" + text + "</span></label></li>";
62393
+ return "<li><label id='" + me.pre + id + "' class='icn3d-rad'>" + me.htmlCls.inputRadioStr + "name='" + me.pre + radioid + "' " + "class='" + me.pre + radioid + "' " + "v='" + text + "'" + checkedStr + "><span class='ui-icon ui-icon-blank'></span> <span class='icn3d-rad-text'>" + text + "</span></label></li>";
61676
62394
  }
61677
62395
 
61678
- getRadioColor(radioid, id, text, color, bChecked) { let me = this.icn3dui; me.icn3d;
62396
+ getRadioColor(radioid, id, text, color, bChecked, bSimpleMenu, selType) { let me = this.icn3dui; me.icn3d;
62397
+ me.htmlCls.allMenus[me.pre + id] = text;
62398
+ if(selType) me.htmlCls.allMenusSel[me.pre + id] = selType;
62399
+ if(bSimpleMenu) me.htmlCls.simpleMenus[me.pre + id] = 1;
62400
+
61679
62401
  let checkedStr =(bChecked) ? ' checked' : '';
61680
62402
 
61681
62403
  //https://stackoverflow.com/questions/17541614/use-images-instead-of-radio-buttons/17541916
61682
- return "<li><label for='" + me.pre + id + "' class='icn3d-rad'>" + me.htmlCls.inputRadioStr + "name='" + me.pre + radioid + "' id='" + me.pre + id + "'" + checkedStr + "><span class='ui-icon ui-icon-blank'></span> <span class='icn3d-color-rad-text' color='" + color + "'><span style='background-color:#" + color + "'>" + me.htmlCls.space3 + "</span> " + text + "</span></label></li>";
62404
+ //return "<li><label for='" + me.pre + id + "' class='icn3d-rad'>" + me.htmlCls.inputRadioStr + "name='" + me.pre + radioid + "' id='" + me.pre + id + "'" + checkedStr + "><span class='ui-icon ui-icon-blank'></span> <span class='icn3d-color-rad-text' color='" + color + "'><span style='background-color:#" + color + "'>" + me.htmlCls.space3 + "</span> " + text + "</span></label></li>";
62405
+ return "<li><label id='" + me.pre + id + "' class='icn3d-rad'>" + me.htmlCls.inputRadioStr + "name='" + me.pre + radioid + "'" + checkedStr + "><span class='ui-icon ui-icon-blank'></span> <span class='icn3d-color-rad-text' color='" + color + "'><span style='background-color:#" + color + "'>" + me.htmlCls.space3 + "</span> " + text + "</span></label></li>";
61683
62406
  }
61684
62407
 
61685
62408
  setAdvanced(index) { let me = this.icn3dui; me.icn3d;
@@ -62576,6 +63299,11 @@ class Html {
62576
63299
  this.opts = {};
62577
63300
  this.opts['background'] = 'black'; //transparent, black, grey, white
62578
63301
 
63302
+ this.allMenus = {};
63303
+ this.allMenusSel= {}; // Selectable menus
63304
+ this.simpleMenus = {};
63305
+ this.shownMenus = {};
63306
+
62579
63307
  this.WIDTH = 400; // total width of view area
62580
63308
  this.HEIGHT = 400; // total height of view area
62581
63309
  this.RESIDUE_WIDTH = 10; // sequences
@@ -65512,7 +66240,7 @@ class iCn3D {
65512
66240
  if(bWebGL){
65513
66241
  //https://discourse.threejs.org/t/three-js-r128-ext-frag-depth-and-angle-instanced-arrays-extensions-are-not-supported/26037
65514
66242
  //this.renderer = new THREE.WebGL1Renderer({
65515
- if ( bWebGL2 && bVR) {
66243
+ if ( bWebGL2 && bVR) {
65516
66244
  this.renderer = new THREE.WebGLRenderer({
65517
66245
  canvas: this.oriContainer.get(0), //this.container.get(0),
65518
66246
  antialias: true,
@@ -65879,6 +66607,7 @@ class iCn3D {
65879
66607
 
65880
66608
  this.annoCddSiteCls = new AnnoCddSite(this);
65881
66609
  this.annoContactCls = new AnnoContact(this);
66610
+ this.annoPTMCls = new AnnoPTM(this);
65882
66611
  this.annoCrossLinkCls = new AnnoCrossLink(this);
65883
66612
  this.annoDomainCls = new AnnoDomain(this);
65884
66613
  this.annoSnpClinVarCls = new AnnoSnpClinVar(this);
@@ -66126,7 +66855,7 @@ iCn3D.prototype.resetConfig = function () { let ic = this, me = ic.icn3dui;
66126
66855
  }
66127
66856
 
66128
66857
  if(me.cfg.blast_rep_id !== undefined) this.opts['color'] = 'conservation';
66129
- if(me.cfg.mmdbafid !== undefined) this.opts['color'] = 'structure';
66858
+ if(me.cfg.mmdbafid !== undefined && ic.structures) ic.opts['color'] = (Object.keys(ic.structures).length == 1) ? 'chain' : 'structure';
66130
66859
 
66131
66860
  if(me.cfg.options !== undefined) $.extend(this.opts, me.cfg.options);
66132
66861
  };
@@ -66143,7 +66872,7 @@ class iCn3DUI {
66143
66872
  //even when multiple iCn3D viewers are shown together.
66144
66873
  this.pre = this.cfg.divid + "_";
66145
66874
 
66146
- this.REVISION = '3.13.2';
66875
+ this.REVISION = '3.15.0';
66147
66876
 
66148
66877
  // In nodejs, iCn3D defines "window = {navigator: {}}"
66149
66878
  this.bNode = (Object.keys(window).length < 2) ? true : false;
@@ -66155,7 +66884,7 @@ class iCn3DUI {
66155
66884
  if(this.cfg.showmenu === undefined) this.cfg.showmenu = true;
66156
66885
  if(this.cfg.showtitle === undefined) this.cfg.showtitle = true;
66157
66886
  if(this.cfg.showcommand === undefined) this.cfg.showcommand = true;
66158
- if(this.cfg.simplemenu === undefined) this.cfg.simplemenu = false;
66887
+ //if(this.cfg.simplemenu === undefined) this.cfg.simplemenu = false;
66159
66888
  if(this.cfg.mobilemenu === undefined) this.cfg.mobilemenu = false;
66160
66889
  if(this.cfg.closepopup === undefined) this.cfg.closepopup = false;
66161
66890
  if(this.cfg.showanno === undefined) this.cfg.showanno = false;
@@ -66309,6 +67038,10 @@ iCn3DUI.prototype.show3DStructure = function(pdbStr) { let me = this;
66309
67038
  ic.molTitle = '';
66310
67039
  ic.loadCmd;
66311
67040
 
67041
+ // set menus
67042
+ me.htmlCls.clickMenuCls.getShownMenusFromCookie();
67043
+ me.htmlCls.clickMenuCls.applyShownMenus();
67044
+
66312
67045
  if(pdbStr) { // input pdbStr
66313
67046
  ic.init();
66314
67047