var mouse_down_on_text = 0;
var mouse_up_on_text = 0;

function defScroll() {
	var x = y = 0;
	x = (window.scrollX) ? window.scrollX : document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft;
	y = y = (window.scrollY) ? window.scrollY : document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop;
	return {x:x, y:y};
}
function screenSize() {
	var w, h;
	w = (window.innerWidth ? window.innerWidth : (document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.offsetWidth));
	h = (window.innerHeight ? window.innerHeight : (document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.offsetHeight));
	return {w:w, h:h}; 
}

function catchKey (event) {
	if (mouse_down_on_text == 1 && mouse_up_on_text == 1) {
		var mistake_div = document.getElementById('mistake_div');
		if (window.event){ event = window.event;}
		if (event.keyCode == 27) {
			if(mistake_div){
				mistake_div.style.display='none';
			}
		}
		if (event.ctrlKey && (event.keyCode == 13 || event.keyCode == 10)) {
			if (window.getSelection) {
				selection = window.getSelection();
				if(!selection.toString().length){ return}
				if(selection.getRangeAt) {
					range = selection.getRangeAt(0);
					if (window.opera){
						prev = selection.getRangeAt(0);
					}else{
						prev=document.createRange();
					}
					prev.setStartBefore(range.startContainer);
					prev.setEnd(range.startContainer,range.startOffset);
					prev = prev.toString();
					if (prev.length>20){
						prev = prev.substring(Math.max(prev.length-30,0),prev.length).replace(/^\S{1,10}\s+/,'');
					}
					if (window.opera){
						next = selection.getRangeAt(0);
					}else{
						next = document.createRange();
					}
					next.setStart(range.endContainer, range.endOffset);
					next.setEndAfter(range.endContainer);
					next = next.toString();
					if (next.length > 50){
						next = next.toString().substring(0,30).replace(/\s+\S{1,10}$/,'');
					}
				}
			}else{
				if (document.selection.createRange) {
					selection = document.selection.createRange();
					selection.expand('word');
					prev = document.selection.createRange();
					prev.moveStart('character',-20);
					prev.setEndPoint('EndToStart',selection);
					prev.expand('word');
					prev = prev.text;
					next = document.selection.createRange();
					next.moveEnd('character', 20);
					next.setEndPoint('StartToEnd',selection);
					next.expand('word');
					next = next.text;
					selection = selection.text;

				}
			}

			if(!mistake_div){
				var div = document.createElement('div');
				div.id = 'mistake_div';
				div.style.display = 'none';
				div.style.background = '#efefef';
				div.style.position = 'absolute';
				div.style.width = 416 + 'px';
				div.style.height = 200 + 'px';
				div.style.border = '1px solid #8c8c8c';
				div.style.padding = '0px';
				div.style.zIndex = '100000000';
				document.body.appendChild(div);
				div.innerHTML="\
				<div><table cellspacing=0 class=\"mb12 mt10 mr18 ml18\"><tr>\
				<td class=\"t75\">Ошибка в тексте:</td>\
				<td class=\"right t70 tahoma pb3\"><a href=\"#\" class=\"grey8c\" onclick=\"document.getElementById('mistake_div').style.display='none';return false;\">Закрыть</a></td>\
				</tr><tr>\
				<td colspan=2><textarea id=\"mistake_text\" rows=7 cols=10 class=\"w100 arial t75 mt3 mb7\" style=\"width:380px;border:1px solid #8c8c8c\"></textarea><div>\
				<input id=\"sendMistakeBtn\" type=button class=\"t70 tahoma mr3\" style=\"width:80px;text-align:center\" onclick=\"sendMistake();\" value=\"Отправить\" />\
				<input type=button class=\"t70 tahoma\" style=\"width:65px;text-align:center\" onclick=\"document.getElementById('mistake_div').style.display='none';\" value=\"Отмена\" />\
				</div></td></tr></table></div>";
			}
			mistake_div = document.getElementById('mistake_div');
			mistake_div.style.display = 'block';
			var left = (screenSize().w - mistake_div.offsetWidth) / 2;
			var top = (screenSize().h - mistake_div.offsetHeight) / 2;
			left = (left < 0 ? 0 : left) + defScroll().x;
			top = (top < 0 ? 0 : top) + defScroll().y;
			mistake_div.style.top = top + 'px';
			mistake_div.style.left = left + 'px';
			document.getElementById('mistake_text').value = prev + '[' + selection + ']' + next;
			document.getElementById('sendMistakeBtn').focus();
		}
        if (event.keyCode == 17){
            mouse_down_on_text = 1;
			mouse_up_on_text = 1;
		}else{
			mouse_down_on_text = 0;
			mouse_up_on_text = 0;
		 }
	   }
	}

