var message = {
	title	: 'message_title',
	content : 'message_content',
	field	: 'message',
	close	: 'message_close',
	login	: 'message_login',
	action	: 'message_action'
}
var action = {
	comment	: 'comentar',
	post	: 'excluir posts',
	author	: 'adicionar autor'
}

var controlProfile = new Object();
controlProfile = {
	delPost : function(post, element, recursive) {

		var ahref = $A(element.parentNode.getElementsByTagName('a'));
		var spans = $A(element.parentNode.getElementsByTagName('span'));
		var nome = $(element).previous(0).innerHTML.strip();

		var data = spans[0].innerHTML;

		if(this.confirmDel(nome, data)) {
			UtilControls.setBox(message.field);
			$(message.title).update('Excluir post');

			new Ajax.Request(UtilControls.getBaseURL() + '/usuario/delpost/', {
				method:		'post',
				postBody: 'post=' + post,
				onLoading : function() {
					$(message.content).update('Aguarde excluindo o post selecionado!');
					UtilControls.modal(true);
				},
				onComplete : function(req){
					var json = req.responseText.evalJSON();
					$(message.content).update(json.innerHTML);
					if(json.result) {
						UtilControls.modal(false, 1500);
						if(recursive == '1') {
							var total = $(element).up(1).nextSiblings().length;
							if(total > 0) {
								var current = null;
								var nextPost = true;
								var classe, images;
								var i = 0;
								do {
									current = $(element).up(1).next(i);
									classe = current.className;
									images = $A(current.getElementsByTagName('img')).length;
									if(images == 1) {
										new Effect.Fade(current);
									} else {
										nextPost = false;
									}

									i++;

									if(i == total){
										nextPost = false;
									}

								} while(nextPost);
							}
						}
						new Effect.Fade($(element.up(1)));
					} else {
						if(UtilControls.redirect(json)) {
							$(message.title).update('Login do sistema');
							$(message.action).update(action.post);
							$(message.content).update($(message.login).cloneNode(true).innerHTML);
						} else {
							UtilControls.modal(false, 2500);
						}
					}
				},
				onFailure : function(){
					alert('Ops! um erro bizarro ocorreu na transação AJAX!');
				}
			});
		}
	},

	addAuthor : function(author) {

		UtilControls.setBox(message.field);
		$(message.title).update('Autores favoritos');

		new Ajax.Request(UtilControls.getBaseURL() + '/cartao/addauthor', {
			method:		'post',
			postBody: 'author=' + author,
			onLoading : function() {
				$(message.content).update('Adicionando autor ao seus favoritos, aguarde!');
				UtilControls.modal(true);
			},
			onComplete : function(req){
				var json = req.responseText.evalJSON();
				if(!json.result) {
					if(UtilControls.redirect(json)) {
						$(message.title).update('Login do sistema');
						$(message.action).update(action.author);
						$(message.content).update($(message.login).cloneNode(true).innerHTML);
					} else {
						$(message.content).update(json.innerHTML);
						UtilControls.modal(false, 2500);
					}
				} else {
					$(message.content).update(json.innerHTML);
					UtilControls.modal(false, 2500);
				}
			},
			onFailure : function(){
				alert('Ops! um erro bizarro ocorreu na transação AJAX!');
			}
		});
	},

	addComment : function(author, id_comentario) {
		var input	= 'desc_comentario';
		var comment = 'comment_box';

		UtilControls.setBox(message.field);
		$(message.title).update('Adicionar comentário');

		if($(input)) {
			var params	= 'acao=save&usuario=' + author + '&comment=' + $F(input) + '&id_comentario=' + id_comentario;
			var load	= 'Aguarde, enviando o seu cometário!';
		} else {
			var params	= 'acao=form&usuario=' + author + '&id_comentario=' + id_comentario;
			var load	= 'Aguarde, carregando o formulário!';
		}

		new Ajax.Request(UtilControls.getBaseURL() + '/usuario/post', {
			method:	'post',
			postBody: params,
			onLoading : function() {
				$(message.content).update(load);
				UtilControls.modal(true);
			},
			onComplete : function(req){

				var json = req.responseText.evalJSON();

				if(json.result) {
					if(typeof(json.box) != 'undefined') {
						$(message.content).update(json.box);
						$(input).focus();
					} else if(typeof(json.comment) != 'undefined') {
						if($A($(comment).getElementsByTagName('a')).length == 0){
							$(comment).update();
						}
					//	new Insertion.Top($(comment), json.comment);
					//	$(message.content).update(json.innerHTML);
					//	UtilControls.modal(false, 2500);
					}
				} else {
					if(UtilControls.redirect(json)) {
						$(message.title).update('Login do sistema');
						$(message.action).update(action.comment);
						$(message.content).update($(message.login).cloneNode(true).innerHTML);
					} else {
						$(message.content).update(json.innerHTML);
						UtilControls.modal(false, 2500);
					}
				}
			},
			onFailure : function(){
				alert('Ops! um erro bizarro ocorreu na transação AJAX!');
			}
		});
	},

	confirmDel : function(nome, data) {
		var text   = 'Você tem certeza que deseja excluir o comentário de\n\n"' + nome + '"\n\npostado em\n\n"' + data + '"\n\n';
		var result = confirm(text);
	    return result;
	},

 	addContact : function(author) {
		UtilControls.setBox(message.field);
		$(message.title).update('Cadastrar Contato');

		new Ajax.Request(UtilControls.getBaseURL() + '/mensagem/contato', {
			method:		'post',
			postBody: 'author=' + author,
			onLoading : function() {
				$(message.content).update('Adicionando autor ao seus contatos, aguarde!');
				UtilControls.modal(true);
			},
			onComplete : function(req){
				var json = req.responseText.evalJSON();

				if(!json.result) {
					if(UtilControls.redirect(json)) {
						$(message.title).update('Login do sistema');
						$(message.action).update(action.author);
						$(message.content).update($(message.login).cloneNode(true).innerHTML);
					} else {
						$(message.content).update(json.innerHTML);
						UtilControls.modal(false, 2500);
					}
				} else {
					$(message.content).update(json.innerHTML);
					UtilControls.modal(false, 2500);
				}
			},
			onFailure : function(){
				alert('Ops! um erro bizarro ocorreu na transação AJAX!');
			}
		});
	},
	close : function() {
		$('message_content').update();
		UtilControls.modal(false);
	}
}


