// ESP Signup validation
function validateSignup() {

	// Setup
  var result = true;
  var form = document.getElementById('sun');
  var errmsg = "Required information:\n\n";
	
	// Field by Field
	if (document.getElementById('firstname').value.length < 2) {
		result = false;
		errmsg += "First Name is Required\n"
	}
	

	if (document.getElementById('lastname').value.length < 2) {
		result = false;
		errmsg += "Last Name is Required\n"
	}

	if (document.getElementById('zip').value == "") {
		result = false;
		errmsg += "Zip Code is Required\n"
	}
	
	if (document.getElementById('phone_number_pre').value == "" && document.getElementById('phone_number_suf').value == "" && document.getElementById('phone_area').value == "") {
		result = false;
		errmsg += "Phone Number is Required\n"
	}
	
	if (!validatePhonePre(document.getElementById('phone_number_pre').value) || !validatePhoneSuf(document.getElementById('phone_number_suf').value) || !validateArea(document.getElementById('phone_area').value)) {
		result = false;
		errmsg += "Phone Number is Invalid\n"
	}
	
	if(!validatePhoneSuf(document.getElementById('EXTENSION').value) && document.getElementById('EXTENSION').value != "") {
		result = false;
		errmsg += "Phone Extension is Invalid\n"
	}
	
	if (document.getElementById('email').value == "") {
		result = false;
		errmsg += "Email is Required\n"
	}
	
	if (!checkEmail(form.email.value,0)) {
		result = false;
		errmsg += "Email is Invalid\n"
    }

	// return true or false + error
  if (result) {
    return true;
  } else {
    alert(errmsg);
    return false;
  }
}
function checkLength(value) {
	if(value.search(/^.{2}.*/) == -1) {
		return false;
	}
	return true;
}
function checkEmail(emailStr,sprFlag) {
  // regex from http://xyfer.blogspot.com/2005/01/javascript-regexp-email-validator.html
  var reg =  /^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i
  if(reg.test(emailStr) == false) {
    return false;
  } else if  (emailStr == "test@test.com") {
	return false;
  }
  return true;
}

function validateArea(value)
    {
        if(value.search(/^[0-9]{3}$/) == -1)
        {
            return false;
        }       
        return true;
    }

function validatePhoneSuf(value)
    {
        if(value.search(/^[0-9]{4}$/) == -1)
        {
            return false;
        }       
        return true;
    }
	

function validatePhonePre(value)
    {
        if(value.search(/^[0-9]{3}$/) == -1)
        {
            return false;
        }       
        return true;
    }