

$(document).ready(function(){

	

	maruti.init();

	

	$('#add-event-submit').click(function(){

		maruti.add_event();

	});

	

	$('#event-name').keypress(function(e){

		if(e.which == 13) {	

			maruti.add_event();

		}

	});	

});



maruti = {	

	

	// === Initialize the fullCalendar and external draggable events === //

	init: function() {	

		// Prepare the dates

		var date = new Date();

		var d = date.getDate();

		var m = date.getMonth();

		var y = date.getFullYear();	

		

		$('#fullcalendar').fullCalendar({

			header: {

				left: 'prev,next',

				center: 'title',

				right: 'month,basicWeek,basicDay'

			},

			editable: true,

			droppable: true, // this allows things to be dropped onto the calendar !!!

			drop: function(date, allDay) { // this function is called when something is dropped

				

				// retrieve the dropped element's stored Event Object

				var originalEventObject = $(this).data('eventObject');

					

				// we need to copy it, so that multiple events don't have a reference to the same object

				var copiedEventObject = $.extend({}, originalEventObject);

					

				// assign it the date that was reported

				copiedEventObject.start = date;

				copiedEventObject.allDay = allDay;

					

				// render the event on the calendar

				// the last `true` argument determines if the event "sticks" (http://arshaw.com/fullcalendar/docs/event_rendering/renderEvent/)

				$('#fullcalendar').fullCalendar('renderEvent', copiedEventObject, true);

					

				// is the "remove after drop" checkbox checked?

				

					// if so, remove the element from the "Draggable Events" list

					$(this).remove();

				

			}

		});

		this.external_events();		

	},

	

	// === Adds an event if name is provided === //

	add_event: function(){

		if($('#event-name').val() != '') {

			var event_name = $('#event-name').val();

			$('#external-events .panel-content').append('<div class="external-event ui-draggable label label-inverse">'+event_name+'</div>');

			this.external_events();

			$('#modal-add-event').modal('hide');

			$('#event-name').val('');

		} else {

			this.show_error();

		}

	},

	

	// === Initialize the draggable external events === //

	external_events: function(){

		/* initialize the external events

		-----------------------------------------------------------------*/

		$('#external-events div.external-event').each(function() {		

			// create an Event Object (http://arshaw.com/fullcalendar/docs/event_data/Event_Object/)

			// it doesn't need to have a start or end

			var eventObject = {

				title: $.trim($(this).text()) // use the element's text as the event title

			};

				

			// store the Event Object in the DOM element so we can get to it later

			$(this).data('eventObject', eventObject);

				

			// make the event draggable using jQuery UI

			$(this).draggable({

				zIndex: 999,

				revert: true,      // will cause the event to go back to its

				revertDuration: 0  //  original position after the drag

			});		

		});		

	},

	

	// === Show error if no event name is provided === //

	show_error: function(){

		$('#modal-error').remove();

		$('<div style="border-radius: 5px; top: 70px; font-size:14px; left: 50%; margin-left: -70px; position: absolute;width: 140px; background-color: #f00; text-align: center; padding: 5px; color: #ffffff;" id="modal-error">Enter event name!</div>').appendTo('#modal-add-event .modal-body');

		$('#modal-error').delay('1500').fadeOut(700,function() {

			$(this).remove();

		});

	}

	

	

};

