<?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>Ajax Bestiary &#187; Widget</title>
	<atom:link href="http://www.ajaxbestiary.com/tag/widget/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ajaxbestiary.com</link>
	<description>AJAX Development, News, Techniques &#38; More</description>
	<lastBuildDate>Sat, 19 Jun 2010 13:43:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Helpful error handling in jQuery</title>
		<link>http://www.ajaxbestiary.com/2009/12/02/helpful-error-handling-in-jquery/</link>
		<comments>http://www.ajaxbestiary.com/2009/12/02/helpful-error-handling-in-jquery/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 22:10:02 +0000</pubDate>
		<dc:creator>Dave Mahon</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Widget]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[console]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[error handling]]></category>

		<guid isPermaLink="false">http://www.ajaxbestiary.com/?p=378</guid>
		<description><![CDATA[

If you’re going to build a reusable tool, you’re going to want to be able to detect, handle and report error messages in a nice, clean way. It will make you and any other dev happy.
The cleanest way of handling genuine errors for developers using your tool &#8211; namely, invalid input sent to a function [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p>If you’re going to build a reusable tool, you’re going to want to be able to detect, handle and report error messages in a nice, clean way. It will make you and any other dev happy.</p>
<p>The cleanest way of handling genuine errors for developers using your tool &#8211; namely, invalid input sent to a function in the library – is to log it to the console. Doing so is refreshingly straightforward:</p>
<p><code></p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> err <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Error<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
err.<span style="color: #000066;">name</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;jQuery.widget.UI.clicker.range()&quot;</span><span style="color: #339933;">;</span>
err.<span style="color: #660066;">message</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;Both values must be numeric to assign range&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">throw</span><span style="color: #009900;">&#40;</span>err<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p></code></p>
<p>This snippet comes straight from the widget I threw together. I encourage you to make the name as detailed as possible. It will make debugging so much easier. You can even pinpoint the exact point of error if the problem was say, an invalid query syntax. (Handy during the development phase; not so much in a production environment!)</p>
<p><img src="http://www.ajaxbestiary.com/?voyeur=1"></p>
<!-- google_ad_section_end -->
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxbestiary.com/2009/12/02/helpful-error-handling-in-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Custom stateful jQuery widgets</title>
		<link>http://www.ajaxbestiary.com/2009/11/30/custom-stateful-jquery-widgets/</link>
		<comments>http://www.ajaxbestiary.com/2009/11/30/custom-stateful-jquery-widgets/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 00:28:27 +0000</pubDate>
		<dc:creator>Dave Mahon</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Widget]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Widget Factory]]></category>

		<guid isPermaLink="false">http://www.ajaxbestiary.com/?p=370</guid>
		<description><![CDATA[The widget library included in jQuery UI is pretty cool, but sometimes you need to roll your own custom object. If it didn’t have to be reusable, you could always just use a whole slew of bind methods on a specific page. Likewise, if network bandwidth and latency weren’t an issue, you could just store everything server-side and make heavy use of XHR.]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p>The widget library included in <a href="http://docs.jquery.com/UI">jQuery UI</a> is pretty cool, but sometimes you need to roll your own custom object. If it didn’t have to be reusable, you could always just use a whole slew of <a href="http://docs.jquery.com/Events/bind#typedatafn">bind methods</a> on a specific page. Likewise, if network bandwidth and latency weren’t an issue, you could just store everything server-side and make heavy use of XmlHttpRequest.</p>
<p>Of course we don’t live in that ideal world and so we need to store data locally and our objects inevitably need to be reused. Enter the <a href="http://nemikor.com/presentations/jQuery-UI-Widget-Factory.pdf">jQuery Widget Factory</a>. This nifty feature set included in jQuery UI satisfies all of these needs.</p>
<p>Further, implementing custom widgets is pretty easy. First, we’ll initialize the widget:</p>
<p><code></p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$.<span style="color: #660066;">widget</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'ui.widgetname'</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span> _init<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> … <span style="color: #009900;">&#125;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p></code></p>
<p>Then we’ll set any defaults:</p>
<p><code></p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$.<span style="color: #660066;">ui</span>.<span style="color: #660066;">widgetname</span>.<span style="color: #660066;">defaults</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span> … <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></div></div>

<p></code></p>
<p>Obviously, this can and should be in its own file. Then on the specific web page, we can instantiate the widget:</p>
<p><code></p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span>target<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">widgetname</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p></code></p>
<p>This affords us the flexibility to reuse the widget multiple times on the same page and across pages and sites. Tomorrow we’ll start working up a rather basic example of this.</p>
<p>Before then, note that we use the widgetname consistently in its definition and instantiation, so choose the name wisely. Collisions in the $.ui namespace seem unlikely, but in very complex applications, that is always a possibility.</p>
<p>You’ll also note that in the widget’s definition we included only an _init function. This is the generic constructor for the widget and the only required method; feel free to add more as needed. The underscore prefix declares the method “private” and can be used to prefix any function in the widget declaration. This being JavaScript, we know that hidden named functions are quite impossible, but it does conceal the method from the now deprecated <code>$(element).plugin('function')</code>.</p>
<p><img src="http://www.ajaxbestiary.com/?voyeur=1"></p>
<!-- google_ad_section_end -->
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxbestiary.com/2009/11/30/custom-stateful-jquery-widgets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>YUI Calendar Popup from Text Input</title>
		<link>http://www.ajaxbestiary.com/2008/10/19/yui-calendar-popup-from-text-input/</link>
		<comments>http://www.ajaxbestiary.com/2008/10/19/yui-calendar-popup-from-text-input/#comments</comments>
		<pubDate>Mon, 20 Oct 2008 01:05:20 +0000</pubDate>
		<dc:creator>Don Albrecht</dc:creator>
				<category><![CDATA[Widget]]></category>
		<category><![CDATA[YUI]]></category>
		<category><![CDATA[calendar]]></category>

		<guid isPermaLink="false">http://www.ajaxbestiary.com/?p=327</guid>
		<description><![CDATA[

I needed a way to provide my users with a date picker that was automatically provided when a text area received focus.  I was eager to use the excellent YUI calendar as a starting point, but the provided documentation didn&#8217;t provide a solid example for this type of implementation.
Dav Glass has provided a solid example [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p>I needed a way to provide my users with a date picker that was automatically provided when a text area received focus.  I was eager to use the excellent <a title="Yui Calendar Documentation" href="http://developer.yahoo.com/yui/calendar/">YUI calendar</a> as a starting point, but the provided documentation didn&#8217;t provide a solid example for this type of implementation.</p>
<p>Dav Glass has provided a solid example of the<a href="http://blog.davglass.com/files/yui/cal2/"> Calendar tied to a text input</a>. But, his example is highly dependent on the text input having specific ids.  This doesn&#8217;t take advantage of YUI&#8217;s excellent Selector library really didn&#8217;t meet my need for a simple universal solution.</p>
<h2><span style="font-weight: normal;">K</span>ey Requirements:</h2>
<ol>
<li>Progressive Enhancement (No inline javascript)</li>
<li>Yui based</li>
<li>Universal implementation across all pages in a site.</li>
<li>Support for multiple date inputs on a page.</li>
</ol>
<h2>Getting Started:</h2>
<div>The bulk of the code used is pretty solidly Dav&#8217;s I&#8217;ve simply replaced all of the hard coded references to dynamically generated targets and moved from hard coded ID&#8217;s for the target fields to a css class.  Lastly, I&#8217;ve added a &#8220;activeCal&#8221; class to the currently active target input so that one calendar can be recycled across multiple text areas on the page.</div>
<h2>Source:</h2>
<p><code></p>
<div>var cal1;</div>
<div>var over_cal = false;</div>
<div>function transmogCals() {</div>
<div>    cal1 = new YAHOO.widget.Calendar("cal1","cal1Container");</div>
<div>    cal1.selectEvent.subscribe(getDate, cal1, true);</div>
<div>    cal1.renderEvent.subscribe(setupListeners, cal1, true);</div>
<div>    var pickers =  YAHOO.util.Selector.query('.date-picker'); </div>
<div>for( i in pickers){</div>
<div>    YAHOO.util.Event.addListener(pickers[i], 'focus', showCal);</div>
<div>    YAHOO.util.Event.addListener(pickers[i], 'blur', hideCal);</div>
<div>    }</div>
<div>cal1.render();</div>
<div>}</div>
<div>function setupListeners() {</div>
<div>    YAHOO.util.Event.addListener('cal1Container', 'mouseover', overCal);</div>
<div>    YAHOO.util.Event.addListener('cal1Container', 'mouseout', outCal);</div>
<div>}</div>
<div>function getDate() {</div>
<div>        var calDate = this.getSelectedDates()[0];</div>
<div>        calDate = (calDate.getMonth() + 1) + '/' + calDate.getDate() + '/' + calDate.getFullYear();</div>
<div>        YAHOO.util.Selector.query('.activeCal')[0].value = calDate;</div>
<div>        over_cal = false;</div>
<div>        hideCal();</div>
<div>}</div>
<div>function showCal(e, targ) {</div>
<div>    var xy = YAHOO.util.Dom.getXY(this);</div>
<div>    var el = new YAHOO.util.Element(this); </div>
<div>    el.addClass('activeCal');</div>
<div>    var date = this.value;</div>
<div>    if (date) {</div>
<div>        cal1.cfg.setProperty('selected', date);</div>
<div>        cal1.cfg.setProperty('pagedate', new Date(date), true);</div>
<div>        cal1.render();</div>
<div>    }</div>
<div>    YAHOO.util.Dom.setStyle('cal1Container', 'display', 'block');</div>
<div>    xy[1] = xy[1] + 20;</div>
<div>    YAHOO.util.Dom.setXY('cal1Container', xy);</div>
<div>}</div>
<div>function hideCal() {</div>
<div>    if (!over_cal) {</div>
<div>         var el = new YAHOO.util.Element(this); </div>
<div>        el.removeClass('activeCal');</div>
<div>        YAHOO.util.Dom.setStyle('cal1Container', 'display', 'none');</div>
<div>    }</div>
<div>}</div>
<div>function overCal() {</div>
<div>    over_cal = true;</div>
<div>}</div>
<div>function outCal() {</div>
<div>    over_cal = false;</div>
<div>}</div>
<div>YAHOO.util.Event.addListener(window, 'load', transmogCals);</div>
<p></code></p>
<p> </p>
<h2>Adding it to your page</h2>
<p>Integrating the code into the page is VERY easy.</p>
<p>In the header of the page add the following css includes.</p>
<pre>&lt;link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/combo?2.6.0/build/calendar/assets/skins/sam/calendar.css"&gt;</pre>
<div><span>In the footer add the following script include and include the date-picker.js file</span></div>
<div>
<table class="dp-xml" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="line2"><span class="tag">&lt;</span><span>script </span><span class="attribute">type</span><span>=</span><span class="attribute-value">&#8220;text/javascript&#8221;</span><span> </span><span class="attribute">src</span><span>=</span><span class="attribute-value">&#8220;http://yui.yahooapis.com/combo?2.6.0/build/yahoo-dom-event/yahoo-dom-event.js&amp;2.6.0/build/calendar/calendar-min.js&amp;2.6.0/build/selector/selector-beta-min.js&#8221;</span><span>&gt;</span><span class="tag">&lt;/</span><span>script</span><span class="tag">&gt;</span><span> </span></td>
</tr>
</tbody>
<thead></thead>
</table>
</div>
<div>Lastly, place a class of date-picker to any text fields you want to tie to the input and add the following to your pages markup:</div>
<p> </p>
<p><code></p>
<div>&lt;div class='yui-skin-sam' style="position:absolute; left:-1000px;"&gt;</div>
<div>     &lt;div id="cal1Container"&gt;&lt;/div&gt;</div>
<div>   &lt;/div&gt;</div>
<p></code></p>
<p><img src="http://www.ajaxbestiary.com/?voyeur=1"></p>
<!-- google_ad_section_end -->
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxbestiary.com/2008/10/19/yui-calendar-popup-from-text-input/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Ajax24&#8217;s Drop Tabs.  A Creative Take on The Tab Box for Scriptaculous</title>
		<link>http://www.ajaxbestiary.com/2008/04/06/ajax24s-drop-tabs-a-creative-take-on-the-tab-box-for-scriptaculous/</link>
		<comments>http://www.ajaxbestiary.com/2008/04/06/ajax24s-drop-tabs-a-creative-take-on-the-tab-box-for-scriptaculous/#comments</comments>
		<pubDate>Mon, 07 Apr 2008 02:18:06 +0000</pubDate>
		<dc:creator>Don Albrecht</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[Scriptaculous]]></category>
		<category><![CDATA[Widget]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[tabs]]></category>

		<guid isPermaLink="false">http://www.ajaxbestiary.com/?p=314</guid>
		<description><![CDATA[

Tab Boxes are one of the most ubiquitous and popular of widgets.  They pop up in everything from news sites to accounting software and for good reason.  After all, tabs are one of the simplest and most efficient ways to cram more into a given block of screen real-estate than would fit otherwise.

Ajax24&#8217;s [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p>Tab Boxes are one of the most ubiquitous and popular of widgets.  They pop up in everything from news sites to accounting software and for good reason.  After all, tabs are one of the simplest and most efficient ways to cram more into a given block of screen real-estate than would fit otherwise.</p>
<p><a href="http://www.ajaxbestiary.com/wp-content/uploads/2008/04/ajax24tabs.png"><img class="alignnone size-full wp-image-315" title="ajax24tabs" src="http://www.ajaxbestiary.com/wp-content/uploads/2008/04/ajax24tabs.png" alt="" width="500" height="104" /></a></p>
<p>Ajax24&#8217;s drop tabs replace the normal tab-box behavior concept with a twist.  THese tabs pull blocks of content down from a tab bar to make them available and float them above the background content. (think window blinds or drawers as opposed to tabbed sheets of paper).  I have a few reservations about the use of a widget with such slightly unconventional behavior.  But all in all, the smooth motions of the widget and it&#8217;s novelty surely warrant exploration in more playful interfaces.</p>
<p>You can find the widget at</p>
<p><a href="http://www.flash-free.org/en/2008/04/05/e24tabmenu-–-menu-desplegable-ajax/">http://www.flash-free.org/en/2008/04/05/e24tabmenu-–-menu-desplegable-ajax/</a></p>
<p><img src="http://www.ajaxbestiary.com/?voyeur=1"></p>
<!-- google_ad_section_end -->
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxbestiary.com/2008/04/06/ajax24s-drop-tabs-a-creative-take-on-the-tab-box-for-scriptaculous/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Widget.Blender Smooth Image Morphs For Prototype</title>
		<link>http://www.ajaxbestiary.com/2008/01/11/widgetblender-smooth-image-morphs-for-prototype/</link>
		<comments>http://www.ajaxbestiary.com/2008/01/11/widgetblender-smooth-image-morphs-for-prototype/#comments</comments>
		<pubDate>Fri, 11 Jan 2008 14:27:03 +0000</pubDate>
		<dc:creator>Don Albrecht</dc:creator>
				<category><![CDATA[Scriptaculous]]></category>
		<category><![CDATA[Widget]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[Image]]></category>

		<guid isPermaLink="false">http://www.ajaxbestiary.com/2008/01/11/widgetblender-smooth-image-morphs-for-prototype/</guid>
		<description><![CDATA[

Widget.Blender is a handy prototype class to smoothly animate a fade/morph transition between images
Features

Start &#38; Stop can be triggered by events
Autosizing &#38; Wrapping can be controlled
Ability to set a standard base url / dir for all images
Ability to start at any arbitrary image
Ability to run arbitrary function before blend (Useful for setting caption to display [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p>Widget.Blender is a handy prototype class to smoothly animate a fade/morph transition between images</p>
<p>Features</p>
<ul>
<li>Start &amp; Stop can be triggered by events</li>
<li>Autosizing &amp; Wrapping can be controlled</li>
<li>Ability to set a standard base url / dir for all images</li>
<li>Ability to start at any arbitrary image</li>
<li>Ability to run arbitrary function before blend (Useful for setting caption to display along with image)</li>
<li>Supported Browsers:
<ul>
<li>Firefox 2</li>
<li>Opera 9</li>
<li>IE 6</li>
<li>IE 7</li>
<li>Safari</li>
</ul>
</li>
</ul>
<p>Check out Widget.Blender at:</p>
<p><a href="http://www.eternal.co.za/scripts/blender/index.html">http://www.eternal.co.za/scripts/blender/index.html </a></p>
<p><img src="http://www.ajaxbestiary.com/?voyeur=1"></p>
<!-- google_ad_section_end -->
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxbestiary.com/2008/01/11/widgetblender-smooth-image-morphs-for-prototype/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Making The Browser &quot;Aware&quot; of AJAX Requests</title>
		<link>http://www.ajaxbestiary.com/2008/01/10/making-the-browser-aware-of-ajax-requests/</link>
		<comments>http://www.ajaxbestiary.com/2008/01/10/making-the-browser-aware-of-ajax-requests/#comments</comments>
		<pubDate>Thu, 10 Jan 2008 14:05:53 +0000</pubDate>
		<dc:creator>Don Albrecht</dc:creator>
				<category><![CDATA[Widget]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[Behavior]]></category>

		<guid isPermaLink="false">http://www.ajaxbestiary.com/2008/01/10/making-the-browser-aware-of-ajax-requests/</guid>
		<description><![CDATA[

I recently discovered a fascinating prototype extension called LOAJAX.  While the effect of the extension is a bit hard to describe, it&#8217;s immediately obvious when you try the demo&#8217;s with and without it.  Basically, LOAJAX uses an iFrame crutch to make the browser display all of the interface elements associated with a page [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p>I recently discovered a fascinating prototype extension called LOAJAX.  While the effect of the extension is a bit hard to describe, it&#8217;s immediately obvious when you try the demo&#8217;s with and without it.  Basically, LOAJAX uses an iFrame crutch to make the browser display all of the interface elements associated with a page load.</p>
<p>How it works:</p>
<ol>
<li><font color="#333333">A normal AJAX XMLHttpRequest is triggered by the AJAX application.</font></li>
<li><font color="#333333">LOAJAX creates a hidden iframe that points to a server script. </font></li>
<li><font color="#333333">The browser displays loading behavior while the iframe loads its source.</font></li>
<li><font color="#333333">The Server Script consists of a massive wait so the load never completes.</font></li>
<li><font color="#333333">When the XMLHttpRequest is completed, LOAJAX stops the iframe load and removes it from the DOM.</font></li>
<li><font color="#333333">The browser stops displaying page load indicators.</font></li>
</ol>
<p>You can find more about LOAJAX and check out the demo here:</p>
<p><a href="http://blog.loajax.com/" title="http://blog.loajax.com/">http://blog.loajax.com/</a></p>
<p><img src="http://www.ajaxbestiary.com/?voyeur=1"></p>
<!-- google_ad_section_end -->
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxbestiary.com/2008/01/10/making-the-browser-aware-of-ajax-requests/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery Corners</title>
		<link>http://www.ajaxbestiary.com/2008/01/09/jquery-corners/</link>
		<comments>http://www.ajaxbestiary.com/2008/01/09/jquery-corners/#comments</comments>
		<pubDate>Wed, 09 Jan 2008 14:38:00 +0000</pubDate>
		<dc:creator>Don Albrecht</dc:creator>
				<category><![CDATA[Widget]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[effects]]></category>

		<guid isPermaLink="false">http://www.ajaxbestiary.com/2008/01/09/jquery-corners/</guid>
		<description><![CDATA[


I covered the Prototype port of this plugin a while ago, but recently realized that I had neglected to cover the original version.  jQuery corners is an excellent library for adding quick corner effects to your pages in a graceful and unobtrusive way.
Here are some highlights of the plugin&#8217;s capabilities:

A whole slew of effects [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p><img src="http://www.ajaxbestiary.com/wp-content/uploads/2007/12/protocorner.png" alt="Proto Corner" /></p>
<p>I covered the Prototype port of this plugin a while ago, but recently realized that I had neglected to cover the original version.  jQuery corners is an excellent library for adding quick corner effects to your pages in a graceful and unobtrusive way.</p>
<p>Here are some highlights of the plugin&#8217;s capabilities:</p>
<ul>
<li>A whole slew of effects is available.</li>
<li>The width and height of the adornment area can be changed to vary the effect.</li>
<li> You can apply different effects to top and bottom corners, or apply an effect to specific corners.</li>
<li> Boxes to be adorned are selected using the standard JQuery $() element selector function.</li>
<li> No special markup is required; display falls back to unadorned corners when Javascript is off.</li>
<li> You can define your own custom corner effects that the plugin will use.</li>
</ul>
<p>Learn more about the plugin at<br />
<a href="http://www.methvin.com/jquery/jq-corner.html">http://www.methvin.com/jquery/jq-corner.html</a></p>
<p><img src="http://www.ajaxbestiary.com/?voyeur=1"></p>
<!-- google_ad_section_end -->
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxbestiary.com/2008/01/09/jquery-corners/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Meet Nicedit, A full featured, lightweight Rich Text Area without Library Dependencies</title>
		<link>http://www.ajaxbestiary.com/2007/12/20/meet-nicedit-a-full-featured-lightweight-rich-text-area-without-library-dependencies/</link>
		<comments>http://www.ajaxbestiary.com/2007/12/20/meet-nicedit-a-full-featured-lightweight-rich-text-area-without-library-dependencies/#comments</comments>
		<pubDate>Thu, 20 Dec 2007 15:39:20 +0000</pubDate>
		<dc:creator>Don Albrecht</dc:creator>
				<category><![CDATA[Widget]]></category>
		<category><![CDATA[rich text area]]></category>
		<category><![CDATA[text editor]]></category>

		<guid isPermaLink="false">http://www.ajaxbestiary.com/2007/12/20/meet-nicedit-a-full-featured-lightweight-rich-text-area-without-library-dependencies/</guid>
		<description><![CDATA[

 
We&#8217;ve seen several of these lightweight alternatives to the traditional full featured text editors lately.  NicEdit is a fitting addition to the collection.
 Features:

No Library dependencies (Great when you only need a text area)
Flexible interface sizing
Under 10KB compressed
Only 2 files (JS &#38; Icons)
Supports: IE 5.5+ / FF 2+ / Opera 9+ / Safari 3+
Inline editing with [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p> <img src="http://www.ajaxbestiary.com/wp-content/uploads/2007/12/nicedit.png" alt="Nice Edit Screen Shot" /></p>
<p>We&#8217;ve seen several of these lightweight alternatives to the traditional full featured text editors lately.  NicEdit is a fitting addition to the collection.</p>
<p><strong> Features:</strong></p>
<ul>
<li>No Library dependencies (Great when you only need a text area)</li>
<li>Flexible interface sizing</li>
<li>Under 10KB compressed</li>
<li>Only 2 files (JS &amp; Icons)</li>
<li>Supports: IE 5.5+ / FF 2+ / Opera 9+ / Safari 3+</li>
<li>Inline editing with remote tool panel</li>
<li>Ajax Support</li>
<li>Highly configurable button set</li>
</ul>
<p>All in all, this is a nice widget that has several features not found in other Rich Text Editors.  A worthy addition to the Ajax ecosystem.<br />
You can find NicEdit at <a href="http://nicedit.com/index.php">http://nicedit.com/index.php</a></p>
<p><img src="http://www.ajaxbestiary.com/?voyeur=1"></p>
<!-- google_ad_section_end -->
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxbestiary.com/2007/12/20/meet-nicedit-a-full-featured-lightweight-rich-text-area-without-library-dependencies/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Amazing 3d JS Gallery Widget</title>
		<link>http://www.ajaxbestiary.com/2007/12/11/amazing-3d-js-gallery-widget/</link>
		<comments>http://www.ajaxbestiary.com/2007/12/11/amazing-3d-js-gallery-widget/#comments</comments>
		<pubDate>Tue, 11 Dec 2007 14:26:57 +0000</pubDate>
		<dc:creator>Don Albrecht</dc:creator>
				<category><![CDATA[Misc Toolkits]]></category>
		<category><![CDATA[Widget]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[gallery]]></category>

		<guid isPermaLink="false">http://www.ajaxbestiary.com/2007/12/11/amazing-3d-js-gallery-widget/</guid>
		<description><![CDATA[

Here&#8217;s a pretty spectacular JS based image gallery with source.  The entire gallery is a 3d fish eye interface.  It&#8217;s incredibly easy to use, visually impressive and toolkit agnostic.  It&#8217;s performance isn&#8217;t as good as some flash based options &#38; I personally find some of the translucency to be distracting rather than conducive to the [...]]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p><img src="http://www.ajaxbestiary.com/wp-content/uploads/2007/12/3dgallery.jpg" alt="Gallery Sequence" /><br class="webkit-block-placeholder" />Here&#8217;s a pretty spectacular JS based image gallery with source.  The entire gallery is a 3d fish eye interface.  It&#8217;s incredibly easy to use, visually impressive and toolkit agnostic.  It&#8217;s performance isn&#8217;t as good as some flash based options &amp; I personally find some of the translucency to be distracting rather than conducive to the design. All in all, this is a great gallery widget for those times you need something more impressive than traditional carousels &amp; lighbox / thickbox implementation  Check it out here: <a href="http://www.dhteumeuleu.com/runscript.php?scr=photo3D.html">http://www.dhteumeuleu.com/</a> via <a href="http://www.webappers.com/2007/12/11/interactive-photo-3d-gallery-with-zooming-in-out/">webappers </a></p>
<p><img src="http://www.ajaxbestiary.com/?voyeur=1"></p>
<!-- google_ad_section_end -->
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxbestiary.com/2007/12/11/amazing-3d-js-gallery-widget/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ProtoCorners: Simple Corner Styling for Prototype</title>
		<link>http://www.ajaxbestiary.com/2007/12/07/protocorners-simple-corner-styling-for-prototype/</link>
		<comments>http://www.ajaxbestiary.com/2007/12/07/protocorners-simple-corner-styling-for-prototype/#comments</comments>
		<pubDate>Fri, 07 Dec 2007 15:45:21 +0000</pubDate>
		<dc:creator>Don Albrecht</dc:creator>
				<category><![CDATA[prototype]]></category>
		<category><![CDATA[Styling]]></category>
		<category><![CDATA[Widget]]></category>

		<guid isPermaLink="false">http://www.ajaxbestiary.com/2007/12/07/protocorners-simple-corner-styling-for-prototype/</guid>
		<description><![CDATA[

Alright, so sometimes you need to throw a little extra style into a project, a bevel there, rounded corner here.  Proto.Corners allows you to simply generate them programatically. Get it at nurey.com


]]></description>
			<content:encoded><![CDATA[
<!-- google_ad_section_start -->
<p><img src="http://www.ajaxbestiary.com/wp-content/uploads/2007/12/protocorner.png" alt="Proto Corner" />Alright, so sometimes you need to throw a little extra style into a project, a bevel there, rounded corner here.  Proto.Corners allows you to simply generate them programatically. Get it at <a href="http://nurey.com/corners.html">nurey.com</a></p>
<p><img src="http://www.ajaxbestiary.com/?voyeur=1"></p>
<!-- google_ad_section_end -->
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxbestiary.com/2007/12/07/protocorners-simple-corner-styling-for-prototype/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
