// JavaScript Document// Field Focus on Label Click - Jeremy Keith's script as described in "DOM Scripting"function focusLabels() {  if (!document.getElementsByTagName) return false;  var labels = document.getElementsByTagName("label");  for (var i=0; i<labels.length; i++) {    if (!labels[i].getAttribute("for")) continue;    labels[i].onclick = function() {      var id = this.getAttribute("for");      if (!document.getElementById(id)) return false;      var element = document.getElementById(id);      element.focus();    }  }}// Form Validator -- Modified from Jeremy Keith's script as described in "DOM Scripting"				  function validateForm(whichform) {	for (var i=0; i<whichform.elements.length; i++) {			var element = whichform.elements[i];			if (element.className.indexOf("required") != -1) {				if (!isFilled(element)) {						element.className = element.className + "mf";						document.getElementById("mf_err").style.display = "list-item";						document.getElementById("alert").style.display = "block";						return false;				}			}			if (element.className.indexOf("email") != -1) {				if (!isEmail(element)) {					document.getElementById("email_err").style.display = "list-item";					document.getElementById("alert").style.display = "block";					return false;				}			}	}	return true;}	function isFilled(field) {  if (field.value.length < 1) {    return false;  } else {    return true;  }}function isEmail(field) {  if (field.value.indexOf("@") == -1 || field.value.indexOf(".") == -1) {    return false;  } else {    return true;  }}// Prepare Forms -- Jeremy Keith's script as described in "DOM Scripting"function prepareForms() {	for (var i=0; i<document.forms.length; i++) {		var thisform = document.forms[i];		thisform.onsubmit = function() {			return validateForm (this);		}	}}addLoadEvent(focusLabels);addLoadEvent(prepareForms);addLoadEvent(setMaxLength);// Set maxlength on textfieldsfunction setMaxLength() {	var x = document.getElementsByTagName('textarea');	var counter = document.createElement('div');	counter.className = 'counter';	for (var i=0;i<x.length;i++) {		if (x[i].getAttribute('maxlength')) {			var counterClone = counter.cloneNode(true);			counterClone.relatedElement = x[i];			counterClone.innerHTML = '<span>0</span>/'+x[i].getAttribute('maxlength');			x[i].parentNode.insertBefore(counterClone,x[i].nextSibling);			x[i].relatedElement = counterClone.getElementsByTagName('span')[0];			x[i].onkeyup = x[i].onchange = checkMaxLength;			x[i].onkeyup();		}	}}function checkMaxLength() {	var maxLength = this.getAttribute('maxlength');	var currentLength = this.value.length;	if (currentLength > maxLength)		this.relatedElement.className = 'toomuch';	else		this.relatedElement.className = '';	this.relatedElement.firstChild.nodeValue = currentLength;	// not innerHTML}