<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:georss="http://www.georss.org/georss" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0"><id>tag:blogger.com,1999:blog-17614572</id><updated>2009-07-10T21:33:38.496-05:00</updated><title type="text">greengeckodesign.com/blog</title><subtitle type="html" /><link rel="alternate" type="text/html" href="http://greengeckodesign.com/blog/" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://feeds.feedburner.com/greengeckodesign/blog" /><author><name>Jason Jaeger</name><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>19</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><link rel="self" href="http://feeds.feedburner.com/greengeckodesign/blog" type="application/atom+xml" /><entry><id>tag:blogger.com,1999:blog-17614572.post-7274879558399386381</id><published>2009-06-27T19:53:00.003-05:00</published><updated>2009-06-27T20:08:37.030-05:00</updated><title type="text">back in the saddle</title><content type="html">&lt;p&gt;After a long exile from tending to my projects here I am back in action now that I have accomplished many a home improvement project on our first fixer-upper and now that I have recuperated from the arrival of our firstborn (Hannah Lynn Jaeger, who is two weeks old today).&lt;/p&gt;
&lt;p&gt;I will be working feverishly to catch up on email questions starting this weekend. Also I will post the user gallery in July as well as finally publish some long overdue updates to MenuMatic and MooScroll.&lt;/p&gt;
&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://greengeckodesign.com/blog/uploaded_images/Hannah-020-795680.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://greengeckodesign.com/blog/uploaded_images/Hannah-020-795128.JPG" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17614572-7274879558399386381?l=greengeckodesign.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/greengeckodesign/blog/~4/0rvRIGTEzM4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/7274879558399386381/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=17614572&amp;postID=7274879558399386381" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/7274879558399386381" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/7274879558399386381" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/greengeckodesign/blog/~3/0rvRIGTEzM4/back-in-saddle.html" title="back in the saddle" /><author><name>Jason Jaeger</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="04830289793895961977" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://greengeckodesign.com/blog/2009/06/back-in-saddle.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-17614572.post-8381509531899584626</id><published>2009-02-15T19:23:00.004-06:00</published><updated>2009-02-15T19:44:19.303-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="MenuMatic" /><category scheme="http://www.blogger.com/atom/ns#" term="MooScroll" /><category scheme="http://www.blogger.com/atom/ns#" term="MooColumns" /><category scheme="http://www.blogger.com/atom/ns#" term="video tutorials" /><title type="text">Video Tutorials</title><content type="html">&lt;p&gt;Recently it has been getting increasingly challenging to keep up with the great emails that you all send me (questions, comments, feature requests &amp;amp; thanks). And it will surely not get any easier in the days ahead. My wife and I are expecting our first born (Hannah Lynn Jaeger) this June! Also we are in the midst of purchasing a "fixer-upper", where I will experience the thrills of being my own maintenance man ;).&lt;/p&gt;&lt;p&gt;So I have decided to create a series of video tutorials to help answer some common questions and show the basics of how to use my scripts. I have started this weekend by making two videos showing the basics of setting up and using MenuMatic. I plan to also add videos showing some advanced MenuMatic techniques, as well as video tutorials for MooScroll and MooColumns as well.&lt;/p&gt;&lt;p&gt;There is also a distinct possibility that I may set up a forum since there are many knowledgeable users of MenuMatic, MooScroll, and MooColumns. And it is always healthier to have an interactive community for these kinds of things rather than a one-man-band.&lt;/p&gt;&lt;p&gt;I still &lt;span style="font-weight:bold;"&gt;fully &lt;/span&gt;welcome &lt;span style="font-weight:bold;"&gt;all &lt;/span&gt;emails.. just be understanding if I don't respond right away :)&lt;/p&gt;&lt;p&gt;And don't worry, I am still actively developing MenuMatic and MooScroll and will probably release an updated MenuMatic next weekend!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17614572-8381509531899584626?l=greengeckodesign.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/greengeckodesign/blog/~4/nCi3PiPjXb4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/8381509531899584626/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=17614572&amp;postID=8381509531899584626" title="8 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/8381509531899584626" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/8381509531899584626" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/greengeckodesign/blog/~3/nCi3PiPjXb4/video-tutorials.html" title="Video Tutorials" /><author><name>Jason Jaeger</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="04830289793895961977" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">8</thr:total><feedburner:origLink>http://greengeckodesign.com/blog/2009/02/video-tutorials.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-17614572.post-7165909062858943153</id><published>2009-02-08T19:23:00.003-06:00</published><updated>2009-02-08T19:38:27.774-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="MenuMatic" /><category scheme="http://www.blogger.com/atom/ns#" term="MooScroll" /><category scheme="http://www.blogger.com/atom/ns#" term="MooColumns" /><title type="text">Show Me Your Stuff</title><content type="html">&lt;p&gt;I will be setting up a gallery of MenuMatic, MooScroll, and MooColumns being used in the wild. So, if you have used any of these in a project and want to show it off just &lt;a href="mailto:jason@greengeckodesign.com?subject=gallery%20submission"&gt;shoot me an email &lt;/a&gt;with:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;The design company(or your) name and link&lt;/li&gt;&lt;li&gt;a link to the site were it is being used&lt;/li&gt;&lt;li&gt;and "gallery submission" in the title&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;I will add the ones I like best to the gallery and of course there will be a link to your company(or personal) site and your client's site.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17614572-7165909062858943153?l=greengeckodesign.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/greengeckodesign/blog/~4/WwkB5FlF9mc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/7165909062858943153/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=17614572&amp;postID=7165909062858943153" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/7165909062858943153" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/7165909062858943153" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/greengeckodesign/blog/~3/WwkB5FlF9mc/show-me-your-stuff.html" title="Show Me Your Stuff" /><author><name>Jason Jaeger</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="04830289793895961977" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://greengeckodesign.com/blog/2009/02/show-me-your-stuff.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-17614572.post-6423568722202791406</id><published>2008-12-24T10:57:00.014-06:00</published><updated>2008-12-26T16:52:16.395-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="MenuMatic" /><category scheme="http://www.blogger.com/atom/ns#" term="zoom" /><category scheme="http://www.blogger.com/atom/ns#" term="flash" /><category scheme="http://www.blogger.com/atom/ns#" term="ie7" /><title type="text">detecting zoom level in IE7</title><content type="html">&lt;p&gt;When I recently learned that the submenus in MenuMatic were not being positioned correctly in IE7  (when the zoom level was not 100%) I had to figure out how to detect the current zoom amount. I read a forum post a week or so ago where someone suggested using flash and setting the stage to not scale. I have since looked for that post to give the poster credit but I could not find it. However I used the general idea, and decided to share the flash file in case anybody else needed it (since I mostly found people asking how to detect the zoom level but no working examples).&lt;/p&gt;
&lt;p&gt;&lt;center&gt;&lt;a href="http://greengeckodesign.com/projects/zoomfinder" target="_blank"&gt;&lt;img src="http://greengeckodesign.com/images/zoomfinderscreenshot.jpg" alt="zoomFinder screenshot" /&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight: bold;"&gt;How It Works:&lt;/span&gt;&lt;br /&gt;Basically the movie is 100px wide, the stage's scaleMode is set to not scale, and there is an onenterframe function to detect the stage width and send it to the javascript function. Although when it detects the stage's width it is actually detecting the movie's width while the stage stays at 100px wide. So if the zoom level is 120%  it reads the "stage" width as 120.&lt;/p&gt;
&lt;p&gt;The javascript function updates a global variable so you can access it easily. I am not normally a fan of global variables in javascript but felt it was an acceptable solution in this case. The flash file only runs at 1 frame per second, and is less than 2kb in size so it should not be too taxing on user resources. &lt;/p&gt;
&lt;span style="font-weight: bold;"&gt;To Use:&lt;/span&gt;
&lt;ol&gt;&lt;li&gt;Insert the .swf into the page.&lt;/li&gt;&lt;li&gt;Hide it with css.&lt;/li&gt;&lt;li&gt;Add 2 lines to your javascript (the function and the global variable)&lt;/li&gt;&lt;/ol&gt;
&lt;a href="http://greengeckodesign.com/projects/zoomfinder" target="_blank"&gt;Example&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://zoomfinder.googlecode.com/files/zoomFinder.zip" target="_blank"&gt;Download&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17614572-6423568722202791406?l=greengeckodesign.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/greengeckodesign/blog/~4/bzeBi8dtpok" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/6423568722202791406/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=17614572&amp;postID=6423568722202791406" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/6423568722202791406" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/6423568722202791406" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/greengeckodesign/blog/~3/bzeBi8dtpok/detecting-zoom-level-in-ie7.html" title="detecting zoom level in IE7" /><author><name>Jason Jaeger</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="04830289793895961977" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://greengeckodesign.com/blog/2008/12/detecting-zoom-level-in-ie7.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-17614572.post-1327507177920929684</id><published>2008-11-03T09:25:00.005-06:00</published><updated>2008-11-03T12:34:52.931-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="MenuMatic" /><category scheme="http://www.blogger.com/atom/ns#" term="javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="mootools" /><category scheme="http://www.blogger.com/atom/ns#" term="css" /><title type="text">MenuMatic update</title><content type="html">I just released MenuMatic 0.68 which has a few improvements and should be a little more efficient. Some of the improvements are:
&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;center &lt;/span&gt;option&lt;/span&gt;: A method I often use to center elements with css is setting the left to 50% and then the left margin to minus half the width of the element. This works really well when you know the width of the element is not going to change. But when your client has control to add or remove pages via a cms the menu width might change. So I added a &lt;span class="Apple-style-span" style="font-style: italic;"&gt;center &lt;/span&gt;option to keep your menu centered even if the width of the menu changes. &lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-style: italic; "&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;stretchMainMenu&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;  option&lt;/span&gt;: I renamed the &lt;span class="Apple-style-span" style="font-style: italic;"&gt;menuWidth &lt;/span&gt;option to &lt;span class="Apple-style-span" style="font-style: italic;"&gt;stretchMainMenu&lt;/span&gt;  as that seems like a much more accurate name. Also I made it work &lt;span class="Apple-style-span" style="font-style: italic;"&gt;much &lt;/span&gt;quicker. In case you have not used it, this option will stretch each link in your main menu until they fill the main ul or ol. So set &lt;span class="Apple-style-span" style="font-style: italic; "&gt;stretchMainMenu&lt;/span&gt;  to true and set a width on your main ol or ul in the css and you can simulate layouts that you can normally only achieve with tables.&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;fixHasLayoutBug &lt;/span&gt;option&lt;/span&gt;: A few of you have run into &lt;a href="http://msdn.microsoft.com/en-us/library/bb250481(VS.85).aspx" target="_blank"&gt;Microsoft's hasLayout Bug&lt;/a&gt;, so if you find yourself troubleshooting a weird bug like the submenus all show up at the top of the window instead of by the link you are hovering over, then try enabling this option. It will force all the menu elements to have layout in IE, also all the parent elements of the menu since this is also important for getting accurate positioning.  * Note I have not yet tested this, so if you end up using it please let me know if it works or not :)
&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;call-back functions&lt;/span&gt;: I added 18 callback functions to make modifying MenuMatic for different unique situations easier and faster. For example, if you need to do something right after a subMenu is positioned but before it is shown, you can use &lt;span class="Apple-style-span" style="font-style: italic;"&gt;onPositionSubMenu_complete&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Google Code&lt;/span&gt;: I am now &lt;a href="http://code.google.com/p/menumatc/" target="_blank"&gt;using Google Code to host MenuMatic&lt;/a&gt; so you can use &lt;a href="http://code.google.com/p/menumatc/issues/list" target="_blank"&gt;the issue tracker there&lt;/a&gt; to report any bugs or submit feature requests. Thanks!&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17614572-1327507177920929684?l=greengeckodesign.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/greengeckodesign/blog/~4/uE_C78YzFQc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/1327507177920929684/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=17614572&amp;postID=1327507177920929684" title="31 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/1327507177920929684" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/1327507177920929684" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/greengeckodesign/blog/~3/uE_C78YzFQc/menumatic-update.html" title="MenuMatic update" /><author><name>Jason Jaeger</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="04830289793895961977" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">31</thr:total><feedburner:origLink>http://greengeckodesign.com/blog/2008/11/menumatic-update.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-17614572.post-164125991255037486</id><published>2008-10-05T13:02:00.006-05:00</published><updated>2008-10-05T13:41:07.964-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="mootools" /><title type="text">get or set an element's unique id with MooTools</title><content type="html">&lt;p&gt;Here is a simple MooTools script that adds a getId method to the Element class. The getId method simply returns the element's id if it already exists, if not it generates a unique id, assigns it to the element and returns that. The generated id does not persist from page to page, however this little script comes in handy sometimes.&lt;/p&gt;

