var dfRetLength = 0;
var dfInner = '';
function findDrugs(input)
{
dfRetLength=0;
if(input==null || input=='') return;
if(input.length==1 && navigator.userAgent.match('^.*Safari.*$'))
{
var home = '';
try { home=dfHomePage; } catch(err) { };
if(home!='true') return;
}
var regInput = input.toLowerCase().replace(/\./g, '\\.');
var ch = regInput.charAt(0);
if(ch>'z' || ch<'a') return;
var tab = dict[ch.charCodeAt(0)-'a'.charCodeAt(0)];
dfInner = '<table id="df_searchTable" width="100%" border="0" cellspacing="0" cellpadding="0">';
for(var i=0;i<tab.length;i++)
{
var name = tab[i];
var lName = name.toLowerCase();
var found = 0;
if(lName.match('^'+regInput+'.*$')) found=1;
if(found==0 && lName.replace(/-/g, '').match('^'+regInput+'.*$')) found=2;
if(found>0)
{
var endInd = 0;
var skipped = 0;
for(var a=0;a<input.length;a++)
{
if(found==2 && lName.charAt(a+skipped)=='-')
{
skipped++;
a--;
}
endInd++;
}
dfInner += '<tr><td onmouseover="selectItem(this);" onmouseout="freeItem();" onclick="clickItem(this);" class="df_whitebar"><b>'+name.substring(0,endInd)+'</b>'+name.substring(endInd)+'</td></tr>';
dfRetLength++;
}
}
dfInner += '</table>';
}
function searchOnKeyUp(e)
{
var text = document.getElementById('df_searchInput');
var div1 = document.getElementById('df_searchDiv1');
var div2 = document.getElementById('df_searchDiv2');
var table = document.getElementById('df_searchTable');
var keynum;
if(window.event) //ie
{
keynum = e.keyCode;
}
else if(e.which) //netscape/ff/opera
{
keynum = e.which;
}
if(keynum==38 || keynum==40)
{
if((div1.style.display=='block' || div2.style.display=='block') && table!=null)
{
if(selectedItem==null)
{
if(keynum==40)
{
selectItem(table.rows[0].cells[0]);
}
}
else
{
var rows = table.rows;
var selTr = selectedItem.parentNode;
var ind = 0;
for(var tr=0;tr<rows.length;tr++)
{
if(selTr==rows[tr])
{
ind = tr;
break;
}
}
if(keynum==40 && tr<table.rows.length-1)
{
selectItem(table.rows[tr+1].cells[0]);
}
else if(keynum==38 && tr>0)
{
selectItem(table.rows[tr-1].cells[0]);
}
}
}
return true;
}
else if(keynum==13 && text.value.length > 0)
{
if(!clickItem(null)) return false;
}
if(selectedItem!=null) freeItem();
findDrugs(text.value);
if(dfRetLength==0)
{
div1.style.display = 'none';
div2.style.display = 'none';
return true;
}
var table = document.getElementById('df_searchTable');
if (dfRetLength<=11)
{
div2.innerHTML = '';
div1.style.height = '2px';
div1.innerHTML = dfInner;
div1.style.display = 'block';
div2.style.display = 'none';
}
else
{
div1.innerHTML = '';
div2.innerHTML = dfInner;
div2.scrollTop = 0;
div2.style.display = 'block';
div1.style.display = 'none';
}
return true;
}
var selectedItem = null;
function selectItem(obj)
{
if(selectedItem!=null)
{
freeItem();
}
selectedItem = obj;
obj.className = 'df_bluebar';
var div2 = document.getElementById('df_searchDiv2');
var table = document.getElementById('df_searchTable');
if(table.parentNode == div2) //scroll
{
if(div2.scrollTop + div2.offsetHeight < obj.offsetTop + obj.offsetHeight)
{
div2.scrollTop = obj.offsetTop + obj.offsetHeight - div2.offsetHeight + 2;
}
else if(obj.offsetTop<div2.scrollTop)
{
div2.scrollTop = obj.offsetTop;
}
}
}
function freeItem()
{
if(selectedItem!=null)
{
selectedItem.className = 'df_whitebar';
selectedItem = null;
}
}
function clickItem(obj)
{
var div1 = document.getElementById('df_searchDiv1');
var div2 = document.getElementById('df_searchDiv2');
if(div1.style.display=='block' || div2.style.display=='block')
{
document.getElementById('df_didyoumeanDiv').style.display = 'none';
document.getElementById('df_frame').className = 'df_frame_hidden';
if(obj!=null && obj!=selectedItem)
{
selectItem(obj);
}
if(selectedItem==null) //click first item
{
var table = document.getElementById('df_searchTable');
if(table!=null && table.rows.length>=1)
{
selectItem(table.rows[0].cells[0]);
}
}
if(selectedItem!=null)
{
var name = selectedItem.innerHTML;
name = name.substring(3);
var ind = name.indexOf('<');
name = name.substring(0,ind) + name.substring(ind+4);
document.getElementById('df_searchInput').value = name;
location.href = '/od/drugs/' + drugName2link(name) + '.htm';
return false;
}
}
else
{
var table = document.getElementById('df_searchTable');
if(table!=null && table.rows.length>=1)
{
var name = table.rows[0].cells[0].innerHTML;
name = name.substring(3);
var ind = name.indexOf('<');
name = name.substring(0,ind) + name.substring(ind+4);
var anchor = document.getElementById('df_didyoumeanDivLink');
anchor.innerHTML = name;
anchor.href = '/od/drugs/' + drugName2link(name) + '.htm';
document.getElementById('df_didyoumeanDiv').style.display = 'block';
document.getElementById('df_frame').className = 'df_frame';
}
}
return true;
}
function drugName2link(name)
{
var ret = name.toLowerCase().replace(/&.*?;/g, '-');
var ret2 = '';
for(var i=0; i<ret.length; i++)
{
var ch = ret.charAt(i);
if(ch>='a'&&ch<='z' || ch>='A'&&ch<='Z' || ch>='0'&&ch<='9') ret2 += ch;
else ret2 += '-';
}
ret = ret2.replace(/[^a-zA-Z0-9]+/g, '-');
if(ret.substring(ret.length-1)=='-') ret = ret.substring(0, ret.length-1);
return ret;
}
function hideSearchDiv()
{
document.getElementById('df_searchDiv1').style.display='none';
document.getElementById('df_searchDiv2').style.display='none';
}
function dfInit()
{
var dfBody = window.top.document.body?window.top.document.body:window.top.body;
var dfHide = function() { hideSearchDiv(); };
if (dfBody.attachEvent ) dfBody.attachEvent('click',dfHide);
dfBody.onclick = dfHide;
}
var dfOldEvt = window.onload;
window.onload = function() { if(dfOldEvt) dfOldEvt(); dfInit(); } ;
