var liveSearchNewThreadInit = function(auto_focus_out) { var query = $('input#id_title.questionTitleInput'); var prev_text = $.trim(query.val()); var search_url = askbot['urls']['apiGetQuestions']; var running = false; var q_list_sel = 'question-list'; //id of question listing div running = false; var ask_page_eval_handle; query.keyup(function(e){ if (running === false){ clearTimeout(ask_page_eval_handle); ask_page_eval_handle = setTimeout(eval_query, 400); } }); query.focusout(function(){ if (auto_focus_out){ var restart_query_handle = setTimeout(restart_query, 500); restart_query_handle(); } }); var restart_query = function(){ /* restart query */ $('#' + q_list_sel).css('height',0).children().remove(); running = false; prev_text = ''; } var eval_query = function(){ cur_text = $.trim(query.val()); if (cur_text !== prev_text && running === false){ if (cur_text.length >= askbot['settings']['minSearchWordLength']){ send_query(cur_text); } else if (cur_text.length === 0){ restart_query(); } } }; var render_result = function(data, text_status, xhr){ var container = $('#' + q_list_sel); container.fadeOut(200, function() { container.children().remove(); $.each(data, function(idx, question){ var url = question['url']; var title = question['title']; var answer_count = question['answer_count']; var list_item = $('

'); var count_element = $(''); count_element.html(answer_count); list_item.append(count_element); var link = $(''); link.attr('href', url); link.attr('target', '_blank'); list_item.append(link); title_element = $(''); title_element.html(title); link.append(title) container.append(list_item); }); container.show();//show just to measure var unit_height = container.children(':first').outerHeight(); container.hide();//now hide if (data.length > 5){ container.css('overflow-y', 'scroll'); container.css('height', unit_height*5 + 'px'); } else { container.css('height', data.length*unit_height + 'px'); container.css('overflow-y', 'hidden'); } container.fadeIn(); }); }; var send_query = function(query_text){ prev_text = query_text; running = true; $.ajax({ url: search_url, dataType: 'json', success: render_result, complete: function() { running = false; eval_query(); }, data: {query: query_text}, cache: false }); } };