///
interface Templates {
register: Template;
}
Template.register.onRendered(function() {
googleSend({
'eventCategory': 'Registration',
'eventAction': 'Started registration',
'pageEventArea': 'Main'
});
});
Template.register.helpers({
errors: function() {
return Users.Profile.db.errors('register');
},
signupButtonDisabled: function() {
return Session.get('signupButtonDisabled');
},
refCode: function() {
return $.cookie('refCode');
},
dobYears: function () {
var years = [];
var start = moment().subtract(18, 'years');
var end = moment().subtract(100, 'years');
years.push('');
while (start.format('YYYY') >= end.format('YYYY')) {
years.push('');
start = start.subtract(1,'years');
}
return years;
},
dobMonths: function () {
var months = [];
var start = 1;
var end = 12;
months.push('');
while (start <= end) {
months.push('');
start++;
}
return months;
},
dobDays: function () {
var days = [];
var start = 1;
var end = 31;
days.push('');
while (start <= end) {
days.push('');
start++;
}
return days;
},
registerEnabled: function() {
return Session.get('clientCountry') !== 'GB' && Session.get('clientCountry') !== 'AU' && Session.get('clientCountry') !== 'US' && Session.get('clientCountry') !== 'UM';
}
});
Template.register.events({
'keyup, change input': _.debounce(function(e: MeteorTemplateEvent) {
Users.Profile.db.validate(e.target, function(){});
}, 300),
'submit form': function(e: MeteorTemplateEvent) {
e.preventDefault();
if (Session.get('clientCountry') === 'GB' || Session.get('clientCountry') === 'AU' || Session.get('clientCountry') === 'US' || Session.get('clientCountry') === 'UM') {
return;
}
var $form = $(e.target);
var data = $form.serializeObject();
var errorContainer = $form.find('.generalError');
errorContainer.hide();
errorContainer.html('');
Session.set('signupButtonDisabled', true);
Users.Profile.db.validate(e.target, function (validationMessages) {
var isValid = true;
for (var key in validationMessages) {
var $field = $form.find('[name=' + key + ']');
var $fieldContainer = $field.parent().find('.icon');
var $messageContainer = $fieldContainer.find('span');
$fieldContainer.addClass('error');
$messageContainer.html(validationMessages[key]);
isValid = false;
}
var dateOfBirth = $("[name='year']").val() + '-' + $("[name='month']").val() + '-' + $("[name='day']").val();
if (!moment(dateOfBirth, 'YYYY-M-D', true).isValid()) {
errorContainer.append('
Incorrect date of birth
');
isValid = false;
googleSend({
'eventCategory': 'Registration',
'eventAction': 'Date of Birth Error',
'eventLabel': 'Date of Birth is incorrect',
'pageEventArea': 'Main'
});
}
else if (calcAge(moment(dateOfBirth, 'YYYY-M-D', true).toDate()) < 18) {
errorContainer.append('
You must be at least 18 years old to register
');
isValid = false;
}
if (!isValid) {
errorContainer.show();
var errs = Users.Profile.db.errors('register');
for (var errType in errs) {
errorContainer.append('