war.monkeysearch = {
    
    form: '#monkey-search-form',
    
    results: '#monkey-search-results',
    
    loading: '#monkey-search-loading',
    
    initialize: function() {
        $(this.form).submit(function(e) {
            war.stopEvent(e);
            war.monkeysearch.search(); 
        });
    },
    
    search: function() {
        $(war.monkeysearch.results).fadeOut('fast', function() {
            $(war.monkeysearch.loading).fadeIn('fast', function() {

                var fields = $(":input", $(war.monkeysearch.form)).serialize();
                $.post($(war.monkeysearch.form).attr('action'), fields, function(data) {
                    $(war.monkeysearch.loading).fadeOut('fast', function() {
                        $(war.monkeysearch.results).html(data).fadeIn('fast', function() {
                            war.monkeysearch.setupAjaxLinks(war.monkeysearch.results);
                        });
                    });
                });
            });
        });
    },
    
    setupAjaxLinks : function(root) {
	    $('.ajax-link', root).click(function(e) {
	        war.stopEvent(e);
	        var containerId = war.monkeysearch.results;
	        var loadingId = war.monkeysearch.loading;
		    var link = $(this).attr('href');
		    
			var container = $(containerId);
			
            container.fadeOut('fast', function() {
                $(loadingId).fadeIn('fast', function() {
                    war.monkeysearch.cleanupEvents(container);
    		        container.load(link, function() {
    		            $(loadingId).fadeOut('fast', function() {
    			            container.fadeIn('fast', function() {
    			                war.monkeysearch.setupAjaxLinks(container);
                            });
                        });
                    });
                });
            });
		});
	},
	
	cleanupEvents : function(root) {
	    $('.ajax-form', root).unbind('submit');
	    root.unbind('click');
	}
    
}
$(function() {
   war.monkeysearch.initialize(); 
});