 function HtmlRequest(){this.threads=[]};HtmlRequest.prototype.makeRequest=function(url,p,rType){var that=this,i;if(!p)p=null;if(!(i=this.getThread())==null)return false;r=this.threads[i].obj;if(p){r.open('POST',url,true);r.setRequestHeader("Content-Type","application/x-www-form-urlencoded");r.setRequestHeader("Content-length",p.length);r.setRequestHeader("Connection","close")}else r.open('GET',url,true);if(typeof rType==='function')r.onreadystatechange=function(){if(that.threads[i].obj.readyState==4){that.clearThread(i);rType(that.threads[i].obj.responseText)}};else r.onreadystatechange=function(){if(that.threads[i].obj.readyState==4)that.clearThread(i)};r.send(p);return true};HtmlRequest.prototype.clearThread=function(i){var that=this;setTimeout(function(){that.threads[i].busy=false},2000)};HtmlRequest.prototype.getThread=function(){for(i=0;i<this.threads.length;i++){if(!this.threads[i].busy)break}if(!this.threads[i])this.threads[i]=this.makeObj();this.threads[i].busy=true;return this.threads[i]?i:null};HtmlRequest.prototype.makeObj=function(){if(window.XMLHttpRequest)r={'busy':0,'obj':new XMLHttpRequest()};else if(window.ActiveXObject){try{r={'busy':0,'obj':new ActiveXObject("Msxml2.XMLHTTP")}}catch(e){try{r={'busy':0,'obj':new ActiveXObject("Microsoft.XMLHTTP")}}catch(e){}}}return r?r:false}; var invite={html:new HtmlRequest(),updatePreview:function(){if(this.ajaxPath){$('#messagePreviewContainer').innerHTML="Loading...";this.html.makeRequest(this.ajaxPath+'inviteMessagePreview',this.parseFormToString($('#messagePreviewForm')),function(data){$('#messagePreviewContainer').innerHTML=data||'<span style="font-style:italic">Nothing to preview-fill out the form above first.</span>'})}},parseFormToString:function(form){var str='',name,inputs=[form.getElementsByTagName('input'),form.getElementsByTagName('select'),form.getElementsByTagName('textarea')];for(var i=0;i<inputs.length;i++){for(var j=0;j<inputs[i].length;j++){if(inputs[i][j]&&(name=inputs[i][j].getAttribute('name'))){var type=inputs[i][j].getAttribute('type');if(type!='checkbox'&&type!='radio'||(type=='checkbox'||type=='radio')&&inputs[i][j].checked){str+=escape(name).replace(/\+/,'%2B')+'='+escape(inputs[i][j].value).replace(/\+/,'%2B')+'&'}}}}return str.substring(0,str.length-1)}};addEvent(window,'load',function(){invite.updatePreview()});