/** * affiliates-field-choice.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 2.8.0 */ jQuery( document ).ready( function() { var aff_reg_field_count = jQuery('#registration-fields > table > tbody tr' ).length; jQuery( "#registration-fields" ).on( 'click', 'button.field-add', function( event ) { event.stopPropagation(); var i = aff_reg_field_count++, row = '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + ''; jQuery('#registration-fields > table > tbody').append(row); }); jQuery( "#registration-fields" ).on( 'click', 'button.field-remove', function( event ) { event.stopPropagation(); jQuery( event.target ).parent().parent().remove(); }); jQuery( "#registration-fields" ).on( 'click', 'button.field-up,button.field-down', function( event ) { event.stopPropagation(); var row = jQuery( this ).parents( "tr:first" ); if ( jQuery( this ).is( ".field-up" ) ) { var prev = row.prev(); row.insertBefore(prev); row.find( 'input' ).each( function() { var name = jQuery( this ).attr( 'name' ); var newName = name.replace( /\d+/, function( match, offset, string ) { return parseInt( match ) - 1; }); jQuery( this ).attr( 'name', newName ); } ); prev.find( 'input' ).each( function() { var name = jQuery( this ).attr( 'name' ); var newName = name.replace( /\d+/, function( match, offset, string ) { return parseInt( match ) + 1; }); jQuery( this ).attr( 'name', newName ); } ); } else { var next = row.next(); row.insertAfter( next ); row.find( 'input' ).each( function() { var name = jQuery( this ).attr( 'name' ); var newName = name.replace(/\d+/, function( match, offset, string ) { return parseInt( match )+1; }); jQuery( this ).attr( 'name', newName ); } ); next.find( 'input' ).each( function() { var name = jQuery( this ).attr( 'name' ); var newName = name.replace(/\d+/, function( match, offset, string ) { return parseInt( match ) - 1; } ); jQuery( this ).attr( 'name', newName ); } ); } } ); } );