YUI().use('io-form', 'node', 'event', function(Y) {
	Y.all('#home-search form').on("submit", function (e) { e.preventDefault(); });
	Y.all('#home-search input').on("keyup", requestRestaurantSearch);
	Y.all('#home-search input').on("blur", blurRestaurantSearchForm);
	Y.all('#home-search input').on("focus", focusRestaurantSearchForm);
    
	function focusRestaurantSearchForm(e) {
    	var input   = e.currentTarget;
    	
    	if (input.get('value') == input.get('defaultValue')) {
           	input.set('value', '');
        }
	}
    
	function blurRestaurantSearchForm(e) {
    	var input   = e.currentTarget;
    	
    	if (input.get('value') == '') {
    		input.set('value', input.get('defaultValue'));
    	}
    		
    	if (input.get('value') == input.get('defaultValue') &&
        	input.hasClass('user-input')) {
           	input.removeClass('user-input');
        }
	}
	
    function requestRestaurantSearch(e) {
    	var input   = e.currentTarget;
    	var form    = input.get('form');
    	var keyCode = e.keyCode;
    	
    	if (input.get('value') != input.get('defaultValue') &&
    		!input.hasClass('user-input')) {
        	input.addClass('user-input');
    	}
    	
    	var container = Y.one('#home-search-results');
    	container.set('innerHTML', '');
    	
        var uri = form.getAttribute('action');
        
        if (input.get('value').length > 2) {
        	var indicator = Y.one('#home-search-indicator');
        	indicator.setStyle('display', 'block');
        	
	        var request = Y.io(uri, {
	            method: 'POST',
	            form: {
	                id: form
	            },
	            on: {
	                complete: completeRestaurantSearch
	            },
	            arguments: {
	            	form: form
	            }
	        });
        }
    }
    
    function completeRestaurantSearch(id, o, args) {
    	var indicator = Y.one('#home-search-indicator');
    	indicator.setStyle('display', 'none');
    	
    	var container = Y.one('#home-search-results');
    	container.set('innerHTML', o.responseText);
    };
});