/** This method used to create dynamic form for group. */
  private void createForm() {
    LayoutInflater inflater = LayoutInflater.from(this);
    LinearLayout.LayoutParams params =
        new LinearLayout.LayoutParams(
            android.widget.LinearLayout.LayoutParams.MATCH_PARENT,
            android.widget.LinearLayout.LayoutParams.WRAP_CONTENT);
    params.topMargin = 10;

    LinearLayout layout = null;
    int size = IN_FIELD_LIST.size();
    for (int j = 0; j < size; j++) {
      final HashMap<String, String> field = IN_FIELD_LIST.get(j);
      View fieldView = inflater.inflate(R.layout.jom_dynamic_view_item, null);

      if (field.get(TYPE).equals(TEXT)) {
        final IjoomerEditText edit;
        layout = ((LinearLayout) fieldView.findViewById(R.id.lnrEdit));
        layout.setVisibility(View.VISIBLE);
        edit = ((IjoomerEditText) layout.findViewById(R.id.txtValue));
        edit.setText(Html.fromHtml(field.get(VALUE)));
        edit.setHint(field.get(CAPTION));
        if (field.get(NAME).equals(GROUPRECENTPHOTOS)
            || field.get(NAME).equals(GROUPRECENTVIDEOS)
            || field.get(NAME).equals(GROUPRECENTEVENTS)) {
          edit.setInputType(InputType.TYPE_CLASS_NUMBER);
        }
      } else if (field.get(TYPE).equals(TEXTAREA)) {
        final IjoomerEditText edit;
        layout = ((LinearLayout) fieldView.findViewById(R.id.lnrEditArea));
        layout.setVisibility(View.VISIBLE);
        edit = ((IjoomerEditText) layout.findViewById(R.id.txtValue));
        edit.setText(Html.fromHtml(field.get(VALUE)));
        edit.setHint(field.get(CAPTION));

      } else if (field.get(TYPE).equals(SELECT)) {
        layout = ((LinearLayout) fieldView.findViewById(R.id.lnrSpin));
        layout.setVisibility(View.VISIBLE);
        MyCustomAdapter adapter = IjoomerUtilities.getSpinnerAdapter(field);
        ((Spinner) layout.findViewById(R.id.txtValue)).setAdapter(adapter);
        ((Spinner) layout.findViewById(R.id.txtValue)).setSelection(adapter.getDefaultPosition());

      } else if (field.get(TYPE).equals(DATETIME)) {
        final IjoomerEditText edit;
        layout = ((LinearLayout) fieldView.findViewById(R.id.lnrEditClickable));
        layout.setVisibility(View.VISIBLE);
        edit = ((IjoomerEditText) layout.findViewById(R.id.txtValue));
        edit.setText(field.get(VALUE));
        edit.setHint(field.get(CAPTION));
        edit.setOnClickListener(
            new OnClickListener() {

              @Override
              public void onClick(final View v) {
                IjoomerUtilities.getDateTimeDialog(
                    ((IjoomerEditText) v).getText().toString(),
                    new CustomClickListner() {

                      @Override
                      public void onClick(String value) {
                        ((IjoomerEditText) v).setText(value);
                        ((IjoomerEditText) v).setError(null);
                      }
                    });
              }
            });

      } else if (field.get(TYPE).equals(MULTIPLESELECT)) {
        final IjoomerEditText edit;
        layout = ((LinearLayout) fieldView.findViewById(R.id.lnrEditClickable));
        layout.setVisibility(View.VISIBLE);
        edit = ((IjoomerEditText) layout.findViewById(R.id.txtValue));
        edit.setText(field.get(VALUE));
        edit.setHint(field.get(CAPTION));
        edit.setOnClickListener(
            new OnClickListener() {

              @Override
              public void onClick(final View v) {
                IjoomerUtilities.getMultiSelectionDialog(
                    field.get(CAPTION),
                    field.get(OPTIONS),
                    "",
                    new CustomClickListner() {

                      @Override
                      public void onClick(String value) {
                        ((IjoomerEditText) v).setText(value);
                      }
                    });
              }
            });
      } else if (field.get(TYPE).equals(MAP)) {
        final IjoomerEditText edit;
        final ImageView imgMap;
        layout = ((LinearLayout) fieldView.findViewById(R.id.lnrEditMap));
        layout.setVisibility(View.VISIBLE);
        edit = ((IjoomerEditText) layout.findViewById(R.id.txtValue));
        imgMap = ((ImageView) layout.findViewById(R.id.imgMap));
        edit.setText(field.get(VALUE));
        edit.setHint(field.get(CAPTION));
        imgMap.setOnClickListener(
            new OnClickListener() {

              @Override
              public void onClick(View v) {}
            });

      } else if (field.get(TYPE).equals(CHECKBOX)) {
        final IjoomerCheckBox chb;
        layout = ((LinearLayout) fieldView.findViewById(R.id.lnrCheckbox));
        layout.setVisibility(View.VISIBLE);
        chb = ((IjoomerCheckBox) layout.findViewById(R.id.txtValue));
        chb.setTextAppearance(JomGroupCreateActivity.this, R.style.ijoomer_textview_h2);
        if (field.get(NAME).equals(DISCUSSORDERING)
            || field.get(NAME).equals(GROUPDISCUSSIONFILESHARING)) {
          chb.setText(field.get(CAPTION) + " " + getString(R.string.group_discussion));
        } else if (field.get(NAME).equals(GROUPANNOUNCEMENTFILESHARING)) {
          chb.setText(field.get(CAPTION) + " " + getString(R.string.group_announcement));
        } else {
          chb.setText(field.get(CAPTION));
        }
        if (field.get(VALUE).toString().trim().length() > 0) {
          chb.setChecked(field.get(VALUE).toString().equals("1") ? true : false);
        }

        if (field.get(NAME).equalsIgnoreCase(PHOTOPERMISSION_MEMBER)
            || field.get(NAME).equalsIgnoreCase(VIDEOPERMISSION_MEMBER)
            || field.get(NAME).equalsIgnoreCase(EVENTPERMISSION_MEMBER)) {
          chb.setEnabled(false);
        }
        chb.setOnCheckedChangeListener(
            new OnCheckedChangeListener() {

              @SuppressWarnings({"unchecked"})
              @Override
              public void onCheckedChanged(CompoundButton IjoomerButtonView, boolean isChecked) {

                if (field.get(NAME).equalsIgnoreCase(PHOTOPERMISSION_ADMIN)) {
                  int size = lnr_form.getChildCount();
                  for (int i = 0; i < size; i++) {
                    View v = (LinearLayout) lnr_form.getChildAt(i);
                    HashMap<String, String> field = new HashMap<String, String>();
                    field.putAll((HashMap<String, String>) v.getTag());
                    IjoomerCheckBox chbValue =
                        (IjoomerCheckBox)
                            ((LinearLayout) v.findViewById(R.id.lnrCheckbox))
                                .findViewById(R.id.txtValue);
                    if (field.get(NAME).equalsIgnoreCase(PHOTOPERMISSION_MEMBER) && isChecked) {
                      chbValue.setChecked(false);
                      chbValue.setEnabled(true);
                      break;
                    } else if (field.get(NAME).equalsIgnoreCase(PHOTOPERMISSION_MEMBER)) {
                      chbValue.setChecked(false);
                      chbValue.setEnabled(false);
                      break;
                    }
                  }
                } else if (field.get(NAME).equalsIgnoreCase(VIDEOPERMISSION_ADMIN)) {
                  int size = lnr_form.getChildCount();
                  for (int i = 0; i < size; i++) {
                    View v = (LinearLayout) lnr_form.getChildAt(i);
                    HashMap<String, String> field = new HashMap<String, String>();
                    field.putAll((HashMap<String, String>) v.getTag());
                    IjoomerCheckBox chbValue =
                        (IjoomerCheckBox)
                            ((LinearLayout) v.findViewById(R.id.lnrCheckbox))
                                .findViewById(R.id.txtValue);
                    if (field.get(NAME).equalsIgnoreCase(VIDEOPERMISSION_MEMBER) && isChecked) {
                      chbValue.setChecked(false);
                      chbValue.setEnabled(true);
                      break;
                    } else if (field.get(NAME).equalsIgnoreCase(VIDEOPERMISSION_MEMBER)
                        && !isChecked) {
                      chbValue.setChecked(false);
                      chbValue.setEnabled(false);
                      break;
                    }
                  }
                } else if (field.get(NAME).equalsIgnoreCase(EVENTPERMISSION_ADMIN)) {
                  int size = lnr_form.getChildCount();
                  for (int i = 0; i < size; i++) {
                    View v = (LinearLayout) lnr_form.getChildAt(i);
                    HashMap<String, String> field = new HashMap<String, String>();
                    field.putAll((HashMap<String, String>) v.getTag());
                    IjoomerCheckBox chbValue =
                        (IjoomerCheckBox)
                            ((LinearLayout) v.findViewById(R.id.lnrCheckbox))
                                .findViewById(R.id.txtValue);
                    if (field.get(NAME).equalsIgnoreCase(EVENTPERMISSION_MEMBER) && isChecked) {
                      chbValue.setChecked(false);
                      chbValue.setEnabled(true);
                      break;
                    } else if (field.get(NAME).equalsIgnoreCase(EVENTPERMISSION_MEMBER)
                        && !isChecked) {
                      chbValue.setChecked(false);
                      chbValue.setEnabled(false);
                      break;
                    }
                  }
                }
              }
            });
      }

      try {
        if (field.get(REQUIRED).equalsIgnoreCase("1")) {
          ((IjoomerTextView) layout.findViewById(R.id.txtLable)).setText("* ");
        } else {
          ((IjoomerTextView) layout.findViewById(R.id.txtLable)).setText("   ");
        }
      } catch (Exception e) {
        ((IjoomerTextView) layout.findViewById(R.id.txtLable)).setText("   ");
      }

      fieldView.setTag(field);
      lnr_form.addView(fieldView, params);
    }
  }
  /** This method used to update group details. */
  @SuppressWarnings("unchecked")
  private void updateGroupDetails() {

    boolean validationFlag = true;
    ArrayList<HashMap<String, String>> groupField = new ArrayList<HashMap<String, String>>();
    int size = lnr_form.getChildCount();
    for (int i = 0; i < size; i++) {
      View v = (LinearLayout) lnr_form.getChildAt(i);
      HashMap<String, String> field = new HashMap<String, String>();
      field.putAll((HashMap<String, String>) v.getTag());
      IjoomerEditText edtValue = null;
      Spinner spnrValue = null;
      IjoomerCheckBox chbValue = null;
      if (field != null) {
        if (field.get(TYPE).equals(TEXT)) {
          edtValue =
              (IjoomerEditText)
                  ((LinearLayout) v.findViewById(R.id.lnrEdit)).findViewById(R.id.txtValue);
        } else if (field.get(TYPE).equals(TEXTAREA)) {
          edtValue =
              (IjoomerEditText)
                  ((LinearLayout) v.findViewById(R.id.lnrEditArea)).findViewById(R.id.txtValue);
        } else if (field.get(TYPE).equals(DATETIME)) {
          edtValue =
              (IjoomerEditText)
                  ((LinearLayout) v.findViewById(R.id.lnrEditClickable))
                      .findViewById(R.id.txtValue);
        } else if (field.get(TYPE).equals(MAP)) {
          edtValue =
              (IjoomerEditText)
                  ((LinearLayout) v.findViewById(R.id.lnrEditMap)).findViewById(R.id.txtValue);
        }

        if (field.get(TYPE).equals(CHECKBOX)) {
          chbValue =
              (IjoomerCheckBox)
                  ((LinearLayout) v.findViewById(R.id.lnrCheckbox)).findViewById(R.id.txtValue);
          field.put(VALUE, chbValue.isChecked() ? "1" : "0");
          groupField.add(field);
        } else if (field.get(TYPE).equals(SELECT)) {
          spnrValue =
              (Spinner) ((LinearLayout) v.findViewById(R.id.lnrSpin)).findViewById(R.id.txtValue);
          try {
            JSONArray options = new JSONArray(field.get(OPTIONS));
            field.put(
                VALUE,
                ((JSONObject) options.get(spnrValue.getSelectedItemPosition())).getString(VALUE));
          } catch (Throwable e) {
            e.printStackTrace();
          }
          groupField.add(field);
        }

        if (edtValue != null) {
          if (field.get(REQUIRED).equals("1") && edtValue.getText().toString().length() <= 0) {
            edtValue.setError(getString(R.string.validation_value_required));
            validationFlag = false;
          } else {
            field.put(VALUE, edtValue.getText().toString().trim());
            groupField.add(field);
          }
        }
      }
    }

    if (validationFlag) {

      final SeekBar proSeekBar =
          IjoomerUtilities.getLoadingDialog(getString(R.string.dialog_loading_sending_request));
      new JomGroupDataProvider(JomGroupCreateActivity.this)
          .addOrEditGroupSubmit(
              IN_GROUP_ID,
              groupField,
              new WebCallListener() {

                @Override
                public void onProgressUpdate(int progressCount) {
                  proSeekBar.setProgress(progressCount);
                }

                @Override
                public void onCallComplete(
                    final int responseCode,
                    String errorMessage,
                    ArrayList<HashMap<String, String>> data1,
                    Object data2) {
                  if (responseCode == 200) {
                    updateHeader(dataProvider.getNotificationData());
                    IjoomerApplicationConfiguration.setReloadRequired(true);
                    finish();
                  } else {
                    if (errorMessage != null
                        && errorMessage.length() > 0
                        && !errorMessage.equals("null")) {
                      IjoomerUtilities.getCustomOkDialog(
                          getString(R.string.group),
                          errorMessage,
                          getString(R.string.ok),
                          R.layout.ijoomer_ok_dialog,
                          new CustomAlertNeutral() {

                            @Override
                            public void NeutralMethod() {}
                          });
                    } else {
                      IjoomerUtilities.getCustomOkDialog(
                          getString(R.string.group),
                          getString(
                              getResources()
                                  .getIdentifier(
                                      "code" + responseCode, "string", getPackageName())),
                          getString(R.string.ok),
                          R.layout.ijoomer_ok_dialog,
                          new CustomAlertNeutral() {

                            @Override
                            public void NeutralMethod() {}
                          });
                    }
                  }
                }
              });
    }
  }