comment = new Object();comment = {	id:null,	area: null,	item: null,	setId: function(n){		comment.id = n;	},	getId: function(){		return comment.id;	},	setArea: function(n){		comment.area = n;	},	getArea: function(){		return comment.area;	},	setItem: function(n){		comment.item = n;	},	getItem: function(){		return comment.item;	},	start: function(idArea,idItem,limit){		if (limit){			limit = limit;		}else{			limit = 30;		}		with (comment){			setArea(idArea);			setItem(idItem);			paginate.setLimit(limit);			paginate.start();			post.start();		}	},	//exibir o comentário ocultado	show: function(idComment){		global.div.Shrink('div_comment_body_'+idComment,1);		global.div.Shrink('div_comment_bottom_'+idComment,2);	},	post: {		ajax: null,		status: -1,		setStatus: function(n){			comment.post.status = n;		},		getStatus: function(){			return comment.post.status;		},		Do: function(){			if (!user.isLogged()){				gLoader.show("Você precisa estar logado para postar um comentário",'info',15);				return;			}			if (comment.post.getStatus()>-1){				//alert("O comentário está sendo postado, aguarde, por favor.");				return;			}			/*if (comment.post.getStatus()==2){				alert("Seu comentário já foi postado.");				return;			}*/			var content = comment.post.form.getContent();			if (content.length<3 || content.indexOf(comment.post.form.getDefaultText())!=-1){				gLoader.show("Preencha o comentário antes de tentar enviá-lo",'info',10);				return;			}			var ajax = gAjax('post',global.RelativeRoot() + 'misc/ajax/main.php?mode=comment_send');			ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");			ajax.setVars(global.form.CreateQuery(comment.post.form.getObj())+'&id_area='+comment.getArea()+'&id_item='+comment.getItem());			ajax.addEvent(1,'gLoader.show("Enviando comentário","progress")');			ajax.addEvent(4,'comment.post.parseDo()');			comment.post.ajax = ajax;			ajax.send();			comment.post.setStatus(0);		},		parseDo: function(){			var ajax = comment.post.ajax;			if (ajax.isResponseXML()){//ie considera um xhtml nas normas como xml				if (ajax.getQueryXML().exists('error->description')){					comment.post.setStatus(-1);					global.div.Write('div_comment_new', '');					gLoader.show('Erro: '+ajax.getQueryXML().getValue('error->description'),'info',5);					return;				}			}			var r = ajax.getResponseText();			if (r.length<35){				gLoader.show('Erro: '+r,'info',5);				comment.post.setStatus(-1);				return;			}			global.div.Write('div_comment_new', r);			global.evalScripts(r);			gLoader.show('Comentário postado. Agradecemos sua participação','info',5);			//comment.post.form.setContent("Comentário postado. Agradecemos sua participação!");			comment.post.form.setContent('');			comment.post.form.getObj().content.className = "comment_form_empty";			comment.post.setStatus(1);		},		start: function(){			if (user.isLogged()){				comment.post.form.start();			}else{				global.div.Write('div_comment_form','Você precisa efetuar o login ou criar uma conta para postar um comentário!');			}		},		form:{			obj: null,			defaultText: null,			start: function(){				with (comment.post.form){					setObj(document.forms['form_comment']);					setDefaultText("Não seja tímido, poste um comentário");					setContent(getDefaultText());					enableEvent();					getObj().content.className = "comment_form_empty";				}			},			setObj: function(o){				comment.post.form.obj = o;			},			getObj: function(){				return comment.post.form.obj;			},			setContent: function(s){				comment.post.form.getObj().content.value = s;			},			getContent: function(){				return comment.post.form.getObj().content.value;			},			setDefaultText: function(s){				comment.post.form.defaultText = s;			},			getDefaultText: function(){				return comment.post.form.defaultText;			},			enableEvent: function(){				var defaultText = comment.post.form.getDefaultText();				//foco				comment.post.form.getObj().content.onfocus = function(){					if	(comment.post.form.getContent().indexOf(defaultText)!=-1){						comment.post.form.setContent("");						this.className = "comment_form_filled";					}				}				//perder foco				comment.post.form.getObj().content.onblur = function(){					if	(comment.post.form.getContent().length<2){						comment.post.form.setContent(defaultText);						this.className = "comment_form_empty";					}				}			}		}	},	remove: {		ajax: null,		status: 0,		setStatus: function(n){			comment.remove.status = n;		},		getStatus: function(){			return comment.remove.status;		},		Do: function(id){			if (confirm("Quer mesmo remover este comentário")){				comment.setId(id);				var ajax = gAjax('get',global.RelativeRoot() + 'misc/ajax/main.php?mode=comment_remove&id=' + comment.getId());				ajax.addEvent(1,'gLoader.show("Removendo comentário","progress")');				ajax.addEvent(4,'comment.remove.parseDo()');				comment.remove.ajax = ajax;				ajax.send();			}		},		parseDo: function(){			var ajax = comment.remove.ajax;			if (!ajax.isResponseXML()){				gLoader.show(ajax.getResponseText(),'info',5);				return;			}			if (!ajax.getQueryXML().exists('attributes()->status')){				gLoader.show(ajax.getResponseText(),'info',5);				return ;			}			ajax = ajax.getQueryXML();			if (ajax.getValue('attributes()->status')=="fail"){				gLoader.show(ajax.getValue('error->description'),'info',5);			}else{				gLoader.show('Comentário removido','info',5);				global.div.Write('div_comment_'+comment.getId(),'<div class="comment"><div class="main"></div></div>');				global.evalScripts(global.div.Read('div_comment_'+comment.getId()));			}		}	},	paginate: {		ajax: null,		limit: 50,		page: 1,		firstEntry: true,		setPage: function(n){			comment.paginate.page = n;		},		getPage: function(){			return comment.paginate.page;		},		setLimit: function(n){			comment.paginate.limit = n;		},		getLimit: function(){			return comment.paginate.limit;		},		setFirstEntry: function(b){			comment.paginate.firstEntry = b;		},		isFirstEntry: function(){			return comment.paginate.firstEntry;		},		//chamada apenas se houver anchor		start: function(){			var v = global.getUrlVars();			var n = v['#page'];			if (n!=false && n>0){				page = n;				comment.paginate.Do(page);			}else{				comment.paginate.setFirstEntry(false);			}		},		Do: function(page){			if (comment.paginate.isFirstEntry()){				comment.paginate.setFirstEntry(false);			}else{				window.location.hash = 'page=' + page;			}			//se tiver postado algum comentário, ocultar			if (comment.post.getStatus()==2){				global.div.Write('div_comment_new','');			}			comment.paginate.setPage(page);			var ajax = gAjax('get',global.RelativeRoot() + 'misc/ajax/main.php?mode=comment_paginate&id_area=' + comment.getArea()+'&id_item='+comment.getItem() + '&page='+comment.paginate.getPage()+'&limit='+comment.paginate.getLimit()+'&r='+Math.random());			ajax.addEvent(1,'loadScreen("div_comment_list")');			ajax.addEvent(4,'comment.paginate.parseDo()');			comment.paginate.ajax = ajax;			ajax.send();		},		parseDo: function(){			var r = comment.paginate.ajax.getResponseText();			global.div.Write('div_comment_list',r);			global.evalScripts(r);			//filtro			new gForbiddenWords("div_comment_list");		},		comboChange: function(obj){			if (obj.value>0 && obj.value!=comment.paginate.getPage()){				comment.paginate.Do(obj.value)			}		}	},	rate: {		vote: null,		ajax: null,		setVote: function(s){			comment.rate.vote = s;		},		getVote: function(){			return comment.rate.vote;		},		Do: function(idComment,vote){			if (!user.isLogged()){				gLoader.show("Você precisa estar logado para avaliar um comentário",'info',6);				return;			}			comment.setId(idComment);			comment.rate.setVote(vote);			var ajax = new gAjax('get',global.RelativeRoot() + 'misc/ajax/main.php?mode=rate&id_area=1&id_item='+comment.getId()+'&vote='+comment.rate.getVote()+'&r='+Math.random());			ajax.addEvent(1,'gLoader.show("Enviando avaliação","progress")');			ajax.addEvent(4,'comment.rate.parseDo()');			comment.rate.ajax = ajax;			ajax.send();		},		parseDo: function(){			var ajax = comment.rate.ajax;			if (!ajax.isResponseXML()){				return;			}			ajax = ajax.getQueryXML();			if (ajax.getValue('attributes()->status')=="fail"){				gLoader.show(ajax.getValue('error->description'),'info',6);				return;			}			gLoader.show('Avaliação efetuada. Obrigado','info',6);			global.div.Write('div_comment_rate_'+comment.getId(),'');		}	}}
