$(document).ready(function() {
	$('#calendarContent').listen( 'click', 'a.eventdetail', function(){
		var eventID = $(this).attr("id");
		if (eventID == null){
			eventID = "none";
		}
		$.get("eventdisplay.php", { id: eventID }, function(data){
			$("<div id=\"content\">"+data+"</div>").modal({
				onOpen: events.display,
				onClose: events.close
			});
		});	
		return false;	
	});

	$('#calendarContent').listen( 'click', 'a.addevent', function(){
		var url = $(this).attr("href");
		$.get( url, function(data){
			$("<div id=\"content\">"+data+"</div>").modal({
				onOpen: events.display,
				onClose: events.close
			});
		});	
		return false;	
	});

	$.listen( 'click', 'a.editevent', function(){
		var formurl = $(this).attr("href");	
		$.get( formurl, function (data) {
			$('#content').fadeOut(200, function(){
				$(this).empty().append(data).fadeIn(200);
			});	
		});
		return false;
	});

	$.listen( 'click', 'button.cancel', function(){
		events.close();
		return false;
	});
	
	$.listen( 'click', 'a.deleteevent', function(){
		var url = $(this).attr("href");
		$.get( url, function(data){
			// 0-successfull delete, 1-delete failed
			if (data == "0") {
				calendar.display(null);
				events.close();
			} else if (data == "1") {
				events.message = "Delete Failed! Please try again later!";
				events.showError();
			}else{
				events.message = "Error! Please try again later!";
				events.showError();
			}
		});
		return false;
	});

	$.listen('click', 'input.submit', function(e){
		var options = { 
			type: "post", 
			dataType: "html",
			beforeSubmit: function() {
				//$('#modalContainer .title').html('Sending...');
				//$('#modalContainer .loading').fadeIn(200, function () {
			},
			success: function(data) {
				// 0-successfull insert/update, 1-insert/update failed, 2-illegal operation, 3-unauthorized
				if(data == "0") {
					calendar.display(null);
					events.close();
				} else if (data == "1") {
					events.message = "Insert Failed! Please try again later!";
					events.showError();
				} else if ( data == "2" ){
					events.message = "You are not authorized to perform this action!";
					events.showError();
				}else{
					events.message = "Error! Please try again later!";
					events.showError();
				}
			}
		};
	    $("#eventForm").ajaxSubmit(options);
	return false;
	});
});

var events = {
	message: null,
	display: function(dialog){
		dialog.overlay.fadeIn(200, function () {
			dialog.container.fadeIn(200, function () {
				dialog.data.fadeIn(200);
			});
		});
		events.message = '';
	},
	close: function (dialog) {
		if(dialog){
			dialog.data.fadeOut(200, function () {
				dialog.container.fadeOut(200, function () {
					dialog.overlay.fadeOut(200, function () {
						$.modal.close();
					});
				});
			});		
		} else {
			$('#content').fadeOut(200, function () {
				$('#modalContainer').fadeOut(200, function () {
					$('#modalOverlay').fadeOut(200, function () {
						$.modal.close();
					});
				});
			});			
		}
	},
	error: function (xhr) {
		alert(xhr.statusText);
	},
	showError: function () {
		if ($('#modalContainer .message:visible').length > 0) {
			$('#modalContainer .message div').fadeOut(200, function () {
				$('#modalContainer .message div').empty().html($('<div class="error">').append(events.message)).fadeIn(200);
			});
		} else {
			$('#modalContainer .message').animate({ height: '30px' }, function(){
				$('#modalContainer .message').html($('<div class="error">').append(events.message)).fadeIn(200);
			});
		}
	}
};