<?xml version="1.0" encoding="utf-8"?>
			
			<rss version="2.0" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:cc="http://web.resource.org/cc/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">

			<channel>
			<title>Jon Hartmann - Javascript</title>
			<link>http://www.jonhartmann.com/index.cfm</link>
			<description>Technical blog of West Virginia web developer Jon Hartmann, covering ColdFusion, Asp.NET, Javascript, User Interface Design, and current website trends.</description>
			<language>en-us</language>
			<pubDate>Wed, 08 Sep 2010 04:19:35 -0500</pubDate>
			<lastBuildDate>Fri, 23 Apr 2010 12:28:00 -0500</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>jon.hartmann@gmail.com</managingEditor>
			<webMaster>jon.hartmann@gmail.com</webMaster>
			<itunes:subtitle></itunes:subtitle>
			<itunes:summary></itunes:summary>
			<itunes:category text="Technology" />
			<itunes:category text="Technology">
				<itunes:category text="Podcasting" />
			</itunes:category>
			<itunes:category text="Technology">
				<itunes:category text="Tech News" />
			</itunes:category>
			<itunes:keywords></itunes:keywords>
			<itunes:author></itunes:author>
			<itunes:owner>
				<itunes:email>jon.hartmann@gmail.com</itunes:email>
				<itunes:name></itunes:name>
			</itunes:owner>
			<itunes:image href="" />
			<image>
				<url></url>
				<title>Jon Hartmann</title>
				<link>http://www.jonhartmann.com/index.cfm</link>
			</image>
			<itunes:explicit></itunes:explicit>
			
			<item>
				<title>Lessons on setTimeout() and clearTimeout()</title>
				<link>http://www.jonhartmann.com/index.cfm/2010/4/23/Lessons-on-setTimeout-and-clearTimeout</link>
				<description>
				
				My world was rocked the other day while looking through some source code for a Javascript widget at work. Normally, I&apos;m the one giving lessons in JS techniques, but I was absolutely floored to see how my coworker had used setTimeout() and clearTimeout() in ways I&apos;d never seen before.  [More]
				</description>
				
				<category>Javascript</category>				
				
				<pubDate>Fri, 23 Apr 2010 12:28:00 -0500</pubDate>
				<guid>http://www.jonhartmann.com/index.cfm/2010/4/23/Lessons-on-setTimeout-and-clearTimeout</guid>
				
			</item>
			
			<item>
				<title>ASP.NET Error Message: Invalid postback or callback argument</title>
				<link>http://www.jonhartmann.com/index.cfm/2010/1/18/ASPNET-Error-Message-Invalid-postback-or-callback-argument</link>
				<description>
				
				If you&apos;re trying to create a post-back from Javascript in ASP.NET, you might have come across the following error:

&lt;blockquote&gt;
Invalid postback or callback argument. Event validation is enabled using in configuration or in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.
&lt;/blockquote&gt;

This message is caused because ASP is attempting to validate that a given post-back that was initiated from Javascript is really supposed to be happening; basically, it is an attempt to try to prevent cross-site scripting from issuing post-backs. You can do as the message says and register the callback, you can edit your web.config file, or you can do what I do, and add the following line to your Page directive in your .aspx page like so:

&lt;code&gt;&lt;%@ Page EnableEventValidation=&quot;false&quot; ... %&gt;&lt;/code&gt;

