function submit_quote()
{
    // get the state string based on the provided zip code
    var state = validate_zip(document.quote_form.z.value);
    if (state == '') {
        alert('Incorrect Zip Code');
        return false;
    }
    // format state string (all lower case and ' ' replaces with '-')
    state = state.toLowerCase();
    state = state.replace(/ /g, '-');

    // get the coverage type string
    var i = document.quote_form.type.selectedIndex;
    var type = document.quote_form.type.options[i].value;

    // set the site-map level (quote)
    document.quote_form.l.value = "quote";

    // compose the new URL with the state and coverage string 
    document.quote_form.action = "/" + state + "-hsa-" + type + "-health-insurance-quotes";

    document.quote_form.submit();
}


function validate_zip(zip)
{
   var state = '';
   if ((zip.length == 5) && (isNumeric(zip))) {
      state = getState(zip);
   }

    return state;
}

function isNumeric(input)
{
   return (input - 0) == input && input.length > 0;
}


function getState(zip) {
    if ((zip >= 99500) && (zip <= 99929))
        return "Alaska";
    if ((zip >= 35000) && (zip <= 36999))
        return "Alabama";
    if ((zip >= 71600) && (zip <= 72999))
        return "Arkansas";
    if ((zip >= 75502) && (zip <= 75505))
        return "Arkansas";
    if ((zip >= 85000) && (zip <= 86599))
        return "Arizona";
    if ((zip >= 90000) && (zip <= 96199))
        return "California";
    if ((zip >= 80000) && (zip <= 81699))
        return "Colorado";
    if ((zip >= 6000) && (zip <= 6999))
        return "Connecticut";
    if ((zip >= 20000) && (zip <= 20099))
        return "Washington DC";
    if ((zip >= 20200) && (zip <= 20599))
        return "Washington DC";
    if ((zip >= 19700) && (zip <= 19999))
        return "Delaware";
    if ((zip >= 32000) && (zip <= 33999))
        return "Florida";
    if ((zip >= 34100) && (zip <= 34999))
        return "Florida";
    if ((zip >= 30000) && (zip <= 31999))
        return "Georgia";
    if ((zip >= 96700) && (zip <= 96798))
        return "Hawaii";
    if ((zip >= 96800) && (zip <= 96899))
        return "Hawaii";
    if ((zip >= 50000) && (zip <= 52999))
        return "Iowa";
    if ((zip >= 83200) && (zip <= 83899))
        return "Idaho";
    if ((zip >= 60000) && (zip <= 62999))
        return "Illinois";
    if ((zip >= 46000) && (zip <= 47999))
        return "Indiana";
    if ((zip >= 66000) && (zip <= 67999))
        return "Kansas";
    if ((zip >= 40000) && (zip <= 42799))
        return "Kentucky";
    if ((zip >= 45275) && (zip <= 45275))
        return "Kentucky";
    if ((zip >= 70000) && (zip <= 71499))
        return "Louisiana";
    if ((zip >= 71749) && (zip <= 71749))
        return "Louisiana";
    if ((zip >= 1000) && (zip <= 2799))
        return "Massachusetts";
    if ((zip >= 20331) && (zip <= 20331))
        return "Maryland";
    if ((zip >= 20600) && (zip <= 21999))
        return "Maryland";
    if ((zip >= 3801) && (zip <= 3801))
        return "Maine";
    if ((zip >= 3804) && (zip <= 3804))
        return "Maine";
    if ((zip >= 3900) && (zip <= 4999))
        return "Maine";
    if ((zip >= 48000) && (zip <= 49999))
        return "Michigan";
    if ((zip >= 55000) && (zip <= 56799))
        return "Minnesota";
    if ((zip >= 63000) && (zip <= 65899))
        return "Missouri";
    if ((zip >= 38600) && (zip <= 39799))
        return "Mississippi";
    if ((zip >= 59000) && (zip <= 59999))
        return "Montana";
    if ((zip >= 27000) && (zip <= 28999))
        return "North Carolina";
    if ((zip >= 58000) && (zip <= 58899))
        return "North Dakota";
    if ((zip >= 68000) && (zip <= 69399))
        return "Nebraska";
    if ((zip >= 3000) && (zip <= 3803))
        return "New Hampshire";
    if ((zip >= 3809) && (zip <= 3899))
        return "New Hampshire";
    if ((zip >= 7000) && (zip <= 8999))
        return "New Jersey";
    if ((zip >= 87000) && (zip <= 88499))
        return "New Mexico";
    if ((zip >= 89000) && (zip <= 89899))
        return "Nevada";
    if ((zip >= 400) && (zip <= 599))
        return "New York";
    if ((zip >= 6390) && (zip <= 6390))
        return "New York";
    if ((zip >= 9000) && (zip <= 14999))
        return "New York";
    if ((zip >= 43000) && (zip <= 45999))
        return "Ohio";
    if ((zip >= 73000) && (zip <= 73199))
        return "Oklahoma";
    if ((zip >= 73400) && (zip <= 74999))
        return "Oklahoma";
    if ((zip >= 97000) && (zip <= 97999))
        return "Oregon";
    if ((zip >= 15000) && (zip <= 19699))
        return "Pennsylvania";
    if ((zip >= 2800) && (zip <= 2999))
        return "Rhode Island";
    if ((zip >= 6379) && (zip <= 6379))
        return "Rhode Island";
    if ((zip >= 29000) && (zip <= 29999))
        return "South Carolina";
    if ((zip >= 57000) && (zip <= 57799))
        return "South Dakota";
    if ((zip >= 37000) && (zip <= 38599))
        return "Tennessee";
    if ((zip >= 72395) && (zip <= 72395))
        return "Tennessee";
    if ((zip >= 73300) && (zip <= 73399))
        return "Texas";
    if ((zip >= 73949) && (zip <= 73949))
        return "Texas";
    if ((zip >= 75000) && (zip <= 79999))
        return "Texas";
    if ((zip >= 88501) && (zip <= 88599))
        return "Texas";
    if ((zip >= 84000) && (zip <= 84799))
        return "Utah";
    if ((zip >= 20105) && (zip <= 20199))
        return "Virginia";
    if ((zip >= 20301) && (zip <= 20301))
        return "Virginia";
    if ((zip >= 20370) && (zip <= 20370))
        return "Virginia";
    if ((zip >= 22000) && (zip <= 24699))
        return "Virginia";
    if ((zip >= 5000) && (zip <= 5999))
        return "Vermont";
    if ((zip >= 98000) && (zip <= 99499))
        return "Washington";
    if ((zip >= 49936) && (zip <= 49936))
        return "Wisconsin";
    if ((zip >= 53000) && (zip <= 54999))
        return "Wisconsin";
    if ((zip >= 24700) && (zip <= 26899))
        return "West Virginia";
    if ((zip >= 82000) && (zip <= 83199))
        return "Wyoming";

    return null;
}
