/* 
** Javascript functions for the tenants section 
*/

function CheckEmailAddress(str)
{
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1){
	   alert("Please enter a valid e-mail address.")
	   return false
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   alert("Please enter a valid e-mail address.")
	   return false
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		alert("Please enter a valid e-mail address.")
		return false
	}

	 if (str.indexOf(at,(lat+1))!=-1){
		alert("Please enter a valid e-mail address.")
		return false
	 }

	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		alert("Please enter a valid e-mail address.")
		return false
	 }

	 if (str.indexOf(dot,(lat+2))==-1){
		alert("Please enter a valid e-mail address.")
		return false
	 }
	
	 if (str.indexOf(" ")!=-1){
		alert("Please enter a valid e-mail address.")
		return false
	 }

	 return true					
}

function initialCap(field) {
	  var lowercase = field.value.toLowerCase();
      var words = lowercase.split(" ");
      for (var i = 0; i < words.length; i++)
      {
         words[i] = words[i].substr(0, 1).toUpperCase() + words[i].substr(1);
      }
      field.value = words.join(" ");
}

function initialCapFirstLetter(field) {
   field.value = field.value.substr(0, 1).toUpperCase() + field.value.substr(1);
}

function formatSSNFirst3(field) {
	if(field.value.length == 3) { field.value = field.value + "-XX-XXXX"; }
}

function formatSSNLast4(field) {
	if(field.value.length == 4) { field.value = "XXX-XX-" + field.value; }
}

function formatLicenseFirst3(field) {
	if(field.value.length == 3) { field.value = field.value + "XXXXXX"; }
}

function formatLicenseLast4(field) {
	if(field.value.length == 4) { field.value = "XXXXX" + field.value; }
}

/* Tenants: Validate SSN */
function CheckSSN(formfield,checkType)
{
     var theCount = 0;
     var theString = formfield.value;
     var newString = "";
     var myString = theString;
     var theLen = myString.length;
     for ( var i = 0 ; i < theLen ; i++ )
     {
     // Character codes for ints 1 - 9 are 48 - 57
          if ( ((myString.charCodeAt(i) >= 48 ) && (myString.charCodeAt(i) <= 57)) || (myString.charCodeAt(i) == 88) )
          newString = newString + myString.charAt(i);   
     }
	// Now the validation to determine that the remaining string is 9 characters.
     if (newString.length == 9 )
     {
		  // Now the string has been stripped of other chars it can be reformatted to ###-##-#### 
          var newLen = newString.length;
          var newSSN = "";
          for ( var i = 0 ; i < newLen ; i++ )
          {
               if ( ( i == 2 ) || ( i == 4 ) )
               {
                    newSSN = newSSN + newString.charAt(i) + "-";
               }else{
                    newSSN = newSSN + newString.charAt(i);
               }
          }
          formfield.value = newSSN;
          return true;
     }else{
		 if(checkType == 3) { var checkText = "first 3 digits of your"; } else { var checkText = "last 4 digits of the tenant's"; }
          //alert("The social security number you entered '"+theString+"' does not contain the correct number of digits.\n\nPlease enter it in the following format: ###-##-####");
          alert("Please enter the " + checkText + " social security number.");
		  formfield.focus();
          return false;
     }
}

/* Tenants: Validate Phone */
function CheckPhoneNumber(formfield)
{
     var theCount = 0;
     var theString = formfield.value;
     var newString = "";
     var myString = theString;
     var theLen = myString.length;
     for ( var i = 0 ; i < theLen ; i++ )
     {
     // Character codes for ints 1 - 9 are 48 - 57
          if ( (myString.charCodeAt(i) >= 48 ) && (myString.charCodeAt(i) <= 57) )
          newString = newString + myString.charAt(i);   
     }
	// Now the validation to determine that the remaining string is 9 characters.
     if (newString.length == 10 )
     {
		  // Now the string has been stripped of other chars it can be reformatted to ###-##-#### 
          var newLen = newString.length;
          var newPhone = "";
          for ( var i = 0 ; i < newLen ; i++ )
          {
               if ( ( i == 2 ) || ( i == 5 ) )
               {
                    newPhone = newPhone + newString.charAt(i) + "-";
               }else{
                    newPhone = newPhone + newString.charAt(i);
               }
          }
          formfield.value = newPhone;
          return true;
     }else{
          alert("The phone number you entered '"+theString+"' does not contain the correct number of digits.\n\nPlease enter it in the following format: ###-###-####");
          formfield.focus();
          return false;
     }
}

