1(function () { 2 window.ctrl_enter = {}; 3 var it = window.ctrl_enter; 4 5 var $frame; 6 var url_send; 7 var limit = 150; // ÐолиÑеÑÑво Ñимволов Ñлева и ÑпÑава Ð¾Ñ Ð²Ñделенной оÑибки 8 var text_for_form = ''; // ТекÑÑ Ñ Ð¾Ñибкой Ð´Ð»Ñ ÑоÑÐ¼Ñ Ð¾ÑпÑавки 9 var text_for_mail = ''; // ТекÑÑ Ñ Ð¾Ñибкой Ð´Ð»Ñ Ð¿Ð¸ÑÑма 10 11 it.set = function (url) { 12 url_send = url; 13 if (url != undefined && typeof document.onkeypress !== 'function') { 14 document.onkeypress = function (e) { 15 var asd = 0; 16 var we = window.event; 17 if (we) asd = we.keyCode == 10 || (we.keyCode == 13 && we.ctrlKey); 18 else if (e) asd = (e.which == 10 && e.modifiers == 2) || (e.keyCode == 0 && e.charCode == 106 && e.ctrlKey) || (e.keyCode == 13 && e.ctrlKey); 19 if (asd) window.ctrl_enter.form(); 20 }; 21 } 22 }; 23 24 it.form = function () { 25 var text, 26 range = get_sel_text(), 27 left = range.anchorOffset, 28 right = range.focusOffset; 29 30 if (typeof range.anchorNode !== 'undefined') { // ÐоÑмалÑнÑе бÑаÑзеÑÑ 31 try { 32 text = range.anchorNode.textContent; 33 } catch (e) { 34 inova_popup.set_message('ÐÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ вÑделиÑÑ ÑекÑÑ Ñ Ð¾Ñибкой.'); 35 return; 36 } 37 if (left > right) { 38 left = range.focusOffset; 39 right = range.anchorOffset; 40 } 41 if (right - left < 1) { 42 inova_popup.set_message('ÐÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ вÑделиÑÑ ÑекÑÑ Ñ Ð¾Ñибкой.'); 43 } else { 44 text_for_form = get_error_fragment(text, [left, right], ['<strong style="color: #ff0000">', '</strong>']); 45 text_for_mail = get_error_fragment(text, [left, right], ['##', '##']); 46 get_form(text_for_form); 47 } 48 } else { // СÑаÑÑе оÑÐ»Ñ 49 text = range.parentElement().innerText; 50 text_for_form = text; 51 text_for_mail = text; 52 text_for_mail += '\n'; 53 text_for_mail += '\n'; 54 text_for_mail += 'ФÑÐ°Ð³Ð¼ÐµÐ½Ñ ÑекÑÑа Ñ Ð¾Ñибкой: ' + range.text; 55 get_form(text_for_form); 56 } 57 }; 58 59 it.send = function () { 60 var data = { 61 'url': location.href, 62 'fragment': text_for_mail, 63 'comment': $('#ctrl_enterComment').val() 64 }; 65 $.ajax({ 66 url: url_send, 67 type: 'POST', 68 dataType: 'text', 69 data: data, 70 beforeSend: function () { 71 if (inova_popup.is_shown()) 72 inova_popup.freeze(); 73 else { 74 inova_popup.set_message('ÐодождиÑе...').freeze(); 75 } 76 }, 77 success: function () { 78 inova_popup.set_message('ÐаÑе замеÑание оÑпÑавлено.'); 79 }, 80 error: function () { 81 inova_popup.set_message('ÐÑибка оÑпÑавки даннÑÑ .'); 82 } 83 }); 84 }; 85 86 it.cancel = function () { 87 inova_popup.hide(); 88 }; 89 90 function get_sel_text() { 91 if (window.getSelection) 92 return window.getSelection(); 93 else if (document.getSelection) 94 return document.getSelection(); 95 else if (document.selection) 96 return document.selection.createRange(); 97 return false; 98 } 99 100 function get_error_fragment(text, err, wrap) { 101 var str_error = text.substr(err[0], err[1] - err[0]); 102 var str_before = text.substr(0, err[0]); 103 var str_after = text.substr(err[1], text.length); 104 str_before = str_before.length > limit ? '...' + str_before.substr(str_before.length - limit, limit) : str_before; 105 str_after = str_after.length > limit ? str_after.substr(0, limit) + '...' : str_after; 106 return str_before + wrap[0] + str_error + wrap[1] + str_after; 107 } 108 109 function get_form(text) { 110 var content = '<div style="max-width: 640px"><p style="margin-bottom: 1em">ÐÑибка в ÑекÑÑе:</p>' + 111 '<div style="margin-bottom: 1em; font-style: italic; font-size: 14px; font-family: Georgia; color: #aaaaaa">' + 112 '<span style="font-size: 2em; line-height: 0; position: relative; top: 0.1em">«</span>
112 ' + text + ' <span style="font-size: 2em; line-height: 0; position: relative; top: 0.1em">»</span>' + 113 '</div>' + 114 '<p style="margin-bottom: 1em">ÐомменÑаÑий (необÑзаÑелÑно):</p>' + 115 '<textarea style="display: block; width: 628px; margin-bottom: 1em; padding: 5px; border: 1px solid #b8ced9; border-radius: 3px; color: #666666" id="ctrl_enterComment" rows="3"></textarea>' + 116 '<div style="overflow: hidden">' + 117 '<input style="float: right" type="button" value="ÐÑпÑавиÑÑ" onclick="return ctrl_enter.send()"/>' + 118 '</div></div>'; 119 inova_popup.set_html(content, 'СообÑиÑÑ Ð¾Ð± оÑибке'); 120 } 121 122})();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.