function breakout_address(response) {
    if (response[0]) {
        var place = response[0];
    } else {
        var place = response;
    }

    var address=[];
    address['zip'] = ''; // I do not know what the story is, but if we don't clear this out, it returns a js function
    address["lat"]=place.geometry.location.lat();
    address["lng"]=place.geometry.location.lng();
    address["fullText"]=place.formatted_address;
    
    for(var i = 0; i < place.address_components.length; i++) {
        if ($.inArray('street_number', place.address_components[i].types) !== -1) {
            address['house_address'] = place.address_components[i].long_name;
        } else if ($.inArray('route', place.address_components[i].types) !== -1) {
            if (address['house_address']) {
                address['house_address'] += " ";
            } else {
                address['house_address'] = '';
            }
            address['house_address'] += place.address_components[i].long_name;
        } else if ($.inArray('country', place.address_components[i].types) !== -1) {
            address['country'] = place.address_components[i].short_name;
        } else if ($.inArray('administrative_area_level_1', place.address_components[i].types) !== -1) {
            address['state'] = place.address_components[i].short_name;
        } else if ($.inArray('locality', place.address_components[i].types) !== -1) {
            address['city'] = place.address_components[i].long_name;
        } else if ($.inArray('postal_code', place.address_components[i].types) !== -1) {
            address['zip'] = place.address_components[i].long_name;
        }
    }
    
    return address;
}

function knownStates( state ) {
    
    state = state.toUpperCase();
    
    var USStateMapping = new Array();
    
    USStateMapping['ALABAMA'] = 'AL';
    USStateMapping["ALASKA"] = "AK";
    USStateMapping["ARIZONA"] = 'AZ';
    USStateMapping["ARKANSAS"] = "AR";
    USStateMapping["CALIFORNIA"] = "CA";
    USStateMapping["COLORADO"] = "CO";
    USStateMapping["CONNECTICUT"] = "CT";
    USStateMapping["DISTRICT OF COLUMBIA"] = "DC";
    USStateMapping["DELAWARE"] = "DE";
    USStateMapping["FLORIDA"] = "FL";
    USStateMapping["GEORGIA"] = "GA";
    USStateMapping["HAWAII"] = "HI";
    USStateMapping["IDAHO"] = "ID";
    USStateMapping["ILLINOIS"] = "IL";
    USStateMapping["INDIANA"] = "IN";
    USStateMapping["IOWA"] = "IA";
    USStateMapping["KANSAS"] = "KS";
    USStateMapping["KENTUCKY"] = "KY";
    USStateMapping["LOUISIANA"] = "LA";
    USStateMapping["MAINE"] = "ME";
    USStateMapping["MARYLAND"] = "MD";
    USStateMapping["MASSACHUSETTS"] = "MA";
    USStateMapping["MICHIGAN"] = "MI";
    USStateMapping["MINNESOTA"] = "MN";
    USStateMapping["MISSISSIPPI"] = "MS";
    USStateMapping["MISSOURI"] = "MO";
    USStateMapping['MONTANA'] = 'MT';
    USStateMapping['NEBRASKA'] = 'NE';
    USStateMapping['NEVADA'] = 'NV';
    USStateMapping['NEW HAMPSHIRE'] = 'NH';
    USStateMapping['NEW JERSEY'] = 'NJ';
    USStateMapping['NEW MEXICO'] = 'NM';
    USStateMapping['NEW YORK'] = 'NY';
    USStateMapping['NORTH CAROLINA'] = 'NC';
    USStateMapping['NORTH DAKOTA'] = 'ND';
    USStateMapping['OHIO'] = 'OH';
    USStateMapping['OKLAMOHA'] = 'OK';
    USStateMapping['OREGON'] = 'OR';
    USStateMapping['PENNSYLVANIA'] = 'PA';
    USStateMapping['RHODE ISLAND'] = 'RI';
    USStateMapping['SOUTH CAROLINA'] = 'SC';
    USStateMapping['SOUTH DAKOTA'] = 'SD';
    USStateMapping['TENNESSEE'] = 'TN';
    USStateMapping['TEXAS'] = 'TX';
    USStateMapping['UTAH'] = 'UT';
    USStateMapping['VERMONT'] = 'VT';
    USStateMapping['VIRGINIA'] = 'VA';
    USStateMapping['WASHINGTON'] = 'WA';
    USStateMapping['WEST VIRGINIA'] = 'WV';
    USStateMapping['WISCONSIN'] = 'WI';
    USStateMapping['WYOMING'] = 'WY';
    
    USStateMapping['N CAROLINA'] = 'NC';
    USStateMapping['S CAROLINA'] = 'SC';
    USStateMapping['DC'] = 'DC';
    USStateMapping['PUERTO RICO'] = 'PR';
    USStateMapping['RHODE ISL'] = 'RI';
    USStateMapping['N DAKOTA'] = 'ND';
    USStateMapping['S DAKOTA'] = 'SD';
    USStateMapping['MASS'] = 'MA';
    USStateMapping['W VIRGINIA'] = 'WV';
    USStateMapping['VIRGIN ISLANDS'] = 'VI';
    USStateMapping['AMERICAN SAMOA'] = 'AS';
    USStateMapping['GUAM'] = 'GU';
    USStateMapping['MARSHALL ISLANDS'] = 'MH';
    USStateMapping['NORTHERN MARIANA ISLANDS'] = 'MP';
    USStateMapping['FEDERATED STATES OF MICRONESIA'] = 'FM';
    
    for (var longName in USStateMapping) {
        if (state == longName) {
            return USStateMapping[longName];
        } else if (state == USStateMapping[longName]) {
            return USStateMapping[longName];
        }
    }
    
    var CAProvinceMapping = new Array();
    
    CAProvinceMapping['ALBERTA'] = "AB";
    CAProvinceMapping['BRITISH COLUMBIA'] = "BC";
    CAProvinceMapping['MANITOBA'] = "MB";
    CAProvinceMapping['NEW BRUNSWICK'] = "NB";
    CAProvinceMapping['NEWFOUNDLAND AND LABRADOR'] = "NL";
    CAProvinceMapping['NORTHWEST TERRITORIES'] = "NT";
    CAProvinceMapping['NOVA SCOTIA'] = "NS";
    CAProvinceMapping['NUNAVUT TERRITORY'] = "NU";
    CAProvinceMapping['NUNAVUT'] = "NU";
    CAProvinceMapping['ONTARIO'] = "ON";
    CAProvinceMapping['PRINCE EDWARD ISLAND'] = "PE";
    CAProvinceMapping['PRINCE EDWARD ISL'] = "PE";
    CAProvinceMapping['QUEBEC'] = "QC";
    CAProvinceMapping["SASKATCHEWAN"] = "SK";
    CAProvinceMapping["YUKON"] = "YT";
    
    for (var longName in CAProvinceMapping) {
        if (state == longName) {
            return CAProvinceMapping[longName];
        } else if (state == CAProvinceMapping[longName]) {
            return CAProvinceMapping[longName];
        }
    }
    
    return false;
}