&lt;div class=&quot;warning&quot;&gt;
Be aware that by setting EnableEventValidation to false, you&apos;re opening a hole in your security. I&apos;m using this in a situation where the risk has been minimized, but if you&apos;re including external scripts, you might want to actually go through the trouble of registering the event.
&lt;/div&gt; 
				</description>
				
				<category>Javascript</category>				
				
				<category>Mystery Error Message</category>				
				
				<category>ASP.NET</category>				
				
				<pubDate>Mon, 18 Jan 2010 10:35:00 -0500</pubDate>
				<guid>http://www.jonhartmann.com/index.cfm/2010/1/18/ASPNET-Error-Message-Invalid-postback-or-callback-argument</guid>
				
			</item>
			
			<item>
				<title>Using Event Bubbling to Your Advantage</title>
				<link>http://www.jonhartmann.com/index.cfm/2009/6/12/Using-Event-Bubbling-to-Your-Advantage</link>
				<description>
				
				&lt;img src=&quot;http://www.jonhartmann.com/images/bubbles.PNG&quot; class=&quot;floatTR&quot; /&gt; Its happened to everyone working with Javascript: you build your test app that handles clicks on elements to do really neat things and everything&apos;s going great. You move it live, and as the data starts coming in your app gets slower and slower until finally the system starts to become unusable. Whats the problem? In testing you had maybe five or ten clickables, but your app has been growing, and you&apos;ve now got 20, 60, 120 or more, and the time it takes to bind all of your click events is skyrocketing. What if you could just use a single handler for all of them?  [More]
				</description>
				
				<category>Javascript</category>				
				
				<category>jQuery</category>				
				
				<pubDate>Fri, 12 Jun 2009 11:00:00 -0500</pubDate>
				<guid>http://www.jonhartmann.com/index.cfm/2009/6/12/Using-Event-Bubbling-to-Your-Advantage</guid>
				
			</item>
			
			<item>
				<title>Preventing Multiple Submissions with Prototype and jQuery</title>
				<link>http://www.jonhartmann.com/index.cfm/2009/6/11/Preventing-Multiple-Submissions-with-Prototype-and-jQuery</link>
				<description>
				
				&lt;img src=&quot;http://www.jonhartmann.com/images/javascript.PNG&quot; class=&quot;floatTL&quot; /&gt; If there is one problem that plagues me across applications, its users that are too antsy to wait for the page to come back after hitting submit on a form. Even worse, some people just instinctually double and triple click. How do you keep these pesky users from duplicating records or charging themselves three times for that item in your e-shop? Click &quot;more&quot; to see how I do it in Prototype and jQuery.  [More]
				</description>
				
				<category>Javascript</category>				
				
				<category>jQuery</category>				
				
				<category>Prototype</category>				
				
				<category>User Interface Design</category>				
				
				<pubDate>Thu, 11 Jun 2009 18:56:00 -0500</pubDate>
				<guid>http://www.jonhartmann.com/index.cfm/2009/6/11/Preventing-Multiple-Submissions-with-Prototype-and-jQuery</guid>
				
			</item>
			
			<item>
				<title>Javascript Gerundization</title>
				<link>http://www.jonhartmann.com/index.cfm/2009/5/22/Javascript-Gerundization</link>
				<description>
				
				&lt;img src=&quot;http://www.jonhartmann.com/images/javascript.PNG&quot; width=&quot;150px&quot; class=&quot;floatTL&quot; /&gt; Ever needed to &quot;gerudize&quot; a word? No? I needed to today to convert links and button labels like &quot;Save&quot; and &quot;Submit&quot; into their gerund equivalents: &quot;Saving&quot; and &quot;Submitting&quot;. I found a set of rules on how to convert a verb into a noun &lt;a href=&quot;http://web2.uvcs.uvic.ca/elc/studyzone/410/grammar/gerund.htm&quot;&gt;here&lt;/a&gt;, and put together a simple Javascript implementation. I might do a ColdFusion one later to match my &lt;a href=&quot;http://www.jonhartmann.com/index.cfm/2008/12/15/Utility-Function-Pluralize&quot;&gt;Pluralize()&lt;/a&gt; and &lt;a href=&quot;http://www.jonhartmann.com/index.cfm/2008/12/16/Utility-Function-Singularize&quot;&gt;Singularize()&lt;/a&gt; utility functions.

&lt;code&gt;function gerundize (word) {
	if ( word.match( /[^aeiou]e$/i ) ) {
		word = word.slice(0, word.length-1);
	} else if ( word.match( /[^aeiou][aeiou][^aeiou]$/i ) ) {
		word = word + word.slice(word.length-1, word.length);
	}

	return word + &apos;ing&apos;;
}&lt;/code&gt;

And the test code:

