




// getting dojo from Google
(function() {
	if (document.getElementById("twirlydojo") == null) {
		djConfig = {
			require: ['dojox.gfx']
		};
		var e = document.createElement("script");
		e.type = "text/javascript";
		e.src= "http://ajax.googleapis.com/ajax/libs/dojo/1.5.0/dojo/dojo.xd.js";
		e.id = "twirlydojo";
		document.getElementsByTagName("head")[0].appendChild(e);	
	};
	var _interval = setInterval(function() {
		if (embed_to_foggymol()) {
			clearInterval(_interval);
		}
	}, 50);
})()

function embed_to_foggymol() {
	try {
		var mol = parseSD('[&#39;C62H111N11O12\nAPtclcactv02091221553D 0   0.00000     0.00000\n \n196196  0  0  1  0  0  0  0  0999 V2000\n   -2.6307   -4.6428    0.6628 C   0  0  1  0  0  0  0  0  0  0  0  0\n   -2.6608   -3.9951   -0.7204 C   0  0  1  0  0  0  0  0  0  0  0  0\n   -4.6159    4.5116    0.6226 C   0  0  1  0  0  0  0  0  0  0  0  0\n   -5.7741   -2.7762    0.9216 C   0  0  1  0  0  0  0  0  0  0  0  0\n   -4.9322    0.8082    0.1225 C   0  0  1  0  0  0  0  0  0  0  0  0\n   -3.6409   -4.7536   -1.6175 C   0  0  2  0  0  0  0  0  0  0  0  0\n    0.7269   -5.0249    0.5342 C   0  0  1  0  0  0  0  0  0  0  0  0\n   -1.2311    5.9238   -0.3912 C   0  0  2  0  0  0  0  0  0  0  0  0\n    2.4218    6.2300    0.6840 C   0  0  1  0  0  0  0  0  0  0  0  0\n    6.7551   -2.7228    0.0491 C   0  0  1  0  0  0  0  0  0  0  0  0\n    4.9621    3.6307   -0.4821 C   0  0  1  0  0  0  0  0  0  0  0  0\n    6.9439    0.9210    1.1265 C   0  0  2  0  0  0  0  0  0  0  0  0\n   -5.6317    5.6369    0.3550 C   0  0  0  0  0  0  0  0  0  0  0  0\n   -6.3057   -3.8878    0.0115 C   0  0  0  0  0  0  0  0  0  0  0  0\n   -3.4921    0.4835   -0.3204 C   0  0  0  0  0  0  0  0  0  0  0  0\n    0.7939   -3.6616   -0.1640 C   0  0  0  0  0  0  0  0  0  0  0  0\n    6.1363   -2.7755   -1.3476 C   0  0  0  0  0  0  0  0  0  0  0  0\n    4.4785    2.5207   -1.4182 C   0  0  0  0  0  0  0  0  0  0  0  0\n   -4.4827   -5.3004    2.2818 C   0  0  0  0  0  0  0  0  0  0  0  0\n   -6.2815   -1.4722   -1.2286 C   0  0  0  0  0  0  0  0  0  0  0  0\n   -4.4901    2.0859    2.3201 C   0  0  0  0  0  0  0  0  0  0  0  0\n   -3.3858    4.3467   -1.6300 C   0  0  0  0  0  0  0  0  0  0  0  0\n   -3.1247   -6.1751   -1.8494 C   0  0  0  0  0  0  0  0  0  0  0  0\n   -1.6347    7.3182   -0.8781 C   0  0  0  0  0  0  0  0  0  0  0  0\n   -6.4080    5.6679    2.7296 C   0  0  0  0  0  0  0  0  0  0  0  0\n   -7.9118    6.4926    0.9127 C   0  0  0  0  0  0  0  0  0  0  0  0\n   -8.3017   -4.6976   -1.2544 C   0  0  0  0  0  0  0  0  0  0  0  0\n   -8.5605   -3.8663    1.0875 C   0  0  0  0  0  0  0  0  0  0  0  0\n   -1.5317    1.3092   -1.6308 C   0  0  0  0  0  0  0  0  0  0  0  0\n   -3.8368    1.5042   -2.5746 C   0  0  0  0  0  0  0  0  0  0  0  0\n    3.0622   -6.2272   -0.8429 C   0  0  0  0  0  0  0  0  0  0  0  0\n    1.7886   -3.7314   -1.3245 C   0  0  0  0  0  0  0  0  0  0  0  0\n   -5.0363   -2.7776   -4.5972 C   0  0  0  0  0  0  0  0  0  0  0  0\n    2.6457    7.7366    0.8488 C   0  0  0  0  0  0  0  0  0  0  0  0\n    7.2096   -4.6307    1.6782 C   0  0  0  0  0  0  0  0  0  0  0  0\n    5.7417    3.5622    1.9539 C   0  0  0  0  0  0  0  0  0  0  0  0\n    8.4965   -0.1069    2.7946 C   0  0  0  0  0  0  0  0  0  0  0  0\n    9.4096    1.2849    0.9314 C   0  0  0  0  0  0  0  0  0  0  0  0\n    8.2712   -2.0049   -2.3921 C   0  0  0  0  0  0  0  0  0  0  0  0\n    6.1077   -1.7067   -3.6058 C   0  0  0  0  0  0  0  0  0  0  0  0\n    4.6183    3.9818   -3.4401 C   0  0  0  0  0  0  0  0  0  0  0  0\n    3.0696    2.0214   -3.4203 C   0  0  0  0  0  0  0  0  0  0  0  0\n   -4.0401   -2.5195   -0.5753 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -0.3044   -5.6433    2.2963 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -0.1097    6.1567    1.4324 H   0  0  0  0  0  0  0  0  0  0  0  0\n    4.1975    6.1724   -0.5320 H   0  0  0  0  0  0  0  0  0  0  0  0\n    7.5755   -0.2831   -0.5422 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -1.4069   -3.0834    1.9191 O   0  0  0  0  0  0  0  0  0  0  0  0\n   -3.6171   -2.0849    1.5071 O   0  0  0  0  0  0  0  0  0  0  0  0\n   -6.0079    3.1384   -0.6887 O   0  0  0  0  0  0  0  0  0  0  0  0\n   -5.6180   -0.3892    2.0655 O   0  0  0  0  0  0  0  0  0  0  0  0\n   -2.3342    5.4004    1.6233 O   0  0  0  0  0  0  0  0  0  0  0  0\n    2.1227   -5.1257    2.4270 O   0  0  0  0  0  0  0  0  0  0  0  0\n    1.2690    5.7921   -1.3307 O   0  0  0  0  0  0  0  0  0  0  0  0\n    4.1216   -3.2433    0.6254 O   0  0  0  0  0  0  0  0  0  0  0  0\n    7.3207    2.1566   -0.8342 O   0  0  0  0  0  0  0  0  0  0  0  0\n    5.6444   -1.3692    1.6401 O   0  0  0  0  0  0  0  0  0  0  0  0\n    2.9503    3.6249    0.7663 O   0  0  0  0  0  0  0  0  0  0  0  0\n    4.4406   -5.4964    1.1916 C   0  0  0  0  0  0  0  0  0  0  0  0\n   -3.0803   -2.6344   -0.6001 O   0  0  0  0  0  0  0  0  0  0  0  0\n   -1.4050   -4.1844    1.4217 C   0  0  0  0  0  0  0  0  0  0  0  0\n   -4.3384   -3.0383    1.3073 C   0  0  0  0  0  0  0  0  0  0  0  0\n   -5.2372    3.1885    0.2491 C   0  0  0  0  0  0  0  0  0  0  0  0\n   -5.4944   -0.3672    0.8588 C   0  0  0  0  0  0  0  0  0  0  0  0\n   -2.3572    5.3277    0.4064 C   0  0  0  0  0  0  0  0  0  0  0  0\n    2.0412   -5.2911    1.2289 C   0  0  0  0  0  0  0  0  0  0  0  0\n    1.1826    5.9993   -0.1419 C   0  0  0  0  0  0  0  0  0  0  0  0\n    4.9361   -4.1046    0.8846 C   0  0  0  0  0  0  0  0  0  0  0  0\n    6.7193    2.1077    0.2164 C   0  0  0  0  0  0  0  0  0  0  0  0\n    6.4345   -1.4134    0.7202 C   0  0  0  0  0  0  0  0  0  0  0  0\n    3.7592    4.2892    0.1463 C   0  0  0  0  0  0  0  0  0  0  0  0\n   -6.8406    5.4625    1.2764 C   0  0  0  0  0  0  0  0  0  0  0  0\n   -7.8022   -3.6787   -0.2281 C   0  0  0  0  0  0  0  0  0  0  0  0\n   -3.0030    1.5585   -1.2930 C   0  0  0  0  0  0  0  0  0  0  0  0\n    8.2456    1.1160    1.9100 C   0  0  0  0  0  0  0  0  0  0  0  0\n    6.7795   -1.7048   -2.2312 C   0  0  0  0  0  0  0  0  0  0  0  0\n    3.6842    3.1364   -2.5719 C   0  0  0  0  0  0  0  0  0  0  0  0\n   -3.7649   -4.0422   -2.9402 C   0  0  0  0  0  0  0  0  0  0  0  0\n   -4.9326   -3.6048   -3.3418 C   0  0  0  0  0  0  0  0  0  0  0  0\n   -3.8513   -4.2977    1.4123 N   0  0  0  0  0  0  0  0  0  0  0  0\n   -5.8360   -1.4954    0.1699 N   0  0  0  0  0  0  0  0  0  0  0  0\n   -4.8917    2.0469    0.9143 N   0  0  0  0  0  0  0  0  0  0  0  0\n   -3.4164    4.7416   -0.2179 N   0  0  0  0  0  0  0  0  0  0  0  0\n    3.1318   -5.6718    0.5108 N   0  0  0  0  0  0  0  0  0  0  0  0\n    6.2666   -3.8446    0.8730 N   0  0  0  0  0  0  0  0  0  0  0  0\n    5.8253    3.0710    0.5708 N   0  0  0  0  0  0  0  0  0  0  0  0\n   -0.3528   -5.0210    1.5324 N   0  0  0  0  0  0  0  0  0  0  0  0\n   -0.0363    6.0429    0.4681 N   0  0  0  0  0  0  0  0  0  0  0  0\n    3.5871    5.6351   -0.0042 N   0  0  0  0  0  0  0  0  0  0  0  0\n    7.0680   -0.2875    0.2845 N   0  0  0  0  0  0  0  0  0  0  0  0\n   -2.5787   -5.7350    0.5467 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -4.3391    4.5381    1.6708 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -1.6639   -4.0305   -1.1599 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -6.3916   -2.7022    1.8134 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -5.5255    0.9973   -0.7794 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -4.6173   -4.7958   -1.1348 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -5.1638    6.6022    0.5482 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -5.9575    5.5927   -0.6842 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -4.0636   -5.2266    3.2853 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -5.5570   -5.1210    2.3226 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -4.2956   -6.2971    1.8823 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -5.7778   -3.8604   -0.9417 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -6.1456   -4.8550    0.4879 H   0  0  0  0  0  0  0  0  0  0  0  0\n    0.5292   -5.7984   -0.2019 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -2.8401    0.4596    0.5528 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -3.4742   -0.4883   -0.8138 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -2.8911   -3.8931   -3.5571 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -0.9919    5.2923   -1.2406 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -7.3458   -1.2401   -1.2671 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -5.7238   -0.7117   -1.7751 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -6.1057   -2.4477   -1.6822 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -7.2467    4.4581    1.1567 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -4.5242    3.1145    2.6792 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -5.1714    1.4724    2.9097 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -3.4756    1.6999    2.4190 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -3.6377    5.2050   -2.2529 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -2.3875    3.9922   -1.8866 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -4.1094    3.5495   -1.8002 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -7.9725   -2.6701   -0.6049 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -2.1484   -6.1329   -2.3321 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -3.0351   -6.6897   -0.8926 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -3.8230   -6.7155   -2.4885 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -3.1086    2.5406   -0.8321 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -0.1928   -3.4003   -0.5463 H   0  0  0  0  0  0  0  0  0  0  0  0\n    1.1198   -2.9040    0.5487 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -5.8209   -3.8369   -2.7731 H   0  0  0  0  0  0  0  0  0  0  0  0\n    5.1421   -6.2352    0.7956 H   0  0  0  0  0  0  0  0  0  0  0  0\n    4.3230   -5.6249    2.2646 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -0.8508    7.7198   -1.5202 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -2.5662    7.2512   -1.4402 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -1.7744    7.9762   -0.0204 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -7.2510    5.4684    3.3912 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -5.5915    4.9854    2.9655 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -6.0735    6.6961    2.8672 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -8.2200    6.3463   -0.1225 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -8.7731    6.3683    1.5692 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -7.5056    7.4970    1.0324 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -8.1315   -5.7061   -0.8776 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -9.3679   -4.5486   -1.4251 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -7.7615   -4.5639   -2.1916 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -8.2047   -3.1404    1.8186 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -9.6267   -3.7173    0.9168 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -8.3903   -4.8748    1.4643 H   0  0  0  0  0  0  0  0  0  0  0  0\n    2.2979    5.7708    1.6636 H   0  0  0  0  0  0  0  0  0  0  0  0\n    7.8477   -2.8105   -0.0504 H   0  0  0  0  0  0  0  0  0  0  0  0\n    5.5169    4.3741   -1.0552 H   0  0  0  0  0  0  0  0  0  0  0  0\n    6.1109    0.8123    1.8157 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -1.4261    0.3271   -2.0917 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -1.1832    2.0750   -2.3237 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -0.9376    1.3478   -0.7178 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -3.7312    0.5221   -3.0355 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -4.8850    1.6818   -2.3339 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -3.4883    2.2701   -3.2675 H   0  0  0  0  0  0  0  0  0  0  0  0\n    2.0186   -6.3594   -1.1282 H   0  0  0  0  0  0  0  0  0  0  0  0\n    3.5460   -5.5441   -1.5412 H   0  0  0  0  0  0  0  0  0  0  0  0\n    3.5704   -7.1912   -0.8667 H   0  0  0  0  0  0  0  0  0  0  0  0\n    1.7627   -2.7951   -1.8820 H   0  0  0  0  0  0  0  0  0  0  0  0\n    2.7928   -3.8935   -0.9331 H   0  0  0  0  0  0  0  0  0  0  0  0\n    1.5187   -4.5552   -1.9852 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -4.6659   -3.3549   -5.4443 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -6.0782   -2.5076   -4.7693 H   0  0  0  0  0  0  0  0  0  0  0  0\n   -4.4399   -1.8721   -4.4860 H   0  0  0  0  0  0  0  0  0  0  0  0\n    8.1640    2.0056    2.5345 H   0  0  0  0  0  0  0  0  0  0  0  0\n    6.3089   -3.7590   -1.7846 H   0  0  0  0  0  0  0  0  0  0  0  0\n    5.0641   -2.5924   -1.2771 H   0  0  0  0  0  0  0  0  0  0  0  0\n    5.3378    1.9809   -1.8161 H   0  0  0  0  0  0  0  0  0  0  0  0\n    3.8405    1.8313   -0.8652 H   0  0  0  0  0  0  0  0  0  0  0  0\n    2.7634    8.1959   -0.1327 H   0  0  0  0  0  0  0  0  0  0  0  0\n    1.7879    8.1781    1.3560 H   0  0  0  0  0  0  0  0  0  0  0  0\n    3.5452    7.9077    1.4402 H   0  0  0  0  0  0  0  0  0  0  0  0\n    6.6648   -5.3941    2.2336 H   0  0  0  0  0  0  0  0  0  0  0  0\n    7.9372   -5.1085    1.0221 H   0  0  0  0  0  0  0  0  0  0  0  0\n    7.7271   -3.9731    2.3767 H   0  0  0  0  0  0  0  0  0  0  0  0\n    5.0070    2.9745    2.5043 H   0  0  0  0  0  0  0  0  0  0  0  0\n    6.7161    3.4665    2.4330 H   0  0  0  0  0  0  0  0  0  0  0  0\n    5.4400    4.6096    1.9499 H   0  0  0  0  0  0  0  0  0  0  0  0\n    6.6538   -0.7268   -1.7667 H   0  0  0  0  0  0  0  0  0  0  0  0\n    2.8909    3.7672   -2.1709 H   0  0  0  0  0  0  0  0  0  0  0  0\n    8.5782   -0.9965    2.1701 H   0  0  0  0  0  0  0  0  0  0  0  0\n    9.4228    0.0319    3.3522 H   0  0  0  0  0  0  0  0  0  0  0  0\n    7.6673   -0.2272    3.4918 H   0  0  0  0  0  0  0  0  0  0  0  0\n    9.2308    2.1561    0.3012 H   0  0  0  0  0  0  0  0  0  0  0  0\n   10.3358    1.4237    1.4890 H   0  0  0  0  0  0  0  0  0  0  0  0\n    9.4912    0.3953    0.3069 H   0  0  0  0  0  0  0  0  0  0  0  0\n    8.3991   -3.0210   -2.7654 H   0  0  0  0  0  0  0  0  0  0  0  0\n    8.7094   -1.3003   -3.0988 H   0  0  0  0  0  0  0  0  0  0  0  0\n    8.7676   -1.9074   -1.4266 H   0  0  0  0  0  0  0  0  0  0  0  0\n    5.0451   -1.4929   -3.4912 H   0  0  0  0  0  0  0  0  0  0  0  0\n    6.5660   -0.9439   -4.2352 H   0  0  0  0  0  0  0  0  0  0  0  0\n    6.2335   -2.6848   -4.0703 H   0  0  0  0  0  0  0  0  0  0  0  0\n    5.3652    3.3376   -3.9041 H   0  0  0  0  0  0  0  0  0  0  0  0\n    4.0390    4.4833   -4.2153 H   0  0  0  0  0  0  0  0  0  0  0  0\n    5.1162    4.7268   -2.8194 H   0  0  0  0  0  0  0  0  0  0  0  0\n    2.4041    1.4191   -2.8017 H   0  0  0  0  0  0  0  0  0  0  0  0\n    2.5038    2.4600   -4.2422 H   0  0  0  0  0  0  0  0  0  0  0  0\n    3.8629    1.3906   -3.8212 H   0  0  0  0  0  0  0  0  0  0  0  0\n  2 60  1  0  0  0  0\n 48 61  2  0  0  0  0\n 49 62  2  0  0  0  0\n 50 63  2  0  0  0  0\n 51 64  2  0  0  0  0\n 52 65  2  0  0  0  0\n 53 66  2  0  0  0  0\n 54 67  2  0  0  0  0\n 55 68  2  0  0  0  0\n 56 69  2  0  0  0  0\n 57 70  2  0  0  0  0\n 58 71  2  0  0  0  0\n  1 80  1  0  0  0  0\n 62 80  1  0  0  0  0\n 19 80  1  0  0  0  0\n  4 81  1  0  0  0  0\n 64 81  1  0  0  0  0\n 20 81  1  0  0  0  0\n 63 82  1  0  0  0  0\n  5 82  1  0  0  0  0\n 21 82  1  0  0  0  0\n  3 83  1  0  0  0  0\n 65 83  1  0  0  0  0\n 22 83  1  0  0  0  0\n 61 87  1  0  0  0  0\n  7 87  1  0  0  0  0\n 66 84  1  0  0  0  0\n 59 84  1  0  0  0  0\n 31 84  1  0  0  0  0\n  8 88  1  0  0  0  0\n 67 88  1  0  0  0  0\n 68 85  1  0  0  0  0\n 10 85  1  0  0  0  0\n 35 85  1  0  0  0  0\n 11 86  1  0  0  0  0\n 69 86  1  0  0  0  0\n 36 86  1  0  0  0  0\n  9 89  1  0  0  0  0\n 71 89  1  0  0  0  0\n 12 90  1  0  0  0  0\n 70 90  1  0  0  0  0\n  1  2  1  0  0  0  0\n  1 61  1  0  0  0  0\n  1 91  1  0  0  0  0\n  2  6  1  0  0  0  0\n  4 62  1  0  0  0  0\n  3 63  1  0  0  0  0\n  3 13  1  0  0  0  0\n  3 92  1  0  0  0  0\n  4 14  1  0  0  0  0\n  5 64  1  0  0  0  0\n  5 15  1  0  0  0  0\n  6 78  1  0  0  0  0\n  6 23  1  0  0  0  0\n 13 72  1  0  0  0  0\n  8 65  1  0  0  0  0\n 14 73  1  0  0  0  0\n  7 66  1  0  0  0  0\n  7 16  1  0  0  0  0\n 15 74  1  0  0  0  0\n 78 79  2  0  0  0  0\n  8 24  1  0  0  0  0\n 25 72  1  0  0  0  0\n 26 72  1  0  0  0  0\n 27 73  1  0  0  0  0\n 28 73  1  0  0  0  0\n 29 74  1  0  0  0  0\n 30 74  1  0  0  0  0\n 16 32  1  0  0  0  0\n 33 79  1  0  0  0  0\n  9 67  1  0  0  0  0\n 59 68  1  0  0  0  0\n  9 34  1  0  0  0  0\n 10 70  1  0  0  0  0\n 10 17  1  0  0  0  0\n 11 71  1  0  0  0  0\n 11 18  1  0  0  0  0\n 12 69  1  0  0  0  0\n 12 75  1  0  0  0  0\n 37 75  1  0  0  0  0\n 38 75  1  0  0  0  0\n 17 76  1  0  0  0  0\n 18 77  1  0  0  0  0\n 39 76  1  0  0  0  0\n 40 76  1  0  0  0  0\n 41 77  1  0  0  0  0\n 42 77  1  0  0  0  0\n 43 60  1  0  0  0  0\n 44 87  1  0  0  0  0\n 45 88  1  0  0  0  0\n 46 89  1  0  0  0  0\n 47 90  1  0  0  0  0\n  2 93  1  0  0  0  0\n  4 94  1  0  0  0  0\n  5 95  1  0  0  0  0\n  6 96  1  0  0  0  0\n 13 97  1  0  0  0  0\n 13 98  1  0  0  0  0\n 19 99  1  0  0  0  0\n 19100  1  0  0  0  0\n 19101  1  0  0  0  0\n 14102  1  0  0  0  0\n 14103  1  0  0  0  0\n  7104  1  0  0  0  0\n 15105  1  0  0  0  0\n 15106  1  0  0  0  0\n 78107  1  0  0  0  0\n  8108  1  0  0  0  0\n 20109  1  0  0  0  0\n 20110  1  0  0  0  0\n 20111  1  0  0  0  0\n 72112  1  0  0  0  0\n 21113  1  0  0  0  0\n 21114  1  0  0  0  0\n 21115  1  0  0  0  0\n 22116  1  0  0  0  0\n 22117  1  0  0  0  0\n 22118  1  0  0  0  0\n 73119  1  0  0  0  0\n 23120  1  0  0  0  0\n 23121  1  0  0  0  0\n 23122  1  0  0  0  0\n 74123  1  0  0  0  0\n 16124  1  0  0  0  0\n 16125  1  0  0  0  0\n 79126  1  0  0  0  0\n 59127  1  0  0  0  0\n 59128  1  0  0  0  0\n 24129  1  0  0  0  0\n 24130  1  0  0  0  0\n 24131  1  0  0  0  0\n 25132  1  0  0  0  0\n 25133  1  0  0  0  0\n 25134  1  0  0  0  0\n 26135  1  0  0  0  0\n 26136  1  0  0  0  0\n 26137  1  0  0  0  0\n 27138  1  0  0  0  0\n 27139  1  0  0  0  0\n 27140  1  0  0  0  0\n 28141  1  0  0  0  0\n 28142  1  0  0  0  0\n 28143  1  0  0  0  0\n  9144  1  0  0  0  0\n 10145  1  0  0  0  0\n 11146  1  0  0  0  0\n 12147  1  0  0  0  0\n 29148  1  0  0  0  0\n 29149  1  0  0  0  0\n 29150  1  0  0  0  0\n 30151  1  0  0  0  0\n 30152  1  0  0  0  0\n 30153  1  0  0  0  0\n 31154  1  0  0  0  0\n 31155  1  0  0  0  0\n 31156  1  0  0  0  0\n 32157  1  0  0  0  0\n 32158  1  0  0  0  0\n 32159  1  0  0  0  0\n 33160  1  0  0  0  0\n 33161  1  0  0  0  0\n 33162  1  0  0  0  0\n 75163  1  0  0  0  0\n 17164  1  0  0  0  0\n 17165  1  0  0  0  0\n 18166  1  0  0  0  0\n 18167  1  0  0  0  0\n 34168  1  0  0  0  0\n 34169  1  0  0  0  0\n 34170  1  0  0  0  0\n 35171  1  0  0  0  0\n 35172  1  0  0  0  0\n 35173  1  0  0  0  0\n 36174  1  0  0  0  0\n 36175  1  0  0  0  0\n 36176  1  0  0  0  0\n 76177  1  0  0  0  0\n 77178  1  0  0  0  0\n 37179  1  0  0  0  0\n 37180  1  0  0  0  0\n 37181  1  0  0  0  0\n 38182  1  0  0  0  0\n 38183  1  0  0  0  0\n 38184  1  0  0  0  0\n 39185  1  0  0  0  0\n 39186  1  0  0  0  0\n 39187  1  0  0  0  0\n 40188  1  0  0  0  0\n 40189  1  0  0  0  0\n 40190  1  0  0  0  0\n 41191  1  0  0  0  0\n 41192  1  0  0  0  0\n 41193  1  0  0  0  0\n 42194  1  0  0  0  0\n 42195  1  0  0  0  0\n 42196  1  0  0  0  0\nM  END\n$$$$\n&#39;]');
		twirlyMol("foggymol", mol.atoms, mol.bonds, mol.elements);
		return true
	}
	catch(error) {
		return false
	}
	return false
}


