/*********************************************
 * form_validation.js                        *
 * 1.0 - 11/21/2002 mmcclain@gsd.harvard.edu *
 *********************************************/

/* Here is an example to test the functions
<form method="POST" action="test.cgi">
  <p>
  	Full Name: <input name="Full Name_require" size="32" ><br>
  	Email: <input name="valid_email" size="32" ><br>
  	Phone: <input name="user_phone" size="16" ><br>
  	Month: <input name="test_month" size="16" >
  	Day: <input name="test_day" size="16" >
  	Year: <input name="test_year" size="16" ><br>
  	Todays Date: <input name="today_date" size="16" ><i>(mm/dd/yyyy)</i><br>
  	Zipcode: <input name="zipcode_zip" size="16" ><br>
  </p><p>
  	<input type="submit"
  	value="Submit" name="submit" onclick="return check(form,form.elements.length)">
  </p>
</form>  
*/

function check(form, length) {
	length--; // adjust the length so we only loop through the elements
	var errors = "";
	for (var i = 0; i <= length; i++) {
		var fieldname = form.elements[i].name;
		var flag = fieldname.indexOf("_");
		var tag = fieldname.substring(flag, fieldname.length);
		if (flag != -1) { // its something to validate.
			if (tag == "_email") {
				var result = check_email(form, i);
				if (!result) {
					errors += "Invalid email address.\n";
				}
			} else if (tag == "_phone") {
				var result = check_phone(form, i);
				if (!result) {
					errors += "Invalid phone number.\n";
				}
			} else if (tag == "_zip") {
				var result = check_zip(form, i);
				if (!result) {
					errors += "Invalid zipcode.\n";
				}
			} else if (tag == "_month") {
				var result = check_month(form, i);
				if (!result) {
					errors += "Invalid month.\n";
				}
			} else if (tag == "_day") {
				var result = check_day(form, i);
				if (!result) {
					errors += "Invalid day.\n";
				}
			} else if (tag == "_year") {
				var result = check_year(form, i);
				if (!result) {
					errors += "Invalid year.\n";
				}
			} else if (tag == "_date") {
				var result = check_date(form, i);
				if (!result) {
					errors += "Invalid date.\n";
				}
			} else if (tag == "_require") {
				var result = check_req(form, i);
				if (!result) {
					var fakenamelen = fieldname.length - tag.length;
					var fakename = fieldname.substring(0, fakenamelen);
					errors += fakename + " is required.\n";
				}
			}
		}
	}
	if (errors.length == 0) {
		form.submit();
	} else {
		alert("Please fix the following errors:\n" + errors);
		return false;
	}
	return true;
}

function check_email(form, element) {
	var field = form.elements[element].value;
	var at = field.indexOf("@");
	var user = field.substring(at,-1);
	var host = field.substring(at,field.length);
	var dot = host.indexOf(".");
	var domain = host.substring(dot,-1);
	var tld = host.substring(dot,host.length);
	// Now we need to check that the user is at least 1 the domain is at least 2 and the top level domain is at least 2.
	// host will be @host.tld so domain will be @domain and tld will be .tld so we need to add one to each length check. hence 2 not 1
	// mmcclain@gsd.harvard.edu will have user=mmcclain host = @gsd tld = .harvard.edu which passes the test
	// so the check is fine even if its not the best code
	if ((user.length > 0) && (domain.length > 2) && (tld.length > 2)) {
		return true;
	} else {
		return false;
	}
}

function check_phone(form, element) {
	var field = form.elements[element].value;
	if (field.length == 10) {
		return isNumber(field);
	} else if (field.length == 12) {
		var areacode = field.substr(0,3);
		var prefix = field.substr(4,3);
		var number = field.substr(8,4);
		if (isNumber(areacode) && isNumber(prefix) && isNumber(number)) {
		// this allows for 111-222-3333 and 111122223333
		//but we'll asume this is just to catch mistakes and not be the html form police
			return true;
		} else {
			return false;
		}		
	} else {
		return false;
	}
}

function check_zip(form, element) {
	var field = form.elements[element].value;
	if (isNumber(field)) {
		if (field.length == 5) {
			return true;
		} else {
			return false;
		}
	} else {
		return false;
	}
}

function check_month(form, element) {
	var field = form.elements[element].value;
	return valid_month(field);
}

function valid_month (field) {
	if (isNumber(field)) {
		if (field < 1 || field > 12) {
			return false;
		} else {
			return true;
		}
	} else {
		return false;
	}
}

function check_day(form, element) {
	var field = form.elements[element].value;
	return valid_day(field);
}

