// General JavaScript helper functions

function mail_addr(address) {
// takes the address and generates an email address based upon "m a i l t o : address @ e x t r a v i e w . c o m"
var pre = "mail";
var add = pre + "to:" + address;
document.location.href = add + "@" + "extraview.com";
return;
}

//////////////////////////////////////////////////
function highlightField(fld)
{
  var x = document.getElementById(fld);
  x.style.backgroundColor = '#FAD283';
}

//////////////////////////////////////////////////
function unHighlightField(fld)
{
  var x = document.getElementById(fld);
  x.style.backgroundColor = '#FFFFFF';
}

//////////////////////////////////////////////////
function setState(button)
{
  if (document.submitForm.btn.value == "Please wait")
  {
    alert("The form has been submitted already.  Please wait.");
    return;
  }

  // check that email fields match
  if (! (document.submitForm.email.value == document.submitForm.email_confirm.value) )
  {
    alert("Your Email and Confirm Email entries must match exactly.");
    highlightField(document.submitForm.email.name);
    highlightField(document.submitForm.email_confirm.name);
	return;
  }
  else
  {
    unHighlightField(document.submitForm.email.name);
    unHighlightField(document.submitForm.email_confirm.name);
  }

  var errString = "";
  var emptyString = /^\s*$/;

  // validate first name
  if ( emptyString.test(document.submitForm.FirstName.value) )
  {
    errString = "\n- First Name";
    highlightField(document.submitForm.FirstName.name);
  }
  else
  {
    unHighlightField(document.submitForm.FirstName.name);
  }

  // validate last name
  if ( emptyString.test(document.submitForm.LastName.value) )
  {
    errString = errString + "\n- Last Name";
    highlightField(document.submitForm.LastName.name);
  }
  else
  {
    unHighlightField(document.submitForm.LastName.name);
  }

  // validate company
  if ( emptyString.test(document.submitForm.Company.value) )
  {
    errString = errString + "\n- Company";
    highlightField(document.submitForm.Company.name);
  }
  else
  {
    unHighlightField(document.submitForm.Company.name);
  }

  // validate street address
  if ( emptyString.test(document.submitForm.Address1.value) )
  {
    errString = errString + "\n- Street Address";
    highlightField(document.submitForm.Address1.name);
  }
  else
  {
    unHighlightField(document.submitForm.Address1.name);
  }

  // validate city
  if ( emptyString.test(document.submitForm.City.value) )
  {
    errString = errString + "\n- City";
    highlightField(document.submitForm.City.name);
  }
  else
  {
    unHighlightField(document.submitForm.City.name);
  }

  // validate state
  if ( emptyString.test(document.submitForm.State.value) )
  {
    errString = errString + "\n- State";
    highlightField(document.submitForm.State.name);
  }
  else
  {
    unHighlightField(document.submitForm.State.name);
  }

  // validate zip
  if ( emptyString.test(document.submitForm.Zip.value) )
  {
    errString = errString + "\n- Zip/Postal Code";
    highlightField(document.submitForm.Zip.name);
  }
  else
  {
    unHighlightField(document.submitForm.Zip.name);
  }

  // validate country
  if ( emptyString.test(document.submitForm.Country.value) )
  {
    errString = errString + "\n- Country";
    highlightField(document.submitForm.Country.name);
  }
  else
  {
    unHighlightField(document.submitForm.Country.name);
  }

  // validate phone
  if ( emptyString.test(document.submitForm.Phone.value) )
  {
    errString = errString + "\n- Phone";
    highlightField(document.submitForm.Phone.name);
  }
  else
  {
    unHighlightField(document.submitForm.Phone.name);
  }

  // validate website
  if ( emptyString.test(document.submitForm.company_website.value) )
  {
    errString = errString + "\n- Company Website";
    highlightField(document.submitForm.company_website.name);
  }
  else
  {
    unHighlightField(document.submitForm.company_website.name);
  }

  // validate email
  if ( emptyString.test(document.submitForm.email.value) )
  {
    errString = errString + "\n- Your Email";
    highlightField(document.submitForm.email.name);
  }
  else
  {
    unHighlightField(document.submitForm.email.name);
  }

  // validate confirm email
  if ( emptyString.test(document.submitForm.email_confirm.value) )
  {
    errString = errString + "\n- Confirm Email";
    highlightField(document.submitForm.email_confirm.name);
  }
  else
  {
    unHighlightField(document.submitForm.email_confirm.name);
  }

  // Check for valid email 
  var email = document.submitForm.email.value;
  var pattern = /^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;  

  if (! pattern.test(email) )
  {
    errString += "\n- Email address is not formatted correctly";
    highlightField(document.submitForm.email.name);
    highlightField(document.submitForm.email_confirm.name);
  }
  else
  {
    unHighlightField(document.submitForm.email.name);
    unHighlightField(document.submitForm.email_confirm.name);
  }

  // Check that email is from a company domain
  pattern = /yahoo|hotmail|comcast|gmail|msn|comcast|earthlink|aol|sbcglobal|bellsouth|verizon|live.com|mailinator.com|mailinator2.com|sogetthis.com|mailinator.net|spamherelots.com|thisisnotmyrealemail.com/i;
  if ( pattern.test(email) )
  {
    errString += "\n- Email address must be from your company domain";
  }

  if (document.submitForm.Country.value.toUpperCase() == "JAPAN")
  {
    alert("Applications from the country of Japan will take one additional business day to process.");
  }

  if (typeof(document.submitForm.Accept_License) != 'undefined') {
    if (! document.submitForm.Accept_License.checked)
    {
      errString = errString + "\n- Acceptance of License Agreement";
    } else {
      highlightField(document.submitForm.Accept_License.name);
    }
  }

  if(document.submitForm.checkField.value != "") {
  	errString = "\n This appears to be a robot";
  }
	
  if (errString != "")
  {
    alert("The following fields must be completed: " + errString);
  }
  else
  {
    // valid form, submit
	document.submitForm.btn.value = "Please wait";
	document.submitForm.submit();
  }
}

