




if (typeof(disqus_iframe_css) == 'undefined') {
	disqus_iframe_css = '';
}
if (typeof(disqus_def_name) == 'undefined') {
	disqus_def_name = '';
}
if (typeof(disqus_def_email) == 'undefined') {
	disqus_def_email = '';
}
if (typeof(disqus_skip_auth) == 'undefined') {
	disqus_skip_auth = false;
}
if (typeof(disqus_default_text) == 'undefined') {
	disqus_default_text = 'Digite seu comentário aqui.';
}

(function(){
	
	var ie = document.uniqueID
		&& document.compatMode
		&& !window.XMLHttpRequest
		&& document.execCommand ;

	try {
		if(!!ie) {
			document.execCommand("BackgroundImageCache", false, true);
		}
	} catch(e) {};
})();

var Dsq = new function() {
	this.container = document.getElementById('dsq-content');
	this.jsonData = {"reactions": [], "has_more_reactions": false, "users": {"ed57785f460a76baa33fa763de383c62": {"username": "Alex", "tumblr": "", "display_name": "Alex", "url": "http://disqus.com/guest/ed57785f460a76baa33fa763de383c62/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "09fe01f5deaee88a2adee16715760e3c": {"username": "ricmagus", "tumblr": "", "display_name": "ricmagus", "url": "http://disqus.com/guest/09fe01f5deaee88a2adee16715760e3c/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "ae19199f43b26e7eba2ca2dc5613f7c3": {"username": "Fernando", "tumblr": "", "display_name": "Fernando", "url": "http://disqus.com/guest/ae19199f43b26e7eba2ca2dc5613f7c3/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "d5ae7daf9bb8c3d0105252be81386bfe": {"username": "Willian Rosa", "tumblr": "", "display_name": "Willian Rosa", "url": "http://disqus.com/guest/d5ae7daf9bb8c3d0105252be81386bfe/", "registered": false, "linkedin": "", "blog": "http://www.tecnow.info/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "ef18030b1fb84515296f4937f8b9a9cc": {"username": "Oct\u00e1vio Augusto", "tumblr": "", "display_name": "Oct\u00e1vio Augusto", "url": "http://disqus.com/guest/ef18030b1fb84515296f4937f8b9a9cc/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "8f6479dc2b7fc25a433b28751ae198b1": {"username": "chrystoffer", "tumblr": "", "display_name": "chrystoffer", "url": "http://disqus.com/guest/8f6479dc2b7fc25a433b28751ae198b1/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "09d543834c986569b899b879f0b57a03": {"username": "Felipe", "tumblr": "", "display_name": "Felipe", "url": "http://disqus.com/guest/09d543834c986569b899b879f0b57a03/", "registered": false, "linkedin": "", "blog": "http://strangerinmylife.wordpress.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "ghedin": {"username": "ghedin", "tumblr": "", "display_name": "Rodrigo Ghedin", "url": "http://disqus.com/ghedin/", "registered": true, "linkedin": "", "blog": "http://sobre.rodrigoghedin.com.br/", "remote_domain": null, "points": 132, "facebook": "", "avatar": "http://media.disqus.com/uploads/users/70/6864/avatar92.jpg", "delicious": "", "is_remote": false, "verified": true, "flickr": "", "twitter": "", "remote_domain_name": ""}, "b0d2a0a0548a817b66dc7d63314dc3b1": {"username": "Merc\u00fario", "tumblr": "", "display_name": "Merc\u00fario", "url": "http://disqus.com/guest/b0d2a0a0548a817b66dc7d63314dc3b1/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "23c290403e5cfb93887430441c6bf014": {"username": "Paulo Ricardo", "tumblr": "", "display_name": "Paulo Ricardo", "url": "http://disqus.com/guest/23c290403e5cfb93887430441c6bf014/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "cdd84b68ab50bc7c37a40bdef5c60177": {"username": "elsonjunior0110", "tumblr": "", "display_name": "elsonjunior0110", "url": "http://disqus.com/guest/cdd84b68ab50bc7c37a40bdef5c60177/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "74664ce7f7f8b4d873339984844741fe": {"username": "carlos", "tumblr": "", "display_name": "carlos", "url": "http://disqus.com/guest/74664ce7f7f8b4d873339984844741fe/", "registered": false, "linkedin": "", "blog": "http://entrepixels.com/", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}, "c67a7bb4f978798c40631f75e1546a2e": {"username": "Beco", "tumblr": "", "display_name": "Beco", "url": "http://disqus.com/guest/c67a7bb4f978798c40631f75e1546a2e/", "registered": false, "linkedin": "", "blog": "", "remote_domain": null, "points": null, "facebook": "", "avatar": "http://media.disqus.com/images/noavatar92.png", "delicious": "", "is_remote": false, "verified": false, "flickr": "", "twitter": "", "remote_domain_name": ""}}, "forum": {"use_media": true, "name": "WinAjuda", "streaming_realtime": false, "url": "winajuda", "allow_anon_post": true, "reactions_enabled": true, "reply_position": 0, "show_avatar": true, "allow_anon_votes": true, "disqus_auth_disabled": false}, "realtime_enabled": false, "request": {"username": "", "is_global_moderator": false, "sharing": {}, "sort": 4, "forum": "winajuda", "is_initial_load": true, "is_authenticated": false, "timestamp": "2009-12-22_10:10:31", "remote_domain": "", "page": 1, "is_moderator": false, "display_username": "", "points": null, "subscribe_on_post": 2, "moderator_can_edit": false, "is_remote": false, "is_verified": false, "missing_perm": "locked"}, "realtime_paused": false, "posts": {"16135552": {"up_voted": false, "ip": "", "has_replies": false, "message": "antes lan\u00e7ar uma versao de 15 em 15 dias e corrigir os bugs do que deixa-los passar :P<br>firefox sempre :)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-02_20:09:04", "killed": false, "user_key": "8f6479dc2b7fc25a433b28751ae198b1", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135553": {"up_voted": false, "ip": "", "has_replies": false, "message": "foram mais rapidos que a microsoft....", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-02_23:01:57", "killed": false, "user_key": "09fe01f5deaee88a2adee16715760e3c", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135554": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"foram mais rapidos que a microsoft\u2026.\"<br><br>O que nem todos sabem \u00e9 que os boletins de seguran\u00e7a referentes as atualiza\u00e7\u00d5es mensais que o IE recebe, apesar de darem destaque as corre\u00e7\u00f5es de seguran\u00e7a, tamb\u00e9m incluem uma parte um pouco escondida a respeito de corre\u00e7\u00f5es n\u00e3o especificamente relacionadas a seguran\u00e7a. E todo boletim mensal inclui centenas das mesmas.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-02_23:43:26", "killed": false, "user_key": "cdd84b68ab50bc7c37a40bdef5c60177", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135555": {"up_voted": false, "ip": "", "has_replies": false, "message": "Como, exemplo, vejam esta se\u00e7\u00e3o do KB do boletim de seguran\u00e7a do IE de outubro/2007: -http://support.microsoft.com/kb/939653 &gt; clique em \"Non-security-related fixes that are included in this security update\".", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-02_23:46:32", "killed": false, "user_key": "cdd84b68ab50bc7c37a40bdef5c60177", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135556": {"up_voted": false, "ip": "", "has_replies": false, "message": "na verdade foi um teste. postei esse comentario pra ver a rea\u00e7\u00e3o, e como esperava, a\u00ed est\u00e1.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-02_23:53:40", "killed": false, "user_key": "09fe01f5deaee88a2adee16715760e3c", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135557": {"up_voted": false, "ip": "", "has_replies": false, "message": "O que exatamente voc\u00ea est\u00e1 testando ao postar coment\u00e1rios falaciosos a respeito da Microsoft?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-03_01:10:50", "killed": false, "user_key": "cdd84b68ab50bc7c37a40bdef5c60177", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135558": {"up_voted": false, "ip": "", "has_replies": false, "message": "voce ficou nervoso por eu falar mal da microsoft n\u00e3o? a resposta t\u00e1 mais que evidente...<br><br>olha, uso produtos da microsoft desde meu primeiro pc. assim como de outras companias. mas da\u00ed a levantar uma bandeira \"ista\" para uma empresa, e atacar quem n\u00e3o tem a mesma opini\u00e3o, ja acho um pouco demais. postei aquele comentario como uma aposta com um amigo. disse a ele \"duvida quanto, que se eu postar um comentario subliminar alguem vai tentar me atacar?\". ele riu de mim, mas tirou o chap\u00e9u quando eu mostrei que estava certo.<br><br>e s\u00f3 rpa finalizar: no dia que a microsoft, ou qualquer outra empresa pagar minhas contas no fim do mes, meus estudos, der casa, comida e tudo que eu tiver direito... nesse dia, quem sabe, eu at\u00e9 defenda uma empresa como vc faz. \u00e9 s\u00f3", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-03_01:45:38", "killed": false, "user_key": "09fe01f5deaee88a2adee16715760e3c", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135559": {"up_voted": false, "ip": "", "has_replies": false, "message": "Eu n\u00e3o ataquei \"voc\u00ea\". Ataquei seu coment\u00e1rio falacioso.<br><br>E quanto a defender a Microsoft, farei isto enquanto for do meu AGRADO. Se n\u00e3o fosse, n\u00e3o faria, portanto pode parar com suas recomenda\u00e7\u00f5es. Assim como agrada imensamente a alguns aqui atac\u00e1-la irracionalmente, agrada-me ainda mais defend\u00ea-la destes ataques racionalmente.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-03_02:25:20", "killed": false, "user_key": "cdd84b68ab50bc7c37a40bdef5c60177", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135560": {"up_voted": false, "ip": "", "has_replies": false, "message": "pelo menos a mozilla d\u00e1 corre\u00e7\u00f5es de bugs para todo mundo... nao s\u00f3 para quem paga :P", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-03_06:19:51", "killed": false, "user_key": "8f6479dc2b7fc25a433b28751ae198b1", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135561": {"up_voted": false, "ip": "", "has_replies": false, "message": "Chrystoffer,<br>A Microsoft disponibiliza corre\u00e7\u00f5es de seguran\u00e7a mesmo para usu\u00e1rios do Win Pirata.<br><br>Quanto ao coment\u00e1rio do ricmagus, mais especificamente na parte \"o dia que a Microsoft pagar minhas contas...\", bom, nada mais do que um coment\u00e1rio de esquerdista, mostrando que tem raiva da empresa s\u00f3 por ser um simbolo de sucesso mundial, ao contr\u00e1rio da Mozilla que na minha opini\u00e3o \u00e9 um simbolo de engana\u00e7\u00e3o, pois, enquanto voc\u00eas defendem a mozilla achando que eles s\u00e3o bonzinhos, mais bonzinhos que a Microsoft, eles est\u00e3o ganhando milh\u00f5es com a busca do google no navegador deles<br><br><a href=\"http://www.firefoxmyths.com\" rel=\"nofollow\">www.firefoxmyths.com</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-03_09:42:55", "killed": false, "user_key": "ef18030b1fb84515296f4937f8b9a9cc", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135562": {"up_voted": false, "ip": "", "has_replies": false, "message": "Os coment\u00e1rios do ricmagus s\u00e3o dispens\u00e1veis. Ele que v\u00e1 l\u00e1 para Cuba.<br><br>Agora sobre o Firefox Myths eu acho uma parte engra\u00e7ada:<br><br>\"Firefox fully supports the most important W3C Standards\"<br><br>Da\u00ed postam um screenshot do FF 2 e a renderiza\u00e7\u00e3o defeituosa do teste e logo em seguida a renderiza\u00e7\u00e3o perfeita do Opera. Ok, blabla... Eu acho que faltou a renderiza\u00e7\u00e3o do IE 7 para ficar bonito, n\u00e3o acha?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-03_13:49:14", "killed": false, "user_key": "c67a7bb4f978798c40631f75e1546a2e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135563": {"up_voted": false, "ip": "", "has_replies": false, "message": "Isso \u00e9 verdade. O Firefox n\u00e3o renderiza perfeitamente. Fiz o teste aqui e o \u00fanico que passou no W3C foi o Konqueror.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-03_13:59:29", "killed": false, "user_key": "09d543834c986569b899b879f0b57a03", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135564": {"up_voted": false, "ip": "", "has_replies": false, "message": "Passou no teste Acid2.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-03_14:28:42", "killed": false, "user_key": "c67a7bb4f978798c40631f75e1546a2e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135565": {"up_voted": false, "ip": "", "has_replies": false, "message": "Isso isso!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-03_14:31:01", "killed": false, "user_key": "09d543834c986569b899b879f0b57a03", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135566": {"up_voted": false, "ip": "", "has_replies": false, "message": "Sobre o site FirefoxMyths, \u00e9 um argumento t\u00edpico de um fanboy do IE em \u00eaxtase de t\u00e3o alienado. Sequer l\u00eaem os fatos apresentados no site, pois se n\u00e3o n\u00e3o postariam tamanha bobagem. Eu at\u00e9 recomendo a leitura deste site, chega a ser um passatempo de t\u00e3o c\u00f4mico. O mito \"Firefox is not a Religion\" \u00e9 o melhor deles. Leitura garantida, melhor que assistir Zorra Total. ;)<br><br>Para quem ainda acredita neste site, ou melhor, neste mito sobre mitos, d\u00e1 um conferida aqui: <a href=\"http://nanobox.chipx86.com/blog/2005/12/re-firefox-myths.php\" rel=\"nofollow\">http://nanobox.chipx86.com/blog/2005/12/re-fire...</a><br><br>E ponto final. N\u00e3o h\u00e1 um mito verdadeiro no site. Basta usar o Google para comprovar, ningu\u00e9m aqui \u00e9 um Oct\u00e1vio Augusto ou elsonjunior0110 para ter pregui\u00e7a/medo de saber a verdade. H\u00e1 inclusive, nos logs da Wikip\u00e9dia (sobre o artigo Mozilla Firefox) uma imensa comprova\u00e7\u00e3o destes fatos.<br><br>Sobre o Adic2, desde o Alpha 2 do Firefox 3 o teste j\u00e1 \u00e9 100% renderizado.<br><br>[]'s", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-03_17:03:50", "killed": false, "user_key": "23c290403e5cfb93887430441c6bf014", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135567": {"up_voted": false, "ip": "", "has_replies": false, "message": "Uma boa leitura:<br><a href=\"http://www.zerozen.com.br/\" rel=\"nofollow\">http://www.zerozen.com.br/</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-03_17:10:31", "killed": false, "user_key": "c67a7bb4f978798c40631f75e1546a2e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135569": {"up_voted": false, "ip": "", "has_replies": false, "message": "Bem, vou expor minha opini\u00e3o:<br><br>Uso o FF desde a vers\u00e3o 1.0 em 2004.<br><br>Desde que o conheci, percebi a vantagem que ele tinha sobre o IE, tanto em recursos, velocidade e seguran\u00e7a - sendo que o tornei meu navegador padr\u00e3o at\u00e9 \"liberarem o Opera\"<br><br>Infelizmente na \u00e9poca o Opera era shareware,s\u00f3 vim a conhecer as qualidades dele ap\u00f3s as vers\u00f5es 9.x<br><br>Hoje, a realidade \u00e9 diferente: muita gente usa o FF (at\u00e9 leigos que receberam indica\u00e7\u00f5es e gostaram), mas o FF est\u00e1 come\u00e7ando a \"mancar\" na seguran\u00e7a, pelo mesmo motivo do IE<br><br><br>Resumo: hoje migrei para o K-Meleon 2.0, muito leve e r\u00e1pido para a discada, e para quando vou fazer downloads e acessar os feeds, \u00e9 Opera USB 9.24 na cabe\u00e7a !!!<br><br>Coitado do FF, quem diria que um dia ia ficar parecido com o IE !!!!<br><br>Quem quiser experimentar o K-Meleon, recomendo:<br><br><a href=\"http://kmeleon.alojagratis.org/\" rel=\"nofollow\">http://kmeleon.alojagratis.org/</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-03_20:11:53", "killed": false, "user_key": "ae19199f43b26e7eba2ca2dc5613f7c3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135570": {"up_voted": false, "ip": "", "has_replies": false, "message": "Fernando,<br><br>Eu mesmo j\u00e1 discuti v\u00e1rias vezes sobre o Firefox Myths na Wikipedia. Sempre venci a discuss\u00e3o quando a mesma se restringia a argumenta\u00e7\u00e3o relativa aos navegadores e n\u00e3o a ataques pessoais. Os textos do Firefox Myths s\u00e3o praticamente 100% verdadeiros: todos os mitos l\u00e1 apresentados s\u00e3o reais. Isto fica evidente quando discute-se em car\u00e1ter argumentativo, o problema \u00e9 que fanboys inchados do navegador Firefox quase sempre partem para ataques pessoais.<br><br>Com rela\u00e7\u00e3o ao \"Firefox is not a religion\" trata-se de um mito verdadeiro, pois mesmo que a religi\u00e3o do Firefox seja apenas uma brincadeira dos desenvolvedores (os livros apocal\u00edpticos inclusos e todo o incentivo a sua ado\u00e7\u00e3o que chega a se assemelha ao que alguns adeptos de determinadas religi\u00f5es \"reais\" fazem), ela \u00e9 real, ainda que em car\u00e1ter humor\u00edstico.<br><br>\"Sobre o Adic2, desde o Alpha 2 do Firefox 3 o teste j\u00e1 \u00e9 100% renderizado.\"<br><br>Alpha 2 da vers\u00e3o 3 \u00e9 apenas uma mera vers\u00e3o inicial de testes, s\u00f3 conta se a vers\u00e3o final passar.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-03_20:35:42", "killed": false, "user_key": "cdd84b68ab50bc7c37a40bdef5c60177", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135571": {"up_voted": false, "ip": "", "has_replies": false, "message": "Ah, que palha\u00e7ada, os caras colocam um piada no programa, depois alguns engra\u00e7adinhos criam sites tipo \"Kill Bill's Browser\" e o treco vira religi\u00e3o? Essa n\u00e3o d\u00e1 para engolir. Pode falar tudo, que o Firefox tem falhas de seguran\u00e7a, que tem poucos recursos (para mim n\u00e3o), que muitos desses recursos existiam no Opera muito antes (sim), etc, agora essa hist\u00f3ria de religi\u00e3o... fala s\u00e9rio, Elson (deve ser seu nome)!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-03_20:48:24", "killed": false, "user_key": "c67a7bb4f978798c40631f75e1546a2e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135572": {"up_voted": false, "ip": "", "has_replies": false, "message": "Como eu j\u00e1 disse Beco, trata-se de uma religi\u00e3o meramente humor\u00edstica obviamente, mas n\u00e3o deixa de ser teoricamente \"religi\u00e3o\": envolve f\u00e9, hist\u00f3rias m\u00edticas adaptadas do apocalipse e adeptos fan\u00e1ticos que, mesmo por bricandeira, conclamam outros a professar f\u00e9 no browser \"salvador\".<br><br>N\u00e3o fique t\u00e3o nervoso com isso, religi\u00f5es humor\u00edticas s\u00e3o relativamente comuns, vide a do espaguete voador por exemplo.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-03_21:09:13", "killed": false, "user_key": "cdd84b68ab50bc7c37a40bdef5c60177", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135573": {"up_voted": false, "ip": "", "has_replies": false, "message": "Convenhamos que n\u00e3o d\u00e1 para criticar o Firefox por isso.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-03_21:19:36", "killed": false, "user_key": "c67a7bb4f978798c40631f75e1546a2e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135574": {"up_voted": false, "ip": "", "has_replies": false, "message": "Isso n\u00e3o \u00e9 uma cr\u00edtica, Beco. Nem tudo no Firefox Myths s\u00e3o cr\u00edticas a este navegador, l\u00e1 apenas consta verdades (ou desmistifica\u00e7\u00e3o) de mitos sobre o Firefox ditos e repetidos por alguns.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-03_21:40:30", "killed": false, "user_key": "cdd84b68ab50bc7c37a40bdef5c60177", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135575": {"up_voted": false, "ip": "", "has_replies": false, "message": "Riem, \u00e9 melhor do que chorar. :D<br><br>\"Eu mesmo j\u00e1 discuti v\u00e1rias vezes sobre o Firefox Myths na Wikipedia. Sempre venci a discuss\u00e3o quando a mesma se restringia a argumenta\u00e7\u00e3o relativa aos navegadores e n\u00e3o a ataques pessoais. Os textos do Firefox Myths s\u00e3o praticamente 100% verdadeiros: todos os mitos l\u00e1 apresentados s\u00e3o reais. Isto fica evidente quando discute-se em car\u00e1ter argumentativo, o problema \u00e9 que fanboys inchados do navegador Firefox quase sempre partem para ataques pessoais.\"<br><br>Pois \u00e9, sempre venceu \u00e0 ponto de levar um presta aten\u00e7\u00e3o da administra\u00e7\u00e3o da Wikip\u00e9dia lus\u00f3fona. Resultado? Link removido.<br>Os mitos s\u00e3o t\u00e3o verdadeiros que foram criados. Isto, tirados de fontes nada prest\u00e1veis para se qualificar mitos. \u00c9 bem simples de se fazer um AnythingMyths: escolha o tema, invente v\u00e1rias afirma\u00e7\u00f5es falsas sobre este tema, dissemine-as pela Web e pronto, basta contestar suas pr\u00f3prias mentiras com suas pr\u00f3prias verdades. Viram? Fant\u00e1stico!<br><br>Vejam se os pseudo-mitos citam como fonte alguma informa\u00e7\u00e3o da pr\u00f3pria Mozilla. Sim, agora pergunte: WTF? Um monte de texto de que n\u00e3o possui nenhum valor.<br><br>Tenha santa paci\u00eancia... E ainda t\u00eam coragem de indicar este site como contra-argumento em alguma discuss\u00e3o. Tem que ter coragem!<br><br>\u00c9 tanto xiitismo que daqui a pouco o GdP vira GdX.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-03_22:21:43", "killed": false, "user_key": "23c290403e5cfb93887430441c6bf014", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135576": {"up_voted": false, "ip": "", "has_replies": false, "message": "\u00c9 tanta argumenta\u00e7\u00e3o e contra-argumenta\u00e7\u00e3o que aqui est\u00e1 parecendo um site do  curso de \"DIREITO\"<br><br>Se uma simples not\u00edcia de atualiza\u00e7\u00e3o de programa (que \u00e9 uma coisa comum hoje em dia) d\u00e1 um que falar deste, imagine ent\u00e3o uma coisa mais s\u00e9ria, como tipo: gasto$ para a Copa: que \u00e9 que  pagar car\u00edssimo pelo p\u00e3o e circo ? o contribuinte!<br><br>Quanto \u00e0 navegadores, tanto faz. Gosto de todos, uso todos, cada um tem uma caracter\u00edstica peculiar, mas prefiro ficar afastado das opini\u00f5es da maioria.<br><br>Continuo com o K-Meleon 2.0<br><a href=\"http://kmeleon.alojagratis.org/\" rel=\"nofollow\">http://kmeleon.alojagratis.org/</a>", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-03_22:43:04", "killed": false, "user_key": "ae19199f43b26e7eba2ca2dc5613f7c3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135577": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"Pois \u00e9, sempre venceu \u00e0 ponto de levar um presta aten\u00e7\u00e3o da administra\u00e7\u00e3o da Wikip\u00e9dia lus\u00f3fona. Resultado? Link removido.\"<br><br>Vamos contar a hist\u00f3ria verdadeira, por favor? O link foi removido porque a administra\u00e7\u00e3o da Wikipedia lusa (administra\u00e7\u00e3o a qual \u00e9 majoritariamente falha, parcial, esquerdista e opressora, mas isto n\u00e3o vem ao caso) notou corretamente que havia um excesso de links extras no artigo Firefox. Juntamente com o link para o Firefox Myths, foram removidos diversos outros que n\u00e3o eram \u00fateis ao artigo em si. Al\u00e9m disso, pelo fato do Firefox Myths N\u00c3O ser um site especificamente de cr\u00edtica ao Firefox, n\u00e3o havia necessidade de mant\u00ea-lo como exemplo de \"cr\u00edticas ao Firefox\".<br><br>\"Os mitos s\u00e3o t\u00e3o verdadeiros que foram criados. Isto, tirados de fontes nada prest\u00e1veis para se qualificar mitos. \u00c9 bem simples de se fazer um AnythingMyths: escolha o tema, invente v\u00e1rias afirma\u00e7\u00f5es falsas sobre este tema, dissemine-as pela Web e pronto, basta contestar suas pr\u00f3prias mentiras com suas pr\u00f3prias verdades. Viram? Fant\u00e1stico!\"<br><br>Incorreto. A parte referente aos mitos possui links que confirmam que ele s\u00e3o realmente reais. Estes links, no caso dos mitos espalhados por fanboys do firefox, geralmente d\u00e3o para onde estes fanboys fazem sua propaganda tipicamente esquerdista mentirosa: posts em f\u00f3rums, blogs, etc.<br><br>\"Vejam se os pseudo-mitos citam como fonte alguma informa\u00e7\u00e3o da pr\u00f3pria Mozilla. Sim, agora pergunte: WTF? Um monte de texto de que n\u00e3o possui nenhum valor.\"<br><br>Os mitos geralmente n\u00e3o v\u00eam \"oficialmente\" da Mozilla. Em geral, os mitos s\u00e3o mentiras contadas por fan\u00e1ticos (fanboys) deste navegador com finalidade \u00fanica de aumentar sua taxa de ado\u00e7\u00e3o. Por isto s\u00e3o colocados como \"fonte do mito\" links para sites onde pode-se ver os fanboys espalhando-os: como disse anteriormente, blogs, posts em foruns e no sempre farto Spread Firefox.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-03_22:55:31", "killed": false, "user_key": "cdd84b68ab50bc7c37a40bdef5c60177", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135578": {"up_voted": false, "ip": "", "has_replies": false, "message": "Volto a dizer: o Firefox Myhts n\u00e3o deprecia o Firefox, ele apenas conta a verdade sobre as mentiras que s\u00e3o frequentemente ditas a respeito do mesmo. N\u00e3o \u00e9 um site especificamente de cr\u00edticas a este navegador, mas sim um site repleto de contra-respostas \u00e0s mentiras espalhadas sobre este navegador, e cujo foco principal mant\u00e9m-se nas mentiras com inten\u00e7\u00e3o de aumentar a taxa de ado\u00e7\u00e3o do mesmo, as quais s\u00e3o ditas com relativa frequ\u00eancia por alguns usu\u00e1rios fan\u00e1ticos deste navegador (fanboys).", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-03_23:09:56", "killed": false, "user_key": "cdd84b68ab50bc7c37a40bdef5c60177", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135579": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"A parte referente aos mitos possui links que confirmam que ele s\u00e3o realmente reais.\"<br><br>Voc\u00ea n\u00e3o pode afirmar algo que n\u00e3o sabe. Um usu\u00e1rio s\u00e3o do Firefox jamais postaria tamanhas asneiras como os mitos relatados neste site da pior qualidade. Todos os mitos foram inventados, n\u00e3o h\u00e1 outra raz\u00e3o. Nem o mais leigo dos usu\u00e1rios criaria aquilo.<br><br>T\u00e1 bom ent\u00e3o. \u00c9 muito f\u00e1cil: vou registrar os dom\u00ednios <a href=\"http://windowsvistamyths.com\" rel=\"nofollow\">windowsvistamyths.com</a>, <a href=\"http://operamyths.com\" rel=\"nofollow\">operamyths.com</a> e <a href=\"http://iemyths.com\" rel=\"nofollow\">iemyths.com</a> e referenciarei todas as mentiras criadas por voc\u00ea nos posts do GdP/Orkut e as contra-argumentarei com as verdades. Fa\u00e7o um Google bombing e j\u00e1 era. Estaremos de igual para igual. Simples, n\u00e3o?", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-03_23:15:10", "killed": false, "user_key": "23c290403e5cfb93887430441c6bf014", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135580": {"up_voted": false, "ip": "", "has_replies": false, "message": "Notei j\u00e1 dois coment\u00e1rios com esta hist\u00f3ria de \"esquerdista\". Eu considero-me um liberal e a id\u00e9ia de apenas um sistema operacional popular para PCs assusta. Por isso, dentro do poss\u00edvel, ap\u00f3io e uso programas open source ou propriet\u00e1rios free (ou mesmo pagos) que venham a \"abrir\" o mercado, tirando-o um pouco da m\u00e3o Microsoft. Para ficar claro uso tanto Windows XP quanto o Ubuntu 7.04 (o upgrade para o 7.10 acontecer\u00e1 daqui uns dias).", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-03_23:15:54", "killed": false, "user_key": "c67a7bb4f978798c40631f75e1546a2e", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135581": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"Voc\u00ea n\u00e3o pode afirmar algo que n\u00e3o sabe. Um usu\u00e1rio s\u00e3o do Firefox jamais postaria tamanhas asneiras como os mitos relatados neste site da pior qualidade.\"<br><br>Eu mesmo j\u00e1 cansei de v\u00ea-los postando tais asneiras em TODOS os f\u00f3runs de inform\u00e1tica que participo. At\u00e9 em um f\u00f3rum n\u00e3o relacionado especificamente a inform\u00e1tica do qual participo, pude ver a tentativa deles de usar a \u00e1rea off-topic do f\u00f3rum para doutrinar usu\u00e1rios no firefox, usando de quase todas os mitos que o site Firefox Myths alerta serem correntes na internet.<br><br>\"Todos os mitos foram inventados, n\u00e3o h\u00e1 outra raz\u00e3o. Nem o mais leigo dos usu\u00e1rios criaria aquilo.\"<br><br>\"T\u00e1 bom ent\u00e3o. \u00c9 muito f\u00e1cil: vou registrar os dom\u00ednios <a href=\"http://windowsvistamyths.com\" rel=\"nofollow\">windowsvistamyths.com</a>, <a href=\"http://operamyths.com\" rel=\"nofollow\">operamyths.com</a> e <a href=\"http://iemyths.com\" rel=\"nofollow\">iemyths.com</a> e referenciarei todas as mentiras criadas por voc\u00ea nos posts do GdP/Orkut e as contra-argumentarei com as verdades. Fa\u00e7o um Google bombing e j\u00e1 era. Estaremos de igual para igual. Simples, n\u00e3o?\"<br><br>N\u00e3o. Primeiro, deveria citar que mentiras s\u00e3o estas que eu digo e provar que s\u00e3o, algo que voc\u00ea est\u00e1 falhando miseravelmente em fazer. Segundo, as fontes de mitos do Firefox Myths s\u00e3o as mais variadas poss\u00edveis. Neste link voc\u00ea poder\u00e1 ver tanto as fontes dos mitos quanto as fontes das contra-respostas, para confirmar isto:<br>-mywebpages.comcast.net/SupportCD/FirefoxMyths/Link_Bomb.txt", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-03_23:20:03", "killed": false, "user_key": "cdd84b68ab50bc7c37a40bdef5c60177", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135582": {"up_voted": false, "ip": "", "has_replies": false, "message": "Pe\u00e7o desculpas pois o link que postei n\u00e3o inclui as fontes dos mitos, mas apenas as fontes das contra-respostas.  Mas \u00e9 f\u00e1cil, basta acessar o <a href=\"http://firefoxmyths.com\" rel=\"nofollow\">firefoxmyths.com</a> e clicar nos links \"Example\" que v\u00eam logo ap\u00f3s a apresenta\u00e7\u00e3o do mito para confirmar a diversidade de fontes.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-03_23:23:05", "killed": false, "user_key": "cdd84b68ab50bc7c37a40bdef5c60177", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135583": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"N\u00e3o. Primeiro, deveria citar que mentiras s\u00e3o estas que eu digo e provar que s\u00e3o, algo que voc\u00ea est\u00e1 falhando miseravelmente em fazer.\"<br><br>Falhar miseravelmente \u00e9 uma caracter\u00edstica sua. At\u00e9 agora voc\u00ea disse, disse, disse e n\u00e3o nos provou nada de coisa alguma.<br><br>As mentiras todos leitores do GdP/Orkut/Wikip\u00e9dia j\u00e1 as conhecem. E espere por esperar, voc\u00ea ainda h\u00e1 de ficar famoso. Vai virar xiita-mentiroso-mor da internet brasileira.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-03_23:29:22", "killed": false, "user_key": "23c290403e5cfb93887430441c6bf014", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135584": {"up_voted": false, "ip": "", "has_replies": false, "message": "[off]<br><br>A prop\u00f3sito, voc\u00ea j\u00e1 virou discuss\u00e3o pol\u00edtica. Sua batata deve estar assando por a\u00ed... Em teu lugar eu tomaria cuidado com o que escreve na Web.<br><br><a href=\"http://falecomospoliticos.ig.com.br/fale/publico/mensagem?id=10420\" rel=\"nofollow\">http://falecomospoliticos.ig.com.br/fale/public...</a><br><br>[/off]", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-03_23:36:15", "killed": false, "user_key": "23c290403e5cfb93887430441c6bf014", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135585": {"up_voted": false, "ip": "", "has_replies": false, "message": "Parab\u00e9ns por mais uma colet\u00e2nea de ataques pessoais sem fundamento. Quanto ao assunto real que discut\u00edamos e as argumenta\u00e7\u00f5es pertinentes, foram todas infelizmente ignoradas, pois \u00e9 assim que agem fanboys: entram numa discuss\u00e3o com alguns argumentos altamente falhos, percebendo que o advers\u00e1rio est\u00e1 vencendo no campo argumentativo real, apela para repetir argumentos j\u00e1 refutados (a fim de irritar seu advers\u00e1rio) e/ou atac\u00e1-lo por via de ofensas.<br>O rid\u00edculo \"Modus operandi\" dos fanboys j\u00e1 foi plenamente desvendado.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-03_23:36:33", "killed": false, "user_key": "cdd84b68ab50bc7c37a40bdef5c60177", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135586": {"up_voted": false, "ip": "", "has_replies": false, "message": "Paulo Ricardo,<br><br>Por favor, pe\u00e7o que esta discuss\u00e3o citada no link seja mantida bem longe do Guia do PC.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-03_23:38:32", "killed": false, "user_key": "cdd84b68ab50bc7c37a40bdef5c60177", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135587": {"up_voted": false, "ip": "", "has_replies": false, "message": "Ahhh sim, vou fingir que voc\u00ea n\u00e3o postou isto. :)<br><br>Sobre o que postar ou n\u00e3o no GdP, n\u00e3o \u00e9 da tua conta. Eu cito o que quiser onde eu quiser. Est\u00e1 com vergonha? Medo? WTH?<br><br>A prop\u00f3sito, olha o que eu acabo de ler na Wikip\u00e9dia:  <a href=\"http://pt.wikipedia.org/wiki/Wikipedia:Pedidos_a_administradores/2007/10\" rel=\"nofollow\">http://pt.wikipedia.org/wiki/Wikipedia:Pedidos_...</a>.<br><br>Chateado? Ui.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-04_00:02:58", "killed": false, "user_key": "23c290403e5cfb93887430441c6bf014", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135588": {"up_voted": false, "ip": "", "has_replies": false, "message": "Ops, tira o ponto:<br><br><a href=\"http://pt.wikipedia.org/wiki/Wikipedia:Pedidos_a_administradores/2007/10\" rel=\"nofollow\">http://pt.wikipedia.org/wiki/Wikipedia:Pedidos_...</a><br><br>MPF, a\u00ed vou eu!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-04_00:03:52", "killed": false, "user_key": "23c290403e5cfb93887430441c6bf014", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135589": {"up_voted": false, "ip": "", "has_replies": false, "message": "As quest\u00f5es referentes a Wikipedia n\u00e3o deveriam ser transferidas para a discuss\u00e3o aqui no GdP porque s\u00e3o assuntos completamente diversos. Todavia, voc\u00ea pode sim fazer isto (embora creio que seja contra as regras do GdP e logo ser\u00e1 deletado por algum administrador), apenas pedi para que n\u00e3o fizesse, pois classifico tal ato como errado devido aos argumentos j\u00e1 citados.<br>E caso queira maiores informa\u00e7\u00f5es sobre \"meu caso\" na Wikipedia, acesse a minha p\u00e1gina de usu\u00e1rio l\u00e1: pt.wikipedia.org/wiki/Usu%C3%A1rio:Elsonjunior0110", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-04_00:14:25", "killed": false, "user_key": "cdd84b68ab50bc7c37a40bdef5c60177", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135590": {"up_voted": false, "ip": "", "has_replies": false, "message": "Quanto ao Ghedin deletar meu coment\u00e1rio, nem me importo. Sei que ele vai deletar, e ele sabe que eu sei disso e que todos deveriam saber. Mas eu n\u00e3o estou nem a\u00ed para isso, vai ser uma p\u00e1gina virada daqui a pouco, o que me importa \u00e9 alertar outros leitores com quem eles est\u00e3o lhe dando.<br><br>O que voc\u00ea fez ou deixou de fazer na Wikip\u00e9dia est\u00e1 aqui: <a href=\"http://pt.wikipedia.org/wiki/Especial:Contributions/Elsonjunior0110\" rel=\"nofollow\">http://pt.wikipedia.org/wiki/Especial:Contribut...</a>. Tudo registrado, sem direito de remo\u00e7\u00e3o. A prop\u00f3sito, suas contribui\u00e7\u00f5es foram encaminhadas ao SaferNet. Boa sorte.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-04_00:30:01", "killed": false, "user_key": "23c290403e5cfb93887430441c6bf014", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135591": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"MPF, a\u00ed vou eu!\"<br><br>Seria muito interessante observar qual express\u00e3o facial manifestaria em gente como Olavo de Carvalho e alguns colunistas da revista Veja como Reinaldo Azevedo ou Reinaldo Azevedo ap\u00f3s verem uma p\u00e9rola destas...", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-04_00:32:42", "killed": false, "user_key": "cdd84b68ab50bc7c37a40bdef5c60177", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135593": {"up_voted": false, "ip": "", "has_replies": false, "message": "Corre\u00e7\u00e3o: Seria muito interessante observar qual express\u00e3o facial manifestaria-se em gente como Olavo de Carvalho e alguns colunistas da revista Veja como Reinaldo Azevedo ou Diogo Mainardi ap\u00f3s verem uma p\u00e9rola destas\u2026", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-04_00:34:42", "killed": false, "user_key": "cdd84b68ab50bc7c37a40bdef5c60177", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135594": {"up_voted": false, "ip": "", "has_replies": false, "message": "a que ponto chegamos!<br><br>eu costumava acompanhar o winajuda, mas aqui t\u00e1 dificil. um lugar onde os leitores n\u00e3o tem v\u00f3z, e/ou tem medo de postar pela retalha\u00e7\u00e3o verbal que podem sofrer em seguida. ja vi muitos sites assim, muitos mesmo. e sei qual o destino deles tambem. espero que esse site aqui continue bem, pois gosto dele. mas com gente como esse elson, fica dificil. mas a vida \u00e9 assim, encontramos muita gente que n\u00e3o aceita opini\u00f5es diferentes das suas, e batem de frente. lamentavel!<br><br>obs: pode me atacar, se desejar. isso n\u00e3o muda minha opini\u00e3o a seu respeito, tampouco vai me deixar mal. essa \u00e9 minha ultima postagem aqui. n\u00e3o vale a pena discutir em um lugar que n\u00e3o d\u00e1 abertura pra isso.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-04_08:29:06", "killed": false, "user_key": "09fe01f5deaee88a2adee16715760e3c", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135595": {"up_voted": false, "ip": "", "has_replies": false, "message": "Este firefoxmyths n\u00e3o \u00e9 apenas asqueiroso por s\u00f3 falar mal do firefox<br>- n\u00e3o fala NADA a favor do FF (alguma coisa de bom ele tem, se n\u00e3o, n\u00e3o haveria milh\u00f5es de downloads)<br>- \u00e9 tendencioso e parcial a favor da micro$oft (n\u00e3o tenho nada contra - gosto do IE7)<br>- usa de mitos para desmistificar mitos<br>- \u00e9 hip\u00f3crita: fala de fanboys, mas tem um conte\u00fado fanboy (elogiar o IE6 s\u00f3 pode ser coisa de fanboy, ridiculo !!)<br>- e o pior de todos: tem um link neste \"site\" sobre mat\u00e9rias anti-cristo, questionando a exist\u00eancia de um l\u00edder que HISTORICAMENTE existiu, e at\u00e9 seus inimigos reconhecem, isto \u00e9 totalmente sem sentido.<br><br>\"Melhor visualizado em.... no navegador de sua prefer\u00eancia\"<br><br>Aonde est\u00e1 a liberdade de escolha ?? ah! retrocesso !!!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-04_10:01:46", "killed": false, "user_key": "ae19199f43b26e7eba2ca2dc5613f7c3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135596": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"n\u00e3o fala NADA a favor do FF\"<br><br>Como j\u00e1 disse anteriormente, o site se foca em mitos criados por fanboys. Sendo assim, ele acabar\u00e1 por falar a realidade destes mitos, o que para os fanboys poder\u00e1 soar como cr\u00edtica.<br><br>\"\u00e9 tendencioso e parcial a favor da micro$oft\"<br><br>A Microsoft \u00e9 citada muito esporadicamente.<br><br>\"usa de mitos para desmistificar mitos\"<br><br>Diga um pelo menos dos supostos mitos que voc\u00ea viu l\u00e1 sendo usados para desmistificar mitos.<br><br>\"\u00e9 hip\u00f3crita: fala de fanboys, mas tem um conte\u00fado fanboy\"<br><br>Errado. Acho que j\u00e1 lhe dei o M.O. dos fanboys, e o Firefox Myths n\u00e3o se adequa ao mesmo. Com rela\u00e7\u00e3o ao IE 6, gostaria de ver onde ele \u00e9 elogiado. Tudo o que vi l\u00e1 foram compara\u00e7\u00f5es reais entre o mesmo e o Firefox a fim de desmistificar mitos como, por exemplo, que o Firefox \u00e9 mais r\u00e1pido que ele.<br><br>\"e o pior de todos: tem um link neste \u201csite\u201d sobre mat\u00e9rias anti-cristo, questionando a exist\u00eancia de um l\u00edder que HISTORICAMENTE existiu, e at\u00e9 seus inimigos reconhecem, isto \u00e9 totalmente sem sentido.\"<br><br>Isto n\u00e3o vem ao caso. A exist\u00eancia real de Jesus Cristo em algum momento no passado \u00e9 algo altamente controverso, pesquisando brevemente voc\u00ea encontrar\u00e1 um grande n\u00famero de pessoas, em sua maioria ateus, que posicionam-se de maneira c\u00e9tica em rela\u00e7\u00e3o a mesma.<br><br>\"Aonde est\u00e1 a liberdade de escolha ?? ah! retrocesso !!!\"<br><br>A liberdade est\u00e1 em permitir a p\u00e1gina ser visualizada 100% em qualquer navegador!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-04_10:11:21", "killed": false, "user_key": "cdd84b68ab50bc7c37a40bdef5c60177", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135597": {"up_voted": false, "ip": "", "has_replies": false, "message": "Que o Firefox n\u00e3o \u00e9 o navegador mais seguro do mundo, todo mundo sabe. O que ningu\u00e9m (nem o mais fan\u00e1tico fanboy da MS) pode negar, \u00e9 que ele \u00e9 superior ao IE.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-04_10:16:35", "killed": false, "user_key": "09d543834c986569b899b879f0b57a03", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135598": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"O que ningu\u00e9m (nem o mais fan\u00e1tico fanboy da MS) pode negar, \u00e9 que ele \u00e9 superior ao IE.\"<br><br>\u00c9 tudo uma quest\u00e3o de aspectos. H\u00e1 aspectos onde o IE \u00e9 melhor, em outros o Firefox supera.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-04_10:30:31", "killed": false, "user_key": "cdd84b68ab50bc7c37a40bdef5c60177", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135599": {"up_voted": false, "ip": "", "has_replies": false, "message": "Caro Elson,<br><br>O que para voc\u00ea \u00e9 um mito, para mim pode ser uma realidade:<br><br>Um exemplo:<br>quase todos dizem que o Opera \u00e9 mais r\u00e1pido (n\u00e3o confunda com leve) que o Firefox:  - na pr\u00e1tica, em minha casa, isto \u00e9 um mito, isso mesmo, o FF \u00e9 pesad\u00e3o e tudo mais, mas carrega as p\u00e1ginas mais rapidamente que o Opera !!<br><br>Mito para desmistificar mito: (um deles): dizer que o IE6, \u00e9 mais r\u00e1pido que o FF n\u00e3o condiz com a realidade, isto comprovei tamb\u00e9m na pr\u00e1tica<br><br>N\u00e3o adiante acreditar nestas \"fontes\" do myth, elas s\u00e3o bem duvidosas...<br><br>Coisa que para mim \u00e9 realidade: o IE7 \u00e9 mais r\u00e1pido que o Opera (com o IE7pro), quem vai acreditar ?? para mim \u00e9 verdade pois comprovei na pr\u00e1tica<br><br>Ainda bem que descubri o K-Meleon (leve como o Opera, r\u00e1pido como o FF)<br><a href=\"http://kmeleon.alojagratis.org/\" rel=\"nofollow\">http://kmeleon.alojagratis.org/</a><br><br>Sobre seguran\u00e7a: no dia em que o Opera (amo ele) tiver o mesmo n\u00ba de usu\u00e1rios do FF ou IE, n\u00e3o ser\u00e1 t\u00e3o seguro como \u00e9 hoje.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-04_11:05:19", "killed": false, "user_key": "ae19199f43b26e7eba2ca2dc5613f7c3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135600": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"o FF \u00e9 pesad\u00e3o e tudo mais, mas carrega as p\u00e1ginas mais rapidamente que o Opera !!\"<br><br>Algumas p\u00e1ginas s\u00e3o realmente carregadas de maneira mais r\u00e1pida no FX que no Opera. Isto pode ocorrer principalmente quando o c\u00f3digo da p\u00e1gina \u00e9 ruim. Mas a maioria dos testes a este respeito indicam que a renderiza\u00e7\u00e3o da engine Presto que o Opera faz uso est\u00e1 a anos-luz daquela existente na engine Gecko do Firefox, para al\u00e9m de suportar muito mais os padr\u00f5es da W3C.<br><br>\"dizer que o IE6, \u00e9 mais r\u00e1pido que o FF n\u00e3o condiz com a realidade, isto comprovei tamb\u00e9m na pr\u00e1tica\"<br><br>O IE 6 abre mais r\u00e1pido que o FX (em plataformas Windows) e carrega, consome menos mem\u00f3ria do sistema que o FX e carrega algumas p\u00e1ginas de maneira mais r\u00e1pida (a mesma justificativa anterior: p\u00e1ginas de c\u00f3digo ruim que s\u00f3 s\u00e3o bem renderizadas com certas engines).<br><br>\"no dia em que o Opera (amo ele) tiver o mesmo n\u00ba de usu\u00e1rios do FF ou IE, n\u00e3o ser\u00e1 t\u00e3o seguro como \u00e9 hoje.\"<br><br>Isso eu devo concordar. O escrut\u00ednio a que softwares passam tende somente a aumentar quando a popularidade destes sobem.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-04_11:12:06", "killed": false, "user_key": "cdd84b68ab50bc7c37a40bdef5c60177", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135601": {"up_voted": false, "ip": "", "has_replies": false, "message": "Meu Deus, se falassem que o IE 7 abre as p\u00e1ginas mais r\u00e1pido que o Firefox, concordaria 100%, pq \u00e9 a pura verdade. Adoro o Firefox, n\u00e3o sou nenhum fanboy da Microsoft e do IE, mas isso \u00e9 fato: no IE 7 eles melhoraram muitas coisas, inclusive a velocidade de navega\u00e7\u00e3o.<br><br>Mas falar que o IE 6 \u00e9 mais r\u00e1pido foi de doer... Ai, meus bagos...", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-04_12:37:03", "killed": false, "user_key": "b0d2a0a0548a817b66dc7d63314dc3b1", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135602": {"up_voted": false, "ip": "", "has_replies": false, "message": "\"Mas falar que o IE 6 \u00e9 mais r\u00e1pido foi de doer\u2026 Ai, meus bagos\u2026\"<br><br>Como eu disse anteriormente, o IE 6 \u00e9 mais r\u00e1pido que o Firefox nas seguintes situa\u00e7\u00f5es:<br>- Inicializa\u00e7\u00e3o do navegador: tempo que leva, por exemplo, entre o clique no atalho e o aparecimento da janela.<br>- Consumo de mem\u00f3ria<br>- Abertura de p\u00e1ginas com c\u00f3digo ruim focado na engine Trident que o IE faz uso.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-04_13:05:19", "killed": false, "user_key": "cdd84b68ab50bc7c37a40bdef5c60177", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135604": {"up_voted": false, "ip": "", "has_replies": false, "message": "Se mudar algumas configura\u00e7\u00f5es internas do Firefox como<br><br>max connections - 40<br>max connections per server - 16<br>max persistent connection per server - 16<br>max persistent connection per proxy - 16<br>pipeling<br>proxy pipeling<br>pipeling maxrequests - 8<br><br>D\u00favido que voc\u00ea ache o IE7 mais r\u00e1pido que ele<br><br>Na verdade o IE7 s\u00f3 presta se tiver o add-on IE7-PRO", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-04_14:08:59", "killed": false, "user_key": "ae19199f43b26e7eba2ca2dc5613f7c3", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135605": {"up_voted": false, "ip": "", "has_replies": false, "message": "Acabou a palha\u00e7ada. Voc\u00eas n\u00e3o t\u00eam nada melhor pra fazer no domingo?<br><br>Coment\u00e1rios fechados, e ser\u00e1 discutido internamente junto \u00e0 administra\u00e7\u00e3o a possibilidade de acabar com coment\u00e1rios - em TODOS os posts. Afinal, comentar \u00e9 um direito que damos aos leitores, mas a partir do momento em que esse direito \u00e9 mal usado, passa a ser mal\u00e9fico, tanto para os leitores, quanto aos que cuidam do site.<br><br>Elson, j\u00e1 conversei milhares de vezes contigo: pare de ser radical. Sempre, sempre que h\u00e1 alguma discuss\u00e3o s\u00e9ria no site, voc\u00ea est\u00e1 envolvido. V\u00e1 viver a vida, que, por mais surpreendente que possa parecer a voc\u00ea, n\u00e3o se resume \u00e0 Microsoft. N\u00e3o v\u00ea que, com essas brigas constantes, est\u00e1 ganhando a antipatia de todos?<br><br>Espa\u00e7o para coment\u00e1rios fechado. Bom fim de domingo a todos.<br><br>[]'s!", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-04_14:28:38", "killed": false, "user_key": "ghedin", "has_been_anonymized": false, "edited": false, "author_is_moderator": true, "from_request_user": false, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": true, "is_realtime": false}, "16135549": {"up_voted": false, "ip": "", "has_replies": false, "message": "Ola, cara, realmente muito boa essa vers\u00e3o do Firefox, aqui no Mac estava usando ela, aind BETA, mas resolvi baixar o Opera, acredita que nunca tinha usado, achei muito bom, adorei o recurso das senhsa, Wand, e o Firefox eu desinstalei, mas adorei o Opera.<br><br>Abra\u00e7o.", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-02_08:40:23", "killed": false, "user_key": "d5ae7daf9bb8c3d0105252be81386bfe", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135550": {"up_voted": false, "ip": "", "has_replies": false, "message": "Que bom Ghedin, agora vc esta colocando os links de downloads para v\u00e1rios sistemas, inclusive o MAC.<br><br>E enquanto o bug \"clear\" eu acho que tive problemas com ele. Tinhas vezes que usava esse atributo no css e n\u00e3o fazia quaisquer efeitos no html. Depois da atualiza\u00e7\u00e3o ficou normal ;)", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-02_09:24:50", "killed": false, "user_key": "74664ce7f7f8b4d873339984844741fe", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}, "16135551": {"up_voted": false, "ip": "", "has_replies": false, "message": "Cuidado, ao permitir atualiza\u00e7\u00e3o para a vers\u00e3o 2.0.0.9, deixou<br>de funcionar corretamente, gerando problemas na inicializa\u00e7\u00e3o<br>do programa (meu s.o. \u00e9 win2003)...", "is_last_child": false, "can_reply": false, "down_voted": false, "real_date": "2007-11-02_11:11:57", "killed": false, "user_key": "ed57785f460a76baa33fa763de383c62", "has_been_anonymized": false, "edited": false, "author_is_moderator": false, "from_request_user": null, "votable": true, "date": "2 anos atr\u00e1s", "approved": true, "num_replies": 0, "is_first_child": false, "email": "", "parent_post_id": null, "depth": 0, "points": 0, "author_is_creator": false, "is_realtime": false}}, "integration": {"receiver_url": "", "theme": 4, "reply_position": false, "disqus_logo": false}, "timer": {"timer_url": "http://localhost:8005", "thread_id": "33213312", "user_id": "anonymous", "forum_id": "186060", "hash": -2594630342183347254}, "thread": {"total_posts": 54, "paginate": true, "per_page": 80, "slug": "firefox_2009", "num_pages": 1, "days_alive": 0, "realtime_paused": true, "id": 33213312, "num_posts": 54, "closed": true, "queued": false, "killed": false}, "reactions_limit": 10, "context": {"show_reply": false, "use_fb_connect": true, "forum_facebook_key": "49ff60b424d3928b76bcf678bdb69771", "use_yahoo": true, "subscribed": false, "use_twitter_signin": true, "use_openid": true, "realtime_speed": 5000}, "reactions_start": 0, "settings": {"debug": false, "disqus_url": "http://disqus.com", "media_url": "http://media.disqus.com"}, "media_url": "http://media.disqus.com"};
	/* */ this.jsonData.cookie_messages = {"user_created": null, "post_has_profile": null, "post_twitter": null, "post_not_approved": null}; this.jsonData.session = {"url": null, "name": null, "email": null}; /* */

	
	this.curPageId = 'dsq-comments';

	this.frames = {};
};

var disqus_popup_reference = null;

if(typeof DsqLocal == 'undefined') {
	DsqLocal = {};
}



/**
 * Dsq.Strings: UI strings
 */
Dsq.Strings = new function() {
	this.ADD_NEW_COMMENT = "Adicionar comentário";
	this.LOG_INTO_DISQUS = "Log into DISQUS";
	this.USE_MEDIA = "Usar multimídia";
	this.LOGOUT = "Logout";
	this.SHARING_OPTIONS = "Sharing options";
	this.SHARE_ON = "Share on";
	this.TWEET_THIS_COMMENT = "Tweet this comment";
	this.SHARE_ON_NEWSFEED = "Share on news feed";
	this.SEND_UPDATE_TO_YAHOO = "Send update to Yahoo!";
	this.REBLOG_ON = "Reblog on";
	this.CONFIGURE_OPTIONS = "Configure options";
	this.POST_AS = "Post as";
	this.SORT_BY = "Ordenar discussão por:";
	this.SUBSCRIBE_BY_EMAIL = "Subscribe by email";
	this.SUBSCRIBE_BY_RSS = "Subscribe by RSS";
	this.POPULAR_NOW = "Popular now";
	this.BEST_RATING = "Melhor avaliação";
	this.NEWEST_FIRST = "Recentes primeiro";
	this.OLDEST_FIRST = "Antigos primeiro";
	this.HIGHLIGHTED = "Highlighted";
	this.UNSUBSCRIBE = "Unsubscribe";
	this.REQUIRED = "Required";
	this.OPTIONAL = "Optional";
	this.YOU_ARE_COMMENTING_AS_A = "You are commenting as a";
	this.LOGIN_BELOW = "Login below";
	this.PLEASE_LOGIN_BELOW_TO_COMMENT = "Please login below to comment.";
	this.SUBSCRIBE_TO_ALL_COMMENTS_BY_EMAIL = "Subscribe to all comments by email";
	this.DO_NOT_SUBSCRIBE_TO_COMMENTS = "Do not subscribe to comments";
	this.REALTIME_UPDATING_IS = "Real-time updating is";
	this.ENABLED = "enabled";
	this.PAUSED = "paused";
	this.PAUSE = "Pause";
	this.RESUME = "Resume";
	this.SHOW = "Show";
	this.JUST_NOW = "Just now";
	this.REPLY = "responder";
	this.EDIT = "editar";
	this.FLAG = "Flag";
	this.MODERATE = "Moderate";
	this.CANCEL = "cancelar";
	this.REPLYING_TO = "Replying to";
	this.REPORT_MISSING_REACTIONS = "Report missing reactions";
	this.POST_A_COMMENT = "Post a comment";
	this.FLAG_INAPPROPRIATE_COMMENT = "Flag inappropriate comment";
	this.FLAGGED = "Flagged";
	this.NO = "Não";
	this.YES = "Sim";
	this.NEVER_MIND = "Never mind";
	this.ARE_YOU_SURE_YOU_WOULD_LIKE_TO_REPORT_THIS_COMMENT_TO_A_MODERATOR = "Are you sure you would like to report this comment to a moderator";
	this.THIS_WILL_FLAG_COMMENTS_FOR_MODERATORS_TO_TAKE_ACTION = "This will flag comments for moderators to take action";
	this.TO_RATE_PLEASE_LOG_IN = "To rate, please log in";
	this.JUST_A_MOMENT = "Just a moment...";
	this.GUEST = "Guest";
	this.NAME = "Nome";
	this.EMAIL = "E-mail";
  this.WEBSITE = "Website";
  this.IN_REPLY_TO = "in reply to";
  this.SETTINGS = "Settings";
  this.MODERATOR_OPTIONS = "Moderator options: ";
  this.MODERATE_OPTIONS = "Moderate Options";

  // Thread moderator actions
  this.CLOSE_THREAD = "Close thread";
  this.OPEN_THREAD = "Open thread";
  this.REMOVE_THREAD = "Remove thread";
  this.RESTORE_THREAD = "Restore thread";
  this.ACTIONS = "Actions";
};
// Dsq.Strings

/**
 * Dsq.FmtStrings: functions that return interpolated UI strings
 */
Dsq.FmtStrings = new function() {
	// Seems we have to use named interpolation for Django to translate. Investigate more.
	this.LOGGED_IN_AS = function(username) {
		return Dsq.Utils.interpolate('Logged in as %(username)s', {username:username});
	};

	this.LOGOUT_FROM = function(disqus) {
		return Dsq.Utils.interpolate('Logout from %(disqus)s', {disqus:disqus});
	};

	this.SHOWING_COMMENTS_FULL = function(total, num) {
		if (num === 1) {
			return Dsq.Utils.interpolate("Showing <span id='dsq-num-posts'>%(num)s</span> of <span id='dsq-total-posts'>%(total)s</span> comment", {num:num, total:total});
		} else {
			return Dsq.Utils.interpolate("Showing <span id='dsq-num-posts'>%(num)s</span> of <span id='dsq-total-posts'>%(total)s</span> comments", {num:num, total:total});
		}
	};

	this.SHOWING_COMMENTS_WITHOUT_PAGINATION = function(num) {
		if (num === 1) {
			return Dsq.Utils.interpolate("Showing <span id='dsq-num-posts'>%(num)s</span> comment", {num:num});
		} else {
			return Dsq.Utils.interpolate("Showing <span id='dsq-num-posts'>%(num)s</span> comments", {num:num});
		}
	};

	this.NUMBER_OF_COMMENTS = function(num) {
		return Dsq.Utils.interpolate(
			(num == 1
				? '%(num)s comment'
				: '%(num)s comments'
			), {num:num});
	};

	this.NUMBER_OF_LIKES = function(num) {
		return Dsq.Utils.interpolate(
			(num == 1
				? '%(num)s like'
				: '%(num)s likes'
			), {num:num});
	};

	this.NUMBER_OF_POINTS = function(num) {
		return Dsq.Utils.interpolate(
			(num == 1
				? '%(num)s point'
				: '%(num)s points'
			), {num:num});
	};
};
// Dsq.FmtStrings






Dsq.CSRF_TOKEN = '49645233e44f7d1a82290f178d2e9fa8';
Dsq.COMMENTS_RE = /(<li.*?id="?dsq-comment-(\d+)"?.*?>)((?:.|\s)*?)(<\/li>)/gim;
Dsq.POST_RE = /(<div.*?id="?dsq-comment-header-(\d+)"?.*?>)((?:.|\s)*?)(<\/div>)\s*(<div.*?class="?dsq-comment-body"?.*?>)((?:.|\s)*)(<\/div>)/gim;
Dsq.POST_BODY_RE = /\s*(<div.*?id="?dsq-comment-message-(\d+)"?.*?>)((?:.|\s)*)(<\/div>)/gim;
// HACK: Safari ends with "-->" while other browsers end with "--&gt;" as expected.
Dsq.MEDIA_POST_RE = /&lt;!--\[(.*?)\]--(?:>|&gt;)/gim;



var FragmentPacket = function(reader, writer, writer_url, is_child, receiveCallback) {
	var that = this;
	this.reader = reader;
	this.writer = writer;
	this.writer_url = writer_url;

	this.is_child = is_child || false;
	this.receiveCallback = receiveCallback;

	this._lastHash = null;

	this._accumMsg = '';

	this._lastSeqno = 0;

	this.MAX_DATA_LEN	= 1024;

	this.WAIT_TIME		= 10;

	this.READY		= 0x1;
	this.WRITING	= 0x2;
	this.FIN		= 0x4;
	this.ACK		= 0x8;

};

FragmentPacket.prototype.createListener = function() {
	var that = this;
	var listener = function() {
		that.recv();
	};
	return window.setInterval(listener, 10);
};

FragmentPacket.prototype.log = function(msg) {



};

FragmentPacket.prototype.recv = function() {
	var hash;
	if (/MSIE/.test(navigator.userAgent)) {

		hash = this.reader.name;
	} else {

		var hashIndex = this.reader.location.href.indexOf('#');
		if (hashIndex == -1) {
			return;
		}
		hash = this.reader.location.href.substring(hashIndex+1);
	}
	var flags = parseInt(hash.substring(0, 4), 10);
	var seqno = parseInt(hash.substring(4, 24), 10);
	var data  = hash.substring(24);

	if (this._lastHash !== hash) {
		this._lastHash = hash;
		this.log('recv: ' + hash);

		this.log(' flags: ' + flags);
		this.log(' seqno: ' + seqno + ' len: ' + hash.substring(4, 24).length + ' (' + hash.substring(4, 24) + ')');
		this.log(' data: ' + data + ' len: ' + data.length);

		this._lastSeqno = seqno;

		if (flags & this.WRITING) {
			this._accumMsg += data;
			this.sendFlag(this.ACK, seqno);
			if (flags & this.FIN) {
				this.log('recv finished: ' + decodeURIComponent(this._accumMsg));
				this.receiveCallback(decodeURIComponent(this._accumMsg));

				this._accumMsg = '';

				this.sendFlag(this.READY | this.ACK, this._lastSeqno);
			}
		}
	}

	return {
		flags: flags,
		seqno: seqno,
		data: data
	};
};

FragmentPacket.prototype.sendRawPacket = function(packet) {
	if (/MSIE/.test(navigator.userAgent)) {
		this.writer.name = packet;
	} else {

		this.writer.location.href = this.writer_url + '#' + packet;
	}

};

FragmentPacket.prototype.sendFlag = function(flag, seqno) {
	this.sendRawPacket(this._zerofill(flag, 4) + this._zerofill(seqno, 20));
};

FragmentPacket.prototype.send = function(msg) {
	this._send(0, encodeURIComponent(msg));
};

FragmentPacket.prototype._send = function(packetNum, msg) {
	var that = this;
	var recvBuf = this.recv();

	if (packetNum === 0) {

		if (!(recvBuf.flags & this.READY)) {
			this.log('client is not ready, waiting...');
			window.setTimeout(function() { that._send(packetNum, msg); }, this.WAIT_TIME);
			return;
		}
	} else {

		if (!( (recvBuf.flags & this.ACK) && (recvBuf.seqno === this._lastSeqno) )) {
			this.log('waiting for ack from client...');
			window.setTimeout(function() { that._send(packetNum, msg); }, this.WAIT_TIME);
			return;
		} else {
			this.log('received ack: ' + this._lastSeqno + ' ' + recvBuf.seqno);
		}
	}

	var flags = this.WRITING;
	var num_packets = Math.ceil(msg.length / this.MAX_DATA_LEN);
	this.log('num_packets: ' + num_packets);

	if (num_packets === packetNum) {

		this.log('message successfully sent!');
		this.sendFlag(this.READY | this.ACK, this._lastSeqno);
		return true;
	}

	this._lastSeqno++;

	if (packetNum == num_packets-1) {
		flags |= this.FIN;
	}

	var data = msg.substring(packetNum * this.MAX_DATA_LEN, (packetNum+1) * this.MAX_DATA_LEN);
	var packet = this._zerofill(flags, 4) + this._zerofill(this._lastSeqno, 20) + data;

	this.log('sending raw packet: ' + packet);
	this.sendRawPacket(packet);

	return this._send(packetNum + 1, msg);
};

FragmentPacket.prototype._zerofill = function(num, width) {
	var retval = num.toString();
	var retval_len = retval.length;
	for (var i = 0; i < width - retval_len; i++) {
		retval = '0' + retval;
	}
	return retval;
};

var PostMessagePacket = function(receiver, receiveCallback, id, receiverId) {
	var that = this;
	this.receiver = receiver;
	this.receiveCallback = receiveCallback;
	this.id = id;


	this.receiverId = receiverId;
};

PostMessagePacket.prototype.createListener = function() {
	var that = this;

	var listener = function(e) {

		if (!that.id) {
			that.id = e.data;
			return;
		}


		var id = e.data.split(';')[0];
		if (id !== that.id) {
			return;
		}
		var data = e.data.substring(e.data.indexOf(';') + 1);

		that.receiveCallback(data);
	};

	if (typeof window.attachEvent == 'function') {
		window.attachEvent('onmessage', listener);
	} else if (typeof window.addEventListener == 'function') {
		window.addEventListener('message', listener, false);
	} else {
		throw new Error('No method found to create event listener for PostMessagePacket.');
	}
};

PostMessagePacket.prototype.send = function(msg) {



	var needs_reget = false;
	try {
		if (typeof this.receiver.id == 'undefined' || typeof this.receiver.postMessage == 'undefined') {
			needs_reget = true;
		}
	} catch(e) {


	}
	if (needs_reget && typeof this.receiverId != 'undefined') {
		this.receiver = document.getElementById(this.receiverId).contentWindow;
	}

	var packet;
	if (!msg) {

		packet = this.id;
	} else {
		packet = this.id + ';' + msg;
	}
	this.receiver.postMessage(packet, '*');
};

PostMessagePacket._last_unique_id = null;
PostMessagePacket._get_unique_id = function() {
	var id = (new Date()).getTime();
	if (id == PostMessagePacket._last_unique_id) {
		id++;
	}
	PostMessagePacket._last_unique_id = id;
	return id.toString();
};

var JsonRpc = function() {

	this.ids = {};

	this.objectToJSON = function(obj) {
		var json = '';
		var results = [];

		if (obj === undefined || obj === null) {
			return 'null';
		}

		switch (obj.constructor) {
			case Object:
				for (var property in obj) {
					if (obj.hasOwnProperty(property)) {
						results.push(this.objectToJSON(property) + ': ' + this.objectToJSON(obj[property]));
					}
				}
				json = '{' + results.join(', ') + '}';
				break;
			case Array:
				for (var i = 0; i < obj.length; i++) {
					results.push(this.objectToJSON(obj[i]));
				}
				json = '[' + results.join(', ') + ']';
				break;
			case Number:
			case Boolean:
				json = obj.toString();
				break;
			case String:

				var specialChars = {'\b': '\\b', '\t': '\\t', '\n': '\\n', '\f': '\\f', '\r': '\\r', '\\': '\\\\'};

				json = obj.replace(/[\x00-\x1f\\]/g, function(match) {
					var ch = specialChars[match];
					return ch ? ch : '\\u00' + match.charCodeAt().toPaddedString(2, 16);
				});

				json = '"' + json.replace(/"/g, '\\"') + '"';
				break;
			default:

				json = 'null';
				break;
		}

		return json;
	};

	this.createHandler = function(send_func, registered_funcs) {
		var that = this;
		var handler = function(message) {

			try {
				var rpc = eval('(' + message + ')');
			} catch(e) {
				alert('bad JSON: ' + message);
				return;
			}
			if (rpc.method) {

				if (!registered_funcs[rpc.method]) {
					return;
				}

				var retval = registered_funcs[rpc.method].apply(null, rpc.params);
				if (rpc.id) {
					var response = {
						result: retval,
						error: null,	// TODO
						id: rpc.id
					};
					send_func(that.objectToJSON(response));
				}
			} else if(rpc.result) {

				if (!that.ids[rpc.id]) {
					return;
				}

				that.ids[rpc.id](rpc.result);
				delete that.ids[rpc.id];
			}
		};
		return handler;
	};

	this.execute = function(send_func, method, params, response_callback) {
		response_callback = response_callback || null;
		var id = (response_callback) ? (new Date()).getTime() : null;

		var request = {
			method: method,
			params: params,
			id: id
		};

		send_func(this.objectToJSON(request));

		if (id) {
			this.ids[id] = response_callback;
		}
	};
};
JsonRpc = new JsonRpc();

var ParentMessenger = function(childUrl, receiverUrl, container, receiveCallback) {


	if (navigator.userAgent.indexOf('Safari') >= 0 && parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf('Version/') + 8), 10) == 3) {
		throw new Error("unsupported.");
	} else if (window.opera) {
		throw new Error("unsupported.");
	}



	if (!receiverUrl &&
		navigator.userAgent.indexOf('Gecko') >= 0 &&
		parseFloat(navigator.userAgent.slice(navigator.userAgent.indexOf('rv:') + 3, navigator.userAgent.indexOf('rv:') + 6)) < 1.9) {
		throw new Error("unsupported.");
	}


	if (/msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent)) {


		if (document.domain == window.location.hostname) {
			receiverUrl = '';
		}
	}

	var that = this;
	this.childUrl = childUrl;
	this.receiverUrl = receiverUrl;
	this.container = container || document.body;

	this.packetHandler = null;


	this._ready = false;
	this._error = false;


	var _createReceiverForFragmentPacket = function() {

		that.receiver = document.createElement('iframe');
		that.receiver.src = receiverUrl;
		that.receiver.id = 'receiver_' + (new Date()).getTime();
		that.receiver.name = that.receiver.id;

		that.receiver.frameBorder = '0';
		that.receiver.frameSpacing = '0';
		that.receiver.style.borderStyle = 'none';

		var receiver_onload = function() {
			var receiver = document.getElementById(that.receiver.id).contentWindow;

			try {
				receiver.document.body.innerHTML = '';
			} catch(e) {

				that._error = true;
			}
			receiver.document.body.style.padding = '0px';
			receiver.document.body.style.margin = '0px';

			var child = receiver.document.createElement('iframe');
			child.id = 'child';
			child.name = 'child';
			child.src = that.childUrl;

			child.frameBorder = '0';
			child.frameSpacing = '0';
			child.style.borderStyle = 'none';
			child.style.width = '100%';
			child.style.height = '100%';
			receiver.document.body.appendChild(child);

			that.child = receiver.document.getElementById('child').contentWindow;
			that.receiver = receiver;

			that.packetHandler = new FragmentPacket(that.receiver, that.child, that.childUrl, false, receiveCallback);

			that._listener = that.packetHandler.createListener();

			that.packetHandler.sendFlag(that.packetHandler.READY, 0);

			that._ready = true;
		};

		that.receiver.onreadystatechange = function() {
			if (this.readyState == 'complete') {
				receiver_onload();
			}
		};

		that.receiver.onload = receiver_onload;







		if (Dsq.Utils.ie) {
			if (that.container.clientWidth === 0) {

				var _waitForWidth = function() {
					if (that.container.clientWidth > 0) {
						Dsq.Utils.fixIframesIE(that.container.id);
					} else {
						window.setTimeout(_waitForWidth, 100);
					}
				};
				_waitForWidth();

				that._once = false;
				that.receiver.onresize = function() {
					if (!that._once) {
						Dsq.Utils.fixIframesIE(that.container.id);
					}
					that._once = true;
				};
			}
		}

		that.container.appendChild(that.receiver);
	};


	var _createReceiverForPostMessage = function() {

		var receiver_onload = function() {

			that.packetHandler.send();
			that._ready = true;
		};

		var id = PostMessagePacket._get_unique_id();
		var receiverId = 'child_' + id;


		ParentMessenger['_receiver_onload_' + receiverId] = receiver_onload;

		that.container.innerHTML += '<iframe ' +
			'src="' + childUrl + '" ' +
			'id="' + receiverId + '" ' +
			'name="' + receiverId + '" ' +
			'onload="ParentMessenger._receiver_onload_' + receiverId +'();" ' +
			'></iframe>';

		that.receiver = document.getElementById(receiverId).contentWindow;
		that.packetHandler = new PostMessagePacket(that.receiver, receiveCallback, id, receiverId);
		that._listener = that.packetHandler.createListener();
	};

	if (typeof window.postMessage == 'function') {
		_createReceiverForPostMessage();
	} else {
		_createReceiverForFragmentPacket();
	}

};

ParentMessenger.prototype.sendMessage = function(message) {
	var that = this;
	if (!this._ready) {

		window.setTimeout(function() { that.sendMessage(message); }, 10);
		return;
	}
	this.packetHandler.send(message);
	return true;
};

Dsq.NewFrames = function(url) {
	this.url = url;
};

Dsq.NewFrames.prototype.init = function(onFailure) {
	var that = this;

	try {
		this.messenger = new ParentMessenger(this.url, Dsq.jsonData.integration.receiver_url, this.container, this.receive_callback);
	} catch(e) {
		if (typeof onFailure == 'function') {
			onFailure();
		}
	}

	if (typeof onFailure == 'function') {
		var iId = window.setInterval(function() {
			if (typeof that.messenger == 'undefined') {
				window.clearInterval(iId);
				return;
			}
			if (that.messenger._ready) {
				window.clearInterval(iId);
			} else if (that.messenger._error) {
				window.clearInterval(iId);
				onFailure();
			}
		}, 10);
	}
};

Dsq.NewFrames.prototype._execute = function(method, args, callback) {
	var that = this;
	if (typeof that.messenger == 'undefined') {
		return false;
	}
	JsonRpc.execute(
		function(msg) { that.messenger.sendMessage(msg); },
		method,
		args || [],
		callback);
	return true;
};

Dsq.ReplyFrame = function(container, parent_post_id) {
	var that = this;
	this.container = container;
	this.parent_post_id = parent_post_id;

	var sendFunc = function(msg) {

		Dsq.Debug.log('Dsq.ReplyFrame.sendFunc');
		that.messenger.sendMessage(msg);
	};


	var postComment_onSuccess = function(response) {
		Dsq.jsonData.posts[response.message.id] = response.message.post_meta;
		if (!Dsq.jsonData.users[response.message.post_meta.user_key]) {
			Dsq.jsonData.users[response.message.post_meta.user_key] = response.message.user_meta;
		}


		var reply_position = (typeof(disqus_insert_wrt_sort) == 'undefined' 
			? (Dsq.jsonData.forum.reply_position ? -1 : null) 
			: (Dsq.jsonData.request.sort == 2 ? null : -1));
		
		if (response.message.post_meta.approved) {
			Dsq.Post.insert(response.message.post_meta.parent_post_id || reply_position, response.message.id, response.message.post_meta.message);
		}

		Dsq.Templates.postComment_onSuccess(response, parent_post_id, response.message.id);
	};

	var postComment_onFailure = function(response) {
		Dsq.Popup.popModal(response.message, 'Error');
		Dsq.Templates.postComment_onFailure(response, parent_post_id, response.message.id);
	};

	var editComment_onSuccess = function(response) {
		var post_id = parent_post_id;
		var message = Dsq.$('dsq-comment-message-' + post_id);
		
		message.innerHTML = response.message;
		Dsq.Templates.toggleEdit(post_id);
		Dsq.Templates.setLoadingButton(false);
	};
	
	var editComment_onFailure = function(response) {
		var post_id = parent_post_id;
		
		Dsq.Popup.popModal('Sorry, there was an error editing this comment.', 'Edit Error');
		Dsq.Templates.toggleEdit(post_id);
		Dsq.Templates.setLoadingButton(false);
	};

	var getUserByEmail_onSuccess = function(response) {
		var msg = response.message;
		var fields = Dsq.Templates.getFormFields(parent_post_id);

		if (msg.username) {

			Dsq.Templates.lightboxAuthenticate(parent_post_id, 'login', {
				'username': msg.username,
				'display_name': msg.display_name,
				'avatar_url': msg.avatar_url,
				'verified': msg.verified,
				'email': fields.email.value
			});
		} else {

			Dsq.Templates.lightboxAuthenticate(parent_post_id, 'register');
		}
	};

	var validateAuth_onSuccess = function(response, auth_choice) {
		Dsq.Templates.postComment(parent_post_id, null, true, auth_choice);
	};

	var validateAuth_onFailure = function(response, auth_choice) {
		var pid = parent_post_id ? '-' + parent_post_id : '';
		var msg = response.message;

		if (auth_choice == 'register') {
			var fields = ['email', 'username', 'password'];

			for (var i = 0; i < fields.length; i++) {
				var field = fields[i];
				var errorDiv = Dsq.$('dsq-' + field + '-errors' + pid);

				if (msg[field]) {
					errorDiv.innerHTML = msg[field];
				} else {
					errorDiv.innerHTML = '';
				}
			}
		} else if (auth_choice == 'login') {
			Dsq.$('dsq-lightbox-errors' + pid).innerHTML = '<p>We couldn\'t log you in. Please verify your login.</p>';
		}
		
		Dsq.Templates.setLoadingButton(false);
	};

	this.receive_callback = JsonRpc.createHandler(sendFunc, {
		'postComment.onSuccess': postComment_onSuccess,
		'postComment.onFailure': postComment_onFailure,
		'editComment.onSuccess': editComment_onSuccess,
		'editComment.onFailure': editComment_onFailure,		
		'getUserByEmail.onSuccess': getUserByEmail_onSuccess,
		'validateAuth.onSuccess': validateAuth_onSuccess,
		'validateAuth.onFailure': validateAuth_onFailure,
		'reload': function() { window.location.reload(); }
	});

	this.url = Dsq.Urls.REPLY +
		'?' + (new Date()).getTime() +
		'&f=winajuda' +
		'&t=firefox_2009' +
		'&ff=' + Dsq.Thread.ff +
		'&default_text=' + encodeURIComponent(disqus_default_text) +
		'&ifrs=' + encodeURIComponent(disqus_iframe_css);
	if (this.parent_post_id) {
		this.url += '&parent_post=' + this.parent_post_id;
	}
};

Dsq.ReplyFrame.prototype = new Dsq.NewFrames(Dsq.ReplyFrame.url);

Dsq.ReplyFrame.prototype.post = function(author_name, author_email, author_url, authenticate, sharing_services, subscribe) {
	this._execute('postComment', [author_name, author_email, author_url, authenticate, sharing_services, subscribe]);
};

Dsq.ReplyFrame.prototype.edit = function(post_id, message) {
	this._execute('editComment', [post_id, message]);
};

Dsq.ReplyFrame.prototype.setState = function(parent_post_id, depth) {
	this._execute('setState', [parent_post_id, depth]);
};

Dsq.ReplyFrame.prototype.getUserByEmail = function(email) {
	this._execute('getUserByEmail', [email]);
};

Dsq.ReplyFrame.prototype.validateAuth = function(auth_choice, email, username, password) {
	this._execute('validateAuth', [auth_choice, email, username, password]);
};

Dsq.ReplyFrame.prototype.authenticateFacebook = function(session, forum_url) {
	this._execute('authenticateFacebook', [session, forum_url]);
};

	Dsq.Facebook = function() {
	var that = this;

	var handleSessionData = function(session) {

		var forum_url = Dsq.jsonData.forum.url;




		if (typeof disqus_facebook_forum != 'undefined') {
			forum_url = disqus_facebook_forum;
		}
		Dsq.frames.reply_0.authenticateFacebook(session, forum_url);
	};

	var onLogin = function() {
		FB.Connect.getSignedPublicSessionData(handleSessionData);
	};

	this.login = function() {
		FB.Connect.requireSession(onLogin, true);
	};
};
Dsq.Facebook = new Dsq.Facebook();


	






Dsq.Themes = {};

Dsq.Themes.narcissus = new function() {
	this.addPostContainer = 'dsq-form-area';
	this.textareaContainer = 'dsq-textarea-wrapper';



	
	this.header = function() {
		var comments_count, total_posts, num_posts;
		var html = '';
		var missing_perm_tmpl;

		if (Dsq.jsonData.request.missing_perm) {
			missing_perm_tmpl = Dsq.Templates.missingPermissions();
			if (missing_perm_tmpl) {
				html += '<div class="dsq-missing-permissions">' + missing_perm_tmpl + '</div>';
			}
		}

		total_posts = Dsq.jsonData.thread.total_posts;
		num_posts = Dsq.jsonData.thread.num_posts;

		if (total_posts) {
			comments_count = Dsq.FmtStrings.SHOWING_COMMENTS_FULL(total_posts, num_posts);
		} else {
			comments_count = Dsq.FmtStrings.SHOWING_COMMENTS_WITHOUT_PAGINATION(num_posts);
		}

		html += ' \
		<div id="dsq-comments-title"> \
			<h3>' + comments_count + '</h3> \
		</div> \
		';

		html += ' \
		<div class="dsq-options"> \
			<span class="dsq-item-sort">'
				+ Dsq.Strings.SORT_BY + ' \
				<select id="dsq-sort-select" onchange="Dsq.Thread.sortBy(this.value);"> \
					<option value="hot" ' + (Dsq.jsonData.request.sort == 4 ? 'selected="selected"' : '') + '>' + Dsq.Strings.POPULAR_NOW + '</option> \
					<option value="best" ' + (Dsq.jsonData.request.sort == 3 ? 'selected="selected"' : '') + '>' + Dsq.Strings.BEST_RATING + '</option> \
					<option value="newest" ' + (Dsq.jsonData.request.sort == 2 ? 'selected="selected"' : '') + '>' + Dsq.Strings.NEWEST_FIRST + '</option> \
					<option value="oldest" ' + (Dsq.jsonData.request.sort == 1 ? 'selected="selected"' : '') + '>' + Dsq.Strings.OLDEST_FIRST + '</option> \
				</select> \
				&nbsp; \
			</span> \
			<span class="dsq-subscribe-email"> \
				<img src="http://media.disqus.com/images/embed/email.png" style="width:12px;height:12px;vertical-align:middle"> \
				<span id="dsq-subscribe">'
					+ (Dsq.jsonData.context.subscribed
						? '<a href="#" onclick="Dsq.Thread.subscribe(0); return false">' + Dsq.Strings.UNSUBSCRIBE + '</a>'
						: '<a href="#" onclick="Dsq.Thread.subscribe(1); return false">' + Dsq.Strings.SUBSCRIBE_BY_EMAIL + '</a>')
				+ '</span> \
			</span> \
			<span class="dsq-subscribe-rss" style="width:12px;height:12px;vertical-align:middle"> \
				<img src="http://media.disqus.com/images/embed/bullet-feed.png" alt="" /> \
				<a href="http://winajuda.disqus.com/firefox_2009/latest.rss">' + Dsq.Strings.SUBSCRIBE_BY_RSS + '</a> \
			</span> \
		</div> \
		';

		
		
			html += Dsq.Templates.realtime();
			html += Dsq.Templates.showThreadSettings();
			html = Dsq.Templates.postBox() + html;

		
		

		return html;

	};
	
	this.footer = function() {
		var html = '';

		html += Dsq.Templates.pagination();


		html += Dsq.Templates.reactions();

		
			html += Dsq.Templates.trackbacks();
		


		if (Dsq.jsonData.request.is_global_moderator) {
 			html += ' \
				<div class="dsq-global-moderator-extras">'
					+ '<strong>shortname:</strong> ' + Dsq.jsonData.forum.url
					+ '<strong>thread id:</strong> ' + Dsq.jsonData.thread.id
					+ '<strong>thread slug:</strong> ' + Dsq.jsonData.thread.slug
				+ '</div> \
			';
		}

		return html;
	};
	
	this.realtime = function() {
		var html = '';
		
		if (Dsq.jsonData.realtime_enabled) {
			html += '<div id="dsq-realtime-options" class="dsq-options">'
					 + Dsq.Strings.REALTIME_UPDATING_IS + ' <strong id="dsq-realtime-status" style="text-transform: lowercase">' + Dsq.Strings.ENABLED + '</strong>. \
					 <a href="#" id="dsq-realtime-toggle" style="text-transform: capitalize"></a> \
					</div>';
		}

		if (!Dsq.jsonData.forum.streaming_realtime) {
			html += ' \
				<div style="display: none" id="dsq-realtime-alert" class="dsq-realtime-alert"><span id="dsq-realtime-queued"></span> <a href="#" id="dsq-realtime-show"></a></div> \
			';
		}
		
		return html;
	};

	this.showThreadSettings = function() {
		if (!Dsq.jsonData.request.is_moderator) {
			return '';
		}

		html = '<div id="dsq-thread-settings" class="dsq-thread-settings">' + Dsq.Strings.MODERATOR_OPTIONS;
		html += '<a href="#" onclick="Dsq.Thread.showSettings(); return false;">' + Dsq.Strings.SETTINGS + '</a>';
		html += '<a href="#" onclick="Dsq.Thread.showModeratorActions(); return false;">' + Dsq.Strings.MODERATE + '</a>';
		if (Dsq.jsonData.forum.reactions_enabled && Dsq.jsonData.reactions.length === 0) {
			html += '<a href="#" onclick="Dsq.Reaction.reportMissingReactions(); return false;">'
						+ Dsq.Strings.REPORT_MISSING_REACTIONS
						+ '</a>';
		}
		html +='</div>';

		return html;
	};

	this.postBox = function(post_id, use_fallback_iframe) {


		var html;
		var display_sharing_options = Dsq.jsonData.request.is_authenticated;

		if (!Dsq.jsonData.request.is_authenticated && Dsq.jsonData.forum.disqus_auth_disabled && !Dsq.jsonData.forum.allow_anon_post) {
			return '';
		}
		
		if (Dsq.jsonData.request.is_remote) {


			if (!Dsq.jsonData.request.sharing.hasOwnProperty(Dsq.jsonData.request.remote_domain)) {
				display_sharing_options = false;
			}
		}
		
		if (post_id) {
			var _meta = Dsq.jsonData.posts[post_id];
			var userData = Dsq.jsonData['users'][_meta.user_key];				
		}
		
		var pid = post_id ? '-' + post_id : '';

		var _requestUserInfo = function() {
			var html;



			var user_has_email = false;

			html = '<div class="dsq-request-user-info"> <!-- // If authenticated --> \
				<a href="' + Dsq.jsonData.settings.disqus_url + Dsq.Urls.LOGOUT + '?ctkn=' + Dsq.CSRF_TOKEN + '" class="dsq-request-user-logout">' + Dsq.Strings.LOGOUT + '</a> \
				<table> \
					<tr> \
						<td rowspan="2">'
							+ (!Dsq.jsonData.forum.disqus_auth_disabled ? '<a href="' + Dsq.jsonData.settings.disqus_url + Dsq.Urls.REQUEST_USER_PROFILE + '">' : '')
								+ '<img src="' + Dsq.Urls.REQUEST_USER_AVATAR + '" width="48" height="48" class="dsq-request-user-avatar">'
							+ (!Dsq.jsonData.forum.disqus_auth_disabled ? '</a>' : '')
						+ '</td> \
						<td class="dsq-request-user-name">'
								+ (Dsq.jsonData.request.is_remote
									 ? '<span class="dsq-badge-small dsq-badge-' + Dsq.jsonData.request.remote_domain + '">' + Dsq.jsonData.request.remote_domain + '</span>'
									 : (Dsq.jsonData.request.is_verified
											? '<span class="dsq-badge-small dsq-badge-verified">Verified</span>'
											: '<span class="dsq-badge-small dsq-badge-registered">Registered</span>'))
							+ (!Dsq.jsonData.forum.disqus_auth_disabled ? ' <a href="' + Dsq.jsonData.settings.disqus_url + Dsq.Urls.REQUEST_USER_PROFILE + '">' : '') 
								+ Dsq.jsonData.request.display_username 
							+ (!Dsq.jsonData.forum.disqus_auth_disabled ? '</a>' : '')
							+  (Dsq.jsonData.request.is_remote && user_has_email ? ' <small>(<a href="#" onclick="Dsq.Popup.remoteAccountSettings(); return false;">change settings</a>)</small>' : '')
							+  (!Dsq.jsonData.request.is_remote && !Dsq.jsonData.forum.disqus_auth_disabled ? ' <small>(<a href="' + Dsq.jsonData.settings.disqus_url + '/profile/info/" target="_blank">change name</a> ou <a href="' + Dsq.jsonData.settings.disqus_url + '/profile/avatar/" target="_blank">picture</a>)</small>' : '')
						+ '</td> \
					</tr> \
					<tr> \
						<td class="dsq-request-user-stats"> \
							<span><big>' + Dsq.jsonData.request.comments_count + '</big> ' + (Dsq.jsonData.request.comments_count == 1 ? 'comentário' : 'comments') + '</span> \
							<span><big>' + Dsq.jsonData.request.likes_count + '</big> ' + (Dsq.jsonData.request.likes_count == 1 ? 'like' : 'likes') + '</span> \
							<span><big>' + Dsq.jsonData.request.points + '</big> ' + (Dsq.jsonData.request.points == 1 ? 'point' : 'points') + '</span> \
						</td> \
					</tr> \
				</table> \
			</div> \
			';
			return html;
		};

		var _loginOptions = function() {
			var html;
			html = ' \
			<div class="dsq-authenticate"> \
				<p class="dsq-autheneticate-copy">'
				+ (Dsq.jsonData.forum.allow_anon_post
					? Dsq.Strings.YOU_ARE_COMMENTING_AS_A + ' <a class="dsq-help" title="Click for more information" href="#" onclick="Dsq.Popup.helpBadges(); return false">Guest</a>. ' + Dsq.Strings.OPTIONAL + ': ' + Dsq.Strings.LOGIN_BELOW + '.'
					: Dsq.Strings.REQUIRED + ': ' + Dsq.Strings.PLEASE_LOGIN_BELOW_TO_COMMENT + '.')
				+ '</p> \
				<ul class="dsq-login-buttons">'
					+ (!Dsq.jsonData.forum.disqus_auth_disabled ? '<li class="dsq-login-button"><a href="#" onclick="Dsq.Popup.login(); return false"><img src="http://media.disqus.com/images/themes/narcissus/login-disqus.gif" /></a></li>' : '')
					+ (Dsq.jsonData.context.use_fb_connect ? '<li class="dsq-login-button"><a href="#" onclick="Dsq.Facebook.login(); return false;"><img src="http://media.disqus.com/images/themes/narcissus/login-facebook.gif" /></a></li>' : '')
					+ (Dsq.jsonData.context.use_twitter_signin ? '<li class="dsq-login-button"><a href="#" onclick="Dsq.Twitter.startTwitterConnect(); return false"><img src="http://media.disqus.com/images/themes/narcissus/login-twitter.gif" /></a></li>' : '')
					+ (Dsq.jsonData.context.use_openid ? '<li class="dsq-login-button"><a href="#" onclick="Dsq.OpenID.requestURL(); return false" ><img src="http://media.disqus.com/images/themes/narcissus/login-openid.gif" /></a></li>' : '')
					+ (Dsq.jsonData.context.use_yahoo ? '<li class="dsq-login-button"><a href="#" onclick="Dsq.Yahoo.startYahooConnect(); return false"><img src="http://media.disqus.com/images/themes/narcissus/login-yahoo.gif" /></a></li>' : '')
				+ '</ul> \
			</div> \
			';
			return html;
		};

		if (!Dsq.jsonData.context.show_reply) {


			if (!Dsq.jsonData.request.is_authenticated) {



				return '<div id="dsq-form-area" style="display:none"><div id="dsq-textarea-wrapper"></div></div>' + _loginOptions();
			} else {
				return '';
			}
		}

		html = ' \
		<div id="' + (post_id 
			? 'dsq-reply-post-' + post_id
			: 'dsq-new-post')
		 	+ '" class="dsq-post-area"> \
			<div class="dsq-dc-logo"> \
				<a href="http://disqus.com/comments" target="_blank"><img src="http://media.disqus.com/images/themes/narcissus/disqus-logo.png"></a> \
			</div>'
			+ (post_id 
				? '<h3>' + Dsq.Strings.REPLYING_TO + ' ' + userData.display_name + '</h3>'
				: '<h3>' + Dsq.Strings.ADD_NEW_COMMENT + '</h3>')
			+ (Dsq.jsonData.request.is_authenticated 
				? _requestUserInfo()
				: _loginOptions() )
			+ '<div id="dsq-form-area' + pid + '">'
			+ '<div class="dsq-textarea"> \
				<div class="dsq-textarea-wrapper" id="dsq-textarea-wrapper' + pid + '"></div> \
			</div>'
			+ (!Dsq.jsonData.request.is_authenticated
			? ' \
			<div class="dsq-post-fields"> \
				<table> \
					<tr> \
						<td class="dsq-post-fields-left"><div class="dsq-input-wrapper"><input id="dsq-field-name' + pid + '" type="text" value="' + (disqus_def_name ? disqus_def_name : (Dsq.jsonData.session.name ? Dsq.jsonData.session.name : Dsq.Strings.NAME + '" class="dsq-placeholder')) + '" onfocus="Dsq.Templates.handlePlaceholder(event, this, \'name\')" onblur="Dsq.Templates.handlePlaceholder(event, this, \'name\')" /></div></td> \
						<td class="dsq-post-fields-right"><div class="dsq-input-wrapper"><input id="dsq-field-website' + pid + '" type="text" value="' + (Dsq.jsonData.session.url ? Dsq.jsonData.session.url : Dsq.Strings.WEBSITE + ' (' + Dsq.Strings.OPTIONAL.toLowerCase() + ')" class="dsq-placeholder') + '" onfocus="Dsq.Templates.handlePlaceholder(event, this, \'website\')" onblur="Dsq.Templates.handlePlaceholder(event, this, \'website\')" /></div></td> \
					</tr> \
					<tr> \
						<td class="dsq-post-fields-left"><div class="dsq-input-wrapper"><input id="dsq-field-email' + pid + '" type="text" value="' + (disqus_def_email ? disqus_def_email : (Dsq.jsonData.session.email ? Dsq.jsonData.session.email : Dsq.Strings.EMAIL + '" class="dsq-placeholder')) + '" onfocus="Dsq.Templates.handlePlaceholder(event, this, \'email\')" onblur="Dsq.Templates.handlePlaceholder(event, this, \'email\')" /></div></td> \
						<td class="dsq-post-fields-right"> \
							<div class="dsq-subscribe"> \
								<a href="#" onclick="Dsq.Templates.chooseSubscribe(' + post_id + '); return false" class="dsq-subscribe-menu"><span id="dsq-subscribe-select' + pid + '">' + (Dsq.jsonData.request.subscribe_on_post ? Dsq.Strings.SUBSCRIBE_TO_ALL_COMMENTS_BY_EMAIL : Dsq.Strings.DO_NOT_SUBSCRIBE_TO_COMMENTS) + '</span> <small>&#9660;</small></a> \
								<ul class="dsq-panel" id="dsq-subscribe-menu' + pid + '"> \
									<li><a href="#" onclick="Dsq.Templates.setSubscribe(2, this, ' + post_id + '); return false">' + Dsq.Strings.SUBSCRIBE_TO_ALL_COMMENTS_BY_EMAIL + '</a></li> \
									<li><a href="#" onclick="Dsq.Templates.setSubscribe(0, this, ' + post_id + '); return false">' + Dsq.Strings.DO_NOT_SUBSCRIBE_TO_COMMENTS + '</a></li> \
								</ul> \
								<input id="dsq-subscribe-on-post' + pid + '" type="hidden" value="' + Dsq.jsonData.request.subscribe_on_post + '" /> \
							</div> \
						</td> \
					</tr> \
				</table> \
			</div>'
			: '')
			+ '<div class="dsq-post-footer"> \
				<div class="dsq-sharing-options" ' + (!display_sharing_options ? 'style="display:none;"' : '') + '> \
					<button type="button" class="dsq-button-small" onfocus="document.getElementById(\'dsq-post-button' + pid + '\').focus();"><span>' + Dsq.Strings.SHARING_OPTIONS + ' <small>&#9660;</small></span></button> \
					<div class="dsq-panel"> '
						+ (Dsq.jsonData.request.sharing.twitter !== undefined
								&& Dsq.jsonData.request.sharing.twitter.enabled === true
							? '<div><input type="checkbox" id="dsq-sharing-twitter' + pid + '"'
								  + (Dsq.jsonData.request.sharing.twitter.auto === true ? 'checked=true' : '') + '/> \
									<label for="dsq-sharing-twitter' + pid + '">' + Dsq.Strings.SHARE_ON + ' Twitter</label> \
								 </div>'
							: '')
						+ (Dsq.jsonData.request.sharing.facebook
								&& (Dsq.jsonData.request.sharing.facebook.enabled === true ||
										(Dsq.jsonData.request.is_remote && Dsq.jsonData.request.remote_domain == 'facebook'))
							? '<div><input type="checkbox" id="dsq-sharing-facebook' + pid + '"'
									+ (Dsq.jsonData.request.sharing.facebook.auto === true ? 'checked=true' : '') + '/> \
									<label for="dsq-sharing-facebook' + pid + '">' + Dsq.Strings.SHARE_ON + ' Facebook</label> \
								 </div>'
							: '')
						+ (Dsq.jsonData.request.sharing.yahoo !== undefined
								&& Dsq.jsonData.request.sharing.yahoo.enabled === true
							? '<div><input type="checkbox" id="dsq-sharing-yahoo' + pid + '"'
									+ (Dsq.jsonData.request.sharing.yahoo.auto === true ? 'checked=true' : '') + '/> \
									<label for="dsq-sharing-yahoo' + pid + '">' + Dsq.Strings.SHARE_ON + ' Yahoo!</label> \
								</div>'
							: '')
						+ (Dsq.jsonData.request.sharing.tumblr !== undefined
								&& Dsq.jsonData.request.sharing.tumblr.enabled === true
							? '<div><input type="checkbox" id="dsq-sharing-tumblr' + pid + '"'
									+ (Dsq.jsonData.request.sharing.tumblr.auto === true ? 'checked=true' : '') + '/> \
									<label for="dsq-sharing-tumblr' + pid + '">' + Dsq.Strings.SHARE_ON + ' Tumblr</label> \
								 </div>'
							: '')
						+ (Dsq.jsonData.request.sharing.wordpress !== undefined
								&& Dsq.jsonData.request.sharing.wordpress.enabled === true
							? '<div><input type="checkbox" id="dsq-sharing-wordpress' + pid + '"'
									+ (Dsq.jsonData.request.sharing.wordpress.auto === true ? 'checked=true' : '') + '/> \
									<label for="dsq-sharing-wordpress' + pid + '">' + Dsq.Strings.SHARE_ON + ' Wordpress</label> \
								 </div>'
							: '')
						+ (Dsq.jsonData.request.sharing.movabletype !== undefined
							  && Dsq.jsonData.request.sharing.movabletype.enabled === true
							? '<div><input type="checkbox" id="dsq-sharing-movabletype' + pid + '"'
									+ (Dsq.jsonData.request.sharing.movabletype.auto === true ? 'checked=true' : '') + '/> \
									<label for="dsq-sharing-movabletype' + pid + '">' + Dsq.Strings.SHARE_ON + ' Movable Type</label> \
							   </div>'
							: '')
						+ (Dsq.jsonData.request.sharing.typepad !== undefined
							  && Dsq.jsonData.request.sharing.typepad.enabled === true
							? '<div><input type="checkbox" id="dsq-sharing-typepad' + pid + '"'
									+ (Dsq.jsonData.request.sharing.typepad.auto === true ? 'checked=true' : '') + '/> \
								  <label for="dsq-sharing-typepad' + pid + '">' + Dsq.Strings.SHARE_ON + ' TypePad</label> \
							   </div>'
							: '')
						+ '<div><a href="' + Dsq.jsonData.settings.disqus_url + '/profile/connections/" target="_blank" class="dsq-configure-options">' + Dsq.Strings.CONFIGURE_OPTIONS + '</a></div>'
					+ '</div> \
				</div>'
				+ '<button type="button" class="dsq-button" id="dsq-post-button' + pid + '" onclick="Dsq.Templates.postComment(' + post_id + ', this, false)"><span>' + Dsq.Strings.POST_AS + ' '
				+ (Dsq.jsonData.request.display_username
					? Dsq.jsonData.request.display_username
					: Dsq.Strings.GUEST)
				+ '</span></button>'
				+ (post_id
					? '<button type="button" class="dsq-button" id="dsq-cancel-button' + pid + '" onclick="Dsq.Post.toggleReply(' + post_id +', this)"><span>' + Dsq.Strings.CANCEL + '</span></button>'
					: '')
			+ '</div>'
			+ '</div>' // end dsq-form-area
		+ '</div> \
		';
		
		return html;
	};




	this.appendPost = function(post_id) {
		var html = '<div id="dsq-append-post-' + post_id + '"></div>';
		return html;
	};

	this.postPrependHeader = function(post_id) {
		var html;
		var _meta = Dsq.jsonData.posts[post_id];
		var userData = Dsq.jsonData['users'][_meta.user_key];
		
		html = ' \
		<table> \
			<tr> \
				<td id="dsq-header-avatar-' + post_id + '" class="dsq-header-avatar" onmouseover="Dsq.Post.dropProfile(' + post_id + ')"> \
					<a id="dsq-avatar-' + post_id + '" class="dsq-avatar" href="' + userData.url + '" onclick="Dsq.Popup.popProfile(' + post_id + '); return false;">'
					+ (Dsq.jsonData.forum.show_avatar
					? '<img src="' + Dsq.jsonData.users[_meta.user_key].avatar + '" alt="" />'
					: '')
				+ '</a> \
				</td> \
				<td class="dsq-comment-header-meta"> \
		';

		
		return html;
	};
	
	this.postAppendHeader = function(post_id) {
		var _meta = Dsq.jsonData.posts[post_id];
		var html;
		var parent_display_name = '';
		
		if(_meta.parent_post_id) {

			var _parent_meta = Dsq.jsonData.posts[_meta.parent_post_id];

			if (_parent_meta) {
				var parentUserData = Dsq.jsonData['users'][_parent_meta.user_key];
				parent_display_name = parentUserData.display_name;
			}
		}

		html = ' \
		<img src="http://media.disqus.com/images/themes/narcissus/moderator.png" class="dsq-moderator-star" title="Moderator" /> \
		<span class="dsq-comment-header-time"><a href="#comment-' + post_id + '" onclick="Dsq.Popup.permalink(' + post_id + ')" title="Permalink">' + (_meta.is_realtime ? Dsq.Strings.JUST_NOW : _meta.date) + '</a></span> '
		+ (_meta.parent_post_id && parent_display_name
			? '<a onclick="Dsq.Post.showParent(' + _meta.parent_post_id + '); return false" href="#comment-' + _meta.parent_post_id + '" title="Jump to comment">' + Dsq.Strings.IN_REPLY_TO + ' ' + parent_display_name + '</a>'
			: '')
		+ '</td> \
		<td id="dsq-like-pts-' + post_id + '" class="dsq-comment-header-likes">'
		+ (_meta.points
			? _meta.points + Dsq.Utils.pluralize(_meta.points, ' person', ' people') + ' liked this.'
			: '')
		+ '</td> \
		</tr> \
		</table> \
		';
		return html;
	};

	this.preBody = function(post_id) {
		var html = '';
		return html;
	};

	this.postFooter = function(post_id) {
		var html;
		var _meta = Dsq.jsonData.posts[post_id];
		if(_meta.killed || !_meta.approved) { return ''; }
		
		html = ' \
		<div class="dsq-comment-footer" id="dsq-comment-footer-' + post_id + '"> \
			<div class="dsq-comment-footer-left">'
				+ (Dsq.jsonData.request.is_moderator || Dsq.jsonData.request.is_global_moderator
					? '<a href="#" onclick="Dsq.Templates.moderateOptions(' + post_id+ '); return false">' + Dsq.Strings.MODERATE + '</a>'
					: '')
				+ '<a href="#" id="dsq-post-report-' + post_id + '" class="dsq-post-report" onclick="Dsq.Post.report(' + post_id + ', false); return false;">' + Dsq.Strings.FLAG + '</a> \
			</div> \
			<div class="dsq-comment-footer-right">'
				+ (_meta.votable 
					? '<span id="dsq-like-' + post_id + '" class="dsq-like">'
					+ (!_meta.up_voted
						? '<button type="button" class="dsq-button-small" onclick="Dsq.Post.rate(this, ' + post_id + ', 1)" >Gostei</button>'
						: 'Você gostou deste comentário.&nbsp;&nbsp;')
					+ '</span>'
					: '')
				+ (_meta.can_reply && !_meta.has_replies && _meta.from_request_user
					? '<button type="button" class="dsq-button-small dsq-post-edit" onclick="Dsq.Post.edit(this, ' + post_id + ')" >' + Dsq.Strings.EDIT + '</button>'
					: '')
				+ (_meta.can_reply
					? '<span class="dsq-comment-footer-reply" id="dsq-comment-footer-reply-' + post_id + '" onclick="Dsq.Post.toggleReply(' + post_id +', this)"> \
						<button type="button" class="dsq-button-small">' + Dsq.Strings.REPLY + '</button> \
						<button type="button" class="dsq-comment-footer-reply-tab">' + Dsq.Strings.REPLY + '</button><span></span> \
					</span>'
					: '')
			+ '</div> \
		</div> \
		';
		
		return html;
	};



	
	this.showRetweets = function(id, limit, element_id /* Optional */) {
		var source, html = '';

		for (var i = 0, reaction; reaction = Dsq.jsonData.reactions[i]; i++) {
			if (reaction.id === id) {
				source = reaction.retweets;
			}
		}

		if (source) {
			if (limit === 0) {
				limit = source.length;
			}

			for (var j = 0; j < limit; j++) {
				var rt = source[j];
				html += '<a href="' + rt.url + '">' + rt.author_name + '</a>'	+ ((j === (limit - 1)) ? '.' : ', ');
			}
		}

		if (element_id === undefined) {
			return html;
		}

		var element = document.getElementById(element_id);
		element.innerHTML = html;
		return element;
	};

	this.showMoreReactions = function(reactions, has_more, start, limit) {
		var link = document.getElementById('dsq-show-more-reactions');
		var container = link.parentNode;
		container.removeChild(link);

		for (var i = 0, reaction; reaction = reactions[i]; i++) {
			var el = Dsq.Templates.generateReactionHTML(reaction);
			if (el) {
				container.innerHTML += el;
			}
		}

		if (has_more) {
			var d = Dsq.jsonData.settings.disqus_url;
			var f = Dsq.jsonData.forum.url;
			var t = Dsq.jsonData.thread.id;
			var s = start;
			var l = limit;

			var handler = 'Dsq.Utils.execScript(\'' + d + '/forums/' + f + '/more_reactions.js?t=' + t + '&s=' + s + '&l=' + l + '\', true); return false;';
			container.innerHTML += '<li id="dsq-show-more-reactions" class="dsq-show-more-reactions"><button type="button" class="dsq-button-small" onclick="' + handler + '">Show more reactions</button></li>';
		}
	};

	this.generateReactionHTML = function(reaction) {
		if (reaction.body === null || reaction.body == '') {
			return;
		}

		if (reaction.author_name === '') {
			reaction.author_name = '&nbsp;';
		}

		if (reaction.url === '') {
			reaction.url = reaction.get_service_url;
		}

		var item = '<li class="dsq-comment dsq-reaction" id="dsq-reaction-' + reaction.id + '">'
			+ '<div class="dsq-comment-header"> \
			<table> \
			<tr> \
			<td class="dsq-header-avatar"> \
			';

		if (reaction.author_url && reaction.author_url !== '') {
			item += '<a target="_blank" href="' + reaction.author_url +'" class="dsq-avatar">';
		}

		if (reaction.avatar_url && reaction.avatar_url !== '') {
			item += '<img src="' + reaction.avatar_url + '"/>';
		} else {

			item += '<img src="' + Dsq.jsonData.media_url + '/images/noavatar92.png"/>';
		}

		var service_icon = (reaction.get_service_name == 'trackback' || reaction.get_service_name == 'pingback' ? 'rss' : reaction.get_service_name.replace(' ', ''));
		item += (reaction.author_url && reaction.author_url !== ''
				? '</a>'
				: '')
			+ '</td>'
			+ '<td><cite class="dsq-comment-cite">' + reaction.author_name + '</cite> <span class="dsq-comment-header-time">' + reaction.date_created + '</span></td>'
			+ '<td class="dsq-comment-header-likes"></td>'
			+ '</tr></table></div>' // end dsq-comment-header
			+ '<div class="dsq-reaction-header" \
				<table> \
					<tr> \
						<td class="dsq-reaction-header-left">'
							+ '<img class="dsq-service-icon" src="' + Dsq.jsonData.media_url + '/images/reactions/services/' + service_icon + '.png" />'
							+ ' From <a class="dsq-service-name" target="_blank" href="' + reaction.url + '">' + reaction.get_service_name + '</a> '
							+ 'via <a href="' + reaction.source_url + '">' + (reaction.source == 'backtype' ? 'BackType' : 'UberVU') + '</a>'
						+ '</td>'
						+ '<td class="dsq-reaction-header-right">';

			if(reaction.retweets) {
				var num_retweets = reaction.retweets.length;
				if (num_retweets > 0) {
					if (num_retweets == 1) {
						item += 'One more retweet from <a href="' + reaction.retweets[0].url + '">'  + reaction.retweets[0].author_name + '</a>';
					} else {
						item += (num_retweets + ' more retweets from ');
						item += '<span id="dsq-reaction-retweets-' + reaction.id + '">';
						var n_tweets = (num_retweets > 3) ? 3 : num_retweets;
						item += Dsq.Templates.showRetweets(reaction.id, n_tweets);
						if (n_tweets != num_retweets) {
							item += '</span> <a onclick="Dsq.Templates.showRetweets(' + reaction.id + ', 0, \'dsq-reaction-retweets-' + reaction.id + '\');'
								+ 'this.parentNode.removeChild(this); return false;" href="#">Show all</a>';
						}
					}
				}
			}	
			item += '</td></tr> \
			</table> \
			</div>' // end dsq-reaction-header
			+ '<div class="dsq-comment-body"> \
				<div class="dsq-comment-message">' + reaction.body + '</div>'
			+ '</div> \
			<div class="dsq-comment-footer"> \
				<div class="dsq-comment-footer-left"> \
				</div>'
				+ (Dsq.jsonData.request.is_moderator || Dsq.jsonData.request.is_global_moderator 
					? ' \
					<div class="dsq-comment-footer-right"> \
						<button type="button" class="dsq-button-small dsq-hide-reaction" onclick="Dsq.Reaction.hide(' + reaction.id + ')">Hide</button> \
					</div>'
					: '')
			+ '</div>'
		item += '</li>'; /* Reaction HTML ends */
		return item;
	};

	this.reactions = function() {
		var html, reaction;

		if (Dsq.jsonData.reactions === undefined || Dsq.jsonData.reactions.length === 0) {
			return '';
		}

		html = '';
		for (var i = 0; reaction = Dsq.jsonData.reactions[i]; i++) {
			var item = Dsq.Templates.generateReactionHTML(reaction);
			if (item) {
				html += item;
			}
		}

		if (Dsq.jsonData.has_more_reactions) {
			var d = Dsq.jsonData.settings.disqus_url;
			var f = Dsq.jsonData.forum.url;
			var t = Dsq.jsonData.thread.id;
			var s = Dsq.jsonData.reactions_start;
			var l = Dsq.jsonData.reactions_limit;

			var handler = 'Dsq.Utils.execScript(\'' + d + '/forums/' + f + '/more_reactions.js?t=' + t + '&s=' + s + '&l=' + l + '\', true); return false;';
			html += '<li id="dsq-show-more-reactions" class="dsq-show-more-reactions"><button type="button" class="dsq-button-small" onclick="' + handler + '">Show more reactions</button></li>';
		}

		return '<h3 id="dsq-reactions-title" class="dsq-h3-reactions">Reactions</h3><ul id="dsq-reactions" class="dsq-reactions">' + html + '</ul>';
	};
	
	this._popupGeneric = function(content) {
		return ' \
		<div class="dsq-popup-container"> \
			<table> \
				<tbody> \
					<tr> \
						<td class="dsq-popup-tl"></td><td class="dsq-popup-b"></td><td class="dsq-popup-tr"></td> \
					</tr> \
					<tr> \
						<td class="dsq-popup-b"></td> \
						<td class="dsq-popup-body"> \
							<div class="dsq-popup-content"> \
								<div class="dsq-popup-title"> \
									<button type="button" class="dsq-button-small" style="float:right" onclick="Dsq.Popup._closePopup(null, true)">Close</button>'
									+ content['header'] 
								+ '</div>'
								+ content['body']
							+ '</div> \
							<div class="powered-by"><a href="http://disqus.com/comments/">Powered by <img src="http://media.disqus.com/images/embed/disqus-logo.png" alt="Disqus Comments" style="margin-bottom:-5px" /></a></div> \
						</td> \
						<td class="dsq-popup-b"></td> \
					</tr> \
					<tr> \
						<td class="dsq-popup-bl"></td><td class="dsq-popup-b"></td><td class="dsq-popup-br"></td> \
					</tr> \
				</tbody> \
			</table> \
		</div> \
		';
	};



	
	this.chooseSubscribe = function(post_id) {

		var pid = post_id ? '-' + post_id : '';
		var menu = Dsq.$('dsq-subscribe-menu' + pid);
		
		menu.style.display = menu.style.display == 'block' ? 'none' : 'block';
		
	};
	
	this.setSubscribe = function(value, el, post_id) {

		var pid = post_id ? '-' + post_id : '';
		var input = Dsq.$('dsq-subscribe-on-post' + pid);
		var select = Dsq.$('dsq-subscribe-select' + pid);
		var menu = Dsq.$('dsq-subscribe-menu' + pid);
		
		select.innerHTML = el.innerHTML;
		input.value = value;
		this.chooseSubscribe(post_id);
	};
	
	this.getFormFields = function(post_id) {

		var fields = {};
		var pid = post_id ? '-' + post_id : '';
		var name = Dsq.$('dsq-field-name' + pid);
		var email = Dsq.$('dsq-field-email' + pid);
		var website = Dsq.$('dsq-field-website' + pid);
		var username = Dsq.$('dsq-field-username' + pid);
		var password = Dsq.$('dsq-field-password' + pid);

		fields = {
			'name': name,
			'email': email,
			'website': website,
			'username': username,
			'password': password
		}
		
		return fields;
	}
	
	this.validateFields = function(post_id) {
		
		if(Dsq.jsonData.request.is_authenticated) { return true; }
		
		var fields = Dsq.Templates.getFormFields(post_id);
		
		var nameField = fields.name;
		var websiteField = fields.website;
		var emailField = fields.email;
		
		websiteField.value = (websiteField.value == Dsq.Templates.placeholder['website']) ? '' : websiteField.value;
		
		var v = [{

			validator: Dsq.Validators.name,
			value: nameField.value
		}, {

			validator: Dsq.Validators.email,
			value: emailField.value
		}, {

			validator: Dsq.Validators.url,
			value: websiteField.value
		}];
		
		return Dsq.Validators.validate(v, function(e) { Dsq.Popup.popModal(e, 'Oops...') } );
	};
	
	this.checkExistingUser = function(post_id) {
		var fields = Dsq.Templates.getFormFields(post_id);		
		Dsq.Popup.loading(post_id);
		
		if (post_id) {
			Dsq.frames['reply_' + post_id].getUserByEmail(fields.email.value);
		} else {
			Dsq.frames['reply_0'].getUserByEmail(fields.email.value);
		}
	};

	this.validateAuth = function(el_clicked, post_id, auth_choice) {
		var fields = Dsq.Templates.getFormFields(post_id);
		var email = fields.email ? fields.email.value : '';
		var username = fields.username ? fields.username.value : '';
		var password = fields.password ? fields.password.value : '';
		
		Dsq.Templates.setLoadingButton(el_clicked, post_id);
		
		if (post_id) {
			Dsq.frames['reply_' + post_id].validateAuth(auth_choice, email, username, password);
		} else {
			Dsq.frames['reply_0'].validateAuth(auth_choice, email, username, password);
		}
	};

	this.lightboxUpdateEmail = function(post_id, new_email) {
		var fields = Dsq.Templates.getFormFields(post_id);
		fields.email.value = new_email;
	};

	this.lightboxAuthenticate = function(post_id, auth_choice, auth_data) {
		var title, body;
		var pid = post_id ? '-' + post_id : '';

		if(typeof(auth_data) == 'undefined') {
			var auth_data = Dsq.Templates.getFormFields(post_id);
		}

		d = auth_data;

		switch(auth_choice) {
			case 'register':
				var suggestedUsername = d.name.value.replace(/[^a-zA-Z0-9-]/g,'').toLowerCase();
			
				title = Dsq.jsonData.forum.allow_anon_post ? 'Optional:' : 'Required:';
				title += ' Register a <img src="http://media.disqus.com/images/embed/disqus-profile.png" alt=Disqus Profile" />';

				body = ' \
				<ul class="dsq-lightbox-register-reasons"> \
				<li>Verify your comments</li> \
				<li>Edit and delete comments</li> \
				<li>Manage comments and replies</li> \
				</ul> \
				';

				body += ' \
				<div class="dsq-lightbox-auth-fields"> \
					<table> \
						<tr> \
							<td>Email</td> \
							<td><input type="text" value="' + d.email.value + '" onchange="Dsq.Templates.lightboxUpdateEmail(' + post_id + ', this.value)" /><div id="dsq-email-errors' + pid + '"></div></td> \
						</tr> \
						<tr> \
							<td>Username</td> \
							<td><input id="dsq-field-username' + pid + '" type="text" value="' + suggestedUsername + '"/><div id="dsq-username-errors' + pid + '"></div></td> \
						</tr> \
						<tr> \
							<td>Password</td> \
							<td><input id="dsq-field-password' + pid + '" type="password" /><div id="dsq-password-errors' + pid + '"></div></td> \
						</tr> \
					</table> \
					<div class="dsq-lightbox-switch-auth"><a href="#" onclick="Dsq.Templates.lightboxAuthenticate(' + post_id + ',\'login\'); return false">Login instead</a></div> \
				</div> \
				<div id="dsq-lightbox-errors' + pid + '" class="dsq-lightbox-errors"></div> \
				<div class="dsq-lightbox-submit"> \
					<div class="dsq-lightbox-auth-post"><button type="button" class="dsq-button" onclick="Dsq.Templates.validateAuth(this, ' + post_id + ',\'' + auth_choice + '\')">Register and Post comment</button></div>'
					+ (Dsq.jsonData.forum.allow_anon_post
						? '<div class="dsq-lightbox-auth-skip"><button type="button" class="dsq-button-small" onclick="Dsq.Templates.postComment(' + post_id + ', this, true)">Just post as a Guest</button></div>'
						: '')
				+ '</div> \
				';
				break;
			case 'login':
				title = Dsq.jsonData.forum.allow_anon_post ? 'Optional:' : 'Required:';
				title += ' Login to your <img src="http://media.disqus.com/images/embed/disqus-profile.png" alt=Disqus Profile" />';
				body = '';
				
				if(d.avatar_url) {
					body += '<div class="dsq-lightbox-recognized"><table><tr>';
					body += '<td><img src="' + d.avatar_url + '" alt="" /></td>';
					body += '<td><span class="dsq-badge ' + (d.verified ? 'dsq-badge-verified' : 'dsq-badge-registered') + '">' + (d.verified ? 'Verified' : 'Registered') + '</span></td>';
					body += '<td>Hey <strong>' + d.display_name + '</strong>, is that you? Login below to claim this comment.';
					body += '</tr></table></div>';
				}

				body += ' \
				<div class="dsq-lightbox-auth-fields"> \
					<table> \
						<tr> \
							<td>Username or Email</td> \
							<td><input id="dsq-field-username' + pid + '" type="text" value="' + (d.avatar_url ? d.username : '') + '" /></td> \
						</tr> \
						<tr> \
							<td>Password <a href="http://disqus.com/forgot" target="_blank">(cannot log in?)</a></td> \
							<td><input id="dsq-field-password' + pid + '" type="password" /></td> \
						</tr> \
					</table> \
					<div class="dsq-lightbox-switch-auth"><a href="#" onclick="Dsq.Templates.lightboxAuthenticate(' + post_id + ',\'register\'); return false">Register instead</a></div> \
				</div> \
				<div id="dsq-lightbox-errors' + pid + '" class="dsq-lightbox-errors"></div> \
				<div class="dsq-lightbox-submit"> \
					<div class="dsq-lightbox-auth-post"><button type="button" class="dsq-button" onclick="Dsq.Templates.validateAuth(this, ' + post_id + ',\'' + auth_choice + '\')">Login and Post comment</button></div>'
					+ (Dsq.jsonData.forum.allow_anon_post
						? '<div class="dsq-lightbox-auth-skip"><button type="button" class="dsq-button-small" onclick="Dsq.Templates.postComment(' + post_id + ', this, true)">Just post as a Guest</button></div>'
						: '')
				+ '</div> \
				';
				break;
			default:
				break;
		}
		Dsq.Popup.lightbox(body, title, post_id);
		Dsq.$('dsq-field-username' + pid).focus();
	};
	
	this.buttonsToRestore = [];
	this.setLoadingButton = function(btn, post_id) {
		var pid = post_id ? '-' + post_id : '';
		if (btn) {

			var loadingBtn = document.createElement('button');
			loadingBtn.id = btn.id + '-loading';
			loadingBtn.innerHTML = '<img src="http://media.disqus.com/images/loading-lite.gif" alt="" /> ' + Dsq.Strings.JUST_A_MOMENT;
			loadingBtn.className = btn.className + ' dsq-post-loading';
			btn.parentNode.appendChild(loadingBtn);
			btn.style.display = 'none';
			var cancelBtn = Dsq.$('dsq-cancel-button' + pid);
			if(cancelBtn) { cancelBtn.style.display = 'none'; this.buttonsToRestore.push(cancelBtn); }
			this.buttonsToRestore.push(btn);
		} else {

			var buttons = this.buttonsToRestore;
			for(var i = 0; i < buttons.length; i++) {
				buttons[i].style.display = 'inline';
				Dsq.Utils.deleteNode(Dsq.$(buttons[i].id + '-loading'));
			}
		}
		
	};

	this.postComment = function(post_id, el_clicked, force, auth_choice) {
		var append_id = post_id ? '-' + post_id : '';
		var fields = Dsq.Templates.getFormFields(post_id);

		if (Dsq.Templates.validateFields(post_id)) {

			if (!Dsq.jsonData.request.is_authenticated && !force &&
				((!Dsq.Utils.readCookie('skipped_auth') && !disqus_skip_auth && !Dsq.jsonData.forum.disqus_auth_disabled) || !Dsq.jsonData.forum.allow_anon_post)) {
				Dsq.Templates.checkExistingUser(post_id);
				return false;
			}
			var params = [];
			if (!Dsq.jsonData.request.is_authenticated) {
				params.push(fields.name.value,
					fields.email.value,
					fields.website.value);

				if (auth_choice == 'login' || auth_choice == 'register') {
					params.push({
						auth_choice: auth_choice,
						username: fields.username.value,
						password: fields.password.value,
						email: fields.email.value
					});
				} else {
					params.push(null);
				}

				params.push(null /* sharing options */, Dsq.$('dsq-subscribe-on-post' + append_id).value);
			} else {
				var service_checked = function(name) {
					var el = Dsq.$('dsq-sharing-' + name + append_id);
					return (el !== null && el.checked === true) ? '1' : '0';
				};
				params.push(null, null, null, null, {
					tw: service_checked('twitter'),
					fb: service_checked('facebook'),
					tr: service_checked('tumblr'),
					wp: service_checked('wordpress'),
					mt: service_checked('movabletype'),
					tp: service_checked('typepad'),
					yh: service_checked('yahoo')
				});
			}

			var frame = Dsq.frames['reply_' + (post_id ? post_id : 0)];
			frame.post.apply(frame, params);

			if (el_clicked) {
				Dsq.Templates.setLoadingButton(el_clicked, post_id);
			}
			
			if (force) {
				Dsq.Utils.createCookie('skipped_auth', true);	
			}
			
		} else {
			return false;
		}
	};

	this.editComment = function(el_clicked, post_id) {
		var edited_message = Dsq.$('dsq-edit-textarea-' + post_id).value;

		Dsq.Templates.setLoadingButton(el_clicked, post_id);
		Dsq.frames['edit_' + post_id].edit(post_id, edited_message);
	};

	this.toggleEdit = function(post_id) {
		var body = Dsq.$('dsq-comment-body-' + post_id);
		var message = Dsq.$('dsq-comment-message-' + post_id);

		if (!Dsq.Post.stateEditToggled[post_id]) {


			message.style.display = 'none';
			if (Dsq.$('dsq-edit-' + post_id)) {
				Dsq.$('dsq-edit-' + post_id).style.display = 'block';
			} else {

				var edit_area = document.createElement('div');
				edit_area.id = 'dsq-edit-' + post_id;
				edit_area.className = 'dsq-edit dsq-textarea';
				edit_area.innerHTML = ' \
				<div class="dsq-textarea-wrapper"> \
					<textarea class="dsq-edit-textarea" id="dsq-edit-textarea-' + post_id + '">' + message.innerHTML + '</textarea> \
				</div> \
				<div class="dsq-save-edit"> \
					<button type="button" onclick="Dsq.Templates.editComment(this, ' + post_id + ')" class="dsq-button-small">Save Edit</button> \
				</div> \
				<div id="dsq-edit-iframe-' + post_id + '" style="display: none"></div> \
				';

				body.appendChild(edit_area);

				if (!Dsq.frames['edit_' + post_id]) {
					var _meta = Dsq.jsonData.posts[post_id];
					Dsq.frames['edit_' + post_id] = new Dsq.ReplyFrame(Dsq.$('dsq-edit-iframe-' + post_id), post_id);
					Dsq.frames['edit_' + post_id].init();
					Dsq.frames['edit_' + post_id].setState(post_id, _meta.depth);
				}
			}
		} else {

			message.style.display = 'block';
			Dsq.$('dsq-edit-' + post_id).style.display = 'none';
		}
		
		Dsq.Post.stateEditToggled[post_id] = !Dsq.Post.stateEditToggled[post_id];
	};
	
	this.edit = function(el, post_id) {

		Dsq.Templates.toggleEdit(post_id);
	};

	this.toggleReply = function(post_id, button) {
		
		if(!this.stateReplyToggled[post_id]) {

			if (Dsq.$('dsq-reply-post-' + post_id)) {
				Dsq.$('dsq-append-post-' + post_id).style.display = 'block';
			} else {
				Dsq.$('dsq-append-post-' + post_id).innerHTML = Dsq.Templates.postBox(post_id);
				var container = Dsq.$('dsq-textarea-wrapper-' + post_id);
				if (!Dsq.frames['reply_' + post_id] && container) {
					var _meta = Dsq.jsonData.posts[post_id];
					Dsq.frames['reply_' + post_id] = new Dsq.ReplyFrame(container, post_id);
					Dsq.frames['reply_' + post_id].init(function() {

						Dsq.$('dsq-append-post-' + post_id).innerHTML = Dsq.Templates.postBox(post_id, true);
						Dsq.$('dsq-form-area-' + post_id).innerHTML = '';

						var theme = (typeof disqus_frame_theme == 'undefined') ? 'default' : disqus_frame_theme;
						Dsq.Iframes.showReplyIframeInContainer(Dsq.$('dsq-form-area-' + post_id), post_id, {theme: theme});

					});
					Dsq.frames['reply_' + post_id].setState(post_id, _meta.depth);
				}
			}
			Dsq.$('dsq-append-post-' + post_id).className = 'dsq-append-post';
			Dsq.$('dsq-comment-footer-reply-' + post_id).className = 'dsq-comment-footer-reply-active';
			
		} else {

			Dsq.$('dsq-append-post-' + post_id).style.display = 'none';
			Dsq.$('dsq-append-post-' + post_id).className = '';
			Dsq.$('dsq-comment-footer-reply-' + post_id).className = 'dsq-comment-footer-reply';
		}
		
		this.stateReplyToggled[post_id] = !this.stateReplyToggled[post_id];

		if(Dsq.Utils.ie && this.stateReplyToggled[post_id]) {

		}

		Dsq.Events.fire(Dsq.Events.REPLY_IFRAME_TOGGLED, {
			postId: post_id,
			opened: this.stateReplyToggled[post_id]
		});
	};
	
	this.moderateOptions = function(post_id) {
		var _meta = Dsq.jsonData.posts[post_id];
		var userData = Dsq.jsonData['users'][_meta.user_key];
		
		if(!Dsq.jsonData.request.is_moderator && !Dsq.jsonData.request.is_global_moderator) { return false; }

		var html;
		
		html = ' \
		<div class="dsq-moderate-options"> \
		<table>'
		+ (_meta.email ? '<tr><td>Email</td><td>' + _meta.email + '</td></tr>' : '')
		+ (_meta.ip ? '<tr><td>IP address</td><td>' + _meta.ip + '</td></tr>' : '')
		+ '<tr> \
			<td>Actions</td> \
			<td><ul>'
			+ (Dsq.jsonData.request.moderator_can_edit
				? '<li><a href="#" onclick="Dsq.Post.edit(this, ' + post_id + '); Dsq.Popup._closePopup(null, true); return false;">Publicar comentário</a></li>'
				: '')
			+ '<li><a href="#" onclick="Dsq.Post.removePost(' + post_id + ', 1); Dsq.Popup._closePopup(null, true); return false;">Delete Comment</a></li> \
			<li><a href="#" onclick="Dsq.Post.reportSpam(' + post_id + '); Dsq.Popup._closePopup(null, true); return false;">Mark Spam</a></li> \
			<li><a href="#" onclick="Dsq.Popup.blacklist(' + post_id + '); return false">Block User</a></li> \
			</ul></td> \
			</table> \
		</div> \
		';
		
		html += '<p>Go to the full <a href="http://disqus.com/comments/moderate/" target="_blank">moderate panel</a> for more options.</p>';
		
		return Dsq.Popup.popModal(html, 'Moderate Options', post_id);
	};
	
	this.placeholder = {
		'class': 'dsq-placeholder',
		'name': Dsq.Strings.NAME,
		'email': Dsq.Strings.EMAIL,
		'website': Dsq.Strings.WEBSITE + ' (' + Dsq.Strings.OPTIONAL.toLowerCase() + ')'
	};
	
	this.handlePlaceholder = function(evt, el, key) {
		var placeholder = Dsq.Templates.placeholder[key];
		var className = Dsq.Templates.placeholder['class'];
		
		switch(evt.type) {
			case 'focus':
				if(el.value == placeholder) {
					el.value = '';
					el.className = '';
				}
				break;

			case 'blur':
				if(el.value == '') {
					el.value = placeholder;
					el.className = className;
				}
				break;
			default:
				break;
		}
	};
	
	this.paginate = function(page, el_clicked) {

		var extra_params = '';

		if(typeof disqus_per_page != 'undefined') {
			extra_params += '&per_page=' + disqus_per_page;
		}
		if(typeof disqus_sort != 'undefined') {
			extra_params += '&sort=' + disqus_sort;
		}

		Dsq.$('dsq-pagination').innerHTML += '<img src="http://media.disqus.com/images/loading-small.gif">';
		
		if(el_clicked) {
			Dsq.Templates.setLoadingButton(el_clicked);
		}
		
		Dsq.Utils.execScript('http://disqus.com/forums/winajuda/thread.js'
			+ '?slug='	+ 'firefox_2009'
			+ '&p='		+ page
			+ extra_params);
	};
	
	
	this.rate = function(el, id, vote) {


		if(Dsq.jsonData.request.is_authenticated || Dsq.jsonData.forum.allow_anon_votes) {
			if(vote == 1) {
				Dsq.$('dsq-like-' + id).innerHTML = '<img src="http://media.disqus.com/images/loading-small.gif">';
			}
			Dsq.Utils.execScript('http://disqus.com/forums/winajuda/vote.js'
				+ '?post_id='    + id
				+ '&vote='        + vote);
		} else {
			Dsq.Popup.login('To rate, please log in');
		}
	};

	this.voted = function(post_id, points, vote) {

		Dsq.$('dsq-like-pts-' + post_id).innerHTML = points + Dsq.Utils.pluralize(points, ' person', ' people') + ' liked this.';

		if(vote) {
			Dsq.$('dsq-like-' + post_id).innerHTML = 'Você gostou deste comentário.&nbsp;&nbsp;';
		}
	};




	this.postComment_onSuccess = function(response, parent_post_id, post_id) {
		var approved = response.message.post_meta.approved;

		if (parent_post_id) {
			Dsq.Post.toggleReply(parent_post_id);
		}

		Dsq.Popup._closePopup(null, true);
		
		if (approved) {
			Dsq.Post.incrementPostCount();
			Dsq.Post.outlineComment(post_id);
		} else {			
			var unapproved_msg = 'Thanks for posting!\
	 Your comment must be approved by a moderator before appearing here.\
			';
			Dsq.Popup.popModal(unapproved_msg, 'Comment awaiting approval', post_id);
		}

		var sharing_results = response.message.sharing_results;
		var sharing_errors = '';
		for (var service in sharing_results) {
			if (sharing_results.hasOwnProperty(service) === true) {
				if (sharing_results[service].error === true) {
					sharing_errors += service + ', ';
				}
			}
		}

		if (sharing_results.facebook && sharing_results.facebook.callback) {
			FB.ensureInit(function() {
				FB.Connect.streamPublish('', sharing_results.facebook.attachment);
			});
		}

		if (sharing_errors !== '') {
			var message = 'Your comment was posted, but there were errors sharing with the following connections: ';
			message += sharing_errors.replace(/,\s$/, '');
			message += '<p><a href="' + Dsq.jsonData.settings.disqus_url + '/profile/connections" target="_blank">Configure your connections here</a></p>'
			Dsq.Popup.popModal(message, 'Sharing options');
		}

		Dsq.Templates.setLoadingButton(false);
	};

	this.postComment_onFailure = function(response, parent_post_id, post_id) {

		Dsq.Templates.setLoadingButton(false);
	};
};




// TODO: It might be faster to use string methods to find all <li (...) </li> blocks and pass to Dsq.PostHandler manually.
Dsq.CommentsHandler = function(str, head, post_id, content, tail, offset, s) {
	var prepend_post = Dsq.Templates.prependPost(post_id);
	var append_post = Dsq.Templates.appendPost(post_id);

	content = content.replace(Dsq.POST_RE, Dsq.PostHandler);
	Dsq.Templates.postLoopCounter++;
	head = Dsq.Templates.Filters.commentContainer(post_id, head);
	return prepend_post + head + content + tail + append_post;
};

Dsq.PostHandler = function(str, h_head, post_id, h_content, h_tail, b_head, b_content, b_tail, offset, s) {
	var prepend_header = Dsq.Templates.postPrependHeader(post_id);
	var append_header = Dsq.Templates.postAppendHeader(post_id);
	var prepend_body = Dsq.Templates.preBody(post_id);
	var append_body = Dsq.Templates.postBody(post_id);
	var append_footer = Dsq.Templates.postFooter(post_id);

	b_content = b_content.replace(Dsq.POST_BODY_RE, Dsq.PostBodyHandler);
	return h_head + prepend_header + h_content + append_header + h_tail + b_head + prepend_body + b_content + append_body + b_tail + append_footer;
};

Dsq.PostBodyHandler = function(str, head, post_id, content, tail, offset, s) {
	content = Dsq.Templates.Filters.commentContent(post_id, content);
	return head + content + tail;
};

Dsq.MediaPostHandler = function(str, args, offset, s) {
	args = args.split(' ');
	if(args[0] == 'seesmic') {
		return '<br />' + Dsq.Templates.mediaSeesmic(args[1], args[2]);
	}
	return '';
};


/**
 * Shorcuts
 */
Dsq.$ = function(element) { return document.getElementById(element); };
Dsq.$b = document.body || document.getElementsByTagName('body')[0];


/**
 * Dsq.Debug: Logging functions.
 */

Dsq.Debug = new function() {this.log=function(s){};this.profile=function(f){if(typeof f == 'function')return f();else return eval(f);};};


/**
 * Dsq.Urls: URL paths
 */
Dsq.Urls = new function() {
	this.LOGIN = '/profile/login/';
	this.LOGOUT = '/logout/';
	this.REPLY = 'http://winajuda.disqus.com/firefox_2009/reply.html';
	this.REQUEST_USER_PROFILE = '/AnonymousUser/';
	this.REQUEST_USER_AVATAR = 'http://media.disqus.com/images/noavatar92.png';
};
// Dsq.Urls

/**
 * Dsq.Validators: Validation for form fields
 */
Dsq.Validators = new function() {
	this.VALID_EMAIL_RE = /^[a-z0-9\-\_\+]+(\.[a-z0-9\-\_\+]+)*\@(([a-z0-9\-\_\+]+(\.[a-z0-9\-\_\+]+)*)+\.[a-z]{2,}|([0-9]+\.){3}[0-9]+)$/i;
	this.name = function(name) {
		var error = false;

		if(typeof Dsq.Templates.placeholder !== 'undefined' &&
		   name == Dsq.Templates.placeholder.name) {
			error = true;
		}
		if(name.length <= 1) {
			error = true;
		}

		if(error) {
			return "Por favor, digite um nome para comentar.";
		} else {
			return true;
		}
	};
	this.email = function(addr) {
		if(Dsq.Validators.VALID_EMAIL_RE.test(addr)) {
			return true;
		} else {
			return "Por favor, digite um e-mail válido para comentar.";
		}
	};
	this.url = function(addr) {
		if(!addr || addr.indexOf('.') != -1) {
			return true;
		} else {
			return "Por favor, verifique a URL de seu site (este campo é opcional).";
		}
	};

	this.validate = function(bulk_validation, failure_callback) {
		failure_callback = failure_callback || function(e){ alert(e); };

		for(var i = 0; i < bulk_validation.length; i++) {
			v = bulk_validation[i];
			ret = v.validator(v.value);
			if(ret !== true) {
				failure_callback(ret);
				return false;
			}
		}
		return true;
	};
};

/**
 * Dsq.Utils: Generic utility functions.
 */
Dsq.Utils = new function() {
	this.ie = /msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent);
	this.ie7 = (document.all && !window.opera && window.XMLHttpRequest) ? true : false;
	this.ie6 = (!window.XMLHttpRequest) ? true: false;
	this.webkit = navigator.userAgent.indexOf('AppleWebKit/') >= 0;
	this.gebiFromElementCollectionCache = {};
	this._styleSheet = null;

	this.gebiFromElement = function(el, id, tag) {
		// This only method only helps IE.
		if(!this.ie) {
			return Dsq.$(id);
		} else {
			var cacheKey = el.id + '-' + tag;
			tag = tag || 'div';
			if(typeof this.gebiFromElementCollectionCache[cacheKey] != 'undefined') {
				collection = this.gebiFromElementCollectionCache[cacheKey];
			} else {
				collection = el.getElementsByTagName(tag);
				this.gebiFromElementCollectionCache[cacheKey] = collection;
			}

			for(var i = 0; i < collection.length; i++) {
				if(collection[i].id == id) {
					return collection[i];
				}
			}
			return null;
		}
	};

	this.execOnReady = function(func) {
		var node = document.createElement('document:ready');
		try {
			node.doScroll('left');
			func();
			node = null;
		} catch(err) {
			setTimeout(function() { Dsq.Utils.execOnReady(func); }, 10);
		}
	};


	// Courtesy of http://www.quirksmode.org/js/cookies.html
	this.createCookie = function(name,value,days) {
		if (days) {
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			var expires = "; expires="+date.toGMTString();
		}
		else var expires = "";
		document.cookie = name+"="+value+expires+"; path=/";
	};

	this.readCookie = function(name) {
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++) {
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
		}
		return null;
	};

	this.eraseCookie = function(name) {
		Dsq.Utils.createCookie(name,"",-1);
	};

	this.deleteNode = function(node) {
		if(node) {
			this.deleteChildren(node);
			if(typeof node.outerHTML != 'undefined') { node.outerHTML = ''; }
			else if(node.parentNode) { node.parentNode.removeChild(node); }
			delete node;
		}
	};

	this.deleteChildren = function(node) {
		if(node) {
			for(var x = node.childNodes.length-1; x >= 0; x--) {
				var childNode = node.childNodes[x];
				if(childNode.hasChildNodes()) { this.deleteChildren(childNode); }
				if(typeof childNode.outerHTML != 'undefined') { childNode.outerHTML = ''; }
				else node.removeChild(childNode);
				delete childNode;
			}
		}
	};

	this.findPos = function(obj) {
		var curleft = 0;
		var curtop = 0;
		if (obj.offsetParent) {
			do {
				curleft += obj.offsetLeft;
				curtop += obj.offsetTop;
			} while (obj = obj.offsetParent);
		}
		return [curleft,curtop];
	};

	this.getWindowSize = function() {
		var windowWidth = -1;
		var windowHeight = -1;

		if(typeof(window.innerWidth) == 'number') { //Non-IE
			windowWidth = window.innerWidth;
			windowHeight = window.innerHeight;
		} else if(document.documentElement) { // IE 6+ in 'standards compliant mode'
			windowWidth = document.documentElement.clientWidth || document.body.clientWidth;
			windowHeight = document.documentElement.clientHeight || document.body.clientHeight;
		}

		return [windowWidth, windowHeight];
	}

	this.getScrollPos = function() {
		var scrollWidth, scrollTop;

		if(document.documentElement && (document.documentElement.scrollTop || document.documentElement.scrollWidth)) {
			scrollWidth = document.documentElement.scrollWidth;
			// IE is weird here.  If no doctype is provided, document.body.scrollTop is 0,
			// otherwise document.documentElement.scrollTop is 0.
			scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
		} else if(document.body.scrollTop && document.body.scrollWidth) {
			scrollWidth = document.body.scrollWidth;
			scrollTop = document.body.scrollTop;
		}

		return [scrollWidth, scrollTop];
	}

	this.addEventListener = function(instance, eventName, listener) {
		var listenerFn = listener;
		if (instance.addEventListener) {
			instance.addEventListener(eventName, listenerFn, false);
		} else if (instance.attachEvent) {
			listenerFn = function() {
				listener(window.event);
			};
			instance.attachEvent("on" + eventName, listenerFn);
		} else {
			throw new Error("Event registration not supported");
		}
		return {
			instance: instance,
			name: eventName,
			listener: listenerFn
		};
	};

	this.removeEventListener = function(event) {
		var instance = event.instance;
		if (instance.removeEventListener) {
			instance.removeEventListener(event.name, event.listener, false);
		} else if (instance.detachEvent) {
			instance.detachEvent("on" + event.name, event.listener);
		}
	};

	this.fixIframesIE = function(id) {
		var disqusThread = Dsq.$(disqus_container_id);
		var iframes = disqusThread.getElementsByTagName('iframe');

		if(id) {
			var container = Dsq.$(id);
		} else {
			var container = Dsq.$('dsq-content');
		}

		for(i = 0; i < iframes.length; i++) {
			if (container) {
				iframes[i].style.width = container.offsetWidth;
			}
		}
	};

	this.getElementsByClassName = function(oElm, strTagName, strClassName) {
	/* Credit: Jonathan Snook [http://www.snook.ca/jonathan], Robert Nyman [http://www.robertnyman.com] */
		var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
		var arrReturnElements = new Array();
		strClassName = strClassName.replace(/\-/g, "\\-");
		var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
		var oElement;
		for(var i = 0; i < arrElements.length; i++) {
			oElement = arrElements[i];
			if(oRegExp.test(oElement.className)) {
				arrReturnElements.push(oElement);
			}
		}
		return (arrReturnElements);
	};

	this.postToUrl = function(url, post_data, opt_redirect) {
		var form = document.createElement('form');
		var iframe_container = document.createElement('div');
		var id = 'dsq-temp-iframe-' + (new Date()).getTime();

		form.method = 'POST';
		form.action = url;
		if (!opt_redirect) {
			form.target = id;
		}
		iframe_container.innerHTML = '<iframe style="display:none" name="' + id + '" id="' + id + '"></iframe>';

		for(var key in post_data) {
			if(post_data.hasOwnProperty(key)) {
				var input = document.createElement('input');
				input.name = key;
				input.type = 'hidden';
				input.value = post_data[key];

				form.appendChild(input);
			}
		}

		Dsq.$b.appendChild(iframe_container);
		Dsq.$b.appendChild(form);
		form.submit();
	};

	// Strips integer id from id of element in the form ('some-id-###')
	this.extractId = function(e) {
		var chunks = e.id.split('-');
		if(chunks.length <= 1) {
			return 0;
		} else {
			var retval = parseInt(chunks[chunks.length-1]);
			return !isNaN(retval) ? retval : null;
		}
	};

	this.getStyle = function(el, styleProp) {
		if(el.currentStyle) {
			var y = el.currentStyle[styleProp];
		} else if(window.getComputedStyle) {
			var y = document.defaultView.getComputedStyle(el, null).getPropertyValue(styleProp);
		}

		if(y == 'transparent' || y == '') {
			this.getStyle(el.parentNode, styleProp);
		} else {
			return y;
		}
	};

	this.execScript = function(url, append_qs, container) {
		var script = document.createElement('script');
		append_qs = typeof append_qs == 'undefined' ? true : append_qs;
		container = container || Dsq.container;

		if(append_qs) {
			var j = (url.indexOf('?') >= 0) ? '&' : '?';
			url += j + (new Date()).getTime();
		}
		script.type = 'text/javascript';
		script.charset = 'UTF-8';
		script.src = url;
		container.appendChild(script);
		return script;
	};

	this.pluralize = function(num, singular, plural) {
		return (num != 1) ? plural || 's' : singular || '';
	};

	this.getRequestParams = function(queryString /* optional */) {
		var pairs, tuple;
		var params = {};

		queryString = queryString || window.location.search.substring(1);
		pairs = queryString.split('&');

		for (var i = 0, pair; pair = pairs[i]; i++) {
			tuple = pair.split('=');
			params[tuple[0]] = (tuple[1] || true);
		}

		return params;
	};

	this.addCssRule = function(selector, styleText, index) {
		var stylesheet;
		index = index || 0;

		if(!this._styleSheet) {
			var styleEl = document.createElement('style');
			document.getElementsByTagName('head')[0].appendChild(styleEl);
			this._styleSheet = styleEl.sheet;
			if(!this._styleSheet) {
				// IE does not like our newly created stylesheet.
				this._styleSheet = document.styleSheets[document.styleSheets.length-1];
			}
		}
		stylesheet = this._styleSheet;

		if(stylesheet.insertRule) {
			var ruleText = selector + ' { ' + styleText + ' }';
			if(index == -1) {
				index = stylesheet.cssRules.length;
			}
			stylesheet.insertRule(ruleText, index);
		} else if(stylesheet.addRule) {
			stylesheet.addRule(selector, styleText, index);
		}
	};

	this.forEachIn = function(obj, callback) {
		for(var key in obj) {
			if(obj.hasOwnProperty(key)) {
				callback(key, obj[key]);
			}
		}
	};

	this._interpolateGlobalContext = {
		// values that get used a lot and are global to the request
		'profile_url': Dsq.Urls.REQUEST_USER_PROFILE,

		'disqus_url': Dsq.jsonData.settings.disqus_url,
		'media_url': Dsq.jsonData.settings.media_url,
		'request_username': Dsq.jsonData.request.username,
		'request_display_username': Dsq.jsonData.request.display_username,
		'forum_name': Dsq.jsonData.forum.name
	};

	this.renderFromContextStack = function(key, contexts) {
		// Returns the first instance of `key` in the array of objects `contexts` or else ''
		for (var i=0; i<contexts.length; i++) {
			if (contexts[i][key] !== undefined) {
				return String(contexts[i][key]);
			}
		}
		throw new Error('key ' + key + ' not found in context');
	};

	var that = this;
	this.interpolate = function(fmt, opt_localContext) {
		// Interpolate `fmt` named-format string with an assumed global context.
		// Based on `interpolate` in django.views.i18n
		var contextStack = [opt_localContext || {}, that._interpolateGlobalContext];
		return fmt.replace(/%\(\w+\)s/g, function(match){
			return that.renderFromContextStack(match.slice(2,-2), contextStack);
		});
	};

	this.stripTags = function(s) {
		// Removes HTML tags from `s`
		return s.replace(/(<([^>]+)>)/g,"");

	};

	this.assert = function(b) {
		if (!b) {
			throw new Error('Assertion error.');
		}
	};

};
// Dsq.Utils

