﻿$(function() {
    if(window.contestFields && window.contestFields.zip) {
        var jqAjaxLoader = $('#jsAjaxLoader');
        var jqCityState = $('#jsCityState');
        var jqZipTextbox = $('#' + contestFields.zip);
        
        jqZipTextbox
            .change(function() {
                if(this && this.value && /^\d{5}$/.test(this.value)) {
                    jqCityState.html('<em>Looking up...</em>');
                    jqAjaxLoader.css('visibility', 'visible');
                    jqZipTextbox.attr('readonly', true);
                    
                    $.ajax({
                        async: true,
                        cache: true,
                        dataType: 'json',
                        error: function() {
                            jqAjaxLoader.css('visibility', 'hidden');
                            jqZipTextbox.attr('readonly', false);
                            jqCityState.empty();
                        },
                        success: function(data, textStatus) {
                            jqAjaxLoader.css('visibility', 'hidden');
                            jqZipTextbox.attr('readonly', false);
                            
                            if(data && data.success && data.city && data.state)
                                jqCityState.text(data.city + ', ' + data.state);
                            else
                                jqCityState.html('<strong>Not Found</strong>');
                        },
                        type: 'GET',
                        url: '../js/zipLookupService.aspx?zip=' + this.value
                    });
                }
                else
                    jqCityState.empty();
            })
            .change();
    }
});
