/**
 * 
 * @param {Object} element Id de l'input
 * @param {Object} update Id du conteneur des résultats
 * @param {Object} instanceName Nom de l'instance xAjax.Autocompleter
 * @param {Object} options Options optionnels supplémentaires
 * 
 * @see http://github.com/madrobby/scriptaculous/wikis/ajax-autocompleter
 */
var xAjax = {}
xAjax.Autocompleter = Class.create(Autocompleter.Base, {
  initialize: function(element, update, instanceName, options) {
    this.baseInitialize(element, update, options);
    this.options.defaultParams = this.options.parameters || null;
	this.options.instanceName = instanceName;
  },

  getUpdatedChoices: function() {
    this.startIndicator();
	
	xajax_getVilles( this.element.id, this.element.value, this.options.instanceName );
  },

  onComplete: function(reponse) {
	this.updateChoices(reponse);
  }
  
});


function selectItem( inputTextElement, liElement )
{
	inputTextElement.value = liElement.title;
	$( inputTextElement.id + '_id_villes' ).value = liElement.id;
}

/**
 * autocompleter [VENUES]
 * @param {Object} element Id de l'input
 * @param {Object} update Id du conteneur des résultats
 * @param {Object} instanceName Nom de l'instance xAjax.Autocompleter
 * @param {Object} options Options optionnels supplémentaires
 * 
 * @see http://github.com/madrobby/scriptaculous/wikis/ajax-autocompleter
 */
xAjax.AutocompleterVenues = Class.create(Autocompleter.Base, {
  initialize: function(element, update, instanceName, options) {
    this.baseInitialize(element, update, options);
    this.options.defaultParams = this.options.parameters || null;
	this.options.instanceName = instanceName;
  },

  getUpdatedChoices: function() {
    this.startIndicator();
	
	xajax_getVenues( this.element.id, this.element.value, this.options.instanceName );
  },

  onComplete: function(reponse) {
	this.updateChoices(reponse);
  }
  
});


function selectItemVenues( inputTextElement, liElement )
{
	inputTextElement.value = liElement.title;
	$( 'id_' + inputTextElement.id ).value = liElement.id;
}

/**
 * autocompleter [PREFORMERS]
 * @param {Object} element Id de l'input
 * @param {Object} update Id du conteneur des résultats
 * @param {Object} instanceName Nom de l'instance xAjax.Autocompleter
 * @param {Object} options Options optionnels supplémentaires
 * 
 * @see http://github.com/madrobby/scriptaculous/wikis/ajax-autocompleter
 */
xAjax.AutocompleterPerformers = Class.create(Autocompleter.Base, {
  initialize: function(element, update, instanceName, options) {
    this.baseInitialize(element, update, options);
    this.options.defaultParams = this.options.parameters || null;
	this.options.instanceName = instanceName;
  },

  getUpdatedChoices: function() {
    this.startIndicator();
	
	xajax_getPerformers( this.element.id, this.element.value, this.options.instanceName );
  },

  onComplete: function(reponse) {
	this.updateChoices(reponse);
  }
  
});

/**
 * 
 * @param {Object} inputTextElement
 * @param {Object} liElement
 * @return {Void} ici on ajoute le performer a la liste des performers de l'event
 */
function selectItemPerformersToEvent( inputTextElement, liElement )
{
	// ajout du performer a la liste et masquage du bloc
	addPerformerToEvent( liElement.id , liElement.title );
}