anchor.diff:  <%
       // Get parameters
   
  -    boolean next = request.getParameter("continue") != null;
  -    if (next) {
  +    String serverType = ParamUtils.getParameter(request, "serverType");
  +    // Server type should never be null, but if it is, assume "other"
  +    if (serverType == null) {
  +        serverType = "other";
  +    }
  +
  +    // Determine the right default values based on the the server type.
  +    String defaultGroupNameField = JiveGlobals.getXMLProperty("ldap.groupNameField");
  +    String defaultGroupMemberField = JiveGlobals.getXMLProperty("ldap.groupMemberField");
  +    String defaultGroupDescriptionField = JiveGlobals.getXMLProperty("ldap.groupDescriptionField");
  +    String posixModeString = JiveGlobals.getXMLProperty("ldap.posixMode");
  +    boolean defaultPosixMode = Boolean.parseBoolean(posixModeString);
  +    String defaultGroupSearchFilter = JiveGlobals.getXMLProperty("ldap.groupSearchFilter");
  +
  +    if (serverType.equals("activedirectory")) {
  +        if (defaultGroupNameField == null) {
  +            defaultGroupNameField = "cn";
  +        }
  +        if (defaultGroupMemberField == null) {
  +            defaultGroupMemberField = "member";
  +        }
  +        if (defaultGroupDescriptionField == null) {
  +            defaultGroupDescriptionField = "description";
  +        }
  +        if (posixModeString == null) {
  +            defaultPosixMode = false;
  +        }
  +        if (defaultGroupSearchFilter == null) {
  +            defaultGroupSearchFilter = "(objectClass=group)";
  +        }
  +    }
  +    else {
  +        if (defaultGroupNameField == null) {
  +            defaultGroupNameField = "cn";
  +        }
  +        if (defaultGroupMemberField == null) {
  +            defaultGroupMemberField = "member";
  +        }
  +        if (defaultGroupDescriptionField == null) {
  +            defaultGroupDescriptionField = "description";
  +        }
  +        if (posixModeString == null) {
  +            defaultPosixMode = false;
  +        }
  +    }
  +
  +    String groupNameField = ParamUtils.getParameter(request, "groupNameField");
  +    if (groupNameField == null) {
  +        groupNameField = defaultGroupNameField;
  +    }
  +    String groupMemberField = ParamUtils.getParameter(request, "groupMemberField");
  +    if (groupMemberField == null) {
  +        groupMemberField = defaultGroupMemberField;
  +    }
  +    String groupDescriptionField = ParamUtils.getParameter(request, "groupDescriptionField");
  +    if (groupDescriptionField == null) {
  +        groupDescriptionField = defaultGroupDescriptionField;
  +    }
  +    String posixModeParam = ParamUtils.getParameter(request, "posixMode");
  +    boolean posixMode;
  +    if (posixModeParam == null) {
  +        posixMode = defaultPosixMode;
  +    }
  +    else {
  +        posixMode = Boolean.parseBoolean(posixModeParam);
  +    }
  +    String groupSearchFilter = ParamUtils.getParameter(request, "groupSearchFilter");
  +    if (groupSearchFilter == null) {
  +        groupSearchFilter = defaultGroupSearchFilter;
  +    }
  +
  +    boolean save = request.getParameter("save") != null;
  +    if (save) {
  +        if (groupNameField != null) {
  +            JiveGlobals.setXMLProperty("ldap.groupNameField", groupNameField);
  +        }
  +        if (groupMemberField != null) {
  +            JiveGlobals.setXMLProperty("ldap.groupMemberField", groupMemberField);
  +        }
  +        if (groupDescriptionField != null) {
  +            JiveGlobals.setXMLProperty("ldap.groupDescriptionField", groupDescriptionField);
  +        }
  +        JiveGlobals.setXMLProperty("ldap.posixMode", Boolean.toString(posixMode));
  +        if (groupSearchFilter != null) {
  +            JiveGlobals.setXMLProperty("ldap.groupSearchFilter", groupSearchFilter);
  +        }
  +
  +        // Enable the LDAP auth provider. The LDAP user provider will be enabled on the next step.
  +        JiveGlobals.setXMLProperty("provider.group.className",
  +                "org.jivesoftware.wildfire.ldap.LdapGroupProvider");
  +
           // Redirect
  -        response.sendRedirect("setup-admin-settings.jsp");
  +        response.sendRedirect("setup-admin-settings.jsp?ldap=true");
           return;
       }
   %>
   <html>
   <head>
  -    <title>Profile Settings - Directory Server</title>
  +    <title><fmt:message key="setup.ldap.title" /></title>
       <meta name="currentStep" content="3"/>
  -
   </head>
   
   <body>
   
  -	<h1>Profile Settings <span>- Group Mapping</span></h1>
  -
  -	<p>Configure group mapping and finish the directory server profile integration setup.</p>
  +	<h1><fmt:message key="setup.ldap.profile" /> <span><fmt:message key="setup.ldap.group_mapping" /></h1>
   
   	<!-- BEGIN jive-contentBox_stepbar -->
   	<div id="jive-contentBox_stepbar">
  -		<span class="jive-stepbar_step">1. Connection Settings</span>
  -		<span class="jive-stepbar_step">2. User Mapping</span>
  -		<span class="jive-stepbar_step"><strong>3. Group Mapping</strong></span>
  +		<span class="jive-stepbar_step"><em>1. <fmt:message key="setup.ldap.connection_settings" /></em></span>
  +		<span class="jive-stepbar_step"><em>2. <fmt:message key="setup.ldap.user_mapping" /></em></span>
  +		<span class="jive-stepbar_step"><strong>3. <fmt:message key="setup.ldap.group_mapping" /></strong></span>
   	</div>
   	<!-- END jive-contentBox-stepbar -->
   
   	<!-- BEGIN jive-contentBox -->
   	<div class="jive-contentBox jive-contentBox_for-stepbar">
   
  -	<h2>Step 3 of 3: <span>Group Mapping</span></h2>
  -	<p>A sentance detailing the setup options below. Also, noting that all fields are <strong>optional</strong>. Lorem ipsum dolor siet amet. Also mention the help tooltip rollovers.</p>
  +	<h2><fmt:message key="setup.ldap.step_three" />: <span><fmt:message key="setup.ldap.group_mapping" /></span></h2>
  +	<p><fmt:message key="setup.ldap.group.description" /></p>
   
   	<form action="" method="get">
   		<!-- BEGIN jive-contentBox_bluebox -->
  
positive.code: <%@ page import="org.jivesoftware.util.*,
                   java.util.HashMap,
                   java.util.Map,
                   java.util.Date,
                   org.jivesoftware.wildfire.user.User,
                   org.jivesoftware.wildfire.user.UserManager,
                   org.jivesoftware.util.JiveGlobals" %>
  <%@ page import="org.jivesoftware.wildfire.XMPPServer"%>
  <%@ page import="org.jivesoftware.wildfire.auth.AuthFactory"%>
  
  <%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
  <%@ taglib uri="http://java.sun.com/jstl/fmt_rt" prefix="fmt" %>
  
  <%
  	// Redirect if we've already run setup:
  	if (!XMPPServer.getInstance().isSetupMode()) {
          response.sendRedirect("setup-completed.jsp");
          return;
  
negative.code: 		<!-- BEGIN jive-buttons -->
  		<div class="jive-buttons">
  
  			<!-- BEGIN right-aligned buttons -->
  			<div align="right">
  				<a href="setup-ldap-group_test.jsp" class="lbOn" id="jive-setup-test2">
  				<img src="../images/setup_btn_gearplay.gif" alt="" width="14" height="14" border="0">
                  <fmt:message key="setup.ldap.test" />
  				</a>
  
  				<input type="Submit" name="save" value="<fmt:message key="setup.ldap.continue" />" id="jive-setup-save" border="0">
  			</div>
  			<!-- END right-aligned buttons -->
  
  