
/***********************************************************************

	Copyright (C) 2008  PunBB

	PunBB is free software; you can redistribute it and/or modify it
	under the terms of the GNU General Public License as published
	by the Free Software Foundation; either version 2 of the License,
	or (at your option) any later version.

	PunBB is distributed in the hope that it will be useful, but
	WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with this program; if not, write to the Free Software
	Foundation, Inc., 59 Temple Place, Suite 330, Boston,
	MA  02111-1307  USA

***********************************************************************/

document.onmouseup = SetSelected;

function getSelectedText()
{
	var result = '';
	if (document.selection)
		result = document.selection.createRange().text;
	else if (document.getSelection)
		result = document.getSelection();
	else if (window.getSelection)
		txtRet = window.getSelection();
	else
		return result;
	return result;
}


function TrimString(param)
{
	param = param.replace(/ /g,' ');
	return param.replace(/(^\s+)|(\s+$)/g, '');
}

function QuickQuote(tid_param, qid_param)
{
	var element = document.getElementsByTagName('div');

	for(var i=0; i < element.length; i++)
	{
		if(element[i].className == 'postmain')
		{
			var post = new String(element[i].innerHTML);

			if(post.search('QuickQuote[(]' + tid_param + ',' + qid_param + '[)]') != -1)
			{
				var reg = new RegExp('<DIV[\\s]*class[\\s]*=[\\s]*["]*[\\s]*entry\\-content[\\s]*["]*[\\s]*>[\\s\\S]*<DIV[\\s]*class[\\s]*=[\\s]*["]*[\\s]*postfoot[\\s]*["]*[\\s]*>','ig');
				post = new String(reg.exec(post));

				var browse = navigator.userAgent.toLowerCase();

				post = post.replace(/((<BR>)(<\/P>))|((<BR\/>)(<\/P>))/ig,'$2$4');

				if(browse.indexOf('opera') == -1)
					post = post.replace(/((<BR>)(<P>))|((<BR\/>)(<P>))/ig,'$2$4');

				post = post.replace(/(:?<BR>)|(:?<BR\/>)/ig,'\n');

				//</p><p> = \n\n  - Opera FF
				//</p><p> = /n - IE 7.0
				if(browse.indexOf('opera') != -1 ||  browse.indexOf('gecko') != -1)
					post = post.replace(/(:?<\/p>)|(:?<p>)/ig,'\n');
				else
					post = post.replace(/<\/p>[\s]*<p>/ig,'\n');

				post = post.replace(/>[\s]*</,'><');

				//Make [quote="name"]...[/quote]
				post = post.replace(/<div[\s]*class[\s]*=[\s]*["]*[\s]*quotebox[\s]*["]*[\s]*>[\s]*<cite>/ig,'[quote=');
				post = post.replace(/[\s]*wrote:/g,"]");
				post = post.replace(/[\s]*<\/blockquote>[\s]*/ig,'[/quote]\n');

				//Remove tags
				post = post.replace(/<(:?.*?)>/gi,'');

				//Remove space symbols before [/q and after e] and ][
				post = post.replace(/\][\s]*\[/g,'][');
				post = post.replace(/[\s]*\[/g,'[');
				post = post.replace(/\][\s]*/g,']');

				//Replace quote = name name on quote = "name name"
				post = post.replace(/\[quote=(["][-a-zA-Z0-9]*)[\s]+([-"a-zA-Z0-9]*)\]/g,'[quote=\"$1 $2\"]');

				//Insert \n before [/quote]
				post = post.replace(/\]\[\/quote\]/g,']\n[/quote]');

				//exotic symbols =)
				post = post.replace(/\u00A0/g,' ');
				post = post.replace(/&nbsp;/g,' ');
				post = post.replace(/&lt;/g,'<');
				post = post.replace(/&gt;/g,'>');

				var selected_text = (window.selected_text_first == '')?window.selected_text_second:window.selected_text_first;//getSelectedText();

				if(selected_text != undefined)
				{
					//Remove \r and \n$
					selected_text = selected_text.replace(/\r*/gi,'');
					post = post.replace(/\r*/ig,'');

					selected_text = TrimString(selected_text);
					post = TrimString(post);

					selected_text = selected_text.replace(/(-)|(\*)|(\\)|(\/)|(\')|(\:)/gi,'\\$1$2$3$4$5$6');
					selected_text = selected_text.replace(/(\()|(\))|(\[)|(\])|(\{)|(\})|(\?)|(!)|(\+)/gi,'\\$1$2$3$4$5$6$7$8$9');

					//alert(selected_text.charAt(0));
					if((post.search(selected_text) != -1) && (selected_text.charAt(0) != ''))
					{
					   var form = document.getElementById('qq');
					   form.action='post.php?tid=' + tid_param + '&qid=' + qid_param;
					   element = document.getElementById('post_msg');
					   element.value = (window.selected_text_first == '')?window.selected_text_second:window.selected_text_first;//getSelectedText();
					   form.submit();
					   break;
					}
				}
				location = 'post.php?tid=' + tid_param + '&qid=' + qid_param;
			}
		}
	}
}

function SetSelected()
{
	switch(window.selected_text_pointer)
	{
		case 0:
			window.selected_text_pointer = 1;
			window.selected_text_first = getSelectedText();
			break;
		case 1:
			window.selected_text_pointer = 0;
			window.selected_text_second = getSelectedText();
			break;
		case undefined:
			window.selected_text_pointer = 0;
			window.selected_text_second = getSelectedText();
			break;
	}
}
