<?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>Ajaxian &#187; Component</title>
	<atom:link href="http://ajaxian.com/by/topic/component/feed" rel="self" type="application/rss+xml" />
	<link>http://ajaxian.com</link>
	<description>Cleaning up the web with Ajax</description>
	<lastBuildDate>Tue, 22 May 2012 21:45:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
    	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Drag and drop is a gateway drug with DragDealer</title>
		<link>http://ajaxian.com/archives/drag-and-drop-is-a-gateway-drug-with-dragdealer</link>
		<comments>http://ajaxian.com/archives/drag-and-drop-is-a-gateway-drug-with-dragdealer#comments</comments>
		<pubDate>Tue, 22 Jun 2010 11:12:26 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Component]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=9652</guid>
		<description><![CDATA[DragDealer is a fine new JavaScript component that abstracts both touch and point interfaces. It makes life easy to do sliders and the like: PLAIN TEXT HTML: &#160; &#60;div id="my-slider" class="dragdealer"&#62; &#160; &#160; &#160; &#160; &#60;div class="red-bar handle"&#62;drag me&#60;/div&#62; &#60;/div&#62; &#60;script&#62; new Dragdealer('simple-slider'); &#60;/script&#62; &#160; But, it can do so much more. Most of the <a href="http://ajaxian.com/archives/drag-and-drop-is-a-gateway-drug-with-dragdealer">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code.ovidiu.ch/dragdealer/">DragDealer</a> is a fine new JavaScript component that abstracts both touch and point interfaces.</p>
<p>It makes life easy to do sliders and the like:</p>
<div class="igBar"><a href="javascript:showCodeTxt('html-3');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">HTML:</span>
<div id="html-3">
<div class="html">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">&lt;div</span></a> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">"my-slider"</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">"dragdealer"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">&lt;div</span></a> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">"red-bar handle"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span>drag me<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">&lt;script&gt;</span></a></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">new Dragdealer('simple-slider');</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/script&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
<p>But, it can do so much more. Most of the power comes from tying functions into the drag movements. A good example here is the font size widget that they show:</p>
<div class="igBar"><a href="javascript:showCodeTxt('javascript-4');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">JAVASCRIPT:</span>
<div id="javascript-4">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">new</span> Dragdealer<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'magnifier'</span>, <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; steps: <span style="color:#800000;">6</span>,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; snap: <span style="color: #003366; font-weight: bold;">true</span>,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; animationCallback: <span style="color: #003366; font-weight: bold;">function</span><span style="color:#006600; font-weight:bold;">&#40;</span>x, y<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; text.<span style="color: #006600;">style</span>.<span style="color: #006600;">fontSize</span> = String<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;">12</span> + x * <span style="color:#800000;">24</span><span style="color:#006600; font-weight:bold;">&#41;</span> + <span style="color: #3366CC;">'px'</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
<p>Continuing on from here, you can see rich examples such as this component that looks like a rich carousel-esque widget from the front of a news paper:</p>
<p><a href="http://code.ovidiu.ch/dragdealer/"><img src="http://ajaxian.com/wp-content/images/dragdealer.png" alt="" title="dragdealer" width="460" height="210" class="alignnone size-full wp-image-9653" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/drag-and-drop-is-a-gateway-drug-with-dragdealer/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Inline content assist for text fields and areas</title>
		<link>http://ajaxian.com/archives/inline-content-assist-for-text-fields-and-areas</link>
		<comments>http://ajaxian.com/archives/inline-content-assist-for-text-fields-and-areas#comments</comments>
		<pubDate>Fri, 18 Jun 2010 10:12:04 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Component]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Library]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=9620</guid>
		<description><![CDATA[Sergey Chikuyonok has created a really nice, easy to use, and good looking content assist library for input text fields and text areas: It calculates precise position of characters in &#60;textarea&#62; or &#60;input&#62; tag and places completion proposals popup under it. You can explicitly call popup window to assist/replace word (depends on caret position) with <a href="http://ajaxian.com/archives/inline-content-assist-for-text-fields-and-areas">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>Sergey Chikuyonok has created a really nice, easy to use, and good looking <a href="http://media.chikuyonok.ru/content-assist/">content assist library</a> for input text fields and text areas:</p>
<blockquote><p>
It calculates precise position of characters in &lt;textarea&gt; or &lt;input&gt; tag and places completion proposals popup under it. You can explicitly call popup window to assist/replace word (depends on caret position) with Ctrl+Space (buggy in Firefox and Opera) or Alt+Space (buggy in Opera). The project is based on Eclipse IDE's content assist architecture, it has some common class names and methods. The default implementation works with fixed words vocabulary, but developers can easily modify or extend some classes to match their needs.
</p></blockquote>
<p>The API is easy to use. For example:</p>
<div class="igBar"><a href="javascript:showCodeTxt('javascript-6');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">JAVASCRIPT:</span>
<div id="javascript-6">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">var</span> words = <span style="color: #3366CC;">'after,any,also,around,another,ask,again,air,away,animal,answer,america,awesome,amazing'</span>.<span style="color: #006600;">split</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">','</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">new</span> BasicContentAssist<span style="color:#006600; font-weight:bold;">&#40;</span>document.<span style="color: #006600;">getElementById</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'input'</span><span style="color:#006600; font-weight:bold;">&#41;</span>, words, <span style="color:#006600; font-weight:bold;">&#123;</span>visible_items: <span style="color:#800000;">5</span><span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
<p><a href="http://media.chikuyonok.ru/content-assist/"><img src="http://ajaxian.com/wp-content/images/contentassist.png" alt="" title="contentassist" width="299" height="146" class="alignnone size-full wp-image-9621" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/inline-content-assist-for-text-fields-and-areas/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Color Picker: Works even in IE6</title>
		<link>http://ajaxian.com/archives/color-picker-works-even-in-ie6</link>
		<comments>http://ajaxian.com/archives/color-picker-works-even-in-ie6#comments</comments>
		<pubDate>Thu, 04 Mar 2010 11:02:56 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Component]]></category>
		<category><![CDATA[Front Page]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=8680</guid>
		<description><![CDATA[Works even in IE6 Love that quote from the color picker over at RaphaelJS land. This plugin by Dmitry Baranovskiy gives you an easy color picker in short order: PLAIN TEXT JAVASCRIPT: &#160; var icon = Raphael&#40;"picker", 23, 23&#41;.colorPickerIcon&#40;11, 11, 10&#41;; &#160; icon.attr&#40;&#123;cursor: "pointer"&#125;&#41;.node.onclick = function &#40;&#41; &#123; &#160; &#160; document.getElementById&#40;"benefits"&#41;.style.visibility = "visible"; &#160; &#160; <a href="http://ajaxian.com/archives/color-picker-works-even-in-ie6">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<blockquote><p>
Works even in IE6
</p></blockquote>
<p>Love that quote from the <a href="http://raphaeljs.com/picker/">color picker over at RaphaelJS land</a>. This plugin by Dmitry Baranovskiy gives you an easy color picker in short order:</p>
<div class="igBar"><a href="javascript:showCodeTxt('javascript-8');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">JAVASCRIPT:</span>
<div id="javascript-8">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">var</span> icon = Raphael<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">"picker"</span>, <span style="color:#800000;">23</span>, <span style="color:#800000;">23</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color: #006600;">colorPickerIcon</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;">11</span>, <span style="color:#800000;">11</span>, <span style="color:#800000;">10</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">icon.<span style="color: #006600;">attr</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#123;</span>cursor: <span style="color: #3366CC;">"pointer"</span><span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color: #006600;">node</span>.<span style="color: #006600;">onclick</span> = <span style="color: #003366; font-weight: bold;">function</span> <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; document.<span style="color: #006600;">getElementById</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">"benefits"</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color: #006600;">style</span>.<span style="color: #006600;">visibility</span> = <span style="color: #3366CC;">"visible"</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> out = document.<span style="color: #006600;">getElementById</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">"output"</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; out.<span style="color: #006600;">style</span>.<span style="color: #006600;">visibility</span> = <span style="color: #3366CC;">"visible"</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900; font-style: italic;">// this is where colorpicker created</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> cp = Raphael.<span style="color: #006600;">colorpicker</span><span style="color:#006600; font-weight:bold;">&#40;</span>document.<span style="color: #006600;">body</span>.<span style="color: #006600;">offsetWidth</span> / <span style="color:#800000;">2</span> - <span style="color:#800000;">150</span>, <span style="color:#800000;">250</span>, <span style="color:#800000;">300</span>, <span style="color: #3366CC;">"#eee"</span>, document.<span style="color: #006600;">getElementById</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">"picker2"</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; out.<span style="color: #006600;">onkeyup</span> = <span style="color: #003366; font-weight: bold;">function</span> <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; cp.<span style="color: #006600;">color</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">value</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color: #009900; font-style: italic;">// assigning onchange event handler</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; cp.<span style="color: #006600;">onchange</span> = <span style="color: #003366; font-weight: bold;">function</span> <span style="color:#006600; font-weight:bold;">&#40;</span>clr<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; out.<span style="color: #006600;">value</span> = clr;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; document.<span style="color: #006600;">body</span>.<span style="color: #006600;">style</span>.<span style="color: #006600;">background</span> = clr;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; document.<span style="color: #006600;">body</span>.<span style="color: #006600;">style</span>.<span style="color: #006600;">color</span> = Raphael.<span style="color: #006600;">rgb2hsb</span><span style="color:#006600; font-weight:bold;">&#40;</span>clr<span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color: #006600;">b</span> &lt;.<span style="color:#800000;">5</span> ? <span style="color: #3366CC;">"#fff"</span> : <span style="color: #3366CC;">"#666"</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp;<span style="color:#006600; font-weight:bold;">&#125;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp;<span style="color: #009900; font-style: italic;">// that’s it. Too easy</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp;icon.<span style="color: #006600;">node</span>.<span style="color: #006600;">onclick</span> = <span style="color: #003366; font-weight: bold;">null</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
<p><img src="http://ajaxian.com/wp-content/images/colorpicker.png" alt="colorpicker" title="colorpicker" width="480" height="429" class="alignnone size-full wp-image-8681"></p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/color-picker-works-even-in-ie6/feed</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Plupload: A rich upload experience on pluggable backends</title>
		<link>http://ajaxian.com/archives/plupload</link>
		<comments>http://ajaxian.com/archives/plupload#comments</comments>
		<pubDate>Wed, 10 Feb 2010 11:18:11 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Component]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=8586</guid>
		<description><![CDATA[The Moxiecode folks (TinyMCE fame) have released a generic component Plupload that allows you to create a rich upload experience on the back of a variety of transports. Whether it be HTML5, Gears, Silverlight, Flash, BrowserPlus or normal forms, you can get an upload experience with drag and drop, progress, client side image resizing and <a href="http://ajaxian.com/archives/plupload">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>The Moxiecode folks (TinyMCE fame) have released a generic component <a href="http://blog.moxiecode.com/2010/02/03/plupload-released/">Plupload</a> that allows you to create a rich upload experience on the back of a variety of transports. Whether it be HTML5, Gears, Silverlight, Flash, BrowserPlus or normal forms, you can get an upload experience with drag and drop, progress, client side image resizing and chunking.</p>
<p>Various backends support different feature sets:</p>
<p><img src="http://ajaxian.com/wp-content/images/pluploadbackends.png" alt="pluploadbackends" title="pluploadbackends" width="480" height="149" class="alignnone size-full wp-image-8589" /></p>
<p>You can use a core API like this...</p>
<div class="igBar"><a href="javascript:showCodeTxt('javascript-10');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">JAVASCRIPT:</span>
<div id="javascript-10">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">var</span> uploader = <span style="color: #003366; font-weight: bold;">new</span> plupload.<span style="color: #006600;">Uploader</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; runtimes : <span style="color: #3366CC;">'gears,html5,flash,silverlight,browserplus'</span>,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; browse_button : <span style="color: #3366CC;">'pickfiles'</span>,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; max_file_size : <span style="color: #3366CC;">'10mb'</span>,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; resize : <span style="color:#006600; font-weight:bold;">&#123;</span>width : <span style="color:#800000;">320</span>, height : <span style="color:#800000;">240</span>, quality : <span style="color:#800000;">90</span><span style="color:#006600; font-weight:bold;">&#125;</span>,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; url : <span style="color: #3366CC;">'upload.php'</span>,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; flash_swf_url : <span style="color: #3366CC;">'/plupload/js/plupload.flash.swf'</span>,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; silverlight_xap_url : <span style="color: #3366CC;">'/plupload/js/plupload.silverlight.xap'</span>,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; filters : <span style="color:#006600; font-weight:bold;">&#91;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#123;</span>title : <span style="color: #3366CC;">"Image files"</span>, extensions : <span style="color: #3366CC;">"jpg,gif,png"</span><span style="color:#006600; font-weight:bold;">&#125;</span>,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#123;</span>title : <span style="color: #3366CC;">"Zip files"</span>, extensions : <span style="color: #3366CC;">"zip"</span><span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#93;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
<p>... and a <a href="http://www.plupload.com/example_queuewidget.php">jQuery Queue Widget</a>.</p>
<p><img src="http://ajaxian.com/wp-content/images/plupload1.png" alt="plupload" title="plupload" width="480" height="197" class="alignnone size-full wp-image-8588"/></p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/plupload/feed</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Machsend: P2P file sharing via Browser Plus</title>
		<link>http://ajaxian.com/archives/machsend-p2p-file-sharing-via-browser-plus</link>
		<comments>http://ajaxian.com/archives/machsend-p2p-file-sharing-via-browser-plus#comments</comments>
		<pubDate>Fri, 03 Jul 2009 10:52:52 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Component]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Yahoo!]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=7041</guid>
		<description><![CDATA[Alex MacCaw has released Machsend, a Yahoo! Browser Plus plugin that enables P2P file transfers from inside the browser. It showcases what can be done with a BP plugin, leaving you wish cross browser functionality. I guess it is kinda fun to hack the browser :)]]></description>
			<content:encoded><![CDATA[<p><img src="http://leadthinking.com/wp-content/uploads/2009/06/Picture-13-542x262.png"/></p>
<p>Alex MacCaw has released <a href="http://leadthinking.com/89-machsend-p2p-in-the-browser">Machsend</a>, a Yahoo! Browser Plus plugin that enables P2P file transfers from inside the browser.</p>
<p>It showcases what can be done with a BP plugin, leaving you wish cross browser functionality.</p>
<p>I guess it is kinda fun to <a href="http://hackthebrowser.org/">hack the browser</a> :)</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/machsend-p2p-file-sharing-via-browser-plus/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>GChart 2.5: Faster, sharper, canvas-rendered, pie, line, and area charts</title>
		<link>http://ajaxian.com/archives/gchart-25-faster-sharper-canvas-rendered-pie-line-and-area-charts</link>
		<comments>http://ajaxian.com/archives/gchart-25-faster-sharper-canvas-rendered-pie-line-and-area-charts#comments</comments>
		<pubDate>Thu, 02 Jul 2009 11:44:30 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Component]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[GWT]]></category>
		<category><![CDATA[Library]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=7038</guid>
		<description><![CDATA[John Gunther has released GChart 2.5, a client-side library that adds a new canvas-rendering option for sharper, better looking, alpha-transparent, pie, line, and area charts. John told us: Canvas-rendering corrects GChart's most serious visual quality limitations (including the most often mentioned problem by its users: the banded-filled pie slice). Coupled with its existing feature set <a href="http://ajaxian.com/archives/gchart-25-faster-sharper-canvas-rendered-pie-line-and-area-charts">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>John Gunther has <a href="http://gchart.googlecode.com/svn/trunk/doc/com/googlecode/gchart/client/doc-files/gchart2p5features.html">released GChart 2.5</a>, a client-side library that adds a new canvas-rendering option for sharper, better looking, alpha-transparent, pie, line, and area charts.</p>
<p><a href="http://gchart.googlecode.com/svn/trunk/live-demo/v2_5/com.googlecode.gchart.gchartdemoapp.GChartDemoApp/GChartDemoApp.html"><img src="http://ajaxian.com/wp-content/uploads/gchart25.png" alt="" title="gchart25" width="500" height="514" class="alignnone size-full wp-image-7039" /></a></p>
<p>John told us:</p>
<blockquote><p>
Canvas-rendering corrects GChart's most serious visual quality limitations (including the most often mentioned problem by its users: the banded-filled pie slice).</p>
<p>Coupled with its existing feature set and ease of GWT integration, the canvas-rendering option makes GChart an excellent choice for those who want to add basic charts to a GWT application without a lot of fuss.</p>
<p>To access these features, you'll need to plug an external canvas library into GChart (GWTCanvas in the gwt-incubator is reccommended) as described in detail in the setCanvasFactory method.</p>
<p>With the external canvas in place, the next step is to tell GChart you want a curve to be "continuously filled" by invoking setFillSpacing(0).</p>
<p>With each such continuously filled curve, GChart automatically exploits your external canvas library to improved the quality and speed of that curve's rendering. Specifically, banded-filled pie slices become solid filled, dotted connecting lines become continuously connected, and (the biggest stretch) bar charts become area charts. See the setFillSpacing method's javadocs for a detailed description of how each existing symbol type implements this new "continuously-filled", canvas-powered, rendering option.</p>
<p>Note that GChart's previous HTML-only rendering is still available, and is the default rendering mode if you don't bother to plug in an external canvas.
</p></blockquote>
<p>Check out the <a href="http://gchart.googlecode.com/svn/trunk/live-demo/v2_5/com.googlecode.gchart.gchartdemoapp.GChartDemoApp/GChartDemoApp.html">demo</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/gchart-25-faster-sharper-canvas-rendered-pie-line-and-area-charts/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>ProtoFish: advanced hover menu</title>
		<link>http://ajaxian.com/archives/protofish-advanced-hover-menu</link>
		<comments>http://ajaxian.com/archives/protofish-advanced-hover-menu#comments</comments>
		<pubDate>Tue, 23 Jun 2009 10:05:01 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Component]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Prototype]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=6990</guid>
		<description><![CDATA[ProtoFish is an advanced hover menu based on Prototype, written by Peter Slagter. You can easily add a delay to your menu (on mouseout) and choose your own hover class. All ProtoFish menu's will respond to users who use the TAB-key to navigate through your page. It is trivial to use. Once you load up <a href="http://ajaxian.com/archives/protofish-advanced-hover-menu">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://techblog.procurios.nl/k/618/news/view/34556/14863/ProtoFish-advanced-hover-menu-based-on-Prototype.html">ProtoFish</a> is an advanced hover menu based on Prototype, written by Peter Slagter. You can easily add a delay to your menu (on mouseout) and choose your own hover class. All ProtoFish menu's will respond to users who use the TAB-key to navigate through your page. </p>
<p><img src="http://ajaxian.com/wp-content/uploads/protofish.png" alt="" title="protofish" width="340" height="212" class="alignnone size-full wp-image-6991" /></p>
<p>It is trivial to use. Once you load up the script (requires Prototype 1.6+) you can:</p>
<div class="igBar"><a href="javascript:showCodeTxt('javascript-12');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">JAVASCRIPT:</span>
<div id="javascript-12">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">document.<span style="color: #006600;">observe</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'dom:loaded'</span>, <span style="color: #003366; font-weight: bold;">function</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span>&nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">new</span> ProtoFish<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'my-menu'</span>, <span style="color: #3366CC;">'400'</span>, <span style="color: #3366CC;">'hover'</span>, <span style="color: #003366; font-weight: bold;">false</span><span style="color:#006600; font-weight:bold;">&#41;</span>;&nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
<p>where the four parameters are:</p>
<ul>
<li>Menu id (In the example: my-menu)
</li>
<li>Delay before closing the menu (In the example: 400 ms)
</li>
<li>The classname to add when hovering over menuitems (In the example: hover)
</li>
<li>Whether or not the menu should remove .active classnames when your visitor hovers over the menu (In the example: false)
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/protofish-advanced-hover-menu/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>280Slides, Cappuccino, Atlas, and Aristo</title>
		<link>http://ajaxian.com/archives/280slides-cappuccino-atlas-and-aristo</link>
		<comments>http://ajaxian.com/archives/280slides-cappuccino-atlas-and-aristo#comments</comments>
		<pubDate>Fri, 24 Apr 2009 16:00:23 +0000</pubDate>
		<dc:creator>Ben Galbraith</dc:creator>
				<category><![CDATA[Atlas]]></category>
		<category><![CDATA[Cappuccino]]></category>
		<category><![CDATA[Component]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=6686</guid>
		<description><![CDATA[Francisco Tolmasky presented on the latest goodies from 280North at JSConf. In the past we've given the 280North guys a bad time for talking about 280Slides and their other stuff using... Keynote. I don't know if he used Keynote at JSConf, but Francisco published the slides using the 280Slides web-based presentation viewer, which is also <a href="http://ajaxian.com/archives/280slides-cappuccino-atlas-and-aristo">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://ajaxian.com/wp-content/uploads/aristo.png" alt="" title="aristo" width="470" height="193" class="alignnone size-full wp-image-6687" /></p>
<p>Francisco Tolmasky presented on the latest goodies from <a href="http://280north.com/">280North</a> at <a href="http://www.jsconf2009.com/">JSConf</a>. In the past we've given the 280North guys a bad time for talking about 280Slides and their other stuff using... <a href="http://www.apple.com/iwork/keynote/">Keynote</a>. I don't know if he used Keynote at JSConf, but Francisco published the slides using the 280Slides web-based presentation viewer, which is also embeddable:</p>
<p><iframe width="400" height="328" src="http://280slides.com/Viewer/?user=56&#038;name=JSConf%202009&#038;fullscreen" style="border: 1px solid black; margin: 0; padding: 0;"></iframe></p>
<p>(We like the embedded viewer, but did they have to make it swallow common keystrokes? On Firefox OS X, once we embed this IFrame, APPLE-W makes the slide turn white. 10 points for a cool feature, -100 points for hijacking the browser in this context.)</p>
<p>The slides make for a good review of Cappuccino but just include brief mentions of the other interesting bits, such as the new Aristo theme designed by <a href="http://www.madebysofa.com/">SOFA</a> and the amazing Atlas.</p>
<p>Fortunately, there is a recent video of a talk by Francisco on March 30 to the CocoaHeads user group:</p>
<p><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="437" height="265" id="viddler"><param name="movie" value="http://www.viddler.com/simple_on_site/acff7b92" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /><embed src="http://www.viddler.com/simple_on_site/acff7b92" width="437" height="265" type="application/x-shockwave-flash" allowScriptAccess="always" allowFullScreen="true" name="viddler" ></embed></object></p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/280slides-cappuccino-atlas-and-aristo/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>The New TextboxList</title>
		<link>http://ajaxian.com/archives/the-new-textboxlist</link>
		<comments>http://ajaxian.com/archives/the-new-textboxlist#comments</comments>
		<pubDate>Fri, 10 Apr 2009 13:00:25 +0000</pubDate>
		<dc:creator>Ben Galbraith</dc:creator>
				<category><![CDATA[Component]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[MooTools]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=6551</guid>
		<description><![CDATA[Over at devthought, Guillermo Ranch has rewritten his clone of Facebook's "TextboxList" component: It’s been some time since TextboxList got some attention. It is undoubtedly one of the my most popular JavaScript projects, along with the famous Fancy Menu (MorphList) and its slideshow sibling, BarackSlideshow. TextboxList has been rewritten from scratch, and it’s more solid <a href="http://ajaxian.com/archives/the-new-textboxlist">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://ajaxian.com/wp-content/uploads/textboxlist.png" alt="" title="TextboxList" width="411" height="126" class="alignnone size-full wp-image-6552" /></p>
<p>Over at <a href="http://devthought.com/">devthought</a>, Guillermo Ranch has <a href="http://devthought.com/blog/projects-news/2009/04/the-new-textboxlist-is-here/">rewritten his clone of Facebook's "TextboxList" component</a>:</p>
<blockquote><p>
It’s been some time since TextboxList got some attention. It is undoubtedly one of the my most popular JavaScript projects, along with the famous Fancy Menu (MorphList) and its slideshow sibling, BarackSlideshow.</p>
<p>TextboxList has been rewritten from scratch, and it’s more solid than ever. The first time around, elegance was not one of the goals. I focused on releasing the first open source script that reproduced the Facebook’s tokenizer.
</p></blockquote>
<p>Changes include:</p>
<blockquote><p>
    * Compatible with MooTools 1.2.x<br />
    * New options, such as addOnEnter, which adds boxes upon pressing enter (useful for tags or categories widgets).<br />
    * More events, which gives the developer more power to extend it.<br />
    * Each element is now identified by an id, a plain value and a HTML value.<br />
    * Use of control, alt, meta keys no longer interfere with the elements keyboard navigation.<br />
    * Bugs with text selection fixed.<br />
    * Improved API, even more extensible.<br />
    * Plugins support
</p></blockquote>
<p>It also includes an autocomplete plug-in, which has its own feature list:</p>
<blockquote><p>
    * Flexible. It does not depend on a specific data source (XHR, Json). Instead, the developer supplies the data which can come from anywhere.<br />
    * Binary search for maximum performance<br />
    * Simpler CSS with comments for non-experienced developers.
</p></blockquote>
<p>Guillermo tells us that a Dojo version is in the works, and Ajaxian reader Thomas Aylott adds "This thing is seriously awesome." Check it out!</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/the-new-textboxlist/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Nextpoint releases open source project Growl4Rails</title>
		<link>http://ajaxian.com/archives/nextpoint-releases-open-source-project-growl4rails</link>
		<comments>http://ajaxian.com/archives/nextpoint-releases-open-source-project-growl4rails#comments</comments>
		<pubDate>Thu, 19 Feb 2009 05:01:57 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Component]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Prototype]]></category>
		<category><![CDATA[Rails]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=6025</guid>
		<description><![CDATA[The team at Nextpoint has released the open source project Growl4Rails, a component providing Growl-like functionality in Rails web applications. Nextpoint's e-discovery product deals with many very large documents. Indexing, imaging and PDF-ing of those documents can take a bit of time, which requires us to execute these tasks asynchronously. Background processing demands a solid <a href="http://ajaxian.com/archives/nextpoint-releases-open-source-project-growl4rails">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>The team at <a href="http://nextpoint.com/">Nextpoint</a> has released the open source project <a href="http://www.writebetterbits.com/2009/01/update-to-growl4rails.html">Growl4Rails</a>, a component providing Growl-like functionality in Rails web applications.</p>
<blockquote><p>
<a href="http://ajaxian.com/archives/nextpoint-taking-ajax-to-court">Nextpoint's e-discovery product</a> deals with many very large documents.  Indexing, imaging and PDF-ing of those documents can take a bit of time, which requires us to execute these tasks asynchronously.  Background processing demands a solid way of notifying users when that process has completed.  We're a Mac shop, and one of the first things most Mac users install is Growl.  We thought that Growl's interface could really be successful on the web and provide a great way of notifying our users when this background processing has completed.
</p></blockquote>
<p><a href="http://nextpointlab.wordpress.com/2009/02/13/upcoming-feature-notifications/">Read more about how Nextpoint is using Growl4Rails.</a></p>
<p><img src="http://ajaxian.com/wp-content/uploads/growl4rails.png" alt="" title="growl4rails" width="500" height="199" class="alignnone size-full wp-image-6026" /></p>
<p>Growl4Rails is available as <a href="http://github.com/jfiorato/growl4rails">a Rails plugin on Github</a>. It requires Prototype 1.6 and Scriptaculous 1.7, and it has been tested on FF, IE 6-8, Safari, Opera and Chrome.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/nextpoint-releases-open-source-project-growl4rails/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How many engineers does it take to create a cross browser button?</title>
		<link>http://ajaxian.com/archives/how-many-engineers-does-it-take-to-create-a-cross-browser-button</link>
		<comments>http://ajaxian.com/archives/how-many-engineers-does-it-take-to-create-a-cross-browser-button#comments</comments>
		<pubDate>Fri, 06 Feb 2009 05:01:49 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Component]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[UI]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=5892</guid>
		<description><![CDATA[So, you want to create a button that you have full control over, and you want it to work well cross browser. Shouldn't be hard right? Wrong. Doug Bowmanepines about the job of doing just this, which is something he kicked off at Google, and we see the result in apps such as Sites and <a href="http://ajaxian.com/archives/how-many-engineers-does-it-take-to-create-a-cross-browser-button">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>So, you want to create a button that you have full control over, and you want it to work well cross browser. Shouldn't be hard right? Wrong.</p>
<p>Doug Bowman<a href="http://stopdesign.com/archive/2009/02/04/recreating-the-button.html">epines about the job of doing just this</a>, which is something he kicked off at Google, and we see the result in apps such as Sites and recently Gmail:</p>
<p><img src="http://stopdesign.com/img/archive/2009/02/btns-gmail.png"/></p>
<p>Doug does a really nice job at explaining the history of this work, and then detailing the issues at hand and various iterations of the work where he had some a-ha moments such as:</p>
<blockquote><p>
My 3.0 attempt relied on treating the buttons and everything inside them as inline elements. The top/bottom borders still needed to be rendered separately from the left/right borders to get 1px-notched corners. The left/right borders were rendered on the outer element. The top/bottom borders were rendered on the inner element. Because borders don’t compound and add to the width or height of an inline element, we get the 1px notches in each corner. I ran into a lot of frustration with this inline approach until I remembered display: inline-block. That seemed to <a href="http://stopdesign.com/eg/buttons/3.0/code.html">solve everything at once.</a></p></blockquote>
<p>And how he got rid of the gradient image and instead uses CSS:</p>
<p><img src="http://stopdesign.com/img/archive/2009/02/bands-spec.png"/></p>
<p>A really nice read. It works pretty well for me. The only real issue that I saw was that the drop down in Gmail for "More Actions" can be greyed out when you don't have something selected. The type is subtle so at first I wondered why hover/click weren't doing anything.</p>
<p>Oh, hey, would be nice to open source this kind of stuff good Google UX guys ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/how-many-engineers-does-it-take-to-create-a-cross-browser-button/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Sexy Page Curls</title>
		<link>http://ajaxian.com/archives/sexy-page-curls</link>
		<comments>http://ajaxian.com/archives/sexy-page-curls#comments</comments>
		<pubDate>Tue, 20 Jan 2009 12:08:19 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Component]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=5724</guid>
		<description><![CDATA[I thought that sexy curls were not related to technology, but Elliott Kember packaged a nice and easy page curl plugin using jQuery. All you need to do is: PLAIN TEXT HTML: &#160; &#60;script type="text/javascript" src="turn/turn.js"&#62;&#60;/script&#62; &#60;link rel="stylesheet" type="text/css" href="turn/turn.css"&#62; &#160; &#60;script&#62; $(document).ready(function(){ &#160; &#160; $( '#target' ).fold(); }); &#60;/script&#62; &#160;]]></description>
			<content:encoded><![CDATA[<p><img src="http://ajaxian.com/wp-content/uploads/sexycurls.png" alt="" title="sexycurls" width="500" height="274" class="alignnone size-full wp-image-5725" /></p>
<p>I thought that sexy curls were <a href="http://www.metacafe.com/watch/787277/how_to_get_those_sexy_beyonce_curls/">not related to technology</a>, but <a href="http://twitter.com/elliottkember">Elliott Kember</a> packaged a nice and easy <a href="http://www.elliottkember.com/sexy_curls.html">page curl plugin</a> using jQuery.</p>
<p>All you need to do is:</p>
<div class="igBar"><a href="javascript:showCodeTxt('html-14');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">HTML:</span>
<div id="html-14">
<div class="html">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">&lt;script</span></a> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/javascript"</span> <span style="color: #000066;">src</span>=<span style="color: #ff0000;">"turn/turn.js"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/script&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><a href="http://december.com/html/4/element/link.html"><span style="color: #000000; font-weight: bold;">&lt;link</span></a> <span style="color: #000066;">rel</span>=<span style="color: #ff0000;">"stylesheet"</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/css"</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"turn/turn.css"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">&lt;script&gt;</span></a></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">$(document).ready(function(){</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; $( '#target' ).fold();</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">});</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/script&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
</link>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/sexy-page-curls/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>jQuery pageSlide: throwing content around</title>
		<link>http://ajaxian.com/archives/jquery-pageslide-throwing-content-around</link>
		<comments>http://ajaxian.com/archives/jquery-pageslide-throwing-content-around#comments</comments>
		<pubDate>Thu, 08 Jan 2009 14:10:26 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Component]]></category>
		<category><![CDATA[Examples]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=5602</guid>
		<description><![CDATA[Scott Robbin (Songza co-founder) has created a very cool jQuery plugin for pageSlide, an interaction based off of Aza's prototypes for Firefox Mobile and Ubiquity mouse gestures. The plugin wraps body content into a container and shifts it off of the page whenever a click event is fired, revealing a secondary interaction pane. This plugin <a href="http://ajaxian.com/archives/jquery-pageslide-throwing-content-around">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://jquery-pageslide.googlecode.com/files/jquery-pageslide-screenshot.png"/></p>
<p>Scott Robbin (Songza co-founder) has created a very cool jQuery plugin for <a href="http://halobrite.com/blog/jquery-pageslide/">pageSlide</a>, an interaction based off of Aza's prototypes for Firefox Mobile and Ubiquity mouse gestures. The plugin wraps body content into a container and shifts it off of the page whenever a click event is fired, revealing a secondary interaction pane.</p>
<blockquote><p>
This plugin allows any developer to recreate a similar interaction on their own website using a few simple lines of Javascript. By attaching the method to an anchor tag, pageSlide wraps the original body content into a wrapper and creates an additional block for the secondary content load. The slide is animated whenever the click event is invoked.</p>
<div class="igBar"><a href="javascript:showCodeTxt('html-16');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">HTML:</span>
<div id="html-16">
<div class="html">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">&lt;script</span></a> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/javascript"</span><span style="color: #000000; font-weight: bold;">&gt;</span></a></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; $(document).ready(function() {</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; $('a.pageslide').pageSlide({</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; width: &quot;300px&quot;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; });</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; });</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/script&gt;</span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
</blockquote>
<p>For some reason I enjoy thinking of my desktop as a virtual area that I can shift around.... so this can suite me well.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/jquery-pageslide-throwing-content-around/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>AddressChooser: address picker in real-time</title>
		<link>http://ajaxian.com/archives/addresschooser</link>
		<comments>http://ajaxian.com/archives/addresschooser#comments</comments>
		<pubDate>Wed, 07 Jan 2009 12:37:12 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Component]]></category>
		<category><![CDATA[Front Page]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=5575</guid>
		<description><![CDATA[Sébastein Gruhier has released a new address component that integrated a map with the address that you are filling. The UX is interesting as when you first get typing it doesn't really narrow down the address so you are seeing maps of bizarre places. As well as a basic version, you can also tie in <a href="http://ajaxian.com/archives/addresschooser">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://addresschooser.mapeed.com/doc/"><img src="http://ajaxian.com/wp-content/uploads/addresschooser.png" alt="" title="addresschooser" width="500" height="217" class="alignnone size-full wp-image-5576" /></a></p>
<p>Sébastein Gruhier has released a new address component that integrated a map with the address that you are filling. The UX is interesting as when you first get typing it doesn't really narrow down the address so you are seeing maps of bizarre places.</p>
<p>As well as a basic version, you can also tie in <a href="http://addresschooser.mapeed.com/example/with_prototype.html">auto complete</a>.</p>
<p>Features include:</p>
<ul>
<li>Javascript framework-agnostic. You can use it as is or with any great frameworks like Prototype, JQuery …</li>
<li>Mapping system independent. The current implementation is based on Google Map using a Google Map proxy object.</li>
<li>Interactive map display location while you arex typing an address.</li>
<li>Center map on user location (based on its IP) if mapping system allows it.</li>
<li>Fully customizable.</li>
<li>Fully documented with <a href="http://pdoc.org">pdoc</a>.</li>
<li>Works on Safari, Firefox, <span class="caps">IE 6</span>/7, Chrome and Opera.</li>
<li>...</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/addresschooser/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>SmartMarkUp: Universal Markup Editor</title>
		<link>http://ajaxian.com/archives/smartmarkup-universal-markup-editor</link>
		<comments>http://ajaxian.com/archives/smartmarkup-universal-markup-editor#comments</comments>
		<pubDate>Thu, 11 Dec 2008 17:00:34 +0000</pubDate>
		<dc:creator>Ben Galbraith</dc:creator>
				<category><![CDATA[Component]]></category>
		<category><![CDATA[Front Page]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=5369</guid>
		<description><![CDATA[Joseph Woods of PHPCow sent us a note about SmartMarkUP, a "universal markup editor": SmartMarkUP is a lightweight and powerful JavaScript library that allows you to turn any textarea into a fancy markup editor. HTML, CSS, XML, Wiki syntax, BBCode or any other desired markup language can be implemented and/or adjusted to your preferences and <a href="http://ajaxian.com/archives/smartmarkup-universal-markup-editor">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://ajaxian.com/wp-content/uploads/smartmarkup.jpg" alt="" title="SmartMarkUP" width="470" height="237" class="alignnone size-full wp-image-5371" /></p>
<p>Joseph Woods of <a href="http://www.phpcow.com/">PHPCow</a> sent us a note about <a href="http://www.phpcow.com/smartmarkup/">SmartMarkUP</a>, a "universal markup editor":</p>
<blockquote><p>
SmartMarkUP is a lightweight and powerful JavaScript library that allows you to turn any textarea into a fancy markup editor. HTML, CSS, XML, Wiki syntax, BBCode or any other desired markup language can be implemented and/or adjusted to your preferences and business needs. SmartMarkUP doesn't depend on any other JavaScript library and can be integrated with any already existing JavaScript library or code.
</p></blockquote>
<p>Although SmartMarkUP is stand-alone, they've created a jQuery plug-in wrapper for it. The documentation is quite extensive and includes detailed notes on how to use the editor to edit your own markup.</p>
<p>While the editor has buttons and such to make it easier to manipulate the markup (a la WordPress' own code editor) the editor itself doesn't have any kind of syntax highlighting or auto-indent / auto-complete features.</p>
<p>Still, it's a pretty neat little package:</p>
<blockquote><p>
    * SmartMarkUP is completely free and open source<br />
    * SmartMarkUP is a small script, compressed version weights only 10kb<br />
    * SmartMarkUP is completely skin-able you can fit it's design with your applications easily<br />
    * SmartMarkUP can be used from any other script<br />
    * SmartMarkUP is self contained and doesn't depend on any third party scripts. You can use it with Prototype, jQuery, Mootools or any other JavaScript libraries.<br />
    * SmartMarkUP doesn't requires changing of already existing markup or code infrastructure.<br />
    * SmartMarkUP degrades gracefully, that means your application will continue working in browsers with disabled JavaScript.
</p></blockquote>
<p>What do you think?</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/smartmarkup-universal-markup-editor/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>jsTree Nears 1.0; Solicits Feedback</title>
		<link>http://ajaxian.com/archives/jstree-nears-10-solicits-feedback</link>
		<comments>http://ajaxian.com/archives/jstree-nears-10-solicits-feedback#comments</comments>
		<pubDate>Thu, 13 Nov 2008 13:00:35 +0000</pubDate>
		<dc:creator>Ben Galbraith</dc:creator>
				<category><![CDATA[Component]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=5040</guid>
		<description><![CDATA[Several months ago, we covered jsTree, a promising new tree component built on top of jQuery. It's since gained its own website and is nearing a 1.0 release. There have been a few changes since we last wrote about it: * A lot of focus on the JSON data source * Native async support (meaning <a href="http://ajaxian.com/archives/jstree-nears-10-solicits-feedback">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.jstree.com"><img src="http://ajaxian.com/wp-content/uploads/jstree.jpg" alt="" title="jsTree" width="470" height="215" class="alignnone size-full wp-image-5043" /></a></p>
<p>Several months ago, we covered <a href="http://www.jstree.com">jsTree</a>, a promising new tree component built on top of jQuery. It's since gained its own website and is nearing a 1.0 release. There have been a few changes since we last wrote about it:</p>
<blockquote><p>
* A lot of focus on the JSON data source</p>
<p>* Native async support (meaning correct data loading, event handling, etc).</p>
<p>* In the last public version there is a simple instance manager.</p>
<p>* The instance manager enabled full multitree support - node dragging between trees, with language cleanup (if languages differ), and also and most important - the receiving tree's dragrules are respected.</p>
<p>* There have been a lot of bugfixes, optimizations, enhancements.
</p></blockquote>
<p>It's coming along nicely since the initial story; give it another look and pass on bug reports and feedback to Ivan at his <a href="http://www.vakata.com">blog</a> prior to the 1.0 release.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/jstree-nears-10-solicits-feedback/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>input type=camera to give us a simple way to integrate to Webcams</title>
		<link>http://ajaxian.com/archives/input-camera</link>
		<comments>http://ajaxian.com/archives/input-camera#comments</comments>
		<pubDate>Thu, 25 Sep 2008 11:13:34 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Component]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=4587</guid>
		<description><![CDATA[There are a substantial number of iPhone apps that tie into the builtin native components such as the camera. Brad Lassey has been hacking on Fennec (the Mozilla mobile browser) as well as Firefox itself to integrate with camera phones and Webcams alike: I wrapped a video tag, image and a few buttons in xbl <a href="http://ajaxian.com/archives/input-camera">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>There are a substantial number of iPhone apps that tie into the builtin native components such as the camera.</p>
<p>Brad Lassey has been hacking on Fennec (the Mozilla mobile browser) as well as Firefox itself to integrate with camera phones and Webcams alike:</p>
<blockquote><p>
 I wrapped a video tag, image and a few buttons in xbl and bound it to &lt;input type=”camera” /&gt;. When a user hits a website using this tag, he or she currently will see a live video preview and a “take photo” button. When the user clicks the button, the photo is grabbed from the camera and shown to the user in the image element. The image element and video element are in a deck element so only one is shown at a time. After the photo is taken, there is a button that reads “Take another photo,” in case the user doesn’t like the one they just took. Once the user is satisfied, this element works like any other form element and the file can be uploaded to a web service.</p>
<p>After talking to a few people this should actually be bound to &lt;input type=”file” accept=”image/png”/&gt;. Also, it needs some UI design both for what it looks like in content and for a configuration dialog. Finally, we’ll need to think about security and make sure no one can snap a photo of you when you’re not looking your best.
</p></blockquote>
<p>I kinda like having an <code>input type="camera"</code> myself, to be more explicit. It would be cool if you can get access to the image as data (e.g. the value is <code>data:......</code>). I love it.</p>
<p><img src="http://ajaxian.com/wp-content/uploads/inputcamera.png" alt="" title="inputcamera" width="479" height="367" border="0" /></p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/input-camera/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>NoGray Visual Time Picker</title>
		<link>http://ajaxian.com/archives/nogray-visual-time-picker</link>
		<comments>http://ajaxian.com/archives/nogray-visual-time-picker#comments</comments>
		<pubDate>Mon, 04 Aug 2008 12:54:40 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Component]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=4005</guid>
		<description><![CDATA[The NoGray Time Picker is a component that lets you add a time picker that is visual. The clock shows up, and you move the hands to wherever you need to be. All via a simple: PLAIN TEXT JAVASCRIPT: &#160; var tp = new TimePicker&#40;'time2_picker', 'time2', 'time2_toggler', &#123;format24:true&#125;&#41;; &#160; Or a more complex version that <a href="http://ajaxian.com/archives/nogray-visual-time-picker">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://ajaxian.com/wp-content/uploads/timepicker.png" alt="" title="NoGray Time Picker" width="279" height="208" class="alignnone size-full wp-image-4006" /></p>
<p>The <a href="http://www.nogray.com/time_picker.php">NoGray Time Picker</a> is a component that lets you add a time picker that is visual. The clock shows up, and you move the hands to wherever you need to be. All via a simple:</p>
<div class="igBar"><a href="javascript:showCodeTxt('javascript-19');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">JAVASCRIPT:</span>
<div id="javascript-19">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">var</span> tp = <span style="color: #003366; font-weight: bold;">new</span> TimePicker<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'time2_picker'</span>, <span style="color: #3366CC;">'time2'</span>, <span style="color: #3366CC;">'time2_toggler'</span>, <span style="color:#006600; font-weight:bold;">&#123;</span>format24:<span style="color: #003366; font-weight: bold;">true</span><span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
<p>Or a more complex version that tracks the changes:</p>
<div class="igBar"><a href="javascript:showCodeTxt('javascript-20');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">JAVASCRIPT:</span>
<div id="javascript-20">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">var</span> tp = <span style="color: #003366; font-weight: bold;">new</span> TimePicker<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'time_picker'</span>, <span style="color: #003366; font-weight: bold;">null</span>, <span style="color: #003366; font-weight: bold;">null</span>, <span style="color:#006600; font-weight:bold;">&#123;</span>onChange:<span style="color: #003366; font-weight: bold;">function</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span> <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">time</span>.<span style="color: #006600;">hour</span> &lt;<span style="color:#800000;">12</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color: #003366; font-weight: bold;">var</span> ampm = <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">options</span>.<span style="color: #006600;">lang</span>.<span style="color: #006600;">am</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #003366; font-weight: bold;">var</span> ampm = <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">options</span>.<span style="color: #006600;">lang</span>.<span style="color: #006600;">pm</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> hour = <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">time</span>.<span style="color: #006600;">hour</span>%<span style="color:#800000;">12</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span> <span style="color:#006600; font-weight:bold;">&#40;</span>hour &lt;<span style="color:#800000;">10</span><span style="color:#006600; font-weight:bold;">&#41;</span> hour = <span style="color: #3366CC;">"0"</span>+hour;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> minute = <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">time</span>.<span style="color: #006600;">minute</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span> <span style="color:#006600; font-weight:bold;">&#40;</span>minute &lt;<span style="color:#800000;">10</span><span style="color:#006600; font-weight:bold;">&#41;</span> minute = <span style="color: #3366CC;">"0"</span>+minute;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'time3_value'</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color: #006600;">setHTML</span><span style="color:#006600; font-weight:bold;">&#40;</span>hour+<span style="color: #3366CC;">":"</span>+minute+<span style="color: #3366CC;">" "</span>+ampm<span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span> <span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
<p>After all that though, is it easier than asking to put in the time?</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/nogray-visual-time-picker/feed</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>YPulse: Fades and Pulsations Library</title>
		<link>http://ajaxian.com/archives/ypulse-fades-and-pulsations-library</link>
		<comments>http://ajaxian.com/archives/ypulse-fades-and-pulsations-library#comments</comments>
		<pubDate>Fri, 11 Jul 2008 13:42:30 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Component]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Library]]></category>
		<category><![CDATA[Yahoo!]]></category>
		<category><![CDATA[YUI]]></category>

		<guid isPermaLink="false">http://ajaxian.com/archives/ypulse-fades-and-pulsations-library</guid>
		<description><![CDATA[Kent Johnson has released YPulse a simple open source wrapper for the YUI Animation library that makes creating highlight fades and pulsing button glows a bit easier. You pulse away with something like: PLAIN TEXT JAVASCRIPT: &#160; var pulser = new YAHOO.squarebits.YPulse&#40; &#160; â€˜my-divâ€™, &#160; â€˜backgroundColorâ€™, &#160; â€˜#FFFFFFâ€™, // starting &#160; â€˜#FFFF00â€², // ending &#160; <a href="http://ajaxian.com/archives/ypulse-fades-and-pulsations-library">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>Kent Johnson has released <a href="http://blog.trendics.com/development/yui/using-yui-to-pulse-elements-on-web-pages-to-improve-usability/">YPulse</a> a simple open source wrapper for the YUI Animation library that makes creating highlight fades and pulsing button glows a bit easier.</p>
<p>You pulse away with something like:</p>
<div class="igBar"><a href="javascript:showCodeTxt('javascript-22');">PLAIN TEXT</a></div>
<div class="syntax_hilite"><span style="color:#000000; font-weight:bold;">JAVASCRIPT:</span>
<div id="javascript-22">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">var</span> pulser = <span style="color: #003366; font-weight: bold;">new</span> YAHOO.<span style="color: #006600;">squarebits</span>.<span style="color: #006600;">YPulse</span><span style="color:#006600; font-weight:bold;">&#40;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; â€˜my-divâ€™,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; â€˜backgroundColorâ€™,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; â€˜#FFFFFFâ€™, <span style="color: #009900; font-style: italic;">// starting</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; â€˜#FFFF00â€², <span style="color: #009900; font-style: italic;">// ending</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#800000;">0</span>.<span style="color:#800000;">75</span>, <span style="color: #009900; font-style: italic;">// The number of seconds for the start-end transition</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#800000;">0</span>.<span style="color:#800000;">10</span>, <span style="color: #009900; font-style: italic;">// The number of seconds to wait after completing the start-end transition</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#800000;">0</span>.<span style="color:#800000;">75</span>, <span style="color: #009900; font-style: italic;">// The number of seconds for the end-start transition</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#800000;">0</span>.<span style="color:#800000;">75</span>, <span style="color: #009900; font-style: italic;">// The number of seconds to wait after completing the end-start transition</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; YAHOO.<span style="color: #006600;">util</span>.<span style="color: #006600;">Easing</span>.<span style="color: #006600;">easeBoth</span>, <span style="color: #009900; font-style: italic;">// The YAHOO easing method to use for the start-end transition</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; YAHOO.<span style="color: #006600;">util</span>.<span style="color: #006600;">Easing</span>.<span style="color: #006600;">easeBoth</span> <span style="color: #009900; font-style: italic;">// The YAHOO easing method to use for the end-start transition</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="color:#000000; font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
</ol>
</div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/ypulse-fades-and-pulsations-library/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>dragtable: drag-and-drop reorderable columns for an HTML table</title>
		<link>http://ajaxian.com/archives/dragtable-drag-and-drop-reorderable-columns-for-an-html-table</link>
		<comments>http://ajaxian.com/archives/dragtable-drag-and-drop-reorderable-columns-for-an-html-table#comments</comments>
		<pubDate>Fri, 27 Jun 2008 14:20:52 +0000</pubDate>
		<dc:creator>Dion Almaer</dc:creator>
				<category><![CDATA[Component]]></category>
		<category><![CDATA[Front Page]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://ajaxian.com/?p=3800</guid>
		<description><![CDATA[Dan Vanderkam has announced a new component dragtable: Over the past several years, Stuart Langridgeâ€™s sorttable Javascript library has found widespread use. Itâ€™s easy to see why. Just add class=sortable to a table tag and its column headers automatically support click to sort. Pretty slick. But sometimes sorting just isnâ€™t enough. What if you want <a href="http://ajaxian.com/archives/dragtable-drag-and-drop-reorderable-columns-for-an-html-table">Read the rest...</a>]]></description>
			<content:encoded><![CDATA[<p>Dan Vanderkam has <a href="http://www.danvk.org/wp/2008-06-12/draggable-table-columns/">announced</a> a new component <a href="http://danvk.org/dragtable/">dragtable</a>:</p>
<blockquote><p>
Over the past several years, Stuart Langridgeâ€™s <a href="http://www.kryogenix.org/code/browser/sorttable/">sorttable</a> Javascript library has found widespread use. Itâ€™s easy to see why. Just add class=sortable to a table tag and its column headers automatically support click to sort. Pretty slick.</p>
<p>But sometimes sorting just isnâ€™t enough. What if you want to focus on just one or two of the columns in a table? In a client-side application you could drag the columns you care about next to each other. Why not in a web application?</p>
<p>Enter dragtable. Like sorttable, it teaches HTML tables a new trick through a simple class attribute.
</p></blockquote>
<p>Once you have the JavaScript in place, you can simply add a <code>class="draggable"</code>, and you can even work with both via <code>class="draggable sortable"</code></p>
<p>Take a peak at a <a href="http://danvk.org/dragtable/demo.html">test bed</a>, and the <a href="http://code.google.com/p/dragtable/">open source project</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ajaxian.com/archives/dragtable-drag-and-drop-reorderable-columns-for-an-html-table/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>

