var User = {
	login: function() 
	{
		var dialog = $('<form id="login-form" method="post" action="/">' +
				'<input name="login" type="hidden" value="1">' +
				'<dl>' +
					'<dt>User Name:</dt>' +
					'<dd><input name="login_user_name" type="text" tabindex="1"></dd>' +
					'<dt>Password:</dt>' +
					'<dd><input name="login_user_pass" type="password" tabindex="2"></dd>' +
					'<dt>Options:</dt>' +
					'<dd><input type="checkbox" name="check_ip" value="true" tabindex="3" CHECKED> Secure</dd>' +
				'</dl>' +
				'</form>');
			
		dialog.dialog({ 
		    title: 'Log In',
		    modal: true, 
		    width: 320,
		    height: 240,
		    close: function() {
		    	$(this).dialog('destroy').remove();
		    } ,
		    buttons: {
		    	Close: function(){$(this).dialog('close')},
		    	Login: function(){$('#login-form').submit()}
		    }
		});
	},
	Group: {
		selected: null,
		select: function(callback) 
		{
			var dialog = $('<div>Loading...</div>');
			
			dialog.dialog({ 
			    title: 'Manage Groups',
			    modal: true, 
			    width: 640,
			    height: 480,
			    close: function() {
			    	$(this).dialog('destroy').remove();
			    } 
			}).load('/user/group/manage/', {}, function(){
				$('#group-selection-button').bind('click', function(){
					callback(User.Group.selected, $('#group-item-name-' + User.Group.selected).text());
					dialog.dialog('close');
				});
			});
		},
		add: function()
		{
			$.post('/user/group/add/', $('#group-create').serializeArray(), function(group){
				$('#group-manage-list').append('<li id="group-item-'+group.id+'" class="ui-state-default ui-corner-all"><a href="#" onclick="User.Group.remove('+group.id+');return false;"><span class="ui-icon ui-icon-close">{X}</span></a> <a id="group-item-name-'+group.id+'" href="#" onclick="User.Group.edit('+group.id+');return false;">'+group.name+'</a></li>');
				$('#group-create input[name=\'group\[name\]\']').val('');
			}, 'json');
		},
		addMember: function(id)
		{
			$.post('/user/group/addMember/'+id+'/', $('#member-create').serializeArray(), function(member){
				$('#group-members').append('<li id="group-member-'+member.id+'" class="ui-state-default ui-corner-all"><a href="#" onclick="User.Group.removeMember('+member.groupId+', '+member.id+');return false;"><span class="ui-icon ui-icon-close">{X}</span></a>'+member.icon+' '+member.name+'</li>');
				$('#member-create input[name=\'member\[name\]\']').val('');
			}, 'json');
		},
		removeMember: function(group, member)
		{
			$.getJSON('/user/group/deleteMember/'+group+'/'+member+'/');
			$('#group-member-' + member).remove();
		},
		remove: function(id)
		{
			if (confirm('Are you sure you wish to delete this group?')) {
				$.getJSON('/user/group/delete/'+id+'/', {}, function(group){
				});
			
				$('#group-item-' + id).remove();
			
				if (User.Group.selected == id) {
					$('#group-manage-select').hide();
					$('#group-manage-edit').html("Select a group on the left to continue.");
				}
			}
		},
		edit: function(id)
		{
			$('#group-manage-list li').removeClass("ui-state-active");
			$('#group-item-' + id).addClass("ui-state-active");
			$('#group-manage-select').show();
			$('#group-manage-edit').html('Loading...');
			$('#group-manage-edit').load('/user/group/edit/' + id + '/');
			
			User.Group.selected = id;
			
			$('#group-manage-add').show();
		},
		save: function(id)
		{
			$("#group-save").attr('disabled', 'disabled');
			$("#group-save").val('Saving...');
			$('#group-item-name-' + id).text($('#group-edit input[name=\'group\[name\]\']').val());
			$.post('/user/group/save/'+id+'/', $('#group-edit').serializeArray(), function(group){
				$("#group-save").val('Save');
				$("#group-save").removeAttr('disabled');
			}, 'json');
		}
	}
};