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.module.js CHANGED
@@ -5074,6 +5074,10 @@ class UtilsCls {
5074
5074
  return window.sessionStorage;
5075
5075
  }
5076
5076
 
5077
+ isLocalStorageSupported() { this.icn3dui;
5078
+ return window.localStorage;
5079
+ }
5080
+
5077
5081
  // http://stackoverflow.com/questions/5623838/rgb-to-hex-and-hex-to-rgb
5078
5082
  hexToRgb(hex, a) { this.icn3dui;
5079
5083
  let result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
@@ -8387,15 +8391,16 @@ class Strand {
8387
8391
  }
8388
8392
 
8389
8393
  let maxDist = 6.0;
8390
- //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);
8391
- 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);
8394
+ 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);
8395
+ // The following code didn't work to select one residue
8396
+ // 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);
8392
8397
 
8393
- if(bBrokenSs && atom.ss === 'sheet') {
8394
- bSheetSegment = true;
8395
- }
8396
- else if(bBrokenSs && atom.ss === 'helix') {
8397
- bHelixSegment = true;
8398
- }
8398
+ // if(bBrokenSs && atom.ss === 'sheet') {
8399
+ // bSheetSegment = true;
8400
+ // }
8401
+ // else if(bBrokenSs && atom.ss === 'helix') {
8402
+ // bHelixSegment = true;
8403
+ // }
8399
8404
 