function valid_day (field) {
	if (isNumber(field)) {
		if (field < 1 || field > 31) {
			return false;
		} else {
			return true;
		}
	} else {
		return false;
	}
}

function check_year(form, element) {
	var field = form.elements[element].value;
	return valid_year(field);
}
	
function valid_year(field) {
	if (isNumber(field)) {
		if (field < 2000 || field > 3000) { // expected life of this script is 998 years
			return false;
		} else {
			return true;
		}
	} else {
		return false;
	}
}

function check_date(form, element) {
	var field = form.elements[element].value;
	var firstslash = field.indexOf("/");
	var month = field.substr(0,firstslash);
	var dayyear = field.substr(firstslash + 1, field.length);	
	var secondslash = dayyear.indexOf("/");
	var daystart = firstslash;
	var day = dayyear.substr(0,secondslash);
	var yearstart = firstslash + secondslash + 1;
	var year = field.substr(yearstart+1,field.length);
	if (valid_month(month) && valid_day(day) && valid_year(year)) {
		return true;
	} else {
		return false;
	}
}

function check_req(form, element) {
	var field = form.elements[element].value;
	if (field.length > 0) {
		return true;
	} else {
		return false;
	}
}

function isNumber (num) {
    for (i = 0; i < num.length; i++) {   
        var c = num.charAt(i);
		if (isNaN(c)) {
			return false;
		}
    }
	return true;
}

<html>
	<head>
		<title id="page_title">form_validation.js</title>
		<LINK rel="stylesheet" type="text/css" href="tools.css">
			
	</head>
	<body bgcolor="white" background-color="white">
		<form name="_ctl0" method="post" action="tool_details.aspx?tool_id=837" id="_ctl0">
