ud+
This commit is contained in:
249
directadmin-1.62.4/data/skins/enhanced/livesearch.js
Normal file
249
directadmin-1.62.4/data/skins/enhanced/livesearch.js
Normal 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';
|
||||
}
|
||||
Reference in New Issue
Block a user