

var myStartCal;
var myEndCal;


function addAnotherDate(e)
{		
	if (e)
	{
  	e.stop();
	}
	
	if (!validateDates())
	{
		return false;
	}
	
	$('savedEventDates').setStyle('display', 'block');
	
	var newDateText = $('startMonth').get('value')+'/'+$('startDay').get('value')+'/'+$('startYear').get('value')+' '+
										$('startHour').get('value')+':'+$('startMinute').get('value')+' '+$('startAmPm').get('value')+' to '+
										$('endMonth').get('value')+'/'+$('endDay').get('value')+'/'+$('endYear').get('value')+' '+
										$('endHour').get('value')+':'+$('endMinute').get('value')+' '+$('endAmPm').get('value');

	var newDate = new Element('div',
	{
		'text': newDateText,
		'class': 'savedEventDate'
	}).inject('savedEventDates');
		
	var key = $('lastEventDate').get('text').toInt();
	key = isNaN(key) ? 1 : key + 1;
	$('lastEventDate').set('text', key);
		
	new Element('input',
	{
		'name': 'eventDate_'+key,
		'type': 'hidden',
		'value': newDateText
	}).inject(newDate);
		
	new Element('a',
	{
		'text': 'Edit',
		'styles': 
		{
			 'display': 'inline-block',
			 'margin-left': '15px'
		},
		'events': 
		{
			'click': eventDateEdit
		}
	}).inject(newDate);
	
	new Element('a',
	{
		'text': 'Repeat',
		'styles': 
		{
			'display': 'inline-block',
			'margin': '0px 10px'
		},
		'events':
		{
			'click': function(e)
			{
				 e.stop();
				 var pos = e.target.getPosition(PAGE_WRAPPER);
				 $('repeatDurationDiv').setStyles(
				 {
					 'display': 'block',
					 'left': pos.x - 100,
					 'top': pos.y
				 });
				 
				 if (Browser.Engine.trident && Browser.Engine.version < 5)
				 {
					 $$('.ieSelectHide').setStyle('visibility', 'hidden');
				 }
				 
				 var pieces = e.target.getParent('div').get('text').clean().split(' to ');
				 $('repeatDurationStart').set('text', pieces[0]);
				 $('repeatDurationRow').set('text', e.target.getParent('div').get('text').clean());
				 $('repeatInterval').set('value', 'null');
				 $('repeatDuration').set('value', '');
				 $('repeatDurationName').set('value', '');
				 $('repeatDurationError').empty();
				 $('repeatMonthlyDiv').setStyle('display', 'none');
			}
		}
	}).inject(newDate);
	
	new Element('a',
	{
		'text': 'Remove',
		'class': 'caution',
		'events':
		{
			'click': function(e)
			{
				e.stop();
				var edit = e.target.getParent('div').getPrevious('.savedEventDate');
				
				if (!edit)
				{
					edit = e.target.getParent('div').getNext('.savedEventDate');
				}
				
				if (!edit)
				{
					edit = e.target.getParent('div');
				}
				
				var pieces = edit.get('text').clean().split(' to ');
				var dateFormat = /(\d{2})\/(\d{2})\/(\d{4})\s(\d{1,2}):(\d{2})\s(AM|PM)/;
				
				var matches = dateFormat.exec(pieces[0]);
				$('startMonth').set('value', matches[1]);
				$('startDay').set('value', matches[2]);
				$('startYear').set('value', matches[3]);
				$('startHour').set('value', matches[4]);
				$('startMinute').set('value', matches[5]);
				$('startAmPm').set('value', matches[6]);
				
				matches = dateFormat.exec(pieces[1]);
				$('endMonth').set('value', matches[1]);
				$('endDay').set('value', matches[2]);
				$('endYear').set('value', matches[3]);
				$('endHour').set('value', matches[4]);
				$('endMinute').set('value', matches[5]);
				$('endAmPm').set('value', matches[6]);
				
				updateDaysInMonth('start');
				updateDaysInMonth('end');
	
				if ($$('.savedEventDate').length <= 1)
				{
					e.target.getParent('div').getParent('div').setStyle('display', 'none');
				}
				
				e.target.getParent('div').destroy();
			}
		}
	}).inject(newDate);
	
	return true;
}


