---------- J2SJMOL.JS
// BH 3/2/2013 9:09:53 AM delete globals c$ and $fz
// BH removed Clazz.ie$plit = "\\2".split (/\\/).length == 1; unnecessary; using RegEx slows process significantly in all browsers
# _x_CLASS_NAME__ -> C$N
# _x_PKG_NAME__ -> P$N
Clazz.addProto(proto, "to$tring", Object.prototype.toString);
return this.to$tring.apply (this, arguments);
"equals", "hashCode", "getClass", "clone", "finalize", "notify", "notifyAll", "wait", "to$tring", "toString"
s = s.replace (/^\s+/, "").replace (/\s+$/, ""); // .trim ()
if (o != "b$" && o != "prototype" && o != "superClazz"
if (o != "b$" && o != "prototype" && o != "superClazz"
&& ss[0].con$truct != null) {
ss[0].con$truct.apply (objThis, []);
/*# {$no.debug.support} >>x #*/
Clazz.pu$hCalling (new Clazz.callingStack (caller, clazzThis));
if (clazzThis.con$truct != null) {
clazzThis.con$truct.apply (objThis, []);
/*# {$no.debug.support} >>x #*/
/*# {$no.debug.support} >>x #*/
Clazz.pu$hCalling (new Clazz.callingStack (xcaller, owner));
Clazz.pu$hCalling (new Clazz.callingStack (caller, owner));
/*# {$no.debug.support} >>x #*/
Clazz.expExpandParameters = function ($0, $1) {
if ($1 == 'N') {
} else if ($1 == 'B') {
} else if ($1 == 'S') {
} else if ($1 == 'O') {
} else if ($1 == 'A') {
.replace (/\$/g, "org.eclipse.s");
var f$ = Clazz.getSignature(proto, funName, funBody, false);
if (f$ == null || (f$.claxxOwner === clazzThis && f$.funParams == fpName)) {
delete $fz; // BH -- delete global variables when no longer needed
if (f$.stacks == null) {
oldFun = f$;
if (f$.claxxOwner != null) {
oldStacks = f$.stacks;
if (f$.stacks == null
|| f$.claxxReference !== clazzThis) {
//alert(f$.claxxReference + " " + clazzThis)
f$ = Clazz.getSignature(proto, funName, Clazz.generateDelegatingMethod (clazzThis, funName, f$), true);
f$.stacks = arr;
var ss = f$.stacks;
f$[oldFun.funParams] = oldFun;
f$["\\unknown"] = oldFun;
f$[fpName] = funBody;
delete $fz; // BH -- delete global variables when no longer needed
return f$;
if (clazzThis.con$truct != null) {
clazzThis.con$truct.index = clazzThis.con$truct.stacks.length;
//clazzThis.con$truct = clazzThis.prototype.con$truct = null;
// $_k @j2sOverrideConstructor
if (clazzThis.con$truct != null) {
clazzThis.con$truct.index = clazzThis.con$truct.stacks.length;
//clazzThis.con$truct = clazzThis.prototype.con$truct = null;
/*# {$no.javascript.support} >>x #*/
if (objThis.con$truct != null) {
objThis.con$truct.apply (objThis, args);
if (objThis.con$truct == null) { // no need to init fields
objThis.con$truct.apply (objThis, []);
* call #con$truct back
&& c.claxxOwner.con$truct != null) {
c.claxxOwner.con$truct.apply (objThis, []);
c.stacks[0].con$truct.apply (objThis, []);
objThis.con$truct.apply (objThis, []);
} else if (objThis.con$truct != null) {
objThis.con$truct.apply (objThis, []);
"equals", "hashCode", /*"toString",*/ "getName", "getClassLoader", "getResourceAsStream" /*# {$no.javascript.support} >>x #*/, "defineMethod", "defineStaticMethod",
}/*# {$no.javascript.support} >>x #*/,
regexp = new RegExp("^"+str+"$");
var $$o$$ = null;
$$o$$.hello ();
Clazz._exceptionNPERegExp = Clazz._ex_reg(e.message, "$$o$$");
var cbName = "b$"; // "callbacks";
obs[className.replace (/org\.eclipse\.swt\./, "$wt.")] = classThisObj;
.replace (/org\.eclipse\.swt\./, "$wt.")] = classThisObj;
* @param classInner given inner class, alway with name like "*$*"
if (finalVars == null && objThis.$finals == null) {
// f$ is short for the once choosen "$finals"
if (finalVars != null && objThis.f$ == null) {
obj.f$ = finalVars;
} else if (finalVars == null && objThis.f$ != null) {
obj.f$ = objThis.f$;
} else if (finalVars != null && objThis.f$ != null) {
for (var attr in objThis.f$) {
o[attr] = objThis.f$[attr];
obj.f$ = o;
if (finalVars != null && objThis.$finals == null) {
obj.$finals = finalVars;
} else if (finalVars == null && objThis.$finals != null) {
obj.$finals = objThis.$finals;
} else if (finalVars != null && objThis.$finals != null) {
for (var attr in objThis.$finals) {
o[attr] = objThis.$finals[attr];
obj.$finals = o;
if (clazzEnum["$ values"] == null) { // BH added
clazzEnum["$ values"] = [] // BH added
return this["$ values"]; // BH added
clazzEnum["$ values"].push(o);
$_AI=Clazz.newIntArray;
$_AF=Clazz.newFloatArray;
$_AD=Clazz.newDoubleArray;
$_AL=Clazz.newLongArray;
$_AS=Clazz.newShortArray;
$_AB=Clazz.newByteArray;
$_AC=Clazz.newCharArray;
$_Ab=Clazz.newBooleanArray;
if (clazz.con$truct != null) {
var ss = clazz.con$truct.stacks;
var idx = 0;//clazz.con$truct.index;
Clazz.addProto(clazz.prototype, "con$truct", clazz.con$truct = function () {
clazz.con$truct.stacks = stacks;
clazz.con$truct.index = 0;
if (clazz.declared$Fields != null) {
for (var i = 0; i < clazz.declared$Fields.length; i++) {
newArr[i] = clazz.declared$Fields[i];
clazz.declared$Fields = newArr;
var fs = clazz.declared$Fields;
* var $private = Clazz.checkPrivateMethod (arguments);
* if ($private != null) {
* return $private.apply (this, arguments);
$fz = null; // for private method declaration
//var cla$$ = null;
c$ = null;
/*-# cla$$$tack -> cst #-*/
Clazz.cla$$$tack = new Array ();
Clazz.pu$h = function () {
if (c$ != null) { // if (cla$$ != null) {
Clazz.cla$$$tack[Clazz.cla$$$tack.length] = c$; // cla$$;
if (Clazz.cla$$$tack.length > 0) {
var clazz = Clazz.cla$$$tack[Clazz.cla$$$tack.length - 1];
Clazz.cla$$$tack.length--;
/*# {$no.debug.support} >>x #*/
Clazz.pu$hCalling = function (stack) {
delete c$; // BH -- delete global variables when no longer needed?
w$ = window; // Short for browser's window object
d$ = document; // Short for browser's document object
$_L=Clazz.load;
$_W=Clazz.declareAnonymous;$_T=Clazz.declareType;
$_J=Clazz.declarePackage;$_C=Clazz.decorateAsClass;
$_Z=Clazz.instantialize;$_I=Clazz.declareInterface;$_D=Clazz.isClassDefined;
$_H=Clazz.pu$h;$_P=Clazz.p0p;$_B=Clazz.prepareCallback;
$_N=Clazz.innerTypeInstance;$_K=Clazz.makeConstructor;$_U=Clazz.superCall;$_R=Clazz.superConstructor;
$_M=Clazz.defineMethod;$_V=Clazz.overrideMethod;$_S=Clazz.defineStatics;
$_E=Clazz.defineEnumConstant;
$_F=Clazz.cloneFinals;
$_Y=Clazz.prepareFields;$_A=Clazz.newArray;$_O=Clazz.instanceOf;
$_G=Clazz.inheritArgs;$_X=Clazz.checkPrivateMethod;$_Q=Clazz.makeFunction;
$_s=Clazz.registerSerializableFields;
$_k=Clazz.overrideConstructor;
if (c.indexOf (qClazzName + "$") == 0) {
if (c.indexOf (pkgFrags[pkgFrags.length - 1] + "$") == 0) {
if (c.indexOf (qClazzName + "$") == 0) {
if (!handler.$$guid) handler.$$guid = Clazz.addEvent.guid++;
handlers[handler.$$guid] = handler;
delete element.events[type][handler.$$guid];
this.$$handleEvent = handlers[i];
if (typeof this.$$handleEvent != "function") {
if (this.$$handleEvent(event) === false) {
* Clazz.load (..., "$wt.widgets.Control", ...);
* $_L(["$wt.graphics.Drawable","$wt.widgets.Widget"],
* "$wt.widgets.Control", ...
* $_L(["$wt.widgets.Widget", "$wt.graphics.Drawable"],
* "$wt.widgets.Control", ...
# ClazzNode -> $CN$
# ClazzLoader -> $CL$
# <<< ClazzLoader = $CL$;
/*# {$clazz.existed} >>x #*/
/*# {$no.clazzloader.mode} >>x #*/
/*# {$no.clazzloader.mode} >>x #*/
* $wt.widgets.Shell, $.Display, $.Decorations
* in which "$wt." stands for "org.eclipse.swt.", and "$." stands for
if (arr[i].charAt (0) == '$') {
ClazzLoader.classpathMap["$" + jar] = clazzes;
if (oldVersion != "$") {
if (newVersion != "$") {
var xhr = Jmol.$ajax(info);
var clazzes = ClazzLoader.classpathMap["$" + file];
$_L(["$wt.graphics.Drawable","$wt.widgets.Widget"],"$wt.widgets.Control",
$_L(["$wt.widgets.Widget","$wt.graphics.Drawable"],"$wt.widgets.Control",
if (clazz.charAt (0) == '$') {
if (window["$_L"] != null) {
$_L = Clazz.load;
if (name.indexOf (swtPkg) == 0 || name.indexOf ("$wt") == 0) {
if (clazz.charAt (0) == '$') {
|| child.name.indexOf ("$wt") == 0) {
var arr = ClazzLoader.classpathMap["$" + pp];
ClazzLoader.classpathMap["$" + pp] = arr;
if (clzzName.indexOf ("$") != -1) return;
var key = clzzName + "$";
---------- JSMOL.JS
var container = Jmol.$(this, "appletdiv");
// Math.floor(Jmol.$(this, "appletdiv").height()));
var container = Jmol.$(applet, "appletdiv");
//$("body").removeChild(d);
//$("body").append(d);
---------- JSMOLAPI.JS
["$", "NCI(small molecules)"],
Jmol.$html(divid, applet._code);
---------- JSMOLAPPLET.JS
---------- JSMOLCONTROLS.JS
---------- JSMOLCORE.JS
_databasePrefixes: "$=:",
"$": "http://cactus.nci.nih.gov/chemical/structure/%FILE/file?format=sdf&get3d=True",
"$$": "http://cactus.nci.nih.gov/chemical/structure/%FILE/file?format=sdf",
(function (Jmol, $) {
Jmol.$ = function(appletOrId, what) {
return $("#" + appletOrId._id + (what ? "_" + what : ""));
Jmol.$ajax = function (info) {
return $.ajax(info);
Jmol.$attr = function (id, a, val) {
return $("#" + id).attr(a, val);
Jmol.$bind = function(id, list, f) {
return (f ? $(id).bind(list, f) : $(id).unbind(list));
Jmol.$html = function(id, html) {
return $("#" + id).html(html);
Jmol.$offset = function (id) {
return $("#" + id).offset();
Jmol.$on = function (evt, f) {
return $(window).on(evt, f);
Jmol.$resize = function (f) {
return $(window).resize(f);
Jmol.$submit = function(form) {
return $("#" + form).submit();
Jmol.$val = function (id, v) {
return $("#" + id).val(v);
;(function($,c,b){
$.map("click mousemove mouseup touchmove touchend".split(" "),function(d){a(d)});
var d=$(),h=g+"."+e+"-special-event";
$.event.special[e]={
$(c).bind(h,f)
$(c).unbind(h)
$(d).each(function(){
var j=$(this);
delete $;
delete c$;
delete d$;
delete w$;
delete $_A;
delete $_AB;
delete $_AC;
delete $_AD;
delete $_AF;
delete $_AI;
delete $_AL;
delete $_AS;
delete $_Ab;
delete $_B;
delete $_C;
delete $_D;
delete $_E;
delete $_F;
delete $_G;
delete $_H;
delete $_I;
delete $_J;
delete $_K;
delete $_L;
delete $_M;
delete $_N;
delete $_O;
delete $_P;
delete $_Q;
delete $_R;
delete $_S;
delete $_T;
delete $_U;
delete $_V;
delete $_W;
delete $_X;
delete $_Y;
delete $_Z;
delete $_k;
delete $_s;
delete $t$;
features.supportsXhr2 = function() {return ($.support.cors || $.support.iecors)}
return Jmol.$ajax(info).responseText;
info && Jmol.$ajax(info);
["$", "NCI(small molecules)"],
Jmol.$attr("__jsmolform__", "action", url + "?" + (new Date()).getMilliseconds());
Jmol.$val("__jsmoldata__", data);
Jmol.$val("__jsmolfilename__", filename);
Jmol.$val("__jsmolmimetype__", mimetype);
Jmol.$val("__jsmolencoding__", encoding);
Jmol.$submit("__jsmolform__");
Jmol.$val("__jsmoldata__", "");
return (database == "$" ? Jmol.db._nciLoadScript : database == ":" ? Jmol.db._pubChemLoadScript : Jmol.db._fileLoadScript);
case "$": // NCI
database = (applet._hasOptions ? Jmol._getElement(applet, "select").value : "$");
if (database == "$" || database == ":")
var cantDoSynchronousLoad = (!isMyHost && $.support.iecors);
var xhr = Jmol.$ajax(info);
if (database == "$" || database == ":")
Jmol.$on('beforeunload', function () { Jmol._destroy(applet); } );
var offsets = Jmol.$offset(canvas.id);
var offsets = Jmol.$offset(canvas.id);
Jmol.$bind(canvas, 'mousedown touchstart', function(ev) {
Jmol.$bind(canvas, 'mouseup touchend', function(ev) {
Jmol.$bind(canvas, 'mousemove touchmove', function(ev) { // touchmove
Jmol.$bind(canvas, 'DOMMouseScroll mousewheel', function(ev) { // Zoom
Jmol.$bind(canvas, "contextmenu", function() {return false;});
Jmol.$bind(canvas, 'mouseout', function(ev) {
Jmol.$bind(canvas, 'mouseenter', function(ev) {
Jmol.$resize(function() {
Jmol.$bind('body', 'mouseup touchend', function(ev) {
Jmol.$bind(canvas, 'mousedown touchstart mousemove touchmove mouseup touchend DOMMouseScroll mousewheel contextmenu mouseout mouseenter', null);
var offsets = Jmol.$offset(id);
---------- JSMOLGLMOL.JS
// update 3/27/2013 6:14:21 PM -- broken implementing Jmol.$
THREE.ShaderLib.lambert.vertexShader = THREE.ShaderLib.lambert.vertexShader.replace(/\}$/, "#ifdef DOUBLE_SIDED\n if (transformedNormal.z < 0.0) vLightFront = vLightBack;\n #endif\n }");
this.container = Jmol.$(this.applet, "appletdiv");
Jmol.$resize(function() { // only window can capture resize event
---------- JSMOLJME.JS
if (database == "$")
query = "$" + query; // 2D variant
Jmol.script(jmol, "load \"$" + jmeSMILES + "\"");
---------- JSMOLJQUERY.JS
// Map over the $ in case of overwrite
_$ = window.$,
quickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,
trimRight = /\s+$/,
rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/,
rvalidchars = /^[\],:{}\s]*$/,
// Handle $(""), $(null), or $(undefined)
// Handle $(DOMElement)
// HANDLE: $(html) -> $(array)
// HANDLE: $("#id")
// HANDLE: $(expr, $(...))
// HANDLE: $(expr, context)
// (which is just equivalent to: $(context).find(expr)
// HANDLE: $(function)
if ( window.$ === jQuery ) {
window.$ = _$;
// Catch cases where $(document).ready() is called after the
trimRight = /[\s\xA0]+$/;
var rbrace = /^(?:\{.*\}|\[.*\])$/,
var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();
rtype = /^(?:button|input)$/i,
rfocusable = /^(?:button|input|object|select|textarea)$/i,
rclickable = /^a(?:rea)?$/i,
rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,
var rformElems = /^(?:textarea|input|select)$/i,
rtypenamespace = /^([^\.]*)?(?:\.(.+))?$/,
rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
rquickIs = /^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,
quick[3] = quick[3] && new RegExp( "(?:^|\\s)" + quick[3] + "(?:\\s|$)" );
return jQuery.event.special.hover ? events : events.replace( rhoverHack, "mouseenter$1 mouseleave$1" );
namespaces = namespaces ? new RegExp("(^|\\.)" + namespaces.split(".").sort().join("\\.(?:.*\\.)?") + "(\\.|$)") : null;
event.namespace_re = event.namespace? new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)") : null;
POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,
type === "$=" ?
var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query );
nid = nid.replace( /'/g, "\\$&" );
expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']");
var runtil = /Until$/,
isSimple = /^.[^:#\[\.,]*$/,
// so $("p:first").is("p:last") won't return true for a doc with two "p".
value = value.replace( rxhtmlTag, "<$1>$2>" );
jQuery.globalEval( ( elem.text || elem.textContent || elem.innerHTML || "" ).replace( rcleanScript, "/*$0*/" ) );
elem = elem.replace(rxhtmlTag, "<$1>$2>");
rnum = /^[\-+]?(?:\d*\.)?\d+$/i,
rnumnonpx = /^-?(?:\d*\.)?\d+(?!px)[^\d\s]+$/i,
name = name.replace( rupper, "-$1" ).toLowerCase();
( parseFloat( RegExp.$1 ) / 100 ) + "" :
rbracket = /\[\]$/,
rhash = /#.*$/,
rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, // IE leaves an \r character at EOL
rinput = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
rlocalProtocol = /^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,
rnoContent = /^(?:GET|HEAD)$/,
ret = s.url.replace( rts, "$1_=" + ts );
jsre = /(\=)\?(&|$)|\?\?/i;
replace = "$1" + jsonpCallback + "$2";
rfxtypes = /^(?:toggle|show|hide)$/,
rfxnum = /^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,
// not quite $.extend, this wont overwrite keys already present.
rtable = /^t(?:able|d|h)$/i,
rroot = /^(?:body|html)$/i;
window.jQuery = window.$ = jQuery;
---------- JSMOLJSV.JS
---------- JSMOLTHREE.JS
---------- JSMOLTM.JS
["$", "NCI(small molecules)"],
var container = Jmol.$(this, "appletdiv");
---------- T