var CAutocompleteModeration = Class.create({
	moveForumTarget: function(user)
	{
		var p = 'autocomplete.php?AZIONE=forum_target&TABELLA=t_a_forum&UTENTE=' + user;
		
		new Ajax.Autocompleter( 'forum_mod_picker', 'forum_mod_list', p, 
			{ 
				paramName: 't_dest_forum'
				, minChars: 1
				, frequency: 0.5
				, afterUpdateElement: function(text, li) { $('i_forum_target_id').value = li.id; }
				, onShow: Autocompleter.PDShow
				, onHide: Autocompleter.PDHideId.curry('i_forum_target_id')
			} );
		Event.observe('forum_mod_picker', 'keydown', function(e) { if (!$F('forum_mod_picker')) $('i_forum_target_id').value = ''; });
	},

	mergeForumTarget: function(user)
	{
		var p = 'autocomplete.php?AZIONE=forum_merge&TABELLA=t_a_forum&UTENTE=' + user;
		
		new Ajax.Autocompleter( 'forum_mod_picker', 'forum_mod_list', p, 
			{ 
				paramName: 't_dest_forum'
				, minChars: 1
				, frequency: 0.5
				, afterUpdateElement: function(text, li) { 
					$('i_forum_target_id').value = li.id; 
					Ubk.follow(null, 'autocomplete.php', 'AZIONE=forum_merge_set&TABELLA=t_a_forum&ID=' + li.id, false, true, null);
				}
				, onShow: Autocompleter.PDShow
				, onHide: Autocompleter.PDHideId.curry('i_forum_target_id')
			} );
	
		Event.observe('forum_mod_picker', 'keydown', function(e) { 
			if ($F('forum_mod_picker') == '') {
				$('i_forum_target_id').value = ''; 
				Ubk.follow(null, 'autocomplete.php', 'AZIONE=forum_merge_unset&TABELLA=t_a_forum', false, true, null);
			}
		});
	},
	
	mergeTopicTarget: function(user, topic)
	{
		var p = 'autocomplete.php?AZIONE=topic_merge&TABELLA=t_s_topic&UTENTE=' + user + '&TOPIC=' + topic;
		
		new Ajax.Autocompleter( 'topic_mod_picker', 'topic_mod_list', p, 
			{ 
				paramName: 't_dest_topic'
				, minChars: 1
				, frequency: 0.5
				, afterUpdateElement: function(text, li) { $('i_topic_target_id').value = li.id; }
				, onShow: Autocompleter.PDShow
				, onHide: Autocompleter.PDHideId.curry('i_topic_target_id')
			} );
	}	
});

