function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}
function getQueryStringVariable(variable) {
  var query = window.location.search.substring(1);
  var vars = query.split('&');
  for (var i=0;i<vars.length;i++) {
    var pair = vars[i].split('=');
    if (pair[0] == variable) {
      return pair[1];
    }
  }
}
function PageQuery(q) {
  if(q.length > 1) this.q = q.substring(1, q.length);
  else this.q = null;
  this.keyValuePairs = new Array();
  if(q) {
    for(var i=0; i < this.q.split("&").length; i++) {
      this.keyValuePairs[i] = this.q.split("&")[i];
    }
  }
  this.getKeyValuePairs = function() { return
  this.keyValuePairs; }
  this.getValue = function(s) {
    for(var j=0; j < this.keyValuePairs.length; j++) {
      if(this.keyValuePairs[j].split("=")[0] == s) {
        if(this.keyValuePairs[j].split("=").length>1)
        {
          return this.keyValuePairs[j].split("=")[1];
        }
      }
    }
    return "";
  }
  this.getParameters = function() {
    var a = new Array(this.getLength());
    for(var j=0; j < this.keyValuePairs.length; j++) {
      a[j] = this.keyValuePairs[j].split("=")[0];
    }
    return a;
  }
  this.getLength = function() { return
  this.keyValuePairs.length; }
}

function queryString(key){
	  var page = new PageQuery(window.location.search);
	  return unescape(page.getValue(key));
}

function initParams() {
    var q = window.location.search;
    if(q != null && q.length > 1) {
        q = q.substring(1, q.length);
        var keyValuePairs = q.split("&");
        for(var index=0; index < keyValuePairs.length; index++) {
            var delim = keyValuePairs[index].indexOf("=");
            if(delim > 0 && delim < (keyValuePairs[index].length - 1)) {
                var name = keyValuePairs[index].substring(0,delim);
                name = unescape(name);
                var value = keyValuePairs[index].substring(++delim,keyValuePairs[index].length);
                value = unescape(value);
                var field = window.document.getElementsByName(name);
                if(field != null && field.length > 0)
                    initField(field, value);
            }
        }
        if (validateForm(window.document.form1)) {
          window.document.form1.submit();
        }
        
    }
}


function initF()
{
    formSubmitted=false;
    //initParams();
}
function showErrors() {
    field=window.document.form1.errorMessage;
    if(field) {
        var value = getFieldValueTF(field);
        if(value && value != "") {
          alert(value);
        }
    }
}
function geoStateText() {
  var geoStateValue = getQueryStringVariable('st');
  var stateArray = new Array();
  
  stateArray["AL"]='Alabama';
  stateArray["AL"]='Alaska';
  stateArray["AZ"]='Arizona';
  stateArray["AR"]='Arkansas';
  stateArray["AS"]= 'American Samoa';
  stateArray["AA"]='Armed Forces Americas';
  stateArray["AE"]='Armed Forces';
  stateArray["AP"]='Armed Forces Pacific';
  stateArray["CA"]='California';
  stateArray["CO"]='Colorado';
  stateArray["CT"]='Connecticut';
  stateArray["DE"]='Delaware';
  stateArray["DC"]='District of Columbia';
  stateArray["FL"]='Florida';
  stateArray["GA"]='Georgia';
  stateArray["GU"]='Guam';
  stateArray["HI"]='Hawaii';
  stateArray["ID"]='Idaho';
  stateArray["IL"]='Illinois';
  stateArray["IN"]='Indiana';
  stateArray["IA"]='Iowa';
  stateArray["KS"]='Kansas';
  stateArray["KY"]='Kentucky';
  stateArray["LA"]='Louisiana';
  stateArray["MA"]='Massachusetts';
  stateArray["ME"]='Maine';
  stateArray["MD"]='Maryland';
  stateArray["MI"]='Michigan';
  stateArray["MN"]='Minnesota';
  stateArray["MS"]='Mississippi';
  stateArray["MO"]='Missouri';
  stateArray["MT"]='Montana';
  stateArray["NE"]='Nebraska';
  stateArray["NV"]='Nevada';
  stateArray["NH"]='New Hampshire';
  stateArray["NJ"]='New Jersey';
  stateArray["NM"]='New Mexico';
  stateArray["NY"]='New York';
  stateArray["NC"]='North Carolina';
  stateArray["ND"]='North Dakota';
  stateArray["MP"]='Northern Mariana Islands';
  stateArray["OH"]='Ohio';
  stateArray["OK"]='Oklahoma';
  stateArray["OR"]='Oregon';
  stateArray["PW"]='Palau';
  stateArray["PA"]='Pennsylvania';
  stateArray["PR"]='Puerto Rico';
  stateArray["RI"]='Rhode Island';
  stateArray["SC"]='South Carolina';
  stateArray["SD"]='South Dakota';
  stateArray["TN"]='Tennessee';
  stateArray["TX"]='Texas';
  stateArray["VI"]='U.S. Virgin Islands';
  stateArray["UT"]='Utah';
  stateArray["VT"]='Vermont';
  stateArray["VA"]='Virginia';
  stateArray["WA"]='Washington';
  stateArray["DC"]='Washington D.C.';
  stateArray["WV"]='West Virginia';
  stateArray["WI"]='Wisconsin';
  stateArray["WY"]='Wyoming';

  return stateArray[geoStateValue];
}

function validate_AGE_01() {
    field = window.document.form1.AINS_AGE_01;
    if (field) {
      value = getFieldValueLB(field)
      if(!validateIsRequired(value)) {
       return alertError(field, "Please indicate your age." );
      }
    }
    return true;
}