&lt;pre name="code" class="javascript"&gt;
Element.implement({      
   getId: function(){
      if(!this.get('id')){ 
        var uniqueId = this.get('tag') + "-" + $time();
        while($(uniqueId)){ uniqueId = this.get('tag') + "-" + $time(); }
        this.set('id', uniqueId);      
      }
      return this.get('id');
   }
});
&lt;/pre&gt;

&lt;p&gt; So usage would look like this:&lt;/p&gt;
&lt;pre name="code" class="javascript"&gt;
var theIdofTheFirstLink = $(document.body).getElement('a').getId();

//or something like this would make sure every element on the page has an id
$$('*').getId();
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17614572-164125991255037486?l=greengeckodesign.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/greengeckodesign/blog/~4/AwykXgxnNsw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/164125991255037486/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=17614572&amp;postID=164125991255037486" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/164125991255037486" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/164125991255037486" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/greengeckodesign/blog/~3/AwykXgxnNsw/get-or-set-elements-unique-id-with.html" title="get or set an element's unique id with MooTools" /><author><name>Jason Jaeger</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="04830289793895961977" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://greengeckodesign.com/blog/2008/10/get-or-set-elements-unique-id-with.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-17614572.post-5522111230870340707</id><published>2008-09-22T21:17:00.006-05:00</published><updated>2008-09-23T22:06:21.029-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="MooScroll" /><title type="text">Addicted to Analytics</title><content type="html">&lt;p&gt;I am pretty sure I am addicted to Google Analytics. Ever since I first installed it on my site over a year ago ( and on every site I've built since ). I'm not sure what it is, since I am not a math geek, there is just something very interesting about trolling through the analytics of several different sites and comparing trends and see who is getting traffic from where and such.&lt;/p&gt;
&lt;p&gt;On a completely unrelated note, I updated MooScroll over the weekend. Of the 3 projects I have released for download, MooScroll by far was the most raw. I hammered out several bugs and it should be much more stable than before. I also added an extra &lt;a target="_blank" href="http://greengeckodesign.com/projects/mooscroll/examples/example3/"&gt;demo page&lt;/a&gt; with an OSX style layout.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17614572-5522111230870340707?l=greengeckodesign.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/greengeckodesign/blog/~4/UuVjDr2A_9A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/5522111230870340707/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=17614572&amp;postID=5522111230870340707" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/5522111230870340707" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/5522111230870340707" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/greengeckodesign/blog/~3/UuVjDr2A_9A/addicted-to-analytics.html" title="Addicted to Analytics" /><author><name>Jason Jaeger</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="04830289793895961977" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://greengeckodesign.com/blog/2008/09/addicted-to-analytics.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-17614572.post-9143727565243282607</id><published>2008-09-16T22:06:00.007-05:00</published><updated>2008-10-07T19:05:36.483-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="MenuMatic" /><category scheme="http://www.blogger.com/atom/ns#" term="javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="MooMenu" /><category scheme="http://www.blogger.com/atom/ns#" term="mootools" /><title type="text">Introducing MenuMatic</title><content type="html">&lt;p&gt;A couple of years ago when I got into web design I decided to make my own javascript drop-down menu based on the fact that I could not find one out there with all the features I wanted. Several versions later when I found and fell in love with MooTools I immediately rewrote it for mootools. I have been using this for websites for some time now and recently made some more improvements and decided to release it for download. I plan on making several more sweeping improvements in the not-to-distant future (sometime before the holidays hopefully).&lt;/p&gt;
&lt;p&gt;I mentioned in a previous post that I would be releasing this script under the name MooMenu but after some googling I found that it seemed that name had been used so I finally settled on the more original name of MenuMatic.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://greengeckodesign.com/images/menumatic-promo.jpg" alt="MenuMatic" /&gt;&lt;/p&gt;
&lt;p&gt;Essentially &lt;a href="http://greengeckodesign.com/projects/menumatic.aspx" title="MenuMatic home page"&gt;MenuMatic&lt;/a&gt; takes an ordered or unordered list of links and turns it into a dynamic drop down menu system with loads of options. Some advantages of MenuMatic are that it is based on semantic xthml structure, it is completely keyboard accessible, and easier to use than CSS based menus alone since you can adjust the hideDelay option, however it is based on a keyboard accessible version of Suckerfish Dropdowns for users without javascript enabled.&lt;/p&gt;
&lt;p&gt;It should be pretty solid but as always email me or post a comment if you find any bugs.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17614572-9143727565243282607?l=greengeckodesign.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/greengeckodesign/blog/~4/1omzorKlNHA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/9143727565243282607/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=17614572&amp;postID=9143727565243282607" title="20 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/9143727565243282607" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/9143727565243282607" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/greengeckodesign/blog/~3/1omzorKlNHA/introducing-menumatic.html" title="Introducing MenuMatic" /><author><name>Jason Jaeger</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="04830289793895961977" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">20</thr:total><feedburner:origLink>http://greengeckodesign.com/blog/2008/09/introducing-menumatic.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-17614572.post-7776932155422695145</id><published>2008-09-07T00:23:00.004-05:00</published><updated>2008-09-07T00:52:30.069-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="MooScroll" /><category scheme="http://www.blogger.com/atom/ns#" term="mootools" /><title type="text">MooScroll Updated!</title><content type="html">&lt;p&gt;I just released MooScroll version 0.5&lt;span style="font-weight: bold;"&gt;3&lt;/span&gt; &lt;span style="font-style: italic;"&gt;beta&lt;/span&gt; which has several enhancements over 0.52.
It should now be much quicker and easier to plug into a design as it now plays nicer when the original element is positioned. Version 0.53 also has the following improvements.&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-weight: bold;"&gt;fullWindowMode option&lt;/span&gt;
You can use the fullWindowMode option to "replace" the window's scrollbar.
&lt;/p&gt;&lt;p&gt;
&lt;span style="font-weight: bold;"&gt;refresh function&lt;/span&gt;
The refresh function lets you update the scrollbar (if, for instance, you change the size of the MooScroll object ).&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-weight: bold;"&gt;loadContent function&lt;/span&gt;
To dynamically update the content of a MooScroll object, just call the loadContent function passing in the new content as as string.&lt;/p&gt;
&lt;p&gt;
You can check out the updated examples to test it out:&lt;br /&gt;
&lt;a href="http://greengeckodesign.com/dev/MooScroll_0.53/examples/mooscroll-example.htm"&gt;Main MooScroll Example Page (including loadContent function demo)&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://greengeckodesign.com/dev/MooScroll_0.53/examples/mooscroll-example2.htm"&gt;fullWindowMode Example Page&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
Thanks to Bob Ralian for his contributions! Still on my To Do List is to add the ability for horizontal &lt;span style="font-weight: bold;"&gt;and/or&lt;/span&gt; vertical scrollbars (instead of just vertical).  As always, you can email me or post a comment if you  run across any bugs, or have any feature requests!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17614572-7776932155422695145?l=greengeckodesign.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/greengeckodesign/blog/~4/voO-guYxO4g" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/7776932155422695145/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=17614572&amp;postID=7776932155422695145" title="25 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/7776932155422695145" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/7776932155422695145" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/greengeckodesign/blog/~3/voO-guYxO4g/mooscroll-updated.html" title="MooScroll Updated!" /><author><name>Jason Jaeger</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="04830289793895961977" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">25</thr:total><feedburner:origLink>http://greengeckodesign.com/blog/2008/09/mooscroll-updated.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-17614572.post-5603227537434583664</id><published>2008-08-16T08:54:00.004-05:00</published><updated>2008-08-16T09:26:36.131-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="javascript" /><title type="text">Response.Right</title><content type="html">&lt;a href="http://www.accessify.com/tools-and-wizards/developer-tools/response.right/default.php" target="_blank"&gt;Response.Right&lt;/a&gt; is a useful tool that I have used many times to convert HTML or Javascript to a string in my server-side code (I use ASP.NET 2.0 C# and PHP). Basically if you have ever pasted some HTML into a C# code behind page and had to go through and manually escape all the quotation marks you know how annoying that can be. So I just have this tool bookmarked and use it instead to save some precious time. I especially like the option to include line breaks.
&lt;p&gt;
Input:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://greengeckodesign.com/blog/uploaded_images/responseright-input-724173.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://greengeckodesign.com/blog/uploaded_images/responseright-input-724168.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Result:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://greengeckodesign.com/blog/uploaded_images/responseright-result-762658.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://greengeckodesign.com/blog/uploaded_images/responseright-result-762656.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17614572-5603227537434583664?l=greengeckodesign.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/greengeckodesign/blog/~4/Wt_GZVlDAYA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/5603227537434583664/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=17614572&amp;postID=5603227537434583664" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/5603227537434583664" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/5603227537434583664" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/greengeckodesign/blog/~3/Wt_GZVlDAYA/responseright.html" title="Response.Right" /><author><name>Jason Jaeger</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="04830289793895961977" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://greengeckodesign.com/blog/2008/08/responseright.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-17614572.post-2917765636593355512</id><published>2008-08-02T23:16:00.002-05:00</published><updated>2008-08-02T23:39:01.676-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="MooScroll" /><category scheme="http://www.blogger.com/atom/ns#" term="mootools" /><title type="text">MooScroll</title><content type="html">&lt;a style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" href="http://greengeckodesign.com/projects/mooscroll.aspx" title="MooScroll"&gt;
&lt;img src="http://greengeckodesign.com/CMS/Core/UserFiles/Image/mooscroll.jpg" alt="MooScroll" border="0" /&gt;
&lt;/a&gt;

