/* =========================================================================
NAME: Form Validation Lib

AUTHOR: Seth , Dataesthetics
DATE  : 10/26/2005

COMMENT: Collection of generic form handling methods. 

EXAMPLES:
	<input type="text" name="cc1" size="5" maxlength="4" 
	    onkeypress="return numeralsOnly(event)" 
	    onkeyup="autofocus(this, 4, 'cc2', event)">&nbsp;&nbsp;
	<input type="text" name="cc2" size="5" maxlength="4" 
	    onkeypress="return numeralsOnly(event)" 
	    onkeyup="autofocus(this, 4, 'cc3', event)">&nbsp;&nbsp;
	<input type="text" name="cc3" size="5" maxlength="4" 
	    onkeypress="return numeralsOnly(event)" 
	    onkeyup="autofocus(this, 4, 'cc4', event)">&nbsp;&nbsp;
	<input type="text" name="cc4" size="5" maxlength="4" 
	    onkeypress="return numeralsOnly(  

	function ValidateForm(form) {
	    if (isNotEmpty(form.name1)) {
	        if (isNotEmpty(form.name2)) {
	            if (isNotEmpty(form.eMail)) {
	                if (isEMailAddr(form.eMail)) {
	                    if (isChosen(form.continent)) {
	                        if (isValidRadio(form.accept)) {
	                            return true;
	                        }
	                    }
	                }
	            }
	        }
	    }
	    return false;
	}
============================================================================ */
function FocusElement(formName, elemName)
{
	//var elem = document.forms[formName].elements[elemName];
	var elem = document.getElementById(elemName);
	elem.focus();
	elem.select();
}

function IsNotEmpty(elem)
{
	var str = elem.value;
	var re = /.+/;
	if (!str.match(re))
	{
		alert("Please fill in the required field.");
		setTimeout("FocusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
		return false
	}	
	else
	{
		return true;
	}
}

function IsNumber(elem)
{
	var str = elem.value;
	var re = /^[-]?\d*\.?\d*$/;
	str = str.toString();
	if (!str.match(re))
	{
		alert("Enter only numbers into the field.");
		setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
		return false;		
	}
	else
	{
		return true;
	}
}

function IsChosen(select)
{
	if (select.selectedIndex == 0)
	{
		alert("Please make a choice from the list.");
		return false;
	}			
	else
	{
		return true;
	}
}

function IsValidRadio(radio)
{
	var valid = false;
	for (var i = 0; i < radio.length; i++)
	{
		if (radio[i].checked)
		{
			return true;
		}
	}
	alert("Make a choice from the radio buttons.");
	return false;
}

function IsLengthOf(length, elem)
{
	var str = elem.value;
	var re = /\b.{length}\b/;
	if (!str.match(re))
	{
		alert("Entry does not contain the required " + length + " characters.");
		setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
		return false;
	}
	else
	{
		return true;
	}
}

function LettersOnly(evt)
{
	evt = (evt) ? evt : event;
	var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : ((evt.which) ? evt.which : 0));
	if (charCode > 31 && (charCode < 65 || charCode > 90) && (charCode < 97 || charCode > 122))
	{
		alert("Enter letters only in this field.");
		return false;
	}
	else
	{
		return true;
	}

}

function NumeralsOnly(evt)
{
	evt = (evt) ? evt : event;
	var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : ((evt.which) ? evt.which : 0));
	if (charCode > 31 && (charCode < 48 || charCode > 57))
	{
		alert("Enter numerals only in this field.");
		return false;
	}
	else
	{
		return true;
	}

}

function IsEmailAddress(elem)
{
	var str = elem.value;
	var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
	if (!str.match(re))
	{
		alert("Verify the email address format.");
		setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
		return false;
	}
	else
	{
		return true;
	}
}

function AutoFocus(field, limit, next, evt)
{
	evt = (evt) ? evt : event;
	var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : ((evt.which) ? evt.which : 0));
	if (charCode > 31 && field.value.length == limit)
	{
		field.form.elements[next].focus();
	}
}

function GetLikeElements(tagName, attrName, attrValue)
{
	var startSet;
	var endSet = new Array();
	if (tagName)
	{
		startSet = document.getElementsByTagName(tagName);
	}
	else
	{
		startSet = (document.all) ? document.all : document.getElementsByTagName("*");
	}
	if (attrName)
	{
		for (var i = 0; i < startSet.length; i++)
		{
			if (startSet[i].getAttribute(attrName) == attrValue)
			{
				endSet[endSet.length] = startSet[i];
			}
		}
	}
	else
	{
		endSet = startSet;
	}
	return endSet;
}


