(function(v,w,x,y,z,A,B,C,D,E,F,G,H,I,K,L,M,N,O,P,Q,R,d,S,T,U,V,W,X,Y,Z,$,f,aa,ba,ca,da,ea,m,fa,n,p,q,ga,r,ha,ia,ja,ka,la,ma,s,t,na,u){Jmol.Console={buttons:{},buttonWidth:100,click:function(a){Jmol.Console.buttons[a].console.appletConsole.doAction(Jmol.Console.buttons[a])}};Jmol.Console.JSConsole=function(a){this.applet=a.viewer.applet;var c=this.id=this.applet._id+"_console",b=this;Jmol.Console.buttons[b.id]=b;b.appletConsole=a;b.input=a.input=new Jmol.Console.Input(b);b.output=a.output=new Jmol.Console.Output(b);
var e,h=function(a,b){b.console=a;b.id=c+"_"+b.label.replace(/\s/g,"_");Jmol.Console.buttons[b.id]=b;return b.html()};e='<div id="$ID" class="jmolConsole" style="display:block;background-color:yellow;width:600px;height:362px;position:absolute;z-index:9999"><div id=$ID_title></div><div id=$ID_label1></div><div id=$ID_outputdiv style="position:relative;left:2px"></div><div id=$ID_inputdiv style="position:relative;left:2px"></div><div id=$ID_buttondiv></div></div>'.replace(/\$ID/g,c);Jmol.$after("body",
e);b.setContainer(Jmol.$("#"+c));b.setPosition();b.dragBind(!0);Jmol.$html(c+"_label1","&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"javascript:Jmol.Console.buttons['"+c+"'].setVisible(false)\">close</a>");Jmol.$html(c+"_inputdiv",'<textarea id="'+c+'_input" style="width:590px;height:100px"></textarea>');Jmol.$html(c+"_outputdiv",'<textarea id="'+c+'_output" style="width:590px;height:200px"></textarea>');e=h(b,a.runButton)+h(b,a.loadButton)+h(b,a.clearInButton)+h(b,a.clearOutButton)+h(b,a.historyButton)+h(b,
a.stateButton);Jmol.$html(c+"_buttondiv",e);Jmol.$bind("#"+c+"_input","keypress",function(a){b.input.keyPressed(a)});Jmol.$bind("#"+c+"_input","keyup",function(a){b.input.keyReleased(a)});Jmol.$bind("#"+c+"_input","mousedown touchstart",function(){b.ignoreMouse=!0});Jmol.$bind("#"+c+"_output","mousedown touchstart",function(){b.ignoreMouse=!0});b.setButton=function(a){return new Jmol.Console.Button(this,a)};b.setVisible=function(a){a?this.container.show():this.container.hide();this.dragBind(a)};b.setTitle=
function(){}};Jmol._setDraggable(Jmol.Console.JSConsole);Jmol.Console.Input=function(a){this.console=a;this.id=a.id+"_input";this.getText=function(){return Jmol.$val(this.id)};this.setText=function(a){null==a&&(a="");Jmol.$val(this.id,a)};this.keyPressed=function(a){var b=a.which,e=a.ctrlKey;13==b&&(b=10);var h=this.console.appletConsole.processKey(b,401,e);e&&10==b&&this.setText(this.getText()+"\n");if(9==a.keyCode||9==b){var d=this;setTimeout(function(){d.setText(d.getText()+"\t");Jmol.$focus(d.id)},
10)}(1==(h&1)||0==b)&&a.preventDefault()};this.keyReleased=function(a){var b=a.which,e=a.ctrlKey;13==b&&(b=10);38==b||40==b?(this.keyPressed(a),a.preventDefault()):1==(this.console.appletConsole.processKey(b,402,e)&1)&&a.preventDefault()};this.getCaretPosition=function(){var a=Jmol.$get(this.id)[0];if("selectionStart"in a)return a.selectionStart;if(!("selection"in document))return 0;a.focus();var b=document.selection.createRange(),e=document.selection.createRange().text.length;b.moveStart("character",
-a.value.length);return b.text.length-e}};Jmol.Console.Output=function(a){this.id=a.id+"_output";this.getText=function(){return Jmol.$val(this.id)};this.setText=function(a){null==a&&(a="");Jmol.$val(this.id,a)};this.append=function(a){this.setText(this.getText()+a);Jmol.$scrollTo(this.id,-1)}};Jmol.Console.Button=function(a){this.label=a};Jmol.Console.Button.prototype.addConsoleListener=function(a){this.appletConsole=a;Jmol.Console.buttons[this.id]=this};Jmol.Console.Button.prototype.html=function(){return'<input type="button" id="'+
this.id+'" style="width:'+Jmol.Console.buttonWidth+'px" value="'+this.label+'" onClick="Jmol.Console.click(\''+this.id+"')\"/>"};m("J.console");u(J.console,"GenericTextArea");m("J.console");n(["J.api.JmolAppConsoleInterface","$.JmolCallbackListener","java.util.Hashtable"],"J.console.GenericConsole","java.lang.Boolean JU.PT J.constant.EnumCallback J.i18n.GT J.script.T J.viewer.Viewer".split(" "),function(){c$=q(function(){this.label1=this.defaultMessage=this.loadButton=this.clearInButton=this.clearOutButton=
this.stateButton=this.historyButton=this.runButton=this.editButton=this.menuMap=this.labels=this.viewer=this.output=this.input=null;this.nTab=0;this.incompleteCmd=null;p(this,arguments)},J.console,"GenericConsole",null,[J.api.JmolAppConsoleInterface,J.api.JmolCallbackListener]);s(c$,function(){this.menuMap=new java.util.Hashtable});d(c$,"setViewer",function(a){this.viewer=a},"J.api.JmolViewer");d(c$,"addButton",function(a,c){a.addConsoleListener(this);this.menuMap.put(c,a);return a},"J.api.JmolAbstractButton,~S");
d(c$,"getLabel1",function(){return null});d(c$,"setupLabels",function(){this.labels.put("help",J.i18n.GT._("&Help"));this.labels.put("search",J.i18n.GT._("&Search..."));this.labels.put("commands",J.i18n.GT._("&Commands"));this.labels.put("functions",J.i18n.GT._("Math &Functions"));this.labels.put("parameters",J.i18n.GT._("Set &Parameters"));this.labels.put("more",J.i18n.GT._("&More"));this.labels.put("Editor",J.i18n.GT._("Editor"));this.labels.put("State",J.i18n.GT._("State"));this.labels.put("Run",
J.i18n.GT._("Run"));this.labels.put("Clear Output",J.i18n.GT._("Clear Output"));this.labels.put("Clear Input",J.i18n.GT._("Clear Input"));this.labels.put("History",J.i18n.GT._("History"));this.labels.put("Load",J.i18n.GT._("Load"));this.labels.put("label1",J.i18n.GT._("press CTRL-ENTER for new line or paste model data and press Load"));this.labels.put("default",J.i18n.GT._("Messages will appear here. Enter commands in the box below. Click the console Help menu item for on-line help, which will appear in a new browser window."))});
d(c$,"setLabels",function(){var a=J.i18n.GT.setDoTranslate(!0);this.editButton=this.setButton("Editor");this.stateButton=this.setButton("State");this.runButton=this.setButton("Run");this.clearOutButton=this.setButton("Clear Output");this.clearInButton=this.setButton("Clear Input");this.historyButton=this.setButton("History");this.loadButton=this.setButton("Load");this.defaultMessage=this.getLabel("default");this.setTitle();J.i18n.GT.setDoTranslate(!1);this.defaultMessage=this.getLabel("default").split("Click")[0];
J.i18n.GT.setDoTranslate(a);this.defaultMessage=this.getLabel("default")});d(c$,"getLabel",function(a){null==this.labels&&(this.labels=new java.util.Hashtable,this.labels.put("title",J.i18n.GT._("Jmol Script Console")+" "+J.viewer.Viewer.getJmolVersion()),this.setupLabels());return this.labels.get(a)},"~S");d(c$,"displayConsole",function(){this.layoutWindow(null);this.outputMsg(this.defaultMessage)});d(c$,"updateLabels",function(){});d(c$,"completeCommand",function(a){if(0==a.length)return null;var c=
0>=this.nTab||null==this.incompleteCmd?a:this.incompleteCmd;this.incompleteCmd=c;a=J.console.GenericConsole.splitCommandLine(a);if(null==a)return null;var b=null==a[2],e=null!=a[3],h=a[b?1:2],d=a[1];if(0==h.length)return null;a=J.script.T.getTokenFromName(d.trim());var f=null==a?0:a.tok,j=J.script.T.tokAttr(f,12288);a=J.console.GenericConsole.splitCommandLine(c);var g=null;if(!b&&('"'==h.charAt(0)||"'"==h.charAt(0)))b=h.charAt(0),JU.PT.trim(h,"\"'"),h=JU.PT.trim(a[2],"\"'"),g=this.nextFileName(h,
this.nTab),null!=g&&(g=a[0]+a[1]+b+g+b);else{g=null;if(!b&&(h=d,e||a[2].startsWith("$")||J.script.T.isIDcmd(f)||j))g=new java.util.Hashtable,this.viewer.getObjectMap(g,e||j?"{":a[2].startsWith("$")?"$":"0");g=J.script.T.completeCommand(g,d.equalsIgnoreCase("set "),b,b?a[1]:a[2],this.nTab);g=a[0]+(null==g?h:b?g:a[1]+g)}return null==g||g.equals(c)?null:g},"~S");d(c$,"doAction",function(a){if(a===this.runButton)this.execute(null);else if(a===this.editButton)this.viewer.getProperty("DATA_API","scriptEditor",
null);else if(a===this.historyButton)this.clearContent(this.viewer.getSetHistory(2147483647));else if(a===this.stateButton)this.clearContent(this.viewer.getStateInfo());else if(a===this.clearInButton){this.input.setText("");return}a===this.clearOutButton?this.output.setText(""):a===this.loadButton?this.viewer.loadInlineAppend(this.input.getText(),!1):this.isMenuItem(a)&&this.execute(a.getName())},"~O");d(c$,"execute",function(a){var c=null==a?this.input.getText():a;null==a&&this.input.setText(null);
a=this.viewer.script(c+"\u0001## EDITOR_IGNORE ##");null!=a&&!a.equals("pending")&&this.outputMsg(a)},"~S");d(c$,"destroyConsole",function(){this.viewer.isApplet()&&this.viewer.getProperty("DATA_API","getAppConsole",Boolean.FALSE)});c$.setAbstractButtonLabels=d(c$,"setAbstractButtonLabels",function(a,c){for(var b,e=a.keySet().iterator();e.hasNext()&&((b=e.next())||1);){var d=a.get(b),f=c.get(b);if(b.indexOf("Tip")==b.length-3)d.setToolTipText(c.get(b));else{var k=J.console.GenericConsole.getMnemonic(f);
" "!=k&&d.setMnemonic(k);f=J.console.GenericConsole.getLabelWithoutMnemonic(f);d.setText(f)}}},"java.util.Map,java.util.Map");c$.getLabelWithoutMnemonic=d(c$,"getLabelWithoutMnemonic",function(a){if(null==a)return null;var c=a.indexOf("&");return-1==c?a:a.substring(0,c)+(c<a.length-1?a.substring(c+1):"")},"~S");c$.getMnemonic=d(c$,"getMnemonic",function(a){if(null==a)return" ";var c=a.indexOf("&");return-1==c||c==a.length-1?" ":a.charAt(c+1)},"~S");c$.map=d(c$,"map",function(a,c,b,e){b=J.console.GenericConsole.getMnemonic(b);
" "!=b&&a.setMnemonic(b);e.put(c,a)},"~O,~S,~S,java.util.Map");f(c$,"notifyEnabled",function(a){switch(a){case J.constant.EnumCallback.ECHO:case J.constant.EnumCallback.MEASURE:case J.constant.EnumCallback.MESSAGE:case J.constant.EnumCallback.PICK:return!0}return!1},"J.constant.EnumCallback");f(c$,"getText",function(){return this.output.getText()});f(c$,"sendConsoleEcho",function(a){null==a&&(this.updateLabels(),this.outputMsg(null),a=this.defaultMessage);this.outputMsg(a)},"~S");d(c$,"outputMsg",
function(a){null==a||0==a.length?this.output.setText(""):("\n"!=a.charAt(a.length-1)&&(a+="\n"),this.output.append(a))},"~S");d(c$,"clearContent",function(a){this.output.setText(a)},"~S");f(c$,"sendConsoleMessage",function(a){null!=a&&this.output.getText().startsWith(this.defaultMessage)&&this.outputMsg(null);this.outputMsg(a)},"~S");f(c$,"notifyCallback",function(a,c){var b=null==c||null==c[1]?null:c[1].toString();switch(a){case J.constant.EnumCallback.ECHO:this.sendConsoleEcho(b);break;case J.constant.EnumCallback.MEASURE:var e=
c[3];0<=e.indexOf("Picked")||0<=e.indexOf("Sequence")?this.sendConsoleMessage(b):0<=e.indexOf("Completed")&&this.sendConsoleEcho(b.substring(b.lastIndexOf(",")+2,b.length-1));break;case J.constant.EnumCallback.MESSAGE:this.sendConsoleMessage(null==c?null:b);break;case J.constant.EnumCallback.PICK:this.sendConsoleMessage(b)}},"J.constant.EnumCallback,~A");f(c$,"setCallbackFunction",function(){},"~S,~S");f(c$,"zap",function(){});d(c$,"recallCommand",function(a){a=this.viewer.getSetHistory(a?-1:1);null!=
a&&this.input.setText(a)},"~B");d(c$,"processKey",function(a,c,b){var e=0;switch(c){case 401:switch(a){case 9:e=1;if(this.input.getCaretPosition()==this.input.getText().length)return a=this.completeCommand(this.getText()),null!=a&&this.input.setText(a.$replace("\t"," ")),this.nTab++,e;break;case 27:e=1,this.input.setText("")}this.nTab=0;if(10==a&&!b)return this.execute(null),e;if(38==a||40==a)return this.recallCommand(38==a),e;break;case 402:if(10==a&&!b)return e}return e|2},"~N,~N,~B");c$.splitCommandLine=
d(c$,"splitCommandLine",function(a){var c=Array(4),b=!1,e=!1,d=!1;if(0==a.length)return null;for(var f=-1,k=0,j=0,g=0,m,l=0;l<a.length;l++){switch(m=a.charAt(l)){case '"':!d&&!b&&(e=!e)&&(f=j=l);break;case "'":!d&&!e&&(b=!b)&&(f=j=l);break;case "\\":d=!d;continue;case " ":!d&&(!b&&!e)&&(j=l+1,f=-1);break;case ";":!b&&!e&&(k=j=l+1,f=-1,g=0);break;case "{":case "}":!b&&!e&&(g+="{"==m?1:-1,j=l+1,f=-1);break;default:!b&&!e&&(f=-1)}d=!1}c[0]=a.substring(0,k);c[1]=j==k?a.substring(k):a.substring(k,j>f?
j:f);c[2]=j==k?null:a.substring(j);c[3]=0<g?"{":null;return c},"~S")});m("J.consolejs");n(["J.console.GenericConsole"],"J.consolejs.AppletConsole",null,function(){c$=q(function(){this.jsConsole=null;p(this,arguments)},J.consolejs,"AppletConsole",J.console.GenericConsole);r(c$,function(){t(this,J.consolejs.AppletConsole,[])});f(c$,"start",function(a){this.setViewer(a);this.setLabels();this.displayConsole()},"J.api.JmolViewer");f(c$,"layoutWindow",function(){this.jsConsole=new Jmol.Console.JSConsole(this);
this.setTitle()},"~S");f(c$,"setTitle",function(){this.jsConsole&&this.jsConsole.setTitle(this.getLabel("title"))});f(c$,"setVisible",function(a){this.jsConsole.setVisible(a)},"~B");f(c$,"setButton",function(a){return new Jmol.Console.Button(a)},"~S");f(c$,"dispose",function(){this.setVisible(!1)});f(c$,"isMenuItem",function(){return!1},"~O");f(c$,"getScriptEditor",function(){return null});f(c$,"nextFileName",function(){return null},"~S,~N")})})(Clazz,Clazz.newArray,Clazz.newBooleanArray,Clazz.newByteArray,
Clazz.newCharArray,Clazz.newDoubleArray,Clazz.newFloatArray,Clazz.newIntArray,Clazz.newLongArray,Clazz.newShortArray,Clazz.prepareCallback,Clazz.decorateAsClass,Clazz.isClassDefined,Clazz.defineEnumConstant,Clazz.cloneFinals,Clazz.inheritArgs,Clazz.pu$h,Clazz.declareInterface,Clazz.declarePackage,Clazz.makeConstructor,Clazz.overrideConstructor,Clazz.load,Clazz.defineMethod,Clazz.innerTypeInstance,Clazz.instanceOf,Clazz.p0p,Clazz.makeFunction,Clazz.superConstructor,Clazz.defineStatics,Clazz.registerSerializableFields,
Clazz.declareType,Clazz.superCall,Clazz.overrideMethod,Clazz.declareAnonymous,Clazz.checkPrivateMethod,Clazz.prepareFields,Clazz.instantialize,Clazz.doubleToInt,Clazz.declarePackage,Clazz.instanceOf,Clazz.load,Clazz.instantialize,Clazz.decorateAsClass,Clazz.floatToInt,Clazz.makeConstructor,Clazz.defineEnumConstant,Clazz.exceptionOf,Clazz.newIntArray,Clazz.defineStatics,Clazz.newFloatArray,Clazz.declareType,Clazz.prepareFields,Clazz.superConstructor,Clazz.newByteArray,Clazz.declareInterface,Clazz.p0p,
Clazz.pu$h,Clazz.newShortArray,Clazz.innerTypeInstance,Clazz.isClassDefined,Clazz.prepareCallback,Clazz.newArray,Clazz.castNullAs,Clazz.floatToShort,Clazz.superCall,Clazz.decorateAsType,Clazz.newBooleanArray,Clazz.newCharArray,Clazz.implementOf,Clazz.newDoubleArray,Clazz.overrideConstructor,Clazz.supportsNativeObject,Clazz.extendedObjectMethods,Clazz.callingStackTraces,Clazz.clone,Clazz.doubleToShort,Clazz.innerFunctions,Clazz.getInheritedLevel,Clazz.getParamsType,Clazz.isAF,Clazz.isAI,Clazz.isAS,
Clazz.isASS,Clazz.isAP,Clazz.isAFloat,Clazz.isAII,Clazz.isAFF,Clazz.isAFFF,Clazz.tryToSearchAndExecute,Clazz.getStackTrace,Clazz.inheritArgs);
