var capitalize_letter = function(str) {
  str = str.split(" ");

  str1 = str;
  if(str1[0] == ""){
    str=[];
    str.push(str1[1]);
  }
  for (var i = 0, x = str.length; i < x; i++) {
    if(str[i] != "")
      str[i] = str[i][0].toUpperCase() + str[i].substr(1);
  }

  return str.join(" ");
}

var format_date = function(date, format = 'mm-dd-yyyy', separator = '/') {
  var date = new Date(date),
    month = date.getMonth()+1,
    dt = date.getDate(),
    year = date.getFullYear(),
    format_dt = null;

    switch (format) {
      case 'mm-dd-yyyy':
        format_dt = month + separator + dt + separator + year
        break;
      default:
        break;
    }

  return format_dt;
}

var is_test_site = function(domain = null) {
  if (!domain) domain = location.host;

  var allowed_hosts = ['jordanmederich.com','nstestsignup.dropfunnelsapp.com','nadtestgateway.dropfunnels.com'];
  if (allowed_hosts.includes(domain)) return true;

  return false;
}

jQuery(document).ready(function($) {
    // Click on the "Edit" button to show the input field
    $('.edit-link-btn').on('click', function() {
        var $parent = $(this).closest('.fpage-link');
        $parent.find('.edit-link-input').show(); // Show the input field
        $(this).hide(); // Hide the "Edit" button
        $parent.find('.save-link-btn').show(); // Show the "Save" button
    });

    // Click on the "Save" button to save the changes
    $('.save-link-btn').on('click', function() {
        var postId = $(this).data('id'); // Get post ID
        var newSlug = $(this).siblings('.edit-link-input').val(); // Get the new slug value
        var $parent = $(this).closest('.fpage-link');
        var button = $(this);

        $(this).html('Processing...<i class="fa fa-spinner fa-spin">');

        $.ajax({
            url: ajaxurl, // WordPress AJAX URL
            type: 'POST',
            data: {
                action: 'save_new_course_link', // Action name for WordPress AJAX
                post_id: postId,
                new_url: newSlug,
            },
            success: function(response) {
                if (response.success) {
                    // Update the URLs on the page with the new slug
                    $parent.find('a').attr('href', response.data.url).text(response.data.url).show(); // Update link text and href
                    $parent.find('.edit-link-input').hide(); // Hide input field
                    $parent.find('.edit-link-btn').show(); // Show the "Edit" button
                    $parent.find('.save-link-btn').hide(); // Hide the "Save" button

                    // Also update the "View" and "Edit" buttons
                    var actionParent = $parent.siblings('.tab-action-btn');
                    actionParent.find('a:first').attr('href', response.data.url); // Update "View" button
                    actionParent.find('a:last').attr('href', response.data.url + '?fl_builder'); // Update "Edit" button with ?fl_builder
                } else {
                    alert('Error: ' + response.data); // Show error if AJAX fails
                }

                button.text('Save');
            }
        });
    });
});