/**
 * Dsq.Popup: Popup helper functions.
 */
Dsq.Popup = new function() {
	this.timeHide = new Array();
	this.timeShow = new Array();
	this.activePopup = {};
	this.profileCache = {};
	this.statusCache = {};

	this.showTimer = function(post_id) {
		// clear the hide timer
		clearTimeout(this.timeHide[post_id]);

		// start the timer
		if(!Dsq.Popup.profileIsOn && !Dsq.Thread.adminIsOn) {
			this.timeShow[post_id] = setTimeout("Dsq.Popup.popProfile(\"" + post_id + "\")", 400);
		}
	};

	this.hideTimer = function(post_id) {
		// clear the show timer
		clearTimeout(this.timeShow[post_id]);
	};

	this.updateProfile = function(username) {
		// Callback from /embed/profile.js
		if (this.statusCache[username]) {
			var statusEl = Dsq.$('dsq-profile-status-' + username);
			statusEl.innerHTML = this.statusCache[username];
			statusEl.style.display = 'block';
		}

		if (this.profileCache[username]) {
			var _cache = this.profileCache[username];

			var _genhtml = function(text) { return '<span><big>' + text + '</big></span>'; };
			var _no_comments = _genhtml(Dsq.FmtStrings.NUMBER_OF_COMMENTS(_cache.comments_count));
			var _no_likes = _genhtml(Dsq.FmtStrings.NUMBER_OF_LIKES(_cache.likes_count));
			var _no_points = _genhtml(Dsq.FmtStrings.NUMBER_OF_POINTS(_cache.points));

			var statsEl = Dsq.$('dsq-popup-profile-user-stats-' + username);
			statsEl.innerHTML = '';

			if (Dsq.jsonData.users[username].registered) {
				statsEl.innerHTML = _no_comments + _no_likes;
			}
			statsEl.innerHTML += _no_points;

			var activeSites = '';
			for (var i = 0; i < _cache.active_sites.length; i++) {
				var site = _cache.active_sites[i];
				activeSites += '<li><a href="' + site.url + '"> \
					<img src="' + site.favicon + '"/ width="16" height="16"/></a>\
					<a href="' + site.url + '">' + site.name + '</a></li>';
			}
			if (activeSites !== '') {
				Dsq.$('dsq-popup-profile-active-sites-' + username).innerHTML = activeSites;
			} else {
				Dsq.$('dsq-popup-profile-active-sites-' + username).innerHTML = 'This site.';
			}

			var moderatedSites = '';
			for (var i = 0; i < _cache.moderated_sites.length; i++) {
				var site = _cache.moderated_sites[i];
				moderatedSites += '<li><a href="' + site.url + '"> \
					<img src="' + site.favicon + '"/ width="16" height="16"/></a>\
					<a href="' + site.url + '">' + site.name + '</a></li>';
			}
			if (moderatedSites !== '') {
				Dsq.$('dsq-popup-profile-moderated-' + username).innerHTML = moderatedSites;
			} else {
				Dsq.$('dsq-popup-profile-moderated-wrapper-' + username).innerHTML = '';
			}
		}

		// Reposition popup after full HTML is rendered
		if(Dsq.Popup.activePopup && Dsq.Popup.activePopup.el) {
			Dsq.Popup.initPopup(Dsq.Popup.activePopup.el, Dsq.Popup.activePopup.id, Dsq.Popup.activePopup.type);
		}

	};

	this.showCookieMsgs = function() {
		var title = '';
		var message = '';
		var numAlerts = 0;

		Dsq.Utils.forEachIn(Dsq.jsonData.cookie_messages, function(k, v) {
			if (!v) return;

			switch(k) {
				// Cookie: Twitter
				case 'post_twitter':
					if (v === 'error') {
						title = 'Twitter Error!';
						message += '<li id="dsq-msg-twitter-error">Oops, we couldn\'t tweet this comment. Please check your <a href="http://disqus.com/account/services">account settings</a>.</li>';
					} else {
						var _msg = v.split(':');
						title = 'Tweeted!';
						message += '<li id="dsq-msg-twitter-success">Your comment was successfully tweeted. <a href="http://twitter.com/' + _msg[0] + '/status/' + _msg[1] + '">Click here to view the tweet</a>.</li>';
					}
					break;
				// Cookie: Unapproved Post
				case 'post_not_approved':
					title = 'Comment awaiting approval by a moderator';
					message += '<li id="dsq-msg-post-not-approved">Your comment must be approved by a moderator before appearing here.</li>';
					break;
				// Cookie: Profile Found
				case 'post_has_profile':
					title = 'Use your existing commenter profile';
					message += '<li id="dsq-msg-post-has-profile">You have just posted your commment as a <span class="dsq-badge-guest">Guest</span>, but you may already have a <span class="logo-disqus">Disqus</span> Profile.<br /><br /><a href="http://disqus.com/claim">Log in and claim this comment!</a></li>';
					break;
				case 'user_created':
					var _data = v.split(':');
					title = 'Profile created!';
					message += '<li id="dsq-msg-user-created">You have just created a <span class="logo-disqus">Disqus</span> Profile, the best way to claim, manage, and track your comments all over the web. \
					<br /><br />A confirmation is being sent to <strong>' + _data[1] + '</strong>. Please check for this email in order to verify your profile. \
					<ul class="dsq-list-tick"> \
						<li>Your username is <strong>' + _data[0] +'</strong>. <a href="http://disqus.com/people/' + _data[0] + '/" target="_blank">Click here to view your public profile</a>.</li> \
						<li>Be sure to set your profile picture, as well as connect your <span class="dsq-badge-facebook">Facebook</span> and <span class="dsq-badge-twitter">Twitter</span> accounts. <a href="http://disqus.com/account/" target="_blank">Click here for account settings</a>.</li> \
					</ul> \
					</li>'
					break;
				default:
					break;
			}
			numAlerts++;
		});

		if(numAlerts > 1) {
			message = '<ul class="dsq-list-bluebullet">' + message;
			message += '</ul>';
			title = 'Thanks for posting!';
		}
		if(numAlerts > 0) {
			if(typeof(disqus_cookie_msgs) == 'function') {
				disqus_cookie_msgs(message, title);
			} else {
				Dsq.Popup.popModal(message, title);
			}
		}
	};

	this.helpBadges = function(post_id) {
		var html = ' \
			<ul class="dsq-popup-help"> \
				<li><span class="dsq-badge dsq-badge-verified">Verified</span> has a <span class="logo-disqus">Disqus</span> Profile with a confirmed email address.</li> \
				<li><span class="dsq-badge dsq-badge-registered">Registered</span> has a <span class="logo-disqus">Disqus</span> Profile, but has not yet confirmed his or her email address.</li> \
				<li><span class="dsq-badge dsq-badge-guest">Guest</span> is not logged in with any account and has not claimed his or her comments.</li> \
				<li class="dsq-help-otheraccts">Other accounts</li> \
				<li><span class="dsq-badge dsq-badge-facebook">Facebook</span> is using his or her Facebook profile via Facebook Connect.</li> \
				<li><span class="dsq-badge dsq-badge-twitter">Twitter</span> is using his or her Twitter profile via Twitter Sign-in.</li> \
				<li><span class="dsq-badge dsq-badge-openid">OpenID</span> is using his or her OpenID.</li> \
			</ul> \
		';

		this.popModal(html, 'Help: Types of Commenters', post_id);
		return;
	};

	this.permalink = function(post_id) {
		var header = 'Link to this comment';
		var body = '<strong>You are anchored to</strong>:<br />' + document.location.protocol + '//' + document.location.host + document.location.pathname + document.location.search + '#comment-' + post_id;

		this.popModal(body, header, post_id);
	};

	this.login = function(header, body) {
		var h = header || 'Login or Register';
		var b = body || '';
		b += Dsq.Templates.frameLogin({id: 'dsq-popup-login'});
		b += '</iframe>'; // HACK: Sometimes there is something funky with the IFRAME SRC that causes no end tag
		this.popModal(b, h, null, true, 'dsq-popup-login');
	};

	this.blacklist = function(id) {
		var _meta = Dsq.jsonData.posts[id];
		var userData = Dsq.jsonData['users'][_meta.user_key];
		var title = 'Add to Blacklist';
		var message = ' \
		Adding this person to the blacklist will block him or her from commenting on this site. Check the following types that you would like to add to the blacklist:'
		+ (userData['registered'] ?
			'<div class="dsq-blacklist-option"> \
				<input id="dsq-blacklist-username" type="checkbox" checked> \
				<label for="dsq-blacklist-username"><strong>Username</strong>: ' + userData['username'] + '</label> \
			</div>'
			: '')
		+ (_meta.email ?
			'<div class="dsq-blacklist-option"> \
				<input id="dsq-blacklist-email" type="checkbox" checked> \
				<label for="dsq-blacklist-email"><strong>Email address</strong>: ' + _meta.email + '</label> \
			</div>'
			: '')
		+ '<div class="dsq-blacklist-option"> \
			<input id="dsq-blacklist-ip" type="checkbox" onclick="Dsq.$(\'dsq-blacklist-ip-warning\').style.display=\'block\'"> \
			<label for="dsq-blacklist-ip"><strong>IP address</strong>: ' + _meta.ip + '</label> \
		</div> \
		';

		message += ' \
			<p id="dsq-blacklist-ip-warning" style="display:none">	\
				Note: Blocking this person\'s IP address may also unintentionally prevent others, who share his/her IP address, from commenting on this site. \
				This may include people who are sharing the same computer, living in the same house, or using the same Internet provider. Only block an IP address as a last resort. \
			</p> \
		';

		message += ' \
			<p style="text-align:center"><button type="button" onclick="Dsq.Post.blockUser(' + id + '); this.disabled=true; this.innerHTML=\'Just one moment...\'">Add to Blacklist</button></p> \
		';

		Dsq.Popup.popModal(message, title);
	};

	this.remoteAccountSettings = function() {
		var body = '';
		// Set up IFrame.
		var params = {};
		var base_url = 'http://disqus.com/forums/winajuda/_auth/embed/remote_settings/';
		var attributes = {id: 'dsq-popup-account-settings'};
		if (typeof disqus_frame_theme != 'undefined') {
			params['theme'] = disqus_frame_theme;
		}

		body = Dsq.Templates._frameGeneric(base_url, params, attributes);
		this.popModal(body, 'Account Settings', null, true, 'dsq-popup-account-settings');
	};

	this.popModal = function(message, title, post_id, use_listener, extra_classes) {
		var container = document.createElement('div');
		var header, body;

		Dsq.Popup._closePopup(null, true);

		if(typeof(title) == 'undefined') { title = ''; }
		if(typeof(use_listener) == 'undefined') { use_listener = true; }

		if(post_id) {
			container.id = 'dsq-popup-message-' + post_id;
		} else {
			container.id = 'dsq-popup-message';
		}

		header = title;
		body = message;

		container.innerHTML = Dsq.Templates.popupModal(header, body);
		Dsq.Popup.initPopup(container, post_id, 'message', extra_classes);
		if(use_listener) {
			Dsq.Popup.popupListener = Dsq.Utils.addEventListener(document, 'mouseup', Dsq.Popup._closePopup);
		}
	};

	this.popAlert = this.popModal;

	this.loading = function(post_id) {
		var title = Dsq.Strings.JUST_A_MOMENT;
		var body = '<div style="text-align:center; padding: 5px 0 10px 0"><img src="http://media.disqus.com/images/loading.gif" alt="" /></div>'
		Dsq.Popup.lightbox(body, title, post_id);
	};

	this.lightbox = function(message, title, post_id) {
		// Wraps Dsq.Popup.popModal

		var overlay = document.createElement('div');
		overlay.id = 'dsq-overlay';
		overlay.className = 'dsq-overlay';
		Dsq.$b.appendChild(overlay);
		
		Dsq.Popup.popModal(message, title, post_id, false, 'dsq-lightbox');
	};

	this.popProfile = function(post_id, userKey) {
		var post = Dsq.jsonData['posts'][post_id];
		if (post && post.has_been_anonymized) {
			Dsq.Popup.popModal('This message was anonymized by its previous owner.', 'Anonymized', post_id);
			return;
		}

		if(post_id) {
			userKey = Dsq.jsonData['posts'][post_id].user_key;	
		}
		var userData = Dsq.jsonData['users'][userKey];
		var elId = 'dsq-popup-profile-' + userKey;
		var container = document.createElement('div');

		if(this.activePopup.el) {
			this._closePopup(null, true);
			if(this.activePopup.linkClicked) {
				this.activePopup.linkClicked = false;
				return;
			}
		}

		container.id = elId;
		container.innerHTML = Dsq.Templates.popupProfile(userKey);

		this.initPopup(container, post_id, 'profile');
		this.popupListener = Dsq.Utils.addEventListener(document, 'mouseup', this._closePopup);

		if(!this.profileCache[userKey]) {
			Dsq.Utils.execScript('http://disqus.com/embed/profile.js'
				+ '?username=' + userKey
				+ '&anon=' + (userData['registered'] ? 0 : 1)
				+ '&f=' + Dsq.jsonData['request'].forum);
		} else {
			this.updateProfile(userKey);
		}
	};

	this._closePopup = function(e, force) {
		var activePopup = Dsq.Popup.activePopup.el;
		var id = Dsq.Popup.activePopup.id;
		var link = 'dsq-avatar-' + id; // HACK: Specific to profile toggle target

		// HACK: This event should be gone if there is no active popup.
		if(!activePopup) {
			return;
		}
		if(force || !Dsq.Popup.isClicked(e, activePopup.id)) {
			// TODO: This is breaking iE?
			if(Dsq.Popup.popupListener) {
				Dsq.Utils.removeEventListener(Dsq.Popup.popupListener);
			}
			
			// Kill overlay
			var overlay = Dsq.$('dsq-overlay');
			if(overlay) { Dsq.Utils.deleteNode(overlay); }
			
			try {
				Dsq.Utils.deleteNode(activePopup);
			} catch(e) {
				// HACK: IE6 throws an error when using deleteNode() with a node containing a <table> in the html.
				activePopup.parentNode.removeChild(activePopup);
			}
			Dsq.Popup.activePopup = {};
		}

		if(!force && Dsq.Popup.isClicked(e, link)) {
 			Dsq.Popup.activePopup.linkClicked = true;
		}

	};

	this.initPopup = function(popup, post_id, type, extra_classes) {
		popup.className = 'dsq-popup dsq-popup-' + type + ' ' + (extra_classes ? extra_classes : '');
		if(Dsq.Utils.ie6 || Dsq.Utils.ie7) {
			// HACK: We can't modify the body before it's ready, so we need
			//       to use an IE-safe "DOMReady" workaround before loading
			//       our popup.
			Dsq.Utils.execOnReady(function() {Dsq.$b.appendChild(popup); });
		} else {
			Dsq.$b.appendChild(popup);
		}

		popup.style.display = 'block';

		var xPos = (Dsq.Utils.getWindowSize()[0] - popup.offsetWidth) / 2;
		var yPos = (Dsq.Utils.getWindowSize()[1] - popup.offsetHeight) / 2;

		if(Dsq.Utils.ie6) {
			yPos += Dsq.Utils.getScrollPos()[1];
		}

		popup.style.left = xPos + 'px';
		popup.style.top = yPos + 'px';

		Dsq.Popup.activePopup = {
			'el' : popup,
			'id' : post_id,
			'type': type,
			'linkClicked' : false
		};
	};

	this.isClicked = function(e, id) {
		var t = e.target || e.srcElement;
		while(t && t.parentNode) {
			if(t.id == id) {
				return true;
			}

			t = t.parentNode;
		}
		return false;
	};
};
// Dsq.Popup