&lt;p&gt;
MooScroll lets you customize how the scrollbar looks on scrollable divs.
Just customize the images and tweak the CSS if necessary and you have a customized scrollable div. You can have multiple instances on a single page. If the end-user does not have javascript enabled, they just see a regular scrollable div so it degrades gracefully.
&lt;/p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://greengeckodesign.com/blog/uploaded_images/mooscrollimages-732279.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://greengeckodesign.com/blog/uploaded_images/mooscrollimages-732275.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17614572-2917765636593355512?l=greengeckodesign.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/greengeckodesign/blog/~4/cPITkHkG2Pw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/2917765636593355512/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=17614572&amp;postID=2917765636593355512" title="17 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/2917765636593355512" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/2917765636593355512" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/greengeckodesign/blog/~3/cPITkHkG2Pw/mooscroll.html" title="MooScroll" /><author><name>Jason Jaeger</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="04830289793895961977" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">17</thr:total><feedburner:origLink>http://greengeckodesign.com/blog/2008/08/mooscroll.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-17614572.post-3140399451014375928</id><published>2008-07-20T14:10:00.006-05:00</published><updated>2008-07-20T14:53:16.635-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="MooColumns" /><category scheme="http://www.blogger.com/atom/ns#" term="mootools" /><title type="text">Multiple Columns with Javascript</title><content type="html">A while ago I thought it would be useful / fun to have a script that divides content up into multiple columns. I know that CSS3 will have this ability but that day is probably still a ways off. I tried several multiple columns solutions out there and they all seemed to break in IE or not work very well in one way or another. So I created MooColumns.

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://greengeckodesign.com/blog/uploaded_images/example-721463.gif"&gt;&lt;img style="margin: 10px auto; display: block; text-align: center; cursor: pointer;" src="http://greengeckodesign.com/blog/uploaded_images/example-721461.gif" alt="" border="0" /&gt;&lt;/a&gt;

