var index = 0;
var FIRST_NAME                      = index++;
var LAST_NAME                       = index++;
var ADDRESS                         = index++;
var ADDRESS1                        = index++;
var ADDRESS2                        = index++;
var CITY                            = index++;
var STATE                           = index++;
var COUNTY                          = index++;
var CURRENT_ADDRESS                 = index++;
var CURRENT_CITY                    = index++;
var CURRENT_STATE                   = index++;
var PREVIOUS_ADDRESS                = index++;
var PREVIOUS_CITY                   = index++;
var PREVIOUS_STATE                  = index++;
var CONTACT_PREF                    = index++;
var MARITAL_STATUS                  = index++;
var RESIDENT_STATUS                 = index++;
var MONTHLY_RENT                    = index++;
var GROSS_MONTHLY_SALARY            = index++;
var DOWN_PAYMENT                    = index++;
var EMPLOYMENT_TITLE                = index++;
var EMPLOYER                        = index++;
var PREVIOUS_EMPLOYER               = index++;
var PREFERRED_COLOR                 = index++;
var EMAIL                           = index++;
var EMAIL_CONFIRM                   = index++;
var PHONE_HOME                      = index++;
var PHONE_EVE                       = index++;
var PHONE_OFFICE                    = index++;
var PHONE_DAY                       = index++;
var PHONE_PRIMARY                   = index++;
var PHONE_SECONDARY                 = index++;
var PHONE_EXT                       = index++;
var PHONE_EMPLOYER                  = index++;
var PHONE_PREVIOUS_EMPLOYER         = index++;
var PHONE_INSURANCE_AGENT           = index++;
var ZIP                             = index++;
var CURRENT_ZIP                     = index++;
var PREVIOUS_ZIP                    = index++;
var SSN                             = index++;
var CCN                             = index++;
var DURATION_CURRENT_EMPLOYMENT     = index++;
var DURATION_CURRENT_RESIDENCE      = index++;
var DURATION_PREVIOUS_RESIDENCE     = index++;
var DURATION_PREVIOUS_EMPLOYMENT    = index++;

var texts = new Array("First Name", "Last Name", "Address", "Address 1", "Address 2", "City", "State", "County",
  "Current Address", "City", "Current State", "Previous Address", "Previous City", "Previous State", "Contact Preference",
  "Marital Status", "Residency Status", "Monthly Rent or Mortgage", "Gross Monthly Salary", "Down Payment", "Title", "Name of Employer",
  "Name of Previous Employer", "Select a Color", "E-mail", "Confirm E-mail", "Home Phone Number", "Evening Phone Number",
  "Work Phone Number", "Day Phone Number", "Primary Phone", "Secondary Phone", "Phone Extension", "Employer Phone Number", "Previous Employer Phone Number", "Agent Phone Number",
  "Zip Code", "Current Zip Code", "Previous Zip Code", "Social Security Number", "Credit Card Number", " needs to be numeric", " cannot contain numbers");

var indent = "\n     -  ";

function display(info) {
  info = "________________________________________________\n" +
         " Please double-check and complete the field(s) listed below :\n" +
         info + "\n \n If you need help filling out these fields, feel free to contact \n our customer service department at 1 (800) 431-2500. \n" +
         "________________________________________________ ";
  alert(info);
  return false;
}

function displayPenske(info) {
  info = "________________________________________________\n" +
         " Please double-check and complete the field(s) listed below :\n" +
         info + "\n \n If you need help filling out these fields, feel free to contact \n our customer service department at 866.873.0222.\n" +
         "________________________________________________ ";
  alert(info);
  return false;
}

function displayLoanStore(info) {
   info = "________________________________________________\n" +
          " Please double-check and complete the field(s) listed below :\n" + info +
          "\n________________________________________________ ";
  alert(info);
  return false;
}

