//  Parameters
//  url -   The URL of the data to be loaded. The data must be returned as a pipe deliminated list. For example:
//          title1|url1|title2|url2|title3|url3
//  text -  The text that appears in the text box before the user clicks on the text box.    
//  
//  The tool requires the inclusion of jquery.autocomplete.js


(function($){
    $.fn.finder = function(options){
        var defaults = {
            url: "",
            text:""            
        };       
        
        var options = $.extend(defaults, options);
       
        return this.each(function(){
            var obj = $(this);
            var activityFinderArray = new Array();
            
            obj.keypress(function(e){
                if(e.which == 13){
                    return false;}
            });
            
            obj.click(function(){
                if(this.value == options.text){
                    this.value="";
                }
            });
            
            obj.attr("disabled", "disabled");
            obj.attr("value","Loading...");
            
            $.get(options.url, function(rawData){
            
                var data = rawData.split("|");
                
                for(var i=0; i < data.length; i+=2){          
                    activityFinderArray.push({text:data[i], url:data[i+1]});                      
                }
                
                obj.removeAttr("disabled");
                obj.attr("value", options.text);
                obj.autocomplete(activityFinderArray,
                {
                    formatItem: function(item){
                        return item.text;
                    },
                    matchContains:true
                }).result(function(event,item){                    
                        location.href=item.url;
                });
            }); //get           
            
        });//this each            
    };//function
})(jQuery);