With MooColumns you can choose how many columns you want, control how the columns and gutters look with CSS. Allow the script to auto-divide the content, or use column breaks (a span with the class of colBreak).

It requires MooTools 1.2 and has been tested in IE6, IE7, Firefox 2, Firefox 3, and Safari 3.

You can get the latest version of MooColumns from my &lt;a href="http://greengeckodesign.com/projects/moocolumns.aspx"&gt;MooColumns page&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17614572-3140399451014375928?l=greengeckodesign.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/greengeckodesign/blog/~4/7s9VO2ID8Xw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/3140399451014375928/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=17614572&amp;postID=3140399451014375928" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/3140399451014375928" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/3140399451014375928" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/greengeckodesign/blog/~3/7s9VO2ID8Xw/multiple-columns-with-javascript.html" title="Multiple Columns with Javascript" /><author><name>Jason Jaeger</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="04830289793895961977" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://greengeckodesign.com/blog/2008/07/multiple-columns-with-javascript.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-17614572.post-6147849390770563635</id><published>2008-07-19T20:47:00.004-05:00</published><updated>2008-07-19T21:10:16.367-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="web design" /><title type="text">New Design</title><content type="html">&lt;img style="margin: 0px auto 10px; display: block; text-align: center; " src="http://greengeckodesign.com/blog/uploaded_images/redesign-749480.jpg" alt="website redesign" border="0" /&gt;
I have been working on a new design and it is finally finished. I like the old design but felt like it was time for a change. I went from a minimalistic skinny design to a more texture-rich, slightly oriental design with (hopefully) a more organic feel.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17614572-6147849390770563635?l=greengeckodesign.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/greengeckodesign/blog/~4/2BG3aCmLw7k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/6147849390770563635/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=17614572&amp;postID=6147849390770563635" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/6147849390770563635" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/6147849390770563635" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/greengeckodesign/blog/~3/2BG3aCmLw7k/new-design.html" title="New Design" /><author><name>Jason Jaeger</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="04830289793895961977" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://greengeckodesign.com/blog/2008/07/new-design.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-17614572.post-5432950881000716183</id><published>2008-06-17T07:52:00.005-05:00</published><updated>2008-06-17T08:02:01.741-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="firefox" /><category scheme="http://www.blogger.com/atom/ns#" term="downloads" /><title type="text">Firefox 3 Download Day</title><content type="html">&lt;p&gt;Today is Firefox 3 Download day. Help the Firefox team set a world record in the &lt;a target="_blank" title="Guinness World Records" href="http://www.guinnessworldrecords.com/"&gt;Guinness Book of World Records&lt;/a&gt; by downloading Firefox 3 today!&lt;/p&gt;

