| 
					
				 | 
			
			
				@@ -1,103 +1,191 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /* Adapted from Clamato by Avi Bryant. http://www.clamato.net */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    var scripts = document.getElementsByTagName("script"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    var src = scripts[ scripts.length - 1 ].src; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    var home = src.split("/").slice(0, -2).join("/") + "/"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    var nocache = '?' + (new Date()).getTime(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    var deploy = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    function loadJS(name, prefix) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	var prefix = prefix || 'js'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	var name = name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if(!deploy) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    name = name + nocache; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	document.write('<script src="' + home + prefix + '/' + name + '" type="text/javascript"></script>'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    function loadCSS(name, prefix) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	var prefix = prefix || 'css'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	var name = name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if(!deploy) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    name = name + nocache; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	var link = document.createElement("link") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  	link.setAttribute("rel", "stylesheet") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  	link.setAttribute("type", "text/css") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  	link.setAttribute("href", home + prefix + '/' + name) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	document.getElementsByTagName("head")[0].appendChild(link); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  var 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    scripts = document.getElementsByTagName("script"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    src = scripts[ scripts.length - 1 ].src, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    home = src.split("/").slice(0, -2).join("/") + "/"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    function loadDependencies() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	loadJS('lib/jQuery/jquery-1.6.4.min.js'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	loadJS('lib/jQuery/jquery-ui-1.8.9.custom.min.js'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  window.Amber = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    debug: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    deploy: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    nocache: '?' + (new Date()).getTime(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    home: home, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    function loadIDEDependencies() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	loadJS('lib/jQuery/jquery.textarea.js'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	loadJS('lib/CodeMirror/lib/codemirror.js'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	loadCSS('lib/CodeMirror/lib/codemirror.css', 'js'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	loadJS('lib/CodeMirror/mode/smalltalk/smalltalk.js'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	loadCSS('lib/CodeMirror/theme/amber.css', 'js'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     example: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     Amber.load({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       files: ['MyCategory1.js', 'MyCategory2.js'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       ready: function() {smalltalk.Browser._open()} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    load: function(spec) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      var self = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      self.localStorageSource = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      self.spec = ((typeof spec == 'undefined') ? {} : spec); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // In deployment mode, only the compressed version of Kernel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // and Canvas are loaded 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      self.deploy = self.spec.deploy || self.deploy; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      self.debug = self.spec.debug || self.debug; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // Specify a version string to avoid wrong browser caching 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (self.spec.version) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.nocache = '?' + self.spec.version; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      self.loadDependencies(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      self.loadJS('boot.js'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      self.populateLocalPackages(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (self.deploy) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.loadPackages([ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          'Kernel.deploy', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          'Canvas.deploy' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.loadIDEDependencies(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.loadCSS('amber.css'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.loadPackages([ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          'Kernel', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          'Canvas', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          'Compiler', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          'parser', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          'IDE', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          'SUnit', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          'Examples', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          'Benchfib', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          'Kernel-Tests', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      var additionalFiles = self.spec.packages || self.spec.files; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (additionalFiles) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.loadPackages(additionalFiles, self.spec.prefix); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // Always load all local packages 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      for (name in self.localPackages) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.log('Local package:  ' + name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.localStorageSource.push(self.localPackages[name]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // Be sure to setup & initialize smalltalk classes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      self.loadJS('init.js'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    loadPackages: function(names, prefix){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      var self = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      var name, url; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      var prefix = prefix || 'js'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      for (var i=0; i < names.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        name = names[i].split(/\.js$/)[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // Only load package from the server if it isn't stored in 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // localStorage 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!(name in self.localPackages)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          self.log('Server package: ' + name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          self.loadJS(name + '.js', prefix); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    loadJS: function(name, prefix) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      var self = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      var prefix = prefix || 'js'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      var name = name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (!self.deploy) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        name = name + self.nocache; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      var url = self.home + prefix + '/' + name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      var scriptString = '<script src="' + url + '" type="text/javascript"></script>'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      document.write(scriptString); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    loadCSS: function (name, prefix) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      var self = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      var prefix = prefix || 'css'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      var name = name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (!self.deploy) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        name = name + self.nocache; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      var url = self.home + prefix + '/' + name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      var link = document.createElement("link"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      link.setAttribute("rel", "stylesheet"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      link.setAttribute("type", "text/css"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      link.setAttribute("href", url); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      document.getElementsByTagName("head")[0].appendChild(link); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    loadDependencies: function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      var self = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      self.loadJS('lib/jQuery/jquery-1.6.4.min.js'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      self.loadJS('lib/jQuery/jquery-ui-1.8.9.custom.min.js'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    loadIDEDependencies: function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      var self = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      self.loadJS('lib/jQuery/jquery.textarea.js'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      self.loadJS('lib/CodeMirror/lib/codemirror.js'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      self.loadCSS('lib/CodeMirror/lib/codemirror.css', 'js'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      self.loadJS('lib/CodeMirror/mode/smalltalk/smalltalk.js'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      self.loadCSS('lib/CodeMirror/theme/amber.css', 'js'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // This will be called after JS files have been loaded 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    initializeSmalltalk: function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      var self = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      for (var i=0; i < self.localStorageSource.length; i++) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        eval(self.localStorageSource[i]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      smalltalk.init(smalltalk.Object); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      smalltalk.classes()._do_(function(each) {each._initialize()}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (self.spec.ready) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.spec.ready(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (self.deploy) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        smalltalk.setDeploymentMode(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    populateLocalPackages: function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      var self = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      var localStorageRE = /^smalltalk\.packages\.(.*)$/; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      self.localPackages = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      var match, key; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      for(var i=0; i < localStorage.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        key = localStorage.key(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (match = key.match(localStorageRE)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          self.localPackages[match[1]] = localStorage[key]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return self.localPackages; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    clearLocalPackages: function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      var self = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      for (var name in self.localPackages) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.log('Removing ' + name + ' from local storage'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        localStorage.removeItem('smalltalk.packages.' + name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    window.loadAmber = function(spec) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	/*  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 example:  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 loadAmber({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	   files: ['MyCategory1.js', 'MyCategory2.js'],  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	   ready: function() {smalltalk.Browser._open()} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	var spec = spec || {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	// In deployment mode, only the compressed version of Kernel  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	// and Canvas are loaded 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	deploy = spec.deploy || false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	// Specify a version string to avoid wrong browser caching 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if(spec.version) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    nocache = '?' + spec.version; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	loadDependencies(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if(deploy) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    loadJS("boot.js"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    loadJS("Kernel.deploy.js"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    loadJS("Canvas.deploy.js"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    loadIDEDependencies(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    loadCSS('amber.css'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    loadJS("boot.js"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    loadJS("Kernel.js"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    loadJS("Canvas.js"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    loadJS("Compiler.js"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    loadJS("parser.js"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    loadJS("IDE.js"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    loadJS("SUnit.js"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    loadJS("Examples.js"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    loadJS("Benchfib.js"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    loadJS("Kernel-Tests.js"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	// Load other files, possibly with another directory prefix than 'js' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if(spec.files) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    for(var i=0; i < spec.files.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		loadJS(spec.files[i], spec.prefix); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	smalltalkReady = function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    if(spec.ready) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		spec.ready(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    if(deploy) {smalltalk.setDeploymentMode()} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	// Be sure to setup & initialize smalltalk classes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	loadJS("init.js"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    log: function(string) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      var self = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (self.debug) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.log(string); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-})(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  window.loadAmber = function(spec) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Amber.load(spec); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+})(); 
			 |