(function($){
$(document).ready(function() {
var instanceData;
var pageLang = $('#curLang').val();
var eventType;
var campaignID;
var instance="event_chanel";
var instanceName = window.rwdUtility.getUrlParam("offer",location.search);
console.log("instanceName="+instanceName);
window.rwdAPI.ajax({
endpoint: getConfigEndpoint(pageLang),
contentType : "application/json",
done : function(data) {
if(instanceName != "") {
instanceData = data[instanceName];
console.log(data);
eventType = instanceData["type"];
campaignID = instanceData.campaignID;
}
},
fail : function(jqXHR) {}
});
function getConfigEndpoint(pageLang) {
if(pageLang == 'en_HK') {
return 'sig-event-registration-configuration-en'
} else if (pageLang == 'zh_HK') {
return 'sig-event-registration-configuration-tc';
} else if (pageLang == 'zh_CN'){
return 'sig-event-registration-configuration-sc';
}
return "";
}
function getQuatoByTimeslot(timeslot) {
var preferredTimeslots = instanceData['preferredTimeslot'];
for(var i=0;i<preferredTimeslots.length;i++) {
if(preferredTimeslots[i].key == timeslot) {
return preferredTimeslots[i].quota;
}
}
}
function getRemainQuota(timeslot,quato,callback) {
var remainQuota = -1;
var requestJson = {"campaignID":campaignID,"preferredTimeslot":timeslot,"quota":quato};
window.rwdAPI.ajax({
endpoint: 'sig-registration-check-timeslot',
data : JSON.stringify(requestJson),
contentType: "application/json",
method : "POST",
done : function(data) {
if(data.remainQuota) {
if(data.remainQuota !="") {
remainQuota = parseInt(data.remainQuota);
callback(timeslot,remainQuota);
}
}
},
fail : function(jqXHR) {
}
});
return remainQuota;
}
function addFullyBookedWarning() {
var $_options = $('[data-dropdown-group="preferredTimeslot"] ul li:not([data-value=""])');
var $disabledOptions = $('[data-dropdown-group="preferredTimeslot"] ul li:not([data-value=""]) a[data-is-disabled="true"]');
if($disabledOptions.length == $_options.length) {
$('#rwd-banking-eventRegistration-form-preferredTimeslot').attr('verify-error',true);
$('#verify-error-for-rwd-banking-eventRegistration-form-preferredTimeslot').text(window.getI18n('rwd.sig.eventRegistrationForm.error.preferredTimeslot.fullyBooked')).attr('data-witherrormsg',true);
}
}
function checkAllPreferredTimeslot() {
var $options = $('[data-dropdown-group="preferredTimeslot"] ul li');
for(var i=0;i<$options.length;i++) {
var value = $options[i].getAttribute('data-value');
if("" == value) {
continue;
}
var quota = getQuatoByTimeslot(value);
function callback(_timeslot,_remainQuota) {
var _disableAttrs = {'data-is-disabled':true,'aria-disabled':true};
// there is no quato remain for current
if(_remainQuota <= 0) {
$('[data-dropdown-group="preferredTimeslot"] .rwd-dropdown-item[data-value="'+_timeslot+'"]').find('.rwd-a[role="option"]').attr(_disableAttrs);
}
addFullyBookedWarning();
}
getRemainQuota(value,quota,callback);
}
}
checkAllPreferredTimeslot();
$('[data-dropdown-group="preferredTimeslot"]').on('click','button', function(event){
checkAllPreferredTimeslot();
});
$('[data-dropdown-group="noOfAttendants"]').on('click','a', function(result){
var target = $(result.currentTarget);
var selectedAttendanceNum = target.parent('li').attr('data-value');
var index = target.parent('li').index();
var $attendanceDropdown = $('[data-dropdown-group="noOfAttendants"]');
$attendanceDropdown.find('a[role="option"]').attr({'aria-selected':false,'data-active':false});
target.attr({'aria-selected':false,'data-active':true});
$attendanceDropdown.find('button').html(target.html());
$('[data-dropdown-group="noOfAttendants"]').find('select').prop('selectedIndex', index);
var result = window.rwdValidator.vFieldCombo($('[data-dropdown-group="noOfAttendants"]').find('select')[0]);
});
$('[data-dropdown-group="preferredTimeslot"]').on('click','a', function(result){
var target = $(result.currentTarget);
var selectedTimeslot = target.parent('li').attr('data-value');
var origalTimeslotText = $('[data-dropdown-group="preferredTimeslot"]').find('button').html();
var selectedTimeslotText = target.html();
if(origalTimeslotText == selectedTimeslotText) {
return;
}
// reset dropdown to default option
var $attendanceDropdown = $('[data-dropdown-group="noOfAttendants"]');
var $defaultAttendanceNoOption = $attendanceDropdown.find('[data-is-default-value="true"]'); // please select
$attendanceDropdown.find('a[role="option"]').attr({'aria-selected':false,'data-active':false});
$defaultAttendanceNoOption.attr({'aria-selected':false,'data-active':true});
$attendanceDropdown.find('button').html($defaultAttendanceNoOption.html());
function onChangeCallback(_timeslot,_remainQuota) {
var $attendanceOptions = $('[data-dropdown-group="noOfAttendants"] .rwd-dropdown-item');
var $currentTimeslotOption = $('[data-dropdown-group="preferredTimeslot"]').find('.rwd-dropdown-item[data-value="'+_timeslot+'"] .rwd-a[role="option"]');
var _disableAttrs = {'data-is-disabled':true,'aria-disabled':true};
var _enableAttrs = {'data-is-disabled':false,'aria-disabled':false};
// there is no quato remain for current
if(_remainQuota <= 0) {
$currentTimeslotOption.attr(_disableAttrs);
$attendanceOptions.find('.rwd-a[role="option"]').attr(_disableAttrs);
$attendanceOptions.find('[data-is-default-value="true"]').attr(_enableAttrs);
} else if(_remainQuota > 0){
$currentTimeslotOption.attr(_enableAttrs);
for(var i=0;i<$attendanceOptions.length;i++) {
var attendanceNum = $attendanceOptions[i].getAttribute('data-value');
if(attendanceNum == "") {
continue;
}
var $attendanceOption = $($attendanceOptions[i]).find('.rwd-a[role="option"]');
if(attendanceNum > _remainQuota) {
$attendanceOption.attr(_disableAttrs);
} else {
$attendanceOption.attr(_enableAttrs);
}
}
}
}
// only available option can run this logic
if(selectedTimeslot != "") {
var quota = getQuatoByTimeslot(selectedTimeslot);
var remainQuota = getRemainQuota(selectedTimeslot,quota,onChangeCallback);
}
});
});
})(window.rwdJQuery);