// Define Google spreadsheet URL var mySpreadsheet = 'https://docs.google.com/spreadsheets/d/1JaOe5PF9YC_A6c5ntP2YKPdGvTNqruq4ohsmSvlnK1U/pubhtml?gid=0'; var bandsTemplate = Handlebars.compile($('#bands-template').html()); // Get query string parameters var q = document.URL; var params = {}; q.replace(/[?&]([^=]+)[=]([^&#]+)/g, function(match, key, value) { params[key] = value; return ''; }); function isEmpty(obj) { for (var key in obj) { if (obj.hasOwnProperty(key)) return false; } return true; } // Start with no params var searchTerm = ""; // Check for parameters if (isEmpty(params)) { $('#searchTerm').html("

" + searchTerm + " Results

"); loadResults(createQuery(searchTerm)); } else if (params['q']) { // Search user input searchTerm = params['q'].split('+').join([separator = ' ']).trim(); $('#searchTerm').append("

Search results for “" + searchTerm + "”

"); loadResults(createQuery(searchTerm)); } else if (params['album']) { // specific album search album = params['album'].split('+').join([separator = ' ']).trim(); sqlString = "select B,C,D,E,F,G where (lower(D) like lower('%" + album + "%')) order by C asc"; $('#searchTerm').append("

Search results for the album “" + album + "”

"); loadResults(sqlString); } // define search string function function createQuery(term) { return "select B,C,D,E,F,G where (lower(B) like lower('%" + term + "%')) or (lower(C) like lower('%" + term + "%')) or (lower(D) like lower('%" + term + "%')) or (lower(E) like lower('%" + term + "%')) or (lower(F) like lower('%" + term + "%')) order by C asc"; } // define function to load results function loadResults(sql) { $('#bands').sheetrock({ url: mySpreadsheet, query: sql, rowTemplate: bandsTemplate, callback: function(error, options, response) { if (!error) { if ($('#bands tr').length == 1) { $('#bands').append("

No results.

") } } else { $('#bands').append('

Error.

'); } $("#bands").tablesorter(); } }); } Handlebars.registerHelper("normalize", function(input) { return input.toLowerCase().replace(/ +/g, "+").replace(/\.+|,.+|'.+/g, ""); });