function businessChanged(e)
{
	e.stop();
	
	$$('.businessInfo').setStyle('display', 'none');
	
	var selectValue = $('businessSelect').get('value');
	if (selectValue != 0)
	{
		$$('.eventLocationManualEntry').setStyle('display', 'none');
		$('businessInfo_'+selectValue).setStyle('display', 'block');
		
		if ($('businessWebsite_'+selectValue) && $('eventURL').get('value') == '')
		{
			$('eventURL').set('value', $('businessWebsite_'+selectValue).get('text'));
		}
	}
	else
	{
		$$('.eventLocationManualEntry').setStyle('display', '');
	}
}


function changeNotesLimiter()
{
	var charsUsed = $('changeNotes').get('value').length;
	
	$('changeNotesCharacters').set('text', charsUsed);
	
	var valid = true;
	if (charsUsed > 250)
	{
		$('changeNotes').addClass('error');
		$('changeNotesLimit').addClass('error');
		valid = false;
	}
	else
	{
		$('changeNotes').removeClass('error');
		$('changeNotesLimit').removeClass('error');
	}
	
	return valid;
}


function dateFieldChanged(e)
{
	updateDaysInMonth('start');
	
	var endUpdated = false;
	if ($('startYear').get('value').toInt() > $('endYear').get('value').toInt())
	{
		endUpdated = true;
		$('endYear').set('value', $('startYear').get('value'));
	}
	
	if ($('startMonth').get('value').toInt() > $('endMonth').get('value').toInt())
	{
		endUpdated = true;
		$('endMonth').set('value', $('startMonth').get('value'));
	}
	
	if ($('startDay').get('value').toInt() != $('endDay').get('value').toInt())
	{
		endUpdated = true;
		$('endDay').set('value', $('startDay').get('value'));
	}
	
	var startHour = getHour($('startHour').get('value'), $('startAmPm').get('value')).toFloat() + ($('startMinute').get('value') / 60).toFloat();
	var endHour = getHour($('endHour').get('value'), $('endAmPm').get('value')) + ($('endMinute').get('value') / 60).toFloat();
	
	if (startHour.toFloat() >= endHour.toFloat() &&
			($('startDay').get('value').toInt() == $('endDay').get('value').toInt() || 
			 $('startMonth').get('value').toInt() == $('endMonth').get('value').toInt() ||
			 $('startYear').get('value').toInt() == $('endYear').get('value').toInt()))
	{
		endUpdated = true;
		
		$('endAmPm').set('value', $('startAmPm').get('value'));
		$('endHour').set('value', $('startHour').get('value'));
		
		if ($('endHour').get('value').toInt() < 11)
		{
			$('endHour').set('value', ($('endHour').get('value').toInt() + 1));
		}
		else if ($('endAmPm').get('value') == 'AM')
		{
			$('endHour').set('value', $('endHour').get('value') == '11' ? '12' : '1');
			$('endAmPm').set('value', 'PM');
		}
		else
		{
			$('endHour').set('value', $('endHour').get('value') == '11' ? '12' : '1');
			$('endAmPm').set('value', 'AM');
			
			var newDay = $('startDay').get('value').toInt() + 1;
		
			var daysInMonth = [31,28,31,30,31,30,31,31,30,31,30,31];
			if ($('startYear').get('value') % 4 == 0)
			{
				daysInMonth[1] = 29;
			}
			
			var daysInThisMonth = daysInMonth[($('startMonth').get('value').toInt() - 1)];
			
			if (newDay <= daysInThisMonth)
			{
				newDay = newDay < 10 ? '0'+newDay.toString() : newDay.toString();
				$('endDay').set('value', newDay);
			}
			else
			{
				$('endDay').set('value', '01');
				
				if ($('startMonth').get('value') < 12)
				{
					var newMonth = $('startMonth').get('value').toInt() + 1;
					newMonth = newMonth < 10 ? '0'+newMonth.toString() : newMonth.toString();
					$('endMonth').set('value', newMonth);
				}
				else
				{
					$('endMonth').set('value', '01');
					$('endYear').set('value', $('startYear').get('value').toInt() + 1);
				}
			}
		}
	}
	
	if (endUpdated)
	{
		updateDaysInMonth('end');
	}
}



