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="250"  border="1" cellspacing="0" cellpadding="0" >';
	
	for(var i=0;i<tab.length;i++) {
		var counter = 0;
		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++)	{
				counter= counter + 1;
				if(found==2 && lName.charAt(a+skipped)=='-') {
					skipped++;
					a--;
				}
				endInd++;
			}
		
			dfInner += '<tr><td width="250"  onmouseover="selectItem(this);" onmouseout="freeItem();" onclick="if(clickItem(this)){document.DrugInfoForm.submit();}" class="df_whitebar"><b>' + name.substring(0,endInd)+'</b>'+name.substring(endInd)+'</td></tr>';
			dfRetLength++;
			if(dfRetLength == 10) { break; }
		}
	}

	dfInner += '</table>';
}

function findConditions(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 = conditions[ch.charCodeAt(0)-'a'.charCodeAt(0)];
	dfInner = '<table id="df_searchTable" width="250" 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 width="200" onmouseover="selectCondition(this);" onmouseout="freeItem();" onclick="if(clickCondition(this)){document.DrugInfoForm.submit();}" class="df_whitebar"><b>'+name.substring(0,endInd)+'</b>'+name.substring(endInd)+'</td></tr>';
			dfRetLength++;

			if(dfRetLength == 10) {	break; }
		}
	}
	
	dfInner += '</table>';
}


	function changecss(theClass,element,value) 
	{

	 var cssRules;
	 if (document.all) 
	 {
	  cssRules = 'rules';
	 }
	 else if (document.getElementById) 
	 {
	  cssRules = 'cssRules';
	 }
	 var added = false;
	 for (var S = 0; S < document.styleSheets.length; S++)
	 {
	  for (var R = 0; R < document.styleSheets[S][cssRules].length; R++) 
	  {
	   if (document.styleSheets[S][cssRules][R].selectorText == theClass) 
	   {
	    if(document.styleSheets[S][cssRules][R].style[element])
	    {
		    document.styleSheets[S][cssRules][R].style[element] = value;
		    added=true;
			break;
	    }
	   }
	  }

	  if(!added)
	  {
	  if(document.styleSheets[S].insertRule)
	  {
		document.styleSheets[S].insertRule(theClass+' { '+element+': '+value+'; }',document.styleSheets[S][cssRules].length);
	  } 
	  else if (document.styleSheets[S].addRule) 
	  {
				document.styleSheets[S].addRule(theClass,element+': '+value+';');
	  }
	  }
	 }
	}


function hideTextBox()
{
	changecss('#df_searchDivLiCond','position','');
	var div1 =  document.getElementById('textbox');
	div1.style.display = 'none';
}

function showTextBox()
{
	changecss('#df_searchDivLiCond','position','relative');
	var div1 =  document.getElementById('textbox');
	div1.style.display = 'block';
}

function swapClass()
{
	var div11 =  document.getElementById('df_searchDiv3');
	var div22 =  document.getElementById('df_searchDiv4');
	div11.style.display = 'none';
	div22.style.display = 'none';
}

function hideDev(which)
{
	if( which == "drugs" ) {
		var div12 =  document.getElementById('df_searchDiv1');
		var div22 =  document.getElementById('df_searchDiv2');
	} else {
		var div12 =  document.getElementById('df_searchDiv3');
		var div22 =  document.getElementById('df_searchDiv4');
	}
	
	div12.style.display = 'none';
	div22.style.display = 'none';
}

function timedMsgDrugs() { var t=setTimeout("hideDev('drugs')",400); } 
function timedMsgConditions() {	var t=setTimeout("hideDev('conditions')",400); } 

