﻿var is_ok = false;
var err_text;

function on_key_press(key_press) {
    if (is_ok) {
        var kC, cK, kM;
        if (window.event) {
            kC = window.event.keyCode;
            cK = window.event.ctrlKey;
            kM = 2;
        }
        else
            if (parent && parent.event) {
            kC = parent.event.keyCode;
            cK = parent.event.ctrlKey;
            kM = 2;
        }
        else {
            kC = key_press.keyCode;
            cK = key_press.ctrlKey;
            if (key_press.modifiers != undefined) {
                kM = key_press.modifiers;
                cK = 2;
                kC = key_press.which;
            }
            else kM = 2;
        }
        if (cK && kM == 2 && (kC == 13 || kC == 10))
            send_error();
    }
}

function send_error() {
    var wnd = (window.name == 'send_frame') ? parent : window;
    var sel_text = null;
    if (wnd.getSelection)
        err_text = wnd.getSelection();
    else
        if (wnd.document.getSelection)
        err_text = wnd.document.getSelection();
    else
        sel_text = wnd.document.selection;
    if (sel_text) {
        err_text = sel_text.createRange().text;
        var b_text = sel_text.createRange();
        var a_text = sel_text.createRange();
        sel_text = err_text;
        b_text.moveStart("word", -10);
        b_text.moveEnd("character", -err_text.length);
        a_text.moveStart("character", err_text.length);
        a_text.moveEnd("word", 10);
        if (err_text == '') return;
        sel_text = b_text.text + ' [--->]' + err_text + '[<---] ' + a_text.text;
    } else {
        if (err_text == '') return;
        if (window.document.body != undefined) {
            if (wnd.document.body.innerText != undefined)
                sel_text = wnd.document.body.innerText;
            else
                sel_text = wnd.document.body.innerHTML;
            var nn = sel_text.indexOf(err_text);
            if (nn != -1) {
                var tmp_str = err_text + "";
                sel_text = sel_text.substring(nn - 70, nn) + ' [--->]' + err_text + '[<---] ' + sel_text.substring(nn + tmp_str.length, nn + tmp_str.length + 70);
            }
            else sel_text = ' [--->]' + err_text + '[<---] ';
        }
        else sel_text = ' [--->' + err_text + '[<---] ';
    }
    if (err_text.length == 0 || err_text == " ") return;
    if (sel_text.length > 300) {
        alert("Вы выделили слишком большой фрагмент текста!");
    } else {
        if (confirm("Фрагмент текста, в котором\nВы обнаружили ошибку:\n		 " + sel_text + "\n\nАдрес страницы:\n		 " + wnd.document.location + "\n\nОтправить сообщение об этой ошибке администратору сайта www.kopeika27.biz?")) {
            var rsn = '';
            while (rsn == '') rsn = prompt("Укажите, пожалуйста, в чём ошибка, во избежание недоразумений:", "");
            if (rsn) {
                var bodyhtml = '<h3>' + rsn + '</h3>';
                bodyhtml += '<p>' + sel_text + '</p>';
                bodyhtml += '<p>страница: ' + unescape(top.document.URL) + '</p>';
                bodyhtml += '<p>страница: ' + unescape(wnd.document.URL) + '</p>';
                SiteService.SendMail(bodyhtml, sendok, sendfail);
            }
        }
    }
}
function sendok(result) {
    if (result) {
        alert('Ваше сообщение об ошибке успешно отправлено.\nСпасибо Вам большое за участие!');
    }
}
function sendfail(arg) {
    if (arg) {
        alert('Ваше сообщение об ошибке\nНЕ может быть отправлено.\nПовторите попытку позже, пожалуйста.');
    }
}

if (parent) parent.document.onkeypress = on_key_press;
document.onkeypress = on_key_press;
is_ok = true;
