<?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>Labs &#187; Javascript</title>
	<atom:link href="http://labs.iamkoa.net/category/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://labs.iamkoa.net</link>
	<description>I break it. I fix it. You learn.</description>
	<lastBuildDate>Wed, 22 Sep 2010 19:43:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>First Thing&#8217;s First: Validate</title>
		<link>http://labs.iamkoa.net/2010/07/02/first-things-first-validate/</link>
		<comments>http://labs.iamkoa.net/2010/07/02/first-things-first-validate/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 22:44:43 +0000</pubDate>
		<dc:creator>Koa</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://labs.iamkoa.net/?p=338</guid>
		<description><![CDATA[Have a sweet function written that requires valid variables? Make sure you&#8217;re validating those variables at the top of your function. Validating variables before (as apposed to while) they are used is key in making sure that important logic isn&#8217;t executed using crappy data. Here&#8217;s an example of validating first, then executing: /* The good... [...]]]></description>
			<content:encoded><![CDATA[<p>Have a sweet function written that requires valid variables? Make sure you&#8217;re validating those variables at the top of your function. Validating variables <em>before</em> (as apposed to <em>while</em>) they are used is key in making sure that important logic isn&#8217;t executed using crappy data.</p>
<p>Here&#8217;s an example of validating first, then executing:</p>
<pre class="brush:php">
	/* The good... */
	public function insertNewInvoiceItem($item, $quantity)
	{
		if(!$item instanceof Shop_Item) {
			throw new InvalidArgumentException ('Expecting an item to be an instance of Shop_Item.');
		}

		if(!is_numeric($quantity)) {
			throw new InvalidArgumentException('Quantity is not numeric.');
		}

		// We're good to go. Continue with the function...
	}
</pre>
<p>The method above is also much cleaner than <code>if... else... </code> statements and limits the extra (perhaps useless) work required by your code:</p>
<pre class="brush:php">
	/* The bad... */
	public function insertNewInvoiceItem($item, $quantity)
	{
		if($item instanceof Shop_Item) {
			// Do some $item stuff...

			if(is_numeric($quantity)) {
				// Do some $quantity calculations
			} else {
				// Uh oh, $quantity was bad but we've
				// run some Shop_Item logic already.
			}
		}
		else
		{
			// $item is not part of Shop_Item
		}
	}
</pre>
<p>I used a simple example to demonstrate my point but when this technique is used on more complex logic, it&#8217;s benefits are much more obvious.</p>
<p>Happy coding!</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.iamkoa.net/2010/07/02/first-things-first-validate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS &amp; JS Coding Standards / Organization [OOP]</title>
		<link>http://labs.iamkoa.net/2010/07/01/css-js-coding-standards-organization-oop/</link>
		<comments>http://labs.iamkoa.net/2010/07/01/css-js-coding-standards-organization-oop/#comments</comments>
		<pubDate>Thu, 01 Jul 2010 23:55:43 +0000</pubDate>
		<dc:creator>Koa</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://labs.iamkoa.net/?p=296</guid>
		<description><![CDATA[By no means should this article serve as the bible of CSS &#038; JS coding standards, though it should get the ball rolling for those who are unsure where to start. Over the years, I&#8217;ve had the privilege of working with many talented developers, each of whom have left little bits and pieces of their [...]]]></description>
			<content:encoded><![CDATA[<p>By no means should this article serve as the bible of CSS &#038; JS coding standards, though it should get the ball rolling for those who are unsure where to start. Over the years, I&#8217;ve had the privilege of working with many talented developers, each of whom have left little bits and pieces of their coding style behind. From those pieces I&#8217;ve assembled this article.</p>
<p>Let&#8217;s begin&#8230;</p>
<h2>Alphabetize Your Code</h2>
<p>Alphabetizing your code is an extra organizational step often overlooked. It&#8217;s especially helpful in PHP classes containing getter and setter functions, but it also comes in handy for CSS and JS. Often times similarly named elements will be somewhat related in function, so clustering them together makes them easier to find.</p>
<p>I&#8217;d recommend alphabetizing everything from JS class and function names, to CSS classes and ID&#8217;s. You&#8217;ll notice that every code example in this article is alphabetized to further exemplify the point.</p>
<p><span id="more-296"></span></p>
<hr />
<h2>Comment Everything</h2>
<p>Comments are essential, especially among devs working in groups. The styles seem to vary slightly from person to person, but the theme is the same &#8211; you can never comment too much.</p>
<p>Here is my commenting style for JS / PHP:</p>
<pre class="brush:js">
/******************************************************
 * Cart.class.js
 *
 * A class of JS functions associated with the
 * tasks performed by the shopping cart.
 * @author Koa Metter em@mail.com
 * @copyright Copyright (c) 2010, Company
 ******************************************************/
var Cart = {

    // ...

    /**
     * Add item to cart
     * @param string item_id
     * @param string item_quantity
     * @todo Check for string validity
     */
    addCartItem: function (item_id, item_quantity)
    {
        if (!Utilities.isEmpty($('#cart-items')))
		{
			Cart.AJAX({
				data: 'call=addOfferingToCart&#038;args[0]='+item_id+'&#038;args[1]='+item_quantity,

				// Things we'd like to do upon 'status => success' ajax response
				success: function (msg)
				{
					Cart.displayNewCartItem(msg);

					// Update cart total price
					Cart.displayCartTotal();

					// Also update checkout rebilling terms!
					if (msg.response.rebilling_terms_agreement){
						$('#billing-terms-agreement-label').html(msg.response.rebilling_terms_agreement);
					}

					Cart.proceedBtnCheck();
				}
			});
		}
    }

}
</pre>
<p>When commenting in PHP, <a href="http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_tags.pkg.html">phpDocumentor</a> can be used to build a comprehensive dev manual for your source code. I use the same documentation style for JS simply because I come from a PHP background.</p>
<p>Though CSS doesn&#8217;t need the phpDocumentor-type of commenting, it should nevertheless remain detailed to explain the elements and their purpose. Clustering elements that are related to the same stylistic area or function of the website helps in organizing without the need of many comment blocks.</p>
<hr />
<h2>Indent CSS</h2>
<p>Indenting your code is an obvious standard with most programing languages, but often times CSS is left out of the loop. Indent a CSS element if it&#8217;s a child of a parent element, like so:</p>
<pre class="brush:css">
#container {
    color:#222;
    width:100%;
    z-index:1;
}

    #container .lg-block {
        height:300px;
    }

    #container .sm-block {
        height:100px;
    }

.etc {
    /* ... */
}
</pre>
<p>The above CSS example shows that the class <code>.lg-block</code> is specifically contained within the ID <code>#container</code>, thus we are indenting it to visually represent the same thing.</p>
<hr />
<h2>OOP-ish Javascript</h2>
<p>This topic deviates slightly from actual &#8220;coding standards&#8221;, but I think it&#8217;s equally important &#8211; how to format your JS into usable, organized classes. This rule takes into account all other coding standards (alphabetization, indentation, commenting, etc) and applies them to JS, adding in OOP-like objects.</p>
<p>Here&#8217;s an example:</p>
<pre class="brush:js">
var Vehicles = {
    /*
     * Give us the word "Bus"
     * @return string
     */
    bus: function ()
    {
        return 'Bus';
    },

    /*
     * Give us the word "Car"
     * @return string
     */
    car: function ()
    {
        return 'Car.';
    },

    /*
     * Give both car() and truck()
     * @return string
     */
    getCarAndTruck: function ()
    {
        return this.car + ' and ' + this.truck;
    },

    /*
     * Give us the word "Truck"
     * @return string
     */
    truck: function()
    {
        return 'Truck.';
    }
}

// Let's call the function getCarAndTruck like so:
Vehicles.getCarAndTruck();
</pre>
<p>Shuffling your JS into objects helps associate functions with tasks / groups and thus creates a more organized codebase.</p>
<hr />
<p>Hopefully this helps. If you have a different method of commenting and/or organizing your CSS or JS code, let me know!</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.iamkoa.net/2010/07/01/css-js-coding-standards-organization-oop/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>TinyMCE &amp; Mootools Ajax.Form Class &#8211; Feel The Love</title>
		<link>http://labs.iamkoa.net/2008/05/31/tinymce-mootools-ajax-form/</link>
		<comments>http://labs.iamkoa.net/2008/05/31/tinymce-mootools-ajax-form/#comments</comments>
		<pubDate>Sat, 31 May 2008 18:34:47 +0000</pubDate>
		<dc:creator>Koa</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[mootools]]></category>
		<category><![CDATA[tinymce]]></category>

		<guid isPermaLink="false">http://labs.iamkoa.net/?p=74</guid>
		<description><![CDATA[TinyMCE (Tiny) is regarded as one of the best open source, HTML WYSIWYG editors of our time &#8211; it&#8217;s powerful, relatively easy for browsers to digest, and free to use. The frustrations of using Tiny arise when you attempt to submit your Tiny-enhanced form via Ajax. Because your Tiny textarea inputs are converted to a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://tinymce.moxiecode.com/">TinyMCE</a> (Tiny) is regarded as one of the best open source, HTML WYSIWYG editors of our time &#8211; it&#8217;s powerful, relatively easy for browsers to digest, and free to use. The frustrations of using Tiny arise when you attempt to submit your Tiny-enhanced form via Ajax. Because your Tiny <code>textarea</code> inputs are converted to a mess of divs, spans, iframes, etc, <a href="http://demos.mootools.net/Ajax.Form">Mootools Ajax.Form</a> class fails to recognize the textarea. Fear not, there&#8217;s an easy workaround.</p>
<p><span id="more-74"></span></p>
<h2>The Workaround</h2>
<p>Below is a simple Javascript function you can use to convert Tiny-enhanced textareas back into regular form textareas:</p>
<pre class="brush:js">
var fixTiny = function(properties) {
	var properties = properties || new Object();
	var instance = properties.instance || 'mce_editor_0';
	tinyMCE.execInstanceCommand(instance,'mceCleanup');
	tinyMCE.triggerSave(true,true);
	return true;
}
</pre>
<h2>Using The Goods</h2>
<p>Using the above Javascript function is easy. Let&#8217;s assume we&#8217;re submitting two TinyMCE-enhanced textareas named &#8220;excerpt&#8221; and &#8220;body&#8221;, in a form with the id &#8220;myForm&#8221;. Here&#8217;s how to submit the form:</p>
<p>(The form submit code is taken directly from <a href="http://demos.mootools.net/Ajax.Form">this Mootools demos page</a>. Please refer to that page for further Ajax.Form reference.)</p>
<pre class="brush:js">
$('myForm').addEvent('submit', function(e) {
	/**
	 * Prevent the submit event
	 */
	new Event(e).stop();

	fixTiny({instance:'excerpt'});
	fixTiny({instance:'body'});

	/**
	 * This empties the log and shows the spinning indicator
	 */
	var log = $('log_res').empty().addClass('ajax-loading');

	/**
	 * send takes care of encoding and returns the Ajax instance.
	 * onComplete removes the spinner from the log.
	 */
	this.send({
		update: log,
		onComplete: function() {
			log.removeClass('ajax-loading');
		}
	});
});
</pre>
<p>All of this code, including the <code>fixTiny</code> function should be placed within a <code>domready</code> event.</p>
<h2>Simple, Right?</h2>
<p>If I&#8217;ve missed anything, shout at me. You can also refer to the <a href="http://forum.mootools.net/">Mootools forums</a> for further examples of using both TinyMCE and the Ajax.Form class. </p>
]]></content:encoded>
			<wfw:commentRss>http://labs.iamkoa.net/2008/05/31/tinymce-mootools-ajax-form/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>21 Must-Have Scripts For Your Favorite Javascript Library (jQuery, MooTools, Prototype)</title>
		<link>http://labs.iamkoa.net/2008/01/23/21-must-have-scripts-for-your-favorite-javascript-library-jquery-mootools-prototype/</link>
		<comments>http://labs.iamkoa.net/2008/01/23/21-must-have-scripts-for-your-favorite-javascript-library-jquery-mootools-prototype/#comments</comments>
		<pubDate>Wed, 23 Jan 2008 22:28:45 +0000</pubDate>
		<dc:creator>Koa</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[mootools]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[reference]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://labs.iamkoa.net/2008/01/23/21-must-have-scripts-for-your-favorite-javascript-library-jquery-mootools-prototype/</guid>
		<description><![CDATA[In attempting to spruce up my knowledge of Javascript, I&#8217;ve been trolling around the net collecting scripts and tutorials for various Javascript libraries, mainly jQuery, MooTools, and Prototype. Of the three, MooTools seems to supply me with the most JS lovin&#8217; &#8211; it&#8217;s easy to learn, holds super powerful Ajax abilities, and is customizable to [...]]]></description>
			<content:encoded><![CDATA[<p>In attempting to spruce up my knowledge of Javascript, I&#8217;ve been trolling around the net collecting scripts and tutorials for various Javascript libraries, mainly <a href="http://jquery.com/">jQuery</a>, <a href="http://mootools.net/">MooTools</a>, and <a href="http://www.prototypejs.org/">Prototype</a>. Of the three, MooTools seems to supply me with the most JS lovin&#8217; &#8211; it&#8217;s easy to learn, holds super powerful Ajax abilities, and is customizable to the core. </p>
<p>After sorting through tons of scripts, I thought I&#8217;d share the best ones with you.</p>
<p><span id="more-58"></span></p>
<p>Each script is categorized based upon the Javascript library they use. A few links aren&#8217;t actually scripts, but rather reference sheets or links to other resource websites.</p>
<h2>jQuery (jq)</h2>
<p>&#8220;jQuery is a lightweight JavaScript library that emphasizes interaction between JavaScript and HTML. It was released January 2006 at BarCamp NYC by John Resig.&#8221; &#8211; Wikipedia, 01/16/08</p>
<h3>Reference Sheet (jq)</h3>
<p>Each one of these reference sheets (cheat sheets) are crammed with functions and usage for jQuery. (They are slightly outdated. If you know of any jQuery reference sheets recently updated, please let me know.)<br />
=-=-=-=-=-=<br />
Reference Sheets (PDF): <a href="http://www.define-web.com/jquery_cheat_sheet/jquery_cheat_sheet_080306_v1.pdf">Page 1</a> &#8211; <a href="http://www.define-web.com/jquery_cheat_sheet/jquery_cheat_sheet_080306_v1_pg2.pdf">Page 2</a></p>
<h3>Multiple File Uploads (jq)</h3>
<p>The point of this AJAX-enabled script is to give the user a visual sandbox to add/delete uploads, all without ever reloading the page. The examples and documentation are topnotch.<br />
=-=-=-=-=-=<br />
<a href="http://www.fyneworks.com/jquery/multiple-file-upload/" target="_blank">Fyneworks &#8211; Multiple File Upload</a></p>
<h3>Table Sorting (jq)</h3>
<p>Sort table data by their parent category with Javascript &#8211; no page reloading, compact code, lots-o-fun.<br />
=-=-=-=-=-=<br />
<a href="http://motherrussia.polyester.se/jquery-plugins/tablesorter/" target="_blank">Polyester &#8211; Tablesorter</a></p>
<h3>A List of 240 Plugins (jq)</h3>
<p>Rather then regurgitating what&#8217;s already on the net, here&#8217;s a site that lists over 240 jQuery plugins and their respective links. It&#8217;s freaking huge.<br />
=-=-=-=-=-=<br />
<a href="http://www.sastgroup.com/jquery/240-plugins-jquery" target="blank">Sastgroup &#8211; 240 Plugins For jQuery</a></p>
<h2>MooTools (mt)</h2>
<p>&#8220;Mootools is a compact, modular, object-oriented JavaScript web application framework, intended to make the process of writing extensible and cross-browser compatible code more efficient.&#8221; &#8211; Wikipedia, 01/17/08</p>
<h3>Reference Sheet (mt)</h3>
<p>Being that MooTools is so simple to use, you may not even need a cheat sheet. But just in case, Snook has put together a colorful dab of MooTools knowledge for your enjoyment.<br />
=-=-=-=-=-=<br />
<a href="http://snook.ca/archives/javascript/mootools_r83_cheatsheet/" target="_blank">Snook &#8211; Mootools r83 Cheatsheet</a></p>
<h3>mooRainbow (mt)</h3>
<p>MooRainbow has to be one the best looking color pickers I&#8217;ve seen for the web that <em>isn&#8217;t</em> Flash. It&#8217;s almost an exact clone of the color picker used in Photoshop, and again, it&#8217;s for the web. Sweet stuff people, sweet stuff.<br />
=-=-=-=-=-=<br />
<a href="http://moorainbow.woolly-sheep.net/" target="_blank">Woolly Sheep &#8211; mooRainbow</a></p>
<h3>Mediabox (mt)</h3>
<p>Think of a <a href="http://www.huddletogether.com/projects/lightbox/" target="_blank">lightbox</a>, only comprising of streaming online media (like YouTube or Quicktime movies) instead of images. This is what we call a &#8216;mediabox&#8217;, and I love it.<br />
=-=-=-=-=-=<br />
<a href="http://iaian7.com/webcode/Mediabox" target="_blank">Ianian7 &#8211; Mediabox</a></p>
<h3>Slideshow (mt)</h3>
<blockquote><p>Taken from Electric Prism, &#8220;Slideshow is a javascript class to stream and animate the presentation of images on your website.&#8221;</p></blockquote>
<p>The presentation is similar to the default pan/zoom of Apple&#8217;s screensaver.<br />
=-=-=-=-=-=<br />
<a href="http://www.electricprism.com/aeron/slideshow/" target="_blank">Electric Prism &#8211; Slideshow</a></p>
<h3>Charts (mt)</h3>
<p>Easily create stylish charts and graphs of any combination of data, all with Javascript simplicity. If you have any data that needs presenting on your website, this script is well worth a download.<br />
=-=-=-=-=-=<br />
<a href="http://www.copix.org/index.php/wiki/Mootools/Charts/en" target="_blank">Copix &#8211; Charts &#038; Graphs</a></p>
<h3>Calendar / DatePicker (mt)</h3>
<p>Made by the same badasses that created Mediabox (above), this date picker is super-stylish and easy to integrate into your website. Never again should your web user have to manually insert a date.<br />
=-=-=-=-=-=<br />
<a href="http://www.electricprism.com/aeron/calendar/" target="_blank">Electric Prism &#8211; DatePicker</a></p>
<h3>FancyUpload (mt)</h3>
<p>FancyUpload is a stylish presentation of uploads and ability to add/remove your upload queue with a mouse click. Well worth a look for anyone presenting upload options on their site.<br />
=-=-=-=-=-=<br />
<a href="http://digitarald.de/project/fancyupload/" target="_blank">Digitarald &#8211; FancyUpload</a></p>
<h3>Library (mt)</h3>
<p>Keeping with what the header says, this is the motherload of MooTools information &#8211; a library for a library, if you will. It&#8217;s a complete reservoir of scripts, tutorials, and basic information relating to MooTools.<br />
=-=-=-=-=-=<br />
<a href="http://clientside.cnet.com/libraries/mootools/" target="_blank">CNET &#8211; MooTools Library</a></p>
<h3>Mocha UI (mt)</h3>
<p>Picture an entire user interface built entirely in Javascript. That&#8217;s Mocha UI &#8211; expandable, collapse, and minimize windows all while maintaing the feeling of being in a virtual operating system. It&#8217;s incredibly smooth, cross-browser compatible, and unbelievably small in size.<br />
=-=-=-=-=-=<br />
<a href="http://greghoustondesign.com/demos/mocha/" target="_blank">Greg Houston &#8211; Mocha</a></p>
<h3>MooTable (mt)</h3>
<p>Dress a simple table in a MooTable script and you instantly have the ability to sort any column with the click of the mouse. Easy to setup and extremely lightweight.<br />
=-=-=-=-=-=<br />
<a href="http://joomlicious.com/mootable/" target="_blank">Joomlicious &#8211; Mootable</a></p>
<h3>Reflection JS (mt)</h3>
<p>Reflection JS beautifully adds a perfect reflection to any image without the need for manual labor. The background opacity, height, and fade can be controlled as shown on the Reflections website.<br />
=-=-=-=-=-=<br />
<a href="http://www.digitalia.be/software/reflectionjs-for-mootools" target="_blank">Digitalia &#8211; Reflection JS</a></p>
<h3>Slimbox (mt)</h3>
<p>It&#8217;s identical to <a href="http://www.huddletogether.com/projects/lightbox2/">Lightbox v2.0</a>, only made for MooTools and a mere 7kb in size. It&#8217;s a must have for MooTool users needing <em>the</em> lightbox effect.<br />
=-=-=-=-=-=<br />
<a href="http://www.digitalia.be/software/slimbox" target="_blank">Digitalia &#8211; Slimbox</a></p>
<h3>MooFlow (mt)</h3>
<p>It&#8217;s <a href="http://en.wikipedia.org/wiki/Cover_Flow" target="_blank">coverflow</a> for the web, built on MooTools. The application is a little shaky, but will no doubt improve with time.<br />
=-=-=-=-=-=<br />
<a href="http://www.outcut.de/MooFlow/" target="_blank">Outcut &#8211; MooFlow</a></p>
<h2>Prototype (p)</h2>
<p>&#8220;&#8230; A JavaScript framework created by Sam Stephenson that provides an Ajax framework and other utilities.&#8221; &#8211; Wikipedia, 01/23/08</p>
<h3>Reference Sheet (p)</h3>
<p>Made by the same killer dude that created the MooTools cheat sheet, Snook delivers some Prototype help in the same yummy, cheat sheet fashion.<br />
=-=-=-=-=-=<br />
<a href="http://snook.ca/archives/javascript/prototype_1_5_0_cheatsheet/" target="_blank">Snook &#8211; Prototype Cheat Sheet</a></p>
<h3>Script.aculo.us (p)</h3>
<p>An obvious must-have for Prototype users. Script.aculo.us provides an amazing library of visual styles (including the ability to drag-and-drop) and works flawlessly on the Prototype library.<br />
=-=-=-=-=-=<br />
<a href="http://script.aculo.us/" target="_blank">Script.aculo.us</a></p>
<h3>Really Easy Field Validation (p)</h3>
<p>Exactly what the header says &#8211; convert any form into an instantly-validating machine.<br />
=-=-=-=-=-=<br />
<a href="http://tetlaw.id.au/view/javascript/really-easy-field-validation">Tetlaw &#8211; Really Easy Field Validation</a></p>
<h3>jsProgressBarHandler (p)</h3>
<p>Add a beautiful progress bar to your application and start singing songs of joy. This is by far the easiest (and best looking) progress bar script you&#8217;ll find on the internet.<br />
=-=-=-=-=-=<br />
<a href="http://www.bram.us/projects/js_bramus/jsprogressbarhandler/" target="_blank">Bram &#8211; jsProgressBarHandler</a></p>
<h3>EditInPlace (p)</h3>
<p>This is an excellent script in that it&#8217;s simple, yet extremely helpful. The techniques of EditInPlace are used in applications like <a href="http://www.basecamphq.com/" target="_blank">Basecamp</a> and <a href="http://facebook.com" target="_blank">Facebook</a>, and probably everywhere else on the internet.<br />
=-=-=-=-=-=<br />
<a href="http://editinplace.org/" target="_blank">EditInPlace</a></p>
<h3>Prototype Window (p)</h3>
<p>Prototype Windows is an extremely advanced version of Lightbox. Create popup windows on-the-fly with ajax calls, or via common href application. Anything&#8217;s possible.<br />
=-=-=-=-=-=<br />
<a href="http://prototype-window.xilinus.com/" target="_blank">Xilinus &#8211; Window/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://labs.iamkoa.net/2008/01/23/21-must-have-scripts-for-your-favorite-javascript-library-jquery-mootools-prototype/feed/</wfw:commentRss>
		<slash:comments>34</slash:comments>
		</item>
		<item>
		<title>Updates &amp; Checkboxes &amp; Loadbars! Oh My!</title>
		<link>http://labs.iamkoa.net/2007/12/21/updates-checkboxes-loadbars-oh-my/</link>
		<comments>http://labs.iamkoa.net/2007/12/21/updates-checkboxes-loadbars-oh-my/#comments</comments>
		<pubDate>Fri, 21 Dec 2007 19:22:02 +0000</pubDate>
		<dc:creator>Koa</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Inspiration]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Labs]]></category>

		<guid isPermaLink="false">http://labs.iamkoa.net/2007/12/21/updates-checkboxes-loadbars-oh-my/</guid>
		<description><![CDATA[Yep. I&#8217;m mixing programming references with The Wizard of Oz. Shut up. The all-too-awesome PHPMailer class has been updated and is awaiting your download. If you use MooTools (or even if you don&#8217;t), Vacuous Virtuoso&#8217;s Fancy Form is totally worth checking out. It&#8217;s a mix of CSS and Javascript that enables you to create custom [...]]]></description>
			<content:encoded><![CDATA[<p>Yep. I&#8217;m mixing programming references with <a href="http://www.imdb.com/title/tt0032138/quotes">The Wizard of Oz</a>. Shut up.</p>
<p>The all-too-awesome <a href="http://labs.iamkoa.net/2007/11/27/a-simplesecure-email-class-for-phpmailer/">PHPMailer class</a> has been updated and is awaiting your download.</p>
<p>If you use <a href="http://mootools.net/">MooTools</a> (or even if you don&#8217;t), Vacuous Virtuoso&#8217;s <a href="http://lipidity.com/fancy-form/">Fancy Form</a> is totally worth checking out. It&#8217;s a mix of CSS and Javascript that enables you to create custom form checkboxes. There are other script on the net that claim to do the same thing, but none are as cross-browser compatible.</p>
<p>Lastly, to add a splash of color to your ajax load processes, check out Bram Van Damme&#8217;s <a href="http://www.bram.us/projects/js_bramus/jsprogressbarhandler/">Progress Bar Handler</a>. It&#8217;s probably the smoothest, best looking non-flash based progress bar on the net.</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.iamkoa.net/2007/12/21/updates-checkboxes-loadbars-oh-my/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Control Suite, High Quality Controls &amp; Widgets for Prototype.js</title>
		<link>http://labs.iamkoa.net/2007/11/28/control-suite-high-quality-controls-widgets-for-prototypejs/</link>
		<comments>http://labs.iamkoa.net/2007/11/28/control-suite-high-quality-controls-widgets-for-prototypejs/#comments</comments>
		<pubDate>Wed, 28 Nov 2007 23:47:10 +0000</pubDate>
		<dc:creator>Koa</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://labs.iamkoa.net/2007/11/28/control-suite-high-quality-controls-widgets-for-prototypejs/</guid>
		<description><![CDATA[Ryan Johnson, the founder of LivePipe, created one of the best prototype-based widgets I&#8217;ve ever used. Control Suite is a collection of six high quality widgets and controls for Web 2.0 applications built using the Prototype JavaScript framework. Each script is well tested, highly extensible, fully documented and degrades gracefully for non JavaScript enabled browsers [...]]]></description>
			<content:encoded><![CDATA[<p>Ryan Johnson, the founder of <a href="http://livepipe.net/">LivePipe</a>, created one of the best <a href="http://www.prototypejs.org/">prototype</a>-based widgets I&#8217;ve ever used.</p>
<blockquote><p>Control Suite is a collection of six high quality widgets and controls for Web 2.0 applications built using the Prototype JavaScript framework. Each script is well tested, highly extensible, fully documented and degrades gracefully for non JavaScript enabled browsers where possible. All scripts are <a href="http://www.opensource.org/licenses/mit-license.php">MIT licensed</a> and are thus completely free for any purpose in any project.</p></blockquote>
<p>Thus far, the <code>SelectMultiple</code> is finding some serious use in my web applications. Assuming I come up with something not already discussed in Ryan&#8217;s examples, I&#8217;ll post it in <a href="http://labs.iamkoa.net">Labs</a>.</p>
<p><a href="http://livepipe.net/projects/control_suite/">Go to the official Control Suite website.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://labs.iamkoa.net/2007/11/28/control-suite-high-quality-controls-widgets-for-prototypejs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

