var has_dropdown_displayed = false;

var current_div_dropdown = null;
var current_destination_field = null;
var current_array_reference = null;
var current_value_displayed = null;
var current_display_scrollbar = null;
var current_form = null;
var current_form_autosubmit = false;

function displayDropdown(p_div_dropdown, p_destination_field, p_array_reference, p_value_displayed, p_display_scrollbar, p_form, p_autosubmit) { 
	
	// Close dropdown if needed
	if (has_dropdown_displayed) {
		closeDropdown(current_div_dropdown, current_destination_field, current_array_reference, current_value_displayed, current_display_scrollbar) ;
	}

	// Save values
	current_div_dropdown = p_div_dropdown;
	current_destination_field = p_destination_field;
	current_array_reference = p_array_reference;
	current_value_displayed = p_value_displayed;
	current_display_scrollbar = p_display_scrollbar;
	current_form = p_form;
	current_form_autosubmit = p_autosubmit;
	
	// Get HTML
	var inner_html = '';	
	
	if (p_display_scrollbar) {
		inner_html += '<div id="dropdown_scrollbar_container"><div id="dropdown_scrollbar_track"><div id="dropdown_scrollbar_handle"></div></div><div id="dropdown_scrollbar_content">';
	}
	
	inner_html += '<table cellpadding="0" cellspacing="0" width="100%">';	
	for(i = 0 ; i < array_dropdown[p_array_reference].length ; i++) {		
		if (array_dropdown[p_array_reference][i][1] == p_value_displayed) {
			inner_html += '<tr><td class="dropdown_item_selected" id="dropdown_item_selected">';
		} else {
			inner_html += '<tr><td class="dropdown_item">';
		}
		inner_html += '<a href="javascript:selectDropdownItem(\'' + p_div_dropdown + '\', \'' + p_destination_field + '\', \'' + p_array_reference + '\', \'' + array_dropdown[p_array_reference][i][0] + '\', \'' + array_dropdown[p_array_reference][i][1] + '\', ' + p_display_scrollbar + ')"><span>';
		inner_html += array_dropdown[p_array_reference][i][1];		
		inner_html += '</span></a>';
		inner_html += '</td></tr>';
	}
	inner_html += '</table>';
	
	if (p_display_scrollbar) {
		inner_html += '</div></div>';
	}

	// Display html
	document.getElementById(p_div_dropdown).innerHTML = inner_html;
	
	has_dropdown_displayed = true;
	
	if (p_display_scrollbar) {
		var scrollbar = new Control.ScrollBar('dropdown_scrollbar_content','dropdown_scrollbar_track');
		scrollbar.scrollTo($('dropdown_item_selected'),true);
	}
}


function selectDropdownItem(p_div_dropdown, p_destination_field, p_array_reference, p_value_selected, p_value_displayed, p_display_scrollbar) {
	document.getElementById(p_destination_field).value = p_value_selected;
	closeDropdown(p_div_dropdown, p_destination_field, p_array_reference, p_value_displayed, p_display_scrollbar)
	if (current_form_autosubmit) {
		document.getElementById(current_form).submit();
		display_loading_message();
	}
}


function closeDropdown(p_div_dropdown, p_destination_field, p_array_reference, p_value_displayed, p_display_scrollbar) {

	var inner_html;
	inner_html = '<a href="javascript:displayDropdown(\'' + p_div_dropdown + '\', \'' + p_destination_field + '\', \'' + p_array_reference + '\', \'' + p_value_displayed + '\', ' + p_display_scrollbar + ')"><span>';
	inner_html += p_value_displayed;	
	inner_html += '</span></a>';
	
	document.getElementById(p_div_dropdown).innerHTML = inner_html;
	
	has_dropdown_displayed = false;
}
