//Check form values
function check_contact_form(form)
{
	var firstName = form.firstName.value;
	var lastName = form.lastName.value;

	var phonePrefix = form.phonePrefix.value;
	var phone = form.phone.value;
	var email = form.emailAddress.value;
	var contactMethod1 = form.preferredPhone.checked;
	var contactMethod2 = form.preferredEmail.checked;

	var city = form.city.value;
	var state = form.state.value;
	var country = form.country.value;


	if (!checkName(firstName)) {
		alert("That name is not valid.\r\nPlease write your name");
	    return false;
	} else if (!checkName(lastName)) {
		alert("That last name is not valid.\r\nPlease write your last name");
	    return false;
	} else if (!contactMethod1 && !contactMethod2) {
  		alert("Please provide a phone number or an email to contact you");
    	return false;
  	} else if (contactMethod1) {
  		if (!checkNum(phonePrefix)) {
			alert("Please provide a valid area code for the phone number to contact you");
			return false;
  		} else if (!checkNum(phone)) {
  			alert("Please provide a valid phone number to contact you");
  			return false;
  		}
	} else if (contactMethod2 && !isEmail(email)) {
		alert("Please provide a valid email");
		return false;
	}

	if (!isEmpty(city) && !checkName(city)) {
		alert("That city name is not valid.\r\nPlease write your city name");
    	return false;
  	} else if (!isEmpty(state) && !checkName(state)) {
	  	alert("That state is not valid.\r\nPlease write your state");
      	return false;
	} else if (isEmpty(country) || !checkName(country)){
      	alert("That country name is not valid.\r\nPlease select your country name");
      	return false;
  	} else {
		//Submit Form
		return true;
	}
}

function checkName(name) {
  if (name.length<3)
    return false;
  else if (!isAlphabetic(name))
    return false;
  else
    return true;
}

function isAlphabetic(s){
  var i;
  for (i=0;i<s.length;i++) {
    var c=s.charAt(i);
    if (!isLetter(c))
        return false;
  }
  // All are letters
  return true;
}

function isLetter(c) {
  return ( ((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")) || (c==" ") || (c=="-") || (c=="'"));
}

function checkNum(num) {
  if (num.length<2)
    return false;
  else if (!isNumber(num))
    return false;
  else
    return true;
}

function isNumber(s) {
  var i;
  for (i=0;i<s.length;i++) {
	var c=s.charAt(i);
    if (!isDigit(c))
	  return false;
  }
  // All are digits
  return true;
}

function isDigit(c) {
  return ( ((c >= "0") && (c <= "9")) || (c=="-") || (c=="(") || (c==")") || (c=="[") || (c=="]") || (c==" ") );
}

function isEmpty(s) {
  return ((s == null) || (s.length == 0));
}

function isEmail(s) {
	var email = trim(s);
    var emailReg = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";
    var regex = new RegExp(emailReg);
    return regex.test(email);
}

 function trim(str)
{
   return str.replace(/^\s*|\s*$/g,"");
}