<input type="hidden" name="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" value="dDw3NDIxMDQxNDg7dDw7bDxpPDE+O2k8ND47PjtsPHQ8cDxsPGlubmVyaHRtbDs+O2w8Zm9ybV92YWxpZGF0aW9uLmpzOz4+Ozs+O3Q8O2w8aTwwPjtpPDQ+O2k8NT47aTw2PjtpPDc+O2k8OD47aTw5PjtpPDEwPjtpPDExPjtpPDEyPjtpPDE0PjtpPDE1Pjs+O2w8dDw7bDxpPDQ+O2k8MTg+Oz47bDx0PHA8cDxsPFRleHQ7PjtsPFw8QSBIUkVGPSJodHRwOi8vd3d3LmRldmhvb2QuY29tL2xvZ2luLmFzcD9vcmd1cmw9aHR0cDovL3d3dy5kZXZob29kLmNvbS90b29scy90b29sX2RldGFpbHMuYXNweD90b29sX2lkPTgzNyZtc3BwY2hsZz0xJm1zcHBsb2dpbj1odHRwOi8vbG9naW4ubGl2ZS5jb20vbG9naW4uc3JmJTNGbGMlM0QxMDMzJTI2aWQlM0Q2OTY1JTI2cnUlM0RodHRwOi8vd3d3LmRldmhvb2QuY29tL2xvZ2luLmFzcCUzRm9yZ3VybCUzRGh0dHA6Ly93d3cuZGV2aG9vZC5jb20vdG9vbHMvdG9vbF9kZXRhaWxzLmFzcHglM0Z0b29sX2lkJTNEODM3JTI2dHclM0QxODAwJTI2ZnMlM0QxJTI2a3YlM0QyJTI2Y3QlM0QxMjU0Njg0MzQ4JTI2ZW1zJTNEMSUyNnZlciUzRDIuMS42MDAwLjElMjZybiUzRDlwcHBFN2NzJTI2dHBmJTNENjZlYjc2YmE5OTM4MmMyNTg1NmMyYzAwN2Q1ZjQxMzgiXD5cPElNRyBTUkM9Imh0dHA6Ly93d3cucGFzc3BvcnRpbWFnZXMuY29tLzEwMzMvc2lnbmluLmdpZiIgQ0xBU1M9IlBhc3Nwb3J0U2lnbkluIiBCT1JERVI9IjAiIEFMVD0iU2lnbiBpbiB0byBXaW5kb3dzIExpdmUgSUQiIElEPSJpZFNJIi9cPlw8L0FcPjs+Pjs+Ozs+O3Q8cDxwPGw8VGV4dDtOYXZpZ2F0ZVVybDs+O2w8VmlldyBTb3VyY2U7L3ZpZXdfc291cmNlLmFzcHg/c291cmNlPS90b29scy90b29sX2RldGFpbHMuYXNweC90b29scy90b29sX2RldGFpbHMuYXNweDs+Pjs+Ozs+Oz4+O3Q8O2w8aTwxPjs+O2w8dDxwPHA8bDxJbWFnZVVybDs+O2w8L3VzZXJfcGhvdG9zLzEyMDkuanBnOz4+Oz47Oz47Pj47dDxwPHA8bDxUZXh0Oz47bDxmb3JtX3ZhbGlkYXRpb24uanM7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPFJhdGluZzogNC4zMyBvdXQgb2YgNSBieSA2IHVzZXJzOz4+Oz47Oz47dDxwPHA8bDxUZXh0Oz47bDxTdWJtaXR0ZWQ6IDExLzI2LzAyOz4+Oz47Oz47dDxwPHA8bDxUZXh0O05hdmlnYXRlVXJsOz47bDxNaWNoYWVsIE1jQ2xhaW47L3B1YmxpYy5hc3B4P3VzZXJfaWQ9MDAwMzdGRkU4NTVFMUZFNTs+Pjs+Ozs+O3Q8cDxwPGw8VGV4dDtOYXZpZ2F0ZVVybDs+O2w8bW1jY2xhaW4rZGV2aG9vZEBjY3MubmV1LmVkdTttYWlsdG86bW1jY2xhaW4rZGV2aG9vZEBjY3MubmV1LmVkdTs+Pjs+Ozs+O3Q8O2w8aTwwPjs+O2w8dDxwPHA8bDxUZXh0Oz47bDxmb3JtX3ZhbGlkYXRpb24uanM7Pj47Pjs7Pjs+Pjt0PHA8cDxsPFRleHQ7PjtsPFRoaXMgaXMgYSBqYXZhc2NyaXB0IGZpbGUgdGhhdCBjaGVja3MgZmllbGRzIG9uIHN1Ym1pdC4gSXQgc2hvd3MgYWxsIHRoZSBlcnJvcnMgYXQgb25jZSwgYXZvaWRpbmcgdGhlIGZpeCBvbmUgcHJvYmxlbSwgZ2V0IGEgbmV3IGFsZXJ0IGZvciBhIHByZXZpb3VzbHkgdW5rbm93biBwcm9ibGVtIHN0eWxlLlw8YnJcPlw8YnJcPkkgd3JvdGUgdGhpcyBteXNlbGYgaW4gYSBtb3JuaW5nLCBidXQgSSBtdXN0IGFkbWl0IEkgZ290IHNvbWUgZ29vZCBpZGVhcyBmcm9tIHRoZSBmb2xsb3dpbmcgZXhpc3Rpbmcgc2NyaXB0czogIEZvcm0gVmFsaWRhdG9yIDIuMCBieSBBcnQgTHViaW4gYW5kIEZvcm0gQ2hlayBieSBFcmljIEtyb2NrXDxiclw+XDxiclw+SSBzdWJtaXR0ZWQgdGhpcyBhZnRlciBzZWVpbmcgYW5vdGhlciBqYXZhc2NyaXB0IHZhbGlkYXRvciBvbiBkZXZob29kIHdoaWNoIEkgdGhvdWdodCB3YXMgY29vbCwgYnV0IHRoaXMgd2FzIGNvb2xlci5cPGJyXD47Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7TmF2aWdhdGVVcmw7PjtsPFJldHVybiB0byBCcm93c2luZyBUb29sczt0b29sX3N1Yi5hc3B4P3NvcnQ9ZGF0ZV9zdWJtaXR0ZWQmb3JkZXI9ZGVzYyZwYWdlX251bWJlcj0xJmNhdGVnb3J5X2lkPTM7Pj47Pjs7Pjt0PDtsPGk8Mj47aTw0PjtpPDY+Oz47bDx0PHA8cDxsPFRleHQ7PjtsPDM7Pj47Pjs7Pjt0PHA8cDxsPFRleHQ7PjtsPDgzNzs+Pjs+Ozs+O3Q8cDxwPGw8VGV4dDs+O2w8XGU7Pj47Pjs7Pjs+Pjt0PHA8bDxfIUl0ZW1Db3VudDs+O2w8aTwxPjs+PjtsPGk8MT47PjtsPHQ8O2w8aTwwPjs+O2w8dDxAPEEgZ29vZCBvbmUuICBUaGFua3MuIEkgZmluZCBpdCByZWFsbHkgdXNlZnVsIHRvIGdpdmUgb3V0IGFzIGFuIGV4YW1wbGUgaW4gdGVhY2hpbmcgbXkgamF2YXNjcmlwdCBjbGFzcy4gXDxiclw+O1w8YSBocmVmPS9QdWJsaWMuYXNweD91c2VyX2lkPTAwMDE0OTUwNUFBRkUyRjdcPll1c25vIFl1bm9zXDwvYVw+O0ZlYnJ1YXJ5IDI1LCAyMDAzOz47Oz47Pj47Pj47Pj47Pj47bDxhZGR0bzpfY3RsMTtyYXRlOm9uZTtyYXRlOm9uZTtyYXRlOnR3bztyYXRlOnR3bztyYXRlOnRocmVlO3JhdGU6dGhyZWU7cmF0ZTpmb3VyO3JhdGU6Zm91cjtyYXRlOmZpdmU7cmF0ZTpmaXZlO3JhdGU6c3VibWl0O3JwQ29tbWVudHM6X2N0bDA6bGJBZGRDb21tZW50Oz4+JlmlhtJvjmgo/LhI18w3XC0Pc/A=" />

