
                    // BE SURE TO INCLUDE THE FOLLOWING SCRIPTS IN YOUR PAGE
                    //      /js/jquery-1.3.2.js
                    //      /js/jquery-ui-1.7.2.js
                    //      /js/googlemapjs.ashx
                    //      /js/geocode.js

                    (function($)
                    {
                        $.fn.searchByAddress = function(searchInputID, options)
                        {   
                            //set up default options
                            var defaults = {
                                distance: 25, 
                                cFilter: ''
                            }

                            //overide defaults with ones that were passed in
                            var options = $.extend({}, defaults, options);
                                                                                                                             
                            var searchBaseUrl = '/seek/nearest.aspx';                             
                            var searchValue = jQuery('#' + searchInputID).val();

                            return this.each(function()
                            {
                                GSPK.Geocode.GoogleGeocodeAddressMulti(searchValue, function(response)
                                {
                                    if (response != null && response.Placemark != null)
                                    {
                                        if (response.Placemark.length == 1)
                                        {
                                            var item = response.Placemark[0].Point.coordinates;
                                            var url = '';
                                            if (options.cFilter.length > 0)
                                                url = [searchBaseUrl, '?lat=', item[1], '&lng=', item[0], '&dist=', options.distance, '&cFilter=', options.cFilter].join('');
                                            else
                                                url = [searchBaseUrl, '?lat=', item[1], '&lng=', item[0], '&dist=', options.distance].join('');
                                            window.location.assign(url);
                                        }
                                        else
                                        {
                                            if (response.Placemark[0].AddressDetails.Accuracy == 8)
                                            {
                                                var item = response.Placemark[0].Point.coordinates;
                                                var url = '';
                                                if (options.cFilter.length > 0)
                                                    url = [searchBaseUrl, '?lat=', item[1], '&lng=', item[0], '&dist=', options.distance, '&cFilter=', options.cFilter].join('');
                                                else
                                                    url = [searchBaseUrl, '?lat=', item[1], '&lng=', item[0], '&dist=', options.distance].join('');
                                                window.location.assign(url);
                                            }
                                            else
                                            {
                                                var items = [];

                                                for (var x = 0, l = response.Placemark.length; x < l; x++)
                                                {
                                                    var item = response.Placemark[x];
                                                    if (options.cFilter.length > 0)                                                    
                                                        items.push(["<li><a href='", searchBaseUrl, "?lat=", item.Point.coordinates[1], "&lng=", item.Point.coordinates[0], "&dist=", options.distance, "&cFilter=", options.cFilter, "'>", item.address, "</a></li>"].join(""));
                                                    else                                                    
                                                        items.push(["<li><a href='", searchBaseUrl, "?lat=", item.Point.coordinates[1], "&lng=", item.Point.coordinates[0], "&dist=", options.distance, "'>", item.address, "</a></li>"].join(""));
                                                }

                                                if ($("#uxGeocodeResults").length == 0)
                                                {
                                                    searchBox = $('#' + searchInputID);

                                                    //create uxGeocodeResults DIV
                                                    $("<div id='uxGeocodeResults' class='ui-overlay-addresses'><div class='bd'><img src='/images/loading2.gif' align='absmiddle' />Loading</div></div>").appendTo("body");
                                                }

                                                var offset = jQuery('#' + searchInputID).offset();
                                                var height = jQuery('#' + searchInputID).height();

                                                $('#uxGeocodeResults div').html(['<strong>Multiple Locations Found:</strong>', '<ol>', items.join(''), '</ol>'].join(''));
                                                $('#uxGeocodeResults')
                                                    .css({ 'position': 'absolute', 'z-index': '1001', 'left': offset.left + 'px', 'top': offset.top + height + 4 + 'px' })
                                                    .dialog('option', 'dragable', false)
                                                    .parents('.ui-dialog:first').find('.ui-dialog-titlebar-close').remove();
													
												if(options.onNoneFound)
												{
													options.onNoneFound();
												}
                                            }
                                        }
                                    }
                                    else
                                    {
                                        alert("A location for '" + searchValue + "' could not be determined");
										if(options.onNoneFound)
										{
											options.onNoneFound();
										}
                                    }
                                });
                            });
                        }
                    })(jQuery);
