// ESP Signup validation
function validateSignup() {

	// Setup
	result = true;
	form = document.getElementById('sun');
	errmsg = "";
	// Field by Field
	if (document.getElementById('firstname').value == "") {
		result = false;
		errmsg += "First Name is Required\n"
	}

	if (document.getElementById('lastname').value == "") {
		result = false;
		errmsg += "Last Name is Required\n"
	}

	if (document.getElementById('streetAddress').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 (document.getElementById('country').value == "") {
		result = false;
		errmsg += "Country is Required\n"
	}

	if (document.getElementById('primaryPhone').value == "") {
		result = false;
		errmsg += "Phone is Required\n"
	}
	
	if (!validatePhone(document.getElementById('primaryPhone').value)) {
		result = false;
		errmsg += "Not a valid phone number\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"
  }
	
	if (document.getElementById('facilityOwnership').value == "") {
		result = false;
		errmsg += "Do you own your home? is Required\n"
	}
	
	if (document.getElementById('averageBill').value == "") {
		result = false;
		errmsg += "Average monthly electricity bill is Required\n"
	}
	// return true or false + error
	if (result) {
	    // canonicalize ownFlag
	    //if (document.getElementById('ownFlag').checked==false) {
	    //    document.getElementById('ownFlag').value = 'No';
	    //}
	    //alert(document.getElementById('ownFlag').value);
		return true;
		//window.location = document.getElementById('thankyouRedirect').value;
	} 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(/^\(?[0-9]{3}\)?[- ]?[0-9]{3}[- ]?[0-9]{4}$/) == -1 && value.search(/^\+?[0-9]{3}[- ]?[0-9]{3}[- ]?[0-9]{3}[-]?[0-9]{3}$/) == -1)
        {
            return false;
        }       
        return true;
    }

// CheckState - display warning note if not in target state
function checkState(selected) {
  //alert(selected);
  validStates = new Array(
'AR',
'AZ',
'CA',
'CO',
'CT',
'DE',
'FL',
'GA',
'HI',
'KY',
'LA',
'MA',
'MD',
'ME',
'NC',
'NJ',
'NM',
'NV',
'NY',
'OH',
'OR',
'PA',
'RI',
'SC',
'TN',
'TX',
'VA',
'VT',
'WI'
  );
  var status = false;
  for (state in validStates) {
    //alert(selected+', '+validStates[state]);
    if (selected == validStates[state]) {
      status = true;
    }
  }
  //alert(status);
  if (!status) {
    //alert('activating '+noteDiv);
    document.getElementById('thankyouPage').value = document.getElementById('thankyouBase').value + '?status=false';
    document.getElementById('thankyouEmailTemplate').value = 'EN-B2C-Status-False';
  } else {
    //alert('deactivating '+noteDiv);
    document.getElementById('thankyouPage').value = document.getElementById('thankyouBase').value + '?status=true';    
    document.getElementById('thankyouEmailTemplate').value = 'EN-B2C-Status-True';
  }
}
