diff options
Diffstat (limited to 'radicale_web/web/infcloud/forms.js')
-rw-r--r-- | radicale_web/web/infcloud/forms.js | 3307 |
1 files changed, 3307 insertions, 0 deletions
diff --git a/radicale_web/web/infcloud/forms.js b/radicale_web/web/infcloud/forms.js new file mode 100644 index 0000000..b169df3 --- /dev/null +++ b/radicale_web/web/infcloud/forms.js @@ -0,0 +1,3307 @@ +/* +InfCloud - the open source CalDAV/CardDAV Web Client +Copyright (C) 2011-2015 + Jan Mate <jan.mate@inf-it.com> + Andrej Lezo <andrej.lezo@inf-it.com> + Matej Mihalik <matej.mihalik@inf-it.com> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as +published by the Free Software Foundation, either version 3 of the +License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Affero General Public License for more details. + +You should have received a copy of the GNU Affero General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +function updateTodoFormDimensions(setHeight) +{ + $('#CATodo').css('width',''); + $('#CATodo').css('width',$('#todo_details_template').css('width')); + + if(setHeight) + { + $('#CATodo').css('height',''); + $('#CATodo').css('height',$('#todo_details_template').css('height')); + } +} + +function updateEventFormDimensions(setHeight) +{ + $('#CAEvent').css('width',''); + $('#CAEvent').css('width',$('#event_details_template').css('width')); + + if(setHeight) + { + $('#CAEvent').css('height',''); + $('#CAEvent').css('height',$('#event_details_template').css('height')); + } +} + +function setFormPosition(jsEvent, confirmRepeat) +{ + var position_x, + position_y, + dist_x, + dist_y; + + $('#event_details_template').css('max-height',''); + + if(jsEvent) + { + if(jsEvent.pageX<=($('#main').width()/2)) + { + position_v='left'; + dist_x=jsEvent.pageX; + } + else + { + position_v='right'; + dist_x=$('body').width()-jsEvent.pageX; + } + + /*if(jsEvent.pageY<=($('#main').height()/2)) + { + position_h='top'; + dist_y=jsEvent.pageY; + } + else + { + position_h='top'; + dist_y=jsEvent.pageY-$('#event_details_template').height(); + }*/ + position_h='top'; + dist_y=Math.max(29, jsEvent.pageY-(confirmRepeat ? $('#CAEvent').height() : $('#event_details_template').height())); + } + else + { + position_v='right'; + position_h='top'; + dist_x=25; + dist_y=29; + } + + $('#CAEvent').css('left',''); + $('#CAEvent').css('right',''); + $('#CAEvent').css('top',''); + $('#CAEvent').css('bottom',''); + $('#CAEvent').css(position_v, dist_x); + $('#CAEvent').css(position_h, dist_y); + $('#event_details_template').css('max-height', $('#main').height()-dist_y+20+'px'); + $('#CAEvent').css('max-height', $('#main').height()-dist_y+20+'px'); +} + +function setTodoPosition(jsEvent) +{ + var dist, + pointY=0; + $('#todo_details_template').css('max-height',''); + $('#CATodo').css('max-height',''); + + if(jsEvent!=undefined) + { + if(jsEvent.pageY!=undefined) + pointY=jsEvent.pageY; + else + pointY=jsEvent.clientY; + } + + if(jsEvent) + { + /*if((pointY)+$('#todo_details_template').height()<$(window).height()) + dist=jsEvent.pageY; + else + dist=pointY-$('#todo_details_template').height();*/ + dist=Math.max(25, jsEvent.pageY-$('#todo_details_template').height()); + } + else + dist=25; + + $('#CATodo').css('left',''); + $('#CATodo').css('right',''); + $('#CATodo').css('top',''); + $('#CATodo').css('bottom',''); + $('#CATodo').css('top', dist); + $('#todo_details_template').css('right', 0); + $('#CATodo').css('right', 25); + $('#todo_details_template').css('max-height', $('#main').height()-dist+20+'px'); + $('#CATodo').css('max-height', $('#main').height()-dist+20+'px'); +} + +function showTimezones(selTimezone, todoSelector) +{ + if(!globalSettings.timezonesupport.value) + return false; + + var select=$('#timezone'+todoSelector); + select.empty(); + var isFirst=false; + for(var izone in timezoneKeys) + { + if(timeZonesEnabled.indexOf(timezoneKeys[izone])==-1) + continue; + if(!isNaN(izone)) + { + var tmp=null; + if(!isFirst) + { + tmp=$('<option>'); + tmp.attr('data-type','local'); + isFirst=true; + if(!(selTimezone in timezones) && selTimezone!= '' && selTimezone!= 'local' && (globalSettings.removeunknowntimezone.value == null || !globalSettings.removeunknowntimezone.value)) + { + tmp.text(localization[globalInterfaceLanguage].customTimezone); + tmp.attr('value','custom'); + if((todoSelector=='PickerTODO' || todoSelector=='Picker') && globalSettings.timezone.value != null) + tmp.attr('value',globalSettings.timezone.value); + select.append(tmp); + } + } + tmp=$('<option>'); + tmp.attr('data-type',timezoneKeys[izone]); + if(izone==0) + { + tmp.text(localization[globalInterfaceLanguage].localTime); + tmp.attr('value','local'); + select.append(tmp); + } + else + { + tmp.text(timezoneKeys[izone]); + tmp.attr('value',timezoneKeys[izone]); + select.append(tmp); + } + } + } + + if(!selTimezone && typeof globalSessionTimeZone!='undefined' && globalSessionTimeZone) + selTimezone=globalSessionTimeZone; + + if(selTimezone in timezones) + select.val(selTimezone); + else + { + if((globalSettings.removeunknowntimezone.value != null && globalSettings.removeunknowntimezone.value) || selTimezone == 'local') + select.val('local'); + else + select.val('custom'); + } +} + +function showTodoForm(todo, mod, repeatOne, confirmRepeat) +{ + $('#CATodo').css('display','none'); + $('#todo_details_template').remove(); + $('#CATodo').html(cleanVtodoTemplate); + setFirstDayTodo(); + bindTodoForm(); + + $('#noteTODO').autosize({defaultStyles: {height: '64', overflow: '', 'overflow-y': '', 'word-wrap': '', resize: 'none'}, callback: function(){checkTodoFormScrollBar();}}); + $("#showTODO").val(''); + $("#uidTODO").val(''); + $("#etagTODO").val(''); + $("#vcalendarUIDTODO").val(''); + globalPrevDate=''; + globalObjectLoading=true; + + var color=''; + if(todo==null) + { + var activeCollection = $('#ResourceCalDAVTODOList').find('.resourceCalDAVTODO_item.resourceCalDAV_item_selected'); + if(activeCollection.length>0 && !globalResourceCalDAVList.getTodoCollectionByUID(activeCollection.attr('data-id')).permissions.read_only) + color=rgbToHex(activeCollection.children('.resourceCalDAVColor').css('background-color')); + } + else + color=globalResourceCalDAVList.getTodoCollectionByUID(todo.res_id).ecolor; + + if(confirmRepeat) + { + $('#showTODO').val(todo.id); + $('#repeatTodo').val(true); + $('#CATodo').show(); + $('#repeatConfirmBoxTODO').css('visibility', 'visible'); + if(todo.repeatCount!='' && todo.repeatCount == 1 || globalSettings.appleremindersmode.value) + { + $('#editFutureTODO').css('display','none'); + if($('#editFutureTODO').next('br').length>0) + $('#editFutureTODO').next().remove(); + } + else if($('#editFutureTODO').css('display')=='none') + { + $('#editFutureTODO').css('display','block'); + if($('#editFutureTODO').next('br').length==0) + $('#editFutureTODO').after('<br/>') + } + + $('#editAllTODO, #editOnlyOneTODO, #editFutureTODO').click(function(){ + if(globalCalTodo) + { + if($(this).attr('id')=='editOnlyOneTODO') + showTodoForm(globalCalTodo, 'show', 'editOnly'); + else if($(this).attr('id')=='editAllTODO') + showTodoForm(globalCalTodo, 'show', ''); + else if($(this).attr('id')=='editFutureTODO') + showTodoForm(globalCalTodo, 'show', 'futureOnly'); + + $('#repeatConfirmBoxContentTODO').html(''); + $('#repeatConfirmBoxTODO').css('visibility', 'hidden'); + $('#todo_details_template').css('visibility', 'visible'); + $('#AlertDisabler').fadeOut(globalEditorFadeAnimation); + } + }); + + $('#repeatConfirmBoxContentTODO').html('<b>'+todo.title+"</b> "+localization[globalInterfaceLanguage].repeatBoxContentTODO); + $('#repeatConfirmBoxQuestionTODO').html(localization[globalInterfaceLanguage].repeatBoxQuestionTODO); + $('#todo_details_template').css('visibility', 'hidden'); + globalObjectLoading=false; + $('#CATodo').show(200, function(){ + $('#todoColor').css('background-color',color); + checkTodoFormScrollBar(); + $('#todoForm').scrollTop(0); + }); + return true; + } + + if(mod=='show' && repeatOne=='futureOnly') + { + if(todo.start!=null) + $('#futureStartTODO').val(todo.realRepeatCount+';'+todo.start); + else if(todo.end!=null) + $('#futureStartTODO').val(todo.realRepeatCount+';'+todo.end); + } + + if(mod=='show') + { + var checkDataStart=''; + if(todo.start) + checkDataStart=$.fullCalendar.formatDate(todo.start, "yyyyMMdd'T'HHmmss'Z'"); + if($('.fc-event-selected').length>0 && $('.fc-event-selected').attr("data-start")!=checkDataStart) + $('.fc-view-todo').addClass('fc-view-trans'); + else + $('.fc-view-todo').removeClass('fc-view-trans'); + } + + if(repeatOne=='editOnly') + if(todo!=null && (todo.type || todo.rec_id)) + { + var eventsSorted=jQuery.grep(globalEventList.displayTodosArray[todo.res_id],function(e){if(e.id==todo.id)return true}).sort(repeatStartCompare); + if(eventsSorted.indexOf(todo)!=-1) + { + if(eventsSorted.indexOf(todo)<(eventsSorted.length-1)) + showTodoNextNav(); + if(eventsSorted.indexOf(todo)!=0) + showTodoPrevNav(); + + var uncomplete=0; + for(var ij=(eventsSorted.indexOf(todo)+1); ij<eventsSorted.length; ij++) + if(eventsSorted[ij].status!='COMPLETED') + uncomplete++; + if(uncomplete>0 && eventsSorted.indexOf(todo)<(eventsSorted.length-1)) + showTodoNextNav(true); + + var uncomplete=0; + for(var ij=(eventsSorted.indexOf(todo)-1); ij>=0; ij--) + if(eventsSorted[ij].status!='COMPLETED') + uncomplete++; + if(uncomplete>0 && eventsSorted.indexOf(todo)!=0) + showTodoPrevNav(true); + } + } + + if(todo!=null) + { + var prior=parseInt(todo.priority,10); + if(prior==5) + $('#priority_TODO').val(5); + else if(prior>5 && prior<10) + { + $('#priority_TODO [data-type="priority_TODO_low"]').attr('value',prior) + $('#priority_TODO').val(prior); + } + else if(prior<5 && prior>0) + { + $('#priority_TODO [data-type="priority_TODO_high"]').attr('value',prior) + $('#priority_TODO').val(prior); + } + else + $('#priority_TODO').val(0); + } + + if(todo!=null) + var sliderValue=todo.percent; + else + sliderValue=0; + + var cals=globalResourceCalDAVList.sortedTodoCollections; + var todoCalendarObj = $('#todo_calendar'); + var calSelected = $('.resourceCalDAVTODO_item.resourceCalDAV_item_selected').attr('data-id'); + for(var i=0;i<cals.length;i++) + { + if( cals[i].uid!=undefined && ((todo!=null && todo.res_id==cals[i].uid) || (cals[i].makeLoaded && !cals[i].permissions_read_only))) + { + todoCalendarObj.append(new Option(cals[i].displayValue,cals[i].uid)); + } + } + + if(mod!='new') + fullVcalendarToTodoData(todo,true); + else + CalDAVeditor_cleanup('form'); + + if(mod=='new') + { + $('#todoInEdit').val('true'); + $('#deleteTODO').hide(); + $('#resetTODO').hide(); + $('#editTODO').hide(); + $('#duplicateTODO').hide(); + $('#editOptionsButtonTODO').hide(); + $('#showTODO').val(''); + + if($('#ResourceCalDAVTODOList').find('.resourceCalDAVTODO_item.resourceCalDAV_item_selected').length>0 && $('#todo_calendar').find('option[value="'+$('#ResourceCalDAVTODOList').find('.resourceCalDAVTODO_item.resourceCalDAV_item_selected').attr("data-id")+'"]').length>0) + $('#todo_calendar').val($('#ResourceCalDAVTODOList').find('.resourceCalDAVTODO_item.resourceCalDAV_item_selected').attr("data-id")); + else + $('#todo_calendar').val('choose'); + //$('[data-type="name_TODO"]').attr('placeholder', localization[globalInterfaceLanguage].pholderNewTODO); + + showTimezones('', 'TODO'); + $('.timezone_rowTODO').css('display','none') + } + $('#CATodo').show(); + $('#todo_details_template').show(); + if(globalSettings.appleremindersmode.value) + { + $('[data-type="todo_type_start"], [data-type="todo_type_both"]').remove(); + if(typeof globalSettings.appleremindersmode.value == 'string' && globalSettings.appleremindersmode.value.toLowerCase()=='ios6') + { + $('#url_trTODO').hide(); + $('#location_row_TODO').hide(); + } + $('[data-type="STATUS_CANCELLED_TODO"],[data-type="STATUS_IN-PROCESS_TODO"]').remove(); + } + if(mod=='show') + { + $('#showTODO').val(todo.id); + $('#todoDetailsTable :input[type!="button"]').prop('disabled', true); + + if(todo.timeZone) + showTimezones(todo.timeZone,'TODO'); + else + showTimezones('local','TODO'); + + if(todo.etag!='') + $('#todo_calendar').val(todo.res_id); + + $('#nameTODO').val(todo.title); + if(todo.status=='CANCELLED') + $('#nameTODO').addClass('title_cancelled'); + + if(todo.start!=null || todo.end!=null) + { + if((!globalSettings.appleremindersmode.value) && ((todo.start!=null && todo.end!=null && repeatOne!='') || (!todo.type && todo.realStart!='' && todo.realEnd!='' && repeatOne=='') || (todo.type && todo.repeatStart!='' && todo.repeatEnd!='' && repeatOne==''))) + $('#todo_type').val('both'); + else if((!globalSettings.appleremindersmode.value) && ((todo.start!=null && todo.end==null && repeatOne!='') || (!todo.type && todo.realStart!='' && todo.realEnd=='' && repeatOne=='') || (todo.type && todo.repeatStart!='' && todo.repeatEnd=='' && repeatOne==''))) + $('#todo_type').val('start'); + else + $('#todo_type').val('due'); + if(globalSettings.timezonesupport.value) + $('.timezone_rowTODO').show(); + } + else + { + $('#todo_type').val('none'); + $('.timezone_rowTODO').css('display','none'); + } + if(todo.start!='' && todo.start!=null) + { + var date, + year, + month, + day, + hour, + minute; + + if(todo.realStart) + date=$.fullCalendar.parseDate(todo.realStart); + else + date=$.fullCalendar.parseDate(todo.start); + + if($('#showTODO').val()!='' && todo.repeatStart!='' && repeatOne=='') + date=todo.repeatStart; + else if($('#showTODO').val()!='' && todo.repeatStart=='' && repeatOne=='' && todo.type) + date=''; + + if(date) + { + (date.getHours())<10 ? (hour='0'+(date.getHours())) : (hour=date.getHours()); + (date.getMinutes())<10 ? (minute='0'+(date.getMinutes())) : (minute=date.getMinutes()); + + var formattedDate=$.datepicker.formatDate(globalSettings.datepickerformat.value, date); + $('#date_fromTODO').val(formattedDate); + if($('#todo_type').val=='both') + globalPrevDate = new Date(date.getTime()); + $('#time_fromTODO').val($.fullCalendar.formatDate(date, (globalSettings.ampmformat.value ? 'hh:mm TT' : 'HH:mm'))); + } + } + if(todo.end!='' && todo.end!=null) + { + if(todo.realEnd) + date=$.fullCalendar.parseDate(todo.realEnd); + else + date=$.fullCalendar.parseDate(todo.end); + + if($('#showTODO').val()!='' && todo.repeatEnd!='' && repeatOne=='') + date=todo.repeatEnd; + else if($('#showTODO').val()!='' && todo.repeatEnd=='' && repeatOne=='' && todo.type) + date=''; + + if(date) + { + (date.getHours())<10 ? (hour='0'+(date.getHours())) : (hour=date.getHours()); + (date.getMinutes())<10 ? (minute='0'+(date.getMinutes())) : (minute=date.getMinutes()); + + var formattedDate_to=$.datepicker.formatDate(globalSettings.datepickerformat.value, date); + $('#date_toTODO').val(formattedDate_to); + $('#time_toTODO').val($.fullCalendar.formatDate(date, (globalSettings.ampmformat.value ? 'hh:mm TT' : 'HH:mm'))); + } + } + if(repeatOne=='editOnly' && todo.rec_id=='') + { + if(todo.repeatStart!='' && todo.start) + { + if(typeof todo.realStart=='object') + $('#recurrenceIDTODO').val($.fullCalendar.formatDate(todo.realStart, "yyyyMMdd'T'HHmmss")); + else if(typeof todo.realStart =='string') + $('#recurrenceIDTODO').val($.fullCalendar.formatDate($.fullCalendar.parseDate(todo.realStart), "yyyyMMdd'T'HHmmss")); + } + else if(todo.repeatEnd!='' && todo.end) + { + if(typeof todo.realEnd =='object') + $('#recurrenceIDTODO').val($.fullCalendar.formatDate(todo.realEnd, "yyyyMMdd'T'HHmmss")); + else if(typeof todo.realEnd =='string') + $('#recurrenceIDTODO').val($.fullCalendar.formatDate($.fullCalendar.parseDate(todo.realEnd), "yyyyMMdd'T'HHmmss")); + } + } + else + $('#recurrenceIDTODO').val(todo.rec_id); + + if(todo.rec_id || repeatOne=='editOnly' || repeatOne=='futureOnly') + { + var savedEvs=jQuery.grep(globalEventList.displayTodosArray[todo.res_id],function(e){if(e.id==todo.id && (e.repeatCount<2 || !e.repeatCount))return true}); + if(savedEvs.length>1 || (repeatOne=='futureOnly' && todo.repeatCount>1) || (repeatOne=='editOnly' && todo.type!='')) + { + $('#deleteTODO').attr('onclick',"$('#todoInEdit').val('false');updateEventFormDimensions(true);$('#todoLoader').show();saveTodo(true);"); + } + } + + if(todo.completedOn!='' && todo.completedOn!=null) + { + var date, + year, + month, + day, + hour, + minute; + + + // (todo.completedOn.getHours())<10 ? (hour='0'+(todo.completedOn.getHours())) : (hour=todo.completedOn.getHours()); + // (todo.completedOn.getMinutes())<10 ? (minute='0'+(todo.completedOn.getMinutes())) : (minute=todo.completedOn.getMinutes()); + if(typeof todo.completedOn=='string') + date = $.fullCalendar.parseDate(todo.completedOn); + else if(typeof todo.completedOn=='object') + date=new Date(todo.completedOn.getTime()); + + var formattedDate=$.datepicker.formatDate(globalSettings.datepickerformat.value, date); + $('#completedOnDate').val(formattedDate); + $('#completedOnTime').val($.fullCalendar.formatDate(date, (globalSettings.ampmformat.value ? 'hh:mm TT' : 'HH:mm'))); + $('.completedOnTr').show(); + } + + var alarmDate=''; + var alarmIterator=0; + + for(alarmIterator=0;alarmIterator<todo.alertTime.length;alarmIterator++) + { + if(alarmIterator>0) + todo_alert_add(alarmIterator); + + $(".alertTODO[data-id="+(alarmIterator+1)+"]").val("message"); + + if(todo.alertTime[alarmIterator].charAt(0)=='-' || todo.alertTime[alarmIterator].charAt(0)=='+') + { + var alVal=parseInt(todo.alertTime[alarmIterator].substring(1, todo.alertTime[alarmIterator].length-1)); + var alString=''; + + if(todo.alertTime[alarmIterator].charAt(todo.alertTime[alarmIterator].length-1)=="W") + { + alVal=alVal/1000/60/60/24/7; + alString='weeks'; + } + else if(todo.alertTime[alarmIterator].charAt(todo.alertTime[alarmIterator].length-1)=="D") + { + alVal=alVal/1000/60/60/24; + alString='days'; + } + else if(todo.alertTime[alarmIterator].charAt(todo.alertTime[alarmIterator].length-1)=="H") + { + alVal=alVal/1000/60/60; + alString='hours'; + } + else if(todo.alertTime[alarmIterator].charAt(todo.alertTime[alarmIterator].length-1)=="M") + { + alVal=alVal/1000/60; + alString='minutes'; + } + else if(todo.alertTime[alarmIterator].charAt(todo.alertTime[alarmIterator].length-1)=="S") + { + alVal=alVal/1000; + alString='seconds'; + } + + if(todo.alertTime[alarmIterator].charAt(0)=='-') + alString+="_before"; + else + alString+="_after" + + $(".alert_message_detailsTODO[data-id="+(alarmIterator+1)+"]").val(alString); + $(".before_after_inputTODO[data-id="+(alarmIterator+1)+"]").val(alVal); + $('.alert_detailsTODO[data-id="'+(alarmIterator+1)+'"]').show(); + $('.alert_message_dateTODO[data-id="'+(alarmIterator+1)+'"]').show(); + $('.before_after_inputTODO[data-id="'+(alarmIterator+1)+'"]').show(); + $(".message_date_inputTODO[data-id="+(alarmIterator+1)+"]").hide(); + $(".message_time_inputTODO[data-id="+(alarmIterator+1)+"]").hide(); + } + else + { + alarmDate=$.fullCalendar.parseDate(todo.alertTime[alarmIterator]); + (alarmDate.getHours())<10 ? (hour='0'+(alarmDate.getHours())) : (hour=alarmDate.getHours()); + (alarmDate.getMinutes())<10 ? (minute='0'+(alarmDate.getMinutes())) : (minute=alarmDate.getMinutes()); + + $(".alert_message_detailsTODO[data-id="+(alarmIterator+1)+"]").val('on_date'); + var formattedAlarmDate=$.datepicker.formatDate(globalSettings.datepickerformat.value, alarmDate); + + $(".message_date_inputTODO[data-id="+(alarmIterator+1)+"]").val(formattedAlarmDate); + $(".message_time_inputTODO[data-id="+(alarmIterator+1)+"]").val($.fullCalendar.formatDate(alarmDate, (globalSettings.ampmformat.value ? 'hh:mm TT' : 'HH:mm'))); + + $('.alert_detailsTODO[data-id="'+(alarmIterator+1)+'"]').show(); + $('.alert_message_dateTODO[data-id="'+(alarmIterator+1)+'"]').show(); + } + } + + if(alarmIterator>0) + todo_alert_add(alarmIterator); + if(todo.type!='' && repeatOne!='editOnly' && todo.ruleString.match(vCalendar.re['recurCaldav'])!=null) + { + var ruleString=todo.vcalendar.match(vCalendar.pre['contentline_RRULE2'])[0].match(vCalendar.pre['contentline_parse'])[4]; + if(ruleString.indexOf('BYMONTH=')!=-1 || ruleString.indexOf('BYMONTHDAY=')!=-1 || ruleString.indexOf('BYDAY=')!=-1) + { + var pars=ruleString.split(';'); + + if(pars.indexElementOf('BYMONTH=')!=-1 && pars.indexElementOf('BYMONTHDAY=')==-1 && pars.indexElementOf('BYDAY=')==-1) + pars[pars.length] = "BYMONTHDAY="+todo.start.getDate(); + if(todo.type=="DAILY") + { + $("#repeat_TODO option[value='DAILY']").prop('selected', true); + $('#repeat_interval_TODO [data-type="txt_interval"]').text(localization[globalInterfaceLanguage].repeatDays); + } + else if(todo.type=="WEEKLY") + { + $("#repeat_TODO option[value='CUSTOM_WEEKLY']").prop('selected', true); + $('#repeat_interval_TODO [data-type="txt_interval"]').text(localization[globalInterfaceLanguage].repeatWeeks); + + for(var ri=0;ri<pars.length;ri++) + { + if(pars[ri].indexOf("BYDAY=")!=-1) + { + var byDay=pars[ri].split('=')[1]; + byDay=byDay.replace(/\d*MO/,1).replace(/\d*TU/,2).replace(/\d*WE/,3).replace(/\d*TH/,4).replace(/\d*FR/,5).replace(/\d*SA/,6).replace(/\d*SU/,0).split(','); + for(var rj=0;rj<byDay.length;rj++) + { + if(!isNaN(parseInt(byDay[rj],10))) + $('#week_custom_TODO .customTable td[data-type="'+byDay[rj]+'"]').addClass('selected'); + } + } + } + $('#week_custom_TODO').show(); + } + else if(todo.type=="MONTHLY") + { + $("#repeat_TODO option[value='CUSTOM_MONTHLY']").prop('selected', true).change(); + $('#repeat_interval_TODO [data-type="txt_interval"]').text(localization[globalInterfaceLanguage].repeatMonths); + + + for(var ri=0;ri<pars.length;ri++) + { + if(pars[ri].indexOf("BYDAY=")!=-1) + { + var byDay=pars[ri].split('=')[1]; + byDay=byDay.split(','); + for(var rj=0;rj<byDay.length;rj++) + { + var checkString = byDay[rj].match(vCalendar.pre['+/-number']); + byDay[rj] = byDay[rj].replace(checkString[0],''); + if(!isNaN(parseInt(checkString[0],10))) + { + switch(parseInt(checkString[0],10)) + { + case 1: + $('#repeat_month_custom_select_TODO').val('first'); + break; + case 2: + $('#repeat_month_custom_select_TODO').val('second'); + break; + case 3: + $('#repeat_month_custom_select_TODO').val('third'); + break; + case 4: + $('#repeat_month_custom_select_TODO').val('fourth'); + break; + case 5: + $('#repeat_month_custom_select_TODO').val('fifth'); + break; + case -1: + $('#repeat_month_custom_select_TODO').val('last'); + break; + default: + $('#repeat_month_custom_select_TODO').val('every'); + break; + } + $('#repeat_month_custom_select2_TODO').val(byDay[rj]); + } + } + } + else if(pars[ri].indexOf("BYMONTHDAY=")!=-1) + { + $('#repeat_month_custom_select_TODO').val('custom').change(); + var byMonthDay=pars[ri].split('=')[1]; + byMonthDay=byMonthDay.split(','); + for(var rj=0; rj<byMonthDay.length;rj++) + { + if(parseInt(byMonthDay[rj],10)==-1) + { + $('#repeat_month_custom_select_TODO').val('last').change(); + $('#repeat_month_custom_select2_TODO').val("DAY"); + + } + else + $('#month_custom2_TODO .customTable td[data-type="'+(parseInt(byMonthDay[rj],10))+'"]').addClass('selected'); + } + } + } + } + else if(todo.type=="YEARLY") + { + $("#repeat_TODO option[value='CUSTOM_YEARLY']").prop('selected', true).change(); + $('#repeat_interval_TODO [data-type="txt_interval"]').text(localization[globalInterfaceLanguage].repeatYears); + var isMonthDay=false; + for(var ri=0;ri<pars.length;ri++) + { + if(pars[ri].indexOf("BYDAY=")!=-1) + { + var byDay=pars[ri].split('=')[1]; + byDay=byDay.split(','); + for(var rj=0;rj<byDay.length;rj++) + { + var checkString = byDay[rj].match(vCalendar.pre['+/-number']); + byDay[rj] = byDay[rj].replace(checkString[0],''); + if(!isNaN(parseInt(checkString[0],10))) + { + switch(parseInt(checkString[0],10)) + { + case 1: + $('#repeat_year_custom_select1_TODO').val('first'); + break; + case 2: + $('#repeat_year_custom_select1_TODO').val('second'); + break; + case 3: + $('#repeat_year_custom_select1_TODO').val('third'); + break; + case 4: + $('#repeat_year_custom_select1_TODO').val('fourth'); + break; + case 5: + $('#repeat_year_custom_select1_TODO').val('fifth'); + break; + case -1: + $('#repeat_year_custom_select1_TODO').val('last'); + break; + default: + $('#repeat_year_custom_select1_TODO').val('every'); + break; + } + $('#repeat_year_custom_select2_TODO').val(byDay[rj]); + } + } + } + else if(pars[ri].indexOf("BYMONTHDAY=")!=-1) + { + $('#repeat_year_custom_select1_TODO').val('custom').change() + var byMonthDay=pars[ri].split('=')[1]; + byMonthDay=byMonthDay.split(','); + for(var rj=0; rj<byMonthDay.length;rj++) + { + if(parseInt(byMonthDay[rj],10)==-1) + { + $('#repeat_year_custom_select1_TODO').val('last').change(); + $('#repeat_year_custom_select2_TODO').val("DAY"); + + } + else + $('#year_custom1_TODO .customTable td[data-type="'+(parseInt(byMonthDay[rj],10))+'"]').addClass('selected'); + } + isMonthDay=true; + } + else if(pars[ri].indexOf("BYMONTH=")!=-1) + { + var byMonth=pars[ri].split('=')[1]; + byMonth=byMonth.split(','); + for(var rj=0; rj<byMonth.length;rj++) + $('#year_custom3_TODO .customTable td[data-type="'+(parseInt(byMonth[rj],10)-1)+'"]').addClass('selected'); + } + } + } + + if(todo.after=='' && todo.untilDate=='') + $("#repeat_end_details_TODO option[value='never']").prop('selected', true); + else if(todo.after!='') + { + $("#repeat_end_details_TODO option[value='after']").prop('selected', true); + $('#repeat_end_after_TODO').val(todo.after); + } + else if(todo.untilDate!='') + { + date=$.fullCalendar.parseDate(todo.untilDate); + $("#repeat_end_details_TODO option[value='on_date']").prop('selected', true); + var formattedRepeatDate=$.datepicker.formatDate(globalSettings.datepickerformat.value, date); + $('#repeat_end_date_TODO').val(formattedRepeatDate); + } + + $('#repeat_interval_detail_TODO').val(todo.interval); + $('#repeat_interval_TODO').show(); + + if(todo.byDay.length>0) + { + var businessArray=new Array(); + if(globalSettings.weekenddays.value.length>0) + for(var i=0;i<7;i++) + if(globalSettings.weekenddays.value.indexOf(i)==-1) + businessArray[businessArray.length]=i+''; + var businessCount=0; + var weekendCount=0; + for(var i=0;i<byDay.length;i++) + { + if(businessArray.indexOf(byDay[i])!=-1) + businessCount++; + if(globalSettings.weekenddays.value.indexOf(parseInt(byDay[i],10))!=-1) + weekendCount++; + } + + if(businessArray.length>0 && businessArray.length==businessCount) + { + $("#repeat_TODO option[value='BUSINESS']").prop('selected', true); + $('#repeat_interval_TODO').hide(); + $('#week_custom_TODO').hide(); + } + else if(globalSettings.weekenddays.value.length>0 && globalSettings.weekenddays.value.length==weekendCount) + { + $("#repeat_TODO option[value='WEEKEND']").prop('selected', true); + $('#repeat_interval_TODO').hide(); + $('#week_custom_TODO').hide(); + } + } + } + else + { + if(todo.type=="DAILY") + { + $("#repeat_TODO option[value='DAILY']").prop('selected', true); + $('#repeat_interval_TODO [data-type="txt_interval"]').text(localization[globalInterfaceLanguage].repeatDays); + } + else if(todo.type=="WEEKLY") + { + $("#repeat_TODO option[value='WEEKLY']").prop('selected', true); + $('#repeat_interval_TODO [data-type="txt_interval"]').text(localization[globalInterfaceLanguage].repeatWeeks); + } + else if(todo.type=="MONTHLY") + { + $("#repeat_TODO option[value='MONTHLY']").prop('selected', true); + $('#repeat_interval_TODO [data-type="txt_interval"]').text(localization[globalInterfaceLanguage].repeatMonths); + } + else if(todo.type=="YEARLY") + { + $("#repeat_TODO option[value='YEARLY']").prop('selected', true); + $('#repeat_interval_TODO [data-type="txt_interval"]').text(localization[globalInterfaceLanguage].repeatYears); + } + + if(todo.after=='' && todo.untilDate=='') + $("#repeat_end_details_TODO option[value='never']").prop('selected', true); + else if(todo.after!='') + { + $("#repeat_end_details_TODO option[value='after']").prop('selected', true); + $('#repeat_end_after_TODO').val(todo.after); + } + else if(todo.untilDate!='') + { + date=$.fullCalendar.parseDate(todo.untilDate); + $("#repeat_end_details_TODO option[value='on_date']").prop('selected', true); + var formattedRepeatDate=$.datepicker.formatDate(globalSettings.datepickerformat.value, date); + $('#repeat_end_date_TODO').val(formattedRepeatDate); + } + + $('#repeat_interval_detail_TODO').val(todo.interval); + $('#repeat_interval_TODO').show(); + $('#repeatTodo').val(true); + } + } + else if(todo.type!='' && repeatOne!='editOnly') + { + var cu_opt = new Option(localization[globalInterfaceLanguage].customRepeat, todo.ruleString, false, true); + cu_opt.attr('data-type','custom_repeat'); + $('#repeat_TODO').append(cu_opt); + } + else + $('#repeatTodo').val(false); + + if(todo.start!=null || todo.end!=null) + { + if(globalSettings.timezonesupport.value) + $('.timezone_rowTODO').show() + } + else + $('.timezone_rowTODO').css('display', 'none'); + + + if(todo.status!='') + $('#statusTODO').find('option[value='+todo.status+']').prop('selected', true); + + $('#noteTODO').val(todo.note).trigger('autosize.resize'); + + if(todo.classType!='') + $('#typeTODO').val(todo.classType.toLowerCase()); + else + $('#typeTODO').val('public'); + + if(todo!=null && mod!='new') + { + var uidArray = todo.id.match(vCalendar.pre['uidParts']); + + if(decodeURIComponent(uidArray[4]).indexOf(uidArray[2])==-1) + $('.row_typeTODO').css('display','none'); + } + + $('#uidTODO').val(todo.id); + $('#url_TODO').val(todo.url); + $('#location_TODO').val(todo.location); + $('#etagTODO').val(todo.etag); + $('#vcalendarHashTODO').val(hex_sha256(todo.vcalendar)); + var stringUIDcurrent=todo.vcalendar.match(vCalendar.pre['contentline_UID']); + + if(stringUIDcurrent!=null) + stringUIDcurrent=stringUIDcurrent[0].match(vCalendar.pre['contentline_parse'])[4]; + + if(stringUIDcurrent) + $('#vcalendarUIDTODO').val(stringUIDcurrent); + } + + + if($('#todo_type').val()=='start') + { + $('.dateTrFromTODO').show(); + $('.dateTrToTODO').hide(); + } + else if($('#todo_type').val()=='due') + { + $('.dateTrToTODO').show(); + $('.dateTrFromTODO').hide(); + } + else if($('#todo_type').val()=='both') + { + $('.dateTrToTODO').show(); + $('.dateTrFromTODO').show(); + } + else + { + $('.dateTrToTODO').hide(); + $('.dateTrFromTODO').hide(); + $('#repeat_row_TODO').hide(); + } + + if($('#repeat_TODO option:selected').attr('data-type')!="repeat_no-repeat" && $('#repeat_TODO option:selected').attr('data-type')!="custom_repeat") + $('#repeat_details_TODO').show(); + + if($('#repeat_end_details_TODO option:selected').attr('data-type')=="repeat_details_on_date") + { + $('#repeat_end_after_TODO').hide(); + $('#repeat_end_date_TODO').show(); + } + + if($('#repeat_end_details_TODO option:selected').attr('data-type')=="repeat_details_after") + { + $('#repeat_end_after_TODO').show(); + $('#repeat_end_date_TODO').hide(); + } + + if($('#repeat_end_details_TODO option:selected').attr('data-type')=="repeat_details_never") + { + $('#repeat_end_after_TODO').hide(); + $('#repeat_end_date_TODO').hide(); + } + + + if(mod=='show') + { + if($('#ResourceCalDAVTODOList').find('[data-id="'+todo.res_id+'"]').hasClass("resourceCalDAV_item_ro")) + { + $('#editTODO').hide(); + $('#duplicateTODO').hide(); + $('#editOptionsButtonTODO').hide(); + } + + $('#saveTODO').hide(); + $('#resetTODO').hide(); + $('#deleteTODO').hide(); + $('#todoDetailsTable :input[type!="button"]').prop('disabled', true); + $('#todoDetailsTable :input[type="text"]').prop('readonly', true); + $('#todoDetailsTable textarea').prop('readonly', true); + + $('#percentageSlider').slider({disabled: true}); + + /*************************** BAD HACKS SECTION ***************************/ + // here we fix the cross OS/cross broser problems (unfixable in pure CSS) + if($.browser.webkit && !!window.chrome) /* Chrome */ + { + if(navigator.platform.toLowerCase().indexOf('win')==0) /* Windows version */ + { + $('#todo_details_template').find('input').css('text-indent', '2px'); + $('#todo_details_template').find('select').css({'padding-left': '0px', 'padding-right': '13px'}); + } + else /* non-Windows version */ + $('#todo_details_template').find('input').css('text-indent', '1px'); + } + else if($.browser.safari) + { + $('#todo_details_template').find('textarea').addClass('safari_hack'); + $('#todo_details_template').find('input').addClass('safari_hack'); + } + else if($.browser.msie) /* IE */ + { + if(parseInt($.browser.version, 10)==10) /* IE 10 (because there are no more conditional comments) */ + { + $('#todo_details_template').find('select').css({'padding-top': '1px', 'padding-left': '0px', 'padding-right': '0px'}); + $('#todo_details_template').find('textarea').css('padding-top', '3px'); + $('#todo_details_template').find('input[type=button]').css('padding-top', '2px'); + } + } + + if($.browser.msie || $.browser.mozilla) + { + var newSVG=$(SVG_select_dis).attr('data-type', 'select_icon').css({'pointer-events': 'none', 'z-index': '1', 'display': 'inline', 'margin-left': '-22px', 'vertical-align': 'top', 'background-color': '#ffffff'}); // background-color = stupid IE9 bug + $('#todo_details_template').find('svg[data-type="select_icon"]').replaceWith($('<div>').append($(newSVG).clone()).html()); + } + /*************************** END OF BAD HACKS SECTION ***************************/ + } + if(repeatOne=='editOnly' || $('#recurrenceIDTODO').val()!='') + { + $('#repeat_TODO').parent().parent().css('display', 'none'); + $('#week_custom_TODO').css('display', 'none'); + $('#month_custom1_TODO').css('display', 'none'); + $('#month_custom2_TODO').css('display', 'none'); + $('#year_custom1_TODO').css('display', 'none'); + $('#year_custom2_TODO').css('display', 'none'); + $('#year_custom3_TODO').css('display', 'none'); + $('#repeat_details_TODO').css('display', 'none'); + } + if(todo==null || todo.type=='' || (globalSettings.appleremindersmode.value && (todo.status=='COMPLETED' || todo.status== 'CANCELLED')) || + (globalSettings.appleremindersmode.value && typeof globalAppleSupport.nextDates[todo.id] == 'undefined')) + $('#editOptionsButtonTODO').hide(); + else + $('#editOptionsButtonTODO').click(function(){ + showTodoForm(globalCalTodo, 'show', '', true); + }); + + if(repeatOne=='editOnly' || repeatOne=='futureOnly' || $('#recurrenceIDTODO').val()) + $('#calendarLineTODO').hide(); + + if(todo && todo.after && repeatOne=='futureOnly') + $('#repeat_end_after_TODO').val(todo.after - todo.realRepeatCount + 1); + + $('#percenteCompleteValue').val(sliderValue); + + $('#percentageSlider').slider({ + animate: true, + range: "min", + value: sliderValue, + min: 0, + max: 100, + step: 1, + + //this gets a live reading of the value and prints it on the page + slide: function(event, ui) + { + $("#percenteCompleteValue").val(ui.value); + $(this).parent().parent().find('img').css('display', 'none'); + }, + + //this updates the hidden form field so we can submit the data using a form + change: function(event, ui) { + var status; + + if (ui.value>99 && $('#statusTODO').val()==='CANCELLED') + status='CANCELLED'; + else if(ui.value>99) + status='COMPLETED'; + else if(ui.value>0 && !globalSettings.appleremindersmode.value) + status='IN-PROCESS'; + else + status='NEEDS-ACTION'; + + $('#statusTODO').val(status); + todoStatusChanged(status); + } + }); + + if(!globalSettings.timezonesupport.value) + $('.timezone_rowTODO').css('display', 'none'); + + //updateTodoFormDimensions(); + + //if(window.event!=undefined) + // setTodoPosition(window.event); + //else + // setTodoPosition(event); + + if($('#todo_type').val()=='none') + stripTodoAlerts(); + if(mod!='new') + $('#closeTODO').hide(); + globalObjectLoading=false; + $('#CATodo').show(200, function(){ + $('#todoColor').css('background-color',color); + checkTodoFormScrollBar(); + $('#todoForm').scrollTop(0); + }); +} + +function bindTodoForm() +{ + initCalDavDatepicker($('#todo_details_template')); + initCalDavTimepicker($('#todo_details_template')); + + $('#todo_details_template .alert_message_detailsTODO').change(function(){ + var data_id=$(this).attr("data-id"); + $('.before_after_inputTODO[data-id="'+data_id+'"]').parent().parent().find('img').css('display','none'); + if($('.alert_message_detailsTODO[data-id="'+data_id+'"] option:selected').attr('data-type')=="on_dateTODO") + { + var myDate=new Date(); + myDate.setDate(myDate.getDate()+7); + + if($('.dateTrToTODO').is(':visible') && $('.dateTrToTODO img:visible').length==0) { + var dateTo=$.datepicker.parseDate(globalSettings.datepickerformat.value,$("#date_toTODO").val()); + var datetime_to=$.fullCalendar.formatDate(dateTo, 'MM/dd/yyyy, '); + myDate=new Date(Date.parse(datetime_to +$("#time_toTODO").val())); + myDate.setHours(myDate.getHours()-1); + } + else if($('.dateTrFromTODO').is(':visible') && $('.dateTrFromTODO img:visible').length==0) { + var dateTo=$.datepicker.parseDate(globalSettings.datepickerformat.value,$("#date_fromTODO").val()); + var datetime_to=$.fullCalendar.formatDate(dateTo, 'MM/dd/yyyy, '); + myDate=new Date(Date.parse(datetime_to +$("#time_fromTODO").val())); + myDate.setHours(myDate.getHours()-1); + } + + $('.message_date_inputTODO[data-id="'+data_id+'"]').val($.datepicker.formatDate(globalSettings.datepickerformat.value, myDate)); + $('.message_date_inputTODO[data-id="'+data_id+'"]').show(); + $('.message_time_inputTODO[data-id="'+data_id+'"]').val($.fullCalendar.formatDate(myDate, (globalSettings.ampmformat.value ? 'hh:mm TT' : 'HH:mm'))); + $('.message_time_inputTODO[data-id="'+data_id+'"]').show(); + $('.before_after_inputTODO[data-id="'+data_id+'"]').hide(); + } + else + { + $('.message_date_inputTODO[data-id="'+data_id+'"]').hide(); + $('.message_time_inputTODO[data-id="'+data_id+'"]').hide(); + $('.before_after_inputTODO[data-id="'+data_id+'"]').show(); + $('.before_after_inputTODO[data-id="'+data_id+'"]').val('15'); + } + }); + + $('#todo_details_template .before_after_inputTODO').bind('keyup change', function(){ + if($(this).val()=='') + { + $(this).parent().find('img').css('display', 'inline'); + //$(this).parent().find('img').css('visibility','visible'); + } + else + { + if($(this).val().match("^[0-9]+$")==null) + { + $(this).parent().find('img').css('display', 'inline'); + //$(this).parent().find('img').css('visibility','visible'); + } + else + $(this).parent().find('img').css('display', 'none'); + } + }); + + $('#todo_details_template .alertTODO').change(function(){ + var data_id=$(this).attr("data-id"); + if($(this).val()!='none') + { + $('.alert_detailsTODO[data-id="'+data_id+'"]').show(); + $('.alert_message_dateTODO[data-id="'+data_id+'"]').show(); + if($('#todo_type').val()!='none') + expandTodoAlerts(); + var myDate=new Date(); + myDate.setDate(myDate.getDate()+7); + + if($('.dateTrToTODO').is(':visible') && $('.dateTrToTODO img:visible').length==0) { + var dateTo=$.datepicker.parseDate(globalSettings.datepickerformat.value,$("#date_toTODO").val()); + var datetime_to=$.fullCalendar.formatDate(dateTo, 'MM/dd/yyyy, '); + myDate=new Date(Date.parse(datetime_to +$("#time_toTODO").val())); + myDate.setHours(myDate.getHours()-1); + } + else if($('.dateTrFromTODO').is(':visible') && $('.dateTrFromTODO img:visible').length==0) { + var dateTo=$.datepicker.parseDate(globalSettings.datepickerformat.value,$("#date_fromTODO").val()); + var datetime_to=$.fullCalendar.formatDate(dateTo, 'MM/dd/yyyy, '); + myDate=new Date(Date.parse(datetime_to +$("#time_fromTODO").val())); + myDate.setHours(myDate.getHours()-1); + } + + $('.message_date_inputTODO[data-id="'+data_id+'"]').val($.datepicker.formatDate(globalSettings.datepickerformat.value, myDate)); + $('.message_time_inputTODO[data-id="'+data_id+'"]').val($.fullCalendar.formatDate(myDate, (globalSettings.ampmformat.value ? 'hh:mm TT' : 'HH:mm'))); + todo_alert_add(data_id); + } + else + { + $('.alert_detailsTODO[data-id="'+data_id+'"]').hide(); + $('.alert_message_dateTODO[data-id="'+data_id+'"]').hide(); + checkForTodo(data_id); + var data_id=$(this).attr("data-id"); + $('#todo_details_template tr[data-id="'+data_id+'"]').remove(); + } + checkTodoFormScrollBar(); + }); + + $('#repeat_end_after_TODO, #repeat_interval_detail_TODO').bind('keyup change',function(){ + if($(this).val()=='') + { + $(this).parent().find('img').css('display', 'inline'); + //$(this).parent().find('img').css('visibility','visible'); + } + else + { + if($(this).val().match("^[0-9]+$")==null || parseInt($(this).val(),10)<1) + { + $(this).parent().find('img').css('display', 'inline'); + //$(this).parent().find('img').css('visibility','visible'); + } + else + $(this).parent().find('img').css('display', 'none'); + } + }); + + $('#repeat_month_custom_select_TODO').change(function(){ + if($(this).val()=="custom") + { + $('#month_custom2_TODO').show(); + $('#repeat_month_custom_select2_TODO').parent().hide(); + } + else + { + $('#month_custom2_TODO').hide(); + $('#repeat_month_custom_select2_TODO').parent().show(); + } + checkTodoFormScrollBar(); + }); + + $('#repeat_year_custom_select1_TODO').change(function(){ + if($(this).val()=="custom") + { + $('#year_custom1_TODO').show(); + $('#repeat_year_custom_select2_TODO').parent().hide(); + } + else + { + $('#year_custom1_TODO').hide(); + $('#repeat_year_custom_select2_TODO').parent().show(); + } + checkTodoFormScrollBar(); + }); + + $('#repeat_end_details_TODO').change(function(){ + $('#repeat_end_date_TODO').parent().find('img').css('display', 'none'); + + if($('#repeat_end_details_TODO option:selected').attr('data-type')=="repeat_details_on_date") + { + $('#repeat_end_after_TODO').hide(); + $('#repeat_end_date_TODO').show(); + + var today; + if($('#date_fromTODO').val()!='') + { + today=$.datepicker.parseDate(globalSettings.datepickerformat.value, $('#date_fromTODO').val()); + if(today==null) + today=new Date(); + } + else + today=new Date(); + + var date=new Date(today.getFullYear(), today.getMonth(), today.getDate()+2); + $('#repeat_end_date_TODO').val($.datepicker.formatDate(globalSettings.datepickerformat.value, date)); + } + + if($('#repeat_end_details_TODO option:selected').attr('data-type')=="repeat_details_after") + { + $('#repeat_end_after_TODO').show(); + $('#repeat_end_after_TODO').val('2'); + $('#repeat_end_date_TODO').hide(); + } + + if($('#repeat_end_details_TODO option:selected').attr('data-type')=="repeat_details_never") + { + $('#repeat_end_after_TODO').hide(); + $('#repeat_end_date_TODO').hide(); + } + + checkTodoFormScrollBar(); + }); + + $('#todo_details_template .customTable td').click(function(){ + if($(this).hasClass('disabled')) + return true; + else if($(this).hasClass('selected')) + $(this).removeClass('selected'); + else + $(this).addClass('selected'); + }); + + $('#closeTODO').click(function() + { + $('#todoInEdit').val('false'); + if($('#uidTODO').val()!='') + { + var uid=$('#uidTODO').val(); + var calUID=uid.substring(0, uid.lastIndexOf('/')+1); + var color=$('#ResourceCalDAVTODOList').find("[data-id='"+calUID+"']").find('.resourceCalDAVColor').css('background-color'); + + $('.event_item[data-id="'+uid+'"]').children('.fc-event-handle').css({'background-color': rgbToRgba(color,0.9), 'border-color': color}); + } + + $('#TodoDisabler').fadeOut(globalEditorFadeAnimation, function(){ + $('#timezonePickerTODO').prop('disabled', false); + }); + + if(typeof globalCalTodo!= 'undefined' && globalCalTodo!=null && globalVisibleCalDAVTODOCollections.indexOf(globalCalTodo.res_id)!=-1) + { + $('#todoList').fullCalendar('selectEvent'); + } + else + $('#CATodo').attr('style','display:none'); + }); + + $('#resetTODO').click(function(){ + $('#todo_details_template').find('img[data-type=invalidSlider],img[data-type=invalidSmall]').css('display','none'); + if($('#uidTODO').val()!='') + { + var uid=$('#uidTODO').val(); + var calUID=uid.substring(0, uid.lastIndexOf('/')+1); + var color=$('#ResourceCalDAVTODOList').find("[data-id='"+calUID+"']").find('.resourceCalDAVColor').css('background-color'); + + $('.event_item[data-id="'+uid+'"]').children('.fc-event-handle').css({'background-color': rgbToRgba(color,0.9), 'border-color': color}); + + if($('#recurrenceIDTODO').val()!='') + showTodoForm(globalCalTodo, 'show','editOnly'); + else + showTodoForm(globalCalTodo, 'show'); + startEditModeTodo(); + } + }); + + $('#todo_calendar').change(function(){ + var color = ''; + if($(this).val()=='choose') + color = 'rgb(240,240,240)'; + else + color=$('#ResourceCalDAVTODOList').find("[data-id='"+$(this).val()+"']").find('.resourceCalDAVColor').css('background-color'); + + var uid='fooUID'; + if($('#uidTODO').val()!='') + uid=$('#uidTODO').val(); + + $('#todoColor').css('background-color',color); + $('.event_item[data-id="'+uid+'"]').find('.fc-event-handle').css({'background-color': rgbToRgba(color,0.9), 'border-color': color}); + }); + + $('#repeat_TODO').change(function(){ + if($('#repeat_TODO option:selected').attr('data-type')=='repeat_no-repeat' || $('#repeat_TODO option:selected').attr('data-type')=="custom_repeat") + { + $('#repeat_details_TODO').hide(); + $('#repeat_interval_TODO').hide(); + $('#week_custom_TODO').hide(); + $('#month_custom1_TODO').hide(); + $('#month_custom2_TODO').hide(); + $('#year_custom1_TODO').hide(); + $('#year_custom2_TODO').hide(); + $('#year_custom3_TODO').hide(); + } + else + { + $('#repeat_details_TODO').show(); + + if($(this).val()!='BUSINESS' && $(this).val()!='TWO_WEEKLY' && $(this).val()!='WEEKEND') + { + $('#repeat_interval_TODO').show(); + $("#repeat_interval_detail_TODO").val('1'); + $('#repeat_interval_TODO').find('img').css('display','none'); + } + else + $('#repeat_interval_TODO').hide(); + + if($(this).val()=='DAILY') + $('#repeat_interval_TODO [data-type="txt_interval"]').text(localization[globalInterfaceLanguage].repeatDays); + + if($(this).val()=='WEEKLY') + $('#repeat_interval_TODO [data-type="txt_interval"]').text(localization[globalInterfaceLanguage].repeatWeeks); + + if($(this).val()=='MONTHLY') + $('#repeat_interval_TODO [data-type="txt_interval"]').text(localization[globalInterfaceLanguage].repeatMonths); + + if($(this).val()=='YEARLY') + $('#repeat_interval_TODO [data-type="txt_interval"]').text(localization[globalInterfaceLanguage].repeatYears); + + if($(this).val()=='CUSTOM_WEEKLY') + { + $('#repeat_interval_TODO [data-type="txt_interval"]').text(localization[globalInterfaceLanguage].repeatWeeks); + $('#week_custom_TODO').show(); + } + else + $('#week_custom_TODO').hide(); + + if($(this).val()=='CUSTOM_MONTHLY') + { + $('#repeat_interval_TODO [data-type="txt_interval"]').text(localization[globalInterfaceLanguage].repeatMonths); + $('#month_custom1_TODO').show(); + if($('#repeat_month_custom_select_TODO').val() == "custom") + $('#repeat_month_custom_select_TODO').trigger('change'); + } + else + { + $('#month_custom1_TODO').hide(); + $('#month_custom2_TODO').hide(); + } + + if($(this).val()=='CUSTOM_YEARLY') + { + $('#repeat_interval_TODO [data-type="txt_interval"]').text(localization[globalInterfaceLanguage].repeatYears); + $('#year_custom2_TODO').show(); + $('#year_custom3_TODO').show(); + if($('#repeat_year_custom_select1_TODO').val() == "custom") + $('#repeat_year_custom_select1_TODO').trigger('change'); + } + else + { + $('#year_custom1_TODO').hide(); + $('#year_custom2_TODO').hide(); + $('#year_custom3_TODO').hide(); + } + + var today; + if($('#date_fromTODO').val()!='') + { + today=$.datepicker.parseDate(globalSettings.datepickerformat.value, $('#date_fromTODO').val()); + if(today==null) + today=new Date(); + } + else + today=new Date(); + + var date=new Date(today.getFullYear(),today.getMonth(),today.getDate()+2); + $('#repeat_end_date_TODO').val($.datepicker.formatDate(globalSettings.datepickerformat.value, date)); + } + checkTodoFormScrollBar(); + }); + + $('#statusTODO').change(function(){ + var status = $(this).val(); + + switch(status) { + case 'NEEDS-ACTION': + $('#percenteCompleteValue').val(0); + $('#percentageSlider').slider({value: 0}); + $('#nameTODO').removeClass('title_cancelled'); + break; + case 'IN-PROCESS': + var value = 50; + var id = $('.fc-event-selected').attr('data-repeat-hash'); + if(typeof globalTodolistStatusArray[id]!='undefined' && typeof globalTodolistStatusArray[id].percent!='undefined') + value=globalTodolistStatusArray[id].percent; + $('#percenteCompleteValue').val(value); + $('#percentageSlider').slider({value: value}); + $('#nameTODO').removeClass('title_cancelled'); + break; + case 'CANCELLED': + $('#percenteCompleteValue').val(100); + $('#percentageSlider').slider({value: 100}); + $('#nameTODO').addClass('title_cancelled'); + break; + case 'COMPLETED': + $('#percenteCompleteValue').val(100); + $('#percentageSlider').slider({value: 100}); + $('#nameTODO').removeClass('title_cancelled'); + break; + default: + break; + } + + todoStatusChanged(status); + }); + + $('#todo_type').change(function(){ + if($(this).val()=='none') + { + $('#timezoneTODO').val('local'); + $('#repeat_row_TODO').hide(); + $('#date_fromTODO, #time_fromTODO, #date_toTODO, #time_toTODO').parent().find('img').css('display','none'); + $('.dateTrFromTODO, .dateTrToTODO, .timezone_rowTODO').hide(); + stripTodoAlerts(); + } + else if($(this).val()=='start') + { + var myDate=new Date(); + $('#date_fromTODO').val($.datepicker.formatDate(globalSettings.datepickerformat.value, myDate)); + $('#time_fromTODO').val($.fullCalendar.formatDate(myDate, (globalSettings.ampmformat.value ? 'hh:mm TT' : 'HH:mm'))); + $('#repeat_row_TODO').show(); + $('#date_toTODO, #time_toTODO').parent().find('img').css('display','none'); + $('.dateTrToTODO').hide(); + + $('.dateTrFromTODO').show(); + if(globalSettings.timezonesupport.value) + { + $('.timezone_rowTODO').show(); + $('#timezoneTODO').val(globalSessionTimeZone); + } + $('#date_fromTODO, #time_fromTODO').trigger('change'); + } + else if($(this).val()=='due') + { + var myDate=new Date($('#todoList').fullCalendar('getView').start.getTime()); + myDate.setHours(globalSettings.calendarendofbusiness.value); + myDate.setMinutes((globalSettings.calendarendofbusiness.value%1)*60); + $('#date_toTODO').val($.datepicker.formatDate(globalSettings.datepickerformat.value, myDate)); + $('#time_toTODO').val($.fullCalendar.formatDate(myDate, (globalSettings.ampmformat.value ? 'hh:mm TT' : 'HH:mm'))); + $('#repeat_row_TODO').show(); + $('#date_fromTODO, #time_fromTODO').parent().find('img').css('display','none'); + $('.dateTrFromTODO').hide(); + + $('.dateTrToTODO').show(); + if(globalSettings.timezonesupport.value) + { + $('.timezone_rowTODO').show(); + $('#timezoneTODO').val(globalSessionTimeZone); + } + $('#date_toTODO, #time_toTODO').trigger('change'); + } + else if($(this).val()=='both') + { + var myDate=''; + var myDateStart= new Date(); + if($('#date_toTODO').val()!='') + { + var dateFrom=$.datepicker.parseDate(globalSettings.datepickerformat.value, $('#date_toTODO').val()); + var datetime_to=$.fullCalendar.formatDate(dateFrom, 'yyyy-MM-dd'); + var aDate=new Date(Date.parse("01/02/1990, "+$('#time_toTODO').val())); + var time_from=$.fullCalendar.formatDate(aDate, 'HH:mm:ss'); + var myDate=$.fullCalendar.parseDate(datetime_to+'T'+time_from); + } + else + { + myDate=new Date($('#todoList').fullCalendar('getView').start.getTime()); + $('#repeat_row_TODO').show(); + myDate.setHours(globalSettings.calendarendofbusiness.value); + myDate.setMinutes((globalSettings.calendarendofbusiness.value%1)*60); + if($('#date_toTODO').val()=='') + $('#date_toTODO').val($.datepicker.formatDate(globalSettings.datepickerformat.value, myDate)); + if($('#time_toTODO').val()=='') + $('#time_toTODO').val($.fullCalendar.formatDate(myDate, (globalSettings.ampmformat.value ? 'hh:mm TT' : 'HH:mm'))); + } + + if(myDateStart>myDate) + myDateStart= new Date(myDate.getTime()); + globalPrevDate = new Date(myDateStart.getTime()); + if($('#date_fromTODO').val()=='') + $('#date_fromTODO').val($.datepicker.formatDate(globalSettings.datepickerformat.value, myDateStart)); + + if($('#time_fromTODO').val()=='') + $('#time_fromTODO').val($.fullCalendar.formatDate(myDateStart, (globalSettings.ampmformat.value ? 'hh:mm TT' : 'HH:mm'))); + + $('.dateTrFromTODO, .dateTrToTODO').show(); + if(globalSettings.timezonesupport.value) + { + $('.timezone_rowTODO').show(); + $('#timezoneTODO').val(globalSessionTimeZone); + } + $('#date_fromTODO, #time_fromTODO, #date_toTODO, #time_toTODO').trigger('change'); + } + if($('#todo_type').val()!='none') + expandTodoAlerts(); + checkTodoFormScrollBar(); + }); + + $('#percenteCompleteValue').bind('keyup change',function(){ + if($(this).val()=='') + { + $(this).parent().find('img').css('display', 'inline'); + } + else + { + if($(this).val().match('^(([0-9])|([1-9][0-9])|(100))$')==null) + $(this).parent().find('img').css('display', 'inline'); + else + { + $(this).parent().find('img').css('display', 'none'); + $( "#percentageSlider" ).slider({value: $(this).val()}); + } + } + }); +} + +function showEventForm(date, allDay, calEvent, jsEvent, mod, repeatOne, confirmRepeat) +{ + $('#event_details_template').remove(); + $('#CAEvent').html(cleanVcalendarTemplate); + setFirstDayEvent(); + bindEventForm(); + + $('#note').autosize({defaultStyles: {height: '64', overflow: '', 'overflow-y': '', 'word-wrap': '', resize: 'none'}, callback: function(){checkEventFormScrollBar();}}); + $("#show").val(''); + $("#uid").val(''); + $("#etag").val(''); + $("#repeatCount").val(''); + $("#repeatEvent").val(''); + $("#recurrenceID").val(''); + $("#futureStart").val(''); + $("#vcalendarHash").val(''); + $("#vcalendarUID").val(''); + globalPrevDate=''; + var color=''; + if(mod=='new') + { + var activeCollection = $('#ResourceCalDAVList').find('.resourceCalDAV_item.resourceCalDAV_item_selected'); + if(activeCollection.length>0 && !globalResourceCalDAVList.getEventCollectionByUID(activeCollection.attr('data-id')).permissions.read_only) + color=rgbToHex(activeCollection.children('.resourceCalDAVColor').css('background-color')); + } + else + color=globalResourceCalDAVList.getEventCollectionByUID(calEvent.res_id).ecolor; + + if(confirmRepeat) + { + $('#show').val(calEvent.id); + $('#repeatEvent').val(true); + $('#CAEvent').show(); + $('#repeatConfirmBox').css('visibility', 'visible'); + if(calEvent.repeatCount!='' && calEvent.repeatCount == 1) + { + $('#editFuture').css('display','none'); + if($('#editFuture').next('br').length>0) + $('#editFuture').next().remove(); + } + else if($('#editFuture').css('display')=='none') + { + $('#editFuture').css('display','block'); + if($('#editFuture').next('br').length==0) + $('#editFuture').after('<br/>') + } + $('#repeatConfirmBoxContent').html('<b>'+calEvent.title+"</b> "+localization[globalInterfaceLanguage].repeatBoxContent); + $('#repeatConfirmBoxQuestion').html(localization[globalInterfaceLanguage].repeatBoxQuestion); + + $('#editAll, #editOnlyOne, #editFuture').click(function(){ + if(globalCalEvent) + { + if($(this).attr('id')=='editOnlyOne') + showEventForm(null, globalCalEvent.allDay, globalCalEvent, globalJsEvent, 'show', 'editOnly'); + else if($(this).attr('id')=='editAll') + showEventForm(null, globalCalEvent.allDay, globalCalEvent, globalJsEvent, 'show', ''); + else if($(this).attr('id')=='editFuture') + showEventForm(null, globalCalEvent.allDay, globalCalEvent, globalJsEvent, 'show', 'futureOnly'); + + $('#repeatConfirmBoxContent').html(''); + $('#repeatConfirmBox').css('visibility', 'hidden'); + $('#AlertDisabler').fadeOut(globalEditorFadeAnimation); + } + }); + + $('#CAEvent').height($('#repeatConfirmBox').height()); + $('#eventColor').css('background-color',color); + updateEventFormDimensions(); + setFormPosition(jsEvent, true); + $('#event_details_template').scrollTop(0); + return true; + } + + if(mod=='show' && repeatOne=='futureOnly') + { + $('#futureStart').val(calEvent.realRepeatCount+';'+calEvent.start); + } + if(mod!='new') + fullVcalendarToData(calEvent); + else + CalDAVeditor_cleanup(); + + if(calEvent!=null && ((repeatOne=='editOnly'&&calEvent.type) || calEvent.rec_id)) + { + var eventsSorted=jQuery.grep(globalEventList.displayEventsArray[calEvent.res_id],function(e){if(e.id==calEvent.id)return true}).sort(repeatStartCompare); + if(eventsSorted.indexOf(calEvent)!=-1) + { + if(eventsSorted.indexOf(calEvent)<(eventsSorted.length-1)) + showEventNextNav(); + if(eventsSorted.indexOf(calEvent)!=0) + showEventPrevNav(); + } + } + + var cals=globalResourceCalDAVList.sortedCollections; + var calendarObj = $('#event_calendar'); + var calSelected = $('.resourceCalDAV_item.resourceCalDAV_item_selected').attr('data-id'); + for(var i=0;i<cals.length;i++) + { + if(cals[i].uid!=undefined && ((calEvent!=null && calEvent.res_id==cals[i].uid) || (cals[i].makeLoaded && !cals[i].permissions_read_only ))) + { + calendarObj.append(new Option(cals[i].displayValue,cals[i].uid)); + } + } + + if(mod=='new') + { + $('#show').val(''); + $('#editButton').hide(); + $('#duplicateButton').hide(); + $('#editOptionsButton').hide(); + $('#resetButton').hide(); + $('#deleteButton').hide(); + + if($('#ResourceCalDAVList').find('.resourceCalDAV_item.resourceCalDAV_item_selected').length>0 && $('#event_calendar').find('option[value="'+$('#ResourceCalDAVList').find('.resourceCalDAV_item.resourceCalDAV_item_selected').attr("data-id")+'"]').length>0) + $('.R_calendar').val($('#ResourceCalDAVList').find('.resourceCalDAV_item.resourceCalDAV_item_selected').attr("data-id")); + else + $('#event_calendar').val('choose'); + } + + if(mod=='drop') + { + if(calEvent.etag!='') + $('#event_calendar').val(calEvent.res_id); + } + + if(mod=='new') + { + //$('[data-type="name"]').attr('placeholder', localization[globalInterfaceLanguage].pholderNewEvent); + var date_to = null; + + if(calEvent!==null) + { + if(calEvent.realStart) + date=calEvent.realStart; + else + date=calEvent.start; + + if(calEvent.realEnd) + date_to=new Date(calEvent.realEnd.getTime()); + else + date_to=new Date(calEvent.end.getTime()); + } + + if(!allDay && ((date_to==null) || ((date_to-date)==0))) { + date_to = new Date(date.getTime()); + + if(globalSettings.defaulteventduration.value!==null) + date_to.setMinutes(date_to.getMinutes()+globalSettings.defaulteventduration.value); + else { + date_to.setHours(globalSettings.calendarendofbusiness.value); + date_to.setMinutes((globalSettings.calendarendofbusiness.value%1)*60); + } + + if(date_to.getTime()<date.getTime()) + date_to.setDate(date_to.getDate()+1); + } + + var beforeScroll = $('#main').width()-$('#calendar').width(); + $('#calendar').fullCalendar('renderEvent', $.extend(new items('',date,date_to,localization[globalInterfaceLanguage].pholderNewEvent, allDay, 'fooUID', '', '', '', '', '', '', '', '', '', '', '', '', '','', '', '', '', '', '', '', '', '','', '', '', '', '', '', '', ''),{backgroundColor:hexToRgba(color,0.9),borderColor:color,textColor:checkFontColor(color)})); + var afterScroll = $('#main').width()-$('#calendar').width(); + rerenderCalendar(beforeScroll!=afterScroll); + + if(allDay) + { + $('#allday').prop('checked', true); + $('#time_from_cell').css('visibility', 'hidden'); + $('#time_to_cell').css('visibility', 'hidden'); + $('.timezone_row').css('display', 'none'); + } + showTimezones('', ''); + } + + if(mod=='show' || mod=='drop') + { + if(calEvent.status=='CANCELLED') + $('#name').addClass('title_cancelled'); + + $('#name').val(calEvent.title); + $('#location').val(calEvent.location); + + if(calEvent.allDay==true) + { + $('#allday').prop('checked', true); + $('#time_from_cell').css('visibility', 'hidden'); + $('#time_to_cell').css('visibility', 'hidden'); + $('.timezone_row').css('display', 'none'); + } + + if(calEvent.end) + if(calEvent.realEnd && (mod!='drop' || repeatOne!='editOnly')) + date_to=new Date(calEvent.realEnd.getTime()); + else + date_to=new Date(calEvent.end.getTime()); + + $('#note').val(calEvent.note).trigger('autosize.resize'); + if(typeof calEvent.classType!='undefined' && calEvent.classType!=null && calEvent.classType!='') + $('#type').val(calEvent.classType.toLowerCase()); + else + $('#type').val('public'); + + if(calEvent.status!='') + $('#status').val(calEvent.status); + else + $('#status').val('NONE'); + + if(calEvent!=null && mod!='new') + { + var uidArray = calEvent.id.match(vCalendar.pre['uidParts']); + if(decodeURIComponent(uidArray[4]).indexOf(uidArray[2])==-1) + $('.row_type').css('display','none'); + } + + if(calEvent.avail == 'OPAQUE') + $('#avail').val('busy'); + else + $('#avail').val('free'); + + if(calEvent!=null) + { + var prior=parseInt(calEvent.priority,10); + if(prior==5) + $('#priority').val(5); + else if(prior>5 && prior<10) + { + $('#priority [data-type="priority_low"]').attr('value',prior) + $('#priority').val(prior); + } + else if(prior<5 && prior>0) + { + $('#priority [data-type="priority_high"]').attr('value',prior) + $('#priority').val(prior); + } + else + $('#priority').val(0); + } + + $('#uid').val(calEvent.id); + $('#url_EVENT').val(calEvent.hrefUrl+''); + $('#vcalendarHash').val(hex_sha256(calEvent.vcalendar)); + $('#etag').val(calEvent.etag); + var stringUIDcurrent=calEvent.vcalendar.match(vCalendar.pre['contentline_UID']); + + if(stringUIDcurrent!=null) + stringUIDcurrent=stringUIDcurrent[0].match(vCalendar.pre['contentline_parse'])[4]; + + if(stringUIDcurrent) + $('#vcalendarUID').val(stringUIDcurrent); + + var alarmDate=''; + for(var alarmIterator=0;alarmIterator<calEvent.alertTime.length;alarmIterator++) + { + if(alarmIterator>0) + event_alert_add(alarmIterator); + + $(".alert[data-id="+(alarmIterator+1)+"]").val("message"); + if(calEvent.alertTime[alarmIterator].charAt(0)=='-' || calEvent.alertTime[alarmIterator].charAt(0)=='+') + { + var alVal=parseInt(calEvent.alertTime[alarmIterator].substring(1, calEvent.alertTime[alarmIterator].length-1)); + var alString=''; + + if(calEvent.alertTime[alarmIterator].charAt(calEvent.alertTime[alarmIterator].length-1)=="W") + { + alVal=alVal/1000/60/60/24/7; + alString='weeks'; + } + else if(calEvent.alertTime[alarmIterator].charAt(calEvent.alertTime[alarmIterator].length-1)=="D") + { + alVal=alVal/1000/60/60/24; + alString='days'; + } + else if(calEvent.alertTime[alarmIterator].charAt(calEvent.alertTime[alarmIterator].length-1)=="H") + { + alVal=alVal/1000/60/60; + alString='hours'; + } + else if(calEvent.alertTime[alarmIterator].charAt(calEvent.alertTime[alarmIterator].length-1)=="M") + { + alVal=alVal/1000/60; + alString='minutes'; + } + else if(calEvent.alertTime[alarmIterator].charAt(calEvent.alertTime[alarmIterator].length-1)=="S") + { + alVal=alVal/1000; + alString='seconds'; + } + + if(calEvent.alertTime[alarmIterator].charAt(0)=='-') + alString+="_before"; + else + alString+="_after" + + $(".alert_message_details[data-id="+(alarmIterator+1)+"]").val(alString); + $(".before_after_input[data-id="+(alarmIterator+1)+"]").val(alVal); + $('.alert_details[data-id="'+(alarmIterator+1)+'"]').show(); + $('.alert_message_date[data-id="'+(alarmIterator+1)+'"]').show(); + $('.before_after_input[data-id="'+(alarmIterator+1)+'"]').show(); + $(".message_date_input[data-id="+(alarmIterator+1)+"]").hide(); + $(".message_time_input[data-id="+(alarmIterator+1)+"]").hide(); + } + else + { + alarmDate=$.fullCalendar.parseDate(calEvent.alertTime[alarmIterator]); + (alarmDate.getHours())<10 ? (hour='0'+(alarmDate.getHours())) : (hour=alarmDate.getHours()); + (alarmDate.getMinutes())<10 ? (minute='0'+(alarmDate.getMinutes())) : (minute=alarmDate.getMinutes()); + + $(".alert_message_details[data-id="+(alarmIterator+1)+"]").val('on_date'); + var formattedAlarmDate=$.datepicker.formatDate(globalSettings.datepickerformat.value, alarmDate); + + $(".message_date_input[data-id="+(alarmIterator+1)+"]").val(formattedAlarmDate); + $(".message_time_input[data-id="+(alarmIterator+1)+"]").val($.fullCalendar.formatDate(alarmDate, (globalSettings.ampmformat.value ? 'hh:mm TT' : 'HH:mm'))); + + $('.alert_details[data-id="'+(alarmIterator+1)+'"]').show(); + $('.alert_message_date[data-id="'+(alarmIterator+1)+'"]').show(); + } + } + + if(alarmIterator>0) + event_alert_add(alarmIterator+2); + + if(calEvent.type!='' && repeatOne!='editOnly' && calEvent.ruleString.match(vCalendar.re['recurCaldav'])!=null) + { + var ruleString=calEvent.vcalendar.match(vCalendar.pre['contentline_RRULE2'])[0].match(vCalendar.pre['contentline_parse'])[4]; + if(ruleString.indexOf('BYMONTH=')!=-1 || ruleString.indexOf('BYMONTHDAY=')!=-1 || ruleString.indexOf('BYDAY=')!=-1) + { + var pars=ruleString.split(';'); + + if(pars.indexElementOf('BYMONTH=')!=-1 && pars.indexElementOf('BYMONTHDAY=')==-1 && pars.indexElementOf('BYDAY=')==-1) + pars[pars.length] = "BYMONTHDAY="+calEvent.start.getDate(); + if(calEvent.type=="DAILY") + { + $("#repeat option[value='DAILY']").prop('selected', true); + $('#repeat_interval [data-type="txt_interval"]').text(localization[globalInterfaceLanguage].repeatDays); + } + else if(calEvent.type=="WEEKLY") + { + $("#repeat option[value='CUSTOM_WEEKLY']").prop('selected', true); + $('#repeat_interval [data-type="txt_interval"]').text(localization[globalInterfaceLanguage].repeatWeeks); + + for(var ri=0;ri<pars.length;ri++) + { + if(pars[ri].indexOf("BYDAY=")!=-1) + { + var byDay=pars[ri].split('=')[1]; + byDay=byDay.replace(/\d*MO/,1).replace(/\d*TU/,2).replace(/\d*WE/,3).replace(/\d*TH/,4).replace(/\d*FR/,5).replace(/\d*SA/,6).replace(/\d*SU/,0).split(','); + for(var rj=0;rj<byDay.length;rj++) + { + if(!isNaN(parseInt(byDay[rj],10))) + $('#week_custom .customTable td[data-type="'+byDay[rj]+'"]').addClass('selected'); + } + } + } + $('#week_custom').show(); + } + else if(calEvent.type=="MONTHLY") + { + $("#repeat option[value='CUSTOM_MONTHLY']").prop('selected', true).change(); + $('#repeat_interval [data-type="txt_interval"]').text(localization[globalInterfaceLanguage].repeatMonths); + + + for(var ri=0;ri<pars.length;ri++) + { + if(pars[ri].indexOf("BYDAY=")!=-1) + { + var byDay=pars[ri].split('=')[1]; + byDay=byDay.split(','); + for(var rj=0;rj<byDay.length;rj++) + { + var checkString = byDay[rj].match(vCalendar.pre['+/-number']); + byDay[rj] = byDay[rj].replace(checkString[0],''); + if(!isNaN(parseInt(checkString[0],10))) + { + switch(parseInt(checkString[0],10)) + { + case 1: + $('#repeat_month_custom_select').val('first'); + break; + case 2: + $('#repeat_month_custom_select').val('second'); + break; + case 3: + $('#repeat_month_custom_select').val('third'); + break; + case 4: + $('#repeat_month_custom_select').val('fourth'); + break; + case 5: + $('#repeat_month_custom_select').val('fifth'); + break; + case -1: + $('#repeat_month_custom_select').val('last'); + break; + default: + $('#repeat_month_custom_select').val('every'); + break; + } + $('#repeat_month_custom_select2').val(byDay[rj]); + } + } + } + else if(pars[ri].indexOf("BYMONTHDAY=")!=-1) + { + $('#repeat_month_custom_select').val('custom').change(); + var byMonthDay=pars[ri].split('=')[1]; + byMonthDay=byMonthDay.split(','); + for(var rj=0; rj<byMonthDay.length;rj++) + { + if(parseInt(byMonthDay[rj],10)==-1) + { + $('#repeat_month_custom_select').val('last').change(); + $('#repeat_month_custom_select2').val("DAY"); + + } + else + $('#month_custom2 .customTable td[data-type="'+(parseInt(byMonthDay[rj],10))+'"]').addClass('selected'); + } + } + } + } + else if(calEvent.type=="YEARLY") + { + $("#repeat option[value='CUSTOM_YEARLY']").prop('selected', true).change(); + $('#repeat_interval [data-type="txt_interval"]').text(localization[globalInterfaceLanguage].repeatYears); + var isMonthDay=false; + for(var ri=0;ri<pars.length;ri++) + { + if(pars[ri].indexOf("BYDAY=")!=-1) + { + var byDay=pars[ri].split('=')[1]; + byDay=byDay.split(','); + for(var rj=0;rj<byDay.length;rj++) + { + var checkString = byDay[rj].match(vCalendar.pre['+/-number']); + byDay[rj] = byDay[rj].replace(checkString[0],''); + if(!isNaN(parseInt(checkString[0],10))) + { + switch(parseInt(checkString[0],10)) + { + case 1: + $('#repeat_year_custom_select1').val('first'); + break; + case 2: + $('#repeat_year_custom_select1').val('second'); + break; + case 3: + $('#repeat_year_custom_select1').val('third'); + break; + case 4: + $('#repeat_year_custom_select1').val('fourth'); + break; + case 5: + $('#repeat_year_custom_select1').val('fifth'); + break; + case -1: + $('#repeat_year_custom_select1').val('last'); + break; + default: + $('#repeat_year_custom_select1').val('every'); + break; + } + $('#repeat_year_custom_select2').val(byDay[rj]); + } + } + } + else if(pars[ri].indexOf("BYMONTHDAY=")!=-1) + { + $('#repeat_year_custom_select1').val('custom').change() + var byMonthDay=pars[ri].split('=')[1]; + byMonthDay=byMonthDay.split(','); + for(var rj=0; rj<byMonthDay.length;rj++) + { + if(parseInt(byMonthDay[rj],10)==-1) + { + $('#repeat_year_custom_select1').val('last').change(); + $('#repeat_year_custom_select2').val("DAY"); + + } + else + $('#year_custom1 .customTable td[data-type="'+(parseInt(byMonthDay[rj],10))+'"]').addClass('selected'); + } + isMonthDay=true; + } + else if(pars[ri].indexOf("BYMONTH=")!=-1) + { + var byMonth=pars[ri].split('=')[1]; + byMonth=byMonth.split(','); + for(var rj=0; rj<byMonth.length;rj++) + $('#year_custom3 .customTable td[data-type="'+(parseInt(byMonth[rj],10)-1)+'"]').addClass('selected'); + } + } + } + + if(calEvent.after=='' && calEvent.untilDate=='') + $("#repeat_end_details option[value='never']").prop('selected', true); + else if(calEvent.after!='') + { + $("#repeat_end_details option[value='after']").prop('selected', true); + $('#repeat_end_after').val(calEvent.after); + } + else if(calEvent.untilDate!='') + { + date=$.fullCalendar.parseDate(calEvent.untilDate); + $("#repeat_end_details option[value='on_date']").prop('selected', true); + var formattedRepeatDate=$.datepicker.formatDate(globalSettings.datepickerformat.value, date); + $('#repeat_end_date').val(formattedRepeatDate); + } + + $('#repeat_interval_detail').val(calEvent.interval); + $('#repeat_interval').show(); + + if(calEvent.byDay.length>0) + { + var businessArray=new Array(); + if(globalSettings.weekenddays.value.length>0) + for(var i=0;i<7;i++) + if(globalSettings.weekenddays.value.indexOf(i)==-1) + businessArray[businessArray.length]=i+''; + var businessCount=0; + var weekendCount=0; + for(var i=0;i<byDay.length;i++) + { + if(businessArray.indexOf(byDay[i])!=-1) + businessCount++; + if(globalSettings.weekenddays.value.indexOf(parseInt(byDay[i],10))!=-1) + weekendCount++; + + } + + if(businessArray.length>0 && businessArray.length==businessCount) + { + $("#repeat option[value='BUSINESS']").prop('selected', true); + $('#repeat_interval').hide(); + $('#week_custom').hide(); + } + else if(globalSettings.weekenddays.value.length>0 && globalSettings.weekenddays.value.length==weekendCount) + { + $("#repeat option[value='WEEKEND']").prop('selected', true); + $('#repeat_interval').hide(); + $('#week_custom').hide(); + } + } + + } + else + { + if(calEvent.type=="DAILY") + { + $("#repeat option[value='DAILY']").prop('selected', true); + $('#repeat_interval [data-type="txt_interval"]').text(localization[globalInterfaceLanguage].repeatDays); + } + else if(calEvent.type=="WEEKLY") + { + $("#repeat option[value='WEEKLY']").prop('selected', true); + $('#repeat_interval [data-type="txt_interval"]').text(localization[globalInterfaceLanguage].repeatWeeks); + } + else if(calEvent.type=="MONTHLY") + { + $("#repeat option[value='MONTHLY']").prop('selected', true); + $('#repeat_interval [data-type="txt_interval"]').text(localization[globalInterfaceLanguage].repeatMonths); + } + else if(calEvent.type=="YEARLY") + { + $("#repeat option[value='YEARLY']").prop('selected', true); + $('#repeat_interval [data-type="txt_interval"]').text(localization[globalInterfaceLanguage].repeatYears); + } + + if(calEvent.after=='' && calEvent.untilDate=='') + $("#repeat_end_details option[value='never']").prop('selected', true); + else if(calEvent.after!='') + { + $("#repeat_end_details option[value='after']").prop('selected', true); + $('#repeat_end_after').val(calEvent.after); + } + else if(calEvent.untilDate!='') + { + date=$.fullCalendar.parseDate(calEvent.untilDate); + $("#repeat_end_details option[value='on_date']").prop('selected', true); + var formattedRepeatDate=$.datepicker.formatDate(globalSettings.datepickerformat.value, date); + $('#repeat_end_date').val(formattedRepeatDate); + } + + $('#repeat_interval_detail').val(calEvent.interval); + $('#repeat_interval').show(); + + if(calEvent.byDay.length>0) + { + if(calEvent.byDay.indexOf('1')!=-1 && calEvent.byDay.indexOf('2')!=-1 && calEvent.byDay.indexOf('3')!=-1 && calEvent.byDay.indexOf('4')!=-1 && calEvent.byDay.indexOf('5')!=-1 && calEvent.byDay.indexOf('6')==-1 && calEvent.byDay.indexOf('0')==-1) + { + $("#repeat option[value='BUSINESS']").prop('selected', true); + $('#repeat_interval').hide(); + } + else if(calEvent.byDay.indexOf('1')==-1 && calEvent.byDay.indexOf('2')==-1 && calEvent.byDay.indexOf('3')==-1 && calEvent.byDay.indexOf('4')==-1 && calEvent.byDay.indexOf('5')==-1 && calEvent.byDay.indexOf('6')!=-1 && calEvent.byDay.indexOf('0')!=-1) + { + $("#repeat option[value='WEEKEND']").prop('selected', true); + $('#repeat_interval').hide(); + } + } + $('#repeatEvent').val(true); + } + } + else if(calEvent.type!='' && repeatOne!='editOnly') + { + var cu_opt = new Option(localization[globalInterfaceLanguage].customRepeat, calEvent.ruleString, false, true); + $(cu_opt).attr('data-type','custom_repeat'); + $('#repeat').append(cu_opt); + } + else + $('#repeatEvent').val(false); + + if(calEvent.timeZone) + showTimezones(calEvent.timeZone,''); + else + showTimezones('local',''); + } + + var year, + month, + day, + hour, + minute; + if(mod=='show') + $('#show').val(calEvent.id); + if(mod=='show' || mod=='drop') + { + $('#repeatCount').val(calEvent.repeatCount); + if(calEvent.realStart && (mod!='drop' || repeatOne!='editOnly')) + date=calEvent.realStart; + else + date=calEvent.start; + + if($('#show').val()) + { + if(calEvent.repeatStart && repeatOne=='') + date=new Date(calEvent.repeatStart.getTime()); + if(calEvent.repeatEnd && repeatOne=='') + date_to=new Date(calEvent.repeatEnd.getTime()); + + } + if(repeatOne=='editOnly') + { + if((mod=='drop' && globalPrevDragEventAllDay) || (mod!='drop' && calEvent.allDay)) + { + if(calEvent.realStart) + $('#recurrenceID').val($.fullCalendar.formatDate($.fullCalendar.parseDate(calEvent.realStart), "yyyyMMdd")); + else + $('#recurrenceID').val($.fullCalendar.formatDate(date, "yyyyMMdd")); + } + else + { + if(calEvent.realStart) + $('#recurrenceID').val($.fullCalendar.formatDate(calEvent.realStart, "yyyyMMdd'T'HHmmss")); + else + $('#recurrenceID').val($.fullCalendar.formatDate(date, "yyyyMMdd'T'HHmmss")); + } + } + else + $('#recurrenceID').val(calEvent.rec_id); + + if(calEvent.rec_id || repeatOne=='editOnly' || repeatOne=='futureOnly') + { + var savedEvs=jQuery.grep(globalEventList.displayEventsArray[calEvent.res_id],function(e){if(e.id==calEvent.id && (e.repeatCount<2 || !e.repeatCount))return true}); + if(savedEvs.length>1 || (repeatOne=='futureOnly' && calEvent.repeatCount>1) || (repeatOne=='editOnly' && calEvent.type!='')) + $('#deleteButton').attr('onclick',"updateEventFormDimensions(true);$('#CAEvent .saveLoader').show();save(false, true);"); + } + } + + + var today = new Date(); + var todayClear = new Date(today.getTime()); + todayClear.setHours(0); + todayClear.setMinutes(0); + todayClear.setSeconds(0); + todayClear.setMilliseconds(0); + var dateClear = new Date(date.getTime()); + dateClear.setHours(0); + dateClear.setMinutes(0); + dateClear.setSeconds(0); + dateClear.setMilliseconds(0); + + if(allDay) + { + if(globalSettings.defaulteventduration.value!==null && todayClear.getTime()===dateClear.getTime()) + { + if(today.getMinutes()>0) { + date.setHours(today.getHours()+1); + date.setMinutes(0); + } + else { + date.setHours(today.getHours()); + date.setMinutes(today.setMinutes()); + } + } + else { + date.setHours(globalSettings.calendarstartofbusiness.value); + date.setMinutes((globalSettings.calendarstartofbusiness.value%1)*60); + } + } + + $('#date_from').val($.datepicker.formatDate(globalSettings.datepickerformat.value, date)); + $('#time_from').val($.fullCalendar.formatDate(date, (globalSettings.ampmformat.value ? 'hh:mm TT' : 'HH:mm'))); + globalPrevDate=new Date(date.getTime()); + + if(typeof date_to==='undefined' || date_to===null) + date_to = new Date(date.getTime()); + + if(allDay) { + if(globalSettings.defaulteventduration.value!==null) + { + date_to.setHours(date.getHours()); + date_to.setMinutes(date.getMinutes()+globalSettings.defaulteventduration.value); + } + else { + date_to.setHours(globalSettings.calendarendofbusiness.value); + date_to.setMinutes((globalSettings.calendarendofbusiness.value%1)*60); + } + } + + if(date_to.getTime()<date.getTime()) + date_to.setDate(date_to.getDate()+1); + + $('#date_to').val($.datepicker.formatDate(globalSettings.datepickerformat.value, date_to)); + $('#time_to').val($.fullCalendar.formatDate(date_to, (globalSettings.ampmformat.value ? 'hh:mm TT' : 'HH:mm'))); + + if($('#repeat option:selected').attr('data-type')!="repeat_no-repeat" && $('#repeat option:selected').attr('data-type')!="custom_repeat") + $('#repeat_details').show(); + + if($('#repeat_end_details option:selected').attr('data-type')=="repeat_details_on_date") + { + $('#repeat_end_after').hide(); + $('#repeat_end_date').show(); + } + + if($('#repeat_end_details option:selected').attr('data-type')=="repeat_details_after") + { + $('#repeat_end_after').show(); + $('#repeat_end_date').hide(); + } + + if($('#repeat_end_details option:selected').attr('data-type')=="repeat_details_never") + { + $('#repeat_end_after').hide(); + $('#repeat_end_date').hide(); + } + + if(mod=='show') + { + $('#saveButton').hide(); + $('#resetButton').hide(); + $('#deleteButton').hide(); + if($('#ResourceCalDAVList').find('[data-id="'+calEvent.res_id+'"]').hasClass("resourceCalDAV_item_ro")) + { + $('#editButton').hide(); + $('#duplicateButton').hide(); + $('#editOptionsButton').hide(); + } + $('#eventDetailsTable :input[type!="button"]').prop('disabled', true); + $('#eventDetailsTable :input[type="text"]').prop('readonly', true); + $('#eventDetailsTable .customTable td').addClass('disabled'); + $('#eventDetailsTable textarea').prop('readonly', true); + + /*************************** BAD HACKS SECTION ***************************/ + // here we fix the cross OS/cross broser problems (unfixable in pure CSS) + if($.browser.webkit && !!window.chrome) /* Chrome */ + { + if(navigator.platform.toLowerCase().indexOf('win')==0) /* Windows version */ + { + $('#event_details_template').find('input').css('text-indent', '2px'); + $('#event_details_template').find('select').css({'padding-left': '0px', 'padding-right': '13px'}); + } + else /* non-Windows version */ + $('#event_details_template').find('input').css('text-indent', '1px'); + } + else if($.browser.safari) + { + $('#event_details_template').find('textarea').addClass('safari_hack'); + $('#event_details_template').find('input').addClass('safari_hack'); + } + else if($.browser.msie) /* IE */ + { + if(parseInt($.browser.version, 10)==10) /* IE 10 (because there are no more conditional comments) */ + { + $('#event_details_template').find('select').css({'padding-top': '1px', 'padding-left': '0px', 'padding-right': '0px'}); + $('#event_details_template').find('textarea').css('padding-top', '3px'); + $('#event_details_template').find('input[type=button]').css('padding-top', '2px'); + } + } + + if($.browser.msie || $.browser.mozilla) + { + var newSVG=$(SVG_select_dis).attr('data-type', 'select_icon').css({'pointer-events': 'none', 'z-index': '1', 'display': 'inline', 'margin-left': '-22px', 'vertical-align': 'top', 'background-color': '#ffffff'}); // background-color = stupid IE9 bug + $('#event_details_template').find('svg[data-type="select_icon"]').replaceWith($('<div>').append($(newSVG).clone()).html()); + } + /*************************** END OF BAD HACKS SECTION ***************************/ + if(calEvent.etag!='') + $('#event_calendar').val(calEvent.res_id); + } + + if(repeatOne=='editOnly' || $('#recurrenceID').val()!='') + { + $('#repeat').parent().parent().css('display', 'none'); + $('#week_custom').css('display', 'none'); + $('#month_custom1').css('display', 'none'); + $('#month_custom2').css('display', 'none'); + $('#year_custom1').css('display', 'none'); + $('#year_custom2').css('display', 'none'); + $('#year_custom3').css('display', 'none'); + $('#repeat_details').css('display', 'none'); + } + + if(repeatOne=='editOnly' || repeatOne=='futureOnly' || $('#recurrenceID').val()) + $('#calendarLine').hide(); + if(calEvent==null || calEvent.type=='') + $('#editOptionsButton').hide(); + else + $('#editOptionsButton').click(function(){ + showEventForm(null, globalCalEvent.allDay, globalCalEvent, globalJsEvent, 'show', '', true); + }); + if(calEvent && calEvent.after && repeatOne=='futureOnly') + $('#repeat_end_after').val(calEvent.after - calEvent.realRepeatCount + 1); + + if(!globalSettings.timezonesupport.value) + $('.timezone_row').css('display', 'none'); + + if($('#allday').prop('checked')) + stripEventAlerts(); + + if(mod!='drop') + { + $('#CAEvent').show(); + $('#event_details_template').show(); + $('#eventColor').css('background-color',color); + updateEventFormDimensions(); + setFormPosition(jsEvent); + } + + checkEventFormScrollBar(); + $('#event_details_template').scrollTop(0); +} + +function bindEventForm() +{ + initCalDavDatepicker($('#event_details_template')); + initCalDavTimepicker($('#event_details_template')); + + $('#event_details_template .alert_message_details').change(function(){ + var data_id=$(this).attr("data-id"); + $('.before_after_input[data-id="'+data_id+'"]').parent().parent().find('img').css('display','none'); + if($('.alert_message_details[data-id="'+data_id+'"] option:selected').attr('data-type')=="on_date") + { + var myDate=new Date(); + myDate.setDate(myDate.getDate()+7); + + if($('#date_from').parent().parent().find('img:visible').length==0) { + var dateTo=$.datepicker.parseDate(globalSettings.datepickerformat.value,$("#date_from").val()); + var datetime_to=$.fullCalendar.formatDate(dateTo, 'MM/dd/yyyy, '); + myDate=new Date(Date.parse(datetime_to + (!$("#allday").prop('checked')?$("#time_from").val():''))); + myDate.setHours(myDate.getHours()-1); + } + else if($('#date_to').parent().parent().find('img:visible').length==0) { + var dateTo=$.datepicker.parseDate(globalSettings.datepickerformat.value,$("#date_to").val()); + var datetime_to=$.fullCalendar.formatDate(dateTo, 'MM/dd/yyyy, '); + myDate=new Date(Date.parse(datetime_to + (!$("#allday").prop('checked')?$("#time_to").val():''))); + myDate.setHours(myDate.getHours()-1); + } + $('.message_date_input[data-id="'+data_id+'"]').val($.datepicker.formatDate(globalSettings.datepickerformat.value, myDate)); + $('.message_date_input[data-id="'+data_id+'"]').show(); + $('.message_time_input[data-id="'+data_id+'"]').val($.fullCalendar.formatDate(myDate, (globalSettings.ampmformat.value ? 'hh:mm TT' : 'HH:mm'))); + $('.message_time_input[data-id="'+data_id+'"]').show(); + $('.before_after_input[data-id="'+data_id+'"]').hide(); + } + else + { + $('.message_date_input[data-id="'+data_id+'"]').hide(); + $('.message_time_input[data-id="'+data_id+'"]').hide(); + $('.before_after_input[data-id="'+data_id+'"]').show(); + $('.before_after_input[data-id="'+data_id+'"]').val('15'); + } + }); + + $('#event_details_template .before_after_input').bind('keyup change', function(){ + if($(this).val()=='') + { + $(this).parent().find('img').css('display', 'inline'); + //$(this).parent().find('img').css('visibility','visible'); + } + else + { + if($(this).val().match("^(\d*[0-9])*$")==null) + { + $(this).parent().find('img').css('display', 'inline'); + //$(this).parent().find('img').css('visibility','visible'); + } + else + $(this).parent().find('img').css('display', 'none'); + } + }); + + $('#event_details_template .alert').change(function(){ + var data_id=$(this).attr("data-id"); + if($(this).val()!='none') + { + $('.alert_details[data-id="'+data_id+'"]').show(); + $('.alert_message_date[data-id="'+data_id+'"]').show(); + var myDate=new Date(); + myDate.setDate(myDate.getDate()+7); + + if($('#date_from').parent().parent().find('img:visible').length==0) { + var dateTo=$.datepicker.parseDate(globalSettings.datepickerformat.value,$("#date_from").val()); + var datetime_to=$.fullCalendar.formatDate(dateTo, 'MM/dd/yyyy, '); + myDate=new Date(Date.parse(datetime_to + (!$("#allday").prop('checked')?$("#time_from").val():''))); + myDate.setHours(myDate.getHours()-1); + } + else if($('#date_to').parent().parent().find('img:visible').length==0) { + var dateTo=$.datepicker.parseDate(globalSettings.datepickerformat.value,$("#date_to").val()); + var datetime_to=$.fullCalendar.formatDate(dateTo, 'MM/dd/yyyy, '); + myDate=new Date(Date.parse(datetime_to + (!$("#allday").prop('checked')?$("#time_to").val():''))); + myDate.setHours(myDate.getHours()-1); + } + $('.message_date_input[data-id="'+data_id+'"]').val($.datepicker.formatDate(globalSettings.datepickerformat.value, myDate)); + $('.message_time_input[data-id="'+data_id+'"]').val($.fullCalendar.formatDate(myDate, (globalSettings.ampmformat.value ? 'hh:mm TT' : 'HH:mm'))); + event_alert_add(data_id); + } + else + { + $('.alert_details[data-id="'+data_id+'"]').hide(); + $('.alert_message_date[data-id="'+data_id+'"]').hide(); + checkFor(data_id); + var data_id=$(this).attr("data-id"); + $('#event_details_template tr[data-id="'+data_id+'"]').remove(); + } + checkEventFormScrollBar(); + }); + + $('#repeat_end_after, #repeat_interval_detail').bind('keyup change',function(){ + if($(this).val()=='') + { + $(this).parent().find('img').css('display', 'inline'); + //$(this).parent().find('img').css('visibility','visible'); + } + else + { + if($(this).val().match("^[0-9]+$")==null || parseInt($(this).val(),10)<1) + { + $(this).parent().find('img').css('display', 'inline'); + //$(this).parent().find('img').css('visibility','visible'); + } + else + $(this).parent().find('img').css('display', 'none'); + } + }); + + $('#repeat_month_custom_select').change(function(){ + if($(this).val()=="custom") + { + $('#month_custom2').show(); + $('#repeat_month_custom_select2').parent().hide(); + } + else + { + $('#month_custom2').hide(); + $('#repeat_month_custom_select2').parent().show(); + } + checkEventFormScrollBar(); + }); + + $('#repeat_year_custom_select1').change(function(){ + if($(this).val()=="custom") + { + $('#year_custom1').show(); + $('#repeat_year_custom_select2').parent().hide(); + } + else + { + $('#year_custom1').hide(); + $('#repeat_year_custom_select2').parent().show(); + } + checkEventFormScrollBar(); + }); + + $('#repeat_end_details').change(function(){ + $('#repeat_end_date').parent().find('img').css('display', 'none'); + + if($('#repeat_end_details option:selected').attr('data-type')=="repeat_details_on_date") + { + $('#repeat_end_after').hide(); + $('#repeat_end_date').show(); + + var today; + if($('#date_from').val()!='') + { + today=$.datepicker.parseDate(globalSettings.datepickerformat.value, $('#date_from').val()); + if(today==null) + today=new Date(); + } + else + today=new Date(); + + var date=new Date(today.getFullYear(), today.getMonth(), today.getDate()+2); + $('#repeat_end_date').val($.datepicker.formatDate(globalSettings.datepickerformat.value, date)); + } + + if($('#repeat_end_details option:selected').attr('data-type')=="repeat_details_after") + { + $('#repeat_end_after').show(); + $('#repeat_end_after').val('2'); + $('#repeat_end_date').hide(); + } + + if($('#repeat_end_details option:selected').attr('data-type')=="repeat_details_never") + { + $('#repeat_end_after').hide(); + $('#repeat_end_date').hide(); + } + + checkEventFormScrollBar(); + }); + + $('#closeButton').click(function(){ + if($('#uid').val()!='') + { + var uid=$('#uid').val(); + var calUID=uid.substring(0, uid.lastIndexOf('/')+1); + var events=$('.event_item[data-id="'+uid+'"]'); + var color=$('#ResourceCalDAVList').find("[data-id='"+calUID+"']").find('.resourceCalDAVColor').css('background-color'); + + $.each(events, function(index, event){ + if(event.nodeName.toLowerCase()!='tr') + { + $(event).find('.fc-event-inner, .fc-event-head').addBack().css({'background-color': rgbToRgba(color,0.9), 'border-color': color}); + $(event).find('.fc-event-title, .fc-event-title-strict, .fc-event-time').css('color',checkFontColor(rgbToHex(color))); + } + else + { + $(event).children('.fc-event-handle').css({'background-color': rgbToRgba(color,0.9), 'border-color': color}); + } + }); + } + else + { + var beforeScroll = $('#main').width()-$('#calendar').width(); + $('#calendar').fullCalendar('unselect'); + $('#calendar').fullCalendar('removeEvents', 'fooUID'); + var afterScroll = $('#main').width()-$('#calendar').width(); + rerenderCalendar(beforeScroll!=afterScroll); + } + + $('#show').val(''); + $('#CAEvent').hide(); + $('#EventDisabler').fadeOut(globalEditorFadeAnimation, function(){ + $('#timezonePicker').prop('disabled', false); + }); + }); + + $('#resetButton').click(function(){ + $('#event_details_template').find('img[data-type=invalidSmall]').css('display','none'); + var uid=$('#uid').val(); + + if(uid!='') + { + var calUID=uid.substring(0, uid.lastIndexOf('/')+1); + var events=$('.event_item[data-id="'+uid+'"]'); + var color=$('#ResourceCalDAVList').find("[data-id='"+calUID+"']").find('.resourceCalDAVColor').css('background-color'); + + $.each(events, function(index, event){ + if(event.nodeName.toLowerCase()!='tr') + { + $(event).find('.fc-event-inner, .fc-event-head').addBack().css({'background-color': rgbToRgba(color,0.9), 'border-color': color}); + $(event).find('.fc-event-title, .fc-event-title-strict, .fc-event-time').css('color',checkFontColor(rgbToHex(color))); + } + else + { + $(event).children('.fc-event-handle').css({'background-color': rgbToRgba(color,0.9), 'border-color': color}) + } + }); + if($('#recurrenceID').val()!='' && $('#repeatCount').val()!='') + showEventForm(null, globalCalEvent.allDay, globalCalEvent, globalJsEvent, 'show', 'editOnly'); + else if($('#futureStart').val()!='') + showEventForm(null, globalCalEvent.allDay, globalCalEvent, globalJsEvent, 'show', 'futureOnly'); + else + showEventForm(null, globalCalEvent.allDay, globalCalEvent, globalJsEvent, 'show', ''); + startEditModeEvent(); + } + }); + + $('#allday').click(function(){ + if($('#allday').prop('checked')) + { + $('#timezone').val('local'); + $('#time_from_cell').css('visibility','hidden'); + $('#time_to_cell').css('visibility','hidden'); + $('#time_to_cell').find('img').css('display','none'); + $('#time_from_cell').find('img').css('display','none'); + $('.timezone_row').css('display', 'none'); + stripEventAlerts(); + } + else + { + $('#time_from_cell').css('visibility','visible'); + $('#time_to_cell').css('visibility','visible'); + $('#time_from').trigger('change'); + $('#time_to').trigger('change'); + if(globalSettings.timezonesupport.value) + { + $('.timezone_row').show(); + $('#timezone').val(globalSessionTimeZone); + } + expandEventAlerts(); + } + checkEventFormScrollBar(); + }); + + $('#event_details_template .customTable td').click(function(){ + if($(this).hasClass('disabled')) + return true; + else if($(this).hasClass('selected')) + $(this).removeClass('selected'); + else + $(this).addClass('selected'); + }); + + $('#event_calendar').change(function(){ + var color = ''; + if($(this).val()=='choose') + color = 'rgb(240,240,240)'; + else + color=$('#ResourceCalDAVList').find("[data-id='"+$(this).val()+"']").find('.resourceCalDAVColor').css('background-color'); + + var uid='fooUID'; + if($('#uid').val()!='') + uid=$('#uid').val(); + var events=$('.event_item[data-id="'+uid+'"]'); + + $('#eventColor').css('background-color',color); + $.each(events, function(index, event){ + if(event.nodeName.toLowerCase()!='tr') + { + $(event).find('.fc-event-inner, .fc-event-head').addBack().css({'background-color': rgbToRgba(color,0.9), 'border-color': color}); + $(event).find('.fc-event-title, .fc-event-title-strict, .fc-event-time').css('color', checkFontColor(rgbToHex(color))); + } + else + { + $(event).find('.fc-event-handle').css({'background-color': rgbToRgba(color,0.9), 'border-color': color}); + } + }); + }); + + $('#repeat').change(function(){ + if($('#repeat option:selected').attr('data-type')=='repeat_no-repeat' || $('#repeat option:selected').attr('data-type')=="custom_repeat") + { + $('#repeat_details').hide(); + $('#repeat_interval').hide(); + $('#week_custom').hide(); + $('#month_custom1').hide(); + $('#month_custom2').hide(); + $('#year_custom1').hide(); + $('#year_custom2').hide(); + $('#year_custom3').hide(); + } + else + { + $('#repeat_details').show(); + + if($(this).val()!='BUSINESS' && $(this).val()!='TWO_WEEKLY' && $(this).val()!='WEEKEND') + { + $('#repeat_interval').show(); + $("#repeat_interval_detail").val('1'); + $('#repeat_interval').find('img').css('display','none'); + } + else + $('#repeat_interval').hide(); + + if($(this).val()=='DAILY') + $('#repeat_interval [data-type="txt_interval"]').text(localization[globalInterfaceLanguage].repeatDays); + + if($(this).val()=='WEEKLY') + $('#repeat_interval [data-type="txt_interval"]').text(localization[globalInterfaceLanguage].repeatWeeks); + + if($(this).val()=='MONTHLY') + $('#repeat_interval [data-type="txt_interval"]').text(localization[globalInterfaceLanguage].repeatMonths); + + if($(this).val()=='YEARLY') + $('#repeat_interval [data-type="txt_interval"]').text(localization[globalInterfaceLanguage].repeatYears); + + if($(this).val()=='CUSTOM_WEEKLY') + { + $('#repeat_interval [data-type="txt_interval"]').text(localization[globalInterfaceLanguage].repeatWeeks); + $('#week_custom').show(); + } + else + $('#week_custom').hide(); + + if($(this).val()=='CUSTOM_MONTHLY') + { + $('#repeat_interval [data-type="txt_interval"]').text(localization[globalInterfaceLanguage].repeatMonths); + $('#month_custom1').show(); + if($('#repeat_month_custom_select').val() == "custom") + $('#repeat_month_custom_select').trigger('change'); + } + else + { + $('#month_custom1').hide(); + $('#month_custom2').hide(); + } + + if($(this).val()=='CUSTOM_YEARLY') + { + $('#repeat_interval [data-type="txt_interval"]').text(localization[globalInterfaceLanguage].repeatYears); + $('#year_custom2').show(); + $('#year_custom3').show(); + if($('#repeat_year_custom_select1').val() == "custom") + $('#repeat_year_custom_select1').trigger('change'); + } + else + { + $('#year_custom1').hide(); + $('#year_custom2').hide(); + $('#year_custom3').hide(); + } + + var today; + if($('#date_from').val()!='') + { + today=$.datepicker.parseDate(globalSettings.datepickerformat.value, $('#date_from').val()); + if(today==null) + today=new Date(); + } + else + today=new Date(); + + var date=new Date(today.getFullYear(),today.getMonth(),today.getDate()+2); + $('#repeat_end_date').val($.datepicker.formatDate(globalSettings.datepickerformat.value, date)); + } + checkEventFormScrollBar(); + }); + + $('#status').change(function(){ + var status = $(this).val(); + + if(status=='CANCELLED') + $('#name').addClass('title_cancelled'); + else + $('#name').removeClass('title_cancelled'); + + todoStatusChanged(status); + }); +} + +function startEditModeEvent() +{ + $('#timezonePicker').prop('disabled', true); + $('#EventDisabler').fadeIn(globalEditorFadeAnimation); + $('#CAEvent .formNav').css('display', 'none'); + $('#CAEvent textarea.header').removeClass('leftspace rightspace'); + $('#editButton').hide(); + $('#duplicateButton').hide(); + $('#editOptionsButton').hide(); + $('#saveButton').show(); + $('#resetButton').show(); + $('#deleteButton').show(); + $('#show').val(''); + $('#eventDetailsTable :input[disabled]').prop('disabled', false); + $('#eventDetailsTable :input[type="text"]').prop('readonly', false); + $('#eventDetailsTable .customTable td').removeClass('disabled'); + $('#eventDetailsTable textarea').prop('readonly', false); + /*************************** BAD HACKS SECTION ***************************/ + if($.browser.msie || $.browser.mozilla) + { + var newSVG=$(SVG_select).attr('data-type', 'select_icon').css({'pointer-events': 'none', 'z-index': '1', 'display': 'inline', 'margin-left': '-19px', 'vertical-align': 'top', 'background-color': '#ffffff'}); // background-color = stupid IE9 bug + $('#event_details_template').find('svg[data-type="select_icon"]').replaceWith($('<div>').append($(newSVG).clone()).html()); + } + /*************************** END OF BAD HACKS SECTION ***************************/ + + $('#name').focus(); +} + +function startEditModeTodo() +{ + $('#todoInEdit').val('true'); + $('#timezonePickerTODO').prop('disabled', true); + $('#TodoDisabler').fadeIn(globalEditorFadeAnimation); + $('#CATodo .formNav').css('display', 'none'); + $('#CATodo textarea.header').removeClass('leftspace rightspace'); + $('#editTODO').hide(); + $('#duplicateTODO').hide(); + $('#editOptionsButtonTODO').hide(); + $('#closeTODO').show(); + $('#saveTODO').show(); + $('#resetTODO').show(); + $('#deleteTODO').show(); + $('#showTODO').val(''); + + $('#todoDetailsTable :input[disabled]').prop('disabled', false); + $('#todoDetailsTable :input[type="text"]').prop('readonly', false); + $('#todoDetailsTable textarea').prop('readonly', false); + /*************************** BAD HACKS SECTION ***************************/ + if($.browser.msie || $.browser.mozilla) + { + var newSVG=$(SVG_select).attr('data-type', 'select_icon').css({'pointer-events': 'none', 'z-index': '1', 'display': 'inline', 'margin-left': '-19px', 'vertical-align': 'top', 'background-color': '#ffffff'}); // background-color = stupid IE9 bug + $('#todo_details_template').find('svg[data-type="select_icon"]').replaceWith($('<div>').append($(newSVG).clone()).html()); + } + /*************************** END OF BAD HACKS SECTION ***************************/ + + $('#percentageSlider').slider({ + disabled: false + }); + $('#nameTODO').focus(); +} + +function todo_alert_add(data_id) +{ + data_id++; + var newTr1, + newTr2, + newTr3; + + newTr1='<tr data-id="'+data_id+'">'+ + '<td><label data-type="alert_TODO" for="alertTODO">alert: </label></td>'+ + '<td data-size="full" colspan="2">'+ + '<select class="long alertTODO" name="alert_typeTODO" data-id="'+data_id+'">'+ + '<option data-type="alert_none_TODO" value="none">none</option>'+ + '<option data-type="alert_message_TODO" value="message">message</option>'+ + '</select>'+ + '</td>'+ + '</tr>'; + newTr2='<tr class="alert_detailsTODO" style="display:none;" data-id="'+data_id+'">'+ + '<td></td>'+ + '<td data-size="full" colspan="2">'+ + '<select class="long alert_message_detailsTODO" name="alert_detailsTODO" data-id="'+data_id+'">'+ + '<option data-type="on_dateTODO" class="todoTimeOptions" value="on_date">On date</option>'+ + ($('#todo_type').val()=='none' ? '' : '<option data-type="weeks_beforeTODO" value="weeks_before">weeks before</option>'+ + '<option data-type="days_beforeTODO" value="days_before">days before</option>'+ + '<option data-type="hours_beforeTODO" value="hours_before">hours before</option>'+ + '<option data-type="minutes_beforeTODO" value="minutes_before">minutes before</option>'+ + '<option data-type="seconds_beforeTODO" value="seconds_before">seconds before</option>'+ + '<option data-type="weeks_afterTODO" value="weeks_after">weeks after</option>'+ + '<option data-type="days_afterTODO" value="days_after">days after</option>'+ + '<option data-type="hours_afterTODO" value="hours_after">hours after</option>'+ + '<option data-type="minutes_afterTODO" value="minutes_after">minutes after</option>'+ + '<option data-type="seconds_afterTODO" value="seconds_after">seconds after</option>')+ + '</select>'+ + '</td>'+ + '</tr>'; + newTr3='<tr data-id="'+data_id+'" class="alert_message_dateTODO" style="display:none;">'+ + '<td></td>'+ + '<td><input data-id="'+data_id+'" data-type="PH_before_after_alert_TODO" class="small before_after_inputTODO" type="text" style="display:none;" />'+ + '<input data-id="'+data_id+'" class="date small message_date_inputTODO" data-type="PH_alarm_date_TODO" type="text" name="message_dateTODO" /><div class="invalidWrapper"><img data-type="invalidSmall" data-id="'+data_id+'" style="display: none;" src="images/error_b.svg" alt="invalid" /></div></td>'+ + '<td><input data-id="'+data_id+'" data-type="PH_alarm_time_TODO" class="time small message_time_inputTODO" type="text" name="message_timeTODO" /><div class="invalidWrapper"><img data-type="invalidSmall" data-id="'+data_id+'" style="display: none;" src="images/error_b.svg" alt="invalid" /></div></td>'+ + '<tr>'; + + $('#url_trTODO').before(newTr1); + $('#url_trTODO').before(newTr2); + $('#url_trTODO').before(newTr3); + translateTodoAlerts(); + $('#todo_details_template').find('input[placeholder],textarea[placeholder]').placeholder(); + + $('#todo_details_template .alert_message_detailsTODO[data-id="'+data_id+'"]').change(function(){ + var data_id=$(this).attr("data-id"); + $('.before_after_inputTODO[data-id="'+data_id+'"]').parent().parent().find('img').css('display','none'); + if($('.alert_message_detailsTODO[data-id="'+data_id+'"] option:selected').attr('data-type')=="on_dateTODO") + { + var myDate=new Date(); + myDate.setDate(myDate.getDate()+7); + + if($('.dateTrToTODO').is(':visible') && $('.dateTrToTODO img:visible').length==0) { + var dateTo=$.datepicker.parseDate(globalSettings.datepickerformat.value,$("#date_toTODO").val()); + var datetime_to=$.fullCalendar.formatDate(dateTo, 'MM/dd/yyyy, '); + myDate=new Date(Date.parse(datetime_to +$("#time_toTODO").val())); + myDate.setHours(myDate.getHours()-1); + } + else if($('.dateTrFromTODO').is(':visible') && $('.dateTrFromTODO img:visible').length==0) { + var dateTo=$.datepicker.parseDate(globalSettings.datepickerformat.value,$("#date_fromTODO").val()); + var datetime_to=$.fullCalendar.formatDate(dateTo, 'MM/dd/yyyy, '); + myDate=new Date(Date.parse(datetime_to +$("#time_fromTODO").val())); + myDate.setHours(myDate.getHours()-1); + } + + $('.message_date_inputTODO[data-id="'+data_id+'"]').val($.datepicker.formatDate(globalSettings.datepickerformat.value, myDate)); + $('.message_date_inputTODO[data-id="'+data_id+'"]').show(); + $('.message_time_inputTODO[data-id="'+data_id+'"]').val($.fullCalendar.formatDate(myDate, (globalSettings.ampmformat.value ? 'hh:mm TT' : 'HH:mm'))); + $('.message_time_inputTODO[data-id="'+data_id+'"]').show(); + $('.before_after_inputTODO[data-id="'+data_id+'"]').hide(); + } + else + { + $('.message_date_inputTODO[data-id="'+data_id+'"]').hide(); + $('.message_time_inputTODO[data-id="'+data_id+'"]').hide(); + $('.before_after_inputTODO[data-id="'+data_id+'"]').show(); + $('.before_after_inputTODO[data-id="'+data_id+'"]').val('15'); + } + }); + $('#todo_details_template .before_after_inputTODO[data-id="'+data_id+'"]').bind('keyup change', function(){ + if($(this).val()=='') + { + $(this).parent().find('img').css('display', 'inline'); + //$(this).parent().find('img').css('visibility','visible'); + } + else + { + if($(this).val().match("^[0-9]+$")==null) + { + $(this).parent().find('img').css('display', 'inline'); + //$(this).parent().find('img').css('visibility','visible'); + } + else + $(this).parent().find('img').css('display', 'none'); + } + }); + $('#todo_details_template .alertTODO[data-id="'+data_id+'"]').change(function(){ + var data_id=$(this).attr("data-id"); + if($(this).val()!='none') + { + $('.alert_detailsTODO[data-id="'+data_id+'"]').show(); + $('.alert_message_dateTODO[data-id="'+data_id+'"]').show(); + if($('#todo_type').val()!='none') + expandTodoAlerts(); + var myDate=new Date(); + myDate.setDate(myDate.getDate()+7); + + if($('.dateTrToTODO').is(':visible') && $('.dateTrToTODO img:visible').length==0) { + var dateTo=$.datepicker.parseDate(globalSettings.datepickerformat.value,$("#date_toTODO").val()); + var datetime_to=$.fullCalendar.formatDate(dateTo, 'MM/dd/yyyy, '); + myDate=new Date(Date.parse(datetime_to +$("#time_toTODO").val())); + myDate.setHours(myDate.getHours()-1); + } + else if($('.dateTrFromTODO').is(':visible') && $('.dateTrFromTODO img:visible').length==0) { + var dateTo=$.datepicker.parseDate(globalSettings.datepickerformat.value,$("#date_fromTODO").val()); + var datetime_to=$.fullCalendar.formatDate(dateTo, 'MM/dd/yyyy, '); + myDate=new Date(Date.parse(datetime_to +$("#time_fromTODO").val())); + myDate.setHours(myDate.getHours()-1); + } + + $('.message_date_inputTODO[data-id="'+data_id+'"]').val($.datepicker.formatDate(globalSettings.datepickerformat.value, myDate)); + $('.message_time_inputTODO[data-id="'+data_id+'"]').val($.fullCalendar.formatDate(myDate, (globalSettings.ampmformat.value ? 'hh:mm TT' : 'HH:mm'))); + todo_alert_add(data_id); + } + else + { + $('.alert_detailsTODO[data-id="'+data_id+'"]').hide(); + $('.alert_message_dateTODO[data-id="'+data_id+'"]').hide(); + checkForTodo(data_id); + var data_id=$(this).attr("data-id"); + $('#todo_details_template tr[data-id="'+data_id+'"]').remove(); + } + checkTodoFormScrollBar(); + }); + initCalDavDatepicker($('#todo_details_template .alert_message_dateTODO[data-id="'+data_id+'"]')); + initCalDavTimepicker($('#todo_details_template .alert_message_dateTODO[data-id="'+data_id+'"]')); + /*************************** BAD HACKS SECTION ***************************/ + // here we fix the cross OS/cross broser problems (unfixable in pure CSS) + if($.browser.webkit && !!window.chrome) /* Chrome */ + { + if(navigator.platform.toLowerCase().indexOf('win')==0) /* Windows version */ + { + $('#todo_details_template').find('input').css('text-indent', '2px'); + $('#todo_details_template').find('select').css({'padding-left': '0px', 'padding-right': '13px'}); + } + else /* non-Windows version */ + $('#todo_details_template').find('input').css('text-indent', '1px'); + } + else if($.browser.safari) + { + $('#todo_details_template').find('textarea').addClass('safari_hack'); + $('#todo_details_template').find('input').addClass('safari_hack'); + } + else if($.browser.msie) /* IE */ + { + if(parseInt($.browser.version, 10)==10) /* IE 10 (because there are no more conditional comments) */ + { + $('#todo_details_template').find('select').css({'padding-top': '1px', 'padding-left': '0px', 'padding-right': '0px'}); + $('#todo_details_template').find('textarea').css('padding-top', '3px'); + $('#todo_details_template').find('input[type=button]').css('padding-top', '2px'); + } + } + + /* IE or FF */ + if($.browser.msie || $.browser.mozilla) + { + // ADD empty SVG to interface (we will replace it later) + $('<svg data-type="select_icon"></svg>').css('display', 'none').insertAfter($('#todo_details_template tr[data-id="'+data_id+'"]').find('select')); + } + + if($.browser.msie || $.browser.mozilla) + { + var newSVG=$(SVG_select).attr('data-type', 'select_icon').css({'pointer-events': 'none', 'z-index': '1', 'display': 'inline', 'margin-left': '-19px', 'vertical-align': 'top', 'background-color': '#ffffff'}); // background-color = stupid IE9 bug + $('#todo_details_template tr[data-id="'+data_id+'"]').find('svg[data-type="select_icon"]').replaceWith($('<div>').append($(newSVG).clone()).html()); + } + /*************************** END OF BAD HACKS SECTION ***************************/ +} + +function event_alert_add(data_id) +{ + data_id++; + + var newTr1, + newTr2, + newTr3; + + newTr1='<tr data-id="'+data_id+'">'+ + '<td><label data-type="alert" for="alert">alert: </label></td>'+ + '<td data-size="full" colspan="2">'+ + '<select class="long alert" name="alert_type" data-id="'+data_id+'">'+ + '<option data-type="alert_none" value="none">none</option>'+ + '<option data-type="alert_message" value="message">message</option>'+ + '</select>'+ + '</td>'+ + '</tr>'; + newTr2='<tr data-id="'+data_id+'" class="alert_details" style="display:none;">'+ + '<td></td>'+ + '<td data-size="full" colspan="2">'+ + '<select class="long alert_message_details" name="alert_details" data-id="'+data_id+'">'+ + '<option data-type="on_date" value="on_date">On date</option>'+ + ($('#allday').prop('checked') ? '' : '<option data-type="weeks_before" value="weeks_before">weeks before</option>'+ + '<option data-type="days_before" value="days_before">days before</option>'+ + '<option data-type="hours_before" value="hours_before">hours before</option>'+ + '<option data-type="minutes_before" value="minutes_before">minutes before</option>'+ + '<option data-type="seconds_before" value="seconds_before">seconds before</option>'+ + '<option data-type="weeks_after" value="weeks_after">weeks after</option>'+ + '<option data-type="days_after" value="days_after">days after</option>'+ + '<option data-type="hours_after" value="hours_after">hours after</option>'+ + '<option data-type="minutes_after" value="minutes_after">minutes after</option>'+ + '<option data-type="seconds_after" value="seconds_after">seconds after</option>') + + + '</select>'+ + '</td>'+ + '</tr>'; + newTr3='<tr data-id="'+data_id+'" class="alert_message_date" style="display:none;">'+ + '<td></td>'+ + '<td><input class="small before_after_input" data-type="PH_before_after_alert" type="text" data-id="'+data_id+'" style="display:none;" />'+ + '<input class="date small message_date_input" data-type="PH_alarm_date" type="text" data-id="'+data_id+'" /><div class="invalidWrapper"><img data-type="invalidSmall" data-id="'+data_id+'" style="display: none;" src="images/error_b.svg" alt="invalid" /></div></td>'+ + '<td><input class="time small message_time_input" data-type="PH_alarm_time" type="text" data-id="'+data_id+'" /><div class="invalidWrapper"><img data-type="invalidSmall" data-id="'+data_id+'" style="display: none;" src="images/error_b.svg" alt="invalid" /></div></td>'+ + '<tr>'; + + $('#url_tr').before(newTr1); + $('#url_tr').before(newTr2); + $('#url_tr').before(newTr3); + + translateEventAlerts(); + $('#event_details_template').find('input[placeholder],textarea[placeholder]').placeholder(); + + $('#event_details_template .before_after_input[data-id="'+data_id+'"]').bind('keyup change', function(){ + if($(this).val()=='') + { + $(this).parent().find('img').css('display', 'inline'); + //$(this).parent().find('img').css('visibility','visible'); + } + else + { + if($(this).val().match("^(\d*[0-9])*$")==null) + { + $(this).parent().find('img').css('display', 'inline'); + //$(this).parent().find('img').css('visibility','visible'); + } + else + $(this).parent().find('img').css('display', 'none'); + } + }); + $('#event_details_template .alert[data-id="'+data_id+'"]').change(function(){ + var data_id=$(this).attr("data-id"); + if($(this).val()!='none') + { + $('.alert_details[data-id="'+data_id+'"]').show(); + $('.alert_message_date[data-id="'+data_id+'"]').show(); + if(!$('#allday').prop('checked')) + expandEventAlerts(); + var myDate=new Date(); + myDate.setDate(myDate.getDate()+7); + + if($('#date_from').parent().parent().find('img:visible').length==0) { + var dateTo=$.datepicker.parseDate(globalSettings.datepickerformat.value,$("#date_from").val()); + var datetime_to=$.fullCalendar.formatDate(dateTo, 'MM/dd/yyyy, '); + myDate=new Date(Date.parse(datetime_to + (!$("#allday").prop('checked')?$("#time_from").val():''))); + myDate.setHours(myDate.getHours()-1); + } + else if($('#date_to').parent().parent().find('img:visible').length==0) { + var dateTo=$.datepicker.parseDate(globalSettings.datepickerformat.value,$("#date_to").val()); + var datetime_to=$.fullCalendar.formatDate(dateTo, 'MM/dd/yyyy, '); + myDate=new Date(Date.parse(datetime_to + (!$("#allday").prop('checked')?$("#time_to").val():''))); + myDate.setHours(myDate.getHours()-1); + } + $('.message_date_input[data-id="'+data_id+'"]').val($.datepicker.formatDate(globalSettings.datepickerformat.value, myDate)); + $('.message_time_input[data-id="'+data_id+'"]').val($.fullCalendar.formatDate(myDate, (globalSettings.ampmformat.value ? 'hh:mm TT' : 'HH:mm'))); + event_alert_add(data_id); + } + else + { + $('.alert_details[data-id="'+data_id+'"]').hide(); + $('.alert_message_date[data-id="'+data_id+'"]').hide(); + checkFor(data_id); + var data_id=$(this).attr("data-id"); + $('#event_details_template tr[data-id="'+data_id+'"]').remove(); + } + checkEventFormScrollBar(); + }); + $('#event_details_template .alert_message_details[data-id="'+data_id+'"]').change(function(){ + var data_id=$(this).attr("data-id"); + $('.before_after_input[data-id="'+data_id+'"]').parent().parent().find('img').css('display','none'); + if($('.alert_message_details[data-id="'+data_id+'"] option:selected').attr('data-type')=="on_date") + { + var myDate=new Date(); + myDate.setDate(myDate.getDate()+7); + + if($('#date_from').parent().parent().find('img:visible').length==0) { + var dateTo=$.datepicker.parseDate(globalSettings.datepickerformat.value,$("#date_from").val()); + var datetime_to=$.fullCalendar.formatDate(dateTo, 'MM/dd/yyyy, '); + myDate=new Date(Date.parse(datetime_to + (!$("#allday").prop('checked')?$("#time_from").val():''))); + myDate.setHours(myDate.getHours()-1); + } + else if($('#date_to').parent().parent().find('img:visible').length==0) { + var dateTo=$.datepicker.parseDate(globalSettings.datepickerformat.value,$("#date_to").val()); + var datetime_to=$.fullCalendar.formatDate(dateTo, 'MM/dd/yyyy, '); + myDate=new Date(Date.parse(datetime_to + (!$("#allday").prop('checked')?$("#time_to").val():''))); + myDate.setHours(myDate.getHours()-1); + } + $('.message_date_input[data-id="'+data_id+'"]').val($.datepicker.formatDate(globalSettings.datepickerformat.value, myDate)); + $('.message_date_input[data-id="'+data_id+'"]').show(); + $('.message_time_input[data-id="'+data_id+'"]').val($.fullCalendar.formatDate(myDate, (globalSettings.ampmformat.value ? 'hh:mm TT' : 'HH:mm'))); + $('.message_time_input[data-id="'+data_id+'"]').show(); + $('.before_after_input[data-id="'+data_id+'"]').hide(); + } + else + { + $('.message_date_input[data-id="'+data_id+'"]').hide(); + $('.message_time_input[data-id="'+data_id+'"]').hide(); + $('.before_after_input[data-id="'+data_id+'"]').show(); + $('.before_after_input[data-id="'+data_id+'"]').val('15'); + } + }); + initCalDavDatepicker($('#event_details_template .alert_message_date[data-id="'+data_id+'"]')); + initCalDavTimepicker($('#event_details_template .alert_message_date[data-id="'+data_id+'"]')); + /*************************** BAD HACKS SECTION ***************************/ + // here we fix the cross OS/cross broser problems (unfixable in pure CSS) + if($.browser.webkit && !!window.chrome) /* Chrome */ + { + if(navigator.platform.toLowerCase().indexOf('win')==0) /* Windows version */ + { + $('#event_details_template').find('input').css('text-indent', '2px'); + $('#event_details_template').find('select').css({'padding-left': '0px', 'padding-right': '13px'}); + } + else /* non-Windows version */ + $('#event_details_template').find('input').css('text-indent', '1px'); + } + else if($.browser.safari) + { + $('#event_details_template').find('textarea').addClass('safari_hack'); + $('#event_details_template').find('input').addClass('safari_hack'); + } + else if($.browser.msie) /* IE */ + { + if(parseInt($.browser.version, 10)==10) /* IE 10 (because there are no more conditional comments) */ + { + $('#event_details_template').find('select').css({'padding-top': '1px', 'padding-left': '0px', 'padding-right': '0px'}); + $('#event_details_template').find('textarea').css('padding-top', '3px'); + $('#event_details_template').find('input[type=button]').css('padding-top', '2px'); + } + } + + /* IE or FF */ + if($.browser.msie || $.browser.mozilla) + { + // ADD empty SVG to interface (we will replace it later) + $('<svg data-type="select_icon"></svg>').css('display', 'none').insertAfter($('#event_details_template tr[data-id="'+data_id+'"]').find('select')); + } + + if($.browser.msie || $.browser.mozilla) + { + var newSVG=$(SVG_select).attr('data-type', 'select_icon').css({'pointer-events': 'none', 'z-index': '1', 'display': 'inline', 'margin-left': '-19px', 'vertical-align': 'top', 'background-color': '#ffffff'}); // background-color = stupid IE9 bug + $('#event_details_template tr[data-id="'+data_id+'"]').find('svg[data-type="select_icon"]').replaceWith($('<div>').append($(newSVG).clone()).html()); + } + /*************************** END OF BAD HACKS SECTION ***************************/ +} + +function stripEventAlerts() +{ + $('.alert_message_details').each(function(){ + if($(this).val()=='on_date') + $(this).find('option').not(':selected').remove(); + else + { + var dataID=$(this).parent().parent().attr('data-id'); + $('#event_details_template').find('tr[data-id="'+dataID+'"]').remove(); + } + }); +} + +function expandEventAlerts() +{ + $('.alert_message_details').each(function(){ + var value=$(this).val(); + $(this).html('<option data-type="on_date" value="on_date">on date</option>'+ + '<option data-type="weeks_before" value="weeks_before">weeks before</option>'+ + '<option data-type="days_before" value="days_before">days before</option>'+ + '<option data-type="hours_before" value="hours_before">hours before</option>'+ + '<option data-type="minutes_before" value="minutes_before">minutes before</option>'+ + '<option data-type="seconds_before" value="seconds_before">seconds before</option>'+ + '<option data-type="weeks_after" value="weeks_after">weeks after</option>'+ + '<option data-type="days_after" value="days_after">days after</option>'+ + '<option data-type="hours_after" value="hours_after">hours after</option>'+ + '<option data-type="minutes_after" value="minutes_after">minutes after</option>'+ + '<option data-type="seconds_after" value="seconds_after">seconds after</option>'); + $(this).val(value); + }); + translateEventAlerts(); +} + +function stripTodoAlerts() +{ + $('.alert_message_detailsTODO').each(function(){ + if($(this).val()=='on_date') + $(this).find('option').not(':selected').remove(); + else + { + var dataID=$(this).parent().parent().attr('data-id'); + $('#todo_details_template').find('tr[data-id="'+dataID+'"]').remove(); + } + }); +} + +function expandTodoAlerts() +{ + $('.alert_message_detailsTODO').each(function(){ + var value=$(this).val(); + $(this).html('<option data-type="on_dateTODO" value="on_date">On date</option>'+ + '<option data-type="weeks_beforeTODO" value="weeks_before">weeks before</option>'+ + '<option data-type="days_beforeTODO" value="days_before">days before</option>'+ + '<option data-type="hours_beforeTODO" value="hours_before">hours before</option>'+ + '<option data-type="minutes_beforeTODO" value="minutes_before">minutes before</option>'+ + '<option data-type="seconds_beforeTODO" value="seconds_before">seconds before</option>'+ + '<option data-type="weeks_afterTODO" value="weeks_after">weeks after</option>'+ + '<option data-type="days_afterTODO" value="days_after">days after</option>'+ + '<option data-type="hours_afterTODO" value="hours_after">hours after</option>'+ + '<option data-type="minutes_afterTODO" value="minutes_after">minutes after</option>'+ + '<option data-type="seconds_afterTODO" value="seconds_after">seconds after</option>'); + $(this).val(value); + }); + translateTodoAlerts(); +} |