<script language="javascript" type="text/javascript">
<!--
	function __doPostBack(eventTarget, eventArgument) {
		var theform;
		if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) {
			theform = document._ctl0;
		}
		else {
			theform = document.forms["_ctl0"];
		}
		theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
		theform.__EVENTARGUMENT.value = eventArgument;
		theform.submit();
	}
// -->
</script>

			

<html>
	<head>
		<LINK rel="stylesheet" type="text/css" href="/iesite.css" />
		
	<!--google analytics -->
	<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
	</script>
	<script type="text/javascript">
	_uacct = "UA-173240-2";
	urchinTracker();
	</script>
	<!-- end google analytics -->
	</head>
	<body bgcolor="white" background-color="white">
		<table border="0" cellpadding="0" cellspacing="0" width="100%">

			
			<tr>
				<td width="1%">
					<a href="/default.aspx">
<!--<img border="0" src="/images/DevHood.gif">-->
<img border="0" src="/images/DH-banner-whitebg.gif">
</a>
				</td>
				<td valign="bottom" width="100%" align="right">
					<a id="TopBar_adBannerTop" href="http://www.kenlet.com/mainpage/ad/5" target="_blank"><img src="/images/kenlet-banner4.jpg" alt="Have a question? ask www.kenlet.com" border="0" /></a>
					<!--<a href="http://www.kenlet.com"><img border="0" src="http://www.devhood.com/images/kenlet-banner.jpg"></a> -->
					<span id="TopBar_lblPassportLogo"><A HREF="http://www.devhood.com/login.asp?orgurl=http://www.devhood.com/tools/tool_details.aspx?tool_id=837&msppchlg=1&mspplogin=http://login.live.com/login.srf%3Flc%3D1033%26id%3D6965%26ru%3Dhttp://www.devhood.com/login.asp%3Forgurl%3Dhttp://www.devhood.com/tools/tool_details.aspx%3Ftool_id%3D837%26tw%3D1800%26fs%3D1%26kv%3D2%26ct%3D1254684348%26ems%3D1%26ver%3D2.1.6000.1%26rn%3D9pppE7cs%26tpf%3D66eb76ba99382c25856c2c007d5f4138"><IMG SRC="http://www.passportimages.com/1033/signin.gif" CLASS="PassportSignIn" BORDER="0" ALT="Sign in to Windows Live ID" ID="idSI"/></A></span>
				<!--
					<table id="TopBar_tblLogin" border="0" width="1%" cellpadding="0" cellspacing="0">
	<tr>
		<td align="right" class="loginControl">
								Email:
							</td>
		<td>
								<input name="TopBar:email" type="text" size="15" id="TopBar_email" class="loginControl" />
							</td>
	</tr>
	<tr>
		<td align="right" class="loginControl">
								Password:
							</td>
		<td nowrap="nowrap">
								<input name="TopBar:password" type="password" size="15" id="TopBar_password" class="loginControl" />
								<input type="submit" name="TopBar:btnLoginCtr" value="Login" id="TopBar_btnLoginCtr" class="loginControl" />
							</td>
	</tr>
</table>

				--></td><td>
					
				</td>
			</tr>
			<tr>
				<td height="1%" width="100%" colspan="3" align="right" class="tdTopBarBtns">
					<a title="DevHood Main Page" class="menuLink" href="/default.aspx">Home</a>
					&nbsp;|&nbsp;
					<a title="Answers to some of your frequently asked questions" class="menuLink" href="/faq.aspx">FAQ</a>
					&nbsp;|&nbsp;
					<a title="Learn about the creators of DevHood" class="menuLink" href="/aboutus.aspx">About</a>
					&nbsp;|&nbsp;
					<a title="Contact us with feedback, questions or complaints" class="menuLink" href="/contactus.aspx">Contact</a>
					&nbsp;|&nbsp;
					<a id="TopBar_hlViewSource" title="View source of current page" class="menuLink" href="/view_source.aspx?source=/tools/tool_details.aspx/tools/tool_details.aspx" target="_blank">View Source</a>
					&nbsp;&nbsp;
					
					
				</td>
			</tr>
			
		</table>
	</body>
