var FL_loaded = false;
var FL_searchEnabled = false;
var FL_dspItems = 0;

function get_profilelink(user_id, user_nickname, user_nickname_short, online)
{
	linkClass = (online == 'on') ? 'friend_link_on' : 'friend_link_off';
	return '<a class="'+ linkClass +'" title="'+user_nickname+'" href="/profile/index.php?profile_id='+user_id+'" onclick="">'+user_nickname_short+'</a>';
}	

function do_getFL()
{
	if(!FL_loaded)
	{
		new Ajax.Request('/includes/ajax/friendslist.ajax.php', {parameters: {action: 'do_getFL'}, onLoading: function(){$('FL_friends').innerHTML = $('FL_loader_content').innerHTML;}, onComplete: do_getFL_cb, onFailure: goto_login} );
	}
}

function do_getFL_cb(response)
{
	var response_arr = response.responseText.evalJSON(true);
	FL_loaded = true;
	setListContent.delay(0.75, response_arr['data'], $('FL_friends'), response_arr['success']);		
	FL_searchEnabled = (response_arr['success'] == true) ? true : false;	
}

function sortById(a, b) {
  return a['friend_id'] - b['friend_id'];
}

function sortByNickname(element_a, element_b) {
	a = element_a.readAttribute('unk').toLowerCase();
  b = element_b.readAttribute('unk').toLowerCase();
  return (a==b)?0:(a>b)?1:-1;
}

function sortByOnlinestatus_asc(element_a, element_b) {
	a = element_a.readAttribute('uos').toLowerCase();
  b = element_b.readAttribute('uos').toLowerCase();
 	return (a==b)?0:(a<b)?1:-1; 
}

function sortByOnlinestatus_desc(element_a, element_b) {
	a = element_a.readAttribute('uos').toLowerCase();
  b = element_b.readAttribute('uos').toLowerCase();
 	return (a==b)?0:(a>b)?1:-1; 
}
		
function setListContent(items, list, success)
{
	list.innerHTML = items;
	if(success)
		sortChildsByAttribute($('FL_items'), 'uos');	
}

function toggleFL()
{
	if($('FL').style.display == "none")
	{
		do_getFL();
		$('FL').show();
	}
	else
	{
		$('FL').hide();
	}				
}

function sortChildsByAttribute(container, order_attribute)
{
	var items = $(container).childElements();
		
	if(order_attribute === undefined) order_attribute = 'unk';
	
	switch(order_attribute)
	{
		case 'unk':
		items.sort(sortByNickname);
		break;
		case 'uos':
		items.sort(sortByNickname);
		items.sort(sortByOnlinestatus_asc);
		break;
	}
		
	items.each(function(item)
	{
		$(container).insert(item);
	});
	
}

function searchOnFL(prefix)
{
	if(FL_searchEnabled)
	{
		var items = $('FL_items').select('div[class="FL_item"]');
		
		FL_dspItems = items.length;
		
		items.each(function(item)
		{
			if (!item.readAttribute('unk').toLowerCase().startsWith(prefix.toLowerCase()))
			{
				item.hide();
				FL_dspItems--;
			}
			else
				item.show();
		});
		
		if (FL_dspItems == 0)
		{ 
			$('FL_noresults').innerHTML = 'Keine Suchergebnisse<br>für \'<strong>'+$('FL_friendname').value.escapeHTML()+'</strong>\'';
			$('FL_noresults').show();
		}
		else
			$('FL_noresults').hide();
	}	
}

function setSearchValue()
{
	if($('FL_friendname').value.escapeHTML() == $('FL_friendname').title )
	{
		$('FL_friendname').value = '';
		$('FL_friendname').className = 'searchfield small';
	}
	else if ($('FL_friendname').value.escapeHTML() == '')
	{
		$('FL_friendname').value = $('FL_friendname').title;
		$('FL_friendname').className = 'searchfield_note small';
	}
}