application.select = {
	
	selectList: [
		{
			name: "perPageSelect",
			formater: null,
			onChange: application.search.pageSizeChanged
		},
		{
			name: "sortSelect",
			formater: null,
			onChange: application.search.sortChanged
		},
		{
			name: "columnManage",
			formater: application.display.columnManageFormater,
			onChange: application.display.table.columnChanged
		},
		{
			name: "actionSelect",
			formater: null,
			onChange: application.action.manageGroupAction
		}
	],
	
	init: function() {
		application.select.makeColumnSelect();
		application.select.makeActionList();
		
		for (var i=0; i<application.select.selectList.length; i++) {
			application.select.makeSelectMenu(application.select.selectList[i]);
		}
	},
	
	makeSelectMenu: function(selectObj) {
		$("select#" + selectObj.name).selectmenu(
			{
				format: selectObj.formater,
				select: selectObj.onChange
			}
		);
		$("select#" + selectObj.name).selectmenu("index",0);
	},
	
	makeColumnSelect: function() {
		var optionText = "<option value=''>Masquer la colonne...</option>";
		
		
		for (var i=0;i<application.display.table.columnList.length; i++) {
			if (i != 1 && i != 2) {
				var column = application.display.table.columnList[i];
				
				var isToDisplay = application.isAdmin || (!application.isAdmin && !column.isAdmin) ;
				
				if (isToDisplay) {
					var label = column.label + "--|--" + column.isVisible;
					
					optionText += "<option value='" + column.id + "'>" + label + "</option>";
					
				}
			}
		}
		
		$('select#columnManage').html(optionText);
		
	},
	
	updateColumSelect: function() {
		
		application.select.makeColumnSelect();
		
		$('select#columnManage').selectmenu();
	},
	
	makeIndividualLists: function(number) {
		for (var i=0; i<number; i++) {
			$('#individualActions_' + i).selectmenu({select:application.action.manageIndividualAction});
		}
	},
	
	makeActionList: function() {
		var optionList = "<option>Action...</option>";
		for (var i=0; i<application.action.groupActions.length; i++) {
			var currentAction = application.action.groupActions[i];
			var disableText = "";
			if (!currentAction.isShowWhenNotEditable && application.result.hasNotEditableSelected()) {
				disableText = " disabled='disabled'";
			}
			optionList += "<option" + disableText + ">" + currentAction.name + "</option>";
		}
		
		$("#actionSelect").html(optionList);
	},
	
	updateActionList: function() {
		application.select.makeActionList();
		$('select#actionSelect').selectmenu();
	},
	
	makeRequestorSelect: function() {
		var optionList = "<option>S&eacute;lectionner un champ...</option>";
		
		for (var i=0; i<application.display.table.columnList.length; i++) {
			var column = application.display.table.columnList[i];
			
			if (column.isInRequestor) {
				if ((!application.isAdmin && !column.isAdmin) || application.isAdmin) {
					var value = column.attributeName;
					if (value == "groupAttribute")
						value = groupAttributeFunction;
					optionList += "<option value='" + value + "'>" + column.label + "</option>";
				}
			}
		}
		
		$("#advancedSearchFieldList").html(optionList);
	},
	
	makeCriteriaSelect: function() {
		var i=0;
		while (document.getElementById("criteriaOperator_" + i)) {
			
			$('#criteriaOperator_' + i).selectmenu({select:application.search.setCriteriaFilter});
		
			if (i>0) {
				$('#criteriaLink_' + i).selectmenu({select:application.search.setCriteriaLink});
			}
			
			if (document.getElementById("criteriaValues_" + i)) {
				$('#criteriaValues_' + i).selectmenu({select:application.search.setCriteriaValueBySelect});
			}
		
			i++;
		}
	}
}
