<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>init-example.html</filename>
    </added>
    <added>
      <filename>init-example.pjs</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -46,7 +46,23 @@
     }else{
       return false;
     }
-  }
+  };
+  
+  // Automatic Initialization Method
+  var init = function(){
+    
+    var canvas  = document.getElementsByTagName( 'canvas' ),
+        datasrc = undefined;
+
+    for( var i = 0; l = i &lt; canvas.length; i++ ){
+      if( datasrc = canvas[ i ].getAttribute( 'datasrc' ) ){
+        Processing( canvas[ i ], ajax( datasrc ) );
+      }
+    }
+    
+  };
+ 
+  addEventListener( 'DOMContentLoaded', function(){ init(); }, false );
  
   // Parse Processing (Java-like) syntax to JavaScript syntax with Regex
   var parse = Processing.parse = function parse( aCode, p ){</diff>
      <filename>processing.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,6 @@
 (function(){this.Processing=function Processing(aElement,aCode){if(typeof aElement==&quot;string&quot;){aElement=document.getElementById(aElement);}
 var p=buildProcessing(aElement);if(aCode){p.init(aCode);}
-return p;};var ajax=function(url){var AJAX;if(AJAX=new XMLHttpRequest()){AJAX.open(&quot;GET&quot;,url,false);AJAX.send(null);return AJAX.responseText;}else{return false;}}
-var parse=Processing.parse=function parse(aCode,p){aCode=aCode.replace(/\/\/ .*\n/g,&quot;\n&quot;);aCode=aCode.replace(/([^\s])%([^\s])/g,&quot;$1 % $2&quot;);aCode=aCode.replace(/(?:static )?(\w+ )(\w+)\s*(\([^\)]*\)\s*{)/g,function(all,type,name,args){if(name==&quot;if&quot;||name==&quot;for&quot;||name==&quot;while&quot;){return all;}else{return&quot;Processing.&quot;+name+&quot; = function &quot;+name+args;}});aCode=aCode.replace(/import \(|import\(/g,&quot;p.Import(&quot;);aCode=aCode.replace(/\.length\(\)/g,&quot;.length&quot;);aCode=aCode.replace(/([\(,]\s*)(\w+)((?:\[\])+| )\s*(\w+\s*[\),])/g,&quot;$1$4&quot;);aCode=aCode.replace(/([\(,]\s*)(\w+)((?:\[\])+| )\s*(\w+\s*[\),])/g,&quot;$1$4&quot;);aCode=aCode.replace(/new (\w+)((?:\[([^\]]*)\])+)/g,function(all,name,args){return&quot;new ArrayList(&quot;+args.slice(1,-1).split(&quot;][&quot;).join(&quot;, &quot;)+&quot;)&quot;;});aCode=aCode.replace(/(?:static )?\w+\[\]\s*(\w+)\[?\]?\s*=\s*{.*?};/g,function(all){return all.replace(/{/g,&quot;[&quot;).replace(/}/g,&quot;]&quot;);});var intFloat=/(\n\s*(?:int|float)(?:\[\])?(?:\s*|[^\(]*?,\s*))([a-z]\w*)(;|,)/i;while(intFloat.test(aCode)){aCode=aCode.replace(new RegExp(intFloat),function(all,type,name,sep){return type+&quot; &quot;+name+&quot; = 0&quot;+sep;});}
+return p;};var ajax=function(url){var AJAX;if(AJAX=new XMLHttpRequest()){AJAX.open(&quot;GET&quot;,url,false);AJAX.send(null);return AJAX.responseText;}else{return false;}};var init=function(){var canvas=document.getElementsByTagName('canvas'),datasrc=undefined;for(var i=0;l=i&lt;canvas.length;i++){if(datasrc=canvas[i].getAttribute('datasrc')){Processing(canvas[i],ajax(datasrc));}}};addEventListener('DOMContentLoaded',function(){init();},false);var parse=Processing.parse=function parse(aCode,p){aCode=aCode.replace(/\/\/ .*\n/g,&quot;\n&quot;);aCode=aCode.replace(/([^\s])%([^\s])/g,&quot;$1 % $2&quot;);aCode=aCode.replace(/(?:static )?(\w+ )(\w+)\s*(\([^\)]*\)\s*{)/g,function(all,type,name,args){if(name==&quot;if&quot;||name==&quot;for&quot;||name==&quot;while&quot;){return all;}else{return&quot;Processing.&quot;+name+&quot; = function &quot;+name+args;}});aCode=aCode.replace(/import \(|import\(/g,&quot;p.Import(&quot;);aCode=aCode.replace(/\.length\(\)/g,&quot;.length&quot;);aCode=aCode.replace(/([\(,]\s*)(\w+)((?:\[\])+| )\s*(\w+\s*[\),])/g,&quot;$1$4&quot;);aCode=aCode.replace(/([\(,]\s*)(\w+)((?:\[\])+| )\s*(\w+\s*[\),])/g,&quot;$1$4&quot;);aCode=aCode.replace(/new (\w+)((?:\[([^\]]*)\])+)/g,function(all,name,args){return&quot;new ArrayList(&quot;+args.slice(1,-1).split(&quot;][&quot;).join(&quot;, &quot;)+&quot;)&quot;;});aCode=aCode.replace(/(?:static )?\w+\[\]\s*(\w+)\[?\]?\s*=\s*{.*?};/g,function(all){return all.replace(/{/g,&quot;[&quot;).replace(/}/g,&quot;]&quot;);});var intFloat=/(\n\s*(?:int|float)(?:\[\])?(?:\s*|[^\(]*?,\s*))([a-z]\w*)(;|,)/i;while(intFloat.test(aCode)){aCode=aCode.replace(new RegExp(intFloat),function(all,type,name,sep){return type+&quot; &quot;+name+&quot; = 0&quot;+sep;});}
 aCode=aCode.replace(/(?:static )?(\w+)((?:\[\])+| ) *(\w+)\[?\]?(\s*[=,;])/g,function(all,type,arr,name,sep){if(type==&quot;return&quot;)
 return all;else
 return&quot;var &quot;+name+sep;});aCode=aCode.replace(/=\s*{((.|\s)*?)};/g,function(all,data){return&quot;= [&quot;+data.replace(/{/g,&quot;[&quot;).replace(/}/g,&quot;]&quot;)+&quot;]&quot;;});aCode=aCode.replace(/super\(/g,&quot;superMethod(&quot;);var classes=[&quot;int&quot;,&quot;float&quot;,&quot;boolean&quot;,&quot;string&quot;];function ClassReplace(all,name,extend,vars,last){classes.push(name);var static=&quot;&quot;;vars=vars.replace(/final\s+var\s+(\w+\s*=\s*.*?;)/g,function(all,set){static+=&quot; &quot;+name+&quot;.&quot;+set;return&quot;&quot;;});return&quot;function &quot;+name+&quot;() {with(this){\n  &quot;+</diff>
      <filename>processing.min.js</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>0c7dde4d6ab8c3935830cf451658c0fa79c0530b</id>
    </parent>
  </parents>
  <author>
    <name>f1lt3r</name>
    <email>f1lt3r@f1lt3r-desktop.(none)</email>
  </author>
  <url>http://github.com/jeresig/processing-js/commit/911c64e205329cd0d467abae319bc215c004328c</url>
  <id>911c64e205329cd0d467abae319bc215c004328c</id>
  <committed-date>2009-11-11T16:54:56-08:00</committed-date>
  <authored-date>2009-11-11T16:54:56-08:00</authored-date>
  <message>Updated INIT method.</message>
  <tree>1f75cc98fb9eb4ae219133e77e36a343382be199</tree>
  <committer>
    <name>f1lt3r</name>
    <email>f1lt3r@f1lt3r-desktop.(none)</email>
  </committer>
</commit>
