﻿Registration = function(MinAge) {
    this._minAge = MinAge;
    
    if (document.getElementById("ctl00_body_CreateUserWizard1_CreateUserStepContainer_Email")) {
        document.getElementById("ctl00_body_CreateUserWizard1_CreateUserStepContainer_Email").focus();
    };

    this._minBDay = function() {
        if (isNaN(this._minAge)) { this._minAge = 100; };
        var days = parseInt(this._minAge) * 365;
        var MinDate = new Date();
        MinDate.setDate(parseInt(days) - parseInt(days) - parseInt(days) - 3);

        return MinDate;
    };

    this._isBirthdayValid = function(sender, month, day, year) {
        if (!isNaN(month) && !isNaN(day) && !isNaN(year)) {
            var userBDay = new Date(month + "/" + day + "/" + year);

            if (userBDay < this._minBDay()) {
                return true;
            } else {
                sender.errormessage = "You must be " + this._minAge.toString() + " or older";
                return false;
            };
        };
    };
};

Registration.prototype = {
    ValidateBirthday: function(sender, args) {
        var prefix = sender.controltovalidate.substr(0, sender.controltovalidate.lastIndexOf("_"))
        var day = document.getElementById(prefix + "_Day");
        var month = document.getElementById(prefix + "_Month");
        var year = document.getElementById(sender.controltovalidate);

        if (day.selectedIndex < 1 || month.selectedIndex < 1 || year.selectedIndex < 1) {
            sender.errormessage = "Birthday is required.";
            args.IsValid = false;
        } else {
            args.IsValid = this._isBirthdayValid(sender, month.options[month.selectedIndex].value, day.options[day.selectedIndex].value, year.options[year.selectedIndex].value);
        };
    }
};