     makeMaxDigits = (maxDigits) ->
         validRegex = new RegExp "^-?\\d{0,#{maxDigits}}(\\.\\d*)?$"
         (val) -> validRegex.test val
+
+    backspaceAtComma = (elem, event) ->
+      cursorPos = elem[0].selectionStart
+      elem.val().charAt(elem[0].selectionStart - 1) == "," and event.which == 8
+    
+    deleteAtComma = (elem, event) ->
+      cursorPos = elem[0].selectionStart
+      elem.val().charAt(cursorPos) == "," and event.which == 46
+
+    moveCursorLeft = (elem) ->
+      newCursorPos = elem[0].selectionStart - 1
+      elem[0].setSelectionRange(newCursorPos, newCursorPos)
+
+    moveCursorRight = (elem) ->
+      newCursorPos = elem[0].selectionStart + 1
+      elem[0].setSelectionRange(newCursorPos, newCursorPos)
 
     makeIsValid = (options) ->
         validations = []

                # elem.val val.replace /,/g, '' # ATTN: LINE THAT ADDS ON-CLICK COMMA REMOVAL
                elem[0].select()

            if options.preventInvalidInput == true
              elem.on 'keypress', (e) ->
                if invalidInput(elem, event, options)

              # not updating unless value is longer than 4 digits including commas
              # still some issues moving the comma after input/delete
              # need to add support for delete/backspace if comma is present
              # issue where formatting is not occurring when entered too quickly
              if scope.rawScoreUpdating == false
                beginUpdate(scope, elem)

