figNs.index = {
	init: function() {
		// configure CKEDITOR
		CKEDITOR.config.toolbar = [
			[ 'Source', 'Templates', '-', 'ShowBlocks', '-', 'Undo', 'Redo', '-', 'Find', 'Replace' ],
			[ 'Image', 'Table', 'HorizontalRule', 'Smiley', '-', 'Link', 'Unlink' ], '/',
			[ 'Bold', 'Italic', 'Underline', 'Strike', '-', 'Subscript', 'Superscript' ],
			[ 'NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', 'Blockquote' ],
			[ 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock' ], '/',
			[ 'Format', 'Font', 'FontSize', 'TextColor', 'BGColor']
		];
		CKEDITOR.config.entities = false; // prevent CKEDITOR from create html entities
		
		// bind editing interface
		$.each($('.fig-articles').children().children('.fig-content-footer'), function(index, value) {
			$(value).children(":contains('Modifier')").click(function(evt) {
				figNs.index.edit(evt);
				return false;
			});
			$(value).children(":contains('Supprimer')").click(function(evt) {
				figNs.index.remove(evt);
				return false;
			});
		});
		$('.fig-infopanel').children(":contains('Rédiger un article')").click(function(evt) {
			figNs.index.create(evt);
			return false;
		});
	},
	
	active: {
		action:	null,
		editor:	null,
		artId: null
	},
	
	edit : function(evt) {
		if(figNs.index.active.editor) {			
			figNs.index.active.action.trigger('click');
		}
		
		var artid = $(evt.target).parent().parent().attr('id');
		
		//alert($(document.getElementById(artid)).children('.editable').attr('id'))
		figNs.index.active.artId = artid;
		figNs.index.active.action = $(evt.target);
		figNs.index.active.editor = CKEDITOR.replace($(document.getElementById(artid)).children('.editable').get(0));
		
		// remplace edition with save binding
		$(evt.target).html('Enregistrer');
		$(evt.target).unbind('click');
		$(evt.target).click(function(evt) {
			figNs.index.save(evt, artid);
			return false;
		});
	},
	
	save : function(evt) {
		// remplace save with edition binding
		$(evt.target).html('Modifier');
		$(evt.target).unbind('click');
		$(evt.target).click(function(evt) {
			figNs.index.edit(evt);
			return false;
		});
		
		// send ajax save request
		var xhr = $.ajax({
			type: 'POST',
			url: figNs.baseUrl + 'index/save',
			data:
				'article=' + figNs.index.active.artId.split('-')[1] + '&' +
				'content=' + encodeURIComponent(figNs.index.active.editor.getData())
		});
		
		// clean up persistant variables
		figNs.index.active.editor.destroy();
		figNs.index.active.editor = null;
		figNs.index.active.action = null;
	},
	
	remove : function(evt) {
		var artid = $(evt.target).parent().parent().attr('id');
		if(figNs.index.active.artId == artid) {
			figNs.index.active.editor.destroy();
			figNs.index.active.editor = null;
			figNs.index.active.action = null;
		} else {
			figNs.index.active.artId = artid;
		}
		
		var xhr = $.ajax({
			type: 'POST',
			url: figNs.baseUrl + 'index/remove',
			data: 'article=' + figNs.index.active.artId.split('-')[1],
			success: function(data) {
				if(data == 'true') {
					$(document.getElementById(figNs.index.active.artId)).remove();
				}
			}
		});
	},
	
	create : function(evt) {
		// create new article
		var newArticle = $(document.createElement('div')).attr('id', 'art-0').addClass('article')
			.append($(document.createElement('div')).addClass('editable'))
		var footer = $(document.createElement('div')).addClass('fig-content-footer');
		var saveButton = $(document.createElement('a')).attr('href', '#').html('Enregistrer');
		var cancelButton = $(document.createElement('a')).attr('href', '#').html('Annuler');
		
		$('.fig-articles').prepend(newArticle.append(footer.append(saveButton, '&nbsp;', cancelButton)));
		
		saveButton.click(function(evt) {
			figNs.index.edit(evt);
			//document.location.reload();
		});
		saveButton.trigger('click');
		
		cancelButton.click(function(evt) {
			newArticle.remove();
			return false;
		});
	}
};

$(document).ready(function() {
	figNs.index.init();
});
