var filterCount = 0;
var MAX_FILTERS = 5;

var chkFilters = new Array();
chkFilters[0]="cmbField";
chkFilters[1]="cmbCondition";
chkFilters[2]="txtFilter";

var LAYER_FILTER = "divFilter";
var LAYER_HEADER = "divHeader";

var LAYER_BUTTON_ADD = "imgAdd";
var LAYER_BUTTON_ROLL = "imgDelete";
var IMAGE_BUTTON_ADD = "img/mas.gif";
var IMAGE_BUTTON_ROLL = "img/menos.gif";


//Add a filter row (and header if necessary)
function addFilter(){
	var idFilter = getLayerHide();

	if (idFilter != -1){
		objDiv = document.getElementById(LAYER_FILTER + idFilter);
		objDiv.style.display = 'inline';
	}else{
		alert("El número máximo de filtros que se puede establecer es " + MAX_FILTERS);
	}
	showButtons();
}

//Delete a filter row
//@param strId:the row´s id to delete
function deleteFilter(idDiv){
	var objDiv = document.getElementById(LAYER_FILTER + idDiv);
	if (objDiv){
		var objText = document.getElementById(chkFilters[2] + idDiv);
		if (objText) objText.value="";
		objDiv.style.display='none';
		filterCount=filterCount-1;
	}else{
		//alert("No se puede referenciar la capa con id=" + LAYER_FILTER + idDiv + ".");
	}
	showButtons();
}

//Check the buttons to show...
function showButtons(){
	var iVisible = 0;
	var iCount = 0;
	var objDiv = null
	var objAdd = null
	var objDelete = null;

	for (var i=0;i<MAX_FILTERS;i++){
		objDiv = document.getElementById(LAYER_FILTER + i);
		objAdd = document.getElementById(LAYER_BUTTON_ADD + i);
		objDelete = document.getElementById(LAYER_BUTTON_ROLL + i);
		iCount = countVisible();
		if (objDiv){
			if (objDiv.style.display == 'inline'){
				iVisible = iVisible + 1;
				if (iCount==MAX_FILTERS){
					if (iVisible==MAX_FILTERS){
						objAdd.style.visibility = 'hidden';
						objDelete.style.display = 'inline';
					}else{
						objAdd.style.display = 'inline';
						objDelete.style.display = 'inline';
					}
				}else{
					if (iCount==1){
						objAdd.style.display = 'inline';
						objDelete.style.visibility = 'hidden';
					}else{
						objAdd.style.display = 'inline';
						objDelete.style.display = 'inline';
					}
				}

			}
		}
	}
}

//Return the number of filters that are vsible...
function countVisible(){
	var iCount=0;
	for (var i=0;i<MAX_FILTERS;i++){
			var objDiv = document.getElementById(LAYER_FILTER + i);
			if ((objDiv) && (isOpen(objDiv))){
					iCount++;
			}
	}
	return iCount;
}

//Return the first layer that´s hidden...
function getLayerHide(){
	var iResult=-1;
	for (var i=0;i<MAX_FILTERS;i++){
			var objToSearch = document.getElementById(LAYER_FILTER + i);
			if (objToSearch && objToSearch.style.display == 'none'){
				iResult = i;
				//alert(idFilter);
				break;
			}
	}
	return iResult;
}