&lt;code&gt;document.write(gerundize(&apos;Think&apos;));
document.write(&apos;&lt;br /&gt;&apos;);
document.write(gerundize(&apos;Submit&apos;));
document.write(&apos;&lt;br /&gt;&apos;);
document.write(gerundize(&apos;Hit&apos;));
document.write(&apos;&lt;br /&gt;&apos;);
document.write(gerundize(&apos;Take&apos;));
document.write(&apos;&lt;br /&gt;&apos;);
document.write(gerundize(&apos;Create&apos;));
document.write(&apos;&lt;br /&gt;&apos;);
document.write(gerundize(&apos;Save&apos;));
document.write(&apos;&lt;br /&gt;&apos;);&lt;/code&gt; 
				</description>
				
				<category>Javascript</category>				
				
				<pubDate>Fri, 22 May 2009 10:57:00 -0500</pubDate>
				<guid>http://www.jonhartmann.com/index.cfm/2009/5/22/Javascript-Gerundization</guid>
				
			</item>
			
			<item>
				<title>Escaping Console.log()</title>
				<link>http://www.jonhartmann.com/index.cfm/2009/3/20/Escaping-Consolelog</link>
				<description>
				
				&lt;img src=&quot;http://www.jonhartmann.com/images/firebug.PNG&quot; class=&quot;floatTL&quot; alt=&quot;Firebug icon&quot; /&gt; &lt;a href=&quot;http://twitter.com/cfjedimaster/status/1361653847&quot;&gt;Ray Camden just Twittered&lt;/a&gt; about checking in code that still has console.log() in the Javascript. He rightly points out that console.log() causes problems for browsers that don&apos;t understand it, but you don&apos;t really have to have &lt;a href=&quot;http://getfirebug.com/&quot;&gt;Firebug&lt;/a&gt; installed as some browsers like Chrome understand it natively. Rather than try to purge my code of console.log(), and need them again later, my solution is to add an &quot;escape&quot; that lets console.log() evaluate harmlessly on browsers that don&apos;t support it. Click more to see the code.  [More]
				</description>
				
				<category>Javascript</category>				
				
				<pubDate>Fri, 20 Mar 2009 15:10:00 -0500</pubDate>
				<guid>http://www.jonhartmann.com/index.cfm/2009/3/20/Escaping-Consolelog</guid>
				
			</item>
			
			<item>
				<title>Wild Friday Night with Javascript Controllers</title>
				<link>http://www.jonhartmann.com/index.cfm/2009/2/20/Wild-Friday-Night-with-Javascript-Controllers</link>
				<description>
				
				&lt;img src=&quot;http://www.jonhartmann.com/images/javascript.PNG&quot; class=&quot;floatTR&quot; alt=&quot;Javascript code&quot; /&gt; All because of Ben Nadel, I&apos;m writing Javascript examples instead of playing Fallout 3 tonight... Ok, so in my post &lt;a href=&quot;http://www.jonhartmann.com/index.cfm/2009/2/19/Evolution-of-a-JS-Controller-Scheme#c96A27B11-051B-7F9E-B17E0546050CC7EA&quot;&gt;evolution of a js controller scheme&lt;/a&gt;, Ben commented that he wasn&apos;t comfortable with the idea that the this value inside my controller was the window object, rather than the controller itself. So, I&apos;ve set out to see if I can rework the controller to use &quot;new&quot; and grow up to be a real object. Read more to see how I do.  [More]
				</description>
				
				<category>Javascript</category>				
				
				<pubDate>Fri, 20 Feb 2009 22:53:00 -0500</pubDate>
				<guid>http://www.jonhartmann.com/index.cfm/2009/2/20/Wild-Friday-Night-with-Javascript-Controllers</guid>
				
			</item>
			
			<item>
				<title>Evolution of a JS Controller Scheme</title>
				<link>http://www.jonhartmann.com/index.cfm/2009/2/19/Evolution-of-a-JS-Controller-Scheme</link>
				<description>
				
				It took me quite a while to discover the power and flexibility of a controller scheme for Javascript, but thanks to some awesome videos and tutorials, I&apos;ve come up with a setup that works quite well, and I thought I&apos;d share it with you. I&apos;m going to start with a basic object, and evolve it into what I use, so you can understand why each thing is done, and what happens at each stage.  [More]
				</description>
				
				<category>Tutorial</category>				
				
				<category>Javascript</category>				
				
				<pubDate>Thu, 19 Feb 2009 16:53:00 -0500</pubDate>
				<guid>http://www.jonhartmann.com/index.cfm/2009/2/19/Evolution-of-a-JS-Controller-Scheme</guid>
				
			</item>
			
			<item>
				<title>Example of using Template in Prototype</title>
				<link>http://www.jonhartmann.com/index.cfm/2009/2/19/Example-of-using-Template-in-Prototype</link>
				<description>
				
				In response to a &lt;a href=&quot;http://www.coldfusionjedi.com/index.cfm/2009/2/19/Using-jQuery-to-add-form-fields&quot;&gt;blog post by Ray Camden about jQuery and duplicating form fields&lt;/a&gt;, I put together an example of using the Template class in Prototype. As an added bonus, I designed this example to also handle form resets and to feature a controller based design. You can &lt;a href=&quot;http://www.jonhartmann.com/examples/prototype-templating/&quot;&gt;click here to view a demo&lt;/a&gt; of the example in action. Read more to get the break down of the code.  [More]
				</description>
				
				<category>Javascript</category>				
				
				<category>Prototype</category>				
				
				<pubDate>Thu, 19 Feb 2009 14:49:00 -0500</pubDate>
				<guid>http://www.jonhartmann.com/index.cfm/2009/2/19/Example-of-using-Template-in-Prototype</guid>
				
			</item>
			
			<item>
				<title>CFGrid Displays No Data Until Sort</title>
				<link>http://www.jonhartmann.com/index.cfm/2009/2/18/CFGrid-Display-No-Data-Until-Sort</link>
				<description>
				
				&lt;img src=&quot;http://www.jonhartmann.com/images/student1.jpg&quot; class=&quot;floatTL&quot; /&gt; So, another annoying bug, but at least I found a solution this one. I&apos;m using Prototype and trying to get CFGrid running. Things went OK except that when I made a grid, it would load looking like the example to the left; no data listed. If you clicked on the &quot;Students&quot; header, you&apos;d get the full list of students like the example on the right.&lt;img src=&quot;http://www.jonhartmann.com/images/student2.jpg&quot; class=&quot;floatTR&quot; /&gt;