</html>

			<table border="0" cellspacing="0" cellpadding="0" width="100%" height="90%">
				<tr>
					<td height="100%" width="1%" rowspan="2" valign="top" align="left" class="tblSideBar">
						
<table height="100%" border="0" width="1%" cellspacing="0" cellpadding="3">
	<tr>
		<td>
			<table height="100%" border="0" width="1%" cellspacing="0" cellpadding="0">
				<tr>
					<td colspan="2" height="35">
						&nbsp;
					</td>
				</tr>
				<tr>
					<td valign="bottom" height="1%" colspan="2">
						<table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0">
							<tr>
								<td width="100%" class="tdSideBarBtns">
									<span class="searchText">SEARCH:</span>
									<hr noshade color="Black" size="1pt">
								</td>
							</tr>
							<tr>
								<td>
									<input name="_ctl1:txtSearch" type="text" size="14" id="_ctl1_txtSearch" class="searchBox" />
								</td>
							</tr>
							<tr>
								<td>
									<select name="_ctl1:ddlSearch" id="_ctl1_ddlSearch" class="searchBox">
	<option selected="selected" value="all">DevHood</option>
	<option value="tutorial">Tutorials</option>
	<option value="tool">Tools</option>
	<option value="news">News</option>
	<option value="message">Forums</option>
	<option value="job">Jobs</option>
	<option value="user">Citizens</option>

</select>
									<input type="submit" name="_ctl1:btnSearch" value="GO" id="_ctl1_btnSearch" style="font-size:8pt" />
								</td>
							</tr>
						</table>
					</td>
				</tr>
				<tr>
					<td colspan="2" valign="middle" height="35">
						&nbsp;
					</td>
				</tr>
				<tr valign="bottom" align="left" class="tdSideBarBtns">
					<td colspan="2">
						<span class="searchText">BROWSE:</span>
						<hr noshade color="Black" size="1pt">
					</td>
				</tr>
				<tr valign="top" align="left">
					<td rowspan="13" width="1%">
						&nbsp;&nbsp;&nbsp;
					</td>
					<td nowrap>
						<a title="Your personal DevHood" class="navLink" href="/myHood.aspx">My Hood</a>
					</td>
				</tr>
				<tr valign="top" align="left">
					<td nowrap>
						<a title="Edit your account information here." class="navLink" href="/update_info.aspx">Edit My Info</a>
					</td>
				</tr>
				<tr valign="top" align="left">
					<td nowrap>
						<a title="Find out what events are going on in your school." class="navLink" href="/events/">View Events</a>
					</td>
				</tr>
				<tr valign="top" align="left">
					<td nowrap>
						<a title="Step by step guides to using .NET" class="navLink" href="/tutorials/">Read Tutorials</a>
					</td>
				</tr>
				<tr valign="top" align="left">
					<td nowrap>
						<a title="Some great content for teaching as well as learning. Suitable for beginners as well as advanced developers" class="navLink" href="/training_modules/">Training Modules</a>
					</td>
				</tr>
				<tr valign="top" align="left">
					<td nowrap>
						<a title="View presentations about .NET. Available in powerpoint and html formats." class="navLink" href="/presentations/">View Presentations</a>
					</td>
				</tr>
				<tr valign="top" align="left">
					<td nowrap>
						<a title="Incorporate tools by other citizens" class="navLink" href="/tools/">Download Tools</a>
					</td>
				</tr>
				<tr valign="top" align="left">
					<td nowrap>
						<a title="Get the latest news on .NET technologies" class="navLink" href="/news/">Scan News</a>
					</td>
				</tr>
				<tr valign="top" align="left">
					<td nowrap>
						<a title="Find a .NET related job" class="navLink" href="/jobs/">Get Jobs</a>
					</td>
				</tr>
				<tr valign="top" align="left">
					<td nowrap>
						<a title="Join other citizens in discussions on .NET technologies and get help on your questions" class="navLink" href="/messages/">Message Forums</a>
					</td>
				</tr>
				<tr valign="top" align="left">
					<td nowrap>
						<a title="Check out what students are talking about at your school. This forum is for your school only so go and post some messages." class="navLink" href="/messages/school_categories.aspx">School Forums</a>
					</td>
				</tr>
				<!--
				<tr valign=top align=left>
					<td nowrap>
						
					</td>
				</tr>
				-->
				<tr valign="top" align="left">
					<td nowrap>
						<a title="Browse the DevHood Member Directory" class="navLink" href="/public_pages.aspx">Member Directory</a>
					</td>
				</tr>
				<tr>
					<td colspan="2" valign="middle" height="35">
						&nbsp;&nbsp;&nbsp;
					</td>
				</tr>
				<tr valign="bottom" align="left" class="tdSideBarBtns">
					<td colspan="2">
						<span class="searchText">CONTRIBUTE:</span>
						<hr noshade color="Black" size="1pt">
					</td>
				</tr>
				<tr valign="top" align="left">
					<td rowspan="8" width="1%">
						&nbsp;&nbsp;&nbsp;
					</td>
					<td nowrap>
						<a title="Join the DevHood Community now! Get a passport so you can login!" class="navLink" href="/faq.aspx?reg=t">Sign me up!</a>
					</td>
				<tr>
				<tr valign="top" align="left">
					<td nowrap>
						<a title="If you're registered under a school in your profile, then you can post an event. It's a great way to spread the news to your fellow classmates!" class="navLink" href="/events/event_submit.aspx">Post an Event</a>
					</td>
				</tr>
				<tr valign="top" align="left">
					<td nowrap>
						<a title="Write a step by step guides to using .NET" class="navLink" href="/tutorials/tutorial_submission.aspx">Submit Tutorials</a>
					</td>
				</tr>
				<tr valign="top" align="left">
					<td nowrap>
						<a title="Upload a tool for other citizens to use" class="navLink" href="/tools/tool_submission_upload.aspx">Upload Tools</a>
					</td>
				</tr>
				<tr valign="top" align="left">
					<td nowrap>
						<a title="Post a link to the latest news on .NET technologies" class="navLink" href="/news/news_link_submission.aspx">Link News</a>
					</td>
				</tr>
				<tr valign="top" align="left">
					<td nowrap>
						<a title="Post a .NET related job" class="navLink" href="/jobs/jobs_submission.aspx">Post Jobs</a>
					</td>
				</tr>
