// JavaScript Document
function validateAddress(aForm)
{
	isError = 0;
	errstr = "There are some errors or missing fields:\n\n";
	
	if(aForm.first.value == "")
	{
		errstr += "Missing First Name\n";
		isError = 1;
	}
	
	if(aForm.last.value == "")
	{
		errstr += "Missing Last Name\n";
		isError = 1;
	}
	
	if(aForm.address1.value == "")
	{
		errstr += "Missing Address1\n";
		isError = 1;
	}
	
	if(aForm.city.value == "")
	{
		errstr += "Missing City\n";
		isError = 1;
	}
	
	if(aForm.country.value == "United States" || aForm.country.value == "Canada")
	{
		if(aForm.state.value == "" || aForm.state.value == "--")
		{
			errstr += "Missing State or Province\n";
			isError = 1;
		}
	}

	if(aForm.zip.value == "")
	{
		errstr += "Missing ZIP or Postal Code\n";
		isError = 1;
	}
	
	if(aForm.country.value == "")
	{
		errstr += "Missing Country\n";
		isError = 1;
	}

	if(aForm.email.value == "")
	{
		errstr += "Missing email address\n";
		isError = 1;
	}
	
	if(aForm.email.value != "")
	{
		var ok = checkEmail(aForm.email.value);
		if(!ok)
		{
			errstr += "You have entered an invalid email address.\n";
			isError = 1;
		}
		
	}
	
	if(aForm.country.value != "United States" && aForm.country.value != "Canada")
	{
		if(aForm.state.value != "")
		{
			errstr = "State/Province field only applies to United States and Canada. Please blank out the State/Province selector.";
			isError = 1;
		}
	}
	
	if(isError == 1)
	{
		errstr += "\nPlease fix errors and fill in all the required fields.";
		alert(errstr);
		return errstr;
	}
	else
	{
		return "no error";
		
	}
}



function checkEmail(email) {
    if (! allValidChars(email)) {  // check to make sure all characters are valid
        return false;
    }
    if (email.indexOf("@") < 1) { //  must contain @, and it must not be the first character
        return false;
    } else if (email.lastIndexOf(".") <= email.indexOf("@")) {  // last dot must be after the @
        return false;
    } else if (email.indexOf("@") == email.length) {  // @ must not be the last character
        return false;
    } else if (email.indexOf("..") >=0) { // two periods in a row is not valid
	return false;
    } else if (email.indexOf(".") == email.length) {  // . must not be the last character
	return false;
    }
    return true;
}

function allValidChars(email) {
  var parsed = true;
  var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
  for (var i=0; i < email.length; i++) {
    var letter = email.charAt(i).toLowerCase();
    if (validchars.indexOf(letter) != -1)
      continue;
    parsed = false;
    break;
  }
  return parsed;
}