function eventDateEdit(e)
{
	e.stop();
	
	var pieces = e.target.getParent('div').get('text').clean().split(' to ');
	
	var dateFormat = /(\d{2})\/(\d{2})\/(\d{4})\s(\d{1,2}):(\d{2})\s(AM|PM)/;
	
	var matches = dateFormat.exec(pieces[0]);
	$('startMonth').set('value', matches[1]);
	$('startDay').set('value', matches[2]);
	$('startYear').set('value', matches[3]);
	$('startHour').set('value', matches[4]);
	$('startMinute').set('value', matches[5]);
	$('startAmPm').set('value', matches[6]);
	
	matches = dateFormat.exec(pieces[1]);
	$('endMonth').set('value', matches[1]);
	$('endDay').set('value', matches[2]);
	$('endYear').set('value', matches[3]);
	$('endHour').set('value', matches[4]);
	$('endMinute').set('value', matches[5]);
	$('endAmPm').set('value', matches[6]);
	
	updateDaysInMonth('start');
	updateDaysInMonth('end');
	
	if ($$('.savedEventDate').length <= 1)
	{
		e.target.getParent('div').getParent('div').setStyle('display', 'none');
	}
	e.target.getParent('div').destroy();
}


function getHour(hour, amPm)
{
	var hour = hour.toInt();
	var amPm = amPm.toLowerCase();
	
	if (amPm == 'am' && hour == 12)
	{
		hour = 0;
	}
	else if (amPm == 'pm' && hour < 12)
	{
		hour += 12;
	}
	
	return hour;
}


function handleSubmit(e)
{
	e.stop();
	
  var submitButton = $(e.target);
    
  var mode = $('mode').get('value') == 'edit' ? 'edit' : 'new';

  if (validEvent())
  {
    submitButton.set('disabled', true);
    var req = mode == 'new' ? 'eventModifyCreate' : 'eventModifyUpdate';
		
		showMessage('.statusOutput', (mode == 'edit' ? 'Saving changes...' : 'Creating event...'));
		$('eventModifyForm').set('action', $('eventModifyForm').get('action')+'?action='+mode);
		$('eventModifyForm').submit();
  }
  
  return true;
}



function initializeDates()
{
	$$('.eventDatesInit').each(function(dates)
	{
		var pieces = dates.get('value').split('_');
		var dateFormat = /(\d{2})\/(\d{2})\/(\d{4})\s(\d{1,2}):(\d{2})\s(AM|PM)/;

		var matches = dateFormat.exec(pieces[0]);
		$('startMonth').set('value', matches[1]);
		$('startDay').set('value', matches[2]);
		$('startYear').set('value', matches[3]);
		$('startHour').set('value', matches[4].toInt().toString());
		$('startMinute').set('value', matches[5]);
		$('startAmPm').set('value', matches[6]);
		
		matches = dateFormat.exec(pieces[1]);
		$('endMonth').set('value', matches[1]);
		$('endDay').set('value', matches[2]);
		$('endYear').set('value', matches[3]);
		$('endHour').set('value', matches[4].toInt().toString());
		$('endMinute').set('value', matches[5]);
		$('endAmPm').set('value', matches[6]);
		
		addAnotherDate(false);
		
		dates.destroy();
	});
	
	updateDaysInMonth('start');
	updateDaysInMonth('end');
	
	$('initializeDatesLoading').destroy();
	$('savedEventDates').setStyle('display', 'block');
	$('startDateRow').setStyle('display', 'block');
	$('endDateRow').setStyle('display', 'block');
}



function performDelete(e)
{
	e.stop();
	$('deleteConfirmButton').set('disabled', true);
	
	new Request.JSON
	({
		url: '../include/ajaxController.php',
		onFailure: function()
		{
			showError('.statusOutput', 'Unable to send delete request');
			$('deleteConfirmButton').set('disabled', false);
		},
		onComplete: function(jsonObject)
		{
			if (!jsonObject || !jsonObject.success)
			{
				showError('.statusOutput', 'Unable to complete delete request');
				$('deleteConfirmButton').set('disabled', false);
				return false;
			}
		
			$('eventModifySubmitButton').set('disabled', true);
			
			$('deleteWrapper').empty();
			$('deleteWrapper').addClass('error');
			$('deleteWrapper').set('text', 'This event has been deleted. Please wait...');
			
			window.location = SITE_ROOT+'calendar/view.php';
		}
	}).get({'req': 'eventModifyDelete', 'id': $('eventID').get('value')});
}



