function searchRegionSelector(allRegions, selectedStateID, selectedRegionID) {
    /* Render a list of Regions and preselect the current value
     */
    $('#region_id option').remove();

    for(var i = 0; i < allRegions.length-1; i++) {
        if (allRegions[i].stateID == selectedStateID) {
            for(var j = 0; j < allRegions[i].regions.length-1; j++) {
                if (allRegions[i].regions[j].regionID == selectedRegionID) {
                    var isSelected = 'selected=\'selected\'';
                }
                else {
                    var isSelected = '';
                }

                var newNode = '<option value="' + allRegions[i].regions[j].regionID + '" ' + isSelected + '>' + allRegions[i].regions[j].regionName + '</option>';

                $('#region_id').append(newNode);
            }
        }
    }

    /* Redraw a list of Regions upon change of State
     */
    $('#state_id').change(function() {
        $('#region_id option').remove();

        var foundRegion = false;

        for(var i = 0; i < allRegions.length-1; i++) {
            if (allRegions[i].stateID == $(this).val()) {
                for(var j = 0; j < allRegions[i].regions.length-1; j++) {
                    var newNode = '<option value="' + allRegions[i].regions[j].regionID + '">' + allRegions[i].regions[j].regionName + '</option>';

                    $('#region_id').append(newNode);
                }

                var foundRegion = true;
            }
        }

        /* If no regions were found, just provide an All
         */
        if (!foundRegion || $(this).val() == '') {
            var newNode = '<option value="">All Regions</option>';

            $('#region_id').append(newNode);
        }
    });

    /* Default
     */
    var newNode = '<option value="">All Regions</option>';

    $('#region_id').append(newNode);
}