/**
 * Dsq.Templates
 */
Dsq.Templates = new function() {
	/*
	 * Counter keeping track of the number of posts iterated over.
	 */
	this.postLoopCounter = 0;
	this.filters = {};
	this.addPostContainer = 'dsq-post-add';
	this.textareaContainer = 'dsq-post-add';

	this.registerTemplate = function(name, func) {
		this['$$_' + name] = func;

		if(typeof DsqLocal.Filters != 'undefined'
		&& typeof DsqLocal.Filters[name] == 'function') {
			// Push filters to this.filters to unify code.
			this.filters[name] = this.filters[name] || [];
			this.filters[name].push(DsqLocal.Filters[name]);
		}

		this[name] = function() {
			var ret;

			if(typeof DsqLocal.Templates != 'undefined'
			&& typeof DsqLocal.Templates[name] == 'function') {
				ret = DsqLocal.Templates[name].apply(this, arguments);
			}

			if(ret === undefined) {
				ret = this['$$_' + name].apply(this, arguments);
			}

			if(this.filters[name]) {
				var args = [ret];

				args.push.apply(args, arguments);
				for(var i = 0; i < this.filters[name].length; i++) {
					ret = this.filters[name][i].apply(this, args);
				}
			}

			return ret;
		};
	};

	this.registerFilter = function(name, func) {
		this.filters[name] = this.filters[name] || [];
		this.filters[name].push(func);
	};

	/**
	 * Dsq.Templates.Filters
	 */
	this.Filters = new function() {
		this.commentContainer = function(post_id, s) {
			var _meta = Dsq.jsonData.posts[post_id];
			var classes = [];
			if(Dsq.jsonData.request.page > 1) {
				classes.push('dsq-append');
			}

			//
			// Extra classes used for custom themes
			//

			if(_meta.depth) {
				classes.push('dsq-comment-child', 'dsq-depth-' + _meta.depth, 'dsq-parent-is-' + _meta.parent_post_id);
			}


			//

			if(_meta.author_is_creator) {
				// TODO: We need to deprecate the "special" class since it is not properly prefixed.
				classes.push('special', 'dsq-special');
			}
			if(_meta.author_is_moderator) {
				classes.push('dsq-moderator');
			}
			classes.push(['dsq-odd', 'dsq-even'][Dsq.Templates.postLoopCounter % 2]);

			s = s.substring(0, s.lastIndexOf('>'));
			return s + ' class="dsq-comment ' + classes.join(' ') + '" style="margin-left:' + _meta.depth*30 + 'px">';
		};

		this.commentContent = function(post_id, s) {
			var _meta = Dsq.jsonData.posts[post_id];
			if (_meta.killed) {
				return '<em>Comentário removido.</em>';
			} else if (!_meta.approved) {
				return '<em>This comment was flagged for review.</em>';
			}

			s = s.replace(Dsq.MEDIA_POST_RE, Dsq.MediaPostHandler);
			return s;
		};
	};

	//
	// Thread
	//
	// TODO: These need to be stripped of all Django template tags.

	this.authPost = function() {
		if (!Dsq.jsonData.context.show_reply) {
			return '';
		}
		var result = [];
		result = result.concat([
				'<div id="dsq-auth"',
						Dsq.jsonData.integration.reply_position ? 'class="dsq-auth-bottom"' : '',
						'>',
					'<div class="dsq-by">',
						'<a href="http://disqus.com" target="_blank">',
							(Dsq.jsonData.integration.disqus_logo ?
								Dsq.Utils.interpolate('<img src="%(media_url)s/images/embed/by-disqus.png" alt="discussion by DISQUS">') :
								Dsq.Utils.interpolate('<img src="%(media_url)s/images/embed/dsq-button-120x19.png" alt="discussion by DISQUS">')
							),
						'</a>',
					'</div>',
					'<div class="dsq-auth-header">',
						'<h3 id="dsq-add-new-comment" class="dsq-h3-addcomment">',
								Dsq.Strings.ADD_NEW_COMMENT,
						'</h3>',
						'<div id="dsq-login">',
						(!Dsq.jsonData.request.is_authenticated && Dsq.jsonData.forum.allow_anon_post
								? '<p class="dsq-login-message" id="dsq-login-message">You are commenting as a <a class="dsq-help" title="Click for more information" href="#" onclick="Dsq.Popup.helpBadges(); return false">Guest</a>. You may select one to log into:</p>'
								: '')
		]);
		if (!Dsq.jsonData.request.is_authenticated) {
			result = result.concat([
							Dsq.Utils.interpolate(
								'<a id="dsq-login-toggle" href="%(disqus_url)s%(login_url)s?next=article:%(thread_id)s" onclick="Dsq.Popup.login(); return false"><img class="dsq-login-icon" src="%(media_url)s/images/dsq-profile-btn.png" title="%(log_into)s" alt="%(log_into)s"/></a>',
								{login_url: Dsq.Urls.LOGIN, thread_id: Dsq.jsonData.thread.id, log_into: Dsq.Strings.LOG_INTO_DISQUS}
								),
							'&nbsp; ',
							(Dsq.jsonData.context.use_fb_connect ?
								'<div id="dsq-fbc-login" onlogin="DisqusFbcParentController.onLogin()" size="medium" background="light" length="short" style="display:inline; margin-right:7px"></div>' :
								''
							),
							(Dsq.jsonData.context.use_twitter_signin ?
								Dsq.Utils.interpolate(
									'<div id="dsq-twitter-login" class="dsq-twitter-login" onclick="Dsq.Twitter.startTwitterConnect();" style="display:inline; cursor: pointer"><img src="%(media_url)s/images/twitter-signin-short.png" style="margin-right:7px" /></div>', {}) : ''),
							(Dsq.jsonData.context.use_openid ?
								Dsq.Utils.interpolate(
									'<div id="dsq-openid-login" class="dsq-openid-login" onclick="Dsq.OpenID.requestURL();" style="display:inline; cursor:pointer;"><img src="%(media_url)s/images/openid-login-button.png"/></div>', {}
								) : '')
			]);
		}
		result = result.concat([
						'</div>', // dsq-login
					'</div>', // dsq-auth-header
					'<div id="dsq-authenticated" class="dsq-authenticated" ',
						Dsq.jsonData.request.is_authenticated ? 'style="display:block"' : '',
						'>',
						'<div class="dsq-authenticated-pic">',
								Dsq.Utils.interpolate('<a href="%(url)s" title="%(request_display_username)s">' +
																			'<img class="dsq-post-avatar" src="%(avatar_url)s" alt="" /></a>',
																			{avatar_url: Dsq.Urls.REQUEST_USER_AVATAR,
																			url: (Dsq.jsonData.request.is_remote
																					 ? Dsq.jsonData.request.url
																					 : Dsq.jsonData.settings.disqus_url + Dsq.Urls.REQUEST_USER_PROFILE) }),
						'</div>',
						'<div class="dsq-authenticated-info">',
							'<ul>',
								'<li>',
									(Dsq.jsonData.request.is_remote
										? Dsq.FmtStrings.LOGGED_IN_AS(
												Dsq.Utils.interpolate('<a href="%(url)s" title="%(request_display_username)s">%(request_display_username)s</a>', {url:Dsq.jsonData.request.url})
										  )
										: Dsq.FmtStrings.LOGGED_IN_AS(
												Dsq.Utils.interpolate('<a href="%(disqus_url)s%(profile_url)s" title="%(request_display_username)s">%(request_display_username)s</a>')
											)
									),
								'</li>',
								'<li class="logout">',
									(!Dsq.jsonData.request.is_remote
										? Dsq.Utils.interpolate('<img class="dsq-login-icon" src="%(media_url)s/images/dsqicon12.png" alt="%(logged_in_as)s"/>&nbsp',
											{logged_in_as: Dsq.FmtStrings.LOGGED_IN_AS(Dsq.jsonData.request.display_username)})
										: ''),

									(!Dsq.jsonData.request.is_remote
										? Dsq.Utils.interpolate('<a href="%(disqus_url)s%(logout_url)s?ctkn=%(csrf_token)s" title="%(logout_from_disqus)s">',
											{logout_url: Dsq.Urls.LOGOUT, csrf_token: Dsq.CSRF_TOKEN, logout_from_disqus: Dsq.FmtStrings.LOGOUT_FROM('DISQUS')})
										: ((Dsq.jsonData.request.remote_domain == 'twitter')
												? Dsq.Utils.interpolate('using Twitter (<a href="%(disqus_url)s%(logout_url)s?ctkn=%(csrf_token)s" title="Logout">Logout</a>)',
												 {logout_url: Dsq.Urls.LOGOUT, csrf_token: Dsq.CSRF_TOKEN})
												: ((Dsq.jsonData.request.remote_domain == 'openid')
													 ? Dsq.Utils.interpolate('using OpenID (<a href="%(disqus_url)s%(logout_url)s?ctkn=%(csrf_token)s" title="Logout">Logout</a>)',
													 {logout_url: Dsq.Urls.LOGOUT, csrf_token: Dsq.CSRF_TOKEN})
													 : ''
													)
											)
									),

									(!Dsq.jsonData.request.is_remote ? Dsq.FmtStrings.LOGOUT_FROM('<span class="logo-disqus">DISQUS</span>') : ''),
									'</a>',
								'</li>',
							'</ul>',
						'</div>',
					'</div>'
		]);
		if (Dsq.jsonData.context.use_fb_connect) {
			result = result.concat([
					'<div id="dsq-fbc-authenticated" class="dsq-authenticated">',
						'<div id="dsq-fbc-profilepic" class="dsq-authenticated-pic" uid="loggedinuser" type="FB.XFBML.ProfilePic" size="square" facebook-logo="true"></div>',
						'<div class="dsq-authenticated-info">',
							'<ul>',
								'<li>',
									'Logged in as <span id="dsq-fbc-name" uid="loggedinuser" type="FB.XFBML.Name" linked="true" useyou="false"></span>',
								'</li>',
								'<li class="logout">using Facebook Connect <a href="#" onclick="javascript:DisqusFbcParentController.logout();return false;">(Logout)</a></li>',
							'</ul>',
						'</div>',
					'</div>'
			]);
		}
		result = result.concat([
				'</div>', // dsq-auth
				'<div id="dsq-toolbar-items">',
				'</div>'
		]);
		result = result.concat([
					//
					//
					//
				((!Dsq.jsonData.forum.allow_anon_post && !Dsq.jsonData.request.is_authenticated) ?
					// Needs to be translated:
					('<p id="dsq-no-anon-msg">Required: Please log into <span class="logo-disqus">Disqus</span> ' +
					(Dsq.jsonData.context.use_fb_connect ? 'or connect with Facebook ' : '') +
					(Dsq.jsonData.context.use_twitter_signin ? 'or sign in with Twitter ' : '') +
					(Dsq.jsonData.context.use_openid ? 'or sign in using OpenID ' : '') +
					Dsq.Utils.interpolate('to comment on <strong>%(forum_name)s</strong>.</p>')) :
					''
				),
				'<div id="dsq-post-add"></div>',
				'<div style="margin:10px 0">',
				((Dsq.jsonData.forum.use_media) ?
						'<a href="#" id="dsq-media-link" onclick="Dsq.Post.showMenu(this, false, \'media\'); return false">' + Dsq.Strings.USE_MEDIA + ' <small>&#9660;</small></a>' :
						''),
				'</div>'
		]);
		return result.join('');
	};


	this.header = function() {

		var html = '\<h3 id="dsq-comments-count" class="dsq-h3-commentcount">\
	 Showing <span id="dsq-num-posts">54</span> of <span id="dsq-total-posts">54</span> Comments\
	 &nbsp;\
	 <span class="dsq-item-feed">\
	 <a href="http://winajuda.disqus.com/firefox_2009/latest.rss"><img src="http://media.disqus.com/images/embed/bullet-feed.png"></a>\
	 </span>\
	 </h3>\
	 <div id="dsq-options" style="margin:15px 0">\
	 <span class="dsq-item-sort">\
	 Ordenar discussão por:\
	 <select id="dsq-sort-select" onchange="Dsq.Thread.sortBy(this.value);">\
	 <option value="hot" selected="selected">Popular now</option>\
	 <option value="best" >Melhor avaliação</option>\
	 <option value="newest" >Recentes primeiro</option>\
	 <option value="oldest" >Antigos primeiro</option>\
	 </select>\
	 &nbsp;\
	 </span>\
	 <span class="dsq-item-cp"><a href="http://winajuda.disqus.com/firefox_2009/">Página da comunidade</a>&nbsp;&nbsp;&nbsp;</span>\
	 <span class="dsq-item-subscribe">\
	 <img src="http://media.disqus.com/images/embed/email.png" style="width:12px;height:12px;vertical-align:middle">\
	 <span id="dsq-subscribe">\
	 <a href="#" onclick="Dsq.Thread.subscribe(1); return false">Subscribe by email</a>\
	 </span>\
	 </span>\
	 </div>\
	 <div id="dsq-alerts">\
	 <p>Comments for this page are closed.</p>\
	 </div>\
		';

		
			html = Dsq.Templates.authPost() + html;
		

		
		if (Dsq.jsonData.request.is_moderator) { 
			html = ' \
			<div class="dsq-alert-message dsq-upgrade-message"> \
				<strong>Disqus upgrade available.</strong> Hi ' + Dsq.jsonData.request.display_username + ', this message is being displayed to you because you are a moderator of this site. <a href="#" onclick="Dsq.$(\'dsq-upgrade-message\').style.display=\'block\';this.style.display=\'none\';return false">Click here for details.</a> \
				<div style="display:none; margin-top:10px;" id="dsq-upgrade-message"> \
					A new theme is available with added features. <a href="http://disqus.com/comments/settings/' + Dsq.jsonData.forum.url + '/?p=customize">To change your theme, click here</a> and choose the theme Narcissus. \
					If you do not upgrade, you are missing out on features such as: real-time commenting, new sign-in integrations, and an upgrade interface. \
					<strong>This message will automatically go away in one week.</strong> \
				</div> \
			</div> \
			' + html; 
		}
		return html;
	};

	this.footer = function() {
		var html = Dsq.Templates.pagination();

		

		html += Dsq.Templates.reactions();

		
			html += Dsq.Templates.trackbacks();
		

		return html;
	};

	this.pagination = function() {
		var html = '';
		
		if (Dsq.$('dsq-pagination')) { Dsq.$('dsq-pagination').innerHTML = ''; }
		if (!Dsq.jsonData.thread.paginate) { return ''; }

		//
		// TODO: num_paginator still uses the template tag for pagination, 
		// 		while append_paginator does it all in JavaScript.
		//		This should all be in JavaScript.
		//

		if (Dsq.jsonData.thread.num_pages > 1 && Dsq.jsonData.request.page < Dsq.jsonData.thread.num_pages) {
			html = ' \<a class="dsq-paginate-append-text" href="#" onclick="Dsq.Thread.paginate(Dsq.jsonData.request.page + 1, this); return false">Mais comentários...</a>\
	 <button type="button" class="dsq-button-small dsq-paginate-append-button" onclick="Dsq.Thread.paginate(Dsq.jsonData.request.page + 1, this);">Load more comments</button>\
			';
		}
		
		if (Dsq.$('dsq-pagination')) {
			Dsq.$('dsq-pagination').innerHTML = html;
			return '';
		} else {
			return '<div id="dsq-pagination" class="dsq-pagination">' + html + '</div>';
		}
	};

	this.trackbacks = function() {
		var html = '';

		if(typeof DsqLocal != 'undefined' && DsqLocal.trackback_url && DsqLocal.trackbacks) {
			var trackbacks = DsqLocal.trackbacks;
			var trackback_url = DsqLocal.trackback_url;
		} else {
			var trackbacks = [
			
			
			];
			var trackback_url = 'http://winajuda.disqus.com/firefox_2009/trackback/';
		}

		html += '<div class="dsq-item-trackback">URL de Trackback&nbsp;&nbsp;<input class="dsq-trackback-url" onclick="this.select()" readonly="true" value="' + trackback_url + '"></div>';

		if(trackbacks.length) {
			html += '<ul id="dsq-references">'
			for(var i = 0; i < trackbacks.length; i++) {
				var trackback = trackbacks[i];
				html += '<li><cite><a href="' + trackback.author_url + '" rel="nofollow">' + trackback.author_name + '</a></cite> \
						<p class="dsq-meta">' + trackback.date + '</p> \
						<p class="dsq-content">' + trackback.excerpt + '</p></li>';
			}
			html += '</ul>';
			html = '<h3 class="dsq-h3-trackbacks">Trackbacks</h3>' + html;
		}

		return html;
	}

	this.showRetweets = function(id, limit, element_id /* Optional */) {
		var source, html = '';

		for (var i = 0, reaction; reaction = Dsq.jsonData.reactions[i]; i++) {
			if (reaction.id === id) {
				source = reaction.retweets;
			}
		}

		if (source) {
			if (limit === 0) {
				limit = source.length;
			}

			for (var j = 0; j < limit; j++) {
				var rt = source[j];
				html += '<a href="' + rt.url + '">' + rt.author_name + '</a>'	+ ((j === (limit - 1)) ? '.' : ', ');
			}
		}

		if (element_id === undefined) {
			return html;
		}

		var element = document.getElementById(element_id);
		element.innerHTML = html;
		return element;
	};

	this.showMoreReactions = function(reactions, has_more, start, limit) {
		var link = document.getElementById('dsq-show-more-reactions');
		var container = link.parentNode;
		container.removeChild(link);

		for (var i = 0, reaction; reaction = reactions[i]; i++) {
			var el = Dsq.Templates.generateReactionHTML(reaction);
			if (el) {
				container.innerHTML += el;
			}
		}

		if (has_more) {
			var d = Dsq.jsonData.settings.disqus_url;
			var f = Dsq.jsonData.forum.url;
			var t = Dsq.jsonData.thread.id;
			var s = start;
			var l = limit;

			var handler = 'Dsq.Utils.execScript(\'' + d + '/forums/' + f + '/more_reactions.js?t=' + t + '&s=' + s + '&l=' + l + '\', true); return false;';
			container.innerHTML += '<li id="dsq-show-more-reactions"><a href="#" onclick="' + handler + '">Show more reactions</a></li>';
		}
	};

	this.generateReactionHTML = function(reaction) {
		if (reaction.body === null || reaction.body == '') {
			return;
		}

		if (reaction.author_name === '') {
			reaction.author_name = '&nbsp;';
		}

		if (reaction.url === '') {
			reaction.url = reaction.get_service_url;
		}

		/* Reaction HTML begins */
		var item = '<li class="dsq-reaction" id="dsq-reaction-' + reaction.id + '">'
			+ '<div class="dsq-reaction-header">'
			+ '<div class="dsq-header-avatar">';

		if (reaction.author_url && reaction.author_url !== '') {
			item += '<a target="_blank" href="' + reaction.author_url +'">';
		} else {
			item += '<a target="_blank" href="#" onclick="return false;">';
		}

		if (reaction.avatar_url && reaction.avatar_url !== '') {
			item += '<img src="' + reaction.avatar_url + '"/>';
		} else {
			item += '<img src="' + Dsq.jsonData.media_url + '/images/noavatar32.png"/>';
		}

		var service_icon = (reaction.get_service_name == 'trackback' || reaction.get_service_name == 'pingback' ? 'rss' : reaction.get_service_name.replace(' ', ''));
		item += '<img class="dsq-service-icon" src="' + Dsq.jsonData.media_url + '/images/reactions/services/' + service_icon + '.png"/>'
			+ '</a></div>'
			+ '<cite><span>' + reaction.author_name + '</span></cite>'
			+ '<span class="dsq-header-meta"><a class="dsq-header-time">' + reaction.date_created + '</a></span>'
			+ '</div><div class="dsq-reaction-body">'
			+ '<div class="dsq-reaction-message">' + reaction.body + '</div>'
			+ '<div class="dsq-reaction-footer">From <a class="dsq-service-name" target="_blank" href="' + reaction.url + '">' + reaction.get_service_name + '</a> '
			+ 'via <a href="' + reaction.source_url + '">' + (reaction.source == 'backtype' ? 'BackType' : 'UberVU') + '</a>'
			+ (Dsq.jsonData.request.is_moderator || Dsq.jsonData.request.is_global_moderator ? '&nbsp;&bull;&nbsp;<a class="dsq-hide-reaction" href="#" onclick="Dsq.Reaction.hide(' + reaction.id + '); return false;">Hide</a>' : '') + '</div></div>';

		if(reaction.retweets) {
			var num_retweets = reaction.retweets.length;
			if (num_retweets > 0) {
				item += '<div class="dsq-reaction-retweets">';
				if (num_retweets == 1) {
					item += 'One more retweet from <a href="' + reaction.retweets[0].url + '">'  + reaction.retweets[0].author_name + '</a>';
				} else {
					item += (num_retweets + ' more retweets from ');

					item += '<span id="dsq-reaction-retweets-' + reaction.id + '">';
					var n_tweets = (num_retweets > 15) ? 15 : num_retweets;
					item += Dsq.Templates.showRetweets(reaction.id, n_tweets);

					if (n_tweets != num_retweets) {
						item += '</span> <a onclick="Dsq.Templates.showRetweets(' + reaction.id + ', 0, \'dsq-reaction-retweets-' + reaction.id + '\');'
							+ 'this.parentNode.removeChild(this); return false;" href="#">Show all</a>';
					}
				}
				item += '</div>';
			}
		}

		item += '</li>'; /* Reaction HTML ends */
		return item;
	};

	this.reactions = function() {
		var html, reaction;

		if (Dsq.jsonData.reactions === undefined || Dsq.jsonData.reactions.length === 0) {
			return '';
		}

		html = '';
		for (var i = 0; reaction = Dsq.jsonData.reactions[i]; i++) {
			var item = Dsq.Templates.generateReactionHTML(reaction);
			if (item) {
				html += item;
			}
		}

		if (Dsq.jsonData.has_more_reactions) {
			var d = Dsq.jsonData.settings.disqus_url;
			var f = Dsq.jsonData.forum.url;
			var t = Dsq.jsonData.thread.id;
			var s = Dsq.jsonData.reactions_start;
			var l = Dsq.jsonData.reactions_limit;

			var handler = 'Dsq.Utils.execScript(\'' + d + '/forums/' + f + '/more_reactions.js?t=' + t + '&s=' + s + '&l=' + l + '\', true); return false;';
			html += '<li id="dsq-show-more-reactions"><a href="#" onclick="' + handler + '">Show more reactions</a></li>';
		}

		return '<h3 class="dsq-h3-reactions">Reactions</h3><ul id="dsq-reactions" class="dsq-reactions">' + html + '</ul>';
	};
	
	this.missingPermissions = function() {
		return '	<p>Comments for this page are closed.</p>\n';
	};

	//
	// Post
	//

	this.prependPost = function(post_id) {
		var html = '<div id="comment-' + post_id + '"></div>';
		return html;
	};

	this.appendPost = function(post_id) {
		var html = '<div id="dsq-comment-reply-' + post_id + '"></div>';
		return html;
	};

	this.postPrependHeader = function(post_id) {
		var _meta = Dsq.jsonData.posts[post_id];
		var userData = Dsq.jsonData['users'][_meta.user_key];

		var _includeServices = function() {
			var userServices = Dsq.Post.getUserServices(null, post_id);
			var html = '';
			var hiddenThreshold = 3; // Define # of services to show before stuffing them in hidden div

			for(var i = 0; i < userServices.length; i++) {
				html +=
				(i == hiddenThreshold
					? '<li id="dsq-drop-hidden-' + post_id +'" class="dsq-drop-hidden"><ul>'
					: '')
				+ '<li class="dsq-drop-services"> \
					<a class="dsq-service-' + userServices[i].name.toLowerCase() + '" href="' + userServices[i].url + '" target="_blank"> \
						<img src="' + Dsq.jsonData.media_url + '/images/embed/services/' + userServices[i].name.toLowerCase() + '.png" alt="' + userServices[i].name.toLowerCase() + '">'
					+ userServices[i].name
					+ '</a> \
				</li>';
			}

			if(i >= hiddenThreshold) {
				html += '</ul></li> \
				<li id="dsq-drop-more-' + post_id + '" class="dsq-drop-more"><a href="#" onclick="Dsq.Post.dropProfileMore(this, '+ post_id + '); return false"><small>&#9660;</small></a></li> \
				';
			}
			return html;
		};

		return ' \
			<div class="dsq-header-avatar" id="dsq-header-avatar-' + post_id + '" onmouseover="Dsq.Post.dropProfile(' + post_id + ')"> \
				<a id="dsq-avatar-' + post_id + '" class="dsq-avatar" href="' + userData.url + '" onclick="Dsq.Popup.popProfile(' + post_id + '); return false;">'
			+ (Dsq.jsonData.forum.show_avatar
				? '<img src="' + Dsq.jsonData.users[_meta.user_key].avatar + '" alt="" />'
				: '')
			+ '</a>'
			+ '</div> \
		';
	};

	this.postAppendHeader = function(post_id) {
		var _meta = Dsq.jsonData.posts[post_id];

		return ''
			+ (_meta.author_is_moderator
				? '<img class="dsq-mod-star" src="http://media.disqus.com/images/bullet-star.png" title="Moderator" alt="" />'
				: '')
			+ '<span class="dsq-header-meta"> \
				<a id="dsq-time-' + post_id + '" class="dsq-header-time" href="#comment-' + post_id + '" title="Permalink">' + _meta.date + '</a> \
			</span>';
	};

	this.preBody = function(post_id) {
		return '';
	}

	this.postBody = function(post_id) {
		// TODO: Deprecate flagging conditional
		var _meta = Dsq.jsonData.posts[post_id];
		return ''
			+ (_meta.edited
				? '<p class="dsq-editedtxt">(Edited by a moderator)</p>'
				: '')
			;
	};

	this.postFooter = function(post_id) {
		// TODO: Use media should be conditional
		var _meta = Dsq.jsonData.posts[post_id];
		if(_meta.killed) { return ''; }

		return ' \
			<div class="dsq-comment-footer" id="dsq-comment-footer-' + post_id + '"> \
				<div id="dsq-points-' + post_id + '" class="dsq-likedtxt">'
				+ (_meta.points
					? _meta.points + Dsq.Utils.pluralize(_meta.points, ' person', ' people') + ' liked this comment.'
					: '')
				+ '</div>'
				+ '<ul class="dsq-comment-options dsq-list-style">'
				+ (_meta.votable
					? '<li class="dsq-list-first dsq-rate" id="dsq-rate-cont-' + post_id + '">'
					+ (!_meta.up_voted
						? '<a href="#" onclick="Dsq.Post.rate(this, ' + post_id + ', 1); return false;">Gostei</a>'
						: 'Você gostou deste comentário.') + '</li>'
					: '')
				+ '<li class="dsq-report' + (!_meta.votable ? ' dsq-list-first' : '') + '" id="dsq-post-report-' + post_id + '"><a href="#" class="dsq-post-report" onclick="Dsq.Post.report(' + post_id + ', false); return false;">Reportar</a></li> \
				</ul> \
				<ul class="dsq-list-style">'
				+ (_meta.can_reply
					? '<li class="dsq-list-first"><a href="#" id="dsq-reply-link-' + post_id +'" onclick="Dsq.Post.toggleReply(this, ' + post_id +'); return false;">responder</a></li>'
					: '')
				+ (_meta.can_reply && !_meta.has_replies && _meta.from_request_user
					? '<li id="dsq-edit-el-' + post_id + '"><a id="dsq-edit-link-' + post_id + '" href="#" onclick="Dsq.Post.edit(this, ' + post_id + '); return false;">editar</a></li>'
					: '')
				+ '<li class="' + (!_meta.can_reply ? 'dsq-list-first' : '') + '" id="dsq-more-el-' + post_id + '"><a id="dsq-more-link-' + post_id + '" href="#" onclick="Dsq.Post.showMenu(this, ' + post_id + ', \'more\'); return false">mais <small>&#9660;</small></a></li>'
				+ (Dsq.jsonData.forum.use_media
					? '<li id="dsq-media-el-' + post_id +'" style="display:none"><a id="dsq-media-link-' + post_id + '" href="#" onclick="Dsq.Post.showMenu(this, ' + post_id + ', \'media\'); return false">Usar multimídia <small>&#9660;</small></a></li>'
					: '')
				+ '</ul>'
				+ '<div id="dsq-reply-bar-' + post_id + '" class="dsq-reply-bar" style="display:none"> \
						<div id="dsq-reply-bar-items-' + post_id + '" class="dsq-reply-bar-items"> \
						</div> \
						<div id="dsq-reply-bar-auth-' + post_id + '" class="dsq-reply-bar-auth"> \
							 \
								 \
								 	<a href="#" class="dsq-help dsq-reply-req-opt" title="You are commenting as a Guest. You may choose to log into an existing DISQUS Profile, your Facebook, Twitter or OpenID account to comment on WinAjuda" onclick="Dsq.Popup.helpBadges(); return false">Optional:</a> \
								 \
								<img class="dsq-login-icon" src="http://media.disqus.com/images/dsq-favicon-16x16.png" alt="" /> \
								<a id="dsq-reply-login-' + post_id + '" href="http://disqus.com/profile/login/?next=article:33213312" onclick="Dsq.Popup.login(); return false">Login</a> \
								 \
									&nbsp;or&nbsp; \
									<img class="fb_login_image" src="http://static.ak.fbcdn.net/images/fbconnect/login-buttons/connect_light_small_short.gif" alt="Facebook Connect"/> \
									<a href="#" onclick="FB.Connect.requireSession(DisqusFbcParentController.onLogin); return false;">Connect</a> \
								 \
								&nbsp;or&nbsp; \
									<img src="http://media.disqus.com/images/twitter-signin-icon.png" alt="" /> \
									<a href="#" onclick="Dsq.Twitter.startTwitterConnect(); return false">Sign-in</a> \
								 \
								&nbsp;or&nbsp; \
									 <img src="http://media.disqus.com/images/openid-login-icon.png" alt="" /> \
									 <a href="#" onclick="Dsq.OpenID.requestURL(); return false">OpenID</a> \
								 \
							 \
						</div> \
					</div> \
					<div id="dsq-reply-' + post_id + '"></div> \
			</div> \
		';
	};

	//
	// Iframes
	//

	this._makeAttributes = function(attributes) {
		// Makes a tag attributes string out of an object.
		// Caller is responsible for making sure nothing needs to be escaped.
		var result = [];
		for (key in attributes) {
			result.push(' ' + key + '="' + attributes[key] + '"');
		}
		result = result.join('');
		return result;
	};

	this._frameGeneric = function(base_url, params, attributes) {
		if(typeof(disqus_callback_params) == 'undefined') {
			disqus_callback_params = '';
		}

		var default_params = {
			// TODO: These should be moved to Dsq.jsonData.
			'f'				: 'winajuda',
			't'				: 'firefox_2009',
			// Do we need encodeURIComponent here?
			'ifrs'			: encodeURIComponent(disqus_iframe_css),
			'to_redirect'	: encodeURIComponent(window.location),
			'cbp'			: disqus_callback_params,
			'ff'			: Dsq.Thread.ff,
			'fc'			: Dsq.Thread.fc,
			'ac'			: Dsq.Thread.ac,
			'default_text'	: disqus_default_text
		};

		base_url += '?' + (new Date()).getTime();
		// Add params to default_params.
		if(params) {
			for(var key in params) {
				if(params.hasOwnProperty(key)) {
					default_params[key] = encodeURIComponent(params[key]);
				}
			}
		}
		// Build querystring.
		for(var key in default_params) {
			if(default_params[key] && default_params.hasOwnProperty(key)) {
				base_url += '&' + key + '=' + default_params[key];
			}
		}

		return [
			'<iframe marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0"',
			(' allowtransparency="true" src="' + base_url + '"'),
			this._makeAttributes(attributes),
			'</iframe>'].join('');
	};

	this.frameLogin = function(opt_attributes) {
		var params = {};
		var base_url = 'http://disqus.com/embed/login.html';
		var attributes = opt_attributes || {};
		attributes['class'] = 'dsq-post-login';

		if(typeof disqus_frame_theme != 'undefined') {
			params['theme'] = disqus_frame_theme;
		}
		return this._frameGeneric(base_url, params, attributes);
	};

	this.frameReply = function(post_id, extra_params, attributes) {
		// Returns the HTML for a reply iframe. Called by Dsq.Iframes.setReplyIframeToContainer
		var _meta = (typeof post_id != 'undefined') ? Dsq.jsonData.posts[post_id] : false;
		var base_url = Dsq.Urls.REPLY;
		var params = {
			'def_email'		: disqus_def_email,
			'def_name'		: disqus_def_name
		};
		if(extra_params) {
			for(var key in extra_params) {
				if(extra_params.hasOwnProperty(key)) {
					params[key] = extra_params[key];
				}
			}
		}
		if(_meta) {
			params['parent_post'] = post_id;
		}
		if(typeof disqus_per_page != 'undefined') {
			params['per_page'] = disqus_per_page;
		}
		if(typeof disqus_frame_theme != 'undefined') {
			params['theme'] = disqus_frame_theme;
		}
		if(Dsq.jsonData.request.is_authenticated) {
			attributes['class'] += '-authenticated';
		}
		return this._frameGeneric(base_url, params, attributes);
	};

	this.frameEdit = function(post_id) {
		var _meta = (typeof post_id != 'undefined') ? Dsq.jsonData.posts[post_id] : false;
		var base_url = 'http://disqus.com/embed/edit.html';
		var params = {
			'p' : post_id
		};
		return this._frameGeneric(base_url, params, {'class': 'dsq-post-edit', 'name': 'dsq-edit_' + post_id + '-frame'});
	};

	//
	// Menus
	//

	this.menuMore = function(post_id) {
		// TODO: "Remove post" button should hide menu.
		var _meta = Dsq.jsonData.posts[post_id];
		var userData = Dsq.jsonData['users'][_meta.user_key];
		return ' \
			<li><a href="#comment-' + post_id + '" onclick="Dsq.Popup.permalink(' + post_id + ')">link</a></li> \
			<li><a href="#" onclick="Dsq.Popup.popProfile(' + post_id + '); return false;">Perfil</a></li>'
	+ (Dsq.jsonData.request.is_moderator || Dsq.jsonData.request.is_global_moderator
		? '	<li class="dsq-menu-sep"></li>' + (_meta.email ? '<li class="dsq-admin-email">' + _meta.email + '</li>' : '')
		+ '	<li class="dsq-admin-ip">' + _meta.ip + '</li> \
			<li class="dsq-menu-sep"></li>'
		+ (Dsq.jsonData.request.moderator_can_edit
			? ' <li class="dsq-admin-edit"><a href="#" onclick="Dsq.Post.edit(this, ' + post_id + '); return false;">Publicar comentário</a></li>'
			: '')
		+ ' <li class="dsq-remove"><a href="#" onclick="Dsq.Post.removePost(' + post_id + ', 1); return false;">Remover comentário</a></li> \
			<li class="dsq-report-spam"><a href="#" onclick="Dsq.Post.reportSpam(' + post_id + '); return false;">Mark Spam</a></li> \
			<li class="dsq-block-user"><a href="#" onclick="Dsq.Popup.blacklist(' + post_id + '); return false">Block User</a></li>'
		: '');
	};

	this.menuMedia = function(post_id) {
		return ' \
			<li><a href="#" onclick="Dsq.Post.toggleMediaReply(this, ' + post_id + ', \'seesmic\'); return false;">Gravar vídeo</a></li> \
		';
	};

	this.dropProfile = function(post_id) {
		var _meta = Dsq.jsonData.posts[post_id];
		var userData = Dsq.jsonData['users'][_meta.user_key];

		var _includeServices = function() {
			var userServices = Dsq.Post.getUserServices(null, post_id);
			var html = '';
			var hiddenThreshold = 3; // Define # of services to show before stuffing them in hidden div

			for(var i = 0; i < userServices.length; i++) {
				html +=
				(i == hiddenThreshold
					? '<li id="dsq-drop-hidden-' + post_id +'" class="dsq-drop-hidden"><ul>'
					: '')
				+ '<li class="dsq-drop-services"> \
					<a class="dsq-service-' + userServices[i].name.toLowerCase() + '" href="' + userServices[i].url + '" target="_blank"> \
						<img src="' + Dsq.jsonData.media_url + '/images/embed/services/' + userServices[i].name.toLowerCase() + '.png" alt="' + userServices[i].name.toLowerCase() + '">'
					+ userServices[i].name
					+ '</a> \
				</li>';
			}

			if(i >= hiddenThreshold) {
				html += '</ul></li> \
				<li id="dsq-drop-more-' + post_id + '" class="dsq-drop-more"><a href="#" onclick="Dsq.Post.dropProfileMore(this, '+ post_id + '); return false"><small>&#9660;</small></a></li> \
				';
			}
			return html;
		};


		var menu = '<li class="dsq-drop-showlnk"><a href="#" onclick="Dsq.Popup.popProfile(' + post_id + '); return false;">Expand &#8663;</a></li>';
		var pointsMessage = '';
		if (userData['registered']) {
			pointsMessage = 'with ' + userData['points'] + ' points (more points are better).';
		}

		if (userData['is_remote']) {
			var domain = userData['remote_domain_name'];
			menu += '<li class="dsq-drop-badge" title="' + userData['display_name'] + ' is a ' + domain + ' user ' + pointsMessage + '" onclick="Dsq.Popup.helpBadges()">';
			menu += '<span class="dsq-badge-' + domain.toLowerCase() + '">' + domain + '</span></li>';
		} else if (userData['registered']) {
			if (userData['verified']) {
				menu += '<li class="dsq-drop-badge" title="' + userData['display_name'] + ' has a verified commenter profile ' + pointsMessage + '" onclick="Dsq.Popup.helpBadges()">';
				menu += '<span class="dsq-badge-verified">Verified</span></li>';
			} else {
				menu += '<li class="dsq-drop-badge" title="' + userData['display_name'] + ' has a registered, but unverified, commenter profile ' + pointsMessage + '" onclick="Dsq.Popup.helpBadges()">';
				menu += '<span class="dsq-badge-registered">Registered</span></li>';
			}
		} else {
			menu += '<li class="dsq-drop-badge" title="' + userData['display_name'] + ' has not claimed this commenter profile." onclick="Dsq.Popup.helpBadges()"><span class="dsq-badge-guest">Guest</span></li>';
		}

		menu += _includeServices();
		return menu;
	};

	//
	// Popups
	//

	this._popupGeneric = function(content) {
		return ' \
		<div class="dsq-popup-content"> \
			<div class="dsq-popup-top"></div> \
			<div class="dsq-popup-body" class="clearfix"> \
				<div class="dsq-popup-body-padding"> \
					<div class="dsq-popup-header"> \
						<a class="dsq-close-link" href="#" onclick="Dsq.Popup._closePopup(null, true); return false"><img src="http://media.disqus.com/images/modal-close.png" alt="" /></a>'
						+ content['header']
					+ '</div>'
					+ content['body']
					+ '<div class="powered-by"><a href="http://disqus.com/comments/">Powered by <img src="http://media.disqus.com/images/embed/disqus-logo.png" alt="Disqus Comments" style="margin-bottom:-5px" /></a></div> \
				</div> <!-- padding --> \
			</div> <!-- body --> \
			<div class="dsq-popup-bottom"></div> \
		</div> \
		';
	};

	this.popupProfile = function(user_key) {
		var userServices = Dsq.Post.getUserServices(user_key, null);
		var userData = Dsq.jsonData['users'][user_key];
		var headerHtml = '';
		var bodyHtml = '';
		var content = {};

		var _includeServices = function() {
			var html = '';
			for(var i = 0; i < userServices.length; i++) {
				html +=
				(i == 0
					? '<h4>Connections</h4><ul>'
					: '')
				+ '<li> \
					<img src="' + Dsq.jsonData.media_url + '/images/embed/services/' + userServices[i].name.toLowerCase() + '.png" alt="' + userServices[i].name.toLowerCase() + '" title="' + userServices[i].name.toLowerCase() + '" /> \
					<a class="dsq-service-' + userServices[i].name.toLowerCase() + '" href="' + userServices[i].url + '" target="_blank">'
					+ userServices[i].name
					+ '</a> \
				</li>'
				+ (i+1 == userServices.length ? '</ul>' : '');
			}
			return html;
		};

		headerHtml = ' \
			<table> \
				<tr> \
					<td> \
						<a class="dsq-profile-userurl" href="' + userData.url + '"><img class="dsq-popup-profile-avatar" src="' + userData['avatar'] + '" alt="" /></a> \
					</td> \
					<td> \
						<div class="dsq-popup-profile-user"> \
							<h3>' + userData['display_name'] + '</h3> \
							<div class="dsq-popup-profile-user-stats" id="dsq-popup-profile-user-stats-' + user_key + '">Loading...</div> \
						</div> \
					</td> \
				</tr> \
			</table> \
		';

		bodyHtml = ' \
			<div class="dsq-popup-profile-state"> \
				This is a&nbsp;<span class="'
					+ (userData['registered']
						? (userData['verified']
							? ' dsq-badge-verified'
							: (userData['is_remote']
								? ' dsq-badge-' + userData['remote_domain_name'].toLowerCase()
								: ' dsq-badge-registered')
							)
							: ' dsq-badge-guest') + '">'
			+ (userData['registered']
				? (userData['verified']
					? 'Verified'
					: (userData['is_remote']
						 ? userData['remote_domain_name']
						 : 'Registered')
					)
				: 'Guest')
			+ '</span>&nbsp;commenter profile.'
			+ '&nbsp;<a class="dsq-profile-userurl" href="' + userData.url + '"><strong>View more comments </strong></a>'
			+ (!userData['points']
				? '<p class="dsq-popup-notice">If this is you, <a href="http://disqus.com/profile" target="_blank">claim it now</a> to manage your comments.</p>'
				: '')
			+ ((userData['registered'] && !userData['verified'] && (Dsq.jsonData.request.username && (Dsq.jsonData.request.username == userData['username'])) && !userData['is_remote'])
				? '<p class="dsq-popup-notice"><strong>Alert</strong>: You have not verified this account. <a href="http://disqus.com/verify">Verify it now.</a></p>'
				: '')
			+ '</div> \
			<div id="dsq-profile-status-' + user_key + '" class="dsq-popup-profile-status" style="display:none"></div> \
			<div class="dsq-popup-profile-snapshot"> \
				<table> \
					<tr> \
						<td> \
							<div id="dsq-popup-profile-active-sites-wrapper-' + user_key + '"> \
								<h4>Most active sites</h4> \
								<ul id="dsq-popup-profile-active-sites-' + user_key + '"> \
									<li>Loading...</li> \
								</ul> \
							</div> \
						</td> \
						<td>'
							+ _includeServices()
							+ '<div id="dsq-popup-profile-moderated-wrapper-' + user_key + '"> \
								<h4>Moderator of</h4> \
								<ul id="dsq-popup-profile-moderated-' + user_key + '"> \
									<li>Loading...</li> \
								</ul> \
							</div> \
						</td> \
					</tr> \
				</table> \
			</div> \
			';

		content = {
			'header': headerHtml,
			'body': bodyHtml
		};

		return this._popupGeneric(content);
	};

	this.popupReblog = function() {
		var headerHtml = '';
		var bodyHtml = '';
		var content = {};

		headerHtml = ' \
			<cite><span>Reblog this comment</span></cite> \
		';

		bodyHtml = ' \
			<div id="dsq-reblog-form" class="dsq-reblog-form"> \
			</div> \
		';

		content = {
			'header': headerHtml,
			'body': bodyHtml
		};

		return this._popupGeneric(content);
	};

	this.popupModal = function(title, message) {
		var headerHtml = '';
		var bodyHtml = '';
		var content = {};

		headerHtml = ' \
			<h3>' + title + '</h3> \
		';

		bodyHtml = message;

		content = {
			'header': headerHtml,
			'body': bodyHtml
		};

		return this._popupGeneric(content);
	};

	this.alertContent = function(name, post_id) {
		var alert = {
			'post_not_approved': {
				'title': 'Comment awaiting approval by a moderator',
				'message': 'Thanks for posting. Your comment must be approved by a moderator before appearing here.'
			},
			'post_has_profile': {
				'title': 'Use your existing commenter profile',
				'message': 'You have just posted your commment as a <span class="dsq-badge dsq-badge-guest">Guest</span>, but you may already have a <span class="dsq-badge dsq-badge-registered">Registered</span> commenter profile.<br /><br /><a href="http://disqus.com/claim">Log in and claim this comment!</a>'
			}
		};
		return alert[name] || false;
	};

	//
	// Actions
	//

	this.voted = function(post_id, points, vote) {
		// Update number of points
		Dsq.$('dsq-points-' + post_id).innerHTML = points + Dsq.Utils.pluralize(points, ' person', ' people') + ' liked this comment.';

		// Update link text
		if(vote) {
			Dsq.$('dsq-rate-cont-' + post_id).innerHTML = 'Você gostou deste comentário.';
		}
	};

	this.subscribed = function(status) {
		var title, message;

		if(status) {
			title = 'Subscribed!';
			message = 'You have subscribed to this comment thread. New comments will be sent directly to your email inbox, where you may read and respond by email.';
			Dsq.$('dsq-subscribe').innerHTML = ' \
				<a href="#" onclick="Dsq.Thread.subscribe(0); return false">Unsubscribe</a> \
			';
		} else {
			title = 'Unsubscribed';
			message = 'You have unsubscribed to this comment thread. New comments will no longer be sent to your email inbox.';
			Dsq.$('dsq-subscribe').innerHTML = ' \
				<a href="#" onclick="Dsq.Thread.subscribe(1); return false">Subscribe by email</a> \
			';
		}

		Dsq.Popup.popModal(message, title);

	};
	
	this.highlighted = function() {
		Dsq.Popup.popModal('This comment has been highlighted.', 'Highlighted comment');
	};

	//
	// Media
	//

	this.mediaSeesmic = function(id, thumb) {
		return ' \
			<div id="dsq-seesmic-' + id + '_preview" class="dsq-seesmic-preview"><a href="http://www.seesmic.com/video/' + id + '" target="_blank" class="see_link">&nbsp;</a> \
				<div style="display:block;width:160px; height:120px; border:none; background-image:url(http://t.seesmic.com/thumbnail/' + thumb + ')"> \
					<div id="dsq-seesmic-' + id + '_hide" class="seePlayOverlay" style="display:none;"><img onclick="see_play_video(\'' + id + '\',false)" src="http://media.disqus.com/images/seesmic/stopOverlay.png" width="50" height="50" style="cursor:pointer; cursor:hand; padding-top: 30px; padding-left: 50px" alt="" /></div> \
					<div id="dsq-seesmic-' + id + '_show" class="seePlayOverlay"><img onclick="see_play_video(\'' + id + '\',true)" src="http://media.disqus.com/images/seesmic/playOverlay.png" width="50" height="50" style="cursor:pointer; cursor:hand; border:none; padding-top: 30px; padding-left: 50px" alt="" /></div> \
				</div> \
			</div> \
			<div id="' + id + '_content" style="display:block; width:100%; padding-top:5px"></div> \
		';
	};

	//
	// Callbacks
	//

	this.postComment_onSuccess = function(parent_post_id) {
		// Increment post count
		var num_posts = Dsq.$('dsq-num-posts');
		var total_posts = Dsq.$('dsq-total-posts');
		
		if (num_posts) { 
			num_posts.innerHTML = parseInt(num_posts.innerHTML) + 1;
		}
		if (total_posts) { 
			total_posts.innerHTML = parseInt(total_posts.innerHTML) + 1;
		}
	};
};
// Dsq.Templates