function validate(obj, field) {
  var info = "";
  if (!texts[field]) {
    info += trim(obj.value).length < 1 ? indent + field : "";
  }
  else if (field == STATE || field == CURRENT_STATE || field == PREVIOUS_STATE ||
    field == CONTACT_PREF || field == PREFERRED_COLOR) {
    if (obj[0].selected) info = indent + texts[field];
  }
  else if (field == EMAIL || field == EMAIL_CONFIRM) {
    info = validateEmail(obj, texts[field]);
  }
  else if (field == PHONE_HOME || field == PHONE_EVE || field == PHONE_OFFICE ||
    field == PHONE_PRIMARY || field == PHONE_SECONDARY ||
    field == PHONE_DAY || field == PHONE_EMPLOYER || field == PHONE_PREVIOUS_EMPLOYER ||
	field == PHONE_INSURANCE_AGENT) {
    info = validatePhone(obj, texts[field]);
  }
	else if (field == PHONE_EXT) info = validatePhoneExt(obj, texts[field]);
  else if (field == ZIP || field == CURRENT_ZIP || field == PREVIOUS_ZIP) {
    info = validateZip(obj, texts[field]);
  }
  else if (field == SSN) {
    info = validateSSN(obj, texts[field]);
  }
  else if (field == CCN) {
    info = validateCCN(obj, texts[field]);
  }
  else if ((field == FIRST_NAME || field == LAST_NAME) && (trim(obj.value).length < 2)) {
    info = validateCCN(obj, texts[field]);
  }
  else if (trim(obj.value).length < 1) return indent + texts[field];
  return info;
}

function validateCCN(obj, name) {
  var temp = clearWhiteSpace(obj.value);
  var info = "";

  if (temp.length < 10) return indent + name;
  if (!isNumeric(temp)) return indent + name + texts[texts.length-1];
  return info;
}

function validateSSN(obj, name) {
  var temp = clearWhiteSpace(obj.value);
  var info = "";

  if (temp.length != 9) return indent + name;
  if (!isNumeric(temp)) return indent + name + texts[texts.length-2];
  return info;
}

function validateZip(obj, name) {
  var temp = clearWhiteSpace(obj.value);
  var info = "";

  if (temp.length != 5 || temp == "00000") return indent + name;
  if (!isNumeric(temp)) return indent + name + texts[texts.length-2];
  return info;
}

function validateDuration(obj1, obj2, field) {
  var text = "How long at the previous address?";
  var info = "";

  if (field == DURATION_CURRENT_RESIDENCE) text = "How long at the current address?";
  else if (field == DURATION_PREVIOUS_EMPLOYMENT) text = "How long with previous employer?";
  else if (field == DURATION_CURRENT_EMPLOYMENT) text = "How long with this employer?";
  if (obj1[0].selected && obj2[0].selected) return indent + text;
  return info;
}

function validateDuration2(obj1, obj2, field) {
  var text = "How long at the previous address?";
  var info = "";

  if (field == DURATION_CURRENT_RESIDENCE) text = "How long at the current address?";
  else if (field == DURATION_PREVIOUS_EMPLOYMENT) text = "How long with previous employer?";
  else if (field == DURATION_CURRENT_EMPLOYMENT) text = "How long with this employer?";
  if ((!obj1.value || obj1.value == "") && (!obj2.value || obj2.value == "")) return indent + text;
  return info;
}

function validatePhone(obj, name) {
  var info = "", temp1 = clearWhiteSpace(obj.value), digits = "0123456789";

  for (i = 0; i < temp1.length; i++) {
    if (digits.indexOf(temp1.charAt(i)) == -1) return indent + name + texts[texts.length-2];
  }
  if (temp1.length != 10) return indent + name;
  return info;
}

function validatePhoneExt(obj, name) {
  var temp = clearWhiteSpace(obj.value);
  var info = "";

  if (temp.length > 0 && !isNumeric(temp)) return indent + name + texts[texts.length-2];
  return info;
}

