		var showLink = function(link, show){
      if (show == true)
				$(link).setStyle('display', 'inline');
			else
				$(link).setStyle('display', 'none');
		};
		var enableInput = function(link, enabled){
			$(link).set('disabled', !enabled);
		};
		var freezeForm = function(form, enabled){
		  var setter;
		  if (enabled == false)
		    setter = function(input){enableInput(input, true);};
			else
		    setter = function(input){enableInput(input, false);};

			var elements = $(form).getElements('input');
			if (elements != null)
				elements.each(setter);
			elements = $(form).getElements('option');
			if (elements != null)
				elements.each(setter);
				
		};
				var selectForm = function(form, enabled){
		  var setter;
		  if (enabled == false)
		    setter = function(input){
					if (input.checked == true)
						input.click();
				};
			else
		    setter = function(input){
					if (input.checked == false)
						input.click();
				};
				
				
			var elements = $(form).getElements('input');
			if (elements != null)
				elements.each(setter);
		};
	var arrayToString = function(array)
		{
			var result = new String();

	  	var array_length = array.length;
	  	for (var i = 0; i < array_length; i++)
	  	  result += array[i] + ",";

	    return result;
		};

		var Critere = new Class({
			initialize: function(){
			  this.values = new Array();
			},

			toString: function(){
			  return arrayToString(this.values);
			},

			include: function(value){
			  this.values.include(value);
			},
			
			contains: function(value){
			  return this.values.contains(value);
			},

			erase: function(value){
				this.values.erase(value)
			},

			empty: function(){
			  this.values.empty();
			},
			
			split: function(string, pattern){
			  this.values = string.split(pattern);
			  this.values.pop();
			},
			
			length: function(){
			  return this.values.length;
			}
		});

		var getAllCriteresValues = function(){
			return "&sujets=" + document.getElementById('sujetsI').value;
				+ "&chapitres=" + chapitres.toString();
		};
		
	
		var updateReponseCount = function(){
		  $('search_reponse_count').empty();
			reponseCount.load('search_reponse_count', urlQR, getAllCriteresValues() + '&updateReponseCount=true');
		};

		var pushForm = function(array, formName){
			if (criteres.length > 0)
				freezeForm('search_reponse_element_sujets', true);		
			else
			showLink('search_reponse_result_delete_link', true);
			pile.pushForm(this.urlQR + "&form=" + formName, getAllCriteresValues());
			criteres.push({'array':array, 'name':formName});
			showLink('search_reponse_result_' + formName + '_link', false);
			
		};
		
		
		var popForm = function(){
		  pile.popForm();
		  var critere = criteres.pop();
		  critere.array.empty();
			showLink('search_reponse_result_' + critere.name + '_link', true);
			freezeForm('search_reponse_element_sujets', false);
			showLink('search_reponse_result_delete_link', false);
		};
				var saveResult = function(){
				var tt = document.getElementById('sujetsI').value;
			$('search_reponse_result_sujets').set('value', tt);	
			$('search_reponse_result_chapitres').set('value', chapitres.toString());
		};

		var addSujets = function(checked, id){
		  		sujets.empty();
				sujets.include(id);
		};

		
		var addRemoveChapitres = function(checked, id)
		{
		  if (checked)
		    chapitres.include(id);
			else
				chapitres.erase(id);
		};

		var urlQR = '/cs/ContentServer?pagename=Mairie-conseils/Page/RechercheReponses';
		var criteres = new Array();
		var reponseCount = new AjaxLoader();
		

		
