/**
 * Clase para el manejo de seguidores
 */
FOLLOWER = {
	texts: ['Cancelar seguir','Seguir'],
	css: ['folloerNok','folloerOk'],
	id:0,
	idPersona:0,
	idPersonaRelacionada:0,
	bi:0,

	/**
	 * Agrega un seguidor a una persona (puede ser bidireccional)
	 * @param int idPersona identificador de la persona logueada
	 * @param int idPersonaRelacionada identificador de la persona que se desea seguir
	 * @param int id identificador del objeto DOM
	 * @param boolean bi indica si la relacion es bidireccional
	 * @return boolean
	 */
	add:function(idPersona,idPersonaRelacionada,id,bi){
		if(id) FOLLOWER.id = id;
		if(bi) FOLLOWER.bi = bi;
		FOLLOWER.idPersona = idPersona;
		FOLLOWER.idPersonaRelacionada = idPersonaRelacionada;

		if(!LOGIN.isValid()){
			LOGIN.f = FOLLOWER.addFin;
			LOGIN.modal();
			return false;
		}else{
			if(!FOLLOWER.idPersona)	FOLLOWER.idPersona = LOGIN.getIdPersona();
			FOLLOWER.addFin();
		}
	},
	/**
	 * Metodo que lanza el ajax para guardar la relacion
	 * @param int i idPersona logeuada (este parametro viene cuando no se esta logueado y se lanza el modal de login)
	 * @return boolean
	 */
	addFin:function(i){
		if(i)	FOLLOWER.idPersona = i;
		if(!FOLLOWER.idPersona || !FOLLOWER.idPersonaRelacionada){ return false;}

		/*if(FOLLOWER.idPersona == FOLLOWER.idPersonaRelacionada){
			alert('Eu não posso guardar para mim');
			return false;
		}*/

		new Request.JSON({
			url: "../_post/ionline/follower.php",
			onSuccess: FOLLOWER.addSuccess}).get({'tipo':1,'idPersona':FOLLOWER.idPersona,'idPersonaRelacionada':FOLLOWER.idPersonaRelacionada,'id':FOLLOWER.id,'bi':FOLLOWER.bi});
	},
	/**
	 * Metodo que se llama cuando cuando termina el ajax de relacionar personas
	 * @param object r
	 */
	addSuccess:function(r){
		//verifico si hay error
		if(r.estado != 'ok')	return;

		//no hay error => cambio el texto del link y la accion
		objs = $$('.foll_'+r.id);
		if(objs){
			objs.each(function(obj){
				//cambio el texto del boton
				obj.innerHTML = FOLLOWER.texts[0];
				if(obj.hasClass(FOLLOWER.css[1]))	obj.removeClass(FOLLOWER.css[1]);
				obj.addClass(FOLLOWER.css[0]);
				//remuevo los eventos que tenga
				obj.removeEvents('click');
				obj.removeProperty('onclick');
				//le asigno el evento de quitar el seguimiento
				obj.addEvent('click',function(e){
					e.stop();
					FOLLOWER.del(r.idPersona,r.idPersonaRelacionada,r.id,r.bi);
				});
				//cambio el fondo del comentario ya q los q sigo tienen fondo gris
				o = obj.getParent('.comment');
				if(o)	o.addClass('comPerteneceRed');
				o = obj.getParent('.commentr');
				if(o)	o.addClass('comPerteneceRed');
			});
		}
	},
	/**
	 * Borra una relacion
	 * @param int idPersona identificador de la personal logueada
	 * @param int idPersonaRelacionada identificador de la persona que se desea eliminar, si es nulo => se borran todas las personas q tenga el idPersona
	 * @param int id identificador del objeto DOM
	 * @param boolean bi indica si la relacion es bidireccional
	 * @return boolean
	 */
	del:function(idPersona,idPersonaRelacionada,id,bi){
		if(confirm('Tem certeza?')){
			if(!idPersona || !idPersonaRelacionada){alert('bu');	return false;}
			if(!id) id = 0;
			if(!bi) bi = 0;
			new Request.JSON({
				url: "../_post/ionline/follower.php",
				onSuccess: FOLLOWER.delSuccess}).get({'tipo':0,'idPersona':idPersona,'idPersonaRelacionada':idPersonaRelacionada,'id':id,'bi':bi});
		}
	},

	delSuccess:function(r){
		//verifico si hay error
		if(r.estado != 'ok')	return;
		//no hay error => cambio el texto del link y la accion
		if($('box_seguinte')) { updateSeguidos(); }
		objs = $$('.foll_'+r.id);
		if(objs){
			objs.each(function(obj){
				//cambio el texto del boton
				obj.innerHTML = FOLLOWER.texts[1];
				if(obj.hasClass(FOLLOWER.css[0]))	obj.removeClass(FOLLOWER.css[0]);
				obj.addClass(FOLLOWER.css[1]);
				//remuevo los eventos que tenga
				obj.removeEvents('click');
				obj.removeProperty('onclick');
				//le asigno el evento de agregar el seguimiento
				obj.addEvent('click',function(e){
					e.stop();
					FOLLOWER.add(r.idPersona,r.idPersonaRelacionada,r.id,r.bi);
				});
				//cambio el fondo del comentario ya q los q sigo tienen fondo blanco
				o = obj.getParent('.comment');
				if(o)	o.removeClass('comPerteneceRed');
				o = obj.getParent('.commentr');
				if(o)	o.removeClass('comPerteneceRed');
			});
		}
	},

	nada:function(){}
}