The most straightforward way to do this is simple Date object comparison using the standard < and > operators.  There are a few tricks, though . . .
First, initialize your "current date":
var d = new Date();
The the problem is, that actually is the current date/time, not just the current date, so any date that is entered in that equals today's date will throw a false "less than" (unless you check at exactly midnight   ;)   ).  So, you need to "zero out" the time values in the d value:
d.setHours(0, 0, 0, 0);
Now, you create a Date object from the user input:
var x = new Date(document.getElementById("dateSelection"));
Because the input is a date string, (1) the Date constructor knows how to process a formatted date value, so you don't need to make any changes to the individual month/day/year values, and (2) there are no time elements in the string input, so you don't have to worry about zeroing those out, like you do with the current date.
Note 1: you will need to be aware of the local date formatting . . . the Date constructor does recognize the "mm/dd/yyyy" format, as an input, but will get confused by the "dd/mm/yyyy" format.  If you have to handle that format, then you may need to do some extra processing.
Note 2: there are checks that you should do here to make sure that the value that you are receiving is a validly formatted date string, but that should all happen in earlier code, before your code ever tries to process the value.
Once you've got the two Date objects, it is just a simple comparison
if (d > x) {
    // ** the user-entered date is in the past **
}
else if (d < x) {
    // ** the user-entered date is in the future **
}
else {
    // ** the user-entered date is the current date **
}