function emailCheck(emailStr)
{
	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 + ")"
	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]
	if (user.match(userPat)==null) {
	    return false
	}
	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
		  for (var i=1;i<=4;i++) {
		    if (IPArray[i]>255) {
				return false
		    }
	    }
	    return true
	}
	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>4) {
		return false
	}
	if (len<2) {
	   return false
	}
	return true;
}

function ltrim(s)
{
	return s.replace(/^\s*/,"")
}

function rtrim(s)
{
	return s.replace(/\s*$/,"");
}

function trim(s)
{
	return rtrim(ltrim(s));
}
function isDigit(c)
{   return ((c >= "0") && (c <= "9"))
}
function isEmpty(s)
{   
	s=trim(s);
	return ((s == null) || (s.length == 0))
}

function warnEmpty (theField, s)
{   
	theField.focus();
	alert("Please enter " +s);
	return false;
}


function checkEmpty (theField, s)
{
   if(isEmpty(theField.value)) return warnEmpty (theField, s);
   else return true;
}


function isWhitespace (s)

{   var i;

	var whitespace = " \t\n\r";
    // Is s empty?
    if (isEmpty(s)) return true;

    // Search through string's characters one by one
    // until we find a non-whitespace character.
    // When we do, return false; if we don't, return true.

    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);

        if (whitespace.indexOf(c) == -1) return false;
    }

    // All characters are whitespace.
    return true;
}
function isInteger (s)

{   var i;

    if (isEmpty(s)) 
       if (isInteger.arguments.length == 1) return defaultEmptyOK;
       else return (isInteger.arguments[1] == true);

    // Search through string's characters one by one
    // until we find a non-numeric character.
    // When we do, return false; if we don't, return true.

    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);

        if (!isDigit(c)) return false;
    }

    // All characters are numbers.
    return true;
}
function phoneValidation(area,firstdigits,lastdigits,fromPhone)
{
	
	if (area.value == null || area.value.length == 0)
	{
		alert("Please fill in your "+ fromPhone +" area code.");
		area.focus()
		return false;
	}
	else
	{
		if (area.value.length	< 3)
		{
			alert("Your  "+ fromPhone +" area code must be 3 digits.");
			area.focus();
			return false;
		}
		var PhoneArea = area.value;
		var FirstPhone = PhoneArea.substring(0, 1);
		if ((FirstPhone == 0) || (FirstPhone == 1))
		{
			alert("International area codes beginning with " + FirstPhone + " are not allowed.");
			area.focus();
			return false;
		}
		if (isInteger(area.value) == false){
			alert("No letters allowed in your "+ fromPhone +".");
			area.focus();
			return false;		
		}
	}
	if (firstdigits.value == null || firstdigits.value.length == 0)
	{
		alert("Please fill in your "+ fromPhone +" prefix.");
		firstdigits.focus()
		return false;
	}
	else
	{
		if (firstdigits.value.length	< 3)
		{
			alert("Your "+ fromPhone +" prefix must be 3 digits.");
			firstdigits.focus();
			return false;
		}
		
		if (isInteger(firstdigits.value) == false){
			alert("No letters allowed in your "+ fromPhone +".");
			firstdigits.focus();
			return false;		
		}
	}

	if (lastdigits.value == null || lastdigits.value.length == 0)
	{
		alert("Please fill in your "+ fromPhone +" suffix.");
		lastdigits.focus()
		return false;
	}

	else
	{
		if (lastdigits.value.length	< 4)
		{
			alert("Your "+ fromPhone +" suffix must be 4 digits.");
			lastdigits.focus();
			return false;
		}
		
		if (isInteger(lastdigits.value) == false){
			alert("No letters allowed in your "+ fromPhone +".");
			lastdigits.focus();
			return false;		
		}
	}

	if (area.value == 111 || area.value == 222 || area.value == 333 || area.value == 444 || area.value == 555 || area.value == 666 || area.value == 777 ||  area.value == 999)
	{
		alert("Your "+ fromPhone +" area code is not valid.");
		area.focus()
		return false;
	}
	
	
	return true;
}