<tr>
					<td colspan="2" valign="middle" height="35">
						&nbsp;&nbsp;&nbsp;
					</td>
				</tr>
<tr><td colspan="2" align=center><script type="text/javascript"><!--
google_ad_client = "pub-4406495008783846";
google_ad_width = 120;
google_ad_height = 600;
google_ad_format = "120x600_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "9999cc";
google_color_bg = "CCCCFF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--></script>
<script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></td></tr>
				
				<tr>
					<td colspan="2" height="100%">
						&nbsp;&nbsp;&nbsp;
					</td>
				</tr>
				<!--
				<tr valign=top align=left>
					<td height=35>		
						<a title="Contact us with feedback, questions or complaints" class="navLink" href="../aboutus.aspx">Contact Us</a> 
					</td>
				</tr>
				-->
				<!-- 
				<tr valign=top align=left>
					<td>		
						<a title="Frequently Asked Questions about DevHood" class="navLink" href="../faq.aspx">FAQ</a> 
					</td>
				</tr>
				-->

			</table>
		</td>
	</tr>
</table>

					</td>
					<td height="100%" width="100%" valign="top" align="left">
						<table border="0" cellpadding="10" cellspacing="0" width="100%" height="100%">
							<tr>
								<td height="1%" width="72%" valign="bottom">
									<span id="bar"><a href="/"><font face="Verdana" color="#0505C0" size="1">Home</font></a><span><font face="Verdana" color="Black" size="1">&nbsp;>&nbsp;&nbsp;</font></span><a href="/tools"><font face="Verdana" color="#0505C0" size="1">Tools</font></a><span><font face="Verdana" color="Black" size="1">&nbsp;>&nbsp;&nbsp;</font></span><span><b><font face="Verdana" color="Black" size="1">form_validation.js</font></b></span></span>
								</td>
								<td height="1%" width="28%" align="right" valign="top">
									

<style>

/* For myHood */

.AddToMyHood{
	font-family:Verdana,Geneva, Arial;
	font-size:8pt;
}

/* END For myHood */
</style>



<table border=0 cellpadding=0 cellspacing=0 width=100% align=right>
	<tr>
		<td nowrap align=right width=100%>
			<a title="Add this page to myHood bookmarks" class="AddToMyHood" imageurl="/images/icons/myhood_trans.gif" href="javascript:__doPostBack('addto$_ctl0','')">Add to MyHood</a>
		</td>
		<td align=right>
			<input type="image" name="addto:_ctl1" title="Add this page to myHood bookmarks" class="AddToMyHood" src="/images/icons/myhood_trans.gif" alt="" border="0" />
		</td>
	</tr>
