'.replace(/ID/g,d._id+"_localReader")),
d._localReader=a.$(d,"localReader"));a.$appEvent(d,"localReader_loadfile","click");a.$appEvent(d,"localReader_loadfile","click",function(){var c=a.$(d,"localReader_files")[0].files[0],h=new FileReader;h.onloadend=function(h){h.target.readyState==FileReader.DONE&&(a.$css(a.$(d,"localReader"),{display:"none"}),b.setData(c.name,a._toBytes(h.target.result)))};h.readAsArrayBuffer(c)});a.$appEvent(d,"localReader_cancel","click");a.$appEvent(d,"localReader_cancel","click",function(){a.$css(a.$(d,"localReader"),
{display:"none"});b.setData(null,"#CANCELED#")});a.$css(a.$(d,"localReader"),{display:"block"})};a._toBytes=function(a){a=new Uint8Array(a);for(var d=Clazz.newByteArray(a.length,0),c=a.length;0<=--c;)d[c]=a[c];return d};a._doAjax=function(b,d,c){b=b.toString();if(null!=c)return a._saveFile(b,c);d&&(b+="?POST?"+d);d=a._getFileData(b);return a._processData(d,a._isBinaryUrl(b))};a._saveFile=function(b,d){var c=a._serverUrl;if(a._localFileSaveFunction&&a._localFileSaveFunction(b,d))return"OK";if(!c)return"Jmol._serverUrl is not defined";
var h="string"==typeof d,e=h?"":"base64";h||(d=(JU?JU:J.util).Base64.getBase64(d).toString());b=b.substring(b.lastIndexOf("/")+1);h=0<=b.indexOf(".png")?"image/png":0<=b.indexOf(".jpg")?"image/jpg":"";a._formdiv||(a.$after("body",'
'),
a._formdiv="__jsmolform__");a.$attr(a._formdiv,"action",c+"?"+(new Date).getMilliseconds());a.$val("__jsmoldata__",d);a.$val("__jsmolfilename__",b);a.$val("__jsmolmimetype__",h);a.$val("__jsmolencoding__",e);a.$submit("__jsmolform__");a.$val("__jsmoldata__","");a.$val("__jsmolfilename__","");return"OK"};a._processData=function(b,d){"undefined"==typeof b&&(b="",d=!1);d&&(d=a._canSyncBinary());if(!d)return self.JU&&JU.SB?JU.SB.newS(b):J.util.SB.newS(b);var c;if(Clazz.instanceOf(b,self.ArrayBuffer))return a._toBytes(b);
c=Clazz.newByteArray(b.length,0);for(var h=b.length;0<=--h;)c[h]=b.charCodeAt(h)&255;return c};a._setConsoleDiv=function(a){self.Clazz&&Clazz.setConsoleDiv(a)};a._setJmolParams=function(b,d,c){for(var h in d)if(0<=";progressbar;progresscolor;boxbgcolor;boxfgcolor;allowjavascript;boxmessage; ;messagecallback;pickcallback;animframecallback;appletreadycallback;atommovedcallback; ;echocallback;evalcallback;hovercallback;language;loadstructcallback;measurecallback; ;minimizationcallback;resizecallback;scriptcallback;statusform;statustext;statustextarea; ;synccallback;usecommandthread;syncid;appletid;startupscript;".indexOf(";"+
h.toLowerCase()+";")&&("language"!=h||a.featureDetection.supportsLocalization()))c?b.put(h,!0===d[h]?Boolean.TRUE:!1===d[h]?Boolean.FALSE:d[h]):b[h]=d[h]};a._registerApplet=function(b,d){return window[b]=a._applets[b]=a._applets[d]=d};a._readyCallback=function(b,d,c,h){var e=b.split("_object")[0];a._track(a._applets[e])._readyCallback(b,d,c,h)};a._getWrapper=function(b,d){var c;if(d){var h="";b._coverImage&&(c=' onclick="Jmol.coverApplet(ID, false)" title="'+b._coverTitle+'"',h='
"+('")+"
");c='...
IMG......
';var e=b._height,f=b._width;if("string"!==typeof e||0>e.indexOf("%"))e+="px";if("string"!==typeof f||0>f.indexOf("%"))f+="px";c=c.replace(/IMG/,h).replace(/Hpx/g,e).replace(/Wpx/g,f)}else c='......
......
......
...
';
return c.replace(/\.\.\./g,"").replace(/[\n\r]/g,"").replace(/ID/g,b._id)};a._documentWrite=function(b){if(a._document){if(a._isXHTML&&!a._XhtmlElement){var d=document.getElementsByTagName("script");a._XhtmlElement=d.item(d.length-1);a._XhtmlAppendChild=!1}a._XhtmlElement?a._domWrite(b):a._document.write(b)}return b};a._domWrite=function(b){for(var d=[0];d[0]
d[0]?-1:0}if(!a||"object"!=typeof a)return[];for(var c=[],h=a.length-1;0<=h;h--)for(var e=0,f=a[h].length;ed.type.indexOf("touch"))return!1;d.preventDefault();var c=a.$offset(b.id),h,e=d.originalEvent;a._mousePageX=d.pageX;a._mousePageY=d.pageY;e.targetTouches&&e.targetTouches[0]?(h=e.targetTouches[0].pageX-
c.left,c=e.targetTouches[0].pageY-c.top):e.changedTouches?(h=e.changedTouches[0].pageX-c.left,c=e.changedTouches[0].pageY-c.top):(h=d.pageX-c.left,c=d.pageY-c.top);return void 0==h?null:[Math.round(h),Math.round(c),a._jsGetMouseModifiers(d)]};a._gestureUpdate=function(b,d){d.stopPropagation();d.preventDefault();var c=d.originalEvent;switch(d.type){case "touchstart":a._touching=!0;break;case "touchend":a._touching=!1}if(!c.touches||2!=c.touches.length)return!1;switch(d.type){case "touchstart":b._touches=
[[],[]];break;case "touchmove":var h=a.$offset(b.id),e=b._touches[0],f=b._touches[1];e.push([c.touches[0].pageX-h.left,c.touches[0].pageY-h.top]);f.push([c.touches[1].pageX-h.left,c.touches[1].pageY-h.top]);c=e.length;3c?-1:1,0,d]);return!1});a.$bind(b,"contextmenu",function(){return!1});a.$bind(b,"mouseout",function(){b.applet._applet&&
b.applet._applet.viewer.startHoverWatcher(!1);b.isDragging=!1});a.$bind(b,"mouseenter",function(d){b.applet._applet&&b.applet._applet.viewer.startHoverWatcher(!0);if(0===d.buttons||0===d.which){b.isDragging=!1;d=a._jsGetXY(b,d);if(!d)return!1;b.applet._processEvent(502,d)}});b.applet._is2D&&a.$resize(function(){b.applet&&b.applet._resize()});a.$bind("body","mouseup touchend",function(){b.applet&&(b.isDragging=!1);a._setMouseOwner(null)})};a._jsUnsetMouse=function(b){b.applet=null;a.$bind(b,"mousedown touchstart mousemove touchmove mouseup touchend DOMMouseScroll mousewheel contextmenu mouseout mouseenter",
null);a._setMouseOwner(null)};a._setDraggable=function(b){b=b.prototype;b.setContainer=function(d){this.container=d;d.obj=this;this.ignoreMouse=this.isDragging=!1;var c=this;d.bind("mousedown touchstart",function(d){if(c.ignoreMouse)return c.ignoreMouse=!1,!0;a._setMouseOwner(c,!0);c.isDragging=!0;c.pageX=d.pageX;c.pageY=d.pageY;return!1});d.bind("mousemove touchmove",function(d){if(c.isDragging&&a._mouseOwner==c)return c.mouseMove(d),!1});d.bind("mouseup touchend",function(d){c.mouseUp(d);a._setMouseOwner(null)})};
b.mouseUp=function(d){if(this.isDragging&&a._mouseOwner==this)return this.pageX0+=d.pageX-this.pageX,this.pageY0+=d.pageY-this.pageY,this.isDragging=!1;a._setMouseOwner(null)};b.setPosition=function(){if(null===a._mousePageX){var d=a.$offset(this.applet._id+"_"+(this.applet._is2D?"canvas2d":"canvas"));a._mousePageX=d.left;a._mousePageY=d.top}this.pageX0=a._mousePageX;this.pageY0=a._mousePageY;this.container.css({top:a._mousePageY+"px",left:a._mousePageX+"px"})};b.mouseMove=function(d){this.isDragging&&
a._mouseOwner==this&&this.container.css({top:this.pageY0+(d.pageY-this.pageY)+"px",left:this.pageX0+(d.pageX-this.pageX)+"px"})};b.dragBind=function(d){this.container.unbind("mousemoveoutjsmol");this.container.unbind("touchmoveoutjsmol");this.container.unbind("mouseupoutjsmol");this.container.unbind("touchendoutjsmol");a._setMouseOwner(null);if(d){var c=this;this.container.bind("mousemoveoutjsmol touchmoveoutjsmol",function(a,d,b){c.mouseMove(b)});this.container.bind("mouseupoutjsmol touchendoutjsmol",
function(a,d,b){c.mouseUp(b)})}}};a.Dialog={count:0,htDialogs:{}};SwingController=a.Dialog;a.Dialog.JSDialog=function(){};a._setDraggable(a.Dialog.JSDialog);a.Dialog.getScreenDimensions=function(a){a.width=j(window).width();a.height=j(window).height()};a.Dialog.dispose=function(b){a.$remove(b.id+"_mover");delete a.Dialog.htDialogs[b.id];b.container.obj.dragBind(!1);System.out.println("JmolCore.js: dispose "+b.id)};a.Dialog.register=function(b,d){b.id=d+ ++a.Dialog.count;a.Dialog.htDialogs[b.id]=b;
System.out.println("JmolCore.js: register "+b.id)};a.Dialog.setDialog=function(b){a._setMouseOwner(null);a.$remove(b.id);System.out.println("removed "+b.id);var d=b.id+"_mover",c=a.$("#"+d),h;System.out.println("JmolCore.js: setDialog "+b.id);c[0]?(c.html(b.html),h=c[0].jd):(a.$after("body",""+b.html+"
"),h=new a.Dialog.JSDialog,c=a.$("#"+d),b.container=c,h.applet=b.manager.viewer.applet,h.setContainer(c),h.dialog=b,h.setPosition(),
h.dragBind(!0),c[0].jd=h);a.$bind("#"+b.id+" .JButton","mousedown touchstart",function(){h.ignoreMouse=!0});a.$bind("#"+b.id+" .JComboBox","mousedown touchstart",function(){h.ignoreMouse=!0});a.$bind("#"+b.id+" .JCheckBox","mousedown touchstart",function(){h.ignoreMouse=!0});a.$bind("#"+b.id+" .JTextField","mousedown touchstart",function(){h.ignoreMouse=!0});a.$bind("#"+b.id+" .JTable","mousedown touchstart",function(){h.ignoreMouse=!0});a.$bind("#"+b.id+" .JScrollPane","mousedown touchstart",function(){h.ignoreMouse=
!0});a.$bind("#"+b.id+" .JEditorPane","mousedown touchstart",function(){h.ignoreMouse=!0})};a.Dialog.setSelected=function(b){a.$prop(b.id,"checked",!!b.selected)};a.Dialog.setSelectedIndex=function(b){a.$prop(b.id,"selectedIndex",b.selectedIndex)};a.Dialog.setText=function(b){a.$prop(b.id,"value",b.text)};a.Dialog.setVisible=function(b){a.$setVisible(b.id,b.visible)};a.Dialog.click=function(b,d){var c=a.Dialog.htDialogs[b.id];if(c){System.out.println("click "+b+" "+c);var h=c.toString();if(0<=h.indexOf("JCheck"))c.selected=
b.checked;else if(0<=h.indexOf("JCombo"))c.selectedIndex=b.selectedIndex;else if(null!=c.text&&(c.text=b.value,d&&13!=(d.charCode||d.keyCode)))return}h=a.Dialog.htDialogs[a.$getAncestorDiv(b.id,"JDialog").id];c=c?c.name:h.registryKey+"/"+b.id;System.out.println("JmolCore.js: click "+c);h.manager.actionPerformed(c)};a.Dialog.windowClosing=function(b){b=a.Dialog.htDialogs[a.$getAncestorDiv(b.id,"JDialog").id];System.out.println("JmolCore.js: windowClosing "+b.registryKey);b.manager.processWindowClosing(b.registryKey)};
a._track=function(b){if(a._tracker&&!a._isLocal)try{var d='';a.$after("body",d)}catch(c){}delete a._tracker;return b}})(Jmol,jQuery);
(function(a){a._Canvas2D=function(j,g,e,f){this._syncId=(""+Math.random()).substring(3);this._id=j;this._is2D=!0;this._isJava=!1;this._jmolType="Jmol._Canvas2D ("+e+")";switch(e){case "Jmol":this._platform="J.awtjs2d.Platform";break;case "JSV":this._isLayered=this._isJSV=!0,this._platform="JSV.awtjs2d.Platform"}if(f)return this;window[j]=this;this._createCanvas(j,g);if(!a._document||this._deferApplet)return this;this._init();return this};a._jsSetPrototype=function(j){j._init=function(){this._setupJS();
this._showInfo(!0);this._disableInitialConsole&&this._showInfo(!1)};j._createCanvas=function(g,e,f){a._setObject(this,g,e);f&&(this._GLmol=f,this._GLmol.applet=this,this._GLmol.id=this._id);f=a._getWrapper(this,!0);this._deferApplet||(a._document?(a._documentWrite(f),this._getCanvas(!1),f=""):(this._deferApplet=!0,f+='