function repeatEvent(e)
{ 
	e.stop();

  var interval = $('repeatInterval').get('value');
  if (interval != 'daily' && interval != 'weekly' && interval != 'monthly' && interval != 'yearly')
  {
    showError('repeatDurationError', 'How often does this event repeat?');
    $('repeatInterval').addClass('error');
    return false;
  }
  else
  {
    $('repeatInterval').removeClass('error');
  }

  var duration = $('repeatDuration').get('value').toInt();
  if(isNaN(duration))
  {
    showError('repeatDurationError', 'How long does this event repeat?');
    $('repeatDuration').addClass('error');
    return false;
  }
  else
  {
    $('repeatDuration').removeClass('error');
  }
	
	$('startMonth').set('value', '01');
	updateDaysInMonth('start');
	$('startMonth').set('value', '01');
	updateDaysInMonth('end');
  
	var pieces = $('repeatDurationRow').get('text').clean().split(' to ');
	
	var dateFormat = /(\d{2})\/(\d{2})\/(\d{4})\s(\d{1,2}):(\d{2})\s(AM|PM)/;
	
	var matches = dateFormat.exec(pieces[0]);
	var startDate = new Date(matches[3], (matches[1] - 1), matches[2], getHour(matches[4], matches[6]), matches[5], 0);
	matches = dateFormat.exec(pieces[1]);
	var endDate = new Date(matches[3], (matches[1] - 1), matches[2], getHour(matches[4], matches[6]), matches[5], 0);
	
	var initialStartTime = startDate.getTime();
	var dateDifference = endDate.getTime() - startDate.getTime();
  
  var i;
  var increment = duration < 0 ? -1 : 1;
  for(i = 1; i <= Math.abs(duration); i++)
  {
    switch(interval)
    {
      case 'daily': 
        startDate.setDate(startDate.getDate() + increment);
        endDate.setDate(endDate.getDate() + increment);
      break;
      
      case 'weekly':
        startDate.setDate(startDate.getDate() + (increment * 7));
        endDate.setDate(endDate.getDate() + (increment * 7));
      break;
      
      case 'monthly':
				var date = new Date(initialStartTime);
			
        var tmp = new Date();
        tmp.setTime(date.getTime());
        var expectedNextMonth = (tmp.getMonth() + increment * i) % 12;
        expectedNextMonth = expectedNextMonth < 0 ? expectedNextMonth + 12 : expectedNextMonth; 
        
        if ($('repeatMonthlyOnDate').get('checked'))
        {
          date.setMonth(date.getMonth() + increment * i);
          
          var kill = 32;
          while (date.getMonth() != expectedNextMonth && kill-- > 0)
          {
            date.setDate(date.getDate() - 1);
          }
        }
        else
        {
          var numMonths = Math.abs(increment * i);
          var month = date.getMonth();
          while(numMonths > 0)
          {
            date.setDate(date.getDate() + (increment * 7));
            
            if (month != date.getMonth())
            {
              month = date.getMonth();
              numMonths--;
            }
          }
          
          var weekOfMonth = $('weekOfMonth').get('text');
          if (increment > 0)
          {
            date.setDate(date.getDate() + ((increment * 7) * (weekOfMonth - 1)));
          }
          else
          {
            var weekNum = Math.ceil(date.getDate() / 7);
            date.setDate(date.getDate() + ((increment * 7) * (weekNum - weekOfMonth)));
          }
          
          var kill = 4;
          if(date.getMonth() != expectedNextMonth && kill-- > 0)
          {
            date.setDate(date.getDate() - 7);
          }
        }
				
        endDate.setTime(date.getTime() + dateDifference);
        startDate = date;
      break;
      
      case 'yearly':
        startDate.setFullYear(startDate.getFullYear() + increment);
        endDate.setFullYear(endDate.getFullYear() + increment);
      break;
    }
		
		$('startMonth').set('value', (startDate.getMonth() + 1 < 10 ? '0' : '')+(startDate.getMonth() + 1));
		$('startDay').set('value', (startDate.getDate() < 10 ? '0' : '')+(startDate.getDate()));
		$('startYear').set('value', startDate.getFullYear());
		$('startHour').set('value', startDate.getHours() % 12 == 0 ? '12' : startDate.getHours() % 12);
		$('startMinute').set('value', (!startDate.getMinutes() ? '00' : startDate.getMinutes()));
		$('startAmPm').set('value', startDate.getHours() >= 12 ? 'PM' : 'AM');
		
		$('endMonth').set('value', (endDate.getMonth() + 1 < 10 ? '0' : '')+(endDate.getMonth() + 1));
		$('endDay').set('value', (endDate.getDate() < 10 ? '0' : '')+(endDate.getDate()));
		$('endYear').set('value', endDate.getFullYear());
		$('endHour').set('value', endDate.getHours() % 12 == 0 ? '12' : endDate.getHours() % 12);
		$('endMinute').set('value', (!endDate.getMinutes() ? '00' : endDate.getMinutes()));
		$('endAmPm').set('value', endDate.getHours() >= 12 ? 'PM' : 'AM');
       	
    addAnotherDate(false);
  }
	
	updateDaysInMonth('start');
	updateDaysInMonth('end');
  
  $('repeatDurationDiv').setStyle('display', 'none');
	
	if (Browser.Engine.trident && Browser.Engine.version < 5)
	{
	 $$('.ieSelectHide').setStyle('visibility', 'visible');
	}
}


