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' );
			}
		});
	}
});