<?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>trickeries! &#187; javascript</title>
	<atom:link href="http://trickeries.com/tag/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://trickeries.com</link>
	<description>it's tricky to rock a style thats liked online</description>
	<lastBuildDate>Tue, 02 Mar 2010 06:01:56 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Purr &#8211; a MooTools notifications / alert class.</title>
		<link>http://trickeries.com/876/purr-a-mootools-notifications-alert-class./</link>
		<comments>http://trickeries.com/876/purr-a-mootools-notifications-alert-class./#comments</comments>
		<pubDate>Tue, 02 Mar 2010 06:01:56 +0000</pubDate>
		<dc:creator>atom</dc:creator>
				<category><![CDATA[projects]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mootools]]></category>
		<category><![CDATA[project]]></category>

		<guid isPermaLink="false">http://trickeries.com/?p=876</guid>
		<description><![CDATA[I have written up a notifications / alert class for a recent project and thought I would share it. Too much to go into in a post, so there is a big page for it here.
Before anyone brings it up, this is not yet in the MooTools Forge, but it will be soon assuming I [...]]]></description>
			<content:encoded><![CDATA[<p>I have written up a notifications / alert class for a recent project and thought I would share it. Too much to go into in a post, so there is <a href="http://trickeries.com/purr">a big page for it here</a>.</p>
<p>Before anyone brings it up, this is not yet in the <a href="http://mootools.net/forge/">MooTools Forge</a>, but it will be soon assuming I don&#8217;t become distracted by something else&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://trickeries.com/876/purr-a-mootools-notifications-alert-class./feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MooTools Tips extension: Tips.Glossary</title>
		<link>http://trickeries.com/480/mootools-tips-extension-tipsglossary/</link>
		<comments>http://trickeries.com/480/mootools-tips-extension-tipsglossary/#comments</comments>
		<pubDate>Mon, 11 May 2009 01:25:29 +0000</pubDate>
		<dc:creator>atom</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mootools]]></category>
		<category><![CDATA[toy]]></category>

		<guid isPermaLink="false">http://trickeries.com/?p=480</guid>
		<description><![CDATA[This is just a little something I whipped up because I found it useful.  Tips.Glossary is used for helpful tool-tips that gracefully degrade when JavaScript is not available for whatever reason.  The basic idea is that you include an HTML glossary in the page, and if Tips.Glossary is available, the tips will come [...]]]></description>
			<content:encoded><![CDATA[<p>This is just a little something I whipped up because I found it useful.  Tips.Glossary is used for helpful tool-tips that gracefully degrade when JavaScript is not available for whatever reason.  The basic idea is that you include an HTML glossary in the page, and if Tips.Glossary is available, the tips will come up however you specify, if not, they are simply anchors to their entries in the HTML.</p>
<p>This probably works with most MooTools stuff post 1.2, you are smart and will figure it out.</p>
<h2><a href="/demo/Tips.Glossary/">Check it out here</a>.</p>
<h2><a href="/demo/Tips.Glossary/Tips.Glossary.Example.zip">Download the example</a>.</p>
<h3>or have a look at the code:</h3>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">Selectors.<span style="color: #0066FF;">Pseudo</span>.<span style="color: #0066FF;">hash</span> <span style="color: #339933;">=</span> <span style="color: #FF00FF; font-weight: bold;">function</span><span style="color: #99FF00;">&#40;</span>hash<span style="color: #99FF00;">&#41;</span><span style="color: #99FF00;">&#123;</span>
	<span style="color: #00FF00; font-weight: bold;">if</span><span style="color: #99FF00;">&#40;</span><span style="color: #339933;">!</span>$chk<span style="color: #99FF00;">&#40;</span>hash<span style="color: #99FF00;">&#41;</span><span style="color: #99FF00;">&#41;</span>
		<span style="color: #00FF00; font-weight: bold;">return</span> <span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">get</span><span style="color: #99FF00;">&#40;</span><span style="color: #3366CC;">'href'</span><span style="color: #99FF00;">&#41;</span>.<span style="color: #0066FF;">contains</span><span style="color: #99FF00;">&#40;</span><span style="color: #3366CC;">'#'</span><span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #FF00FF; font-weight: bold;">var</span> currentHash <span style="color: #339933;">=</span> <span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">get</span><span style="color: #99FF00;">&#40;</span><span style="color: #3366CC;">'href'</span><span style="color: #99FF00;">&#41;</span>.<span style="color: #0066FF;">split</span><span style="color: #99FF00;">&#40;</span><span style="color: #3366CC;">'#'</span><span style="color: #99FF00;">&#41;</span><span style="color: #99FF00;">&#91;</span><span style="color: #FFFF00;">1</span><span style="color: #99FF00;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #00FF00; font-weight: bold;">return</span> currentHash <span style="color: #339933;">===</span> hash<span style="color: #339933;">;</span>
<span style="color: #99FF00;">&#125;</span>
&nbsp;
&nbsp;
Tips.<span style="color: #0066FF;">Glossary</span> <span style="color: #339933;">=</span> <span style="color: #FF00FF; font-weight: bold;">new</span> <span style="color: #FF00FF; font-weight: bold;">Class</span><span style="color: #99FF00;">&#40;</span><span style="color: #99FF00;">&#123;</span>
&nbsp;
	<span style="color: #FF00FF; font-weight: bold;">Extends</span><span style="color: #339933;">:</span> Tips<span style="color: #339933;">,</span>
&nbsp;
	options<span style="color: #339933;">:</span> <span style="color: #99FF00;">&#123;</span>
		<span style="color: #3366CC;">'anchorClass'</span><span style="color: #339933;">:</span>	<span style="color: #FF00FF; font-weight: bold;">false</span><span style="color: #339933;">,</span>
		<span style="color: #3366CC;">'hideGlossary'</span><span style="color: #339933;">:</span>	<span style="color: #FF00FF; font-weight: bold;">true</span>
	<span style="color: #99FF00;">&#125;</span><span style="color: #339933;">,</span>
&nbsp;
	initialize<span style="color: #339933;">:</span> <span style="color: #FF00FF; font-weight: bold;">function</span><span style="color: #99FF00;">&#40;</span>glossary<span style="color: #339933;">,</span> options<span style="color: #99FF00;">&#41;</span><span style="color: #99FF00;">&#123;</span>
		<span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">parent</span><span style="color: #99FF00;">&#40;</span>options<span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">glossary</span> <span style="color: #339933;">=</span> $<span style="color: #99FF00;">&#40;</span>glossary<span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #00FF00; font-weight: bold;">if</span><span style="color: #99FF00;">&#40;</span><span style="color: #339933;">!</span>$chk<span style="color: #99FF00;">&#40;</span><span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">glossary</span><span style="color: #99FF00;">&#41;</span><span style="color: #99FF00;">&#41;</span>
			<span style="color: #00FF00; font-weight: bold;">throw</span> <span style="color: #3366CC;">&quot;Glossary not found / defined, quitting&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #00FF00; font-weight: bold;">if</span><span style="color: #99FF00;">&#40;</span><span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">options</span>.<span style="color: #0066FF;">hideGlossary</span><span style="color: #99FF00;">&#41;</span>
			<span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">glossary</span>.<span style="color: #0066FF;">setStyle</span><span style="color: #99FF00;">&#40;</span><span style="color: #3366CC;">'display'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'none'</span><span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">indexGlossary</span><span style="color: #99FF00;">&#40;</span><span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #00FF00; font-weight: bold;">return</span> <span style="color: #00FF00; font-weight: bold;">this</span><span style="color: #339933;">;</span>
	<span style="color: #99FF00;">&#125;</span><span style="color: #339933;">,</span>
&nbsp;
	indexGlossary<span style="color: #339933;">:</span> <span style="color: #FF00FF; font-weight: bold;">function</span><span style="color: #99FF00;">&#40;</span><span style="color: #99FF00;">&#41;</span><span style="color: #99FF00;">&#123;</span>
		<span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">items</span> <span style="color: #339933;">=</span> <span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">glossary</span>.<span style="color: #0066FF;">getElements</span><span style="color: #99FF00;">&#40;</span><span style="color: #3366CC;">'*[id]'</span><span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">anchors</span> <span style="color: #339933;">=</span> <span style="color: #FF00FF; font-weight: bold;">new</span> Elements<span style="color: #99FF00;">&#40;</span><span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">items</span>.<span style="color: #0066FF;">each</span><span style="color: #99FF00;">&#40;</span><span style="color: #FF00FF; font-weight: bold;">function</span><span style="color: #99FF00;">&#40;</span>e<span style="color: #99FF00;">&#41;</span><span style="color: #99FF00;">&#123;</span>
			<span style="color: #FF00FF; font-weight: bold;">var</span> anchor <span style="color: #339933;">=</span> $<span style="color: #99FF00;">&#40;</span>document.<span style="color: #0066FF;">body</span><span style="color: #99FF00;">&#41;</span>.<span style="color: #0066FF;">getElement</span><span style="color: #99FF00;">&#40;</span><span style="color: #3366CC;">'a:hash('</span><span style="color: #339933;">+</span>e.<span style="color: #0066FF;">get</span><span style="color: #99FF00;">&#40;</span><span style="color: #3366CC;">'id'</span><span style="color: #99FF00;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">')'</span><span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #00FF00; font-weight: bold;">if</span><span style="color: #99FF00;">&#40;</span>$chk<span style="color: #99FF00;">&#40;</span>anchor<span style="color: #99FF00;">&#41;</span><span style="color: #99FF00;">&#41;</span><span style="color: #99FF00;">&#123;</span>
				<span style="color: #00FF00; font-weight: bold;">if</span><span style="color: #99FF00;">&#40;</span><span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">options</span>.<span style="color: #0066FF;">hideGlossary</span><span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span>
				anchor.<span style="color: #0066FF;">addEvent</span><span style="color: #99FF00;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #339933;">,</span> <span style="color: #FF00FF; font-weight: bold;">function</span><span style="color: #99FF00;">&#40;</span>event<span style="color: #99FF00;">&#41;</span><span style="color: #99FF00;">&#123;</span>
					<span style="color: #FF00FF; font-weight: bold;">new</span> Event<span style="color: #99FF00;">&#40;</span>event<span style="color: #99FF00;">&#41;</span>.<span style="color: #000066;">stop</span><span style="color: #99FF00;">&#40;</span><span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #99FF00;">&#125;</span><span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">setTipContent</span><span style="color: #99FF00;">&#40;</span>anchor<span style="color: #339933;">,</span> e<span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">anchors</span>.<span style="color: #0066FF;">push</span><span style="color: #99FF00;">&#40;</span>anchor<span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #99FF00;">&#125;</span>
			<span style="color: #00FF00; font-weight: bold;">if</span><span style="color: #99FF00;">&#40;</span><span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">options</span>.<span style="color: #0066FF;">anchorClass</span><span style="color: #99FF00;">&#41;</span>
				<span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">anchors</span>.<span style="color: #0066FF;">addClass</span><span style="color: #99FF00;">&#40;</span><span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">options</span>.<span style="color: #0066FF;">anchorClass</span><span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">attach</span><span style="color: #99FF00;">&#40;</span><span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">anchors</span><span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #99FF00;">&#125;</span><span style="color: #339933;">,</span> <span style="color: #00FF00; font-weight: bold;">this</span><span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #99FF00;">&#125;</span><span style="color: #339933;">,</span>
&nbsp;
	setTipContent<span style="color: #339933;">:</span> <span style="color: #FF00FF; font-weight: bold;">function</span><span style="color: #99FF00;">&#40;</span>anchor<span style="color: #339933;">,</span> target<span style="color: #99FF00;">&#41;</span><span style="color: #99FF00;">&#123;</span>
		anchor.<span style="color: #0066FF;">store</span><span style="color: #99FF00;">&#40;</span><span style="color: #3366CC;">'tip:title'</span><span style="color: #339933;">,</span> target.<span style="color: #0066FF;">get</span><span style="color: #99FF00;">&#40;</span><span style="color: #3366CC;">'title'</span><span style="color: #99FF00;">&#41;</span><span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span>
		anchor.<span style="color: #0066FF;">store</span><span style="color: #99FF00;">&#40;</span><span style="color: #3366CC;">'tip:text'</span><span style="color: #339933;">,</span> target.<span style="color: #0066FF;">get</span><span style="color: #99FF00;">&#40;</span><span style="color: #3366CC;">'html'</span><span style="color: #99FF00;">&#41;</span><span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">fireEvent</span><span style="color: #99FF00;">&#40;</span><span style="color: #3366CC;">'settingContent'</span><span style="color: #339933;">,</span> <span style="color: #99FF00;">&#91;</span>anchor<span style="color: #339933;">,</span> target<span style="color: #99FF00;">&#93;</span><span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #99FF00;">&#125;</span>
&nbsp;
<span style="color: #99FF00;">&#125;</span><span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>On a side note, notice the psuedo selector being added.  This has been added because for whatever reason, the following CSS3 selector is goofy:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #99FF00;">&#40;</span>document.<span style="color: #0066FF;">body</span><span style="color: #99FF00;">&#41;</span>.<span style="color: #0066FF;">getElements</span><span style="color: #99FF00;">&#40;</span><span style="color: #3366CC;">'a[href=&quot;http://trickeries.com&quot;]'</span><span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// works</span>
$<span style="color: #99FF00;">&#40;</span>document.<span style="color: #0066FF;">body</span><span style="color: #99FF00;">&#41;</span>.<span style="color: #0066FF;">getElements</span><span style="color: #99FF00;">&#40;</span><span style="color: #3366CC;">'a[href=&quot;#glossary-username&quot;]'</span><span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span>    <span style="color: #006600; font-style: italic;">// does not work</span></pre></div></div>

<p>Anyone have any idea why?</p>
]]></content:encoded>
			<wfw:commentRss>http://trickeries.com/480/mootools-tips-extension-tipsglossary/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>trickyInc: a dynamic css / javascript php library</title>
		<link>http://trickeries.com/401/trickyinc-a-dynamic-css-javascript-php-library/</link>
		<comments>http://trickeries.com/401/trickyinc-a-dynamic-css-javascript-php-library/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 04:37:50 +0000</pubDate>
		<dc:creator>atom</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[dynamic]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[trickyInc]]></category>

		<guid isPermaLink="false">http://trickeries.com/?p=401</guid>
		<description><![CDATA[I am very pleased to introduce trickyInc, a flexible and extensible dynamic css / javascript library written in php.
Download
Documentation
I won&#8217;t go into detail here about what it does, because the google code project covers that pretty well.  If you have any interest in dynamic css and/or javascript, I urge you to check it out. [...]]]></description>
			<content:encoded><![CDATA[<p>I am very pleased to introduce trickyInc, a flexible and extensible dynamic css / javascript library written in php.</p>
<h2><a href="http://code.google.com/p/trickyinc/downloads/detail?name=trickyInc.zip">Download</a></h2>
<h2><a href="http://code.google.com/p/trickyinc/wiki/Documentation">Documentation</a></h2>
<p>I won&#8217;t go into detail here about what it does, because the google code project covers that pretty well.  If you have any interest in dynamic css and/or javascript, I urge you to check it out.  I have been using it on all of my projects lately, and I am enjoying the hell out of it.</p>
<p>I would love some developer feedback on this, so if anyone finds this interesting enough to use, please let me know about your experience, and open issues in the google code project as necessary.  I would also love any feedback regarding making it faster / safer / better / whatever.</p>
]]></content:encoded>
			<wfw:commentRss>http://trickeries.com/401/trickyinc-a-dynamic-css-javascript-php-library/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>codeigniter, xss cleaning, and form output</title>
		<link>http://trickeries.com/391/codeigniter-xss-cleaning-and-form-output/</link>
		<comments>http://trickeries.com/391/codeigniter-xss-cleaning-and-form-output/#comments</comments>
		<pubDate>Mon, 23 Feb 2009 01:50:42 +0000</pubDate>
		<dc:creator>atom</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[xss]]></category>

		<guid isPermaLink="false">http://trickeries.com/?p=391</guid>
		<description><![CDATA[If you are a codeigniter user please use caution when outputting any user input into your views, even after it has been passed through xss_clean, or you have global xss filtering on.  This will not prepare output for form field use.  In order to safely output user input in a form field, you [...]]]></description>
			<content:encoded><![CDATA[<p>If you are a codeigniter user please use caution when outputting any user input into your views, even after it has been passed through xss_clean, or you have global xss filtering on.  This <strong>will not</strong> prepare output for form field use.  In order to safely output user input in a form field, you will need to load the form helper class as well and use the form_prep() function.  The form_prep function is not available in the input class.</p>
<p>This is something I have discussed with the codeigniter developers, and they do not feel it is necessary to change:</p>
<blockquote cite="Derek Jones, CTO EllisLab, Inc."><p>&#8220;All global_xss_filtering does is run the Input::xss_clean() filter on user input for you automatically.  It does not make assumptions about where or how that data will be used, and it would be improper to always format the content as needed for use in a form field.&#8221;</p></blockquote>
<p>I do not feel that it is adequately documented that you need to make further alterations to input after the xss_clean, especially when it includes loading a helper file.  This is not mentioned in the documentation for the <a href="http://codeigniter.com/user_guide/libraries/input.html">input class</a>.</p>
<p>At first I thought I was making undue assumptions, but a few quick injection attempts on other codeigniter run sites / projects, I realize that I am not the only one assuming.</p>
]]></content:encoded>
			<wfw:commentRss>http://trickeries.com/391/codeigniter-xss-cleaning-and-form-output/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Disabling Firefox keyboard shortcuts with JavaScript</title>
		<link>http://trickeries.com/238/disabling-firefox-keyboard-shortcuts-with-javascript/</link>
		<comments>http://trickeries.com/238/disabling-firefox-keyboard-shortcuts-with-javascript/#comments</comments>
		<pubDate>Sun, 28 Sep 2008 07:15:42 +0000</pubDate>
		<dc:creator>atom</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[annoying]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[wtf]]></category>

		<guid isPermaLink="false">http://trickeries.com/?p=238</guid>
		<description><![CDATA[First off, let me just say I feel really stupid for posting this.  It seems like I stumbled onto something for the first time that should be common knowledge for a JavaScript developer.  However, I am still making the post because I find this to be rather strange.  Using the event &#8216;preventDefault&#8217; method, you [...]]]></description>
			<content:encoded><![CDATA[<p>First off, let me just say I feel really stupid for posting this.  It seems like I stumbled onto something for the first time that should be common knowledge for a JavaScript developer.  However, I am still making the post because I find this to be rather strange.  Using the event &#8216;preventDefault&#8217; method, you can completely disable Firefox&#8217;s built in keyboard shortcuts.  If you click on the following js bookmarklet:</p>
<h2><a href="javascript:(function(){document.onkeypress = function(event){return event.preventDefault()}})()">ruin my browser!</a></h2>
<p>You won&#8217;t be able to pop firebug up with f12, ctrl+t yourself a new tab, get yourself a fresh version of the page with f5, and you won&#8217;t even be able to view the source.  When I ran into this for the first time, I thought my computer was fucked up.</p>
<p>Apparently, this is also just Firefox.  I just tested it in IE and Chrome, and it appears to do nothing.  Is this a XUL thing?</p>
<p>Does anyone else find this to be strange or annoying?  Is this surprising or am I stupid?  It just seems like this shouldn&#8217;t happen.</p>
]]></content:encoded>
			<wfw:commentRss>http://trickeries.com/238/disabling-firefox-keyboard-shortcuts-with-javascript/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Google chrome: a first impressions review.</title>
		<link>http://trickeries.com/217/google-chrome-a-first-impressions-review/</link>
		<comments>http://trickeries.com/217/google-chrome-a-first-impressions-review/#comments</comments>
		<pubDate>Wed, 03 Sep 2008 05:04:28 +0000</pubDate>
		<dc:creator>atom</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://trickeries.com/?p=217</guid>
		<description><![CDATA[I like it a lot.
Keeping it non-technical, because someone else will rant about that stuff in more detail than I am willing to or can.
Stuff I am liking:

Very fast
It is very roomy feeling, not much &#8220;chrome&#8221; as it were.
I don&#8217;t have to relearn shortcuts, they are almost all FFish
I can open JavaScript bookmarklets in new [...]]]></description>
			<content:encoded><![CDATA[<h2>I like it a lot.</h2>
<p>Keeping it non-technical, because someone else will rant about that stuff in more detail than I am willing to or can.</p>
<h2>Stuff I am liking:</h2>
<ul>
<li>Very fast</li>
<li>It is very roomy feeling, not much &#8220;chrome&#8221; as it were.</li>
<li>I don&#8217;t have to relearn shortcuts, they are almost all FFish</li>
<li>I can open JavaScript bookmarklets in new tabs (this was not the case for FF as of version 3)</li>
<li>Searching is awesome, with a bit of setup, its very few keystrokes, like: &#8220;w jelly&#8221; to search wikipedia for jelly</li>
<li>View source pops up in a tab</li>
<li>The animations are cute and informative without being annoying</li>
<li>the launch page is handy (although Opera has had this for some time)</li>
<li>Built in &#8220;appability&#8221; (make one tab appear as an application window, for something like google docs)</li>
<li>Built in tab restore (I constantly close a tab and then realize I want it back)</li>
<li>Built in and fairly complete dom inspector, console, and JS debugger</li>
<li>The process manager is awesome.  Even when stuff gets out of hand, you can assumably fix it without losing your whole session</li>
<li>The find dialogue is great, however it will take a moment or two to adjust to top-right vs bottom-left</li>
</ul>
<h2>Lets get critical*:</h2>
<div>
<ul>
<li>The inspector, while nice, doesn&#8217;t allow me to change stuff on the fly like firebug does</li>
<li>There appear to be some JS animation / transparent png issues</li>
<li>I can&#8217;t do much in the way of scrolling</li>
<li>I don&#8217;t think the form elements displayed are as attractive as Firefox&#8217;s (on Vista)</li>
<li>As far as I have seen, there does not appear to be a way for me to view and interact with ajax requests</li>
</ul>
<div>At least for now, it will be my default browser, however I will still be using Firefox for development purposes. I want chrome to succeed, and to do this it will need to be embraced by and passionately work with the open source crowd.  So far they appear to be off to a cracking good start.  I will follow up with more later when I have used it extensively.</div>
<p><small>* please note that I am not an experienced webkit-based browser user.</small></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://trickeries.com/217/google-chrome-a-first-impressions-review/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>rAccordion &#8211; a MooTools 1.2 recursive accordion</title>
		<link>http://trickeries.com/192/raccordion-a-mootools-12-recursive-accordion/</link>
		<comments>http://trickeries.com/192/raccordion-a-mootools-12-recursive-accordion/#comments</comments>
		<pubDate>Mon, 04 Aug 2008 08:18:08 +0000</pubDate>
		<dc:creator>atom</dc:creator>
				<category><![CDATA[downloads]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[accordion]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mootools]]></category>
		<category><![CDATA[rAccordion]]></category>
		<category><![CDATA[recursive]]></category>

		<guid isPermaLink="false">http://trickeries.com/?p=192</guid>
		<description><![CDATA[So I have managed to create a recursive mootools accordion, which is something I have wanted to get done for a long time.
The secret ingredient to get this made up was some CSS3 selectors and a bit of recursion.
You basically just pass in a class for the toggles, a class for the elements, and a [...]]]></description>
			<content:encoded><![CDATA[<p>So I have managed to create a recursive mootools accordion, which is something I have wanted to get done for a long time.</p>
<p>The secret ingredient to get this made up was some CSS3 selectors and a bit of recursion.</p>
<p>You basically just pass in a class for the toggles, a class for the elements, and a parent container to reference.</p>
<p>The usage ends up fairly simple:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #FF00FF; font-weight: bold;">new</span> rAccordion<span style="color: #99FF00;">&#40;</span><span style="color: #3366CC;">'container'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'toggle'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'element'</span><span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>In the example, container is the id of the parent that the classes are in, toggle is the class that each toggle has, and element is the class that each element has.  A fourth argument can be passed, which is the options argument for the mootools Accordion class.</p>
<p>There are some kinks thatstill need working out.  There are inherit problems with just jamming accordions inside of each other.  The way mootools creates the accordion requires quite a bit of inline styles, which include defined heights.  These heights become problematic when accordions inside accordions need to expand or contract, but their parent element has a defined height and overflow which will not allow the newly expanded portion to be seen.</p>
<p>I do have something of a solution in place, but it feels a little hacky, but I am not sure it will get any better unless I rewrite the accordion.</p>
<p>If anyone has any ideas on how to address this issue, please drop me a comment.</p>
<h2><a href="http://trickeries.com/demo/rAccordion/">example</a></h2>
<h2><a href='http://trickeries.com/wp-content/uploads/2008/08/raccordion.zip'>download w/the example</a></h2>
<h2>Here is the class:</h2>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #FF00FF; font-weight: bold;">var</span> rAccordion <span style="color: #339933;">=</span> <span style="color: #FF00FF; font-weight: bold;">new</span> <span style="color: #FF00FF; font-weight: bold;">Class</span><span style="color: #99FF00;">&#40;</span><span style="color: #99FF00;">&#123;</span>
&nbsp;
	initialize<span style="color: #339933;">:</span> <span style="color: #FF00FF; font-weight: bold;">function</span><span style="color: #99FF00;">&#40;</span>container<span style="color: #339933;">,</span> toggleClass<span style="color: #339933;">,</span> elementClass<span style="color: #339933;">,</span> options<span style="color: #99FF00;">&#41;</span><span style="color: #99FF00;">&#123;</span>
		<span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">container</span> <span style="color: #339933;">=</span> container<span style="color: #339933;">;</span>
		<span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">tClass</span> <span style="color: #339933;">=</span> toggleClass<span style="color: #339933;">;</span>
		<span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">eClass</span> <span style="color: #339933;">=</span> elementClass<span style="color: #339933;">;</span>
		<span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">options</span> <span style="color: #339933;">=</span> options<span style="color: #339933;">;</span>
		<span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">selector</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'#'</span> <span style="color: #339933;">+</span> <span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">container</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">' &gt; .'</span><span style="color: #339933;">;</span>
		<span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">makeAccordion</span><span style="color: #99FF00;">&#40;</span><span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #99FF00;">&#125;</span><span style="color: #339933;">,</span>
&nbsp;
	makeAccordion<span style="color: #339933;">:</span> <span style="color: #FF00FF; font-weight: bold;">function</span><span style="color: #99FF00;">&#40;</span><span style="color: #99FF00;">&#41;</span><span style="color: #99FF00;">&#123;</span>
		<span style="color: #FF00FF; font-weight: bold;">new</span> Accordion<span style="color: #99FF00;">&#40;</span>
			$$<span style="color: #99FF00;">&#40;</span><span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">selector</span><span style="color: #339933;">+</span><span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">tClass</span><span style="color: #99FF00;">&#41;</span><span style="color: #339933;">,</span>
			$$<span style="color: #99FF00;">&#40;</span><span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">selector</span><span style="color: #339933;">+</span><span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">eClass</span><span style="color: #99FF00;">&#41;</span><span style="color: #339933;">,</span>
			<span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">options</span>
		<span style="color: #99FF00;">&#41;</span>.<span style="color: #0066FF;">addEvents</span><span style="color: #99FF00;">&#40;</span><span style="color: #99FF00;">&#123;</span>
			<span style="color: #006600; font-style: italic;">// The onActive and onComplete events added to the stack here to</span>
			<span style="color: #006600; font-style: italic;">// attempt to address some of the css issues.</span>
			<span style="color: #3366CC;">'onActive'</span><span style="color: #339933;">:</span> <span style="color: #FF00FF; font-weight: bold;">function</span><span style="color: #99FF00;">&#40;</span>toggle<span style="color: #99FF00;">&#41;</span><span style="color: #99FF00;">&#123;</span>
				<span style="color: #00FF00; font-weight: bold;">if</span><span style="color: #99FF00;">&#40;</span>toggle.<span style="color: #0066FF;">getParent</span><span style="color: #99FF00;">&#40;</span><span style="color: #99FF00;">&#41;</span>.<span style="color: #0066FF;">getStyle</span><span style="color: #99FF00;">&#40;</span><span style="color: #3366CC;">'height'</span><span style="color: #99FF00;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #FFFF00;">0</span><span style="color: #99FF00;">&#41;</span>
					toggle.<span style="color: #0066FF;">getParent</span><span style="color: #99FF00;">&#40;</span><span style="color: #99FF00;">&#41;</span>.<span style="color: #0066FF;">setStyle</span><span style="color: #99FF00;">&#40;</span><span style="color: #3366CC;">'height'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">''</span><span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #99FF00;">&#125;</span><span style="color: #339933;">,</span>
			<span style="color: #3366CC;">'onComplete'</span><span style="color: #339933;">:</span> <span style="color: #FF00FF; font-weight: bold;">function</span><span style="color: #99FF00;">&#40;</span>a<span style="color: #99FF00;">&#41;</span><span style="color: #99FF00;">&#123;</span>
				<span style="color: #00FF00; font-weight: bold;">if</span> <span style="color: #99FF00;">&#40;</span>$defined<span style="color: #99FF00;">&#40;</span>a<span style="color: #99FF00;">&#41;</span><span style="color: #99FF00;">&#41;</span> <span style="color: #99FF00;">&#123;</span>
					<span style="color: #FF00FF; font-weight: bold;">var</span> height <span style="color: #339933;">=</span> <span style="color: #FFFF00;">0</span><span style="color: #339933;">;</span>
					a.<span style="color: #0066FF;">getParent</span><span style="color: #99FF00;">&#40;</span><span style="color: #99FF00;">&#41;</span>.<span style="color: #0066FF;">getChildren</span><span style="color: #99FF00;">&#40;</span><span style="color: #99FF00;">&#41;</span>.<span style="color: #0066FF;">each</span><span style="color: #99FF00;">&#40;</span><span style="color: #FF00FF; font-weight: bold;">function</span><span style="color: #99FF00;">&#40;</span>e<span style="color: #99FF00;">&#41;</span><span style="color: #99FF00;">&#123;</span>
						height <span style="color: #339933;">=</span> height <span style="color: #339933;">+</span> e.<span style="color: #0066FF;">offsetHeight</span><span style="color: #339933;">;</span>
					<span style="color: #99FF00;">&#125;</span><span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #00FF00; font-weight: bold;">if</span><span style="color: #99FF00;">&#40;</span>height <span style="color: #339933;">!=</span> a.<span style="color: #0066FF;">getParent</span><span style="color: #99FF00;">&#40;</span><span style="color: #99FF00;">&#41;</span>.<span style="color: #0066FF;">offsetHeight</span> <span style="color: #339933;">&amp;&amp;</span> a.<span style="color: #0066FF;">getParent</span><span style="color: #99FF00;">&#40;</span><span style="color: #99FF00;">&#41;</span>.<span style="color: #0066FF;">offsetHeight</span> <span style="color: #339933;">!=</span> <span style="color: #FFFF00;">0</span><span style="color: #99FF00;">&#41;</span>
						a.<span style="color: #0066FF;">getParent</span><span style="color: #99FF00;">&#40;</span><span style="color: #99FF00;">&#41;</span>.<span style="color: #0066FF;">setStyle</span><span style="color: #99FF00;">&#40;</span><span style="color: #3366CC;">'height'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">''</span><span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #99FF00;">&#125;</span>
			<span style="color: #99FF00;">&#125;</span>
		<span style="color: #99FF00;">&#125;</span><span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">selector</span> <span style="color: #339933;">+=</span> <span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">eClass</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">' &gt; .'</span><span style="color: #339933;">;</span>
		<span style="color: #00FF00; font-weight: bold;">if</span><span style="color: #99FF00;">&#40;</span>$defined<span style="color: #99FF00;">&#40;</span>$$<span style="color: #99FF00;">&#40;</span><span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">selector</span><span style="color: #99FF00;">&#41;</span><span style="color: #99FF00;">&#91;</span><span style="color: #FFFF00;">0</span><span style="color: #99FF00;">&#93;</span><span style="color: #99FF00;">&#41;</span><span style="color: #99FF00;">&#41;</span>
			<span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">makeAccordion</span><span style="color: #99FF00;">&#40;</span><span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #99FF00;">&#125;</span>
&nbsp;
<span style="color: #99FF00;">&#125;</span><span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://trickeries.com/192/raccordion-a-mootools-12-recursive-accordion/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Queuing ajax requests with MooTools 1.2</title>
		<link>http://trickeries.com/189/queuing-ajax-requests-with-mootools-12/</link>
		<comments>http://trickeries.com/189/queuing-ajax-requests-with-mootools-12/#comments</comments>
		<pubDate>Wed, 30 Jul 2008 05:24:03 +0000</pubDate>
		<dc:creator>atom</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[downloads]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[implement]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mootools]]></category>
		<category><![CDATA[request.queue]]></category>
		<category><![CDATA[toy]]></category>

		<guid isPermaLink="false">http://trickeries.com/?p=189</guid>
		<description><![CDATA[UPDATE: This might be sorta useless.  Please see this comment.
There have been a variety of occasions where I only want one instance of the Request object, but want to make sure that every request I attempt gets run without canceling another, or screwing around with onCompletes.  The following is a rather simple implement that [...]]]></description>
			<content:encoded><![CDATA[<h2><strong title="updated 08/06/2008 4:06 AM">UPDATE</strong>: This might be sorta useless.  Please see <a href="http://trickeries.com/189/queuing-ajax-requests-with-mootools-12/#comment-1825">this comment</a>.</h2>
<p>There have been a variety of occasions where I only want one instance of the Request object, but want to make sure that every request I attempt gets run without canceling another, or screwing around with onCompletes.  The following is a rather simple implement that takes care of this problem:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">Request.<span style="color: #0066FF;">implement</span><span style="color: #99FF00;">&#40;</span><span style="color: #99FF00;">&#123;</span>
    queue<span style="color: #339933;">:</span> <span style="color: #FF00FF; font-weight: bold;">function</span><span style="color: #99FF00;">&#40;</span>sendArg<span style="color: #99FF00;">&#41;</span><span style="color: #99FF00;">&#123;</span>
        <span style="color: #00FF00; font-weight: bold;">if</span><span style="color: #99FF00;">&#40;</span><span style="color: #339933;">!</span>$defined<span style="color: #99FF00;">&#40;</span><span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">queued</span><span style="color: #99FF00;">&#41;</span><span style="color: #99FF00;">&#41;</span>
            <span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">queued</span> <span style="color: #339933;">=</span> <span style="color: #99FF00;">&#91;</span><span style="color: #99FF00;">&#93;</span><span style="color: #339933;">;</span>
        <span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">queued</span>.<span style="color: #0066FF;">push</span><span style="color: #99FF00;">&#40;</span>sendArg<span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">processQueue</span><span style="color: #99FF00;">&#40;</span><span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #99FF00;">&#125;</span><span style="color: #339933;">,</span>
    processQueue<span style="color: #339933;">:</span> <span style="color: #FF00FF; font-weight: bold;">function</span><span style="color: #99FF00;">&#40;</span><span style="color: #99FF00;">&#41;</span><span style="color: #99FF00;">&#123;</span>
		<span style="color: #00FF00; font-weight: bold;">if</span><span style="color: #99FF00;">&#40;</span><span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">timer</span><span style="color: #99FF00;">&#41;</span>
			$clear<span style="color: #99FF00;">&#40;</span><span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">timer</span><span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #00FF00; font-weight: bold;">if</span> <span style="color: #99FF00;">&#40;</span><span style="color: #339933;">!</span><span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">check</span><span style="color: #99FF00;">&#40;</span><span style="color: #99FF00;">&#41;</span><span style="color: #99FF00;">&#41;</span>
			<span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">timer</span> <span style="color: #339933;">=</span> <span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">processQueue</span>.<span style="color: #0066FF;">delay</span><span style="color: #99FF00;">&#40;</span><span style="color: #FFFF00;">250</span><span style="color: #339933;">,</span> <span style="color: #00FF00; font-weight: bold;">this</span><span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #00FF00; font-weight: bold;">else</span> <span style="color: #99FF00;">&#123;</span>
			<span style="color: #00FF00; font-weight: bold;">if</span> <span style="color: #99FF00;">&#40;</span>$defined<span style="color: #99FF00;">&#40;</span><span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">queued</span><span style="color: #99FF00;">&#91;</span><span style="color: #FFFF00;">0</span><span style="color: #99FF00;">&#93;</span><span style="color: #99FF00;">&#41;</span><span style="color: #99FF00;">&#41;</span> <span style="color: #99FF00;">&#123;</span>
				<span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">send</span><span style="color: #99FF00;">&#40;</span><span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">queued</span>.<span style="color: #0066FF;">shift</span><span style="color: #99FF00;">&#40;</span><span style="color: #99FF00;">&#41;</span><span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">processQueue</span><span style="color: #99FF00;">&#40;</span><span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #99FF00;">&#125;</span>
			<span style="color: #00FF00; font-weight: bold;">else</span>
				<span style="color: #00FF00; font-weight: bold;">this</span>.<span style="color: #0066FF;">fireEvent</span><span style="color: #99FF00;">&#40;</span><span style="color: #3366CC;">'onQueueEmpty'</span><span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #99FF00;">&#125;</span>
    <span style="color: #99FF00;">&#125;</span>
<span style="color: #99FF00;">&#125;</span><span style="color: #99FF00;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>This will basically stack requests and send them in the order received.  If there is no stack, the request will be sent immediately.</p>
<p>The usage is the same as the normal <a title="MooTools request send method" href="http://docs.mootools.net/Request/Request#Request:send">Request send method</a>, however there is now an onQueueEmpty event to tell when all requests in the queue have been sent.</p>
<h2><a title="Request.queue() example usage / demonstration" href="http://trickeries.com/demo/Request.queue/">example</a></h2>
<h2><a title="Download the example for Request.queue()" href="http://trickeries.com/wp-content/uploads/2008/07/requestqueue.zip">download w/the example</a></h2>
]]></content:encoded>
			<wfw:commentRss>http://trickeries.com/189/queuing-ajax-requests-with-mootools-12/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Sortable Slideable Saveable &#8211; a Mootools 1.2 class</title>
		<link>http://trickeries.com/186/sortable-slideable-saveable-a-mootools-12-class/</link>
		<comments>http://trickeries.com/186/sortable-slideable-saveable-a-mootools-12-class/#comments</comments>
		<pubDate>Mon, 28 Jul 2008 09:11:53 +0000</pubDate>
		<dc:creator>atom</dc:creator>
				<category><![CDATA[downloads]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mootools]]></category>
		<category><![CDATA[sortable slideable saveable]]></category>
		<category><![CDATA[toy]]></category>

		<guid isPermaLink="false">http://trickeries.com/?p=186</guid>
		<description><![CDATA[Sortable Slideable Saveable (sss) is a class I wrote up that allows you to have a list of elements that can be sorted, toggled, and the state of each will be saved each time a change is made, either using a cookie or a couple of ajax / json calls.
It can be seen in action [...]]]></description>
			<content:encoded><![CDATA[<p>Sortable Slideable Saveable (sss) is a class I wrote up that allows you to have a list of elements that can be sorted, toggled, and the state of each will be saved each time a change is made, either using a cookie or a couple of ajax / json calls.</p>
<p>It can be seen in action in my sidebar to the right.  You can drag / sort them by dragging the icons, and you can toggle them by clicking on the title of each.  Any changes you make will be stored in a cookie, you can reload the page and they should be in the state you left them in.</p>
<p>I will probably update this and provide some detailed documentation shortly. If anyone has any questions, let me know.  Also if anyone has any input on how to make it better, let me know.</p>
<h2><a href="http://trickeries.com/demo/sss/">another example</a></h2>
<h2><a title="sortable slideable saveable" href="http://trickeries.com/wp-content/uploads/2008/07/sss.zip">download w/the example</a></h2>
]]></content:encoded>
			<wfw:commentRss>http://trickeries.com/186/sortable-slideable-saveable-a-mootools-12-class/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>dancing kirby javascript bookmarklet</title>
		<link>http://trickeries.com/183/dancing-kirby-javascript-bookmarklet/</link>
		<comments>http://trickeries.com/183/dancing-kirby-javascript-bookmarklet/#comments</comments>
		<pubDate>Sat, 26 Jul 2008 03:26:55 +0000</pubDate>
		<dc:creator>atom</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[bookmarklet]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[kirby]]></category>
		<category><![CDATA[quick]]></category>
		<category><![CDATA[toy]]></category>

		<guid isPermaLink="false">http://trickeries.com/?p=183</guid>
		<description><![CDATA[I made this because i figured it was just what everyone needed (because everyone is grumpy all the time).  It is a simple javascript function you can store in a bookmark that will add a sweet dancing kirby to any page you are on.
(&#62;^ &#8211; ^)&#62; fire him up &#60;(^ &#8211; ^&#60;)
]]></description>
			<content:encoded><![CDATA[<p>I made this because i figured it was just what everyone needed (because everyone is grumpy all the time).  It is a simple javascript function you can store in a bookmark that will add a sweet dancing kirby to any page you are on.</p>
<h2><a href="javascript:(function(){var k = ['&lt;(^_^)&gt;','&lt;(^_^&lt;)','--(^_^\\)','\\(^_^\\)','|(^_^)|','(/^_^)/','(/^_^)--','(&gt;^_^)&gt;','(/^_^)--','(/^_^)/','|(^_^)|','\\(^_^\\)','--(^_^\\)','(&gt;_&lt;)','&lt;(^_^)&gt;','(&gt;_&lt;)','&lt;(^_^)&gt;','(&gt;^_^)/','\\(^_^&lt;)','(&gt;^_^)/','\\(^_^&lt;)','\\(^_^)/','/(-_-)\\','/(-_-)\\','/(-_-)\\','/(-_o)\\','/(-_-)\\','/(o_-)\\','/(-_-)\\','/(o_o)\\','/(-_-)\\','\\(^o^)/','\\(^o^)/','\\(^o^)/','\\(^o^)/'];var i=0;function d(){if(document.getElementById('k') == null){e=document.createElement('h1');e.setAttribute('id','k');e.setAttribute('style','font-size:60px;position:fixed;top:0');document.body.appendChild(e)}e.innerHTML = k[i];i++;if(i == k.length)i = 0;setTimeout(d, 250)}d()})()">(&gt;^ &#8211; ^)&gt; fire him up &lt;(^ &#8211; ^&lt;)</a></h2>
]]></content:encoded>
			<wfw:commentRss>http://trickeries.com/183/dancing-kirby-javascript-bookmarklet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
