function add_option(forWhat) { var holder = document.getElementById(forWhat + "_more"); var theId = document.getElementById(forWhat + '_option_number').value; var newDiv = document.createElement('p'); newDiv.setAttribute('id', forWhat + '_div' + theId); var newOption = document.createElement('input'); newOption.setAttribute('type', 'text'); newOption.setAttribute('name', forWhat + '_option[' + theId + ']'); newOption.setAttribute('id', forWhat + '_option' + theId); var label = document.createElement('label'); label.setAttribute('for', forWhat + '_option' + theId); var txt = document.createTextNode("Option " + theId + ": "); label.appendChild(txt); var isDefault = document.createElement('input'); if(forWhat == 'checkbox' || forWhat == 'multiselectbox') { isDefault.setAttribute('type', 'checkbox'); isDefault.setAttribute('name', 'isDefault_' + forWhat + '_option[' + theId + ']'); } else { isDefault.setAttribute('type', 'radio'); isDefault.setAttribute('name', 'isDefault_' + forWhat + '_option'); } isDefault.setAttribute('value', theId); var label1 = document.createElement('label'); var txt1 = document.createTextNode(" Default Value "); label1.appendChild(txt1); label1.setAttribute('for', 'isDefault_' + forWhat + '_option[]'); toDelete = document.createElement('a'); toDeleteText = document.createTextNode('[x]'); toDelete.setAttribute('href',"javascript:hide('" + forWhat + '_div' + theId + "')"); toDelete.setAttribute('class','delete'); toDelete.appendChild(toDeleteText); newDiv.appendChild(label); newDiv.appendChild(newOption); newDiv.appendChild(document.createTextNode(" ")); newDiv.appendChild(isDefault); newDiv.appendChild(label1); newDiv.appendChild(toDelete); holder.appendChild(newDiv); theId++ document.getElementById(forWhat + "_option_number").value = theId; } function show_options(forWhat) { document.getElementById("radio").style.display = "none"; document.getElementById("selectbox").style.display = "none"; document.getElementById("multiselectbox").style.display = "none"; document.getElementById("checkbox").style.display = "none"; if(forWhat == "radio") document.getElementById("radio").style.display = ""; if(forWhat == "selectbox") document.getElementById("selectbox").style.display = ""; if(forWhat == "multiselectbox") document.getElementById("multiselectbox").style.display = ""; if(forWhat == "checkbox") document.getElementById("checkbox").style.display = ""; } function hide(id) { if ( !document.getElementById(id) ) return false; document.getElementById(id).style.display = "none"; document.getElementById(id).value = ''; } // Set up deleting options ajax jQuery(document).ready( function() { jQuery("a.ajax-option-delete").click( function() { var theId = this.id.split('-'); theId = theId[1]; jQuery.post( ajaxurl, { action: 'xprofile_delete_option', 'cookie': encodeURIComponent(document.cookie), '_wpnonce': jQuery("input#_wpnonce").val(), 'option_id': theId }, function(response) {}); } ); }); var fixHelper = function(e, ui) { ui.children().each(function() { jQuery(this).width( jQuery(this).width() ); }); return ui; }; // Main XProfile behavior layer jQuery(document).ready( function() { /* Show object if JS is enabled */ jQuery( "ul#field-group-tabs" ).show(); /* Allow reordering of field group tabs */ jQuery( "ul#field-group-tabs" ).sortable( { cursor: 'move', axis: 'x', opacity: 0.6, items: 'li', tolerance: 'pointer', update: function() { jQuery.post( ajaxurl, { action: 'xprofile_reorder_groups', 'cookie': encodeURIComponent(document.cookie), '_wpnonce_reorder_groups': jQuery( "input#_wpnonce_reorder_groups" ).val(), 'group_order': jQuery(this).sortable( 'serialize' ) }, function(response){}); } }).disableSelection(); /* Allow reordering of fields within groups */ jQuery( "fieldset.field-group" ).sortable({ cursor: 'move', opacity: 0.3, items: 'fieldset', tolerance: 'pointer', update: function() { jQuery.post( ajaxurl, { action: 'xprofile_reorder_fields', 'cookie': encodeURIComponent(document.cookie), '_wpnonce_reorder_fields': jQuery( "input#_wpnonce_reorder_fields" ).val(), 'field_order': jQuery(this).sortable( 'serialize' ), 'field_group_id': jQuery(this).attr( 'id' ) }, function(response) {}); } }) /* Disallow text selection */ .disableSelection() /* Change cursor to move if JS is enabled */ .css( 'cursor', 'move' ); /* tabs init with a custom tab template and an "add" callback filling in the content */ var $tab_items; var $tabs = jQuery( "#tabs" ).tabs(); set_tab_items( $tabs ); function set_tab_items( $tabs ) { $tab_items = jQuery( "ul:first li", $tabs ).droppable({ accept: ".connectedSortable fieldset", hoverClass: "ui-state-hover", activeClass: "ui-state-acceptable", touch: "pointer", tolerance: "pointer", /* When field is dropped on tab */ drop: function( ev, ui ) { /* The tab */ var $item = jQuery(this); /* The tab body */ var $list = jQuery( $item.find( 'a' ).attr( 'href' ) ).find( '.connectedSortable' ); /* Remove helper class */ jQuery($item).removeClass( 'drop-candidate' ); /* Hide field, change selected tab, and show new placement */ ui.draggable.hide( 'slow', function() { /* Select new tab as current */ $tabs.tabs( 'select', $tab_items.index( $item ) ); /* Show new placement */ jQuery(this).appendTo($list).show( 'slow' ).animate( {opacity: "1"}, 500 ); /* Refresh $list variable */ $list = jQuery( $item.find( 'a' ).attr( 'href' ) ).find( '.connectedSortable' ); jQuery($list).find( 'p.nofields' ).hide( 'slow' ); /* Ajax update field locations and orders */ jQuery.post( ajaxurl, { action: 'xprofile_reorder_fields', 'cookie': encodeURIComponent(document.cookie), '_wpnonce_reorder_fields': jQuery( "input#_wpnonce_reorder_fields" ).val(), 'field_order': jQuery( $list ).sortable( 'serialize' ), 'field_group_id': jQuery( $list ).attr( 'id' ) }, function(response){}); }); }, over: function( event, ui ) { jQuery(this).addClass( 'drop-candidate' ); }, out: function( event, ui ) { jQuery(this).removeClass( 'drop-candidate' ); } }); } });