var dna=dna||{};dna.error=function(){var C=glow,E=C.dom.get;var A={500:"We are currently experiencing problems accepting ",404:"Could not send your comment, please check your Internet Connection.",404:"Could not send your comment, please check your Internet Connection.",couldNotSendComment:"There was a problem sending your comment, please try again.",XmlParseError:"You comment included invalid HTML and could not be added. Please try entering your message again.",profanityblocked:"Your comment was failed by the profanity filter.",invalidcomment:"Type your comment into the text area and then press 'Post Comment'.",unknown:"There has been an unexpected problem. Please reload the page and try again."};function D(H){var G=H.status||H.error.errorType;if(G=="XmlParseError"){F("Your comment contains some HTML that has been mistyped.",H.error.errorMessage)}else{if(A[G]){B(A[G])}else{B(A.unknown)}}}function F(J,I){var K={helper:J,message:I},G=E("#dna-error"),H='<h4>There has been a problem...</h4><p>{helper}</p><p class="error-message">{message}</p>';if(!G[0]){G=C.dom.create('<div id="dna-error" class="error"></div>').insertAfter(C.dom.get("#dna-commentbox-submit").parent())}G.html(C.lang.interpolate(H,K))}function B(G){alert(G)}return{notify:B,handle:D}}();dna.utils=function(){var E=glow,D=E.dom.get;function H(J){return J.replace(/(\n|\r|\t|\s\s)/gi,"")}function C(J){return J.replace(/(\n|\r)/gi,"<br />")}function I(){var J="";var O={};if(J=window.location.search){var N=J.substring(1).split("&");var L=[];for(var M=0,K=N.length;M<K;M++){L=N[M].split("=");O[L[0]]=L[1]}}return O}function A(K,J,L){var J=window.open(K,"name","status=1,resizable=1,scrollbars=1,height="+L+",width="+J);if(window.focus){J.focus()}return false}var B={get:function(){var M=document.cookie.split(";");var N={};if(M){var L=[];for(var K=0,J=M.length;K<J;K++){L=M[K].split("=");N[L[0]]=L[1]}}return N},set:function(L,M,K,N){var J="";if(K){var O=new Date();O.setTime(O.getTime()+(K*24*60*60*1000));var J="; expires="+O.toGMTString()}if(!N){N=window.location.pathname}document.cookie=L+"="+M+J+"; path="+N;if(dna.utils.cookie.get()[L]==M){return true}else{return false}}};function G(J,L){if(glow.env.gecko){var K=new RegExp("(\\S){"+L+",}","gmi");D(J).each(function(O){var P=K.exec(this.innerHTML);if(P){for(var O=0,M=P.length;O<M;O++){if(P[O].length>=L){var N=P[O].slice(0,L)+"<br />"+P[O].slice(L,P[O].length);this.innerHTML=this.innerHTML.replace(P[O],N)}}}})}}function F(L){var J=/\s&\s/gi;var K=L.replace(J," &amp; ");return K}return{cleanWhitespace:H,newlineToBr:C,getQuerystring:I,popup:A,wrapText:G,cookie:B,tagSoupToXml:F}}();dna.comments=function(){var F=glow;var E=F.dom.get;var P="/dnaimages/components/shared",B="",A="",O=false,Q=false,J=false,I=false;function D(S){O=E(S);if(O[0]){Q=E("#dna-commentbox-text");J=E("#dna-commentbox-submit");G.addButton();var R=O[0].action;O[0].action=R.replace(/\/comments\/acs/,"/json/acs");F.events.addListener(O,"submit",function(T){K.disable();L.add();M.send();return false})}}function C(){var R=dna.utils.getQuerystring();if(R.dnaerrortype){dna.error.handle(R.dnaerrortype)}N.check()}var K={disable:function(){J.addClass("disabled");J[0].disabled=true;J[0].blur();previewEl.addClass("disabled");previewEl[0].disabled=true;Q.addClass("disabled");Q[0].disabled=true},enable:function(){J.removeClass("disabled");J[0].disabled=false;previewEl.removeClass("disabled");previewEl[0].disabled=false;Q.removeClass("disabled");Q[0].disabled=false},resetCommentText:function(){Q[0].value=""}};var L={add:function(){F.dom.create('<img src="'+P+'/img/loader-paleblue.gif" id="dna-commentbox-loader" />').insertAfter(J)},remove:function(){E("#dna-commentbox-loader").remove()}};var N={timer:false,check:function(){var R=dna.utils.cookie.get().dnaCountdown;if(R>0){N.start(R)}},start:function(W){var V=new Date();var U=V.getTime();var X=(W*1000);var R=U+X;dna.utils.cookie.set("dnaCountdown",W,1);var S=function(){dna.utils.cookie.set("dnaCountdown",--W,1);if(N.onUpdate){N.onUpdate(W)}};S();var T=function(){if(new Date().getTime()>R){N.stop();dna.utils.cookie.set("dnaCountdown","",-1)}else{S()}};N.timer=setInterval(T,1000)},stop:function(){clearInterval(N.timer);if(N.onStop){N.onStop()}},onUpdate:function(R){var S=E("#dna-commentbox-countdown");if(!S[0]){F.dom.create('<span id="dna-commentbox-countdown">Post successful.</span>').insertAfter(J);S=E("#dna-commentbox-countdown")}S[0].innerHTML="You must wait "+R+" seconds until you can make another comment."},onStop:function(){E("#dna-commentbox-countdown").empty();K.enable()}};var M={send:function(){var R=O[0].action,S=dna.utils.tagSoupToXml(Q[0].value);F.net.post(R,{dnacomment:S,dnauid:O.children().children().filter(function(){return this.name=="dnauid"})[0].value,dnaaction:"add",dnaur:0,dnapoststyle:1,s_xhr:1},{load:M.processResponse,error:M.onError})},processResponse:function(R){var S=glow.data.decodeJson(dna.utils.cleanWhitespace(R.text()),{safeMode:false});if(S.error.errorType){M.onError(S)}else{if(E("#comment"+S.id)[0]){L.remove();dna.error.notify("You already said that in comment "+S.id);N.stop()}else{H(S);if(M.onSuccess){M.onSuccess()}}}},onError:function(R){L.remove();N.stop();K.enable();dna.error.handle(R)},onSuccess:function(){L.remove();N.start(N.seconds||defaultCountdown)}};function H(S){var R;G.remove();noCommentsEl=O.parent().get("p.dna-commentbox-nocomments");if(noCommentsEl[0]){R=F.dom.create('<ul class="collections forumthreadposts"></ul>').insertBefore(noCommentsEl);noCommentsEl.remove()}else{R=O.parent().get("ul.forumthreadposts").sort().slice(0,1)}F.dom.create(S.html).addClass((R.children().length%2)?"stripe":"").appendTo(R);K.resetCommentText()}var G={addButton:function(){F.dom.create('<input type="button" id="dna-commentbox-preview" value="Preview"/>').insertBefore(J);previewEl=E("#dna-commentbox-preview");F.events.addListener(previewEl,"click",G.generate)},generate:function(){var T=E("#dna-commentbox-previewArea");if(!T[0]){F.dom.create('<ul class="collections forumthreadposts" id="dna-commentbox-previewArea"></ul>').insertAfter(O);previewAreaEl=T=E("#dna-commentbox-previewArea")}var S=new Date();var U=S.toString().split(" ")[1];var V={text:dna.utils.newlineToBr(Q[0].value),viewingUserGroup:A,name:B,count:previewAreaEl.prev().prev().prev().get("li").length+1,time:S.getHours()+":"+((S.getMinutes()<10)?"0":"")+S.getMinutes()+" "+((S.getHours()<12)?"am":"pm"),date:S.getDate()+" "+U+" "+S.getFullYear()};var R='<li class="{viewingUserGroup}"><span class="comment-number">{count}. </span><cite>At <a href="#postcomment" class="time">{time}</a> on <span class="date">{date}</span>, <span class="vcard"><span class="fn"><a href="#dna-commentbox-previewArea">{name}</a></span></span> wrote:</cite><p class="comment-text">{text}</p><p class="flag"></p></li>';T[0].innerHTML=F.lang.interpolate(R,V)},remove:function(){E("#dna-commentbox-previewArea").remove()}};return{apply:function(R){if(R.targetForm){defaultCountdown=20;B=R.viewingUser;A=R.viewingUserGroup;E(".popup").each(function(){glow.events.addListener(this,"click",function(){dna.utils.popup(this.href,694,546);return false})});D(R.targetForm);C();dna.utils.wrapText("#comments p.comment-text",65)}else{throw new Error("DNA Comments: A target form is a required parameter.")}},ui:{disable:K.disable,enable:K.enable},countdown:{onUpdate:N.onUpdate,onStop:N.onStop},loader:{add:L.add,remove:L.remove},post:{send:M.send,onError:M.onError,processResponse:M.processResponse,onSuccess:M.onSuccess},preview:{generate:G.generate,remove:G.remove},updateDom:H}}();