&lt;div style="text-align: center;"&gt;&lt;a target="_blank" title="Firefox 3 Download Day" href="http://www.spreadfirefox.com/en-US/worldrecord"&gt;&lt;img alt="Download Day 2008" title="Download Day 2008" src="http://www.spreadfirefox.com/sites/all/themes/spreadfirefox_RCS/images/download-day/buttons/en-US/180x150_02.png" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17614572-5432950881000716183?l=greengeckodesign.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/greengeckodesign/blog/~4/vhzQgn2CHXs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/5432950881000716183/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=17614572&amp;postID=5432950881000716183" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/5432950881000716183" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/5432950881000716183" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/greengeckodesign/blog/~3/vhzQgn2CHXs/firefox-3-download-day.html" title="Firefox 3 Download Day" /><author><name>Jason Jaeger</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="04830289793895961977" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://greengeckodesign.com/blog/2008/06/firefox-3-download-day.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-17614572.post-6919462489559884208</id><published>2008-06-14T08:15:00.006-05:00</published><updated>2008-07-03T18:33:07.720-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="MooScroll" /><category scheme="http://www.blogger.com/atom/ns#" term="MooFont" /><category scheme="http://www.blogger.com/atom/ns#" term="MooColumns" /><category scheme="http://www.blogger.com/atom/ns#" term="MooMenu" /><category scheme="http://www.blogger.com/atom/ns#" term="mootools" /><title type="text">MooTools 1.2!</title><content type="html">&lt;center&gt;&lt;img style="margin: 0pt 10px 10px 0pt; display: block; position: relative;" src="http://greengeckodesign.com/blog/uploaded_images/mootools-756518.jpg" alt="MooTools 1.2" /&gt;&lt;/center&gt;
It is finally here! Version 1.2 of the fantastic &lt;a target="_blank" title="MooTools 1.2" href="http://mootools.net/"&gt;MooTools javascript framework&lt;/a&gt; is finally out of beta. I have been using 1.2 in professional applications for a while now, and have made a handful of useful classes. Now that 1.2 is official I will be polishing up these classes and releasing them for download soon. The major projects I have been working on/using are:
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;MooMenu&lt;/span&gt; - a dynamic, accessible drop down menu system&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;MooScroll&lt;/span&gt; - an easy way to customize what the scrollbars look like on scrollable areas&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;MooFont&lt;/span&gt; - basically mixes Stewart Rosenberger's Dynamic Heading Generator + MooTools&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;MooColumns&lt;/span&gt; - splits html content into multiple columns&lt;/li&gt;&lt;/ul&gt;

