diff -rupN jamm-0.9.6/WEB-INF/classes/ApplicationResources.properties jamm/WEB-INF/classes/ApplicationResources.properties --- jamm-0.9.6/WEB-INF/classes/ApplicationResources.properties 2003-12-02 09:51:00.000000000 -0500 +++ jamm/WEB-INF/classes/ApplicationResources.properties 2012-02-10 17:24:19.000000000 -0500 @@ -17,21 +17,20 @@ errors.creditcard={0} is an invalid cred errors.email={0} is an invalid e-mail address. errors.identical={0} entries must be identical -home.welcome = Welcome to Jamm! You are logged in as: -home.login = Log into Jamm +home.welcome = Welcome to Mail Admin! You are logged in as: +home.login = Log into Mail Admin home.logout = Log out home.link.user_home = Go to your home page home.change_password = Change Password -errors.header=

Validation Error

\ - You must correct the following error(s) before proceeding: +errors.header=

\n\tValidation Error\n

You must correct the following error(s) before proceeding:

\n\n
button.cancel = Cancel button.reset = Reset # Generic errors -password.error.do_not_match =
  • Passwords do not match.
  • +password.error.do_not_match =
  • Passwords do not match
  • password.error.too_short = \
  • Password must be at least 5 characters.
  • @@ -42,7 +41,7 @@ login.prompt.username = Username login.prompt.password = Password login.button.submit = Login login.button.cancel = Cancel Login -login.error.invalid_login =
  • Username and password do not match.
  • +login.error.invalid_login =
  • Incorrect username and/or password
  • change_password.user_info = Changing password for: change_password.prompt.password = New Password: @@ -75,11 +74,11 @@ catch_all_admin.status = Status catch_all_admin.destination = Destination catch_all_admin.button.submit = Update Catch-All catch_all_admin.error.no_destination = \ -
  • Catch-All must have a destination.
  • +
  • Catch-All must have a destination
  • add_domain.prompt.domain_name = Domain Name: add_domain.prompt.postmaster_password = Postmaster Password: -add_domain.prompt.retype_postmaster_password = Retype Postmaster Password: +add_domain.prompt.retype_postmaster_password = Retype Password: add_domain.prompt.optional = (Optional) add_domain.note = Note: add_domain.note.content = \ @@ -107,32 +106,28 @@ add_account.prompt.retype_password = Ret add_account.button.submit = Add Account add_account.error.no_name =
  • You must enter a name for this account
  • -general.error.domain.is.null =
  • Domain we are dealing with lost.
  • +general.error.domain.is.null =
  • Domain we are dealing with lost
  • -access.error =
  • You do not have access to be here. Naughty, Naughty!
  • +access.error =
  • You do not seem to have permission to be here
  • -general.error.header =

    An unknown error has occured!

    +general.error.header =

    An unknown error has occured!

    general.error.body = Please contact the system administrator general.error.footer =

    We're sorry for the inconvience. \ Please try again later.

    -communication.error.header =

    An fatal error has occured! \ -

    -communication.error.body = Could not contact the ldap server. +communication.error.header =

    A fatal error has occured!

    +communication.error.body = Could not contact the ldap server communication.error.footer =

    We're sorry for the inconvience. \ Please try again later.

    -account_exists.error.header =

    A account or alias for \ - this address already exists

    +account_exists.error.header =

    A account or alias for this address already exists

    account_exists.error.body = already exists. -account_exists.error.footer =

    Please try again

    +account_exists.error.footer = -domain_exists.error.header =

    A domain with \ - this name already exists

    -domain_exists.error.body = Whee! -domain_exists.error.footer =

    Please try again

    - -permission.error.header =

    Permission problem

    -permission.error.body = Whee! -permission.error.footer =

    If you received this in error, please contact \ - your postmaster

    +domain_exists.error.header =

    A domain with this name already exists

    +domain_exists.error.body = +domain_exists.error.footer = + +permission.error.header =

    Permission problem

    +permission.error.body = +permission.error.footer =

    If you received this in error, please contact your administrator

    diff -rupN jamm-0.9.6/WEB-INF/common/all_definitions.jsp jamm/WEB-INF/common/all_definitions.jsp --- jamm-0.9.6/WEB-INF/common/all_definitions.jsp 2003-12-02 09:51:00.000000000 -0500 +++ jamm/WEB-INF/common/all_definitions.jsp 2011-05-31 10:33:38.000000000 -0400 @@ -4,6 +4,7 @@ <%@ taglib uri="/WEB-INF/tld/struts-logic.tld" prefix="logic" %> <%@ taglib uri="/WEB-INF/tld/struts-tiles.tld" prefix="tiles" %> <%@ taglib uri="/WEB-INF/tld/jamm.tld" prefix="jamm" %> +<%-- TODO: ADD THE JAKARTA/STRING TO HERE --%> diff -rupN jamm-0.9.6/WEB-INF/common/footer.jsp jamm/WEB-INF/common/footer.jsp --- jamm-0.9.6/WEB-INF/common/footer.jsp 2003-12-02 09:51:00.000000000 -0500 +++ jamm/WEB-INF/common/footer.jsp 2010-05-05 15:36:30.000000000 -0400 @@ -1,6 +1 @@ - - - - - - + diff -rupN jamm-0.9.6/WEB-INF/common/header.jsp jamm/WEB-INF/common/header.jsp --- jamm-0.9.6/WEB-INF/common/header.jsp 2003-12-02 09:51:00.000000000 -0500 +++ jamm/WEB-INF/common/header.jsp 2011-05-30 19:04:42.000000000 -0400 @@ -1,11 +1,5 @@ - - - - - -
      - - - - -
    - 0.9.6 -
    +<%-- +--%> \ No newline at end of file diff -rupN jamm-0.9.6/WEB-INF/common/private_footer.jsp jamm/WEB-INF/common/private_footer.jsp --- jamm-0.9.6/WEB-INF/common/private_footer.jsp 2003-12-02 09:51:00.000000000 -0500 +++ jamm/WEB-INF/common/private_footer.jsp 2012-02-10 12:42:11.000000000 -0500 @@ -1,6 +1 @@ -
    -
    + diff -rupN jamm-0.9.6/WEB-INF/common/private_header.jsp jamm/WEB-INF/common/private_header.jsp --- jamm-0.9.6/WEB-INF/common/private_header.jsp 2003-12-02 09:51:00.000000000 -0500 +++ jamm/WEB-INF/common/private_header.jsp 2011-05-31 10:59:39.000000000 -0400 @@ -1,24 +1,27 @@ - - - -
      - - - + + + + + + +
    -

    - - - : - - - - <%= breadCrumb.getText() %> - : - - -

    - 0.9.6 -
    + + + diff -rupN jamm-0.9.6/WEB-INF/jamm.properties jamm/WEB-INF/jamm.properties --- jamm-0.9.6/WEB-INF/jamm.properties 1969-12-31 19:00:00.000000000 -0500 +++ jamm/WEB-INF/jamm.properties 2011-05-30 13:36:20.000000000 -0400 @@ -0,0 +1,37 @@ + +# The LDAP host. The default is localhost +# +jamm.ldap.host = 192.168.56.101 + +# The LDAP port. The default is 389 +# +#jamm.ldap.port = + +# The search base. +# +jamm.ldap.search_base = o=mailsrv,dc=rmacd,dc=com + +# The DN of the "root" user +# +jamm.ldap.root_dn = cn=admin,dc=rmacd,dc=com + +# The login of the "root" user. The default is root +# +jamm.ldap.root_login = ronald + +# The class used to generate random numbers. The default is +# java.security.SecureRandom. +# +#jamm.random_class = java.util.Random + +# Should jamm use the Modify Password Extended Operation to set the +# users's password? If true, it will. If false, jamm itself will +# generate an SSHA hash and set the userPassword attribute to it. +# The default is true +# +#jamm.password.exop = true + +# The directory on the server where the virtual accounts store their +# data. Defaults to /home/vmail/domains +# +jamm.vmail.homedir = /home/vmail/domains diff -rupN jamm-0.9.6/WEB-INF/jamm.properties.dist jamm/WEB-INF/jamm.properties.dist --- jamm-0.9.6/WEB-INF/jamm.properties.dist 2003-12-02 09:51:00.000000000 -0500 +++ jamm/WEB-INF/jamm.properties.dist 1969-12-31 19:00:00.000000000 -0500 @@ -1,37 +0,0 @@ - -# The LDAP host. The default is localhost -# -#jamm.ldap.host = - -# The LDAP port. The default is 389 -# -#jamm.ldap.port = - -# The search base. -# -#jamm.ldap.search_base = - -# The DN of the "root" user -# -#jamm.ldap.root_dn = - -# The login of the "root" user. The default is root -# -#jamm.ldap.root_login = - -# The class used to generate random numbers. The default is -# java.security.SecureRandom. -# -#jamm.random_class = java.util.Random - -# Should jamm use the Modify Password Extended Operation to set the -# users's password? If true, it will. If false, jamm itself will -# generate an SSHA hash and set the userPassword attribute to it. -# The default is true -# -#jamm.password.exop = true - -# The directory on the server where the virtual accounts store their -# data. Defaults to /home/vmail/domains -# -#jamm.vmail.homedir = /home/vmail/domains diff -rupN jamm-0.9.6/WEB-INF/layouts/main.jsp jamm/WEB-INF/layouts/main.jsp --- jamm-0.9.6/WEB-INF/layouts/main.jsp 2003-12-02 09:51:00.000000000 -0500 +++ jamm/WEB-INF/layouts/main.jsp 2010-05-06 10:02:26.000000000 -0400 @@ -1,24 +1,43 @@ - + - - <tiles:getAsString name="title"/> - - - - - + + + <tiles:getAsString name="title"/> + + + + - - - - - + + + + + + + + + + + + + Binary files jamm-0.9.6/WEB-INF/lib/commons-lang.jar and jamm/WEB-INF/lib/commons-lang.jar differ Binary files jamm-0.9.6/WEB-INF/lib/taglibs-string.jar and jamm/WEB-INF/lib/taglibs-string.jar differ diff -rupN jamm-0.9.6/WEB-INF/taglibs-string.tld jamm/WEB-INF/taglibs-string.tld --- jamm-0.9.6/WEB-INF/taglibs-string.tld 1969-12-31 19:00:00.000000000 -0500 +++ jamm/WEB-INF/taglibs-string.tld 2011-05-31 10:03:26.000000000 -0400 @@ -0,0 +1,748 @@ + + + + + + + + + + 1.1.0 + 1.1 + string + http://jakarta.apache.org/taglibs/string-1.1 + + The String taglibrary provides a host of tags for manipulating + java.lang.Strings. The style is that the String to act upon is the + body of the tag, and attributes are used as parameters for the + manipulation. + + + length + org.apache.taglibs.string.LengthTag + JSP + + var + false + true + + + + capitalize + org.apache.taglibs.string.CapitalizeTag + JSP + + var + false + true + + + + uncapitalize + org.apache.taglibs.string.UncapitalizeTag + JSP + + var + false + true + + + + upperCase + org.apache.taglibs.string.UpperCaseTag + JSP + + var + false + true + + + + lowerCase + org.apache.taglibs.string.LowerCaseTag + JSP + + var + false + true + + + + trim + org.apache.taglibs.string.TrimTag + JSP + + var + false + true + + + + chop + org.apache.taglibs.string.ChopTag + JSP + + var + false + true + + + + chopNewline + org.apache.taglibs.string.ChopNewlineTag + JSP + + var + false + true + + + + escape + org.apache.taglibs.string.EscapeTag + JSP + + var + false + true + + + + reverse + org.apache.taglibs.string.ReverseTag + JSP + + var + false + true + + + + swapCase + org.apache.taglibs.string.SwapCaseTag + JSP + + var + false + true + + + + soundex + org.apache.taglibs.string.SoundexTag + JSP + + var + false + true + + + + metaphone + org.apache.taglibs.string.MetaphoneTag + JSP + + var + false + true + + + + quoteRegexp + org.apache.taglibs.string.QuoteRegexpTag + JSP + + var + false + true + + + + capitalizeAllWords + org.apache.taglibs.string.CapitalizeAllWordsTag + JSP + + var + false + true + + + + removeXml + org.apache.taglibs.string.RemoveXmlTag + JSP + + var + false + true + + + + encodeUrl + org.apache.taglibs.string.EncodeUrlTag + JSP + + var + false + true + + + + decodeUrl + org.apache.taglibs.string.DecodeUrlTag + JSP + + var + false + true + + + + count + org.apache.taglibs.string.CountTag + JSP + + var + false + true + + + set + true + true + + + + delete + org.apache.taglibs.string.DeleteTag + JSP + + var + false + true + + + set + true + true + + + + squeeze + org.apache.taglibs.string.SqueezeTag + JSP + + var + false + true + + + set + true + true + + + + center + org.apache.taglibs.string.CenterTag + JSP + + var + false + true + + + delimiter + false + true + + + width + true + true + + + + rightPad + org.apache.taglibs.string.RightPadTag + JSP + + var + false + true + + + delimiter + false + true + + + width + true + true + + + + leftPad + org.apache.taglibs.string.LeftPadTag + JSP + + var + false + true + + + delimiter + false + true + + + width + true + true + + + + chomp + org.apache.taglibs.string.ChompTag + JSP + + var + false + true + + + delimiter + false + true + + + + getChomp + org.apache.taglibs.string.GetChompTag + JSP + + var + false + true + + + delimiter + false + true + + + + prechomp + org.apache.taglibs.string.PrechompTag + JSP + + var + false + true + + + delimiter + false + true + + + + getPrechomp + org.apache.taglibs.string.GetPrechompTag + JSP + + var + false + true + + + delimiter + false + true + + + + strip + org.apache.taglibs.string.StripTag + JSP + + var + false + true + + + delimiter + false + true + + + + stripEnd + org.apache.taglibs.string.StripEndTag + JSP + + var + false + true + + + delimiter + false + true + + + + stripStart + org.apache.taglibs.string.StripStartTag + JSP + + var + false + true + + + delimiter + false + true + + + + reverseDelimitedString + org.apache.taglibs.string.ReverseDelimitedStringTag + JSP + + var + false + true + + + delimiter + false + true + + + + overlay + org.apache.taglibs.string.OverlayTag + JSP + + var + false + true + + + with + true + true + + + start + true + true + + + end + true + true + + + + substring + org.apache.taglibs.string.SubstringTag + JSP + + var + false + true + + + start + false + true + + + end + false + true + + + + repeat + org.apache.taglibs.string.RepeatTag + JSP + + var + false + true + + + count + true + true + + + + wordWrap + org.apache.taglibs.string.WordWrapTag + JSP + + var + false + true + + + width + false + true + + + delimiter + false + true + + + split + false + true + + + delimiterInside + false + false + + + + nestedString + org.apache.taglibs.string.NestedStringTag + JSP + + var + false + true + + + open + true + true + + + close + false + true + + + + countMatches + org.apache.taglibs.string.CountMatchesTag + JSP + + var + false + true + + + substring + true + true + + + + default + org.apache.taglibs.string.DefaultTag + JSP + + var + false + true + + + value + false + true + + + default + false + true + + + + replace + org.apache.taglibs.string.ReplaceTag + JSP + + var + false + true + + + replace + true + true + + + with + true + true + + + count + false + true + + + newlineToken + false + true + + + carriageToken + false + true + + + + randomString + org.apache.taglibs.string.RandomStringTag + JSP + + var + false + true + + + count + true + true + + + start + false + true + + + end + false + true + + + type + false + true + + + + left + org.apache.taglibs.string.LeftTag + JSP + + var + false + true + + + count + true + true + + + + right + org.apache.taglibs.string.RightTag + JSP + + var + false + true + + + count + true + true + + + + mid + org.apache.taglibs.string.MidTag + JSP + + var + false + true + + + start + false + true + + + count + true + true + + + + truncateNicely + org.apache.taglibs.string.TruncateNicelyTag + JSP + + var + false + true + + + lower + false + true + + + upper + false + true + + + appendToEnd + false + true + + + + join + org.apache.taglibs.string.JoinTag + EMPTY + + items + true + true + + + separator + false + true + + + + split + org.apache.taglibs.string.SplitTag + JSP + + separator + true + true + + + var + true + true + + + + + + + + + + + diff -rupN jamm-0.9.6/WEB-INF/tiles/access_error.jsp jamm/WEB-INF/tiles/access_error.jsp --- jamm-0.9.6/WEB-INF/tiles/access_error.jsp 2003-12-02 09:51:00.000000000 -0500 +++ jamm/WEB-INF/tiles/access_error.jsp 2010-05-05 13:04:59.000000000 -0400 @@ -1,5 +1,5 @@ -

    +

    JAMM Access Error Page

    diff -rupN jamm-0.9.6/WEB-INF/tiles/account_admin.jsp jamm/WEB-INF/tiles/account_admin.jsp --- jamm-0.9.6/WEB-INF/tiles/account_admin.jsp 2003-12-02 09:51:00.000000000 -0500 +++ jamm/WEB-INF/tiles/account_admin.jsp 2012-02-11 17:16:51.000000000 -0500 @@ -1,19 +1,16 @@ -ACCOUNT ADMINISTRATION for -
    - - Change Password - +
    +

    Account settings:

    + +

    Change Password

    + -

    - Full Name: -

    - -

    - Submit -

    + + + Submit +
    +
    diff -rupN jamm-0.9.6/WEB-INF/tiles/account_exists_error.jsp jamm/WEB-INF/tiles/account_exists_error.jsp --- jamm-0.9.6/WEB-INF/tiles/account_exists_error.jsp 2003-12-02 09:51:00.000000000 -0500 +++ jamm/WEB-INF/tiles/account_exists_error.jsp 2012-02-10 16:25:14.000000000 -0500 @@ -1,25 +1,16 @@ -

    - Account or Alias already exists. -

    +
    -

    - An account or alias for - already exists. -

    +

    Account or Alias already exists

    + +

    An account or alias for already exists.

    -

    - - Please try again. - +

    Please try again.

    - - Please try again. - +

    Please try again.

    -

    - + +
    diff -rupN jamm-0.9.6/WEB-INF/tiles/add_account.jsp jamm/WEB-INF/tiles/add_account.jsp --- jamm-0.9.6/WEB-INF/tiles/add_account.jsp 2003-12-02 09:51:00.000000000 -0500 +++ jamm/WEB-INF/tiles/add_account.jsp 2012-02-10 16:46:31.000000000 -0500 @@ -1,53 +1,44 @@ -ADD ACCOUNT for domain -
    +
    +

    Add account on

    - - - - - - - - - - - - - - - - - - - - - - -
    - - - @ -
    - - - -
    - - - -
    - - - -

    - - - - - - -
    + + +
    +
    + + @ +
    +
    + + +
    +
    + + +
    +
    + + +
    + + + + + + + + +
    + diff -rupN jamm-0.9.6/WEB-INF/tiles/add_alias.jsp jamm/WEB-INF/tiles/add_alias.jsp --- jamm-0.9.6/WEB-INF/tiles/add_alias.jsp 2003-12-02 09:51:00.000000000 -0500 +++ jamm/WEB-INF/tiles/add_alias.jsp 2012-02-10 16:47:27.000000000 -0500 @@ -1,68 +1,53 @@ - -ADD ALIAS for domain +
    + +

    Add alias for domain

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - @ -
    - - - -
    - - - -
    - - - - -
    - - - - -
    - -

    - - - - - - -
    -
    + +
    +
    + + @ +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + + + +
    + + + + + + + + +
    diff -rupN jamm-0.9.6/WEB-INF/tiles/add_domain.jsp jamm/WEB-INF/tiles/add_domain.jsp --- jamm-0.9.6/WEB-INF/tiles/add_domain.jsp 2003-12-02 09:51:00.000000000 -0500 +++ jamm/WEB-INF/tiles/add_domain.jsp 2012-02-10 17:22:48.000000000 -0500 @@ -1,50 +1,35 @@ -ADD DOMAIN - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - - - - -
    - - - - -
    - -

    - - - - - - -
    -
    +
    +

    ADD DOMAIN

    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    + + + + + + + + +
    +

    +
    diff -rupN jamm-0.9.6/WEB-INF/tiles/alias_admin.jsp jamm/WEB-INF/tiles/alias_admin.jsp --- jamm-0.9.6/WEB-INF/tiles/alias_admin.jsp 2003-12-02 09:51:00.000000000 -0500 +++ jamm/WEB-INF/tiles/alias_admin.jsp 2012-02-11 15:30:30.000000000 -0500 @@ -1,55 +1,63 @@ -ALIAS ADMINISTRATION for -
    - - Change Password - +
    +

    Edit alias:

    - -

    - Full Name: -

    - - - - - - - - - - - - - - -
    Destination  - -
      - - - - - -
    -

    - List email addresses to add as destinations: -

    -

    - -

    -

    - Update Destinations -

    + + + +
    + + +
    +

    General settings

    + +

    Click here to change the alias password

    + +

    + + +

    + Update +
    +
    +

    Forwarding settings

    + + + +

    Destinations

    +

    Destinations are attributed to each particular alias. An email may be delivered to more than one recipient.

    +

    To delete an alias, click the checkbox and press 'Update destinations'.

    + + + + + + + + +
    + + + +
    + +

    +

    + + +

    + Update Destinations +

    + +
    diff -rupN jamm-0.9.6/WEB-INF/tiles/catch_all_admin.jsp jamm/WEB-INF/tiles/catch_all_admin.jsp --- jamm-0.9.6/WEB-INF/tiles/catch_all_admin.jsp 2003-12-02 09:51:00.000000000 -0500 +++ jamm/WEB-INF/tiles/catch_all_admin.jsp 2010-05-06 06:59:05.000000000 -0400 @@ -1,37 +1,28 @@ - - CATCH-ALL ADMIN for domain - +
    +

    Edit Catch-All for domain

    +

    Note: all mail to this domain will be forwarded to the specified address below.

    - - - - - - - - - - -
    - : - - - -
    - - -
    - : - - -
    -
    - - - - - - + +

    + + + +

    +

    + + +

    + + + + + +
    +
    diff -rupN jamm-0.9.6/WEB-INF/tiles/change_password.jsp jamm/WEB-INF/tiles/change_password.jsp --- jamm-0.9.6/WEB-INF/tiles/change_password.jsp 2003-12-02 09:51:00.000000000 -0500 +++ jamm/WEB-INF/tiles/change_password.jsp 2012-02-10 16:46:05.000000000 -0500 @@ -1,40 +1,33 @@ - -CHANGE PASSWORD for - - - - - - - - - - - - - - - - - -
    - - - -
    - - - -

    - - - - - Clear Password - - - - -
    -
    +
    + +

    Change password for

    + + + + +
    +
    + + +
    +
    + + +
    + + + + + Reset + + + + + +
    +
    diff -rupN jamm-0.9.6/WEB-INF/tiles/communication_error.jsp jamm/WEB-INF/tiles/communication_error.jsp --- jamm-0.9.6/WEB-INF/tiles/communication_error.jsp 2003-12-02 09:51:00.000000000 -0500 +++ jamm/WEB-INF/tiles/communication_error.jsp 2010-05-06 07:05:06.000000000 -0400 @@ -1,9 +1,7 @@ -

    - JAMM Communication Error Page +

    + JAMM Communication Error Page

    - - - + + diff -rupN jamm-0.9.6/WEB-INF/tiles/domain_admin.jsp jamm/WEB-INF/tiles/domain_admin.jsp --- jamm-0.9.6/WEB-INF/tiles/domain_admin.jsp 2003-12-02 09:51:00.000000000 -0500 +++ jamm/WEB-INF/tiles/domain_admin.jsp 2012-02-10 16:54:23.000000000 -0500 @@ -1,226 +1,241 @@ -DOMAIN ADMINISTRATION for -
    +
    +

    Domain administration for

    - - - -
    - -Catch-All: - - - Destination: - - - - - - Edit Catch-All - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - MANAGE ACCOUNTS - - - - - -   - - - - - -
    -   - - - -  "" - -
    -
    - - - - - - - - - - - - - -
    - - - - - - - -
    -
    - - - - - - - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - MANAGE ALIASES - - - -   - - - - - -
    -   - - - -  "" - -
     Destinations: - -
    -
    - - - - - - - - - - - - - -
    - - -
    -
    - - - - - -
    -
    + + +

    +
    + + +
    +

    Global Domain Settings

    + +

    Catch all is currently active!
    Destination:

    +
    +

    +

    Use this option to change the password for the postmaster user (postmaster@)

    +

    Edit Catch-All

    +

    A catch-all enables all mail to the domain @ to be delivered to a single inbox

    +

    back to menu

    +
    +
    +

    Account Management

    + +

    +
    +

    Accounts currently listed on

    +

    No aliases listed. Use the link above to add a new one.

    + + + + + + + + + + + + + + + + + + <%-- FUCKING SON OF A BITCH + + + + + + + + --%> + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Accounts list
    Address/name
    + + + + () + + + + + + + + +
    + + +
     
    + + + + + +
    + +
    + +
    +
    + + + +
    +

    Fowards (Mail Aliases)

    + +

    + +

    Aliases currently listed on

    + +

    No aliases listed. Use the link above to add a new one.

    + + <%-- alias form begin --%> + + <%-- Alias - hidden values --%> + + + + + + + + + + + + + + + + + + + + + + + class="odd green" <% } else {%> class ="even green" <%} %> + onmouseover='OverRow(this, "<%=alias.getName()%>")' + onmouseout='OutRow(this, "<%=alias.getName()%>")'> + + + + + + + + + +
      
      + + + +  “” + +
    Redirects to: + +
    +
    + + + + + + + + + + + + + +
    + + + + + + +
    +
    + +
    +
    + +<%-- + +
    + + + + + +
    +
    +
      + +
    • +
        +
      •   + + + +   + "" + +
      • +
      • + +
      • + +
      + + +
       
      + +--%> + +
    diff -rupN jamm-0.9.6/WEB-INF/tiles/domain_exists_error.jsp jamm/WEB-INF/tiles/domain_exists_error.jsp --- jamm-0.9.6/WEB-INF/tiles/domain_exists_error.jsp 2003-12-02 09:51:00.000000000 -0500 +++ jamm/WEB-INF/tiles/domain_exists_error.jsp 2012-02-10 16:24:47.000000000 -0500 @@ -1,9 +1,11 @@ -

    +
    +

    JAMM Account or Alias Error Page

    - + + \ No newline at end of file diff -rupN jamm-0.9.6/WEB-INF/tiles/general_error.jsp jamm/WEB-INF/tiles/general_error.jsp --- jamm-0.9.6/WEB-INF/tiles/general_error.jsp 2003-12-02 09:51:00.000000000 -0500 +++ jamm/WEB-INF/tiles/general_error.jsp 2012-02-10 16:24:42.000000000 -0500 @@ -1,5 +1,5 @@ -

    +

    JAMM Error Page

    diff -rupN jamm-0.9.6/WEB-INF/tiles/login.jsp jamm/WEB-INF/tiles/login.jsp --- jamm-0.9.6/WEB-INF/tiles/login.jsp 2003-12-02 09:51:00.000000000 -0500 +++ jamm/WEB-INF/tiles/login.jsp 2012-02-10 16:39:50.000000000 -0500 @@ -1,38 +1,42 @@ -MAIL ADMINISTRATION -
    - - + + + - - - - - - - - - - - - - - -
    - - - -
    - - - -

    - - - - - - -
    + + +
    + <%-- --%> +
    + +

    eMail Admin: Please log in

    + + +
    +
    +
    +
    +
    + + +
    +
    + + +
    +
    + + + + + + +
    +
    +
    +
    + +
    +
    diff -rupN jamm-0.9.6/WEB-INF/tiles/permission_error.jsp jamm/WEB-INF/tiles/permission_error.jsp --- jamm-0.9.6/WEB-INF/tiles/permission_error.jsp 2003-12-02 09:51:00.000000000 -0500 +++ jamm/WEB-INF/tiles/permission_error.jsp 2010-01-03 10:03:14.000000000 -0500 @@ -1,6 +1,6 @@

    - JAMM Permission Error Page + Permission Error!

    --> -SITE ADMINISTRATION +
    +

    SITE ADMINISTRATION

    - - - - - - - - - - - + + + +
    - MANAGE DOMAINS - - - -   - - - - - - - -
    + + + + + + + + + + + + class="odd" <% } else {%> class ="even" <%} %> + onmouseover='OverRow(this, "<%=domain.getName()%>")' onmouseout='OutRow(this, "<%=domain.getName()%>")'> + + - - - - - - - -
    Manage Domains
      
    + + + + mailboxes, + aliases. + + + + - - - -
    -
    -   - accounts: -   - aliases: -
    -
    - - - - - - - - - - - - - - - - - -
    - - - -
    -
    - - - -
    + + + +

    + + + + + + + + + + +
    +
    +
    + + + +
    +
    + diff -rupN jamm-0.9.6/WEB-INF/web.xml jamm/WEB-INF/web.xml --- jamm-0.9.6/WEB-INF/web.xml 2003-12-02 09:51:02.000000000 -0500 +++ jamm/WEB-INF/web.xml 2011-05-31 10:07:06.000000000 -0400 @@ -86,6 +86,11 @@ in your merge dir. --> + + http://jakarta.apache.org/taglibs/string-1.1 + /WEB-INF/taglibs-string.tld + + Binary files jamm-0.9.6/commons-lang.jar and jamm/commons-lang.jar differ Binary files jamm-0.9.6/imgs/appoint_postmasters.png and jamm/imgs/appoint_postmasters.png differ Binary files jamm-0.9.6/imgs/button-domain.png and jamm/imgs/button-domain.png differ Binary files jamm-0.9.6/imgs/button-logout.png and jamm/imgs/button-logout.png differ Binary files jamm-0.9.6/imgs/button-site.png and jamm/imgs/button-site.png differ Binary files jamm-0.9.6/imgs/delete_domain.png and jamm/imgs/delete_domain.png differ Binary files jamm-0.9.6/imgs/domain_is_active.png and jamm/imgs/domain_is_active.png differ Binary files jamm-0.9.6/imgs/edit_accounts.png and jamm/imgs/edit_accounts.png differ Binary files jamm-0.9.6/imgs/jamm_logo.gif and jamm/imgs/jamm_logo.gif differ Binary files jamm-0.9.6/imgs/login-background.png and jamm/imgs/login-background.png differ Binary files jamm-0.9.6/imgs/login-bottom.png and jamm/imgs/login-bottom.png differ Binary files jamm-0.9.6/imgs/login-top.png and jamm/imgs/login-top.png differ diff -rupN jamm-0.9.6/jamm.tmproj jamm/jamm.tmproj --- jamm-0.9.6/jamm.tmproj 1969-12-31 19:00:00.000000000 -0500 +++ jamm/jamm.tmproj 2012-02-12 17:34:20.000000000 -0500 @@ -0,0 +1,78 @@ + + + + + currentDocument + WEB-INF/tiles/add_account.jsp + documents + + + expanded + + name + jamm + regexFolderFilter + !.*/(\.[^/]*|CVS|_darcs|_MTN|\{arch\}|blib|.*~\.nib|.*\.(framework|app|pbproj|pbxproj|xcode(proj)?|bundle))$ + sourceDirectory + + + + fileHierarchyDrawerWidth + 200 + metaData + + WEB-INF/tiles/access_error.jsp + + caret + + column + 0 + line + 0 + + firstVisibleColumn + 0 + firstVisibleLine + 0 + + WEB-INF/tiles/account_exists_error.jsp + + caret + + column + 131 + line + 12 + + firstVisibleColumn + 0 + firstVisibleLine + 0 + + WEB-INF/tiles/add_account.jsp + + caret + + column + 0 + line + 40 + + firstVisibleColumn + 0 + firstVisibleLine + 8 + + + openDocuments + + WEB-INF/tiles/access_error.jsp + WEB-INF/tiles/account_exists_error.jsp + WEB-INF/tiles/add_account.jsp + + showFileHierarchyDrawer + + windowFrame + {{61, 182}, {1113, 696}} + + diff -rupN jamm-0.9.6/login.jsp jamm/login.jsp --- jamm-0.9.6/login.jsp 2003-12-02 09:51:00.000000000 -0500 +++ jamm/login.jsp 2009-12-24 05:55:39.000000000 -0500 @@ -1,4 +1,4 @@ - + diff -rupN jamm-0.9.6/private/site_admin.jsp jamm/private/site_admin.jsp --- jamm-0.9.6/private/site_admin.jsp 2003-12-02 09:51:00.000000000 -0500 +++ jamm/private/site_admin.jsp 2012-02-08 01:49:11.000000000 -0500 @@ -1,4 +1,4 @@ - + Binary files jamm-0.9.6/private/tab/.index.html.swp and jamm/private/tab/.index.html.swp differ diff -rupN jamm-0.9.6/private/tab/AddCSS.js jamm/private/tab/AddCSS.js --- jamm-0.9.6/private/tab/AddCSS.js 1969-12-31 19:00:00.000000000 -0500 +++ jamm/private/tab/AddCSS.js 2009-07-26 16:08:08.000000000 -0400 @@ -0,0 +1,59 @@ +//*** This code is copyright 2002-2003 by Gavin Kistner, gavin@refinery.com +//*** It is covered under the license viewable at http://phrogz.net/JS/_ReuseLicense.txt +//*** Reuse or modification is free provided you abide by the terms of that license. +//*** (Including the first two lines above in your source code satisfies the conditions.) + +// Add a new stylesheet to the document; +// url [optional] A url to an external stylesheet to use +// idx [optional] The index in document.styleSheets to insert the new sheet before +function AddStyleSheet(url,idx){ + var css,before=null,head=document.getElementsByTagName("head")[0]; + + if (document.createElement){ + if (url){ + css = document.createElement('link'); + css.rel = 'stylesheet'; + css.href = url; + } else css = document.createElement('style'); + css.media = 'all'; + css.type = 'text/css'; + + if (idx>=0){ + for (var i=0,ct=0,len=head.childNodes.length;i0?' ':'')+cName); } + +//***Removes a particular class from an object, preserving other existing classes. +function KillClass(obj,cName){ return obj && (obj.className=obj.className.replace(new RegExp("^"+cName+"\\b\\s*|\\s*\\b"+cName+"\\b",'g'),'')); } + +//***Returns true if the object has the class assigned, false otherwise. +function HasClass(obj,cName){ return (!obj || !obj.className)?false:(new RegExp("\\b"+cName+"\\b")).test(obj.className) } + diff -rupN jamm-0.9.6/private/tab/attachevent.js jamm/private/tab/attachevent.js --- jamm-0.9.6/private/tab/attachevent.js 1969-12-31 19:00:00.000000000 -0500 +++ jamm/private/tab/attachevent.js 2009-07-26 16:08:08.000000000 -0400 @@ -0,0 +1,34 @@ +//*** This code is copyright 2003 by Gavin Kistner, gavin@refinery.com +//*** It is covered under the license viewable at http://phrogz.net/JS/_ReuseLicense.txt +//*** Reuse or modification is free provided you abide by the terms of that license. +//*** (Including the first two lines above in your source code satisfies the conditions.) + + +//***Cross browser attach event function. For 'evt' pass a string value with the leading "on" omitted +//***e.g. AttachEvent(window,'load',MyFunctionNameWithoutParenthesis,false); + +function AttachEvent(obj,evt,fnc,useCapture){ + if (!useCapture) useCapture=false; + if (obj.addEventListener){ + obj.addEventListener(evt,fnc,useCapture); + return true; + } else if (obj.attachEvent) return obj.attachEvent("on"+evt,fnc); + else{ + MyAttachEvent(obj,evt,fnc); + obj['on'+evt]=function(){ MyFireEvent(obj,evt) }; + } +} + +//The following are for browsers like NS4 or IE5Mac which don't support either +//attachEvent or addEventListener +function MyAttachEvent(obj,evt,fnc){ + if (!obj.myEvents) obj.myEvents={}; + if (!obj.myEvents[evt]) obj.myEvents[evt]=[]; + var evts = obj.myEvents[evt]; + evts[evts.length]=fnc; +} +function MyFireEvent(obj,evt){ + if (!obj || !obj.myEvents || !obj.myEvents[evt]) return; + var evts = obj.myEvents[evt]; + for (var i=0,len=evts.length;ibody ul.domtabs a:link, + html>body ul.domtabs a:visited, + html>body ul.domtabs a:active, + html>body ul.domtabs a:hover{ + height:auto; + min-height:3em; + } + ul.domtabs a:hover{ + background:#696; + } + div.domtab div{ + clear:both; + width:auto; + background:#696; + color:#fff; + padding:1em 3em; + } + ul.domtabs li.active a:link, + ul.domtabs li.active a:visited, + ul.domtabs li.active a:active, + ul.domtabs li.active a:hover{ + background:#696; + color:#fff; + } + #domtabprintview{ + display:none; + float:right; + padding-right:1em; + text-align:right; + } + #domtabprintview a:link, + #domtabprintview a:visited, + #domtabprintview a:active, + #domtabprintview a:hover{ + color:#fff; + } + p{ + margin:0 0 .5em 0; + line-height:1.3em; + } + #domtabs h2{ + font-size:1.3em; + color:#cfc; + text-transform:uppercase; + font-family:"Trebuchet MS",Arial,Sans-Serif; + padding:0 0 .7em .2em; + } + h1{ + font-size:2em; + text-align:center; + font-weight:normal; + text-transform:uppercase; + font-family:"Trebuchet MS",Arial,Sans-Serif; + padding:.5em 0; + background:#000; + border-bottom:1px solid #666; + } + pre{ + font-size:1.2em; + padding:1em; + } + div.domtabs div a:link, + div.domtabs div a:visited, + div.domtabs div a:active + { + color:#fff; + display:block; + padding:1em .5em; + font-weight:bold; + font-size:1.3em; + } + div.domtab div h2 a, + div.domtab div h2 a:hover, + div.domtab div h2 a:active + { + color:#cfc; + display:inline; + padding:0; + font-weight:normal; + font-size:1em; + } + +/* other scheme! */ +#other{ + font-size:.8em; + margin-left:.3em; + width:60em; + margin-bottom:3em; + float:left; +} +div#other.domtabs div{ + clear:both; + width:54em; + background:#669; + color:#fff; + padding:1em 3em; +} + +#other ul.domtabs a:hover{ + background:#669; +} +div#other ul.domtabs li.active a:link, +div#other ul.domtabs li.active a:visited, +div#other ul.domtabs li.active a:active, +div#other ul.domtabs li.active a:hover{ + background:#669; + color:#fff; +} +#other div{ + float:left; +} +ul.prevnext{ + float:left; + width:100%; +} +ul.prevnext li{ + float:left; + width:49%; +} +ul.prevnext li.next{ + float:right; + text-align:right; +} diff -rupN jamm-0.9.6/private/tab/domtab.js jamm/private/tab/domtab.js --- jamm-0.9.6/private/tab/domtab.js 1969-12-31 19:00:00.000000000 -0500 +++ jamm/private/tab/domtab.js 2006-03-01 17:38:10.000000000 -0500 @@ -0,0 +1,256 @@ +/* + DOMtab Version 3.1415927 + Updated March the First 2006 + written by Christian Heilmann + check blog for updates: http://www.wait-till-i.com + free to use, not free to resell +*/ + +domtab={ + tabClass:'domtab', // class to trigger tabbing + listClass:'domtabs', // class of the menus + activeClass:'active', // class of current link + contentElements:'div', // elements to loop through + backToLinks:/#top/, // pattern to check "back to top" links + printID:'domtabprintview', // id of the print all link + showAllLinkText:'show all content', // text for the print all link + prevNextIndicator:'doprevnext', // class to trigger prev and next links + prevNextClass:'prevnext', // class of the prev and next list + prevLabel:'previous', // HTML content of the prev link + nextLabel:'next', // HTML content of the next link + prevClass:'prev', // class for the prev link + nextClass:'next', // class for the next link + init:function(){ + var temp; + if(!document.getElementById || !document.createTextNode){return;} + var tempelm=document.getElementsByTagName('div'); + for(var i=0;i + + + + DOMTab - Navigation tabs with CSS and DOMscripting + + + + + + + +

    DOMTab - Navigation tabs with CSS and DOMscripting

    +

    +
    + +
    +

    What is DOMtab?

    +

    DOMtab is a JavaScript that turns a list of links connected to content + sections into a tab interface. The script removes any "back to top" links + in the section and automatically hides all but the first one when the + page is loaded. You can use as many tabbed menus on the page as you want + to.

    +

    New: If the URL of the page links directly to one of the tabs it get automatically + highlighted.

    +

    You can define with an extra class if you want previous and next links + or not.

    +

    DOMtab uses Unobtrusive JavaScript and does not have any global functions or variables. This page uses DOMtab.

    +

    To do: internal links highlighting tabs (too busy for that now)

    +

    Comment on the Blog

    +

    Donations help me buy coffee to stay awake!

    +

    back to menu

    +
    +
    +

    How to use DOMtab

    +

    Applying DOMtab to your pages is easy, all you need is to call the + script in the head of the document:

    +
    <script type="text/javascript" src="domtab.js"></script>
    +

    DOMtab expects the following classes and element structure to work:

    +
    <div class="domtab">
    +  <ul class="domtabs">
    +    <li><a href="#t1">Test 1</a></li>
    +    <li><a href="#t2">Test 2</a></li>
    +[... and so on ...]
    +  </ul>
    +  <div>
    +    <h2><a name="t1" id="t1">Proof 1</a></h2>
    +    <p>Test to prove that more than one menu is possible</p>
    +    <p><a href="#top">back to menu</a></p>
    +  </div>
    +  <div>
    +    <h2><a name="t2" id="t2">Proof 2</a></h2>
    +    <p>Test to prove that more than one menu is possible</p>
    +    <p><a href="#top">back to menu</a></p>
    +  </div>
    +[... and so on ...]
    +</div>
    +

    The showing and hiding of sections is achieved by reading out the hash data +of the link url and retrieving the parent element of the element with the ID the +original link points to.

    +

    The links to remove are identified via a pattern in their href attribute, preset to "#top".

    +

    If there is an element with the id domtabprintview in the document, DOMtab will +create a link to show all elements in this one.

    +

    You can change all the settings in the script itself, as all HTML expections are +parameters:

    +
    tabClass:'domtab', // class to trigger tabbing
    +listClass:'domtabs', // class of the menus
    +activeClass:'active', // class of current link
    +contentElements:'div', // elements to loop through
    +backToLinks:/#top/, // pattern to check "back to top" links
    +printID:'domtabprintview', // id of the print all link
    +showAllLinkText:'show all content', // text for the print all link
    +
    +

    back to menu

    +
    +
    +

    Previous and next links

    +

    In this version I added the option to have previous and next links + to navigate around the tabs in addition to clicking them.

    +

    If you want DOMtab to generate those, all you need to do is to + add the class "doprevnext" in addition to the domtab class to + the div in question:

    +
    <div class="domtab doprevnext">
    +  <ul class="domtabs">
    +    <li><a href="#t1">Test 1</a></li>
    +    <li><a href="#t2">Test 2</a></li>
    +    <li><a href="#t3">Test 3</a></li>
    +    <li><a href="#t4">Test 4</a></li>
    +  </ul>
    +  [... ad nauseam...]
    +</div>
    +

    DOMtab then generates the following link list in each of the sections, automatically +removing the previous link in the first and the next in the last section:

    +
    <ul class="prevnext">
    +  <li class="prev"><a href="#">previous</a></li>
    +  <li class="next"><a href="#">next</a></li>
    + </ul>
    +

    Once again, you can override any of these settings in the script's parameters:

    +
    prevNextIndicator:'doprevnext', // class to trigger links
    +prevNextClass:'prevnext', // class of the prev and next list
    +prevLabel:'previous', // HTML content of the prev link
    +nextLabel:'next', // HTML content of the next link
    +prevClass:'prev', // class for the prev link
    +nextClass:'next', // class for the next link
    +
    +

    Both labels are set via innerHTML rather than the proper method :-). This allows you to +use images if wanted:

    +
    prevLabel:'<img src="massivebuttonprev.png" alt="previous" />',
    +

    back to menu

    +
    +
    +

    How to style DOMtab

    +

    Using the mandatory classes domtab for the main DIV of each menu, + and domtabs for the menu list, you can pretty much style your menus + any way you want to.

    +

    DOMtab adds the class "active" to the LI containing the currently + active link, to allow you to highlight the currently chosen tab.

    +

    The previous and next links get classes on their own, which makes + it easy to style them differently.

    +

    The showing and hiding of the sections is done via JavaScript using + display block and none. It would be pretty easy to replace this with + a styleable show and hide class, if you want to have that, please + contact me on the blog.

    +

    If you want to avoid the initial flash of all the content until the + script kicks in, you can cheat by adding the following code in the head + right after the script element with the domtab call:

    +
    
    +<script type="text/javascript">
    +  document.write('<style type="text/css">');    
    +  document.write('div.domtab div{display:none;}<');
    +  document.write('/s'+'tyle>');    
    +</script>
    +
    +

    back to menu

    +
    +
    +

    Download DOMtab

    +

    DOMtab is provided as-is and I don't take any responsibility for any problems +that might occur for using it.

    +

    It is free to use, but not free to resell. If you want to use DOMtab in a +commercial site/product please contact me.

    + + +

    back to menu

    +
    +
    +
    + +

    You can use content in between the tabs and the sections

    +
    +

    Proof 1

    +

    Test to prove that more than one menu is possible

    +

    back to menu

    +
    +
    +

    Proof 2

    +

    Test to prove that more than one menu is possible

    +

    back to menu

    +
    +
    +

    Proof 3

    +

    Test to prove that more than one menu is possible

    +

    back to menu

    +
    +
    +

    Proof 4

    +

    Test to prove that more than one menu is possible

    +

    back to menu

    +
    +
    + + + diff -rupN jamm-0.9.6/private/tab/tabtastic.css jamm/private/tab/tabtastic.css --- jamm-0.9.6/private/tab/tabtastic.css 1969-12-31 19:00:00.000000000 -0500 +++ jamm/private/tab/tabtastic.css 2009-06-27 16:52:41.000000000 -0400 @@ -0,0 +1,17 @@ +.tabset_tabs { margin:0; padding:0; list-style-type:none; position:relative; z-index:2; white-space:nowrap } +.tabset_tabs li { margin:0; padding:0; display:inline } +.tabset_tabs a { color:#339 ! important; background-color:#def ! important; border:1px solid #99c; text-decoration:none; padding:0 0.6em; border-left-width:0; border-bottom:none } +.tabset_tabs a:hover { color:#00c ! important; background-color:#eff ! important } +.tabset_tabs a.active { color:black ! important; background-color:white ! important; border-color:black; border-left-width:1px; cursor:default; border-bottom:white; padding-top:1px; padding-bottom:1px } + +.tabset_tabs li.firstchild a { border-left-width:1px } + +.tabset_content { border:1px solid black; background-color:white; position:relative; z-index:1; padding:0.5em 1em; display:none } +.tabset_label { display:none } + +.tabset_content_active { display:block } + +@media aural{ + .tabset_content, + .tabset_label { display:block } +} \ No newline at end of file diff -rupN jamm-0.9.6/private/tab/tabtastic.js jamm/private/tab/tabtastic.js --- jamm-0.9.6/private/tab/tabtastic.js 1969-12-31 19:00:00.000000000 -0500 +++ jamm/private/tab/tabtastic.js 2009-07-23 03:03:16.000000000 -0400 @@ -0,0 +1,92 @@ +//*** This library is copyright 2004 by Gavin Kistner, !@phrogz.net +//*** It is covered under the license viewable at http://phrogz.net/JS/_ReuseLicense.txt +//*** Reuse or modification is free provided you abide by the terms of that license. +//*** (Including the first two lines above in your source code mostly satisfies the conditions.) + +//*** Tabtastic -- see http://phrogz.net/JS/Tabstatic/index.html +//*** Version 1.0 20040430 Initial release. +//*** 1.0.2 20040501 IE5Mac, IE6Win compat. +//*** 1.0.3 20040501 Removed IE5Mac/Opera7 compat. (see http://phrogz.net/JS/Tabstatic/index.html#notes) +//*** 1.0.4 20040521 Added scroll-back hack to prevent scrolling down to page anchor. Then commented out :) + +AttachEvent(window,'load',function(){ + var tocTag='ul',tocClass='tabset_tabs',tabTag='a',contentClass='tabset_content'; + + + function FindEl(tagName,evt){ + if (!evt && window.event) evt=event; + if (!evt) return DebugOut("Can't find an event to handle in DLTabSet::SetTab",0); + var el=evt.currentTarget || evt.srcElement; + while (el && (!el.tagName || el.tagName.toLowerCase()!=tagName)) el=el.parentNode; + return el; + } + + function SetTabActive(tab){ + if (tab.tabTOC.activeTab){ + if (tab.tabTOC.activeTab==tab) return; + KillClass(tab.tabTOC.activeTab,'active'); + if (tab.tabTOC.activeTab.tabContent) KillClass(tab.tabTOC.activeTab.tabContent,'tabset_content_active'); + //if (tab.tabTOC.activeTab.tabContent) tab.tabTOC.activeTab.tabContent.style.display=''; + if (tab.tabTOC.activeTab.prevTab) KillClass(tab.tabTOC.activeTab.previousTab,'preActive'); + if (tab.tabTOC.activeTab.nextTab) KillClass(tab.tabTOC.activeTab.nextTab,'postActive'); + } + AddClass(tab.tabTOC.activeTab=tab,'active'); + if (tab.tabContent) AddClass(tab.tabContent,'tabset_content_active'); + //if (tab.tabContent) tab.tabContent.style.display='block'; + if (tab.prevTab) AddClass(tab.prevTab,'preActive'); + if (tab.nextTab) AddClass(tab.nextTab,'postActive'); + } + function SetTabFromAnchor(evt){ + //setTimeout('document.body.scrollTop='+document.body.scrollTop,1); + SetTabActive(FindEl('a',evt).semanticTab); + } + + + function Init(){ + window.everyTabThereIsById = {}; + + var anchorMatch = /#([a-z][\w.:-]*)$/i,match; + var activeTabs = []; + + var tocs = document.getElementsByTagName(tocTag); + for (var i=0,len=tocs.length;i