/* events.js
 *
 * Some routines for dealing with the events calendar
 */
$(function()
{
	initDateControls();
	
	initArchiveList();
	
	
});

function initArchiveList()
{
	if ($('ul.PresentationList').length)
	{
		/* Presentation toggle
		 */
		$('ul.PresentationList').hide()
			.before('<p><a class="PresentationToggle" href="#" title="click to view list of presentations">(Show Presentations)</a></p>');
		
		
		$('a.PresentationToggle').click(function()
		{
			var a = $(this);
			var ul = a.parent('p').next('ul');
			
			ul.slideToggle(
				'slow',
				function()
				{
					a.text(ul.css('display') == 'block' ? '(Hide Presentations)' : '(Show Presentations)');
				}
			);
			return false;
		});
	}
}


function initDateControls()
{
	if ($('#EventStartDateYear').length)
	{
		/* make a nicer date picker
		 */
		var start_date, end_date;
		
		/* existing values must be kept
		 */
		var from_y = $('#EventStartDateYear').val();
		var to_y = $('#EventEndDateYear').val();
		
		if (from_y.length > 0)
		{
			start_date = from_y+'-'+$('#EventStartDateMonth').val()+'-'+$('#EventStartDateDay').val();
			
			end_date = to_y.length > 0
				? to_y+'-'+$('#EventEndDateMonth').val()+'-'+$('#EventEndDateDay').val()
				: '';
		}
		else
		{
			start_date = end_date = '';
		}
	
		/* replace default select lists with text inputs
		 */
		$('label[for="EventStartDateMonth"]').siblings('select').remove();
		$('label[for="EventStartDateMonth"]')
			.after($('<input type="text" class="DatePicker" id="start_date" name="data[Event][start_date]" value="'+start_date+'" />'));
		
			
		$('label[for="EventEndDateMonth"]').siblings('select').remove();
		$('label[for="EventEndDateMonth"]')
			.after($('<input type="text" class="DatePicker" id="end_date" name="data[Event][end_date]" value="'+end_date+'" />'));
	
			
		/* add DatePicker
		 */
		$('#start_date').datepicker({dateFormat: 'yy-mm-dd'});
		$('#end_date').datepicker({dateFormat: 'yy-mm-dd'});
	
		/* adjust for single-day events
		 */
		checkEndDate($('#single_day'));
		$('#single_day').click(function(){checkEndDate($(this));});
		
		/* set end_date equal to start_date if the former is empty
		 */
		$('#EventAddForm, #EventEditForm').submit(function()
		{
			if ($('#end_date').val() == '') $('#end_date').val($('#start_date').val());
		});
	}
	
	/**
	 * Enable or disable end_date element.
	 * If the single_date element is checked the end_date field will be disabled.
	 *
	 * @param	object	jquery element
	 */
	function checkEndDate(el)
	{
		if (el.length)
		{
			if (el.is(':checked'))
			{
				$('#end_date').attr('disabled', 'disabled');
			}
			else
			{
				$('#end_date').removeAttr('disabled');
			}
		}
	}
	
}




