/*
CalDavZAP - the open source CalDAV 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');

  var calendarsApiHasResponded = false
	// begin custom code
  $.ajax({
    url: '/api/calendars/',
    method: 'GET',
    contentType: 'application/json'
  }).done(function (data) {

    var regExpUser = new RegExp('\/user\/')
    var regExpWorkspace = new RegExp('\/workspace\/')

    var user_or_workspace

    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 )))
      {
        var currentICS = parseInt(cals[i].displayValue.replace('.ics', ''))

        if (regExpUser.test(cals[i].uid))
          user_or_workspace = 'user'
        else if (regExpWorkspace.test(cals[i].uid))
          user_or_workspace = 'workspace'
        else
          user_or_workspace = 'fail'

        var calName = ''
        var calList_length = data.value_list.length
        for (var j = 0; j < calList_length; j++) {
          if (data.value_list[j].id === currentICS && data.value_list[j].type === user_or_workspace) {
            calName = data.value_list[j].label
          }
        }

        calendarObj.append(new Option(calName, cals[i].uid));
      }
    }
    calendarsApiHasResponded = true
  })

	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!='') {
      var interval = window.setInterval(function () {
        if (calendarsApiHasResponded === true) {
          $('#event_calendar').val(calEvent.res_id);
          stopInterval()
        }
      }, 500)
      var stopInterval = function () {
        window.clearInterval(interval)
      }
    }
	}

	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();
}
