    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.clear)

    document.selection.clear();

    }

    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);

    });

    // борем dblclick

    // если вешать функцию не на событие dblclick, можно избежать

    // временное выделение текста в некоторых браузерах

    addHandler(element, 'mouseup', function(){

    if (preventSelection)

    removeSelection();

    preventSelection = false;

    });

    // борем ctrl+A

    // скорей всего это и не надо, к тому же есть подозрение

    // что в случае все же такой необходимости функцию нужно

    // вешать один раз и на document, а не на элемент

    addHandler(element, 'keydown', killCtrlA);

    addHandler(element, 'keyup', killCtrlA);

    }

preventSelection(document);
