function MultiQuote(data,count){this.data=data;this.count=count;this.selectedText='';this.ajaxRequest=null;this.singleQuoteID=0;this.init=function(){for(var id in this.data){var link=document.getElementById('postQuote'+id);if(link){link.multiQuote=this;link.name=id;link.href="javascript:void(0);";link.ondblclick=function(){multiQuote.quoteDirectly(this.name);};var icon=false;if(link.firstChild&&link.firstChild.src){icon=link.firstChild;}
icon.src=icon.src.replace(/postQuote(?=(?:S|M|L|XL)\.png$)/,'postQuoteOptions');link.onmousedown=function(e){this.multiQuote.showMenu(e,this);};var menuDiv=document.createElement('div');menuDiv.id='postQuote'+ id+'Menu';menuDiv.className='hidden';link.parentNode.appendChild(menuDiv);popupMenuList.register('postQuote'+ id);}
if(this.data[id]['quotes']){this.updateQuoteButton(id);}}
if(this.count>0){this.updateReplyButtons();}}
this.updateQuoteButton=function(id){var link=document.getElementById('postQuote'+id);if(link){if(this.data[id]["quotes"]>0){link.parentNode.className='selected';}
else{link.parentNode.className='';}
if(link.childNodes[2]&&link.childNodes[2].firstChild){var text=eval(language['wbb.thread.post.button.quoteMultiple']);link.childNodes[2].removeChild(link.childNodes[2].firstChild);link.childNodes[2].appendChild(document.createTextNode(text));}}}
this.updateReplyButtons=function(){var i=1;while(true){var button=document.getElementById('replyButton'+i);if(!button)break;this.updateReplyButton(button);i++;}}
this.updateReplyButton=function(button){if(this.count>0){button.parentNode.className='selected';}
else{button.parentNode.className='';}
if(button.childNodes[2]&&button.childNodes[2].firstChild){var text=eval(language['wbb.thread.button.replyWithQuotes']);button.childNodes[2].removeChild(button.childNodes[2].firstChild);button.childNodes[2].appendChild(document.createTextNode(text));}}
this.getSelectedText=function(id){this.selectedText='';var selectedText='';if(window.getSelection){selectedText=window.getSelection().toString();if(selectedText==undefined){selectedText=new String(window.getSelection());}}
else if(document.getSelection){selectedText=document.getSelection().toString();}
else if(document.selection){selectedText=document.selection.createRange().text;}
if(selectedText!=''){var availableText=this.getAvailableText(id);availableText=availableText.replace(/\s+/g,'');var text=new String(selectedText).replace(/\s+/g,'');if(availableText.indexOf(text)!=-1){this.selectedText=new String(selectedText);}}}
this.getAvailableText=function(id){var element=document.getElementById('postText'+id);if(!element)return'';return this.getNodeText(element);}
this.getNodeText=function(node){var nodeText='';for(var i=0;i<node.childNodes.length;i++){if(node.childNodes[i].nodeType==3){nodeText+=node.childNodes[i].nodeValue;}
else{if(IS_MOZILLA&&node.childNodes[i].nodeName.toLowerCase()=='img'&&node.childNodes[i].alt){nodeText+=node.childNodes[i].alt;}
nodeText+=this.getNodeText(node.childNodes[i]);}}
return nodeText;}
this.getQuoteOptions=function(id){var options=new Array();var i=0;this.getSelectedText(id);options[i]=new Object();options[i]['function']='multiQuote.quoteDirectly('+id+');';options[i]['text']=(this.selectedText!=''?language['wbb.thread.post.quote.quoteTextDirectly']:language['wbb.thread.post.quote.quotePostDirectly']);i++;options[i]=new Object();options[i]['function']='multiQuote.markToQuote('+id+');';options[i]['text']=(this.selectedText!=''?language['wbb.thread.post.quote.markTextToQuote']:language['wbb.thread.post.quote.markPostToQuote']);i++;if(this.data[id]['quotes']){options[i]=new Object();options[i]['function']='multiQuote.removeQuotes('+id+');';options[i]['text']=language['wbb.thread.post.quote.removeQuotes'];i++;}
return options;}
this.showMenu=function(event,element){var id=element.id.replace(/[^\d]+/,'');var options=this.getQuoteOptions(id);this.createMenu(options,element,'postQuote'+ id+'Menu');}
this.createMenu=function(options,parentElement,id){var menuDiv=document.getElementById(id);while(menuDiv.hasChildNodes()){menuDiv.removeChild(menuDiv.firstChild);}
var menuUL=document.createElement('ul');menuDiv.appendChild(menuUL);for(var i=0;i<options.length;i++){var menuLI=document.createElement('li');menuUL.appendChild(menuLI);var menuA=document.createElement('a');menuA.href='javascript:'+options[i]['function'];menuLI.appendChild(menuA);menuA.appendChild(document.createTextNode(options[i]['text']));}}
this.quoteDirectly=function(id){if(this.selectedText==''){document.location.href=fixURL('index.php?form=PostAdd&postID='+id+'&action=quote'+SID_ARG_2ND);}
else{this.singleQuoteID=id;this.saveQuote(id,this.selectedText,true);}}
this.markToQuote=function(id){this.saveQuote(id,this.selectedText,false);this.data[id]['quotes']++;this.updateQuoteButton(id);this.count++;this.updateReplyButtons();}
this.removeQuotes=function(id){var ajaxRequest=new AjaxRequest();ajaxRequest.openPost('index.php?page=PostAction'+SID_ARG_2ND,'action=removeQuotes&postID='+id);this.count-=this.data[id]['quotes'];this.updateReplyButtons();this.data[id]['quotes']=0;this.updateQuoteButton(id);}
this.saveQuote=function(id,text,singleQuote){this.ajaxRequest=new AjaxRequest();this.ajaxRequest.openPost('index.php?page=PostAction'+SID_ARG_2ND,'action=quote&postID='+id+'&text='+encodeURIComponent(text),(singleQuote?function(){multiQuote.receiveResponse();}:false));}
this.receiveResponse=function(){if(this.ajaxRequest&&this.ajaxRequest.xmlHttpRequest.readyState==4){document.location.href=fixURL('index.php?form=PostAdd&postID='+this.singleQuoteID+SID_ARG_2ND);}}
this.init();}
