/*

	Quote Comments JS
	
*/

function quote(postid, author, commentarea, commentID) {
	
	try {
		// begin code
		var posttext = '';
		if (window.getSelection){
			posttext = window.getSelection();
		}
		else if (document.getSelection){
			posttext = document.getSelection();
		}
		else if (document.selection){
			posttext = document.selection.createRange().text;
		}
		else {
			return true;
		}
		
		if (posttext=='') {		// quoting entire comment
		
			// quoteing the entire thing
			var selection = false;
		
			// quote entire comment as html
			var q = "q-"+commentID.split("div-comment-")[1];
			var posttext = document.getElementById(q).innerHTML;
			
			// remove nested divs
			var posttext = posttext.replace(/<div(.*?)>((.|\n)*?)(<\/div>)/ig, "");

			// remove nested blockquotes
			var posttext = posttext.replace(/<blockquote(.*?)>((.|\n)*?)(<\/blockquote>)/ig, "");
			var posttext = posttext.replace(/<blockquote(.*?)>((.|\n)*?)(<\/blockquote>)/ig, "");

			/*
			var posttext = posttext.replace(/<blockquote>[^>]*<\/\s*blockquote>/g, "");
			var posttext = posttext.replace(/<blockquote>[^>]*<\/\s*blockquote>/g, "");
			*/


			// do basic cleanups
			var posttext = posttext.replace(/	/g, "");
			var posttext = posttext.replace(/<p>/g, "\n");
			var posttext = posttext.replace(/<\/\s*p>/g, "");
			var posttext = posttext.replace(/<br>/g, "")
			
			// remove superfluous linebreaks
			var posttext = posttext.replace(/\s\s/gm, "");
	
			// remove nested spans
			var posttext = posttext.replace(/<span(.*?)>((.|\n)*?)(<\/span>)/ig, "");

			
			// remove nested img
			var posttext = posttext.replace(/<img(.*?)>/ig, "");
			
			// remove nested blockquotes
			while (posttext != (posttext = posttext.replace(/<blockquote>[^>]*<\/\s*blockquote>/g, "")));
			
		}
			
		// build quote
		var quote='<blockquote cite="comment-'+postid+'">\n<strong><a href="#comment-'+postid+'">'+author+' a écrit :</a></strong> '+posttext+'\n</blockquote>\n';
		
		
		// send quoted content
		var comment=document.getElementById(commentarea);
		addQuote(comment,quote);
			
		return false;
		
	} catch (e) {
		alert("Erreur pour citer, veuillez utiliser le formulaire directement s.v.p.")
	}
	
}

function repondre(postid, author, commentarea, commentID) {
	
	try {
			
		// build reponse
		var reponse='<blockquote cite="reponse"><strong><a href="#comment-'+postid+'">@'+author+' :</a></strong></blockquote>\n';
		
		// send quoted content
		var comment=document.getElementById(commentarea);
		addQuote(comment,reponse);
			
		return false;
		
	} catch (e) {
		alert("Erreur pour répondre, veuillez utiliser le formulaire directement s.v.p.")
	}
	
}

function addQuote(comment,quote){
	/*
	
		Derived from Alex King's JS Quicktags code (http://www.alexking.org/)
		Released under LGPL license
		
	*/	
	
	// IE support
	if (document.selection) {
		comment.focus();
		sel = document.selection.createRange();
		sel.text = quote;
		comment.focus();
	}
	// Mozilla support
	else if (comment.selectionStart || comment.selectionStart == '0') {
		var startPos = comment.selectionStart;
		var endPos = comment.selectionEnd;
		var cursorPos = endPos;
		var scrollTop = comment.scrollTop;
		if (startPos != endPos) {
			comment.value = comment.value.substring(0, startPos)
						  + quote
						  + comment.value.substring(endPos, comment.value.length);
			cursorPos = startPos + quote.length
		}
		else {
			comment.value = comment.value.substring(0, startPos) 
							  + quote
							  + comment.value.substring(endPos, comment.value.length);
			cursorPos = startPos + quote.length;
		}
		comment.focus();
		comment.selectionStart = cursorPos;
		comment.selectionEnd = cursorPos;
		comment.scrollTop = scrollTop;
	}
	else {
		comment.value += quote;
	}

	// If Live Preview Plugin is installed, refresh preview
	try {
		ReloadTextDiv();
	}
	catch ( e ) {
	}
	
}