/**
 * Dsq.Post
 */
Dsq.Post = new function() {
	this.openedMenu = {};
	this.menuEventListener = null;
	this.stateReplyToggled = {};
	this.stateEditToggled = {};
	this.stateRecordLink = {};

	/**
	 * Inserts a new post into the document.
	 *
	 * @param after_id {Number}	Insert a post before specified id.  If after_id
	 *							evaluates to false, then post in the front.  If
	 *							after_id is -1, post at the end.
	 */
	this.insert = function(after_id, id, message, author) {
		// Skeleton template from thread_posts.html.
		var skeleton = ' \
			<li id="dsq-comment-%(id)s"> \
				<div id="dsq-comment-header-%(id)s" class="dsq-comment-header"> \
					<cite id="dsq-cite-%(id)s" class="dsq-comment-cite"> \
						<a id="dsq-author-user-%(id)s" href="%(author_url)s" target="_blank" rel="nofollow">%(author_name)s</a> \
					</cite> \
				</div> \
				<div id="dsq-comment-body-%(id)s" class="dsq-comment-body"> \
					<div id="dsq-comment-message-%(id)s" class="dsq-comment-message">%(message)s</div> \
				</div> \
			</li> \
		';
		var _meta = Dsq.jsonData.posts[id];
		var _user_meta = Dsq.jsonData.users[_meta.user_key];
		var markup = Dsq.Utils.interpolate(skeleton, {
			id: id,
			message: message,
			author_url: _user_meta.blog,
			author_name: _user_meta.display_name
		});
		var div = document.createElement('div');
		markup = markup.replace(Dsq.COMMENTS_RE, Dsq.CommentsHandler);
		div.innerHTML = markup;

		if (after_id === -1) {
			Dsq.$('dsq-comments').appendChild(div);
		} else if (!after_id) {
			Dsq.$('dsq-comments').insertBefore(div, Dsq.$('dsq-comments').firstChild);
		} else if (Dsq.$('dsq-comment-' + after_id)) {
			// Get next node after "after_id", so we can insert before it.
			// If "after_id" is the last comment, the target node is the
			// last node.
			
			// var append_post_id = Dsq.Templates.appendPost(after_id).replace('<div id="','').replace('"></div>', '');
			var append_post_id = 'dsq-append-post-' + after_id;
			var node = Dsq.$(append_post_id);
			while (node = node.nextSibling) {
				if (!node || node.nodeType == 1) { // 1 == Node.ELEMENT_NODE
					break;
				}
			}
			if (!node) {
				node = Dsq.$(append_post_id);
			}
			node.parentNode.insertBefore(div, node);
		}
	};

	this.incrementPostCount = function() {
		
		var num_posts = Dsq.$('dsq-num-posts');
		var total_posts = Dsq.$('dsq-total-posts');

		if (num_posts) {
			num_posts.innerHTML = parseInt(num_posts.innerHTML, 10) + 1;
		}
		if (total_posts) {
			total_posts.innerHTML = parseInt(total_posts.innerHTML, 10) + 1;
		}
	}
	
	this.outlineComment = function(post_id) {
		Dsq.$('dsq-comment-' + post_id).className += ' dsq-comment-outline';
		setTimeout("(function () { Dsq.Post.clearOutlineComment(" + post_id + ") })()", 3000);
	};
	
	this.clearOutlineComment = function(post_id) {
		Dsq.$('dsq-comment-' + post_id).className = Dsq.$('dsq-comment-' + post_id).className.replace('dsq-comment-outline', '');
	};

	this.showMenu = function(el, id, name) {
		var anchorPos = Dsq.Utils.findPos(el);
		var menu = document.createElement('ul');

		if(this.openedMenu) {
			if(this.openedMenu.linkClicked) {
				this.openedMenu.linkClicked = false;
				return;
			}
		}

		switch(name) {
			case 'more':
				menu.innerHTML = Dsq.Templates.menuMore(id);
				break;
			case 'media':
				menu.innerHTML = Dsq.Templates.menuMedia(id);
				break;
			default:
				break;
		}

		// Add menu to document body
		menu.id = 'dsq-menu-' + id;
		menu.className = 'dsq-menu';
		Dsq.$b.appendChild(menu);

		// Position and show
		anchorPos[1] += 15;
		menu.style.left = anchorPos[0] + 'px';
		menu.style.top = anchorPos[1] + 'px';
		menu.style.display = 'block';

		// Set global reference
		this.openedMenu = {
			'el' : menu,
			'id' : id,
			'name' : name,
			'linkClicked' : false
		};

		// Set listener
		this.menuEventListener = Dsq.Utils.addEventListener(document, 'mouseup', this._hideMenu);
	};

	this._hideMenu = function(e) {
		var el = e.target || e.srcElement;
		var openedMenu = Dsq.Post.openedMenu.el;
		var id = Dsq.Post.openedMenu.id;

		if(!id) {
			var link = 'dsq-' + Dsq.Post.openedMenu.name + '-link';
		} else {
			var link = 'dsq-' + Dsq.Post.openedMenu.name + '-link-' + id;
		}

		if(!openedMenu) {
			return;
		}

		if(!Dsq.Popup.isClicked(e, openedMenu.id)) {
			openedMenu.style.display = 'none';
			Dsq.Utils.removeEventListener(Dsq.Post.menuEventListener);
			Dsq.Utils.deleteNode(openedMenu);

		} else {
			// Hide the menu if a link was clicked inside the menu.  We can't
			// completely remove the menu until the onclick event on the link
			// fires, but the menuEventListener will prevent multiple menus
			// from polluting the DOM.
			if(el && typeof el.href != 'undefined') {
				openedMenu.style.display = 'none';
				Dsq.Post.openedMenu.el = null;
			}
		}

		if(Dsq.Popup.isClicked(e, link)) {
 			Dsq.Post.openedMenu.linkClicked = true;
		}
	};


	this.getUserServices = function(user_key, id) {
		if(!user_key && id) {
			var _meta = Dsq.jsonData.posts[id];
			user_key = _meta.user_key;
		}
		var userData = Dsq.jsonData['users'][user_key];
		var userServices = [];

		// Keep a full list of supported services. This is the order they will display in the drop-profile.
		// Each service must have a corresponding case in _buildServiceUrl()
		var supportedServices = ['blog', 'twitter', 'facebook', 'tumblr'];

		function _buildServiceUrl(serviceName) {
			var data = userData[serviceName];
			var services = {
				blog:		function(d) { return d; },
				twitter:	function(d) { return d; },
				facebook:	function(d) { return d; },
				tumblr:		function(d) { return 'http://' + d + '.tumblr.com'; }
			};
			return services[serviceName](data);
		}

		for(var i = 0; i < supportedServices.length; i++) {
			if(userData[supportedServices[i]]) {
				var serviceUrl = _buildServiceUrl(supportedServices[i]);
				userServices.push({'name' : supportedServices[i], 'url' : serviceUrl});
			}
		}
		return userServices;
	}

	this.dropProfile = function(id) {
		var dp = Dsq.$('dsq-drop-profile-' + id);

		// IE6 needs JS to display/hide. All other browsers use CSS.
		if(dp) {
			if(Dsq.Utils.ie6) dp.style.display = (dp.style.display == 'inline') ? 'none' : 'inline';
			return false;
		} else {
			dp = document.createElement('ul');
		}

		dp.id = 'dsq-drop-profile-' + id;
		dp.className = 'dsq-drop-profile';

		if(Dsq.Utils.ie6) { dp.style.display = 'inline'; }

		var container = Dsq.$('dsq-header-avatar-' + id);
		dp.innerHTML = Dsq.Templates.dropProfile(id);
		container.appendChild(dp);
	};

	this.dropProfileMore = function(el, id) {
		var hiddenItems = Dsq.$('dsq-drop-hidden-' + id);

		hiddenItems.style.display = 'inline';
		el.parentNode.style.display = 'none';
	};

	this._updateReplyLinks = function(el, id) {
		// Update "reply / cancel" links based on state.
		var displayDict = {};

		if(id) {
			if(this.stateReplyToggled[id]) {
				el.innerHTML = 'cancelar';
				displayDict['media'] = 'inline';
				displayDict['edit'] = 'none';
			} else {
				el.innerHTML = 'responder';
				displayDict['media'] = 'none';
				displayDict['edit'] = 'inline';
			}
		}

		for(var key in displayDict) {
			if(displayDict.hasOwnProperty(key)) {
				var	linkEl = Dsq.$('dsq-' + key + '-el-' + id),
					spacer = Dsq.$('dsq-' + key + '-spacer-' + id);

				if(linkEl) {
					linkEl.style.display = displayDict[key];
					if(spacer) spacer.style.display = displayDict[key];
				}
			}
		}
	};

	this._updateMediaLinks = function(el, id) {
		// Update "use media / cancel" links based on state.
		var appendId = (id) ? ('-' + id) : '';
		var link = Dsq.$('dsq-media-link' + appendId);

		if(this.stateRecordLink[id]) {
			link.innerHTML = 'Cancelar multimídia';
			link.onclick = function() { Dsq.Post.toggleMediaReply(link, id); return false; };
		} else {
			link.innerHTML = 'Usar multimídia <small>&#9660;</small>';
			link.onclick = function() { Dsq.Post.showMenu(link, id, 'media'); return false; };
		}
	};

	this.toggleReply = function(el, id) {
		// Create reply IFrame
		if (window.disqus_use_postmessage) {
			if (!this.stateReplyToggled[id]) {
				Dsq.$('dsq-reply-' + id).style.display = 'block';
				Dsq.$('dsq-reply-bar-' + id).style.display = 'block';
				// Create IFrame if it doesn't exist.
				if (!Dsq.frames['reply_' + id]) {
					var _meta = Dsq.jsonData.posts[id];
					Dsq.frames['reply_' + id] = new Dsq.ReplyFrame(Dsq.$('dsq-reply-frame-' + id), id);
					Dsq.frames['reply_' + id].init();
					Dsq.frames['reply_' + id].setState(id, _meta.depth);
				}
			} else {
				Dsq.$('dsq-reply-' + id).style.display = 'none';
				Dsq.$('dsq-reply-bar-' + id).style.display = 'none';
			}
		} else {
			// DEPRECATED
			if(!this.stateReplyToggled[id]) {
				// Reply toolbar
				Dsq.$('dsq-reply-bar-' + id).style.display = 'block';
				Dsq.Iframes.showReplyIframeInContainerIfAllowed(Dsq.$('dsq-reply-' + id), id);
			} else {
				Dsq.$('dsq-reply-bar-' + id).style.display = 'none';
				Dsq.Iframes.hideAllInContainer(Dsq.$('dsq-reply-' + id));
				if(this.stateRecordLink[id]) {
					// HACK: Cancel media before canceling self.
					this.toggleMediaReply(Dsq.$('dsq-media-link-' + id), id);
				}
			}
		}

		this.stateReplyToggled[id] = !this.stateReplyToggled[id];
		this._updateReplyLinks(el, id);

		if(Dsq.Utils.ie) { Dsq.Utils.fixIframesIE('dsq-reply-' + id); }

		Dsq.Events.fire(Dsq.Events.REPLY_IFRAME_TOGGLED, {
			postId: id,
			opened: this.stateReplyToggled[id]
		});
	};

	this.toggleMediaReply = function(el, id, xtype) {
		id = id || 0;
		if(id) {
			var container = Dsq.$('dsq-reply-' + id);
		} else {
			var container = Dsq.$('dsq-post-add');
		}

		if(!this.stateRecordLink[id]) {
			Dsq.Iframes.showReplyIframeInContainer(container, id, {xtype:xtype}, 'dsq-post-video');
		} else {
			Dsq.Iframes.showReplyIframeInContainer(container, id);
		}
		this.stateRecordLink[id] = !this.stateRecordLink[id];
		this._updateMediaLinks(el, id);

		if(Dsq.Utils.ie) { Dsq.Utils.fixIframesIE(); }
	};

	this.edit = function(el, id) {
		Dsq.$('dsq-comment-message-' + id).innerHTML = Dsq.Templates.frameEdit(id);
		el.parentNode.style.display = 'none';
		if(Dsq.Utils.ie) { Dsq.Utils.fixIframesIE('dsq-comment-message-' + id); }
	};

    this.rate = function(el, id, vote) {
		if(Dsq.jsonData.request.is_authenticated || Dsq.jsonData.forum.allow_anon_votes) {
			if(vote == 1) {
                Dsq.$('dsq-rate-cont-' + id).innerHTML = '<img src="http://media.disqus.com/images/loading-small.gif">';
            }

            Dsq.Utils.execScript('http://disqus.com/forums/winajuda/vote.js'
                + '?post_id='    + id
                + '&vote='        + vote);

		} else {
			Dsq.Popup.login(Dsq.Strings.TO_RATE_PLEASE_LOG_IN);
		}
    };

	this.showParent = function(id) {
		var author = Dsq.$('dsq-author-user-' + id).innerHTML;
		var post = Dsq.$('dsq-comment-message-' + id).innerHTML;
		
		post += '<br /><br /><a href="#comment-' + id + '">Jump to comment</a>';
		
		Dsq.Popup.popModal(post, author + ' said...', id);
	}

	this.report = function(id, confirmed) {
		if(confirmed) {
			Dsq.Utils.postToUrl('http://disqus.com/forums/winajuda/firefox_2009/post_report/', {'post_id': id});
			Dsq.Popup.popModal('Thank you. This comment has been flagged for moderator attention.', 'Successfully flagged');
			Dsq.Utils.deleteNode(Dsq.$('dsq-post-report-' + id));
		} else {
			var title = Dsq.Strings.FLAG_INAPPROPRIATE_COMMENT;
			var message = Dsq.Strings.ARE_YOU_SURE_YOU_WOULD_LIKE_TO_REPORT_THIS_COMMENT_TO_A_MODERATOR + '? \
			<br /><br /> \
			<button type="button" onclick="Dsq.Popup._closePopup(null, true)"><strong>' + Dsq.Strings.NO + '</strong>, ' + Dsq.Strings.NEVER_MIND + '</button>&nbsp;&nbsp;&nbsp;<button type="button" onclick="Dsq.Post.report(' + id + ', true);"><strong>' + Dsq.Strings.YES + '</strong>, ' + Dsq.Strings.FLAG_INAPPROPRIATE_COMMENT + '</button><br /><br />'
			+ Dsq.Strings.THIS_WILL_FLAG_COMMENTS_FOR_MODERATORS_TO_TAKE_ACTION + '. \
			';

			Dsq.Popup.popModal(message, title, id);
		}
	};



	this.showAlert = function(id, msg) {
		var msgEl = Dsq.$('dsq-comment-message-' + id);
		var alert = '<div class="dsq-comment-alert">' + msg + '</div>';

		msgEl.innerHTML = alert + msgEl.innerHTML;
	};

};
// Dsq.Post


