var $ = require('unopinionate').selector, template = require('../entry.hbs'); $(function() { 'use strict'; var $form = $('#search-form'), $input = $form.find('input'), $searchResults = $("#search-results"), $body = $('body'), $clear = $form.find('.clear'), request, currentResults; $form.bind('submit keyup', function(e) { e.preventDefault(); var q = $input.val(); $body.addClass('state-search'); //Switch the icons $clear [q ? 'addClass' : 'removeClass']('icon-cancel') [!q ? 'addClass' : 'removeClass']('icon-search'); if(q) { if(request) { request.abort(); } if(!currentResults) { $searchResults.html(""); } request = $.getJSON('/-/search/' + q, function(results) { currentResults = results; if(results.length) { var html = ''; $.each(results, function(i, entry) { html += template(entry); }); $searchResults.html(html); } else { $searchResults.html("