jQuery(document).ready(function($) {

  var url_string = window.location.href,
      url = new URL(url_string),
      utm_id = url.searchParams.get("utm_id"),
      utm_source = url.searchParams.get("utm_source"),
      utm_medium = url.searchParams.get("utm_medium"),
      utm_campaign = url.searchParams.get("utm_campaign");

  if (typeof(Storage) !== "undefined" && utm_id && utm_source) {
    localStorage.setItem("utm_id", utm_id);
    localStorage.setItem("utm_source", utm_source);
    localStorage.setItem("utm_medium", utm_medium);
    localStorage.setItem("utm_campaign", utm_campaign);
  } else {
    utm_id = localStorage.getItem("utm_id");
    utm_source = localStorage.getItem("utm_source");
    utm_medium = localStorage.getItem("utm_medium");
    utm_campaign = localStorage.getItem("utm_campaign");
  }

  if ($('#pk-checkout').length > 0 && utm_id && utm_source) {
    var iframe_src = $('#pk-checkout').attr('src'),
        separator = iframe_src.indexOf('?') == -1 ? '?' : '&';

    $('#pk-checkout').attr('src', iframe_src + separator + 'utm_id=' + utm_id + '&utm_source=' + utm_source + '&utm_medium=' + utm_medium + '&utm_campaign=' + utm_campaign);
  }

  if ($('#pk-booster').length > 0) {
    var email = getParameterByName('email');
    var res = email.replace(" ", "%2B");
    var iframe_src = $('#pk-booster').attr('src');
    $('#pk-booster').attr('src', iframe_src + '?email=' + res);

  }
  $(document).on('click', '#builderWarning .fl-builder-button', function() {
    $('#builderWarning').hide();
  });

  if(jQuery('#export-largedata-email').find('#export-email-btn').length > 0){
    jQuery('#export-largedata-email').find('#export-email-btn').click(function(){
      var obj = jQuery(this);
      var objtext = obj.text();
      obj.text('Processing...').attr('disabled','disabled');
      jQuery('.export-error').text("");
      if(jQuery('#export-largedata-email').find('input[name="export_email"]').val() == ''){
        jQuery('.export-error').text("Email address required");
        obj.text(objtext).removeAttr('disabled');
        return false;
      }
      var export_email = jQuery('#export-largedata-email').find('input[name="export_email"]').val()
      var filterdata = jQuery('#export-largedata-email').find('input[name="filterdata"]').val()
      var params = $.extend({}, doAjax_params_default);
      params['data'] = {
        action: 'export_data_saveto_db',
        export_email: export_email,
        filterdata:filterdata,
      };
      params['successCallback'] = function(data) {
        obj.text(objtext);
        jQuery('#sales-timeout-notifications').find('.modal-body').append('<p class="succss-msg" style="color: green;">Your filtered data and email address stored sucessfully. Export data will send you on email.</p>')
          //jQuery('#export-largedata-email').modal('hide');
      };
      doAjax(params);

    });
  }
  // DropFunnels Categories to Templates Categories.
  if(jQuery('#fl-builder-template-categorydiv').length > 0){
    var nadcat = jQuery('#fl-builder-template-categorydiv').find('.hndle').html();
    if(nadcat == '<span>DropFunnels Categories</span>'){
        jQuery('#fl-builder-template-categorydiv').find('.hndle').html('<span>Template Categories</span>');
     }
  }
  if(jQuery('.settings_page_uabb-builder-settings').find('.fl-settings-network-admin').length > 0){
    var nadsetting = jQuery('.fl-settings-network-admin').find('.fl-settings-heading').html();
    if(nadsetting.trim() == '<span>DropFunnels Pro Settings</span>'){
        jQuery('.fl-settings-network-admin').find('.fl-settings-heading').html('<span>Additional Settings</span>');
     }
  }
  if(jQuery('.settings_page_uabb-builder-settings').find('.fl-settings-network-admin').find('.uabb-api-info-msg').length > 0){
   jQuery('.fl-settings-network-admin').find('.uabb-api-info-msg').html('<span class="dashicons dashicons-warning"></span>Google now requires an active billing account associated with your API Key.');
  }
  if(jQuery('.ms-delete-site-php').find('#wpbody-content').find('.wrap h1').length > 0){
    jQuery('.ms-delete-site-php').find('#wpbody-content').find('.wrap h1').addClass('wp-heading-inline');
  }
  if(jQuery('.fl-builder-admin').find('.fl-builder-admin-ui').find('a').length > 0){
    setTimeout(function() {
      jQuery('.fl-builder-admin').find('.fl-builder-admin-ui').find('a').off("click");
      jQuery('.fl-builder-admin').find('.fl-builder-admin-ui').find('a').attr('target', '_blank');
    }, 500);
  }

  if(jQuery('#fl-builder-user-template-buttons').find('.fl-launch-builder').length > 0){
    setTimeout(function() {
      // jQuery('#fl-builder-user-template-buttons').find('.fl-launch-builder').off("click");
      jQuery('#fl-builder-user-template-buttons').find('.fl-launch-builder').attr('target', '_blank');
    }, 500);
  }

  if(jQuery('.type-fl-builder-template').find('.has-row-actions .row-actions .fl-builder a').length > 0){
    setTimeout(function() {
      jQuery('.type-fl-builder-template').find('.has-row-actions .row-actions .fl-builder a').off("click");
      jQuery('.type-fl-builder-template').find('.has-row-actions .row-actions .fl-builder a').attr('target', '_blank');
    }, 500);
  }

  if(jQuery('.type-page').find('.has-row-actions .row-actions .fl-builder a').length > 0){
    setTimeout(function() {
      jQuery('.type-page').find('.has-row-actions .row-actions .fl-builder a').off("click");
      jQuery('.type-page').find('.has-row-actions .row-actions .fl-builder a').attr('target', '_blank');
    }, 500);
  }

  if(jQuery('.type-post').find('.has-row-actions .row-actions .fl-builder a').length > 0){
    setTimeout(function() {
      jQuery('.type-post').find('.has-row-actions .row-actions .fl-builder a').off("click");
      jQuery('.type-post').find('.has-row-actions .row-actions .fl-builder a').attr('target', '_blank');
    }, 500);
  }

  // Toggle(collapse & expand) BB editor modules sections
  jQuery(document).on("click", "#fl-builder-blocks-sales-modules, #fl-builder-blocks-courses-modules, #fl-builder-blocks-basic-modules, #fl-builder-blocks-design-modules, #fl-builder-blocks-business-modules, #fl-builder-blocks-advanced-modules, #fl-builder-blocks-layouts", function() {
    var module_container = $(this).find(".fl-builder-blocks-section-content");
    var css_display = module_container.css("display");
    if (css_display == "grid") {
      module_container.css('display','none');
    } else if (css_display == "none") {
      module_container.css('display','grid');
    }
  });

  //check if builder is editable
  window.addEventListener('error', function(e) {
    var primary_post_id = jQuery(document).find('.fl-builder-content-primary');
    if( primary_post_id.length > 0 && e.type == "error" ){
      var root_node = primary_post_id[0];
      if( root_node != undefined ){
        dfpage_id = jQuery(root_node).data('post-id');
        var errorlinkid = jQuery(e.target).attr('id');
        var targetd_id = "fl-builder-layout-"+dfpage_id+"-css";
        if( errorlinkid == targetd_id ){
          if( document.location.hostname == 'jordanmederich.com' ){
            FLBuilder.confirm({
              message: "<b style='font-size: 16px;'>IMPORTANT:</b> <span style='font-size: 16px;'>Let's take a minute to save a draft of your work! Click OK to save.</span>",
              ok: function() {
                var saveBtn = $('.fl-builder-settings:visible .fl-builder-settings-save');
                saveBtn.removeClass('fl-builder-settings-error');
                saveBtn.off('click', FLBuilder._showCodeFieldError);
                saveBtn.trigger('click');
                refreshId = setInterval(function() {
                  if ($('.fl-lightbox-content').has('form').length == 0) {
                    location.reload(true);
                    clearInterval(refreshId);
                  }
                }, 500);
              },
              cancel: function() {
                var saveBtn = $('.fl-builder-settings:visible .fl-builder-settings-save');
                saveBtn.removeClass('fl-builder-settings-error');
                saveBtn.off('click', FLBuilder._showCodeFieldError);
                saveBtn.trigger('click');
                refreshId = setInterval(function() {
                  if ($('.fl-lightbox-content').has('form').length == 0) {
                    location.reload(true);
                    clearInterval(refreshId);
                  }
                }, 500);
              },
            });

            var bb_alert_msg = $('.fl-lightbox-message').text();
            if (bb_alert_msg.includes("IMPORTANT: Let's take a minute to save a draft of your work! Click OK to save.")) {
              $('.fl-builder-confirm-cancel').hide();
            }
          }else{
            FLBuilder.alert('<b style="font-size: 16px;">IMPORTANT:</b> <span style="font-size: 16px;">Please take a moment to save your work. Press "Publish" or "Save Draft".</span>');
          }
        }
      }
    }
  }, true);

  $('.custom_copy_class').hover(function(e) {
    $(this).append('<input type="button" class="copy_button" value="Copy Settings"/>');
    $(".copy_button").hover(function(){
        $(this).css({"background-color":"#00a2de", "color" : "white" });
    });
  }, function() {
    $(this).find('.copy_button').remove();
  });

});