function searchOnKeyUp(e)
{
	hideTextBox();
	
  	var div1 =  document.getElementById('df_searchDiv1');
	var div2 =  document.getElementById('df_searchDiv2');
	var agt=navigator.userAgent.toLowerCase();	
	var text =  document.getElementById("drugName");
	var table = document.getElementById('df_searchTable');
	var keynum;
	if(window.event) {
		keynum = e.keyCode;
	}else if(e.which) {
		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(selectedItem!=null) freeItem();

	findDrugs(text.value);

	if(dfRetLength==0) {
		div1.innerHTML = '';
		div2.innerHTML = '';
		div1.style.height = '2px';
		div1.style.width = '20px';
		div2.style.width = '250px';
		div1.style.display = 'block';
		div2.style.display = 'block';
		timedMsgDrugs();
		showTextBox();
		return true;
	}
	
	var table = document.getElementById('df_searchTable');
	if (dfRetLength<=6) {
		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;
}

function searchOnKeyUpConditions(e)
{	
	var div10 =  document.getElementById('df_searchDiv3');
	var div20 =  document.getElementById('df_searchDiv4');
	var agt=navigator.userAgent.toLowerCase();	
	var text =  document.getElementById("conditionName");
	var table = document.getElementById('df_searchTable');
	var keynum;
	if(window.event) {
		keynum = e.keyCode;
	}else if(e.which) {
		keynum = e.which;
	}
	
	if(keynum==38 || keynum==40) {
		if((div10.style.display=='block' || div20.style.display=='block') && table!=null) {
			if(selectedItem==null) {
				if(keynum==40) {
					selectCondition(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) {
					selectCondition(table.rows[tr+1].cells[0]);
				} else if(keynum==38 && tr>0) {
					selectCondition(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();
	
	findConditions(text.value);

	if(dfRetLength==0) {
		div10.innerHTML = '';
		div20.innerHTML = '';
		div10.style.height = '2px';
		div10.style.width = '20px';
		div20.style.width = '250px';
		div10.style.display = 'block';
		div20.style.display = 'block';
		timedMsgConditions();
		
		return true;
	}
	
	var table = document.getElementById('df_searchTable');
	if (dfRetLength<=6) {
		div20.innerHTML = '';
		div10.style.height = '2px';
		div10.innerHTML = dfInner;
		div10.style.display = 'block';
		div20.style.display = 'none';
	} else {
		div10.innerHTML = '';
		div20.innerHTML = dfInner;
		div20.scrollTop = 0;
		div20.style.display = 'block';
		div10.style.display = 'none';
	}
	return true;
}

var selectedItem = null;

function selectItem(obj)
{	
	if(selectedItem!=null) {
		freeItem();
	}
	
	selectedItem = obj;
	obj.className = 'df_bluebar';
	var div1 = document.getElementById('df_searchDiv1');
	var div2 = document.getElementById('df_searchDiv2');
	var table = document.getElementById('df_searchTable');
	
	if(table.parentNode == div2) {
		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 selectCondition(obj)
{
	if(selectedItem!=null) {
		freeItem();
	}
	
	selectedItem = obj;
	obj.className = 'df_bluebar';
	var div1 = document.getElementById('df_searchDiv3');
	var div2 = document.getElementById('df_searchDiv4');
	var table = document.getElementById('df_searchTable');
	
	if(table.parentNode == div2) {
		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_frame').className = 'df_frame_hidden';
		if(obj!=null && obj!=selectedItem) {
			selectItem(obj);
		}
		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("drugName").value = name;
			document.DrugInfoForm.goToTabDirectly.value = "true";
			return true;
		}
	} 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);
			document.getElementById('df_frame').className = 'df_frame';
			return true;
		}
	}

	return false;	
}

function get_radio_value()
{
	for (var i=0; i < document.DrugInfoForm.searchType.length; i++) {
   		if (document.DrugInfoForm.searchType[i].checked) {
	   		var rad_val = document.DrugInfoForm.searchType[i].value;
		    if( rad_val == "drug") {
		      	clickItem(null);
		    } else {
	      		clickCondition(null)
	      	}
   		}
	}
}

function clickCondition(obj)
{
	var div1 = document.getElementById('df_searchDiv3');
	var div2 = document.getElementById('df_searchDiv4');
	if(div1.style.display=='block' || div2.style.display=='block') {
		document.getElementById('df_frame').className = 'df_frame_hidden';
		if(obj!=null && obj!=selectedItem) {
			selectCondition(obj);
		}
		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("conditionName").value = name;
			swapClass();
			return true;
		}
	} 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);
			document.getElementById('df_frame').className = 'df_frame';
			return true;
		}
	}

	return false;	
}

function toggleText(action) 
{
	var selects = document.getElementsByTagName('select');
	if(action == 'hide') {
		for(i=0; i < selects.length; i++) {
			selects[i].style.display='none';
		}
	} else if(action == 'show') {
		for(i=0; i < selects.length; i++) {
			selects[i].style.display='';
		}
	}
}

function toggleSelects(action) 
{
	var selects = document.getElementsByTagName('select');
	if(action == 'hide') {
		for(i=0; i < selects.length; i++) {
			selects[i].style.display='none';
		}
	} else if(action == 'show') {
		for(i=0; i < selects.length; i++) {
			selects[i].style.display='';
		}
	}
}

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(); } ;