function repeatIntervalChanged()
{
  var name = '';
  switch($('repeatInterval').get('value'))
  {
  	case 'daily': name = 'days'; break;
  	case 'weekly': name = 'weeks'; break;
  	case 'monthly': name = 'months'; break;
  	case 'yearly': name = 'years'; break;
  }
  
  $('repeatDurationName').set('text', name);
  
  if ($('repeatInterval').get('value') != 'monthly')
  {
    $('repeatMonthlyDiv').setStyle('display', 'none');
  }
  else
  {
    $('repeatMonthlyDiv').setStyle('display', 'block');
		var pieces = $('repeatDurationRow').get('text').clean().split(' to ');
		
		var dateFormat = /(\d{2})\/(\d{2})\/(\d{4})\s(\d{1,2}):(\d{2})\s(AM|PM)/;
		
		var matches = dateFormat.exec(pieces[0]);
		var startDate = new Date(matches[3], (matches[1] - 1), matches[2], getHour(matches[4], matches[6]), matches[5], 0);
    
    var weekNum = Math.ceil(startDate.getDate() / 7);
    switch(weekNum)
    {
      case 1: weekNum = '<span id="weekOfMonth">1</span>st'; break;
      case 2: weekNum = '<span id="weekOfMonth">2</span>nd'; break;
      case 3: weekNum = '<span id="weekOfMonth">3</span>rd'; break;
      case 4: weekNum = '<span id="weekOfMonth">4</span>th'; break;
      case 5: weekNum = '<span id="weekOfMonth">5</span>th (or last)'; break;
    }
    
    var dayOfWeek = startDate.getDay();
    switch(dayOfWeek)
    {
      case 0: dayOfWeek = 'Sunday'; break;
      case 1: dayOfWeek = 'Monday'; break;
      case 2: dayOfWeek = 'Tuesday'; break;
      case 3: dayOfWeek = 'Wednesday'; break;
      case 4: dayOfWeek = 'Thursday'; break;
      case 5: dayOfWeek = 'Friday'; break;
      case 6: dayOfWeek = 'Saturday'; break;
    }
    
    var dateNum = startDate.getDate();
    switch(dateNum)
    {
      case '1': case '21': case '31':
        dateNum += 'st';
      break;
      case '2': case '22':
        dateNum += 'nd';
      break;
      case '3': case '23':
        dateNum += 'rd';
      break;
      default:
        dateNum += 'th';
      break;      
    }
    
    $('repeatMonthlyOnDateLabel').set('text', 'On the '+dateNum+' of each month');
    $('repeatMonthlyOnPositionLabel').set('html', 'On the '+weekNum+' '+dayOfWeek+' of each month');
  }
	
	$('repeatDuration').focus();
}



