/**
 * based on the beanshell macro written by lturner (on Thu, 11/03/2004 - 15:15)
 * now it tries to deal with escaped quotes "like this\"one", though it will fail with "a\\b\\c\\"
 */
(function(){

	function quoteRange(quotChar) {
		var origCaretPos = caret.position(), startPosition, prevChar;
		
		//nothing to do at the very end/beginning
		if ((origCaretPos == 0) || (origCaretPos == buffer.getLength()))
			return false;

		//backwards
		while (caret.position()) {
			caret.toPrevChar();
			prevChar = caret.position() > 1 ? textarea.getText(caret.position(), -1) : '';
			if ((textarea.getText() == quotChar) && (prevChar != '\\'))  break;
		}

		//bail out if we went down to the very first character
		if (!caret.position() && textarea.getText()!='"') {
			caret.position(origCaretPos);
			return false;
		}

		//forward
		startPosition = caret.position() + 1;
		while (caret.position() < buffer.getLength() - 1) {
			caret.toNextChar();
			prevChar = textarea.getText(caret.position(), -1);
			if ((textarea.getText() == quotChar) && (prevChar != '\\'))  break;
		}
		
		//now it is the end of the buffer
		if ((caret.position() == buffer.getLength() - 1) && (textarea.getText() != quotChar)) {
			caret.position(origCaretPos);
			return false;
		}
		
		//range select
		textarea.setSelectionRange(startPosition, caret.position(), true);
		caret.position(origCaretPos);
		return true;
	}
	
	quoteRange('"');
	
})();
