//-------------------------------------------------
// INITIALIZING PAGE
//-------------------------------------------------
jQuery(document).ready(function() {
setTimeout("CloseStatus();", 5000);
jQuery('.field_type input').each(function(){
var $this = jQuery(this);
var type = $this.data('type');
var onClick = $this.attr('onclick');
if(typeof type =='undefined'){
// deprecate buttons without the type data attribute
if(onClick.indexOf('StartAddField') > -1){
if (/StartAddField\([ ]?'(.*?)[ ]?'/.test( onClick )){
type = onClick.match( /'(.*?)'/ )[1];
$this.data('type', type);
}
}
if(window.console){
console.log('Deprecated button for the ' + this.value + ' field. Since v1.9 the field type must be specified in the "type" data attribute.');
}
}
if(typeof type != 'undefined' && (typeof onClick == 'undefined' || onClick == '')){
jQuery(this).click(function(){
StartAddField(type);
})
}
});
jQuery('#gform_fields').sortable({
cancel: '#field_settings',
handle: '.gfield_admin_icons',
start: function(event, ui){
gforms_dragging = ui.item[0].id;
},
tolerance: "pointer",
over: function( event, ui ) {
jQuery( '#no-fields').hide();
if(ui.helper.hasClass('ui-draggable-dragging')){
ui.helper.data('original_width', ui.helper.width())
ui.helper.data('original_height', ui.helper.height())
ui.helper.width(ui.sender.width()-25);
ui.helper.height(ui.placeholder.height());
} else {
var h = ui.helper.height();
if(h > 300){
h = 300;
}
ui.placeholder.height(h);
}
},
out: function( event, ui ) {
if ( jQuery('#gform_fields li').length === 1 ) {
jQuery( '#no-fields' ).show();
}
if(ui.helper && ui.helper.hasClass('ui-draggable-dragging')){
ui.helper.width(ui.helper.data('original_width'));
ui.helper.height(ui.helper.data('original_height'));
}
},
placeholder: "field-drop-zone",
beforeStop: function( event, ui ) {
jQuery('#gform_fields').height('100%');
var type = ui.helper.data('type');
if(typeof type == 'undefined'){
return;
}
var li = "
";
var index = ui.item.index();
ui.item.replaceWith( li );
StartAddField(type, index);
}
});
jQuery('.field_type input').draggable({
connectToSortable: "#gform_fields",
helper: function(){
return jQuery(this).clone(true);
},
revert: 'invalid',
cancel: false,
appendTo: '#wpbody',
containment: 'document',
start: function(event, ui){
if(gf_vars["currentlyAddingField"] == true){
return false;
}
}
});
jQuery('#field_choices, #field_columns').sortable({
axis: 'y',
handle: '.field-choice-handle',
update: function(event, ui){
var fromIndex = ui.item.data("index");
var toIndex = ui.item.index();
MoveFieldChoice(fromIndex, toIndex);
}
});
jQuery('.field_input_choices').sortable({
axis: 'y',
handle: '.field-choice-handle',
update: function(event, ui){
var fromIndex = ui.item.data("index");
var toIndex = ui.item.index();
var inputId = ui.item.data("input_id");
var $ul = ui.item.parent();
MoveInputChoice($ul, inputId, fromIndex, toIndex);
}
});
MakeNoFieldsDroppable();
if(typeof gf_global['view'] == 'undefined' || gf_global['view'] != 'settings')
InitializeForm(form);
//for backwards compatibility <1.7
jQuery(document).trigger('gform_load_form_settings', [form]);
SetupUnsavedChangesWarning();
//log deprecated events
if (window.console){
var doc = jQuery(document)[0];
var data = jQuery.hasData(doc) && jQuery._data(doc);
if (data){
var deprecatedEvents = new Array('gform_load_form_settings');
for (var e in data.events) {
if (jQuery.inArray(e, deprecatedEvents) !== -1) {
console.log('Gravity Forms API warning: The jQuery event "' + e + '" is deprecated on this page since version 1.7');
}
}
}
}
// store original value of input before change
jQuery(document).on('focus', '#field_choices input.field-choice-text, #field_choices input.field-choice-value', function(){
jQuery(this).data('previousValue', jQuery(this).val());
});
InitializeFieldSettings();
});
function MakeNoFieldsDroppable() {
jQuery('#no-fields').droppable({
over: function (event, ui) {
jQuery('#gform_fields').height(jQuery( this ).height());
jQuery( this ).hide();
},
out : function (event, ui) {
jQuery( this ).show();
}
});
}
function CloseStatus(){
jQuery('.updated_base, .error_base').slideUp();
}
function InitializeFieldSettings(){
jQuery('#field_max_file_size').on('input propertychange', function(){
var $this = jQuery(this),
inputValue = parseInt($this.val());
var value = inputValue ? inputValue : '';
SetFieldProperty('maxFileSize', value);
}).on('change', function(){
var field = GetSelectedField();
var value = field.maxFileSize ? field.maxFileSize : '';
var maskedValue = value === '' ? '' : value + "MB";
this.value = maskedValue;
});
jQuery(document).on('input propertychange', '.field_default_value', function(){
SetFieldDefaultValue(this.value);
});
jQuery(document).on('input propertychange', '.field_placeholder, .field_placeholder_textarea', function(){
SetFieldPlaceholder(this.value);
});
jQuery('#field_choices').on('change' , '.field-choice-price', function() {
var field = GetSelectedField();
var i = jQuery(this).parent('li').index();
var price = field.choices[i].price;
this.value = price;
});
jQuery('.field_input_choices')
.on('input propertychange', 'input', function () {
var $li = jQuery(this).closest('li'),
index = $li.data('index'),
inputId = $li.data('input_id'),
value = $li.find('.field-choice-value').val(),
text = $li.find('.field-choice-text').val();
SetInputChoice(inputId, index, value, text);
})
.on('click keypress', 'input:radio, input:checkbox', function () {
var $li = jQuery(this).closest('li'),
index = $li.data('index'),
inputId = $li.data('input_id'),
value = $li.find('.field-choice-value').val(),
text = $li.find('.field-choice-text').val();
SetInputChoice(inputId, index, value, text);
})
.on('click keypress', '.field-input-insert-choice', function () {
var $li = jQuery(this).closest('li'),
$ul = $li.closest('ul'),
index = $li.data('index'),
inputId = $li.data('input_id');
InsertInputChoice($ul, inputId, index + 1);
})
.on('click keypress', '.field-input-delete-choice', function () {
var $li = jQuery(this).closest('li'),
$ul = $li.closest('ul'),
index = $li.data('index'),
inputId = $li.data('input_id');
DeleteInputChoice($ul, inputId, index);
});
jQuery('.field_input_choice_values_enabled').on('click keypress', function(){
var $container = jQuery(this).parent().siblings('.gfield_settings_input_choices_container');
ToggleInputChoiceValue($container, this.checked);
var $ul = $container.find('ul');
SetInputChoices($ul);
});
jQuery('.input_placeholders_setting')
.on('input propertychange', '.input_placeholder', function(){
var inputId = jQuery(this).closest('.input_placeholder_row').data('input_id');
SetInputPlaceholder(this.value, inputId);
})
.on('input propertychange', '#field_single_placeholder', function(){
SetFieldPlaceholder(this.value);
});
//add onclick event to disable placeholder when the rich text editor is on
jQuery('#field_rich_text_editor').on('click keypress', function(){
var field = GetSelectedField();
if (this.checked ){
var disablePlaceHolder = true;
//see if a field is using this in conditional logic and warn it will not work with rich text editor
if ( HasConditionalLogicDependency(field.id,field.value) ){
if ( ! confirm(gf_vars.conditionalLogicRichTextEditorWarning) ){
//user cancelled setting rte, uncheck
jQuery('#field_rich_text_editor').prop('checked', false);
disablePlaceHolder = false;
}
}
if (disablePlaceHolder){
jQuery('#field_placeholder, #field_placeholder_textarea').prop('disabled', true);
jQuery('span#placeholder_warning').css('display','block');
}
}
else{
jQuery('#field_placeholder, #field_placeholder_textarea').prop('disabled', false);
jQuery('span#placeholder_warning').css('display','none');
}
});
jQuery('.prepopulate_field_setting')
.on('input propertychange', '.field_input_name', function(){
var inputId = jQuery(this).closest('.field_input_name_row').data('input_id');
SetInputName(this.value, inputId);
})
.on('input propertychange', '#field_input_name', function(){
SetInputName(this.value);
});
jQuery('.custom_inputs_setting, .custom_inputs_sub_setting, .sub_labels_setting')
.on('click keypress', '.input_active_icon', function(){
var inputId = jQuery(this).closest('.field_custom_input_row').data('input_id');
ToggleInputHidden(this, inputId);
})
.on('input propertychange', '.field_custom_input_default_label', function(){
var inputId = jQuery(this).closest('.field_custom_input_row').data('input_id');
SetInputCustomLabel(this.value, inputId);
})
.on('input propertychange', '#field_single_custom_label', function(){
SetInputCustomLabel(this.value);
});
jQuery('.default_input_values_setting')
.on('input propertychange', '.default_input_value', function(){
var inputId = jQuery(this).closest('.default_input_value_row').data('input_id');
SetInputDefaultValue(this.value, inputId);
})
.on('input', '#field_single_default_value', function(){
SetFieldDefaultValue(this.value);
});
jQuery('.choices_setting, .columns_setting')
.on('input propertychange', '.field-choice-input', function(e){
var $this = jQuery(this);
var li = $this.closest('li.field-choice-row');
var inputType = li.data('input_type');
var i = li.data('index');
SetFieldChoice( inputType, i);
if($this.hasClass('field-choice-text') || $this.hasClass('field-choice-value')){
CheckChoiceConditionalLogicDependency(this);
e.stopPropagation();
}
});
jQuery('#field_enable_copy_values_option').on('click keypress', function(){
SetCopyValuesOptionProperties(this.checked);
ToggleCopyValuesOption(false);
if(this.checked == false){
ToggleCopyValuesActivated(false);
}
});
jQuery('#field_copy_values_option_label').on('input propertychange', function(){
SetCopyValuesOptionLabel(this.value);
});
jQuery('#field_copy_values_option_field').on('change', function(){
SetFieldProperty('copyValuesOptionField', jQuery(this).val());
});
jQuery('#field_copy_values_option_default').on('change', function(){
SetFieldProperty('copyValuesOptionDefault', this.checked == true ? 1 : 0);
ToggleCopyValuesActivated(this.checked);
});
jQuery('#field_label').on('input propertychange', function(){
SetFieldLabel(this.value);
});
jQuery('#field_description').on('input propertychange', function(){
SetFieldDescription(this.value);
});
jQuery('#field_content').on('input propertychange', function(){
SetFieldProperty('content', this.value);
});
jQuery('#next_button_text_input, #next_button_image_url').on('input propertychange', function(){
SetPageButton('next');
});
jQuery('#previous_button_image_url, #previous_button_text_input').on('input propertychange', function(){
SetPageButton('previous');
});
jQuery('#field_custom_field_name_text').on('input propertychange', function(){
SetFieldProperty('postCustomFieldName', this.value);
});
jQuery('#field_customfield_content_template').on('input propertychange', function(){
SetCustomFieldTemplate();
});
jQuery('#gfield_calendar_icon_url').on('input propertychange', function(){
SetFieldProperty('calendarIconUrl', this.value);
});
jQuery('#field_max_files').on('input propertychange', function(){
SetFieldProperty('maxFiles', this.value);
});
jQuery('#field_maxrows').on('input propertychange', function(){
SetFieldProperty('maxRows', this.value);
});
jQuery('#field_mask_text').on('input propertychange', function(){
SetFieldProperty('inputMaskValue', this.value);
});
jQuery('#field_file_extension').on('input propertychange', function(){
SetFieldProperty('allowedExtensions', this.value);
});
jQuery('#field_maxlen')
.on('keypress', function(event){
return ValidateKeyPress(event, GetMaxLengthPattern(), false)
})
.on('change keyup', function(){
SetMaxLength(this);
});
jQuery('#field_range_min').on('input propertychange', function(){
SetFieldProperty('rangeMin', this.value);
});
jQuery('#field_range_max').on('input propertychange', function(){
SetFieldProperty('rangeMax', this.value);
});
jQuery('#field_calculation_formula').on('input propertychange', function(){
SetFieldProperty('calculationFormula', this.value.trim());
});
jQuery('#field_error_message').on('input propertychange', function(){
SetFieldProperty('errorMessage', this.value);
});
jQuery('#field_css_class').on('input propertychange', function(){
SetFieldProperty('cssClass', this.value);
});
jQuery('#field_admin_label').on('input propertychange', function(){
SetFieldProperty('adminLabel', this.value);
});
jQuery('#field_add_icon_url').on('input propertychange', function(){
SetFieldProperty('addIconUrl', this.value);
});
jQuery('#field_delete_icon_url').on('input propertychange', function(){
SetFieldProperty('deleteIconUrl', this.value);
});
}
function InitializeForm(form){
if ( form.fields.length > 0 ) {
jQuery( '#no-fields').detach().appendTo( '#no-fields-stash');
}
if(form.lastPageButton && form.lastPageButton.type == "image")
jQuery("#last_page_button_image").prop("checked", true);
else if(!form.lastPageButton || form.lastPageButton.type != "image")
jQuery("#last_page_button_text").prop("checked", true);
jQuery("#last_page_button_text_input").val(form.lastPageButton ? form.lastPageButton.text : gf_vars["previousLabel"]);
jQuery("#last_page_button_image_url").val(form.lastPageButton ? form.lastPageButton.imageUrl : "");
TogglePageButton('last_page', true);
if(form.postStatus)
jQuery('#field_post_status').val(form.postStatus);
if(form.postAuthor)
jQuery('#field_post_author').val(form.postAuthor);
//default to checked
if(form.useCurrentUserAsAuthor == undefined)
form.useCurrentUserAsAuthor = true;
jQuery('#gfield_current_user_as_author').prop('checked', form.useCurrentUserAsAuthor ? true : false);
if(form.postCategory)
jQuery('#field_post_category').val(form.postCategory);
if(form.postFormat)
jQuery('#field_post_format').val(form.postFormat);
if(form.postContentTemplateEnabled){
jQuery('#gfield_post_content_enabled').prop("checked", true);
jQuery('#field_post_content_template').val(form.postContentTemplate);
}
else{
jQuery('#gfield_post_content_enabled').prop("checked", false);
jQuery('#field_post_content_template').val("");
}
TogglePostContentTemplate(true);
if(form.postTitleTemplateEnabled){
jQuery('#gfield_post_title_enabled').prop("checked", true);
jQuery('#field_post_title_template').val(form.postTitleTemplate);
}
else{
jQuery('#gfield_post_title_enabled').prop("checked", false);
jQuery('#field_post_title_template').val("");
}
TogglePostTitleTemplate(true);
jQuery("#gform_last_page_settings").bind("click", function(){FieldClick(this);});
jQuery("#gform_pagination").bind("click", function(){FieldClick(this);});
jQuery(".gfield").bind("click", function(){FieldClick(this);});
var paginationType = form["pagination"] && form["pagination"]["type"] ? form["pagination"]["type"] : "percentage";
var paginationSteps = paginationType == "steps" ? true : false;
var paginationPercentage = paginationType == "percentage" ? true : false;
var paginationNone = paginationType == "none" ? true : false;
if(paginationSteps)
jQuery("#pagination_type_steps").prop("checked", true);
else if(paginationPercentage)
jQuery("#pagination_type_percentage").prop("checked", true);
else if(paginationNone)
jQuery("#pagination_type_none").prop("checked", true);
jQuery("#first_page_css_class").val(form["firstPageCssClass"]);
jQuery("#field_settings, #last_page_settings, #pagination_settings").tabs({selected:0});
TogglePageBreakSettings();
InitPaginationOptions(true);
InitializeFields();
}
function LoadFieldSettings(){
//loads settings
field = GetSelectedField();
var inputType = GetInputType(field);
jQuery("#field_label").val(field.label);
if(field.type == "html"){
jQuery(".tooltip_form_field_label_html").show();
jQuery(".tooltip_form_field_label").hide();
}
else{
jQuery(".tooltip_form_field_label_html").hide();
jQuery(".tooltip_form_field_label").show();
}
jQuery("#field_admin_label").val(field.adminLabel);
jQuery("#field_content").val(field["content"] == undefined ? "" : field["content"]);
jQuery("#post_custom_field_type").val(field.inputType);
jQuery("#post_tag_type").val(field.inputType);
jQuery("#field_size").val(field.size);
jQuery("#field_required").prop("checked", field.isRequired == true ? true : false);
jQuery("#field_margins").prop("checked", field.disableMargins == true ? true : false);
jQuery("#field_no_duplicates").prop("checked", field.noDuplicates == true ? true : false);
jQuery("#field_default_value").val(field.defaultValue == undefined ? "" : field.defaultValue);
jQuery("#field_default_value_textarea").val(field.defaultValue == undefined ? "" : field.defaultValue);
jQuery("#field_description").val(field.description == undefined ? "" : field.description);
jQuery("#field_css_class").val(field.cssClass == undefined ? "" : field.cssClass);
jQuery("#field_range_min").val( field.rangeMin == undefined || field.rangeMin == false ? "" : field.rangeMin);
jQuery("#field_range_max").val(field.rangeMax == undefined || field.rangeMax == false? "" : field.rangeMax);
jQuery("#field_name_format").val(field.nameFormat);
jQuery('#field_force_ssl').prop('checked', field.forceSSL ? true : false);
jQuery('#credit_card_style').val(field.creditCardStyle ? field.creditCardStyle : "style1");
if (field.useRichTextEditor){
//disable the placeholder when the rich text editor is checked, show message indicating why disabled
jQuery('#field_placeholder, #field_placeholder_textarea').prop('disabled', true);
jQuery('span#placeholder_warning').css('display','block');
//jQuery('span#placeholder_warning').text('Placeholder text is not supported when using the Rich Text Editor.');
}
else{
jQuery('#field_placeholder, #field_placeholder_textarea').prop('disabled', false);
jQuery('span#placeholder_warning').css('display','none');
//jQuery('span#placeholder_warning').text('');
}
if(typeof field.labelPlacement == 'undefined'){
field.labelPlacement = '';
}
if(typeof field.descriptionPlacement == 'undefined'){
field.descriptionPlacement = '';
}
if(typeof field.subLabelPlacement == 'undefined'){
field.subLabelPlacement = '';
}
jQuery("#field_label_placement").val(field.labelPlacement);
jQuery("#field_description_placement").val(field.descriptionPlacement);
jQuery("#field_sub_label_placement").val(field.subLabelPlacement);
if((field.labelPlacement == 'left_label' || field.labelPlacement == 'right_label' || (field.labelPlacement == '' && form.labelPlacement != 'top_label'))){
jQuery('#field_description_placement_container').hide();
} else {
jQuery('#field_description_placement_container').show();
}
// field.adminOnly is the old property which stored the visibility setting; only reference if field.visibility is not set
SetFieldVisibility( field.visibility, true );
if(typeof field.placeholder == 'undefined'){
field.placeholder = '';
}
jQuery("#field_placeholder, #field_placeholder_textarea").val(field.placeholder);
jQuery("#field_file_extension").val(field.allowedExtensions == undefined ? "" : field.allowedExtensions);
jQuery("#field_multiple_files").prop("checked", field.multipleFiles ? true : false);
jQuery("#field_max_files").val(field.maxFiles ? field.maxFiles : "" );
jQuery("#field_max_file_size").val(field.maxFileSize ? field.maxFileSize + "MB" : "" );
ToggleMultiFile(true);
jQuery("#field_phone_format").val(field.phoneFormat);
jQuery("#field_error_message").val(field.errorMessage);
jQuery('#field_other_choice').prop('checked', field.enableOtherChoice ? true : false);
jQuery('#field_add_icon_url').val(field.addIconUrl ? field.addIconUrl : "");
jQuery('#field_delete_icon_url').val(field.deleteIconUrl ? field.deleteIconUrl : "");
jQuery('#gfield_enable_enhanced_ui').prop('checked', field.enableEnhancedUI ? true : false);
jQuery("#gfield_password_strength_enabled").prop("checked", field.passwordStrengthEnabled == true ? true : false);
jQuery("#gfield_min_strength").val(field.minPasswordStrength == undefined ? "" : field.minPasswordStrength);
TogglePasswordStrength(true);
jQuery("#gfield_email_confirm_enabled").prop("checked", field.emailConfirmEnabled == true ? true : false);
//Creating blank item for number format to existing number fields so that user is not force into a format (for backwards compatibility)
if(!field.numberFormat){
if(jQuery("#field_number_format #field_number_format_blank").length == 0){
jQuery("#field_number_format").prepend("");
}
}
else
jQuery("#field_number_format_blank").remove();
jQuery("#field_number_format").val(field.numberFormat ? field.numberFormat : "");
// Handle calculation options
// hide rounding option for calculation product fields
if (field.type == 'product' && field.inputType == 'calculation') {
field.enableCalculation = true;
jQuery('.field_calculation_rounding').hide();
jQuery('.field_enable_calculation').hide();
} else {
jQuery('.field_enable_calculation').show();
if (field.type == 'number' && field.numberFormat == "currency") {
jQuery('.field_calculation_rounding').hide();
} else {
jQuery('.field_calculation_rounding').show();
}
}
jQuery('#field_enable_calculation').prop('checked', field.enableCalculation ? true : false);
ToggleCalculationOptions(field.enableCalculation, field);
jQuery('#field_calculation_formula').val(field.calculationFormula);
var rounding = gformIsNumber(field.calculationRounding) ? field.calculationRounding : "norounding";
jQuery('#field_calculation_rounding').val(rounding);
jQuery("#option_field_type").val(field.inputType);
var productFieldType = jQuery("#product_field_type");
productFieldType.val(field.inputType);
if(has_entry(field.id)){
productFieldType.prop("disabled", true);
} else{
productFieldType.prop("disabled", false);
}
jQuery("#donation_field_type").val(field.inputType);
jQuery("#quantity_field_type").val(field.inputType);
if(field["inputType"] == "hiddenproduct" || field["inputType"] == "singleproduct" || field["inputType"] == "singleshipping" || field["inputType"] == "calculation"){
var basePrice = field.basePrice == undefined ? "" : field.basePrice;
jQuery("#field_base_price").val(field.basePrice == undefined ? "" : field.basePrice);
SetBasePrice(basePrice);
}
jQuery("#shipping_field_type").val(field.inputType);
jQuery("#field_disable_quantity").prop("checked", field.disableQuantity == true ? true : false);
SetDisableQuantity(field.disableQuantity == true);
var isPassword = field.enablePasswordInput ? true : false
jQuery("#field_password").prop("checked", isPassword ? true : false);
jQuery("#field_maxlen").val(typeof field.maxLength == "undefined" ? "" : field.maxLength);
jQuery("#field_maxrows").val(typeof field.maxRows == "undefined" ? "" : field.maxRows);
var addressType = field.addressType == undefined ? "international" : field.addressType;
jQuery('#field_address_type').val(addressType);
if(field.type == 'address'){
field = UpgradeAddressField(field);
}
if(field.type == 'email' || field.inputType == 'email' ){
field = UpgradeEmailField(field);
}
if(field.type == 'password' || field.inputType == 'password' ){
field = UpgradePasswordField(field);
}
var defaultState = field.defaultState == undefined ? "" : field.defaultState;
var defaultProvince = field.defaultProvince == undefined ? "" : field.defaultProvince; //for backwards compatibility
var defaultStateProvince = addressType == "canadian" && defaultState == "" ? defaultProvince : defaultState;
jQuery("#field_address_default_state_" + addressType).val(defaultStateProvince);
jQuery("#field_address_default_country_" + addressType).val(field.defaultCountry == undefined ? "" : field.defaultCountry);
SetAddressType(true);
jQuery("#gfield_display_title").prop("checked", field.displayTitle == true ? true : false);
jQuery("#gfield_display_caption").prop("checked", field.displayCaption == true ? true : false);
jQuery("#gfield_display_description").prop("checked", field.displayDescription == true ? true : false);
var customFieldExists = CustomFieldExists(field.postCustomFieldName);
jQuery("#field_custom_field_name_select")[0].selectedIndex = 0;
jQuery("#field_custom_field_name_text").val("");
if(customFieldExists)
jQuery("#field_custom_field_name_select").val(field.postCustomFieldName);
else
jQuery("#field_custom_field_name_text").val(field.postCustomFieldName);
if(customFieldExists)
jQuery("#field_custom_existing").prop("checked", true);
else
jQuery("#field_custom_new").prop("checked", true);
ToggleCustomField(true);
jQuery('#gfield_customfield_content_enabled').prop("checked", field.customFieldTemplateEnabled ? true : false);
jQuery('#field_customfield_content_template').val(field.customFieldTemplateEnabled ? field.customFieldTemplate : "");
ToggleCustomFieldTemplate(true);
if(field.displayAllCategories)
jQuery("#gfield_category_all").prop("checked", true);
else
jQuery("#gfield_category_select").prop("checked", true);
ToggleCategory(true);
jQuery('#gfield_post_category_initial_item_enabled').prop("checked", field.categoryInitialItemEnabled ? true : false);
jQuery('#field_post_category_initial_item').val(field.categoryInitialItemEnabled ? field.categoryInitialItem : "");
TogglePostCategoryInitialItem(true);
var hasPostFeaturedImage = field.postFeaturedImage ? true : false;
jQuery('#gfield_featured_image').prop('checked', hasPostFeaturedImage);
var isStandardMask = IsStandardMask(field.inputMaskValue);
jQuery("#field_input_mask").prop('checked', field.inputMask ? true : false);
if(isStandardMask){
jQuery("#field_mask_standard").prop("checked", true);
jQuery("#field_mask_select").val(field.inputMaskValue);
}
else{
jQuery("#field_mask_custom").prop("checked", true);
jQuery("#field_mask_text").val(field.inputMaskValue);
}
ToggleInputMask(true);
ToggleInputMaskOptions(true);
if(inputType == "creditcard"){
field = UpgradeCreditCardField(field);
if(!field.creditCards || field.creditCards.length <= 0)
field.creditCards = ['amex', 'visa', 'discover', 'mastercard'];
for(i in field.creditCards) {
if(!field.creditCards.hasOwnProperty(i))
continue;
jQuery('#field_credit_card_' + field.creditCards[i]).prop('checked', true);
}
}
if(inputType == 'date'){
field = UpgradeDateField(field);
}
if(inputType == 'time'){
field = UpgradeTimeField(field);
}
CreateDefaultValuesUI(field);
CreatePlaceholdersUI(field);
CreateCustomizeInputsUI(field);
CreateInputLabelsUI(field);
if(!field["dateType"] && inputType == "date"){
field["dateType"] = "datepicker";
}
jQuery("#field_date_input_type").val(field["dateType"]);
jQuery("#gfield_calendar_icon_url").val(field["calendarIconUrl"] == undefined ? "" : field["calendarIconUrl"]);
jQuery('#field_date_format').val(field['dateFormat'] == "dmy" ? "dmy" : field['dateFormat']);
jQuery('#field_time_format').val(field['timeFormat'] == "24" ? "24" : "12");
SetCalendarIconType(field["calendarIconType"], true);
ToggleDateCalendar(true);
LoadDateInputs();
LoadTimeInputs();
field.allowsPrepopulate = field.allowsPrepopulate ? true : false; //needed when property is undefined
field.useRichTextEditor = field.useRichTextEditor ? true : false;
jQuery("#field_prepopulate").prop("checked", field.allowsPrepopulate ? true : false);
jQuery("#field_rich_text_editor").prop("checked", field.useRichTextEditor ? true : false);
if(has_entry(field.id)){
jQuery('#field_rich_text_editor').prop("disabled", true);
} else{
jQuery('#field_rich_text_editor').prop("disabled", false);
}
CreateInputNames(field);
ToggleInputName(true);
var canHaveConditionalLogic = GetFirstRuleField() > 0;
if(field["type"] == "page"){
LoadFieldConditionalLogic(canHaveConditionalLogic, "next_button");
LoadFieldConditionalLogic(canHaveConditionalLogic, "page");
}
else{
LoadFieldConditionalLogic(canHaveConditionalLogic, "field");
}
jQuery("#field_enable_copy_values_option").prop("checked", field.enableCopyValuesOption == true ? true : false);
jQuery("#field_copy_values_option_default").prop("checked", field.copyValuesOptionDefault == true ? true : false);
var copyValueOptions = GetCopyValuesFieldsOptions(field.copyValuesFieldId, field);
if(copyValueOptions.length>0){
jQuery("#field_enable_copy_values_option").prop("disabled", false);
jQuery("#field_copy_values_disabled").hide();
jQuery("#field_copy_values_option_field").html(copyValueOptions);
} else {
jQuery("#field_enable_copy_values_option").prop("disabled", true);
jQuery("#field_copy_values_disabled").show();
}
ToggleCopyValuesOption(field.enableCopyValuesOption, true);
if(field.nextButton){
if(field.nextButton.type == "image")
jQuery("#next_button_image").prop("checked", true);
else
jQuery("#next_button_text").prop("checked", true);
jQuery("#next_button_text_input").val(field.nextButton.text);
jQuery("#next_button_image_url").val(field.nextButton.imageUrl);
}
if(field.previousButton){
if(field.previousButton.type == "image")
jQuery("#previous_button_image").prop("checked", true);
else
jQuery("#previous_button_text").prop("checked", true);
jQuery("#previous_button_text_input").val(field.previousButton.text);
jQuery("#previous_button_image_url").val(field.previousButton.imageUrl);
}
TogglePageButton("next", true);
TogglePageButton("previous", true);
jQuery(".gfield_category_checkbox").each(function(){
if(field["choices"]){
for(var i=0; ireCAPTCHA');
}
}
//Display custom field template for texareas and text fields
if(field["type"] == "post_custom_field" && field["inputType"] == "textarea" || field["inputType"] == "text"){
jQuery(".customfield_content_template_setting").show();
}
if(field["type"] == "name"){
if(typeof field["nameFormat"] == 'undefined' || field["nameFormat"] != "advanced"){
field = MaybeUpgradeNameField(field);
} else {
SetUpAdvancedNameField();
}
if(field["nameFormat"] == "simple"){
jQuery(".default_value_setting").show();
jQuery(".size_setting").show();
jQuery('#field_name_fields_container').html('').hide();
jQuery('.sub_label_placement_setting').hide();
jQuery('.name_prefix_choices_setting').hide();
jQuery('.name_format_setting').hide();
jQuery('.name_setting').hide();
jQuery('.default_input_values_setting').hide();
jQuery('.default_value_setting').show();
} else if(field["nameFormat"] == "extended") {
jQuery('.name_format_setting').show();
jQuery('.name_prefix_choices_setting').hide();
jQuery('.name_setting').hide();
jQuery('.default_input_values_setting').hide();
jQuery('.input_placeholders_setting').hide();
}
}
// if a product or option field, hide "other choice" setting
if(jQuery.inArray(field['type'], ['product', 'option', 'shipping']) != -1) {
jQuery(".other_choice_setting").hide();
}
// if calc enabled, hide range
if(field.enableCalculation) {
jQuery('li.range_setting').hide();
}
if(field.type == 'text') {
if(field.inputMask) {
jQuery(".maxlen_setting").hide();
} else {
jQuery(".maxlen_setting").show();
}
}
if(field.type == 'product') {
if(field.inputType == 'singleproduct') {
jQuery(".admin_label_setting").hide();
} else {
jQuery(".admin_label_setting").show();
}
}
if(inputType == "date"){
ToggleDateSettings(field);
}
if(inputType == "email"){
ToggleEmailSettings(field);
}
jQuery(document).trigger('gform_load_field_settings', [field, form]);
jQuery("#field_settings").appendTo(".field_selected");
jQuery("#field_settings").tabs("option", "active", 0);
ShowSettings("field_settings");
gform.doAction('gform_post_load_field_settings', [field, form]);
SetProductField(field);
var tabsToHide = [];
// Hide the appearance tab if it has no settings
var $appearanceSettings = jQuery("#gform_tab_3 li.field_setting").filter(function() {
return jQuery(this).is(':hidden') && jQuery(this).css('display') != 'none';
});
if($appearanceSettings.length == 0){
tabsToHide.push(1);
}
// Hide the advanced tab if it has no settings
var $advancedSettings = jQuery("#gform_tab_2 li.field_setting").filter(function() {
return jQuery(this).is(':hidden') && jQuery(this).css('display') != 'none';
});
if($advancedSettings.length == 0){
tabsToHide.push(2);
}
if(tabsToHide.length > 0){
jQuery("#field_settings").tabs({disabled:tabsToHide});
} else {
jQuery("#field_settings").tabs({disabled:[]});
}
Placeholders.enable();
}
function ToggleDateSettings(field){
var isDateField = field["dateType"] == "datefield";
var isDatePicker = field["dateType"] == "datepicker";
var isDateDropDown = field["dateType"] == "datedropdown";
jQuery('.placeholder_setting').toggle(isDatePicker);
jQuery('.default_value_setting').toggle(isDatePicker);
jQuery('.sub_label_placement_setting').toggle(isDateField);
jQuery('.sub_labels_setting').toggle(isDateField);
jQuery('.default_input_values_setting').toggle(isDateDropDown || isDateField);
jQuery('.input_placeholders_setting').toggle(isDateDropDown || isDateField);
}
function SetUpAdvancedNameField(){
field = GetSelectedField();
jQuery('.name_format_setting').hide();
jQuery('.name_setting').show();
jQuery('.name_prefix_choices_setting').show();
var nameFields = GetCustomizeInputsUI(field);
jQuery('#field_name_fields_container').html(nameFields).show();
var prefixInput = GetInput(field, field.id + '.2');
var prefixChoices = GetInputChoices(prefixInput);
jQuery('#field_prefix_choices').html(prefixChoices);
ToggleNamePrefixUI(!prefixInput.isHidden);
jQuery('.name_setting .custom_inputs_setting').on('click', '.input_active_icon', function(){
var inputId = jQuery(this).data('input_id');
if(inputId.toString().indexOf(".2") >=0){
var isActive = this.src.indexOf("active1.png") >=0;
ToggleNamePrefixUI(isActive);
}
});
jQuery('.default_value_setting').hide();
jQuery('.default_input_values_setting').show();
jQuery('.input_placeholders_setting').show();
CreateDefaultValuesUI(field);
CreatePlaceholdersUI(field);
CreateInputNames(field);
}
function GetCopyValuesFieldsOptions(selectedFieldId, currentField){
var options = [], label, field, option, currentType = GetInputType(currentField), selected;
for(var i = 0; i < form.fields.length;i++){
field = form.fields[i];
if(field.id != currentField.id && GetInputType(field) == currentType && !field.enableCopyValuesOption){
label = GetLabel(field);
selected = selectedFieldId == field.id ? 'selected="selected"' : '';
option = '';
options.push(option);
}
}
return options.join('');
}
function ToggleNamePrefixUI(isActive){
jQuery('.name_prefix_choices_setting').toggle(isActive);
}
function TogglePageBreakSettings(){
if(HasPageBreak()){
jQuery("#gform_last_page_settings").show();
jQuery("#gform_pagination").show();
}
else
{
jQuery("#gform_last_page_settings").hide();
jQuery("#gform_pagination").hide();
}
}
function SetDisableQuantity(isChecked){
SetFieldProperty('disableQuantity', isChecked);
if(isChecked)
jQuery(".field_selected .ginput_quantity_label, .field_selected .ginput_quantity").hide();
else
jQuery(".field_selected .ginput_quantity_label, .field_selected .ginput_quantity").show();
}
function SetBasePrice(number){
if(!number)
number = 0;
var currency = GetCurrentCurrency();
var price = currency.toMoney(number);
if(price == false)
price = 0;
jQuery("#field_base_price").val(price);
SetFieldProperty('basePrice', price);
jQuery(".field_selected .ginput_product_price, .field_selected .ginput_shipping_price").html(price);
jQuery(".field_selected .ginput_amount").val(price);
}
function ChangeAddressType(){
field = GetSelectedField();
if(field["type"] != "address")
return;
var addressType = jQuery("#field_address_type").val();
var countryInput = GetInput(field, field.id + ".6");
var country = jQuery("#field_address_country_" + addressType).val();
if(country == ''){
countryInput.isHidden = false
} else {
countryInput.isHidden = true;
}
SetAddressType(false);
}
function SetAddressType(isInit){
field = GetSelectedField();
if(field["type"] != "address")
return;
SetAddressProperties();
jQuery(".gfield_address_type_container").hide();
var speed = isInit ? "" : "slow";
jQuery("#address_type_container_" + jQuery("#field_address_type").val()).show(speed);
CreatePlaceholdersUI(field);
}
function UpdateAddressFields(){
var addressType = jQuery("#field_address_type").val();
field = GetSelectedField();
var address_fields_str = GetCustomizeInputsUI(field);
jQuery("#field_address_fields_container").html(address_fields_str);
//change zip label
var zipInput = GetInput(field, field.id + ".5");
var zip_label = jQuery("#field_address_zip_label_" + addressType).val();
jQuery("#field_custom_input_default_label_" + field.id + "_5").text(zip_label);
jQuery("#field_custom_input_label_" + field.id + "\\.5").attr("placeholder", zip_label);
if(!zipInput.customLabel){
jQuery(".field_selected #input_" + field["id"] + "_5_label").html(zip_label);
}
//change state label
var stateInput = GetInput(field, field.id + ".4");
var state_label = jQuery("#field_address_state_label_" + addressType).val();
jQuery("#field_custom_input_default_label_" + field.id + "_4").text(state_label);
jQuery("#field_custom_input_label_" + field.id + "\\.4").attr("placeholder", state_label);
if(!stateInput.customLabel){
jQuery(".field_selected #input_" + field["id"] + "_4_label").html(state_label);
}
//hide country drop down if this address type applies to a specific country
var countryInput = GetInput(field, field.id + ".6");
var hide_country = jQuery("#field_address_country_" + addressType).val() != "" || countryInput.isHidden;
if(hide_country){
jQuery('.field_selected #input_' + field.id + '_6_container').hide();
jQuery('.field_custom_input_row_input_' + field.id + '_6').hide();
} else {
//selects default country and displays drop down
jQuery(".field_selected #input_" + field.id + "_6").val(jQuery("#field_address_default_country_" + addressType).val());
jQuery(".field_selected #input_" + field.id + "_6_container").show();
jQuery('.field_selected .field_custom_input_row_input_' + field.id + '_6').show();
}
var has_state_drop_down = jQuery("#field_address_has_states_" + addressType).val() != "";
if(has_state_drop_down){
jQuery(".field_selected .state_text").hide();
var selected_state = jQuery("#field_address_default_state_" + addressType).val()
var state_dropdown = jQuery(".field_selected .state_dropdown");
state_dropdown.append(jQuery('').val(selected_state).html(selected_state));
state_dropdown.val(selected_state).show();
}
else{
jQuery(".field_selected .state_dropdown").hide();
jQuery(".field_selected .state_text").show();
}
}
function SetAddressProperties(){
field = GetSelectedField();
var addressType = jQuery("#field_address_type").val();
SetFieldProperty("addressType", addressType);
SetFieldProperty("defaultState", jQuery("#field_address_default_state_" + addressType).val());
SetFieldProperty("defaultProvince",""); //for backwards compatibility
//Only save the hide country property for address types that have that option (ones with no country)
var country = jQuery("#field_address_country_" + addressType).val();
if(country == ""){
country = jQuery("#field_address_default_country_" + addressType).val();
}
SetFieldProperty("defaultCountry",country);
UpdateAddressFields();
}
function MaybeUpgradeNameField(field){
if(typeof field.nameFormat == 'undefined' || field.nameFormat == '' || field.nameFormat == 'normal' || (field.nameFormat == 'simple' && !has_entry(field.id))){
field = UpgradeNameField(field, true, true, true);
}
return field;
}
function UpgradeNameField(field, prefixHiddex, middleHidden, suffixHidden){
field.nameFormat = 'advanced';
field.inputs = MergeInputArrays(GetAdvancedNameFieldInputs(field, prefixHiddex, middleHidden, suffixHidden), field.inputs);
RefreshSelectedFieldPreview(function(){
SetUpAdvancedNameField();
});
return field;
}
function UpgradeDateField(field){
if(field.type != 'date' && field.inputType != 'date' ){
return field;
}
if(typeof field.dateType != 'undefined' && field.dateType != 'datepicker' && !field.inputs){
field.inputs = GetDateFieldInputs(field);
}
return field;
}
function UpgradeTimeField(field){
if(field.type != 'time' && field.inputType != 'time' ){
return field;
}
if(!field.inputs){
field.inputs = GetTimeFieldInputs(field);
}
return field;
}
function UpgradeEmailField(field){
if(field.type != 'email' && field.inputType != 'email'){
return field;
}
if(field.emailConfirmEnabled && !field.inputs){
field.inputs = GetEmailFieldInputs(field);
field.inputs[0].placeholder = field.placeholder
}
return field;
}
function UpgradePasswordField(field){
if(field.type != 'password' && field.inputType != 'password'){
return field;
}
if(!field.inputs){
field.inputs = GetPasswordFieldInputs(field);
field.inputs[0].placeholder = field.placeholder
}
return field;
}
function UpgradeAddressField(field){
if(field.hideCountry){
var countryInput = GetInput(field, field.id + ".6");
countryInput.isHidden = true;
}
delete field.hideCountry;
if(field.hideAddress2){
var address2Input = GetInput(field, field.id + ".2");
address2Input.isHidden = true;
}
delete field.hideAddress2;
if(field.hideState){
var stateInput = GetInput(field, field.id + ".4");
stateInput.isHidden = true;
}
delete field.hideState;
return field;
}
function TogglePasswordStrength(isInit){
var speed = isInit ? "" : "slow";
if(jQuery("#gfield_password_strength_enabled").is(":checked")){
jQuery("#gfield_min_strength_container").show(speed);
}
else{
jQuery("#gfield_min_strength_container").hide(speed);
}
}
function ToggleCategory(isInit){
var speed = isInit ? "" : "slow";
if(jQuery("#gfield_category_all").is(":checked")){
jQuery("#gfield_settings_category_container").hide(speed);
SetFieldProperty("displayAllCategories", true);
SetFieldProperty("choices", new Array()); //reset selected categories
}
else{
jQuery("#gfield_settings_category_container").show(speed);
SetFieldProperty("displayAllCategories", false);
}
}
function SetCopyValuesOptionLabel(value){
SetFieldProperty('copyValuesOptionLabel', value);
jQuery('.field_selected .copy_values_option_label').html(value);
}
function SetCustomFieldTemplate(){
var enabled = jQuery("#gfield_customfield_content_enabled").is(":checked");
SetFieldProperty("customFieldTemplate", enabled ? jQuery("#field_customfield_content_template").val() : null);
SetFieldProperty("customFieldTemplateEnabled", enabled );
}
function SetCategoryInitialItem(){
var enabled = jQuery("#gfield_post_category_initial_item_enabled").is(":checked");
SetFieldProperty("categoryInitialItem", enabled ? jQuery("#field_post_category_initial_item").val() : null);
SetFieldProperty("categoryInitialItemEnabled", enabled );
}
function PopulateContentTemplate(fieldName){
if(jQuery("#" + fieldName).val().length == 0){
var field = GetSelectedField();
jQuery("#" + fieldName).val("{" + field.label + ":" + field.id + "}");
}
}
function TogglePostContentTemplate(isInit){
var speed = isInit ? "" : "slow";
if(jQuery("#gfield_post_content_enabled").is(":checked")){
jQuery("#gfield_post_content_container").show(speed);
if(!isInit){
PopulateContentTemplate("field_post_content_template");
}
}
else{
jQuery("#gfield_post_content_container").hide(speed);
}
}
function TogglePostTitleTemplate(isInit){
var speed = isInit ? "" : "slow";
if(jQuery("#gfield_post_title_enabled").is(":checked")){
jQuery("#gfield_post_title_container").show(speed);
if(!isInit)
PopulateContentTemplate("field_post_title_template");
}
else{
jQuery("#gfield_post_title_container").hide(speed);
}
}
function ToggleCustomFieldTemplate(isInit){
var speed = isInit ? "" : "slow";
if(jQuery("#gfield_customfield_content_enabled").is(":checked")){
jQuery("#gfield_customfield_content_container").show(speed);
if(!isInit){
PopulateContentTemplate("field_customfield_content_template");
}
}
else{
jQuery("#gfield_customfield_content_container").hide(speed);
}
}
function ToggleInputName(isInit){
var speed = isInit ? "" : "slow";
if(jQuery('#field_prepopulate').is(":checked")){
jQuery('#field_input_name_container').show(speed);
}
else{
jQuery('#field_input_name_container').hide(speed);
jQuery("#field_input_name").val("");
}
}
function SetFieldColumns(){
SetFieldChoices();
}
function ToggleChoiceValue(isInit){
var speed = isInit ? "" : "slow";
var field = GetSelectedField();
var suffix = field.enablePrice ? "_and_price" : "";
var container = jQuery('#gfield_settings_choices_container');
//removing all classes
container.removeClass("choice_with_price choice_with_value choice_with_value_and_price");
var isShowValues = jQuery('#field_choice_values_enabled').is(":checked");
if(isShowValues){
container.addClass("choice_with_value" + suffix);
}
else if(field.enablePrice){
container.addClass("choice_with_price");
}
}
function ToggleInputChoiceValue($container, enabled){
if(typeof enabled == 'undefined'){
enabled = false;
}
var field = GetSelectedField();
var inputId = $container.find('li').data('input_id');
var input = GetInput(field, inputId);
input.enableChoiceValue = enabled;
//removing all classes
$container.removeClass("choice_with_value");
if(enabled){
$container.addClass("choice_with_value");
}
}
function ToggleCopyValuesActivated(isActivated){
jQuery('.field_selected .copy_values_activated').prop('checked', isActivated);
var field = GetSelectedField();
jQuery('#input_'+ field.id).toggle(!isActivated);
}
function TogglePageButton(button_name, isInit){
var isText = jQuery("#" + button_name + "_button_text").is(":checked");
show_element = isText ? "#" + button_name + "_button_text_container" : "#" + button_name + "_button_image_container"
hide_element = isText ? "#" + button_name + "_button_image_container" : "#" + button_name + "_button_text_container";
if(isInit){
jQuery(hide_element).hide();
jQuery(show_element).show();
}
else{
jQuery(hide_element).hide();
jQuery(show_element).fadeIn(800);
}
}
function SetPageButton(button_name){
field = GetSelectedField();
var buttonType = jQuery("#" + button_name + "_button_image").is(":checked") ? "image" : "text";
field[button_name + "Button"]["type"] = buttonType;
if(buttonType == "image"){
field[button_name + "Button"]["text"] = "";
field[button_name + "Button"]["imageUrl"] = jQuery("#" + button_name + "_button_image_url").val();
}
else{
field[button_name + "Button"]["text"] = jQuery("#" + button_name + "_button_text_input").val();
field[button_name + "Button"]["imageUrl"] = "";
}
}
function ToggleCustomField(isInit){
var isExisting = jQuery("#field_custom_existing").is(":checked");
show_element = isExisting ? "#field_custom_field_name_select" : "#field_custom_field_name_text"
hide_element = isExisting ? "#field_custom_field_name_text" : "#field_custom_field_name_select";
var speed = isInit ? "" : "";
jQuery(hide_element).hide(speed);
jQuery(show_element).show(speed);
}
function ToggleInputMask(isInit){
var speed = isInit ? "" : "slow";
if(jQuery("#field_input_mask").is(":checked")){
jQuery("#gform_input_mask").show(speed);
jQuery(".maxlen_setting").hide();
SetFieldProperty('inputMask', true);
//setting max length to blank
jQuery("#field_maxlen").val("");
SetFieldProperty('maxLength', "");
}
else{
jQuery("#gform_input_mask").hide(speed);
jQuery(".maxlen_setting").show();
SetFieldProperty('inputMask', false);
SetFieldProperty('inputMaskValue', '');
}
}
function ToggleInputMaskOptions(isInit){
var isStandard = jQuery("#field_mask_standard").is(":checked");
show_element = isStandard ? "#field_mask_select" : "#field_mask_text, .mask_text_description"
hide_element = isStandard ? "#field_mask_text, .mask_text_description" : "#field_mask_select";
var speed = isInit ? "" : "";
jQuery(hide_element).val('').hide(speed);
jQuery(show_element).show(speed);
if(!isInit)
SetFieldProperty('inputMaskValue', '');
}
function ToggleAutoresponder(){
if(jQuery("#form_autoresponder_enabled").is(":checked"))
jQuery("#form_autoresponder_container").show("slow");
else
jQuery("#form_autoresponder_container").hide("slow");
}
function ToggleMultiFile(isInit){
var speed = isInit ? "" : "slow";
if(jQuery("#field_multiple_files").prop("checked")){
jQuery("#gform_multiple_files_options").show(speed);
SetFieldProperty('multipleFiles', true);
}
else{
jQuery("#gform_multiple_files_options").hide(speed);
SetFieldProperty('multipleFiles', false);
jQuery("#field_max_files").val("");
SetFieldProperty('maxFiles', "");
}
if(!isInit){
var field = GetSelectedField();
jQuery("#field_settings").slideUp(function(){StartChangeInputType("fileupload", field);});
}
}
function HasPostContentField(){
for(var i=0; i= 0)
fields.push(form["fields"][i]);
}
return fields;
}
function GetNextFieldId(){
var max = 0;
for(var i=0; i max)
max = parseFloat(form.fields[i].id);
}
return parseFloat(max) + 1;
}
function EndAddField(field, fieldString, index){
gf_vars["currentlyAddingField"] = false;
jQuery('#gform_adding_field_spinner').remove();
//sets up DOM for new field
if(typeof index != 'undefined'){
form.fields.splice(index, 0, field);
if (index === 0) {
jQuery("#gform_fields").prepend(fieldString);
} else {
jQuery("#gform_fields").children().eq(index - 1).after(fieldString);
}
} else {
jQuery("#gform_fields").append(fieldString);
//creates new javascript field
form.fields.push(field);
}
var newFieldElement = jQuery("#field_" + field.id);
newFieldElement.animate({ backgroundColor: '#FFFBCC' }, 'fast', function(){jQuery(this).animate({backgroundColor: '#FFF'}, 'fast', function(){jQuery(this).css('background-color', '');})})
newFieldElement.bind("click", function(){FieldClick(this);});
if ( jQuery( '#no-fields-stash li').length === 0 ) {
// Stash the "no fields" placeholder away from the fields to avoid a sortable wobble.
jQuery( '#no-fields').detach().appendTo( '#no-fields-stash' );
}
//Unselects all fields
jQuery(".selectable").removeClass("field_selected");
//Closing editors
HideSettings("field_settings");
HideSettings("form_settings");
HideSettings("last_page_settings");
//Select current field
newFieldElement.addClass("field_selected");
//initializes new field with default data
SetFieldSize(field.size);
TogglePageBreakSettings();
InitializeFields();
newFieldElement.removeClass("field_selected");
jQuery(document).trigger('gform_field_added', [form, field]);
}
function StartChangeNameFormat(format){
field = GetSelectedField();
UpgradeNameField(field, false, true, false);
}
function StartChangeCaptchaType(captchaType){
field = GetSelectedField();
field["captchaType"] = captchaType;
SetFieldProperty('captchaType', captchaType);
//jQuery("#field_settings").slideUp(function(){StartChangeInputType(field["captchaType"], field);});
jQuery("#field_settings").slideUp(function(){StartChangeInputType(field["type"], field);});
ResetRecaptcha();
}
function ResetRecaptcha(){
field = GetSelectedField();
field['captchaLanguage'] = 'en';
field['captchaTheme'] = 'light';
}
function StartChangeProductType(type){
field = GetSelectedField();
if(type == "singleproduct" || type == "hiddenproduct" || field["inputType"] == "calculation" )
field["enablePrice"] = null;
else
field["enablePrice"] = true;
return StartChangeInputType(type, field);
}
function StartChangeDonationType(type){
field = GetSelectedField();
if(type != "donation")
field["enablePrice"] = true;
else
field["enablePrice"] = null;
return StartChangeInputType(type, field);
}
function StartChangeShippingType(type){
field = GetSelectedField();
if(type != "singleshipping")
field["enablePrice"] = true;
return StartChangeInputType(type, field);
}
function StartChangePostCategoryType(type){
if(type == 'dropdown') {
jQuery('.post_category_initial_item_setting').hide();
} else {
jQuery('.post_category_initial_item_setting').show();
}
field = GetSelectedField();
return StartChangeInputType(type, field);
}
function EndChangeInputType(params){
var fieldId = params.id, fieldType = params.type, fieldString = params.fieldString;
jQuery("#field_" + fieldId).html(fieldString);
var field = GetFieldById(fieldId);
//setting input type if different than field type
field.inputType = field.type != fieldType ? fieldType : "";
SetDefaultValues(field);
SetFieldLabel(field.label);
SetFieldSize(field.size);
SetFieldDefaultValue(field.defaultValue);
SetFieldDescription(field.description);
SetFieldRequired(field.isRequired);
InitializeFields();
LoadFieldSettings();
}
function InitializeFields(){
//Border on/off logic on mouse over
jQuery(".selectable").hover(
function () {
jQuery(this).addClass("field_hover");
},
function () {
jQuery(this).removeClass("field_hover");
}
);
jQuery(".field_delete_icon, .field_duplicate_icon").bind("click", function(event){
event.stopPropagation();
});
jQuery("#field_settings, #form_settings, #last_page_settings, #pagination_settings, .captcha_message, .form_delete_icon, .all-merge-tags").bind("click", function(event){
event.stopPropagation();
});
}
function FieldClick(field){
//disable click that happens right after dragging ends
if(gforms_dragging == field.id){
gforms_dragging = 0;
return;
}
if(jQuery(field).hasClass("field_selected")) {
var element_id = "";
switch(field.id){
case "gform_heading" :
element_id = "#form_settings";
jQuery('.gf_form_toolbar_settings a').removeClass("gf_toolbar_active");
break;
case "gform_last_page_settings" :
element_id = "#last_page_settings";
break;
case "gform_pagination" :
element_id = "#pagination_settings";
break;
default:
element_id = "#field_settings";
}
// force focus to ensure onblur events fire for field setting inputs
jQuery('input#gform_force_focus').focus();
jQuery(element_id).slideUp(function(){
jQuery(field).removeClass("field_selected").addClass("field_hover");
HideSettings("field_settings");
});
return;
}
//unselects all fields
jQuery(".selectable").removeClass("field_selected");
//selects current field
jQuery(field).removeClass("field_hover").addClass("field_selected");
//if this is a field (not the form title), load appropriate field type settings
if(field.id == "gform_heading"){
//hide field settings
HideSettings("field_settings");
HideSettings("last_page_settings");
HideSettings("pagination_settings");
InitializeFormConditionalLogic();
//Displaying form settings
ShowSettings("form_settings");
//highlighting toolbar item
jQuery('.gf_form_toolbar_settings a').addClass("gf_toolbar_active");
}
else if(field.id == "gform_last_page_settings"){
//hide field settings
HideSettings("field_settings");
HideSettings("form_settings");
HideSettings("pagination_settings");
//Displaying form settings
ShowSettings("last_page_settings");
}
else if(field.id == "gform_pagination"){
//hide field settings
HideSettings("field_settings");
HideSettings("form_settings");
HideSettings("last_page_settings");
InitPaginationOptions();
//Displaying pagination settings
ShowSettings("pagination_settings");
}
else{
//hide form settings
HideSettings("form_settings");
HideSettings("last_page_settings");
HideSettings("pagination_settings");
//selects current field
LoadFieldSettings();
}
}
function TogglePercentageStyle(isInit){
var speed = isInit ? "" : "slow";
if(jQuery("#percentage_style").val() == 'custom'){
jQuery('.percentage_custom_container').show(speed);
}
else{
jQuery('.percentage_custom_container').hide(speed);
}
}
function TogglePercentageConfirmationText(isInit){
var speed = isInit ? "" : "slow";
if(jQuery("#percentage_confirmation_display").is(":checked")){
jQuery('.percentage_confirmation_page_name_setting').show(speed);
}
else{
jQuery('.percentage_confirmation_page_name_setting').hide(speed);
}
}
function CustomFieldExists(name){
if(!name)
return true;
var options = jQuery("#field_custom_field_name_select option");
for(var i=0; i";
for(key in gform_custom_choices){
if(!gform_custom_choices.hasOwnProperty(key))
continue;
str += "" + key + "";
}
str += "";
jQuery("#bulk_items").prepend(str);
}
}
function SelectCustomChoice(name){
jQuery("#gfield_bulk_add_input").val(gform_custom_choices[name].join("\n"));
gform_selected_custom_choice = name;
InitBulkCustomPanel();
}
function SelectPredefinedChoice(name){
jQuery('#gfield_bulk_add_input').val(gform_predefined_choices[name].join('\n'));
gform_selected_custom_choice = "";
InitBulkCustomPanel();
}
function InsertBulkChoices(choices){
field = GetSelectedField();
field.choices = new Array();
var enableValue = false;
for(var i=0; i 1){
var currency = GetCurrentCurrency();
price = currency.toMoney(text_price[1]);
}
text_value = text_value.split("|");
field.choices.push(new Choice(jQuery.trim(text_value[0]), jQuery.trim(text_value[text_value.length -1]), jQuery.trim(price)));
if(text_value.length > 1)
enableValue = true;
}
if(enableValue){
field["enableChoiceValue"] = true;
jQuery('#field_choice_values_enabled').prop("checked", true);
ToggleChoiceValue();
}
LoadFieldChoices(field);
UpdateFieldChoices( GetInputType( field ) );
}
function InitBulkCustomPanel(){
if(gform_selected_custom_choice.length == 0){
CloseCustomChoicesPanel();
}
else{
LoadCustomChoicesPanel();
}
}
function LoadCustomChoicesPanel(isNew, speed){
if(isNew){
jQuery("#custom_choice_name").val("");
jQuery("#bulk_save_button").html(gf_vars.save);
jQuery("#bulk_cancel_link").show();
jQuery("#bulk_delete_link").hide();
}
else{
jQuery("#custom_choice_name").val(gform_selected_custom_choice);
jQuery("#bulk_save_button").html(gf_vars.update);
jQuery("#bulk_cancel_link").hide();
jQuery("#bulk_delete_link").show();
}
if(!speed)
speed = '';
jQuery("#bulk_save_as").hide(speed);
jQuery("#bulk_custom_edit").show(speed);
}
function CloseCustomChoicesPanel(speed){
if(!speed)
speed = '';
jQuery("#bulk_save_as").show(speed);
jQuery("#bulk_custom_edit").hide(speed);
}
function IsEmpty(array){
var key;
for (key in array) {
if (array.hasOwnProperty(key))
return false;
}
return true;
}
function SetFieldChoice(inputType, index){
var text = jQuery("#" + inputType + "_choice_text_" + index).val();
var value = jQuery("#" + inputType + "_choice_value_" + index).val();
var price = jQuery("#" + inputType + "_choice_price_" + index).val();
field = GetSelectedField();
field.choices[index].text = text;
field.choices[index].value = field.enableChoiceValue ? value : text;
if(field.enablePrice){
var currency = GetCurrentCurrency();
var price = currency.toMoney(price);
if(!price)
price = "";
field.choices[index]["price"] = price;
//jQuery("#" + inputType + "_choice_price_" + index).val(price);
}
//set field selections
jQuery("#field_choices :radio, #field_choices :checkbox").each(function(index){
field.choices[index].isSelected = this.checked;
});
LoadBulkChoices(field);
UpdateFieldChoices(GetInputType(field));
}
function SetInputChoice(inputId, index, value, text){
var field = GetSelectedField();
var input = GetInput(field, inputId);
inputId = inputId.toString().replace('.', '_');
input.choices[index].text = text;
input.choices[index].value = input.enableChoiceValue ? value : text;
//set field selections
jQuery(".field-input-choice-" + inputId + ":radio, .field-input-choice-" + inputId + ":checkbox").each(function(index){
input.choices[index].isSelected = this.checked;
});
UpdateInputChoices(input);
}
function UpdateFieldChoices(fieldType){
var choices = '';
var selector = '';
if(fieldType == "checkbox")
field.inputs = new Array();
var skip = 0;
switch(GetInputType(field)){
case "select" :
for(var i=0; i" + field.choices[i].text + "";
}
break;
case "checkbox" :
for(var i=0; i";
}
if(field.choices.length > 5)
choices += "" + gf_vars["editToViewAll"].replace("%d", field.choices.length) + "";
break;
case "radio" :
for(var i=0; i";
}
choices += field.enableOtherChoice ? "" : "";
if(field.choices.length > 5)
choices += "" + gf_vars["editToViewAll"].replace("%d", field.choices.length) + "";
break;
case "list" :
var has_columns = field["choices"] != null;
columns = has_columns ? field["choices"] : [[]];
var class_attr = "";
if(has_columns){
choices += "";
for(var i=0; i" + columns[i]["text"] + "";
}
choices += "| |
";
}
else{
class_attr = "class='gf_list_one_column'";
}
choices += "";
choices += "";
for(var j=0; j";
}
choices +=" | ";
choices +="
";
break;
}
selector = '.gfield_' + fieldType;
jQuery(".field_selected " + selector).html(choices);
}
function UpdateInputChoices(input){
var choices = '';
for(var i=0; i" + input.choices[i].text + "";
}
var inputId = input.id.toString().replace('.', '_');
jQuery(".field_selected #input_" + inputId).html(choices);
}
function InsertFieldChoice(index){
field = GetSelectedField();
var price = field["enablePrice"] ? "0.00" : "";
var new_choice = new Choice("", "", price);
if(window["gform_new_choice_" + field.type])
new_choice = window["gform_new_choice_" + field.type](field, new_choice);
field.choices.splice(index, 0, new_choice);
LoadFieldChoices(field);
UpdateFieldChoices(GetInputType(field));
}
function InsertInputChoice($ul, inputId, index){
var field = GetSelectedField();
var input = GetInput(field, inputId);
var new_choice = new Choice("", "");
input.choices.splice(index, 0, new_choice);
LoadInputChoices($ul, input);
UpdateInputChoices(input);
}
function DeleteFieldChoice(index){
field = GetSelectedField();
var value = jQuery('#' + GetInputType(field) + '_choice_value_' + index).val();
if( HasConditionalLogicDependency(field.id, value) ) {
if(!confirm(gf_vars.conditionalLogicDependencyChoice))
return;
}
field.choices.splice(index, 1);
LoadFieldChoices(field);
UpdateFieldChoices(GetInputType(field));
}
function DeleteInputChoice($ul, inputId, index){
var field = GetSelectedField();
var input = GetInput(field, inputId);
input.choices.splice(index, 1);
LoadInputChoices($ul, input);
UpdateInputChoices(input);
}
function MoveFieldChoice(fromIndex, toIndex){
field = GetSelectedField();
var choice = field.choices[fromIndex];
//deleting from old position
field.choices.splice(fromIndex, 1);
//inserting into new position
field.choices.splice(toIndex, 0, choice);
LoadFieldChoices(field);
UpdateFieldChoices(GetInputType(field));
}
function MoveInputChoice($ul, inputId, fromIndex, toIndex){
var field = GetSelectedField();
var input = GetInput(field, inputId);
var choice = input.choices[fromIndex];
//deleting from old position
input.choices.splice(fromIndex, 1);
//inserting into new position
input.choices.splice(toIndex, 0, choice);
LoadInputChoices($ul, input);
UpdateInputChoices(input);
}
function GetFieldType(fieldId){
return fieldId.substr(0, fieldId.lastIndexOf("_"));
}
function GetSelectedField(){
var id = jQuery(".field_selected")[0].id.substr(6);
return GetFieldById(id);
}
function SetPasswordProperty(isChecked){
SetFieldProperty("enablePasswordInput", isChecked);
}
function ToggleDateCalendar(isInit){
var speed = isInit ? "" : "slow";
var dateType = jQuery("#field_date_input_type").val();
if(dateType == "datefield" || dateType == "datedropdown"){
jQuery("#date_picker_container").hide(speed);
SetCalendarIconType("none");
}
else{
jQuery("#date_picker_container").show(speed);
}
}
function ToggleCalendarIconUrl(isInit){
var speed = isInit ? "" : "slow";
if(jQuery("#gsetting_icon_custom").is(":checked")){
jQuery("#gfield_icon_url_container").show(speed);
}
else{
jQuery("#gfield_icon_url_container").hide(speed);
jQuery("#gfield_calendar_icon_url").val("");
SetFieldProperty('calendarIconUrl', '');
}
}
function SetTimeFormat(format){
SetFieldProperty('timeFormat', format);
LoadTimeInputs();
}
function LoadTimeInputs(){
var field = GetSelectedField();
if(field.type != 'time' && field.inputType != 'time'){
return;
}
var format = jQuery("#field_time_format").val();
if(format == "24"){
jQuery('#input_default_value_row_input_' + field.id +'_3').hide();
jQuery(".field_selected .gfield_time_ampm").hide();
} else {
jQuery('#input_default_value_row_input_' + field.id +'_3').show();
jQuery(".field_selected .gfield_time_ampm").show();
}
jQuery('#input_placeholder_row_input_' + field.id +'_3').hide(); // no support for placeholder
jQuery('.field_custom_input_row_' + field.id +'_3').hide();
}
function SetDateFormat(format){
SetFieldProperty('dateFormat', format);
LoadDateInputs();
}
function LoadDateInputs(){
var type = jQuery("#field_date_input_type").val();
var format = jQuery("#field_date_format").val();
//setting up field positions
var position = format ? format.substr(0,3) : "mdy";
if(type == "datefield"){
switch(position){
case "ymd" :
jQuery(".field_selected #gfield_input_date_month").remove().insertBefore(".field_selected #gfield_input_date_day");
jQuery(".field_selected #gfield_input_date_year").remove().insertBefore(".field_selected #gfield_input_date_month");
break;
case "mdy" :
jQuery(".field_selected #gfield_input_date_day").remove().insertBefore(".field_selected #gfield_input_date_year");
jQuery(".field_selected #gfield_input_date_month").remove().insertBefore(".field_selected #gfield_input_date_day");
break;
case "dmy" :
jQuery(".field_selected #gfield_input_date_month").remove().insertBefore(".field_selected #gfield_input_date_year");
jQuery(".field_selected #gfield_input_date_day").remove().insertBefore(".field_selected #gfield_input_date_month");
break;
}
jQuery(".field_selected .ginput_date").show();
jQuery(".field_selected .ginput_date_dropdown").hide();
jQuery(".field_selected #gfield_input_datepicker").hide();
jQuery(".field_selected #gfield_input_datepicker_icon").hide();
}
else if(type == "datedropdown"){
switch(position){
case "ymd" :
jQuery(".field_selected #gfield_dropdown_date_month").remove().insertBefore(".field_selected #gfield_dropdown_date_day");
jQuery(".field_selected #gfield_dropdown_date_year").remove().insertBefore(".field_selected #gfield_dropdown_date_month");
break;
case "mdy" :
jQuery(".field_selected #gfield_dropdown_date_day").remove().insertBefore(".field_selected #gfield_dropdown_date_year");
jQuery(".field_selected #gfield_dropdown_date_month").remove().insertBefore(".field_selected #gfield_dropdown_date_day");
break;
case "dmy" :
jQuery(".field_selected #gfield_dropdown_date_month").remove().insertBefore(".field_selected #gfield_dropdown_date_year");
jQuery(".field_selected #gfield_dropdown_date_day").remove().insertBefore(".field_selected #gfield_dropdown_date_month");
break;
}
jQuery(".field_selected .ginput_date_dropdown").css("display", "inline");
jQuery(".field_selected .ginput_date").hide();
jQuery(".field_selected #gfield_input_datepicker").hide();
jQuery(".field_selected #gfield_input_datepicker_icon").hide();
}
else{
jQuery(".field_selected .ginput_date").hide();
jQuery(".field_selected .ginput_date_dropdown").hide();
jQuery(".field_selected #gfield_input_datepicker").show();
//Displaying or hiding the calendar icon
if(jQuery("#gsetting_icon_calendar").is(":checked"))
jQuery(".field_selected #gfield_input_datepicker_icon").show();
else
jQuery(".field_selected #gfield_input_datepicker_icon").hide();
}
}
function SetCalendarIconType(iconType, isInit){
field = GetSelectedField();
if(GetInputType(field) != "date")
return;
if(iconType == undefined)
iconType = "none";
if(iconType == "none")
jQuery("#gsetting_icon_none").prop("checked", true);
else if(iconType == "calendar")
jQuery("#gsetting_icon_calendar").prop("checked", true);
else if(iconType == "custom")
jQuery("#gsetting_icon_custom").prop("checked", true);
SetFieldProperty('calendarIconType', iconType);
ToggleCalendarIconUrl(isInit);
LoadDateInputs();
}
function SetDateInputType(type){
field = GetSelectedField();
if(GetInputType(field) != "date")
return;
field.dateType = type;
field.inputs = GetDateFieldInputs(field);
CreateDefaultValuesUI(field);
CreatePlaceholdersUI(field);
CreateInputLabelsUI(field);
ToggleDateSettings(field);
ResetDefaultInputValues(field);
ResetInputPlaceholders(field);
ToggleDateCalendar();
LoadDateInputs();
}
function SetPostImageMeta(){
var displayTitle = jQuery('.field_selected #gfield_display_title').is(":checked");
var displayCaption = jQuery('.field_selected #gfield_display_caption').is(":checked");
var displayDescription = jQuery('.field_selected #gfield_display_description').is(":checked");
var displayLabel = (displayTitle || displayCaption || displayDescription);
//setting property
SetFieldProperty('displayTitle', displayTitle);
SetFieldProperty('displayCaption', displayCaption);
SetFieldProperty('displayDescription', displayDescription);
//updating UI
jQuery('.field_selected .ginput_post_image_title').css("display", displayTitle ? "block" : "none");
jQuery('.field_selected .ginput_post_image_caption').css("display", displayCaption ? "block" : "none");
jQuery('.field_selected .ginput_post_image_description').css("display", displayDescription ? "block" : "none");
jQuery('.field_selected .ginput_post_image_file').css("display", displayLabel ? "block" : "none");
}
function SetFeaturedImage() {
var isChecked = jQuery('#gfield_featured_image').is(':checked');
if(isChecked) {
for(i in form.fields) {
if(!form.fields.hasOwnProperty(i))
continue;
form.fields[i].postFeaturedImage = false;
}
SetFieldProperty('postFeaturedImage', true);
}
else{
SetFieldProperty('postFeaturedImage', false);
}
}
function SetFieldProperty(name, value){
if(value == undefined)
value = "";
GetSelectedField()[name] = value;
}
function SetInputName(value, inputId){
var field = GetSelectedField();
if(value)
value = value.trim();
if(!inputId){
field["inputName"] = value;
}
else{
for(var i=0; i b["text"].toLowerCase() );});
}
function SetFieldLabel(label){
var requiredElement = jQuery(".field_selected .gfield_required")[0];
jQuery(".field_selected .gfield_label, .field_selected .gsection_title").text(label).append(requiredElement);
SetFieldProperty("label", label);
}
function SetCaptchaTheme(theme, thumbnailUrl){
jQuery(".field_selected .gfield_captcha").attr("src", thumbnailUrl);
SetFieldProperty("captchaTheme", theme);
}
function SetCaptchaSize(size){
var type = jQuery("#field_captcha_type").val();
SetFieldProperty("simpleCaptchaSize", size);
RedrawCaptcha();
jQuery(".field_selected .gfield_captcha_input_container").removeClass(type + "_small").removeClass(type + "_medium").removeClass(type + "_large").addClass(type + "_" + size);
}
function SetCaptchaFontColor(color){
SetFieldProperty("simpleCaptchaFontColor", color);
RedrawCaptcha();
}
function SetCaptchaBackgroundColor(color){
SetFieldProperty("simpleCaptchaBackgroundColor", color);
RedrawCaptcha();
}
function RedrawCaptcha(){
var captchaType = jQuery("#field_captcha_type").val();
if(captchaType == "math"){
url_1 = GetCaptchaUrl(1);
url_2 = GetCaptchaUrl(2);
url_3 = GetCaptchaUrl(3);
jQuery(".field_selected .gfield_captcha:eq(0)").attr("src", url_1);
jQuery(".field_selected .gfield_captcha:eq(1)").attr("src", url_2);
jQuery(".field_selected .gfield_captcha:eq(2)").attr("src", url_3);
}
else{
url = GetCaptchaUrl();
jQuery(".field_selected .gfield_captcha").attr("src", url);
}
}
function SetFieldSize(size){
jQuery(".field_selected .small, .field_selected .medium, .field_selected .large").removeClass("small").removeClass("medium").removeClass("large").addClass(size);
SetFieldProperty("size", size);
}
function SetFieldLabelPlacement(labelPlacement){
var labelPlacementClass = labelPlacement ? labelPlacement : form.labelPlacement;
SetFieldProperty("labelPlacement", labelPlacement);
jQuery(".field_selected").removeClass("top_label").removeClass("right_label").removeClass("left_label").removeClass("hidden_label").addClass(labelPlacementClass);
if((field.labelPlacement == 'left_label' || field.labelPlacement == 'right_label' || (field.labelPlacement == '' && form.labelPlacement != 'top_label'))){
jQuery('#field_description_placement').val('');
SetFieldProperty("descriptionPlacement", '');
jQuery('#field_description_placement_container').hide('slow');
} else {
jQuery('#field_description_placement_container').show('slow');
}
SetFieldProperty("labelPlacement", labelPlacement);
RefreshSelectedFieldPreview();
}
function SetFieldDescriptionPlacement(descriptionPlacement){
var isDescriptionAbove = descriptionPlacement == 'above' || (descriptionPlacement == '' && form.descriptionPlacement == 'above)');
SetFieldProperty("descriptionPlacement", descriptionPlacement);
RefreshSelectedFieldPreview(function(){
if(isDescriptionAbove){
jQuery(".field_selected").addClass("description_above");
} else {
jQuery(".field_selected").removeClass("description_above");
}
});
}
function SetFieldSubLabelPlacement(subLabelPlacement){
SetFieldProperty("subLabelPlacement", subLabelPlacement);
RefreshSelectedFieldPreview();
}
function SetFieldVisibility( visibility, handleInputs, isInit ) {
if (!isInit && visibility == 'administrative' && HasConditionalLogicDependency(field.id)) {
if( ! confirm( gf_vars.conditionalLogicDependencyAdminOnly ) ) {
return false;
}
}
var isWhitelisted = false;
for( var i = 0; i < gf_vars.visibilityOptions.length; i++ ) {
if( gf_vars.visibilityOptions[i].value == visibility ) {
isWhitelisted = true;
break;
}
}
if( ! isWhitelisted ) {
visibility = 'visible';
}
SetFieldProperty( 'visibility', visibility );
if( handleInputs ) {
var $inputs = jQuery( 'input[name="field_visibility"]' );
$inputs.prop( 'checked', false );
$inputs.filter( '[value="' + visibility + '"]' ).prop( 'checked', true );
}
}
function SetFieldDefaultValue(defaultValue){
jQuery(".field_selected > div > input:visible, .field_selected > div > textarea:visible, .field_selected > div > select:visible").val(defaultValue);
SetFieldProperty('defaultValue', defaultValue);
}
function SetFieldPlaceholder(placeholder){
jQuery(".field_selected > div > input:visible, .field_selected > div > textarea:visible, .field_selected > div > select:visible").each(function(){
var type = this.nodeName;
var $this = jQuery(this);
if(type == 'INPUT' || type == 'TEXTAREA'){
jQuery(this).prop("placeholder", placeholder);
} else if (type == 'SELECT'){
var $option = $this.find('option[value=""]');
if($option.length>0){
if(placeholder.length > 0){
$option.text(placeholder);
} else {
$option.remove();
}
} else {
$this.prepend('');
$this.val('');
}
}
});
SetFieldProperty('placeholder', placeholder);
}
function SetFieldDescription(description){
if(description == undefined)
description = "";
jQuery(".field_selected .gfield_description, .field_selected .gsection_description").html(description);
SetFieldProperty('description', description);
}
function SetPasswordStrength(isEnabled){
if(isEnabled){
jQuery(".field_selected .gfield_password_strength").show();
}
else{
jQuery(".field_selected .gfield_password_strength").hide();
//resetting min strength
jQuery("#gfield_min_strength").val("");
SetFieldProperty('minPasswordStrength', "");
}
SetFieldProperty('passwordStrengthEnabled', isEnabled);
}
function ToggleEmailSettings(field){
var isConfirmEnabled = typeof field.emailConfirmEnabled != 'undefined' && field.emailConfirmEnabled == true;
jQuery('.placeholder_setting').toggle(!isConfirmEnabled);
jQuery('.default_value_setting').toggle(!isConfirmEnabled);
jQuery('.sub_label_placement_setting').toggle(isConfirmEnabled);
jQuery('.sub_labels_setting').toggle(isConfirmEnabled);
jQuery('.default_input_values_setting').toggle(isConfirmEnabled);
jQuery('.input_placeholders_setting').toggle(isConfirmEnabled);
}
function SetEmailConfirmation(isEnabled){
var field = GetSelectedField();
if(isEnabled){
jQuery(".field_selected .ginput_single_email").hide();
jQuery(".field_selected .ginput_confirm_email").show();
}
else{
jQuery(".field_selected .ginput_confirm_email").hide();
jQuery(".field_selected .ginput_single_email").show();
}
field['emailConfirmEnabled'] = isEnabled;
field.inputs = GetEmailFieldInputs(field);
CreateDefaultValuesUI(field);
CreatePlaceholdersUI(field);
CreateCustomizeInputsUI(field);
CreateInputLabelsUI(field);
ToggleEmailSettings(field);
}
function SetCardType(elem, value) {
var cards = GetSelectedField()['creditCards'] ? GetSelectedField()['creditCards'] : new Array();
if(jQuery(elem).is(':checked')) {
if(jQuery.inArray(value, cards) == -1) {
jQuery('.gform_card_icon_' + value).fadeIn();
cards[cards.length] = value;
}
} else {
var index = jQuery.inArray(value, cards);
if(index != -1) {
jQuery('.gform_card_icon_' + value).fadeOut();
cards.splice(index, 1);
}
}
SetFieldProperty('creditCards', cards);
}
function SetFieldRequired(isRequired){
var required = isRequired ? "*" : "";
jQuery(".field_selected .gfield_required").html(required);
SetFieldProperty('isRequired', isRequired);
}
function SetMaxLength(input) {
var patt = GetMaxLengthPattern();
var cleanValue = '';
var characters = input.value.split('');
for(i in characters) {
if(!characters.hasOwnProperty(i))
continue;
if( !patt.test(characters[i]) )
cleanValue += characters[i];
}
input.value = cleanValue;
SetFieldProperty('maxLength', cleanValue);
}
function GetMaxLengthPattern() {
return /[a-zA-Z\-!@#$%^&*();'":_+=<,>.~`?\/|\[\]\{\}\\]/;
}
/**
* Validate any keypress events based on a provided RegExp.
*
* Function retrieves the character code from the keypress event and tests it against provided pattern.
* Optionally specify 'matchPositive' argument to false in order to return true if the character is NOT
* in the provided pattern.
*
* @param event The JS keypress event.
* @param patt RegExp to test keypress character against.
* @param matchPositive Defaults to true. Whether to return true if the character is found or NOT found in the pattern.
*/
function ValidateKeyPress(event, patt, matchPositive) {
var matchPositive = typeof matchPositive == 'undefined' ? true : matchPositive;
var char = event['which'] ? event.which : event.keyCode;
var isMatch = patt.test(String.fromCharCode(char));
if(event.ctrlKey)
return true;
return matchPositive ? isMatch : !isMatch;
}
function IndexOf(ary, item){
for(var i=0; i | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
|
').appendTo("body");jQuery(document.createElement("div")).attr("id","iColorPickerBg").click(function(){jQuery("#iColorPickerBg").hide();jQuery("#iColorPicker").fadeOut()}).appendTo("body");jQuery('table.pickerTable td').css({'width':'12px','height':'14px','border':'1px solid #000','cursor':'pointer'});jQuery('#iColorPicker table.pickerTable').css({'border-collapse':'collapse'});jQuery('#iColorPicker').css({'border':'1px solid #ccc','background':'#333','padding':'5px','color':'#fff','z-index':9999})}
jQuery('#colorPreview').css({'height':'50px'});
})
};
jQuery(function(){iColorPicker()});
function SetColorPickerColor(field_name, color, callback){
var chip = jQuery('#chip_' + field_name);
chip.css("background-color", color);
if(callback)
window[callback](color);
}
function SetFieldChoices(){
var field = GetSelectedField();
for(var i=0; i