//Скрипт отправки сообщений об ошибке

// отправка сообщения об ошибке
function sendError(obj) {
    // определение формы
    var myForm = $('#sendErrorForm form');
    if (!myForm.length) return false;
    // кнопка отправки
    var mySubmit = obj ? $(obj) : myForm.find('input:button');
    // настройки сохранения данных формы
    var options = {
        dataType: 'json',
        success: function(data) {
            mySubmit.next().remove();
            if (data.error) {
                alert(data.error);
            }
            else if (data.status) {
                alert('Спасибо! Ваше сообщение отправлено');
                $('#sendErrorForm').dialog('close');                
                //if (data.redirect) self.location.href = data.redirect;
            }
            mySubmit.attr('disabled', '');
        },
        beforeSubmit: function() {
            // проверяем заполненность обязательных полей
            var required = 0;
            myForm.find('.required_field').each(function() {
                if (!$(this).val()) {
                    alert($(this).attr('title'));
                    required = 1;
                    return false;
                }
            });
            if (required) return false;
            mySubmit.attr('disabled', 'yes');
            mySubmit.after('<span class="ajaxLoadingSmall" style="display: inline;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>');
        }
    };
    $('#sendErrorForm form').ajaxSubmit(options);
}

function openSendErrorWindow(loc, mis)
{
  // старый способ - через новое окно
  //windop = window.open(LinkSendErrorForm,"SendErrorWindow","height=400,width=500");
  
  // удаляем старую форму
  $('#sendErrorForm').remove();
  // проверяем наличие ссылки загрузки
  if (!LinkSendErrorForm) return false;
  
  if(!mis) alert("Выделите сначала ошибку!");
  
   // загружаем новую форму
   $.ajax({
     type: "GET", url: LinkSendErrorForm, dataType: "html",
     success: function(data) {
      // если ответ - не диалог, то обертываем в диалог для вывода
       if (data.indexOf('sendErrorForm') == -1) data = '<div id="sendErrorForm" style="display: none;" title="Cообщение">' + data + '</div>';
       // вставляем полученный ответ
       $(data).appendTo("body");
       // автоподстановка полей
       $("#sendErrorForm input[name='url']").val(loc);
       $("#sendErrorForm textarea[name='mis']").val(mis);       
       // открываем форму
       $("#sendErrorForm").dialog({
         bgiframe: true, autoOpen: false, minWidth: 450, minHeight: 350, modal: false,
         close: function() {
            $('#sendErrorForm form').clearForm();
         }
       });
       $('#sendErrorForm').dialog('open');
     }
   });   
}

// по Ctrl+Enter открывает в диалоговом окошке форму для отправки сообщения об ошибке 
function openSendErrorForm(e) 
{
  var loc = window.location;
  var mis;
  var nN = navigator.appName; 
	
  if (!e) e = window.event; 
	if((e.ctrlKey) && ((e.keyCode==10)||(e.keyCode==13))) {
    if(nN == 'Microsoft Internet Explorer') {
      if(document.selection.createRange()) {
        var range = document.selection.createRange();
        mis = range.text;
        openSendErrorWindow(loc, mis);
      }
    } 
    else {
      if (window.getSelection()) {
        mis = window.getSelection();
        openSendErrorWindow(loc, mis);
      }
      else if(document.getSelection()) {
        mis = document.getSelection();
        openSendErrorWindow(loc, mis);
      }
    }
    return true;
  } 
  return true;
} 

document.onkeypress = openSendErrorForm;
