internal static bool AreDefault(this JqGridNavigatorEditActionOptions navigatorEditActionOptions)
 {
     return((navigatorEditActionOptions.AddedRowPosition == JqGridOptionsDefaults.Navigator.AddedRowPosition) &&
            String.IsNullOrWhiteSpace(navigatorEditActionOptions.AfterClickPgButtons) &&
            String.IsNullOrWhiteSpace(navigatorEditActionOptions.AfterComplete) &&
            String.IsNullOrWhiteSpace(navigatorEditActionOptions.BeforeCheckValues) &&
            String.IsNullOrEmpty(navigatorEditActionOptions.BottomInfo) &&
            (navigatorEditActionOptions.CheckOnSubmit == JqGridOptionsDefaults.Navigator.CheckOnSubmit) &&
            (navigatorEditActionOptions.CheckOnUpdate == JqGridOptionsDefaults.Navigator.CheckOnUpdate) &&
            (navigatorEditActionOptions.ClearAfterAdd == JqGridOptionsDefaults.Navigator.ClearAfterAdd) &&
            (navigatorEditActionOptions.CloseAfterAdd == JqGridOptionsDefaults.Navigator.CloseAfterAdd) &&
            (navigatorEditActionOptions.CloseAfterEdit == JqGridOptionsDefaults.Navigator.CloseAfterEdit) &&
            (navigatorEditActionOptions.CloseButtonIcon == JqGridFormButtonIcon.CloseIcon) &&
            String.IsNullOrWhiteSpace(navigatorEditActionOptions.ErrorTextFormat) &&
            ((navigatorEditActionOptions.NavigationKeys == null) || navigatorEditActionOptions.NavigationKeys.IsDefault()) &&
            String.IsNullOrWhiteSpace(navigatorEditActionOptions.OnClickPgButtons) &&
            String.IsNullOrWhiteSpace(navigatorEditActionOptions.OnInitializeForm) &&
            (navigatorEditActionOptions.RecreateForm == JqGridOptionsDefaults.Navigator.RecreateForm) &&
            (navigatorEditActionOptions.SaveButtonIcon == JqGridFormButtonIcon.SaveIcon) &&
            (navigatorEditActionOptions.SaveKey == JqGridOptionsDefaults.Navigator.SaveKey) &&
            (navigatorEditActionOptions.SaveKeyEnabled == JqGridOptionsDefaults.Navigator.SaveKeyEnabled) &&
            String.IsNullOrEmpty(navigatorEditActionOptions.TopInfo) &&
            (navigatorEditActionOptions.ViewPagerButtons == JqGridOptionsDefaults.Navigator.ViewPagerButtons) &&
            (navigatorEditActionOptions.Width == JqGridOptionsDefaults.Navigator.EditActionWidth) &&
            (navigatorEditActionOptions as JqGridNavigatorModifyActionOptions).AreDefault());
 }
        internal static StringBuilder AppendNavigatorEditActionOptions(this StringBuilder javaScriptBuilder, string fieldName, JqGridNavigatorEditActionOptions navigatorEditActionOptions, IJqGridJsonService jqGridJsonService)
        {
            if ((navigatorEditActionOptions != null) && !navigatorEditActionOptions.AreDefault())
            {
                if (String.IsNullOrWhiteSpace(fieldName))
                {
                    javaScriptBuilder.Append(",").AppendJavaScriptObjectOpening();
                }
                else
                {
                    javaScriptBuilder.AppendJavaScriptObjectFieldOpening(fieldName);
                }

                if ((navigatorEditActionOptions.SaveKeyEnabled != JqGridOptionsDefaults.Navigator.SaveKeyEnabled) || (navigatorEditActionOptions.SaveKey != JqGridOptionsDefaults.Navigator.SaveKey))
                {
                    javaScriptBuilder.AppendJavaScriptArrayFieldOpening(JqGridOptionsNames.Navigator.SAVE_KEY)
                    .AppendJavaScriptArrayBooleanValue(navigatorEditActionOptions.SaveKeyEnabled)
                    .AppendJavaScriptArrayIntegerValue(navigatorEditActionOptions.SaveKey)
                    .AppendJavaScriptArrayFieldClosing();
                }

                javaScriptBuilder.AppendNavigatorModifyActionOptions(navigatorEditActionOptions)
                .AppendJavaScriptObjectIntegerField(JqGridOptionsNames.Navigator.WIDTH, navigatorEditActionOptions.Width, JqGridOptionsDefaults.Navigator.EditActionWidth)
                .AppendJavaScriptObjectObjectField(JqGridOptionsNames.Navigator.AJAX_EDIT_OPTIONS, navigatorEditActionOptions.AjaxOptions, jqGridJsonService)
                .AppendJavaScriptObjectScriptOrObjectField(JqGridOptionsNames.Navigator.EDIT_EXTRA_DATA, navigatorEditActionOptions.ExtraDataScript, navigatorEditActionOptions.ExtraData, jqGridJsonService)
                .AppendJavaScriptObjectFunctionField(JqGridOptionsNames.Navigator.SERIALIZE_EDIT_DATA, navigatorEditActionOptions.SerializeData)
                .AppendJavaScriptObjectEnumField(JqGridOptionsNames.Navigator.ADDED_ROW_POSITION, navigatorEditActionOptions.AddedRowPosition, JqGridOptionsDefaults.Navigator.AddedRowPosition)
                .AppendJavaScriptObjectFunctionField(JqGridOptionsNames.Navigator.AFTER_CLICK_PG_BUTTONS, navigatorEditActionOptions.AfterClickPgButtons)
                .AppendJavaScriptObjectFunctionField(JqGridOptionsNames.Navigator.AFTER_COMPLETE, navigatorEditActionOptions.AfterComplete)
                .AppendJavaScriptObjectFunctionField(JqGridOptionsNames.Navigator.BEFORE_CHECK_VALUES, navigatorEditActionOptions.BeforeCheckValues)
                .AppendJavaScriptObjectStringField(JqGridOptionsNames.Navigator.BOTTOM_INFO, navigatorEditActionOptions.BottomInfo)
                .AppendJavaScriptObjectBooleanField(JqGridOptionsNames.Navigator.CHECK_ON_SUBMIT, navigatorEditActionOptions.CheckOnSubmit, JqGridOptionsDefaults.Navigator.CheckOnSubmit)
                .AppendJavaScriptObjectBooleanField(JqGridOptionsNames.Navigator.CHECK_ON_UPDATE, navigatorEditActionOptions.CheckOnUpdate, JqGridOptionsDefaults.Navigator.CheckOnUpdate)
                .AppendJavaScriptObjectBooleanField(JqGridOptionsNames.Navigator.CLEAR_AFTER_ADD, navigatorEditActionOptions.ClearAfterAdd, JqGridOptionsDefaults.Navigator.ClearAfterAdd)
                .AppendJavaScriptObjectBooleanField(JqGridOptionsNames.Navigator.CLOSE_AFTER_ADD, navigatorEditActionOptions.CloseAfterAdd, JqGridOptionsDefaults.Navigator.CloseAfterAdd)
                .AppendJavaScriptObjectBooleanField(JqGridOptionsNames.Navigator.CLOSE_AFTER_EDIT, navigatorEditActionOptions.CloseAfterEdit, JqGridOptionsDefaults.Navigator.CloseAfterEdit)
                .AppendFormButtonIcon(JqGridOptionsNames.Navigator.CLOSE_ICON, navigatorEditActionOptions.CloseButtonIcon, JqGridFormButtonIcon.CloseIcon)
                .AppendNavigatorPageableFormActionOptions(navigatorEditActionOptions)
                .AppendJavaScriptObjectFunctionField(JqGridOptionsNames.Navigator.ON_CLICK_PG_BUTTONS, navigatorEditActionOptions.OnClickPgButtons)
                .AppendJavaScriptObjectFunctionField(JqGridOptionsNames.Navigator.ON_INITIALIZE_FORM, navigatorEditActionOptions.OnInitializeForm)
                .AppendFormButtonIcon(JqGridOptionsNames.Navigator.SAVE_ICON, navigatorEditActionOptions.SaveButtonIcon, JqGridFormButtonIcon.SaveIcon)
                .AppendJavaScriptObjectStringField(JqGridOptionsNames.Navigator.TOP_INFO, navigatorEditActionOptions.TopInfo);

                if (String.IsNullOrWhiteSpace(fieldName))
                {
                    javaScriptBuilder.AppendJavaScriptObjectClosing();
                }
                else
                {
                    javaScriptBuilder.AppendJavaScriptObjectFieldClosing();
                }
            }
            else if (String.IsNullOrWhiteSpace(fieldName))
            {
                javaScriptBuilder.Append(NULL_NAVIGATOR_OPTIONS);
            }

            return(javaScriptBuilder);
        }