function updateDaysInMonth(dateType)
{
	var monthField = $(dateType+'Month');
	var dayField = $(dateType+'Day');
	var yearField = $(dateType+'Year');
	
	var daysInMonth = [31,28,31,30,31,30,31,31,30,31,30,31];
	if (yearField.get('value') % 4 == 0)
	{
		daysInMonth[1] = 29;
	}
	
	var daysInThisMonth = daysInMonth[(monthField.get('value').toInt() - 1)];
	var daySelected = dayField.get('value');
	
	$$('.'+dateType+'ExtraDays').destroy();
	
	var i;
	for (i = 29; i <= daysInThisMonth; i++)
	{
	  new Element('option',
		{
			'value': i,
			'class': dateType+'ExtraDays',
			'text': i
		}).inject(dayField);
	}
	
	dayField.set('value', (daySelected > daysInThisMonth ? daysInThisMonth : daySelected));
}



function validEvent()
{
  var error = false;
  
  clearOutput('.statusOutput');
  if ($('noCalendarNotice'))
  {
    error = 'You must create a calendar before you can create an event';
    $('noCalendarNotice').addClass('error');
  } 
  else
  {    	
    if (checkBlanks(['calendarID', 'eventTitle']) || 
				((!$('businessSelect') || $('businessSelect').get('value') == 0) && 
					checkBlanks(['locationID', 'eventLocationName'])))
    {
      error = 'Please fill in the fields marked in red';
    }
		
		if ($('changeNotes') && !changeNotesLimiter())
		{
			error = 'The change notes entered are too long';
		}
		
		if ($('eventImage'))
		{
			var upload = $('eventImage').get('value').toLowerCase();
			var validExt = /(?:\.jpg|\.jpeg|\.gif|\.png)$/;
			if(upload && upload != '' && !upload.match(validExt))
			{
				error = upload+' Event Image - '+IMAGE_TYPE_NOT_VALID_ERROR;
			}
		}
  }
	
  if (error)
  {
    showError('.statusOutput', error);
    return false;
  }
  
  // Add another date will return false on error or if the date added already exists
  // Thus check to see if an error was displayed by DateTimeHandler as well to see if this was an error
  if (!addAnotherDate(false) && $('statusOutputBottom').get('html') != '')
  {
    return false;
  }
  
  
  return true;
}



function validateDates()
{
	// check same, check end before start, check max duration
	var start = new Date($('startYear').get('value'), $('startMonth').get('value'), $('startDay').get('value'), 
												getHour($('startHour').get('value'), $('startAmPm').get('value')), $('startMinute').get('value'), 0);
	var end = new Date($('endYear').get('value'), $('endMonth').get('value'), $('endDay').get('value'), 
												getHour($('endHour').get('value'), $('endAmPm').get('value')), $('endMinute').get('value'), 0);
	
	if (!start || !end)
	{
		showError('.statusOutput', 'Invalid start or end time');
		return false;
	}
	
	var startSeconds = start.getTime() / 1000;
	var endSeconds = end.getTime() / 1000;
	
	var errorOccurred = false;
	
	if (startSeconds == endSeconds)
	{
		showError('.statusOutput', 'The start time and end time cannot be the same');
		errorOccurred = true;
	}
	
	if (startSeconds > endSeconds)
	{
		showError('.statusOutput', 'The end time cannot be before the start time');
		errorOccurred = true;
	}
	
	if((endSeconds - startSeconds) > (30 * 86400))
	{
		showError('.statusOutput', 'You cannot have an event over more than 30 days');
		errorOccurred = true;
	}
	
	if (errorOccurred)
	{
		if (!$('dateErrorOccurred'))
		{
			new Element('span',
			{
				'id': 'dateErrorOccurred',
				'styles': 
				{
					'display': 'none'
				},
				'text': 'true'
			}).inject('defaultDates', 'after');
		}
		else
		{
			showMessage('.statusOutput', 'Restoring default dates: please try entering the event times again');
			$('dateErrorOccurred').destroy();
			
			var datePieces = $('defaultDates').get('text').split(' to ');
			
			var startPieces = datePieces[0].split(' ');
			$('startMonth').set('value', startPieces[0]);
			$('startDay').set('value', startPieces[1]);
			$('startYear').set('value', startPieces[2]);
			$('startHour').set('value', startPieces[3]);
			$('startMinute').set('value', startPieces[4]);
			$('startAmPm').set('value', startPieces[5]);
			
			var endPieces = datePieces[1].split(' ');
			$('endMonth').set('value', endPieces[0]);
			$('endDay').set('value', endPieces[1]);
			$('endYear').set('value', endPieces[2]);
			$('endHour').set('value', endPieces[3]);
			$('endMinute').set('value', endPieces[4]);
			$('endAmPm').set('value', endPieces[5]);
		}
		
		return false;
	}
	
	clearOutput('.statusOutput');
	
	if ($('dateErrorOccurred'))
	{
		$('dateErrorOccurred').destroy();
	}
	
	return true;
}



