//coreg.process.pricematch.js
function f_formValidate(f) {
  //zero some fields for re-processing:
  f.vuser.value = "";
  f.hphone.value = "";

  var urlString = f.action + "?";
  // validate entries, use logic on required and other fields.
  with(f) {
    if (Empty(fname,"First name is required","text",2,15)) return false;
    if (Empty(lname,"Last name is required","text",2,20)) return false;

    if (Empty(email,"Email address is required","text, numbers, and other characters",6,50)) return false;
    if (!ValidEmail(email)) return false;

	if (Empty(workPhoneAreaCode,"Area code is required","numbers",3,5)) return false;
	if (Empty(workPhoneNumber,"Phone number is required","numbers",6,7))return false;

    if (Empty(recordLocator,"UA reservation #","text and numbers",6,6)) return false;
    if (!ValidSelect("originFlightMonth","Month of travel", 1)) return false;
    if (!ValidSelect("originFlightDay","Day of travel", 1)) return false;

    if (Empty(originFlightNumber,"Flight number (origin) is required","numbers",1,4)) return false;
    if (Empty(originFromCityCode,"From (city code) is required","text",3,3)) return false;
    if (Empty(originToCityCode,"To (city code) is required","text",3,3)) return false;
    if (Empty(numberTravelers,"Number of travelers is required","numbers",1,1)) return false;
    if (Empty(competingFare,"Competing fare is required","numbers and other characters",2,8)) return false;
    if (Empty(competitorWebSite,"Competitor Web site is required","text, numbers, and other characters",3,35)) return false;
	if (f_bad_websites(competitorWebSite)) return false;
  }

  // generate unique vuser base value
  var t_vuser = "" + "rnd=" + (Math.round((Math.random()*999)+1) + "|");

  if (f.vuser.value.length == 0) f.vuser.value = t_vuser;

  // assemble dynamic destination
  for (i=0; i< f.length; i++) {
    var g = f.elements[i];
    if (g.id.charAt(0) != "x") {//&& g.value != null  && g.value != ""
      // these fields are literals for use in coreg that must be escaped
      if (g.id == "fname"
        || g.id == "lname"
        || g.id == "failureURL"
        || g.id == "targetURL"
      ) {
        urlString += g.name+ "=" + escape(g.value) + "&";
      }
      // these fields are not to be included at all
      else if (g.type != "text" && g.type != "hidden" && g.type != "select" && g.type != "select-one") {
        // do nothing here
      }
      // these fields get added to hidden fields
      else if (g.name == "workPhoneAreaCode"
        || g.name == "workPhoneNumber"
        || g.name == "workPhoneExtension"
      ) {
        f.hphone.value += g.value == "" ? "" : g.value + "-";
      }
      // these fields are to be appended in the vuser field
      else if (g.name == "lname2"
        || g.name == "mpNumber"
        || g.name == "recordLocator"
        || g.name == "originFlightNumber"
        || g.name == "originFromCityCode"
        || g.name == "originToCityCode"
        || g.name == "returnFlightNumber"
        || g.name == "returnFromCityCode"
        || g.name == "returnToCityCode"
        || g.name == "numberTravelers"
        || g.name == "competingFare"
        || g.name == "competitorWebSite"
        || g.name == "originFlightMonth"
        || g.name == "originFlightDay"
        || g.name == "returnFlightMonth"
        || g.name == "returnFlightDay"
        || g.name == "cabin"
      ) {
        var s = g.type == "select" || g.type == "select-one" ? g[g.selectedIndex].value : g.value;
        if (g.id == "competitorWebSite") s = escape(s);
        if (s == "") s = "[blank]";
        f.vuser.value += s + "|";
      }
      // this field gets special handling
      else if (g.id == "hphone") {
        f.vuser.value += f.hphone.value.substring(0,f.hphone.value.length-1) + "|";
      }
      // remaining fields can be added to the string as is
      else {
        urlString += g.name +  "=" + g.value + "&";
      }
    }
  }

  // clean up URL string (remove last "&")
  urlString = urlString.substring(0,urlString.length-1);

  // submit window to destination
if(confirm_entry()) {
  // submit window to destination
  top.location=urlString;
				 }

  /* - - - - - - - - - - - - - - - - - - - - -
  Debugging procedure opens string in
  a new window for view/copy/click
  
  var win = window.open('','winN','menubar=0,toolbar=1,location=1,directories=0,status=1,scrollbars=1,resizable=1,dependent=1,width=600,height=400,left=0,top=0');
  win.document.write("The coreg enrollment link is:<br><br>");
  win.document.write(f.vuser.value.link(urlString))
  win.document.write('<br><br>The complete URL is:<br><br>' + urlString)
  - - - - - - - - - - - - - - - - - - - - - */

  return false;
}


