
function emailCheck (element) 
{
	emailStr=element;
	
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	// The following pattern describes the structure of the user
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
	
	var matchArray=emailStr.match(emailPat)
	
	if (matchArray==null) {
		return false
	}
	
	var user=matchArray[1]
	var domain=matchArray[2]
	
	// See if "user" is valid 
	if (user.match(userPat)==null) {
		// user is not valid
		return false
	}
	
	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
		// this is an IP address
		  for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
			return false
			}
		}
		return true
	}
	
	// Domain is symbolic name
	var domainArray=domain.match(domainPat)
	if (domainArray==null) {
		return false
	}
	
	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	
	if (domArr[domArr.length-1].length<2 || 
		domArr[domArr.length-1].length>3) {
	   // the address must end in a two letter or three letter word.
	   return false
	}
	
	// Make sure there's a host name preceding the domain.
	if (len<2) {
	   var errStr="This address is missing a hostname!"
	   return false
	}
	
	// If we've gotten this far, everything's valid!
	return true;
}


//  End -->

function ShowTR(id)
{
	if(document.getElementById(id).style.display == 'none')
		document.getElementById(id).style.display = 'block';
	else
		document.getElementById(id).style.display = 'none';
}

function checkphone(input)
{
	var returnval = false;
	input=input.replace(/[ ()]/g, "");
	var re = new RegExp('^[+]{0,1}[0]{0,2}[1-9][0-9]{8,}$');
	if (input.match(re)) {
		returnval = true;
	}
	return returnval;
}

function checkdate(input)
{
	var returnval = false;
	
	var re = new RegExp('(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\\d\\d');
	if (input.match(re)) {
		returnval = true;
	}	
	return returnval;
}

function checkcurrency(input)
{
	var returnval = false;
	
	var re = new RegExp('^\\d+\\.\\d\\d$');
	if (input.match(re)) {
		returnval = true;
	}	
	return returnval;
}

function checknumber(input)
{
	var returnval = false;
	
	var re = new RegExp('^[0-9]\\d*$');
	if (input.match(re)) {
		returnval = true;
	}	
	return returnval;
}

function checksortcode(input)
{
	var returnval = false;
	
	var re = new RegExp('^([0-9]{2})$');
	if (input.match(re)) {
		returnval = true;
	}	
	return returnval;
}

function checktime(input)
{
	var returnval = false;
	
	var re = new RegExp('^([01]?[0-9]|[2][0-3])(:[0-5][0-9])?$');
	if (input.match(re)) {
		returnval = true;
	}	
	return returnval;
}

function checkccard(input, nl)
{
	var returnval = false;
	
	var re = new RegExp('^([0-9]{'+nl+'})$');
	if (input.match(re)) {
		returnval = true;
	}	
	return returnval;
}

function checkrequired(which) 	
{
	var pass=true;

	if (document.images) 
	{
		for (i=0;i<which.length;i++)
		{
			var tempobj=which.elements[i];
			//if (tempobj.name.substring(0,8)=="required") 
			
			if (tempobj.required == "1")
			{
			if ( (tempobj.type=="checkbox" && tempobj.checked==false) || ((tempobj.type=="text"||tempobj.type=="password"||tempobj.type=="textarea")&&
				tempobj.value=='')||(tempobj.type.toString().charAt(0)=="s"&&
				tempobj.selectedIndex==0)) 
				{
					pass = false;
					break;
				}
				else
				{
					if (tempobj.isdate == "1")
					{
						if (checkdate(tempobj.value) == false)
						{
							pass = false;
							break;
						}
					}
					if (tempobj.istime == "1")
					{
						if (checktime(tempobj.value) == false)
						{
							pass = false;
							break;
						}
					}
					if (tempobj.iscurrency == "1")
					{
						if (checkcurrency(tempobj.value) == false)
						{
							pass = false;
							break;
						}
					}
					if (tempobj.isnumber == "1")
					{
						if (checknumber(tempobj.value) == false)
						{
							pass = false;
							break;
						}
						if (tempobj.lnum)
						{
							if (parseFloat(tempobj.value) < parseFloat(tempobj.lnum))
							{
								pass = false;
								break;
							}
						}
						if (tempobj.unum)
						{
							if (parseFloat(tempobj.value) > parseFloat(tempobj.unum))
							{
								pass = false;
								break;
							}
						}
					}
					if (tempobj.isemail == "1")
					{
						if(emailCheck(tempobj.value) == false)
						{
							pass = false;
							break;
						}
					}
					if (tempobj.isphone == "1")
					{
						if(checkphone(tempobj.value) == false)
						{
							pass = false;
							break;
						}
					}
					if (tempobj.issortcode == "1")
					{
						if(checksortcode(tempobj.value) == false)
						{
							pass = false;
							break;
						}
					}
					if (tempobj.isccard == "1")
					{
						if (tempobj.value.length >= 13)
						{
							if(checkccard(tempobj.value, tempobj.value.length) == false)
							{
								pass = false;
								break;
							}
						}
						else
						{
							pass = false;
							break;
						}
					}
					if (tempobj.tomatch)
					{
						if(tempobj.value != document.getElementById(tempobj.tomatch).value)
						{
							
							pass = false;
							alert ("Please make sure the " + tempobj.name.toUpperCase() + " field matches the " + tempobj.tomatch.toUpperCase() + " field.");
							tempobj.focus;
							return false;
						}
					}
				}
			}
		}
	}
	
	if (!pass) 
	{
		if(tempobj.ct)
		{
			alert(tempobj.ct);
		}
		else
		{
			//shortFieldName=tempobj.name.substring(8,30).toUpperCase();
			shortFieldName=tempobj.name.toUpperCase();
			alert("Please make sure the "+shortFieldName+" field was properly completed.");
		}
		
		if (tempobj.disabled != true)
			tempobj.focus();
			
		return false;
	}
	else
	{
		return true;
		//SUBMIT FORM HERE	
	}
}
//  End -->
