var isOpera = (navigator.userAgent.indexOf("Opera") != -1);
if (isOpera) {
    var verOpera = parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf("Opera")+6));
}

if (!((navigator.appName.indexOf("Netscape")!=-1 && eval(navigator.appVersion.substring(0,1)) < 5) || (isOpera && verOpera < 7))) {
    var oForm;
    document.onkeydown = sendTxtError;
}

function stripSlashn (text) {
        return (""+text).replace(/[\r\n]+/g, ' ').replace(/^\s+|\s+$/g, "");
    }

function sendTxtError (evt){
    evt = (evt) ? evt : ((window.event) ? window.event : null);
    if (evt) {
        if (evt.keyCode == 10 || (evt.keyCode == 13 && evt.ctrlKey)) {

            oForm = document.forms['errorForm'];
            var oInit = {
                maxlen: 256,
                contlen: 60,
                url:    "senderror.html",
                wText:  {
                    Big: "Текст с ошибкой слишком большого размера",
                    NoSupport: "Ваш броузер не поддерживает эту функцию",
                    Error: "Документ:\n" + document.location.href + "\n\nОрфографическая ошибка в тексте",
                    Send: "\nВы уверены что хотите отослать сообщение об ошибке администратору сайта?\nВаш браузер останется на той же странице.",
                    Mark: "\n<ошибка>\n",
                    Url: "",
                    VarErr: "",
                    Err: " "
                }
            }

            var text = null;
            if (navigator.appName.indexOf("Netscape")!=-1 && eval(navigator.appVersion.substring(0,1))<5) {
                alert('juh');
                return;
            }
            var w = parent;
            var selection = null;
            if (w.getSelection) {
                selection = w.getSelection();
            } else if (w.document.getSelection) {
                selection = w.document.getSelection();
            } else {
                selection = w.document.selection;
            }
            var context = null;
            if (selection != null) {
                var pre="", text=null, suf="", pos=-1;
                if (selection.getRangeAt) { // Mozilla
                    var r = selection.getRangeAt(0);
                    text = r.toString();
                    var rngA = w.document.createRange();
                    rngA.setStartBefore(r.startContainer.ownerDocument.body);
                    rngA.setEnd(r.startContainer, r.startOffset);
                    pre = rngA.toString();
                    var rngB = r.cloneRange();
                    rngB.setStart(r.endContainer, r.endOffset);
                    rngB.setEndAfter(r.endContainer.ownerDocument.body);
                    suf = rngB.toString();
                } else if (selection.createRange) { // MSIE
                    var r = selection.createRange();
                    text = r.text;
                    var rngA = selection.createRange();
                    rngA.moveStart("character", - oInit.contlen);
                    rngA.moveEnd("character", -text.length);
                    pre = rngA.text;
                    var rngB = selection.createRange();
                    rngB.moveEnd("character", oInit.contlen);
                    rngB.moveStart("character", text.length);
                    suf = rngB.text;
                } else {
                    text = "" + selection;
                }
                // Move lead/trail spaces from the selection to pre/suf.
                var p;
                var s = (p = text.match(/^(\s*)/)) && p[0].length;
                var e = (p = text.match(/(\s*)$/)) && p[0].length;
                pre = pre + text.substring(0, s);
                suf = text.substring(text.length - e, text.length) + suf;
                text = text.substring(s, text.length - e);
            } else {
                alert("йух");
                return;
            }
            if (text == "") {
                return;
            }
            context = [
            pre.substring(pre.length - oInit.contlen, pre.length).replace(/^\S{1,10}\s+/, ''),
            text,
            suf.substring(0, oInit.contlen).replace(/\s+\S{1,10}$/, ''),
            pos
            ];
            var visCont = stripSlashn(context[0]+ oInit.wText.Mark + context[1] + oInit.wText.Mark + context[2]);

            sel = visCont;

            if (sel == null) {
                alert(oInit.wText.NoSupport);
                return;
            }
            if (sel.length > oInit.maxlen) {
                alert(oInit.wText.Big);
                return;
            }
            if (sel == "") return;
            if (confirm(oInit.wText.Error + "\n\n" + sel + "\n\n" + oInit.wText.Send)){

                re = /\r/g;
                sel=sel.toString().replace(re, " ");
                re = /\n/gi;
                sel=sel.toString().replace(re, " ");
                //var txt = oInit.wText.Url + document.location.href + "%0c%0a" + oInit.wText.Err + sel + "%0c%0a" + navigator.userAgent;
                //sendErrorByEmail(txt);
                var docloc = oInit.wText.Url + document.location.href;
                var txterr = oInit.wText.Err + sel;
                var useragent = navigator.userAgent;
                // 				var varerr = oInit.wText.VarErr + oForm.variable.value;
                var varerr = oInit.wText.VarErr + document.title;
                sendErrorForm(oInit.url,docloc,txterr,useragent,varerr);
            }
        }
    }
}


function sendErrorForm (url,docloc,txterr,useragent,varerr){
    oForm.action = url;
    if (!oForm) return;

    oForm.variable.value = varerr;
    oForm.docloc.value = docloc;
    oForm.txterr.value = txterr;
    oForm.useragent.value = useragent;
    oForm.submit();
}

