var $us = {"AL":"Alabama",
"AK":"Alaska",
"AZ":"Arizona",
"AR":"Arkansas",
"CA":"California",
"CO":"Colorado",
"CT":"Connecticut",
"DE":"Delaware",
"FL":"Florida",
"GA":"Georgia",
"HI":"Hawaii",
"ID":"Idaho",
"IL":"Illinois",
"IN":"Indiana",
"IA":"Iowa",
"KS":"Kansas",
"KY":"Kentucky",
"LA":"Louisiana",
"ME":"Maine",
"MD":"Maryland",
"MA":"Massachusetts",
"MI":"Michigan",
"MN":"Minnesota",
"MS":"Mississippi",
"MO":"Missouri",
"MT":"Montana",
"NE":"Nebraska",
"NV":"Nevada",
"NH":"New Hampshire",
"NJ":"New Jersey",
"NM":"New Mexico",
"NY":"New York",
"NC":"North Carolina",
"ND":"North Dakota",
"OH":"Ohio",
"OK":"Oklahoma",
"OR":"Oregon",
"PA":"Pennsylvania",
"RI":"Rhode Island",
"SC":"South Carolina",
"SD":"South Dakota",
"TN":"Tennessee",
"TX":"Texas",
"UT":"Utah",
"VT":"Vermont",
"VA":"Virginia",
"WA":"Washington",
"DC":"Washington, DC",
"WV":"West Virginia",
"WI":"Wisconsin",
"WY":"Wyoming"};

var $ca = {"AB":"Alberta",
"BC":"British Columbia",
"MB":"Manitoba",
"NB":"New Brunswick",
"NF":"Newfoundland",
"NT":"Northwest Territories",
"NS":"Nova Scotia",
"NU":"Nunavut",
"ON":"Ontario",
"PE":"Prince Edward Island",
"QC":"Quebec",
"SK":"Saskatchewan",
"YT":"Yukon"};

$(document).ready(function() {
    //Locate state input field
    $('input[id$="_State"]').each(function(){
        //Store input
        var $formInput = $(this);

        //Grab attributes from current input
        var $fieldName = $formInput.attr('name');
        var $fieldClass = $formInput.attr('class');
        var $fieldId = $formInput.attr('id');
        var $fieldValue = $formInput.attr('value');
        
        //Get label associated with input
        $formInput.siblings('label').each(function(){
            //Get label HTML
            $labelHtml = $("<div>").append($(this)).html();
        });

        //Compile new select html
        var $newHtml = '<select name="' + $fieldName + '">';
        
        //Loop through ca provinces        
        $.each($ca, function(value,display){
            //Add option for each province
            $newHtml += '<option value="'+value+'">'+display+'</option>';
        });

        //Add default select option
        $newHtml += '<option value="" selected>State/Province...</option>';

        //Loop through us states
        $.each($us, function(value,display){
            //Add option for each state
            $newHtml += '<option value="'+value+'">'+display+'</option>';
        });
        $newHtml +='</select>';

        //Replace parent html with label and new select html
        $formInput.parent().html($labelHtml + $newHtml);
    });
});