I was finally able to find &lt;a href=&quot;http://www.mail-archive.com/cf-talk@houseoffusion.com/msg328397.html&quot;&gt;an article in the House of Fusion mail archive&lt;/a&gt; that described no only the problem, but a solution:

&lt;blockquote&gt;
Solution! After tearing the Javascript apart for both libraries, I found the
problem. Both libraries use a function called &quot;defer&quot;, which basically just
delays performing that action until the interpreter&apos;s callstack is empty.
My solution then was to change the name of this function in Prototype and
then just change the name wherever Prototype references it also. None of the
Prototype plugins I have use the function, so it&apos;s seems like it&apos;s pretty
low-key.
&lt;/blockquote&gt;

&lt;img src=&quot;http://www.jonhartmann.com/images/student3.jpg&quot; class=&quot;floatTL&quot; /&gt; So I quickly did a find and replace and changed Prototype&apos;s &quot;defer&quot; to &quot;pdefer&quot; and things started up fine.
&lt;div style=&quot;clear:both;&quot;&gt;&lt;/div&gt; 
				</description>
				
				<category>Javascript</category>				
				
				<category>Prototype</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Wed, 18 Feb 2009 15:53:00 -0500</pubDate>
				<guid>http://www.jonhartmann.com/index.cfm/2009/2/18/CFGrid-Display-No-Data-Until-Sort</guid>
				
			</item>
			
			<item>
				<title>Javascript Abstraction in ColdFusion: Pro or Con?</title>
				<link>http://www.jonhartmann.com/index.cfm/2008/12/9/Javascript-Abstraction-in-ColdFusion-Pro-or-Con</link>
				<description>
				
				There is an interesting article up on &lt;a href=&quot;http://www.ajaxian.com&quot;&gt;Ajaxian.com&lt;/a&gt; today &lt;a hre=&quot;http://ajaxian.com/archives/you-leaked-on-my-javascript&quot;&gt;discussing the pros and cons of Javascript abstractions&lt;/a&gt;. It&apos;s aimed squarely at the root of an issue that I have with ColdFusion 8&apos;s Ajax and Javascript integration: abstractions are easier and save time, but do you loose something by giving away that control? I heard &lt;a href=&quot;http://www.infoaccelerator.net/blog/&quot;&gt;Andy Powell&lt;/a&gt; give a talk at CFUnited in 2007 about the (then) upcoming release of ColdFusion 8 and its Ajax and JS support, where he asked the room to raise their hands if they liked Javascript. Those few of us that did got some weird looks from the crowd... how weird: people that use a technology might actually like it?

