<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Wojo Design</title>
	
	<link>http://wojodesign.com</link>
	<description>Web Design and Development Blog</description>
	<lastBuildDate>Tue, 13 Dec 2011 13:30:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/WojoDesign" /><feedburner:info uri="wojodesign" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Authorize.net API Setup</title>
		<link>http://feedproxy.google.com/~r/WojoDesign/~3/gc7pN_F8NlQ/</link>
		<comments>http://wojodesign.com/authorize-net-api-setup/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 13:53:31 +0000</pubDate>
		<dc:creator>Brett</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://wojodesign.com/?p=855</guid>
		<description><![CDATA[<p><p><a href="http://wojodesign.com">Wojo Design</a></p><p>We&#8217;ve set up quite a few sites that use authorize.net recently, and I thought I&#8217;d share some of the lessons &#8230; <a href="http://wojodesign.com/authorize-net-api-setup/">More <span class="meta-nav">&#8594;</span></a></p></p><p><a href="http://wojodesign.com">Wojo Design</a></p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://wojodesign.com">Wojo Design</a></p><p>We&#8217;ve set up quite a few sites that use authorize.net recently, and I thought I&#8217;d share some of the lessons we&#8217;ve learned to save you some time and headaches.  </p>
<p><span id="more-855"></span></p>
<p>There are 4 different states you can be in while using Authorize.net: (1) live server, (2) live server in test mode, (3) sandbox server, and (4) sandbox server in test mode.  <strong>Any API keys you generate while in one of these states will only work in that state</strong>.  So if you generate a transaction key in test mode and then switch back to live mode, you will need to generate a new one and update your code base accordingly.</p>
<p><strong>Sandbox in Test Mode: </strong>As far as I can tell, you will never need to use this.</p>
<p><strong>Sandbox Server: </strong>When you sign up for a test/sandbox account, you can checkout with a few different card numbers that they will send you.  This test account is completely separate from your live account.</p>
<p><strong>Live Server in Test Mode: </strong>You can put your account in test mode in order to make some purchases on your site.  I know that the Visa test number 4111 1111 1111 1111 works in test mode, but I&#8217;m unsure if there are other test numbers that work.  As far as I can tell though, transactions put through in test mode won&#8217;t show up when you are using the Transaction Details API.  </p>
<p><strong>Live Server: </strong>Transactions here will be put in the &#8220;unsettled&#8221; transactions for up to a day before clearing.  In order to test code using the transaction details API, we often put through a real transaction on the live server, and then void it after we test.<br />
<br/></p>
<h3>Common Errors</h3>
<p>There are several cryptic error codes we have come across; here are a couple that we eventually were able to fix.</p>
<pre class="brush: xml; title: ; notranslate">
 The merchant API Login ID is invalid or the account is inactive.
</pre>
<p>This is what happened for us when we generated an API transaction key when in test mode, and tried to use it in live mode.  The solution was to just regenerate the transaction key.</p>
<pre class="brush: xml; title: ; notranslate">
  The Nova Bank Number or Terminal ID is incorrect. Call Merchant Service Provider.
</pre>
<p>If the Merchant Service Provider isn&#8217;t set up within Authorize.net, you will get this error.  The good thing is that this has nothing to do with your code or API setup.</p>
<p><br/></p>
<p>If you&#8217;ve got any other tips and tricks for working with Authorize.net, please post them in the comments below.</p>
<p><a href="http://wojodesign.com">Wojo Design</a></p><img src="http://feeds.feedburner.com/~r/WojoDesign/~4/gc7pN_F8NlQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wojodesign.com/authorize-net-api-setup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://wojodesign.com/authorize-net-api-setup/</feedburner:origLink></item>
		<item>
		<title>Full Browser Support for localStorage without Cookies</title>
		<link>http://feedproxy.google.com/~r/WojoDesign/~3/dJ_HO4XRop8/</link>
		<comments>http://wojodesign.com/full-browser-support-for-localstorage-without-cookies/#comments</comments>
		<pubDate>Mon, 05 Dec 2011 07:15:05 +0000</pubDate>
		<dc:creator>Brett</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://wojodesign.com/?p=817</guid>
		<description><![CDATA[<p><p><a href="http://wojodesign.com">Wojo Design</a></p><p>A while back I posted a script that used cookies to simulate the localStorage interface for the HTML5 spec. While &#8230; <a href="http://wojodesign.com/full-browser-support-for-localstorage-without-cookies/">More <span class="meta-nav">&#8594;</span></a></p></p><p><a href="http://wojodesign.com">Wojo Design</a></p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://wojodesign.com">Wojo Design</a></p><p>A while back I posted a <a href="http://wojodesign.com/simulating-html5-local-storage/">script that used cookies to simulate the localStorage interface</a> for the <a href="http://www.w3.org/TR/2009/WD-webstorage-20091222/">HTML5 spec</a>.  While building <a href="http://wojodesign.com/simplecartjs-v3-beta/">simpleCart(js) v3</a>, I revisited this script with the hopes achieving the same goal <strong>without using cookies.</strong> For the impatient, the <em>1.2kb script</em> can be found <a href="https://github.com/wojodesign/local-storage-js">on github.</a></p>
<p><span id="more-817"></span>
</p>
<h2>Motivation</h2>
<p>While using cookies for cross browser client-side storage was a clever workaround a few years ago, it just isn&#8217;t an acceptable method anymore for several reasons:</p>
<p><strong>EU Cookie Law:</strong> the <a href="http://www.cookielaw.org/media/2398/eu_directive_published_version.pdf">EU has created a directive</a> that requires websites to ask permission to store <em>every cookie</em>.  While this is still being heavily debated, it&#8217;s a good reason to tread lightly when it comes to overusing cookies. </p>
<p><strong>Performance:</strong> web performance optimization, thankfully, has become an important consideration for every website.  Cookies are sent along with every request, so the more data we store, the larger our requests.  This has a much larger impact when we consider sites with heavy ajax requests, where the majority of the size of the requests can be in the headers.  With a lot of local storage data, you could easily be adding 4K or more to every request.  These <a href="http://yuiblog.com/blog/2007/03/01/performance-research-part-3/">performance issues are nothing new</a>, so we should avoid using cookies for storage whenever possible. </p>
</p>
<h2>Implementation</h2>
<p>Currently, localStorage is supported by Firefox 3.5+, Safari 4+, IE8+, and Chrome. To fill in the older browsers, we used <a href="http://msdn.microsoft.com/en-us/library/ms531424%28VS.85%29.aspx">userData</a> for IE6-7 and <a href="https://developer.mozilla.org/en/DOM/Storage">globalStorage</a> for FF2.x &#038; 3.  The interface is identical, regardless of how it is being implemented.  This is very important, so code can be consistent as support for older browsers is dropped.  Once all major browsers support the spec, the script can just be removed.  </p>
<pre class="brush: jscript; title: ; notranslate">

localStorage.setItem( key , value );
// saves a new name/value pair if the key doesn't exist, otherwise updates the value

localStorage.getItem( key );
// returns the value associated with the given key, if it exists
// returns null if the key doesn't exist

localStorage.length;
// the number of unique keys stored

localStorage.removeItem( key );
// deletes the name/value pair with the given key, if it exists
// if it does not exist, exits

localStorage.clear();
// delete all name/value pairs currently stored

localStorage.key( n );
// returns the name of the nth key in the list, will return null if n is
// greater than or equal to localStorage.length
</pre>
<p>You can get the code <a href="https://github.com/wojodesign/local-storage-js">on github</a> &#8211; simply add the script to your page and you&#8217;re all set.  </p>
<p><a href="http://wojodesign.com">Wojo Design</a></p><img src="http://feeds.feedburner.com/~r/WojoDesign/~4/dJ_HO4XRop8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wojodesign.com/full-browser-support-for-localstorage-without-cookies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://wojodesign.com/full-browser-support-for-localstorage-without-cookies/</feedburner:origLink></item>
		<item>
		<title>Wojo Design is Hiring an Intern!</title>
		<link>http://feedproxy.google.com/~r/WojoDesign/~3/KUOyBvER6Sk/</link>
		<comments>http://wojodesign.com/wojo-design-is-hiring-an-intern/#comments</comments>
		<pubDate>Tue, 29 Nov 2011 01:20:54 +0000</pubDate>
		<dc:creator>kyle</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://wojodesign.com/?p=836</guid>
		<description><![CDATA[<p><p><a href="http://wojodesign.com">Wojo Design</a></p><p>We're looking to hire a Web Design Intern for a 4 month position. This is a paid opportunity at $12/hour, working an average of 20 hours per week. Please see this post for the details and send us a résumé with some examples of your work if you're interested. We prefer individuals located in Ann Arbor. <a href="http://wojodesign.com/wojo-design-is-hiring-an-intern/">More <span class="meta-nav">&#8594;</span></a></p></p><p><a href="http://wojodesign.com">Wojo Design</a></p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://wojodesign.com">Wojo Design</a></p><p>We&#8217;re looking to hire a Web Design Intern for a 4 month position. This is a paid opportunity at $12/hour, working an average of 20 hours per week. Please see this post for the details and send us a résumé with some examples of your work if you&#8217;re interested. We prefer individuals located in Ann Arbor.</p>
<p><span id="more-836"></span></p>
<p>The full intern listing has been posted below. Please submit your application to <script language="Javascript" type="text/javascript">
	<!--
	document.write('<a href="mai');
	document.write('lto');
	document.write(':&#119;&#111;&#114;&#107;');
	document.write('@');
	document.write('&#119;&#111;&#106;&#111;&#100;&#101;&#115;&#105;&#103;&#110;&#46;&#99;&#111;&#109;">');
	document.write('&#119;&#111;&#114;&#107;');
	document.write('@');
	document.write('&#119;&#111;&#106;&#111;&#100;&#101;&#115;&#105;&#103;&#110;&#46;&#99;&#111;&#109;<\/a>');
	// -->
	</script><noscript>&#119;&#111;&#114;&#107; at<br />
	&#119;&#111;&#106;&#111;&#100;&#101;&#115;&#105;&#103;&#110; dot &#99;&#111;&#109;</noscript></p>
<p>Wojo Design is a full-service web agency that helps clients at every stage from initial website design to online marketing and social media campaign implementation. We are seeking an ambitious and self-motivated web design intern who can take on a wide range of responsibilities. </p>
<p><strong>RESPONSIBILITIES;</strong></p>
<ul>
<li>Building basic HTML websites.</li>
<li>Creating basic web design compositions.</li>
<li>Formatting and editing images to be used on client websites.</li>
<li>Cross-browser testing.</li>
<li>Updating client websites.</li>
<li>Performing keyword research for search engine optimization campaigns.</li>
<li>Building links to internal and client websites.</li>
<li>Updating social media sites internally and for clients.</li>
<li>Reviewing and proofreading proposals.</li>
</ul>
<p><strong>REQUIREMENTS;</strong></p>
<ul>
<li>Proficiency in Adobe Photoshop</li>
<li>Know your way around Microsoft Excel</li>
<li>The ability to upload files with an FTP Client (Transmit, FileZilla, etc.)</li>
<li>A good understanding of HTML and CSS and the ability to turn a simple design into a web page.</li>
</ul>
<p><strong>BONUS POINTS;</strong></p>
<ul>
<li>JavaScript</li>
<li>PHP experience</li>
</ul>
<p>This internship position will provide an excellent learning opportunity as you will work on a wide variety of projects and tasks. During the course of the internship you will become proficient with several content management systems, work on many web design and web development projects, participate in online marketing campaigns at all stages, and work closely with the company founders.</p>
<p><strong>DETAILS</strong><br />
This position is open immediately and will be filled once the appropriate candidate is found. This is a 4-month internship with the possibility for extension. You are expected to work around 20 hours a week on average, however, we can be flexible to meet the needs of your schedule. You will be paid $12/hour.</p>
<p>We have an office in Ann Arbor that you may work out of, and at times you will be expected to meet there. However, if preferable you can also work from home on a regular basis. We are very easy to work with, and as long as you get the job done and work hard, we&#8217;re happy to be very accommodating. </p>
<p>Please send any examples of past web design and/or development work.</p>
<p><a href="http://wojodesign.com">Wojo Design</a></p><img src="http://feeds.feedburner.com/~r/WojoDesign/~4/KUOyBvER6Sk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wojodesign.com/wojo-design-is-hiring-an-intern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://wojodesign.com/wojo-design-is-hiring-an-intern/</feedburner:origLink></item>
		<item>
		<title>SimpleCart(js) V3 Beta</title>
		<link>http://feedproxy.google.com/~r/WojoDesign/~3/GvjSCYxBU-c/</link>
		<comments>http://wojodesign.com/simplecartjs-v3-beta/#comments</comments>
		<pubDate>Tue, 15 Nov 2011 16:26:48 +0000</pubDate>
		<dc:creator>Brett</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[simpleCart(js)]]></category>

		<guid isPermaLink="false">http://wojodesign.com/?p=800</guid>
		<description><![CDATA[<p><p><a href="http://wojodesign.com">Wojo Design</a></p><p>We are proud to announce that simpleCart(js) version 3 is ready for beta testing! We have learned a lot about &#8230; <a href="http://wojodesign.com/simplecartjs-v3-beta/">More <span class="meta-nav">&#8594;</span></a></p></p><p><a href="http://wojodesign.com">Wojo Design</a></p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://wojodesign.com">Wojo Design</a></p><p>We are proud to announce that simpleCart(js) version 3 is ready for beta testing! We have learned a lot about what our users need and want over the past 3 years, and version 3 is a huge improvement that we hope you are going to love.</p>
<p><span id="more-800"></span></p>
<p>For the impatient, you can view the new code on the v3 branch on github:&nbsp;<a href="http://github.com/wojodesign/simplecart-js/tree/v3">http://github.com/wojodesign/simplecart-js/tree/v3</a></p>
<p>&nbsp;</p>
<h3>Whats New?</h3>
<p>The code has been rewritten from the ground up, and there are too many improvements to cover in this article. Some of the best updates include completely cookie-less storage with HTML5 localStorage, lots of events to handle all the customizations you could think of, plugins and extensions, more flexible formatting, more checkout options, better language and currency support, better performance, and easier syntax</p>
<p>&nbsp;</p>
<h3>How can I help?</h3>
<p>The easiest way to help is to periodically visit http://swarm.simplecartjs.com and click &#8220;Join the Swarm&#8221;.  We are striving to make sure simpleCart(js) works with other libraries and in every major browser; by simply visiting this page TestSwarm will run our tests in your browser to help achieve this.  </p>
<p>You can also help by trying out the new code on a site.  We have already tested a lot of the basic features, but getting the code on more sites will help us track down bugs and improve the usability and features. The documentation is a <a href="https://github.com/wojodesign/simplecart-js/blob/v3/README.md">work in progress</a>, but here are a few big points about using the new code:</p>
<p>&nbsp;</p>
<h3>New Options and Syntax</h3>
<p>When setting options for simpleCart(js) v3, you simply send a settings object to a simpleCart() function:</p>
<p>
<pre class="brush: jscript; title: ; notranslate">
  simpleCart({
    tax: 0.08,
    shipping: 10,
    currency: &quot;USD&quot;
  });
</pre>
</p>
<p>The option formats have changed a bit; you can see all the available options in the <a href="https://github.com/wojodesign/simplecart-js/blob/v3/README.md">README</a>.</p>
<p>&nbsp;</p>
<h3>jQuery, Prototype, or Mootools</h3>
<p>simpleCart(js) v3 will require a library, such as jQuery, Prototype, and Mootools.  A lot of thought has gone into how to work with every library and keep simpleCart(js) small and manageable.  It turns out, almost every site that is using simpleCart(js) is also using one of these three libraries, so it made sense to use the expertise and hard work that goes into those great libraries to handle things like DOM manipulation, CSS selectors, and event handling. </p>
<p>The best part is that you can use any of these libraries interchangeably, and simpleCart(js) will simply figure out whats included and use it.  Right now, these libraries seemed to cover the majority of sites, but if there is a strong request for others, we will try to include support.</p>
<p><a href="http://wojodesign.com">Wojo Design</a></p><img src="http://feeds.feedburner.com/~r/WojoDesign/~4/GvjSCYxBU-c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wojodesign.com/simplecartjs-v3-beta/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://wojodesign.com/simplecartjs-v3-beta/</feedburner:origLink></item>
		<item>
		<title>Announcing the Launch of Motionspire V2</title>
		<link>http://feedproxy.google.com/~r/WojoDesign/~3/MCD7fNe5OjM/</link>
		<comments>http://wojodesign.com/announcing-the-launch-of-motionspire-v2/#comments</comments>
		<pubDate>Thu, 03 Nov 2011 11:24:59 +0000</pubDate>
		<dc:creator>kyle</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Motionspire]]></category>

		<guid isPermaLink="false">http://wojodesign.com/?p=789</guid>
		<description><![CDATA[<p><p><a href="http://wojodesign.com">Wojo Design</a></p><p>We are proud to announce a brand new version of Motionspire &#8211; the world&#39;s premiere motion graphics inspiration gallery. Motionspire &#8230; <a href="http://wojodesign.com/announcing-the-launch-of-motionspire-v2/">More <span class="meta-nav">&#8594;</span></a></p></p><p><a href="http://wojodesign.com">Wojo Design</a></p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://wojodesign.com">Wojo Design</a></p><p><a href="http://motionspire.com"><img alt="Motionspire" class="alignnone size-full wp-image-792" height="104" src="http://wojodesign.com/wp-content/uploads/2011/10/motionspire.jpg" title="Motionspire" width="550" /></a></p>
<p>We are proud to announce a brand new version of Motionspire &#8211; the world&#39;s premiere motion graphics inspiration gallery. Motionspire is the best place to go when you want to see the best motion graphics work available online.</p>
<p>We launched Motionspire 3 years ago, and we&#39;ve been pleased with its growth over the years. Today we are launching a brand new video submission process that makes it easier than ever to submit your work. Many motion graphics pros already have their work available on Vimeo, and if you submit a link we&#39;ll automatically pull in all the information and queue the video for review. If you&#39;d prefer to upload your video directly, we accept .mov, .mp4, .m4v, and .flv files up to 50MB in size.</p>
<p>Another new feature makes it much easier to find the inspiration you are looking for. You can select multiple categories at the same time, so if you want to see 2D Title Sequences or 3D Commercials with a Typography focus, it&#39;s just a few clicks away.</p>
<p>We have big plans for Motionspire&#39;s future as well, including keyword search, custom user portfolios and a job board for motion graphics professionals. Keep checking back at <a href="http://motionspire.com">Motionspire.com</a> for new developments, and while you&#39;re at it, take a look at some of the best motion graphics videos ever made.</p>
<p><a href="http://wojodesign.com">Wojo Design</a></p><img src="http://feeds.feedburner.com/~r/WojoDesign/~4/MCD7fNe5OjM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wojodesign.com/announcing-the-launch-of-motionspire-v2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://wojodesign.com/announcing-the-launch-of-motionspire-v2/</feedburner:origLink></item>
		<item>
		<title>Update from The Wojo Group</title>
		<link>http://feedproxy.google.com/~r/WojoDesign/~3/iFtJB6DMKRg/</link>
		<comments>http://wojodesign.com/update-from-the-wojo-group/#comments</comments>
		<pubDate>Tue, 11 May 2010 00:10:34 +0000</pubDate>
		<dc:creator>kyle</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.thewojogroup.com/?p=634</guid>
		<description><![CDATA[<p><p><a href="http://wojodesign.com">Wojo Design</a></p><p>Over the years we have made some big transitions at The Wojo Group. Although we used to be primarily concerned &#8230; <a href="http://wojodesign.com/update-from-the-wojo-group/">More <span class="meta-nav">&#8594;</span></a></p></p><p><a href="http://wojodesign.com">Wojo Design</a></p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://wojodesign.com">Wojo Design</a></p><p>Over the years we have made some big transitions at The Wojo Group. Although we used to be primarily concerned with client work, over time we have directed more and more of our effort towards internal projects. Some of these projects have included <a href="http://www.motionspire.com">Motionspire.com</a>, a motion graphics gallery we launched a couple years ago, and <a href="http://www.simplecartjs.com">SimpleCart(js)</a>, the open-source javascript shopping cart that turned out to be quite popular.<span id="more-634"></span></p>
<p>However, another project we&#8217;ve had in the works for quite some time is <a href="http://www.hellorent.com">HelloRent.com</a>, an apartment finder that doesn&#8217;t suck (in our humble opinion). We&#8217;re really excited about this project and we believe it has the potential to shake up the industry. Recently we have been focusing almost all of our efforts towards HelloRent. Thus, we have not been able to devote any significant time to development of our other projects, blogging, or client work.</p>
<p>Although we wish we could do it all, we have to be realistic with our time constraints and our abilities. Thanks to everyone who has supported us so far, either by reading this blog, visiting one of our creations, or spreading the word about what we&#8217;re up to here at The Wojo Group. We do plan to eventually return to more frequent blogging, and someday we will hopefully have the time to continue developing our other projects. In the meantime, though, please feel free to head over to <a href="http://www.hellorent.com">HelloRent.com</a>, subscribe to our email newsletter, and request an invite if you are interested in giving it a try. As always, we&#8217;d love to hear your feedback.</p>
<p>Thanks again for your support.</p>
<p>AQGZPS5S8DH6</p>
<p><a href="http://wojodesign.com">Wojo Design</a></p><img src="http://feeds.feedburner.com/~r/WojoDesign/~4/iFtJB6DMKRg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wojodesign.com/update-from-the-wojo-group/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://wojodesign.com/update-from-the-wojo-group/</feedburner:origLink></item>
		<item>
		<title>April Fool’s Floating Text Script</title>
		<link>http://feedproxy.google.com/~r/WojoDesign/~3/mOcXa4_IwAo/</link>
		<comments>http://wojodesign.com/april-fools-floating-text-script/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 03:00:18 +0000</pubDate>
		<dc:creator>Brett</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[april fools]]></category>
		<category><![CDATA[creepin]]></category>
		<category><![CDATA[prank]]></category>

		<guid isPermaLink="false">http://www.thewojogroup.com/?p=623</guid>
		<description><![CDATA[<p><p><a href="http://wojodesign.com">Wojo Design</a></p><p>This year's javascript trick involves taking individual words on your page and let them float or creep away.  Every time the user does not move their mouse for 5 seconds (you can change this interval), the words will start to creep.  Once they move their mouse again, the words will return to their original spot.

<a href="javascript:creepify();">START THE CREEP</a> <a href="http://wojodesign.com/april-fools-floating-text-script/">More <span class="meta-nav">&#8594;</span></a></p></p><p><a href="http://wojodesign.com">Wojo Design</a></p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://wojodesign.com">Wojo Design</a></p><p>This year&#8217;s javascript trick involves taking individual words on your page and let them float or creep away. &nbsp;Every time the user does not move their mouse for 5 seconds (you can change this interval), the words will start to creep. &nbsp;Once they move their mouse again, the words will return to their original spot.<span id="more-628"></span></p>
<p>Simply add this script tag in your header:</p>
<pre class="brush: xml; title: ; notranslate">&lt;script src=&quot;http://wojodesign.com/creep.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;</pre>
<p>And start the creep with the body onload function with the argument being the desired delay (in seconds) before the words start creeping (default is 5 seconds):</p>
<pre class="brush: xml; title: ; notranslate">
&lt;body onload=&quot;creepify(1000)&quot;&gt;
</pre>
<p>I haven&#8217;t been able to test this on many browsers, and there are some quirks depending on the content of your page. If you are using a javascript library like JQuery, you may want to use the $(document).onload or equivalent in order to call the creepify() function. Happy April Fools!</p>
<p><a href="javascript:creepify();">START THE CREEP</a></p>
<p><strong>Note:</strong> This script will probably mess up some of your styling, so test it out first to see what happens. <img src='http://wojodesign.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://wojodesign.com">Wojo Design</a></p><img src="http://feeds.feedburner.com/~r/WojoDesign/~4/mOcXa4_IwAo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wojodesign.com/april-fools-floating-text-script/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		<feedburner:origLink>http://wojodesign.com/april-fools-floating-text-script/</feedburner:origLink></item>
		<item>
		<title>Simulating HTML5 Local Storage Support</title>
		<link>http://feedproxy.google.com/~r/WojoDesign/~3/a2zPro8ODwQ/</link>
		<comments>http://wojodesign.com/simulating-html5-local-storage/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 06:07:07 +0000</pubDate>
		<dc:creator>Brett</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[localStorage]]></category>
		<category><![CDATA[Persistent Local Storage]]></category>
		<category><![CDATA[Storage]]></category>

		<guid isPermaLink="false">http://www.thewojogroup.com/?p=580</guid>
		<description><![CDATA[<p><p><a href="http://wojodesign.com">Wojo Design</a></p><p>I have been wanting to use HTML5's local storage for a while, but I haven't had a project where I can just ignore the older browsers.  So I put together a little ( <1Kb gzipped ) script that checks for HTML5's local storage API, and simulates the method for browsers that do not support it.  For those browsers, the script implements a nearly identical interface to localStorage for persistent storage of name/value pairs, except it uses cookies. <a href="http://wojodesign.com/simulating-html5-local-storage/">More <span class="meta-nav">&#8594;</span></a></p></p><p><a href="http://wojodesign.com">Wojo Design</a></p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://wojodesign.com">Wojo Design</a></p><p>I have been wanting to use <a href="http://www.w3.org/TR/2009/WD-webstorage-20091222/" target="_blank">HTML5&#8242;s local storage</a> for a while, but I haven&#8217;t had a project where I can just ignore the older browsers.  So I put together a little ( &lt;1Kb gzipped ) script that checks for HTML5&#8242;s local storage API, and simulates the method for browsers that do not support it. For those browsers, the script implements a nearly identical interface to localStorage for persistent storage of name/value pairs, except it uses cookies.  For the impatient types, you can see the repo at <a href="http://github.com/thewojogroup/local-storage-js" target="_blank">github</a> or <a href="http://cloud.github.com/downloads/thewojogroup/local-storage-js/local-storage-js-1.zip">download the script</a>. <span id="more-580"></span>Below is a description of usage:</p>
<pre class="brush: jscript; title: ; notranslate">

localStorage.setItem( key , value );
// saves a new name/value pair if the key doesn't exist, otherwise
// updates the value

localStorage.getItem( key );
// returns the value associated with the given key, if it exists
// returns null if the key doesn't exist

localStorage.length;
// the number of unique keys stored

localStorage.removeItem( key );
// deletes the name/value pair with the given key, if it exists
// if it does not exist, exits

localStorage.clear();
// delete all name/value pairs currently stored

localStorage.key( n );
// returns the name of the nth key in the list, will return null if n is
// greater than or equal to localStorage.length
</pre>
<p>If the localStorage object is available, the setup script exits and allows the method to work normally.  Otherwise, it will use the same interface to create a string of name/value pairs to store in cookies.  You can use all the methods described above, but it does not support direct access to data, such as &#8216;localStorage.name = &#8220;bob&#8221; ;&#8217;.  One issue is that the older browsers with slow performance will experience another setback when storing large amounts of data, because the cookies will be included in headers.</p>
<p>There are two types of storage methods in the new Web Storage Specification: localStorage and sessionStorage.  The sessionStorage data will only persist for the life of the browser window, whereas localStorage will last indefinitely, depending on the browser.  This script uses the localStorage, but can be switched to sessionStorage pretty easily.  There are a few resources out there already where you can learn a <a href="http://hacks.mozilla.org/2009/06/localstorage/">little</a> <a href="http://24ways.org/2009/breaking-out-the-edges-of-the-browser">bit</a> <a href="http://www.w3.org/TR/2009/WD-webstorage-20091222/">more</a>.  Currently, the specification is supported by IE8, Firefox3.5, Safari4, and Chrome (localStorage only).</p>
<p><a class="btnDownload" href="http://cloud.github.com/downloads/thewojogroup/local-storage-js/local-storage-js-1.zip">Download</a> or Check out the <a href="http://github.com/thewojogroup/local-storage-js">repo on github</a>.</p>
<p>[<strong>Note</strong>: I've done some brief testing on most browsers, but if you run into a problem, let me know]</p>
<p><a href="http://wojodesign.com">Wojo Design</a></p><img src="http://feeds.feedburner.com/~r/WojoDesign/~4/a2zPro8ODwQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wojodesign.com/simulating-html5-local-storage/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<feedburner:origLink>http://wojodesign.com/simulating-html5-local-storage/</feedburner:origLink></item>
		<item>
		<title>simpleCart(js) Version 2.0 Released!</title>
		<link>http://feedproxy.google.com/~r/WojoDesign/~3/ujx0aAGxDcI/</link>
		<comments>http://wojodesign.com/simplecartjs-version-2-0-released/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 12:28:30 +0000</pubDate>
		<dc:creator>Brett</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[simpleCart(js)]]></category>
		<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[google checkout]]></category>
		<category><![CDATA[javascript shopping cart]]></category>
		<category><![CDATA[simple cart]]></category>
		<category><![CDATA[simpleCart]]></category>
		<category><![CDATA[version 2]]></category>

		<guid isPermaLink="false">http://www.thewojogroup.com/?p=567</guid>
		<description><![CDATA[<p><p><a href="http://wojodesign.com">Wojo Design</a></p><p>We are happy to announce the release of simpleCart(js) version 2.0. <a href="http://wojodesign.com/simplecartjs-version-2-0-released/">More <span class="meta-nav">&#8594;</span></a></p></p><p><a href="http://wojodesign.com">Wojo Design</a></p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://wojodesign.com">Wojo Design</a></p><p>We are happy to announce the release of simpleCart(js) version 2.0 today.  We have been working hard to add several features that you all have requested, and we&#8217;re excited to get this script in your hands.  There are several new features, including GoogleCheckout, easy currency settings, tax, shipping, and a new method for adding items to your cart that <strong>requires no javascript</strong>, and allows for different inputs and options. There is also a brand new site to go along with this update: <a href="http://simplecartjs.com">simplecartjs.com </a>.  Please take a minute to check out all the new features, documentation, and demo.  Thanks to all those who have been helping test for the past few weeks, we couldn&#8217;t have released this new version without your help.<span id="more-567"></span></p>
<h3>Upgrading your version</h3>
<p>If you are already using simpleCart(js), the only thing you need to change to use the new script is how you add it to your page:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;script src=&quot;simpleCart.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
//&lt;![CDATA[
    simpleCart.email = &quot;you@yours.com&quot;;
//]]&gt;
&lt;/script&gt;
</pre>
<p>Check out the website, <a href="http://simplecartjs.com">simplecartjs.com</a> to learn about the new features, and let us know what you think!</p>
<p><a href="http://wojodesign.com">Wojo Design</a></p><img src="http://feeds.feedburner.com/~r/WojoDesign/~4/ujx0aAGxDcI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wojodesign.com/simplecartjs-version-2-0-released/feed/</wfw:commentRss>
		<slash:comments>105</slash:comments>
		<feedburner:origLink>http://wojodesign.com/simplecartjs-version-2-0-released/</feedburner:origLink></item>
		<item>
		<title>Javascript Number.toCurrency()</title>
		<link>http://feedproxy.google.com/~r/WojoDesign/~3/QKhjOmAzp4A/</link>
		<comments>http://wojodesign.com/javascript-number-to-currency/#comments</comments>
		<pubDate>Fri, 31 Jul 2009 18:56:33 +0000</pubDate>
		<dc:creator>Brett</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[simpleCart(js)]]></category>
		<category><![CDATA[currency]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[price formatting]]></category>

		<guid isPermaLink="false">http://www.thewojogroup.com/?p=542</guid>
		<description><![CDATA[<p><p><a href="http://wojodesign.com">Wojo Design</a></p><p>While working on <a title="simpleCart(js) repo" href="http://github.com/thewojogroup/simplecart-js/tree/master" target="_blank">simpleCart(js) 2.0</a> and a few shopping carts for clients, I found myself writing several helper functions for formatting strings and numbers.  One of the most useful helpers was a toCurrency() method for numbers. <a href="http://wojodesign.com/javascript-number-to-currency/">More <span class="meta-nav">&#8594;</span></a></p></p><p><a href="http://wojodesign.com">Wojo Design</a></p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://wojodesign.com">Wojo Design</a></p><p>While working on <a title="simpleCart(js) repo" href="http://github.com/thewojogroup/simplecart-js/tree/master" target="_blank">simpleCart(js) 2.0</a> and a few shopping carts for clients, I found myself writing several helper functions for formatting strings and numbers.  One of the most useful helpers was a toCurrency() method for numbers:</p>
<pre class="brush: jscript; title: ; notranslate">
var myNumber = 8.3;

alert( myNumber.toCurrency() );   //alerts &quot;$8.30&quot;

myNumber = 119427.23529;

alert( myNumber.toCurrency() );    //alerts &quot;$119,427.24&quot;

myNumber = 1231;

alert( myNumber.toCurrency( &quot;€&quot; ) );   //alerts &quot;€1,231.00&quot;
</pre>
<p>The dollar sign is default, but you can replace it with any symbol in the function call.</p>
<p>Just copy this code to your js file and enjoy! (This code also implements a reverse() method for strings that you might find useful.)</p>
<pre class="brush: jscript; title: ; notranslate">
String.prototype.reverse=function(){
    return this.split(&quot;&quot;).reverse().join(&quot;&quot;);
}
Number.prototype.withCommas=function(){
    var x=6,y=parseFloat(this).toFixed(2).toString().reverse();
    while(x&amp;lt;y.length){y=y.substring(0,x)+&quot;,&quot;+y.substring(x);x+=4;}
    return y.reverse();
}
Number.prototype.toCurrency=function(){
    return(arguments[0]?arguments[0]:&quot;$&quot;)+this.withCommas();
}
</pre>
<p><a href="http://wojodesign.com">Wojo Design</a></p><img src="http://feeds.feedburner.com/~r/WojoDesign/~4/QKhjOmAzp4A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wojodesign.com/javascript-number-to-currency/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://wojodesign.com/javascript-number-to-currency/</feedburner:origLink></item>
	</channel>
</rss>