/**
 * Dsq.Thread
 */
Dsq.Thread = new function() {
	this.fc = null;
	this.ff = null;
	this.ac = null;

	
	this.adminIsOn = false;

	
	
	

	this.hlComment = null;
	this.hlCommentClass = null;

	this.getNextComment = function(el) {
		var start_id = el.id;
		while(el = el.nextSibling) {
			if(el.id && el.id.indexOf('dsq-comment-') != -1 && el.id != start_id) {
				return el;
			}
		}
		return null;
	};

	this.getActiveCommentId = function() {
		if (document.URL.indexOf('#comment-') >= 0) {
			var anchor = document.URL.slice(document.URL.indexOf('#') + 1);
			return anchor.replace('comment-', '');
		}
		return null;
	};

	this.highlightAnchor = function() {
		var i = this.getActiveCommentId();
		if (i == null) return false;
		var id = 'dsq-comment-' + i;
		var hash = window.location.hash;

		// Toggle the hash incase the comment isn't available when the page loads
		// for WebKit-based browsers.
		if (Dsq.Utils.webkit) {
			window.location.hash = '';
			window.location.hash = hash;
		}

		this.hlComment = Dsq.$(id);
		// Adding this conditional guard pending #289
		if (!this.hlComment) {
			return;
		}
		this.hlCommentClass = this.hlComment.className;
		this.hlComment.className += ' dsq-hl-anchor';

		setTimeout("Dsq.Thread.highlightClear()", 3000);
	};

	this.highlightClear = function() {
		if (!this.hlComment) {
			return;
		}
		this.hlComment.className = this.hlCommentClass;
	};

	this.login = function(toggle) {
		// toggle id is #dsq-reply-login-[id]
		var postId;
		if(toggle.id.indexOf('dsq-reply-login') != -1) {
			postId = toggle.id.slice(16);
			var container = Dsq.$('dsq-reply-' + postId);
		} else {
			var container = Dsq.$('dsq-post-add');
		}

		if(toggle) {
			if(toggle.className == 'dsq-login-active') {
				Dsq.Iframes.showReplyIframeInContainerIfAllowed(container, postId);
				toggle.className = '';
			} else {
				Dsq.Iframes.showLoginIframeInContainer(container, postId);
				toggle.className = 'dsq-login-active';
			}
		} else {
			Dsq.Iframes.showLoginIframeInContainer(container, postId);
		}

		if(Dsq.Utils.ie) { Dsq.Utils.fixIframesIE(); }
	};


	this.paginate = function(page, el_clicked, per_page) {
		// Use extra_params to pass any override parameters that we need to persist.
		var extra_params = '';

		// "Per page" can either be overriden by providing it as an argument
		// (per-call) or setting the disqus_per_page override variable (global).
		if(typeof per_page == 'undefined') {
			per_page = null;
		}
		if(typeof disqus_per_page != 'undefined' && per_page === null) {
			per_page = disqus_per_page;
		}

		if(typeof disqus_sort != 'undefined') {
			extra_params += '&sort=' + disqus_sort;
		}
		if(per_page !== null) {
			extra_params += '&per_page=' + per_page;
		}

		Dsq.$('dsq-pagination').innerHTML += '<img src="http://media.disqus.com/images/loading-small.gif">';
		
		if(el_clicked) {
			el_clicked.style.display = 'none';
		}
		
		Dsq.Utils.execScript('http://disqus.com/forums/winajuda/thread.js'
			+ '?slug='	+ 'firefox_2009'
			+ '&p='		+ page
			+ extra_params);
	};

	this.sortBy = function(sort) {
		var disqus_script = document.createElement('script');
		var disqus_date = new Date();

		if (location.hash != '') {
			location.hash = '#disqus_thread';
		}

		if(typeof(disqus_url) == 'undefined') {
			disqus_url = disqus_href;
		}
		disqus_script.type = 'text/javascript';
		disqus_script.src = 'http://disqus.com/forums/winajuda/thread.js'
			+ '?slug='	+ 'firefox_2009'
			+ '&sort='	+ sort
			+ '&title='
			+ '&'		+ disqus_date.getTime();

		Dsq.$('dsq-comments').innerHTML = '<img src="http://media.disqus.com/images/loading.gif">';
		Dsq.container.appendChild(disqus_script);
	};

	this.subscribe = function(status, email) {
		// `status` is an int -- 1 to subscribe, 0 to unsubscribe
		if(Dsq.jsonData.request.is_authenticated || email) {
			// If authenticated user OR anonymous email provided

			if(email) {
				Dsq.Popup._closePopup(null, true);
			}

			Dsq.Utils.execScript('http://disqus.com/forums/winajuda/subscribe.js'
				+'?status=' 	+ status
				+ '&slug='		+ 'firefox_2009'
				+ '&email=' 	+ encodeURIComponent(email));

		} else if(!email) {
			// If anonymous user and no email has been provided yet, prompt for email

			var title = 'Subscribe to this comment thread';
			var message = ' \
				New comments will be sent directly to your email inbox! \
				<div class="dsq-subscribe-submit"> \
					<p><strong>Enter your email address below.</strong></p> \
					<input type="text" id="dsq-subscribe-email"> \
					<button type="button" onclick="Dsq.Thread.subscribe(1, Dsq.$(\'dsq-subscribe-email\').value)">Subscribe</button> \
				</div> \
			';

			Dsq.Popup.popModal(message, title);
		}
	};

	this.showSettings = function() {
		if (!Dsq.jsonData.request.is_moderator) {
			return;
		}

		/* The form has to be re-designed when more options will come out. */
		var html = 'Automatically close comments after <input size="3" id="dsq-thread-days-alive" value="' + Dsq.jsonData.thread.days_alive + '" type="text" /> days. Existing comments will still be displayed.<br /><br />(Using 0 days will disable this feature)<br /><br />'
								 + '<button type="button" onclick="Dsq.Thread.updateDaysAlive();" class="dsq-button-small"><span>Save</span></button>'
								 + '<span id="dsq-thread-settings-status" class="dsq-options-status"></span>';

		Dsq.Popup.popModal(html, 'Settings');
	};

  this.showModeratorActions = function() {
      if (!Dsq.jsonData.request.is_moderator) {
          return;
      }

      var html = '<div class="dsq-moderate-options"><table><tr>' +
                 '<td>' + Dsq.Strings.ACTIONS + '</td><td><ul>';
      html += '<li><a href="#" onclick="Dsq.Thread.toggleClosed(); return false;">' +
              (Dsq.jsonData.thread.closed ? Dsq.Strings.OPEN_THREAD : Dsq.Strings.CLOSE_THREAD) +
              '</a></li>';
      html += '<li><a href="#" onclick="Dsq.Thread.toggleKilled(); return false;">' +
              (Dsq.jsonData.thread.killed ? Dsq.Strings.RESTORE_THREAD : Dsq.Strings.REMOVE_THREAD) +
              '</a></li>';
      html += '</ul></td></tr></table></div>' +
              '<p>Go to the full <a href="http://disqus.com/comments/moderate-threads/" target="_blank">moderate panel</a> for more options.</p>';
      Dsq.Popup.popModal(html, Dsq.Strings.MODERATE_OPTIONS);
  };

	this.updateDaysAlive = function() {
		  var days = Dsq.$('dsq-thread-days-alive').value;
		  var status = Dsq.$('dsq-thread-settings-status');
		  Dsq.Utils.postToUrl('http://disqus.com/forums/winajuda/update_days_alive.js', {days:days,thread:Dsq.jsonData.thread.id});
		  status.innerHTML = 'Saved!';
		  window.setTimeout(function() { status.innerHTML = ''; }, 1000);
	};

  this.toggleClosed = function() {
      Dsq.Utils.postToUrl('http://disqus.com/forums/winajuda/toggle_thread_closed.js', {thread:Dsq.jsonData.thread.id});
      window.setTimeout(function() { window.location.reload(); }, 500);
  };

  this.toggleKilled = function() {
      Dsq.Utils.postToUrl('http://disqus.com/forums/winajuda/toggle_thread_killed.js', {thread:Dsq.jsonData.thread.id});
      window.setTimeout(function() { window.location.reload(); }, 500);
  };
};
// Dsq.Thread