/* Tenants: Format Phone Number */
function tenantFormatPhoneNumber(isField){

isPhone = isField.value;
if (isPhone.length == 10)
{isPhone = isPhone.replace(/\D/g,'').replace(/^(\d{3})(\d{3})/,'$1-$2-');isField.value = isPhone;}
else if (isPhone.length < 12 || isPhone.length > 12 || isNaN(isPhone))
{
//alert('Invalid phone number');
//isField.focus();
}
}

function validateZIP(field) {
var field = field.value;
var valid = "0123456789-";
var hyphencount = 0;

if (field.length!=5 && field.length!=10) {
alert("Please enter your 5 digit or 5 digit+4 zip code.");
return false;
}
for (var i=0; i < field.length; i++) {
temp = "" + field.substring(i, i+1);
if (temp == "-") hyphencount++;
if (valid.indexOf(temp) == "-1") {
alert("Invalid characters in your zip code.  Please try again.");
return false;
}
if ((hyphencount > 1) || ((field.length==10) && ""+field.charAt(5)!="-")) {
alert("The hyphen character should be used with a properly formatted 5 digit + four zip code, like '12345-6789'.   Please try again.");
return false;
   }
}
return true;
}

function validateDateComparison(SDate,EDate,DateText){
	var endDate = Date.parse(EDate);
	var startDate = Date.parse(SDate);
	
	if(startDate > endDate)
		{
		alert("Please ensure that the " + DateText + " end date is greater than or equal to the " + DateText + " start date.");
		return false;
	}
}

function validateTodaysDate(dateValue,dateText)
{
	var startDate = Date.parse(dateValue);
	var endDate = new Date();
	
	if(startDate > endDate)
		{
		alert("Please ensure that the " + dateText + " is not later than today's date.");
		return false;
	}
}

