function directory_search(data, submit_button) {
    var message = $('#search-message');
    message.empty();
    if ($('#country').val() || $('#zip').val() || $('#state').val() || $('#search-name').val()) {
        message.append('Searching . . .');
		if ($(submit_button).length) {
			var new_data = $(submit_button).parents('table.search-fields').find('input, select');
		}
		data = (typeof data === 'undefined') ? new_data : data;
        $.post('/directory/search', data,
            function(data){
                message.empty();
                $('#search-results').empty();
                $('#search-results').append(data);
                if ($('#zip').val() && $(submit_button).parents('table.search-fields').is('#location-search')) {
                    $('table#location-search tr:not(#zip_tr, #location-submit)').hide();
                }
            }, "html");
    }
}

function address_populate_city() {
    var e = $('#city');
    e.empty();
    var state_id = $('select#state option:selected').val();
    if (state_id) {
        $.post('/ajax/get_cities', { 'state_id': state_id, 'therapists_only': 'true' },
            function(data){
				var count = 0;
				e.append($('<option value="">Optional - You may click now to search</option>'));
                $.each(data.cities, function(index, value) {
					if(value) {
						count++;
	                    e.append($('<option value="' + value + '">' + value + '</option>'));
					}
                });

				if(count) {
					$('#city_tr').css('display', '');
				}
				else {
					$('#city_tr').css('display', 'none');
				}

            }, "json");
    }
	else {
		$('#city_tr').css('display', 'none');
	}
}

function directory_populate_state(hide_zip) {
    hide_zip = typeof(hide_zip) != 'undefined' ? hide_zip : false;

    var country_id = $('select#country option:selected').val();
    var e = $('#state');

	if($('#country option:selected').text() == 'United States') {
		$('#zip_tr, #or_zip').css('display', '');
		$('#state_td').text('State:');
	}
	else {
		$('#zip_tr, #or_zip').css('display', 'none');
		$('#state_td').text('Region/Province:');
	}

    if (country_id) {
        $.post('/ajax/get_states', { 'country_id': country_id, 'therapists_only': 'true' },
            function(data){
				$('#city_tr').css('display', 'none');
			    e.empty();
				e.append($('<option value="">Optional - You may click now to search</option>'));
                selected_id = $('#selected_state_id').val();
				var count = 0;
                $.each(data, function(id, name) {
					if(name) {
						count++
	                    var selected = '';
	                    if (id == selected_id) {
	                        selected = 'selected';
	                    }
	                    e.append($('<option value="' + id + '"' + selected + '>' + name + '</option>'));
					}
                });

				if(count && !hide_zip) {
					$('#state_tr').css('display', '');
				}
				else {
					$('#state_tr').css('display', 'none');
				}
            }, "json");
    }
	else {
		$('#state_tr').css('display', 'none');
		$('#city_tr').css('display', 'none');
	}
}

$(function() {
	if (window.location.search.length) {
		$('option[value=157837]').attr('selected','selected');
		directory_populate_state(true);
		var zip = /zip=(\d+)/.exec(window.location.search)[1];
		var radius = /radius=(\d+)/.exec(window.location.search)[1];

		// won't work if radius option isn't in there...
		$('select#proximity').val(radius);
		$('input#zip').val(zip);
		var data = {
			'role_type': 'certification',
			'search[country_id]': $('select#country').val(),
			'search[proximity]': radius,
			'search[zip]': zip,
			'submit': 'search'
		};
        $('table#location-search tr:not(#zip_tr, #location-submit)').hide();

		directory_search(data);
	} else {
		$('option[value=157837]').attr('selected','selected');
		directory_populate_state();
    }
});