function preselect_AGE_01() {
  var bannerAge = queryString("_AGE");
  var field = window.document.form1.AINS_AGE_01;
  if (field && bannerAge && bannerAge.length >=2) {
    var twoDigits = bannerAge.substring(0, 2);
    if (twoDigits == '25' || twoDigits == '30') {
      setFieldValueLB(field, '30');
    } else if (twoDigits == '35' || twoDigits == '40' || twoDigits == '45') {
      setFieldValueLB(field, '40');
    } else if (twoDigits == '50') {
      setFieldValueLB(field, '51');
    } else if ((twoDigits.charAt(0) >= '0') && (twoDigits.charAt(0) <= '9')) {
      setFieldValueLB(field, '20');
    }
  }
  return true;
}

function validate_SUR_INSURED_01() {
    field = window.document.form1.SUR_INSURED_01;
    if (field) {
      value = getFieldValueRB(field)
      if(!validateIsRequired(value)) {
       return alertError(field, "Please indicate if you currently have auto insurance." );
      }
    }
    return true;
}

function validate_SUR_CALL_01() {
    field = window.document.form1.SUR_CALL_01;
    if (field) {
      value = getFieldValueRB(field)
      if(!validateIsRequired(value)) {
       return alertError(field, "Please indicate if you would like to chat with an agent." );
      }
    }
    return true;
}

function validate_LICENSE_DURATION_01(form) {
    field = window.document.form1.LICENSE_DURATION_01;
    if (field) {
      value = getFieldValueRB(field)
      if(!validateIsRequired(value)) {
       return alertError(field, "Please indicate if you have had a U.S. driver's license for more than 3 years." );
      }
    }
    return true;
}

function validate_HOUSEHOLD_DRIVER_ACCIDENTS_01(form) {
    field = window.document.form1.HOUSEHOLD_DRIVER_ACCIDENTS_01;
    if (field) {
      value = getFieldValueRB(field)
      if(!validateIsRequired(value)) {
       return alertError(field, "Please indicate if any driver in your household had 2 or more accidents or moving violations in the last 3 years." );
      }
    }
    return true;
}

var SurAjax = {
  req: window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest(), 
  
  replaceAllInText: function(strText, strTarget, replacement) {
        var intIndexOfMatch = strText.indexOf(strTarget);
        while (intIndexOfMatch >= 0) {
            strText = strText.replace(strTarget, replacement);
            intIndexOfMatch = strText.indexOf(strTarget);
        }
        return strText;
   }
  
};

function submitACustomer(customerName, matchRoundParam) {
  if (document.form1.AINS_CUSTOMER_01) {
    document.form1.AINS_CUSTOMER_01.value = customerName;
    if (document.form1.MR) {
      var matchRound = parseInt(document.form1.MR.value);
      if (!isNaN(matchRound)) {
        document.form1.MR.value = matchRound + 1;
      }
      else {
        document.form1.MR.value = 1;
      }
    }
    if (matchRoundParam) {
      matchRound = parseInt(matchRoundParam);
      if (!isNaN(matchRound)) {
        document.form1.MR.value = matchRound;
      }
    }
    document.form1.submit();
  }
  
  return true;
}

function resolveMatchRound() {
   var matchRound = 0;
   if (document.form1.MR) {
      matchRound = parseInt(document.form1.MR.value);
      if (isNaN(matchRound)) {
        matchRound = 0;
      }
   }
   
   return matchRound;
}

function submitACustomerAjax(customerName) {
   var params = "AINS_CUSTOMER_01=" + encodeURIComponent(customerName);
   
   var matchRound = resolveMatchRound() + 1;
   
   params += "&MR=" + encodeURIComponent(matchRound);
   
   if (window.document.form1 && window.document.form1.H) {
     var hiddenValue = escape(window.document.form1.H.value);
     hiddenValue = SurAjax.replaceAllInText(hiddenValue, "+", "%2B");
     params +='&H=' + hiddenValue;
   }

    if (window.document.form1.Z) {
      var hiddenValue = escape(window.document.form1.Z.value);
      hiddenValue = SurAjax.replaceAllInText(hiddenValue, "+", "%2B");
      params +='&Z=' + hiddenValue;
    }

   var url = document.form1.action;
   
   AjaxObject.getReq().open("POST", url, false); 
   AjaxObject.getReq().setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
   AjaxObject.getReq().setRequestHeader("Cache-Control", "no-cache"); 
 
   AjaxObject.getReq().send(params);
  
  return true;
}

function setForm2Fields(form) {
    var form2 = window.document.form2;
    form2.SUR_INSURED_01.value = getFieldValueRB(form.SUR_INSURED_01);
    form2.ZIP_01.value = getFieldValueTF(form.ZIP_01);
    form2.AINS_AGE_01.value = getFieldValueLB(form.AINS_AGE_01);
    form2.SUR_POLICYSTART_01.value = getFieldValueRB(form.SUR_POLICYSTART_01);
    form2.COUNTRY_01.value = getCountryValue(form.COUNTRY_01);
    form2.H.value = getFieldValueTF(form.H);
    form2.Z.value = getFieldValueTF(form.Z);
    form2.GeoState.value = getFieldValueTF(form.GeoState);
    form2.exPop.value = getFieldValueTF(form.exPop);
}

function submitForm2ValidateForm(form) {
    var status = validateForm(form);
    if (status == true && form && form.popunder && form.popunder.value == 'true') {
    	setForm2Fields(form);
    	window.document.form2.MATCH_SUREHITS_MULTI.value = "YES";
    	document.form2.submit();
    }
    return status;
}