function validateNameField(field)
{
	var v=field.value;
	var rx=/^[a-z\s\'\-]*$/i;
	if(!rx.test(v)) { alert("The first, middle and last name fields may only contain letters."); return false; }
	else { return true; }
	return false;
}

/* Tenants: Search Engine */
function tenantSearch(form)
{
	var count = 0;
	
	// Tenant Name
	if ((form.fn.value != "" || form.mi.value != "") && form.ln.value != "") { count++; }
	if (form.ln.value != "") { count++; }
	if (form.phone.value != "") { count = 2; if (CheckPhoneNumber(form.phone)==false){ form.phone.focus(); return false; } }
	if (form.ssn.value != "") { count++; if (CheckSSN(form.ssn,4)==false){ form.ssn.focus(); return false; } }
	if (form.license.value != "") { count++; }
	if (validateNameField(form.fn) == false) { form.fn.focus(); return (false); }
	if (validateNameField(form.mi) == false) { form.mi.focus(); return (false); }
	if (validateNameField(form.ln) == false) { form.ln.focus(); return (false); }
	if (count < 2) { alert("You must fill in at least 2 fields before searching.\nYou may also search just by the Mobile Phone Number."); return (false); }

  return (true);
}

/* Tenants: Search Engine */
function tenantSearchClear()
{
	// Tenant Name
	document.getElementById("fn").value = "";
	document.getElementById("mi").value = "";
	document.getElementById("ln").value = "";
	document.getElementById("phone").value = "";
	document.getElementById("ssn").value = "";
	document.getElementById("license").value = "";
}

/* Tenants: Validate Add/Edit Page */
function tenantValidateDiscussion(form)
{
	// Tenant Name
	if (form.discussion_reply.value == "") { alert("Please enter some text for your reply."); form.discussion_reply.focus(); return (false);}
	if (form.discussion_agreement.checked == false) { alert("You must agree to the Terms of Use to submit your reply."); return (false);}

  return (true);
}

/* Tenants: Validate Add/Edit Page */
function tenantValidateFlagAdd(form)
{
	// Generate the birth date
	var birthdate = form.flag_birthdate_Month.value + "/" + form.flag_birthdate_Day.value + "/" + form.flag_birthdate_Year.value;

	// Tenant Name
	if (form.flag_firstname.value == "") { alert("Please enter your first name."); form.flag_firstname.focus(); return (false);}
	if (form.flag_lastname.value == "") { alert("Please enter your last name."); form.flag_lastname.focus(); return (false);}
	if (form.flag_telephone.value == "") { alert("Please enter your phone number."); form.flag_telephone.focus(); return (false);}
	if (CheckPhoneNumber(form.flag_telephone)==false){ form.flag_telephone.focus(); return false; }
	if (form.flag_emailaddress.value == "") { alert("Please enter your email address."); form.flag_emailaddress.focus(); return (false);}
	if (CheckEmailAddress(form.flag_emailaddress.value)==false){ form.flag_emailaddress.focus(); return false; }
	if (form.flag_emailaddress_confirm.value != form.flag_emailaddress.value) { alert("Your e-mail address (confirmation) is incorrect."); form.flag_emailaddress_confirm.focus(); return (false);}
	if (form.flag_street_address.value == "") { alert("Please enter your address."); form.flag_street_address.focus(); return (false);}
	if (form.flag_street_city.value == "") { alert("Please enter your city."); form.flag_street_city.focus(); return (false);}
	if (form.flag_street_state.value == "") { alert("Please enter your state."); form.flag_street_state.focus(); return (false);}
	if (form.flag_street_zipcode.value == "") { alert("Please enter your zip code."); form.flag_street_zipcode.focus(); return (false);}
	if (validateZIP(form.flag_street_zipcode)==false) { form.flag_street_zipcode.focus(); return false; }
	//if (form.flag_mailing_address.value == "") { alert("Please enter your mailing address."); form.flag_mailing_address.focus(); return (false);}
	//if (form.flag_mailing_city.value == "") { alert("Please enter your mailing city."); form.flag_mailing_city.focus(); return (false);}
	//if (form.flag_mailing_state.value == "") { alert("Please enter your mailing state."); form.flag_mailing_state.focus(); return (false);}
	//if (form.flag_mailing_zipcode.value == "") { alert("Please enter your mailing zip code."); form.flag_mailing_zipcode.focus(); return (false);}
	if (form.flag_ssn.value == "") { alert("Please enter the first 3 digits of your social security number."); form.flag_ssn.focus(); return (false);}
	if (form.flag_ssn.value != "") { if(CheckSSN(form.flag_ssn,3)==false){ form.flag_ssn.focus(); return false; } }
	if (form.flag_driverslicense.value.length != 9) { alert("Please enter the last 4 digits of your drivers license."); form.flag_driverslicense.focus(); return (false);}
	if (form.flag_birthdate_Month.value == "") { alert("Please enter your date of birth (month)."); form.flag_birthdate_Month.focus(); return (false);}
	if (form.flag_birthdate_Day.value == "") { alert("Please enter your date of birth (day)."); form.flag_birthdate_Day.focus(); return (false);}
	if (form.flag_birthdate_Year.value == "") { alert("Please enter your date of birth (year)."); form.flag_birthdate_Year.focus(); return (false);}
	if (validateTodaysDate(birthdate,"birth date")==false){ return (false);}
	if (form.flag_reason.value == "") { alert("Please enter a reason for removal."); form.flag_reason.focus(); return (false);}
	if (form.flag_agreement.checked == false) { alert("You must agree to the Terms of Use to submit your request."); return (false);}

  return (true);
}

/* Tenants: Validate Add/Edit Page */
function tenantValidateInquiryAdd(form)
{
	// Tenant Name
	//if (form.inquiry_firstname.value == "") { alert("Please enter your first name."); form.inquiry_firstname.focus(); return (false);}
	//if (form.inquiry_lastname.value == "") { alert("Please enter your last name."); form.inquiry_lastname.focus(); return (false);}
	//if (form.inquiry_telephone.value == "") { alert("Please enter your phone number."); form.inquiry_telephone.focus(); return (false);}
	if (form.inquiry_emailaddress.value == "") { alert("Please enter your email address."); form.inquiry_emailaddress.focus(); return (false);}
	if (CheckEmailAddress(form.inquiry_emailaddress.value)==false){ form.inquiry_emailaddress.focus(); return false; }
	if (form.inquiry_emailaddress_confirm.value != form.inquiry_emailaddress.value) { alert("Your e-mail address (confirmation) is incorrect."); form.inquiry_emailaddress_confirm.focus(); return (false);}
	//if (form.inquiry_telephone.value != "") { if(CheckPhoneNumber(form.inquiry_telephone)==false){ form.inquiry_telephone.focus(); return false; } }
	//if (form.inquiry_address.value == "") { alert("Please enter your address."); form.inquiry_address.focus(); return (false);}
	//if (form.inquiry_city.value == "") { alert("Please enter your city."); form.inquiry_city.focus(); return (false);}
	//if (form.inquiry_state.value == "") { alert("Please enter your state."); form.inquiry_state.focus(); return (false);}
	//if (form.inquiry_zipcode.value == "") { alert("Please enter your zip code."); form.inquiry_zipcode.focus(); return (false);}
	if (form.inquiry_reason.value == "") { alert("Please enter a reason for removal."); form.inquiry_reason.focus(); return (false);}
	if (form.inquiry_agreement.checked == false) { alert("You must agree to the Terms of Use to submit your request."); return (false);}

  return (true);
}

/* Tenants: Validate Add/Edit Page */
function tenantValidateSubmission(form)
{
	// Generate the birth date
	var birthdate = form.tenant_birthdate_Month.value + "/" + form.tenant_birthdate_Day.value + "/" + form.tenant_birthdate_Year.value;
	var occStartDate = form.tenant_occupancy_start_Month.value + "/" + form.tenant_occupancy_start_Day.value + "/" + form.tenant_occupancy_start_Year.value;
	var occEndDate = form.tenant_occupancy_end_Month.value + "/" + form.tenant_occupancy_end_Day.value + "/" + form.tenant_occupancy_end_Year.value;
	
	var objRegExp  = /^[a-z]+$/;
	var testFirstName = form.tenant_firstname.value;
	var testLastName = form.tenant_lastname.value;
	
	// Tenant Name
	if (form.tenant_firstname.value == "") { alert("Please enter the tenant's first name."); form.tenant_firstname.focus(); return (false);}
	if (objRegExp.test(testFirstName.toLowerCase()) === false) { alert("Only one first name allowed and no symbols or numbers. Please create additional records for aka or aliases' names."); form.tenant_firstname.focus(); return (false);}
	
	if (form.tenant_lastname.value == "") { alert("Please enter the tenant's last name."); form.tenant_lastname.focus(); return (false);}
	if (objRegExp.test(testLastName.toLowerCase()) === false) { alert("Only one last name allowed and no symbols or numbers. Please create additional records for aka or aliases' names."); form.tenant_lastname.focus(); return (false);}
	
	//if (form.tenant_firstname.value == "") { alert("Please enter the tenant's first name."); form.tenant_firstname.focus(); return (false);}
	//if (form.tenant_lastname.value == "") { alert("Please enter the tenant's last name."); form.tenant_lastname.focus(); return (false);}
	
	if (validateNameField(form.tenant_firstname) == false) { form.tenant_firstname.focus(); return (false); }
	if (validateNameField(form.tenant_middleinitial) == false) { form.tenant_middleinitial.focus(); return (false); }
	if (validateNameField(form.tenant_lastname) == false) { form.tenant_lastname.focus(); return (false); }
	if (form.tenant_birthdate_Month.value != "" && form.tenant_birthdate_Day.value != "" && form.tenant_birthdate_Year.value != "") { if (validateTodaysDate(birthdate,"birth date")==false){ return (false);} }
	if (form.tenant_mobilephone.value != "") { if (CheckPhoneNumber(form.tenant_mobilephone)==false){ form.tenant_mobilephone.focus(); return false; } }
	if (form.tenant_ssn.value != "") { if (CheckSSN(form.tenant_ssn,4)==false){ form.tenant_ssn.focus(); return false; } }
	if (form.tenant_driverslicense.value != "") { if (form.tenant_driverslicense.value.length != 9) { alert("Please enter the first 3 digits of the tenant's drivers license."); form.tenant_driverslicense.focus(); return (false);} }
	if (!form.tenant_gender[0].checked && !form.tenant_gender[1].checked && !form.tenant_gender[2].checked) { alert("Please enter the tenant's gender."); return (false);}
	if (form.tenant_race.value == "") { alert("Please enter the tenant's race."); form.tenant_race.focus(); return (false);}
	if (form.tenant_haircolor.value == "") { alert("Please enter the tenant's hair color."); form.tenant_haircolor.focus(); return (false);}
	if (form.tenant_eyecolor.value == "") { alert("Please enter the tenant's eye color."); form.tenant_eyecolor.focus(); return (false);}
	if (form.tenant_property_address.value == "") { alert("Please enter the property address."); form.tenant_property_address.focus(); return (false);}
	if (form.tenant_property_city.value == "") { alert("Please enter the property city."); form.tenant_property_city.focus(); return (false);}
	if (form.tenant_property_state.value == "") { alert("Please enter the property state."); form.tenant_property_state.focus(); return (false);}
	if (validateZIP(form.tenant_property_zipcode)==false) { form.tenant_property_zipcode.focus(); return false; }
	if (form.tenant_occupancy_start_Month.value != "" && form.tenant_occupancy_start_Day.value != "" && form.tenant_occupancy_start_Year.value != "") { if (validateTodaysDate(occStartDate,"occupancy start date")==false){ return (false);} }
	//if (form.tenant_occupancy_end_Month.value != "" && form.tenant_occupancy_end_Day.value != "" && form.tenant_occupancy_end_Year.value != "") { if (validateDateComparison(occStartDate,occEndDate,"occupancy")==false){ return (false);} }
	if (form.tenant_agreement.checked == false) { alert("You must agree to the Terms of Use to submit your request."); return (false);}

  return (true);
}

/* Tenants: Validate Add/Edit Page */
function tenantValidateAccount(form)
{
	var getLength = form.owner_password.value;
	
	// Tenant Name
	if(form.owner_password.value != "")
	{
		if (getLength.length < 5) { alert("Your password must be at least 5 characters in length."); form.owner_password.focus(); return (false);}
		if (form.owner_password.value != form.owner_password_confirm.value) { alert("Your password and confirmation do not match."); form.owner_password_confirm.focus(); return (false);}
	}
	if (form.owner_agreement.checked == false) { alert("You must agree to the Terms of Use to submit your request."); return (false);}
	
  return (true);
}

function tenantValidateLogin(form)
{
	if (form.login_agreement.checked == false) { alert("You must agree to the Terms of Use to submit your request."); return (false);}
	
  return (true);
}

function tenantValidateLogin(form)
{
	if (form.login_agreement.checked == false) { alert("You must agree to the Terms of Use to submit your request."); return (false);}
	
  return (true);
}

function tenantValidateResend(form)
{
	if (form.agreement.checked == false) { alert("You must agree to the Terms of Use to submit your request."); return (false);}
	
  return (true);
}