Also I will be revealing a re-design of my site soon... good times :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17614572-6919462489559884208?l=greengeckodesign.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/greengeckodesign/blog/~4/w7sBqboFycM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/6919462489559884208/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=17614572&amp;postID=6919462489559884208" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/6919462489559884208" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/6919462489559884208" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/greengeckodesign/blog/~3/w7sBqboFycM/mootools-12.html" title="MooTools 1.2!" /><author><name>Jason Jaeger</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="04830289793895961977" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://greengeckodesign.com/blog/2008/06/mootools-12.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-17614572.post-5974767627164201796</id><published>2007-10-19T13:06:00.001-05:00</published><updated>2008-06-29T20:29:47.773-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="javascript" /><title type="text">How to clear all timeOuts in javascript</title><content type="html">&lt;p&gt;Today I was working on a project and at one point I thought it would be useful to clear all the javascript timeOuts on a page. I did a quick google search and did not find anything except &lt;a href="http://www.experts-exchange.com/Web/Web_Languages/JavaScript/Q_21770286.html"&gt;this fellow&lt;/a&gt; at Experts Exchange who asked the same question. Well if you are like me and do not have a membership to Experts Exchange, then you cannot read the answer. So I spent a few minutes on the problem and came up with a function that clears all the timeouts on a page, even though I ended up not needing it. So I decided to post it here on my blog in case someone else out there has the same conundrum and also does not have a membership to Experts Exchange. So Here it is:
&lt;/p&gt;
&lt;pre name="code" class="javascript"&gt;
/*first declare an array 
to store all the timeOuts*/
var timeOuts= new Array();