function getParameterByName(name, url = window.location.href) {
    name = name.replace(/[\[\]]/g, '\\$&');
    var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
        results = regex.exec(url);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, ' '));
}

 // Code for copy to clipboard
jQuery(document).on('click',".copy_button", function(){
  copytoclipboard(jQuery(this));
  jQuery(this).prop("value", "Copied");
});

function copytoclipboard(button_id)
{
    var module_parent_node = button_id.closest('.custom_copy_class').attr('data-node');
    var final_post_id = jQuery('.fl-builder-content-primary').attr('data-post-id');

    var data = {
        action: 'copy_module_settings_function',
        path: {module_parent_node : module_parent_node, final_post_id : final_post_id}
    };

    jQuery.post(df_ajax.ajaxurl, data, function(response) {

        navigator.clipboard.writeText(response);
    });
}

//Code for share post and page shareable
jQuery(document).on('click', '.share_post', function(){ 
  var copy_url = jQuery(this).children(".share_post_link").data("value");

    document.addEventListener('copy', function(e) {
      e.clipboardData.setData('text/plain', copy_url);
      e.preventDefault();
  }, true);

  document.execCommand('copy');  
  console.log('copied text : ', copy_url);
  
  jQuery(this).children(".share_post_link").hide();
  jQuery(this).children().closest(".copied_msg").text("Copies share link to clipboard").show().fadeOut(2000);
  jQuery(this).children(".share_post_link").delay(2000).fadeIn();
});