// Noel's library:

//dojo.require("dojox.gfx");
//dojo.require("dojox.gfx.move");
function getInternetExplorerVersion() {
// Returns the version of Internet Explorer or a -1
// (indicating the use of another browser).
// Kids, don't ever browser sniff at home
  var rv = -1; // Return value assumes failure.
  if (navigator.appName == 'Microsoft Internet Explorer') {
    var ua = navigator.userAgent;
    var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
    if (re.exec(ua) != null)
      rv = parseFloat( RegExp.$1 );
  }
  return rv;
}
function parseSD(sdf) {
  var lookupelem = ['H', 'He', 'Li', 'Be', 'B', 'C', 'N', 'O', 'F', 'Ne', 'Na', 'Mg', 'Al', 'Si', 'P', 'S', 'Cl', 'Ar', 'K', 'Ca', 'Sc', 'Ti', 'V', 'Cr', 'Mn', 'Fe', 'Co', 'Ni', 'Cu', 'Zn', 'Ga', 'Ge', 'As', 'Se', 'Br', 'Kr', 'Rb', 'Sr', 'Y', 'Zr', 'Nb', 'Mo', 'Tc', 'Ru', 'Rh', 'Pd', 'Ag', 'Cd', 'In', 'Sn', 'Sb', 'Te', 'I', 'Xe', 'Cs', 'Ba', 'La', 'Ce', 'Pr', 'Nd', 'Pm', 'Sm', 'Eu', 'Gd', 'Tb', 'Dy', 'Ho', 'Er', 'Tm', 'Yb', 'Lu', 'Hf', 'Ta', 'W', 'Re', 'Os', 'Ir', 'Pt', 'Au', 'Hg', 'Tl', 'Pb','Bi', 'Po', 'At', 'Rn', 'Fr', 'Ra', 'Ac', 'Th', 'Pa', 'U', 'Np', 'Pu', 'Am', 'Cm', 'Bk', 'Cf', 'Es'];
  
  var lines = sdf.split("\n");
  var Natoms = parseFloat(lines[3].substring(0, 3));
  var Nbonds = parseFloat(lines[3].substring(3, 6));

  var atoms = Array(Natoms);
  var elements = Array(Natoms);

  for (var i=4;i<Natoms+4;i++) {
    var x = parseFloat(lines[i].substring(0, 10));
    var y = parseFloat(lines[i].substring(10, 20));
    var z = parseFloat(lines[i].substring(20, 30));
    var e = lines[i].substring(31, 34);
    e = e.replace(/\s+/g, '')
    atoms[i-4] = [x, y, z];
    for(var j=0; j<lookupelem.length; j++){
        if(lookupelem[j]==e){
            elements[i-4] = j+1;
            break;
        }
    }
  }
  var bonds = Array(Nbonds);
  for (i=4 + Natoms;i<(Nbonds+Natoms+4);i++) {
    var s = parseFloat(lines[i].substring(0, 3)) - 1;
    var e = parseFloat(lines[i].substring(3, 6)) - 1;
    var order = parseFloat(lines[i].substring(6, 9));
    bondlen = Math.sqrt(Math.pow(atoms[e][0]-atoms[s][0],2) + Math.pow(atoms[e][1]-atoms[s][1],2) + Math.pow(atoms[e][2]-atoms[s][2],2));
    bonds[i-4-Natoms] = [s, e, order, bondlen];
  }
  var molecule = {atoms: atoms, bonds: bonds, elements: elements};
  return molecule;
}
function tl_createBonds(p) {
  var start;
  var end;
  for(var i=0; i< p.bonds.length; i++) {
    start = p.bonds[i][0];
    end = p.bonds[i][1];
    p.lines[i] = p.surface.createLine({x1:0, y1:0, x2:1, y2:0})
                         .setFill([0, 0, 0, 1]).setStroke({color:[0,0,0,1], width:0.05});
  }
}
function tl_createShadows(p) {
  for(var i=0;i<p.coords.length;i++) {
    var radius = 6;
    if (p.elements[i]==1) radius = radius / 2;
    p.shadows[i] = p.surface.createEllipse({cx: 0, cy: 0,
                                            rx: radius, ry: radius / 3})
        .setFill([180, 180, 180, 1]);
  }
}
function tl_createAtoms(p) {
  for(var i=0;i<p.coords.length;i++) {
    var col = tl_CPK[p.elements[i]];
    var radius = 10; // Using a radius < 1 causes an error in IE
    if (p.elements[i]==1) radius = radius / 2;

    p.spheres[i] = p.surface.createCircle({cx: 0, cy: 0, r: radius});
    if (p.elements[i]!=1)
        p.spheres[i].setFill({type:"radial", cx:-2, cy:-3, r:radius/1.5,
		  colors:[{color:"white", offset:0},
		          {color:[col[0], col[1], col[2], 1], offset:1}]});
    else
        p.spheres[i].setFill([col[0], col[1], col[2], 1]);
    /*p.spheres[i] = p.surface.createGroup();
    p.spheres[i].createCircle({cx: 0, cy: 0, r: radius})
        .setFill([col[0], col[1], col[2], 1]);
    if (p.elements[i]!=1) p.spheres[i].createCircle({cx: - 2, cy: -3, r: radius * 0.1})
        .setFill([255, 255, 255, 1]);*/
  }
}
function tl_zorder(a, b) {
  var x = a.depth;
  var y = b.depth;
  return ((x < y) ? 1 : ((x > y) ? -1 : 0));
}
function tl_drawAtomsAndBonds(p) {
  // Add atoms
  var temp = Array(p.coords.length + p.bonds.length);
  for (var i=0;i<p.coords.length;i++)
    temp[i] = {idx: i, type: "atom", depth: p.coords[i][2]};
  // Add bonds
  for (var i=0;i<p.bonds.length; i++) {
    start = p.bonds[i][0];
    end = p.bonds[i][1];
    temp[i + p.coords.length] = {idx: i, type: "bond", depth: (p.coords[start][2] + p.coords[end][2])/2};
  }
  // Z-Order
  temp.sort(tl_zorder);

  var start, end, order, startrad, endrad;
  var bondlen, rstart, rend;
  var scale = p.scale * 0.05;

  for (i=0; i<temp.length; i++) {
    var max = temp[i].idx;
    if (temp[i].type == "atom") { // Draw atom
      var sphere = p.spheres[max];
      sphere.setTransform({dx: p.centre.x + p.coords[max][0] * p.scale, dy: p.centre.y + p.coords[max][1] * p.scale, xx:scale , yy:scale}).moveToFront();
      var col = tl_CPK[p.elements[max]];
      if (p.fog) {
        var alpha = 1.0;
        if (p.coords[max][2] > 0) alpha = 1.0 - p.coords[max][2] / p.radius;
        if (p.elements[max]!=1) {
            sphere.setFill({type:"radial", cx:-2, cy:-3, r:7,
        colors:[{color:[255, 255, 255, alpha], offset:0},
                {color:[col[0], col[1], col[2], alpha], offset:1}]});
        }
        else
          sphere.setFill([col[0], col[1], col[2], alpha]);
      }
    }
    else { // Draw bond
      start = p.coords[p.bonds[max][0]];
      end = p.coords[p.bonds[max][1]];
      order = p.bonds[max][2];
      startrad = 0.5; endrad = 0.5;
      if (p.elements[p.bonds[max][0]] == 1) startrad = 0.25;
      if (p.elements[p.bonds[max][1]] == 1)   endrad = 0.25;
      bondlen = p.bonds[max][3];
      startrad /= bondlen; endrad /= bondlen;
      rstart = Array(3);
      rend = Array(3);
      for(var j=0; j<3; j++) {
        dx = end[j] - start[j];
        rstart[j] = startrad*dx + start[j];
        rend[j] = end[j] - endrad*dx;
      }
      var alpha = 1.0;
      if (temp[i].depth > 0) alpha = 1.0 - temp[i].depth / p.radius;
      p.lines[max].setShape({x1:rstart[0] * p.scale + p.centre.x,
                           y1:rstart[1] * p.scale + p.centre.y,
                           x2:rend[0] * p.scale + p.centre.x,
                           y2:rend[1] * p.scale + p.centre.y})
                   .setStroke({width:p.scale * ((order-1)*2+1) / 10,
			       color:[0,0,0,alpha]})
		   .moveToFront();
    }
  }
}
function tl_drawShadows(p) {
  var y;
  var alpha;
  var size;
  var scale = p.scale * 0.1;
  for(var i=0; i < p.coords.length; i++) {
    y = p.coords[i][1];
    alpha = 0.6;
    size = scale;
    if(y<0) {
      alpha = alpha + y * 0.3;
      size = (1-y) * scale;
      if(alpha<0) alpha=0;
    }
    p.shadows[i].setTransform({dx: p.coords[i][0] * p.scale + p.centre.x, dy: (-p.coords[i][2] /5 + p.range*0.75) * p.scale + p.centre.y, xx:size, yy:size}).setFill([180, 180, 180, alpha]);
  }
}
var tl_mouse = {left:0, right:2, middle: 1};
if (getInternetExplorerVersion()!=-1) tl_mouse = {left:1, right:2, middle: 4};
tl_onContextMenu = function(evt){
   evt.stopPropagation();
   evt.preventDefault();
   dojo.stopEvent(evt);
}
tl_onMouseScroll = function(evt){
  var scroll = evt[(!dojo.isMozilla ? "wheelDelta" : "detail")] * (!dojo.isMozilla ? 0.03333 : -1);
  this.p.scale += scroll;
  tl_draw(this.p);
  dojo.stopEvent(evt);

}
tl_onMouseDown = function(evt){
   var p = this.p;
   p.mymousedown = evt.button;
   p.dragorigin = [evt.clientX - p.container_pos.x, evt.clientY - p.container_pos.y];
   p.anglesorigin = [p.angles[0], p.angles[1], p.angles[2]];
   p.zoomorigin = p.scale;
   evt.stopPropagation();
   evt.preventDefault();
   dojo.stopEvent(evt);
};
tl_onMouseUp = function(evt){
  var p = this.p;
  p.mymousedown = -1;
  p.angles = [0, 0, 0];
  for(var i=0;i<p.atoms.length;i++) {
    var c = p.coords[i];
    p.atoms[i] = [c[0], c[1], c[2]];
  }
};
tl_onMouseMove = function(evt){
   var p = this.p;
   evt.stopPropagation();
   evt.preventDefault();
   dojo.stopEvent(evt);
   if (p.mymousedown==-1) return;
   var mx = evt.clientX - p.container_pos.x;
   var my = evt.clientY - p.container_pos.y;
   if (p.mymousedown == tl_mouse.left) {
     p.angles[0] = p.anglesorigin[0] + (my - p.dragorigin[1])/(p.height / 5);
     p.angles[1] = p.anglesorigin[1] + (mx - p.dragorigin[0])/(p.width / 5);
   }
   else if (p.mymousedown == tl_mouse.middle) {
     p.centre.x = p.width/2 + mx - p.dragorigin[0];
     p.centre.y = p.height/2 + my - p.dragorigin[1];
   }
   else if (p.mymousedown == tl_mouse.right) {
     p.scale = p.zoomorigin + (p.dragorigin[1] - my) / (p.height / 25);
     p.angles[2] = p.anglesorigin[2] + (- p.dragorigin[0] + mx)/(p.width / 5);
   }
   tl_draw(p);
};
function tl_draw(p) {
   tl_rotateAround(p);
   tl_drawShadows(p);
   tl_drawAtomsAndBonds(p);
   if (window.opera) {
	   p.surface.setDimensions(p.width + 1, p.height + 1);
	   p.surface.setDimensions(p.width, p.height);
   }
}
function tl_centreMol(p) {
  var size = p.width;
  if (p.height<size) size = p.height;
  var mean = [0, 0, 0];
  var min = [999999, 999999, 999999];
  var max = [-999999, -999999, -999999];
  for(i=0; i < p.atoms.length; i++) {
    for(var j=0;j<3;j++) {
       mean[j] += p.atoms[i][j];
       if (p.atoms[i][j] < min[j]) min[j]=p.atoms[i][j];
       if (p.atoms[i][j] > max[j]) max[j]=p.atoms[i][j];
    }
  }
  var maxrange = -999999;
  for(j=0;j<3;j++) {
    mean[j] = mean[j] / p.atoms.length;
    if(max[j]-min[j] > maxrange) maxrange = max[j] - min[j];
  }
  var scale = size * 7.6 / (240 * maxrange); 
  var sqrdist = 0;
  var sqrrad = 0;
  for(i=0; i < p.atoms.length; i++) {
    for(j=0;j<3;j++) {
      p.atoms[i][j] = p.atoms[i][j] - mean[j];
    }
    sqrdist = p.atoms[i][0]*p.atoms[i][0] + p.atoms[i][1]*p.atoms[i][1] +
           p.atoms[i][2]*p.atoms[i][2];
    if (sqrdist>sqrrad) sqrrad=sqrdist;
  }
  return {scale: scale, range: maxrange, radius:Math.sqrt(sqrrad)};
}
function tl_rotateAround(p) {
  // Rotate around X
  c = Math.cos(p.angles[0]);
  s = Math.sin(p.angles[0]);
  for (var i=0;i<p.atoms.length;i++) {
    p.coords[i][0] = p.atoms[i][0];
    p.coords[i][1] = p.atoms[i][1] * c - p.atoms[i][2] * s;
    p.coords[i][2] = p.atoms[i][1] * s + p.atoms[i][2] * c;
  }
  // Rotate around Y
  c = Math.cos(p.angles[1]);
  s = Math.sin(p.angles[1]);
  for (i=0;i<p.atoms.length;i++) {
    t = p.coords[i][0] * c - p.coords[i][2] * s;
    u = p.coords[i][0] * s + p.coords[i][2] * c;
    p.coords[i][0] = t;
    p.coords[i][2] = u;
  }
  // Rotate around Z
  c = Math.cos(p.angles[2]);
  s = Math.sin(p.angles[2]);
  for (i=0;i<p.atoms.length;i++) {
    t = p.coords[i][0] * c - p.coords[i][1] * s;
    u = p.coords[i][0] * s + p.coords[i][1] * c;
    p.coords[i][0] = t;
    p.coords[i][1] = u;
  }
}
var tl_CPK = [[-1, -1, -1], [215, 215, 215], [216, 255, 255], [204, 127, 255], [193, 255, 0], [255, 181, 181], [127, 127, 127], [12, 12, 255], [255, 12, 12], [178, 255, 255], [178, 226, 244], [170, 91, 242], [137, 255, 0], [191, 165, 165], [127, 153, 153], [255, 127, 0], [255, 255, 48], [30, 239, 30], [127, 209, 226], [142, 63, 211], [61, 255, 0], [229, 229, 229], [191, 193, 198], [165, 165, 170], [137, 153, 198], [155, 122, 198], [127, 122, 198], [112, 122, 198], [91, 122, 193], [255, 122, 96], [124, 127, 175], [193, 142, 142], [102, 142, 142], [188, 127, 226], [255, 160, 0], [165, 40, 40], [91, 183, 209], [112, 45, 175], [0, 255, 0], [147, 255, 255], [147, 224, 224], [114, 193, 201], [84, 181, 181], [58, 158, 158], [35, 142, 142], [10, 124, 140], [0, 104, 132], [224, 224, 255], [255, 216, 142], [165, 117, 114], [102, 127, 127], [158, 99, 181], [211, 122, 0], [147, 0, 147], [66, 158, 175], [86, 22, 142], [0, 201, 0], [112, 211, 255], [255, 255, 198], [216, 255, 198], [198, 255, 198], [163, 255, 198], [142, 255, 198], [96, 255, 198], [68, 255, 198], [48, 255, 198], [30, 255, 198], [0, 255, 155], [0, 229, 117], [0, 211, 81], [0, 191, 56], [0, 170, 35], [76, 193, 255], [76, 165, 255], [33, 147, 214], [38, 124, 170], [38, 102, 150], [22, 84, 135], [244, 237, 209], [204, 209, 30], [181, 181, 193], [165, 84, 76], [86, 89, 96], [158, 79, 181], [170, 91, 0], [117, 79, 68], [66, 130, 150], [66, 0, 102], [0, 124, 0], [112, 170, 249], [0, 186, 255], [0, 160, 255], [0, 142, 255], [0, 127, 255], [0, 107, 255], [84, 91, 242], [119, 91, 226], [137, 79, 226], [160, 53, 211], [178, 30, 211], [178, 30, 186], [178, 12, 165], [188, 12, 135], [198, 0, 102], [204, 0, 89], [209, 0, 79], [216, 0, 68], [224, 0, 56], [229, 0, 45], [232, 0, 38], [234, 0, 35], [237, 0, 33], [239, 0, 30], [242, 0, 28], [244, 0, 25], [247, 0, 22], [249, 0, 20], [252, 0, 17], [255, 0, 15]];
//tl_CPK[1] = [0, 0, 0];
function twirlyMol(elemID, atoms, bonds, elements, fog){
  if (fog == null) fog = true; // Default value
  function min(x,y) {if(x<y)return x; else return y;}

  var container = dojo.byId(elemID);
  var w = dojo.style(elemID, "width");
  var h = dojo.style(elemID, "height");
  // Drop back to legacy div height and width attributes if div style
  // height (only) not set. NB div style width defaults to 100% if not set.
  if (h == 0) {
    w = container.getAttribute("width");
    h = container.getAttribute("height");
  }
  
  var surface = dojox.gfx.createSurface(container, w, h);
  var container_pos = dojo.coords(container, true);
  var centre = {x: w/2, y:h/2};
  var coords = Array(atoms.length);
  for(var i=0;i<atoms.length;i++)
    coords[i] = [atoms[0], atoms[1], atoms[2]];
  container.p = {angles: [0, 0, 0], elements:elements,
       surface: surface, atoms:atoms, bonds:bonds,
       scale: min(h,w) / 20, width:w, height:h,
       coords:coords, mymousedown:-1, container_pos:container_pos,
       centre:centre, fog:fog};
  var sizes = tl_centreMol(container.p);
  container.p.range = sizes.range;
  container.p.radius = sizes.radius;
  container.p.spheres = Array(atoms.length);
  container.p.shadows = Array(atoms.length);
  container.p.lines = Array(atoms.length);
  tl_createBonds(container.p);
  tl_createAtoms(container.p);
  tl_createShadows(container.p);
  tl_draw(container.p);
  dojo.connect(container, "onmousemove", tl_onMouseMove);
  dojo.connect(container, "oncontextmenu", tl_onContextMenu);
  dojo.connect(container, "onmouseup", tl_onMouseUp);
  dojo.connect(container, "onmousedown", tl_onMouseDown);
  dojo.connect(container, (!dojo.isMozilla ? "onmousewheel" : "DOMMouseScroll"), tl_onMouseScroll);
}












