function preventSelection(element){
  var preventSelection = false;
  
  function addHandler(element, event, handler) {
    if (element.attachEvent)
      element.attachEvent('on' + event, handler);
    else
      if (element.addEventListener)
    element.addEventListener(event, handler, false);
  }

  function removeSelection() {
    if (window.getSelection) { window.getSelection().removeAllRanges(); }
    else if (document.selection && document.selection.empty)
    document.selection.empty();
  }

  function killCtrlA(event) {
    var event = event || window.event;
    var sender = event.target || event.srcElement;
    
    var key = event.keyCode || event.which;
    
    if (sender.tagName.match(/INPUT|TEXTAREA/i))
      return;

    if (event.ctrlKey && key == 'A'.charCodeAt(0)) {
      removeSelection();

      if (event.preventDefault)
        event.preventDefault();
      else
        event.returnValue = false;
    }
  }

  // не даем выделять текст мышкой
  addHandler(element, 'mousemove', function() {
    if(preventSelection)
      removeSelection();
  });

  addHandler(element, 'mousedown', function(event){
    var event = event || window.event;
    var sender = event.target || event.srcElement;

    preventSelection = !sender.tagName.match(/INPUT|TEXTAREA/i);
  });

  addHandler(element, 'mouseup', function(){
    if (preventSelection)
      removeSelection();
    preventSelection = false;
  });

//  addHandler(element, 'keydown', killCtrlA);
//  addHandler(element, 'keyup', killCtrlA);
}

preventSelection(document);