// Code restrict reload page when enter
jQuery(document).on('keypress', '#seopress_google_suggest_kw_meta', function(e){
  if (e.keyCode == 13) { 
    return false;  
  }  
});

// Code for post page 404 error handling.
// jQuery(window).on("load", function (e) {
//   if (jQuery('#title').length) {
//     var post_title = jQuery("#title").val();
//     if(post_title.length > 0){
//       jQuery('.fl-launch-builder').attr("disabled", false);
//       jQuery(".fl-launch-builder").css('cursor','pointer').attr('title', '');
//     }
//     else{
//       jQuery('.fl-launch-builder').attr("disabled", true);
//       jQuery(".fl-launch-builder").css('cursor','not-allowed').attr('title', 'Please Add Title');
//     }
//   }  
// });

// jQuery(document).on('keyup', '#title', function(e){
//   var post_title_val = jQuery(this).val();
//   if(post_title_val.length > 0){
//     jQuery('.fl-launch-builder').attr('disabled', false);
//     jQuery(".fl-launch-builder").css('cursor','pointer').attr('title', '');
//   }else{
//     jQuery('.fl-launch-builder').attr("disabled", true);
//     jQuery(".fl-launch-builder").css('cursor','not-allowed').attr('title', 'Please Add Title');
//   }
// });

// jQuery(document).ready(function(){
//   if( jQuery('body').hasClass('post-type-post') || jQuery('body').hasClass('post-type-page')){
//     jQuery(document).find('.fl-launch-builder').attr("href", "javascript:void(0);");
//     jQuery(document).find('.fl-launch-builder').removeAttr('target');   
//   }   
// });

