/**
 * @author james
 * Based on http://pr0digy.com/codeigniter/live-search-with-codeigniter-and-mootools/
 */
var Site = {

    start: function(){
		Site.liveSearch();
    },

    liveSearch: function(){
        //set focus on the search form
        // $('text_search').focus();

		// Delay this by 1 second
		//.delay(1000)
		// http://mootools.net/docs/core/Native/Function/#Function:delay
		
		var emptySearchResults = function(event) {
			$('search_results').empty();
		}
		
		$('text_search').addEvent('blur', function(event){
			// Reset the indicator
			if($('text_search').value.length > 0) {
				$('search_activity').set("class", "live_search_reset");
			} else {
				$('search_activity').set("class", "live_search");
			}
			// Hide the results
			// $('search_results').empty();
		});
		
		$('search_wrapper').addEvent('click', function(event){
			$('text_search').focus();
	    });
		
		$('search_activity').addEvent('click', function(event){
			$('text_search').value = '';
			$('search_activity').set("class", "live_search");
			$('search_results').empty();
	    });
		
		$('text_search').addEvent('blur', emptySearchResults);
		
		$('search_results').addEvent('mouseenter', function(event){
			$('text_search').removeEvent('blur', emptySearchResults);
		});
		
		$('search_results').addEvent('mouseleave', function(event){
			$('text_search').addEvent('blur', emptySearchResults);
		});
		
		$('search_results').addEvent('mouseEnter', function(event){
			$('text_search').addEvent('blur', function(event){
				emptySearchResults();
			});
		});
		
        //attach a keyup event to the searchfield
        $('text_search').addEvent('keyup', function(event){
			
            //AJAX request										
            new Request.JSON({
				url: baseUrl + 'search/json',
				onRequest: function(request) {
					$('search_activity').set("class", "live_search_active");
				},
				
                onComplete: function(request){
                    //prepare search container for new results
                    $('search_results').empty();
					
					//Decode is done automatically
                    if(request) {
						var results = request; 
					}
                    //pass results object to the output method
					if(results) {
						Site.buildSearchResults(results);
					}
					// Reset the indicator
					if($('text_search').value.length > 0) {
						$('search_activity').set("class", "live_search_reset");
					} else {
						$('search_activity').set("class", "live_search");
					}
                }           
            }).post({'searchterm': $('text_search').value});
    	});
    },

    buildSearchResults: function(results){
        //prepare the container for newly fetched results
        var container = $('search_results');

		// Create the list content
		var list = new Element('dl');
		
        //output the results
        results.each(function(result, i) {
			if (i < 6) {
				var item = new Element('dd');
				var content = '<a href="' + baseUrl + 'go/' + result.location.toLowerCase() + '/' + result.url_title + '">';
				content += '<h4>' + result.name + '</h4>';
				content += '<p>' + result.description + '</p>';
				content += '</a>';
				
				item.set('class', 'clearfix');
				item.set('html', content);
				item.inject(list);
			}
        });
		
		// Add to the container
		list.inject(container);
		
    }
};
window.addEvent('domready', Site.start);
