﻿//namespace PhysicianApp.PhysicianApp.Components
if (PhysicianApp == null || typeof (PhysicianApp) == "undefined")
    var PhysicianApp = function () { }

if (PhysicianApp.PhysicianApp == null || typeof (PhysicianApp.PhysicianApp) == "undefined")
    PhysicianApp.PhysicianApp = function () { }

PhysicianApp.PhysicianApp.SubmitRadiusSearch = function () { }

PhysicianApp.PhysicianApp.SubmitRadiusSearch.PerformSearch = function (radiusSearchId, submitButtonId, coordinateOutputId) {
    var radiusSearch = PhysicianApp.PhysicianApp.Components.RadiusInput.GetInstance(radiusSearchId);
    var submitButton = document.getElementById(submitButtonId);
    var coordinateOutput = document.getElementById(coordinateOutputId);

    if (radiusSearch != null && submitButton != null) {
        //
        // If no distance is set then this filter is not used and the form is just submitted
        //
        if (radiusSearch.get_Distance() == 0)
            submitButton.click();
        //
        // Otherwise try to geocode the address
        //
        else {
            radiusSearch.geocode(
                function (latitude, longitude, success) {
                    PhysicianApp.PhysicianApp.SubmitRadiusSearch.LocationGeocoded(latitude, longitude, success, submitButton,
                        coordinateOutput);
                }
            );
        }
    }
    else {
        alert("Could not find reference to radius search control or submit button.");
    }
}

PhysicianApp.PhysicianApp.SubmitRadiusSearch.LocationGeocoded = function (latitude, longitude, success, submit, coordinateOutput) {
    var doSubmit = true;

    if (success) {
        coordinateOutput.value = latitude + "," + longitude;
    }
    else {
        coordinateOutput.value = "";
        doSubmit = confirm("Could not locate the entered address.  Would you like to continue without the radius search?");
    }

    if (doSubmit)
        submit.click();
}