// jQuery(document).on('click', '.fl-launch-builder', function(event){  
//   if( jQuery('body').hasClass('post-type-post') || jQuery('body').hasClass('post-type-page')){
//     var post_title_val = jQuery('#title').val();
//     event.preventDefault();
//     if( post_title_val.length > 0 ){
//       setTimeout(function() {
//         jQuery('.fl-launch-builder').attr("disabled", false);
//         jQuery(".fl-launch-builder").css('cursor','pointer');
//         var post_id = jQuery(document).find('input[name=post_ID]').val();
//         if( jQuery('body').hasClass('post-type-post') ){
//           var yyu = '/?p='+post_id+'&fl_builder';
//         }  
//         if( jQuery('body').hasClass('post-type-page') ){
//           yyu = '/?page_id='+post_id+'&fl_builder';
//         }
//         window.open(yyu, '_blank');
//       }, 2000);
//     }
//   }  
// });

jQuery(document).on('click', '.fl-launch-builder', function(event){
  if( jQuery('body').hasClass('post-type-post') || jQuery('body').hasClass('post-type-page')){
    var post_id = jQuery('#post_ID').val();
    var post_status = jQuery('#original_post_status').val();

    if(post_status !== 'publish'){
    
      event.preventDefault();
      jQuery.ajax({
        url: df_ajax.ajaxurl,
        method: 'POST',
        data: {
          action: 'update_post_status',
          post_id: post_id
        },
        success: function(response) {
          if (response.status === 'true') {
            // Open the link in a new tab after the AJAX call is successful
            window.open(jQuery('.fl-launch-builder').attr('href'), '_blank');
          }
        },

      });
    }
   
  }
});

