// Referral Landing page validation
function validateSignup() {

	// Setup
  var result = true;
  var form = document.getElementById('the_form');
  var errmsg = "Required information:\n\n";
	
	// Field by Field
	var friends_email = document.getElementsByName('friends_email[]');
	var friends_name = document.getElementsByName('friends_name[]');
	for(var i=0; i<friends_email.length; i++) {
		if (friends_email[i].value == "") {
		result = false;
		errmsg += "Your friend's email, please? \n"
		}
		
		if (!checkEmail(friends_email[i].value,0)) {
			result = false;
			errmsg += "Oops. There's a problem with your friend's email address. Please try re-entering it. By the way, their email will not be used for any other purpose.\n"
	    }

		if (friends_name[i].value == "") {
			result = false;
			errmsg += "Your friend's name, please? We just want to personalize the eCard you're sending. Don't worry, we won't use it for any other purpose.\n"
		}
	}
	
	
	if (document.getElementById('firstname').value == "") {
		result = false;
		errmsg += "Your first name, please? We just want to email you if your friend signs up for a solar evaluation or purchases a SunPower system.\n"
	}
	
	if (document.getElementById('lastname').value == "") {
		result = false;
		errmsg += "What's your last name? We want to thank you personally for helping us spread the word about solar power.\n"
	}

	if (document.getElementById('address1').value == "") {
		result = false;
		errmsg += "Street Address is Required\n"
	}

	if (document.getElementById('city').value == "") {
		result = false;
		errmsg += "City is Required\n"
	}

	if (document.getElementById('state').value == "") {
		result = false;
		errmsg += "State is Required\n"
	}

	if (document.getElementById('zip').value == "") {
		result = false;
		errmsg += "Zip Code is Required\n"
	}
	
	if (!validateZip(form.zip.value,0)) {
		result = false;
		errmsg += "Apologies  -  there's a problem with your zip code. Please try re-entering it.\n"
    }
	
	if (document.getElementById('email').value == "") {
		result = false;
		errmsg += "What's your email address, please?\n"
	}
	
	if (!checkEmail(form.email.value,0)) {
		result = false;
		errmsg += "Apologies  -  there's a problem with your email address. Please try re-entering it.\n"
    }
	
	if (document.getElementById('phone').value == "") {
		result = false;
		errmsg += "What's your phone number, please?\n"
	}
	
	if (!validatePhone(document.getElementById('phone').value)) {
		result = false;
		errmsg += "Apologies  -  there's a problem with your phone number. Please try re-entering it.\n"
	}
	
	if ((document.getElementById('message').value.length > 250)) {
		result = false;
		errmsg += "Apologies  -  The character limit is 250.\n"
	}
	
	// return true or false + error
  if (result) {
    return true;
  } else {
    alert(errmsg);
    return false;
  }
}

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 validatePhone(value)
    {
        if(value.search(/^(\+1\ )?\(?[0-9]{3}\)?[- ]?[0-9]{3}[- ]?[0-9]{4}$/) == -1)
        {
            return false;
        }       
        return true;
    }

function validateZip(value) {
	if ((value.search(/^[0-9]{5}(-[0-9]{4})?$/) ==
-1)&&(value.search(/^[a-zA-Z][0-9][a-zA-Z].[0-9][a-zA-Z][0-9]/) == -1))
        {
            return false;
        }
        
        return true;

}