//////////////////////////////////////////////////
function setContactState(button)
{
  if (document.submitForm.btn.value == "Please wait")
  {
    alert("The form has been submitted already.  Please wait.");
    return;
  }

  var errString = "";
  var emptyString = /^\s*$/;

  // validate first name
  if ( emptyString.test(document.submitForm.FirstName.value) )
  {
    errString = "\n- First Name";
    highlightField(document.submitForm.FirstName.name);
  }
  else
  {
    unHighlightField(document.submitForm.FirstName.name);
  }

  // validate last name
  if ( emptyString.test(document.submitForm.LastName.value) )
  {
    errString = errString + "\n- Last Name";
    highlightField(document.submitForm.LastName.name);
  }
  else
  {
    unHighlightField(document.submitForm.LastName.name);
  }

  // validate company
  if ( emptyString.test(document.submitForm.Company.value) )
  {
    errString = errString + "\n- Company";
    highlightField(document.submitForm.Company.name);
  }
  else
  {
    unHighlightField(document.submitForm.Company.name);
  }

  // validate phone
  if ( emptyString.test(document.submitForm.Phone.value) )
  {
    errString = errString + "\n- Phone";
    highlightField(document.submitForm.Phone.name);
  }
  else
  {
    unHighlightField(document.submitForm.Phone.name);
  }

  // validate email
  if ( emptyString.test(document.submitForm.email.value) )
  {
    errString = errString + "\n- Your Email";
    highlightField(document.submitForm.email.name);
  }
  else
  {
    unHighlightField(document.submitForm.email.name);
  }

  // Check for valid email 
  var email = document.submitForm.email.value;
  var pattern = /^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;  

  if (! pattern.test(email) )
  {
    errString += "\n- Email address is not formatted correctly";
    highlightField(document.submitForm.email.name);
  }
  else
  {
    unHighlightField(document.submitForm.email.name);
  }

  // validate request
  if ( emptyString.test(document.submitForm.description.value) )
  {
    errString = errString + "\n- Request";
    highlightField(document.submitForm.description.name);
  }
  else
  {
    unHighlightField(document.submitForm.description.name);
  }

  if(document.submitForm.checkField.value != "") {
  	errString = "\n This appears to be a robot";
  }
	
  if (errString != "")
  {
    alert("The following fields must be completed: " + errString);
  }
  else
  {
    // valid form, submit
	document.submitForm.btn.value = "Please wait";
	document.submitForm.submit();
  }
}
