function createRequestObject(){return navigator.appName=="Microsoft Internet Explorer"?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()}function quickPM(postid,username,anchorobj){var showobj=document.getElementById('qpm'+postid);var http=createRequestObject();var tokenhttp=createRequestObject();var initialized=false;var objto,objbcc,objsubject,objmessage;var token=0;var to,subject,message;function getPos(elm){var _top=0,_left=0;if(elm.offsetParent){_left=elm.offsetLeft;_top=elm.offsetTop;while(elm=elm.offsetParent){_left+=elm.offsetLeft;_top+=elm.offsetTop}}return Array(_left,_top)}function pmSend(to,bcc,subject,message){http.open('POST','/forum/private.php','true');http.onreadystatechange=handleResponse;http.setRequestHeader("If-Modified-Since","Sat, 1 Jan 2000 00:00:00 GMT");http.setRequestHeader('Content-Type','application/x-www-form-urlencoded');http.send('do=insertpm&savecopy=1&parseurl=1&receipt=0&recipients='+encodeURIComponent(to)+'&bccrecipients='+encodeURIComponent(bcc)+'&title='+encodeURIComponent(subject)+'&message='+encodeURIComponent(message)+'&securitytoken='+encodeURIComponent(token))}function handleResponse(){if(http.readyState==4){var response=http.responseText;if(response.length){if(response.search(/users were not found/)!=-1){alert('Invalid member name. Check the names then send again.')}else if(response.search(/requires that you wait/i)!=-1){alert('You must wait at least 5 seconds between messages.')}else if(response.search(/POSTERROR/i)!=-1||response.search(/main error message/i)!=-1){alert("Error occurred sending PM")}else{alert("PM has been sent");clearForm()}}}}function getToken(){tokenhttp.open('POST','/forum/quickpm/userinfo.php','true');tokenhttp.onreadystatechange=tokenHandleResponse;tokenhttp.setRequestHeader("If-Modified-Since","Sat, 1 Jan 2000 00:00:00 GMT");tokenhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');tokenhttp.send('m=551&to='+encodeURIComponent(to))}function tokenHandleResponse(){if(tokenhttp.readyState==4){var response=tokenhttp.responseText;if(response.length){token=response=='guest'?0:response;if(token){pmSend(to,bcc,subject,message)}else{alert("Make sure you're logged in. Unable to send PM")}}}}function initObject(){initialized=true;var insertrefhtml=(postid=='x'?'':' <span class="qpminsertref" href="#" onclick="return document.getElementById(\'qpma'+postid+'\').qpm.onInsertReference();">(Insert link to this post)</span>');showobj.innerHTML='<div class="qpmtitle tcat">Quick Private Message</div><div class="qpmbody"><label for="qpmto'+postid+'">To</label><br /><input id="qpmto'+postid+'" type="text" value="'+username+'" size="40" maxlength="85" onkeydown="return document.getElementById(\'qpma'+postid+'\').qpm.onKeyDown(event, 0);" /><br /><label for="qpmbcc'+postid+'" id="qpmbcclabel'+postid+'" class="qpmbcclabel" onclick="return document.getElementById(\'qpma'+postid+'\').qpm.onClickBCC();">BCC (optional) &raquo;</label><div id="qpmbccdiv'+postid+'" style="display:none"><input id="qpmbcc'+postid+'" type="text" value="" size="40" maxlength="85" onkeydown="return document.getElementById(\'qpma'+postid+'\').qpm.onKeyDown(event, 0);" /><br /></div><label for="qpmsubject'+postid+'">Subject</label><br /><input id="qpmsubject'+postid+'" type="text" value="" size="40" maxlength="85" onkeydown="return document.getElementById(\'qpma'+postid+'\').qpm.onKeyDown(event, 0);" /><br /><label for="qpmmessage'+postid+'">Message</label>'+insertrefhtml+'<br /><textarea id="qpmmessage'+postid+'" cols="30" rows="7" onkeydown="return document.getElementById(\'qpma'+postid+'\').qpm.onKeyDown(event, 1);"></textarea><br /><input onclick="document.getElementById(\'qpma'+postid+'\').qpm.onSubmit();" type="button" value="Submit" /> <input onclick="document.getElementById(\'qpma'+postid+'\').qpm.onCancel();" type="button" value="Cancel" /></div>';showobj.style.display='block';var pos=getPos(anchorobj);if(postid=='x'){showobj.style.left=(pos[0]-showobj.offsetWidth+(anchorobj.offsetWidth/2))+'px';showobj.style.top=((pos[1]+(anchorobj.offsetHeight/2))-42)+'px'}else{showobj.style.left=(pos[0]+(anchorobj.offsetWidth/2))+'px';showobj.style.top=(pos[1]-showobj.offsetHeight+(anchorobj.offsetHeight/2))+30+'px'}}function clearForm(){objto.value=username;objbcc.value='';objsubject.value='';objmessage.value=''}this.onClickBCC=function(){var obj=document.getElementById('qpmbccdiv'+postid);if(obj.style.display!='inline'){document.getElementById('qpmbcclabel'+postid).style.marginBottom='0';obj.style.display='inline';return true}else{if(document.getElementById('qpmbcc'+postid).value.trim().length){alert("The BCC box can't close with names still in it.");return false}else{document.getElementById('qpmbcclabel'+postid).style.marginBottom='9px';obj.style.display='none';return false}}};this.onInsertReference=function(){objmessage.value='In reference to [url=http://www.tacomaworld.com/forum/showpost.php?p='+postid+']this[/url] post...\n\n'+objmessage.value;objmessage.focus();return false};this.onSubmit=function(){to=objto.value.trim();bcc=objbcc.value.trim();subject=objsubject.value.trim();message=objmessage.value.trim();if(!to.length){alert('Fill in the To field of your PM');objto.focus();return}if(!subject.length){alert('Your PM has to have a subject');objsubject.focus();return}if(!message.length){alert('Your PM is missing a message');objmessage.focus();return}showobj.style.display='none';getToken()};this.onCancel=function(){showobj.style.display='none'};this.show=function(){if(!initialized){initObject();objto=document.getElementById('qpmto'+postid);objbcc=document.getElementById('qpmbcc'+postid);objsubject=document.getElementById('qpmsubject'+postid);objmessage=document.getElementById('qpmmessage'+postid)}showobj.style.display='block';if(!objto.value.trim().length){objto.focus()}else if(!objsubject.value.trim().length){objsubject.focus()}else if(!objmessage.value.trim().length){objmessage.focus()}};this.onKeyDown=function(e,isenterok){if(e.keyCode==13){return isenterok?true:false}else if(e.keyCode==27){this.onCancel()}return true};String.prototype.trim=function(){return this.ltrim().rtrim()};String.prototype.ltrim=function(){return this.replace(/^\s+/g,"")};String.prototype.rtrim=function(){return this.replace(/\s+$/g,"")}}function qpmSetup(postid,username){document.getElementById('qpma'+postid).onclick=function(e){if(!this.qpm){this.qpm=new quickPM(postid,username,this)}this.qpm.show();e=e?e:window.event;e.returnValue=false;return false}}