// source --> https://www.goedkoperles.nl/wp-content/plugins/wp-private-content-pro/js/wppcp-front.js?ver=7.0 
jQuery(document).ready(function($) {
	jQuery(".wppcp-group-tab").click(function(){
        var tab_class = "."+$(this).attr('data-tab-id')+"-tab-content";

        $(this).closest('.wppcp-group-single').find('.wppcp-group-tab-content').hide();

        $(this).closest('.wppcp-group-single').find(tab_class).show();
    });

    $('.wppcp-group-disscussion-tab-submit').click(function(){
    	var post_message_container = $(this).closest('.wppcp-group-disscussion-tab-post');
    	var discussion_container = $(this).closest('.wppcp-group-disscussion-tab-content');

    	post_message_container.find('.wppcp-group-disscussion-tab-msg').removeClass('wppcp-message-info-error').removeClass('wppcp-message-info-success').hide();

    	var post_message = post_message_container.find('.wppcp-group-disscussion-tab-editor textarea').val();
    	if($.trim(post_message) === ''){
    		post_message_container.find('.wppcp-group-disscussion-tab-msg').html('Please add a message').addClass('wppcp-message-info-error').show();
    	}else{

    		$.post(
	            WPPCPFront.AdminAjax,
	            {
	                'action': 'wppcp_add_group_post_message',
	                'verify_nonce': WPPCPFront.nonce,
	                'group_id':   $(this).attr('data-group-id'),
	                'type' : 'message',
	                'message' : post_message,
	                'user_ids' : post_message_container.find('.wppcp-group-disscussion-message-users').val()
	            },
	            function(response){
	            	post_message_container.find('.wppcp-group-disscussion-tab-editor textarea').val("");

	                if(response.status == 'success'){
	
	                    
	                    var group_messages_list = discussion_container.find(".wppcp-group-messages-list");
	                    var message_block_clone = $("#wppcp-group-messages-single-block").clone();
	                    message_block_clone.find('.wppcp-group-messages-single-block-comments').html('');
	                    
	                    var new_message_block = message_block_clone.removeClass('wppcp-group-messages-single-template').prependTo(group_messages_list);
	                    new_message_block.find('.wppcp-message-name').html(response.data.current_user_display_name);
	                    new_message_block.find('.wppcp-message-date').html(response.data.message_date);
	                	new_message_block.find('.wppcp-group-messages-single-block-message').html(response.data.message);
	                	new_message_block.find('.wppcp-group-messages-single-block-avatar').html(response.data.avatar);
	                	new_message_block.find('.wppcp-group-messages-single-block-add-comments .wppcp-group-messages-single-comment-avatar').html(response.data.avatar);
	                	new_message_block.attr('data-group-id',response.data.group_id);
	                	new_message_block.attr('data-message-id',response.data.message_id);
	                    new_message_block.find('.wppcp-group-messages-single-comment-save').attr('data-group-id',response.data.group_id);
	                	new_message_block.find('.wppcp-group-messages-single-comment-save').attr('data-message-id',response.data.message_id);// .prepend(new_message_block);
	       
	                }      
	            },"json"
	        );
    	}
    });

	$('.wppcp-group-disscussion-tab-content').on("click",".wppcp-group-messages-single-comment-save", function(){
		$(this).removeClass('wppcp-error-outline');
		var message_container = $(this).closest('.wppcp-group-messages-single-block-add-comments')
		var message = message_container.find('.wppcp-group-messages-single-comment').val();
		var single_message_block = $(this).closest('.wppcp-group-messages-single-block');
	
		if(message == ''){
			$(this).closest('.wppcp-group-messages-single-block-add-comments').find('.wppcp-group-messages-single-comment').addClass('wppcp-error-outline');
		}else{
			$(this).removeClass('wppcp-error-outline');
			var group_id = $(this).attr('data-group-id');
			var message_id = $(this).attr('data-message-id');
			// console.log(group_id+" "+ message_id);

			$.post(
	            WPPCPFront.AdminAjax,
	            {
	                'action': 'wppcp_add_group_comment_message',
	                'verify_nonce': WPPCPFront.nonce,
	                'group_id':   group_id,
	                'message_id' : message_id,
	                'message' : message,
	            },
	            function(response){
	            	message_container.find('.wppcp-group-messages-single-comment').val("");

	                if(response.status == 'success'){
	                	var comments_container = single_message_block.find('.wppcp-group-messages-single-block-comments');
	                	console.log(comments_container.html());
	                    var new_comment_block = $("#wppcp-group-messages-single-block-comment").clone().removeClass('wppcp-group-messages-single-block-comment-template').prependTo(comments_container);
	                    console.log(new_comment_block);
	                    new_comment_block.find('.wppcp-comment-name').html(response.data.current_user_display_name);
	                    new_comment_block.find('.wppcp-comment-date').html(response.data.message_date);
	                	new_comment_block.find('.wppcp-comment-message').html(response.data.message);
	                	new_comment_block.find('.wppcp-group-messages-single-comment-avatar').html(response.data.avatar);
	                	
	                    new_comment_block.attr('data-group-id',response.data.group_id);
	                	new_comment_block.attr('data-message-id',response.data.message_id);
	                    // console.log(response.data);
	                    // var group_messages_list = discussion_container.find(".wppcp-group-messages-list");
	                    
	                }      
	            },"json"
	        );
		}
	});

	$('.wppcp-group-messages-pagination').click(function(){
		var pagination_button = $(this);
    	var data_page = $(this).attr("data-pagination-page");
    	var group_id = $(this).attr("data-group-id");
    	var discussion_container = $(this).closest('.wppcp-group-disscussion-tab-content');

		$.post(
            WPPCPFront.AdminAjax,
            {
                'action': 'wppcp_load_group_paginated_messages',
                'verify_nonce': WPPCPFront.nonce,
                'group_id':   group_id,
                'data_page' : data_page
            },
            function(response){

                if(response.status == 'success'){
                    if(response.message_pagination_status == '0'){
                    	pagination_button.hide();
                    }else{
                    	pagination_button.attr('data-pagination-page', response.data_page );
                    }

                    discussion_container.find('.wppcp-group-messages-list').append(response.messages_html);
                }      
            },"json"
        );    	
    });


	$(".wppcp-group-files-add-btn").click(function(){
		$(this).closest('.wppcp-group-files-create').find('.wppcp-group-files-add-form').show();
	});

	$(".wppcp-group-file-upload-form").submit(function(e){
	
		e.preventDefault();
		var file_form = $(this);

		file_form.find(".wppcp-group-file-nonce").val(WPPCPFront.nonce);
		var file_name = file_form.find(".wppcp-group-file-name").val();
		var file_desc = file_form.find(".wppcp-group-file-desc").val();
		var file = file_form.find(".wppcp-group-file").val();

		var msg_container = file_form.find(".wppcp-group-files-msg");
		msg_container.removeClass('wppcp-message-info-error').removeClass('wppcp-message-info-success');

		file_form.find(".wppcp-group-file-name").removeClass("wppcp-error-outline");
		file_form.find(".wppcp-group-file").removeClass("wppcp-error-outline");

		var err = 0;
		var err_msg = '';
		if(file_name == ''){
			err_msg += "" + WPPCPFront.Messages.fileNameRequired + "<br/>";
			file_form.find(".wppcp-group-file-name").addClass("wppcp-error-outline");
			err++;
		}

		if(file == ''){
			err_msg += "" + WPPCPFront.Messages.fileRequired + "<br/>";
			file_form.find(".wppcp-group-file").addClass("wppcp-error-outline");
			err++;
		}

		if(err != 0){
			msg_container.html(err_msg).addClass('wppcp-message-info-error').show();
		}else{

			msg_container.html("").hide();

			var formObj = file_form;
        	var formURL = WPPCPFront.AdminAjax+'?action=wppcp_save_group_files';
        	var formData = new FormData(this);
        	console.log(formData);

        	jQuery.ajax({
	            url: formURL,
	            type: 'POST',
	            data:  formData,
	            mimeType:"multipart/form-data",
	            contentType: false,
	            cache: false,
	            dataType : "json",
	            processData:false,
	            success: function(data, textStatus, jqXHR)
	            {
	            	if(data.status == 'success'){
	            		msg_container.html(data.msg).removeClass('wppcp-message-info-error').addClass('wppcp-message-info-success').show();
	            		file_form.closest('.wppcp-group-files-tab-content').find('.wppcp-group-files-list').prepend(data.files_html);
	            		file_form.find(".wppcp-group-file-name").val('');
	            		file_form.find(".wppcp-group-file").val('');
	            	
	            	}else if(data.status == 'error'){
	            		msg_container.html(data.msg).removeClass('wppcp-message-info-success').addClass('wppcp-message-info-error').show();
	            	}
	            },
	            error: function(jqXHR, textStatus, errorThrown)
	            {
	                msg_container.html(err_msg).addClass('wppcp-message-info-error').show();
	            }
	        });
		}
	});

	$("body").on("click",".wppcp-group-file-item-view", function(){
		var file_item = $(this).closest('.wppcp-group-file-item');
		var file_item_data = file_item.find('.wppcp-group-file-item-data');
		if(file_item_data.hasClass('wppcp-group-file-item-data-closed')){
			file_item_data.removeClass('wppcp-group-file-item-data-closed').addClass('wppcp-group-file-item-data-open');
		}else if(file_item_data.hasClass('wppcp-group-file-item-data-open')){
			file_item_data.removeClass('wppcp-group-file-item-data-open').addClass('wppcp-group-file-item-data-closed');
		}else{
			file_item_data.removeClass('wppcp-group-file-item-data-open').addClass('wppcp-group-file-item-data-closed');
		}
	});

	$("body").on("click",".wppcp-group-file-item-delete", function(){
		var file_item = $(this).closest('.wppcp-group-file-item');
		var file_id   = file_item.attr('data-file-id');
		var group_id   = file_item.attr('data-group-id');

		$.post(
            WPPCPFront.AdminAjax,
            {
                'action': 'wppcp_delete_group_file',
                'verify_nonce': WPPCPFront.nonce,
                'group_id':   group_id,
                'file_id' : file_id
            },
            function(response){

                if(response.status == 'success'){
                	file_item.closest('.wppcp-group-files-tab-content').find('.wppcp-group-files-list-msg').removeClass('wppcp-message-info-error').addClass('wppcp-message-info-success').html(""+response.msg+"<br/>").show();
                	file_item.remove();

                }else if(response.status == 'error'){
                	file_item.closest('.wppcp-group-files-tab-content').find('.wppcp-group-files-list-msg').removeClass('wppcp-message-info-success').addClass('wppcp-message-info-error').html(""+response.msg+"<br/>").show();

                }      
            },"json"
        );  
	});

	$("body").on("click",".wppcp-group-messages-single-message-delete", function(){
		var message_block = $(this).closest('.wppcp-group-messages-single-block');
		var message_id   = message_block.attr('data-message-id');

		if(confirm(WPPCPFront.Messages.confirmDelete)){
			$.post(
	            WPPCPFront.AdminAjax,
	            {
	                'action': 'wppcp_delete_group_message',
	                'verify_nonce': WPPCPFront.nonce,
	                'message_id':   message_id
	            },
	            function(response){

	                if(response.status == 'success'){
	                	message_block.before('<div class="wppcp-group-disscussion-tab-msg wppcp-message-info-success" id="wppcp-group-disscussion-delete-error" >' + response.msg + '</div>');
	                	message_block.remove();
	                	setTimeout(function(){ $('#wppcp-group-disscussion-delete-error').remove(); }, 3000);

	                }else if(response.status == 'error'){	                	
	                	message_block.before('<div class="wppcp-group-disscussion-tab-msg wppcp-message-info-error" id="wppcp-group-disscussion-delete-error" >' + response.msg + '</div>');
	                	setTimeout(function(){ $('#wppcp-group-disscussion-delete-error').remove(); }, 3000);
	                }      
	            },"json"
	        );
		}
		  
	});

	$("body").on("click",".wppcp-group-messages-single-comment-delete", function(){
		var comment_block = $(this).closest('.wppcp-group-messages-single-block-comment');
		var comment_id   = comment_block.attr('data-message-id');

		if(confirm(WPPCPFront.Messages.confirmDelete)){
			$.post(
	            WPPCPFront.AdminAjax,
	            {
	                'action': 'wppcp_delete_group_comment',
	                'verify_nonce': WPPCPFront.nonce,
	                'comment_id':   comment_id
	            },
	            function(response){

	                if(response.status == 'success'){
	                	comment_block.before('<div class="wppcp-group-disscussion-tab-msg wppcp-message-info-success" id="wppcp-group-disscussion-delete-error" >' + response.msg + '</div>');
	                	comment_block.remove();
	                	setTimeout(function(){ $('#wppcp-group-disscussion-delete-error').remove(); }, 3000);

	                }else if(response.status == 'error'){	                	
	                	comment_block.before('<div class="wppcp-group-disscussion-tab-msg wppcp-message-info-error" id="wppcp-group-disscussion-delete-error" >' + response.msg + '</div>');
	                	setTimeout(function(){ $('#wppcp-group-disscussion-delete-error').remove(); }, 3000);
	                }      
	            },"json"
	        );
		}
		  
	});



	$('.wppcp-group-files-pagination').click(function(){
		var pagination_button = $(this);
    	var data_page = $(this).attr("data-pagination-page");
    	var group_id = $(this).attr("data-group-id");
    	var files_container = $(this).closest('.wppcp-group-files-tab-content');

		$.post(
            WPPCPFront.AdminAjax,
            {
                'action': 'wppcp_load_group_paginated_files',
                'verify_nonce': WPPCPFront.nonce,
                'group_id':   group_id,
                'data_page' : data_page
            },
            function(response){

                if(response.status == 'success'){
                    if(response.file_pagination_status == '0'){
                    	pagination_button.hide();
                    }else{
                    	pagination_button.attr('data-pagination-page', response.data_page );
                    }

                    files_container.find('.wppcp-group-files-list').append(response.files_html);
                }      
            },"json"
        );    	
    });

    $('.wppcp-group-members-pagination').click(function(){
		var pagination_button = $(this);
    	var data_page = $(this).attr("data-pagination-page");
    	var group_id = $(this).attr("data-group-id");
    	var files_container = $(this).closest('.wppcp-group-members-tab-content');

		$.post(
            WPPCPFront.AdminAjax,
            {
                'action': 'wppcp_load_group_paginated_members',
                'verify_nonce': WPPCPFront.nonce,
                'group_id':   group_id,
                'data_page' : data_page
            },
            function(response){

                if(response.status == 'success'){
                    if(response.member_pagination_status == '0'){
                    	pagination_button.hide();
                    }else{
                    	pagination_button.attr('data-pagination-page', response.data_page );
                    }

                    files_container.find('.wppcp-group-members-list').append(response.members_html);
                }      
            },"json"
        );    	
    });

	if($(".wppcp-select2-front").length){
		$(".wppcp-select2-front").each(function(){

			var group_id = $(this).attr('data-group-id');
			$(this).wppcp_select2({
	          placeholder: "Select a state",
	          ajax: {
	            url: WPPCPFront.AdminAjax,
	            dataType: 'json',
	            delay: 250,
	            method: "POST",
	            data: function (params) {
	              return {
	                q: params.term, // search term
	                page: params.page,
	                action: 'wppcp_load_group_members',
	                group_id : group_id
	              };
	            },
	            processResults: function (data, page) {
	              return {
	                results: data.items
	              };
	            },
	            cache: true
	          },
	          escapeMarkup: function (markup) { return markup; }, 
	          minimumInputLength: 1,
	          templateResult: wppcp_front_formatRepo, 
	          templateSelection: wppcp_front_formatRepoSelection 
	        });
		});

        
    }

    var url = window.location.href;
    // if(url.indexOf('wppcp_pp_file_id') != -1){
    //    jQuery('.wppcp-private-page-files-tab').trigger('click');            
    // }

    if(url.indexOf('wppcp_group_msg') != -1){
       jQuery('.wppcp-group-disscussion-tab').trigger('click');            
    }
    if(url.indexOf('wppcp_group_file') != -1){
       jQuery('.wppcp-group-files-tab').trigger('click');            
    }
    

    $('article#post-').hide();
});

function wppcp_front_formatRepo (repo) {
    if (repo.loading) return repo.text;

    var markup = '<div class="clearfix">' +
    '<div class="col-sm-1">' +
    '' +
    '</div>' +
    '<div clas="col-sm-10">' +
    '<div class="clearfix">' +
    '<div class="col-sm-6">' + repo.name + '</div>' +
    '</div>';


    markup += '</div></div>';

    return markup;
}

function wppcp_front_formatRepoSelection (repo) {
    return repo.name || repo.text;
};