I like Javascript, and I don&apos;t think that thats weird. If I need FCKEditor in ColdFusion, I still use FCKEditor, rather then the new tags. If I need ExtJS, I still use ExtJS rather then the new tags. Why? Because I know that I can program better for my situation then Adobe. Its not that Adobe&apos;s code isn&apos;t good, its just that they have to program in such a way that it works for everyone, and that always creates bloat. &lt;strong&gt;Always.&lt;/strong&gt;

Using &amp;lt;cfwindow&amp;gt; will save you some time, I&apos;m not saying that it wont, but its going to add overhead that might not intend. You might not ever notice that overhead, and thats fine, but what happens if its a problem? Ultimately you&apos;ll have to go find someone that actually knows (and probably likes) Javascript to fix the problem for you. Why not get that person to write it in the first place?

Where would you draw the line? The purist in me says &quot;Code it straight in JS and don&apos;t mess around.&quot; while the realist in me says &quot;If most people don&apos;t need to rework the tags, then its working fine.&quot; Do you think abstraction can come back to bite you, or is it just a time saver? 
				</description>
				
				<category>Javascript</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Tue, 09 Dec 2008 10:49:00 -0500</pubDate>
				<guid>http://www.jonhartmann.com/index.cfm/2008/12/9/Javascript-Abstraction-in-ColdFusion-Pro-or-Con</guid>
				
			</item>
			
			<item>
				<title>Javascript Maintainablity Lecture by Chris Heilmann</title>
				<link>http://www.jonhartmann.com/index.cfm/2008/10/15/Javascript-Maintainablity-Lecture-by-Chris-Heilmann</link>
				<description>
				
				A very nice video of a presentation on Javascript maintainability. It taught me a couple of things, including the use of a configuration object to define IDs and other text in a single location that makes changing the code easier.

&lt;object width=&quot;400&quot; height=&quot;320&quot;&gt;	&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot; /&gt;	&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot; /&gt;	&lt;param name=&quot;movie&quot; value=&quot;http://vimeo.com/moogaloop.swf?clip_id=1919942&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1&quot; /&gt;	&lt;embed src=&quot;http://vimeo.com/moogaloop.swf?clip_id=1919942&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; allowscriptaccess=&quot;always&quot; width=&quot;400&quot; height=&quot;320&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;a href=&quot;http://vimeo.com/1919942?pg=embed&amp;amp;sec=1919942&quot;&gt;Presentation: Chris Heilmann: Maintainable JavaScript, part 1&lt;/a&gt; from &lt;a href=&quot;http://vimeo.com/bachelorict?pg=embed&amp;amp;sec=1919942&quot;&gt;Bachelor-ict.nl&lt;/a&gt; on &lt;a href=&quot;http://vimeo.com?pg=embed&amp;amp;sec=1919942&quot;&gt;Vimeo&lt;/a&gt;.

&lt;object width=&quot;400&quot; height=&quot;320&quot;&gt;	&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot; /&gt;	&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot; /&gt;	&lt;param name=&quot;movie&quot; value=&quot;http://vimeo.com/moogaloop.swf?clip_id=1919908&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1&quot; /&gt;	&lt;embed src=&quot;http://vimeo.com/moogaloop.swf?clip_id=1919908&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; allowscriptaccess=&quot;always&quot; width=&quot;400&quot; height=&quot;320&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;a href=&quot;http://vimeo.com/1919908?pg=embed&amp;amp;sec=1919908&quot;&gt;Presentation: Christian Heilmann: Maintainable JavaScript, part 2&lt;/a&gt; from &lt;a href=&quot;http://vimeo.com/bachelorict?pg=embed&amp;amp;sec=1919908&quot;&gt;Bachelor-ict.nl&lt;/a&gt; on &lt;a href=&quot;http://vimeo.com?pg=embed&amp;amp;sec=1919908&quot;&gt;Vimeo&lt;/a&gt;. 
				</description>
				
				<category>Javascript</category>				
				
				<pubDate>Wed, 15 Oct 2008 12:07:00 -0500</pubDate>
				<guid>http://www.jonhartmann.com/index.cfm/2008/10/15/Javascript-Maintainablity-Lecture-by-Chris-Heilmann</guid>
				
			</item>
			
			<item>
				<title>Javascript isValid()</title>
				<link>http://www.jonhartmann.com/index.cfm/2008/5/28/Javascript-isValid</link>
				<description>
				
				I dunno about you, but I love the isValid() function in ColdFusion. Its just an amazing collection of usefulness that I use just about all the time. Recently though, I&apos;ve found myself really wanting something equivalent for client-side validation, so I put together this bit of Javascript code:

