
var digitsInUSPhoneNumber = 10;
var whitespace = " \t\n\r";
var defaultEmptyOK = true;



function doVerify(aForm)
{
	var theMsg = "The following information is missing or incorrect:\n\n";
	if(isWhitespace(aForm.required_co_name.value)) theMsg+="    · Requesting Company Name\n";
  	if(isWhitespace(aForm.required_initiator_name.value)) theMsg+="    · Initiator Name\n";
	if(!isUSPhoneNumber(aForm.required_initiator_telephone.value)) theMsg+="    · Initiator Telephone (must be 10 digits)\n"
	if(isWhitespace(aForm.required_initiator_telephone.value)) theMsg+="    · Initiator Telephone\n"
  	if(isWhitespace(aForm.required_initiator_add1.value)) theMsg+="    · Initiator Address\n";
	if(!isUSPhoneNumber(aForm.required_initiator_fax.value)) theMsg+="    · Initiator Fax (must be 10 digits)\n"
	if(isWhitespace(aForm.required_initiator_fax.value)) theMsg+="    · Initiator Fax\n"
	if((!isEmail(aForm.initiator_email.value))&&
  	(!aForm.nonemail.checked)) theMsg+="    · Initiator Email (like xxx@xxx.xxx)\n";
	if((aForm.required_preferred[1].checked)&&
  	(isWhitespace(aForm.preferred_other_text.value))) theMsg+="    · Description of Other Preferred Means of Response\n";
  	if((aForm.preferred_alternate[2].checked)&&
  	(isWhitespace(aForm.preferred_alternate_text.value))) theMsg+="    · Description of Other Alternate Means of Response\n";
	if(isWhitespace(aForm.required_attention.value)) theMsg+="    · Attention\n";
	if(!aForm.required_end_use_auth.checked) theMsg+="    · End User Authorization Obtained\n";
	if(theMsg == "The following information is missing or incorrect:\n\n")
	{
		aForm.submit();
	}
	else
	{
		alert(theMsg);
		return false;
	}
}



function toReset()
{
	window.location.reload();
}


function isBlank(s)
{
	if (isEmpty(s))
	{
		return false;
	}
	else
	{
		return true;
	}
}

function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}

function isWhitespace(s)
{   var i;
    if (isEmpty(s)) return true;
    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);
        if (whitespace.indexOf(c) == -1) return false;
    }
    return true;
}

function isLetter(c)
{   return ( ((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")) )
}

function isDigit(c)
{   return ((c >= "0") && (c <= "9"))
}

function isDash(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);

        if (! (isDigit(c) || (c=='-')) ) {
       	return false;
		}
    }
    return true;
}

function isParen(c)
{   if ((c == "(") || (c == ")") || (c == "#") || (c == "-") || (c == "e") || (c == "x") || (c == "t") || (c == "e") || (c == "n") || (c == "s") || (c == "i") || (c == "o") || (c == " ") || ((c >= "0") && (c <= "9")))
	{
		return true;
	}
	return false;
}

function isvalidEmailChar(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);

        if (! (isLetter(c) || isDigit(c) || (c=='@') || (c=='.') || (c=='_') || (c=='-') || (c=='+')) ) {
       	return false;
		}
    }
    return true;
}

function isInteger(s)
{   var i;

    if (isEmpty(s))
       if (isInteger.arguments.length == 1) return defaultEmptyOK;
       else return (isInteger.arguments[1] == true);

    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);
        if (!isDigit(c)) return false;
    }
    return true;
}

function isPhone(s)
{   var i;

    if (isEmpty(s))
       if (isInteger.arguments.length == 1) return defaultEmptyOK;
       else return (isInteger.arguments[1] == true);

    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);
        if (!isParen(c)) return false;
    }
    return true;
}

function isEmail(s)
{   if (isEmpty(s))
       if (isEmail.arguments.length == 1) return defaultEmptyOK;
       else return (isEmail.arguments[1] == true);

    if (isWhitespace(s)) return false;
    if (!isvalidEmailChar(s)) return false;

    atOffset = s.lastIndexOf('@');

    if ( atOffset < 1 )
        return false;
    else {
 	dotOffset = s.indexOf('.', atOffset);

      if ( dotOffset < atOffset + 2 ||
         dotOffset > s.length - 2 ) {
         return false;
      }
   }
   return true;
}

function isUSPhoneNumber(s)
{  
    if (isEmpty(s))
    {
       if (isUSPhoneNumber.arguments.length == 1)
       {
         return defaultEmptyOK;
       }
       else
       {
         return (isUSPhoneNumber.arguments[1] == true);
       }
    }
    return (isPhone(s) && (!isWhitespace(s)) && s.length >= digitsInUSPhoneNumber)
}