function filterPhone(obj, name) {
  var phones = new Array("0000000","2222222", "3333333", "4444444", "5555555", "6666666", "7777777", "8888888", "9999999", "1234567", "7654321", "8675309");
  var areas = new Array("000","456", "500", "555", "900");
  var prefixes = new Array("000","411", "555", "911", "976");
  var temp = clearWhiteSpace(obj.value), info = "";
  var area = temp.substring(0, 3);
  var prefix = temp.substring(3, 6);
  var phone = temp.substring(3, 10);

  if (area.charAt(0) == '0' || area.charAt(0) == '1') return indent + texts[name];
  for (var i = 0; i < areas.length; i++) {
    if (area == areas[i]) return  indent + texts[name];
  }

  if (prefix.charAt(0) == '0' || prefix.charAt(0) == '1') return indent + texts[name];
  for (var i = 0; i < prefixes.length; i++) {
    if (prefix == prefixes[i]) return  indent + texts[name];
  }

  for (var i = 0; i < phones.length; i++) {
    if (phone == phones[i]) return  indent + texts[name];
  }

  return info;
}

function validateEmail(obj, name) {
  obj.value = trim(obj.value);
  var text = "Please make sure you have the " + name + "    \n        in correct format *****@*********.*** ";
  var temp = obj.value;
  var atSym = temp.indexOf('@');
  var atSymNext = temp.indexOf('@',atSym+1);
  var period = temp.lastIndexOf('.');
  var extra_periods = temp.indexOf('..');
  var space = temp.indexOf(' ');
  var info = "";

  if (temp.length < 1) return indent + name;
  if (atSym < 1 || atSymNext >= 0 || period <= atSym+1 || period == temp.length-1 || space != -1 || extra_periods != -1)
    return indent + text;
  return info;
}

function validateEmails(obj1, obj2) {
  var text = "The Email Address you have entered and the\n        confirmation email do not match. ";
  var temp1 = trim(obj1.value);
  var temp2 = trim(obj2.value);
  var info = "";
  
  info += validateEmail(obj1, texts[EMAIL]);
  info += validateEmail(obj2, texts[EMAIL_CONFIRM]);
  if (info.length < 1 && (temp1.toLowerCase() != temp2.toLowerCase()))
    return indent + text;
  return info;
}

function validateCCDate(expYear, expMonth) {
  var expErr = indent + "Incorrect expiration date. Please reenter.";
  var info = "";
  var today = new Date()
  var year = today.getYear();
  var month = today.getMonth() + 1;
  
  if(year < 1000) year += 1900;
  if ((month/10.0) < 1) month = '0' + month;
  expYear = expYear.options[expYear.selectedIndex].value;
  expMonth = expMonth.options[expMonth.selectedIndex].value;
  if ((year == expYear && expMonth < month) || year > expYear) info += expErr;
  return info;
}

function validateBDate(obj1, obj2, obj3) {
  var info = "";

  if (obj1[0].selected || obj2[0].selected || obj3[0].selected) return indent + "Birth Date";
  return info;
}

function validateNumeric(obj, item) {
  var info = "";
  obj.value = trim(obj.value);

  if (obj.value != "" && !isNumeric(obj.value)) info = indent + item + " needs to be numeric";
  return info;
}

function validateNonNumeric(obj, item) {
  var info = "";
  obj.value = trim(obj.value);

	for (i = 0; i < obj.value.length; i++){ 
		mychar = obj.value.charAt(i); 
		if ((mychar >= "0" && mychar <= "9")) {
			info = indent + item + texts[texts.length-1];
		}
	}
	return info;
} 


function validateChkBox(obj, item) {
  var info = "";
  if (!obj.checked) info = indent + item;
  return info;
}

function validateRate(obj, fieldText) {
  if (validate(obj, fieldText)) {
    return validate(obj, fieldText);  
  }
  obj.value = clearWhiteSpace(obj.value);
  if (!parseFloat(obj.value)) {
    return indent + fieldText + " needs to be numeric";  
  }
  else if (parseFloat(obj.value) > 99.99) {
    return indent + fieldText;
  }
  obj.value = parseFloat(obj.value);
  return "";
}