Dsq.Events = function() {
	var obj = {};

	// Private
	var handlers = {};
	var getHandlers = function(event) {
		if (handlers[event] === undefined) {
			handlers[event] = [];
		}
		return handlers[event];
	};

	// Public
	// Value keys : postId, node, xtype
	obj.REPLY_IFRAME_CREATED = 1;
	// Value keys : postId, opened
	obj.REPLY_IFRAME_TOGGLED = 2;
	obj.fire = function(event, opt_value) {
		if (!event) {
			throw new Error('Unknown event');
		}
		var value = opt_value || {};
		for (var i=0; i<getHandlers(event).length; i++) {
			getHandlers(event)[i](value);
		}
	};
	obj.addHandler = function(event, callback) {
		getHandlers(event).push(callback);
	};

	return obj;
}();

/**
 * Dsq.Realtime
 */
Dsq.Realtime = new function() {
	var initialized = false;
	var interval = null;
	var last_checked = Dsq.jsonData.request.timestamp;
	var new_posts = [];
	var ongoing_request = false;
	var prev_script = null;

	function updateNewPostCount() {
		Dsq.$('dsq-realtime-alert').style.display = new_posts.length ? 'block' : 'none';

		Dsq.$('dsq-realtime-queued').innerHTML = new_posts.length
		+ ' new '
		+ Dsq.Utils.pluralize(new_posts.length, 'comment', 'comments')
		+ Dsq.Utils.pluralize(new_posts.length, ' was', ' were')
		+ ' just posted.';

		Dsq.$('dsq-realtime-show').innerHTML = '(' + Dsq.Strings.SHOW + ')';
	}

	function insertNewPosts() {
		var post_id = null;
		var after_id = Dsq.$('dsq-sort-select').value === 'oldest' ? -1 : null;

		for (var i=0; i<new_posts.length; i++) {
			post_id = new_posts[i];
			Dsq.Post.insert(after_id, post_id, Dsq.jsonData.posts[post_id].message);
			Dsq.Post.incrementPostCount();
			Dsq.Post.outlineComment(post_id);
		}
		new_posts = [];
	}

	this.enableInterval = function() {
		interval = setInterval(Dsq.Realtime.check, Dsq.jsonData.context.realtime_speed);
		Dsq.$('dsq-realtime-status').innerHTML = Dsq.Strings.ENABLED;
		Dsq.$('dsq-realtime-toggle').innerHTML = '(' + Dsq.Strings.PAUSE + ')';
	}

	this.disableInterval = function() {
		if (interval) {
			clearInterval(interval);
			interval = null;
		}
		Dsq.$('dsq-realtime-status').innerHTML = Dsq.Strings.PAUSED;
		Dsq.$('dsq-realtime-toggle').innerHTML = '(' + Dsq.Strings.RESUME + ')';
	}

	this.toggleInterval = function() {
		if (!interval) {
			Dsq.Realtime.enableInterval();
		} else {
			Dsq.Realtime.disableInterval();
		}
		return false;
	}

	this.initialize = function() {
		if (!initialized) {
			initialized = true;
			Dsq.$('dsq-realtime-toggle').onclick = this.toggleInterval;
			if (!Dsq.jsonData.forum.streaming_realtime) {
				Dsq.$('dsq-realtime-show').onclick = this.show;
				updateNewPostCount();
			}
			if (Dsq.jsonData.thread.realtime_paused) {
				Dsq.Realtime.disableInterval();
			} else {
				Dsq.Realtime.enableInterval();
			}
		}
	}

	this.show = function() {
		insertNewPosts();
		updateNewPostCount();
		return false;
	}

	this.check = function() {
		if (!ongoing_request && Dsq.jsonData.realtime_enabled) {
			if (prev_script) {
				prev_script.parentNode.removeChild(prev_script);
			}
			ongoing_request = true;
			prev_script = Dsq.Utils.execScript('http://disqus.com/forums/33213312/realtime.js?timestamp=' + last_checked);
		}
	};

	this.update = function(timestamp, posts, users) {
		ongoing_request = false;
		last_checked = timestamp;

		if (users) {
			for (var user_id in users) {
				if (users.hasOwnProperty(user_id)) {
					if (!Dsq.jsonData.users[user_id]) {
						Dsq.jsonData.users[user_id] = users[user_id];
					}
				}
			}
		}

		if (posts) {
			for (var post_id in posts) {
				if (posts.hasOwnProperty(post_id)) {
					if (!Dsq.jsonData.posts[post_id]) {
						Dsq.jsonData.posts[post_id] = posts[post_id];
						new_posts.push(post_id);
					}
				}
			}

			if (Dsq.jsonData.forum.streaming_realtime) {
				insertNewPosts();
			} else {
				updateNewPostCount();
			}
		}
	};

}();

