;(function($,_,undefined){"use strict";ips.controller.register('calendar.front.submit.dates',{initialize:function(){this.on('click','[data-action="updateTimezone"]',this.updateTimezone);this.on('focus','input[name="repeat_end_occurrences"]',function(){$('#event_repeat_end_afterx').prop('checked',true);});this.on('focus','input[name="repeat_end_date"]',function(){$('#event_repeat_end_ondate').prop('checked',true);});this.on('change','input, select',this.checkForSummaryChange);this.on('change','input, select',this.setEndDate);this.on('change','#check_single_day, #check_all_day',this.toggleFields);this.on('click','#elRecurRemove',this.disableRecurring);$(window).on('resize',_.bind(this._resizeEndGrid,this));this.on('click','[data-action="updateRepeat"]',this.finishRepeat);this.setup();},setEndDate:function(){var singleDay=this.scope.find('#check_single_day');var allDay=this.scope.find('#check_all_day');if(singleDay.is(':checked')&&!allDay.is(':checked')){this.scope.find('input[name="event_dates[end_date]"]').val(this.scope.find('input[name="event_dates[start_date]"]').val())}},finishRepeat:function(){this._updateSummary();$('#elRecurEdit_menu').trigger('closeMenu');},setup:function(){this._updateSummary();this.toggleFields();this.updateTimezone();this._resizeEndGrid();},toggleFields:function(e){var singleDay=this.scope.find('#check_single_day');var allDay=this.scope.find('#check_all_day');var self=this;var toggles={start_time_wrap:true,end_time_wrap:true,event_end_date_wrap:true,elDateGrid_arrow:true,elDateGrid_end:true};if(singleDay.is(':checked')&&!allDay.is(':checked')){toggles.event_end_date_wrap=false;}else if(singleDay.is(':checked')&&allDay.is(':checked')){toggles.elDateGrid_arrow=false;toggles.elDateGrid_end=false;toggles.start_time_wrap=false;}else if(!singleDay.is(':checked')&&allDay.is(':checked')){toggles.start_time_wrap=false;toggles.end_time_wrap=false;}
_.each(toggles,function(val,key){self.scope.find('#'+key).toggle(val);});this.scope.find('#elDateGrid_start').toggleClass('ipsGrid_span5',this.scope.find('#elDateGrid_end').is(':visible'));},checkForSummaryChange:function(e){if($(e.currentTarget).attr('name').startsWith('event_dates[')){this._updateSummary();}},updateTimezone:function(e){if(e){e.preventDefault();}
this.scope.find('[data-role="timezone_display"]').text($('#event_timezone option:selected').data('abbreviated')).trigger('closeMenu');},disableRecurring:function(e){e.preventDefault();this.scope.find('#elRepeatCb').prop('checked',false);this._updateSummary();},finishRepeatConfiguration:function(e,data){e.preventDefault();this.scope.find('[data-role="recur_summary_final"]').text(this.scope.find('[data-role="recur_summary"]').text());this.scope.find('#elRecurEdit').trigger('closeMenu');},_updateSummary:function(){var summary=this.scope.find('[data-role="recurringSummary"]');if(this.scope.find('#elRepeatCb').is(':checked')){summary.text(this._getSummary());this.scope.find('#elRepeatRow_hidden').hide();this.scope.find('#elRepeatRow_shown').show();}else{summary.html("<em class='ipsType_light'>"+ips.getString('doesnt_repeat')+"</em>");this.scope.find('#elRepeatRow_hidden').show();this.scope.find('#elRepeatRow_shown').hide();}
this.scope.find('[data-role="dateSummary"]').html(this._dateSummary());},_dateSummary:function(){var startDate=ips.utils.time.getDateFromInput(this.scope.find('input[name="event_dates[start_date]"]'));var singleDay=this.scope.find('#check_single_day');var allDay=this.scope.find('#check_all_day');if(!ips.utils.time.isValidDateObj(startDate)||startDate.getFullYear()<1900){return'';}
ips.utils.time.removeTimezone(startDate);var startDateString=ips.utils.time.localeDateString(startDate,{weekday:'short',month:'short',day:'numeric',year:'numeric',timeZone:'UTC'});var startTime=this._getTime(this.scope.find('input[name="event_dates[start_time]"]').val());var endTime=this._getTime(this.scope.find('input[name="event_dates[end_time]"]').val());var endDate=ips.utils.time.getDateFromInput(this.scope.find('input[name="event_dates[end_date]"]'));var endDateString='';if(!singleDay.is(':checked')&&ips.utils.time.isValidDateObj(endDate)){ips.utils.time.removeTimezone(endDate);endDateString=ips.utils.time.localeDateString(endDate,{weekday:'short',month:'short',day:'numeric',year:'numeric',timeZone:'UTC'});}
var finalString='';if(singleDay.is(':checked')&&!allDay.is(':checked')){finalString=ips.getString('single_not_allday',{startDate:startDateString,startTime:startTime,endTime:endTime});}else if((!singleDay.is(':checked')&&!allDay.is(':checked'))&&endDateString&&startTime&&endTime){finalString=ips.getString('not_single_not_allday',{startDate:startDateString,endDate:endDateString,startTime:startTime,endTime:endTime});}else if(!singleDay.is(':checked')&&allDay.is(':checked')&&endDateString){finalString=ips.getString('not_single_allday',{startDate:startDateString,endDate:endDateString});}else{finalString=ips.getString('single_allday',{startDate:startDateString});}
return finalString;},_getTime:function(time){if(!time){return"<em class='ipsType_light ipsType_unbold ipsFaded'>"+ips.getString('select_time')+"</em>";}
return time;},_getSummary:function(){var type=this.scope.find('#elSelect_event_repeats').val();var intervalString='';var endString='';switch(type){case'daily':case'monthly':case'yearly':intervalString=this._buildString(type);break;case'weekly':intervalString=this._buildWeekly();break;}
if(this.scope.find('#event_repeat_end_afterx').is(':checked')){var occurrences=parseInt(this.scope.find('input[name="event_dates[repeat_end_occurrences]"]').val());if(_.isNumber(occurrences)&&!_.isNaN(occurrences)){endString=ips.pluralize(ips.getString('x_times'),occurrences);}}else if(this.scope.find('#event_repeat_end_ondate').is(':checked')){var dateObj=ips.utils.time.getDateFromInput(this.scope.find('input[name="event_dates[repeat_end_date]"]'));if(ips.utils.time.isValidDateObj(dateObj)&&dateObj.getFullYear()>1900){endString=ips.getString('until',{date:ips.utils.time.localeDateString(dateObj,{weekday:'short',month:'short',day:'numeric',year:'numeric'})});}}
if(endString){return ips.getString('with_end',{interval:intervalString,endAfter:endString});}else{return intervalString;}},_buildString:function(type){var val=parseInt(this.scope.find('#elSelect_event_repeat_freq').val())||1;return ips.pluralize(ips.getString('every_x',{period:ips.pluralize(ips.getString('x_'+type),val)}),val);},_buildWeekly:function(){var selectedDays=this.scope.find('[data-iCal]:checked');var val=parseInt(this.scope.find('#elSelect_event_repeat_freq').val())||1;var weekString='';weekString=ips.pluralize(ips.getString('x_weekly'),val);if(!selectedDays.length){return weekString;}
var fullDays=_.map(selectedDays,function(day,key){return ips.getString($(day).attr('data-iCal'));});var dayString='';if(fullDays.length===1){dayString=ips.getString('one_day',{first:fullDays[0]});}else{dayString=ips.getString('multiple_day',{days:fullDays.slice(0,-1).join(', '),last:fullDays[fullDays.length-1]});}
return ips.getString('week_string',{week:weekString,days:dayString});},_resizeEndGrid:function(){var height='auto';if(!ips.utils.responsive.enabled()||!ips.utils.responsive.currentIs('phone')){height=this.scope.find('#elDateGrid_start').outerHeight()+'px';}
this.scope.find('#elDateGrid_end').css({height:height});}});}(jQuery,_));;