diff --git a/settings/js/users.js b/settings/js/users.js
index f148a43a48000932d15d09e6b84a5298895dedd3..b0e30feb80c623d7c853e39e8f72770025e4e213 100644
--- a/settings/js/users.js
+++ b/settings/js/users.js
@@ -4,405 +4,413 @@
  * See the COPYING-README file.
  */
 
-var UserList={
-	useUndo:true,
-	
-	/**
-	 * @brief Initiate user deletion process in UI
-	 * @param string uid the user ID to be deleted
-	 *
-	 * Does not actually delete the user; it sets them for
-	 * deletion when the current page is unloaded, at which point 
-	 * finishDelete() completes the process. This allows for 'undo'.
-	 */
-	do_delete:function( uid ) {
-		if (typeof UserList.deleteUid !== 'undefined') {
-			//Already a user in the undo queue
-			UserList.finishDelete(null);
-		}
-		UserList.deleteUid = uid;
-		
-		// Set undo flag
-		UserList.deleteCanceled = false;
-		
-		// Provide user with option to undo
-		$('#notification').html(t('users', 'deleted')+' '+uid+'<span class="undo">'+t('users', 'undo')+'</span>');
-		$('#notification').data('deleteuser',true);
-		$('#notification').fadeIn();
-	},
-	
-	/**
-	 * @brief Delete a user via ajax
-	 * @param bool ready whether to use ready() upon completion
-	 *
-	 * Executes deletion via ajax of user identified by property deleteUid 
-	 * if 'undo' has not been used.  Completes the user deletion procedure 
-	 * and reflects success in UI.
-	 */
-	finishDelete:function( ready ){
-		
-		// Check deletion has not been undone
-		if( !UserList.deleteCanceled && UserList.deleteUid ){
-			
-			// Delete user via ajax
-			$.ajax({
-				type: 'POST',
-				url: OC.filePath('settings', 'ajax', 'removeuser.php'),
-				async: false,
-				data: { username: UserList.deleteUid },
-				success: function(result) {
-					if (result.status == 'success') {
-						// Remove undo option, & remove user from table
-						$('#notification').fadeOut();
-						$('tr').filterAttr('data-uid', UserList.deleteUid).remove();
-						UserList.deleteCanceled = true;
-						if (ready) {
-							ready();
-						}
-					} else {
-						oc.dialogs.alert(result.data.message, t('settings', 'Unable to remove user'));
-					}
-				}
-			});
-		}
-	},
+var UserList = {
+    useUndo:true,
 
-	add:function(username, groups, subadmin, quota, sort) {
-		var tr = $('tbody tr').first().clone();
-		tr.attr('data-uid', username);
-		tr.find('td.name').text(username);
-		var groupsSelect = $('<select multiple="multiple" class="groupsselect" data-placehoder="Groups" title="Groups"></select>').attr('data-username', username).attr('data-user-groups', groups);
-		tr.find('td.groups').empty();
-		if (tr.find('td.subadmins').length > 0) {
-			var subadminSelect = $('<select multiple="multiple" class="subadminsselect" data-placehoder="subadmins" title="' + t('files', 'Group Admin') + '">').attr('data-username', username).attr('data-user-groups', groups).attr('data-subadmin', subadmin);
-			tr.find('td.subadmins').empty();
-		}
-		var allGroups = String($('#content table').attr('data-groups')).split(', ');
-		$.each(allGroups, function(i, group) {
-			groupsSelect.append($('<option value="'+group+'">'+group+'</option>'));
-			if (typeof subadminSelect !== 'undefined' && group != 'admin') {
-				subadminSelect.append($('<option value="'+group+'">'+group+'</option>'));
-			}
-		});
-		tr.find('td.groups').append(groupsSelect);
-		UserList.applyMultiplySelect(groupsSelect);
-		if (tr.find('td.subadmins').length > 0) {
-			tr.find('td.subadmins').append(subadminSelect);
-			UserList.applyMultiplySelect(subadminSelect);
-		}
-		if (tr.find('td.remove img').length == 0 && OC.currentUser != username) {
-			var rm_img = $('<img>', {
-				class: 'svg action',
-				src: OC.imagePath('core','actions/delete'),
-				alt: t('settings','Delete'),
-				title: t('settings','Delete')
-			});
-			var rm_link = $('<a>', { class: 'action delete', href: '#'}).append(rm_img);
-			tr.find('td.remove').append(rm_link);
-		} else if (OC.currentUser == username) {
-			tr.find('td.remove a').remove();
-		}
-		var quotaSelect = tr.find('select.quota-user');
-		if (quota == 'default') {
-			quotaSelect.find('option').attr('selected', null);
-			quotaSelect.find('option').first().attr('selected', 'selected');
-			quotaSelect.data('previous', 'default');
-		} else {
-			if (quotaSelect.find('option[value="'+quota+'"]').length > 0) {
-				quotaSelect.find('option[value="'+quota+'"]').attr('selected', 'selected');
-			} else {
-				quotaSelect.append('<option value="'+quota+'" selected="selected">'+quota+'</option>');
-			}
-		}
-		var added = false;
-		if (sort) {
-			username = username.toLowerCase();
-			$('tbody tr').each(function() {
-				if (username < $(this).attr('data-uid').toLowerCase()) {
-					$(tr).insertBefore($(this));
-					added = true;
-					return false;
-				}
-			});
-		} 
-		if (!added) {
-			$(tr).appendTo('tbody');
-		}
-		return tr;
-	},
+    /**
+     * @brief Initiate user deletion process in UI
+     * @param string uid the user ID to be deleted
+     *
+     * Does not actually delete the user; it sets them for
+     * deletion when the current page is unloaded, at which point
+     * finishDelete() completes the process. This allows for 'undo'.
+     */
+    do_delete:function (uid) {
+        if (typeof UserList.deleteUid !== 'undefined') {
+            //Already a user in the undo queue
+            UserList.finishDelete(null);
+        }
+        UserList.deleteUid = uid;
 
-	update:function() {
-		if (typeof UserList.offset === 'undefined') {
-			UserList.offset = $('tbody tr').length;
-		}
-		$.get(OC.Router.generate('settings_ajax_userlist', { offset: UserList.offset }), function(result) {
-			if (result.status === 'success') {
-				$.each(result.data, function(index, user) {
-					var tr = UserList.add(user.name, user.groups, user.subadmin, user.quota, false);
-					UserList.offset++;
-					if (index == 9) {
-						$(tr).bind('inview', function(event, isInView, visiblePartX, visiblePartY) {
-							$(this).unbind(event);
-							UserList.update();
-						});
-					}
-				});
-			}
-		});
-	},
+        // Set undo flag
+        UserList.deleteCanceled = false;
 
-	applyMultiplySelect:function(element) {
-		var checked=[];
-		var user=element.attr('data-username');
-		if($(element).attr('class') == 'groupsselect'){
-			if(element.data('userGroups')){
-				checked=String(element.data('userGroups')).split(', ');
-			}
-			if(user){
-				var checkHandeler=function(group){
-					if(user==OC.currentUser && group=='admin'){
-						return false;
-					}
-					if(!isadmin && checked.length == 1 && checked[0] == group){
-						return false;
-					}
-					$.post(
-						OC.filePath('settings','ajax','togglegroups.php'),
-						{
-							username:user,
-							group:group
-						},
-						function(){}
-					);
-				};
-			}else{
-				checkHandeler=false;
-			}
-			var addGroup = function(group) {
-				$('select[multiple]').each(function(index, element) {
-					if ($(element).find('option[value="'+group +'"]').length == 0) {
-						$(element).append('<option value="'+group+'">'+group+'</option>');
-					}
-				})
-			};
-			var label;
-			if(isadmin){
-				label = t('core', 'add group');
-			}else{
-				label = null;
-			}
-			element.multiSelect({
-				createCallback:addGroup,
-				createText:label,
-				checked:checked,
-				oncheck:checkHandeler,
-				onuncheck:checkHandeler,
-				minWidth: 100,
-			});
-		}
-		if($(element).attr('class') == 'subadminsselect'){
-			if(element.data('subadmin')){
-				checked=String(element.data('subadmin')).split(', ');
-			}
-			var checkHandeler=function(group){
-				if(group=='admin'){
-					return false;
-				}
-				$.post(
-					OC.filePath('settings','ajax','togglesubadmins.php'),
-					{
-						username:user,
-						group:group
-					},
-					function(){}
-				);
-			};
-			
-			var addSubAdmin = function(group) {
-				$('select[multiple]').each(function(index, element) {
-					if ($(element).find('option[value="'+group +'"]').length == 0) {
-						$(element).append('<option value="'+group+'">'+group+'</option>');
-					}
-				})
-			};
-			element.multiSelect({
-				createCallback:addSubAdmin,
-				createText:null,
-				checked:checked,
-				oncheck:checkHandeler,
-				onuncheck:checkHandeler,
-				minWidth: 100,
-			});
-		}
-	}
+        // Provide user with option to undo
+        $('#notification').html(t('users', 'deleted') + ' ' + uid + '<span class="undo">' + t('users', 'undo') + '</span>');
+        $('#notification').data('deleteuser', true);
+        $('#notification').fadeIn();
+    },
+
+    /**
+     * @brief Delete a user via ajax
+     * @param bool ready whether to use ready() upon completion
+     *
+     * Executes deletion via ajax of user identified by property deleteUid
+     * if 'undo' has not been used.  Completes the user deletion procedure
+     * and reflects success in UI.
+     */
+    finishDelete:function (ready) {
+
+        // Check deletion has not been undone
+        if (!UserList.deleteCanceled && UserList.deleteUid) {
+
+            // Delete user via ajax
+            $.ajax({
+                type:'POST',
+                url:OC.filePath('settings', 'ajax', 'removeuser.php'),
+                async:false,
+                data:{ username:UserList.deleteUid },
+                success:function (result) {
+                    if (result.status == 'success') {
+                        // Remove undo option, & remove user from table
+                        $('#notification').fadeOut();
+                        $('tr').filterAttr('data-uid', UserList.deleteUid).remove();
+                        UserList.deleteCanceled = true;
+                        if (ready) {
+                            ready();
+                        }
+                    } else {
+                        oc.dialogs.alert(result.data.message, t('settings', 'Unable to remove user'));
+                    }
+                }
+            });
+        }
+    },
+
+    add:function (username, groups, subadmin, quota, sort) {
+        var tr = $('tbody tr').first().clone();
+        tr.attr('data-uid', username);
+        tr.find('td.name').text(username);
+        var groupsSelect = $('<select multiple="multiple" class="groupsselect" data-placehoder="Groups" title="' + t('settings', 'Groups') + '"></select>').attr('data-username', username).attr('data-user-groups', groups);
+        tr.find('td.groups').empty();
+        if (tr.find('td.subadmins').length > 0) {
+            var subadminSelect = $('<select multiple="multiple" class="subadminsselect" data-placehoder="subadmins" title="' + t('settings', 'Group Admin') + '">').attr('data-username', username).attr('data-user-groups', groups).attr('data-subadmin', subadmin);
+            tr.find('td.subadmins').empty();
+        }
+        var allGroups = String($('#content table').attr('data-groups')).split(', ');
+        $.each(allGroups, function (i, group) {
+            groupsSelect.append($('<option value="' + group + '">' + group + '</option>'));
+            if (typeof subadminSelect !== 'undefined' && group != 'admin') {
+                subadminSelect.append($('<option value="' + group + '">' + group + '</option>'));
+            }
+        });
+        tr.find('td.groups').append(groupsSelect);
+        UserList.applyMultiplySelect(groupsSelect);
+        if (tr.find('td.subadmins').length > 0) {
+            tr.find('td.subadmins').append(subadminSelect);
+            UserList.applyMultiplySelect(subadminSelect);
+        }
+        if (tr.find('td.remove img').length == 0 && OC.currentUser != username) {
+            var rm_img = $('<img>', {
+                class:'svg action',
+                src:OC.imagePath('core', 'actions/delete')
+            });
+            var rm_link = $('<a>', { class:'action delete', href:'#', 'original-title':t('settings', 'Delete')}).append(rm_img);
+            tr.find('td.remove').append(rm_link);
+        } else if (OC.currentUser == username) {
+            tr.find('td.remove a').remove();
+        }
+        var quotaSelect = tr.find('select.quota-user');
+        if (quota == 'default') {
+            quotaSelect.find('option').attr('selected', null);
+            quotaSelect.find('option').first().attr('selected', 'selected');
+            quotaSelect.data('previous', 'default');
+        } else {
+            if (quotaSelect.find('option[value="' + quota + '"]').length > 0) {
+                quotaSelect.find('option[value="' + quota + '"]').attr('selected', 'selected');
+            } else {
+                quotaSelect.append('<option value="' + quota + '" selected="selected">' + quota + '</option>');
+            }
+        }
+        var added = false;
+        if (sort) {
+            username = username.toLowerCase();
+            $('tbody tr').each(function () {
+                if (username < $(this).attr('data-uid').toLowerCase()) {
+                    $(tr).insertBefore($(this));
+                    added = true;
+                    return false;
+                }
+            });
+        }
+        if (!added) {
+            $(tr).appendTo('tbody');
+        }
+        return tr;
+    },
+
+    update:function () {
+        if (typeof UserList.offset === 'undefined') {
+            UserList.offset = $('tbody tr').length;
+        }
+        $.get(OC.Router.generate('settings_ajax_userlist', { offset:UserList.offset }), function (result) {
+            if (result.status === 'success') {
+                $.each(result.data, function (index, user) {
+                    var tr = UserList.add(user.name, user.groups, user.subadmin, user.quota, false);
+                    UserList.offset++;
+                    if (index == 9) {
+                        $(tr).bind('inview', function (event, isInView, visiblePartX, visiblePartY) {
+                            $(this).unbind(event);
+                            UserList.update();
+                        });
+                    }
+                });
+            }
+        });
+    },
+
+    applyMultiplySelect:function (element) {
+        var checked = [];
+        var user = element.attr('data-username');
+        if ($(element).attr('class') == 'groupsselect') {
+            if (element.data('userGroups')) {
+                checked = String(element.data('userGroups')).split(', ');
+            }
+            if (user) {
+                var checkHandeler = function (group) {
+                    if (user == OC.currentUser && group == 'admin') {
+                        return false;
+                    }
+                    if (!isadmin && checked.length == 1 && checked[0] == group) {
+                        return false;
+                    }
+                    $.post(
+                        OC.filePath('settings', 'ajax', 'togglegroups.php'),
+                        {
+                            username:user,
+                            group:group
+                        },
+                        function () {
+                        }
+                    );
+                };
+            } else {
+                checkHandeler = false;
+            }
+            var addGroup = function (group) {
+                $('select[multiple]').each(function (index, element) {
+                    if ($(element).find('option[value="' + group + '"]').length == 0) {
+                        $(element).append('<option value="' + group + '">' + group + '</option>');
+                    }
+                })
+            };
+            var label;
+            if (isadmin) {
+                label = t('settings', 'add group');
+            } else {
+                label = null;
+            }
+            element.multiSelect({
+                createCallback:addGroup,
+                createText:label,
+                checked:checked,
+                oncheck:checkHandeler,
+                onuncheck:checkHandeler,
+                minWidth:100,
+            });
+        }
+        if ($(element).attr('class') == 'subadminsselect') {
+            if (element.data('subadmin')) {
+                checked = String(element.data('subadmin')).split(', ');
+            }
+            var checkHandeler = function (group) {
+                if (group == 'admin') {
+                    return false;
+                }
+                $.post(
+                    OC.filePath('settings', 'ajax', 'togglesubadmins.php'),
+                    {
+                        username:user,
+                        group:group
+                    },
+                    function () {
+                    }
+                );
+            };
+
+            var addSubAdmin = function (group) {
+                $('select[multiple]').each(function (index, element) {
+                    if ($(element).find('option[value="' + group + '"]').length == 0) {
+                        $(element).append('<option value="' + group + '">' + group + '</option>');
+                    }
+                })
+            };
+            element.multiSelect({
+                createCallback:addSubAdmin,
+                createText:null,
+                checked:checked,
+                oncheck:checkHandeler,
+                onuncheck:checkHandeler,
+                minWidth:100,
+            });
+        }
+    }
 }
 
-$(document).ready(function(){
+$(document).ready(function () {
+
+    $('tbody tr:last').bind('inview', function (event, isInView, visiblePartX, visiblePartY) {
+        UserList.update();
+    });
+
+    function setQuota(uid, quota, ready) {
+        $.post(
+            OC.filePath('settings', 'ajax', 'setquota.php'),
+            {username:uid, quota:quota},
+            function (result) {
+                if (ready) {
+                    ready(result.data.quota);
+                }
+            }
+        );
+    }
+
+
+    $('select[multiple]').each(function (index, element) {
+        UserList.applyMultiplySelect($(element));
+    });
+
+    $('td.remove>a').live('click', function (event) {
+        var row = $(this).parent().parent();
+        var uid = $(row).attr('data-uid');
+        $(row).hide();
+        // Call function for handling delete/undo
+        UserList.do_delete(uid);
+    });
+
+    $('td.password>img').live('click', function (event) {
+        event.stopPropagation();
+        var img = $(this);
+        var uid = img.parent().parent().attr('data-uid');
+        var input = $('<input type="password">');
+        img.css('display', 'none');
+        img.parent().children('span').replaceWith(input);
+        input.focus();
+        input.keypress(function (event) {
+            if (event.keyCode == 13) {
+                if ($(this).val().length > 0) {
+                    $.post(
+                        OC.filePath('settings', 'ajax', 'changepassword.php'),
+                        {username:uid, password:$(this).val()},
+                        function (result) {
+                        }
+                    );
+                    input.blur();
+                } else {
+                    input.blur();
+                }
+            }
+        });
+        input.blur(function () {
+            $(this).replaceWith($('<span>●●●●●●●</span>'));
+            img.css('display', '');
+        });
+    });
+    $('td.password').live('click', function (event) {
+        $(this).children('img').click();
+    });
+
+    $('select.quota, select.quota-user').live('change', function () {
+        var select = $(this);
+        var uid = $(this).parent().parent().parent().attr('data-uid');
+        var quota = $(this).val();
+        var other = $(this).next();
+        if (quota != 'other') {
+            other.hide();
+            select.data('previous', quota);
+            setQuota(uid, quota);
+        } else {
+            other.show();
+            select.addClass('active');
+            other.focus();
+        }
+    });
+    $('select.quota, select.quota-user').each(function (i, select) {
+        $(select).data('previous', $(select).val());
+    })
+
+    $('input.quota-other').live('change', function () {
+        var uid = $(this).parent().parent().parent().attr('data-uid');
+        var quota = $(this).val();
+        var select = $(this).prev();
+        var other = $(this);
+        if (quota) {
+            setQuota(uid, quota, function (quota) {
+                select.children().attr('selected', null);
+                var existingOption = select.children().filter(function (i, option) {
+                    return ($(option).val() == quota);
+                });
+                if (existingOption.length) {
+                    existingOption.attr('selected', 'selected');
+                } else {
+                    var option = $('<option/>');
+                    option.attr('selected', 'selected').attr('value', quota).text(quota);
+                    select.children().last().before(option);
+                }
+                select.val(quota);
+                select.removeClass('active');
+                other.val(null);
+                other.hide();
+            });
+        } else {
+            var previous = select.data('previous');
+            select.children().attr('selected', null);
+            select.children().each(function (i, option) {
+                if ($(option).val() == previous) {
+                    $(option).attr('selected', 'selected');
+                }
+            });
+            select.removeClass('active');
+            other.hide();
+        }
+    });
 
-	$('tbody tr:last').bind('inview', function(event, isInView, visiblePartX, visiblePartY) {
-		UserList.update();
-	});
+    $('input.quota-other').live('blur', function () {
+        $(this).change();
+    })
 
-	function setQuota(uid,quota,ready){
-		$.post(
-			OC.filePath('settings','ajax','setquota.php'),
-			{username:uid,quota:quota},
-			function(result){
-				if(ready){
-					ready(result.data.quota);
-				}
-			}
-		);
-	}
-	
-	
-	$('select[multiple]').each(function(index,element){
-		UserList.applyMultiplySelect($(element));
-	});
-	
-	$('td.remove>a').live('click',function(event){
-		var row = $(this).parent().parent();
-		var uid = $(row).attr('data-uid');
-		$(row).hide();
-		// Call function for handling delete/undo
-		UserList.do_delete(uid);
-	});
-	
-	$('td.password>img').live('click',function(event){
-		event.stopPropagation();
-		var img=$(this);
-		var uid=img.parent().parent().attr('data-uid');
-		var input=$('<input type="password">');
-		img.css('display','none');
-		img.parent().children('span').replaceWith(input);
-		input.focus();
-		input.keypress(function(event) {
-			if(event.keyCode == 13) {
-				if($(this).val().length>0){
-					$.post(
-						OC.filePath('settings','ajax','changepassword.php'),
-						{username:uid,password:$(this).val()},
-						function(result){}
-					);
-					input.blur();
-				}else{
-					input.blur();
-				}
-			}
-		});
-		input.blur(function(){
-			$(this).replaceWith($('<span>●●●●●●●</span>'));
-			img.css('display','');
-		});
-	});
-	$('td.password').live('click',function(event){
-		$(this).children('img').click();
-	});
-	
-	$('select.quota, select.quota-user').live('change',function(){
-		var select=$(this);
-		var uid=$(this).parent().parent().parent().attr('data-uid');
-		var quota=$(this).val();
-		var other=$(this).next();
-		if(quota!='other'){
-			other.hide();
-			select.data('previous',quota);
-			setQuota(uid,quota);
-		}else{
-			other.show();
-			select.addClass('active');
-			other.focus();
-		}
-	});
-	$('select.quota, select.quota-user').each(function(i,select){
-		$(select).data('previous',$(select).val());
-	})
-	
-	$('input.quota-other').live('change',function(){
-		var uid=$(this).parent().parent().parent().attr('data-uid');
-		var quota=$(this).val();
-		var select=$(this).prev();
-		var other=$(this);
-		if(quota){
-			setQuota(uid,quota,function(quota){
-				select.children().attr('selected',null);
-				var existingOption=select.children().filter(function(i,option){
-					return ($(option).val()==quota);
-				});
-				if(existingOption.length){
-					existingOption.attr('selected','selected');
-				}else{
-					var option=$('<option/>');
-					option.attr('selected','selected').attr('value',quota).text(quota);
-					select.children().last().before(option);
-				}
-				select.val(quota);
-				select.removeClass('active');
-				other.val(null);
-				other.hide();
-			});
-		}else{
-			var previous=select.data('previous');
-			select.children().attr('selected',null);
-			select.children().each(function(i,option){
-				if($(option).val()==previous){
-					$(option).attr('selected','selected');
-				}
-			});
-			select.removeClass('active');
-			other.hide();
-		}
-	});
-	
-	$('input.quota-other').live('blur',function(){
-		$(this).change();
-	})
-	
-	$('#newuser').submit(function(event){
-		event.preventDefault();
-		var username=$('#newusername').val();
-		var password=$('#newuserpassword').val();
-		if($('#content table tbody tr').filterAttr('data-uid',username).length>0){
-			OC.dialogs.alert('The username is already being used', 'Error creating user');
-			return;
-		}
-		if($.trim(username) == '') {
-			OC.dialogs.alert('A valid username must be provided', 'Error creating user');
-			return false;
-		}
-		if($.trim(password) == '') {
-			OC.dialogs.alert('A valid password must be provided', 'Error creating user');
-			return false;
-		}
-		var groups=$('#newusergroups').prev().children('div').data('settings').checked;
-		$('#newuser').get(0).reset();
-		$.post(
-			OC.filePath('settings','ajax','createuser.php'),
-			{
-				username:username,
-				password:password,
-				groups:groups,
-			},
-			function(result){
-				if(result.status!='success'){
-					OC.dialogs.alert(result.data.message, 'Error creating user');
-				} else {
-					UserList.add(username, result.data.groups, null, 'default', true);
-				}
-			}
-		);
-	});
-	// Handle undo notifications
-	$('#notification').hide();
-	$('#notification .undo').live('click', function() {
-		if($('#notification').data('deleteuser')) {
-			$('tbody tr').filterAttr('data-uid', UserList.deleteUid).show();
-			UserList.deleteCanceled=true;
-		}
-		$('#notification').fadeOut();
-	});
-	UserList.useUndo=('onbeforeunload' in window)
-	$(window).bind('beforeunload', function (){
-		UserList.finishDelete(null);
-	});
+    $('#newuser').submit(function (event) {
+        event.preventDefault();
+        var username = $('#newusername').val();
+        var password = $('#newuserpassword').val();
+        if ($('#content table tbody tr').filterAttr('data-uid', username).length > 0) {
+            OC.dialogs.alert(
+                t('settings', 'The username is already being used'),
+                t('settings', 'Error creating user'));
+            return;
+        }
+        if ($.trim(username) == '') {
+            OC.dialogs.alert(
+                t('settings', 'A valid username must be provided'),
+                t('settings', 'Error creating user'));
+            return false;
+        }
+        if ($.trim(password) == '') {
+            OC.dialogs.alert(
+                t('settings', 'A valid password must be provided'),
+                t('settings', 'Error creating user'));
+            return false;
+        }
+        var groups = $('#newusergroups').prev().children('div').data('settings').checked;
+        $('#newuser').get(0).reset();
+        $.post(
+            OC.filePath('settings', 'ajax', 'createuser.php'),
+            {
+                username:username,
+                password:password,
+                groups:groups,
+            },
+            function (result) {
+                if (result.status != 'success') {
+                    OC.dialogs.alert(result.data.message,
+                        t('settings', 'Error creating user'));
+                } else {
+                    UserList.add(username, result.data.groups, null, 'default', true);
+                }
+            }
+        );
+    });
+    // Handle undo notifications
+    $('#notification').hide();
+    $('#notification .undo').live('click', function () {
+        if ($('#notification').data('deleteuser')) {
+            $('tbody tr').filterAttr('data-uid', UserList.deleteUid).show();
+            UserList.deleteCanceled = true;
+        }
+        $('#notification').fadeOut();
+    });
+    UserList.useUndo = ('onbeforeunload' in window)
+    $(window).bind('beforeunload', function () {
+        UserList.finishDelete(null);
+    });
 });