| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 | 
							- "use strict";
 
- if($('#search-input').length) {
 
- 	$('#search-input').focus();
 
- 	$('.searchresults').css('display', 'block');
 
- 	var vueHeader = new Vue({
 
- 		el: '#header-container',
 
- 		data: {
 
- 			searchq: '',
 
- 			searchres: [],
 
- 			searchsuggest: [],
 
- 			searchload: 0,
 
- 			searchactive: false,
 
- 			searchmoveidx: 0,
 
- 			searchmovekey: '',
 
- 			searchmovearr: []
 
- 		},
 
- 		watch: {
 
- 			searchq: (val, oldVal) => {
 
- 				vueHeader.searchmoveidx = 0;
 
- 				if(val.length >= 3) {
 
- 					vueHeader.searchactive = true;
 
- 					vueHeader.searchload++;
 
- 					socket.emit('search', { terms: val }, (data) => {
 
- 						vueHeader.searchres = data.match;
 
- 						vueHeader.searchsuggest = data.suggest;
 
- 						vueHeader.searchmovearr = _.concat([], vueHeader.searchres, vueHeader.searchsuggest);
 
- 						if(vueHeader.searchload > 0) { vueHeader.searchload--; }
 
- 					});
 
- 				} else {
 
- 					vueHeader.searchactive = false;
 
- 					vueHeader.searchres = [];
 
- 					vueHeader.searchsuggest = [];
 
- 					vueHeader.searchmovearr = [];
 
- 					vueHeader.searchload = 0;
 
- 				}
 
- 			},
 
- 			searchmoveidx: (val, oldVal) => {
 
- 				if(val > 0) {
 
- 					vueHeader.searchmovekey = (vueHeader.searchmovearr[val - 1]) ?
 
- 																			'res.' + vueHeader.searchmovearr[val - 1]._id :
 
- 																			'sug.' + vueHeader.searchmovearr[val - 1];
 
- 				} else {
 
- 					vueHeader.searchmovekey = '';
 
- 				}
 
- 			}
 
- 		},
 
- 		methods: {
 
- 			useSuggestion: (sug) => {
 
- 				vueHeader.searchq = sug;
 
- 			},
 
- 			closeSearch: () => {
 
- 				vueHeader.searchq = '';
 
- 			},
 
- 			moveSelectSearch: () => {
 
- 				if(vueHeader.searchmoveidx < 1) { return; }
 
- 				let i = vueHeader.searchmoveidx - 1;
 
- 				if(vueHeader.searchmovearr[i]) {
 
- 					window.location.assign('/' + vueHeader.searchmovearr[i]._id);
 
- 				} else {
 
- 					vueHeader.searchq = vueHeader.searchmovearr[i];
 
- 				}
 
- 			},
 
- 			moveDownSearch: () => {
 
- 				if(vueHeader.searchmoveidx < vueHeader.searchmovearr.length) {
 
- 					vueHeader.searchmoveidx++;
 
- 				}
 
- 			},
 
- 			moveUpSearch: () => {
 
- 				if(vueHeader.searchmoveidx > 0) {
 
- 					vueHeader.searchmoveidx--;
 
- 				}
 
- 			}
 
- 		}
 
- 	});
 
- 	$('main').on('click', vueHeader.closeSearch);
 
- }
 
 
  |