<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Stickblog &#187; Javascript</title>
	<atom:link href="http://the-stickman.com/category/web-development/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://the-stickman.com</link>
	<description>Random developer notes</description>
	<lastBuildDate>Wed, 10 Mar 2010 15:11:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>jQuery: Dropping items from a draggable list to a sortable list</title>
		<link>http://the-stickman.com/web-development/javascript/jquery-dropping-items-from-a-draggable-list-to-a-sortable-list/</link>
		<comments>http://the-stickman.com/web-development/javascript/jquery-dropping-items-from-a-draggable-list-to-a-sortable-list/#comments</comments>
		<pubDate>Sat, 04 Oct 2008 16:09:25 +0000</pubDate>
		<dc:creator>Stickman</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://the-stickman.com/uncategorized/jquery-dropping-items-from-a-draggable-list-to-a-sortable-list/</guid>
		<description><![CDATA[For reasons that I might outline in another post sometime, I recently decided to replace MooTools as the JavaScript library behind our company CMS (which I&#8217;m in the process of rewriting from scratch) with jQuery.
It&#8217;s been a few weeks now since I made the decision and I&#8217;m starting to become more comfortable with jQuery&#8217;s quite [...]]]></description>
			<content:encoded><![CDATA[<p>For reasons that I might outline in another post sometime, I recently decided to replace <a href="http://mootools.net">MooTools</a> as the JavaScript library behind our company CMS (which I&#8217;m in the process of rewriting from scratch) with <a href="http://jquery.com">jQuery</a>.</p>
<p>It&#8217;s been a few weeks now since I made the decision and I&#8217;m starting to become more comfortable with jQuery&#8217;s quite different approach. I&#8217;ve also begun working on some of the more complicated aspects of the new CMS, including adopting <a href="http://ui.jquery.com/">jQuery UI</a> to provide the interface widgets. One requirement of the system is to have a dialog where search results can be dragged and dropped onto a sortable list.</p>
<p>At first I looked at using two sortable lists and the built-in <a href="http://docs.jquery.com/UI/Sortables/sortable#toptions">&#8216;connectWith&#8217; option</a>, which enables you to link two or more sortable lists together. But then I realised that I didn&#8217;t really want the search results to be a sortable list. In fact, what I wanted was a static list whose items could be dragged and placed in the sortable list.</p>
<p>I tried a few experiments, and when those failed I decided to try looking at the code itself to see if I could hack together a solution without too much extra effort. While browsing the ui.draggables code, I stumbled across the intriguingly-named &#8216;connectToSortable&#8217; option. I was surprised to find it because there&#8217;s (currently) no mention of it in the documentation, and indeed it&#8217;s very hard to find any reference to it at all beyond the code itself (the only useful link I could find was <a href="http://groups.google.com.ph/group/jquery-ui/browse_thread/thread/ae1b7b79356bee12">this one</a>, but it rather over-complicates the issue).</p>
<p>It&#8217;s very simple to use: as with connectWith, just specify which sortable(s) you want to connect to with the connectToSortable property:</p>
<p><code>$('#myDraggable › li').draggable({helper:'clone',connectToSortable:'#mySortable'});</code></p>
<p><a href="http://the-stickman.com/files/jquery/draggable-sortable.html">Full example code here</a>.</p>
<p>The code for the example works just fine, but I found when using it in my own project, for some reason it was necessary to add a $(&#8216;mySortable&#8217;).sortable(&#8216;refresh&#8217;) call after defining the two lists, or the first drop operation would always fail.</p>
<p>By the way, when fiddling around with JavaScript experiments I find <a href="http://jsbin.com">JSBin</a> very useful &#8212; you can load up any of several JS libraries (jQuery, MooTools, dojo, prototype, YUI, script.aculo.us) and create both JavaScript and HTML to test in a &#8216;live&#8217; environment. Very handy.</p>
]]></content:encoded>
			<wfw:commentRss>http://the-stickman.com/web-development/javascript/jquery-dropping-items-from-a-draggable-list-to-a-sortable-list/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Dynamic form elements and Internet Explorer 6</title>
		<link>http://the-stickman.com/web-development/javascript/dynamic-form-elements-and-internet-explorer-6/</link>
		<comments>http://the-stickman.com/web-development/javascript/dynamic-form-elements-and-internet-explorer-6/#comments</comments>
		<pubDate>Fri, 12 Sep 2008 09:58:37 +0000</pubDate>
		<dc:creator>Stickman</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://the-stickman.com/web-development/javascript/dynamic-form-elements-and-internet-explorer-6/</guid>
		<description><![CDATA[A few brief entries from the &#8216;tiny yet annoying bugs that take far too much time to fix&#8217; file&#8230;
I&#8217;m creating forms dynamically using JavaScript. This has led to a number of problems with IE6:
Dynamic checkboxes/radio buttons and the &#8216;checked&#8217; attribute
When creating a field, I wanted to be able to apply a &#8216;default&#8217; value &#8212; for [...]]]></description>
			<content:encoded><![CDATA[<p>A few brief entries from the &#8216;tiny yet annoying bugs that take far too much time to fix&#8217; file&#8230;</p>
<p>I&#8217;m creating forms dynamically using JavaScript. This has led to a number of problems with IE6:</p>
<p><strong>Dynamic checkboxes/radio buttons and the &#8216;checked&#8217; attribute</strong></p>
<p>When creating a field, I wanted to be able to apply a &#8216;default&#8217; value &#8212; for example, a checkbox element might be ticked by default. This was all going smoothly until (guess what?) I tested it on IE6: the checked attribute was set, and returned &#8216;true&#8217; when tested, but the box did not appear to be checked when it appeared in the form.</p>
<p>The answer, as I discovered thanks to <a href="http://bytes.com/forum/thread594613.html">this forum post</a>, was to use the &#8216;defaultChecked&#8217; attribute instead (I set both, just in case). It seems to work across browsers, which is nice. Oh, and this applies to radio buttons as well as checkboxes.</p>
<p><strong>Creating radio buttons</strong></p>
<p>While we&#8217;re on the subject of radio buttons, I also found that IE6 doesn&#8217;t like radio buttons created using document.createElement() (i.e. as a DOM object). It&#8217;ll render them OK, but they&#8217;re unclickable. The answer is to create them by injecting HTML into an element with [element].innerHTML:</p>
<p>var obj = document.createElement( &#8217;span&#8217; );<br />
obj.innerHTML = &#8216;&lt;input type=&#8221;radio&#8221; name=&#8221;somefield&#8221; value=1&gt;1&#8242;;</p>
<p>&#8230;and so forth. Ugly.</p>
<p><strong>Assigning values to multiple select elements</strong></p>
<p>This was a really fiddly one, and seems to happen under only very particular circumstances. Anyway&#8230;</p>
<p>If you create a select element and set the &#8216;multiple&#8217; attribute, IE6 can sometimes have trouble assigning values to it if you do it immediately after it&#8217;s created. Note the word &#8217;sometimes&#8217;: I haven&#8217;t been able to create a simple enough test case to isolate the exact circumstances that are required. And it&#8217;s only a problem if you&#8217;re setting more than one value.</p>
<p>Anyway, the (horrible) fix is to delay setting the values using setTimeout(). The delay doesn&#8217;t matter (1 millisecond will do), but it does work.</p>
<p>I hope these notes help some other unfortunate soul out there avoid wasting the number of hours and brain cells that I just have!</p>
]]></content:encoded>
			<wfw:commentRss>http://the-stickman.com/web-development/javascript/dynamic-form-elements-and-internet-explorer-6/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>MooTools: converting from 1.1x to 1.2</title>
		<link>http://the-stickman.com/web-development/javascript/mootools-converting-from-11x-to-12/</link>
		<comments>http://the-stickman.com/web-development/javascript/mootools-converting-from-11x-to-12/#comments</comments>
		<pubDate>Mon, 28 Jul 2008 13:28:16 +0000</pubDate>
		<dc:creator>Stickman</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://the-stickman.com/web-development/javascript/mootools-converting-from-11x-to-12/</guid>
		<description><![CDATA[More of a reminder for myself than anything: here&#8217;s a simple changelog that could be of use when updating scripts to MooTools 1.2.
]]></description>
			<content:encoded><![CDATA[<p>More of a reminder for myself than anything: here&#8217;s <a href="http://github.com/mootools/mootools-core/wikis/conversion-from-1-11-to-1-2">a simple changelog</a> that could be of use when updating scripts to MooTools 1.2.</p>
]]></content:encoded>
			<wfw:commentRss>http://the-stickman.com/web-development/javascript/mootools-converting-from-11x-to-12/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multiple file uploader: Mootools 1.2 version</title>
		<link>http://the-stickman.com/web-development/javascript/multiple-file-uploader-mootools-12-version/</link>
		<comments>http://the-stickman.com/web-development/javascript/multiple-file-uploader-mootools-12-version/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 14:00:15 +0000</pubDate>
		<dc:creator>Stickman</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://the-stickman.com/uncategorized/multiple-file-uploader-mootools-12-version/</guid>
		<description><![CDATA[Just a quick heads-up for those who&#8217;ve been complaining about the MooTools version of the multiple-file uploader not working with MooTools 1.2 &#8212; it&#8217;s now been updated. The widget required three small modifications due to changes to MooTools&#8217; syntax.
Get the modified code here (old 1.1x-compatible version also included).
]]></description>
			<content:encoded><![CDATA[<p>Just a quick heads-up for those who&#8217;ve been complaining about <a href="http://the-stickman.com/web-development/multiple-file-uploader-mootools-version/">the MooTools version</a> of <a href="http://the-stickman.com/web-development/javascript/upload-multiple-files-with-a-single-file-element/">the multiple-file uploader</a> not working with MooTools 1.2 &#8212; it&#8217;s now been updated. The widget required three small modifications due to changes to MooTools&#8217; syntax.</p>
<p>Get the modified code <a href="http://the-stickman.com/files/mootools/multiupload/Stickman.MultiUpload.zip">here</a> (old 1.1x-compatible version also included).</p>
]]></content:encoded>
			<wfw:commentRss>http://the-stickman.com/web-development/javascript/multiple-file-uploader-mootools-12-version/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Binding a function to any class method in MooTools</title>
		<link>http://the-stickman.com/web-development/javascript/binding-a-function-to-any-class-method-in-mootools/</link>
		<comments>http://the-stickman.com/web-development/javascript/binding-a-function-to-any-class-method-in-mootools/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 14:27:40 +0000</pubDate>
		<dc:creator>Stickman</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://the-stickman.com/web-development/javascript/binding-a-function-to-any-class-method-in-mootools/</guid>
		<description><![CDATA[Some time back, while experimenting with MooTools, I found myself with the requirement to be able to call a function whenever a particular method on a given class was called. In effect, I needed to treat the class&#8217;s method as an event and fire a particular function when the method was called.
So I wrote a [...]]]></description>
			<content:encoded><![CDATA[<p>Some time back, while experimenting with MooTools, I found myself with the requirement to be able to call a function whenever a particular method on a given class was called. In effect, I needed to treat the class&#8217;s method as an event and fire a particular function when the method was called.</p>
<p>So I wrote a very small addition to the Mootools&#8217; own Class code, which allowed this. The new method, Class.bindFunctionToMethod(), allows you either to intercept the method call before or after it&#8217;s fired. If fired before you can change the arguments being passed in, while if fired after then you can alter the return value.</p>
<p>Of course you need to be careful how you use it: by &#8216;piggy-backing&#8217; on method calls like this (especially if you alter the arguments or return value) you&#8217;re potentially altering the script&#8217;s behaviour in a way that&#8217;s not necessarily evident by looking at the classes themselves. </p>
<p>You can download the code <a href="http://www.the-stickman.com/files/mootools/bindfunctiontomethod/Stickman.Class.BindFunctionToMethod.zip">here</a>: it&#8217;s heavily commented, so it should be fairly obvious how to use it. It works just fine with MooTools version 1.1+ and 1.2.</p>
]]></content:encoded>
			<wfw:commentRss>http://the-stickman.com/web-development/javascript/binding-a-function-to-any-class-method-in-mootools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MochaUI, ExplorerCanvas and dynamically-loaded JavaScript</title>
		<link>http://the-stickman.com/web-development/javascript/mochaui-explorercanvas-and-dynamically-loaded-javascript/</link>
		<comments>http://the-stickman.com/web-development/javascript/mochaui-explorercanvas-and-dynamically-loaded-javascript/#comments</comments>
		<pubDate>Fri, 04 Jul 2008 15:56:06 +0000</pubDate>
		<dc:creator>Stickman</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://the-stickman.com/web-development/javascript/mochaui-explorercanvas-and-dynamically-loaded-javascript/</guid>
		<description><![CDATA[Another one of those really obscure ones&#8230;
So as previously mentioned, I&#8217;m looking at using MochaUI in a CMS project I&#8217;m working on. Everything was going swimmingly, except that for some reason it was having rendering problems with (you guessed it) Internet Explorer. At first I thought that it must be a CSS problem, but lengthy [...]]]></description>
			<content:encoded><![CDATA[<p>Another one of those really obscure ones&#8230;</p>
<p>So <a href="http://the-stickman.com/web-development/javascript/popupsdialog-boxes-in-mootools/">as previously mentioned</a>, I&#8217;m looking at using <a href="http://code.google.com/p/mocha-ui/">MochaUI</a> in a CMS project I&#8217;m working on. Everything was going swimmingly, except that for some reason it was having rendering problems with (you guessed it) Internet Explorer. At first I thought that it must be a CSS problem, but lengthy experimentation suggested that this was not the case.</p>
<p>With the help of a colleague I eventually narrowed the problem down to MochaUI&#8217;s use of Google&#8217;s <a href="http://excanvas.sourceforge.net/ExplorerCanvas">ExplorerCanvas library</a> (excanvas), which provides a wrapper for IE that simulates canvas support. One wrinkle in our use of MochaUI is that the scripts are being <a href="http://the-stickman.com/web-development/javascript/mootools-12-assetcss-onload-problem-and-fix/">loaded dynamically</a> when needed (using <a href="http://mootools.net/">MooTools</a>&#8216; Asset methods). It turns out that excanvas expects to be loaded at page load time, so attaches its initalisation function to the page&#8217;s onreadystatechange event &#8212; waiting for the page to be &#8216;complete&#8217; before initialising. Of course, this didn&#8217;t apply in our case since the page had already finished loading when the script was included. So it was never initialised.</p>
<p>All that was required to fix the problem was a slight change to the library&#8217;s init method (bear in mind, I downloaded the latest version (0002 &#8212; dated May 4 2007):</p>
<p><code>init: function (opt_doc) {<br />
var doc = opt_doc || document;<br />
if (/MSIE/.test(navigator.userAgent) &amp;amp;&amp;amp; !window.opera) {<br />
var self = this;<br />
if(doc.readyState == "complete"){<br />
self.init_(doc);<br />
} else{<br />
doc.attachEvent("onreadystatechange", function () {<br />
self.init_(doc);<br />
});<br />
}<br />
}<br />
},</code></p>
]]></content:encoded>
			<wfw:commentRss>http://the-stickman.com/web-development/javascript/mochaui-explorercanvas-and-dynamically-loaded-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MooTools 1.2 Asset.css onload problem, and fix</title>
		<link>http://the-stickman.com/web-development/javascript/mootools-12-assetcss-onload-problem-and-fix/</link>
		<comments>http://the-stickman.com/web-development/javascript/mootools-12-assetcss-onload-problem-and-fix/#comments</comments>
		<pubDate>Thu, 03 Jul 2008 10:10:26 +0000</pubDate>
		<dc:creator>Stickman</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://the-stickman.com/web-development/javascript/mootools-12-assetcss-onload-problem-and-fix/</guid>
		<description><![CDATA[As part of the experiments I mentioned yesterday, I&#8217;ve been looking at the feasibility of loading CSS on-the-fly. MooTools has a method to achieve this (Asset.css) but I found to my disappointment that its onload event only works in Internet Explorer, so in other browsers you have no way of knowing when the CSS has [...]]]></description>
			<content:encoded><![CDATA[<p>As part of <a href="http://the-stickman.com/web-development/javascript/popupsdialog-boxes-in-mootools/">the experiments I mentioned yesterday</a>, I&#8217;ve been looking at the feasibility of loading CSS on-the-fly. MooTools has a method to achieve this (<a href="http://docs.mootools.net/Plugins/Assets#Assets:css">Asset.css</a>) but I found to my disappointment that its onload event only works in Internet Explorer, so in other browsers you have no way of knowing when the CSS has finished loading (or if it&#8217;s failed).</p>
<p>I posted <a href="http://mootools.lighthouseapp.com/projects/2706/tickets/186-asset-css-onload-event-does-not-fire-in-ff3-safari-opera">a bug report</a> yesterday and as far as I can tell it&#8217;s slated to be looked at for the next release (1.3), but while pondering the problem overnight I came up with an idea and with some help from <a href="http://yuiblog.com/blog/2007/06/07/style/">this blog post</a> I was able to create an interim fix. Because it uses XMLHTTPRequest it can&#8217;t load CSS from a third-party domain, but it works for what I need and it&#8217;s better than nothing until the official fix is forthcoming.</p>
<p>I&#8217;ve put the code into <a href="http://the-stickman.com/files/mootools/temp_asset_css_fix/mootools-assets-tempcssfix.js">this file</a> (right-click, save as&#8230;) which you simply load after MooTools itself (it replaces the existing Asset.css definition with a new one).</p>
]]></content:encoded>
			<wfw:commentRss>http://the-stickman.com/web-development/javascript/mootools-12-assetcss-onload-problem-and-fix/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Popups/dialog boxes in MooTools</title>
		<link>http://the-stickman.com/web-development/javascript/popupsdialog-boxes-in-mootools/</link>
		<comments>http://the-stickman.com/web-development/javascript/popupsdialog-boxes-in-mootools/#comments</comments>
		<pubDate>Wed, 02 Jul 2008 14:16:36 +0000</pubDate>
		<dc:creator>Stickman</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://the-stickman.com/web-development/javascript/popupsdialog-boxes-in-mootools/</guid>
		<description><![CDATA[I&#8217;m just starting preliminary work on a complete (and long overdue) rewrite of our project&#8217;s CMS. Right now I&#8217;m really just tinkering around, exploring some ideas. As part of this process I wanted to experiment with some dialog boxes, and not wanting to reinvent the wheel I decided to look for a ready-to-use project based [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m just starting preliminary work on a complete (and long overdue) rewrite of our project&#8217;s CMS. Right now I&#8217;m really just tinkering around, exploring some ideas. As part of this process I wanted to experiment with some dialog boxes, and not wanting to reinvent the wheel I decided to look for a ready-to-use project based on <a href="http://mootools.net/">MooTools</a>, our JavaScript library of choice.</p>
<p>My first stop would have been the official MooTools forum, but in their wisdom the project&#8217;s leaders have decided to remove them completely. The oft-mooted &#8216;MooForge&#8217; has never materialised but after exploring a variety of blind alleys I came across <a href="http://www.mooscripts.com/">MooScripts</a>, an unofficial but quite comprehensive collection of MooTools add-on scripts.</p>
<p>From there I was led to the <a href="http://code.google.com/p/mocha-ui/">Mocha UI</a> project, which is a fairly lightweight implementation of dialog boxes for MooTools 1.2. It&#8217;s feature list is impressive and it&#8217;s quick too (compared to others I tried). Like Mootools it also uses the very permissive MIT licence, which basically says &#8216;use it how you like, at your own risk&#8217;.</p>
]]></content:encoded>
			<wfw:commentRss>http://the-stickman.com/web-development/javascript/popupsdialog-boxes-in-mootools/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Extended regular expression support for JavaScript</title>
		<link>http://the-stickman.com/web-development/javascript/extended-regular-expression-support-for-javascript/</link>
		<comments>http://the-stickman.com/web-development/javascript/extended-regular-expression-support-for-javascript/#comments</comments>
		<pubDate>Mon, 09 Jul 2007 15:24:52 +0000</pubDate>
		<dc:creator>Stickman</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://the-stickman.com/web-development/javascript/extended-regular-expression-support-for-javascript/</guid>
		<description><![CDATA[XRegExp is an interesting attempt to add some extra features to regular expressions in JavaScript. I particularly like the &#8216;named capture&#8217; feature (which I only recently encountered in .Net), which returns matches in named groups.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.stevenlevithan.com/archives/xregexp-named-capture">XRegExp</a> is an interesting attempt to add some extra features to regular expressions in JavaScript. I particularly like the &#8216;named capture&#8217; feature (which I only recently encountered in .Net), which returns matches in named groups.</p>
]]></content:encoded>
			<wfw:commentRss>http://the-stickman.com/web-development/javascript/extended-regular-expression-support-for-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multiple file uploader: Mootools version</title>
		<link>http://the-stickman.com/web-development/multiple-file-uploader-mootools-version/</link>
		<comments>http://the-stickman.com/web-development/multiple-file-uploader-mootools-version/#comments</comments>
		<pubDate>Mon, 02 Jul 2007 13:40:23 +0000</pubDate>
		<dc:creator>Stickman</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://the-stickman.com/web-development/javascript/multiple-file-uploader-mootools-version/</guid>
		<description><![CDATA[UPDATE 21/07/08: now compatible with MooTools 1.2!
It&#8217;s about 18 months since I released my simple script for creating a prettier way to include multiple file elements on a page. In that time it has remained by far the most popular page on this site, in spite of the fact that I haven&#8217;t updated it since [...]]]></description>
			<content:encoded><![CDATA[<p><strong>UPDATE 21/07/08:</strong> now compatible with MooTools 1.2!</p>
<p>It&#8217;s about 18 months since I released my simple script for creating <a href="http://the-stickman.com/web-development/javascript/upload-multiple-files-with-a-single-file-element/">a prettier way to include multiple file elements</a> on a page. In that time it has remained by far the most popular page on this site, in spite of the fact that I haven&#8217;t updated it since and have long since given up trying to keep up with the comments it still generates.</p>
<p>Anyway as a way of getting to know <a href="http://mootools.net">Mootools</a>, I decided to rewrite it to take advantage of the framework. I took the opportunity to clean up the code a bit and make it easier to style the output.</p>
<p>You can find a zip file for MooTools version 1.2 <a href="http://the-stickman.com/files/mootools/multiupload/Stickman.MultiUpload.zip">here</a> (included is another zip file with the old, MooTools v1.1 compatible code) with the full annotated source code, also a compressed version (it weighs in at just 2.5K), some simple CSS, an example HTML file and a readme (which is basically identical to the extended comments at the top of the source code).</p>
<p>There&#8217;s a simple example page <a href="http://the-stickman.com/files/mootools/multiupload/">here</a>. As ever, comments and bug reports welcome.</p>
]]></content:encoded>
			<wfw:commentRss>http://the-stickman.com/web-development/multiple-file-uploader-mootools-version/feed/</wfw:commentRss>
		<slash:comments>69</slash:comments>
		</item>
	</channel>
</rss>