</table>
								</td>
							</tr>
							<td height="100%" width="100%" colspan="2" valign="top">
								<!-- BEGIN PAGE CELL -->
								<table border="0" width="100%">
									<tr>
										<td id="cellImgAuthor" align="left" valign="bottom" width="1%" height="1%" rowspan="2" class="ToolDetAuthorImage">
											<img id="imgAuthor" src="/user_photos/1209.jpg" alt="" border="0" width="90" />
											&nbsp;&nbsp;
										</td>

										<td align="left" valign="bottom" class="ToolDetTitle">
											<span id="lblTitle">form_validation.js</span>
										</td>
										<td align="right" valign="bottom" width="1%" nowrap rowspan="2" class="ToolDetStats">
											<table border="1" bordercolor="#636DCD" cellspacing="0" cellpadding="0" width="1%">
												<tr>
													<td align="left" width="100%" height="1%" class="ToolDetStatsHeader">
														Stats
													</td>
												</tr>
												<tr>
													<td align="left" nowrap width="100%" class="ToolDetStatsBody">
														<table border="0" cellspacing="0" cellpadding="5" width="100%" height="100%">
															<tr>
																<td align="left" height="1%" valign="bottom" nowrap class="ToolDetStatsBody">
																	&nbsp;&nbsp;<span id="lblRating">Rating: 4.33 out of 5 by 6 users</span>
																</td>
															</tr>
															<tr>
																<td align="left" height="1%" valign="top" nowrap class="ToolDetStatsBody">
																	&nbsp;&nbsp;<span id="lblSubmitted">Submitted: 11/26/02</span>
																</td>
															</tr>
														</table>
													</td>
												</tr>
											</table>
										</td>
									</tr>
									<tr>
										<td align="left" valign="middle" height="1%">
											<a id="hlAuthorName" class="ToolDetAuthorName" href="/public.aspx?user_id=00037FFE855E1FE5">Michael McClain</a>
											(<a id="hlAuthorEmail" class="ToolDetAuthorEmail" href="mailto:mmcclain+devhood@ccs.neu.edu">mmcclain+devhood@ccs.neu.edu</a>)
										</td>
									</tr>
									<tr>
										<td align="center" valign="top" width="100%" height="1%" colspan="3">
											<hr size="0" class="ToolDetLine">
										</td>
									</tr>
									<tr>
										<td colspan="3">
											<table border="0" cellspacing="5" align="center" width="85%">
												<tr>
													<td valign="top" width="1%" nowrap class="ToolDownload">
														Download This Tool:
													</td>
													<td valign="top" width="100%" class="ToolDownloadLink">
														
<a id="myDownload" Login="false" href="javascript:__doPostBack('myDownload','')"><a href="javascript:__doPostBack('myDownload$_ctl0','')">form_validation.js</a></a>
													</td>
													<td align="right">
														<a class=ToolDownloadLink href='disclaimer.aspx?id=837'>Disclaimer</a>
													</td>
												</tr>
												<tr>
													<td colspan="3">
														&nbsp;
													</td>
												</tr>
												<tr>
													<td valign="top" colspan="3" width="100%" class="ToolDetBody">
														<span id="lblBody">This is a javascript file that checks fields on submit. It shows all the errors at once, avoiding the fix one problem, get a new alert for a previously unknown problem style.<br><br>I wrote this myself in a morning, but I must admit I got some good ideas from the following existing scripts:  Form Validator 2.0 by Art Lubin and Form Chek by Eric Krock<br><br>I submitted this after seeing another javascript validator on devhood which I thought was cool, but this was cooler.<br></span>
													</td>
												</tr>
											</table>
										</td>
									</tr>
							</td>
				</tr>
			</table>
			<p>
				<table align="center" border="0" cellspacing="0" cellpadding="0" width="100%">
					<tr>
						<td align="left" valign="bottom" class="ToolDetEmail">
							<br>
							<a id="hlBack" href="tool_sub.aspx?sort=date_submitted&amp;order=desc&amp;page_number=1&amp;category_id=3">Return to Browsing Tools</a>
						</td>
						<td align="right" valign="bottom" class="ToolDetEmail">
							<br>
							<a id="EmailLink" href="javascript:__doPostBack('EmailLink','')">Email this Tool to a Friend</a>
						</td>
					</tr>
					<tr>
						<td colspan="2">
							<hr size="0" class="ToolDetLine">
						</td>
					</tr>
					<tr>
						<td align="center" valign="bottom" class="ToolDetRate" colspan="2">
							

