Helix_Website/wp-content/plugins/wpforo/wpf-assets/js/frontend.js

974 lines
40 KiB
JavaScript

jQuery.fn.extend({
visible: function() {
return this.css('visibility', 'visible');
},
invisible: function() {
return this.css('visibility', 'hidden');
},
visibilityToggle: function() {
return this.css('visibility', function(i, visibility) {
return (visibility === 'visible') ? 'hidden' : 'visible';
});
},
showFlex: function() {
return this.css('display', 'flex');
},
wpfInsertAtCaret: function (myValue) {
return this.each(function (i) {
if (document.selection) {
//For browsers like Internet Explorer
this.focus();
var sel = document.selection.createRange();
sel.text = myValue;
this.focus();
} else if ( this.selectionStart || this.selectionStart == '0' ) {
//For browsers like Firefox and Webkit based
var startPos = this.selectionStart;
var endPos = this.selectionEnd;
var scrollTop = this.scrollTop;
this.value = this.value.substring(0, startPos) + myValue + this.value.substring(endPos, this.value.length);
this.focus();
this.selectionStart = startPos + myValue.length;
this.selectionEnd = startPos + myValue.length;
this.scrollTop = scrollTop;
} else {
this.value += myValue;
this.focus();
}
});
}
});
/**
* Trigger an custom event.
*
* @param {Element|Document} target HTML element to dispatch the event on.
* @param {string} name Event name.
* @param [detail = null] Event addintional data information.
*/
function wpforo_trigger_custom_event(target, name, detail) {
if( typeof detail === 'undefined') detail = null;
var event;
if (typeof CustomEvent === 'function') {
event = new CustomEvent(name, { bubbles: true, cancelable: true, detail: detail });
} else {
event = document.createEvent('Event');
event.initEvent(name, true, true);
event.detail = detail;
}
target.dispatchEvent( event );
}
function wpforo_tinymce_initializeIt(selector, do_not_focus) {
if( wpforo_editor.is_tinymce_loaded() ){
tinymce.init({
relative_urls : false,
remove_script_host : false,
convert_urls : false,
keep_styles : false,
entities: "38,amp,60,lt,62,gt",
entity_encoding: "raw",
resize: "vertical",
preview_styles: "font-family font-size font-weight font-style text-decoration text-transform",
end_container_on_empty_block: true,
wpeditimage_html5_captions: true,
forced_root_block: "",
force_br_newlines: false,
force_p_newlines: true,
selector: selector,
plugins: wpforo.editor_settings.plugins,
external_plugins: wpforo.editor_settings.external_plugins,
menubar: false,
toolbar: wpforo.editor_settings.tinymce.toolbar1,
content_style: wpforo.editor_settings.tinymce.content_style,
branding: false,
elementpath: false,
autoresize_on_init: wpforo.editor_settings.tinymce.autoresize_on_init,
wp_autoresize_on: wpforo.editor_settings.tinymce.wp_autoresize_on,
object_resizing: wpforo.editor_settings.tinymce.object_resizing,
min_height: wpforo.editor_settings.editor_height,
height: wpforo.editor_settings.editor_height,
statusbar: true,
wp_keep_scroll_position: wpforo.editor_settings.wp_keep_scroll_position,
indent: wpforo.editor_settings.indent,
add_unload_trigger: wpforo.editor_settings.add_unload_trigger,
wpautop: wpforo.editor_settings.wpautop,
fix_list_elements: true,
browser_spellcheck: true,
setup: wpforo.editor_settings.tinymce.setup,
content_css: wpforo.editor_settings.tinymce.content_css,
extended_valid_elements: wpforo.editor_settings.tinymce.extended_valid_elements,
custom_elements: wpforo.editor_settings.tinymce.custom_elements
}).then(function (e) {
if (!do_not_focus && e.length) {
wpforo_editor.focus(e[0].id);
wpforo_editor.set_active(e[0].id);
}
});
}
}
function wpforo_tinymce_setup(editor) {
editor.on('focus', function(e) {
wpforo_trigger_custom_event(document,'wpforo_tinymce_focus', e);
wpforo_editor.set_active(editor.id);
});
editor.on('Dirty ExecCommand KeyPress SetContent', function(e) {
wpforo_trigger_custom_event(document,'wpforo_tinymce_content_changed', e);
});
editor.on('paste', function(e) {
wpforo_trigger_custom_event(document,'wpforo_tinymce_paste', e);
});
editor.shortcuts.add('ctrl+13', 'submit', function(e){
wpforo_trigger_custom_event(document,'wpforo_tinymce_ctrl_enter', e);
jQuery('form[data-textareaid="'+editor.id+'"]').find('[type=submit]').click();
});
editor.shortcuts.add('ctrl+s', 'Save Draft', function(e){
wpforo_trigger_custom_event(document,'wpforo_tinymce_ctrl_s', e);
});
}
var wpforo_editor = {
active_textareaid: '',
main_textareaid: '',
fix_textareaid: function (textareaid) {
if( typeof textareaid !== 'undefined' ){
return textareaid;
}else if( this.active_textareaid ){
return this.active_textareaid;
}else{
var tinymce_active_editor_id = this.get_tinymce_active_editor_id();
if( tinymce_active_editor_id ){
this.active_textareaid = tinymce_active_editor_id;
return tinymce_active_editor_id;
}
}
return '';
},
set_active: function(textareaid){
if( this.is_exists(textareaid) ){
this.active_textareaid = textareaid;
if( this.is_tinymce(textareaid) ) tinymce.setActive( tinymce.get(textareaid) );
}
},
clear_active: function(){
this.active_textareaid = '';
},
set_main: function(textareaid, also_set_active){
if( !textareaid ){
var wpforo_main_form = jQuery( 'form.wpforo-main-form[data-textareaid]' );
if( wpforo_main_form.length ) textareaid = wpforo_main_form.data('textareaid');
}
if( this.is_exists(textareaid) ){
this.main_textareaid = textareaid;
if(also_set_active) this.set_active(textareaid);
}
},
get_main: function(){
if( !this.main_textareaid ) this.set_main();
return this.main_textareaid;
},
clear_main: function(){
this.main_textareaid = '';
},
get_tinymce_active_editor_id: function(){
if( this.is_tinymce_loaded() && typeof tinymce.activeEditor === "object" && tinymce.activeEditor && tinymce.activeEditor.id ){
return tinymce.activeEditor.id;
}
return '';
},
is_tinymce_loaded: function (){
return typeof tinymce !== "undefined";
},
is_tinymce: function (textareaid){
textareaid = this.fix_textareaid(textareaid);
return !!( textareaid && this.is_tinymce_loaded() && tinymce.get(textareaid) );
},
is_textarea: function (textareaid){
textareaid = this.fix_textareaid(textareaid);
return !!( textareaid && !this.is_tinymce(textareaid) && jQuery( 'textarea#' + textareaid ).length );
},
is_exists: function(textareaid){
return !!( textareaid && this.is_tinymce(textareaid) || this.is_textarea(textareaid) );
},
tinymce_focus: function(textareaid, caret_to_end){
textareaid = this.fix_textareaid(textareaid);
if( this.is_tinymce(textareaid) ){
var focus_mce = tinymce.get(textareaid);
focus_mce.focus();
if(caret_to_end){
focus_mce.selection.select(focus_mce.getBody(), true);
focus_mce.selection.collapse(false);
}
}
},
textarea_focus: function(textareaid, caret_to_end){
textareaid = this.fix_textareaid(textareaid);
if( this.is_textarea(textareaid) ){
var textarea = jQuery( 'textarea#' + textareaid );
var textarea_val = textarea.val();
textarea.focus();
if( caret_to_end ){
textarea.val('');
textarea.val(textarea_val);
}
}
},
focus: function(textareaid, caret_to_end){
textareaid = this.fix_textareaid(textareaid);
if( this.is_tinymce(textareaid) ){
this.tinymce_focus(textareaid, caret_to_end)
}else if( this.is_textarea(textareaid) ){
this.textarea_focus(textareaid, caret_to_end);
}
},
insert_content: function (content, textareaid, format){
textareaid = this.fix_textareaid(textareaid);
format = format ? format : 'raw';
if( this.is_tinymce(textareaid) ){
tinymce.get(textareaid).insertContent(content, {format: format});
this.tinymce_focus(textareaid);
}else if( this.is_textarea(textareaid) ){
jQuery( 'textarea#' + textareaid ).wpfInsertAtCaret(content);
this.textarea_focus(textareaid);
}
},
set_content: function (content, textareaid, format){
textareaid = this.fix_textareaid(textareaid);
format = format ? format : 'raw';
if( this.is_tinymce(textareaid) ){
tinymce.get(textareaid).setContent(content, {format: format});
this.tinymce_focus(textareaid, true);
}else if( this.is_textarea(textareaid) ){
jQuery( 'textarea#' + textareaid ).val(content);
this.textarea_focus(textareaid, true);
}
},
get_content: function (format, textareaid){
textareaid = this.fix_textareaid(textareaid);
format = format ? format : 'text';
var content = '';
if( this.is_tinymce(textareaid) ){
content = tinymce.get(textareaid).getContent({format: format});
}else if( this.is_textarea(textareaid) ){
content = jQuery( 'textarea#' + textareaid ).val();
if( format === 'text' && content ) {
content = content.replace(/<(iframe|embed)[^<>]*?>.*?<\/\1>/gi, "");
content = content.replace(/(<([^<>]+?)>)/gi, "");
}
}
return content.trim();
},
get_stats: function (textareaid){
textareaid = this.fix_textareaid(textareaid);
var text = this.get_content('text', textareaid);
var raw_text = this.get_content('raw', textareaid);
var chars = text.length;
var words = text.split(/[\w\u2019'-]+/).length - 1;
var imgs = (raw_text.match(/<img[^<>]*?src=['"][^'"]+?['"][^<>]*?>/gi) || []).length;
var links = (raw_text.match(/<a[^<>]*?href=['"][^'"]+?['"][^<>]*?>.+?<\/a>/gi) || []).length;
var embeds = (raw_text.match(/<(iframe|embed)[^<>]*?>.*?<\/\1>/gi) || []).length;
return {
chars: chars,
words: words,
imgs: imgs,
links: links,
embeds: embeds,
has_content: !! (chars || imgs || links || embeds)
};
}
};
function wpforo_notice_clear() {
var msg_box = jQuery("#wpf-msg-box");
msg_box.hide();
msg_box.empty();
}
function wpforo_notice_show(notice, type){
if( !notice ) return;
type = ( type === 'success' || type === 'error' ? type : 'neutral' );
var n = notice.search(/<p(?:\s[^<>]*?)?>/i);
if( n < 0 ){
var phrase = wpforo_phrase(notice);
if( arguments.length > 2 ){
var i;
for( i = 2; i < arguments.length; i++ ){
if( arguments[i] !== undefined ) phrase = phrase.replace(/%[dfs]/, arguments[i]);
}
}
notice = '<p class="'+ type +'">' + phrase + '</p>';
}
notice = jQuery(notice);
var msg_box = jQuery("#wpf-msg-box");
msg_box.append(notice);
msg_box.appendTo('body');
msg_box.show(150);
notice.delay(type === 'error' ? 6500 : 2500).fadeOut(200, function () {
jQuery(this).remove();
});
}
function wpforo_notice_hide(){
jQuery("#wpf-msg-box").hide();
}
function wpforo_load_show(msg){
msg = typeof msg !== "undefined" ? msg : 'Working';
msg = String(msg);
msg = wpforo_phrase(msg);
var load = jQuery('#wpforo-load');
jQuery('.loadtext', load).text(msg);
load.appendTo('body');
wpforo_notice_hide();
load.visible();
}
function wpforo_load_hide(){
jQuery('#wpforo-load').invisible();
}
function wpforo_init_dialog(){
jQuery('#wpforo-dialog-extra-wrap').on("click", "#wpforo-dialog-close", function () {
wpforo_dialog_hide();
});
jQuery(document).on("mousedown", "#wpforo-dialog-extra-wrap", function (e) {
if( !jQuery(e.target).closest('#wpforo-dialog').length ) wpforo_dialog_hide();
});
jQuery(document).on("keydown", function (e) {
if( e.which === 27 ) wpforo_dialog_hide();
});
}
function wpforo_dialog_show(title, content, w, h){
var dialog = jQuery('#wpforo-dialog');
if(content){
var dialog_body = jQuery("#wpforo-dialog-body", dialog);
dialog_body.children().appendTo('#wpforo-dialog-backups');
dialog_body.empty();
if( content instanceof jQuery){
content.appendTo(dialog_body);
content.show();
content.css('visibility', 'visible');
if(!title) title = content.data('title');
}else if( typeof content === 'string'){
dialog_body.html(content);
}
}
if(title) jQuery("#wpforo-dialog-title", dialog).html( wpforo_phrase(title) );
if(w) dialog.css('width', w);
if(h) dialog.css('height', h);
jQuery("#wpforo-dialog-extra-wrap").appendTo('body');
jQuery("html").addClass('wpforo-dialog-visible');
jQuery("body").addClass('wpforo-dialog-visible animated fadeIn');
}
function wpforo_dialog_hide(){
jQuery("html").removeClass('wpforo-dialog-visible');
jQuery("body").removeClass('wpforo-dialog-visible animated fadeIn');
}
function wpforo_phrase(phrase_key){
// if( !(window.wpforo_phrases && typeof window.wpforo_phrases === 'object' && Object.keys(window.wpforo_phrases).length) ) wpforo_init_phrases();
if( window.wpforo_phrases && typeof window.wpforo_phrases === 'object' && Object.keys(window.wpforo_phrases).length ){
var phrase_key_lower = phrase_key.toLowerCase();
if( window.wpforo_phrases[phrase_key_lower] !== undefined ) phrase_key = window.wpforo_phrases[phrase_key_lower];
}
return phrase_key;
}
function wpforo_getTextSelection(){
jQuery("#wpf_multi_quote").remove();
if (window.getSelection) {
var sel = window.getSelection();
if ( sel && sel.anchorNode && sel.anchorNode.parentNode && sel.anchorNode.parentNode.tagName !== 'A' ) {
var selectedText = sel.toString().trim();
if ( sel.rangeCount && selectedText.length ) {
var getRangeAt_0 = sel.getRangeAt(0);
var rangeBounding = getRangeAt_0.getBoundingClientRect();
var bodyBounding = document.documentElement.getBoundingClientRect();
var left = rangeBounding.left + rangeBounding.width/2 + Math.abs( bodyBounding.left ) - 15;
var top = rangeBounding.bottom + Math.abs( bodyBounding.top ) + 50;
var parent = jQuery(getRangeAt_0.commonAncestorContainer).closest('.wpforo-post-content, .wpforo-comment-content');
var noNeedParent = jQuery(getRangeAt_0.commonAncestorContainer).closest('.wpforo-post-signature, .wpforo-post-content-bottom, .wpf-post-button-actions');
var noNeedChild = jQuery(getRangeAt_0.endContainer).closest('.wpforo-post-signature, .wpforo-post-content-bottom, .wpf-post-button-actions');
if( parent.length && !noNeedParent.length && !noNeedChild.length ){
var toolTip = jQuery('<div id="wpf_multi_quote"></div>');
toolTip.css({top: top, left: left});
var link = jQuery('<span class="wpf-multi-quote" title="'+ wpforo_phrase('Quote this text') +'"><i class="fas fa-quote-left"></i></span>').on('mousedown touchstart', function () {
var container = document.createElement("div");
for (var i = 0; i < sel.rangeCount; ++i) container.appendChild(sel.getRangeAt(i).cloneContents());
var post_wrap = jQuery(getRangeAt_0.startContainer).parents('[data-postid]');
var userid = post_wrap.data('userid');
if( !userid ) userid = 0;
var postid = post_wrap.data('postid');
if( !postid ) postid = 0;
var mention_html = '';
var mention = post_wrap.data('mention');
if( mention ){
mention_html = '<div class="wpforo-post-quote-author"><strong> '+ wpforo_phrase('Posted by') +': @' + mention +' </strong></div>';
}else{
mention = '';
}
var editorContent = '<blockquote data-userid="'+ userid +'" data-postid="'+ postid +'" data-mention="'+ mention +'">'+ mention_html +'<p>' + container.innerHTML.replace(/\s*data-[\w-]+="[^"]*?"/gi, '') + '</p></blockquote><p></p>';
wpforo_editor.insert_content( editorContent, wpforo_editor.get_main() );
jQuery('html, body').animate({ scrollTop: jQuery("form.wpforo-main-form").offset().top }, 500);
jQuery(this).remove();
});
toolTip.append(link);
jQuery('body').append(toolTip);
}
}
}
}
}
window.wpforo_fix_form_data_attributes = function(){
jQuery('form textarea[id^="wpf_"]:first').each(function(t){
var form = jQuery(this).closest('form');
var id = jQuery(this).attr('id');
form.attr('data-textareaid', id);
form.prop('data-textareaid', id);
form.data('textareaid', id);
});
}
jQuery(document).ready(function($){
var wpforo_wrap = $('#wpforo-wrap');
var scroll_to;
var exreg = new RegExp('\/' + wpforo.template_slugs['postid'] + '\/(\\d+)\/?$', 'i');
var match = location.pathname.match(exreg);
if(match){
scroll_to = $('#post-' + match[1]);
}else{
//scroll_to = $("#m_, .wpforo-members-content, .wpforo-search-content", wpforo_wrap);
}
if( scroll_to != undefined && scroll_to.length ){
$('html, body').scrollTop(scroll_to.offset().top - 25);
}
wpforo_init_dialog();
if ($('form.wpforo-main-form').length) {
document.onselectionchange = function () {
wpforo_getTextSelection();
};
}
window.onbeforeunload = function(e) {
var forms = $('form[data-textareaid]').not(":hidden");
if( forms.length ){
var i, textareaid;
for( i = 0; i < forms.length; i++ ){
textareaid = $( forms[i] ).data('textareaid');
if( wpforo_editor.get_stats(textareaid).has_content ){
e = e || window.event;
e.returnValue = wpforo_phrase("Write something clever here..");
return wpforo_phrase("Write something clever here..");
}
}
}
};
window.wpforo_fix_form_data_attributes();
setTimeout(function () {
wpforo_editor.fix_textareaid();
wpforo_editor.set_main('', true);
}, 1000);
wpforo_wrap.on('click drop', 'form[data-textareaid]', function () {
var textareaid = $(this).data('textareaid');
wpforo_editor.set_active(textareaid);
});
wpforo_wrap.on('focus', 'form[data-textareaid] textarea', function () {
var textareaid = $(this).parents('form[data-textareaid]').data('textareaid');
if( textareaid === this.id ) wpforo_editor.set_active(this.id);
});
wpforo_wrap.on('keydown', 'form[data-textareaid]', function (e) {
if (e.ctrlKey && e.keyCode === 13) {
$('[type=submit]', $(this)).click();
}else if( (e.ctrlKey && e.which === 83) || e.which === 19 ){
wpforo_trigger_custom_event(document, 'wpforo_textarea_ctrl_s', e);
e.preventDefault();
return false;
}
});
if( $('.wpforo-recent-content .wpf-p-error', wpforo_wrap).length ){ $('.wpf-navi', wpforo_wrap).remove(); }
/**
* prevent multi submitting
* disable form elements for 10 seconds
*/
window.wpforo_prev_submit_time = 0;
wpforo_wrap.on('submit', 'form', function () {
if( window.wpforo_prev_submit_time ){
if( Date.now() - window.wpforo_prev_submit_time < 10000 ) return false;
}else{
var textareaid = $(this).data('textareaid');
if( textareaid ){
var bodyminlength = $(this).data('bodyminlength');
var bodymaxlength = $(this).data('bodymaxlength');
if( bodyminlength || bodymaxlength ){
var body_stat = wpforo_editor.get_stats(textareaid);
if( bodyminlength ){
if( body_stat.chars < bodyminlength && !body_stat.embeds && !body_stat.links && !body_stat.imgs ){
wpforo_notice_show('Content characters length must be greater than %d', 'error', bodyminlength);
return false;
}
}
if( bodymaxlength ){
if( body_stat.chars > bodymaxlength ){
wpforo_notice_show('Content characters length must be smaller than %d', 'error', bodymaxlength);
return false;
}
}
}
}
wpforo_load_show();
window.wpforo_prev_submit_time = Date.now();
window.onbeforeunload = null;
setTimeout(function () {
window.wpforo_prev_submit_time = 0;
wpforo_load_hide();
}, 10000);
}
});
wpforo_wrap.on('click', '.wpf-spoiler-head', function(){
var spoiler_wrap = $(this).parents('.wpf-spoiler-wrap');
if( spoiler_wrap.length ){
spoiler_wrap = $(spoiler_wrap[0]);
if( !spoiler_wrap.hasClass('wpf-spoiler-processing') ){
spoiler_wrap.toggleClass("wpf-spoiler-open").addClass("wpf-spoiler-processing");
var spoiler_body = $('.wpf-spoiler-body', spoiler_wrap);
if( spoiler_body.length ){
var spoiler_chevron = $('.wpf-spoiler-chevron', spoiler_wrap);
$(spoiler_chevron[0]).toggleClass('fa-chevron-down fa-chevron-up');
$(spoiler_body[0]).slideToggle(500, function () {
spoiler_wrap.removeClass("wpf-spoiler-processing");
if( !spoiler_wrap.hasClass('wpf-spoiler-open') ){
$('.wpf-spoiler-wrap.wpf-spoiler-open .wpf-spoiler-head', spoiler_wrap).click();
}
});
}
}
}
});
wpforo_wrap.on('click', '#add_wpftopic:not(.not_reg_user)', function(){
var form = $( ".wpf-topic-create" );
var stat = form.is( ":hidden" );
form.slideToggle( "slow" );
wpforo_editor.set_content('');
$('[name="topic[title]"]').focus();
var add_wpftopic = '<i class="fas fa-times" aria-hidden="true"></i>';
if( !stat ) add_wpftopic = $('input[type="submit"]', form).val();
$(this).html(add_wpftopic);
$('html, body').animate({ scrollTop: ($(this).offset().top - 35) }, 415);
});
wpforo_wrap.on('click', '.wpf-answer-button .wpf-button:not(.not_reg_user)', function(){
$(this).closest('.wpf-bottom-bar').hide();
});
wpforo_wrap.on('click', '.wpfl-4 .add_wpftopic:not(.not_reg_user)', function(){
$( '.wpf-topic-form-ajax-wrap').empty();
var wrap = $(this).parents('div.wpfl-4');
var form_wrap = $( ".wpf-topic-form-extra-wrap", wrap );
var stat = form_wrap.is( ":hidden" );
$(".wpfl-4 .add_wpftopic").html($(".wpfl-4 .add_wpftopic").data('phrase'));
$(".wpf-topic-form-extra-wrap").slideUp("slow");
var add_wpftopic = '';
if( stat ){
add_wpftopic = '<i class="fas fa-times" aria-hidden="true"></i>';
form_wrap.slideDown("slow");
}else{
add_wpftopic = $(this).data('phrase');
form_wrap.slideUp("slow");
}
var option_no_selected = $( 'option.wpf-topic-form-no-selected-forum' );
option_no_selected.show();
option_no_selected.prop('selected', true);
$( this ).html(add_wpftopic);
$('html, body').animate({ scrollTop: (wrap.offset().top -30 ) }, 415);
});
wpforo_wrap.on('click', '.not_reg_user', function(){
wpforo_load_show();
wpforo_notice_show(wpforo.notice.login_or_register);
wpforo_load_hide();
});
$(document).on('click', '#wpf-msg-box', function(){
$(this).hide();
});
/* Home page loyouts toipcs toglle */
wpforo_wrap.on('click', ".topictoggle", function(){
wpforo_load_show();
var id = $(this).attr( 'id' );
id = id.replace( "img-arrow-", "" );
$( ".wpforo-last-topics-" + id ).slideToggle( "slow" );
if( $(this).hasClass('topictoggle') && $(this).hasClass('fa-chevron-down') ){
$( '#img-arrow-' + id ).removeClass('fa-chevron-down').addClass('fa-chevron-up');
}else{
$( '#img-arrow-' + id ).removeClass('fa-chevron-up').addClass('fa-chevron-down');
}
id = id.replace( "button-arrow-", "" );
$( ".wpforo-last-posts-" + id ).slideToggle( "slow" );
if( $(this).hasClass('topictoggle') && $(this).hasClass('wpfcl-a') && $(this).hasClass('fa-chevron-down') ){
$( '#button-arrow-' + id ).removeClass('fa-chevron-down').addClass('fa-chevron-up');
}else{
$( '#button-arrow-' + id ).removeClass('fa-chevron-up').addClass('fa-chevron-down');
}
wpforo_load_hide();
});
/* Home page loyouts toipcs toglle */
wpforo_wrap.on('click', ".wpforo-membertoggle", function(){
var id = $(this).attr( 'id' );
id = id.replace( "wpforo-memberinfo-toggle-", "" );
$( "#wpforo-memberinfo-" + id ).slideToggle( "slow" );
if( $(this).find( "i" ).hasClass('fa-caret-down') ){
$(this).find( "i" ).removeClass('fa-caret-down').addClass('fa-caret-up');
}else{
$(this).find( "i" ).removeClass('fa-caret-up').addClass('fa-caret-down');
}
});
/* Threaded Layout Hide Replies */
wpforo_wrap.on('click', ".wpf-post-replies-bar", function(){
var id = $(this).attr( 'id' );
id = id.replace( "wpf-ttgg-", "" );
$( "#wpf-post-replies-" + id ).slideToggle( "slow" );
if( $(this).find( "i" ).hasClass('fa-angle-down') ){
$(this).find( "i" ).removeClass('fa-angle-down').addClass('fa-angle-up');
$(this).find( ".wpforo-ttgg" ).attr('wpf-tooltip', wpforo_phrase('Hide Replies'));
}else{
$(this).find( "i" ).removeClass('fa-angle-up').addClass('fa-angle-down');
$(this).find( ".wpforo-ttgg" ).attr('wpf-tooltip', wpforo_phrase('Show Replies'));
}
});
//Reply
wpforo_wrap.on('click', ".wpforo-reply:not(.wpforo_layout_4)", function(){
wpforo_load_show();
var main_form = $('form.wpforo-main-form[data-textareaid]');
var wrap = main_form.closest('.wpf-form-wrapper');
wrap.show();
$(".wpf-reply-form-title").html( wpforo_phrase('Leave a reply') );
var post_wrap = $(this).closest('[id^=post-][data-postid]');
var parentpostid = post_wrap.data('postid');
if( !parentpostid ) parentpostid = 0;
$(".wpf-form-post-parentid", main_form).val( parentpostid );
var mention = $(this).data('mention');
var content = ( mention ? '@' + mention + "\r\n" : '' );
wpforo_editor.set_content( content, wpforo_editor.get_main() );
$('html, body').animate({ scrollTop: wrap.offset().top }, 500);
wpforo_load_hide();
});
//Answer
wpforo_wrap.on('click', ".wpforo-answer", function(){
wpforo_load_show();
var main_form = $('form.wpforo-main-form[data-textareaid]');
var wrap = main_form.closest('.wpf-form-wrapper');
wrap.show();
$(".wpf-reply-form-title").html( wpforo_phrase('Your answer') );
$( ".wpf-form-postid", main_form ).val(0);
$(".wpf-form-post-parentid", main_form).val(0);
var mention = $(this).data('mention');
var content = ( mention ? '@' + mention + "\r\n" : '' );
wpforo_editor.set_content( content, wpforo_editor.get_main() );
$('html, body').animate({ scrollTop: wrap.offset().top }, 500);
wpforo_load_hide();
});
wpforo_wrap.on('click', '.wpforo-qa-comment, .wpforo-reply.wpf-action.wpforo_layout_4', function () {
var wrap = $(this).parents('.reply-wrap,.wpforo-qa-item-wrap');
var post_wrap = $('.post-wrap', wrap);
if( !post_wrap.length ) post_wrap = wrap;
var parentid = post_wrap.data('postid');
if (!parentid) parentid = post_wrap.attr('id').replace('post-', '');
if (!parentid) parentid = 0;
var form = $('.wpforo-post-form');
var textareaid = form.data('textareaid');
var textarea_wrap = $('.wpf_post_form_textarea_wrap', form);
var textarea = $('#' + textareaid, textarea_wrap);
var textareatype = textarea_wrap.data('textareatype');
$('.wpf_post_parentid').val(parentid);
$('.wpforo-qa-comment,.wpforo-reply.wpf-action.wpforo_layout_4').show();
$(this).hide();
$('.wpforo-portable-form-wrap', wrap).show();
if( ! $('.wpforo-post-form', wrap).length ) form.appendTo($('.wpforo-portable-form-wrap', wrap));
form.show();
if( textareatype && textareatype === 'rich_editor' ){
textarea_wrap.html('<textarea id="' + textareaid + '" class="wpf_post_body" name="post[body]"></textarea>');
wpforo_tinymce_initializeIt( '#' + textareaid );
}else{
textarea.val('');
textarea.focus();
}
var mention = $(this).data('mention');
var content = ( mention ? '@' + mention + "\r\n" : '' );
wpforo_editor.set_content( content, textareaid );
});
wpforo_wrap.on('click', '.wpf-button-close-form', function () {
$(this).parents('.wpforo-portable-form-wrap').hide();
$('.wpforo-post-form').hide();
$('.wpforo-qa-comment,.wpforo-reply.wpf-action.wpforo_layout_4').show();
wpforo_editor.set_content('');
});
//mobile menu responsive toggle
wpforo_wrap.on('click', "#wpforo-menu .wpf-res-menu", function(){
$("#wpforo-menu .wpf-menu").toggle();
});
var wpfwin = $(window).width();
var wpfwrap = wpforo_wrap.width();
if( wpfwin >= 602 && wpfwrap < 800 ){
wpforo_wrap.on('focus', "#wpforo-menu .wpf-search-field", function(){
$("#wpforo-menu .wpf-menu li").hide();
wpforo_wrap.find("#wpforo-menu .wpf-res-menu").show();
$("#wpforo-menu .wpf-search-field").css('transition-duration', '0s');
});
wpforo_wrap.on('blur', "#wpforo-menu .wpf-search-field", function(){
wpforo_wrap.find("#wpforo-menu .wpf-res-menu").hide();
$("#wpforo-menu .wpf-menu li").show();
$("#wpforo-menu .wpf-search-field").css('transition-duration', '0.4s');
});
}
// password show/hide switcher */
wpforo_wrap.on('click', '.wpf-show-password', function () {
var btn = $(this);
var parent = btn.parents('.wpf-field-wrap');
var input = $(':input', parent);
if (input.attr('type') === 'password') {
input.attr('type', 'text');
btn.removeClass('fa-eye-slash');
btn.addClass('fa-eye');
} else {
input.attr('type', 'password');
btn.removeClass('fa-eye');
btn.addClass('fa-eye-slash');
}
});
//Turn off on dev mode
//$(window).bind('resize', function(){ if (window.RT) { clearTimeout(window.RT); } window.RT = setTimeout(function(){ this.location.reload(false);}, 100); });
wpforo_wrap.on("change", "#wpforo_split_form #wpf_split_create_new", function () {
var checked = $("#wpf_split_create_new").is(":checked"),
target_url = $("#wpf_split_target_url"),
append = $("#wpf_split_append"),
new_title = $("#wpf_split_new_title"),
forumid = $("#wpf_split_forumid");
if( checked ){
target_url.children("input").prop("disabled", true);
target_url.hide();
append.children("input").prop("disabled", true);
append.hide();
new_title.children("input").prop("disabled", false);
new_title.show();
forumid.children("select").prop("disabled", false);
forumid.show();
}else{
target_url.children("input").prop("disabled", false);
target_url.show();
append.children("input").prop("disabled", false);
append.show();
new_title.children("input").prop("disabled", true);
new_title.hide();
forumid.children("select").prop("disabled", true);
forumid.hide();
}
});
//Facebook Share Buttons
wpforo_wrap.on('click','.wpf-fb', function(){
var item_url = $(this).data('wpfurl');
var item_quote = $(this).parents('.post-wrap').find('.wpforo-post-content').text();
FB.ui({
method: 'share',
href: item_url,
quote: item_quote,
hashtag: null
}, function (response) {});
});
//Share Buttons Toggle
wpforo_wrap.on('mouseover', '.wpf-sb', function(){
$(this).find(".wpf-sb-toggle").find("i").addClass("wpfsa");
$(this).find(".wpf-sb-buttons").show();
});
wpforo_wrap.on('mouseout', '.wpf-sb', function() {
$(this).find(".wpf-sb-toggle").find("i").removeClass("wpfsa");
$(this).find(".wpf-sb-buttons").hide();
});
wpforo_wrap.on('mouseover', '.wpf-sb-toggle', function(){
$(this).next().filter('.wpf-sb-buttons').parent().find("i").addClass("wpfsa");
});
wpforo_wrap.on('mouseout', '.wpf-sb-toggle', function(){
$(this).next().filter('.wpf-sb-buttons').parent().find("i").removeClass("wpfsa");
});
//Forum Rules
wpforo_wrap.on('click', "#wpf-open-rules", function(){
$(".wpforo-legal-rules").toggle();
return false;
});
wpforo_wrap.on('click','#wpflegal-rules-yes', function(){
$('#wpflegal_rules').prop('checked', true);
$('#wpflegal-rules-not').removeClass('wpflb-active-not');
$(this).addClass('wpflb-active-yes');
setTimeout(function(){ $(".wpforo-legal-rules").slideToggle( "slow" ); }, 500);
});
wpforo_wrap.on('click','#wpflegal-rules-not', function(){
$('#wpflegal_rules').prop('checked', false);
$('#wpflegal-rules-yes').removeClass('wpflb-active-yes');
$(this).addClass('wpflb-active-not');
});
//Forum Privacy Buttons
wpforo_wrap.on('click', "#wpf-open-privacy", function(){
$(".wpforo-legal-privacy").toggle();
return false;
});
wpforo_wrap.on('click','#wpflegal-privacy-yes', function(){
$('#wpflegal_privacy').prop('checked', true);
$('#wpflegal-privacy-not').removeClass('wpflb-active-not');
$(this).addClass('wpflb-active-yes');
setTimeout(function(){ $(".wpforo-legal-privacy").slideToggle( "slow" ); }, 500);
});
wpforo_wrap.on('click','#wpflegal-privacy-not', function(){
$('#wpflegal_privacy').prop('checked', false);
$('#wpflegal-privacy-yes').removeClass('wpflb-active-yes');
$(this).addClass('wpflb-active-not');
});
//Facebook Login Button
wpforo_wrap.on('click', '#wpflegal_fblogin', function() {
if( $(this).is(':checked') ){
$('.wpforo_fb-button').attr('style','pointer-events:auto; opacity:1;');
} else{
$('.wpforo_fb-button').attr('style','pointer-events: none; opacity:0.6;');
}
});
wpforo_wrap.on('click', '.wpf-load-threads .wpf-forums', function () {
$( '.wpf-cat-forums', $(this).parents('div.wpfl-4') ).slideToggle('slow');
$('i', $(this)).toggleClass('fa-chevron-down fa-chevron-up');
});
wpforo_wrap.on('click', '[data-copy-wpf-furl], [data-copy-wpf-shurl]', function(){
var urls = [];
var full_url = $(this).data('copy-wpf-furl');
if( full_url ) urls.push( decodeURIComponent(full_url) );
var short_url = $(this).data('copy-wpf-shurl');
if( short_url ) urls.push( decodeURIComponent(short_url) );
if(urls.length){
var label = '';
var html = '';
urls.forEach(function(url, i){
label = (urls.length === 2 && i === 1 ) ? wpforo_phrase('Short') : wpforo_phrase('Full');
html += '<div class="wpforo-copy-url-wrap">' +
'<div class="wpforo-copy-input">' +
'<div class="wpforo-copy-input-header">' +
'<label class="wpforo-copy-url-label">' +
'<i class="fas fa-link wpfsx"></i>' +
'<span class="wpforo-copy-url-label-txt">' + label + '</span>' +
'</label>' +
'</div>' +
'<div class="wpforo-copy-input-body">' +
'<input dir="ltr" readonly class="wpforo-copy-url" type="text" value="' + url + '">' +
'</div>' +
'</div>' +
'<div class="wpforo-copied-txt"><span>' + wpforo_phrase('Copied') + '</span></div>' +
'</div>';
});
var title = wpforo_phrase('Share Urls');
wpforo_dialog_show(title, html, '40%', '260px');
}
});
$(document).on('click', '.wpforo-copy-url-wrap', function(){
var wrap = $(this);
var input = $('input.wpforo-copy-url', wrap);
if( input.length ){
input[0].select();
if( document.execCommand('copy') ){
wrap.addClass('wpforo-copy-animate');
setTimeout(function () {
wrap.removeClass('wpforo-copy-animate');
}, 1000);
}
}
});
wpforo_wrap.on('click', '.wpf-toggle .wpf-toggle-advanced', function(){
var wrap = $(this).closest('.wpf-toggle-wrap');
$('.wpf-ico', $(this)).toggleClass('fa-chevron-down fa-chevron-up');
$('.wpf-search-advanced-fields', wrap).slideToggle(350);
});
wpforo_wrap.on('click', '.wpf-toggle .wpf-toggle-custom', function(){
var wrap = $(this).closest('.wpf-toggle-wrap');
$('.wpf-ico', $(this)).toggleClass('fa-chevron-down fa-chevron-up');
$('.wpf-search-custom-fields', wrap).slideToggle(350);
});
wpforo_wrap.on('click', 'form[data-textareaid] .wpforo-delete-custom-file', function(){
if( confirm( wpforo_phrase( 'Are you sure you want to delete this file?' ) ) ){
var wrap = $(this).closest('.wpf-field-file-wrap');
var fieldKey = $(this).data('fieldkey');
if( fieldKey ) wrap.html('<input type="hidden" name="wpftcf_delete[]" value="'+ fieldKey +'">');
}
});
wpforo_wrap.on('change', '#wpf-profile-action', function(){
var val = $(this).val();
var exreg = new RegExp('^https?://', 'i');
if( val.match(exreg) ) location.href = val;
});
});