&lt;code&gt;
function isValid (type, value) {
	var regex;
	
	switch (type.toLowerCase()) {
		case &apos;email&apos;:
			regex = /^((&quot;[\w-\s]+&quot;)|([\w-]+(?:\.[\w-]+)*)|(&quot;[\w-\s]+&quot;)([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i
			break;
		case &apos;telephone&apos;:
			regex =  /^((\+\d{1,3}(-| )?\(?\d\)?(-| )?\d{1,5})|(\(?\d{2,6}\)?))(-| )?(\d{3,4})(-| )?(\d{4})(( x| ext)\d{1,5}){0,1}$/;
			break;
		case &apos;date&apos;:
			regex = /^(?=\d)(?:(?:(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})|(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))|(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2}))($|\ (?=\d)))?(((0?[1-9]|1[012])(:[0-5]\d){0,2}(\ [AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$/;
			break;
		case &apos;numeric&apos;: 
		case &apos;number&apos;:
			regex = /^[\d\.]+$/;
			break;
		case &apos;integer&apos;:
			regex = /^\d+$/;
			break;
		case &apos;zipcode&apos;:
			regex = /^\d{5}([\-]\d{4})?$/;
			break;
	}
	
	return value.match(regex);
}
&lt;/code&gt;

Please note that I take no credit for the regular expressions used in this function. I collected them from various sources, and I would credit the original creator if I could find my list of where I got them. 
				</description>
				
				<category>Javascript</category>				
				
				<pubDate>Wed, 28 May 2008 12:09:00 -0500</pubDate>
				<guid>http://www.jonhartmann.com/index.cfm/2008/5/28/Javascript-isValid</guid>
				
			</item>
			
			<item>
				<title>Prototype.js on IE smashed by id=&quot;tblStudents&quot;</title>
				<link>http://www.jonhartmann.com/index.cfm/2008/4/7/Prototypejs-on-IE-smashed-by-idtblStudents</link>
				<description>
				
				Ok, so here is the weirdest IE bug I&apos;ve ever seen.... the weirdest by far. I was trying to get some sortable table code up and running and after I got it going in FireFox, IE 7 was throwing fits. I narrowed it down to a specific instantiation of the table that I had on my page, and then started hacking things out. I pulled out all my custom DisplayTable code. I remove all of my custom code completely. I removed Scriptaculous. 

&lt;ins&gt;Turns out IE has a weird behavior where it adds a global scope variable with the same name as any id, so that you can just say &lt;span class=&quot;code&quot;&gt;tblStudents.innerHTML = &apos;whatever&apos;&lt;/span &gt; without needing to fetch the element. My lack of a &lt;span class=&quot;code&quot;&gt;var&lt;/span &gt; keyword before my variable ment it was trying to reference that variable and causing a conflict.&lt;/ins&gt;  [More]
				</description>
				
				<category>Javascript</category>				
				
				<category>Prototype</category>				
				
				<pubDate>Mon, 07 Apr 2008 17:29:00 -0500</pubDate>
				<guid>http://www.jonhartmann.com/index.cfm/2008/4/7/Prototypejs-on-IE-smashed-by-idtblStudents</guid>
				
			</item>
			
			<item>
				<title>Prototype Based State Manager</title>
				<link>http://www.jonhartmann.com/index.cfm/2008/4/6/Prototype-Based-State-Manager</link>
				<description>
				
				I&apos;ve known that you could use anchor tags as a way to manage the state of a Javascript application for a while now, but I&apos;ve never really messed with how that is actually setup. I got bored on Friday, and this is what I came up with.  [More]
				</description>
				
				<category>Javascript</category>				
				
				<category>Prototype</category>				
				
				<pubDate>Sun, 06 Apr 2008 17:37:00 -0500</pubDate>
				<guid>http://www.jonhartmann.com/index.cfm/2008/4/6/Prototype-Based-State-Manager</guid>
				
			</item>
			</channel></rss>