This commit is contained in:
tuend-work
2025-11-12 23:10:39 +07:00
parent bd58de709f
commit 2e16431888
953 changed files with 57002 additions and 0 deletions

View File

@@ -0,0 +1,249 @@
var xmlhttp;
var loadedat=0;
var ajax_highlight = new Array();
function setLoaded()
{
var d = new Date();
loadedat = d.getTime();
}
function hideit(delayed, command)
{
if (delayed == 1)
{
return setTimeout("hideit(0, '"+command+"')", 1000);
}
document.getElementById("livesearch").innerHTML="";
document.getElementById("livesearch").style.border="0px;";
document.getElementById("livecontainer").style.visibility="hidden";
if (command != '')
ajax_highlight[command] = -1;
return;
}
function is_visible(id)
{
if (document.getElementById(id).style.visibility == "visible")
{
return 1;
}
return 0;
}
function handle_key_press(key_pressed, command)
{
if (ajax_highlight[command] === undefined)
ajax_highlight[command] = -1;
var selected = ajax_highlight[command];
if (key_pressed == 9 || key_pressed == 13 || key_pressed == 32)
{
if (is_visible("livecontainer") && selected >= 0)
{
//9 = tab
//13 enter
//32 space
var id_name = command+'-'+selected;
var item_element = document.getElementById(id_name);
if (item_element != null)
{
if (typeof item_element.onclick == 'function')
{
item_element.onclick();
}
else if (typeof item_element.click == 'function')
{
item_element.click();
}
hideit(0, command);
}
}
return;
}
if (key_pressed == 38 || key_pressed == 40)
{
var old_selected = selected;
if (key_pressed == 38) //up
{
selected = (+selected) - 1;
}
if (key_pressed == 40) //down
{
selected = (+selected) + 1;
}
if (selected == -2)
selected = -1;
//alert("new selected will be "+selected);
if (selected >= 0)
{
var id_name = command+'-'+selected;
var item_element = document.getElementById(id_name);
if (item_element == null)
{
return; //nope, doesn't exist. Can't go here.
}
if (old_selected >= 0)
{
var old_id_name = command+'-'+old_selected;
var old_item_element = document.getElementById(old_id_name);
if (old_item_element != null)
{
outof(old_item_element, 0);
}
}
over(item_element,0);
}
}
}
function showResult(str, command)
{
var d = new Date();
if (is_visible("livecontainer"))
{
var key_pressed = document.layers ? event.which : document.all ? event.keyCode : document.getElementById ? event.keyCode : 0;
if (key_pressed == 38 || key_pressed == 40 || key_pressed == 9 || key_pressed == 13 || key_pressed == 32)
{
handle_key_press(key_pressed, command);
return;
}
}
//we need to ensure at least 200 milliseconds has passed because keyup from form submission can happen after the next page has loaded.
if (str.length < 2 || d.getTime() - loadedat < 200 || loadedat == 0)
{
return hideit(0, command);
}
xmlhttp=GetXmlHttpObject()
if (xmlhttp==null)
{
alert ("Your browser does not support XML HTTP Request");
return;
}
str = str.replace(/&/, '%26');
var url=command;
url=url+"?query="+str;
url=url+"&sid="+Math.random();
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}
function stateChanged()
{
if (xmlhttp.readyState==4)
{
document.getElementById("livesearch").innerHTML=xmlhttp.responseText;
document.getElementById("livesearch").style.border="1px solid #A5ACB2";
//new
if (document.getElementById("livesearch").innerHTML == "")
{
hideit(0, '');
}
else
{
document.getElementById("livecontainer").style.visibility="visible";
}
}
}
function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
{
// code for IE7+, Firefox, Chrome, Opera, Safari
return new XMLHttpRequest();
}
if (window.ActiveXObject)
{
// code for IE6, IE5
return new ActiveXObject("Microsoft.XMLHTTP");
}
return null;
}
function get_ajax_name(id_str)
{
if (id_str == "")
return 'default';
var id_split = id_str.split('-', 2);
var ajax_name = id_split[0];
if (ajax_name != "")
return ajax_name;
return 'default';
}
function get_ajax_number(id_str)
{
if (id_str == "")
return 0;
var id_split = id_str.split('-', 2);
var ajax_number = id_split[1];
if (ajax_number != "")
return ajax_number ;
return 0;
}
function over(div, is_mouse)
{
div.className='hoverin';
var ajax_name = get_ajax_name(div.id);
var ajax_number = get_ajax_number(div.id);
if (ajax_highlight[ajax_name] === undefined)
ajax_highlight[ajax_name] = -1;
var old_selected = ajax_highlight[ajax_name];
ajax_highlight[ajax_name] = ajax_number;
if (is_mouse == 0) return;
if (old_selected == -1) return;
var old_name = ajax_name+'-'+old_selected;
var old_element = document.getElementById(old_name);
if (old_element == null) return;
old_element.className='hoverout';
}
function outof(div, is_mouse)
{
div.className='hoverout';
}