function onGroupAdded(record)
{
	addGroupData(record);
}

function addGroupData(records, obj)
{
	if(typeof records == "object" && !records.length)
	{
		if(!records.data) return false;
		records = [records];
	}
	
	if(!obj) obj = 'body';
	
	for(var i in records)
	{
		$(obj).find("[data-bind='group']").each(function() {
			switch(this.tagName)
			{
				case 'UL':
					var li = document.createElement('li');
					var a = document.createElement('a');
					
					a.setAttribute('href','#');
					a.setAttribute('data-id', records[i].data.group_id);
					a.innerHTML = records[i].data.name;
					li.appendChild(a);
					
					this.appendChild(li);
					
					$(a).bind('click', function() {
						loadModule('request.getByGroupId', 'group_id=' + this.getAttribute('data-id'));
						$("#request_group").val(this.getAttribute('data-id'));
					});
					
				break;
				case 'SELECT':
					var option = document.createElement('option');
					
					option.value = records[i].data.group_id;
					option.innerHTML = records[i].data.name;
					
					this.appendChild(option);
				break;
			}
		});
	}
}

function onListAdded(record)
{
	addListData(record);
}

function addListData(records, obj)
{
	if(typeof records == "object" && !records.length)
	{
		if(!records.data) return false;
		records = [records];
	}
	
	if(!obj) obj = 'body';
	
	for(var i in records)
	{
		$(obj).find("[data-bind='list']").each(function() {
			switch(this.tagName)
			{
				case 'UL':
					var li = document.createElement('li');
					var a = document.createElement('a');
					
					a.setAttribute('href','#');
					a.setAttribute('data-id', records[i].data.list_id);
					a.innerHTML = records[i].data.name;
					li.appendChild(a);
					
					this.appendChild(li);
					
					$(a).bind('click', function() {
						loadModule('request.getByListId', 'list_id=' + this.getAttribute('data-id'));
					});
					
				break;
				case 'SELECT':
					var option = document.createElement('option');
					
					option.value = records[i].data.list_id;
					option.innerHTML = records[i].data.name;
					
					this.appendChild(option);
				break;
			}
		});
	}
}

function onCommit(requestId)
{
	var module = 'request';
	var action = 'toggleCommitment';
	
	var params = 'request_id=' + requestId;

	$.ajax({
		url: '/index.php?module=' + module + '&action=' + action,
		data: params,
		dataType: 'json',
		type: 'POST',
		success: function(data, textStatus){
			if(data)
			{
				toggleCommitted(requestId);
			}
		}
	});	
}

function onFlag(requestId)
{
	var module = 'request';
	var action = 'toggleFlag';
	
	var params = 'request_id=' + requestId;

	$.ajax({
		url: '/index.php?module=' + module + '&action=' + action,
		data: params,
		dataType: 'json',
		type: 'POST',
		success: function(data, textStatus){
			if(data)
			{
				toggleFlagged(requestId);
			}
		}
	});	
}

function onSave(requestId)
{
	var module = 'list';
	var action = 'save';
	
	var params = 'request_id=' + requestId;
	
	$('#request-' + requestId).effect("transfer", { to: $("#saveToList") }, 1000);
	
	if($("#saveToList").length > 0)
	{
		params += '&list_id=' + $("#saveToList").val();
	}

	$.ajax({
		url: '/index.php?module=' + module + '&action=' + action,
		data: params,
		dataType: 'json',
		type: 'POST',
		success: function(data, textStatus){
			if(data)
			{
				// Some action
			}
		}
	});	
}

function onMessageDelete(messageId, ask)
{
	if(ask)
	{
		if(confirm('Are you sure you want to remove this message?'))
		{
			return onMessageDelete(messageId);
		}
		else
		{
			return false;
		}
	}

	var module = 'message';
	var action = 'delete';
	
	var params = 'message_id=' + messageId;

	$.ajax({
		url: '/index.php?module=' + module + '&action=' + action,
		data: params,
		dataType: 'json',
		type: 'POST',
		success: function(data, textStatus){
			if(data)
			{
				if(data.success)
				{
					var message = $("#message-" + messageId);
					message.slideUp(function() {
						message.remove();
					});
				}
			}
		}
	});
	
	return true;
}