var CAutocompleteFrontEnd = Class.create({
	initialize: function() {
		this.Mod = new CAutocompleteModeration();
	},
	// invio pm
	users: function(exclude)
	{
		var p = 'autocomplete.php?AZIONE=utenti&TABELLA=t_a_user';
		if (exclude.length > 0)
			p += '&EXCLUDE=' + exclude.join(',');
	
		new Ajax.Autocompleter( 'new_users', 'new_users_list', p, 
			{ 
				paramName: 'LOGIN' 
				, minChars: 1
				, frequency: 0.1
				, tokens: ','
				, onShow: Autocompleter.PDRelShow
				, onHide: Autocompleter.PDHide
			} );
	},
	// utenti nel gruppo
	groupUsers: function(group, exclude)
	{
		var p = 'autocomplete.php?AZIONE=utenti_gruppo&TABELLA=t_a_user&GRUPPO=' + group 
		if (exclude.length > 0)
			p += '&EXCLUDE=' + exclude.join(',');

		new Ajax.Autocompleter( 'new_user', 'new_users', p, 
			{ 
				paramName: 'filtro[begins_like|t_login]' 
				, minChars: 1
				, frequency: 0.1
				, afterUpdateElement: function(text, li) { $('new_user_id').value = li.id;}
				, onShow: Autocompleter.PDShow
				, onHide: Autocompleter.PDHideId.curry('new_user_id')
			} );
	},

	// hp utente
	userHome: function(user)
	{
		var p = 'autocomplete.php?AZIONE=user_home&TABELLA=t_a_forum&UTENTE=' + user;
		
		new Ajax.Autocompleter( 'forum_picker', 'forum_list', p, 
			{ 
				paramName: 't_custom_home['+user+']'
				, minChars: 1
				, frequency: 0.5
				, onShow: Autocompleter.PDShow
				, onHide: Autocompleter.PDHide
			} );
	},

	// completamento feed
	userFeed: function(user, feed)
	{
		var p = 'autocomplete.php?AZIONE=user_feed&TABELLA=t_a_forum&UTENTE=' + user + '&ROW=' + feed;
		
		new Ajax.Autocompleter( 't_link['+feed+']', (feed == '-1' ? 'feeds_new' : 'feeds_' + feed), p, 
			{ 
				paramName: 't_link['+feed+']'
				, minChars: 1
				, frequency: 0.5
				, onShow: Autocompleter.PDShow
				, onHide: Autocompleter.PDHide
			} );
	},

	// completamento forum bookmarks
	userForum: function(user)
	{
		var p = 'autocomplete.php?AZIONE=user_fbmk&TABELLA=t_a_forum&UTENTE=' + user;
		
		new Ajax.Autocompleter( 'forum_picker', 'forum_list', p, 
			{ 
				paramName: 't_forum_bmk'
				, minChars: 1
				, frequency: 0.5
				, afterUpdateElement: function(text, li) { $('i_forum_id').value = li.id; }
				, onShow: Autocompleter.PDShow
				, onHide: Autocompleter.PDHideId.curry('i_forum_id')
			} );
	},

	// completamento forum ricerca
	searchForum: function(user)
	{
		var p = 'autocomplete.php?AZIONE=user_forum_search&TABELLA=t_a_forum&UTENTE=' + user;
		
		new Ajax.Autocompleter( 'forum_picker', 'forum_list', p, 
			{ 
				paramName: 't_forum'
				, minChars: 1
				, frequency: 0.5
				, afterUpdateElement: function(text, li) { $('i_forum_id').value = li.id; }
				, onShow: Autocompleter.PDRelShow
				, onHide: Autocompleter.PDHideId.curry('i_forum_id')
			} );
	},
 	// players del team
	teamPlayers: function(team)
	{
		var p = 'autocomplete.php?AZIONE=players&TABELLA=t_a_user&TEAM='+team;
	
		new Ajax.Autocompleter( 'player_'+team, 'players_'+team, p,
			{ 
				paramName: 't_player['+team+']' 
				, minChars: 1
				, frequency: 0.1
				, afterUpdateElement: function(text, li) { $('user_'+team).value = li.id; }
				, onShow: Autocompleter.PDShow
				, onHide: Autocompleter.PDHideId.curry('user_'+team)
			} );
	},
 	// coppa / competizione
	teamCup: function(game)
	{
		var p = 'autocomplete.php?AZIONE=cup&TABELLA=t_r_match_cup&GAME='+game;
	
		new Ajax.Autocompleter( 'cup-name', 'cup-list', p,
			{ 
				paramName: 'cup' 
				, minChars: 1
				, frequency: 0.1
// 				, afterUpdateElement: function(text, li) { $('cup-id').value = li.id; }
				, onShow: Autocompleter.PDShow
// 				, onHide: Autocompleter.PDCleanId.curry('cup-id')
			} );
	},
 	// modalita'
	teamMode: function()
	{
		var p = 'autocomplete.php?AZIONE=game_mode&TABELLA=t_a_match';
	
		new Ajax.Autocompleter( 'game-name', 'game-list', p,
			{ 
				paramName: 'game-mode' 
				, minChars: 1
				, frequency: 0.1
				, onShow: Autocompleter.PDShow
			} );
	}

});

