function preventSelection(element) {
  var preventSelection = false;
  var messageReaded= false;

  function addHandler(element, event, handler){
    if (element.attachEvent) 
      element.attachEvent('on' + event, handler);
    else 
      if (element.addEventListener) 
        element.addEventListener(event, handler, false);
  }
  
  function getSelText() {
    if (window.getSelection && !window.opera)   var selText = window.getSelection(); // ff
    else if (document.getSelection)             var selText = document.getSelection(); // opera
    else if (document.selection)                var selText = document.selection.createRange().text; // ie
    if (!selText) selText = '';
    return selText.toString();
  }  
  
  function removeSelection(){
    if (getSelText().length > 10 && messageReaded == false) {
        alert('Использование материалов с сайта только с письменного разрешения правообладателя!');
        messageReaded= true;
    }
  }
  
  function killCtrlA(event){
    var event = event || window.event;
    var sender = event.target || event.srcElement;

    if (sender.tagName.match(/INPUT|TEXTAREA/i))
      return;

    var key = event.keyCode || event.which;
    if (event.ctrlKey && key == 'A'.charCodeAt(0))  // 'A'.charCodeAt(0) можно заменить на 65
    {
      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);
