var selection_index = -1;
var last_selected_row = false;
var context = null;					// either 'pharmacy' or null
	
	
	
	// new -----------------------------------
	
	function show_feedback( visible )
	{
		var feedback = document.getElementById('feedback');
		
		if( feedback )
		{
			if( visible )
			{
				feedback.style.display = 'block';
			}
			else
			{
				feedback.style.display = 'none';
			}
		}
	}
	
	// old -----------------------------------
	function findAlternatives(ddid, index)
	{
		// make the target div
		var target_div = document.getElementById('alternatives_menu');
		
		if(!target_div)
		{
			// set up the div
			target_div = document.createElement('div');
			target_div.id = 'alternatives_menu';
			document.body.appendChild(target_div);
			
			// send a request for a menu
			if (context == 'pharmacy') {
				load(root + 'Ajax/pa_alternatives', 'alternatives_menu', 'ddid=' + ddid + '&index=' + index );
			} else {
				load(root + 'Ajax/alternativesMenu', 'alternatives_menu', 'ddid=' + ddid + '&index=' + index );
			}
		}
	}
	
	function cancel_alternatives()
	{
		var target_div = document.getElementById('alternatives_menu');
		
		// make the object's parent disown it
		if( target_div )
		{
			target_div.parentNode.removeChild(target_div);
		}
	}
	
	function start_spinner()
	{
		var spinner = document.getElementById( 'spinner' );
		
		if( spinner )
		{
			spinner.style.display = 'block';
			spinner.style.visibility = 'visible';
			
			setTimeout('document.getElementById("spinner").src = "images/busy/large-spinner.gif"', 200);
		}
	}
	
	function submit_form(form_id)
	{
		var form = document.getElementById(form_id);
		
		if( form )
		{
			form.submit();
			start_spinner();
		}
	}
	
	function set_up_event_handler(ctx)
	{
		// set up the input area
		
		context = ctx;
		var input_area = document.getElementById('drug_lookup_input');
		input_area.onkeyup = lookup;
		input_area.focus();
		
		var feedback_area = document.getElementById('feedback');
		feedback_area.onclick = escape_event;
		
		// set up cancel by clicking outside the input area
		document.body.onclick = close_feedback;
	}
	
	function escape_event(e)
	{
		if (!e) var e = window.event;
		e.cancelBubble = true;
		if (e.stopPropagation) e.stopPropagation();
	}
	
	function close_feedback(e)
	{
		show_feedback( false );
		//cancel_alternatives();
	}
	
	function show_item(id, visible)
	{
		var item = document.getElementById(id);
		
		if(visible)
		{
			item.style.display = 'block';
		}
		else
		{
			item.style.display = 'none';
		}
	}
	
	function lookup(e)
	{
	
		/* get the keycode of the key pressed */
		if (window.event) {
			e = window.event;
		}
		
		var key_code = e.keyCode;
		
		/* -- Filter Keypresses -- */
		
		/* alphanumeric */
		if ((key_code > 48 && key_code < 91) || key_code == 8 || key_code == 46) {
			/* perform the lookup */
			search_string = document.getElementById('drug_lookup_input').value;
			
			if (search_string.length > 2) {
				// unhide the div
				document.getElementById('feedback').style.display = 'block';
				load(root + 'Ajax/findDrug', 'feedback', 's=' + search_string + '&context=' + context);
			}
			else
			{
				document.getElementById('feedback').style.display = 'none';
			}
		} 
		else if (key_code == 38)
		{
			/* up arrow */
			move_menu_selection(-1);
		} 
		else if (key_code == 40)
		{
			/* down arrow */
			move_menu_selection(1);
		}
		else if(key_code == 13) 
		{
			/* enter/return key */
			send_selection();	
		}
		else if (key_code == 27)
		{
		   /* escape */
		   reset_menu();
		}
	}
	
	function move_menu_selection(delta)
	{
		selection_index += delta;
		
		var selected_row = get_current_selection();
		
		if(selected_row)
		{
			if(last_selected_row)
			{
				last_selected_row.className = '';
			}
			
			selected_row.className = 'highlight';
			last_selected_row = selected_row;
		}
		else 
		{
		   selection_index -= delta;
	   }
	}
	
	function send_selection()
	{
		var selected_row = get_current_selection();
		
		if(selected_row.click)
		{
			// ie
			selected_row.click();
		}
		else
		{
			// ff
			eval(selected_row.getAttribute('onclick'));
		}
		
		// clear the selection index
		selection_index = -1;
	}
	
	function reset_menu()
	{
	   document.getElementById('feedback').style.display = 'none';
	   document.getElementById('feedback').innerHTML = '';
		selection_index = -1;
		last_selected_row = false;
	}
	
	function get_current_selection()
	{
		var selected_id = 'row_' + selection_index;
		return document.getElementById(selected_id);
	}
	
	function set_input(ddid)
	{
		//var input_box = document.getElementById('input_area');
		
		// set up the ajaxcontroller for the next step
		if(context == 'pharmacy')
		{
			// load(root + 'ajax/pa_addDrug', 'feedback', 'ddid=' + ddid);
			window.location = root + 'Pharmacy/addDrug?ddid=' + ddid;
		}
		else
		{
			load(root + 'ajax/selectDosage', 'feedback', 'ddid=' + ddid);
		}
	}
	
	function choose_script(drug_name, ddid, method, strength, unit, mode)
	{
		load(root + 'Ajax/Lookup', 'feedback', 'drugname=' + drug_name + '&ddid=' + ddid + 
		'&method=' + method +
		'&strength=' + strength +
		'&unit=' + unit +
		'&mode=' + mode);
	}
	
	/**
	 * Toggle the step-therapy precursor list
	 */
	function toggleSummary(para, step_id)
	{
		step_summary = document.getElementById(step_id);
		
		if (step_summary.style.display == 'block') {
			// the summary is currently shown, hide it
			para.attributes['class'].value = "subscript disclosure_closed";
			step_summary.style.display = 'none';
		} else {	
			// the summary is currently hidden, show it.
			para.attributes['class'].value = "subscript disclosure_open";
			step_summary.style.display = 'block';
		}
	}
	
	function summary_switch( target )
	{
 		document.location = root + 'pharmacy/find_drug/' + target;
	}
	
	function showCCMsg(uid)
	{
		short_msg = document.getElementById('cc_short_' + uid);
		full_msg = document.getElementById('cc_full_' + uid);
		
		short_msg.style.display = 'none';
		full_msg.style.display = 'block';
	}
	
	
	function hideCCMsg(uid)
	{
		short_msg = document.getElementById('cc_short_' + uid);
		full_msg = document.getElementById('cc_full_' + uid);
		
		full_msg.style.display = 'none';
		short_msg.style.display = 'block';	
	}
	