// DEPRECATED
Dsq.Iframes = function() {
	// Different style of object from the above. Hoping to switch to this for some reason.
	var obj = {};

	// Private
	var showIframeInContainer = function(container, id, markup) {
		// Look through container for iframes, hiding them, except show one that matches id
		// If none of them matched id, create a new iframe using markup and insert it.
		// Returns the iframe node if and only if it was newly created.
		var found = false;
		for (var i=0; i<container.childNodes.length; i++) {
			var child = container.childNodes[i];
			if (child.nodeName == 'IFRAME') {
				if (child.id == id) {
					child.style.display = 'block';
					found = true;
				} else {
					child.style.display = 'none';
				}
			}
		}
		if (found) {
			return;
		}
		// The iframe wasn't found, so construct it and add it to the container.
		// Don't use innerHTML because it might reload iframes
		var div = document.createElement('div');
		div.innerHTML = markup;
		var iframe = div.childNodes[0];
		div.removeChild(iframe);
		container.appendChild(iframe);
		return iframe;
	};

	// Public
	obj.makeReplyIframeId = function(opt_postId, opt_xtype) {
		var id = 'dsq-post-add-iframe';
		if (opt_xtype) {
			id += '-' + opt_xtype;
		}
		if (opt_postId) {
			id += '-' + opt_postId;
		}
		return id;
	};
	obj.makeLoginIframeId = function(opt_postId) {
		if (!opt_postId) {
			return 'dsq-login-iframe';
		}
		return 'dsq-login-iframe-' + opt_postId;
	};
	obj.makeReplyIframeName = function(opt_postId, opt_xtype) {
		var name = 'dsq-reply-frame';
		if (opt_xtype) {
			name += '-' + opt_xtype;
		}
		if (opt_postId) {
			name += '-' + opt_postId;
		}
		return name;
	};
	obj.showReplyIframeInContainer = function(container, opt_postId, opt_extraParams, opt_className) {
		// Construct the id so we can check if it's already present.
		// Hide any other iframes we find, and show this one if it's found.
		var params = opt_extraParams || {};
		// use xtype in the id and name so we can distinguish media replies from text replies:
		var id = Dsq.Iframes.makeReplyIframeId(opt_postId, params.xtype);
		var name = Dsq.Iframes.makeReplyIframeName(opt_postId, params.xtype);
		var attributes = {
			'id': id,
			'name': name,
			'class': opt_className || 'dsq-post-reply'
			};
		var markup = Dsq.Templates.frameReply(opt_postId, opt_extraParams, attributes);
		var iframe = showIframeInContainer(container, id, markup);
		// It was newly created
		if (iframe) {
			Dsq.Events.fire(Dsq.Events.REPLY_IFRAME_CREATED, {
				postId: opt_postId,
				node: iframe,
				xtype: params.xtype
			});
		}
	};
	obj.showLoginIframeInContainer = function(container, opt_postId) {
		var id = Dsq.Iframes.makeLoginIframeId(opt_postId);
		var markup = Dsq.Templates.frameLogin({id: id});
		showIframeInContainer(container, id, markup);
	};
	obj.showReplyIframeInContainerIfAllowed = function(container, opt_postId) {
		if (Dsq.jsonData.context.show_reply) {
			obj.showReplyIframeInContainer(container, opt_postId);
		} else {
			obj.hideAllInContainer(container);
		}
	};
	obj.hideAllInContainer = function(container) {
		for (var i=0; i<container.childNodes.length; i++) {
			var child = container.childNodes[i];
			if (child.nodeName == 'IFRAME') {
				child.style.display = 'none';
			}
		}
	};

	return obj;
}();

Dsq.Twitter = new function() {
	var that = this;

	this.startTwitterConnect = function() {
		var popupParams = 'location=0,status=0,width=800,height=400';
		that._twitterWindow = window.open(Dsq.jsonData.settings.disqus_url + '/_ax/twitter/begin/', 'twitterWindow', popupParams);
		that._twitterInterval = window.setInterval(that.completeTwitterConnect, 1000);
	};

	this.completeTwitterConnect = function() {
		if (that._twitterWindow.closed) {
			window.clearInterval(that._twitterInterval);
			window.location.reload();
		}
	};
};

Dsq.Yahoo = new function() {
	var that = this;

	this.startYahooConnect = function() {
		var popupParams = 'location=0,status=0,width=800,height=400';
		that._yahooWindow = window.open(Dsq.jsonData.settings.disqus_url + '/_ax/yahoo/begin/', 'yahooWindow', popupParams);
		that._yahooInterval = window.setInterval(that.completeYahooConnect, 1000);
	};

	this.completeYahooConnect = function() {
		if (that._yahooWindow.closed) {
			window.clearInterval(that._yahooInterval);
			window.location.reload();
		}
	};
};

Dsq.OpenID = new function() {
	var that = this;

	this.requestURL = function() {
		var message = '<table class="dsq-openid-form"><tr><td style="vertical-align:top;" rowspan="2"><img src="' + Dsq.jsonData.settings.media_url + '/images/openid-icon-100x100.png" /></td>';
		message += '<td><label for="dsq-openid-url">OpenID URL:</label></td><td><input type="text" id="dsq-openid-url" /></td></tr>';
		message += '<tr><td><label for="dsq-openid-username">Display name:</label></td><td><input type="text" id="dsq-openid-username" /></td></tr>';
		message += '<tr><td class="dsq-openid-submit" colspan="3"><input type="button" value="Sign in" onclick="Dsq.OpenID.startConnect();" /></td></tr>';
		message += "</table>";

		Dsq.Popup.popModal(message, 'Sign in using OpenID');
	};

	this.startConnect = function() {
		var isblank = function(str) {
			return /^\s*$/.test(str);
		};

		var openid_url = Dsq.$('dsq-openid-url').value;
		var username = Dsq.$('dsq-openid-username').value;

		if (isblank(openid_url)) {
			return;
		}

		var popupParams = 'location=0,status=0,width=800,height=500';
		var url = Dsq.jsonData.settings.disqus_url + '/_ax/openid/begin/' + '?url=' + encodeURIComponent(openid_url) + '&username=' + encodeURIComponent(username);
		that._openidWindow = window.open(url, 'openidWindow', popupParams);
		that._openidInterval = window.setInterval(that.completeConnect, 1000);
	};

	this.completeConnect = function() {
		if (that._openidWindow.closed) {
			window.clearInterval(that._openidInterval);
			window.location.reload();
		}
	};
};

Dsq.Reaction = new function() {
	var that = this;

	this.hide = function(id) {
		Dsq.Utils.execScript('http://disqus.com/forums/winajuda/hidereaction.js?' + 'reaction_id=' + id);
	};

	this.reportMissingReactions = function() {
		if (!Dsq.jsonData.request.is_moderator || !Dsq.jsonData.forum.reactions_enabled) {
			return;
		}

		if (Dsq.jsonData.thread.queued) {
			Dsq.Popup.popModal('Your report has been received. The system will automatically search for new reactions; if any are found, they will be displayed on this comment thread.<br/><br/>Thank&nbsp;you.',
												 'Reported missing reactions');
			return;
		}

		Dsq.Utils.execScript(Dsq.jsonData.settings.disqus_url + '/forums/winajuda/queueurl.js');
	};
};

Dsq.CNN = function() {
	var obj = {};

	obj.authenticate = function() {
		var url = Dsq.jsonData.settings.disqus_url + "/saml/cnn/try/";
		Dsq.Utils.postToUrl(url, {'target': document.location}, true);
	};

	return obj;
}();


if(Dsq.Utils.ie6) {
	(function() {
		DSQ_HEADER_AVATAR_RE = /<div class="dsq-header-avatar"(.*?)>/gim;
		Dsq.Templates.registerFilter('postPrependHeader', function(html, post_id) {
			// Add "onmouseout" for dsq-header-avatar for dropProfile
			// functionality since IE6 cannot use :hover.
			function _headerAvatarReplace(content, inner, _unused, html) {
				return '<div class="dsq-header-avatar" '
					+ inner
					+ ' onmouseout="Dsq.Post.dropProfile(' + post_id + ')">';
			}
			html = html.replace(DSQ_HEADER_AVATAR_RE, _headerAvatarReplace);
			return html;
		});
	})();
}





	// TODO: Move Seesmic code outside of the main script.  Don't let this script clobber the global namespace.
	if(typeof seesmic == 'undefined') { var seesmic = {}; }
	seesmic.widget = new function () {
		this.callback = function (data) {
			playerVersion = data.disqusplayer;
		};
	};

	
	var scriptEl = document.createElement('script');
	scriptEl.setAttribute('type', 'text/javascript');
	scriptEl.setAttribute('src', 'http://seesmic.com/version.js?callback=seesmic.widget.callback');
	document.getElementsByTagName('head')[0].appendChild(scriptEl);

	
	var scriptEl = document.createElement('script');
	scriptEl.setAttribute('type', 'text/javascript');
	scriptEl.setAttribute('src', 'http://media.disqus.com/javascript/library/swfobject.js');
	document.getElementsByTagName('head')[0].appendChild(scriptEl);

	function see_play_video(_videoUri, _add) {
		var swf = !!playerVersion ? playerVersion : 'http://seesmic.com/embeds/StandalonePlayer.swf';

		flashcontentDiv = Dsq.$(_videoUri + '_content');
		previewDiv = Dsq.$('dsq-seesmic-' + _videoUri + '_preview');
		hideDiv = Dsq.$('dsq-seesmic-' + _videoUri + '_hide');
		showDiv = Dsq.$('dsq-seesmic-' + _videoUri + '_show');
		if(_add) {
			// push flash widget
			var so = new SWFObject(swf, 'sotester', '300', '270', '9', '#000000');
			so.addVariable('video', _videoUri);
			so.addParam('allowFullScreen', 'true');
			so.addParam('allowScriptAccess','always');
			so.useExpressInstall('swfobject/expressinstall.swf');
			so.write(_videoUri + '_content');

			previewDiv.style.display = 'none';
			hideDiv.style.display = 'block';
			showDiv.style.display = 'none';
		}
		else {
			flashcontentDiv.innerHTML = '';
			previewDiv.style.display = 'block';
			hideDiv.style.display = 'none';
			showDiv.style.display = 'block';
		}
	};





(function() {
	//
	// Load theme.  This overrides the base templates with template functions
	// from the respective themes.
	//
	if (Dsq.jsonData.integration.theme == 4) {
		var theme = 'narcissus';
		// HACK: Set variable on window to use post message.
		window.disqus_use_postmessage = true;

		
		for(var prop in Dsq.Themes[theme]) {
			if(Dsq.Themes[theme] && Dsq.Themes[theme].hasOwnProperty(prop)) {
				Dsq.Templates[prop] = Dsq.Themes[theme][prop];
			}
		}
		
		for(var prop in Dsq.Post) {
			if(Dsq.Themes[theme] && Dsq.Themes[theme].hasOwnProperty(prop)) {
				Dsq.Post[prop] = Dsq.Themes[theme][prop];
			}
		}
	}

	//
	// Register templates.  This must be done after all themes are loaded.
	//
	Dsq.Templates.registerTemplate('authPost', Dsq.Templates.authPost);
	Dsq.Templates.registerTemplate('header', Dsq.Templates.header);
	Dsq.Templates.registerTemplate('footer', Dsq.Templates.footer);
	Dsq.Templates.registerTemplate('trackbacks', Dsq.Templates.trackbacks);
	Dsq.Templates.registerTemplate('reactions', Dsq.Templates.reactions);
	Dsq.Templates.registerTemplate('prependPost', Dsq.Templates.prependPost);
	Dsq.Templates.registerTemplate('appendPost', Dsq.Templates.appendPost);
	Dsq.Templates.registerTemplate('postPrependHeader', Dsq.Templates.postPrependHeader);
	Dsq.Templates.registerTemplate('postAppendHeader', Dsq.Templates.postAppendHeader);
	Dsq.Templates.registerTemplate('preBody', Dsq.Templates.preBody);
	Dsq.Templates.registerTemplate('postBody', Dsq.Templates.postBody);
	Dsq.Templates.registerTemplate('postFooter', Dsq.Templates.postFooter);
	Dsq.Templates.registerTemplate('_popupGeneric', Dsq.Templates._popupGeneric);
	Dsq.Templates.registerTemplate('voted', Dsq.Templates.voted);
	Dsq.Templates.registerTemplate('popupProfile', Dsq.Templates.popupProfile);
	Dsq.Templates.registerTemplate('postBox', Dsq.Templates.postBox);
	Dsq.Templates.registerTemplate('pagination', Dsq.Templates.pagination);
	Dsq.Templates.registerTemplate('postComment_onSuccess', Dsq.Templates.postComment_onSuccess);

})();