8400
8405
  if ((atom.ssbegin || atom.ssend || (drawnResidueCount === totalResidueCount - 1) || bBrokenSs) && pnts[0].length > 0 && bSameChain) {
8401
8406
  let atomName = 'CA';
@@ -12773,7 +12778,7 @@ class ShareLink {
12773
12778
  if(key === 'showtitle' && value === true) continue;
12774
12779
  if(key === 'showcommand' && value === true) continue;
12775
12780
 
12776
- if(key === 'simplemenu' && value === false) continue;
12781
+ //if(key === 'simplemenu' && value === false) continue;
12777
12782
  if(key === 'mobilemenu' && value === false) continue;
12778
12783
  //if(key === 'closepopup' && value === false) continue;
12779
12784
  if(key === 'showanno' && value === false) continue;
@@ -14682,7 +14687,10 @@ class DefinedSets {
14682
14687
  ic.hAtoms = {};
14683
14688
  this.setHAtomsFromSets(orArray, 'or');
14684
14689
 
14685
- if(Object.keys(ic.hAtoms).length == 0) ic.hAtoms = me.hashUtilsCls.cloneHash(ic.atoms);
14690
+ if(Object.keys(ic.hAtoms).length == 0) {
14691
+ //ic.hAtoms = me.hashUtilsCls.cloneHash(ic.atoms);
14692
+ ic.hAtoms = me.hashUtilsCls.cloneHash(ic.dAtoms);
14693
+ }
14686
14694
  this.setHAtomsFromSets(andArray, 'and');
14687
14695
 
14688
14696
  this.setHAtomsFromSets(notArray, 'not');
@@ -18762,7 +18770,7 @@ class SetColor {
18762
18770
  break;
18763
18771
 
18764
18772
  case 'chain':
18765
- if(ic.chainsColor !== undefined && Object.keys(ic.chainsColor).length > 0) { // mmdb input
18773
+ if(ic.chainsColor !== undefined && Object.keys(ic.chainsColor).length > 0) { // mmdb input
18766
18774
  this.setMmdbChainColor();
18767
18775
  }
18768
18776
  else {
@@ -23556,7 +23564,7 @@ class Dssp {
23556
23564
 
23557
23565
  ic.pdbParserCls.loadPdbDataRender(bAppend);
23558
23566
 
23559
- if(ic.deferredMmdbaf !== undefined) ic.deferredMmdbaf.resolve();
23567
+ //if(ic.deferredMmdbaf !== undefined) ic.deferredMmdbaf.resolve();
23560
23568
  if(ic.deferredSecondary !== undefined) ic.deferredSecondary.resolve();
23561
23569
  });
23562
23570
  }
@@ -23675,7 +23683,7 @@ class Dssp {
23675
23683
 
23676
23684
  ic.pdbParserCls.loadPdbDataRender(bAppend);
23677
23685
 
23678
- if(ic.deferredMmdbaf !== undefined) ic.deferredMmdbaf.resolve();
23686
+ //if(ic.deferredMmdbaf !== undefined) ic.deferredMmdbaf.resolve();
23679
23687
  if(ic.deferredSecondary !== undefined) ic.deferredSecondary.resolve();
23680
23688
  }
23681
23689
  }
@@ -23696,7 +23704,7 @@ class PdbParser {
23696
23704
  let url, dataType;
23697
23705
 
23698
23706
  if(bAf) {
23699
- url = "https://alphafold.ebi.ac.uk/files/AF-" + pdbid + "-F1-model_v2.pdb";
23707
+ url = "https://alphafold.ebi.ac.uk/files/AF-" + pdbid + "-F1-model_v3.pdb";
23700
23708
  ic.ParserUtilsCls.setYourNote(pdbid.toUpperCase() + '(AlphaFold) in iCn3D');
23701
23709
  }
23702
23710
  else {
@@ -23840,9 +23848,6 @@ class PdbParser {
23840
23848
 
23841
23849
  ic.asuCnt = ic.biomtMatrices.length;
23842
23850
  }
23843
- else {
23844
- $("#" + ic.pre + "assemblyWrapper").hide();
23845
- }
23846
23851
 
23847
23852
  if(ic.emd !== undefined) {
23848
23853
  $("#" + ic.pre + "mapWrapper1").hide();
@@ -24021,9 +24026,6 @@ class MmtfParser {
24021
24026
 
24022
24027
  ic.asuCnt = ic.biomtMatrices.length;
24023
24028
  }
24024
- else {
24025
- $("#" + ic.pre + "assemblyWrapper").hide();
24026
- }
24027
24029
 
24028
24030
  let oriindex2serial = {};
24029
24031
 
@@ -24987,7 +24989,7 @@ class MmdbParser {
24987
24989
 
24988
24990
  let molid2rescount = data.moleculeInfor;
24989
24991
  let molid2color = {}, chain2molid = {}, molid2chain = {};
24990
- let chainNameHash = {};
24992
+ let chainNameHash = {};
24991
24993
  for(let i in molid2rescount) {
24992
24994
  if(Object.keys(molid2rescount[i]).length === 0) continue;
24993
24995
 
@@ -25007,7 +25009,7 @@ class MmdbParser {
25007
25009
  chain2molid[chain] = i;
25008
25010
  molid2chain[i] = chain;
25009
25011
 
25010
- ic.chainsColor[chain] =(type !== undefined) ? me.parasCls.thr(me.htmlCls.GREY8) : me.parasCls.thr(color);
25012
+ ic.chainsColor[chain] = (type !== undefined && !me.cfg.mmdbafid) ? me.parasCls.thr(me.htmlCls.GREY8) : me.parasCls.thr(color);
25011
25013
 
25012
25014
  let geneId =(molid2rescount[i].geneId === undefined) ? '' : molid2rescount[i].geneId;
25013
25015
  let geneSymbol =(molid2rescount[i].geneSymbol === undefined) ? '' : molid2rescount[i].geneSymbol;
@@ -25172,10 +25174,6 @@ class MmdbParser {
25172
25174
  $("#" + ic.pre + "assemblyWrapper").show();
25173
25175
  //ic.bAssembly = true;
25174
25176
  }
25175
- else {
25176
- $("#" + ic.pre + "assemblyWrapper").hide();
25177
- //ic.bAssembly = false;
25178
- }
25179
25177
 
25180
25178
  if(ic.emd !== undefined) {
25181
25179
  $("#" + ic.pre + "mapWrapper1").hide();
@@ -26579,7 +26577,7 @@ class ChainalignParser {
26579
26577
 
26580
26578
  let url_t;
26581
26579
  if(ic.mmdbid_t.length > 5) {
26582
- url_t = "https://alphafold.ebi.ac.uk/files/AF-" + ic.mmdbid_t + "-F1-model_v2.pdb";
26580
+ url_t = "https://alphafold.ebi.ac.uk/files/AF-" + ic.mmdbid_t + "-F1-model_v3.pdb";
26583
26581
 
26584
26582
  targetAjax = $.ajax({
26585
26583
  url: url_t,
@@ -26617,7 +26615,7 @@ class ChainalignParser {
26617
26615
 
26618
26616
  let url_q, queryAjax;
26619
26617
  if(ic.mmdbid_q.length > 5) {
26620
- url_q = "https://alphafold.ebi.ac.uk/files/AF-" + ic.mmdbid_q + "-F1-model_v2.pdb";
26618
+ url_q = "https://alphafold.ebi.ac.uk/files/AF-" + ic.mmdbid_q + "-F1-model_v3.pdb";
26621
26619
 
26622
26620
  queryAjax = $.ajax({
26623
26621
  url: url_q,
@@ -26920,7 +26918,7 @@ class ChainalignParser {
26920
26918
  let structure = ic.structArray[i];
26921
26919
 
26922
26920
  if(isNaN(structure) && structure.length > 5) {
26923
- url_t = "https://alphafold.ebi.ac.uk/files/AF-" + ic.structArray[i] + "-F1-model_v2.pdb";
26921
+ url_t = "https://alphafold.ebi.ac.uk/files/AF-" + ic.structArray[i] + "-F1-model_v3.pdb";
26924
26922
 
26925
26923
  targetAjax = $.ajax({
26926
26924
  url: url_t,
@@ -26985,6 +26983,8 @@ class ChainalignParser {
26985
26983
  let hAtoms = {}, hAtomsTmp = {};
26986
26984
  let bLastQuery = false;
26987
26985
 
26986
+ ic.opts['color'] = (structArray.length == 1) ? 'chain' : 'structure';
26987
+
26988
26988
  for(let i = 0, il = structArray.length; i < il; ++i) {
26989
26989
  if(i == structArray.length - 1) bLastQuery = true;
26990
26990
 
@@ -26997,10 +26997,11 @@ class ChainalignParser {
26997
26997
  targetOrQuery = 'query';
26998
26998
  bAppend = true;
26999
26999
  }
27000
-
27000
+
27001
27001
  //if(structArray[i].length > 4) {
27002
27002
  if(structArray[i].length > 5) { // PDB ID plus postfix could be 5
27003
- let bNoDssp = true;
27003
+ //let bNoDssp = true;
27004
+ let bNoDssp = false; // get secondary structure info
27004
27005
  hAtomsTmp = ic.pdbParserCls.loadPdbData(queryDataArray[i], structArray[i], false, bAppend, targetOrQuery, bLastQuery, bNoDssp);
27005
27006
  }
27006
27007
  else {
@@ -27013,7 +27014,7 @@ class ChainalignParser {
27013
27014
 
27014
27015
  // calculate secondary structures with applyCommandDssp
27015
27016
  if(bQuery && me.cfg.matchedchains) {
27016
- $.when(ic.pdbParserCls.applyCommandDssp(true)).then(function() {
27017
+ // $.when(ic.pdbParserCls.applyCommandDssp(true)).then(function() {
27017
27018
  let bRealign = true, bPredefined = true;
27018
27019
  ic.realignParserCls.realignChainOnSeqAlign(undefined, ic.chainidArray, bRealign, bPredefined);
27019
27020
  // reset annotations
@@ -27022,11 +27023,10 @@ class ChainalignParser {
27022
27023
  if($('#' + ic.pre + 'dl_selectannotations').dialog( 'isOpen' )) {
27023
27024
  $('#' + ic.pre + 'dl_selectannotations').dialog( 'close' );
27024
27025
  }
27025
- });
27026
- }
27027
- else {
27028
- ic.pdbParserCls.applyCommandDssp(true);
27026
+ //});
27029
27027
  }
27028
+
27029
+ if(ic.deferredMmdbaf !== undefined) ic.deferredMmdbaf.resolve();
27030
27030
  }
27031
27031
  }
27032
27032
 
@@ -28474,6 +28474,24 @@ class LoadScript {
28474
28474
 
28475
28475
  return;
28476
28476
  }
28477
+ else if(ic.commands[i].trim().indexOf('set annotation ptm') == 0 ) { // the command may have "|||{"factor"...
28478
+ let strArray = ic.commands[i].split("|||");
28479
+
28480
+ if(Object.keys(ic.proteins).length > 0 &&(ic.bAjaxPTM === undefined || !ic.bAjaxPTM) ) {
28481
+ $.when(thisClass.applyCommandPTM(strArray[0].trim())).then(function() {
28482
+ thisClass.execCommandsBase(i + 1, end, steps);
28483
+ });
28484
+ }
28485
+ else {
28486
+ if(Object.keys(ic.proteins).length > 0) {
28487
+ thisClass.applyCommandPTM(strArray[0].trim());
28488
+ }
28489
+
28490
+ this.execCommandsBase(i + 1, end, steps);
28491
+ }
28492
+
28493
+ return;
28494
+ }
28477
28495
  else if(ic.commands[i].trim().indexOf('set annotation 3ddomain') == 0) { // the command may have "|||{"factor"...
28478
28496
  let strArray = ic.commands[i].split("|||");
28479
28497
 
@@ -28704,6 +28722,8 @@ class LoadScript {
28704
28722
  ic.hAtoms = ic.definedSetsCls.getAtomsFromNameArray(nameArray);
28705
28723
  }
28706
28724
 
28725
+ me.cfg.aligntool = 'vast';
28726
+
28707
28727
  $.when(thisClass.applyCommandRealignByStruct(command)).then(function() {
28708
28728
  thisClass.execCommandsBase(i + 1, end, steps);
28709
28729
  });
@@ -28864,6 +28884,9 @@ class LoadScript {
28864
28884
  else if(lastCommand.indexOf('set annotation snp') == 0) {
28865
28885
  thisClass.applyCommandSnp(lastCommand);
28866
28886
  }
28887
+ else if(lastCommand.indexOf('set annotation ptm') == 0) {
28888
+ thisClass.applyCommandPTM(lastCommand);
28889
+ }
28867
28890
  else if(lastCommand.indexOf('set annotation 3ddomain') == 0) {
28868
28891
  thisClass.applyCommand3ddomain(lastCommand);
28869
28892
  }
@@ -28914,6 +28937,9 @@ class LoadScript {
28914
28937
  let nameArray = paraArray[1].split(',');
28915
28938
  ic.hAtoms = ic.definedSetsCls.getAtomsFromNameArray(nameArray);
28916
28939
  }
28940
+
28941
+ me.cfg.aligntool = 'vast';
28942
+
28917
28943
  thisClass.applyCommandRealignByStruct(lastCommand);
28918
28944
  }
28919
28945
  else if(lastCommand.indexOf('realign on tmalign') == 0) {
@@ -29319,6 +29345,25 @@ class LoadScript {
29319
29345
  return ic.deferredSnp.promise();
29320
29346
  }
29321
29347
 
29348
+ applyCommandPTMBase(command) { let ic = this.icn3d; ic.icn3dui;
29349
+ // chain functions together
29350
+ let pos = command.lastIndexOf(' '); // set annotation clinvar
29351
+ command.substr(pos + 1);
29352
+
29353
+ ic.annotationCls.setAnnoTabPTM();
29354
+ }
29355
+
29356
+ applyCommandPTM(command) { let ic = this.icn3d; ic.icn3dui;
29357
+ let thisClass = this;
29358
+
29359
+ // chain functions together
29360
+ ic.deferredPTM = $.Deferred(function() {
29361
+ thisClass.applyCommandPTMBase(command);
29362
+ }); // end of me.deferred = $.Deferred(function() {
29363
+
29364
+ return ic.deferredPTM.promise();
29365
+ }
29366
+
29322
29367
  applyCommand3ddomainBase(command) { let ic = this.icn3d; ic.icn3dui;
29323
29368
  // chain functions together
29324
29369
  let pos = command.lastIndexOf(' ');
@@ -30860,7 +30905,8 @@ class ShowSeq {
30860
30905
  if(seqLength > ic.maxAnnoLength) {
30861
30906
  ic.maxAnnoLength = seqLength;
30862
30907
  }
30863
- let itemArray = ['giseq', 'cddsite', 'clinvar', 'snp', 'domain', 'interaction', 'custom', 'ssbond', 'crosslink', 'transmem'];
30908
+ //let itemArray = ['giseq', 'cddsite', 'ptm', 'clinvar', 'snp', 'domain', 'interaction', 'custom', 'ssbond', 'crosslink', 'transmem'];
30909
+ let itemArray = ['giseq', 'cddsite', 'clinvar', 'snp', 'ptm', 'ssbond', 'crosslink', 'transmem', 'domain', 'custom', 'interaction'];
30864
30910
  for(let i in itemArray) {
30865
30911
  let item = itemArray[i];
30866
30912
  if($("#" + ic.pre + item + "_" + chnid).length) $("#" + ic.pre + item + "_" + chnid).width(divLength);
@@ -33822,6 +33868,9 @@ class ApplyCommand {
33822
33868
  else if(command == 'set annotation interaction') {
33823
33869
  ic.annotationCls.setAnnoTabInteraction();
33824
33870
  }
33871
+ else if(command == 'set annotation ptm') {
33872
+ ic.annotationCls.setAnnoTabPTM();
33873
+ }
33825
33874
  else if(command == 'set annotation cdd') {
33826
33875
  ic.annotationCls.setAnnoTabCdd();
33827
33876
  }
@@ -33868,6 +33917,9 @@ class ApplyCommand {
33868
33917
  else if(type == 'site') {
33869
33918
  ic.annotationCls.hideAnnoTabSite();
33870
33919
  }
33920
+ else if(type == 'ptm') {
33921
+ ic.annotationCls.hideAnnoTabPTM();
33922
+ }
33871
33923
  else if(type == 'interaction') {
33872
33924
  ic.annotationCls.hideAnnoTabInteraction();
33873
33925
  }
@@ -35020,7 +35072,7 @@ class ApplyCommand {
35020
35072
  else if(cmd.indexOf('realign on seq align') == 0) return 'File > Realign Selection > on Sequence Alignment';
35021
35073
  else if(cmd.indexOf('realign') == 0) return 'File > Realign Selection > Residue by Residue';
35022
35074
  else if(cmd.indexOf('graph interaction pairs') == 0) return hbondIntStr + ' > 2D Graph(Force-Directed)';
35023
- else if(cmd.indexOf('export canvas') == 0) return 'File > Save Files > iCn3D PNG Image';
35075
+ else if(cmd.indexOf('export canvas') == 0) return 'File > Save File > iCn3D PNG Image';
35024
35076
  else if(cmd == 'export stl file') return printStr + 'STL';
35025
35077
  else if(cmd == 'export vrml file') return printStr + 'VRML(Color)';
35026
35078
  else if(cmd == 'export stl stabilizer file') return printStr + 'STL W/ Stabilizers';
@@ -35066,6 +35118,7 @@ class ApplyCommand {
35066
35118
  else if(cmd== 'set view overview') return seqAnnoStr + ': "Summary" tab';
35067
35119
  else if(cmd == 'set annotation custom') return seqAnnoStr + ': "Custom" checkbox';
35068
35120
  else if(cmd == 'set annotation interaction') return seqAnnoStr + ': "Interactions" checkbox';
35121
+ else if(cmd == 'set annotation ptm') return seqAnnoStr + ': "PTM" checkbox';
35069
35122
  else if(cmd == 'set annotation cdd') return seqAnnoStr + ': "Conserved Domains" checkbox';
35070
35123
  else if(cmd == 'set annotation site') return seqAnnoStr + ': "Functional Sites" checkbox';
35071
35124
  else if(cmd == 'set annotation ssbond') return seqAnnoStr + ': "Disulfide Bonds" checkbox';
@@ -35354,7 +35407,9 @@ class SelectByCommand {
35354
35407
  bResidueId = true;
35355
35408
  }
35356
35409
  else {
35357
- if(residueStrArray[j][0] === '3' && residueStrArray[j].length > 1 &&(residueStrArray[j].length - 1) % 3 === 0) { // three letter residue string, such as :3LysArg
35410
+ //if(residueStrArray[j].length > 1 && residueStrArray[j][0] === '3' && (residueStrArray[j].length - 1) % 3 === 0) { // three letter residue string, such as :3LysArg
35411
+ if(residueStrArray[j].length > 1 && residueStrArray[j][0] === '3'
35412
+ && isNaN(residueStrArray[j][1]) && residueStrArray[j][0] !== '-') { // three letter residue string, such as :3LysArg or :3ZN, but not :30 neither :3-10
35358
35413
  let tmpStr = residueStrArray[j].toUpperCase();
35359
35414
  threeLetterResidueStr = tmpStr.substr(1);
35360
35415
  bResidueArrayThree = true;
@@ -35470,7 +35525,8 @@ class SelectByCommand {
35470
35525
  }
35471
35526
  else if(bResidueArrayThree) {
35472
35527
  let threeLetter = me.utilsCls.residueAbbr2Name(ic.chainsSeq[molecule_chain][s].name);
35473
- chainSeq +=(threeLetter.length == 3) ? threeLetter : ' ';
35528
+
35529
+ chainSeq +=(threeLetter.length == 3) ? threeLetter : threeLetter.padEnd(3, '_');
35474
35530
  }
35475
35531
  resiArray.push(ic.chainsSeq[molecule_chain][s].resi);
35476
35532
  }
@@ -36368,7 +36424,8 @@ class SetSeqAlign {
36368
36424
  if(i > 0) {
36369
36425
  let index1 = alignIndex;
36370
36426
  for(let j = prevIndex1 + 1, jl = start1; j < jl; ++j) {
36371
- if(ic.chainsSeq[chainid1] === undefined) break;
36427
+ if(ic.chainsSeq[chainid1] === undefined || ic.chainsSeq[chainid1][j] === undefined) break;
36428
+
36372
36429
  let resi = ic.chainsSeq[chainid1][j].resi;
36373
36430
  let resn = ic.chainsSeq[chainid1][j].name.toLowerCase();
36374
36431
 
@@ -36382,7 +36439,8 @@ class SetSeqAlign {
36382
36439
 
36383
36440
  let index2 = alignIndex;
36384
36441
  for(let j = prevIndex2 + 1, jl = start2; j < jl; ++j) {
36385
- if(ic.chainsSeq[chainid2] === undefined) break;
36442
+ if(ic.chainsSeq[chainid2] === undefined || ic.chainsSeq[chainid2] === undefined) break;
36443
+
36386
36444
  let resi = ic.chainsSeq[chainid2][j].resi;
36387
36445
  let resn = ic.chainsSeq[chainid2][j].name.toLowerCase();
36388
36446
 
@@ -38304,9 +38362,6 @@ class MmcifParser {
38304
38362
 
38305
38363
  ic.asuCnt = ic.biomtMatrices.length;
38306
38364
  }
38307
- else {
38308
- $("#" + ic.pre + "assemblyWrapper").hide();
38309
- }
38310
38365
 
38311
38366
  ic.setStyleCls.setAtomStyleByOptions(ic.opts);
38312
38367
  ic.setColorCls.setColorByOptions(ic.opts, ic.atoms);
@@ -38332,8 +38387,8 @@ class HlSeq {
38332
38387
  if(me.bNode) return;
38333
38388
 
38334
38389
  let thisClass = this;
38335
- $("#" + 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]")
38336
- .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]")
38390
+ $("#" + 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]")
38391
+ .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]")
38337
38392
  .selectable({
38338
38393
  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.
38339
38394
  stop: function() { let ic = thisClass.icn3d;
@@ -38386,11 +38441,11 @@ class HlSeq {
38386
38441
  }
38387
38442
  });
38388
38443
 
38389
- $("[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]")
38390
- .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]")
38444
+ $("[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]")
38445
+ .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]")
38391
38446
 
38392
- .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]")
38393
- .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]")
38447
+ .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]")
38448
+ .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]")
38394
38449
 
38395
38450
  .on('click', '.icn3d-seqTitle', function(e) { let ic = thisClass.icn3d;
38396
38451
  e.stopImmediatePropagation();
@@ -38431,7 +38486,7 @@ class HlSeq {
38431
38486
 
38432
38487
  let thisClass = this;
38433
38488
 
38434
- $("#" + 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;
38489
+ $("#" + 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;
38435
38490
  e.stopImmediatePropagation();
38436
38491
  /*
38437
38492
  //if($(this).attr('id') === ic.pre + "dl_sequence2") {
@@ -38480,7 +38535,7 @@ class HlSeq {
38480
38535
 
38481
38536
  let thisClass = this;
38482
38537
 
38483
- $("#" + 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;
38538
+ $("#" + 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;
38484
38539
  e.stopImmediatePropagation();
38485
38540
 
38486
38541
  //if($(this).attr('id') === ic.pre + "dl_sequence2") {
@@ -38677,7 +38732,7 @@ class HlSeq {
38677
38732
  let residueid;
38678
38733
  let structure = chainid.substr(0, chainid.indexOf('_'));
38679
38734
  for(let i = 0, il = posArray.length; i < il; ++i) {
38680
- if($(that).attr('site') !== undefined) {
38735
+ if($(that).attr('site') !== undefined || $(that).attr('ptm') !== undefined) {
38681
38736
  if(ic.bNCBI) {
38682
38737
  let residNCBI = chainid + '_' +(parseInt(posArray[i])+1).toString();
38683
38738
  // AlphaFold domains calculated on-the-fly have no conversion
@@ -39079,6 +39134,8 @@ class ShowAnno {
39079
39134
  ++i;
39080
39135
  }
39081
39136
  ic.interactChainbase = me.hashUtilsCls.unionHash(ic.interactChainbase, chemical_chainid);
39137
+ ic.PTMChainbase = me.hashUtilsCls.unionHash(ic.PTMChainbase, ic.protein_chainid);
39138
+
39082
39139
  ic.ssbondChainbase = me.hashUtilsCls.unionHash(ic.ssbondChainbase, ic.protein_chainid);
39083
39140
  ic.ssbondChainbase = me.hashUtilsCls.unionHash(ic.ssbondChainbase, chemical_chainid);
39084
39141
  ic.crosslinkChainbase = me.hashUtilsCls.unionHash(ic.crosslinkChainbase, ic.protein_chainid);
@@ -39110,8 +39167,10 @@ class ShowAnno {
39110
39167
  //if(proteinName.length > 40) proteinName = proteinName.substr(0, 40) + "...";
39111
39168
  let categoryStr =(index == 0) ? "<span class='icn3d-annoLargeTitle'><b>Proteins</b>: </span><br><br>" : "";
39112
39169
  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>)" : '';
39170
+ let structure = chnid.substr(0, chnid.indexOf('_'));
39171
+ let chainLink = (structure.length > 5) ? '<a href="https://alphafold.ebi.ac.uk/entry/' + structure + '" target="_blank">' + chnid + '</a>' : chnid;
39113
39172
  let chainHtml = "<div id='" + ic.pre + "anno_" + chnid + "' class='icn3d-annotation'>" + categoryStr
39114
- + "<span style='font-weight:bold;'>Annotations of " + chnid
39173
+ + "<span style='font-weight:bold;'>Annotations of " + chainLink
39115
39174
  + "</span>: <a class='icn3d-blue' href='https://www.ncbi.nlm.nih.gov/protein?term="
39116
39175
  + chnid + "' target='_blank' title='" + fullProteinName + "'>" + proteinName + "</a>"
39117
39176
  + geneLink + "&nbsp;&nbsp;&nbsp;"
@@ -39124,7 +39183,8 @@ class ShowAnno {
39124
39183
  + 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;"
39125
39184
  + 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);
39126
39185
  $("#" + ic.pre + "dl_annotations").append(chainHtml);
39127
- let itemArray = ['giseq', 'cdd', 'clinvar', 'snp', 'domain', 'site', 'interaction', 'custom', 'ssbond', 'crosslink', 'transmem'];
39186
+ //let itemArray = ['giseq', 'cdd', 'clinvar', 'snp', 'domain', 'site', 'ptm', 'interaction', 'custom', 'ssbond', 'crosslink', 'transmem'];
39187
+ let itemArray = ['giseq', 'cdd', 'clinvar', 'snp', 'site', 'ptm', 'ssbond', 'crosslink', 'transmem', 'domain', 'custom', 'interaction'];
39128
39188
  // dt: detailed view, hide by default; ov: overview, show by default
39129
39189
  for(let i in itemArray) {
39130
39190
  let item = itemArray[i];
@@ -39552,6 +39612,286 @@ class ShowAnno {
39552
39612
 
39553
39613
  }
39554
39614
 
39615
+ /**
39616
+ * @author Jiyao Wang <wangjiy@ncbi.nlm.nih.gov> / https://github.com/ncbi/icn3d
39617
+ */
39618
+
39619
+ class AnnoPTM {
39620
+ constructor(icn3d) {
39621
+ this.icn3d = icn3d;
39622
+ }
39623
+
39624
+ //Show the annotations of CDD domains and binding sites.
39625
+ showPTM(chnid, chnidBase) { let ic = this.icn3d; ic.icn3dui;
39626
+ let thisClass = this;
39627
+
39628
+ // UniProt ID
39629
+ let structure = chnid.substr(0, chnid.indexOf('_'));
39630
+ let chain = chnid.substr(chnid.indexOf('_') + 1);
39631
+
39632
+ // UniProt ID
39633
+ if( structure.length > 5 ) {
39634
+ let url = "https://www.ebi.ac.uk/proteins/api/features/" + structure;
39635
+ $.ajax({
39636
+ url: url,
39637
+ dataType: 'json',
39638
+ cache: true,
39639
+ tryCount : 0,
39640
+ retryLimit : 0, //1
39641
+ success: function(data) {
39642
+ thisClass.parsePTM(data, chnid);
39643
+ if(ic.deferredPTM !== undefined) ic.deferredPTM.resolve();
39644
+ },
39645
+ error : function(xhr, textStatus, errorThrown ) {
39646
+ this.tryCount++;
39647
+ if(this.tryCount <= this.retryLimit) {
39648
+ //try again
39649
+ $.ajax(this);
39650
+ return;
39651
+ }
39652
+
39653
+ thisClass.getNoPTM(chnid);
39654
+
39655
+ return;
39656
+ }
39657
+ });
39658
+ }
39659
+ else { // PDB
39660
+ // get PDB to UniProt mapping
39661
+ // https://www.ebi.ac.uk/pdbe/api/doc/
39662
+ let structLower = structure.substr(0, 4).toLowerCase();
39663
+ let urlMap = "https://www.ebi.ac.uk/pdbe/api/mappings/uniprot/" + structLower;
39664
+
39665
+ $.ajax({
39666
+ url: urlMap,
39667
+ dataType: 'json',
39668
+ cache: true,
39669
+ success: function(dataMap) {
39670
+ let UniProtID = '';
39671
+ if(!ic.UPResi2ResiPosPerChain) ic.UPResi2ResiPosPerChain = {};
39672
+ ic.UPResi2ResiPosPerChain[chnid] = {};
39673
+ let mapping = dataMap[structLower].UniProt;
39674
+
39675
+ let bFound = false;
39676
+ for(let up in mapping) {
39677
+ let chainArray = mapping[up].mappings;
39678
+ if(bFound) break;
39679
+
39680
+ for(let i = 0, il = chainArray.length; i < il; ++i) {
39681
+ //"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"
39682
+ let chainObj = chainArray[i];
39683
+ if(chainObj.chain_id == chain) {
39684
+ let start = chainObj.unp_start;
39685
+ let end = chainObj.unp_end;
39686
+ let posStart = chainObj.start.residue_number;
39687
+ let posEnd = chainObj.end.residue_number;
39688
+
39689
+ if(posEnd - posStart != end - start) {
39690
+ console.log("There might be some issues in the PDB to UniProt residue mapping.");
39691
+ }
39692
+
39693
+ for(let j = 0; j <= end - start; ++j) {
39694
+ ic.UPResi2ResiPosPerChain[chnid][j + start] = j + posStart - 1; // 0-based
39695
+ }
39696
+
39697
+ UniProtID = up;
39698
+ bFound = true;
39699
+ break;
39700
+ }
39701
+ }
39702
+ }
39703
+
39704
+ if(UniProtID == '') {
39705
+ thisClass.getNoPTM(chnid);
39706
+ }
39707
+ else {
39708
+ let url = "https://www.ebi.ac.uk/proteins/api/features/" + UniProtID;
39709
+ $.ajax({
39710
+ url: url,
39711
+ dataType: 'json',
39712
+ cache: true,
39713
+ tryCount : 0,
39714
+ retryLimit : 0, //1
39715
+ success: function(data) {
39716
+ thisClass.parsePTM(data, chnid);
39717
+ if(ic.deferredPTM !== undefined) ic.deferredPTM.resolve();
39718
+ },
39719
+ error : function(xhr, textStatus, errorThrown ) {
39720
+ this.tryCount++;
39721
+ if(this.tryCount <= this.retryLimit) {
39722
+ //try again
39723
+ $.ajax(this);
39724
+ return;
39725
+ }
39726
+
39727
+ thisClass.getNoPTM(chnid);
39728
+
39729
+ return;
39730
+ }
39731
+ });
39732
+ }
39733
+ },
39734
+ error : function(xhr, textStatus, errorThrown ) {
39735
+ thisClass.getNoPTM(chnid);
39736
+ }
39737
+ });
39738
+ }
39739
+ }
39740
+
39741
+ parsePTM(data, chnid) { let ic = this.icn3d, me = ic.icn3dui;
39742
+
39743
+ if(me.bNode) {
39744
+ //if(!ic.resid2ptm) ic.resid2ptm = {};
39745
+ ic.resid2ptm = {};
39746
+ ic.resid2ptm[chnid] = [];
39747
+ }
39748
+
39749
+ let ptmHash = {};
39750
+ for(let i = 0, il = data.features.length; i < il; ++i) {
39751
+ let feature = data.features[i];
39752
+
39753
+ if(feature.category == 'PTM' && feature.type != 'DISULFID' && feature.type != 'CROSSLNK') {
39754
+ let title = '';
39755
+ if(feature.type == 'CARBOHYD') {
39756
+ //title = 'Glycosylation, ' + feature.description;
39757
+ title = 'Glycosylation';
39758
+ }
39759
+ else if(feature.type == 'LIPID') {
39760
+ title = 'Lipidation, ' + feature.description;
39761
+ }
39762
+ else if(feature.description.indexOf('Phospho') == 0) {
39763
+ title = 'Phosphorylation';
39764
+ }
39765
+ else if(feature.description) {
39766
+ title = feature.description;
39767
+ }
39768
+ else {
39769
+ title = feature.type;
39770
+ }
39771
+
39772
+ if(!ptmHash[title]) ptmHash[title] = [];
39773
+ ptmHash[title].push(feature);
39774
+ }
39775
+ }
39776
+
39777
+ let index = 0;
39778
+ let html = '', html2 = '', html3 = '';
39779
+ html += '<div id="' + ic.pre + chnid + '_ptmseq_sequence" class="icn3d-cdd icn3d-dl_sequence">';
39780
+ html2 += html;
39781
+ html3 += html;
39782
+ let stucture = chnid.substr(0, chnid.indexOf('_'));
39783
+
39784
+ for(let ptm in ptmHash) {
39785
+ let ptmArray = ptmHash[ptm];
39786
+ //"type": "MOD_RES", "category": "PTM", "description": "4-hydroxyproline", "begin": "382", "end": "382",
39787
+ let resPosArray = [];
39788
+ let bCoordinates = false;
39789
+ for(let i = 0, il = ptmArray.length; i < il; ++i) {
39790
+ let begin = parseInt(ptmArray[i].begin);
39791
+ let end = parseInt(ptmArray[i].end);
39792
+
39793
+
39794
+ for(let j = begin; j <= end; ++j) {
39795
+ if(stucture.length > 5) { // UniProt
39796
+ resPosArray.push(j - 1); // 0-based
39797
+ }
39798
+ else { // PDB
39799
+ if(ic.UPResi2ResiPosPerChain[chnid][j]) resPosArray.push(ic.UPResi2ResiPosPerChain[chnid][j]);
39800
+ }
39801
+
39802
+ if(!bCoordinates && ic.residues.hasOwnProperty(chnid + '_' + j)) {
39803
+ bCoordinates = true;
39804
+ }
39805
+ }
39806
+ }
39807
+
39808
+ if(resPosArray.length == 0) continue;
39809
+
39810
+ let resCnt = resPosArray.length;
39811
+ let title = 'PTM: ' + ptm;
39812
+ if(title.length > 17) title = title.substr(0, 17) + '...';
39813
+ let fulltitle = ptm;
39814
+
39815
+ let linkStr = (bCoordinates) ? 'icn3d-link icn3d-blue' : '';
39816
+
39817
+ 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>';
39818
+ let htmlTmp3 = '<span class="icn3d-residueNum" title="residue count">' + resCnt.toString() + ' Res</span>';
39819
+ let htmlTmp = '<span class="icn3d-seqLine">';
39820
+ html3 += htmlTmp2 + htmlTmp3 + '<br>';
39821
+ html += htmlTmp2 + htmlTmp3 + htmlTmp;
39822
+ html2 += htmlTmp2 + htmlTmp3 + htmlTmp;
39823
+ let pre = 'ptm' + index.toString();
39824
+ //var widthPerRes = ic.seqAnnWidth / ic.maxAnnoLength;
39825
+ let prevEmptyWidth = 0;
39826
+ let prevLineWidth = 0;
39827
+ let widthPerRes = 1;
39828
+ for(let i = 0, il = ic.giSeq[chnid].length; i < il; ++i) {
39829
+ html += ic.showSeqCls.insertGap(chnid, i, '-');
39830
+ if(resPosArray.indexOf(i) != -1) {
39831
+ let cFull = ic.giSeq[chnid][i];
39832
+ let c = cFull;
39833
+ if(cFull.length > 1) {
39834
+ c = cFull[0] + '..';
39835
+ }
39836
+ let pos = ic.annoCddSiteCls.getAdjustedResi(i, chnid, ic.matchedPos, ic.chainsSeq, ic.baseResi);
39837
+
39838
+ html += '<span id="' + pre + '_' + ic.pre + chnid + '_' + pos + '" title="' + c + pos + '" class="icn3d-residue">' + cFull + '</span>';
39839
+ if(me.bNode) {
39840
+ let obj = {};
39841
+ obj[chnid + '_' + pos] = 'PTM: ' + ptm;
39842
+ ic.resid2ptm[chnid].push(obj);
39843
+ }
39844
+
39845
+ html2 += ic.showSeqCls.insertGapOverview(chnid, i);
39846
+ 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);
39847
+ //if(emptyWidth < 0) emptyWidth = 0;
39848
+ if(emptyWidth >= 0) {
39849
+ html2 += '<div style="display:inline-block; width:' + emptyWidth + 'px;">&nbsp;</div>';
39850
+ html2 += '<div style="display:inline-block; background-color:#000; width:' + widthPerRes + 'px;" title="' + c + pos + '">&nbsp;</div>';
39851
+ prevEmptyWidth += emptyWidth;
39852
+ prevLineWidth += widthPerRes;
39853
+ }
39854
+ }
39855
+ else {
39856
+ html += '<span>-</span>'; //'<span>-</span>';
39857
+ }
39858
+ }
39859
+ htmlTmp = '<span class="icn3d-residueNum" title="residue count">&nbsp;' + resCnt.toString() + ' Residues</span>';
39860
+ htmlTmp += '</span>';
39861
+ htmlTmp += '<br>';
39862
+ html += htmlTmp;
39863
+ html2 += htmlTmp;
39864
+
39865
+ ++index;
39866
+ }
39867
+
39868
+ html += '</div>';
39869
+ html2 += '</div>';
39870
+ html3 += '</div>';
39871
+
39872
+ $("#" + ic.pre + "dt_ptm_" + chnid).html(html);
39873
+ $("#" + ic.pre + "ov_ptm_" + chnid).html(html2);
39874
+ $("#" + ic.pre + "tt_ptm_" + chnid).html(html3);
39875
+
39876
+ // add here after the ajax call
39877
+ ic.showAnnoCls.enableHlSeq();
39878
+ ic.bAjaxPTM = true;
39879
+ }
39880
+
39881
+ getNoPTM(chnid) { let ic = this.icn3d; ic.icn3dui;
39882
+ console.log( "No PTM data were found for the chain " + chnid + "..." );
39883
+
39884
+ $("#" + ic.pre + "dt_ptm_" + chnid).html('');
39885
+ $("#" + ic.pre + "ov_ptm_" + chnid).html('');
39886
+ $("#" + ic.pre + "tt_ptm_" + chnid).html('');
39887
+
39888
+ // add here after the ajax call
39889
+ ic.showAnnoCls.enableHlSeq();
39890
+ ic.bAjaxPTM = true;
39891
+ if(ic.deferredPTM !== undefined) ic.deferredPTM.resolve();
39892
+ }
39893
+ }
39894
+
39555
39895
  /**
39556
39896
  * @author Jiyao Wang <wangjiy@ncbi.nlm.nih.gov> / https://github.com/ncbi/icn3d
39557
39897
  */
@@ -40868,7 +41208,8 @@ class Annotation {
40868
41208
  this.setAnnoSeqBase(false);
40869
41209
  }
40870
41210
  setAnnoSeqBase(bShow) { let ic = this.icn3d; ic.icn3dui;
40871
- let itemArray = ['site', 'snp', 'clinvar', 'cdd', 'domain', 'interaction', 'ssbond', 'crosslink', 'transmem'];
41211
+ //let itemArray = ['site', 'ptm', 'snp', 'clinvar', 'cdd', 'domain', 'interaction', 'ssbond', 'crosslink', 'transmem'];
41212
+ let itemArray = ['cdd', 'clinvar', 'snp', 'site', 'ptm', 'ssbond', 'crosslink', 'transmem', 'domain', 'interaction'];
40872
41213
  for(let i in itemArray) {
40873
41214
  let item = itemArray[i];
40874
41215
  if(bShow) {
@@ -40880,7 +41221,8 @@ class Annotation {
40880
41221
  }
40881
41222
  }
40882
41223
  setAnnoTabBase(bChecked) { let ic = this.icn3d; ic.icn3dui;
40883
- let itemArray = ['all', 'binding', 'snp', 'clinvar', 'cdd', '3dd', 'interact', 'custom', 'ssbond', 'crosslink', 'transmem'];
41224
+ //let itemArray = ['all', 'binding', 'ptm', 'snp', 'clinvar', 'cdd', '3dd', 'interact', 'custom', 'ssbond', 'crosslink', 'transmem'];
41225
+ let itemArray = ['all', 'cdd', 'clinvar', 'snp', 'binding', 'ptm', 'ssbond', 'crosslink', 'transmem', '3dd', 'custom', 'interact'];
40884
41226
  for(let i in itemArray) {
40885
41227
  let item = itemArray[i];
40886
41228
  if($("#" + ic.pre + "anno_" + item).length) $("#" + ic.pre + "anno_" + item)[0].checked = bChecked;
@@ -40892,10 +41234,11 @@ class Annotation {
40892
41234
  this.updateClinvar();
40893
41235
  this.updateSnp();
40894
41236
  this.updateDomain();
40895
- this.updateInteraction();
41237
+ this.updatePTM();
40896
41238
  this.updateSsbond();
40897
41239
  this.updateCrosslink();
40898
41240
  this.updateTransmem();
41241
+ this.updateInteraction();
40899
41242
  }
40900
41243
  hideAnnoTabAll() { let ic = this.icn3d; ic.icn3dui;
40901
41244
  this.setAnnoTabBase(false);
@@ -40948,6 +41291,11 @@ class Annotation {
40948
41291
  ic.bInteractionShown = false;
40949
41292
  this.updateInteraction();
40950
41293
  }
41294
+ if($("#" + ic.pre + "anno_ptm").length && $("#" + ic.pre + "anno_ptm")[0].checked) {
41295
+ $("[id^=" + ic.pre + "ptm]").show();
41296
+ ic.bPTMShown = false;
41297
+ this.updatePTM();
41298
+ }
40951
41299
  if($("#" + ic.pre + "anno_custom").length && $("#" + ic.pre + "anno_custom")[0].checked) {
40952
41300
  $("[id^=" + ic.pre + "custom]").show();
40953
41301
  }
@@ -41029,6 +41377,15 @@ class Annotation {
41029
41377
  $("[id^=" + ic.pre + "interaction]").hide();
41030
41378
  if($("#" + ic.pre + "anno_interact").length) $("#" + ic.pre + "anno_interact")[0].checked = false;
41031
41379
  }
41380
+ setAnnoTabPTM() { let ic = this.icn3d; ic.icn3dui;
41381
+ $("[id^=" + ic.pre + "ptm]").show();
41382
+ if($("#" + ic.pre + "anno_ptm").length) $("#" + ic.pre + "anno_ptm")[0].checked = true;
41383
+ this.updatePTM();
41384
+ }
41385
+ hideAnnoTabPTM() { let ic = this.icn3d; ic.icn3dui;
41386
+ $("[id^=" + ic.pre + "ptm]").hide();
41387
+ if($("#" + ic.pre + "anno_ptm").length) $("#" + ic.pre + "anno_ptm")[0].checked = false;
41388
+ }
41032
41389
  setAnnoTabSsbond() { let ic = this.icn3d; ic.icn3dui;
41033
41390
  $("[id^=" + ic.pre + "ssbond]").show();
41034
41391
  if($("#" + ic.pre + "anno_ssbond").length) $("#" + ic.pre + "anno_ssbond")[0].checked = true;
@@ -41140,6 +41497,17 @@ class Annotation {
41140
41497
  }
41141
41498
  });
41142
41499
 
41500
+ me.myEventCls.onIds("#" + ic.pre + "anno_ptm", "click", function(e) {
41501
+ if($("#" + ic.pre + "anno_ptm")[0].checked) {
41502
+ thisClass.setAnnoTabPTM();
41503
+ me.htmlCls.clickMenuCls.setLogCmd("set annotation ptm", true);
41504
+ }
41505
+ else {
41506
+ thisClass.hideAnnoTabPTM();
41507
+ me.htmlCls.clickMenuCls.setLogCmd("hide annotation ptm", true);
41508
+ }
41509
+ });
41510
+
41143
41511
  //$("#" + ic.pre + "anno_custom", "click", function(e) {
41144
41512
  me.myEventCls.onIds("#" + ic.pre + "anno_custom", "click", function(e) {
41145
41513
  if($("#" + ic.pre + "anno_custom")[0].checked) {
@@ -41235,7 +41603,7 @@ class Annotation {
41235
41603
  }
41236
41604
  }
41237
41605
  setAnnoDisplay(display, prefix) { let ic = this.icn3d; ic.icn3dui;
41238
- let itemArray = ['giseq', 'custom', 'site', 'snp', 'clinvar', 'cdd', 'domain', 'interaction', 'ssbond', 'crosslink', 'transmem'];
41606
+ let itemArray = ['giseq', 'custom', 'site', 'ptm', 'snp', 'clinvar', 'cdd', 'domain', 'interaction', 'ssbond', 'crosslink', 'transmem'];
41239
41607
  for(let i in itemArray) {
41240
41608
  let item = itemArray[i];
41241
41609
  $("[id^=" + ic.pre + prefix + "_" + item + "]").attr('style', display);
@@ -41306,6 +41674,15 @@ class Annotation {
41306
41674
  }
41307
41675
  ic.bInteractionShown = true;
41308
41676
  }
41677
+ updatePTM() { let ic = this.icn3d; ic.icn3dui;
41678
+ if(ic.bPTMShown === undefined || !ic.bPTMShown) {
41679
+ for(let chainid in ic.PTMChainbase) {
41680
+ let chainidBase = ic.PTMChainbase[chainid];
41681
+ ic.annoPTMCls.showPTM(chainid, chainidBase);
41682
+ }
41683
+ }
41684
+ ic.bPTMShown = true;
41685
+ }
41309
41686
  updateSsbond() { let ic = this.icn3d; ic.icn3dui;
41310
41687
  if(ic.bSSbondShown === undefined || !ic.bSSbondShown) {
41311
41688
  for(let chainid in ic.ssbondChainbase) {
@@ -43039,9 +43416,12 @@ class Selection {
43039
43416
 
43040
43417
  //Show the selection.
43041
43418
  showSelection() { let ic = this.icn3d, me = ic.icn3dui;
43042
- ic.dAtoms = {};
43419
+ //ic.dAtoms = {};
43043
43420
 
43044
- if(Object.keys(ic.hAtoms).length == 0) this.selectAll_base();
43421
+ if(Object.keys(ic.hAtoms).length == 0) {
43422
+ //this.selectAll_base();
43423
+ ic.hAtoms = me.hashUtilsCls.cloneHash(ic.dAtoms);
43424
+ }
43045
43425
 
43046
43426
  ic.dAtoms = me.hashUtilsCls.cloneHash(ic.hAtoms);
43047
43427
  ic.viewSelectionAtoms = me.hashUtilsCls.cloneHash(ic.hAtoms);
@@ -43682,11 +44062,14 @@ class SetStyle {
43682
44062
  console.log("WebGL context was lost. Reset WebGLRenderer and launch iCn3D again.");
43683
44063
 
43684
44064
  ic.renderer = new THREE.WebGLRenderer({
43685
- canvas: ic.container.get(0),
43686
- antialias: true,
43687
- preserveDrawingBuffer: true,
43688
- alpha: true
44065
+ canvas: ic.oriContainer.get(0), //this.container.get(0),
44066
+ antialias: true,
44067
+ preserveDrawingBuffer: true,
44068
+ sortObjects: false,
44069
+ alpha: true
43689
44070
  });
44071
+ // Enable VR
44072
+ ic.renderer.xr.enabled = true;
43690
44073
 
43691
44074
  ic.drawCls.draw();
43692
44075
 
@@ -44895,7 +45278,8 @@ class ApplySymd {
44895
45278
  }
44896
45279
  else { // bSymd, subset, and one chain
44897
45280
  if(Object.keys(ic.hAtoms).length == 0) {
44898
- ic.hAtoms = me.hashUtilsCls.cloneHash(ic.atoms);
45281
+ //ic.hAtoms = me.hashUtilsCls.cloneHash(ic.atoms);
45282
+ ic.hAtoms = me.hashUtilsCls.cloneHash(ic.dAtoms);
44899
45283
  }
44900
45284
 
44901
45285
  // pick the first 1/order of selection
@@ -54272,6 +54656,95 @@ class ClickMenu {
54272
54656
  $("#" + me.pre + id2).resizable();
54273
54657
  }
54274
54658
 
54659
+ applyShownMenus() { let me = this.icn3dui; me.icn3d;
54660
+ let idArray = [];
54661
+ for(let id in me.htmlCls.allMenus) {
54662
+ if(me.htmlCls.shownMenus.hasOwnProperty(id)) {
54663
+ $("#" + id).parent().show();
54664
+ idArray.push(id);
54665
+ }
54666
+ else {
54667
+ $("#" + id).parent().hide();
54668
+ }
54669
+ }
54670
+
54671
+ if(Object.keys(me.htmlCls.shownMenus).length == Object.keys(me.htmlCls.allMenus).length) {
54672
+ $(".icn3d-menusep").show();
54673
+ }
54674
+ else {
54675
+ $(".icn3d-menusep").hide();
54676
+ }
54677
+
54678
+ // save to localStorage
54679
+ if(localStorage) localStorage.setItem('menulist', JSON.stringify(idArray));
54680
+ }
54681
+
54682
+ getShownMenusFromCookie() { let me = this.icn3dui; me.icn3d;
54683
+ me.htmlCls.shownMenus = {};
54684
+
54685
+ let idArrayStr = (localStorage) ? localStorage.getItem('menulist') : '';
54686
+
54687
+ if(idArrayStr) {
54688
+ let idArray = JSON.parse(idArrayStr);
54689
+
54690
+ for(let i = 0, il = idArray.length; i < il; ++i) {
54691
+ me.htmlCls.shownMenus[idArray[i]] = 1;
54692
+ }
54693
+ }
54694
+ else {
54695
+ me.htmlCls.shownMenus = me.hashUtilsCls.cloneHash(me.htmlCls.allMenus);
54696
+ }
54697
+ }
54698
+
54699
+ displayShownMenus() { let me = this.icn3dui; me.icn3d;
54700
+ let html = "<form name='" + me.pre + "selmenu'>";
54701
+ 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>";
54702
+ html += "<tr>";
54703
+ for(let id in me.htmlCls.allMenusSel) {
54704
+ // skip all unicolor: too many
54705
+ let len = me.pre.length;
54706
+ if(id.substr(0, 6 + len) == me.pre + 'uniclr'
54707
+ || id.substr(0, 11 + len) == me.pre + 'mn5_opacity'
54708
+ || id.substr(0, 14 + len) == me.pre + 'mn6_labelscale'
54709
+ || id.substr(0, 4 + len) == me.pre + 'faq_'
54710
+ || id.substr(0, 4 + len) == me.pre + 'dev_') {
54711
+ continue;
54712
+ }
54713
+
54714
+ if(id == me.pre + 'mn1_searchstru') {
54715
+ html += "<td valign='top'>";
54716
+ }
54717
+ else if(id == me.pre + 'mn2_definedsets') {
54718
+ html += "</td><td valign='top'>";
54719
+ }
54720
+ else if(id == me.pre + 'mn2_show_selected') {
54721
+ html += "</td><td valign='top'>";
54722
+ }
54723
+ else if(id == me.pre + 'mn3_proteinwrap' || (me.cfg.cid && id == me.pre + 'mn3_ligwrap')) {
54724
+ html += "</td><td valign='top'>";
54725
+ }
54726
+ else if(id == me.pre + 'mn4_clrwrap') {
54727
+ html += "</td><td valign='top'>";
54728
+ }
54729
+ else if(id == me.pre + 'mn6_selectannotations') {
54730
+ html += "</td><td valign='top'>";
54731
+ }
54732
+ else if(id == me.pre + 'abouticn3d') {
54733
+ html += "</td><td valign='top'>";
54734
+ }
54735
+
54736
+ let checkStr = (me.htmlCls.shownMenus.hasOwnProperty(id)) ? "checked" : "";
54737
+
54738
+ let selType = me.htmlCls.allMenusSel[id];
54739
+ let styleStr = (selType == 3) ? " style='margin-left:30px'" : ((selType == 2) ? " style='margin-left:15px'" : "");
54740
+
54741
+ html += "<span style='white-space:nowrap'><input type='checkbox' name='" + id + "' value='" + id + "'" + checkStr + styleStr + ">" + me.htmlCls.allMenus[id] + "</span><br>";
54742
+ }
54743
+ html += "</td></tr></table></form>";
54744
+
54745
+ $("#" + me.pre + "menulist").html(html);
54746
+ }
54747
+
54275
54748
 
54276
54749
  clickMenu1() { let me = this.icn3dui; me.icn3d;
54277
54750
  if(me.bNode) return;
@@ -54653,6 +55126,98 @@ class ClickMenu {
54653
55126
  ic.resizeCanvasCls.replayoff();
54654
55127
  thisClass.setLogCmd("replay off", true);
54655
55128
  });
55129
+
55130
+ me.myEventCls.onIds("#" + me.pre + "mn1_menuall", "click", function(e) { me.icn3d;
55131
+ me.htmlCls.shownMenus = me.hashUtilsCls.cloneHash(me.htmlCls.allMenus);
55132
+
55133
+ thisClass.applyShownMenus();
55134
+ });
55135
+
55136
+ me.myEventCls.onIds("#" + me.pre + "mn1_menusimple", "click", function(e) { me.icn3d;
55137
+ me.htmlCls.shownMenus = me.hashUtilsCls.cloneHash(me.htmlCls.simpleMenus);
55138
+
55139
+ thisClass.applyShownMenus();
55140
+ });
55141
+
55142
+ me.myEventCls.onIds("#" + me.pre + "mn1_menupref", "click", function(e) { me.icn3d;
55143
+ me.htmlCls.dialogCls.openDlg('dl_menupref', 'Select Menus');
55144
+
55145
+ thisClass.getShownMenusFromCookie();
55146
+
55147
+ thisClass.displayShownMenus();
55148
+ });
55149
+
55150
+ me.myEventCls.onIds("#" + me.pre + "apply_menupref", "click", function(e) { me.icn3d;
55151
+ var checkboxes = document.querySelectorAll('form[name="' + me.pre + 'selmenu"] input:checked');
55152
+ me.htmlCls.shownMenus = {};
55153
+ for (var checkbox of checkboxes) {
55154
+ me.htmlCls.shownMenus[checkbox.value] = 1;
55155
+ }
55156
+
55157
+ thisClass.applyShownMenus();
55158
+ });
55159
+
55160
+ me.myEventCls.onIds("#" + me.pre + "reset_menupref", "click", function(e) { me.icn3d;
55161
+ me.htmlCls.shownMenus = me.hashUtilsCls.cloneHash(me.htmlCls.simpleMenus);
55162
+
55163
+ thisClass.applyShownMenus();
55164
+ thisClass.displayShownMenus();
55165
+ });
55166
+
55167
+ me.myEventCls.onIds("#" + me.pre + "reset_menupref_all", "click", function(e) { me.icn3d;
55168
+ me.htmlCls.shownMenus = me.hashUtilsCls.cloneHash(me.htmlCls.allMenus);
55169
+
55170
+ thisClass.applyShownMenus();
55171
+ thisClass.displayShownMenus();
55172
+ });
55173
+
55174
+ me.myEventCls.onIds("#" + me.pre + "savepref", "click", function(e) { let ic = me.icn3d;
55175
+ let menuStr = '[';
55176
+
55177
+ var checkboxes = document.querySelectorAll('form[name="' + me.pre + 'selmenu"] input:checked');
55178
+ let cnt = 0;
55179
+ for (var checkbox of checkboxes) {
55180
+ if(cnt > 0) menuStr += ', ';
55181
+ menuStr += '"' + checkbox.value + '"';
55182
+ ++cnt;
55183
+ }
55184
+
55185
+ menuStr += ']';
55186
+
55187
+ ic.saveFileCls.saveFile('icn3d_shown_menus.txt', 'text', [menuStr]);
55188
+ });
55189
+
55190
+ me.myEventCls.onIds("#" + me.pre + "reload_menupreffile", "click", function(e) { me.icn3d;
55191
+ e.preventDefault();
55192
+ if(!me.cfg.notebook) dialog.dialog( "close" );
55193
+ let file = $("#" + me.pre + "menupreffile")[0].files[0];
55194
+ if(!file) {
55195
+ alert("Please select a file before clicking 'Load'");
55196
+ }
55197
+ else {
55198
+ me.htmlCls.setHtmlCls.fileSupport();
55199
+ let reader = new FileReader();
55200
+ reader.onload = function(e) {
55201
+ let dataStr = e.target.result; // or = reader.result;
55202
+ let idArray = JSON.parse(dataStr);
55203
+
55204
+ me.htmlCls.shownMenus = {};
55205
+ for(let i = 0, il = idArray.length; i < il; ++i) {
55206
+ me.htmlCls.shownMenus[idArray[i]] = 1;
55207
+ }
55208
+
55209
+ thisClass.applyShownMenus();
55210
+ thisClass.displayShownMenus();
55211
+ };
55212
+ reader.readAsText(file);
55213
+ }
55214
+ });
55215
+
55216
+ me.myEventCls.onIds("#" + me.pre + "mn1_menuloadpref", "click", function(e) { me.icn3d;
55217
+ me.htmlCls.dialogCls.openDlg('dl_menuloadpref', 'Please input the menu preference file');
55218
+ });
55219
+
55220
+
54656
55221
  // },
54657
55222
  // clkMn1_link_structure: function() {
54658
55223
  me.myEventCls.onIds("#" + me.pre + "mn1_link_structure", "click", function(e) { let ic = me.icn3d;
@@ -56296,8 +56861,9 @@ class ClickMenu {
56296
56861
  // },
56297
56862
  // clkmn5_setThickness: function() {
56298
56863
  me.myEventCls.onIds("#" + me.pre + "mn3_setThickness", "click", function(e) { me.icn3d;
56299
- me.htmlCls.dialogCls.openDlg('dl_thickness2', 'Preferences');
56864
+ me.htmlCls.dialogCls.openDlg('dl_thickness2', 'Style Preferences');
56300
56865
  });
56866
+
56301
56867
  // },
56302
56868
  // clkmn1_thicknessReset: function() {
56303
56869
  /*
@@ -56439,26 +57005,24 @@ class SetMenu {
56439
57005
  let tdStr = '<td valign="top">';
56440
57006
  html += tdStr + this.setMenu1() + '</td>';
56441
57007
 
56442
- //if(!me.cfg.simplemenu) {
56443
- html += tdStr + this.setMenu2() + '</td>';
56444
- //}
57008
+ html += tdStr + this.setMenu2() + '</td>';
56445
57009
 
56446
57010
  html += tdStr + this.setMenu2b() + '</td>';
56447
57011
  html += tdStr + this.setMenu3() + '</td>';
56448
57012
  html += tdStr + this.setMenu4() + '</td>';
56449
57013
 
56450
- //if(!me.cfg.simplemenu) {
56451
- html += tdStr + this.setMenu5() + '</td>';
56452
- //html += tdStr + this.setMenu5b() + '</td>';
56453
- html += tdStr + this.setMenu6() + '</td>';
57014
+ html += tdStr + this.setMenu5() + '</td>';
57015
+ //html += tdStr + this.setMenu5b() + '</td>';
57016
+ html += tdStr + this.setMenu6() + '</td>';
56454
57017
 
56455
- html += tdStr + "<div style='position:relative; margin-left:6px;'>" + str1;
56456
- html += "<div class='icn3d-commandTitle' style='min-width:40px; margin-top: 3px; white-space: nowrap;'>" + str2;
57018
+ me.htmlCls.shownMenus = me.hashUtilsCls.cloneHash(me.htmlCls.simpleMenus);
56457
57019
 
56458
- 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>';
57020
+ html += tdStr + "<div style='position:relative; margin-left:6px;'>" + str1;
57021
+ html += "<div class='icn3d-commandTitle' style='min-width:40px; margin-top: 3px; white-space: nowrap;'>" + str2;
56459
57022
 
56460
- 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>';
56461
- //}
57023
+ 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>';
57024
+
57025
+ 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>';
56462
57026
 
56463
57027
  html += "</tr>";
56464
57028
  html += "</table>";
@@ -56574,6 +57138,8 @@ class SetMenu {
56574
57138
  html += liStr + ">Help</span>";
56575
57139
  html += this.setMenu6_base();
56576
57140
 
57141
+ me.htmlCls.shownMenus = me.hashUtilsCls.cloneHash(me.htmlCls.simpleMenus);
57142
+
56577
57143
  html += "<li><div style='position:relative; margin-top:-6px;'>" + str1;
56578
57144
  html += "<div class='icn3d-commandTitle' style='margin-top: 3px; white-space: nowrap;'>" + str2;
56579
57145
 
@@ -56872,159 +57438,157 @@ class SetMenu {
56872
57438
  let html = "";
56873
57439
 
56874
57440
  html += "<ul class='icn3d-mn-item'>";
56875
- html += "<li><a href='https://www.ncbi.nlm.nih.gov/structure' target='_blank'>Search Structure " + me.htmlCls.wifiStr + "</a></li>";
57441
+ //html += "<li><a href='https://www.ncbi.nlm.nih.gov/structure' target='_blank'>Search Structure " + me.htmlCls.wifiStr + "</a></li>";
57442
+ html += me.htmlCls.setHtmlCls.getMenuUrl('mn1_searchstru', "https://www.ncbi.nlm.nih.gov/structure", "Search Structure " + me.htmlCls.wifiStr, 1, 1);
56876
57443
 
56877
- html += "<li><span>Search Similar</span>";
57444
+ //html += "<li><span>Search Similar</span>";
57445
+ html += me.htmlCls.setHtmlCls.getMenuText('mn1_searchsimilar', 'Search Similar', undefined, undefined, 1);
56878
57446
  html += "<ul>";
56879
- html += me.htmlCls.setHtmlCls.getLink('mn1_vastplus', 'NCBI VAST+ (PDB Assembly)' + me.htmlCls.wifiStr);
56880
- html += me.htmlCls.setHtmlCls.getLink('mn1_vast', 'NCBI VAST (PDB)' + me.htmlCls.wifiStr);
56881
- html += me.htmlCls.setHtmlCls.getLink('mn1_foldseek', 'Foldseek (PDB & AlphaFold)' + me.htmlCls.wifiStr);
57447
+ html += me.htmlCls.setHtmlCls.getLink('mn1_vastplus', 'NCBI VAST+ (PDB Assembly)' + me.htmlCls.wifiStr, undefined, 2);
57448
+ html += me.htmlCls.setHtmlCls.getLink('mn1_vast', 'NCBI VAST (PDB)' + me.htmlCls.wifiStr, undefined, 2);
57449
+ html += me.htmlCls.setHtmlCls.getLink('mn1_foldseek', 'Foldseek (PDB & AlphaFold)' + me.htmlCls.wifiStr, undefined, 2);
56882
57450
  html += "</ul>";
57451
+ html += "</li>";
56883
57452
 
56884
- html += "<li><span>Retrieve by ID</span>";
57453
+ //html += "<li><span>Retrieve by ID</span>";
57454
+ html += me.htmlCls.setHtmlCls.getMenuText('mn1_retrievebyid', 'Retrieve by ID', undefined, 1, 1);
56885
57455
  html += "<ul>";
56886
- html += me.htmlCls.setHtmlCls.getLink('mn1_mmdbid', 'MMDB ID ' + me.htmlCls.wifiStr);
56887
- html += me.htmlCls.setHtmlCls.getLink('mn1_mmtfid', 'MMTF ID ' + me.htmlCls.wifiStr);
56888
- html += me.htmlCls.setHtmlCls.getLink('mn1_pdbid', 'PDB ID ' + me.htmlCls.wifiStr);
56889
- html += me.htmlCls.setHtmlCls.getLink('mn1_afid', 'AlphaFold UniProt ID ' + me.htmlCls.wifiStr);
56890
- html += me.htmlCls.setHtmlCls.getLink('mn1_mmdbafid', 'MMDB or AlphaFold IDs' + me.htmlCls.wifiStr);
56891
- if(!me.cfg.simplemenu) {
56892
- html += me.htmlCls.setHtmlCls.getLink('mn1_opmid', 'OPM PDB ID ' + me.htmlCls.wifiStr);
56893
- html += me.htmlCls.setHtmlCls.getLink('mn1_mmcifid', 'mmCIF ID ' + me.htmlCls.wifiStr);
56894
- html += me.htmlCls.setHtmlCls.getLink('mn1_gi', 'NCBI gi ' + me.htmlCls.wifiStr);
56895
- }
57456
+
57457
+ html += me.htmlCls.setHtmlCls.getLink('mn1_mmdbafid', 'PDB/MMDB/AlphaFold IDs' + me.htmlCls.wifiStr, 1, 2);
57458
+ html += me.htmlCls.setHtmlCls.getLink('mn1_mmdbid', 'MMDB ID ' + me.htmlCls.wifiStr, undefined, 2);
57459
+ html += me.htmlCls.setHtmlCls.getLink('mn1_mmtfid', 'MMTF ID ' + me.htmlCls.wifiStr, undefined, 2);
57460
+ html += me.htmlCls.setHtmlCls.getLink('mn1_pdbid', 'PDB ID ' + me.htmlCls.wifiStr, undefined, 2);
57461
+ html += me.htmlCls.setHtmlCls.getLink('mn1_afid', 'AlphaFold UniProt ID ' + me.htmlCls.wifiStr, undefined, 2);
57462
+ html += me.htmlCls.setHtmlCls.getLink('mn1_opmid', 'OPM PDB ID ' + me.htmlCls.wifiStr, undefined, 2);
57463
+ html += me.htmlCls.setHtmlCls.getLink('mn1_mmcifid', 'mmCIF ID ' + me.htmlCls.wifiStr, undefined, 2);
57464
+ html += me.htmlCls.setHtmlCls.getLink('mn1_gi', 'NCBI gi ' + me.htmlCls.wifiStr, undefined, 2);
57465
+
56896
57466
  //html += me.htmlCls.setHtmlCls.getLink('mn1_uniprotid', 'UniProt ID ' + me.htmlCls.wifiStr);
56897
- html += me.htmlCls.setHtmlCls.getLink('mn1_cid', 'PubChem CID ' + me.htmlCls.wifiStr);
57467
+ html += me.htmlCls.setHtmlCls.getLink('mn1_cid', 'PubChem CID ' + me.htmlCls.wifiStr, 1, 2);
56898
57468
 
56899
57469
  html += "</ul>";
56900
57470
  html += "</li>";
56901
- html += "<li><span>Open File</span>";
57471
+
57472
+ //html += "<li><span>Open File</span>";
57473
+ html += me.htmlCls.setHtmlCls.getMenuText('mn1_openfile', 'Open File', undefined, 1, 1);
56902
57474
  html += "<ul>";
56903
57475
  // html += me.htmlCls.setHtmlCls.getLink('mn1_pdbfile', 'PDB File');
56904
57476
  // html += me.htmlCls.setHtmlCls.getLink('mn1_pdbfile_app', 'PDB File (append)');
56905
- html += me.htmlCls.setHtmlCls.getLink('mn1_pdbfile_app', 'PDB Files (appendable)');
56906
- if(!me.cfg.simplemenu) html += me.htmlCls.setHtmlCls.getLink('mn1_mmciffile', 'mmCIF File');
56907
- html += me.htmlCls.setHtmlCls.getLink('mn1_mol2file', 'Mol2 File');
56908
- html += me.htmlCls.setHtmlCls.getLink('mn1_sdffile', 'SDF File');
56909
- html += me.htmlCls.setHtmlCls.getLink('mn1_xyzfile', 'XYZ File');
56910
- html += me.htmlCls.setHtmlCls.getLink('mn1_afmapfile', 'AlphaFold PAE File');
56911
-
56912
- if(!me.cfg.simplemenu) html += me.htmlCls.setHtmlCls.getLink('mn1_urlfile', 'URL(Same Host) ' + me.htmlCls.wifiStr);
56913
- html += "<li>-</li>";
56914
- html += me.htmlCls.setHtmlCls.getLink('mn1_pngimage', 'iCn3D PNG Image');
56915
- html += me.htmlCls.setHtmlCls.getLink('mn1_state', 'State/Script File');
56916
- if(!me.cfg.simplemenu) html += me.htmlCls.setHtmlCls.getLink('mn1_fixedversion', 'Share Link in Archived Ver. ' + me.htmlCls.wifiStr);
56917
- html += me.htmlCls.setHtmlCls.getLink('mn1_selection', 'Selection File');
56918
-
56919
- if(!me.cfg.simplemenu) {
56920
- html += "<li>-</li>";
56921
-
56922
- html += "<li><span>Electron Density(DSN6)</span>";
56923
- html += "<ul>";
56924
- html += me.htmlCls.setHtmlCls.getLink('mn1_dsn6', 'Local File');
56925
- html += me.htmlCls.setHtmlCls.getLink('mn1_dsn6url', 'URL(Same Host) ' + me.htmlCls.wifiStr);
56926
- html += "</ul>";
56927
- }
57477
+ html += me.htmlCls.setHtmlCls.getLink('mn1_pdbfile_app', 'PDB Files (appendable)', 1, 2);
57478
+ html += me.htmlCls.setHtmlCls.getLink('mn1_mmciffile', 'mmCIF File', undefined, 2);
57479
+ html += me.htmlCls.setHtmlCls.getLink('mn1_mol2file', 'Mol2 File', undefined, 2);
57480
+ html += me.htmlCls.setHtmlCls.getLink('mn1_sdffile', 'SDF File', undefined, 2);
57481
+ html += me.htmlCls.setHtmlCls.getLink('mn1_xyzfile', 'XYZ File', undefined, 2);
57482
+ html += me.htmlCls.setHtmlCls.getLink('mn1_afmapfile', 'AlphaFold PAE File', undefined, 2);
57483
+
57484
+ html += me.htmlCls.setHtmlCls.getLink('mn1_urlfile', 'URL(Same Host) ' + me.htmlCls.wifiStr, undefined, 2);
57485
+ html += me.htmlCls.setHtmlCls.getMenuSep();
57486
+ html += me.htmlCls.setHtmlCls.getLink('mn1_pngimage', 'iCn3D PNG Image', 1, 2);
57487
+ html += me.htmlCls.setHtmlCls.getLink('mn1_state', 'State/Script File', undefined, 2);
57488
+ html += me.htmlCls.setHtmlCls.getLink('mn1_fixedversion', 'Share Link in Archived Ver. ' + me.htmlCls.wifiStr, undefined, 2);
57489
+ html += me.htmlCls.setHtmlCls.getLink('mn1_selection', 'Selection File', undefined, 2);
57490
+
57491
+ html += me.htmlCls.setHtmlCls.getMenuSep();
57492
+
57493
+ //html += "<li><span>Electron Density(DSN6)</span>";
57494
+ html += me.htmlCls.setHtmlCls.getMenuText('mn1_dsn6wrap', 'Electron Density(DSN6)', undefined, undefined, 2);
57495
+ html += "<ul>";
57496
+ html += me.htmlCls.setHtmlCls.getLink('mn1_dsn6', 'Local File', undefined, 3);
57497
+ html += me.htmlCls.setHtmlCls.getLink('mn1_dsn6url', 'URL(Same Host) ' + me.htmlCls.wifiStr, undefined, 3);
57498
+ html += "</ul>";
56928
57499
 
56929
57500
  html += "</ul>";
56930
57501
  html += "</li>";
56931
- html += "<li><span>Align</span>";
57502
+
57503
+ //html += "<li><span>Align</span>";
57504
+ html += me.htmlCls.setHtmlCls.getMenuText('mn1_alignwrap', 'Align', undefined, 1, 1);
56932
57505
  html += "<ul>";
56933
57506
 
56934
- html += "<li><span>Multiple Chains</span>";
57507
+ //html += "<li><span>Multiple Chains</span>";
57508
+ html += me.htmlCls.setHtmlCls.getMenuText('mn1_chainalignwrap', 'Multiple Chains', undefined, 1, 2);
56935
57509
  html += "<ul>";
56936
- html += me.htmlCls.setHtmlCls.getRadio('mn1_chainalignRad', 'mn1_chainalign', 'by Structure Alignment ' + me.htmlCls.wifiStr);
56937
- html += me.htmlCls.setHtmlCls.getRadio('mn1_chainalignRad', 'mn1_chainalign2', 'by Sequence Alignment ' + me.htmlCls.wifiStr);
56938
- html += me.htmlCls.setHtmlCls.getRadio('mn1_chainalignRad', 'mn1_chainalign3', 'Residue by Residue');
57510
+ html += me.htmlCls.setHtmlCls.getRadio('mn1_chainalignRad', 'mn1_chainalign', 'by Structure Alignment ' + me.htmlCls.wifiStr, undefined, 1, 3);
57511
+ html += me.htmlCls.setHtmlCls.getRadio('mn1_chainalignRad', 'mn1_chainalign2', 'by Sequence Alignment ' + me.htmlCls.wifiStr, undefined, 1, 3);
57512
+ html += me.htmlCls.setHtmlCls.getRadio('mn1_chainalignRad', 'mn1_chainalign3', 'Residue by Residue', undefined, undefined, 3);
56939
57513
  html += "</ul>";
56940
57514
  html += "</li>";
56941
57515
 
56942
- html += "<li><span>Structure to Structure</span>";
57516
+ //html += "<li><span>Structure to Structure</span>";
57517
+ html += me.htmlCls.setHtmlCls.getMenuText('mn1_aligntwostru', 'Structure to Structure', undefined, undefined, 2);
56943
57518
  html += "<ul>";
56944
- html += me.htmlCls.setHtmlCls.getLink('mn1_align', 'Two PDB Structures ' + me.htmlCls.wifiStr);
56945
- html += me.htmlCls.setHtmlCls.getLink('mn1_alignaf', 'Two AlphaFold Structures ' + me.htmlCls.wifiStr);
57519
+ html += me.htmlCls.setHtmlCls.getLink('mn1_align', 'Two PDB Structures ' + me.htmlCls.wifiStr, undefined, 3);
57520
+ html += me.htmlCls.setHtmlCls.getLink('mn1_alignaf', 'Two AlphaFold Structures ' + me.htmlCls.wifiStr, undefined, 3);
56946
57521
  html += "</ul>";
56947
57522
 
56948
- html += me.htmlCls.setHtmlCls.getLink('mn1_blast_rep_id', 'Sequence to Structure');
57523
+ html += me.htmlCls.setHtmlCls.getLink('mn1_blast_rep_id', 'Sequence to Structure', undefined, 2);
56949
57524
 
56950
57525
  html += "</ul>";
56951
57526
  html += "</li>";
56952
57527
 
56953
- html += "<li id='" + me.pre + "mn2_realignWrap'><span>Realign Selection</span>";
57528
+ //html += "<li id='" + me.pre + "mn2_realignWrap'><span>Realign Selection</span>";
57529
+ html += me.htmlCls.setHtmlCls.getMenuText('mn2_realignWrap', 'Realign Selection', undefined, undefined, 1);
56954
57530
  html += "<ul>";
56955
57531
 
56956
- html += me.htmlCls.setHtmlCls.getRadio('mn2_realign', 'mn2_realignonstruct', 'by Structure Alignment ' + me.htmlCls.wifiStr);
57532
+ html += me.htmlCls.setHtmlCls.getRadio('mn2_realign', 'mn2_realignonstruct', 'by Structure Alignment ' + me.htmlCls.wifiStr, undefined, undefined, 2);
56957
57533
 
56958
- html += me.htmlCls.setHtmlCls.getRadio('mn2_realign', 'mn2_realignonseqalign', 'by Sequence Alignment ' + me.htmlCls.wifiStr);
56959
- html += me.htmlCls.setHtmlCls.getRadio('mn2_realign', 'mn2_realignresbyres', 'Residue by Residue');
57534
+ html += me.htmlCls.setHtmlCls.getRadio('mn2_realign', 'mn2_realignonseqalign', 'by Sequence Alignment ' + me.htmlCls.wifiStr, undefined, undefined, 2);
57535
+ html += me.htmlCls.setHtmlCls.getRadio('mn2_realign', 'mn2_realignresbyres', 'Residue by Residue', undefined, undefined, 2);
56960
57536
  html += "</ul>";
56961
57537
  html += "</li>";
56962
57538
 
56963
- html += "<li><span>3D Printing</span>";
57539
+ //html += "<li><span>3D Printing</span>";
57540
+ html += me.htmlCls.setHtmlCls.getMenuText('mn1_3dpprint', '3D Printing', undefined, 1, 1);
56964
57541
  html += "<ul>";
56965
57542
  if(me.cfg.cid === undefined) {
56966
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportVrmlStab', 'WRL/VRML(Color, W/ Stab.)');
56967
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportStlStab', 'STL(W/ Stabilizers)');
56968
- html += "<li>-</li>";
56969
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportVrml', 'WRL/VRML(Color)');
56970
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportStl', 'STL');
56971
-
56972
- if(!me.cfg.simplemenu) {
56973
- html += "<li>-</li>";
56974
- html += me.htmlCls.setHtmlCls.getLink('mn1_stabilizerYes', 'Add All Stabilizers');
56975
- html += me.htmlCls.setHtmlCls.getLink('mn1_stabilizerNo', 'Remove All Stabilizers');
56976
- html += "<li>-</li>";
56977
- html += me.htmlCls.setHtmlCls.getLink('mn1_stabilizerOne', 'Add One Stabilizer');
56978
- html += me.htmlCls.setHtmlCls.getLink('mn1_stabilizerRmOne', 'Remove One Stabilizer');
56979
- html += "<li>-</li>";
56980
- html += me.htmlCls.setHtmlCls.getLink('mn1_thicknessSet', 'Set Thickness');
56981
- //html += me.htmlCls.setHtmlCls.getLink('mn1_thicknessReset', 'Reset Thickness');
56982
- }
57543
+ html += me.htmlCls.setHtmlCls.getLink('mn1_exportVrmlStab', 'WRL/VRML(Color, W/ Stab.)', 1, 2);
57544
+ html += me.htmlCls.setHtmlCls.getLink('mn1_exportStlStab', 'STL(W/ Stabilizers)', 1, 2);
57545
+ html += me.htmlCls.setHtmlCls.getMenuSep();
57546
+ html += me.htmlCls.setHtmlCls.getLink('mn1_exportVrml', 'WRL/VRML(Color)', undefined, 2);
57547
+ html += me.htmlCls.setHtmlCls.getLink('mn1_exportStl', 'STL', undefined, 2);
57548
+
57549
+ html += me.htmlCls.setHtmlCls.getMenuSep();
57550
+ html += me.htmlCls.setHtmlCls.getLink('mn1_stabilizerYes', 'Add All Stabilizers', undefined, 2);
57551
+ html += me.htmlCls.setHtmlCls.getLink('mn1_stabilizerNo', 'Remove All Stabilizers', undefined, 2);
57552
+ html += me.htmlCls.setHtmlCls.getMenuSep();
57553
+ html += me.htmlCls.setHtmlCls.getLink('mn1_stabilizerOne', 'Add One Stabilizer', undefined, 2);
57554
+ html += me.htmlCls.setHtmlCls.getLink('mn1_stabilizerRmOne', 'Remove One Stabilizer', undefined, 2);
57555
+ html += me.htmlCls.setHtmlCls.getMenuSep();
57556
+ html += me.htmlCls.setHtmlCls.getLink('mn1_thicknessSet', 'Set Thickness', undefined, 2);
56983
57557
  }
56984
57558
  else {
56985
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportVrml', 'VRML(Color)');
56986
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportStl', 'STL');
57559
+ html += me.htmlCls.setHtmlCls.getLink('mn1_exportVrml', 'VRML(Color)', 1, 2);
57560
+ html += me.htmlCls.setHtmlCls.getLink('mn1_exportStl', 'STL', 1, 2);
56987
57561
  }
56988
57562
 
56989
57563
  html += "</ul>";
56990
57564
  html += "</li>";
56991
57565
 
56992
- html += "<li><span>Save Files</span>";
57566
+ //html += "<li><span>Save File</span>";
57567
+ html += me.htmlCls.setHtmlCls.getMenuText('mn1_savefile', 'Save File', undefined, 1, 1);
56993
57568
  html += "<ul>";
56994
- //html += me.htmlCls.setHtmlCls.getLink('mn1_exportCanvas', 'iCn3D PNG Image');
56995
-
56996
- html += "<li><span>iCn3D PNG Image</span>";
57569
+ //html += "<li><span>iCn3D PNG Image</span>";
57570
+ html += me.htmlCls.setHtmlCls.getMenuText('mn1_savepngimage', 'iCn3D PNG Image', undefined, 1, 2);
56997
57571
  html += "<ul>";
56998
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportCanvas', 'Original Size & HTML');
56999
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportCanvas1', 'Original Size');
57000
- if(!me.cfg.simplemenu) {
57001
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportCanvas2', '2X Large');
57002
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportCanvas4', '4X Large');
57003
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportCanvas8', '8X Large');
57004
- }
57005
- html += "</ul>";
57006
- html += "</li>";
57572
+ html += me.htmlCls.setHtmlCls.getLink('mn1_exportCanvas', 'Original Size & HTML', 1, 3);
57573
+ html += me.htmlCls.setHtmlCls.getLink('mn1_exportCanvas1', 'Original Size', undefined, 3);
57007
57574
 
57008
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportState', 'State File');
57009
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportSelections', 'Selection File');
57010
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportSelDetails', 'Selection Details');
57011
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportCounts', 'Residue Counts');
57575
+ html += me.htmlCls.setHtmlCls.getLink('mn1_exportCanvas2', '2X Large', undefined, 3);
57576
+ html += me.htmlCls.setHtmlCls.getLink('mn1_exportCanvas4', '4X Large', undefined, 3);
57577
+ html += me.htmlCls.setHtmlCls.getLink('mn1_exportCanvas8', '8X Large', undefined, 3);
57012
57578
 
57013
- /*
57014
- html += "<li><span>PDB</span>";
57015
- html += "<ul>";
57016
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportPdbRes', 'Selected Residues');
57017
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportPdbChain', 'Selected Chains');
57018
- html += "<li><br/></li>";
57019
57579
  html += "</ul>";
57020
57580
  html += "</li>";
57021
- */
57022
57581
 
57023
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportPdbRes', 'PDB');
57024
- html += me.htmlCls.setHtmlCls.getLink('delphipdbh', 'PDB with Hydrogens');
57582
+ html += me.htmlCls.setHtmlCls.getLink('mn1_exportState', 'State File', undefined, 2);
57583
+ html += me.htmlCls.setHtmlCls.getLink('mn1_exportSelections', 'Selection File', undefined, 2);
57584
+ html += me.htmlCls.setHtmlCls.getLink('mn1_exportSelDetails', 'Selection Details', undefined, 2);
57585
+ html += me.htmlCls.setHtmlCls.getLink('mn1_exportCounts', 'Residue Counts', undefined, 2);
57586
+
57587
+ html += me.htmlCls.setHtmlCls.getLink('mn1_exportPdbRes', 'PDB', 1, 2);
57588
+ html += me.htmlCls.setHtmlCls.getLink('delphipdbh', 'PDB with Hydrogens', undefined, 2);
57025
57589
 
57026
57590
  if(me.cfg.cid === undefined) {
57027
- html += me.htmlCls.setHtmlCls.getLink('mn1_exportSecondary', 'Secondary Structure');
57591
+ html += me.htmlCls.setHtmlCls.getLink('mn1_exportSecondary', 'Secondary Structure', undefined, 2);
57028
57592
  }
57029
57593
 
57030
57594
  html += "<li><br/></li>";
@@ -57032,9 +57596,21 @@ class SetMenu {
57032
57596
  html += "</ul>";
57033
57597
  html += "</li>";
57034
57598
 
57035
- html += me.htmlCls.setHtmlCls.getLink('mn1_sharelink', 'Share Link ' + me.htmlCls.wifiStr);
57599
+ html += me.htmlCls.setHtmlCls.getLink('mn1_sharelink', 'Share Link ' + me.htmlCls.wifiStr, 1, 1);
57600
+
57601
+ html += me.htmlCls.setHtmlCls.getLink('mn1_replayon', 'Replay Each Step', undefined, 1);
57036
57602
 
57037
- html += me.htmlCls.setHtmlCls.getLink('mn1_replayon', 'Replay Each Step');
57603
+ html += me.htmlCls.setHtmlCls.getMenuSep();
57604
+
57605
+ html += me.htmlCls.setHtmlCls.getMenuText('mn1_menuwrap', 'Customize Menus', undefined, 1, 1);
57606
+ html += "<ul>";
57607
+ html += me.htmlCls.setHtmlCls.getLink('mn1_menuall', 'All Menus', 1, 2);
57608
+ html += me.htmlCls.setHtmlCls.getLink('mn1_menusimple', 'Simple Menus', 1, 2);
57609
+ html += me.htmlCls.setHtmlCls.getMenuSep();
57610
+ html += me.htmlCls.setHtmlCls.getLink('mn1_menupref', 'Preferences', 1, 2);
57611
+ html += me.htmlCls.setHtmlCls.getLink('mn1_menuloadpref', 'Load Preferences', 1, 2);
57612
+ html += "</ul>";
57613
+ html += "</li>";
57038
57614
 
57039
57615
  html += "<li><br/></li>";
57040
57616
 
@@ -57070,87 +57646,86 @@ class SetMenu {
57070
57646
 
57071
57647
  html += "<ul class='icn3d-mn-item'>";
57072
57648
 
57073
- if(!me.cfg.simplemenu) html += me.htmlCls.setHtmlCls.getLink('mn2_definedsets', 'Defined Sets');
57074
- html += me.htmlCls.setHtmlCls.getLink('mn2_selectall', 'All');
57075
- if(!me.cfg.simplemenu) html += me.htmlCls.setHtmlCls.getLink('mn2_selectdisplayed', 'Displayed Set');
57076
- html += me.htmlCls.setHtmlCls.getLink('mn2_aroundsphere', 'by Distance');
57649
+ html += me.htmlCls.setHtmlCls.getLink('mn2_definedsets', 'Defined Sets', 1, 1);
57650
+ html += me.htmlCls.setHtmlCls.getLink('mn2_selectall', 'All', undefined, 1);
57651
+ html += me.htmlCls.setHtmlCls.getLink('mn2_selectdisplayed', 'Displayed Set', undefined, 1);
57652
+ html += me.htmlCls.setHtmlCls.getLink('mn2_aroundsphere', 'by Distance', 1, 1);
57077
57653
 
57078
- html += "<li><span>by Property</span>";
57654
+ //html += "<li><span>by Property</span>";
57655
+ html += me.htmlCls.setHtmlCls.getMenuText('mn2_selbyprop', 'by Property', undefined, undefined, 1);
57079
57656
  html += "<ul>";
57080
- html += me.htmlCls.setHtmlCls.getLink('mn2_propPos', 'Positive');
57081
- html += me.htmlCls.setHtmlCls.getLink('mn2_propNeg', 'Negative');
57082
- html += me.htmlCls.setHtmlCls.getLink('mn2_propHydro', 'Hydrophobic');
57083
- html += me.htmlCls.setHtmlCls.getLink('mn2_propPolar', 'Polar');
57084
- html += me.htmlCls.setHtmlCls.getLink('mn2_propBfactor', 'B-factor');
57085
- html += me.htmlCls.setHtmlCls.getLink('mn2_propSolAcc', 'Solvent Accessibility');
57657
+ html += me.htmlCls.setHtmlCls.getLink('mn2_propPos', 'Positive', undefined, 2);
57658
+ html += me.htmlCls.setHtmlCls.getLink('mn2_propNeg', 'Negative', undefined, 2);
57659
+ html += me.htmlCls.setHtmlCls.getLink('mn2_propHydro', 'Hydrophobic', undefined, 2);
57660
+ html += me.htmlCls.setHtmlCls.getLink('mn2_propPolar', 'Polar', undefined, 2);
57661
+ html += me.htmlCls.setHtmlCls.getLink('mn2_propBfactor', 'B-factor', undefined, 2);
57662
+ html += me.htmlCls.setHtmlCls.getLink('mn2_propSolAcc', 'Solvent Accessibility', undefined, 2);
57086
57663
  html += "</ul>";
57087
57664
  html += "</li>";
57088
57665
 
57089
- if(!me.cfg.simplemenu) {
57090
- html += me.htmlCls.setHtmlCls.getLink('mn2_selectcomplement', 'Inverse');
57091
- html += me.htmlCls.setHtmlCls.getLink('mn2_selectmainchains', 'Main Chains');
57092
- html += me.htmlCls.setHtmlCls.getLink('mn2_selectsidechains', 'Side Chains');
57093
- html += me.htmlCls.setHtmlCls.getLink('mn2_selectmainsidechains', 'Main & Side Chains');
57094
- html += me.htmlCls.setHtmlCls.getLink('mn2_command', 'Advanced');
57095
- }
57666
+ html += me.htmlCls.setHtmlCls.getLink('mn2_selectcomplement', 'Inverse', undefined, 1);
57667
+ html += me.htmlCls.setHtmlCls.getLink('mn2_selectmainchains', 'Main Chains', undefined, 1);
57668
+ html += me.htmlCls.setHtmlCls.getLink('mn2_selectsidechains', 'Side Chains', undefined, 1);
57669
+ html += me.htmlCls.setHtmlCls.getLink('mn2_selectmainsidechains', 'Main & Side Chains', undefined, 1);
57670
+ html += me.htmlCls.setHtmlCls.getLink('mn2_command', 'Advanced', undefined, 1);
57096
57671
 
57097
57672
  if(me.cfg.cid === undefined) {
57098
- html += "<li><span>Select on 3D</span>";
57673
+ //html += "<li><span>Select on 3D</span>";
57674
+ html += me.htmlCls.setHtmlCls.getMenuText('mn2_selon3d', 'Select on 3D', undefined, 1, 1);
57099
57675
  html += "<ul>";
57100
57676
 
57101
57677
  html += "<li>\"Alt\"+Click: start selection</li>";
57102
57678
  html += "<li>\"Ctrl\"+Click: union selection</li>";
57103
57679
  html += "<li>\"Shift\"+Click: range Selection</li>";
57104
- html += "<li>-</li>";
57105
- html += me.htmlCls.setHtmlCls.getRadio('mn2_pk', 'mn2_pkChain', 'Chain');
57680
+ html += me.htmlCls.setHtmlCls.getMenuSep();
57681
+ html += me.htmlCls.setHtmlCls.getRadio('mn2_pk', 'mn2_pkChain', 'Chain', undefined, 1, 2);
57106
57682
  if(me.cfg.mmdbid !== undefined || me.cfg.gi !== undefined) {
57107
- html += me.htmlCls.setHtmlCls.getRadio('mn2_pk', 'mn2_pkDomain', '3D Domain');
57683
+ html += me.htmlCls.setHtmlCls.getRadio('mn2_pk', 'mn2_pkDomain', '3D Domain', undefined, undefined, 2);
57108
57684
  }
57109
- html += me.htmlCls.setHtmlCls.getRadio('mn2_pk', 'mn2_pkStrand', 'Strand/Helix');
57110
- html += me.htmlCls.setHtmlCls.getRadio('mn2_pk', 'mn2_pkResidue', 'Residue', true);
57111
- html += me.htmlCls.setHtmlCls.getRadio('mn2_pk', 'mn2_pkYes', 'Atom');
57112
- html += me.htmlCls.setHtmlCls.getRadio('mn2_pk', 'mn2_pkNo', 'None');
57685
+ html += me.htmlCls.setHtmlCls.getRadio('mn2_pk', 'mn2_pkStrand', 'Strand/Helix', undefined, undefined, 2);
57686
+ html += me.htmlCls.setHtmlCls.getRadio('mn2_pk', 'mn2_pkResidue', 'Residue', true, 1, 2);
57687
+ html += me.htmlCls.setHtmlCls.getRadio('mn2_pk', 'mn2_pkYes', 'Atom', undefined, 1, 2);
57688
+ html += me.htmlCls.setHtmlCls.getRadio('mn2_pk', 'mn2_pkNo', 'None', undefined, undefined, 2);
57113
57689
  html += "</ul>";
57114
57690
  html += "</li>";
57115
57691
  }
57116
57692
  else {
57117
57693
  if(me.utilsCls.isMobile()) {
57118
- html += "<li><span>Touch to pick</span>";
57694
+ html += "<li><span>Touch to pick</span></li>";
57119
57695
  }
57120
57696
  else {
57121
- html += "<li><span>Picking with<br>\"Alt\" + Click</span>";
57697
+ html += "<li><span>Picking with<br>\"Alt\" + Click</span></li>";
57122
57698
  }
57123
57699
  }
57124
57700
 
57125
- html += "<li>-</li>";
57701
+ html += me.htmlCls.setHtmlCls.getMenuSep();
57126
57702
 
57127
- html += me.htmlCls.setHtmlCls.getLink('mn2_saveselection', 'Save Selection');
57128
- html += me.htmlCls.setHtmlCls.getLink('clearall', 'Clear Selection');
57703
+ html += me.htmlCls.setHtmlCls.getLink('mn2_saveselection', 'Save Selection', 1, 1);
57704
+ html += me.htmlCls.setHtmlCls.getLink('clearall', 'Clear Selection', undefined, 1);
57129
57705
 
57130
- html += "<li>-</li>";
57706
+ html += me.htmlCls.setHtmlCls.getMenuSep();
57131
57707
 
57132
- if(!me.cfg.simplemenu) {
57133
- html += "<li><span>Highlight Color</span>";
57134
- html += "<ul>";
57135
- html += me.htmlCls.setHtmlCls.getRadio('mn2_hl_clr', 'mn2_hl_clrYellow', 'Yellow', true);
57136
- html += me.htmlCls.setHtmlCls.getRadio('mn2_hl_clr', 'mn2_hl_clrGreen', 'Green');
57137
- html += me.htmlCls.setHtmlCls.getRadio('mn2_hl_clr', 'mn2_hl_clrRed', 'Red');
57138
- html += "</ul>";
57139
- html += "</li>";
57140
- html += "<li><span>Highlight Style</span>";
57141
- html += "<ul>";
57708
+ //html += "<li><span>Highlight Color</span>";
57709
+ html += me.htmlCls.setHtmlCls.getMenuText('mn2_hlcolor', 'Highlight Color', undefined, undefined, 1);
57710
+ html += "<ul>";
57711
+ html += me.htmlCls.setHtmlCls.getRadio('mn2_hl_clr', 'mn2_hl_clrYellow', 'Yellow', true, undefined, 2);
57712
+ html += me.htmlCls.setHtmlCls.getRadio('mn2_hl_clr', 'mn2_hl_clrGreen', 'Green', undefined, undefined, 2);
57713
+ html += me.htmlCls.setHtmlCls.getRadio('mn2_hl_clr', 'mn2_hl_clrRed', 'Red', undefined, undefined, 2);
57714
+ html += "</ul>";
57715
+ html += "</li>";
57716
+ //html += "<li><span>Highlight Style</span>";
57717
+ html += me.htmlCls.setHtmlCls.getMenuText('mn2_hlstyle', 'Highlight Style', undefined, undefined, 1);
57718
+ html += "<ul>";
57142
57719
 
57143
- html += me.htmlCls.setHtmlCls.getRadio('mn2_hl_style', 'mn2_hl_styleOutline', 'Outline', true);
57144
- html += me.htmlCls.setHtmlCls.getRadio('mn2_hl_style', 'mn2_hl_styleObject', '3D Objects');
57145
- //html += me.htmlCls.setHtmlCls.getRadio('mn2_hl_style', 'mn2_hl_styleNone', 'No Highlight');
57720
+ html += me.htmlCls.setHtmlCls.getRadio('mn2_hl_style', 'mn2_hl_styleOutline', 'Outline', true, undefined, 2);
57721
+ html += me.htmlCls.setHtmlCls.getRadio('mn2_hl_style', 'mn2_hl_styleObject', '3D Objects', undefined, undefined, 2);
57146
57722
 
57147
- html += "</ul>";
57148
- html += "</li>";
57149
- }
57723
+ html += "</ul>";
57724
+ html += "</li>";
57150
57725
 
57151
57726
  //html += me.htmlCls.setHtmlCls.getLink('mn2_hl_styleNone', 'Clear Highlight');
57152
57727
 
57153
- html += me.htmlCls.setHtmlCls.getLink('toggleHighlight2', 'Toggle Highlight');
57728
+ html += me.htmlCls.setHtmlCls.getLink('toggleHighlight2', 'Toggle Highlight', 1, 1);
57154
57729
 
57155
57730
  html += "<li><br/></li>";
57156
57731
 
@@ -57184,108 +57759,104 @@ class SetMenu {
57184
57759
  let html = "";
57185
57760
  html += "<ul class='icn3d-mn-item'>";
57186
57761
 
57187
- html += me.htmlCls.setHtmlCls.getLink('mn2_show_selected', 'View Selection');
57188
- if(!me.cfg.simplemenu) html += me.htmlCls.setHtmlCls.getLink('mn2_hide_selected', 'Hide Selection');
57189
- html += me.htmlCls.setHtmlCls.getLink('mn2_selectedcenter', 'Zoom in Selection');
57190
- html += me.htmlCls.setHtmlCls.getLink('mn6_center', 'Center Selection');
57762
+ html += me.htmlCls.setHtmlCls.getLink('mn2_show_selected', 'View Selection', 1, 1);
57763
+ html += me.htmlCls.setHtmlCls.getLink('mn2_hide_selected', 'Hide Selection', 1, 1);
57764
+ html += me.htmlCls.setHtmlCls.getLink('mn2_selectedcenter', 'Zoom in Selection', 1, 1);
57765
+ html += me.htmlCls.setHtmlCls.getLink('mn6_center', 'Center Selection', undefined, 1);
57191
57766
  html += me.htmlCls.setHtmlCls.getLink('mn2_fullstru', 'View Full Structure');
57192
- html += "<li id='" + me.pre + "mn2_alternateWrap'><span id='" + me.pre + "mn2_alternate' class='icn3d-link'>Alternate(Key \"a\")</span></li>";
57767
+ //html += "<li id='" + me.pre + "mn2_alternateWrap'><span id='" + me.pre + "mn2_alternate' class='icn3d-link'>Alternate(Key \"a\")</span></li>";
57768
+ html += me.htmlCls.setHtmlCls.getLinkWrapper('mn2_alternate', 'Alternate(Key "a")', 'mn2_alternateWrap', undefined, 1);
57193
57769
 
57194
57770
  if(me.cfg.opmid !== undefined) {
57195
- html += "<li id='" + me.pre + "togglememli'><span id='" + me.pre + "togglemem' class='icn3d-link'>Toggle Membrane</span></li>";
57196
- html += "<li id='" + me.pre + "adjustmemli'><span id='" + me.pre + "adjustmem' class='icn3d-link'>Adjust Membrane</span></li>";
57197
- html += "<li id='" + me.pre + "selectplaneli'><span id='" + me.pre + "selectplane' class='icn3d-link'>Select between<br>Two X-Y Planes</span></li>";
57198
- }
57199
- else {
57200
- html += "<li id='" + me.pre + "togglememli' style='display:none'><span id='" + me.pre + "togglemem' class='icn3d-link'>Toggle Membrane</span></li>";
57201
- html += "<li id='" + me.pre + "adjustmemli' style='display:none'><span id='" + me.pre + "adjustmem' class='icn3d-link'>Adjust Membrane</span></li>";
57202
- 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>";
57771
+ //html += "<li id='" + me.pre + "togglememli'><span id='" + me.pre + "togglemem' class='icn3d-link'>Toggle Membrane</span></li>";
57772
+ html += me.htmlCls.setHtmlCls.getLinkWrapper('togglemem', 'Toggle Membrane', 'togglememli', undefined, 1);
57773
+ //html += "<li id='" + me.pre + "adjustmemli'><span id='" + me.pre + "adjustmem' class='icn3d-link'>Adjust Membrane</span></li>";
57774
+ html += me.htmlCls.setHtmlCls.getLinkWrapper('adjustmem', 'Adjust Membrane', 'adjustmemli', undefined, 1);
57775
+ //html += "<li id='" + me.pre + "selectplaneli'><span id='" + me.pre + "selectplane' class='icn3d-link'>Select between<br>Two X-Y Planes</span></li>";
57776
+ html += me.htmlCls.setHtmlCls.getLinkWrapper('selectplane', 'Select between<br>Two X-Y Planes</span>', 'selectplaneli', undefined, 1);
57203
57777
  }
57204
57778
 
57205
- html += "<li>-</li>";
57206
-
57207
- let liStr = "<li><a href='";
57779
+ html += me.htmlCls.setHtmlCls.getMenuSep();
57208
57780
 
57209
- html += "<li><span>VR & AR Hints</span>";
57781
+ //html += "<li><span>VR & AR Hints</span>";
57782
+ html += me.htmlCls.setHtmlCls.getMenuText('mn2_vrarhints', 'VR & AR Hints', undefined, 1, 1);
57210
57783
  html += "<ul>";
57211
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#vr' target='_blank'>VR: VR Headsets</a></li>";
57212
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#ar' target='_blank'>AR: Chrome in Android</a></li>";
57784
+ html += me.htmlCls.setHtmlCls.getMenuUrl("vrhint", me.htmlCls.baseUrl + "icn3d/icn3d.html#vr", "VR: VR Headsets", 1, 2);
57785
+ html += me.htmlCls.setHtmlCls.getMenuUrl("arhint", me.htmlCls.baseUrl + "icn3d/icn3d.html#ar", "AR: Chrome in Android", 1, 2);
57213
57786
  html += "</ul>";
57214
- /*
57215
- let liStr = "<li><a href='";
57216
-
57217
- html += "<ul class='icn3d-mn-item'>";
57218
-
57219
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#about' target='_blank'>About iCn3D<span style='font-size:0.9em'> " + me.REVISION + "</span></a></li>";
57220
-
57221
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#gallery' target='_blank'>Live Gallery " + me.htmlCls.wifiStr + "</a></li>";
57222
- */
57787
+ html += "</li>";
57223
57788
 
57224
- html += me.htmlCls.setHtmlCls.getLink('mn6_sidebyside', 'Side by Side');
57789
+ html += me.htmlCls.setHtmlCls.getLink('mn6_sidebyside', 'Side by Side', 1, 1);
57225
57790
 
57226
- html += "<li><span>Rotate</span>";
57791
+ //html += "<li><span>Rotate</span>";
57792
+ html += me.htmlCls.setHtmlCls.getMenuText('mn2_rotate', 'Rotate', undefined, 1, 1);
57227
57793
  html += "<ul>";
57228
57794
 
57229
- html += "<li><span>Rotate 90&deg;</span>";
57795
+ //html += "<li><span>Rotate 90&deg;</span>";
57796
+ html += me.htmlCls.setHtmlCls.getMenuText('mn2_rotate90', 'Rotate 90&deg;', undefined, undefined, 2);
57230
57797
  html += "<ul>";
57231
- html += me.htmlCls.setHtmlCls.getRadio('mn6_rotate90', 'mn6_rotatex', 'X-axis(Shift + Key M)');
57232
- html += me.htmlCls.setHtmlCls.getRadio('mn6_rotate90', 'mn6_rotatey', 'Y-axis(Shift + Key J)');
57233
- html += me.htmlCls.setHtmlCls.getRadio('mn6_rotate90', 'mn6_rotatez', 'Z-axis');
57798
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_rotate90', 'mn6_rotatex', 'X-axis(Shift + Key M)', undefined, undefined, 2);
57799
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_rotate90', 'mn6_rotatey', 'Y-axis(Shift + Key J)', undefined, undefined, 2);
57800
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_rotate90', 'mn6_rotatez', 'Z-axis', undefined, undefined, 2);
57234
57801
  html += "</ul>";
57235
57802
  html += "</li>";
57236
- html += "<li><span>Auto Rotation</span>";
57803
+ //html += "<li><span>Auto Rotation</span>";
57804
+ html += me.htmlCls.setHtmlCls.getMenuText('mn2_rotateauto', 'Auto Rotation', undefined, 1, 2);
57237
57805
  html += "<ul>";
57238
- html += me.htmlCls.setHtmlCls.getRadio('mn6_rotate', 'mn6_rotateleft', 'Rotate Left');
57239
- html += me.htmlCls.setHtmlCls.getRadio('mn6_rotate', 'mn6_rotateright', 'Rotate Right');
57240
- html += me.htmlCls.setHtmlCls.getRadio('mn6_rotate', 'mn6_rotateup', 'Rotate Up');
57241
- html += me.htmlCls.setHtmlCls.getRadio('mn6_rotate', 'mn6_rotatedown', 'Rotate Down');
57806
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_rotate', 'mn6_rotateleft', 'Rotate Left', undefined, 1, 3);
57807
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_rotate', 'mn6_rotateright', 'Rotate Right', undefined, 1, 3);
57808
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_rotate', 'mn6_rotateup', 'Rotate Up', undefined, 1, 3);
57809
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_rotate', 'mn6_rotatedown', 'Rotate Down', undefined, 1, 3);
57242
57810
  html += "</ul>";
57243
57811
  html += "</li>";
57244
57812
 
57245
57813
  html += "</ul>";
57246
57814
  html += "</li>";
57247
57815
 
57248
- html += "<li><span>Camera</span>";
57816
+ //html += "<li><span>Camera</span>";
57817
+ html += me.htmlCls.setHtmlCls.getMenuText('mn2_camera', 'Camera', undefined, undefined, 1);
57249
57818
  html += "<ul>";
57250
- html += me.htmlCls.setHtmlCls.getRadio('mn6_camera', 'mn6_cameraPers', 'Perspective', true);
57251
- html += me.htmlCls.setHtmlCls.getRadio('mn6_camera', 'mn6_cameraOrth', 'Orthographic');
57819
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_camera', 'mn6_cameraPers', 'Perspective', true, undefined, 2);
57820
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_camera', 'mn6_cameraOrth', 'Orthographic', undefined, undefined, 2);
57252
57821
  html += "</ul>";
57253
57822
  html += "</li>";
57254
- html += "<li><span>Fog for Selection</span>";
57823
+ //html += "<li><span>Fog for Selection</span>";
57824
+ html += me.htmlCls.setHtmlCls.getMenuText('mn2_fog', 'Fog for Selection', undefined, undefined, 1);
57255
57825
  html += "<ul>";
57256
- html += me.htmlCls.setHtmlCls.getRadio('mn6_showfog', 'mn6_showfogYes', 'On');
57257
- html += me.htmlCls.setHtmlCls.getRadio('mn6_showfog', 'mn6_showfogNo', 'Off', true);
57826
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_showfog', 'mn6_showfogYes', 'On', undefined, undefined, 2);
57827
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_showfog', 'mn6_showfogNo', 'Off', true, undefined, 2);
57258
57828
  html += "</ul>";
57259
57829
  html += "</li>";
57260
- html += "<li><span>Slab for Selection</span>";
57830
+ //html += "<li><span>Slab for Selection</span>";
57831
+ html += me.htmlCls.setHtmlCls.getMenuText('mn2_slab', 'Slab for Selection', undefined, undefined, 1);
57261
57832
  html += "<ul>";
57262
- html += me.htmlCls.setHtmlCls.getRadio('mn6_showslab', 'mn6_showslabYes', 'On');
57263
- html += me.htmlCls.setHtmlCls.getRadio('mn6_showslab', 'mn6_showslabNo', 'Off', true);
57833
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_showslab', 'mn6_showslabYes', 'On', undefined, undefined, 2);
57834
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_showslab', 'mn6_showslabNo', 'Off', true, undefined, 2);
57264
57835
  html += "</ul>";
57265
57836
  html += "</li>";
57266
- html += "<li><span>XYZ-axes</span>";
57837
+ //html += "<li><span>XYZ-axes</span>";
57838
+ html += me.htmlCls.setHtmlCls.getMenuText('mn2_axes', 'XYZ-axes', undefined, 1);
57267
57839
  html += "<ul>";
57268
- html += me.htmlCls.setHtmlCls.getRadio('mn6_showaxis', 'mn6_showaxisYes', 'Original');
57269
- html += me.htmlCls.setHtmlCls.getRadio('mn6_showaxis', 'mn6_showaxisSel', 'Prin. Axes on Sel.');
57270
- html += me.htmlCls.setHtmlCls.getRadio('mn6_showaxis', 'mn6_showaxisNo', 'Hide', true);
57840
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_showaxis', 'mn6_showaxisYes', 'Original', undefined, undefined, 2);
57841
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_showaxis', 'mn6_showaxisSel', 'Prin. Axes on Sel.', undefined, undefined, 2);
57842
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_showaxis', 'mn6_showaxisNo', 'Hide', true, undefined, 2);
57271
57843
  html += "</ul>";
57272
57844
  html += "</li>";
57273
57845
 
57274
- html += "<li>-</li>";
57846
+ html += me.htmlCls.setHtmlCls.getMenuSep();
57275
57847
 
57276
- html += "<li><span>Reset</span>";
57848
+ //html += "<li><span>Reset</span>";
57849
+ html += me.htmlCls.setHtmlCls.getMenuText('mn2_resetwrap', 'Reset', undefined, 1, 1);
57277
57850
  html += "<ul>";
57278
- html += me.htmlCls.setHtmlCls.getRadio('mn6_reset', 'reset', 'All');
57279
- html += me.htmlCls.setHtmlCls.getRadio('mn6_reset', 'mn6_resetOrientation', 'Orientation');
57851
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_reset', 'reset', 'All', undefined, 1, 2);
57852
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_reset', 'mn6_resetOrientation', 'Orientation', undefined, 1, 2);
57280
57853
  html += "</ul>";
57281
57854
  html += "</li>";
57282
57855
 
57283
- if(!me.cfg.simplemenu) {
57284
- html += me.htmlCls.setHtmlCls.getLink('mn6_back', 'Undo');
57285
- html += me.htmlCls.setHtmlCls.getLink('mn6_forward', 'Redo');
57286
- }
57856
+ html += me.htmlCls.setHtmlCls.getLink('mn6_back', 'Undo', undefined, 1);
57857
+ html += me.htmlCls.setHtmlCls.getLink('mn6_forward', 'Redo', undefined, 1);
57287
57858
 
57288
- html += me.htmlCls.setHtmlCls.getLink('mn6_fullscreen', 'Full Screen');
57859
+ html += me.htmlCls.setHtmlCls.getLink('mn6_fullscreen', 'Full Screen', undefined, 1);
57289
57860
  // html += me.htmlCls.setHtmlCls.getLink('mn6_exitfullscreen', 'Exit Full Screen');
57290
57861
 
57291
57862
  html += "<li><br/></li>";
@@ -57323,243 +57894,248 @@ class SetMenu {
57323
57894
  html += "<ul class='icn3d-mn-item'>";
57324
57895
 
57325
57896
  if(me.cfg.cid === undefined) {
57326
- html += "<li><span>Proteins</span>";
57897
+ //html += "<li><span>Proteins</span>";
57898
+ html += me.htmlCls.setHtmlCls.getMenuText('mn3_proteinwrap', 'Proteins', undefined, 1, 1);
57327
57899
  html += "<ul>";
57328
57900
  if(me.cfg.align !== undefined || me.cfg.chainalign !== undefined) {
57329
- html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsRibbon', 'Ribbon');
57901
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsRibbon', 'Ribbon', undefined, 1, 2);
57330
57902
  }
57331
57903
  else {
57332
- html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsRibbon', 'Ribbon', true);
57904
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsRibbon', 'Ribbon', true, 1, 2);
57333
57905
  }
57334
57906
 
57335
- html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsStrand', 'Strand');
57336
- html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsCylinder', 'Cylinder and Plate');
57337
- html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsSchematic', 'Schematic');
57907
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsStrand', 'Strand', undefined, undefined, 2);
57908
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsCylinder', 'Cylinder and Plate', undefined, undefined, 2);
57909
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsSchematic', 'Schematic', undefined, 1, 2);
57338
57910
 
57339
57911
  if(me.cfg.align !== undefined || me.cfg.chainalign !== undefined) {
57340
- html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsCalpha', 'C Alpha Trace', true);
57912
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsCalpha', 'C Alpha Trace', true, 1, 2);
57341
57913
  }
57342
57914
  else {
57343
- html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsCalpha', 'C Alpha Trace');
57915
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsCalpha', 'C Alpha Trace', undefined, 1, 2);
57344
57916
  }
57345
57917
 
57346
- html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsBackbone', 'Backbone');
57347
- html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsBfactor', 'B-factor Tube');
57348
- html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsLines', 'Lines');
57349
- html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsStick', 'Stick');
57350
- html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsBallstick', 'Ball and Stick');
57351
- html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsSphere', 'Sphere');
57352
- html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsNo', 'Hide');
57918
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsBackbone', 'Backbone', undefined, undefined, 2);
57919
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsBfactor', 'B-factor Tube', undefined, 1, 2);
57920
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsLines', 'Lines', undefined, 1, 2);
57921
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsStick', 'Stick', undefined, 1, 2);
57922
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsBallstick', 'Ball and Stick', undefined, 1, 2);
57923
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsSphere', 'Sphere', undefined, 1, 2);
57924
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_proteins', 'mn3_proteinsNo', 'Hide', undefined, 1, 2);
57353
57925
  html += "</ul>";
57354
57926
  html += "</li>";
57355
57927
 
57356
- html += "<li><span>Side Chains</span>";
57928
+ //html += "<li><span>Side Chains</span>";
57929
+ html += me.htmlCls.setHtmlCls.getMenuText('mn3_sidecwrap', 'Side Chains', undefined, 1, 1);
57357
57930
  html += "<ul>";
57358
57931
 
57359
- html += me.htmlCls.setHtmlCls.getRadio('mn3_sidec', 'mn3_sidecLines', 'Lines');
57360
- html += me.htmlCls.setHtmlCls.getRadio('mn3_sidec', 'mn3_sidecStick', 'Stick');
57361
- html += me.htmlCls.setHtmlCls.getRadio('mn3_sidec', 'mn3_sidecBallstick', 'Ball and Stick');
57362
- html += me.htmlCls.setHtmlCls.getRadio('mn3_sidec', 'mn3_sidecSphere', 'Sphere');
57363
- html += me.htmlCls.setHtmlCls.getRadio('mn3_sidec', 'mn3_sidecNo', 'Hide', true);
57932
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_sidec', 'mn3_sidecLines', 'Lines', undefined, 1, 2);
57933
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_sidec', 'mn3_sidecStick', 'Stick', undefined, 1, 2);
57934
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_sidec', 'mn3_sidecBallstick', 'Ball and Stick', undefined, 1, 2);
57935
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_sidec', 'mn3_sidecSphere', 'Sphere', undefined, 1, 2);
57936
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_sidec', 'mn3_sidecNo', 'Hide', true, 1, 2);
57364
57937
  html += "</ul>";
57365
57938
  html += "</li>";
57366
57939
 
57367
- html += "<li><span>Nucleotides</span>";
57940
+ //html += "<li><span>Nucleotides</span>";
57941
+ html += me.htmlCls.setHtmlCls.getMenuText('mn3_nuclwrap', 'Nucleotides', undefined, 1, 1);
57368
57942
  html += "<ul>";
57369
- html += me.htmlCls.setHtmlCls.getRadio('mn3_nucl', 'mn3_nuclCartoon', 'Cartoon', true);
57370
- html += me.htmlCls.setHtmlCls.getRadio('mn3_nucl', 'mn3_nuclPhos', "O3' Trace");
57371
- html += me.htmlCls.setHtmlCls.getRadio('mn3_nucl', 'mn3_nuclBackbone', 'Backbone');
57372
- html += me.htmlCls.setHtmlCls.getRadio('mn3_nucl', 'mn3_nuclSchematic', 'Schematic');
57373
- html += me.htmlCls.setHtmlCls.getRadio('mn3_nucl', 'mn3_nuclLines', 'Lines');
57374
- html += me.htmlCls.setHtmlCls.getRadio('mn3_nucl', 'mn3_nuclStick', 'Stick');
57375
- html += me.htmlCls.setHtmlCls.getRadio('mn3_nucl', 'mn3_nuclBallstick', 'Ball and Stick');
57376
- html += me.htmlCls.setHtmlCls.getRadio('mn3_nucl', 'mn3_nuclSphere', 'Sphere');
57377
- html += me.htmlCls.setHtmlCls.getRadio('mn3_nucl', 'mn3_nuclNo', 'Hide');
57943
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_nucl', 'mn3_nuclCartoon', 'Cartoon', true, 1, 2);
57944
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_nucl', 'mn3_nuclPhos', "O3' Trace", undefined, 1, 2);
57945
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_nucl', 'mn3_nuclBackbone', 'Backbone', undefined, undefined, 2);
57946
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_nucl', 'mn3_nuclSchematic', 'Schematic', undefined, 1, 2);
57947
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_nucl', 'mn3_nuclLines', 'Lines', undefined, 1, 2);
57948
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_nucl', 'mn3_nuclStick', 'Stick', undefined, 1, 2);
57949
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_nucl', 'mn3_nuclBallstick', 'Ball and Stick', undefined, 1, 2);
57950
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_nucl', 'mn3_nuclSphere', 'Sphere', undefined, 1, 2);
57951
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_nucl', 'mn3_nuclNo', 'Hide', undefined, 1, 2);
57378
57952
  html += "</ul>";
57379
57953
  html += "</li>";
57380
57954
 
57381
- html += "<li><span>Nucl. Bases</span>";
57955
+ //html += "<li><span>Nucl. Bases</span>";
57956
+ html += me.htmlCls.setHtmlCls.getMenuText('mn3_ntbasewrap', 'Nucl. Bases', undefined, 1, 1);
57382
57957
  html += "<ul>";
57383
57958
 
57384
- html += me.htmlCls.setHtmlCls.getRadio('mn3_ntbase', 'mn3_ntbaseLines', 'Lines');
57385
- html += me.htmlCls.setHtmlCls.getRadio('mn3_ntbase', 'mn3_ntbaseStick', 'Stick');
57386
- html += me.htmlCls.setHtmlCls.getRadio('mn3_ntbase', 'mn3_ntbaseBallstick', 'Ball and Stick');
57387
- html += me.htmlCls.setHtmlCls.getRadio('mn3_ntbase', 'mn3_ntbaseSphere', 'Sphere');
57388
- html += me.htmlCls.setHtmlCls.getRadio('mn3_ntbase', 'mn3_ntbaseNo', 'Hide', true);
57959
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_ntbase', 'mn3_ntbaseLines', 'Lines', undefined, 1, 2);
57960
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_ntbase', 'mn3_ntbaseStick', 'Stick', undefined, 1, 2);
57961
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_ntbase', 'mn3_ntbaseBallstick', 'Ball and Stick', undefined, 1, 2);
57962
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_ntbase', 'mn3_ntbaseSphere', 'Sphere', undefined, 1, 2);
57963
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_ntbase', 'mn3_ntbaseNo', 'Hide', true, 1, 2);
57389
57964
  html += "</ul>";
57390
57965
  html += "</li>";
57391
57966
  }
57392
57967
 
57393
- html += "<li><span>Chemicals</span>";
57968
+ //html += "<li><span>Chemicals</span>";
57969
+ html += me.htmlCls.setHtmlCls.getMenuText('mn3_ligwrap', 'Chemicals', undefined, 1, 1);
57394
57970
  html += "<ul>";
57395
- html += me.htmlCls.setHtmlCls.getRadio('mn3_lig', 'mn3_ligLines', 'Lines');
57971
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_lig', 'mn3_ligLines', 'Lines', undefined, 1, 2);
57396
57972
  if(me.cfg.cid === undefined) {
57397
- html += me.htmlCls.setHtmlCls.getRadio('mn3_lig', 'mn3_ligStick', 'Stick', true);
57398
- html += me.htmlCls.setHtmlCls.getRadio('mn3_lig', 'mn3_ligBallstick', 'Ball and Stick');
57973
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_lig', 'mn3_ligStick', 'Stick', true, 1, 2);
57974
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_lig', 'mn3_ligBallstick', 'Ball and Stick', undefined, 1, 2);
57399
57975
  }
57400
57976
  else {
57401
- html += me.htmlCls.setHtmlCls.getRadio('mn3_lig', 'mn3_ligStick', 'Stick');
57402
- html += me.htmlCls.setHtmlCls.getRadio('mn3_lig', 'mn3_ligBallstick', 'Ball and Stick', true);
57977
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_lig', 'mn3_ligStick', 'Stick', undefined, 1, 2);
57978
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_lig', 'mn3_ligBallstick', 'Ball and Stick', true, 1, 2);
57403
57979
  }
57404
- html += me.htmlCls.setHtmlCls.getRadio('mn3_lig', 'mn3_ligSchematic', 'Schematic');
57405
- html += me.htmlCls.setHtmlCls.getRadio('mn3_lig', 'mn3_ligSphere', 'Sphere');
57406
- html += me.htmlCls.setHtmlCls.getRadio('mn3_lig', 'mn3_ligNo', 'Hide');
57980
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_lig', 'mn3_ligSchematic', 'Schematic', undefined, 1, 2);
57981
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_lig', 'mn3_ligSphere', 'Sphere', undefined, 1, 2);
57982
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_lig', 'mn3_ligNo', 'Hide', undefined, 1, 2);
57407
57983
  html += "</ul>";
57408
57984
  html += "</li>";
57409
57985
 
57410
57986
  //if(me.cfg.cid !== undefined) {
57411
- html += "<li><span>Hydrogens</span>";
57987
+ //html += "<li><span>Hydrogens</span>";
57988
+ html += me.htmlCls.setHtmlCls.getMenuText('mn3_hydrogenswrap', 'Hydrogens', undefined, 1, 1);
57412
57989
  html += "<ul>";
57413
- html += me.htmlCls.setHtmlCls.getRadio('mn3_hydrogens', 'mn3_hydrogensYes', 'Show', true);
57414
- html += me.htmlCls.setHtmlCls.getRadio('mn3_hydrogens', 'mn3_hydrogensNo', 'Hide');
57990
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_hydrogens', 'mn3_hydrogensYes', 'Show', true, 1, 2);
57991
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_hydrogens', 'mn3_hydrogensNo', 'Hide', undefined, 1, 2);
57415
57992
  html += "</ul>";
57416
57993
  html += "</li>";
57417
57994
  //}
57418
57995
 
57419
57996
  if(me.cfg.cid === undefined) {
57420
- html += "<li><span>Glycans</span>";
57997
+ //html += "<li><span>Glycans</span>";
57998
+ html += me.htmlCls.setHtmlCls.getMenuText('mn3_glycanwrap', 'Glycans', undefined, undefined, 1);
57421
57999
  html += "<ul>";
57422
- html += me.htmlCls.setHtmlCls.getRadio('mn3_glycansCart', 'mn3_glycansCartYes', 'Show Cartoon');
57423
- html += me.htmlCls.setHtmlCls.getRadio('mn3_glycansCart', 'mn3_glycansCartNo', 'Hide Cartoon', true);
58000
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_glycansCart', 'mn3_glycansCartYes', 'Show Cartoon', undefined, undefined, 2);
58001
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_glycansCart', 'mn3_glycansCartNo', 'Hide Cartoon', true, undefined, 2);
57424
58002
  html += "</ul>";
57425
58003
  html += "</li>";
57426
58004
  }
57427
58005
 
57428
- html += "<li><span>Ions</span>";
58006
+ //html += "<li><span>Ions</span>";
58007
+ html += me.htmlCls.setHtmlCls.getMenuText('mn3_ionswrap', 'Ions', undefined, 1, 1);
57429
58008
  html += "<ul>";
57430
- html += me.htmlCls.setHtmlCls.getRadio('mn3_ions', 'mn3_ionsSphere', 'Sphere', true);
57431
- html += me.htmlCls.setHtmlCls.getRadio('mn3_ions', 'mn3_ionsDot', 'Dot');
57432
- html += me.htmlCls.setHtmlCls.getRadio('mn3_ions', 'mn3_ionsNo', 'Hide');
58009
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_ions', 'mn3_ionsSphere', 'Sphere', true, 1, 2);
58010
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_ions', 'mn3_ionsDot', 'Dot', undefined, 1, 2);
58011
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_ions', 'mn3_ionsNo', 'Hide', undefined, 1, 2);
57433
58012
  html += "</ul>";
57434
58013
  html += "</li>";
57435
58014
 
57436
- html += "<li><span>Water</span>";
58015
+ //html += "<li><span>Water</span>";
58016
+ html += me.htmlCls.setHtmlCls.getMenuText('mn3_waterwrap', 'Water', undefined, 1, 1);
57437
58017
  html += "<ul>";
57438
- html += me.htmlCls.setHtmlCls.getRadio('mn3_water', 'mn3_waterSphere', 'Sphere');
57439
- html += me.htmlCls.setHtmlCls.getRadio('mn3_water', 'mn3_waterDot', 'Dot');
57440
- html += me.htmlCls.setHtmlCls.getRadio('mn3_water', 'mn3_waterNo', 'Hide', true);
58018
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_water', 'mn3_waterSphere', 'Sphere', undefined, 1, 2);
58019
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_water', 'mn3_waterDot', 'Dot', undefined, 1, 2);
58020
+ html += me.htmlCls.setHtmlCls.getRadio('mn3_water', 'mn3_waterNo', 'Hide', true, 1, 2);
57441
58021
  html += "</ul>";
57442
58022
  html += "</li>";
57443
58023
 
57444
- html += me.htmlCls.setHtmlCls.getLink('mn3_setThickness', 'Preferences');
58024
+ html += me.htmlCls.setHtmlCls.getLink('mn3_setThickness', 'Preferences', undefined, 1);
57445
58025
 
57446
- if(!me.cfg.simplemenu) {
57447
- html += "<li>-</li>";
57448
- html += me.htmlCls.setHtmlCls.getLink('mn3_styleSave', 'Save Style');
57449
- html += me.htmlCls.setHtmlCls.getLink('mn3_styleApplySave', 'Apply Saved Style');
57450
- }
58026
+ html += me.htmlCls.setHtmlCls.getMenuSep();
58027
+ html += me.htmlCls.setHtmlCls.getLink('mn3_styleSave', 'Save Style', undefined, 2);
58028
+ html += me.htmlCls.setHtmlCls.getLink('mn3_styleApplySave', 'Apply Saved Style', undefined, 2);
57451
58029
 
57452
- html += "<li>-</li>";
58030
+ html += me.htmlCls.setHtmlCls.getMenuSep();
57453
58031
 
57454
- html += "<li><span>Surface Type</span>";
58032
+ //html += "<li><span>Surface Type</span>";
58033
+ html += me.htmlCls.setHtmlCls.getMenuText('mn5_surfacewrap', 'Surface Type', undefined, 1, 1);
57455
58034
  html += "<ul>";
57456
- html += me.htmlCls.setHtmlCls.getRadio('mn5_surface', 'mn5_surfaceVDW', 'Van der Waals');
57457
- if(!me.cfg.simplemenu) html += me.htmlCls.setHtmlCls.getRadio('mn5_surface', 'mn5_surfaceVDWContext', 'VDW with Context');
57458
- html += me.htmlCls.setHtmlCls.getRadio('mn5_surface', 'mn5_surfaceMolecular', 'Molecular Surface');
57459
- if(!me.cfg.simplemenu) html += me.htmlCls.setHtmlCls.getRadio('mn5_surface', 'mn5_surfaceMolecularContext', 'MS with Context');
57460
- html += me.htmlCls.setHtmlCls.getRadio('mn5_surface', 'mn5_surfaceSAS', 'Solvent Accessible');
57461
- if(!me.cfg.simplemenu) html += me.htmlCls.setHtmlCls.getRadio('mn5_surface', 'mn5_surfaceSASContext', 'SA with Context');
58035
+ html += me.htmlCls.setHtmlCls.getRadio('mn5_surface', 'mn5_surfaceVDW', 'Van der Waals', undefined, 1, 2);
58036
+ html += me.htmlCls.setHtmlCls.getRadio('mn5_surface', 'mn5_surfaceVDWContext', 'VDW with Context', undefined, undefined, 2);
58037
+ html += me.htmlCls.setHtmlCls.getRadio('mn5_surface', 'mn5_surfaceMolecular', 'Molecular Surface', undefined, 1, 2);
58038
+ html += me.htmlCls.setHtmlCls.getRadio('mn5_surface', 'mn5_surfaceMolecularContext', 'MS with Context', undefined, undefined, 2);
58039
+ html += me.htmlCls.setHtmlCls.getRadio('mn5_surface', 'mn5_surfaceSAS', 'Solvent Accessible', undefined, 1, 2);
58040
+ html += me.htmlCls.setHtmlCls.getRadio('mn5_surface', 'mn5_surfaceSASContext', 'SA with Context', undefined, undefined, 2);
57462
58041
  html += "</ul>";
57463
58042
  html += "</li>";
57464
58043
 
57465
- html += me.htmlCls.setHtmlCls.getLink('mn5_surfaceNo', 'Remove Surface');
58044
+ html += me.htmlCls.setHtmlCls.getLink('mn5_surfaceNo', 'Remove Surface', 1, 1);
57466
58045
 
57467
- html += "<li><span>Surface Opacity</span>";
58046
+ //html += "<li><span>Surface Opacity</span>";
58047
+ html += me.htmlCls.setHtmlCls.getMenuText('mn5_surfaceop', 'Surface Opacity', undefined, 1, 1);
57468
58048
  html += "<ul>";
57469
58049
 
57470
- html += "<li><span>Fast Transparency</span>";
58050
+ //html += "<li><span>Fast Transparency</span>";
58051
+ html += me.htmlCls.setHtmlCls.getMenuText('mn5_surfaceopfast', 'Fast Transparency', undefined, 1, 2);
57471
58052
  html += "<ul>";
57472
- html += me.htmlCls.setHtmlCls.getRadio('mn5_opacity', 'mn5_opacity10', '1.0', true);
58053
+ html += me.htmlCls.setHtmlCls.getRadio('mn5_opacity', 'mn5_opacity10', '1.0', true, 1, 3);
57473
58054
 
57474
58055
  for(let i = 9; i > 0; --i) {
57475
- html += me.htmlCls.setHtmlCls.getRadio('mn5_opacity', 'mn5_opacity0' + i, '0.' + i);
58056
+ html += me.htmlCls.setHtmlCls.getRadio('mn5_opacity', 'mn5_opacity0' + i, '0.' + i, 1, 3);
57476
58057
  }
57477
58058
  html += "</ul>";
57478
58059
  html += "</li>";
57479
58060
 
57480
- html += "<li><span>Slow Transparency</span>";
58061
+ //html += "<li><span>Slow Transparency</span>";
58062
+ html += me.htmlCls.setHtmlCls.getMenuText('mn5_surfaceopslow', 'Slow Transparency', undefined, undefined, 2);
57481
58063
  html += "<ul>";
57482
- html += me.htmlCls.setHtmlCls.getRadio('mn5_opacityslow', 'mn5_opacityslow10', '1.0', true);
58064
+ html += me.htmlCls.setHtmlCls.getRadio('mn5_opacityslow', 'mn5_opacityslow10', '1.0', true, undefined, 3);
57483
58065
 
57484
58066
  for(let i = 9; i > 0; --i) {
57485
- html += me.htmlCls.setHtmlCls.getRadio('mn5_opacityslow', 'mn5_opacityslow0' + i, '0.' + i);
58067
+ html += me.htmlCls.setHtmlCls.getRadio('mn5_opacityslow', 'mn5_opacityslow0' + i, '0.' + i, undefined, undefined, 3);
57486
58068
  }
57487
58069
  html += "</ul>";
57488
58070
  html += "</li>";
57489
58071
 
57490
58072
  html += "</ul>"; // end of Surface Opacity
57491
58073
 
57492
- html += "<li><span>Surface Wireframe</span>";
58074
+ //html += "<li><span>Surface Wireframe</span>";
58075
+ html += me.htmlCls.setHtmlCls.getMenuText('mn5_wireframewrap', 'Surface Wireframe', undefined, 1, 1);
57493
58076
  html += "<ul>";
57494
- html += me.htmlCls.setHtmlCls.getRadio('mn5_wireframe', 'mn5_wireframeYes', 'Yes');
57495
- html += me.htmlCls.setHtmlCls.getRadio('mn5_wireframe', 'mn5_wireframeNo', 'No', true);
58077
+ html += me.htmlCls.setHtmlCls.getRadio('mn5_wireframe', 'mn5_wireframeYes', 'Yes', undefined, 1, 2);
58078
+ html += me.htmlCls.setHtmlCls.getRadio('mn5_wireframe', 'mn5_wireframeNo', 'No', true, 1, 2);
57496
58079
  html += "</ul>";
57497
58080
  html += "</li>";
57498
58081
 
57499
58082
  if(me.cfg.cid === undefined && me.cfg.align === undefined && me.cfg.chainalign === undefined && me.cfg.mmdbaf === undefined) {
57500
- if(!me.cfg.simplemenu) {
57501
- html += "<li>-</li>";
58083
+ html += me.htmlCls.setHtmlCls.getMenuSep();
57502
58084
 
57503
- html += "<li id='" + me.pre + "mapWrapper1'><span>Electron Density</span>";
57504
- html += "<ul>";
57505
- html += me.htmlCls.setHtmlCls.getRadio('mn5_elecmap', 'mn5_elecmap2fofc', '2Fo-Fc Map');
57506
- html += me.htmlCls.setHtmlCls.getRadio('mn5_elecmap', 'mn5_elecmapfofc', 'Fo-Fc Map');
57507
- html += "</ul>";
57508
- html += "</li>";
58085
+ //html += "<li id='" + me.pre + "mapWrapper1'><span>Electron Density</span>";
58086
+ html += me.htmlCls.setHtmlCls.getMenuText('mapWrapper1', 'Electron Density', undefined, undefined, 1);
58087
+ html += "<ul>";
58088
+ html += me.htmlCls.setHtmlCls.getRadio('mn5_elecmap', 'mn5_elecmap2fofc', '2Fo-Fc Map', undefined, undefined, 2);
58089
+ html += me.htmlCls.setHtmlCls.getRadio('mn5_elecmap', 'mn5_elecmapfofc', 'Fo-Fc Map', undefined, undefined, 2);
58090
+ html += "</ul>";
58091
+ html += "</li>";
57509
58092
 
57510
- html += me.htmlCls.setHtmlCls.getLinkWrapper('mn5_elecmapNo', 'Remove Map', 'mapWrapper2');
58093
+ html += me.htmlCls.setHtmlCls.getLinkWrapper('mn5_elecmapNo', 'Remove Map', 'mapWrapper2', undefined, 1);
57511
58094
 
57512
- html += "<li id='" + me.pre + "mapWrapper3'><span>Map Wireframe</span>";
57513
- html += "<ul>";
57514
- html += me.htmlCls.setHtmlCls.getRadio('mn5_mapwireframe', 'mn5_mapwireframeYes', 'Yes', true);
57515
- html += me.htmlCls.setHtmlCls.getRadio('mn5_mapwireframe', 'mn5_mapwireframeNo', 'No');
57516
- html += "</ul>";
57517
- html += "</li>";
58095
+ //html += "<li id='" + me.pre + "mapWrapper3'><span>Map Wireframe</span>";
58096
+ html += me.htmlCls.setHtmlCls.getMenuText('mapWrapper3', 'Map Wireframe', undefined, undefined, 1);
58097
+ html += "<ul>";
58098
+ html += me.htmlCls.setHtmlCls.getRadio('mn5_mapwireframe', 'mn5_mapwireframeYes', 'Yes', true, undefined, 2);
58099
+ html += me.htmlCls.setHtmlCls.getRadio('mn5_mapwireframe', 'mn5_mapwireframeNo', 'No', undefined, undefined, 2);
58100
+ html += "</ul>";
58101
+ html += "</li>";
57518
58102
 
57519
- if(me.cfg.mmtfid === undefined) {
57520
- //html += "<li>-</li>";
58103
+ if(me.cfg.mmtfid === undefined) {
58104
+ //html += me.htmlCls.setHtmlCls.getMenuSep();
57521
58105
 
57522
- html += me.htmlCls.setHtmlCls.getLinkWrapper('mn5_emmap', 'EM Density Map', 'emmapWrapper1');
57523
- html += me.htmlCls.setHtmlCls.getLinkWrapper('mn5_emmapNo', 'Remove EM Map', 'emmapWrapper2');
58106
+ html += me.htmlCls.setHtmlCls.getLinkWrapper('mn5_emmap', 'EM Density Map', 'emmapWrapper1', undefined, 1);
58107
+ html += me.htmlCls.setHtmlCls.getLinkWrapper('mn5_emmapNo', 'Remove EM Map', 'emmapWrapper2', undefined, 1);
57524
58108
 
57525
- html += "<li id='" + me.pre + "emmapWrapper3'><span>EM Map Wireframe</span>";
57526
- html += "<ul>";
57527
- html += me.htmlCls.setHtmlCls.getRadio('mn5_emmapwireframe', 'mn5_emmapwireframeYes', 'Yes', true);
57528
- html += me.htmlCls.setHtmlCls.getRadio('mn5_emmapwireframe', 'mn5_emmapwireframeNo', 'No');
57529
- html += "</ul>";
57530
- html += "</li>";
57531
- }
58109
+ //html += "<li id='" + me.pre + "emmapWrapper3'><span>EM Map Wireframe</span>";
58110
+ html += me.htmlCls.setHtmlCls.getLinkWrapper('mn5_emmapwfwrap', 'EM Map Wireframe', 'emmapWrapper3', undefined, 1);
58111
+ html += "<ul>";
58112
+ html += me.htmlCls.setHtmlCls.getRadio('mn5_emmapwireframe', 'mn5_emmapwireframeYes', 'Yes', true, undefined, 2);
58113
+ html += me.htmlCls.setHtmlCls.getRadio('mn5_emmapwireframe', 'mn5_emmapwireframeNo', 'No', undefined, undefined, 2);
58114
+ html += "</ul>";
58115
+ html += "</li>";
57532
58116
  }
57533
58117
  }
57534
58118
 
57535
- html += "<li>-</li>";
58119
+ html += me.htmlCls.setHtmlCls.getMenuSep();
57536
58120
 
57537
- html += "<li><span>Background</span>";
58121
+ //html += "<li><span>Background</span>";
58122
+ html += me.htmlCls.setHtmlCls.getMenuText('mn6_bkgdwrap', 'Background', undefined, 1, 1);
57538
58123
  html += "<ul>";
57539
- html += me.htmlCls.setHtmlCls.getRadio('mn6_bkgd', 'mn6_bkgdTransparent', 'Transparent');
57540
- html += me.htmlCls.setHtmlCls.getRadio('mn6_bkgd', 'mn6_bkgdBlack', 'Black', true);
57541
- html += me.htmlCls.setHtmlCls.getRadio('mn6_bkgd', 'mn6_bkgdGrey', 'Gray');
57542
- html += me.htmlCls.setHtmlCls.getRadio('mn6_bkgd', 'mn6_bkgdWhite', 'White');
58124
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_bkgd', 'mn6_bkgdTransparent', 'Transparent', undefined, 1, 2);
58125
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_bkgd', 'mn6_bkgdBlack', 'Black', true, 1, 2);
58126
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_bkgd', 'mn6_bkgdGrey', 'Gray', undefined, 1, 2);
58127
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_bkgd', 'mn6_bkgdWhite', 'White', undefined, 1, 2);
57543
58128
  html += "</ul>";
57544
58129
  html += "</li>";
57545
58130
 
57546
- if(!me.cfg.simplemenu) {
57547
- html += "<li><span>Dialog Color</span>";
57548
- html += "<ul>";
57549
- html += me.htmlCls.setHtmlCls.getRadio('mn6_theme', 'mn6_themeBlue', 'Blue', true);
57550
- html += me.htmlCls.setHtmlCls.getRadio('mn6_theme', 'mn6_themeOrange', 'Orange');
57551
- html += me.htmlCls.setHtmlCls.getRadio('mn6_theme', 'mn6_themeBlack', 'Black');
57552
- html += "</ul>";
57553
- html += "</li>";
57554
- }
57555
-
57556
- // html += "<li><span>Two-color Helix</span>";
57557
- // html += "<ul>";
57558
- // html += me.htmlCls.setHtmlCls.getRadio('mn6_doublecolor', 'mn6_doublecolorYes', 'Yes');
57559
- // html += me.htmlCls.setHtmlCls.getRadio('mn6_doublecolor', 'mn6_doublecolorNo', 'No', true);
57560
- // html += "</ul>";
57561
- // html += "</li>";
57562
-
58131
+ html += "<li><span>Dialog Color</span>";
58132
+ html += me.htmlCls.setHtmlCls.getMenuText('mn6_themewrap', 'Dialog Color', undefined, undefined, 1);
58133
+ html += "<ul>";
58134
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_theme', 'mn6_themeBlue', 'Blue', true, undefined, 2);
58135
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_theme', 'mn6_themeOrange', 'Orange', undefined, undefined, 2);
58136
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_theme', 'mn6_themeBlack', 'Black', undefined, undefined, 2);
58137
+ html += "</ul>";
58138
+ html += "</li>";
57563
58139
 
57564
58140
  html += "<li><br/></li>";
57565
58141
 
@@ -57595,316 +58171,309 @@ class SetMenu {
57595
58171
 
57596
58172
  html += "<ul class='icn3d-mn-item'>";
57597
58173
 
57598
- html += "<li><span style='padding-left:1.5em;'>Unicolor</span>";
58174
+ //html += "<li><span style='padding-left:1.5em!important;'>Unicolor</span>";
58175
+ html += me.htmlCls.setHtmlCls.getMenuText('mn4_clrwrap', 'Unicolor', 'icn3d-menupd', 1, 1);
57599
58176
  html += "<ul>";
57600
58177
 
57601
58178
  html += "<li><span>Red</span>";
58179
+ html += me.htmlCls.setHtmlCls.getMenuText('uniclrRedwrap', 'Red', undefined, 1, 2);
57602
58180
  html += "<ul>";
57603
- //html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrRed', 'Red');
57604
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrRed1', 'Red', 'F00');
57605
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrRed2', 'Indian Red', 'CD5C5C');
57606
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrRed3', 'Light Coral', 'F08080');
57607
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrRed4', 'Salmon', 'FA8072');
57608
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrRed5', 'Dark Salmon', 'E9967A');
57609
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrRed6', 'Light Salmon', 'FFA07A');
57610
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrRed7', 'Crimson', 'DC143C');
57611
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrRed8', 'Fire Brick', 'B22222');
57612
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrRed9', 'Dark Red', '8B0000');
58181
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrRed1', 'Red', 'F00', undefined, 1, 3);
58182
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrRed2', 'Indian Red', 'CD5C5C', undefined, 1, 3);
58183
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrRed3', 'Light Coral', 'F08080', undefined, 1, 3);
58184
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrRed4', 'Salmon', 'FA8072', undefined, 1, 3);
58185
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrRed5', 'Dark Salmon', 'E9967A', undefined, 1, 3);
58186
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrRed6', 'Light Salmon', 'FFA07A', undefined, 1, 3);
58187
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrRed7', 'Crimson', 'DC143C', undefined, 1, 3);
58188
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrRed8', 'Fire Brick', 'B22222', undefined, 1, 3);
58189
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrRed9', 'Dark Red', '8B0000', undefined, 1, 3);
57613
58190
  html += "</ul>";
57614
58191
 
57615
- html += "<li><span>Pink</span>";
58192
+ //html += "<li><span>Pink</span>";
58193
+ html += me.htmlCls.setHtmlCls.getMenuText('uniclrPinkwrap', 'Pink', undefined, 1, 2);
57616
58194
  html += "<ul>";
57617
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrPink1', 'Pink', 'FFC0CB');
57618
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrPink2', 'Light Pink', 'FFB6C1');
57619
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrPink3', 'Hot Pink', 'FF69B4');
57620
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrPink4', 'Deep Pink', 'FF1493');
57621
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrPink5', 'Medium Violet Red', 'C71585');
57622
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrPink6', 'Pale Violet Red', 'DB7093');
58195
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrPink1', 'Pink', 'FFC0CB', undefined, 1, 3);
58196
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrPink2', 'Light Pink', 'FFB6C1', undefined, 1, 3);
58197
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrPink3', 'Hot Pink', 'FF69B4', undefined, 1, 3);
58198
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrPink4', 'Deep Pink', 'FF1493', undefined, 1, 3);
58199
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrPink5', 'Medium Violet Red', 'C71585', undefined, 1, 3);
58200
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrPink6', 'Pale Violet Red', 'DB7093', undefined, 1, 3);
57623
58201
  html += "</ul>";
57624
58202
 
57625
- html += "<li><span>Orange</span>";
58203
+ //html += "<li><span>Orange</span>";
58204
+ html += me.htmlCls.setHtmlCls.getMenuText('uniclrOrangewrap', 'Orange', undefined, 1, 2);
57626
58205
  html += "<ul>";
57627
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrOran1', 'Orange', 'FFA500');
57628
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrOran2', 'Dark Orange', 'FF8C00');
57629
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrOran3', 'Orange Red', 'FF4500');
57630
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrOran4', 'Tomato', 'FF6347');
57631
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrOran5', 'Coral', 'FF7F50');
57632
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrOran6', 'Light Salmon', 'FFA07A');
58206
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrOran1', 'Orange', 'FFA500', undefined, 1, 3);
58207
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrOran2', 'Dark Orange', 'FF8C00', undefined, 1, 3);
58208
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrOran3', 'Orange Red', 'FF4500', undefined, 1, 3);
58209
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrOran4', 'Tomato', 'FF6347', undefined, 1, 3);
58210
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrOran5', 'Coral', 'FF7F50', undefined, 1, 3);
58211
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrOran6', 'Light Salmon', 'FFA07A', undefined, 1, 3);
57633
58212
  html += "</ul>";
57634
58213
 
57635
- html += "<li><span>Yellow</span>";
58214
+ //html += "<li><span>Yellow</span>";
58215
+ html += me.htmlCls.setHtmlCls.getMenuText('uniclrYellowwrap', 'Yellow', undefined, 1, 2);
57636
58216
  html += "<ul>";
57637
- //html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrYllw', 'Yellow');
57638
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrYllw1', 'Yellow', 'FF0');
57639
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrYllw2', 'Gold', 'FFD700');
57640
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrYllw3', 'Light Yellow', 'FFFFE0');
57641
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrYllw4', 'Lemon Chiffon', 'FFFACD');
57642
- //html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrYllw5', 'Light Golden Rod Yellow', 'FAFAD2');
57643
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrYllw5', 'Light Golden Rod', 'FAFAD2');
57644
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrYllw6', 'Papaya Whip', 'FFEFD5');
57645
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrYllw7', 'Moccasin', 'FFE4B5');
57646
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrYllw8', 'Peach Puff', 'FFDAB9');
57647
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrYllw9', 'Pale Golden Rod', 'EEE8AA');
57648
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrYllw10', 'Khaki', 'F0E68C');
57649
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrYllw11', 'Dark Khaki', 'BDB76B');
58217
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrYllw1', 'Yellow', 'FF0', undefined, 1, 3);
58218
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrYllw2', 'Gold', 'FFD700', undefined, 1, 3);
58219
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrYllw3', 'Light Yellow', 'FFFFE0', undefined, 1, 3);
58220
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrYllw4', 'Lemon Chiffon', 'FFFACD', undefined, 1, 3);
58221
+ //html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrYllw5', 'Light Golden Rod Yellow', 'FAFAD2', undefined, 1, 3);
58222
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrYllw5', 'Light Golden Rod', 'FAFAD2', undefined, 1, 3);
58223
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrYllw6', 'Papaya Whip', 'FFEFD5', undefined, 1, 3);
58224
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrYllw7', 'Moccasin', 'FFE4B5', undefined, 1, 3);
58225
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrYllw8', 'Peach Puff', 'FFDAB9', undefined, 1, 3);
58226
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrYllw9', 'Pale Golden Rod', 'EEE8AA', undefined, 1, 3);
58227
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrYllw10', 'Khaki', 'F0E68C', undefined, 1, 3);
58228
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrYllw11', 'Dark Khaki', 'BDB76B', undefined, 1, 3);
57650
58229
  html += "</ul>";
57651
58230
 
57652
- html += "<li><span>Magenta</span>";
58231
+ //html += "<li><span>Magenta</span>";
58232
+ html += me.htmlCls.setHtmlCls.getMenuText('uniclrMagentawrap', 'Magenta', undefined, 1, 2);
57653
58233
  html += "<ul>";
57654
- //html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrMgnt', 'Magenta');
57655
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrMgnt1', 'Magenta', 'F0F');
57656
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrMgnt2', 'Orchid', 'DA70D6');
57657
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrMgnt3', 'Violet', 'EE82EE');
57658
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrMgnt4', 'Plum', 'DDA0DD');
57659
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrMgnt5', 'Thistle', 'D8BFD8');
57660
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrMgnt6', 'Lavender', 'E6E6FA');
57661
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrMgnt7', 'Medium Orchid', 'BA55D3');
57662
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrMgnt8', 'Medium Purple', '9370DB');
57663
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrMgnt9', 'Rebecca Purple', '663399');
57664
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrMgnt10', 'Blue Violet', '8A2BE2');
57665
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrMgnt11', 'Dark Violet', '9400D3');
57666
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrMgnt12', 'Dark Orchid', '9932CC');
57667
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrMgnt13', 'Dark Magenta', '8B008B');
57668
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrMgnt14', 'Purple', '800080');
57669
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrMgnt15', 'Indigo', '4B0082');
57670
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrMgnt16', 'Slat Blue', '6A5ACD');
57671
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrMgnt17', 'Dark Slate Blue', '483D8B');
57672
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrMgnt18', 'Medium Slat Blue', '6A5ACD');
58234
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrMgnt1', 'Magenta', 'F0F', undefined, 1, 3);
58235
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrMgnt2', 'Orchid', 'DA70D6', undefined, 1, 3);
58236
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrMgnt3', 'Violet', 'EE82EE', undefined, 1, 3);
58237
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrMgnt4', 'Plum', 'DDA0DD', undefined, 1, 3);
58238
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrMgnt5', 'Thistle', 'D8BFD8', undefined, 1, 3);
58239
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrMgnt6', 'Lavender', 'E6E6FA', undefined, 1, 3);
58240
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrMgnt7', 'Medium Orchid', 'BA55D3', undefined, 1, 3);
58241
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrMgnt8', 'Medium Purple', '9370DB', undefined, 1, 3);
58242
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrMgnt9', 'Rebecca Purple', '663399', undefined, 1, 3);
58243
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrMgnt10', 'Blue Violet', '8A2BE2', undefined, 1, 3);
58244
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrMgnt11', 'Dark Violet', '9400D3', undefined, 1, 3);
58245
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrMgnt12', 'Dark Orchid', '9932CC', undefined, 1, 3);
58246
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrMgnt13', 'Dark Magenta', '8B008B', undefined, 1, 3);
58247
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrMgnt14', 'Purple', '800080', undefined, 1, 3);
58248
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrMgnt15', 'Indigo', '4B0082', undefined, 1, 3);
58249
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrMgnt16', 'Slat Blue', '6A5ACD', undefined, 1, 3);
58250
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrMgnt17', 'Dark Slate Blue', '483D8B', undefined, 1, 3);
58251
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrMgnt18', 'Medium Slat Blue', '6A5ACD', undefined, 1, 3);
57673
58252
  html += "</ul>";
57674
58253
 
57675
- html += "<li><span>Green</span>";
58254
+ //html += "<li><span>Green</span>";
58255
+ html += me.htmlCls.setHtmlCls.getMenuText('uniclrGreenwrap', 'Green', undefined, 1, 2);
57676
58256
  html += "<ul>";
57677
- //html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrGrn', 'Green');
57678
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn1', 'Green', '0F0');
57679
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn2', 'Dark Green', '006400');
57680
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn3', 'Yellow Green', '9ACD32');
57681
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn4', 'Olive Drab', '6B8E23');
57682
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn5', 'Olive', '808000');
57683
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn6', 'Dark Olive Green', '556B2F');
57684
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn7', 'Medium Aquamarine', '66CDAA');
57685
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn8', 'Dark Sea Green', '8FBC8B');
57686
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn9', 'Lignt Sea Green', '20B2AA');
57687
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn10', 'Dark Cyan', '008B8B');
57688
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn11', 'Teal', '008080');
57689
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn12', 'Forest Green', '228B22');
57690
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn13', 'Sea Green', '2E8B57');
57691
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn14', 'Medium Sea Green', '3CB371');
57692
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn15', 'Spring Green', '00FF7F');
57693
- //html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn16', 'Medium Spring Green', '00FA9A');
57694
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn16', 'Medium Spring', '00FA9A');
57695
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn17', 'Light Green', '90EE90');
57696
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn18', 'Pale Green', '98FB98');
57697
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn19', 'Lime Green', '32CD32');
57698
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn20', 'Lawn Green', '7CFC00');
57699
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn21', 'Chartreuse', '7FFF00');
57700
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGrn22', 'Green Yellow', 'ADFF2F');
58257
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn1', 'Green', '0F0', undefined, 1, 3);
58258
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn2', 'Dark Green', '006400', undefined, 1, 3);
58259
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn3', 'Yellow Green', '9ACD32', undefined, 1, 3);
58260
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn4', 'Olive Drab', '6B8E23', undefined, 1, 3);
58261
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn5', 'Olive', '808000', undefined, 1, 3);
58262
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn6', 'Dark Olive Green', '556B2F', undefined, 1, 3);
58263
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn7', 'Medium Aquamarine', '66CDAA', undefined, 1, 3);
58264
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn8', 'Dark Sea Green', '8FBC8B', undefined, 1, 3);
58265
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn9', 'Lignt Sea Green', '20B2AA', undefined, 1, 3);
58266
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn10', 'Dark Cyan', '008B8B', undefined, 1, 3);
58267
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn11', 'Teal', '008080', undefined, 1, 3);
58268
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn12', 'Forest Green', '228B22', undefined, 1, 3);
58269
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn13', 'Sea Green', '2E8B57', undefined, 1, 3);
58270
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn14', 'Medium Sea Green', '3CB371', undefined, 1, 3);
58271
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn15', 'Spring Green', '00FF7F', undefined, 1, 3);
58272
+ //html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn16', 'Medium Spring Green', '00FA9A', undefined, 1, 3);
58273
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn16', 'Medium Spring', '00FA9A', undefined, 1, 3);
58274
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn17', 'Light Green', '90EE90', undefined, 1, 3);
58275
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn18', 'Pale Green', '98FB98', undefined, 1, 3);
58276
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn19', 'Lime Green', '32CD32', undefined, 1, 3);
58277
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn20', 'Lawn Green', '7CFC00', undefined, 1, 3);
58278
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn21', 'Chartreuse', '7FFF00', undefined, 1, 3);
58279
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGrn22', 'Green Yellow', 'ADFF2F', undefined, 1, 3);
57701
58280
  html += "</ul>";
57702
58281
 
57703
- html += "<li><span>Cyan</span>";
58282
+ //html += "<li><span>Cyan</span>";
58283
+ html += me.htmlCls.setHtmlCls.getMenuText('uniclrCyanwrap', 'Cyan', undefined, 1, 2);
57704
58284
  html += "<ul>";
57705
- //html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrCyan', 'Cyan');
57706
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrCyan1', 'Cyan', '0FF');
57707
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrCyan2', 'Light Cyan', 'E0FFFF');
57708
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrCyan3', 'Pale Turquoise', 'AFEEEE');
57709
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrCyan4', 'Aquamarine', '7FFFD4');
57710
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrCyan5', 'Turquoise', '40E0D0');
57711
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrCyan6', 'Medium Turquoise', '48D1CC');
57712
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrCyan7', 'Dark Turquoise', '00CED1');
58285
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrCyan1', 'Cyan', '0FF', undefined, 1, 3);
58286
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrCyan2', 'Light Cyan', 'E0FFFF', undefined, 1, 3);
58287
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrCyan3', 'Pale Turquoise', 'AFEEEE', undefined, 1, 3);
58288
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrCyan4', 'Aquamarine', '7FFFD4', undefined, 1, 3);
58289
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrCyan5', 'Turquoise', '40E0D0', undefined, 1, 3);
58290
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrCyan6', 'Medium Turquoise', '48D1CC', undefined, 1, 3);
58291
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrCyan7', 'Dark Turquoise', '00CED1', undefined, 1, 3);
57713
58292
  html += "</ul>";
57714
58293
 
57715
- html += "<li><span>Blue</span>";
58294
+ //html += "<li><span>Blue</span>";
58295
+ html += me.htmlCls.setHtmlCls.getMenuText('uniclrBluewrap', 'Blue', undefined, 1, 2);
57716
58296
  html += "<ul>";
57717
- //html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrBlue', 'Blue');
57718
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBlue1', 'Blue', '00F');
57719
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBlue2', 'Medium Blue', '0000CD');
57720
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBlue3', 'Dark Blue', '00008B');
57721
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBlue4', 'Navy', '000080');
57722
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBlue5', 'Midnight Blue', '191970');
57723
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBlue6', 'Royal Blue', '4169E1');
57724
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBlue7', 'Medium Slate Blue', '7B68EE');
57725
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBlue8', 'Corn Flower Blue', '6495ED');
57726
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBlue9', 'Dodger Blue', '1E90FF');
57727
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBlue10', 'Deep Sky Blue', '00BFFF');
57728
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBlue11', 'Light Sky Blue', '87CEFA');
57729
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBlue12', 'Sky Blue', '87CEEB');
57730
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBlue13', 'Light Blue', 'ADD8E6');
57731
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBlue14', 'Powder Blue', 'B0E0E6');
57732
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBlue15', 'Light Steel Blue', 'B0C4DE');
57733
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBlue16', 'Steel Blue', '4682B4');
57734
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBlue17', 'Cadet Blue', '5F9EA0');
58297
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBlue1', 'Blue', '00F', undefined, 1, 3);
58298
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBlue2', 'Medium Blue', '0000CD', undefined, 1, 3);
58299
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBlue3', 'Dark Blue', '00008B', undefined, 1, 3);
58300
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBlue4', 'Navy', '000080', undefined, 1, 3);
58301
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBlue5', 'Midnight Blue', '191970', undefined, 1, 3);
58302
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBlue6', 'Royal Blue', '4169E1', undefined, 1, 3);
58303
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBlue7', 'Medium Slate Blue', '7B68EE', undefined, 1, 3);
58304
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBlue8', 'Corn Flower Blue', '6495ED', undefined, 1, 3);
58305
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBlue9', 'Dodger Blue', '1E90FF', undefined, 1, 3);
58306
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBlue10', 'Deep Sky Blue', '00BFFF', undefined, 1, 3);
58307
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBlue11', 'Light Sky Blue', '87CEFA', undefined, 1, 3);
58308
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBlue12', 'Sky Blue', '87CEEB', undefined, 1, 3);
58309
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBlue13', 'Light Blue', 'ADD8E6', undefined, 1, 3);
58310
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBlue14', 'Powder Blue', 'B0E0E6', undefined, 1, 3);
58311
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBlue15', 'Light Steel Blue', 'B0C4DE', undefined, 1, 3);
58312
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBlue16', 'Steel Blue', '4682B4', undefined, 1, 3);
58313
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBlue17', 'Cadet Blue', '5F9EA0', undefined, 1, 3);
57735
58314
  html += "</ul>";
57736
58315
 
57737
- html += "<li><span>Brown</span>";
58316
+ //html += "<li><span>Brown</span>";
58317
+ html += me.htmlCls.setHtmlCls.getMenuText('uniclrBrownwrap', 'Brown', undefined, 1, 2);
57738
58318
  html += "<ul>";
57739
- //html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrBrown', 'Brown');
57740
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBrown1', 'Brown', 'A52A2A');
57741
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBrown2', 'Maroon', '800000');
57742
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBrown3', 'Sienna', 'A0522D');
57743
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBrown4', 'Saddle Brown', '8B4513');
57744
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBrown5', 'Chocolate', 'D2691E');
57745
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBrown6', 'Peru', 'CD853F');
57746
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBrown7', 'Dark Golden Rod', 'B8860B');
57747
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBrown8', 'Golden Rod', 'DAA520');
57748
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBrown9', 'Sandy Brown', 'F4A460');
57749
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBrown10', 'Rosy Brown', 'BC8F8F');
57750
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBrown11', 'Tan', 'D2B48C');
57751
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBrown12', 'Burlywood', 'DEB887');
57752
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBrown13', 'Wheat', 'F5DEB3');
57753
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBrown14', 'Navajo White', 'FFDEAD');
57754
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBrown15', 'Bisque', 'FFE4C4');
57755
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBrown16', 'Blanched Almond', 'FFEBCD');
57756
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrBrown17', 'Corn Silk', 'FFF8DC');
58319
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBrown1', 'Brown', 'A52A2A', undefined, 1, 3);
58320
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBrown2', 'Maroon', '800000', undefined, 1, 3);
58321
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBrown3', 'Sienna', 'A0522D', undefined, 1, 3);
58322
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBrown4', 'Saddle Brown', '8B4513', undefined, 1, 3);
58323
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBrown5', 'Chocolate', 'D2691E', undefined, 1, 3);
58324
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBrown6', 'Peru', 'CD853F', undefined, 1, 3);
58325
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBrown7', 'Dark Golden Rod', 'B8860B', undefined, 1, 3);
58326
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBrown8', 'Golden Rod', 'DAA520', undefined, 1, 3);
58327
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBrown9', 'Sandy Brown', 'F4A460', undefined, 1, 3);
58328
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBrown10', 'Rosy Brown', 'BC8F8F', undefined, 1, 3);
58329
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBrown11', 'Tan', 'D2B48C', undefined, 1, 3);
58330
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBrown12', 'Burlywood', 'DEB887', undefined, 1, 3);
58331
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBrown13', 'Wheat', 'F5DEB3', undefined, 1, 3);
58332
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBrown14', 'Navajo White', 'FFDEAD', undefined, 1, 3);
58333
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBrown15', 'Bisque', 'FFE4C4', undefined, 1, 3);
58334
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBrown16', 'Blanched Almond', 'FFEBCD', undefined, 1, 3);
58335
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrBrown17', 'Corn Silk', 'FFF8DC', undefined, 1, 3);
57757
58336
  html += "</ul>";
57758
58337
 
57759
58338
  html += "<li><span>White</span>";
58339
+ html += me.htmlCls.setHtmlCls.getMenuText('uniclrWhitewrap', 'White', undefined, 1, 2);
57760
58340
  html += "<ul>";
57761
- //html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrWhite', 'White');
57762
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrWhite1', 'White', 'FFF');
57763
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrWhite2', 'Snow', 'FFFAFA');
57764
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrWhite3', 'Honey Dew', 'F0FFF0');
57765
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrWhite4', 'Mint Cream', 'F5FFFA');
57766
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrWhite5', 'Azure', 'F0FFFF');
57767
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrWhite6', 'Alice Blue', 'F0F8FF');
57768
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrWhite7', 'Ghost White', 'F8F8FF');
57769
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrWhite8', 'White Smoke', 'F5F5F5');
57770
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrWhite9', 'Sea Shell', 'FFF5EE');
57771
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrWhite10', 'Beige', 'F5F5DC');
57772
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrWhite11', 'Old Lace', 'FDF5E6');
57773
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrWhite12', 'Floral White', 'FFFAF0');
57774
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrWhite13', 'Ivory', 'FFFFF0');
57775
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrWhite14', 'Antique White', 'FAEBD7');
57776
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrWhite15', 'Linen', 'FAF0E6');
57777
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrWhite16', 'Lavenderblush', 'FFF0F5');
57778
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrWhite17', 'Misty Rose', 'FFE4E1');
58341
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrWhite1', 'White', 'FFF', undefined, 1, 3);
58342
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrWhite2', 'Snow', 'FFFAFA', undefined, 1, 3);
58343
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrWhite3', 'Honey Dew', 'F0FFF0', undefined, 1, 3);
58344
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrWhite4', 'Mint Cream', 'F5FFFA', undefined, 1, 3);
58345
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrWhite5', 'Azure', 'F0FFFF', undefined, 1, 3);
58346
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrWhite6', 'Alice Blue', 'F0F8FF', undefined, 1, 3);
58347
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrWhite7', 'Ghost White', 'F8F8FF', undefined, 1, 3);
58348
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrWhite8', 'White Smoke', 'F5F5F5', undefined, 1, 3);
58349
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrWhite9', 'Sea Shell', 'FFF5EE', undefined, 1, 3);
58350
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrWhite10', 'Beige', 'F5F5DC', undefined, 1, 3);
58351
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrWhite11', 'Old Lace', 'FDF5E6', undefined, 1, 3);
58352
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrWhite12', 'Floral White', 'FFFAF0', undefined, 1, 3);
58353
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrWhite13', 'Ivory', 'FFFFF0', undefined, 1, 3);
58354
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrWhite14', 'Antique White', 'FAEBD7', undefined, 1, 3);
58355
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrWhite15', 'Linen', 'FAF0E6', undefined, 1, 3);
58356
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrWhite16', 'Lavenderblush', 'FFF0F5', undefined, 1, 3);
58357
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrWhite17', 'Misty Rose', 'FFE4E1', undefined, 1, 3);
57779
58358
  html += "</ul>";
57780
58359
 
57781
- html += "<li><span>Gray</span>";
58360
+ //html += "<li><span>Gray</span>";
58361
+ html += me.htmlCls.setHtmlCls.getMenuText('uniclrGraywrap', 'Gray', undefined, 1, 2);
57782
58362
  html += "<ul>";
57783
- //html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrGray', 'Gray');
57784
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGray1', 'Gray', '808080');
57785
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGray2', 'Dim Gray', '696969');
57786
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGray3', 'Light Slate Gray', '778899');
57787
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGray4', 'Slate Gray', '708090');
57788
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGray5', 'Dark Slate Gray', '2F4F4F');
57789
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGray6', 'Black', '000000');
57790
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGray7', 'Dark Gray', 'A9A9A9');
57791
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGray8', 'Silver', 'C0C0C0');
57792
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGray9', 'Light Gray', 'D3D3D3');
57793
- html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'mn4_clrGray10', 'Gainsboro', 'DCDCDC');
58363
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGray1', 'Gray', '808080', undefined, 1, 3);
58364
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGray2', 'Dim Gray', '696969', undefined, 1, 3);
58365
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGray3', 'Light Slate Gray', '778899', undefined, 1, 3);
58366
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGray4', 'Slate Gray', '708090', undefined, 1, 3);
58367
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGray5', 'Dark Slate Gray', '2F4F4F', undefined, 1, 3);
58368
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGray6', 'Black', '000000', undefined, 1, 3);
58369
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGray7', 'Dark Gray', 'A9A9A9', undefined, 1, 3);
58370
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGray8', 'Silver', 'C0C0C0', undefined, 1, 3);
58371
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGray9', 'Light Gray', 'D3D3D3', undefined, 1, 3);
58372
+ html += me.htmlCls.setHtmlCls.getRadioColor('mn4_clr', 'uniclrGray10', 'Gainsboro', 'DCDCDC', undefined, 1, 3);
57794
58373
  html += "</ul>";
57795
58374
 
57796
58375
  html += "</ul>";
57797
58376
 
57798
- if(!me.cfg.simplemenu) {
57799
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrCustom', 'Color Picker');
57800
- html += "<li>-</li>";
57801
- }
58377
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrCustom', 'Color Picker', undefined, undefined, 1);
58378
+ html += me.htmlCls.setHtmlCls.getMenuSep();
57802
58379
 
57803
58380
  if(me.cfg.cid === undefined) {
57804
58381
  //html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrRainbow', 'Rainbow (R-V)');
57805
- html += "<li><span style='padding-left:1.5em;'>Rainbow (R-V)</span>";
58382
+ //html += "<li><span style='padding-left:1.5em!important;'>Rainbow (R-V)</span>";
58383
+ html += me.htmlCls.setHtmlCls.getMenuText('mn4_clrRainbowwrap', 'Rainbow (R-V)', 'icn3d-menupd', 1, 1);
57806
58384
  html += "<ul>";
57807
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrRainbow', 'for Selection');
57808
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrRainbowChain', 'for Chains');
57809
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrRainbowSets', 'for Sets');
58385
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrRainbow', 'for Selection', undefined, 1, 2);
58386
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrRainbowChain', 'for Chains', undefined, 1, 2);
58387
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrRainbowSets', 'for Sets', undefined, undefined, 2);
57810
58388
  html += "</ul>";
57811
58389
 
57812
- if(!me.cfg.simplemenu) {
57813
- //html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrSpectrum', 'Spectrum (V-R)');
57814
- html += "<li><span style='padding-left:1.5em;'>Spectrum (V-R)</span>";
57815
- html += "<ul>";
57816
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrSpectrum', 'for Selection');
57817
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrSpectrumChain', 'for Chains');
57818
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrSpectrumSets', 'for Sets');
57819
- html += "</ul>";
57820
- }
57821
-
57822
- html += "<li><span style='padding-left:1.5em;'>Secondary</span>";
58390
+ html += me.htmlCls.setHtmlCls.getMenuText('mn4_clrSpectrumwrap', 'Spectrum (V-R)', 'icn3d-menupd', 1, 1);
57823
58391
  html += "<ul>";
57824
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrSSGreen', 'Sheet in Green');
57825
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrSSYellow', 'Sheet in Yellow');
57826
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrSSSpectrum', 'Spectrum');
58392
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrSpectrum', 'for Selection', undefined, 1, 2);
58393
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrSpectrumChain', 'for Chains', undefined, 1, 2);
58394
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrSpectrumSets', 'for Sets', undefined, undefined, 2);
57827
58395
  html += "</ul>";
57828
58396
 
57829
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrCharge', 'Charge');
57830
-
57831
- // if(!me.cfg.notebook && !me.cfg.hidelicense) {
57832
- // html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn1_delphi2', 'DelPhi<br><span style="padding-left:1.5em;">Potential ' + me.htmlCls.licenseStr + '</span>');
57833
- // }
58397
+ //html += "<li><span style='padding-left:1.5em!important;'>Secondary</span>";
58398
+ html += me.htmlCls.setHtmlCls.getMenuText('mn4_clrSSwrap', 'Secondary', 'icn3d-menupd', 1, 1);
58399
+ html += "<ul>";
58400
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrSSGreen', 'Sheet in Green', undefined, 1, 2);
58401
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrSSYellow', 'Sheet in Yellow', undefined, 1, 2);
58402
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrSSSpectrum', 'Spectrum', undefined, undefined, 2);
58403
+ html += "</ul>";
57834
58404
 
57835
- //html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrHydrophobic', 'Wimley-White<br><span style="padding-left:1.5em;">Hydrophobicity</span>');
58405
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrCharge', 'Charge', undefined, 1, 1);
57836
58406
 
57837
- html += "<li><span style='padding-left:1.5em;'>Hydrophobicity</span>";
58407
+ //html += "<li><span style='padding-left:1.5em!important;'>Hydrophobicity</span>";
58408
+ html += me.htmlCls.setHtmlCls.getMenuText('mn4_hydrophobicwrap', 'Hydrophobicity', 'icn3d-menupd', 1, 1);
57838
58409
  html += "<ul>";
57839
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrNormalizedHP', 'Normalized');
57840
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrHydrophobic', 'Wimley-White');
58410
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrNormalizedHP', 'Normalized', undefined, 1, 2);
58411
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrHydrophobic', 'Wimley-White', undefined, undefined, 2);
57841
58412
  html += "</ul>";
57842
58413
 
57843
- html += "<li><span style='padding-left:1.5em;'>B-factor</span>";
58414
+ //html += "<li><span style='padding-left:1.5em!important;'>B-factor</span>";
58415
+ html += me.htmlCls.setHtmlCls.getMenuText('mn4_clrBfactorwrap', 'B-factor', 'icn3d-menupd', 1, 1);
57844
58416
  html += "<ul>";
57845
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrBfactor', 'Original');
57846
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrBfactorNorm', 'Percentile');
58417
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrBfactor', 'Original', undefined, 1, 2);
58418
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrBfactorNorm', 'Percentile', undefined, 1, 2);
57847
58419
  html += "</ul>";
57848
58420
 
57849
- if(!me.cfg.simplemenu) html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrArea', 'Solvent<br><span style="padding-left:1.5em;">Accessibility</span>');
58421
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrArea', 'Solvent<br><span style="padding-left:1.5em;">Accessibility</span>', undefined, undefined, 1);
57850
58422
 
57851
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrStructure', 'Structure');
58423
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrStructure', 'Structure', undefined, 1, 1);
57852
58424
 
57853
58425
  if(me.cfg.align !== undefined || me.cfg.chainalign !== undefined || me.cfg.blast_rep_id !== undefined) {
57854
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrChain', 'Chain');
58426
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrChain', 'Chain', undefined, 1, 1);
57855
58427
  }
57856
58428
  else {
57857
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrChain', 'Chain', true);
58429
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrChain', 'Chain', true, 1, 1);
57858
58430
  }
57859
58431
 
57860
58432
  //if(me.cfg.mmdbid !== undefined || me.cfg.gi !== undefined) {
57861
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrdomain', '3D Domain');
58433
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrdomain', '3D Domain', undefined, undefined, 1);
57862
58434
  //}
57863
58435
 
57864
58436
  if(me.cfg.cid === undefined) {
57865
- if(!me.cfg.simplemenu) {
57866
- html += "<li><span style='padding-left:1.5em;'>Defined Sets</span>";
57867
- html += "<ul>";
57868
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrsets', 'Rainbow for Selected Sets<br>in "Analysis > Defined Sets"');
57869
- html += "</ul>";
57870
- }
58437
+ //html += "<li><span style='padding-left:1.5em!important;'>Defined Sets</span>";
58438
+ html += me.htmlCls.setHtmlCls.getMenuText('mn4_clrsetswrap', 'Defined Sets', 'icn3d-menupd', undefined, 1);
58439
+ html += "<ul>";
58440
+ 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);
58441
+ html += "</ul>";
58442
+ html += "</li>";
57871
58443
  }
57872
58444
 
57873
- //html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrResidue', 'Residue');
57874
-
57875
- html += "<li><span style='padding-left:1.5em;'>Residue</span>";
58445
+ //html += "<li><span style='padding-left:1.5em!important;'>Residue</span>";
58446
+ html += me.htmlCls.setHtmlCls.getMenuText('mn4_clrResiduewrap', 'Residue', 'icn3d-menupd', 1, 1);
57876
58447
  html += "<ul>";
57877
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrResidue', 'Default');
57878
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrResidueCustom', 'Custom');
58448
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrResidue', 'Default', undefined, 1, 2);
58449
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrResidueCustom', 'Custom', undefined, undefined, 2);
57879
58450
  html += "</ul>";
57880
58451
 
57881
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrAtom', 'Atom');
58452
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrAtom', 'Atom', undefined, 1, 1);
57882
58453
 
57883
58454
  if(me.cfg.align !== undefined || me.cfg.chainalign !== undefined) {
57884
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrIdentity', 'Identity', true);
57885
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrConserved', 'Conservation');
58455
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrIdentity', 'Identity', true, undefined, 2);
58456
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrConserved', 'Conservation', undefined, undefined, 2);
57886
58457
  }
57887
58458
  else if(me.cfg.blast_rep_id !== undefined) {
57888
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrIdentity', 'Identity');
57889
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrConserved', 'Conservation', true);
58459
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrIdentity', 'Identity', undefined, undefined, 2);
58460
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrConserved', 'Conservation', true, undefined, 2);
57890
58461
  }
57891
58462
 
57892
58463
  //if(me.cfg.afid) html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrConfidence', 'AF Confidence');
57893
58464
  //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) {
57894
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrConfidence', 'AlphaFold<br><span style="padding-left:1.5em;">Confidence</span>');
58465
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrConfidence', 'AlphaFold<br><span style="padding-left:1.5em;">Confidence</span>', undefined, 1, 1);
57895
58466
  //}
57896
58467
  }
57897
58468
  else {
57898
58469
  //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>');
57899
- html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrAtom', 'Atom', true);
58470
+ html += me.htmlCls.setHtmlCls.getRadio('mn4_clr', 'mn4_clrAtom', 'Atom', true, 1, 1);
57900
58471
  }
57901
58472
 
57902
- if(!me.cfg.simplemenu) {
57903
- html += "<li>-</li>";
58473
+ html += me.htmlCls.setHtmlCls.getMenuSep();
57904
58474
 
57905
- html += me.htmlCls.setHtmlCls.getLink('mn4_clrSave', 'Save Color');
57906
- html += me.htmlCls.setHtmlCls.getLink('mn4_clrApplySave', 'Apply Saved Color');
57907
- }
58475
+ html += me.htmlCls.setHtmlCls.getLink('mn4_clrSave', 'Save Color', undefined, 1);
58476
+ html += me.htmlCls.setHtmlCls.getLink('mn4_clrApplySave', 'Apply Saved Color', undefined, 1);
57908
58477
 
57909
58478
  html += "<li><br/></li>";
57910
58479
  html += "</ul>";
@@ -57940,197 +58509,194 @@ class SetMenu {
57940
58509
  html += "<ul class='icn3d-mn-item'>";
57941
58510
 
57942
58511
  if(me.cfg.cid === undefined) {
57943
- html += me.htmlCls.setHtmlCls.getLink('mn6_selectannotations', 'Seq. & Annotations ' + me.htmlCls.wifiStr);
58512
+ html += me.htmlCls.setHtmlCls.getLink('mn6_selectannotations', 'Seq. & Annotations ' + me.htmlCls.wifiStr, 1, 1);
57944
58513
 
57945
58514
  //if(me.cfg.align !== undefined || me.cfg.chainalign !== undefined) { // || ic.bRealign || ic.bSymd || ic.bInputfile) {
57946
- html += me.htmlCls.setHtmlCls.getLink('mn2_alignment', 'Aligned Seq. ' + me.htmlCls.wifiStr);
58515
+ html += me.htmlCls.setHtmlCls.getLink('mn2_alignment', 'Aligned Seq. ' + me.htmlCls.wifiStr, undefined, 1);
57947
58516
  //}
57948
58517
 
57949
58518
  if(me.cfg.mmdbid !== undefined || me.cfg.gi !== undefined || me.cfg.blast_rep_id !== undefined || me.cfg.align !== undefined || me.cfg.chainalign !== undefined) {
57950
- html += me.htmlCls.setHtmlCls.getLink('mn2_2ddgm', '2D Diagram ' + me.htmlCls.wifiStr);
58519
+ html += me.htmlCls.setHtmlCls.getLink('mn2_2ddgm', '2D Diagram ' + me.htmlCls.wifiStr, 1, 1);
57951
58520
  }
57952
58521
 
57953
- html += "<li><span>2D Cartoon</span>";
58522
+ //html += "<li><span>2D Cartoon</span>";
58523
+ html += me.htmlCls.setHtmlCls.getMenuText('2dctnwrap', '2D Cartoon', undefined, 1);
57954
58524
  html += "<ul>";
57955
- html += me.htmlCls.setHtmlCls.getLink('2dctn_chain', 'Chain Level');
57956
- html += me.htmlCls.setHtmlCls.getLink('2dctn_domain', 'Domain Level');
57957
- html += me.htmlCls.setHtmlCls.getLink('2dctn_secondary', 'Helix/Sheet Level');
58525
+ html += me.htmlCls.setHtmlCls.getLink('2dctn_chain', 'Chain Level', undefined, 2);
58526
+ html += me.htmlCls.setHtmlCls.getLink('2dctn_domain', 'Domain Level', undefined, 2);
58527
+ html += me.htmlCls.setHtmlCls.getLink('2dctn_secondary', 'Helix/Sheet Level', undefined, 2);
57958
58528
  html += "</ul>";
57959
58529
  html += "</li>";
57960
58530
 
57961
- html += me.htmlCls.setHtmlCls.getLink('definedsets2', 'Defined Sets');
58531
+ html += me.htmlCls.setHtmlCls.getLink('definedsets2', 'Defined Sets', 1, 1);
57962
58532
 
57963
- html += "<li>-</li>";
58533
+ html += me.htmlCls.setHtmlCls.getMenuSep();
57964
58534
 
57965
- html += me.htmlCls.setHtmlCls.getLink('mn6_hbondsYes', 'Interactions');
58535
+ html += me.htmlCls.setHtmlCls.getLink('mn6_hbondsYes', 'Interactions', 1, 1);
57966
58536
  //html += me.htmlCls.setHtmlCls.getLink('mn6_hbondsNo', 'Remove H-Bonds <br>& Interactions');
57967
58537
 
57968
- if(!me.cfg.simplemenu) html += me.htmlCls.setHtmlCls.getLink('mn6_contactmap', 'Contact Map');
57969
- /*
57970
- html += "<li><span>Bring to Front</span>";
57971
- html += "<ul>";
57972
- html += me.htmlCls.setHtmlCls.getLink('mn1_window_table', 'Interaction Table');
57973
- html += me.htmlCls.setHtmlCls.getLink('mn1_window_linegraph', '2D Interaction Network');
57974
- html += me.htmlCls.setHtmlCls.getLink('mn1_window_scatterplot', '2D Interaction Map');
57975
- html += me.htmlCls.setHtmlCls.getLink('mn1_window_graph', '2D Graph(Force-Directed)');
57976
- html += "</ul>";
57977
- html += "</li>";
57978
- */
58538
+ html += me.htmlCls.setHtmlCls.getLink('mn6_contactmap', 'Contact Map', undefined, 1);
57979
58539
 
57980
58540
  if(!me.cfg.notebook) {
57981
- html += me.htmlCls.setHtmlCls.getLink('mn1_mutation', 'Mutation ' + me.htmlCls.wifiStr);
58541
+ html += me.htmlCls.setHtmlCls.getLink('mn1_mutation', 'Mutation ' + me.htmlCls.wifiStr, 1, 1);
57982
58542
  }
57983
58543
 
57984
- if(!me.cfg.simplemenu) html += "<li>-</li>";
58544
+ html += me.htmlCls.setHtmlCls.getMenuSep();
57985
58545
  }
57986
58546
 
57987
58547
  if(!me.cfg.notebook && !me.cfg.hidelicense) {
57988
- html += me.htmlCls.setHtmlCls.getLink('mn1_delphi', 'DelPhi Potential ' + me.htmlCls.licenseStr);
58548
+ html += me.htmlCls.setHtmlCls.getLink('mn1_delphi', 'DelPhi Potential ' + me.htmlCls.licenseStr, 1, 1);
57989
58549
 
57990
- if(!me.cfg.simplemenu) {
57991
- html += "<li><span>Load PQR/Phi</span>";
57992
- html += "<ul>";
57993
- html += me.htmlCls.setHtmlCls.getLink('mn1_phi', 'Local PQR/Phi/Cube File');
57994
- html += me.htmlCls.setHtmlCls.getLink('mn1_phiurl', 'URL PQR/Phi/Cube File');
57995
- html += "</ul>";
57996
- html += me.htmlCls.setHtmlCls.getLink('delphipqr', 'Download PQR');
57997
- }
58550
+ //html += "<li><span>Load PQR/Phi</span>";
58551
+ html += me.htmlCls.setHtmlCls.getMenuText('mn1_phiwrap', 'Load PQR/Phi', undefined, undefined, 1);
58552
+ html += "<ul>";
58553
+ html += me.htmlCls.setHtmlCls.getLink('mn1_phi', 'Local PQR/Phi/Cube File', undefined, 2);
58554
+ html += me.htmlCls.setHtmlCls.getLink('mn1_phiurl', 'URL PQR/Phi/Cube File', undefined, 2);
58555
+ html += "</ul>";
58556
+ html += "</li>";
58557
+ html += me.htmlCls.setHtmlCls.getLink('delphipqr', 'Download PQR', undefined, 1);
57998
58558
 
57999
- html += "<li>-</li>";
58559
+ html += me.htmlCls.setHtmlCls.getMenuSep();
58000
58560
  }
58001
58561
 
58002
- html += "<li><span>Distance</span>";
58562
+ //html += "<li><span>Distance</span>";
58563
+ html += me.htmlCls.setHtmlCls.getMenuText('mn6_distancewrap', 'Distance', undefined, 1, 1);
58003
58564
  html += "<ul>";
58004
- html += me.htmlCls.setHtmlCls.getRadio('mn6_distance', 'mn6_distanceYes', 'between Two Atoms');
58005
- html += me.htmlCls.setHtmlCls.getRadio('mn6_distance', 'mn6_distTwoSets', 'between Two Sets');
58006
- html += me.htmlCls.setHtmlCls.getRadio('mn6_distance', 'mn6_distManySets', 'Among Many Sets');
58007
- html += me.htmlCls.setHtmlCls.getRadio('mn6_distance', 'mn6_distanceNo', 'Hide', true);
58565
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_distance', 'mn6_distanceYes', 'between Two Atoms', undefined, 1, 2);
58566
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_distance', 'mn6_distTwoSets', 'between Two Sets', undefined, undefined, 2);
58567
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_distance', 'mn6_distManySets', 'Among Many Sets', undefined, undefined, 2);
58568
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_distance', 'mn6_distanceNo', 'Hide', true, 1, 2);
58008
58569
  html += "</ul>";
58009
58570
  html += "</li>";
58010
58571
 
58011
- html += me.htmlCls.setHtmlCls.getLink('mn6_area', 'Surface Area');
58572
+ html += me.htmlCls.setHtmlCls.getLink('mn6_area', 'Surface Area', 1, 1);
58012
58573
 
58013
- html += "<li><span>Label</span>";
58574
+ //html += "<li><span>Label</span>";
58575
+ html += me.htmlCls.setHtmlCls.getMenuText('mn6_addlabelwrap', 'Label', undefined, 1, 1);
58014
58576
  html += "<ul>";
58015
- html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_addlabelYes', 'by Picking Atoms');
58016
- html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_addlabelSelection', 'per Selection');
58017
- html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_addlabelAtoms', 'per Atom');
58018
- html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_addlabelElements', 'per Atom Element');
58577
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_addlabelYes', 'by Picking Atoms', undefined, undefined, 2);
58578
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_addlabelSelection', 'per Selection', undefined, undefined, 2);
58579
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_addlabelAtoms', 'per Atom', undefined, undefined, 2);
58580
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_addlabelElements', 'per Atom Element', undefined, 1, 2);
58019
58581
  if(me.cfg.cid === undefined) {
58020
- html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_addlabelResidues', 'per Residue');
58021
- html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_addlabelResnum', 'per Residue & Number');
58022
- html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_addlabelChains', 'per Chain');
58023
- html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_addlabelTermini', 'N- & C-Termini');
58582
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_addlabelResidues', 'per Residue', undefined, 1, 2);
58583
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_addlabelResnum', 'per Residue & Number', undefined, 1, 2);
58584
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_addlabelChains', 'per Chain', undefined, undefined, 2);
58585
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_addlabelTermini', 'N- & C-Termini', undefined, 1, 2);
58024
58586
  }
58025
58587
 
58026
- html += "<li>-</li>";
58027
- html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_labelColor', 'Change Label Color', true);
58028
- html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_addlabelNo', 'Remove', true);
58588
+ html += me.htmlCls.setHtmlCls.getMenuSep();
58589
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_labelColor', 'Change Label Color', undefined, 1, 2);
58590
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_addlabel', 'mn6_addlabelNo', 'Remove', true, 1, 2);
58029
58591
  html += "</ul>";
58030
58592
  html += "</li>";
58031
58593
 
58032
- html += "<li><span>Label Scale</span>";
58594
+ //html += "<li><span>Label Scale</span>";
58595
+ html += me.htmlCls.setHtmlCls.getMenuText('labelscalewrap', 'Label Scale', undefined, 1, 1);
58033
58596
  html += "<ul>";
58034
58597
 
58035
58598
  for(let i = 1; i <= 4; ++i) {
58036
58599
  let twoi = 2 * i;
58037
- html += me.htmlCls.setHtmlCls.getRadio('mn6_labelscale', 'mn6_labelscale0' + twoi, '0.' + twoi);
58600
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_labelscale', 'mn6_labelscale0' + twoi, '0.' + twoi, undefined, 1, 2);
58038
58601
  }
58039
58602
 
58040
58603
  for(let i = 1; i <= 5; ++i) {
58041
58604
  if(i == 1) {
58042
- html += me.htmlCls.setHtmlCls.getRadio('mn6_labelscale', 'mn6_labelscale' + i + '0', i + '.0', true);
58605
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_labelscale', 'mn6_labelscale' + i + '0', i + '.0', true, 1, 2);
58043
58606
  }
58044
58607
  else {
58045
- html += me.htmlCls.setHtmlCls.getRadio('mn6_labelscale', 'mn6_labelscale' + i + '0', i + '.0');
58608
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_labelscale', 'mn6_labelscale' + i + '0', i + '.0', undefined, 1, 2);
58046
58609
  }
58047
58610
  }
58048
58611
 
58049
58612
  html += "</ul>";
58050
58613
  html += "</li>";
58051
58614
 
58052
- html += "<li>-</li>";
58615
+ html += me.htmlCls.setHtmlCls.getMenuSep();
58053
58616
 
58054
58617
  if(me.cfg.cid === undefined) {
58055
- if(!me.cfg.simplemenu) {
58056
- html += "<li><span>Chem. Binding</span>";
58057
- html += "<ul>";
58058
- html += me.htmlCls.setHtmlCls.getRadio('mn6_chemicalbinding', 'mn6_chemicalbindingshow', 'Show');
58059
- html += me.htmlCls.setHtmlCls.getRadio('mn6_chemicalbinding', 'mn6_chemicalbindinghide', 'Hide', true);
58060
- html += "</ul>";
58061
- html += "</li>";
58062
- }
58618
+ //html += "<li><span>Chem. Binding</span>";
58619
+ html += me.htmlCls.setHtmlCls.getMenuText('mn6_chemicalbindingwrap', 'Chem. Binding', undefined, undefined, 1);
58620
+ html += "<ul>";
58621
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_chemicalbinding', 'mn6_chemicalbindingshow', 'Show', undefined, undefined, 2);
58622
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_chemicalbinding', 'mn6_chemicalbindinghide', 'Hide', true, undefined, 2);
58623
+ html += "</ul>";
58624
+ html += "</li>";
58063
58625
 
58064
- html += "<li><span>Disulfide Bonds</span>";
58626
+ //html += "<li><span>Disulfide Bonds</span>";
58627
+ html += me.htmlCls.setHtmlCls.getMenuText('mn6_ssbondswrap', 'Disulfide Bonds', undefined, 1, 1);
58065
58628
  html += "<ul>";
58066
- html += me.htmlCls.setHtmlCls.getRadio('mn6_ssbonds', 'mn6_ssbondsYes', 'Show', true);
58067
- html += me.htmlCls.setHtmlCls.getRadio('mn6_ssbonds', 'mn6_ssbondsExport', 'Export Pairs');
58068
- html += me.htmlCls.setHtmlCls.getRadio('mn6_ssbonds', 'mn6_ssbondsNo', 'Hide');
58629
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_ssbonds', 'mn6_ssbondsYes', 'Show', true, 1, 2);
58630
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_ssbonds', 'mn6_ssbondsExport', 'Export Pairs', undefined, undefined, 2);
58631
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_ssbonds', 'mn6_ssbondsNo', 'Hide', undefined, 1, 2);
58069
58632
  html += "</ul>";
58070
58633
  html += "</li>";
58071
58634
 
58072
- if(!me.cfg.simplemenu) {
58073
- html += "<li><span>Cross-Linkages</span>";
58074
- html += "<ul>";
58075
- html += me.htmlCls.setHtmlCls.getRadio('mn6_clbonds', 'mn6_clbondsYes', 'Show', true);
58076
- html += me.htmlCls.setHtmlCls.getRadio('mn6_clbonds', 'mn6_clbondsExport', 'Export Pairs');
58077
- html += me.htmlCls.setHtmlCls.getRadio('mn6_clbonds', 'mn6_clbondsNo', 'Hide');
58078
- html += "</ul>";
58079
- html += "</li>";
58080
- }
58635
+ //html += "<li><span>Cross-Linkages</span>";
58636
+ html += me.htmlCls.setHtmlCls.getMenuText('mn6_clbondswrap', 'Cross-Linkages', undefined, undefined, 1);
58637
+ html += "<ul>";
58638
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_clbonds', 'mn6_clbondsYes', 'Show', true, undefined, 2);
58639
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_clbonds', 'mn6_clbondsExport', 'Export Pairs', undefined, undefined, 2);
58640
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_clbonds', 'mn6_clbondsNo', 'Hide', undefined, undefined, 2);
58641
+ html += "</ul>";
58642
+ html += "</li>";
58081
58643
 
58082
- 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;
58644
+ 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;
58083
58645
 
58084
58646
  if(bOnePdb) {
58085
- html += "<li id='" + me.pre + "assemblyWrapper'><span>Assembly</span>";
58647
+ //html += "<li id='" + me.pre + "assemblyWrapper'><span>Assembly</span>";
58648
+ html += me.htmlCls.setHtmlCls.getMenuText('assemblyWrapper', 'Assembly', undefined, 1, 1);
58086
58649
  html += "<ul>";
58087
58650
 
58088
58651
  if(!me.cfg.bu) {
58089
- html += me.htmlCls.setHtmlCls.getRadio('mn6_assembly', 'mn6_assemblyYes', 'Biological Assembly');
58090
- html += me.htmlCls.setHtmlCls.getRadio('mn6_assembly', 'mn6_assemblyNo', 'Asymmetric Unit', true);
58652
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_assembly', 'mn6_assemblyYes', 'Biological Assembly', undefined, 1, 2);
58653
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_assembly', 'mn6_assemblyNo', 'Asymmetric Unit', true, 1, 2);
58091
58654
  }
58092
58655
  else {
58093
- html += me.htmlCls.setHtmlCls.getRadio('mn6_assembly', 'mn6_assemblyYes', 'Biological Assembly', true);
58094
- html += me.htmlCls.setHtmlCls.getRadio('mn6_assembly', 'mn6_assemblyNo', 'Asymmetric Unit');
58656
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_assembly', 'mn6_assemblyYes', 'Biological Assembly', true, 1, 2);
58657
+ html += me.htmlCls.setHtmlCls.getRadio('mn6_assembly', 'mn6_assemblyNo', 'Asymmetric Unit', undefined, 1, 2);
58095
58658
  }
58096
58659
 
58097
58660
  html += "</ul>";
58098
58661
  html += "</li>";
58099
-
58100
58662
  }
58101
58663
 
58102
- html += "<li><span>Symmetry</span>";
58664
+ //html += "<li><span>Symmetry</span>";
58665
+ html += me.htmlCls.setHtmlCls.getMenuText('mn6_symmetrywrap', 'Symmetry', undefined, undefined, 1);
58103
58666
  html += "<ul>";
58104
- if(bOnePdb) html += me.htmlCls.setHtmlCls.getLink('mn6_symmetry', 'from PDB(precalculated) ' + me.htmlCls.wifiStr);
58105
- if(!me.cfg.simplemenu) {
58106
- html += me.htmlCls.setHtmlCls.getLink('mn6_symd', 'from SymD(Dynamic) ' + me.htmlCls.wifiStr);
58107
- html += me.htmlCls.setHtmlCls.getLink('mn6_clear_sym', 'Clear SymD Symmetry');
58108
- html += me.htmlCls.setHtmlCls.getLink('mn6_axes_only', 'Show Axes Only');
58109
- }
58667
+ if(bOnePdb) html += me.htmlCls.setHtmlCls.getLink('mn6_symmetry', 'from PDB(precalculated) ' + me.htmlCls.wifiStr, undefined, 2);
58668
+
58669
+ html += me.htmlCls.setHtmlCls.getLink('mn6_symd', 'from SymD(Dynamic) ' + me.htmlCls.wifiStr, undefined, 2);
58670
+ html += me.htmlCls.setHtmlCls.getLink('mn6_clear_sym', 'Clear SymD Symmetry', undefined, 2);
58671
+ html += me.htmlCls.setHtmlCls.getLink('mn6_axes_only', 'Show Axes Only', undefined, 2);
58672
+
58110
58673
  html += "</ul>";
58111
58674
  html += "</li>";
58112
58675
 
58113
- html += "<li>-</li>";
58676
+ html += me.htmlCls.setHtmlCls.getMenuSep();
58114
58677
  }
58115
58678
 
58116
- if(!me.cfg.simplemenu) html += me.htmlCls.setHtmlCls.getLink('mn6_yournote', 'Window Title');
58679
+ html += me.htmlCls.setHtmlCls.getLink('mn6_yournote', 'Window Title', undefined, 1);
58117
58680
 
58118
58681
  if(me.cfg.cid !== undefined) {
58119
- html += "<li><span>Links</span>";
58682
+ //html += "<li><span>Links</span>";
58683
+ html += me.htmlCls.setHtmlCls.getMenuText('mn1_linkwrap', 'Links', undefined, undefined, 1);
58684
+
58120
58685
  html += "<ul>";
58121
- html += me.htmlCls.setHtmlCls.getLink('mn1_link_structure', 'Compound Summary ' + me.htmlCls.wifiStr);
58122
- html += me.htmlCls.setHtmlCls.getLink('mn1_link_vast', 'Similar Compounds ' + me.htmlCls.wifiStr);
58123
- html += me.htmlCls.setHtmlCls.getLink('mn1_link_bind', 'Structures Bound ' + me.htmlCls.wifiStr);
58686
+ html += me.htmlCls.setHtmlCls.getLink('mn1_link_structure', 'Compound Summary ' + me.htmlCls.wifiStr, undefined, 2);
58687
+ html += me.htmlCls.setHtmlCls.getLink('mn1_link_vast', 'Similar Compounds ' + me.htmlCls.wifiStr, undefined, 2);
58688
+ html += me.htmlCls.setHtmlCls.getLink('mn1_link_bind', 'Structures Bound ' + me.htmlCls.wifiStr, undefined, 2);
58124
58689
  html += "</ul>";
58125
58690
  html += "</li>";
58126
58691
  }
58127
58692
  else {
58128
- html += "<li><span>Links</span>";
58693
+ //html += "<li><span>Links</span>";
58694
+ html += me.htmlCls.setHtmlCls.getMenuText('mn1_linkwrap', 'Links', undefined, undefined, 1);
58129
58695
  html += "<ul>";
58130
- html += me.htmlCls.setHtmlCls.getLink('mn1_link_structure', 'Structure Summary ' + me.htmlCls.wifiStr);
58131
- html += me.htmlCls.setHtmlCls.getLink('mn1_link_vast', 'Similar Structures ' + me.htmlCls.wifiStr);
58132
- html += me.htmlCls.setHtmlCls.getLink('mn1_link_pubmed', 'Literature ' + me.htmlCls.wifiStr);
58133
- html += me.htmlCls.setHtmlCls.getLink('mn1_link_protein', 'Protein ' + me.htmlCls.wifiStr);
58696
+ html += me.htmlCls.setHtmlCls.getLink('mn1_link_structure', 'Structure Summary ' + me.htmlCls.wifiStr, undefined, 2);
58697
+ html += me.htmlCls.setHtmlCls.getLink('mn1_link_vast', 'Similar Structures ' + me.htmlCls.wifiStr, undefined, 2);
58698
+ html += me.htmlCls.setHtmlCls.getLink('mn1_link_pubmed', 'Literature ' + me.htmlCls.wifiStr, undefined, 2);
58699
+ html += me.htmlCls.setHtmlCls.getLink('mn1_link_protein', 'Protein ' + me.htmlCls.wifiStr, undefined, 2);
58134
58700
  //html += me.htmlCls.setHtmlCls.getLink('mn1_link_gene', 'Gene');
58135
58701
  //html += me.htmlCls.setHtmlCls.getLink('mn1_link_chemicals', 'Chemicals');
58136
58702
  html += "</ul>";
@@ -58169,55 +58735,77 @@ class SetMenu {
58169
58735
 
58170
58736
  let html = "";
58171
58737
 
58172
- let liStr = "<li><a href='";
58173
-
58174
58738
  html += "<ul class='icn3d-mn-item'>";
58175
58739
 
58176
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#about' target='_blank'>About iCn3D<span style='font-size:0.9em'> " + me.REVISION + "</span></a></li>";
58740
+ //html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#about' target='_blank'>About iCn3D<span style='font-size:0.9em'> " + me.REVISION + "</span></a></li>";
58741
+ 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);
58742
+
58743
+ //html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#gallery' target='_blank'>Live Gallery " + me.htmlCls.wifiStr + "</a></li>";
58744
+ html += me.htmlCls.setHtmlCls.getMenuUrl('gallery', me.htmlCls.baseUrl + "icn3d/icn3d.html#gallery", "Live Gallery " + me.htmlCls.wifiStr, 1, 1);
58745
+ //html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#videos' target='_blank'>iCn3D Videos</a></li>";
58746
+ html += me.htmlCls.setHtmlCls.getMenuUrl('video', me.htmlCls.baseUrl + "icn3d/icn3d.html#videos", "iCn3D Videos", 1, 1);
58177
58747
 
58178
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#gallery' target='_blank'>Live Gallery " + me.htmlCls.wifiStr + "</a></li>";
58748
+ //html += "<li><span>FAQ</span>";
58749
+ html += me.htmlCls.setHtmlCls.getMenuText('mn6_faq', 'FAQ', undefined, 1, 1);
58179
58750
 
58180
- html += "<li><span>Tutorial</span>";
58181
58751
  html += "<ul>";
58182
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#useicn3d' target='_blank'>Use iCn3D</a></li>";
58183
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#videos' target='_blank'>iCn3D Videos</a></li>";
58184
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#parameters' target='_blank'>URL Parameters</a></li>";
58185
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#commands' target='_blank'>Commands</a></li>";
58752
+ html += me.htmlCls.setHtmlCls.getMenuUrl('faq_viewstru', me.htmlCls.baseUrl + "icn3d/icn3d.html#viewstru", "View structure", 1, 2);
58753
+ html += me.htmlCls.setHtmlCls.getMenuUrl('faq_tfstru', me.htmlCls.baseUrl + "icn3d/icn3d.html#tfstru", "Transform Structure", 1, 2);
58754
+ html += me.htmlCls.setHtmlCls.getMenuUrl('faq_selsubset', me.htmlCls.baseUrl + "icn3d/icn3d.html#selsubset", "Select Subsets", 1, 2);
58755
+ html += me.htmlCls.setHtmlCls.getMenuUrl('faq_stylecolor', me.htmlCls.baseUrl + "icn3d/icn3d.html#changestylecolor", "Change Style/Color", 1, 2);
58756
+ html += me.htmlCls.setHtmlCls.getMenuUrl('faq_savework', me.htmlCls.baseUrl + "icn3d/icn3d.html#saveview", "Save Work", 1, 2);
58757
+ html += me.htmlCls.setHtmlCls.getMenuUrl('faq_showanno', me.htmlCls.baseUrl + "icn3d/icn3d.html#showanno", "Show Annotations", 1, 2);
58758
+ html += me.htmlCls.setHtmlCls.getMenuUrl('faq_exportanno', me.htmlCls.baseUrl + "icn3d/icn3d.html#exportanno", "Export Annotations", 1, 2);
58759
+ html += me.htmlCls.setHtmlCls.getMenuUrl('faq_interanal', me.htmlCls.baseUrl + "icn3d/icn3d.html#interanalysis", "Interactions Analysis", 1, 2);
58760
+ html += me.htmlCls.setHtmlCls.getMenuUrl('faq_mutanal', me.htmlCls.baseUrl + "icn3d/icn3d.html#mutationanalysis", "Mutation Analysis", 1, 2);
58761
+ html += me.htmlCls.setHtmlCls.getMenuUrl('faq_elecpot', me.htmlCls.baseUrl + "icn3d/icn3d.html#elecpot", "Electrostatic Pot.", 1, 2);
58762
+ html += me.htmlCls.setHtmlCls.getMenuUrl('faq_simipdb', me.htmlCls.baseUrl + "icn3d/icn3d.html#simivast", "Similar PDB", 1, 2);
58763
+ html += me.htmlCls.setHtmlCls.getMenuUrl('faq_simialphapdb', me.htmlCls.baseUrl + "icn3d/icn3d.html#simifoldseek", "Similar AlphaFold/PDB", 1, 2);
58764
+ html += me.htmlCls.setHtmlCls.getMenuUrl('faq_alnstru', me.htmlCls.baseUrl + "icn3d/icn3d.html#alignmul", "Align Multiple Structures", 1, 2);
58765
+ html += me.htmlCls.setHtmlCls.getMenuUrl('faq_batchanal', me.htmlCls.baseUrl + "icn3d/icn3d.html#batchanalysis", "Batch Analysis", 1, 2);
58766
+ html += me.htmlCls.setHtmlCls.getMenuUrl('faq_embedicn3d', me.htmlCls.baseUrl + "icn3d/icn3d.html#embedicn3d", "Embed iCn3D", 1, 2);
58186
58767
  html += "</ul>";
58187
58768
  html += "</li>";
58188
58769
 
58189
- html += liStr + "https://www.ncbi.nlm.nih.gov/structure' target='_blank'>Search Structure " + me.htmlCls.wifiStr + "</a></li>";
58190
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#citing' target='_blank'>Citing iCn3D</a></li>";
58770
+ //html += liStr + "https://www.ncbi.nlm.nih.gov/structure' target='_blank'>Search Structure " + me.htmlCls.wifiStr + "</a></li>";
58771
+ //html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#citing' target='_blank'>Citing iCn3D</a></li>";
58772
+ html += me.htmlCls.setHtmlCls.getMenuUrl('citing', me.htmlCls.baseUrl + "icn3d/icn3d.html#citing", "Citing iCn3D", undefined, 1);
58191
58773
 
58192
- html += "<li><span>Source Code</span>";
58774
+ //html += "<li><span>Source Code</span>";
58775
+ html += me.htmlCls.setHtmlCls.getMenuText('mn6_source', 'Source Code', undefined, 1, 1);
58193
58776
  html += "<ul>";
58194
- html += liStr + "https://github.com/ncbi/icn3d' target='_blank'>GitHub (browser) " + me.htmlCls.wifiStr + "</a></li>";
58195
- html += liStr + "https://www.npmjs.com/package/icn3d' target='_blank'>npm (Node.js) " + me.htmlCls.wifiStr + "</a></li>";
58196
- html += liStr + "https://pypi.org/project/icn3dpy' target='_blank'>Jupyter Notebook " + me.htmlCls.wifiStr + "</a></li>";
58777
+ html += me.htmlCls.setHtmlCls.getMenuUrl('github', "https://github.com/ncbi/icn3d", "GitHub (browser) " + me.htmlCls.wifiStr, 1, 2);
58778
+ html += me.htmlCls.setHtmlCls.getMenuUrl('npm', "https://www.npmjs.com/package/icn3d", "npm (Node.js) " + me.htmlCls.wifiStr, 1, 2);
58779
+ html += me.htmlCls.setHtmlCls.getMenuUrl('notebook', "https://pypi.org/project/icn3dpy", "Jupyter Notebook " + me.htmlCls.wifiStr, 1, 2);
58197
58780
  html += "</ul>";
58198
58781
  html += "</li>";
58199
58782
 
58200
- if(!me.cfg.simplemenu) {
58201
- html += "<li><span>Develop</span>";
58202
- html += "<ul>";
58203
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#HowToUse' target='_blank'>How to Embed</a></li>";
58204
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#datastructure' target='_blank'>Data Structure</a></li>";
58205
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#classstructure' target='_blank'>Class Structure</a></li>";
58206
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#addclass' target='_blank'>Add New Classes</a></li>";
58207
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#modifyfunction' target='_blank'>Modify Functions</a></li>";
58208
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#restfulapi' target='_blank'>RESTful APIs</a></li>";
58209
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#contributors' target='_blank'>Codeathon Contributors</a></li>";
58210
- html += "</ul>";
58211
- html += "</li>";
58212
- }
58783
+ //html += "<li><span>Develop</span>";
58784
+ html += me.htmlCls.setHtmlCls.getMenuText('mn6_develop', 'Develop', undefined, undefined, 1);
58785
+ html += "<ul>";
58786
+ html += me.htmlCls.setHtmlCls.getMenuUrl('dev_embedicn3d2', me.htmlCls.baseUrl + "icn3d/icn3d.html#HowToUse", "Embed iCn3D", undefined, 2);
58787
+ html += me.htmlCls.setHtmlCls.getMenuUrl('dev_urlpara', me.htmlCls.baseUrl + "icn3d/icn3d.html#parameters", "URL Parameters", undefined, 2);
58788
+ html += me.htmlCls.setHtmlCls.getMenuUrl('dev_command', me.htmlCls.baseUrl + "icn3d/icn3d.html#commands", "Commands", undefined, 2);
58789
+
58790
+ html += me.htmlCls.setHtmlCls.getMenuUrl('dev_datastru', me.htmlCls.baseUrl + "icn3d/icn3d.html#datastructure", "Data Structure", undefined, 2);
58791
+ html += me.htmlCls.setHtmlCls.getMenuUrl('dev_classstru', me.htmlCls.baseUrl + "icn3d/icn3d.html#classstructure", "Class Structure", undefined, 2);
58792
+ html += me.htmlCls.setHtmlCls.getMenuUrl('dev_addclass', me.htmlCls.baseUrl + "icn3d/icn3d.html#addclass", "Add New Classes", undefined, 2);
58793
+ html += me.htmlCls.setHtmlCls.getMenuUrl('dev_modfunc', me.htmlCls.baseUrl + "icn3d/icn3d.html#modifyfunction", "Modify Functions", undefined, 2);
58794
+ html += me.htmlCls.setHtmlCls.getMenuUrl('dev_restful', me.htmlCls.baseUrl + "icn3d/icn3d.html#restfulapi", "RESTful APIs", undefined, 2);
58795
+ html += me.htmlCls.setHtmlCls.getMenuUrl('dev_contributor', me.htmlCls.baseUrl + "icn3d/icn3d.html#contributors", "Codeathon Contributors", undefined, 2);
58796
+ html += "</ul>";
58797
+ html += "</li>";
58213
58798
 
58214
- html += liStr + me.htmlCls.baseUrl + "icn3d/docs/icn3d_help.html' target='_blank'>Help Doc " + me.htmlCls.wifiStr + "</a></li>";
58799
+ //html += liStr + me.htmlCls.baseUrl + "icn3d/docs/icn3d_help.html' target='_blank'>Help Doc " + me.htmlCls.wifiStr + "</a></li>";
58800
+ html += me.htmlCls.setHtmlCls.getMenuUrl('helpdoc', me.htmlCls.baseUrl + "icn3d/docs/icn3d_help.html", "Help Doc " + me.htmlCls.wifiStr, 1, 1);
58215
58801
 
58216
- html += "<li>-</li>";
58802
+ html += me.htmlCls.setHtmlCls.getMenuSep();
58217
58803
 
58218
- html += "<li><span>Transform Hints</span>";
58804
+ //html += "<li><span>Transform Hints</span>";
58805
+ html += me.htmlCls.setHtmlCls.getMenuText('mn6_tfhint', 'Transform Hints', undefined, 1, 1);
58219
58806
  html += "<ul>";
58220
- html += "<li><span>Rotate</span>";
58807
+ //html += "<li><span>Rotate</span>";
58808
+ html += me.htmlCls.setHtmlCls.getMenuText('mn6_rotate', 'Rotate', undefined, 1, 2);
58221
58809
  html += "<ul>";
58222
58810
  html += "<li>Left Mouse (Click & Drag)</li>";
58223
58811
  html += "<li>Key l: Left</li>";
@@ -58230,14 +58818,16 @@ class SetMenu {
58230
58818
  html += "<li>Shift + Key m: Down 90&deg;</li>";
58231
58819
  html += "</ul>";
58232
58820
  html += "</li>";
58233
- html += "<li><span>Zoom</span>";
58821
+ //html += "<li><span>Zoom</span>";
58822
+ html += me.htmlCls.setHtmlCls.getMenuText('mn6_zoom', 'Zoom', undefined, 1, 2);
58234
58823
  html += "<ul>";
58235
58824
  html += "<li>Middle Mouse <br>(Pinch & Spread)</li>";
58236
58825
  html += "<li>Key z: Zoom in</li>";
58237
58826
  html += "<li>Key x: Zoom out</li>";
58238
58827
  html += "</ul>";
58239
58828
  html += "</li>";
58240
- html += "<li><span>Translate</span>";
58829
+ //html += "<li><span>Translate</span>";
58830
+ html += me.htmlCls.setHtmlCls.getMenuText('mn6_translate', 'Translate', undefined, 1, 2);
58241
58831
  html += "<ul>";
58242
58832
  html += "<li>Right Mouse <br>(Two Finger Click & Drag)</li>";
58243
58833
  html += "</ul>";
@@ -58245,11 +58835,10 @@ class SetMenu {
58245
58835
  html += "</ul>";
58246
58836
  html += "</li>";
58247
58837
 
58248
- if(!me.cfg.simplemenu) {
58249
- html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#HowToUseStep5' target='_blank'>Selection Hints</a></li>";
58250
-
58251
- html += liStr + "https://support.nlm.nih.gov/support/create-case/' target='_blank'>Write to Help Desk</a></li>";
58252
- }
58838
+ //html += liStr + me.htmlCls.baseUrl + "icn3d/icn3d.html#HowToUseStep5' target='_blank'>Selection Hints</a></li>";
58839
+ html += me.htmlCls.setHtmlCls.getMenuUrl('selhints', me.htmlCls.baseUrl + "icn3d/icn3d.html#HowToUseStep5", "Selection Hints", undefined, 1);
58840
+ //html += liStr + "https://support.nlm.nih.gov/support/create-case/' target='_blank'>Write to Help Desk</a></li>";
58841
+ html += me.htmlCls.setHtmlCls.getMenuUrl('helpdesk', "https://support.nlm.nih.gov/support/create-case/", "Write to Help Desk", 1, 1);
58253
58842
 
58254
58843
  html += "<li><br/></li>";
58255
58844
  html += "</ul>";
@@ -58968,8 +59557,8 @@ class SetDialog {
58968
59557
  html += "</div>";
58969
59558
 
58970
59559
  html += me.htmlCls.divStr + "dl_foldseek' class='" + dialogClass + "' style='max-width:500px'>";
58971
- 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>';
58972
- html += "Chain ID List: " + me.htmlCls.inputTextStr + "id='" + me.pre + "foldseekchainids' value='P69905_A,P01942_A,1HHO_A' size=30> ";
59560
+ 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>';
59561
+ html += "Chain ID List: " + me.htmlCls.inputTextStr + "id='" + me.pre + "foldseekchainids' value='P69905,P01942,1hho_A' size=30> ";
58973
59562
  html += me.htmlCls.buttonStr + "reload_foldseek'>Align</button>";
58974
59563
  html += "</div>";
58975
59564
 
@@ -59091,11 +59680,19 @@ class SetDialog {
59091
59680
  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/>';
59092
59681
  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/>";
59093
59682
 
59094
- html += "<b>Data Source</b>: <select id='" + me.pre + "idsource'>";
59095
- html += "<option value='mmdbid' selected>PDB ID</option>";
59096
- html += "<option value='afid'>AlphaFold UniProt ID</option>";
59097
- html += "</select><br/><br/>";
59098
-
59683
+ // html += "<b>Data Source</b>: <select id='" + me.pre + "idsource'>";
59684
+ // html += "<option value='mmdbid' selected>PDB ID</option>";
59685
+ // html += "<option value='afid'>AlphaFold UniProt ID</option>";
59686
+ // html += "</select><br/><br/>";
59687
+
59688
+ html += '<b>ID Type</b>: ';
59689
+ html += '<input type="radio" name="' + me.pre + 'idsource" id="' + me.pre + 'type_mmdbid" value="mmdbid" checked>PDB ID';
59690
+ html += '<input type="radio" name="' + me.pre + 'idsource" id="' + me.pre + 'type_afid" value="afid" style="margin-left:20px">AlphaFold UniProt ID<br><br>';
59691
+
59692
+ html += '<b>Show Mutation in</b>: ';
59693
+ html += '<input type="radio" name="' + me.pre + 'pdbsource" id="' + me.pre + 'showin_currentpage" value="currentpage">Current Page';
59694
+ html += '<input type="radio" name="' + me.pre + 'pdbsource" id="' + me.pre + 'showin_newpage" value="newpage" style="margin-left:20px" checked>New Page<br><br>';
59695
+
59099
59696
  html += me.htmlCls.buttonStr + "reload_mutation_3d' title='Show the mutations in 3D using the scap program'>3D with scap</button>";
59100
59697
  html += me.htmlCls.buttonStr + "reload_mutation_inter' style='margin-left:20px' title='Show the mutations in 3D and the change of interactions'>Interactions</button>";
59101
59698
  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>";
@@ -59179,7 +59776,7 @@ class SetDialog {
59179
59776
  html += "</div>";
59180
59777
 
59181
59778
  html += me.htmlCls.divStr + "dl_yournote' class='" + dialogClass + "'>";
59182
- html += "Your note will be saved in the HTML file when you click \"File > Save Files > iCn3D PNG Image\".<br><br>";
59779
+ html += "Your note will be saved in the HTML file when you click \"File > Save File > iCn3D PNG Image\".<br><br>";
59183
59780
  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>";
59184
59781
  html += me.htmlCls.buttonStr + "applyyournote'>Save</button>";
59185
59782
  html += "</div>";
@@ -59222,6 +59819,11 @@ class SetDialog {
59222
59819
  html += me.htmlCls.buttonStr + "reload_selectionfile' style='margin-top: 6px;'>Load</button>";
59223
59820
  html += "</div>";
59224
59821
 
59822
+ html += me.htmlCls.divStr + "dl_menuloadpref' class='" + dialogClass + "'>";
59823
+ html += "Preference file: " + me.htmlCls.inputFileStr + "id='" + me.pre + "menupreffile'><br/>";
59824
+ html += me.htmlCls.buttonStr + "reload_menupreffile' style='margin-top: 6px;'>Load</button>";
59825
+ html += "</div>";
59826
+
59225
59827
  html += me.htmlCls.divStr + "dl_dsn6' class='" + dialogClass + "'>";
59226
59828
  html += "<b>Note</b>: Always load a PDB file before loading DSN6 files. <br/><br/><br/>";
59227
59829
 
@@ -59716,6 +60318,15 @@ class SetDialog {
59716
60318
  html += me.htmlCls.setHtmlCls.setThicknessHtml('style');
59717
60319
  html += "</div>";
59718
60320
 
60321
+ html += me.htmlCls.divStr + "dl_menupref' class='" + dialogClass + "'>";
60322
+ html += "<b>Note</b>: The following parameters will be saved in cache. You just need to set them once. <br><br>";
60323
+ html += "<div id='" + me.pre + "menulist' style='max-width:500px; max-height:300px; overflow:scroll'></div><br><br>";
60324
+ html += me.htmlCls.spanNowrapStr + "" + me.htmlCls.buttonStr + "apply_menupref'>Apply</button></span>";
60325
+ html += me.htmlCls.spanNowrapStr + "" + me.htmlCls.buttonStr + "reset_menupref' style='margin-left:30px'>Reset to Simple Menus</button></span>";
60326
+ html += me.htmlCls.spanNowrapStr + "" + me.htmlCls.buttonStr + "reset_menupref_all' style='margin-left:30px'>Reset to All Menus</button></span>";
60327
+ html += me.htmlCls.spanNowrapStr + "" + me.htmlCls.buttonStr + "savepref' style='margin-left:30px'>Save Preferences</button></span>";
60328
+ html += "</div>";
60329
+
59719
60330
  html += me.htmlCls.divStr + "dl_addtrack' class='" + dialogClass + "'>";
59720
60331
  html += " <input type='hidden' id='" + me.pre + "track_chainid' value=''>";
59721
60332
 
@@ -59934,10 +60545,17 @@ class SetDialog {
59934
60545
  html += tmpStr1 + me.htmlCls.inputCheckStr + "id='" + me.pre + "anno_custom'>Custom" + me.htmlCls.space2 + "</span></td>";
59935
60546
  html += tmpStr2 + me.htmlCls.inputCheckStr + "id='" + me.pre + "anno_3dd'>3D Domains" + me.htmlCls.space2 + "</span></td>";
59936
60547
  html += tmpStr1 + me.htmlCls.inputCheckStr + "id='" + me.pre + "anno_snp'>SNPs" + me.htmlCls.space2 + "</span></td>";
59937
- html += tmpStr1 + me.htmlCls.inputCheckStr + "id='" + me.pre + "anno_interact'>Interactions" + me.htmlCls.space2 + "</span></td>";
60548
+
60549
+ // if(me.cfg.mmdbid != undefined || me.cfg.pdbid != undefined || me.cfg.mmtfid != undefined || me.cfg.mmcifid != undefined) { // PDB
60550
+ // html += tmpStr1 + me.htmlCls.inputCheckStr + "id='" + me.pre + "anno_ptm' disabled>PTM (UniProt)" + me.htmlCls.space2 + "</span></td>";
60551
+ // }
60552
+ // else {
60553
+ html += tmpStr1 + me.htmlCls.inputCheckStr + "id='" + me.pre + "anno_ptm'>PTM (UniProt)" + me.htmlCls.space2 + "</span></td>";
60554
+ // }
59938
60555
  html += "<td></td>";
59939
60556
  html += "</tr><tr>";
59940
60557
  html += tmpStr1 + me.htmlCls.inputCheckStr + "id='" + me.pre + "anno_ssbond'>Disulfide Bonds" + me.htmlCls.space2 + "</span></td>";
60558
+ html += tmpStr1 + me.htmlCls.inputCheckStr + "id='" + me.pre + "anno_interact'>Interactions" + me.htmlCls.space2 + "</span></td>";
59941
60559
  html += tmpStr1 + me.htmlCls.inputCheckStr + "id='" + me.pre + "anno_crosslink'>Cross-Linkages" + me.htmlCls.space2 + "</span></td>";
59942
60560
  if(me.cfg.opmid !== undefined) {
59943
60561
  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>";
@@ -59976,6 +60594,17 @@ class Events {
59976
60594
  }
59977
60595
  }
59978
60596
 
60597
+ convertUniProtInChains(alignment) { let me = this.icn3dui; me.icn3d;
60598
+ let idArray = alignment.split(',');
60599
+ let alignment_final = '';
60600
+ for(let i = 0, il = idArray.length; i < il; ++i) {
60601
+ alignment_final += (idArray[i].indexOf('_') != -1) ? idArray[i] : idArray[i] + '_A'; // AlphaFold ID
60602
+ if(i < il - 1) alignment_final += ',';
60603
+ }
60604
+
60605
+ return alignment_final;
60606
+ }
60607
+
59979
60608
  searchSeq() { let me = this.icn3dui, ic = me.icn3d;
59980
60609
  let select = $("#" + me.pre + "search_seq").val();
59981
60610
  if(isNaN(select) && select.indexOf('$') == -1 && select.indexOf('.') == -1 && select.indexOf(':') == -1 && select.indexOf('@') == -1) {
@@ -60314,10 +60943,7 @@ class Events {
60314
60943
  ic.hAtoms = ic.definedSetsCls.getAtomsFromNameArray(nameArray);
60315
60944
  }
60316
60945
 
60317
- // save the current selection
60318
- //ic.selectionCls.saveSelectionPrep();
60319
- //let name = 'realignSetsByStruct';
60320
- //ic.selectionCls.saveSelection(name, name);
60946
+ me.cfg.aligntool = 'vast';
60321
60947
 
60322
60948
  ic.realignParserCls.realignOnStructAlign();
60323
60949
  if(nameArray.length > 0) {
@@ -60449,8 +61075,16 @@ class Events {
60449
61075
  me.myEventCls.onIds("#" + me.pre + "reload_foldseek", "click", function(e) { me.icn3d;
60450
61076
  e.preventDefault();
60451
61077
  if(!me.cfg.notebook) dialog.dialog( "close" );
60452
- me.htmlCls.clickMenuCls.setLogCmd("load chainalignment " + $("#" + me.pre + "foldseekchainids").val(), true);
60453
- window.open(hostUrl + '?chainalign=' + $("#" + me.pre + "foldseekchainids").val(), '_self');
61078
+
61079
+ // me.htmlCls.clickMenuCls.setLogCmd("load chainalignment " + $("#" + me.pre + "foldseekchainids").val(), true);
61080
+ // window.open(hostUrl + '?chainalign=' + $("#" + me.pre + "foldseekchainids").val(), '_self');
61081
+
61082
+
61083
+ let alignment = $("#" + me.pre + "foldseekchainids").val();
61084
+ let alignment_final = thisClass.convertUniProtInChains(alignment);
61085
+
61086
+ me.htmlCls.clickMenuCls.setLogCmd("load chainalignment " + alignment_final, true);
61087
+ window.open(hostUrl + '?chainalign=' + alignment_final + '&aligntool=tmalign&showalignseq=1&bu=0', '_self');
60454
61088
  });
60455
61089
 
60456
61090
  me.myEventCls.onIds("#" + me.pre + "reload_mmtf", "click", function(e) { me.icn3d;
@@ -60592,12 +61226,7 @@ class Events {
60592
61226
  if(!me.cfg.notebook) dialog.dialog( "close" );
60593
61227
 
60594
61228
  let alignment = $("#" + me.pre + "chainalignids").val();
60595
- let idArray = alignment.split(',');
60596
- let alignment_final = '';
60597
- for(let i = 0, il = idArray.length; i < il; ++i) {
60598
- alignment_final += (idArray[i].indexOf('_') != -1) ? idArray[i] : idArray[i] + '_A'; // AlphaFold ID
60599
- if(i < il - 1) alignment_final += ',';
60600
- }
61229
+ let alignment_final = thisClass.convertUniProtInChains(alignment);
60601
61230
  let resalign = $("#" + me.pre + "resalignids").val();
60602
61231
  let predefinedres = $("#" + me.pre + "predefinedres").val().trim().replace(/\n/g, '; ');
60603
61232
  if(predefinedres && alignment_final.split(',').length - 1 != predefinedres.split('; ').length) {
@@ -60615,12 +61244,7 @@ class Events {
60615
61244
  if(!me.cfg.notebook) dialog.dialog( "close" );
60616
61245
 
60617
61246
  let alignment = $("#" + me.pre + "chainalignids").val();
60618
- let idArray = alignment.split(',');
60619
- let alignment_final = '';
60620
- for(let i = 0, il = idArray.length; i < il; ++i) {
60621
- alignment_final += (idArray[i].indexOf('_') != -1) ? idArray[i] : idArray[i] + '_A'; // AlphaFold ID
60622
- if(i < il - 1) alignment_final += ',';
60623
- }
61247
+ let alignment_final = thisClass.convertUniProtInChains(alignment);
60624
61248
 
60625
61249
  me.htmlCls.clickMenuCls.setLogCmd("load chains " + alignment_final + " on asymmetric unit | residues | resdef ", false);
60626
61250
  window.open(hostUrl + '?chainalign=' + alignment_final + '&resnum=&resdef=&showalignseq=1&bu=0', '_blank');
@@ -60631,12 +61255,7 @@ class Events {
60631
61255
  if(!me.cfg.notebook) dialog.dialog( "close" );
60632
61256
 
60633
61257
  let alignment = $("#" + me.pre + "chainalignids2").val();
60634
- let idArray = alignment.split(',');
60635
- let alignment_final = '';
60636
- for(let i = 0, il = idArray.length; i < il; ++i) {
60637
- alignment_final += (idArray[i].indexOf('_') != -1) ? idArray[i] : idArray[i] + '_A'; // AlphaFold ID
60638
- if(i < il - 1) alignment_final += ',';
60639
- }
61258
+ let alignment_final = thisClass.convertUniProtInChains(alignment);
60640
61259
  let resalign = $("#" + me.pre + "resalignids").val();
60641
61260
 
60642
61261
  me.htmlCls.clickMenuCls.setLogCmd("load chains " + alignment_final + " on asymmetric unit | residues " + resalign + " | resdef ", false);
@@ -60648,12 +61267,7 @@ class Events {
60648
61267
  if(!me.cfg.notebook) dialog.dialog( "close" );
60649
61268
 
60650
61269
  let alignment = $("#" + me.pre + "chainalignids3").val();
60651
- let idArray = alignment.split(',');
60652
- let alignment_final = '';
60653
- for(let i = 0, il = idArray.length; i < il; ++i) {
60654
- alignment_final += (idArray[i].indexOf('_') != -1) ? idArray[i] : idArray[i] + '_A'; // AlphaFold ID
60655
- if(i < il - 1) alignment_final += ',';
60656
- }
61270
+ let alignment_final = thisClass.convertUniProtInChains(alignment);
60657
61271
 
60658
61272
  let predefinedres = $("#" + me.pre + "predefinedres").val().trim().replace(/\n/g, '; ');
60659
61273
  if(predefinedres && alignment_final.split(',').length - 1 != predefinedres.split('; ').length) {
@@ -60670,66 +61284,133 @@ class Events {
60670
61284
  if(!me.cfg.notebook) dialog.dialog( "close" );
60671
61285
 
60672
61286
  let alignment = $("#" + me.pre + "chainalignids").val();
60673
- let idArray = alignment.split(',');
60674
- let alignment_final = '';
60675
- for(let i = 0, il = idArray.length; i < il; ++i) {
60676
- alignment_final += (idArray[i].indexOf('_') != -1) ? idArray[i] : idArray[i] + '_A'; // AlphaFold ID
60677
- if(i < il - 1) alignment_final += ',';
60678
- }
61287
+ let alignment_final = thisClass.convertUniProtInChains(alignment);
60679
61288
 
60680
61289
  me.htmlCls.clickMenuCls.setLogCmd("load chains " + alignment_final + " on asymmetric unit | residues | resdef | align tmalign", false);
60681
61290
  window.open(hostUrl + '?chainalign=' + alignment_final + '&aligntool=tmalign&resnum=&resdef=&showalignseq=1&bu=0', '_blank');
60682
61291
  });
60683
61292
 
60684
- me.myEventCls.onIds("#" + me.pre + "reload_mutation_3d", "click", function(e) { me.icn3d;
61293
+ me.myEventCls.onIds("#" + me.pre + "reload_mutation_3d", "click", function(e) { let ic = me.icn3d;
60685
61294
  e.preventDefault();
60686
61295
  if(!me.cfg.notebook) dialog.dialog( "close" );
60687
61296
  let mutationids = $("#" + me.pre + "mutationids").val();
60688
- let idsource = $("#" + me.pre + "idsource").val();
60689
- let mmdbid = mutationids.substr(0, mutationids.indexOf('_'));
60690
- me.htmlCls.clickMenuCls.setLogCmd("3d of mutation " + mutationids, false);
60691
- //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?mmdbid=' + mmdbid + '&command=scap 3d ' + mutationids + '; select displayed set', '_blank');
60692
- window.open(hostUrl + '?' + idsource + '=' + mmdbid + '&command=scap 3d ' + mutationids + '; select displayed set', '_blank');
61297
+ //let idsource = $("#" + me.pre + "idsource").val();
61298
+ let idsource, pdbsource;
61299
+ if($("#" + me.pre + "type_mmdbid").is(":checked")) {
61300
+ idsource = 'mmdbid';
61301
+ }
61302
+ else {
61303
+ idsource = 'afid';
61304
+ }
61305
+ if($("#" + me.pre + "showin_currentpage").is(":checked")) {
61306
+ pdbsource = 'currentpage';
61307
+ }
61308
+ else {
61309
+ pdbsource = 'newpage';
61310
+ }
61311
+
61312
+ if(pdbsource == 'currentpage') {
61313
+ let snp = mutationids;
61314
+
61315
+ ic.scapCls.retrieveScap(snp);
61316
+ me.htmlCls.clickMenuCls.setLogCmd('scap 3d ' + snp, true);
61317
+ me.htmlCls.clickMenuCls.setLogCmd("select displayed set", true);
61318
+ }
61319
+ else {
61320
+ let mmdbid = mutationids.substr(0, mutationids.indexOf('_'));
61321
+ me.htmlCls.clickMenuCls.setLogCmd("3d of mutation " + mutationids, false);
61322
+ window.open(hostUrl + '?' + idsource + '=' + mmdbid + '&command=scap 3d ' + mutationids + '; select displayed set', '_blank');
61323
+ }
60693
61324
  });
60694
61325
 
60695
- me.myEventCls.onIds("#" + me.pre + "reload_mutation_pdb", "click", function(e) { me.icn3d;
61326
+ me.myEventCls.onIds("#" + me.pre + "reload_mutation_pdb", "click", function(e) { let ic = me.icn3d;
60696
61327
  e.preventDefault();
60697
61328
  if(!me.cfg.notebook) dialog.dialog( "close" );
60698
61329
  let mutationids = $("#" + me.pre + "mutationids").val();
60699
- let idsource = $("#" + me.pre + "idsource").val();
60700
- let mmdbid = mutationids.substr(0, mutationids.indexOf('_'));
60701
- me.htmlCls.clickMenuCls.setLogCmd("pdb of mutation " + mutationids, false);
60702
- //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?mmdbid=' + mmdbid + '&command=scap pdb ' + mutationids + '; select displayed set', '_blank');
60703
- window.open(hostUrl + '?' + idsource + '=' + mmdbid + '&command=scap pdb ' + mutationids + '; select displayed set', '_blank');
61330
+ //let idsource = $("#" + me.pre + "idsource").val();
61331
+ let idsource, pdbsource;
61332
+ if($("#" + me.pre + "type_mmdbid").is(":checked")) {
61333
+ idsource = 'mmdbid';
61334
+ }
61335
+ else {
61336
+ idsource = 'afid';
61337
+ }
61338
+ if($("#" + me.pre + "showin_currentpage").is(":checked")) {
61339
+ pdbsource = 'currentpage';
61340
+ }
61341
+ else {
61342
+ pdbsource = 'newpage';
61343
+ }
61344
+
61345
+ if(pdbsource == 'currentpage') {
61346
+ let snp = mutationids;
61347
+
61348
+ let bPdb = true;
61349
+ ic.scapCls.retrieveScap(snp, undefined, bPdb);
61350
+ me.htmlCls.clickMenuCls.setLogCmd('scap pdb ' + snp, true);
61351
+ }
61352
+ else {
61353
+ let mmdbid = mutationids.substr(0, mutationids.indexOf('_'));
61354
+ me.htmlCls.clickMenuCls.setLogCmd("pdb of mutation " + mutationids, false);
61355
+ window.open(hostUrl + '?' + idsource + '=' + mmdbid + '&command=scap pdb ' + mutationids + '; select displayed set', '_blank');
61356
+ }
60704
61357
  });
60705
61358
 
60706
61359
  me.myEventCls.onIds("#" + me.pre + "reload_mutation_inter", "click", function(e) { let ic = me.icn3d;
60707
61360
  e.preventDefault();
60708
61361
  if(!me.cfg.notebook) dialog.dialog( "close" );
60709
61362
  let mutationids = $("#" + me.pre + "mutationids").val();
60710
- let idsource = $("#" + me.pre + "idsource").val();
60711
-
60712
- let mutationArray = mutationids.split(',');
60713
- let residArray = [];
60714
- for(let i = 0, il = mutationArray.length; i < il; ++i) {
60715
- let pos = mutationArray[i].lastIndexOf('_');
60716
- let resid = mutationArray[i].substr(0, pos);
60717
- residArray.push(resid);
61363
+ //let idsource = $("#" + me.pre + "idsource").val();
61364
+ let idsource, pdbsource;
61365
+ if($("#" + me.pre + "type_mmdbid").is(":checked")) {
61366
+ idsource = 'mmdbid';
61367
+ }
61368
+ else {
61369
+ idsource = 'afid';
60718
61370
  }
61371
+ if($("#" + me.pre + "showin_currentpage").is(":checked")) {
61372
+ pdbsource = 'currentpage';
61373
+ }
61374
+ else {
61375
+ pdbsource = 'newpage';
61376
+ }
60719
61377
 
60720
- let mmdbid = mutationids.substr(0, mutationids.indexOf('_'));
61378
+ if(pdbsource == 'currentpage') {
61379
+ let snp = mutationids;
60721
61380
 
60722
- // if no structures are loaded yet
60723
- if(!ic.structures) {
60724
- ic.structures = {};
60725
- ic.structures[mmdbid] = 1;
61381
+ let bInteraction = true;
61382
+ ic.scapCls.retrieveScap(snp, bInteraction);
61383
+ me.htmlCls.clickMenuCls.setLogCmd('scap interaction ' + snp, true);
61384
+
61385
+ let idArray = snp.split('_'); //stru_chain_resi_snp
61386
+ let select = '.' + idArray[1] + ':' + idArray[2];
61387
+ let name = 'snp_' + idArray[1] + '_' + idArray[2];
61388
+ me.htmlCls.clickMenuCls.setLogCmd("select " + select + " | name " + name, true);
61389
+ 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);
61390
+ me.htmlCls.clickMenuCls.setLogCmd("adjust dialog dl_linegraph", true);
61391
+ me.htmlCls.clickMenuCls.setLogCmd("select displayed set", true);
60726
61392
  }
60727
- ic.resid2specCls.residueids2spec(residArray);
61393
+ else {
61394
+ let mutationArray = mutationids.split(',');
61395
+ let residArray = [];
61396
+ for(let i = 0, il = mutationArray.length; i < il; ++i) {
61397
+ let pos = mutationArray[i].lastIndexOf('_');
61398
+ let resid = mutationArray[i].substr(0, pos);
61399
+ residArray.push(resid);
61400
+ }
61401
+
61402
+ let mmdbid = mutationids.substr(0, mutationids.indexOf('_'));
61403
+
61404
+ // if no structures are loaded yet
61405
+ if(!ic.structures) {
61406
+ ic.structures = {};
61407
+ ic.structures[mmdbid] = 1;
61408
+ }
61409
+ ic.resid2specCls.residueids2spec(residArray);
60728
61410
 
60729
- me.htmlCls.clickMenuCls.setLogCmd("interaction change of mutation " + mutationids, false);
60730
- //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');
60731
- //window.open(me.htmlCls.baseUrl + 'icn3d/full.html?mmdbid=' + mmdbid + '&command=scap interaction ' + mutationids, '_blank');
60732
- window.open(hostUrl + '?' + idsource + '=' + mmdbid + '&command=scap interaction ' + mutationids, '_blank');
61411
+ me.htmlCls.clickMenuCls.setLogCmd("interaction change of mutation " + mutationids, false);
61412
+ window.open(hostUrl + '?' + idsource + '=' + mmdbid + '&command=scap interaction ' + mutationids, '_blank');
61413
+ }
60733
61414
  });
60734
61415
 
60735
61416
  // },
@@ -62560,26 +63241,68 @@ class SetHtml {
62560
63241
  this.icn3dui = icn3dui;
62561
63242
  }
62562
63243
 
62563
- getLink(id, text) { let me = this.icn3dui; me.icn3d;
63244
+ getLink(id, text, bSimpleMenu, selType) { let me = this.icn3dui; me.icn3d;
63245
+ me.htmlCls.allMenus[me.pre + id] = text;
63246
+ if(selType) me.htmlCls.allMenusSel[me.pre + id] = selType;
63247
+ if(bSimpleMenu) me.htmlCls.simpleMenus[me.pre + id] = 1;
63248
+
62564
63249
  return "<li><span id='" + me.pre + id + "' class='icn3d-link'>" + text + "</span></li>";
62565
63250
  }
62566
63251
 
62567
- getLinkWrapper(id, text, wrapper) { let me = this.icn3dui; me.icn3d;
63252
+ // a group of menus
63253
+ getMenuText(id, text, classname, bSimpleMenu, selType) { let me = this.icn3dui; me.icn3d;
63254
+ me.htmlCls.allMenus[me.pre + id] = text;
63255
+ if(selType) me.htmlCls.allMenusSel[me.pre + id] = selType;
63256
+ if(bSimpleMenu) me.htmlCls.simpleMenus[me.pre + id] = 1;
63257
+
63258
+ let styleStr = (classname == 'icn3d-menupd') ? " style='padding-left:1.5em!important;'" : "";
63259
+
63260
+ // no ending "</li>"" since this is usually the start of a group of menus
63261
+ return "<li><span id='" + me.pre + id + "'" + styleStr + ">" + text + "</span>";
63262
+ }
63263
+
63264
+ getMenuUrl(id, url, text, bSimpleMenu, selType) { let me = this.icn3dui; me.icn3d;
63265
+ me.htmlCls.allMenus[me.pre + id] = text;
63266
+ if(selType) me.htmlCls.allMenusSel[me.pre + id] = selType;
63267
+ if(bSimpleMenu) me.htmlCls.simpleMenus[me.pre + id] = 1;
63268
+
63269
+ return "<li><a id='" + me.pre + id + "' href='" + url + "' target='_blank'>" + text + "</a></li>";
63270
+ }
63271
+
63272
+ getMenuSep() { let me = this.icn3dui; me.icn3d;
63273
+ return "<li class='icn3d-menusep'>-</li>";
63274
+ }
63275
+
63276
+ getLinkWrapper(id, text, wrapper, bSimpleMenu, selType) { let me = this.icn3dui; me.icn3d;
63277
+ me.htmlCls.allMenus[me.pre + id] = text;
63278
+ if(selType) me.htmlCls.allMenusSel[me.pre + id] = selType;
63279
+ if(bSimpleMenu) me.htmlCls.simpleMenus[me.pre + id] = 1;
63280
+
62568
63281
  return "<li id='" + me.pre + wrapper + "'><span id='" + me.pre + id + "' class='icn3d-link'>" + text + "</span></li>";
62569
63282
  }
62570
63283
 
62571
- getRadio(radioid, id, text, bChecked) { let me = this.icn3dui; me.icn3d;
63284
+ getRadio(radioid, id, text, bChecked, bSimpleMenu, selType) { let me = this.icn3dui; me.icn3d;
63285
+ me.htmlCls.allMenus[me.pre + id] = text;
63286
+ if(selType) me.htmlCls.allMenusSel[me.pre + id] = selType;
63287
+ if(bSimpleMenu) me.htmlCls.simpleMenus[me.pre + id] = 1;
63288
+
62572
63289
  let checkedStr =(bChecked) ? ' checked' : '';
62573
63290
 
62574
63291
  //https://stackoverflow.com/questions/17541614/use-images-instead-of-radio-buttons/17541916
62575
- 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>";
63292
+ //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>";
63293
+ 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>";
62576
63294
  }
62577
63295
 
62578
- getRadioColor(radioid, id, text, color, bChecked) { let me = this.icn3dui; me.icn3d;
63296
+ getRadioColor(radioid, id, text, color, bChecked, bSimpleMenu, selType) { let me = this.icn3dui; me.icn3d;
63297
+ me.htmlCls.allMenus[me.pre + id] = text;
63298
+ if(selType) me.htmlCls.allMenusSel[me.pre + id] = selType;
63299
+ if(bSimpleMenu) me.htmlCls.simpleMenus[me.pre + id] = 1;
63300
+
62579
63301
  let checkedStr =(bChecked) ? ' checked' : '';
62580
63302
 
62581
63303
  //https://stackoverflow.com/questions/17541614/use-images-instead-of-radio-buttons/17541916
62582
- 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>";
63304
+ //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>";
63305
+ 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>";
62583
63306
  }
62584
63307
 
62585
63308
  setAdvanced(index) { let me = this.icn3dui; me.icn3d;
@@ -63476,6 +64199,11 @@ class Html {
63476
64199
  this.opts = {};
63477
64200
  this.opts['background'] = 'black'; //transparent, black, grey, white
63478
64201
 
64202
+ this.allMenus = {};
64203
+ this.allMenusSel= {}; // Selectable menus
64204
+ this.simpleMenus = {};
64205
+ this.shownMenus = {};
64206
+
63479
64207
  this.WIDTH = 400; // total width of view area
63480
64208
  this.HEIGHT = 400; // total height of view area
63481
64209
  this.RESIDUE_WIDTH = 10; // sequences
@@ -66412,7 +67140,7 @@ class iCn3D {
66412
67140
  if(bWebGL){
66413
67141
  //https://discourse.threejs.org/t/three-js-r128-ext-frag-depth-and-angle-instanced-arrays-extensions-are-not-supported/26037
66414
67142
  //this.renderer = new THREE.WebGL1Renderer({
66415
- if ( bWebGL2 && bVR) {
67143
+ if ( bWebGL2 && bVR) {
66416
67144
  this.renderer = new THREE.WebGLRenderer({
66417
67145
  canvas: this.oriContainer.get(0), //this.container.get(0),
66418
67146
  antialias: true,
@@ -66779,6 +67507,7 @@ class iCn3D {
66779
67507
 
66780
67508
  this.annoCddSiteCls = new AnnoCddSite(this);
66781
67509
  this.annoContactCls = new AnnoContact(this);
67510
+ this.annoPTMCls = new AnnoPTM(this);
66782
67511
  this.annoCrossLinkCls = new AnnoCrossLink(this);
66783
67512
  this.annoDomainCls = new AnnoDomain(this);
66784
67513
  this.annoSnpClinVarCls = new AnnoSnpClinVar(this);
@@ -67026,7 +67755,7 @@ iCn3D.prototype.resetConfig = function () { let ic = this, me = ic.icn3dui;
67026
67755
  }
67027
67756
 
67028
67757
  if(me.cfg.blast_rep_id !== undefined) this.opts['color'] = 'conservation';
67029
- if(me.cfg.mmdbafid !== undefined) this.opts['color'] = 'structure';
67758
+ if(me.cfg.mmdbafid !== undefined && ic.structures) ic.opts['color'] = (Object.keys(ic.structures).length == 1) ? 'chain' : 'structure';
67030
67759
 
67031
67760
  if(me.cfg.options !== undefined) $.extend(this.opts, me.cfg.options);
67032
67761
  };
@@ -67043,7 +67772,7 @@ class iCn3DUI {
67043
67772
  //even when multiple iCn3D viewers are shown together.
67044
67773
  this.pre = this.cfg.divid + "_";
67045
67774
 
67046
- this.REVISION = '3.13.2';
67775
+ this.REVISION = '3.15.0';
67047
67776
 
67048
67777
  // In nodejs, iCn3D defines "window = {navigator: {}}"
67049
67778
  this.bNode = (Object.keys(window).length < 2) ? true : false;
@@ -67055,7 +67784,7 @@ class iCn3DUI {
67055
67784
  if(this.cfg.showmenu === undefined) this.cfg.showmenu = true;
67056
67785
  if(this.cfg.showtitle === undefined) this.cfg.showtitle = true;
67057
67786
  if(this.cfg.showcommand === undefined) this.cfg.showcommand = true;
67058
- if(this.cfg.simplemenu === undefined) this.cfg.simplemenu = false;
67787
+ //if(this.cfg.simplemenu === undefined) this.cfg.simplemenu = false;
67059
67788
  if(this.cfg.mobilemenu === undefined) this.cfg.mobilemenu = false;
67060
67789
  if(this.cfg.closepopup === undefined) this.cfg.closepopup = false;
67061
67790
  if(this.cfg.showanno === undefined) this.cfg.showanno = false;
@@ -67209,6 +67938,10 @@ iCn3DUI.prototype.show3DStructure = function(pdbStr) { let me = this;
67209
67938
  ic.molTitle = '';
67210
67939
  ic.loadCmd;
67211
67940
 
67941
+ // set menus
67942
+ me.htmlCls.clickMenuCls.getShownMenusFromCookie();
67943
+ me.htmlCls.clickMenuCls.applyShownMenus();
67944
+
67212
67945
  if(pdbStr) { // input pdbStr
67213
67946
  ic.init();
67214
67947