/*then where you would normally set 
a timeOut, do it like this:*/
timeOuts["a unique name"] = setTimeout('yourDelayedFunction("aVariable")',250);

/*If you want to use a variable (like an 
object's id) or pass a variable to your 
delayed function you can do it like this:*/
var thisId = "foo";
timeOuts[thisId] = setTimeout('yourDelayedFunction("'+thisId+'")',250);

/*So far, all we have done is store all of our 
setTimeouts in an array. Now to clear them all,
just call this simple function:*/
function clearAllTimeouts(){
  for(key in timeOuts ){
    clearTimeout(timeOuts[key]);
  }
}

/*If you want to clear just one of the 
timeOuts you can do it like this:*/
clearTimeout(timeOuts["a unique name"]);
&lt;/pre&gt;

One more thing to note is the 250 is the delay in milliseconds, so 250 would be a quarter of a second. So there it is, I hope it is useful to somebody out there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17614572-5974767627164201796?l=greengeckodesign.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/greengeckodesign/blog/~4/HvXRRZR92Ww" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/5974767627164201796/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=17614572&amp;postID=5974767627164201796" title="13 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/5974767627164201796" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/5974767627164201796" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/greengeckodesign/blog/~3/HvXRRZR92Ww/how-to-clear-all-timeouts-in-javascript.html" title="How to clear all timeOuts in javascript" /><author><name>Jason Jaeger</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="04830289793895961977" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">13</thr:total><feedburner:origLink>http://greengeckodesign.com/blog/2007/10/how-to-clear-all-timeouts-in-javascript.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-17614572.post-7647040049072048557</id><published>2007-08-19T18:25:00.000-05:00</published><updated>2007-08-21T06:43:30.588-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="web design" /><category scheme="http://www.blogger.com/atom/ns#" term="print design" /><category scheme="http://www.blogger.com/atom/ns#" term="color" /><title type="text">ColorPix</title><content type="html">&lt;img style="margin: 0pt 0pt 10px 10px; float: right;" src="http://greengeckodesign.com/blog/uploaded_images/colorPix-773342.gif" alt="colorPix" border="0" /&gt;
I just wanted to share with you a tool that I use regularly. It is called ColorPix and it is a free tool for sampling the color from any spot on your monitor. This is an incredibly useful tool for web design and print design alike. Simply hover over a color, tap the spacebar to lock in that color and click on the color format you want, and it is copied to your clipboard, ready to be pasted into Photoshop, your favorite css editor, etc. It is also handy as a magnifier.

Sure you could always take a screenshot and use Photoshop to sample the color, but ColorPix is just so darn quick and easy.

Moreover, it is a very lightweight program that you can optionally have start with Windows (or OSX) and minimize to the system tray.

You can &lt;a href="http://www.colorschemer.com/colorpix_info.php" target="_blank" title="download colorPix"&gt;download colorPix&lt;/a&gt; from colorschemer.com.
While you are there, definitely check out ColorSchemer's great &lt;a href="http://www.colorschemer.com/schemes/" target="_blank"&gt;color schemes gallery&lt;/a&gt;, a great resource when you have artists block! Also check out their fantastic (but not free) &lt;a href="http://www.colorschemer.com/index.php" target="_blank"&gt;Color Schemer Studio&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17614572-7647040049072048557?l=greengeckodesign.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/greengeckodesign/blog/~4/kc-r6enQ0Ic" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/7647040049072048557/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=17614572&amp;postID=7647040049072048557" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/7647040049072048557" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/7647040049072048557" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/greengeckodesign/blog/~3/kc-r6enQ0Ic/colorpix.html" title="ColorPix" /><author><name>Jason Jaeger</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="04830289793895961977" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://greengeckodesign.com/blog/2007/08/colorpix.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-17614572.post-3981997607653923794</id><published>2007-08-05T19:34:00.001-05:00</published><updated>2008-01-06T18:53:33.878-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="javascript" /><title type="text">Input Text Replace in javascript</title><content type="html">It is a useful thing to be able to have a input text box ( such as for a search feature on your website)  that can have a default value that disappears upon the end-user inserting their cursor, and puts the default text back in if they de-select the text box without typing anything.

It is a pretty simple thing to do with javascript, and can be useful from a usability standpoint (especially in conjunction with some simple css).

The quickest and easiest way would be to add these two functions I have created to your javascript file.