<head>

<link rel=stylesheet type=text/css href="/ratings/ratings.css">





</head>

		<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0">
			<tr>
				<td align=center>
					
					
					
				</td>
			</tr>
			<TR>
				<TD align=right valign=top>
					<span class=rate>Rate this Content:</span>
				</TD>
				<TD>
					<input id="rate_one" type="radio" name="rate:scale" value="one" />
				</TD>
				<TD>
					<input id="rate_two" type="radio" name="rate:scale" value="two" />
				</TD>
				<TD>
					<input id="rate_three" type="radio" name="rate:scale" value="three" />
				</TD>
				<TD>
					<input id="rate_four" type="radio" name="rate:scale" value="four" />
				</TD>
				<TD>
					<input id="rate_five" type="radio" name="rate:scale" value="five" />
				</TD>
				<TD ALIGN="left" ROWSPAN="1" VALIGN="middle" >
					&nbsp;<input type="image" name="rate:submit" id="rate_submit" class="no_underline" src="/images/icons/submit_button.gif" alt="" border="0" />
				</TD>
			</TR>
			<TR>
				<TD ALIGN="right">
					<span class=helpful>low quality&nbsp;</span>
				</TD>
				<TD ALIGN="CENTER">
					<span class=rank> 1</span>
				</TD>
				<TD ALIGN="CENTER">
					<span class=rank> 2</span>
				</TD>
				<TD ALIGN="CENTER">
					<span class=rank> 3</span>
				</TD>
				<TD ALIGN="CENTER">
					<span class=rank> 4</span>
				</TD>
				<TD ALIGN="CENTER">
					<span class=rank> 5</span>
				</TD>
				<TD>
					<span class=helpful>&nbsp;high quality</span>
				</TD>
			</tr>
			
		</TABLE>

	

						</td>
					</tr>
					<tr>
						<td colspan="2">
							<hr size="0" class="ToolDetLine">
						</td>
					</tr>
				</table>
				<br>
				<br>
				
						<table border="0" width="100%" cellpadding="0" cellspacing="0">
							<tr bgcolor="#999999" valign="middle">
								<td height="30" class="ToolReadersComments">
									Reader's Comments
								</td>
								<td align="right" valign="middle" class="ToolPostaComment">
									<a id="rpComments__ctl0_AddCTxt" class="NewsPostaComment" href="javascript:__doPostBack('rpComments$_ctl0$AddCTxt','')"><font color="White">Post a Comment</font></a>
									<input type="image" name="rpComments:_ctl0:lbAddComment" id="rpComments__ctl0_lbAddComment" src="/IMAGES/ICONS/post_small.gif" alt="" border="0" />
								</td>
							</tr>
							<tr>
								<td colspan="2">
									&nbsp;
								</td>
							</tr>
					
						<tr>
							<td colspan="2" class="ToolComments">
								A good one.  Thanks. I find it really useful to give out as an example in teaching my javascript class. <br>
							</td>
						</tr>
						<tr height="20" valign="bottom">
							<td colspan="2" class="ToolComments">
								--
								<a href=/Public.aspx?user_id=000149505AAFE2F7>Yusno Yunos</a>
								,
								February 25, 2003
							</td>
						</tr>
						<tr>
							<td colspan="2">
								&nbsp;
							</td>
						</tr>
					
						</table>
					
				<!-- END PAGE CELL -->
				</td> </tr> </table> </td> </tr>
				<tr>
					<td height="1%" width="100%" align="left" valign="bottom">
						
<table border=0 cellspacing=6 cellpadding=0 width=100% height=1%>
	<tr>
		<td valign=top align=center height=1% class=CopyLinks>
			<a href="/conditions.html">Conditions of Use</a>
			&nbsp;&nbsp;|&nbsp;&nbsp;
			<a href="/privacy.html">Privacy Notice</a>
		</td>
	</tr>
<!--
	<tr>
		<td valign=top align=center height=1% class=CopyText>
			Copyright &copy; 2001 Emitix&reg; All Rights Reserved
		</td>
	</tr>

	<tr>
		<td valign=top align=center height=1% class=CopyLogo>
			<a href="http://emitix.mit.edu/emitix_site/"><img src="/images/emitix_logo_small.gif" border=0 ismap></a>
		</td>
	</tr>
-->

	<tr>
		<td valign=top align=center height=1% class=CopyText>
			Copyright &copy; 2001 DevHood&reg; All Rights Reserved
		</td>
	</tr>

</table>
					</td>
				</tr>
			</table>
		</form>
	</body>
</html>
