// v1.7.3.7.a
/*
 * FILTROS
 */
__filtersArray = new Array(); 
__visibleArray = new Array();
__visibleFilters = new Array();

// ***************************************************************************
// FUNCTION: void addToFilterArray(string IUId, string filterId, string tabId)
// DESCRIPTION: adds a filter to the filter array
// ***************************************************************************
function addToFilterArray(IUId, filterId, tabId) {
	var filter = searchElementById(filterId);
	var tab = searchElementById(tabId);
	var arrayAux = [IUId, filter, tab];
	__filtersArray[__filtersArray.length] = arrayAux;	
}

// ***************************************************************************
// FUNCTION: void addToVisibleFiltersArray(string IUId, string filterId)
// DESCRIPTION: adds a filter to the filter array
// ***************************************************************************
function addToVisibleFiltersArray(IUId, filterId) {
	var filter = searchElementById(filterId);
	for (var i = 0; i < __visibleFilters.length; i++) {
		if (__visibleFilters[i][0] == IUId) {
			__visibleFilters[i][1] = filter;
			return;
		}
	}
	var arrayAux = [IUId, filter];
	__visibleFilters[__visibleFilters.length] = arrayAux;	
}
// ***************************************************************************

// ***************************************************************************
// FUNCTION: element getVisibleFilter(string IUTagId)
// DESCRIPTION: returns the filter been shown
// ***************************************************************************
function getVisibleFilter(IUTagId) {
	var pos = __visibleFilters.length;
	for (var i = 0; i < __visibleFilters.length; i++) {
		if (__visibleFilters[i] != null && __visibleFilters[i][0] == IUTagId) {
			return __visibleFilters[i][1];
		}
	}
	return null;
}
// ***************************************************************************

// ***************************************************************************
// FUNCTION: void setFilterVisibility(string IUTagId, element filter, boolean visibility)
// DESCRIPTION: hides or shows the sepecified filter from the specified IU.
// ***************************************************************************
function setFilterVisibility(IUTagId, filter, visibility) {
	if ((filter == null)||(IUTagId == null)) {
		return;
	}

	var pos = __visibleFilters.length;
	for (var i = 0; i < __visibleFilters.length; i++) {
		if (__visibleFilters[i] != null && __visibleFilters[i][0] == IUTagId) {
			pos = i;
			break;
		}
	}

	if (visibility) {
		// Show
		setClass(filter, "filterVisible");
		if (pos == __visibleFilters.length) {
		    var arrayAux = [IUTagId, filter]
		    __visibleFilters[pos] = arrayAux;
		} else {
		    __visibleFilters[pos][1] = filter;
		}
		for (var i = 0; i < __visibleArray.length; i++) {
			if (__visibleArray[i][0] == IUTagId) {
				var visibleFilterId = searchElementById(__visibleArray[i][1])
				if (visibleFilterId != null) {
					visibleFilterId.value = filter.id;
					break;
				}
			}
		}

	} else {
		// Hide
		if (pos != __visibleFilters.length) {
			__visibleFilters[pos][1] = null;
		}
		setClass(filter, "filterInvisible");
	}
}

// ***************************************************************************
// FUNCTION: void showFilter(string IUTagId, string filterId)
// DESCRIPTION: hides the displayed filter and shows the sepecified one.
// ***************************************************************************
function showFilter(IUTagId, filterId) {
	var filterEl = searchElementById(filterId);
	var filterShown = getVisibleFilter(IUTagId);

	setFilterVisibility(IUTagId, filterShown, false);
	setFilterVisibility(IUTagId, filterEl, true);
	var oldTab = getFilterTab(IUTagId, filterShown);
	var newTab = getFilterTab(IUTagId, filterEl);
	
	setClass(oldTab, "item");	
	setClass(newTab, "selected");
}
// ***************************************************************************

// ***************************************************************************
// FUNCTION: element getFilterTab(string IUTagId, element filter)
// DESCRIPTION: returns the the tab of the filter
// ***************************************************************************
function getFilterTab(IUTagId, filter) {
	var pos = __filtersArray.length;
	for (var i = 0; i < __filtersArray.length; i++) {
		if (__filtersArray[i] != null && __filtersArray[i][0] == IUTagId && __filtersArray[i][1] == filter) {
			return __filtersArray[i][2];
		}
	}
	return null;
}
// ***************************************************************************
function initFilters() {
	for (var i = 0; i < __visibleArray.length; i++) {
		var IUTagId = __visibleArray[i][0];
		var visibleFilterId = searchElementById(__visibleArray[i][1])
		if ((visibleFilterId != null) && (visibleFilterId.value != "")) {
			showFilter(IUTagId, visibleFilterId.value);
		}
	}
}
// DESCRIPTION: Control the key (ENTER) in the filters
function shortcut(evt, control)
{
	var key;
	var navegador = navigator.appName
	if (navegador == "Microsoft Internet Explorer"){
		key = (window.event.which) ? window.event.which : window.event.keyCode;
	}
	else {
		key = evt.which;
	}
	if (key == 13) { // INTRO 
			var button = document.getElementById(control);
			button.focus();
			button.click();
			return false;
	}
	else {
		return true;
	}
}

