Hi Bob,
Thanks for your reply. My site is trick-soft.com/searchable (instant
search in the bottom of header).
Here is the js code which use the sortable.js (changed),
function search_result()
{
document.getElementById(search-box-div).style.visibility
=
visible;
document.getElementById(search-box-div).style.display
=
block;
document.getElementById(bodyDiv).style.visibility
= hidden;
sortableManager.my_d.addCallback(sortableManager.initWithData);
if ( document.forms['form1'].elements['search_item'].value != '' ) {
search_item =
document.forms['form1'].elements['search_item'].value;
}
search_item = search_item.toLowerCase();
//else search_item = 'all';
//else alert('No keyword is given');
var domains = [];
if ( document.forms['form1'].elements['search_ingredients'].checked
== true ) {
ind = 6;
} else {
ind = 1;
}
for (var i = 0; i sortableManager.rows.length; i++) {
var row = sortableManager.rows[i];
var domain = {};
//if ( search_item == 'all' || search_item == row[ind] )
json_item = row[ind].toLowerCase();
if ( json_item.indexOf(search_item) = 0
( json_item.indexOf(search_item) == 0 ||
json_item[json_item.indexOf(search_item)-1] == ' ') ) {
for (var j = 0; j sortableManager.cols.length; j++) {
if ( j == 1 ) {
domain[sortableManager.cols[j]] = 'a
href=drink-details.php?
drink_id='+row[0]+''+row[j]+'/a';
} else {
domain[sortableManager.cols[j]] =
row[j];
}
}
domains.push(domain);
}
}
sortableManager.data.domains = domains;
var order = sortableManager.sortState[sortableManager.sortkey];
if (typeof(order) == 'undefined') {
order = true;
}
sortableManager.drawSortedRows(sortableManager.sortkey, order,
false);
// if anything goes wrong, except for a simple cancellation,
// then log the error and show the logger
/*alert(sortableManager.my_d);
sortableManager.my_d.addErrback(function (err) {
if (err instanceof CancelledError) {
return;
}
logError(err);
logger.debuggingBookmarklet();
});*/
// changeLink();
}
function changeLink()
{
table = getElement('sortable_table');
this.tbody = table.getElementsByTagName('tbody')[0];
// every row
var rows = this.tbody.getElementsByTagName('tr');
for (var i = 0; i rows.length; i++) {
// every cell
var row = rows[i];
var cols = row.getElementsByTagName('td');
var obj = scrapeText(cols[0]);
obj = obj.replace(/lt;/g, ).replace(/gt;/g, );
cols[0].innerHTML = obj;
}
}
* End of js code
**
here is the sortable.js code,
processMochiTAL = function (dom, data) {
/***
A TAL-esque template attribute language processor,
including content replacement and repeat
***/
// nodeType == 1 is an element, we're leaving
// text nodes alone.
if (dom.nodeType != 1) {
return;
}
var attr;
// duplicate this element for each item in the
// given list, and then process the duplicated
// element again (sans mochi:repeat tag)
attr = getAttribute(dom, mochi:repeat);
if (attr) {
dom.removeAttribute(mochi:repeat);
var parent = dom.parentNode;
attr = attr.split( );
var name = attr[0];
var lst = valueForKeyPath(data, attr[1]);
if (!lst) {
return;
}
for (var i = 0; i lst.length; i++) {
data[name] = lst[i];
var newDOM = dom.cloneNode(true);
processMochiTAL(newDOM, data);
parent.insertBefore(newDOM, dom);
}
parent.removeChild(dom);
return;
}
// do content replacement if there's a mochi:content attribute
// on the element
attr = getAttribute(dom, mochi:content);
if (attr) {
dom.removeAttribute(mochi:content);
replaceChildNodes(dom, valueForKeyPath(data, attr));
return;
}
// we make a shallow copy of the current list of child nodes
// because it *will* change if there's a mochi:repeat in there!
var nodes = list(dom.childNodes);
for (var i = 0; i nodes.length; i++) {
processMochiTAL(nodes[i], data);
}
};
mouseOverFunc = function () {