&lt;pre name="code" class="javascript"&gt;
var clearInputValue = Array();
function clearInput(thisObj){
   if(!clearInputValue[thisObj]){
      clearInputValue[thisObj] = thisObj.value;
      thisObj.value = "";
      thisObj.style.color = "black";
   }
}
function replaceInput(thisObj){
   if(thisObj.value == ""){
      thisObj.value = clearInputValue[thisObj];
      thisObj.style.color = "#999999";
      clearInputValue[thisObj]= false;
   }
}
&lt;/pre&gt;
Then add  &lt;span style="font-weight: bold; font-style: italic;"&gt;onblur="replaceInput(this);"  onfocus="clearInput(this);"&lt;/span&gt; to your input tag.

The  replaceInput and clearInput functions assume the text is light grey (#ccc) to begin with and make the text black once the user starts typing something and if they de-select the text box without typing anything it puts the default text back in and sets the text color back to light grey.

Beyond this I suggest using css to let users know when the input is in focus since that little blinking cursor can often be hard to see. So in your css file you may want to include something like this (assuming your text box has a class of "searchInput"):


&lt;pre name="code" class="css"&gt;
input.searchInput{border:1px solid #ccc; color:#ccc;}
input.searchInput:hover{border:1px solid #699A2F;}
input.searchInput:focus{background:#f8f6c3; border:1px solid #699A2F;}
&lt;/pre&gt;

But if you want to go all the way and use unobtrusive javascript (and I recommend that you do) techniques then I would  highly recommend using Ben Nolan's excellent lightweight javascript file for unobtrusively adding event listeners to elements in the DOM. &lt;a href="http://www.bennolan.com/behaviour/" target="_blank" title="Ben Nolan's Behaviour"&gt;Behaviour&lt;/a&gt; is an awesome resource.

Using Behaviour, instead of adding the onfocus and onblur inline in your xhtml, simply include the behaviour.js file via a script tag at the top of your page. Then in your javascript file add:


&lt;pre name="code" class="javascript:firstline[16]"&gt;
var myrules = {
    'input.searchInput' : function(element){
       element.onfocus = function(){
          clearInput(element);
       },
       element.onblur = function(){
          replaceInput(element);
       }
    }
};

Behaviour.register(myrules);&lt;/p&gt;
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17614572-3981997607653923794?l=greengeckodesign.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/greengeckodesign/blog/~4/8W5917QpNac" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/3981997607653923794/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=17614572&amp;postID=3981997607653923794" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/3981997607653923794" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/3981997607653923794" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/greengeckodesign/blog/~3/8W5917QpNac/input-text-replace-in-javascript.html" title="Input Text Replace in javascript" /><author><name>Jason Jaeger</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="04830289793895961977" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://greengeckodesign.com/blog/2007/08/input-text-replace-in-javascript.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-17614572.post-4524251298108097732</id><published>2007-07-22T15:42:00.000-05:00</published><updated>2008-01-06T09:48:55.770-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="z-index" /><title type="text">Get the Next Highest zIndex in Javascript</title><content type="html">Flash developers have the pleasure of having a nice little built-in method called getNextHighestDepth. Which returns the next highest layer number for any object they call it on. Which is very useful to make sure that what you want to be on top is indeed on top.

&lt;pre name="code" class="javascript"&gt;
function getNextHighestZindex(obj){
   var highestIndex = 0;
   var currentIndex = 0;
   var elArray = Array();
   if(obj){ elArray = obj.getElementsByTagName('*'); }else{ elArray = document.getElementsByTagName('*'); }
   for(var i=0; i &amp;lt; elArray.length; i++){
      if (elArray[i].currentStyle){
         currentIndex = parseFloat(elArray[i].currentStyle['zIndex']);
      }else if(window.getComputedStyle){
         currentIndex = parseFloat(document.defaultView.getComputedStyle(elArray[i],null).getPropertyValue('z-index'));
      }
      if(!isNaN(currentIndex) &amp;amp;&amp;amp; currentIndex &amp;gt; highestIndex){ highestIndex = currentIndex; }
   }
   return(highestIndex+1);
}&lt;/pre&gt;

So far I have test it on Firefox, IE6, IE7, Opera, and Safari in XP. Also I have tested it on Firefox and Safari on OSX. It works perfectly in all but Safari on OSX (10.4). So if you are are a javascript developer and know how to adjust this function to work on Safari on a Mac please leave a comment :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17614572-4524251298108097732?l=greengeckodesign.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/greengeckodesign/blog/~4/rcdCYpDIfWo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/4524251298108097732/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=17614572&amp;postID=4524251298108097732" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/4524251298108097732" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/17614572/posts/default/4524251298108097732" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/greengeckodesign/blog/~3/rcdCYpDIfWo/get-highest-z-index-in-javascript.html" title="Get the Next Highest zIndex in Javascript" /><author><name>Jason Jaeger</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd="http://schemas.google.com/g/2005" name="OpenSocialUserId" value="04830289793895961977" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total><feedburner:origLink>http://greengeckodesign.com/blog/2007/07/get-highest-z-index-in-javascript.html</feedburner:origLink></entry></feed>
