$selection = {
  getText : function() {
    var txt = '';
    if (txt = window.getSelection) // Not IE, используем метод getSelection
      txt = window.getSelection().toString();
    else // IE, используем объект selection
      txt = document.selection.createRange().text;
    return txt;
  }
}

document.onkeypress=function(event, formElem) {
  if (window.event) event = window.event;
  if ((event.ctrlKey) && ((event.keyCode == 0xA) || (event.keyCode == 0xD))) {
    var elm=document.getElementById('error_form');
    if (!elm) {
      var newelm=document.createElement("div");
      var url=document.URL;
      url=url.replace('"','\\"');
      newelm.innerHTML+=
'<form action="/report_error/" method="post" id="error_form" style="height: 240px; width: 33%; position: absolute; z-index: 500; top: 400px; left: 33%; background: #FFF; border: #ccc 3px ridge; text-align: center"><fieldset><legend style="display:block;">Отправка сообщения об ошибке</legend>'+
'<label><textarea name="error_text" rows="6" cols="60" style="width: 96%; height: 160px">'+
'</textarea></label><br />'+
'<input type="hidden" name="url" value="'+url+'" /> '+
'<input type="submit" name="Submit" value="Отправить" /> '+
'<input type="button" name="cancel" value="Отмена" onclick="var elm=document.getElementById(\'error_form\'); elm.parentNode.parentNode.removeChild(elm.parentNode)" />'+
'</fieldset></form>';
      document.documentElement.appendChild(newelm);
      var elm=document.getElementById('error_form');
      elm.style.top=((self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop))+280)+'px';
    }
    elm.elements['error_text'].value=$selection.getText();
  }
}