window.addEvent('domready', function()
{
  var locationSelect = new LocationSelect
  ({
    stateSelect: 'selectState', 
    citySelect: 'locationID',
    loadingPlaceholder: 'locationSelectLoading',
    ajaxPath: '../include/ajaxController.php',
    errorOutput: '.statusOutput'
  });
	
	initializeDates();
	
	myStartCal = new Calendar
	(
	 	{
			'startYear': { 'startMonth': 'm', 'startDay': 'd', 'startYear': 'Y' }
		},
		{
			'classes': ['calendarPicker'],
			'onHideComplete': function()
			{
				dateFieldChanged('start');
			}
		}
	);
	
	var myEndCal = new Calendar
	(
	 	{
			'endYear': { 'endMonth': 'm', 'endDay': 'd', 'endYear': 'Y' }
		},
		{
			'classes': ['calendarPicker'],
			'onHideComplete': function()
			{
				dateFieldChanged('end');
			}
		}
	);
	
	
	$('repeatInterval').addEvent('change', repeatIntervalChanged);	
	
	$('repeatDurationLink').addEvent('click', repeatEvent);
	
	if ($('clearUploadImageButton'))
	{
		$('clearUploadImageButton').addEvent('click', function()
		{
			if (!Browser.Engine.trident)
			{
				$('eventImage').set('value', '');
			}
			else
			{
				var newUpload = $('eventImage').clone().inject('eventImage', 'after');
				$('eventImage').destroy();
				newUpload.set('id', 'eventImage');
				newUpload.set('name', 'eventImage');
			}
		});
	}
	
	if ($('clearUploadFileButton'))
	{
		$('clearUploadFileButton').addEvent('click', function()
		{
			if (!Browser.Engine.trident)
			{
				$('uploadedFile').set('value', '');
			}
			else
			{
				var newUpload = $('uploadedFile').clone().inject('uploadedFile', 'after');
				$('uploadedFile').destroy();
				newUpload.set('id', 'uploadedFile');
				newUpload.set('name', 'uploadedFile');
			}
		});
	}
	
	
	$('startDateRow').getElements('.dateFieldSelect').addEvent('change', dateFieldChanged);
		 
	
	$('repeatDurationCancel').addEvent('click', function()
	{
		$('repeatDurationDiv').setStyle('display', 'none');
		
		if (Browser.Engine.trident && Browser.Engine.version < 7)
		{
		 $$('.ieSelectHide').setStyle('visibility', 'visible');
		}
	});
	
	if ($('businessSelect'))
	{
		$('businessSelect').addEvent('change', businessChanged);
	}
	
	if ($('changeNotes'))
	{
		$('changeNotes').addEvent('keyup', function(e)
		{
			e.stop();
			changeNotesLimiter();
		});
		
		$('changeNotes').addEvent('blur', changeNotesLimiter);
	}	
	
	
	$('addAnotherDateLink').addEvent('click', addAnotherDate);
	
  $('eventModifySubmitButton').addEvent('click', handleSubmit);
	
  
  if ($('eventModifyDeleteButton'))
  {
    $('eventModifyDeleteButton').addEvent('click', function(e)
    {
      e.stop();
      $('eventModifyDeleteConfirm').setStyle('display', 'block');
    });
    
    $('deleteConfirmButton').addEvent('click', performDelete)
    
    $('deleteCancelButton').addEvent('click', function(e)
    {
      e.stop();
      $('eventModifyDeleteConfirm').setStyle('display', 'none');
    });
  }
});

