Fixed search timer, can search with enter, can press ESC to quit search

This commit is contained in:
Nixo
2014-10-30 23:17:40 +01:00
parent 10597d7b5b
commit e7ca421c3d
2 changed files with 108 additions and 96 deletions

View File

@@ -1,102 +1,113 @@
var old_input="";
var timer = 0;
$(document).ready(function()
{
{
$("#search").focus();
$("#search").focus();
$('#base').bind("keyup keypress", function(e) {
var code = e.keyCode || e.which;
if (code == 13) {
e.preventDefault();
return false;
}
});
var old_input="";
$(".search_input").focus();
setTimeout(function(){
$(".search_input").keyup(function()
$('#base').bind("keyup keypress", function(e) {
var code = e.keyCode || e.which;
if (code == 13) {
e.preventDefault();
return false;
}
});
$(".search_input").focus();
$(".search_input").keyup(function(event) {
var search_input = $(this).val();
if(search_input.length < 3){$("#results").html("");}
if(event.keyCode == 13){
search(search_input);
}else if(event.keyCode == 27){
$("#results").html("");
}else{
timer=100;
}
});
setInterval(function(){
timer--;
if(timer==0){
search($(".search_input").val());
}
}, 1);
});
function search(search_input){
$("#results").html('');
if(search_input != ""){
var keyword= encodeURIComponent(search_input);
var yt_url='http://gdata.youtube.com/feeds/api/videos?q='+keyword+'&format=5&orderby=relevance&max-results=25&v=2&alt=jsonc';
$.ajax({
type: "GET",
url: yt_url,
dataType:"jsonp",
success: function(response)
{
var search_input = $(this).val();
if(search_input.length < 3){
$("#results").html("");
if(response.data.items)
{
$.each(response.data.items, function(i,data)
{
if(data.duration > 720 && longS == 0){return;}
if(data["category"] == "Music" || music == 1){
var video_title=encodeURIComponent(data.title).replace(/'/g, "\\\'");
var views=data.viewCount;
var video_thumb = "http://i.ytimg.com/vi/"+data.id+"/default.jpg";
var length = Math.floor(data.duration/60)+":"+(data.duration-Math.floor(data.duration / 60)*60);
var finalhtml="<div id='result' class='result' onclick=\"submit('"+data.id+"','"+video_title+"');\">"+
"<img src='"+video_thumb+"' class='thumb'>"+
"<div id='title'>"+data.title+""+
"<div class='result_info'>"+views+" views • "+length+"</div></div></div>";
//+data.uploader+" • "+
$("#results").append(finalhtml);
}
});
}
if(search_input != old_input){
old_input=search_input;
$("#results").html('');
if(search_input != ""){
var keyword= encodeURIComponent(search_input);
var yt_url='http://gdata.youtube.com/feeds/api/videos?q='+keyword+'&format=5&orderby=relevance&max-results=25&v=2&alt=jsonc';
$.ajax({
type: "GET",
url: yt_url,
dataType:"jsonp",
success: function(response)
{
if(response.data.items)
{
$.each(response.data.items, function(i,data)
{
if(data.duration > 720 && longS == 0){return;}
if(data["category"] == "Music" || music == 1){
var video_title=encodeURIComponent(data.title).replace(/'/g, "\\\'");
var views=data.viewCount;
var video_thumb = "http://i.ytimg.com/vi/"+data.id+"/default.jpg";
var length = Math.floor(data.duration/60)+":"+(data.duration-Math.floor(data.duration / 60)*60);
var finalhtml="<div id='result' class='result' onclick=\"submit('"+data.id+"','"+video_title+"');\">"+
"<img src='"+video_thumb+"' class='thumb'>"+
"<div id='title'>"+data.title+""+
"<div class='result_info'>"+views+" views • "+length+"</div></div></div>";
//+data.uploader+" • "+
$("#results").append(finalhtml);
}
});
}
else
{
$("#video").html("<div id='no'>No Video</div>");
}
}
});
}
}
});
}, 300);
});
function submit(id,title){
console.log($.ajax({
type: "GET",
url: "php/change.php",
async: false,
data: "v="+id+"&n="+title+"&pass="+adminpass,
success: function() {
console.log("added "+id);
document.getElementById("search").value = "";
$("#search").addClass("success");
$("#results").html('');
//updateList();
},
error: function(){
console.log("error in adding");
document.getElementById("search").value = "";
$("#search").addClass("error");
$("#results").html('');
}
}).responseText);
$("#search").focus();
setTimeout(function(){
$("#search").removeClass("success");
$("#search").removeClass("error");
},1500);
updateList();
else{ $("#video").html("<div id='no'>No Video</div>");}
}
});
}
}
function submit(id,title){
console.log($.ajax({
type: "GET",
url: "php/change.php",
async: false,
data: "v="+id+"&n="+title+"&pass="+adminpass,
success: function() {
console.log("added "+id);
document.getElementById("search").value = "";
$("#search").addClass("success");
$("#results").html('');
//updateList();
},
error: function(){
console.log("error in adding");
document.getElementById("search").value = "";
$("#search").addClass("error");
$("#results").html('');
}
}).responseText);
$("#search").focus();
setTimeout(function(){
$("#search").removeClass("success");
$("#search").removeClass("error");
},1500);
updateList();
}
// if(reply=="added"){$("#search").removeClass('success'); $("#search").addClass('success');}