jQuery(document).ready(function(){
  jQuery( ".quiz_ranking_wrapper" ).sortable({
        connectWith: ".connected-sortable",
        stack: '.connected-sortable ul',
        start: function(event, ui) {
          
        },
        change: function( event, ui ) {
          // jQuery(this).parent().find('.quiz-answer').val('');
          jQuery(this).find('.quiz_ranking_item').each(function (index, obj) {
              jQuery(this).addClass('change');
          });
        
        },
        update: function(event, ui) {
          jQuery(this).parent().find('.quiz-answer').val('');
          var quiz_answer = jQuery(this).parent().find('.quiz-answer').val();
          var count_rank = 1;
          jQuery(this).find('.rank_item_order').each(function (index, obj) {
            jQuery(this).text(count_rank);
            count_rank++;
          });
         jQuery(this).find('.quiz_ranking_item').each(function (index, obj) {
              jQuery(this).removeClass('change');
          });

          if(quiz_answer == ''){
            jQuery(this).parent().find('.rank_invalid').text('Please confirm selection');
            jQuery(this).parent().find('.confirm_ranking .lock_img').removeClass('locked');
          }else{
            jQuery(this).parent().find('.rank_invalid').text('');
          }

        }
      }).disableSelection();

  jQuery(document).on('click','.confirm_ranking', function(){
      var option_list = '';
      jQuery(this).parent().parent().find('.la-quiz-question-answer-title').each(function (index, obj) {
              if(option_list != ''){
                  option_list += ', '+jQuery(this).text();
              }else{
                  option_list += jQuery(this).text();
              }
          });
      jQuery(this).parent().parent().parent().find('.quiz-ranking').val(option_list);
      jQuery(this).parent().parent().parent().find('.quiz-ranking').click();
      jQuery(this).find('.lock_img').addClass('locked');
      jQuery(this).parent().find('.rank_invalid').text('');

  });
});

 jQuery(document).ready(function() {
  jQuery("#ddArea").on("dragover", function() {
    jQuery(this).addClass("drag_over");
      return false; 
  });

  jQuery("#ddArea").on("dragleave", function() {
    jQuery(this).removeClass("drag_over");
    return false;
  });

  jQuery("#ddArea").on("click", function(e) {
    file_explorer();
  });
  jQuery("#ddArea").on("drop", function(e) {
    e.preventDefault();
    jQuery(this).removeClass("drag_over");
    var formData = new FormData();
    formData.append("action", 'upload_quiz_files');
    var files = e.originalEvent.dataTransfer.files;
    for (var i = 0; i < files.length; i++) {
      formData.append("file[]", files[i]);
    }
    uploadFormData(formData);

  });
  function file_explorer() {
    document.getElementById("selectfile").click();
    document.getElementById("selectfile").onchange = function() {
      files = document.getElementById("selectfile").files;
      var formData = new FormData();
      formData.append("action", 'upload_quiz_files');
      for (var i = 0; i < files.length; i++) {
        formData.append("file[]", files[i]);
      }
      uploadFormData(formData);
    };
  }

  function uploadFormData(form_data) {
  jQuery('.file-choose-text').text('Uploading...');
  jQuery('#ddArea').css("background-image", "url()"); 

    jQuery(".loading")
      .removeClass("d-none")
      .addClass("d-block");
    jQuery('.quiz-progress-bar').removeClass('hidanimation');
    jQuery.ajax({
      xhr: function() {
          var quiz_xhr = new XMLHttpRequest();
          quiz_xhr.upload.addEventListener("progress", function(evt) {
              // if (evt.lengthComputable) {
                  var percentComplete = Math.round((evt.loaded / evt.total) * 80);
                  jQuery(".quiz-progress-bar").width(percentComplete + '%');
                  jQuery(".quiz-progress-bar").html(percentComplete+'%');
                  console.log(percentComplete);
              // }
         }, false);
         return quiz_xhr;
      },
      url: df_ajax.ajaxurl,
      type: "POST",
      data: form_data,
      contentType: false,
      cache: false,
      processData: false,
      beforeSend: function(){
          jQuery  (".quiz-progress-bar").width('0%');
      },
      success: function(data) {
        if(data.status == 'success'){
          jQuery('.file-choose-text').text('');
          jQuery('.file_upload_wrapper').parent().find('.quiz-answer').val(data.attached_ids);
          if(data.uploaded_file_type == 'image'){
              jQuery('#ddArea').css("background-image", "url("+data.attached_url+")"); 
          }else{
              jQuery('.file-choose-text').text(data.file_name);
          }
          jQuery('.file_upload_wrapper').parent().find('.quiz-answer').click();
          jQuery(".quiz-progress-bar").width('90%');
          jQuery(".quiz-progress-bar").html('90%');
          setTimeout(function(){
            jQuery(".quiz-progress-bar").width('100%');
            jQuery(".quiz-progress-bar").html('100%');
            jQuery('.quiz-progress-bar').addClass('hidanimation');
          }, 500);

        }

      }

    });
  }

    jQuery(document).on('change','select[name=field_type]',function() {
      if(jQuery(this).val() != 'df_checkbox' && jQuery(this).val() != 'df_multichoice'){
          jQuery(this).parents('.fl-builder-settings').find('select[name=ar_additional_tag]').val('no').trigger('change');
        }
    });
    jQuery(document).on('change','select[name=ar_additional_tag]',function() {
      var ar_add_tags = jQuery(this).val();
      if(ar_add_tags == 'yes'){
        var field_type = jQuery(this).parents('.fl-form-table').find('select[name=field_type]').val();
        if(field_type == 'df_checkbox' || 'df_multichoice'){
          if(field_type == 'df_checkbox'){
           var options_checklist = jQuery(this).parents('.fl-form-table').find('#fl-field-checklist_opts tr[data-field="checklist_opts"]').length;
          }else{
            var options_checklist = jQuery(this).parents('.fl-form-table').find('#fl-field-multichoice_opts tr[data-field="multichoice_opts"]').length;
          }
          var tags_field_length = jQuery(this).parents('.fl-form-table').find('#fl-field-custom_field_ar_option_tags tr[data-field="custom_field_ar_option_tags"]').length;
          
          if(options_checklist > tags_field_length){
            var more_tags_need = options_checklist - tags_field_length;
            for (var i = 1; i <= more_tags_need; i++) {
                jQuery(this).parents('.fl-form-table').find('#fl-field-custom_field_ar_option_tags a[data-field="custom_field_ar_option_tags"]').trigger('click'); 
            }
          }
        }
      }
    });
});