Dsq.container.className = "clearfix";
Dsq.container.innerHTML = ' \
<ul id="dsq-comments">\
	 <li id="dsq-comment-16135549">\
	 <div id="dsq-comment-header-16135549" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135549" class="dsq-comment-cite">\
	 <a id="dsq-author-user-16135549" href="http://www.tecnow.info/" target="_blank" rel="nofollow">Willian Rosa</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135549" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135549" class="dsq-comment-message">Ola, cara, realmente muito boa essa versão do Firefox, aqui no Mac estava usando ela, aind BETA, mas resolvi baixar o Opera, acredita que nunca tinha usado, achei muito bom, adorei o recurso das senhsa, Wand, e o Firefox eu desinstalei, mas adorei o Opera.<br><br>Abraço.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135550">\
	 <div id="dsq-comment-header-16135550" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135550" class="dsq-comment-cite">\
	 <a id="dsq-author-user-16135550" href="http://entrepixels.com/" target="_blank" rel="nofollow">carlos</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135550" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135550" class="dsq-comment-message">Que bom Ghedin, agora vc esta colocando os links de downloads para vários sistemas, inclusive o MAC.<br><br>E enquanto o bug "clear" eu acho que tive problemas com ele. Tinhas vezes que usava esse atributo no css e não fazia quaisquer efeitos no html. Depois da atualização ficou normal ;)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135551">\
	 <div id="dsq-comment-header-16135551" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135551" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135551">Alex</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135551" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135551" class="dsq-comment-message">Cuidado, ao permitir atualização para a versão 2.0.0.9, deixou<br>de funcionar corretamente, gerando problemas na inicialização<br>do programa (meu s.o. é win2003)...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135552">\
	 <div id="dsq-comment-header-16135552" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135552" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135552">chrystoffer</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135552" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135552" class="dsq-comment-message">antes lançar uma versao de 15 em 15 dias e corrigir os bugs do que deixa-los passar :P<br>firefox sempre :)</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135553">\
	 <div id="dsq-comment-header-16135553" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135553" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135553">ricmagus</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135553" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135553" class="dsq-comment-message">foram mais rapidos que a microsoft....</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135554">\
	 <div id="dsq-comment-header-16135554" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135554" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135554">elsonjunior0110</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135554" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135554" class="dsq-comment-message">"foram mais rapidos que a microsoft…."<br><br>O que nem todos sabem é que os boletins de segurança referentes as atualizaçÕes mensais que o IE recebe, apesar de darem destaque as correções de segurança, também incluem uma parte um pouco escondida a respeito de correções não especificamente relacionadas a segurança. E todo boletim mensal inclui centenas das mesmas.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135555">\
	 <div id="dsq-comment-header-16135555" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135555" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135555">elsonjunior0110</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135555" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135555" class="dsq-comment-message">Como, exemplo, vejam esta seção do KB do boletim de segurança do IE de outubro/2007: -http://support.microsoft.com/kb/939653 &gt; clique em "Non-security-related fixes that are included in this security update".</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135556">\
	 <div id="dsq-comment-header-16135556" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135556" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135556">ricmagus</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135556" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135556" class="dsq-comment-message">na verdade foi um teste. postei esse comentario pra ver a reação, e como esperava, aí está.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135557">\
	 <div id="dsq-comment-header-16135557" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135557" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135557">elsonjunior0110</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135557" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135557" class="dsq-comment-message">O que exatamente você está testando ao postar comentários falaciosos a respeito da Microsoft?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135558">\
	 <div id="dsq-comment-header-16135558" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135558" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135558">ricmagus</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135558" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135558" class="dsq-comment-message">voce ficou nervoso por eu falar mal da microsoft não? a resposta tá mais que evidente...<br><br>olha, uso produtos da microsoft desde meu primeiro pc. assim como de outras companias. mas daí a levantar uma bandeira "ista" para uma empresa, e atacar quem não tem a mesma opinião, ja acho um pouco demais. postei aquele comentario como uma aposta com um amigo. disse a ele "duvida quanto, que se eu postar um comentario subliminar alguem vai tentar me atacar?". ele riu de mim, mas tirou o chapéu quando eu mostrei que estava certo.<br><br>e só rpa finalizar: no dia que a microsoft, ou qualquer outra empresa pagar minhas contas no fim do mes, meus estudos, der casa, comida e tudo que eu tiver direito... nesse dia, quem sabe, eu até defenda uma empresa como vc faz. é só</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135559">\
	 <div id="dsq-comment-header-16135559" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135559" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135559">elsonjunior0110</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135559" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135559" class="dsq-comment-message">Eu não ataquei "você". Ataquei seu comentário falacioso.<br><br>E quanto a defender a Microsoft, farei isto enquanto for do meu AGRADO. Se não fosse, não faria, portanto pode parar com suas recomendações. Assim como agrada imensamente a alguns aqui atacá-la irracionalmente, agrada-me ainda mais defendê-la destes ataques racionalmente.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135560">\
	 <div id="dsq-comment-header-16135560" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135560" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135560">chrystoffer</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135560" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135560" class="dsq-comment-message">pelo menos a mozilla dá correções de bugs para todo mundo... nao só para quem paga :P</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135561">\
	 <div id="dsq-comment-header-16135561" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135561" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135561">Octávio Augusto</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135561" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135561" class="dsq-comment-message">Chrystoffer,<br>A Microsoft disponibiliza correções de segurança mesmo para usuários do Win Pirata.<br><br>Quanto ao comentário do ricmagus, mais especificamente na parte "o dia que a Microsoft pagar minhas contas...", bom, nada mais do que um comentário de esquerdista, mostrando que tem raiva da empresa só por ser um simbolo de sucesso mundial, ao contrário da Mozilla que na minha opinião é um simbolo de enganação, pois, enquanto vocês defendem a mozilla achando que eles são bonzinhos, mais bonzinhos que a Microsoft, eles estão ganhando milhões com a busca do google no navegador deles<br><br><a href="http://www.firefoxmyths.com" rel="nofollow">www.firefoxmyths.com</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135562">\
	 <div id="dsq-comment-header-16135562" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135562" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135562">Beco</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135562" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135562" class="dsq-comment-message">Os comentários do ricmagus são dispensáveis. Ele que vá lá para Cuba.<br><br>Agora sobre o Firefox Myths eu acho uma parte engraçada:<br><br>"Firefox fully supports the most important W3C Standards"<br><br>Daí postam um screenshot do FF 2 e a renderização defeituosa do teste e logo em seguida a renderização perfeita do Opera. Ok, blabla... Eu acho que faltou a renderização do IE 7 para ficar bonito, não acha?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135563">\
	 <div id="dsq-comment-header-16135563" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135563" class="dsq-comment-cite">\
	 <a id="dsq-author-user-16135563" href="http://strangerinmylife.wordpress.com/" target="_blank" rel="nofollow">Felipe</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135563" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135563" class="dsq-comment-message">Isso é verdade. O Firefox não renderiza perfeitamente. Fiz o teste aqui e o único que passou no W3C foi o Konqueror.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135564">\
	 <div id="dsq-comment-header-16135564" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135564" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135564">Beco</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135564" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135564" class="dsq-comment-message">Passou no teste Acid2.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135565">\
	 <div id="dsq-comment-header-16135565" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135565" class="dsq-comment-cite">\
	 <a id="dsq-author-user-16135565" href="http://strangerinmylife.wordpress.com/" target="_blank" rel="nofollow">Felipe</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135565" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135565" class="dsq-comment-message">Isso isso!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135566">\
	 <div id="dsq-comment-header-16135566" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135566" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135566">Paulo Ricardo</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135566" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135566" class="dsq-comment-message">Sobre o site FirefoxMyths, é um argumento típico de um fanboy do IE em êxtase de tão alienado. Sequer lêem os fatos apresentados no site, pois se não não postariam tamanha bobagem. Eu até recomendo a leitura deste site, chega a ser um passatempo de tão cômico. O mito "Firefox is not a Religion" é o melhor deles. Leitura garantida, melhor que assistir Zorra Total. ;)<br><br>Para quem ainda acredita neste site, ou melhor, neste mito sobre mitos, dá um conferida aqui: <a href="http://nanobox.chipx86.com/blog/2005/12/re-firefox-myths.php" rel="nofollow">http://nanobox.chipx86.com/blog/2005/12/re-fire...</a><br><br>E ponto final. Não há um mito verdadeiro no site. Basta usar o Google para comprovar, ninguém aqui é um Octávio Augusto ou elsonjunior0110 para ter preguiça/medo de saber a verdade. Há inclusive, nos logs da Wikipédia (sobre o artigo Mozilla Firefox) uma imensa comprovação destes fatos.<br><br>Sobre o Adic2, desde o Alpha 2 do Firefox 3 o teste já é 100% renderizado.<br><br>[]\'s</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135567">\
	 <div id="dsq-comment-header-16135567" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135567" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135567">Beco</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135567" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135567" class="dsq-comment-message">Uma boa leitura:<br><a href="http://www.zerozen.com.br/" rel="nofollow">http://www.zerozen.com.br/</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135569">\
	 <div id="dsq-comment-header-16135569" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135569" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135569">Fernando</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135569" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135569" class="dsq-comment-message">Bem, vou expor minha opinião:<br><br>Uso o FF desde a versão 1.0 em 2004.<br><br>Desde que o conheci, percebi a vantagem que ele tinha sobre o IE, tanto em recursos, velocidade e segurança - sendo que o tornei meu navegador padrão até "liberarem o Opera"<br><br>Infelizmente na época o Opera era shareware,só vim a conhecer as qualidades dele após as versões 9.x<br><br>Hoje, a realidade é diferente: muita gente usa o FF (até leigos que receberam indicações e gostaram), mas o FF está começando a "mancar" na segurança, pelo mesmo motivo do IE<br><br><br>Resumo: hoje migrei para o K-Meleon 2.0, muito leve e rápido para a discada, e para quando vou fazer downloads e acessar os feeds, é Opera USB 9.24 na cabeça !!!<br><br>Coitado do FF, quem diria que um dia ia ficar parecido com o IE !!!!<br><br>Quem quiser experimentar o K-Meleon, recomendo:<br><br><a href="http://kmeleon.alojagratis.org/" rel="nofollow">http://kmeleon.alojagratis.org/</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135570">\
	 <div id="dsq-comment-header-16135570" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135570" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135570">elsonjunior0110</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135570" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135570" class="dsq-comment-message">Fernando,<br><br>Eu mesmo já discuti várias vezes sobre o Firefox Myths na Wikipedia. Sempre venci a discussão quando a mesma se restringia a argumentação relativa aos navegadores e não a ataques pessoais. Os textos do Firefox Myths são praticamente 100% verdadeiros: todos os mitos lá apresentados são reais. Isto fica evidente quando discute-se em caráter argumentativo, o problema é que fanboys inchados do navegador Firefox quase sempre partem para ataques pessoais.<br><br>Com relação ao "Firefox is not a religion" trata-se de um mito verdadeiro, pois mesmo que a religião do Firefox seja apenas uma brincadeira dos desenvolvedores (os livros apocalípticos inclusos e todo o incentivo a sua adoção que chega a se assemelha ao que alguns adeptos de determinadas religiões "reais" fazem), ela é real, ainda que em caráter humorístico.<br><br>"Sobre o Adic2, desde o Alpha 2 do Firefox 3 o teste já é 100% renderizado."<br><br>Alpha 2 da versão 3 é apenas uma mera versão inicial de testes, só conta se a versão final passar.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135571">\
	 <div id="dsq-comment-header-16135571" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135571" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135571">Beco</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135571" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135571" class="dsq-comment-message">Ah, que palhaçada, os caras colocam um piada no programa, depois alguns engraçadinhos criam sites tipo "Kill Bill\'s Browser" e o treco vira religião? Essa não dá para engolir. Pode falar tudo, que o Firefox tem falhas de segurança, que tem poucos recursos (para mim não), que muitos desses recursos existiam no Opera muito antes (sim), etc, agora essa história de religião... fala sério, Elson (deve ser seu nome)!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135572">\
	 <div id="dsq-comment-header-16135572" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135572" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135572">elsonjunior0110</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135572" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135572" class="dsq-comment-message">Como eu já disse Beco, trata-se de uma religião meramente humorística obviamente, mas não deixa de ser teoricamente "religião": envolve fé, histórias míticas adaptadas do apocalipse e adeptos fanáticos que, mesmo por bricandeira, conclamam outros a professar fé no browser "salvador".<br><br>Não fique tão nervoso com isso, religiões humoríticas são relativamente comuns, vide a do espaguete voador por exemplo.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135573">\
	 <div id="dsq-comment-header-16135573" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135573" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135573">Beco</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135573" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135573" class="dsq-comment-message">Convenhamos que não dá para criticar o Firefox por isso.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135574">\
	 <div id="dsq-comment-header-16135574" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135574" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135574">elsonjunior0110</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135574" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135574" class="dsq-comment-message">Isso não é uma crítica, Beco. Nem tudo no Firefox Myths são críticas a este navegador, lá apenas consta verdades (ou desmistificação) de mitos sobre o Firefox ditos e repetidos por alguns.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135575">\
	 <div id="dsq-comment-header-16135575" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135575" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135575">Paulo Ricardo</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135575" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135575" class="dsq-comment-message">Riem, é melhor do que chorar. :D<br><br>"Eu mesmo já discuti várias vezes sobre o Firefox Myths na Wikipedia. Sempre venci a discussão quando a mesma se restringia a argumentação relativa aos navegadores e não a ataques pessoais. Os textos do Firefox Myths são praticamente 100% verdadeiros: todos os mitos lá apresentados são reais. Isto fica evidente quando discute-se em caráter argumentativo, o problema é que fanboys inchados do navegador Firefox quase sempre partem para ataques pessoais."<br><br>Pois é, sempre venceu à ponto de levar um presta atenção da administração da Wikipédia lusófona. Resultado? Link removido.<br>Os mitos são tão verdadeiros que foram criados. Isto, tirados de fontes nada prestáveis para se qualificar mitos. É bem simples de se fazer um AnythingMyths: escolha o tema, invente várias afirmações falsas sobre este tema, dissemine-as pela Web e pronto, basta contestar suas próprias mentiras com suas próprias verdades. Viram? Fantástico!<br><br>Vejam se os pseudo-mitos citam como fonte alguma informação da própria Mozilla. Sim, agora pergunte: WTF? Um monte de texto de que não possui nenhum valor.<br><br>Tenha santa paciência... E ainda têm coragem de indicar este site como contra-argumento em alguma discussão. Tem que ter coragem!<br><br>É tanto xiitismo que daqui a pouco o GdP vira GdX.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135576">\
	 <div id="dsq-comment-header-16135576" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135576" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135576">Fernando</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135576" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135576" class="dsq-comment-message">É tanta argumentação e contra-argumentação que aqui está parecendo um site do  curso de "DIREITO"<br><br>Se uma simples notícia de atualização de programa (que é uma coisa comum hoje em dia) dá um que falar deste, imagine então uma coisa mais séria, como tipo: gasto$ para a Copa: que é que  pagar caríssimo pelo pão e circo ? o contribuinte!<br><br>Quanto à navegadores, tanto faz. Gosto de todos, uso todos, cada um tem uma característica peculiar, mas prefiro ficar afastado das opiniões da maioria.<br><br>Continuo com o K-Meleon 2.0<br><a href="http://kmeleon.alojagratis.org/" rel="nofollow">http://kmeleon.alojagratis.org/</a></div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135577">\
	 <div id="dsq-comment-header-16135577" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135577" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135577">elsonjunior0110</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135577" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135577" class="dsq-comment-message">"Pois é, sempre venceu à ponto de levar um presta atenção da administração da Wikipédia lusófona. Resultado? Link removido."<br><br>Vamos contar a história verdadeira, por favor? O link foi removido porque a administração da Wikipedia lusa (administração a qual é majoritariamente falha, parcial, esquerdista e opressora, mas isto não vem ao caso) notou corretamente que havia um excesso de links extras no artigo Firefox. Juntamente com o link para o Firefox Myths, foram removidos diversos outros que não eram úteis ao artigo em si. Além disso, pelo fato do Firefox Myths NÃO ser um site especificamente de crítica ao Firefox, não havia necessidade de mantê-lo como exemplo de "críticas ao Firefox".<br><br>"Os mitos são tão verdadeiros que foram criados. Isto, tirados de fontes nada prestáveis para se qualificar mitos. É bem simples de se fazer um AnythingMyths: escolha o tema, invente várias afirmações falsas sobre este tema, dissemine-as pela Web e pronto, basta contestar suas próprias mentiras com suas próprias verdades. Viram? Fantástico!"<br><br>Incorreto. A parte referente aos mitos possui links que confirmam que ele são realmente reais. Estes links, no caso dos mitos espalhados por fanboys do firefox, geralmente dão para onde estes fanboys fazem sua propaganda tipicamente esquerdista mentirosa: posts em fórums, blogs, etc.<br><br>"Vejam se os pseudo-mitos citam como fonte alguma informação da própria Mozilla. Sim, agora pergunte: WTF? Um monte de texto de que não possui nenhum valor."<br><br>Os mitos geralmente não vêm "oficialmente" da Mozilla. Em geral, os mitos são mentiras contadas por fanáticos (fanboys) deste navegador com finalidade única de aumentar sua taxa de adoção. Por isto são colocados como "fonte do mito" links para sites onde pode-se ver os fanboys espalhando-os: como disse anteriormente, blogs, posts em foruns e no sempre farto Spread Firefox.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135578">\
	 <div id="dsq-comment-header-16135578" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135578" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135578">elsonjunior0110</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135578" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135578" class="dsq-comment-message">Volto a dizer: o Firefox Myhts não deprecia o Firefox, ele apenas conta a verdade sobre as mentiras que são frequentemente ditas a respeito do mesmo. Não é um site especificamente de críticas a este navegador, mas sim um site repleto de contra-respostas às mentiras espalhadas sobre este navegador, e cujo foco principal mantém-se nas mentiras com intenção de aumentar a taxa de adoção do mesmo, as quais são ditas com relativa frequência por alguns usuários fanáticos deste navegador (fanboys).</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135579">\
	 <div id="dsq-comment-header-16135579" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135579" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135579">Paulo Ricardo</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135579" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135579" class="dsq-comment-message">"A parte referente aos mitos possui links que confirmam que ele são realmente reais."<br><br>Você não pode afirmar algo que não sabe. Um usuário são do Firefox jamais postaria tamanhas asneiras como os mitos relatados neste site da pior qualidade. Todos os mitos foram inventados, não há outra razão. Nem o mais leigo dos usuários criaria aquilo.<br><br>Tá bom então. É muito fácil: vou registrar os domínios <a href="http://windowsvistamyths.com" rel="nofollow">windowsvistamyths.com</a>, <a href="http://operamyths.com" rel="nofollow">operamyths.com</a> e <a href="http://iemyths.com" rel="nofollow">iemyths.com</a> e referenciarei todas as mentiras criadas por você nos posts do GdP/Orkut e as contra-argumentarei com as verdades. Faço um Google bombing e já era. Estaremos de igual para igual. Simples, não?</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135580">\
	 <div id="dsq-comment-header-16135580" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135580" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135580">Beco</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135580" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135580" class="dsq-comment-message">Notei já dois comentários com esta história de "esquerdista". Eu considero-me um liberal e a idéia de apenas um sistema operacional popular para PCs assusta. Por isso, dentro do possível, apóio e uso programas open source ou proprietários free (ou mesmo pagos) que venham a "abrir" o mercado, tirando-o um pouco da mão Microsoft. Para ficar claro uso tanto Windows XP quanto o Ubuntu 7.04 (o upgrade para o 7.10 acontecerá daqui uns dias).</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135581">\
	 <div id="dsq-comment-header-16135581" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135581" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135581">elsonjunior0110</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135581" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135581" class="dsq-comment-message">"Você não pode afirmar algo que não sabe. Um usuário são do Firefox jamais postaria tamanhas asneiras como os mitos relatados neste site da pior qualidade."<br><br>Eu mesmo já cansei de vê-los postando tais asneiras em TODOS os fóruns de informática que participo. Até em um fórum não relacionado especificamente a informática do qual participo, pude ver a tentativa deles de usar a área off-topic do fórum para doutrinar usuários no firefox, usando de quase todas os mitos que o site Firefox Myths alerta serem correntes na internet.<br><br>"Todos os mitos foram inventados, não há outra razão. Nem o mais leigo dos usuários criaria aquilo."<br><br>"Tá bom então. É muito fácil: vou registrar os domínios <a href="http://windowsvistamyths.com" rel="nofollow">windowsvistamyths.com</a>, <a href="http://operamyths.com" rel="nofollow">operamyths.com</a> e <a href="http://iemyths.com" rel="nofollow">iemyths.com</a> e referenciarei todas as mentiras criadas por você nos posts do GdP/Orkut e as contra-argumentarei com as verdades. Faço um Google bombing e já era. Estaremos de igual para igual. Simples, não?"<br><br>Não. Primeiro, deveria citar que mentiras são estas que eu digo e provar que são, algo que você está falhando miseravelmente em fazer. Segundo, as fontes de mitos do Firefox Myths são as mais variadas possíveis. Neste link você poderá ver tanto as fontes dos mitos quanto as fontes das contra-respostas, para confirmar isto:<br>-mywebpages.comcast.net/SupportCD/FirefoxMyths/Link_Bomb.txt</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135582">\
	 <div id="dsq-comment-header-16135582" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135582" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135582">elsonjunior0110</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135582" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135582" class="dsq-comment-message">Peço desculpas pois o link que postei não inclui as fontes dos mitos, mas apenas as fontes das contra-respostas.  Mas é fácil, basta acessar o <a href="http://firefoxmyths.com" rel="nofollow">firefoxmyths.com</a> e clicar nos links "Example" que vêm logo após a apresentação do mito para confirmar a diversidade de fontes.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135583">\
	 <div id="dsq-comment-header-16135583" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135583" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135583">Paulo Ricardo</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135583" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135583" class="dsq-comment-message">"Não. Primeiro, deveria citar que mentiras são estas que eu digo e provar que são, algo que você está falhando miseravelmente em fazer."<br><br>Falhar miseravelmente é uma característica sua. Até agora você disse, disse, disse e não nos provou nada de coisa alguma.<br><br>As mentiras todos leitores do GdP/Orkut/Wikipédia já as conhecem. E espere por esperar, você ainda há de ficar famoso. Vai virar xiita-mentiroso-mor da internet brasileira.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135584">\
	 <div id="dsq-comment-header-16135584" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135584" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135584">Paulo Ricardo</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135584" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135584" class="dsq-comment-message">[off]<br><br>A propósito, você já virou discussão política. Sua batata deve estar assando por aí... Em teu lugar eu tomaria cuidado com o que escreve na Web.<br><br><a href="http://falecomospoliticos.ig.com.br/fale/publico/mensagem?id=10420" rel="nofollow">http://falecomospoliticos.ig.com.br/fale/public...</a><br><br>[/off]</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135585">\
	 <div id="dsq-comment-header-16135585" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135585" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135585">elsonjunior0110</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135585" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135585" class="dsq-comment-message">Parabéns por mais uma coletânea de ataques pessoais sem fundamento. Quanto ao assunto real que discutíamos e as argumentações pertinentes, foram todas infelizmente ignoradas, pois é assim que agem fanboys: entram numa discussão com alguns argumentos altamente falhos, percebendo que o adversário está vencendo no campo argumentativo real, apela para repetir argumentos já refutados (a fim de irritar seu adversário) e/ou atacá-lo por via de ofensas.<br>O ridículo "Modus operandi" dos fanboys já foi plenamente desvendado.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135586">\
	 <div id="dsq-comment-header-16135586" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135586" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135586">elsonjunior0110</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135586" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135586" class="dsq-comment-message">Paulo Ricardo,<br><br>Por favor, peço que esta discussão citada no link seja mantida bem longe do Guia do PC.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135587">\
	 <div id="dsq-comment-header-16135587" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135587" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135587">Paulo Ricardo</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135587" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135587" class="dsq-comment-message">Ahhh sim, vou fingir que você não postou isto. :)<br><br>Sobre o que postar ou não no GdP, não é da tua conta. Eu cito o que quiser onde eu quiser. Está com vergonha? Medo? WTH?<br><br>A propósito, olha o que eu acabo de ler na Wikipédia:  <a href="http://pt.wikipedia.org/wiki/Wikipedia:Pedidos_a_administradores/2007/10" rel="nofollow">http://pt.wikipedia.org/wiki/Wikipedia:Pedidos_...</a>.<br><br>Chateado? Ui.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135588">\
	 <div id="dsq-comment-header-16135588" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135588" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135588">Paulo Ricardo</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135588" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135588" class="dsq-comment-message">Ops, tira o ponto:<br><br><a href="http://pt.wikipedia.org/wiki/Wikipedia:Pedidos_a_administradores/2007/10" rel="nofollow">http://pt.wikipedia.org/wiki/Wikipedia:Pedidos_...</a><br><br>MPF, aí vou eu!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135589">\
	 <div id="dsq-comment-header-16135589" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135589" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135589">elsonjunior0110</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135589" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135589" class="dsq-comment-message">As questões referentes a Wikipedia não deveriam ser transferidas para a discussão aqui no GdP porque são assuntos completamente diversos. Todavia, você pode sim fazer isto (embora creio que seja contra as regras do GdP e logo será deletado por algum administrador), apenas pedi para que não fizesse, pois classifico tal ato como errado devido aos argumentos já citados.<br>E caso queira maiores informações sobre "meu caso" na Wikipedia, acesse a minha página de usuário lá: pt.wikipedia.org/wiki/Usu%C3%A1rio:Elsonjunior0110</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135590">\
	 <div id="dsq-comment-header-16135590" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135590" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135590">Paulo Ricardo</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135590" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135590" class="dsq-comment-message">Quanto ao Ghedin deletar meu comentário, nem me importo. Sei que ele vai deletar, e ele sabe que eu sei disso e que todos deveriam saber. Mas eu não estou nem aí para isso, vai ser uma página virada daqui a pouco, o que me importa é alertar outros leitores com quem eles estão lhe dando.<br><br>O que você fez ou deixou de fazer na Wikipédia está aqui: <a href="http://pt.wikipedia.org/wiki/Especial:Contributions/Elsonjunior0110" rel="nofollow">http://pt.wikipedia.org/wiki/Especial:Contribut...</a>. Tudo registrado, sem direito de remoção. A propósito, suas contribuições foram encaminhadas ao SaferNet. Boa sorte.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135591">\
	 <div id="dsq-comment-header-16135591" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135591" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135591">elsonjunior0110</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135591" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135591" class="dsq-comment-message">"MPF, aí vou eu!"<br><br>Seria muito interessante observar qual expressão facial manifestaria em gente como Olavo de Carvalho e alguns colunistas da revista Veja como Reinaldo Azevedo ou Reinaldo Azevedo após verem uma pérola destas...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135593">\
	 <div id="dsq-comment-header-16135593" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135593" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135593">elsonjunior0110</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135593" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135593" class="dsq-comment-message">Correção: Seria muito interessante observar qual expressão facial manifestaria-se em gente como Olavo de Carvalho e alguns colunistas da revista Veja como Reinaldo Azevedo ou Diogo Mainardi após verem uma pérola destas…</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135594">\
	 <div id="dsq-comment-header-16135594" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135594" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135594">ricmagus</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135594" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135594" class="dsq-comment-message">a que ponto chegamos!<br><br>eu costumava acompanhar o winajuda, mas aqui tá dificil. um lugar onde os leitores não tem vóz, e/ou tem medo de postar pela retalhação verbal que podem sofrer em seguida. ja vi muitos sites assim, muitos mesmo. e sei qual o destino deles tambem. espero que esse site aqui continue bem, pois gosto dele. mas com gente como esse elson, fica dificil. mas a vida é assim, encontramos muita gente que não aceita opiniões diferentes das suas, e batem de frente. lamentavel!<br><br>obs: pode me atacar, se desejar. isso não muda minha opinião a seu respeito, tampouco vai me deixar mal. essa é minha ultima postagem aqui. não vale a pena discutir em um lugar que não dá abertura pra isso.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135595">\
	 <div id="dsq-comment-header-16135595" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135595" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135595">Fernando</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135595" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135595" class="dsq-comment-message">Este firefoxmyths não é apenas asqueiroso por só falar mal do firefox<br>- não fala NADA a favor do FF (alguma coisa de bom ele tem, se não, não haveria milhões de downloads)<br>- é tendencioso e parcial a favor da micro$oft (não tenho nada contra - gosto do IE7)<br>- usa de mitos para desmistificar mitos<br>- é hipócrita: fala de fanboys, mas tem um conteúdo fanboy (elogiar o IE6 só pode ser coisa de fanboy, ridiculo !!)<br>- e o pior de todos: tem um link neste "site" sobre matérias anti-cristo, questionando a existência de um líder que HISTORICAMENTE existiu, e até seus inimigos reconhecem, isto é totalmente sem sentido.<br><br>"Melhor visualizado em.... no navegador de sua preferência"<br><br>Aonde está a liberdade de escolha ?? ah! retrocesso !!!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135596">\
	 <div id="dsq-comment-header-16135596" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135596" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135596">elsonjunior0110</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135596" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135596" class="dsq-comment-message">"não fala NADA a favor do FF"<br><br>Como já disse anteriormente, o site se foca em mitos criados por fanboys. Sendo assim, ele acabará por falar a realidade destes mitos, o que para os fanboys poderá soar como crítica.<br><br>"é tendencioso e parcial a favor da micro$oft"<br><br>A Microsoft é citada muito esporadicamente.<br><br>"usa de mitos para desmistificar mitos"<br><br>Diga um pelo menos dos supostos mitos que você viu lá sendo usados para desmistificar mitos.<br><br>"é hipócrita: fala de fanboys, mas tem um conteúdo fanboy"<br><br>Errado. Acho que já lhe dei o M.O. dos fanboys, e o Firefox Myths não se adequa ao mesmo. Com relação ao IE 6, gostaria de ver onde ele é elogiado. Tudo o que vi lá foram comparações reais entre o mesmo e o Firefox a fim de desmistificar mitos como, por exemplo, que o Firefox é mais rápido que ele.<br><br>"e o pior de todos: tem um link neste “site” sobre matérias anti-cristo, questionando a existência de um líder que HISTORICAMENTE existiu, e até seus inimigos reconhecem, isto é totalmente sem sentido."<br><br>Isto não vem ao caso. A existência real de Jesus Cristo em algum momento no passado é algo altamente controverso, pesquisando brevemente você encontrará um grande número de pessoas, em sua maioria ateus, que posicionam-se de maneira cética em relação a mesma.<br><br>"Aonde está a liberdade de escolha ?? ah! retrocesso !!!"<br><br>A liberdade está em permitir a página ser visualizada 100% em qualquer navegador!</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135597">\
	 <div id="dsq-comment-header-16135597" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135597" class="dsq-comment-cite">\
	 <a id="dsq-author-user-16135597" href="http://strangerinmylife.wordpress.com/" target="_blank" rel="nofollow">Felipe</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135597" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135597" class="dsq-comment-message">Que o Firefox não é o navegador mais seguro do mundo, todo mundo sabe. O que ninguém (nem o mais fanático fanboy da MS) pode negar, é que ele é superior ao IE.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135598">\
	 <div id="dsq-comment-header-16135598" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135598" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135598">elsonjunior0110</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135598" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135598" class="dsq-comment-message">"O que ninguém (nem o mais fanático fanboy da MS) pode negar, é que ele é superior ao IE."<br><br>É tudo uma questão de aspectos. Há aspectos onde o IE é melhor, em outros o Firefox supera.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135599">\
	 <div id="dsq-comment-header-16135599" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135599" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135599">Fernando</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135599" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135599" class="dsq-comment-message">Caro Elson,<br><br>O que para você é um mito, para mim pode ser uma realidade:<br><br>Um exemplo:<br>quase todos dizem que o Opera é mais rápido (não confunda com leve) que o Firefox:  - na prática, em minha casa, isto é um mito, isso mesmo, o FF é pesadão e tudo mais, mas carrega as páginas mais rapidamente que o Opera !!<br><br>Mito para desmistificar mito: (um deles): dizer que o IE6, é mais rápido que o FF não condiz com a realidade, isto comprovei também na prática<br><br>Não adiante acreditar nestas "fontes" do myth, elas são bem duvidosas...<br><br>Coisa que para mim é realidade: o IE7 é mais rápido que o Opera (com o IE7pro), quem vai acreditar ?? para mim é verdade pois comprovei na prática<br><br>Ainda bem que descubri o K-Meleon (leve como o Opera, rápido como o FF)<br><a href="http://kmeleon.alojagratis.org/" rel="nofollow">http://kmeleon.alojagratis.org/</a><br><br>Sobre segurança: no dia em que o Opera (amo ele) tiver o mesmo nº de usuários do FF ou IE, não será tão seguro como é hoje.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135600">\
	 <div id="dsq-comment-header-16135600" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135600" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135600">elsonjunior0110</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135600" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135600" class="dsq-comment-message">"o FF é pesadão e tudo mais, mas carrega as páginas mais rapidamente que o Opera !!"<br><br>Algumas páginas são realmente carregadas de maneira mais rápida no FX que no Opera. Isto pode ocorrer principalmente quando o código da página é ruim. Mas a maioria dos testes a este respeito indicam que a renderização da engine Presto que o Opera faz uso está a anos-luz daquela existente na engine Gecko do Firefox, para além de suportar muito mais os padrões da W3C.<br><br>"dizer que o IE6, é mais rápido que o FF não condiz com a realidade, isto comprovei também na prática"<br><br>O IE 6 abre mais rápido que o FX (em plataformas Windows) e carrega, consome menos memória do sistema que o FX e carrega algumas páginas de maneira mais rápida (a mesma justificativa anterior: páginas de código ruim que só são bem renderizadas com certas engines).<br><br>"no dia em que o Opera (amo ele) tiver o mesmo nº de usuários do FF ou IE, não será tão seguro como é hoje."<br><br>Isso eu devo concordar. O escrutínio a que softwares passam tende somente a aumentar quando a popularidade destes sobem.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135601">\
	 <div id="dsq-comment-header-16135601" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135601" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135601">Mercúrio</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135601" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135601" class="dsq-comment-message">Meu Deus, se falassem que o IE 7 abre as páginas mais rápido que o Firefox, concordaria 100%, pq é a pura verdade. Adoro o Firefox, não sou nenhum fanboy da Microsoft e do IE, mas isso é fato: no IE 7 eles melhoraram muitas coisas, inclusive a velocidade de navegação.<br><br>Mas falar que o IE 6 é mais rápido foi de doer... Ai, meus bagos...</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135602">\
	 <div id="dsq-comment-header-16135602" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135602" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135602">elsonjunior0110</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135602" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135602" class="dsq-comment-message">"Mas falar que o IE 6 é mais rápido foi de doer… Ai, meus bagos…"<br><br>Como eu disse anteriormente, o IE 6 é mais rápido que o Firefox nas seguintes situações:<br>- Inicialização do navegador: tempo que leva, por exemplo, entre o clique no atalho e o aparecimento da janela.<br>- Consumo de memória<br>- Abertura de páginas com código ruim focado na engine Trident que o IE faz uso.</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135604">\
	 <div id="dsq-comment-header-16135604" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135604" class="dsq-comment-cite">\
	 <span id="dsq-author-user-16135604">Fernando</span>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135604" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135604" class="dsq-comment-message">Se mudar algumas configurações internas do Firefox como<br><br>max connections - 40<br>max connections per server - 16<br>max persistent connection per server - 16<br>max persistent connection per proxy - 16<br>pipeling<br>proxy pipeling<br>pipeling maxrequests - 8<br><br>Dúvido que você ache o IE7 mais rápido que ele<br><br>Na verdade o IE7 só presta se tiver o add-on IE7-PRO</div>\
	 </div>\
	 </li>\
	 <li id="dsq-comment-16135605">\
	 <div id="dsq-comment-header-16135605" class="dsq-comment-header">\
	 <cite id="dsq-cite-16135605" class="dsq-comment-cite">\
	 <a id="dsq-author-user-16135605" href="http://sobre.rodrigoghedin.com.br/" target="_blank" rel="nofollow">Rodrigo Ghedin</a>\
	 </cite>\
	 </div>\
	 <div id="dsq-comment-body-16135605" class="dsq-comment-body">\
	 <div id="dsq-comment-message-16135605" class="dsq-comment-message">Acabou a palhaçada. Vocês não têm nada melhor pra fazer no domingo?<br><br>Comentários fechados, e será discutido internamente junto à administração a possibilidade de acabar com comentários - em TODOS os posts. Afinal, comentar é um direito que damos aos leitores, mas a partir do momento em que esse direito é mal usado, passa a ser maléfico, tanto para os leitores, quanto aos que cuidam do site.<br><br>Elson, já conversei milhares de vezes contigo: pare de ser radical. Sempre, sempre que há alguma discussão séria no site, você está envolvido. Vá viver a vida, que, por mais surpreendente que possa parecer a você, não se resume à Microsoft. Não vê que, com essas brigas constantes, está ganhando a antipatia de todos?<br><br>Espaço para comentários fechado. Bom fim de domingo a todos.<br><br>[]\'s!</div>\
	 </div>\
	 </li>\
	 </ul>\
';

(function() {
	
	





Dsq.Debug.profile(function() {
	if(Dsq.jsonData.request.page == 1 && Dsq.jsonData.request.is_initial_load) {
		Dsq.container.innerHTML = Dsq.Templates.header() + Dsq.container.innerHTML + Dsq.Templates.footer();
	}
	Dsq.$(Dsq.curPageId).innerHTML = Dsq.$(Dsq.curPageId).innerHTML.replace(Dsq.COMMENTS_RE, Dsq.CommentsHandler);
}); // Dsq.Debug.Profile

// HACK: Resetting cache because we're done with.
Dsq.Utils.gebiFromElementCollectionCache = null;


	
	
	var dsq_styleEl = document.getElementById(disqus_container_id);
	var dsq_anchorEl = document.getElementsByTagName('a')[0];
	
	Dsq.Thread.fc = Dsq.Utils.getStyle(dsq_styleEl, 'color');
	if(dsq_anchorEl) { Dsq.Thread.ac = Dsq.Utils.getStyle(dsq_anchorEl, 'color'); }
	Dsq.Thread.ff = Dsq.Utils.getStyle(dsq_styleEl, (Dsq.Utils.ie || window.opera ? 'fontFamily' : 'font-family'));
	// For Safari / Opera: strip quotes.
	Dsq.Thread.ff = Dsq.Thread.ff.replace(/['"]/g, '');
	Dsq.Thread.fc = encodeURIComponent(Dsq.Thread.fc);
	Dsq.Thread.ac = encodeURIComponent(Dsq.Thread.ac);
	Dsq.Thread.ff = encodeURIComponent(Dsq.Thread.ff);

	
	
	
	if(Dsq.$(Dsq.Templates.addPostContainer)) {
		// TODO: Check to see if theme uses postmessage.
		if (window.disqus_use_postmessage) {
			Dsq.frames['reply_0'] = new Dsq.ReplyFrame(Dsq.$(Dsq.Templates.textareaContainer));
			Dsq.frames['reply_0'].init(function() {
				// Use fallback iframe
				Dsq.$(Dsq.Templates.addPostContainer).innerHTML = '';
				var theme = (typeof disqus_frame_theme == 'undefined') ? 'default' : disqus_frame_theme;
				Dsq.Iframes.showReplyIframeInContainer(Dsq.$(Dsq.Templates.addPostContainer), null, {theme: theme});
				// if(Dsq.Utils.ie) { Dsq.Utils.fixIframesIE(); }
			});
		} else {
			// DEPRECATED
			Dsq.Iframes.showReplyIframeInContainer(Dsq.$('dsq-post-add'));
		}
	}

	
	

	
	if(document.location.hash != '') {
		document.location.hash = document.location.hash.substring(1);
	}

	Dsq.Popup.showCookieMsgs();

	
	if(document.location.search != '' && location.hash != '#disqus_thread') {
		var reply_id = Dsq.Utils.getRequestParams().dsq;
		if(reply_id) { document.location.hash = 'comment-' + reply_id; }
	}

	
	if((typeof OB_Script != 'undefined') && (typeof OB_versionNum != 'undefined')) {
		if(navigator.userAgent.indexOf("Firefox") != -1) {
			if(window.frames['dsq-reply-frame']) {
				window.frames['dsq-reply-frame'].location = Dsq.Urls.REPLY + (new Date()).getTime() + '&f=winajuda&t=firefox_2009&to_redirect=' + encodeURIComponent(window.location) + '&ifrs=' + encodeURIComponent(disqus_iframe_css);
			}
		}
	}

	if (Dsq.jsonData.integration.theme == 4) {
		if (Dsq.jsonData.realtime_enabled) {
			Dsq.Realtime.initialize();
		}
	}

	



	window.ExecuteWhen = (function () {
	var obj = {}
	
	// Private
	var running = false;
	var timer = null;
	var pending = [];
	var startTimer = function() {
		running = true;
		timer = setInterval(obj.heartBeat, 100);
	};
	var stopTimer = function() {
		running = false;
		clearInterval(timer);
	};
	
	// Public
	obj.add = function (condition, code) {
		pending.push([condition,code]);
		this.heartBeat(); //!
		if (!running) {
			startTimer();
		}
	};
	obj.heartBeat = function() {
		if (!pending.length) {
			stopTimer();
		}
		var newPending = [];
		for (var i=0; i<pending.length; i++) {
			var cond = pending[i][0];
			var code = pending[i][1];
			// FIXME: if cond or code throw an error, they never get removed from pending
			if (cond()){
				code();
			}
			else {
				newPending.push([cond, code]);
			}
		}
		pending = newPending;
	};
	return obj;
})();

// also used in embed_thread.js:
window.fbIsReady = function () {return window.FB && FB.init;};
// NOTE: This script gets executed again without threadEl
//       set when we are loaded again as the fbc_receiver.
//       In this case, we don't need the hidden container.

if(!window.FB || !FB.init) {
	if(window.Dsq && Dsq.container) {
		// container is not present when init.js is loaded from an xd-receiver iframe; in this case,
		// we don't need the FB_HiddenContainer anyway.
		var fbDiv = document.createElement('div');
		fbDiv.id = "FB_HiddenContainer";	// Required or else FeatureLoader will execute a document.write.
		fbDiv.style.position = 'absolute';	// This is intentionally not setting display to none as this breaks
		fbDiv.style.top = '-10000px';		// Flash in Safari.
		fbDiv.style.left = '-10000px';
		fbDiv.style.width = '0px';
		fbDiv.style.height = '0px';
		Dsq.container.appendChild(fbDiv);
	}
	var fbJS = document.createElement('script');
	fbJS.type = "text/javascript";
	fbJS.src = "http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php";
	document.getElementsByTagName('head')[0].appendChild(fbJS);

	ExecuteWhen.add(window.fbIsReady,
		function () {
			// HACK: This is a workaround FBC's single domain limitation by
			//		 allowing sites to create multiple forums with different
			//		 Facebook API keys.  This must be used in conjunction with
			//		 disqus_facebook_forum (see authenticateFacebook).
			var facebook_api_key = '49ff60b424d3928b76bcf678bdb69771';
			if (typeof disqus_facebook_api_key != 'undefined') {
				facebook_api_key = disqus_facebook_api_key;
			}

			FB.init(facebook_api_key, window.facebookXdReceiverPath || null,
				{fetchSignedPublicSessionData: true});
		});
}


	


if(typeof(disqus_callback) == 'function') {
	var callback_params = Dsq.Utils.getRequestParams()['dsq_cbp'] || null;

	// We don't care about any errors in third-party code
	try {
		disqus_callback(callback_params);
	} catch (x) {
		if (typeof(console) != 'undefined' && typeof(console.log) == 'function') {
			// But it would be nice to let developers know about them
			console.log(x);
		}
		// pass
	}

	// HACK: We don't know if the callback wraps our container, which may
	// possibly result in a new DOM element.
	Dsq.container = document.getElementById('dsq-content');
}

// Global event handler for narcissus.
if (Dsq.jsonData.integration.theme == 4) {
	var g = Dsq.Utils.ie ? document : window;
	Dsq.Utils.addEventListener(g, 'keydown', function(event) {
		// Handle "enter" key on input for post box.
		if ((event.keyCode || event.which) == 13) {
			var target = Dsq.Utils.ie ? event.srcElement : event.target;
			// For Safari bug, detect text node.
			if (target.nodeType == 3) {
				target = target.parentNode;
			}

			if (target.nodeName == 'INPUT' &&
				target.parentNode.className == 'dsq-input-wrapper') {
				var postId = Dsq.Utils.extractId(target);
				Dsq.Templates.postComment(postId, this, false);
			}
		}
	});
}

})();




