// Логика для создания сообщения
function onFileSelected(event) {
  var selectedFile = event.target.files[0];
  var reader = new FileReader();

  var imgtag = document.getElementById("myimage");
  imgtag.title = selectedFile.name;

  reader.onload = function (event) {
    imgtag.src = event.target.result;
  };

  reader.readAsDataURL(selectedFile);
}

var change_with_button = false;
$('#bold').click(function () { markup('**'); });
$('#italic').click(function () { markup('__'); });
$('#crossed_out').click(function () { markup('~~'); });
$('#mono').click(function () { markup('`'); });
$('#sms_link').click(function () { markup('link'); });
$('#clean').click(function () {
  $('#text_textarea').val('');
  //$('#text_phone_sms').text('Введите текст сообщения...');
  options.img = '';
  $("#text_null").show();
  $("#text_phone_sms").hide();
  $('#myimage').attr('src', "img/load.png");
  $('#add_file_textarea').val('');
  $("#add_file_form").addClass('d-none');
});
$('#add_random').click(function () {
  if (textarea_focus === true) {
    var cursorPos = $('#text_textarea').prop('selectionStart');
    var v = $('#text_textarea').val();
    var textBefore = v.substring(0, cursorPos);
    var textAfter = v.substring(cursorPos, v.length);
    $('#text_textarea').val(textBefore + '{Привет|Здравствуйте|Добрый день}' + textAfter);
  } else {
    $('#text_textarea').val($('#text_textarea').val() + '{Привет|Здравствуйте|Добрый день}');
  }
  random_refresh = true;
  synctext("#text_textarea");
  random_refresh = false;
});
$('.teg_item').click(function () {
  teg_item = $(this).text();
  if (textarea_focus === true) {
    var cursorPos = $('#text_textarea').prop('selectionStart');
    var v = $('#text_textarea').val();
    var textBefore = v.substring(0, cursorPos);
    var textAfter = v.substring(cursorPos, v.length);
    $('#text_textarea').val(textBefore + teg_item + textAfter);
  } else {
    $('#text_textarea').val($('#text_textarea').val() + teg_item);
  }
});
var random_refresh = false;
var random_choises = {};
$('#refresh_random').click(function () {
  random_refresh = true;
  synctext("#text_textarea");
  random_refresh = false;
});
$("#text_textarea").keyup(function () {
  if (change_with_button === false) {
    synctext("#text_textarea");
  }
});
var textarea_focus = false;
$("#text_textarea").focus(function () {
  textarea_focus = true;
});
$("#text_textarea").focusout(function () {
  setTimeout(function run() {
    textarea_focus = false;
  }, 200);
});
function markup(symbol) {
  change_with_button = true;
  if (symbol === 'link') {
    if ($('#text_textarea')[0].selectionStart == $('#text_textarea')[0].selectionEnd) {
      if (textarea_focus === true) {
        var cursorPos = $('#text_textarea').prop('selectionStart');
        var v = $('#text_textarea').val();
        var textBefore = v.substring(0, cursorPos);
        var textAfter = v.substring(cursorPos, v.length);
        $('#text_textarea').val(textBefore + '[ссылка@https://google.com]' + textAfter);
      } else {
        $('#text_textarea').val($('#text_textarea').val() + '[ссылка@https://google.com]');
      }
    } else {
      let selected = $('#text_textarea')[0]
        .value.slice($('#text_textarea')[0].selectionStart, $('#text_textarea')[0].selectionEnd);
      $('#text_textarea')[0].setRangeText('[' + `${selected}` + '@https://google.com]');
    }
  } else {
    if ($('#text_textarea')[0].selectionStart == $('#text_textarea')[0].selectionEnd) {
      return; // ничего не выделено
    }
    let selected = $('#text_textarea')[0]
      .value.slice($('#text_textarea')[0].selectionStart, $('#text_textarea')[0].selectionEnd);
    $('#text_textarea')[0].setRangeText(symbol + `${selected}` + symbol);

  }
  synctext("#text_textarea");
  change_with_button = false;
}
async function synctext(field_id) {
  var text = $(field_id).val();
  newtext = await eel.get_web_random_text(text.replace(/\n/g, '<br/>'))();
  $("#text_null").hide();
  $("#text_phone_sms").show();
  $("#text_phone_sms").html(newtext);
  if (newtext == "") {
    $("#text_null").show();
    $("#text_phone_sms").hide();
  }
}


// function synctext(field_id) {
//   var text = $(field_id).val();

//   text = text.replace(/\*\*([^\*]+?)\*\*/g, "<b>$1<\/b>");
//   text = text.replace(/__([^_]+?)__/g, "<i>$1<\/i>");
//   text = text.replace(/`([^`]+?)`/g, "<CODE>$1<\/CODE>");
//   text = text.replace(/~~([^~]+?)~~/g, "<strike>$1<\/strike>");
//   text = text.replace(/(?:\r\n|\r|\n)/g, "<br>");

//   var randomized_text = text.replace(/{([^*]+?)}/g, function (r) {
//     var string = r.replace('{', '').replace('}', '');
//     var variants = string.split('|');
//     var randomnumber;
//     if (random_refresh === true || !random_choises.hasOwnProperty(string)) {
//       randomnumber = Math.round(Math.random() * (variants.length - 1));
//       random_choises[string] = randomnumber;
//     } else {
//       randomnumber = random_choises[string];
//     }
//     return variants[randomnumber];
//   });

//   var newtext = randomized_text.replace(/\[([^*]+?)\]/g, function (m) {
//     var link_text = m.split('|')[0].replace('[', '');
//     var link_href = m.split('|')[1].replace(']', '');
//     return '<a href="' + link_href + '">' + link_text + '</a>';
//   });

//   newtext = newtext.replace(/<b><i>/g, "<b>__").replace(/<\/i><\/b>/g, "__</b>");
//   newtext = newtext.replace(/<b><CODE>/g, "<b>`").replace(/<\/CODE><\/b>/g, "`</b>");
//   newtext = newtext.replace(/<b><strike>/g, "<b>~~").replace(/<\/strike><\/b>/g, "~~</b>");

//   newtext = newtext.replace(/<i><b>/g, "<i>**").replace(/<\/b><\/i>/g, "**</i>");
//   newtext = newtext.replace(/<i><CODE>/g, "<i>`").replace(/<\/CODE><\/i>/g, "`</i>");
//   newtext = newtext.replace(/<i><strike>/g, "<i>~~").replace(/<\/strike><\/i>/g, "~~</i>");

//   newtext = newtext.replace(/<CODE><i>/g, "<CODE>__").replace(/<\/i><\/CODE>/g, "__</CODE>");
//   newtext = newtext.replace(/<CODE><b>/g, "<CODE>**").replace(/<\/b><\/CODE>/g, "**</CODE>");
//   newtext = newtext.replace(/<CODE><strike>/g, "<CODE>~~").replace(/<\/strike><\/CODE>/g, "~~</CODE>");

//   newtext = newtext.replace(/<strike><i>/g, "<strike>__").replace(/<\/i><\/strike>/g, "__</strike>");
//   newtext = newtext.replace(/<strike><b>/g, "<strike>**").replace(/<\/b><\/strike>/g, "**</strike>");
//   newtext = newtext.replace(/<strike><CODE>/g, "<strike>`").replace(/<\/CODE><\/strike>/g, "`</strike>");
//   $("#text_null").hide();
//   $("#text_phone_sms").show();
//   $("#text_phone_sms").html(newtext);
//   if (newtext == "") {
//     $("#text_null").show();
//     $("#text_phone_sms").hide();
//   }
// }