affiliates.js 2.54 KB
/**
 * affiliates.js
 * 
 * Copyright (c) 2010 - 2015 "kento" Karim Rahimpur www.itthinx.com
 * 
 * This code is released under the GNU General Public License.
 * See COPYRIGHT.txt and LICENSE.txt.
 * 
 * This code is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * This header and all notices must be kept intact.
 * 
 * @author Karim Rahimpur
 * @package affiliates
 * @since affiliates 1.0.0
 */
jQuery(document).ready(function(){

	/* design */
	jQuery(".affiliate").corner("5px");
	jQuery(".filters").corner("5px");
	jQuery(".manage").corner("5px");

	/* effects & handling */
	var clickToggler = function() {
		var description = jQuery(this).parent().children(".view");
		var expander = jQuery(this).parent().children(".expander");
		if ( description.is(":hidden") ) {
			description.slideDown("fast");
			expander.contents().remove();
			expander.append("[-] ");
		} else {
			description.slideUp("fast");
			expander.contents().remove();
			expander.append("[+] ");
		}
	};

	jQuery('.view-toggle .expander').each( function() {
		jQuery(this).click(clickToggler);
	});
	jQuery('.view-toggle .view-toggle-label').each( function() {
		jQuery(this).click(clickToggler);
	});

	/* filter highlighting */
	jQuery('.filters input[type="text"], .filters input[type="checkbox"], .filters input[type="radio"], .filters textarea, .filters select').each( function() {
		if ( jQuery(this).val() !== '' ) {
			this.className += ' active-filter';
		}
	});

	/* filters toggle */
	jQuery('#filters-toggle').click(function(){
		var ajaxing = jQuery('#filters-toggle').data('ajaxing');
		if (!(typeof ajaxing === 'undefined' || !ajaxing)) {
			return;
		}
		jQuery('#filters-toggle').data('ajaxing',true);
		jQuery('#filters-container').toggle();
		var visible = jQuery('#filters-container').is(':visible');
		if (visible) {
			jQuery(this).addClass('on');
			jQuery(this).removeClass('off');
		} else {
			jQuery(this).addClass('off');
			jQuery(this).removeClass('on');
		}
		if (
			( typeof ajaxurl !== 'undefined' ) &&
			( typeof affiliates_ajax_nonce !== 'undefined' )
		) {
			var data = {
				action : 'affiliates_set_option',
				affiliates_ajax_nonce : affiliates_ajax_nonce,
				key : 'show_filters',
				value : JSON.stringify(visible)
			};
			jQuery.ajax({
				type   : 'POST',
				async  : false,
				url    : ajaxurl,
				data   : data
			});
		}
		jQuery('#filters-toggle').data('ajaxing',false);
	});
});