You can subscribe to this list here.
| 2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(48) |
Dec
(31) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2005 |
Jan
(22) |
Feb
(68) |
Mar
(185) |
Apr
(11) |
May
(21) |
Jun
(23) |
Jul
(46) |
Aug
(69) |
Sep
(211) |
Oct
(26) |
Nov
(51) |
Dec
(52) |
| 2006 |
Jan
(13) |
Feb
(13) |
Mar
(8) |
Apr
(21) |
May
(17) |
Jun
(100) |
Jul
(34) |
Aug
(23) |
Sep
(26) |
Oct
(16) |
Nov
|
Dec
|
| 2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(66) |
Oct
(10) |
Nov
(1) |
Dec
|
| 2008 |
Jan
|
Feb
|
Mar
(1) |
Apr
(3) |
May
(8) |
Jun
(5) |
Jul
(31) |
Aug
(8) |
Sep
(11) |
Oct
(6) |
Nov
|
Dec
|
| 2012 |
Jan
(13) |
Feb
(2) |
Mar
(9) |
Apr
(6) |
May
(24) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(120) |
| 2013 |
Jan
(6) |
Feb
(35) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <pb...@fe...> - 2012-12-17 16:49:25
|
Author: pboy Date: 2012-12-17 16:49:14 +0000 (Mon, 17 Dec 2012) New Revision: 2414 Added: contrib/camden/ccm-ldn-camden-aplaws/bundles/intranet/ Removed: contrib/camden/ccm-ldn-camden-aplaws/bundles/camden-essentials/ Log: Unifying name space (part 2) |
|
From: <pb...@fe...> - 2012-12-17 16:46:06
|
Author: pboy Date: 2012-12-17 16:45:58 +0000 (Mon, 17 Dec 2012) New Revision: 2413 Added: contrib/camden/ccm-ldn-camden-aplaws/ Removed: contrib/camden/ccm-ldn-camden-intranet/ Log: Unifying name space |
|
From: <pb...@fe...> - 2012-12-17 13:35:55
|
Author: pboy Date: 2012-12-17 13:35:42 +0000 (Mon, 17 Dec 2012) New Revision: 2412 Removed: releases/2.0.0/ccm-bundle/bundles/devel/ releases/2.0.0/ccm-ldn-aplaws/bundles/devel/ releases/2.0.0/ccm-simplesurvey/ releases/2.0.0/ccm-weblog/ releases/2.0.0/ccm-webpage/ Log: Removed devel bundles (not part of version 2.0 official release). |
|
From: <pb...@fe...> - 2012-12-17 13:19:58
|
Author: pboy
Date: 2012-12-17 13:19:48 +0000 (Mon, 17 Dec 2012)
New Revision: 2411
Modified:
releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/GenericContact.java
releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericOrganizationalUnitPersonAddForm.java
Log:
Backport r2408 (on behalf of JensP)
Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/GenericContact.java
===================================================================
--- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/GenericContact.java 2012-12-17 13:07:53 UTC (rev 2410)
+++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/GenericContact.java 2012-12-17 13:19:48 UTC (rev 2411)
@@ -301,6 +301,31 @@
@Override
public void generateXML(ContentItem item, Element element, PageState state) {
+ if (getPerson() != null) {
+ Element personElem = element.newChildElement("person");
+ GenericPerson person = getPerson();
+
+ if ((person.getSurname() != null) && !person.getSurname().isEmpty()) {
+ Element surnameElem = personElem.newChildElement("surname");
+ surnameElem.setText(person.getSurname());
+ }
+
+ if ((person.getGivenName() != null) && !person.getGivenName().isEmpty()) {
+ Element givenNameElem = personElem.newChildElement("givenname");
+ givenNameElem.setText(person.getGivenName());
+ }
+
+ if ((person.getTitlePre() != null) && !person.getTitlePre().isEmpty()) {
+ Element titlePreElem = personElem.newChildElement("titlepre");
+ titlePreElem.setText(person.getTitlePre());
+ }
+
+ if ((person.getTitlePost() != null) && !person.getTitlePost().isEmpty()) {
+ Element titlePostElem = personElem.newChildElement("titlepost");
+ titlePostElem.setText(person.getTitlePost());
+ }
+ }
+
StringTokenizer keys = s_config.getContactEntryKeys();
Element contactKeysElem = element.newChildElement("contactEntryKeys");
Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericOrganizationalUnitPersonAddForm.java
===================================================================
--- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericOrganizationalUnitPersonAddForm.java 2012-12-17 13:07:53 UTC (rev 2410)
+++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericOrganizationalUnitPersonAddForm.java 2012-12-17 13:19:48 UTC (rev 2411)
@@ -81,7 +81,7 @@
findByAssociatedObjectType(getPersonType()));
/*m_itemSearch.getItemField().addValidationListener(
new NotNullValidationListener());*/
- m_itemSearch.setDisableCreatePane(true);
+ m_itemSearch.setDisableCreatePane(false);
add(this.m_itemSearch);
selectedPersonNameLabel = new Label("");
|
|
From: <pb...@fe...> - 2012-12-17 13:08:05
|
Author: pboy
Date: 2012-12-17 13:07:53 +0000 (Mon, 17 Dec 2012)
New Revision: 2410
Modified:
releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ContentBundle.java
releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ContentItem.java
releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/category/CategorizedObjectsList.java
releases/2.0.0/ccm-core/src/com/arsdigita/categorization/Category.java
releases/2.0.0/ccm-core/src/com/arsdigita/categorization/CategoryCollection.java
Log:
Fixed sort order in object lists (backport r2407). (on behalf of JensP)
Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ContentBundle.java
===================================================================
--- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ContentBundle.java 2012-12-17 13:04:19 UTC (rev 2409)
+++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ContentBundle.java 2012-12-17 13:07:53 UTC (rev 2410)
@@ -670,7 +670,8 @@
CategoryCollection categories = source.getCategoryCollection();
while (categories.next()) {
final Category category = categories.getCategory();
- category.addChild(this);
+
+ category.addChild(this, categories.getSortKey());
category.save(); // XXX remove me
}
categories.close();
Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ContentItem.java
===================================================================
--- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ContentItem.java 2012-12-17 13:04:19 UTC (rev 2409)
+++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ContentItem.java 2012-12-17 13:07:53 UTC (rev 2410)
@@ -1893,6 +1893,7 @@
}
// If live Bundle already exists, recategorize.
+ // jensp 2012: Behavior changed. The ContentBundle will also be republished.
if (PARENT.equals(attribute)) {
ACSObject parent = ((ContentItem) source).getParent();
if (parent != null && copier.getCopyType()
@@ -1906,9 +1907,7 @@
//published because the ContentBundle was not republished.
//Moved the next lines out of the if below to enable
//republishing of the ContentBundle
- final ContentBundle liveBundle =
- (ContentBundle) bundle.
- createPendingVersion(null);
+ final ContentBundle liveBundle = (ContentBundle) bundle.createPendingVersion(null);
/*
* if (liveBundle == null) { } else { Set liveCatSet = new
* HashSet(); Set draftCatSet = new HashSet();
Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/category/CategorizedObjectsList.java
===================================================================
--- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/category/CategorizedObjectsList.java 2012-12-17 13:04:19 UTC (rev 2409)
+++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/category/CategorizedObjectsList.java 2012-12-17 13:07:53 UTC (rev 2410)
@@ -35,7 +35,6 @@
import java.math.BigDecimal;
import javax.servlet.ServletException;
-
/**
* A List of all objects currently categorized under this category
*
@@ -52,25 +51,36 @@
setModelBuilder(new CategorizedObjectsModelBuilder());
- Label label = new Label(GlobalizationUtil.globalize
- ("cms.ui.category.item.none"));
+ Label label = new Label(GlobalizationUtil.globalize("cms.ui.category.item.none"));
label.setFontWeight(Label.ITALIC);
setEmptyView(label);
}
/**
- * This actually performs the sorting
+ * This actually performs the sorting
*/
public void respond(PageState ps) throws ServletException {
- String event = ps.getControlEventName();
+ final String event = ps.getControlEventName();
if (NEXT_EVENT.equals(event) || PREV_EVENT.equals(event)) {
- BigDecimal selectedID = new BigDecimal(ps.getControlEventValue());
- Category parent = getCategory(ps);
+ final BigDecimal selectedID = new BigDecimal(ps.getControlEventValue());
+ final Category parent = getCategory(ps);
+
+ final ContentItem selectedItem = new ContentItem(selectedID);
+ final BigDecimal selectedDraftId = selectedItem.getDraftVersion().getID();
- if (CMS.getContext().getSecurityManager().canAccess
- (SecurityManager.CATEGORY_ADMIN)) {
- parent.swapSortKeys(selectedID, getSwapID(parent,selectedID,event));
+ if (CMS.getContext().getSecurityManager().canAccess(SecurityManager.CATEGORY_ADMIN)) {
+ final BigDecimal swapId = getSwapID(parent, selectedID, event);
+ parent.swapSortKeys(selectedID, swapId);
+ final ContentItem swapItem = new ContentItem(swapId);
+ final BigDecimal swapDraftId = swapItem.getDraftVersion().getID();
+
+ final BigDecimal sortKey1 = parent.getSortKey(selectedItem);
+ final BigDecimal sortKey2 = parent.getSortKey(swapItem);
+
+ parent.setSortKey(new ContentItem(selectedDraftId), sortKey1);
+ parent.setSortKey(new ContentItem(swapDraftId), sortKey2);
+
}
} else {
super.respond(ps);
@@ -83,9 +93,8 @@
boolean foundSelectedID = false;
if (category != null && category.hasChildObjects()) {
- CategorizedCollection items = category.getObjects
- (ContentItem.BASE_DATA_OBJECT_TYPE);
- items.addEqualsFilter(ContentItem.VERSION,ContentItem.LIVE);
+ CategorizedCollection items = category.getObjects(ContentItem.BASE_DATA_OBJECT_TYPE);
+ items.addEqualsFilter(ContentItem.VERSION, ContentItem.LIVE);
items.sort(true);
while (items.next()) {
BigDecimal thisID = items.getACSObject().getID();
@@ -111,14 +120,14 @@
private class CategorizedObjectsModelBuilder extends LockableImpl
implements ListModelBuilder {
+
public final ListModel makeModel(final List list,
final PageState state) {
final Category category = getCategory(state);
if (category != null && category.hasChildObjects()) {
- CategorizedCollection items = category.getObjects
- (ContentItem.BASE_DATA_OBJECT_TYPE);
- items.addEqualsFilter(ContentItem.VERSION,ContentItem.LIVE);
+ CategorizedCollection items = category.getObjects(ContentItem.BASE_DATA_OBJECT_TYPE);
+ items.addEqualsFilter(ContentItem.VERSION, ContentItem.LIVE);
items.sort(true);
return new CategorizedCollectionListModel(items);
} else {
@@ -131,6 +140,7 @@
* A {@link ListModel} that iterates over categorized objects via an iterator
*/
private static class CategorizedCollectionListModel implements ListModel {
+
private CategorizedCollection m_objs;
private ACSObject m_object;
@@ -140,7 +150,7 @@
}
public boolean next() {
- if ( m_objs.next() ) {
+ if (m_objs.next()) {
m_object = (ACSObject) m_objs.getDomainObject();
return true;
} else {
Modified: releases/2.0.0/ccm-core/src/com/arsdigita/categorization/Category.java
===================================================================
--- releases/2.0.0/ccm-core/src/com/arsdigita/categorization/Category.java 2012-12-17 13:04:19 UTC (rev 2409)
+++ releases/2.0.0/ccm-core/src/com/arsdigita/categorization/Category.java 2012-12-17 13:07:53 UTC (rev 2410)
@@ -109,9 +109,9 @@
*
*/
public static final String BASE_DATA_OBJECT_TYPE =
- "com.arsdigita.categorization.Category";
+ "com.arsdigita.categorization.Category";
private static final String BASE_DATA_OBJECT_PACKAGE =
- "com.arsdigita.categorization";
+ "com.arsdigita.categorization";
/**
* The
* <code>PrivilegeDescriptor corresponding</code> to the privilege to
@@ -119,7 +119,7 @@
*
*/
public static final PrivilegeDescriptor MAP_DESCRIPTOR =
- new PrivilegeDescriptor(
+ new PrivilegeDescriptor(
"map_to_category");
// Quasimodo: Begin
private static CategorizationConfig s_config = CategorizationConfig
@@ -185,7 +185,7 @@
* An attribute name for the underlying data object.
*/
public static final String IGNORE_PARENT_INDEX_ITEM =
- "ignoreParentIndexItem";
+ "ignoreParentIndexItem";
/**
* An attribute name for the underlying data object.
*/
@@ -197,7 +197,7 @@
public static final String LOCALIZATIONS = "localizations";
// some named queries in the pdl files
private static final String CHILD_CATEGORY_IDS =
- "com.arsdigita.categorization.childCategoryIDs";
+ "com.arsdigita.categorization.childCategoryIDs";
private static final String CURRENT_SORT_KEY = "currentSortKey";
private HierarchyDenormalization m_hierarchy;
// Quasimodo: Begin
@@ -416,7 +416,8 @@
public String getName(String locale) {
// Test for localized version
- if (locale != null && !locale.isEmpty() && m_categoryLocalizationCollection != null && m_categoryLocalizationCollection.
+ if (locale != null && !locale.isEmpty() && m_categoryLocalizationCollection != null
+ && m_categoryLocalizationCollection.
localizationExists(locale)) {
// Return value of isEnabled from localized version, so categories could be disabled depending on locale
@@ -517,7 +518,7 @@
* @return category path
*/
public String getPreferredQualifiedName(String delimiter,
- boolean includeRoot) {
+ boolean includeRoot) {
// is this a synonym?
CategoryCollection cc = new CategoryCollection(getRelatedCategories(
PREFERRED));
@@ -525,7 +526,7 @@
Category preferred = cc.getCategory();
cc.close();
String preferredPath = preferred.getQualifiedName(delimiter,
- includeRoot);
+ includeRoot);
return preferredPath + " (" + getName() + ")";
} else {
return getQualifiedName(delimiter, includeRoot);
@@ -602,7 +603,8 @@
// Test for localized version
// HACK
- if (locale != null && !locale.isEmpty() && m_categoryLocalizationCollection != null && m_categoryLocalizationCollection.
+ if (locale != null && !locale.isEmpty() && m_categoryLocalizationCollection != null
+ && m_categoryLocalizationCollection.
localizationExists(locale)) {
// Return value of isEnabled from localized version, so categories could be disabled depending on locale
@@ -679,7 +681,8 @@
public String getURL(String locale) {
// Test for localized version
- if (locale != null && !locale.isEmpty() && m_categoryLocalizationCollection != null && m_categoryLocalizationCollection.
+ if (locale != null && !locale.isEmpty() && m_categoryLocalizationCollection != null
+ && m_categoryLocalizationCollection.
localizationExists(locale)) {
// Return value of isEnabled from localized version, so categories could be disabled depending on locale
@@ -751,7 +754,8 @@
}
// Test for localized version
- if (locale != null && !locale.isEmpty() && m_categoryLocalizationCollection != null && m_categoryLocalizationCollection.
+ if (locale != null && !locale.isEmpty() && m_categoryLocalizationCollection != null
+ && m_categoryLocalizationCollection.
localizationExists(locale)) {
// Return value of isEnabled from localized version, so categories could be disabled depending on locale
@@ -950,8 +954,8 @@
try {
if (children.next()) {
throw new CategorizationException("This category is the default parent of another category."
- + " You must explicitly delete the child categories first. "
- + "Child category: " + children.
+ + " You must explicitly delete the child categories first. "
+ + "Child category: " + children.
getDataObject());
}
} finally {
@@ -959,13 +963,13 @@
}
DataAssociationCursor objects =
- ((DataAssociation) get(CHILD_OBJECTS)).cursor();
+ ((DataAssociation) get(CHILD_OBJECTS)).cursor();
if (objects != null) {
try {
if (objects.next()) {
throw new CategorizationException("This category has child objects. You must delete "
- + " any such objects explicitly, before deleting the "
- + " category. Child object: " + objects.
+ + " any such objects explicitly, before deleting the "
+ + " category. Child object: " + objects.
getDataObject());
}
} finally {
@@ -999,7 +1003,7 @@
public void deleteCategorySubtree() {
// we get the association between this category and its children
DataAssociationCursor cursor =
- ((DataAssociation) get(RELATED_CATEGORIES)).cursor();
+ ((DataAssociation) get(RELATED_CATEGORIES)).cursor();
while (cursor.next()) {
DataObject link = cursor.getLink();
@@ -1038,7 +1042,7 @@
}
DataAssociationCursor cursor =
- ((DataAssociation) get(RELATED_CATEGORIES)).cursor();
+ ((DataAssociation) get(RELATED_CATEGORIES)).cursor();
while (cursor.next()) {
DataObject link = cursor.getLink();
@@ -1047,7 +1051,7 @@
remove(RELATED_CATEGORIES, cursor.getDataObject());
if ("child".equals(relationType)) {
Category category = new Category(cursor.getDataObject());
- parent.addChild(category);
+ parent.addChild(category, null);
if (Boolean.TRUE.equals(isDefault)) {
category.setDefaultParentCategory(parent);
}
@@ -1104,13 +1108,18 @@
* categories and becomes a CHILD category.</p>
*
* @param object the domain object to categorize
+ * @param sortKey optional sort key. May be <code>null</code>
*
* @pre !isAbstract()
* @pre canMap()
*
*/
+ public void addChild(ACSObject object, BigDecimal sortKey) {
+ addMapping(object, "child", sortKey);
+ }
+
public void addChild(ACSObject object) {
- addMapping(object, "child");
+ addChild(object, null);
}
/**
@@ -1149,21 +1158,25 @@
/**
* Adds the passed in object to the correct association.
+ *
+ * @param acsObj Object to add to the category
+ * @param relationType Type of the relation
+ * @param sortKey Optional sort key. May be <code>null</code>.
*
* @pre canMap()
*/
- private void addMapping(ACSObject acsObj, String relationType) {
+ private void addMapping(ACSObject acsObj, String relationType, BigDecimal sortKey) {
if (acsObj instanceof Category) {
addMapping((Category) acsObj, relationType);
return;
}
Assert.isFalse(isAbstract(),
- "You cannot categorize an object "
- + "within an abstract category. If you are "
- + "seeing this message then your UI is "
- + "allowing you to do something that you "
- + "are not allowed to do and you "
- + "should email your site administrator.");
+ "You cannot categorize an object "
+ + "within an abstract category. If you are "
+ + "seeing this message then your UI is "
+ + "allowing you to do something that you "
+ + "are not allowed to do and you "
+ + "should email your site administrator.");
if (RELATED.equals(relationType)) {
throw new CategorizationException(
@@ -1172,21 +1185,24 @@
}
DataAssociationCursor cursor =
- ((DataAssociation) get(CHILD_OBJECTS)).cursor();
+ ((DataAssociation) get(CHILD_OBJECTS)).cursor();
cursor.addEqualsFilter(ID, acsObj.getID());
if (cursor.size() == 0) {
// if the cursor.size() > 0 then the object is already
// a child and does not need to be added again.
- add(CHILD_OBJECTS, acsObj);
+ DataObject link = add(CHILD_OBJECTS, acsObj);
+ if (sortKey != null) {
+ link.set("sortKey", sortKey);
+ }
Categorization.triggerMapEvent(this, acsObj);
if (s_log.isDebugEnabled()) {
s_log.debug(acsObj + " added to " + CHILD_OBJECTS + " of catID="
- + getID() + " type=" + relationType + " (ignored)");
+ + getID() + " type=" + relationType + " (ignored)");
}
} else {
if (s_log.isDebugEnabled()) {
s_log.debug(acsObj + " is already related to catID=" + getID()
- + " type=" + relationType + " (ignored)");
+ + " type=" + relationType + " (ignored)");
}
}
}
@@ -1195,8 +1211,8 @@
// Let's check for loops.
if ("child".equals(relationType) && category.isMemberOfSubtree(this)) {
throw new CategorizationException("The object that you are "
- + "trying to add as a child is already "
- + "a member of the subtree.");
+ + "trying to add as a child is already "
+ + "a member of the subtree.");
}
@@ -1204,7 +1220,7 @@
// Otherwise, we add and then update.
DataAssociationCursor cursor =
- ((DataAssociation) get(RELATED_CATEGORIES)).cursor();
+ ((DataAssociation) get(RELATED_CATEGORIES)).cursor();
cursor.addEqualsFilter(ID, category.getID());
DataObject link;
if (cursor.next()) {
@@ -1223,7 +1239,7 @@
cursor.close();
if (s_log.isDebugEnabled()) {
s_log.debug("updating related catID=" + category.getID() + " type="
- + relationType + " default=false");
+ + relationType + " default=false");
}
link.set(REL_TYPE, relationType);
@@ -1400,7 +1416,7 @@
*/
public long getParentCategoryCount() {
DataAssociationCursor cursor =
- ((DataAssociation) get(PARENTS)).cursor();
+ ((DataAssociation) get(PARENTS)).cursor();
try {
return cursor.size();
} finally {
@@ -1432,7 +1448,7 @@
boolean found = false;
DataAssociationCursor cursor =
- ((DataAssociation) get(PARENTS)).cursor();
+ ((DataAssociation) get(PARENTS)).cursor();
while (cursor.next()) {
DataObject category = cursor.getDataObject();
DataObject link = cursor.getLink();
@@ -1468,7 +1484,7 @@
}
DataAssociationCursor cursor =
- ((DataAssociation) get(CHILD_OBJECTS)).cursor();
+ ((DataAssociation) get(CHILD_OBJECTS)).cursor();
cursor.addEqualsFilter(ID, child.getID());
if (cursor.next()) {
@@ -1534,7 +1550,7 @@
}
DataAssociationCursor cursor =
- ((DataAssociation) get(CHILD_OBJECTS)).cursor();
+ ((DataAssociation) get(CHILD_OBJECTS)).cursor();
cursor.addEqualsFilter(ID, child.getID());
if (cursor.next()) {
@@ -1590,7 +1606,7 @@
private void swapCategoryKeys(int key, int nextKey) {
swapKeys(getSession().retrieveDataOperation(
"com.arsdigita.categorization.swapCategoryWithNextCategory"),
- key, nextKey);
+ key, nextKey);
}
/**
@@ -1599,7 +1615,7 @@
private void swapObjectKeys(int key, int nextKey) {
swapKeys(getSession().retrieveDataOperation(
"com.arsdigita.categorization.swapObjectWithNextObject"),
- key, nextKey);
+ key, nextKey);
}
/**
@@ -1628,6 +1644,24 @@
}
}
+ public BigDecimal getSortKey(final ACSObject object) {
+ return getSortKey(object.getID());
+ }
+
+ public BigDecimal getSortKey(final BigDecimal objId) {
+ final DataAssociationCursor cursor = ((DataAssociation) get(CHILD_OBJECTS)).cursor();
+ cursor.addEqualsFilter(ID, objId);
+ if (cursor.next()) {
+ return (BigDecimal) cursor.getLink().get(SORT_KEY);
+ }
+
+ return null;
+ }
+
+ public void setSortKey(ACSObject object, int key) {
+ setSortKey(object, new BigDecimal(key));
+ }
+
/**
* Explicitly sets the sort key for this child object (category or
* otherwise).
@@ -1635,19 +1669,19 @@
* @param child The child object or category to set the sortKey for
* @param key The integer to use for the sortKey
*/
- public void setSortKey(ACSObject child, int key) {
+ public void setSortKey(ACSObject child, BigDecimal key) {
if (isCategory(child)) {
setSortKey((Category) child, key);
return;
}
DataAssociationCursor cursor =
- ((DataAssociation) get(CHILD_OBJECTS)).cursor();
+ ((DataAssociation) get(CHILD_OBJECTS)).cursor();
cursor.addEqualsFilter(ID, child.getID());
if (cursor.next()) {
DataObject link = cursor.getLink();
- link.set(SORT_KEY, new BigDecimal(key));
+ link.set(SORT_KEY, key);
}
cursor.close();
}
@@ -1668,7 +1702,7 @@
BigDecimal key2;
DataAssociationCursor cursor =
- ((DataAssociation) get(CHILD_OBJECTS)).cursor();
+ ((DataAssociation) get(CHILD_OBJECTS)).cursor();
cursor.addEqualsFilter(ID, childID1);
if (cursor.next()) {
link1 = cursor.getLink();
@@ -1714,10 +1748,10 @@
*/
public DataAssociationCursor getRelatedCategories(String relation) {
Assert.isTrue(relation.equals(CHILD) || relation.equals(RELATED)
- || relation.equals(PREFERRED),
- " invalid relation {" + relation + "}");
+ || relation.equals(PREFERRED),
+ " invalid relation {" + relation + "}");
DataAssociationCursor cursor =
- ((DataAssociation) get(RELATED_CATEGORIES)).cursor();
+ ((DataAssociation) get(RELATED_CATEGORIES)).cursor();
cursor.addEqualsFilter("link.relationType", relation);
return cursor;
}
@@ -1799,7 +1833,7 @@
}
StringBuilder sb =
- new StringBuilder(path.length() + pathExtension.length() + 1);
+ new StringBuilder(path.length() + pathExtension.length() + 1);
sb.append(path).append(".").append(pathExtension);
return sb.toString();
}
@@ -1813,7 +1847,7 @@
*/
public long getNumberOfChildObjects() {
DataAssociationCursor association =
- ((DataAssociation) get(CHILD_OBJECTS)).cursor();
+ ((DataAssociation) get(CHILD_OBJECTS)).cursor();
if (association == null) {
return 0;
} else {
@@ -1838,7 +1872,7 @@
*/
public Category getDefaultParentCategory() {
DataAssociationCursor cursor =
- ((DataAssociation) get(PARENTS)).cursor();
+ ((DataAssociation) get(PARENTS)).cursor();
cursor.addEqualsFilter("link.isDefault", Boolean.TRUE);
try {
@@ -1850,7 +1884,7 @@
}
throw new CategoryNotFoundException("The Category " + this + " does "
- + "not have a default parent");
+ + "not have a default parent");
}
/**
@@ -1901,7 +1935,7 @@
*/
public CategoryCollection getDefaultAscendants() {
DataCollection collection =
- getSession().retrieve(BASE_DATA_OBJECT_TYPE);
+ getSession().retrieve(BASE_DATA_OBJECT_TYPE);
String ids = (String) get(DEFAULT_ANCESTORS);
if (ids == null) {
@@ -1958,7 +1992,7 @@
*/
public CategorizedCollection getDescendantObjects() {
return getDescendantObjects(ACSObject.BASE_DATA_OBJECT_TYPE,
- "categories.roTransParents");
+ "categories.roTransParents");
}
private static String appendID(String path) {
@@ -1968,7 +2002,7 @@
}
public CategorizedCollection getDescendantObjects(String objectType,
- String path) {
+ String path) {
s_log.info("retrieving objectType=" + objectType + "; path=" + path);
final CategorizedCollection result = new CategorizedCollection(getSession().
retrieve(objectType));
@@ -2041,6 +2075,7 @@
public String getToken() {
return m_token;
}
+
}
@Override
@@ -2059,7 +2094,7 @@
DataCollection dc = SessionManager.getSession().retrieve(
"com.arsdigita.categorization.UseContext");
dc.addFilter("categoryOwner.id = :ownerID").set("ownerID",
- acsObj.getID());
+ acsObj.getID());
return dc;
}
@@ -2106,9 +2141,9 @@
DataObject secondRoot = cats.getDataObject();
cats.close();
throw new IllegalStateException("there is more than one root for object:\n"
- + object + "\nfirst root: "
- + triple + "\nsecond root: "
- + secondRoot);
+ + object + "\nfirst root: "
+ + triple + "\nsecond root: "
+ + secondRoot);
}
cats.close();
}
@@ -2149,14 +2184,14 @@
* @param root the root category for the object
*/
public static void setRootForObject(ACSObject acsObj, Category rootCat,
- String context) {
+ String context) {
DataCollection rootCats = getRootCategoriesAssoc(acsObj);
rootCats.addEqualsFilter(USE_CONTEXT, context);
if (rootCats.next()) {
DataObject triple = rootCats.getDataObject();
triple.set(ROOT_CATEGORY,
- DomainServiceInterfaceExposer.getDataObject(rootCat));
+ DomainServiceInterfaceExposer.getDataObject(rootCat));
rootCats.close();
return;
}
@@ -2173,9 +2208,9 @@
throw new UncheckedWrapperException(ex);
}
triple.set(CATEGORY_OWNER,
- DomainServiceInterfaceExposer.getDataObject(acsObj));
+ DomainServiceInterfaceExposer.getDataObject(acsObj));
triple.set(ROOT_CATEGORY,
- DomainServiceInterfaceExposer.getDataObject(rootCat));
+ DomainServiceInterfaceExposer.getDataObject(rootCat));
triple.set(USE_CONTEXT, context);
}
@@ -2292,7 +2327,7 @@
* Add a new language set to this category
*/
public boolean addLanguage(String locale, String name, String description,
- String url) {
+ String url) {
// If locale don't exist
if (!locale.isEmpty() && m_categoryLocalizationCollection != null && !m_categoryLocalizationCollection.
@@ -2344,4 +2379,5 @@
return false;
}
+
}
Modified: releases/2.0.0/ccm-core/src/com/arsdigita/categorization/CategoryCollection.java
===================================================================
--- releases/2.0.0/ccm-core/src/com/arsdigita/categorization/CategoryCollection.java 2012-12-17 13:04:19 UTC (rev 2409)
+++ releases/2.0.0/ccm-core/src/com/arsdigita/categorization/CategoryCollection.java 2012-12-17 13:07:53 UTC (rev 2410)
@@ -21,6 +21,7 @@
import com.arsdigita.kernel.ACSObject;
import com.arsdigita.kernel.ACSObjectCollection;
import com.arsdigita.persistence.DataCollection;
+import java.math.BigDecimal;
/**
* Represents a collection of categories.
@@ -84,6 +85,10 @@
return getCategory();
}
+ public BigDecimal getSortKey() {
+ return (BigDecimal) get("link.sortKey");
+ }
+
/**
* Sorts the category collection by the category sort key.
*
|
|
From: <pb...@fe...> - 2012-12-17 13:04:36
|
Author: pboy Date: 2012-12-17 13:04:19 +0000 (Mon, 17 Dec 2012) New Revision: 2409 Modified: releases/2.0.0/ccm-core/web/assets/xinha/plugins/Equation/ASCIIMathML.js Log: Fixed ASCIIMathML equation Xinha plugin (backport r2405, Strings amath & graph will work now). (on behalf of quasimodo) Modified: releases/2.0.0/ccm-core/web/assets/xinha/plugins/Equation/ASCIIMathML.js =================================================================== --- releases/2.0.0/ccm-core/web/assets/xinha/plugins/Equation/ASCIIMathML.js 2012-12-17 12:55:07 UTC (rev 2408) +++ releases/2.0.0/ccm-core/web/assets/xinha/plugins/Equation/ASCIIMathML.js 2012-12-17 13:04:19 UTC (rev 2409) @@ -1,2 +1,2 @@ /* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */ -var mathcolor="blue";var mathfontsize="1em";var mathfontfamily="serif";var automathrecognize=false;var checkForMathML=true;var notifyIfNoMathML=true;var alertIfNoMathML=false;var translateOnLoad=true;var translateLaTeX=true;var translateLaTeXformatting=true;var translateASCIIMath=true;var translateASCIIsvg=true;var avoidinnerHTML=false;var displaystyle=true;var showasciiformulaonhover=true;var decimalsign=".";var AMdelimiter1="`",AMescape1="\\\\`";var AMdocumentId="wikitext";var checkforprocessasciimathinmoodle=false;var dsvglocation="";var isIE=document.createElementNS==null;var noMathML=false,translated=false;if(isIE){document.write('<object id="mathplayer" classid="clsid:32F66A20-7614-11D4-BD11-00104BD3F987"></object>');document.write('<?import namespace="m" implementation="#mathplayer"?>')}function setStylesheet(a){var c="AMMLcustomStyleSheet";var b=document.getElementById(c);if(document.createStyleSheet){if(b){b.parentNode.removeChild(b)}document.getElementsByTagName("head")[0].insertAdjacentHTML("beforeEnd"," <style id='"+c+"'>"+a+"</style>")}else{if(b){b.replaceChild(document.createTextNode(a),b.firstChild)}else{b=document.createElement("style");b.type="text/css";b.id=c;b.appendChild(document.createTextNode(a));document.getElementsByTagName("head")[0].appendChild(b)}}}setStylesheet("#AMMLcloseDiv {font-size:0.8em; padding-top:1em; color:#014}\n#AMMLwarningBox {position:absolute; width:100%; top:0; left:0; z-index:200; text-align:center; font-size:1em; font-weight:bold; padding:0.5em 0 0.5em 0; color:#ffc; background:#c30}");function init(){var b,a=new Array();if(document.getElementById==null){alert("This webpage requires a recent browser such as Mozilla Firefox/Netscape 7+ or Internet Explorer 6+ with MathPlayer and Adobe SVGviewer");return null}if(checkForMathML&&(b=checkMathML())){a.push(b)}if(checkIfSVGavailable&&(b=checkSVG())){a.push(b)}if(a.length>0){displayWarnings(a)}if(!noMathML){initSymbols()}return true}function checkMathML(){if(navigator.appName.slice(0,8)=="Netscape"){if(navigator.appVersion.slice(0,1)>="5"){noMathML=null}else{noMathML=true}}else{if(navigator.appName.slice(0,9)=="Microsoft"){try{var c=new ActiveXObject("MathPlayer.Factory.1");noMathML=null}catch(a){noMathML=true}}else{if(navigator.appName.slice(0,5)=="Opera"){if(navigator.appVersion.slice(0,3)>="9.5"){noMathML=null}else{noMathML=true}}}}if(noMathML&¬ifyIfNoMathML){var b="To view the ASCIIMathML notation use Internet Explorer + MathPlayer or Mozilla Firefox 2.0 or later.";if(alertIfNoMathML){alert(b)}else{return b}}}function hideWarning(){var a=document.getElementsByTagName("body")[0];a.removeChild(document.getElementById("AMMLwarningBox"));a.onclick=null}function displayWarnings(b){var c,g,f=createElementXHTML("div");var a=document.getElementsByTagName("body")[0];a.onclick=hideWarning;f.id="AMMLwarningBox";for(c=0;c<b.length;c++){g=createElementXHTML("div");g.appendChild(document.createTextNode(b[c]));g.style.paddingBottom="1.0em";f.appendChild(g)}f.appendChild(createElementXHTML("p"));f.appendChild(document.createTextNode("For instructions see the "));var d=createElementXHTML("a");d.appendChild(document.createTextNode("ASCIIMathML"));d.setAttribute("href","http://www.chapman.edu/~jipsen/asciimath.html");f.appendChild(d);f.appendChild(document.createTextNode(" homepage"));d=createElementXHTML("div");d.id="AMMLcloseDiv";d.appendChild(document.createTextNode("(click anywhere to close this warning)"));f.appendChild(d);var a=document.getElementsByTagName("body")[0];a.insertBefore(f,a.childNodes[0])}function translate(b){if(!translated){translated=true;var a=document.getElementsByTagName("body")[0];var c=document.getElementById(AMdocumentId);if(translateLaTeX){LMprocessNode((c!=null?c:a))}if(translateASCIIMath){AMprocessNode((c!=null?c:a),false,b)}}}function createElementXHTML(a){if(isIE){return document.createElement(a)}else{return document.createElementNS("http://www.w3.org/1999/xhtml",a)}}function createMmlNode(a,c){if(isIE){var b=document.createElement("m:"+a)}else{var b=document.createElementNS("http://www.w3.org/1998/Math/MathML",a)}if(c){b.appendChild(c)}return b}var AMcal=[61237,8492,61238,61239,8496,8497,61240,8459,8464,61241,61242,8466,8499,61243,61244,61245,61246,8475,61247,61248,61249,61250,61251,61252,61253,61254];var AMfrk=[61277,61278,8493,61279,61280,61281,61282,8460,8465,61283,61284,61285,61286,61287,61288,61289,61290,8476,61291,61292,61293,61294,61295,61296,61297,8488];var AMbbb=[61324,61325,8450,61326,61327,61328,61329,8461,61330,61331,61332,61333,61334,8469,61335,8473,8474,8477,61336,61337,61338,61339,61340,61341,61342,8484];var CONST=0,UNARY=1,BINARY=2,INFIX=3,LEFTBRACKET=4,RIGHTBRACKET=5,SPACE=6,UNDEROVER=7,DEFINITION=8,LEFTRIGHT=9,TEXT=10,BIG=11,LONG=12,STRETCHY=13,MATRIX=14;var AMquote={input:'"',tag:"mtext",output:"mbox",tex:null,ttype:TEXT};var AMsymbols=[{input:"alpha",tag:"mi",output:"\u03B1",tex:null,ttype:CONST},{input:"beta",tag:"mi",output:"\u03B2",tex:null,ttype:CONST},{input:"chi",tag:"mi",output:"\u03C7",tex:null,ttype:CONST},{input:"delta",tag:"mi",output:"\u03B4",tex:null,ttype:CONST},{input:"Delta",tag:"mo",output:"\u0394",tex:null,ttype:CONST},{input:"epsi",tag:"mi",output:"\u03B5",tex:"epsilon",ttype:CONST},{input:"varepsilon",tag:"mi",output:"\u025B",tex:null,ttype:CONST},{input:"eta",tag:"mi",output:"\u03B7",tex:null,ttype:CONST},{input:"gamma",tag:"mi",output:"\u03B3",tex:null,ttype:CONST},{input:"Gamma",tag:"mo",output:"\u0393",tex:null,ttype:CONST},{input:"iota",tag:"mi",output:"\u03B9",tex:null,ttype:CONST},{input:"kappa",tag:"mi",output:"\u03BA",tex:null,ttype:CONST},{input:"lambda",tag:"mi",output:"\u03BB",tex:null,ttype:CONST},{input:"Lambda",tag:"mo",output:"\u039B",tex:null,ttype:CONST},{input:"mu",tag:"mi",output:"\u03BC",tex:null,ttype:CONST},{input:"nu",tag:"mi",output:"\u03BD",tex:null,ttype:CONST},{input:"omega",tag:"mi",output:"\u03C9",tex:null,ttype:CONST},{input:"Omega",tag:"mo",output:"\u03A9",tex:null,ttype:CONST},{input:"phi",tag:"mi",output:"\u03C6",tex:null,ttype:CONST},{input:"varphi",tag:"mi",output:"\u03D5",tex:null,ttype:CONST},{input:"Phi",tag:"mo",output:"\u03A6",tex:null,ttype:CONST},{input:"pi",tag:"mi",output:"\u03C0",tex:null,ttype:CONST},{input:"Pi",tag:"mo",output:"\u03A0",tex:null,ttype:CONST},{input:"psi",tag:"mi",output:"\u03C8",tex:null,ttype:CONST},{input:"Psi",tag:"mi",output:"\u03A8",tex:null,ttype:CONST},{input:"rho",tag:"mi",output:"\u03C1",tex:null,ttype:CONST},{input:"sigma",tag:"mi",output:"\u03C3",tex:null,ttype:CONST},{input:"Sigma",tag:"mo",output:"\u03A3",tex:null,ttype:CONST},{input:"tau",tag:"mi",output:"\u03C4",tex:null,ttype:CONST},{input:"theta",tag:"mi",output:"\u03B8",tex:null,ttype:CONST},{input:"vartheta",tag:"mi",output:"\u03D1",tex:null,ttype:CONST},{input:"Theta",tag:"mo",output:"\u0398",tex:null,ttype:CONST},{input:"upsilon",tag:"mi",output:"\u03C5",tex:null,ttype:CONST},{input:"xi",tag:"mi",output:"\u03BE",tex:null,ttype:CONST},{input:"Xi",tag:"mo",output:"\u039E",tex:null,ttype:CONST},{input:"zeta",tag:"mi",output:"\u03B6",tex:null,ttype:CONST},{input:"*",tag:"mo",output:"\u22C5",tex:"cdot",ttype:CONST},{input:"**",tag:"mo",output:"\u22C6",tex:"star",ttype:CONST},{input:"//",tag:"mo",output:"/",tex:null,ttype:CONST},{input:"\\\\",tag:"mo",output:"\\",tex:"backslash",ttype:CONST},{input:"setminus",tag:"mo",output:"\\",tex:null,ttype:CONST},{input:"xx",tag:"mo",output:"\u00D7",tex:"times",ttype:CONST},{input:"-:",tag:"mo",output:"\u00F7",tex:"divide",ttype:CONST},{input:"@",tag:"mo",output:"\u26AC",tex:"circ",ttype:CONST},{input:"o+",tag:"mo",output:"\u2295",tex:"oplus",ttype:CONST},{input:"ox",tag:"mo",output:"\u2297",tex:"otimes",ttype:CONST},{input:"o.",tag:"mo",output:"\u2299",tex:"odot",ttype:CONST},{input:"sum",tag:"mo",output:"\u2211",tex:null,ttype:UNDEROVER},{input:"prod",tag:"mo",output:"\u220F",tex:null,ttype:UNDEROVER},{input:"^^",tag:"mo",output:"\u2227",tex:"wedge",ttype:CONST},{input:"^^^",tag:"mo",output:"\u22C0",tex:"bigwedge",ttype:UNDEROVER},{input:"vv",tag:"mo",output:"\u2228",tex:"vee",ttype:CONST},{input:"vvv",tag:"mo",output:"\u22C1",tex:"bigvee",ttype:UNDEROVER},{input:"nn",tag:"mo",output:"\u2229",tex:"cap",ttype:CONST},{input:"nnn",tag:"mo",output:"\u22C2",tex:"bigcap",ttype:UNDEROVER},{input:"uu",tag:"mo",output:"\u222A",tex:"cup",ttype:CONST},{input:"uuu",tag:"mo",output:"\u22C3",tex:"bigcup",ttype:UNDEROVER},{input:"!=",tag:"mo",output:"\u2260",tex:"ne",ttype:CONST},{input:":=",tag:"mo",output:":=",tex:null,ttype:CONST},{input:"lt",tag:"mo",output:"<",tex:null,ttype:CONST},{input:"<=",tag:"mo",output:"\u2264",tex:"le",ttype:CONST},{input:"lt=",tag:"mo",output:"\u2264",tex:"leq",ttype:CONST},{input:">=",tag:"mo",output:"\u2265",tex:"ge",ttype:CONST},{input:"geq",tag:"mo",output:"\u2265",tex:null,ttype:CONST},{input:"-<",tag:"mo",output:"\u227A",tex:"prec",ttype:CONST},{input:"-lt",tag:"mo",output:"\u227A",tex:null,ttype:CONST},{input:">-",tag:"mo",output:"\u227B",tex:"succ",ttype:CONST},{input:"-<=",tag:"mo",output:"\u2AAF",tex:"preceq",ttype:CONST},{input:">-=",tag:"mo",output:"\u2AB0",tex:"succeq",ttype:CONST},{input:"in",tag:"mo",output:"\u2208",tex:null,ttype:CONST},{input:"!in",tag:"mo",output:"\u2209",tex:"notin",ttype:CONST},{input:"sub",tag:"mo",output:"\u2282",tex:"subset",ttype:CONST},{input:"sup",tag:"mo",output:"\u2283",tex:"supset",ttype:CONST},{input:"sube",tag:"mo",output:"\u2286",tex:"subseteq",ttype:CONST},{input:"supe",tag:"mo",output:"\u2287",tex:"supseteq",ttype:CONST},{input:"-=",tag:"mo",output:"\u2261",tex:"equiv",ttype:CONST},{input:"~=",tag:"mo",output:"\u2245",tex:"cong",ttype:CONST},{input:"~~",tag:"mo",output:"\u2248",tex:"approx",ttype:CONST},{input:"prop",tag:"mo",output:"\u221D",tex:"propto",ttype:CONST},{input:"and",tag:"mtext",output:"and",tex:null,ttype:SPACE},{input:"or",tag:"mtext",output:"or",tex:null,ttype:SPACE},{input:"not",tag:"mo",output:"\u00AC",tex:"neg",ttype:CONST},{input:"=>",tag:"mo",output:"\u21D2",tex:"implies",ttype:CONST},{input:"if",tag:"mo",output:"if",tex:null,ttype:SPACE},{input:"<=>",tag:"mo",output:"\u21D4",tex:"iff",ttype:CONST},{input:"AA",tag:"mo",output:"\u2200",tex:"forall",ttype:CONST},{input:"EE",tag:"mo",output:"\u2203",tex:"exists",ttype:CONST},{input:"_|_",tag:"mo",output:"\u22A5",tex:"bot",ttype:CONST},{input:"TT",tag:"mo",output:"\u22A4",tex:"top",ttype:CONST},{input:"|--",tag:"mo",output:"\u22A2",tex:"vdash",ttype:CONST},{input:"|==",tag:"mo",output:"\u22A8",tex:"models",ttype:CONST},{input:"(",tag:"mo",output:"(",tex:null,ttype:LEFTBRACKET},{input:")",tag:"mo",output:")",tex:null,ttype:RIGHTBRACKET},{input:"[",tag:"mo",output:"[",tex:null,ttype:LEFTBRACKET},{input:"]",tag:"mo",output:"]",tex:null,ttype:RIGHTBRACKET},{input:"{",tag:"mo",output:"{",tex:null,ttype:LEFTBRACKET},{input:"}",tag:"mo",output:"}",tex:null,ttype:RIGHTBRACKET},{input:"|",tag:"mo",output:"|",tex:null,ttype:LEFTRIGHT},{input:"(:",tag:"mo",output:"\u2329",tex:"langle",ttype:LEFTBRACKET},{input:":)",tag:"mo",output:"\u232A",tex:"rangle",ttype:RIGHTBRACKET},{input:"<<",tag:"mo",output:"\u2329",tex:null,ttype:LEFTBRACKET},{input:">>",tag:"mo",output:"\u232A",tex:null,ttype:RIGHTBRACKET},{input:"{:",tag:"mo",output:"{:",tex:null,ttype:LEFTBRACKET,invisible:true},{input:":}",tag:"mo",output:":}",tex:null,ttype:RIGHTBRACKET,invisible:true},{input:"int",tag:"mo",output:"\u222B",tex:null,ttype:CONST},{input:"dx",tag:"mi",output:"{:d x:}",tex:null,ttype:DEFINITION},{input:"dy",tag:"mi",output:"{:d y:}",tex:null,ttype:DEFINITION},{input:"dz",tag:"mi",output:"{:d z:}",tex:null,ttype:DEFINITION},{input:"dt",tag:"mi",output:"{:d t:}",tex:null,ttype:DEFINITION},{input:"oint",tag:"mo",output:"\u222E",tex:null,ttype:CONST},{input:"del",tag:"mo",output:"\u2202",tex:"partial",ttype:CONST},{input:"grad",tag:"mo",output:"\u2207",tex:"nabla",ttype:CONST},{input:"+-",tag:"mo",output:"\u00B1",tex:"pm",ttype:CONST},{input:"O/",tag:"mo",output:"\u2205",tex:"emptyset",ttype:CONST},{input:"oo",tag:"mo",output:"\u221E",tex:"infty",ttype:CONST},{input:"aleph",tag:"mo",output:"\u2135",tex:null,ttype:CONST},{input:"...",tag:"mo",output:"...",tex:"ldots",ttype:CONST},{input:":.",tag:"mo",output:"\u2234",tex:"therefore",ttype:CONST},{input:"/_",tag:"mo",output:"\u2220",tex:"angle",ttype:CONST},{input:"\\ ",tag:"mo",output:"\u00A0",tex:null,ttype:CONST},{input:"quad",tag:"mo",output:"\u00A0\u00A0",tex:null,ttype:CONST},{input:"qquad",tag:"mo",output:"\u00A0\u00A0\u00A0\u00A0",tex:null,ttype:CONST},{input:"cdots",tag:"mo",output:"\u22EF",tex:null,ttype:CONST},{input:"vdots",tag:"mo",output:"\u22EE",tex:null,ttype:CONST},{input:"ddots",tag:"mo",output:"\u22F1",tex:null,ttype:CONST},{input:"diamond",tag:"mo",output:"\u22C4",tex:null,ttype:CONST},{input:"square",tag:"mo",output:"\u25A1",tex:null,ttype:CONST},{input:"|__",tag:"mo",output:"\u230A",tex:"lfloor",ttype:CONST},{input:"__|",tag:"mo",output:"\u230B",tex:"rfloor",ttype:CONST},{input:"|~",tag:"mo",output:"\u2308",tex:"lceiling",ttype:CONST},{input:"~|",tag:"mo",output:"\u2309",tex:"rceiling",ttype:CONST},{input:"CC",tag:"mo",output:"\u2102",tex:null,ttype:CONST},{input:"NN",tag:"mo",output:"\u2115",tex:null,ttype:CONST},{input:"QQ",tag:"mo",output:"\u211A",tex:null,ttype:CONST},{input:"RR",tag:"mo",output:"\u211D",tex:null,ttype:CONST},{input:"ZZ",tag:"mo",output:"\u2124",tex:null,ttype:CONST},{input:"f",tag:"mi",output:"f",tex:null,ttype:UNARY,func:true},{input:"g",tag:"mi",output:"g",tex:null,ttype:UNARY,func:true},{input:"lim",tag:"mo",output:"lim",tex:null,ttype:UNDEROVER},{input:"Lim",tag:"mo",output:"Lim",tex:null,ttype:UNDEROVER},{input:"sin",tag:"mo",output:"sin",tex:null,ttype:UNARY,func:true},{input:"cos",tag:"mo",output:"cos",tex:null,ttype:UNARY,func:true},{input:"tan",tag:"mo",output:"tan",tex:null,ttype:UNARY,func:true},{input:"sinh",tag:"mo",output:"sinh",tex:null,ttype:UNARY,func:true},{input:"cosh",tag:"mo",output:"cosh",tex:null,ttype:UNARY,func:true},{input:"tanh",tag:"mo",output:"tanh",tex:null,ttype:UNARY,func:true},{input:"cot",tag:"mo",output:"cot",tex:null,ttype:UNARY,func:true},{input:"sec",tag:"mo",output:"sec",tex:null,ttype:UNARY,func:true},{input:"csc",tag:"mo",output:"csc",tex:null,ttype:UNARY,func:true},{input:"log",tag:"mo",output:"log",tex:null,ttype:UNARY,func:true},{input:"ln",tag:"mo",output:"ln",tex:null,ttype:UNARY,func:true},{input:"det",tag:"mo",output:"det",tex:null,ttype:UNARY,func:true},{input:"dim",tag:"mo",output:"dim",tex:null,ttype:CONST},{input:"mod",tag:"mo",output:"mod",tex:null,ttype:CONST},{input:"gcd",tag:"mo",output:"gcd",tex:null,ttype:UNARY,func:true},{input:"lcm",tag:"mo",output:"lcm",tex:null,ttype:UNARY,func:true},{input:"lub",tag:"mo",output:"lub",tex:null,ttype:CONST},{input:"glb",tag:"mo",output:"glb",tex:null,ttype:CONST},{input:"min",tag:"mo",output:"min",tex:null,ttype:UNDEROVER},{input:"max",tag:"mo",output:"max",tex:null,ttype:UNDEROVER},{input:"uarr",tag:"mo",output:"\u2191",tex:"uparrow",ttype:CONST},{input:"darr",tag:"mo",output:"\u2193",tex:"downarrow",ttype:CONST},{input:"rarr",tag:"mo",output:"\u2192",tex:"rightarrow",ttype:CONST},{input:"->",tag:"mo",output:"\u2192",tex:"to",ttype:CONST},{input:">->",tag:"mo",output:"\u21A3",tex:"rightarrowtail",ttype:CONST},{input:"->>",tag:"mo",output:"\u21A0",tex:"twoheadrightarrow",ttype:CONST},{input:">->>",tag:"mo",output:"\u2916",tex:"twoheadrightarrowtail",ttype:CONST},{input:"|->",tag:"mo",output:"\u21A6",tex:"mapsto",ttype:CONST},{input:"larr",tag:"mo",output:"\u2190",tex:"leftarrow",ttype:CONST},{input:"harr",tag:"mo",output:"\u2194",tex:"leftrightarrow",ttype:CONST},{input:"rArr",tag:"mo",output:"\u21D2",tex:"Rightarrow",ttype:CONST},{input:"lArr",tag:"mo",output:"\u21D0",tex:"Leftarrow",ttype:CONST},{input:"hArr",tag:"mo",output:"\u21D4",tex:"Leftrightarrow",ttype:CONST},{input:"sqrt",tag:"msqrt",output:"sqrt",tex:null,ttype:UNARY},{input:"root",tag:"mroot",output:"root",tex:null,ttype:BINARY},{input:"frac",tag:"mfrac",output:"/",tex:null,ttype:BINARY},{input:"/",tag:"mfrac",output:"/",tex:null,ttype:INFIX},{input:"stackrel",tag:"mover",output:"stackrel",tex:null,ttype:BINARY},{input:"_",tag:"msub",output:"_",tex:null,ttype:INFIX},{input:"^",tag:"msup",output:"^",tex:null,ttype:INFIX},{input:"hat",tag:"mover",output:"\u005E",tex:null,ttype:UNARY,acc:true},{input:"bar",tag:"mover",output:"\u00AF",tex:"overline",ttype:UNARY,acc:true},{input:"vec",tag:"mover",output:"\u2192",tex:null,ttype:UNARY,acc:true},{input:"dot",tag:"mover",output:".",tex:null,ttype:UNARY,acc:true},{input:"ddot",tag:"mover",output:"..",tex:null,ttype:UNARY,acc:true},{input:"ul",tag:"munder",output:"\u0332",tex:"underline",ttype:UNARY,acc:true},{input:"text",tag:"mtext",output:"text",tex:null,ttype:TEXT},{input:"mbox",tag:"mtext",output:"mbox",tex:null,ttype:TEXT},AMquote,{input:"bb",tag:"mstyle",atname:"fontweight",atval:"bold",output:"bb",tex:null,ttype:UNARY},{input:"mathbf",tag:"mstyle",atname:"fontweight",atval:"bold",output:"mathbf",tex:null,ttype:UNARY},{input:"sf",tag:"mstyle",atname:"fontfamily",atval:"sans-serif",output:"sf",tex:null,ttype:UNARY},{input:"mathsf",tag:"mstyle",atname:"fontfamily",atval:"sans-serif",output:"mathsf",tex:null,ttype:UNARY},{input:"bbb",tag:"mstyle",atname:"mathvariant",atval:"double-struck",output:"bbb",tex:null,ttype:UNARY,codes:AMbbb},{input:"mathbb",tag:"mstyle",atname:"mathvariant",atval:"double-struck",output:"mathbb",tex:null,ttype:UNARY,codes:AMbbb},{input:"cc",tag:"mstyle",atname:"mathvariant",atval:"script",output:"cc",tex:null,ttype:UNARY,codes:AMcal},{input:"mathcal",tag:"mstyle",atname:"mathvariant",atval:"script",output:"mathcal",tex:null,ttype:UNARY,codes:AMcal},{input:"tt",tag:"mstyle",atname:"fontfamily",atval:"monospace",output:"tt",tex:null,ttype:UNARY},{input:"mathtt",tag:"mstyle",atname:"fontfamily",atval:"monospace",output:"mathtt",tex:null,ttype:UNARY},{input:"fr",tag:"mstyle",atname:"mathvariant",atval:"fraktur",output:"fr",tex:null,ttype:UNARY,codes:AMfrk},{input:"mathfrak",tag:"mstyle",atname:"mathvariant",atval:"fraktur",output:"mathfrak",tex:null,ttype:UNARY,codes:AMfrk}];function compareNames(b,a){if(b.input>a.input){return 1}else{return -1}}var AMnames=[];function initSymbols(){var b=[],a;for(a=0;a<AMsymbols.length;a++){if(AMsymbols[a].tex){b[b.length]={input:AMsymbols[a].tex,tag:AMsymbols[a].tag,output:AMsymbols[a].output,ttype:AMsymbols[a].ttype}}}AMsymbols=AMsymbols.concat(b);refreshSymbols()}function refreshSymbols(){var a;AMsymbols.sort(compareNames);for(a=0;a<AMsymbols.length;a++){AMnames[a]=AMsymbols[a].input}LMsymbols.sort(compareNames);for(a=0;a<LMsymbols.length;a++){LMnames[a]=LMsymbols[a].input}}function define(b,a){if(b.substr(0,1)=="\\"){LMsymbols=LMsymbols.concat([{input:b,tag:"mo",output:a,ttype:DEFINITION}])}else{AMsymbols=AMsymbols.concat([{input:b,tag:"mo",output:a,tex:null,ttype:DEFINITION}])}refreshSymbols()}function AMremoveCharsAndBlanks(c,d){var a;if(c.charAt(d)=="\\"&&c.charAt(d+1)!="\\"&&c.charAt(d+1)!=" "){a=c.slice(d+1)}else{a=c.slice(d)}for(var b=0;b<a.length&&a.charCodeAt(b)<=32;b=b+1){}return a.slice(b)}function position(b,f,g){if(g==0){var d,a;g=-1;d=b.length;while(g+1<d){a=(g+d)>>1;if(b[a]<f){g=a}else{d=a}}return d}else{for(var c=g;c<b.length&&b[c]<f;c++){}}return c}function AMgetSymbol(h){var a=0;var b=0;var d;var m;var n;var f="";var g=true;for(var c=1;c<=h.length&&g;c++){m=h.slice(0,c);b=a;a=position(AMnames,m,b);if(a<AMnames.length&&h.slice(0,AMnames[a].length)==AMnames[a]){f=AMnames[a];d=a;c=f.length}g=a<AMnames.length&&h.slice(0,AMnames[a].length)>=AMnames[a]}AMpreviousSymbol=AMcurrentSymbol;if(f!=""){AMcurrentSymbol=AMsymbols[d].ttype;return AMsymbols[d]}AMcurrentSymbol=CONST;a=1;m=h.slice(0,1);var l=true;while("0"<=m&&m<="9"&&a<=h.length){m=h.slice(a,a+1);a++}if(m==decimalsign){m=h.slice(a,a+1);if("0"<=m&&m<="9"){l=false;a++;while("0"<=m&&m<="9"&&a<=h.length){m=h.slice(a,a+1);a++}}}if((l&&a>1)||a>2){m=h.slice(0,a-1);n="mn"}else{a=2;m=h.slice(0,1);n=(("A">m||m>"Z")&&("a">m||m>"z")?"mo":"mi")}if(m=="-"&&AMpreviousSymbol==INFIX){AMcurrentSymbol=INFIX;return{input:m,tag:n,output:m,ttype:UNARY,func:true}}return{input:m,tag:n,output:m,ttype:CONST}}function AMremoveBrackets(b){var a;if(b.nodeName=="mrow"){a=b.firstChild.firstChild.nodeValue;if(a=="("||a=="["||a=="{"){b.removeChild(b.firstChild)}}if(b.nodeName=="mrow"){a=b.lastChild.firstChild.nodeValue;if(a==")"||a=="]"||a=="}"){b.removeChild(b.lastChild)}}}var AMnestingDepth,AMpreviousSymbol,AMcurrentSymbol;function AMparseSexpr(h){var d,b,k,f,m,g=document.createDocumentFragment();h=AMremoveCharsAndBlanks(h,0);d=AMgetSymbol(h);if(d==null||d.ttype==RIGHTBRACKET&&AMnestingDepth>0){return[null,h]}if(d.ttype==DEFINITION){h=d.output+AMremoveCharsAndBlanks(h,d.input.length);d=AMgetSymbol(h)}switch(d.ttype){case UNDEROVER:case CONST:h=AMremoveCharsAndBlanks(h,d.input.length);return[createMmlNode(d.tag,document.createTextNode(d.output)),h];case LEFTBRACKET:AMnestingDepth++;h=AMremoveCharsAndBlanks(h,d.input.length);k=AMparseExpr(h,true);AMnestingDepth--;if(typeof d.invisible=="boolean"&&d.invisible){b=createMmlNode("mrow",k[0])}else{b=createMmlNode("mo",document.createTextNode(d.output));b=createMmlNode("mrow",b);b.appendChild(k[0])}return[b,k[1]];case TEXT:if(d!=AMquote){h=AMremoveCharsAndBlanks(h,d.input.length)}if(h.charAt(0)=="{"){f=h.indexOf("}")}else{if(h.charAt(0)=="("){f=h.indexOf(")")}else{if(h.charAt(0)=="["){f=h.indexOf("]")}else{if(d==AMquote){f=h.slice(1).indexOf('"')+1}else{f=0}}}}if(f==-1){f=h.length}m=h.slice(1,f);if(m.charAt(0)==" "){b=createMmlNode("mspace");b.setAttribute("width","1ex");g.appendChild(b)}g.appendChild(createMmlNode(d.tag,document.createTextNode(m)));if(m.charAt(m.length-1)==" "){b=createMmlNode("mspace");b.setAttribute("width","1ex");g.appendChild(b)}h=AMremoveCharsAndBlanks(h,f+1);return[createMmlNode("mrow",g),h];case UNARY:h=AMremoveCharsAndBlanks(h,d.input.length);k=AMparseSexpr(h);if(k[0]==null){return[createMmlNode(d.tag,document.createTextNode(d.output)),h]}if(typeof d.func=="boolean"&&d.func){m=h.charAt(0);if(m=="^"||m=="_"||m=="/"||m=="|"||m==","){return[createMmlNode(d.tag,document.createTextNode(d.output)),h]}else{b=createMmlNode("mrow",createMmlNode(d.tag,document.createTextNode(d.output)));b.appendChild(k[0]);return[b,k[1]]}}AMremoveBrackets(k[0]);if(d.input=="sqrt"){return[createMmlNode(d.tag,k[0]),k[1]]}else{if(typeof d.acc=="boolean"&&d.acc){b=createMmlNode(d.tag,k[0]);b.appendChild(createMmlNode("mo",document.createTextNode(d.output)));return[b,k[1]]}else{if(!isIE&&typeof d.codes!="undefined"){for(f=0;f<k[0].childNodes.length;f++){if(k[0].childNodes[f].nodeName=="mi"||k[0].nodeName=="mi"){m=(k[0].nodeName=="mi"?k[0].firstChild.nodeValue:k[0].childNodes[f].firstChild.nodeValue);var l=[];for(var c=0;c<m.length;c++){if(m.charCodeAt(c)>64&&m.charCodeAt(c)<91){l=l+String.fromCharCode(d.codes[m.charCodeAt(c)-65])}else{l=l+m.charAt(c)}}if(k[0].nodeName=="mi"){k[0]=createMmlNode("mo").appendChild(document.createTextNode(l))}else{k[0].replaceChild(createMmlNode("mo").appendChild(document.createTextNode(l)),k[0].childNodes[f])}}}}b=createMmlNode(d.tag,k[0]);b.setAttribute(d.atname,d.atval);return[b,k[1]]}}case BINARY:h=AMremoveCharsAndBlanks(h,d.input.length);k=AMparseSexpr(h);if(k[0]==null){return[createMmlNode("mo",document.createTextNode(d.input)),h]}AMremoveBrackets(k[0]);var a=AMparseSexpr(k[1]);if(a[0]==null){return[createMmlNode("mo",document.createTextNode(d.input)),h]}AMremoveBrackets(a[0]);if(d.input=="root"||d.input=="stackrel"){g.appendChild(a[0])}g.appendChild(k[0]);if(d.input=="frac"){g.appendChild(a[0])}return[createMmlNode(d.tag,g),a[1]];case INFIX:h=AMremoveCharsAndBlanks(h,d.input.length);return[createMmlNode("mo",document.createTextNode(d.output)),h];case SPACE:h=AMremoveCharsAndBlanks(h,d.input.length);b=createMmlNode("mspace");b.setAttribute("width","1ex");g.appendChild(b);g.appendChild(createMmlNode(d.tag,document.createTextNode(d.output)));b=createMmlNode("mspace");b.setAttribute("width","1ex");g.appendChild(b);return[createMmlNode("mrow",g),h];case LEFTRIGHT:AMnestingDepth++;h=AMremoveCharsAndBlanks(h,d.input.length);k=AMparseExpr(h,false);AMnestingDepth--;var m="";if(k[0].lastChild!=null){m=k[0].lastChild.firstChild.nodeValue}if(m=="|"){b=createMmlNode("mo",document.createTextNode(d.output));b=createMmlNode("mrow",b);b.appendChild(k[0]);return[b,k[1]]}else{b=createMmlNode("mo",document.createTextNode("\u2223"));b=createMmlNode("mrow",b);return[b,h]}default:h=AMremoveCharsAndBlanks(h,d.input.length);return[createMmlNode(d.tag,document.createTextNode(d.output)),h]}}function AMparseIexpr(h){var a,j,g,d,f,b;h=AMremoveCharsAndBlanks(h,0);j=AMgetSymbol(h);f=AMparseSexpr(h);d=f[0];h=f[1];a=AMgetSymbol(h);if(a.ttype==INFIX&&a.input!="/"){h=AMremoveCharsAndBlanks(h,a.input.length);f=AMparseSexpr(h);if(f[0]==null){f[0]=createMmlNode("mo",document.createTextNode("\u25A1"))}else{AMremoveBrackets(f[0])}h=f[1];if(a.input=="_"){g=AMgetSymbol(h);b=(j.ttype==UNDEROVER);if(g.input=="^"){h=AMremoveCharsAndBlanks(h,g.input.length);var c=AMparseSexpr(h);AMremoveBrackets(c[0]);h=c[1];d=createMmlNode((b?"munderover":"msubsup"),d);d.appendChild(f[0]);d.appendChild(c[0]);d=createMmlNode("mrow",d)}else{d=createMmlNode((b?"munder":"msub"),d);d.appendChild(f[0])}}else{d=createMmlNode(a.tag,d);d.appendChild(f[0])}}return[d,h]}function AMparseExpr(p,q){var x,o,a,t,z=[],g=document.createDocumentFragment();do{p=AMremoveCharsAndBlanks(p,0);a=AMparseIexpr(p);o=a[0];p=a[1];x=AMgetSymbol(p);if(x.ttype==INFIX&&x.input=="/"){p=AMremoveCharsAndBlanks(p,x.input.length);a=AMparseIexpr(p);if(a[0]==null){a[0]=createMmlNode("mo",document.createTextNode("\u25A1"))}else{AMremoveBrackets(a[0])}p=a[1];AMremoveBrackets(o);o=createMmlNode(x.tag,o);o.appendChild(a[0]);g.appendChild(o);x=AMgetSymbol(p)}else{if(o!=undefined){g.appendChild(o)}}}while((x.ttype!=RIGHTBRACKET&&(x.ttype!=LEFTRIGHT||q)||AMnestingDepth==0)&&x!=null&&x.output!="");if(x.ttype==RIGHTBRACKET||x.ttype==LEFTRIGHT){var v=g.childNodes.length;if(v>0&&g.childNodes[v-1].nodeName=="mrow"&&v>1&&g.childNodes[v-2].nodeName=="mo"&&g.childNodes[v-2].firstChild.nodeValue==","){var A=g.childNodes[v-1].lastChild.firstChild.nodeValue;if(A==")"||A=="]"){var c=g.childNodes[v-1].firstChild.firstChild.nodeValue;if(c=="("&&A==")"&&x.output!="}"||c=="["&&A=="]"){var d=[];var w=true;var l=g.childNodes.length;for(t=0;w&&t<l;t=t+2){d[t]=[];o=g.childNodes[t];if(w){w=o.nodeName=="mrow"&&(t==l-1||o.nextSibling.nodeName=="mo"&&o.nextSibling.firstChild.nodeValue==",")&&o.firstChild.firstChild.nodeValue==c&&o.lastChild.firstChild.nodeValue==A}if(w){for(var s=0;s<o.childNodes.length;s++){if(o.childNodes[s].firstChild.nodeValue==","){d[t][d[t].length]=s}}}if(w&&t>1){w=d[t].length==d[t-2].length}}if(w){var f,b,h,r,y=document.createDocumentFragment();for(t=0;t<l;t=t+2){f=document.createDocumentFragment();b=document.createDocumentFragment();o=g.firstChild;h=o.childNodes.length;r=0;o.removeChild(o.firstChild);for(s=1;s<h-1;s++){if(typeof d[t][r]!="undefined"&&s==d[t][r]){o.removeChild(o.firstChild);f.appendChild(createMmlNode("mtd",b));r++}else{b.appendChild(o.firstChild)}}f.appendChild(createMmlNode("mtd",b));if(g.childNodes.length>2){g.removeChild(g.firstChild);g.removeChild(g.firstChild)}y.appendChild(createMmlNode("mtr",f))}o=createMmlNode("mtable",y);if(typeof x.invisible=="boolean"&&x.invisible){o.setAttribute("columnalign","left")}g.replaceChild(o,g.firstChild)}}}}p=AMremoveCharsAndBlanks(p,x.input.length);if(typeof x.invisible!="boolean"||!x.invisible){o=createMmlNode("mo",document.createTextNode(x.output));g.appendChild(o)}}return[g,p]}function parseMath(c,b){var d,a;AMnestingDepth=0;d=b?LMparseExpr(c.replace(/^\s+/g,""),false,false)[0]:AMparseExpr(c.replace(/^\s+/g,""),false)[0];a=createMmlNode("mstyle",d);a.setAttribute("mathcolor",mathcolor);a.setAttribute("fontfamily",mathfontfamily);a.setAttribute("mathsize",mathfontsize);if(displaystyle){a.setAttribute("displaystyle","true")}a=createMmlNode("math",a);if(showasciiformulaonhover){a.setAttribute("title",c.replace(/\s+/g," "))}return a}function strarr2docFrag(a,d,g){var k=document.createDocumentFragment();var h=false;for(var f=0;f<a.length;f++){if(h){k.appendChild(parseMath(a[f],g))}else{var b=(d?a[f].split("\n\n"):[a[f]]);k.appendChild(createElementXHTML("span").appendChild(document.createTextNode(b[0])));for(var c=1;c<b.length;c++){k.appendChild(createElementXHTML("p"));k.appendChild(createElementXHTML("span").appendChild(document.createTextNode(b[c])))}}h=!h}return k}function AMautomathrec(m){var b="\\\\[a-zA-Z]+|\\\\\\s|";var k="\\b(?:oo|lim|ln|int|oint|del|grad|aleph|prod|prop|sinh|cosh|tanh|cos|sec|pi|tt|fr|sf|sube|supe|sub|sup|det|mod|gcd|lcm|min|max|vec|ddot|ul|chi|eta|nu|mu)(?![a-z])|";var l="\\b(?:sum|ox|log|sin|tan|dim|hat|bar|dot)(?![a-z])|";var g="|\\bI\\b|\\bin\\b|\\btext\\b";var a="NN|ZZ|QQ|RR|CC|TT|AA|EE|sqrt|dx|dy|dz|dt|xx|vv|uu|nn|bb|cc|csc|cot|alpha|beta|delta|Delta|epsilon|gamma|Gamma|kappa|lambda|Lambda|omega|phi|Phi|Pi|psi|Psi|rho|sigma|Sigma|tau|theta|Theta|xi|Xi|zeta";var j="[a-zA-HJ-Z](?=(?:[^a-zA-Z]|$|"+k+l+a+"))|";var c=j+b+"\\d+|[-()[\\]{}+=*&^_%\\@/<>,\\|!:;'~]|\\.(?!(?:\x20|$))|"+k+l+a;var n=new RegExp("(^|\\s)((("+c+")\\s?)(("+c+g+")\\s?)+)([,.?]?(?=\\s|$))","g");m=m.replace(n," `$2`$7");var f=m.split(AMdelimiter1);var h=new RegExp("(^|\\s)([b-zB-HJ-Z+*<>]|"+b+k+a+")(\\s|\\n|$)","g");var d=new RegExp("(^|\\s)([a-z]|"+b+k+a+")([,.])","g");for(i=0;i<f.length;i++){if(i%2==0){f[i]=f[i].replace(h," `$2`$3");f[i]=f[i].replace(d," `$2`$3");f[i]=f[i].replace(/([{}[\]])/,"`$1`")}}m=f.join(AMdelimiter1);m=m.replace(/((^|\s)\([a-zA-Z]{2,}.*?)\)`/g,"$1`)");m=m.replace(/`(\((a\s|in\s))(.*?[a-zA-Z]{2,}\))/g,"$1`$3");m=m.replace(/\sin`/g,"` in");m=m.replace(/`(\(\w\)[,.]?(\s|\n|$))/g,"$1`");m=m.replace(/`([0-9.]+|e.g|i.e)`(\.?)/gi,"$1$2");m=m.replace(/`([0-9.]+:)`/g,"$1");return m}function processNodeR(c,h,b){var k,j,f,a,d;if(c.childNodes.length==0){if((c.nodeType!=8||h)&&c.parentNode.nodeName!="form"&&c.parentNode.nodeName!="FORM"&&c.parentNode.nodeName!="textarea"&&c.parentNode.nodeName!="TEXTAREA"){j=c.nodeValue;if(!(j==null)){j=j.replace(/\r\n\r\n/g,"\n\n");j=j.replace(/\x20+/g," ");j=j.replace(/\s*\r\n/g," ");if(b){k=(j.indexOf("$")==-1?false:true);j=j.replace(/([^\\])\$/g,"$1 $");j=j.replace(/^\$/," $");f=j.split(" $");for(d=0;d<f.length;d++){f[d]=f[d].replace(/\\\$/g,"$")}}else{k=false;j=j.replace(new RegExp(AMescape1,"g"),function(){k=true;return"AMescape1"});j=j.replace(/\\?end{?a?math}?/i,function(){automathrecognize=false;k=true;return""});j=j.replace(/amath\b|\\begin{a?math}/i,function(){automathrecognize=true;k=true;return""});f=j.split(AMdelimiter1);if(automathrecognize){for(d=0;d<f.length;d++){if(d%2==0){f[d]=AMautomathrec(f[d])}}}j=f.join(AMdelimiter1);f=j.split(AMdelimiter1);for(d=0;d<f.length;d++){f[d]=f[d].replace(/AMescape1/g,AMdelimiter1)}}if(f.length>1||k){if(!noMathML){a=strarr2docFrag(f,c.nodeType==8,b);var g=a.childNodes.length;c.parentNode.replaceChild(a,c);return g-1}else{return 0}}}}else{return 0}}else{if(c.nodeName!="math"){for(d=0;d<c.childNodes.length;d++){d+=processNodeR(c.childNodes[d],h,b)}}}return 0}function AMprocessNode(h,c,a){var g,b;if(a!=null){g=document.getElementsByTagName("span");for(var d=0;d<g.length;d++){if(g[d].className=="AM"){processNodeR(g[d],c,false)}}}else{try{b=h.innerHTML}catch(f){}if(b==null||/amath\b|\\begin{a?math}/i.test(b)||b.indexOf(AMdelimiter1+" ")!=-1||b.slice(-1)==AMdelimiter1||b.indexOf(AMdelimiter1+"<")!=-1||b.indexOf(AMdelimiter1+"\n")!=-1){processNodeR(h,c,false)}}}var LMsymbols=[{input:"\\alpha",tag:"mi",output:"\u03B1",ttype:CONST},{input:"\\beta",tag:"mi",output:"\u03B2",ttype:CONST},{input:"\\gamma",tag:"mi",output:"\u03B3",ttype:CONST},{input:"\\delta",tag:"mi",output:"\u03B4",ttype:CONST},{input:"\\epsilon",tag:"mi",output:"\u03B5",ttype:CONST},{input:"\\varepsilon",tag:"mi",output:"\u025B",ttype:CONST},{input:"\\zeta",tag:"mi",output:"\u03B6",ttype:CONST},{input:"\\eta",tag:"mi",output:"\u03B7",ttype:CONST},{input:"\\theta",tag:"mi",output:"\u03B8",ttype:CONST},{input:"\\vartheta",tag:"mi",output:"\u03D1",ttype:CONST},{input:"\\iota",tag:"mi",output:"\u03B9",ttype:CONST},{input:"\\kappa",tag:"mi",output:"\u03BA",ttype:CONST},{input:"\\lambda",tag:"mi",output:"\u03BB",ttype:CONST},{input:"\\mu",tag:"mi",output:"\u03BC",ttype:CONST},{input:"\\nu",tag:"mi",output:"\u03BD",ttype:CONST},{input:"\\xi",tag:"mi",output:"\u03BE",ttype:CONST},{input:"\\pi",tag:"mi",output:"\u03C0",ttype:CONST},{input:"\\varpi",tag:"mi",output:"\u03D6",ttype:CONST},{input:"\\rho",tag:"mi",output:"\u03C1",ttype:CONST},{input:"\\varrho",tag:"mi",output:"\u03F1",ttype:CONST},{input:"\\varsigma",tag:"mi",output:"\u03C2",ttype:CONST},{input:"\\sigma",tag:"mi",output:"\u03C3",ttype:CONST},{input:"\\tau",tag:"mi",output:"\u03C4",ttype:CONST},{input:"\\upsilon",tag:"mi",output:"\u03C5",ttype:CONST},{input:"\\phi",tag:"mi",output:"\u03C6",ttype:CONST},{input:"\\varphi",tag:"mi",output:"\u03D5",ttype:CONST},{input:"\\chi",tag:"mi",output:"\u03C7",ttype:CONST},{input:"\\psi",tag:"mi",output:"\u03C8",ttype:CONST},{input:"\\omega",tag:"mi",output:"\u03C9",ttype:CONST},{input:"\\Gamma",tag:"mo",output:"\u0393",ttype:CONST},{input:"\\Delta",tag:"mo",output:"\u0394",ttype:CONST},{input:"\\Theta",tag:"mo",output:"\u0398",ttype:CONST},{input:"\\Lambda",tag:"mo",output:"\u039B",ttype:CONST},{input:"\\Xi",tag:"mo",output:"\u039E",ttype:CONST},{input:"\\Pi",tag:"mo",output:"\u03A0",ttype:CONST},{input:"\\Sigma",tag:"mo",output:"\u03A3",ttype:CONST},{input:"\\Upsilon",tag:"mo",output:"\u03A5",ttype:CONST},{input:"\\Phi",tag:"mo",output:"\u03A6",ttype:CONST},{input:"\\Psi",tag:"mo",output:"\u03A8",ttype:CONST},{input:"\\Omega",tag:"mo",output:"\u03A9",ttype:CONST},{input:"\\frac12",tag:"mo",output:"\u00BD",ttype:CONST},{input:"\\frac14",tag:"mo",output:"\u00BC",ttype:CONST},{input:"\\frac34",tag:"mo",output:"\u00BE",ttype:CONST},{input:"\\frac13",tag:"mo",output:"\u2153",ttype:CONST},{input:"\\frac23",tag:"mo",output:"\u2154",ttype:CONST},{input:"\\frac15",tag:"mo",output:"\u2155",ttype:CONST},{input:"\\frac25",tag:"mo",output:"\u2156",ttype:CONST},{input:"\\frac35",tag:"mo",output:"\u2157",ttype:CONST},{input:"\\frac45",tag:"mo",output:"\u2158",ttype:CONST},{input:"\\frac16",tag:"mo",output:"\u2159",ttype:CONST},{input:"\\frac56",tag:"mo",output:"\u215A",ttype:CONST},{input:"\\frac18",tag:"mo",output:"\u215B",ttype:CONST},{input:"\\frac38",tag:"mo",output:"\u215C",ttype:CONST},{input:"\\frac58",tag:"mo",output:"\u215D",ttype:CONST},{input:"\\frac78",tag:"mo",output:"\u215E",ttype:CONST},{input:"\\pm",tag:"mo",output:"\u00B1",ttype:CONST},{input:"\\mp",tag:"mo",output:"\u2213",ttype:CONST},{input:"\\triangleleft",tag:"mo",output:"\u22B2",ttype:CONST},{input:"\\triangleright",tag:"mo",output:"\u22B3",ttype:CONST},{input:"\\cdot",tag:"mo",output:"\u22C5",ttype:CONST},{input:"\\star",tag:"mo",output:"\u22C6",ttype:CONST},{input:"\\ast",tag:"mo",output:"\u002A",ttype:CONST},{input:"\\times",tag:"mo",output:"\u00D7",ttype:CONST},{input:"\\div",tag:"mo",output:"\u00F7",ttype:CONST},{input:"\\circ",tag:"mo",output:"\u2218",ttype:CONST},{input:"\\bullet",tag:"mo",output:"\u2022",ttype:CONST},{input:"\\oplus",tag:"mo",output:"\u2295",ttype:CONST},{input:"\\ominus",tag:"mo",output:"\u2296",ttype:CONST},{input:"\\otimes",tag:"mo",output:"\u2297",ttype:CONST},{input:"\\bigcirc",tag:"mo",output:"\u25CB",ttype:CONST},{input:"\\oslash",tag:"mo",output:"\u2298",ttype:CONST},{input:"\\odot",tag:"mo",output:"\u2299",ttype:CONST},{input:"\\land",tag:"mo",output:"\u2227",ttype:CONST},{input:"\\wedge",tag:"mo",output:"\u2227",ttype:CONST},{input:"\\lor",tag:"mo",output:"\u2228",ttype:CONST},{input:"\\vee",tag:"mo",output:"\u2228",ttype:CONST},{input:"\\cap",tag:"mo",output:"\u2229",ttype:CONST},{input:"\\cup",tag:"mo",output:"\u222A",ttype:CONST},{input:"\\sqcap",tag:"mo",output:"\u2293",ttype:CONST},{input:"\\sqcup",tag:"mo",output:"\u2294",ttype:CONST},{input:"\\uplus",tag:"mo",output:"\u228E",ttype:CONST},{input:"\\amalg",tag:"mo",output:"\u2210",ttype:CONST},{input:"\\bigtriangleup",tag:"mo",output:"\u25B3",ttype:CONST},{input:"\\bigtriangledown",tag:"mo",output:"\u25BD",ttype:CONST},{input:"\\dag",tag:"mo",output:"\u2020",ttype:CONST},{input:"\\dagger",tag:"mo",output:"\u2020",ttype:CONST},{input:"\\ddag",tag:"mo",output:"\u2021",ttype:CONST},{input:"\\ddagger",tag:"mo",output:"\u2021",ttype:CONST},{input:"\\lhd",tag:"mo",output:"\u22B2",ttype:CONST},{input:"\\rhd",tag:"mo",output:"\u22B3",ttype:CONST},{input:"\\unlhd",tag:"mo",output:"\u22B4",ttype:CONST},{input:"\\unrhd",tag:"mo",output:"\u22B5",ttype:CONST},{input:"\\sum",tag:"mo",output:"\u2211",ttype:UNDEROVER},{input:"\\prod",tag:"mo",output:"\u220F",ttype:UNDEROVER},{input:"\\bigcap",tag:"mo",output:"\u22C2",ttype:UNDEROVER},{input:"\\bigcup",tag:"mo",output:"\u22C3",ttype:UNDEROVER},{input:"\\bigwedge",tag:"mo",output:"\u22C0",ttype:UNDEROVER},{input:"\\bigvee",tag:"mo",output:"\u22C1",ttype:UNDEROVER},{input:"\\bigsqcap",tag:"mo",output:"\u2A05",ttype:UNDEROVER},{input:"\\bigsqcup",tag:"mo",output:"\u2A06",ttype:UNDEROVER},{input:"\\coprod",tag:"mo",output:"\u2210",ttype:UNDEROVER},{input:"\\bigoplus",tag:"mo",output:"\u2A01",ttype:UNDEROVER},{input:"\\bigotimes",tag:"mo",output:"\u2A02",ttype:UNDEROVER},{input:"\\bigodot",tag:"mo",output:"\u2A00",ttype:UNDEROVER},{input:"\\biguplus",tag:"mo",output:"\u2A04",ttype:UNDEROVER},{input:"\\int",tag:"mo",output:"\u222B",ttype:CONST},{input:"\\oint",tag:"mo",output:"\u222E",ttype:CONST},{input:":=",tag:"mo",output:":=",ttype:CONST},{input:"\\lt",tag:"mo",output:"<",ttype:CONST},{input:"\\gt",tag:"mo",output:">",ttype:CONST},{input:"\\ne",tag:"mo",output:"\u2260",ttype:CONST},{input:"\\neq",tag:"mo",output:"\u2260",ttype:CONST},{input:"\\le",tag:"mo",output:"\u2264",ttype:CONST},{input:"\\leq",tag:"mo",output:"\u2264",ttype:CONST},{input:"\\leqslant",tag:"mo",output:"\u2264",ttype:CONST},{input:"\\ge",tag:"mo",output:"\u2265",ttype:CONST},{input:"\\geq",tag:"mo",output:"\u2265",ttype:CONST},{input:"\\geqslant",tag:"mo",output:"\u2265",ttype:CONST},{input:"\\equiv",tag:"mo",output:"\u2261",ttype:CONST},{input:"\\ll",tag:"mo",output:"\u226A",ttype:CONST},{input:"\\gg",tag:"mo",output:"\u226B",ttype:CONST},{input:"\\doteq",tag:"mo",output:"\u2250",ttype:CONST},{input:"\\prec",tag:"mo",output:"\u227A",ttype:CONST},{input:"\\succ",tag:"mo",output:"\u227B",ttype:CONST},{input:"\\preceq",tag:"mo",output:"\u227C",ttype:CONST},{input:"\\succeq",tag:"mo",output:"\u227D",ttype:CONST},{input:"\\subset",tag:"mo",output:"\u2282",ttype:CONST},{input:"\\supset",tag:"mo",output:"\u2283",ttype:CONST},{input:"\\subseteq",tag:"mo",output:"\u2286",ttype:CONST},{input:"\\supseteq",tag:"mo",output:"\u2287",ttype:CONST},{input:"\\sqsubset",tag:"mo",output:"\u228F",ttype:CONST},{input:"\\sqsupset",tag:"mo",output:"\u2290",ttype:CONST},{input:"\\sqsubseteq",tag:"mo",output:"\u2291",ttype:CONST},{input:"\\sqsupseteq",tag:"mo",output:"\u2292",ttype:CONST},{input:"\\sim",tag:"mo",output:"\u223C",ttype:CONST},{input:"\\simeq",tag:"mo",output:"\u2243",ttype:CONST},{input:"\\approx",tag:"mo",output:"\u2248",ttype:CONST},{input:"\\cong",tag:"mo",output:"\u2245",ttype:CONST},{input:"\\Join",tag:"mo",output:"\u22C8",ttype:CONST},{input:"\\bowtie",tag:"mo",output:"\u22C8",ttype:CONST},{input:"\\in",tag:"mo",output:"\u2208",ttype:CONST},{input:"\\ni",tag:"mo",output:"\u220B",ttype:CONST},{input:"\\owns",tag:"mo",output:"\u220B",ttype:CONST},{input:"\\propto",tag:"mo",output:"\u221D",ttype:CONST},{input:"\\vdash",tag:"mo",output:"\u22A2",ttype:CONST},{input:"\\dashv",tag:"mo",output:"\u22A3",ttype:CONST},{input:"\\models",tag:"mo",output:"\u22A8",ttype:CONST},{input:"\\perp",tag:"mo",output:"\u22A5",ttype:CONST},{input:"\\smile",tag:"mo",output:"\u2323",ttype:CONST},{input:"\\frown",tag:"mo",output:"\u2322",ttype:CONST},{input:"\\asymp",tag:"mo",output:"\u224D",ttype:CONST},{input:"\\notin",tag:"mo",output:"\u2209",ttype:CONST},{input:"\\begin{eqnarray}",output:"X",ttype:MATRIX,invisible:true},{input:"\\begin{array}",output:"X",ttype:MATRIX,invisible:true},{input:"\\\\",output:"}&{",ttype:DEFINITION},{input:"\\end{eqnarray}",output:"}}",ttype:DEFINITION},{input:"\\end{array}",output:"}}",ttype:DEFINITION},{input:"\\big",tag:"mo",output:"X",atval:"1.2",ieval:"2.2",ttype:BIG},{input:"\\Big",tag:"mo",output:"X",atval:"1.6",ieval:"2.6",ttype:BIG},{input:"\\bigg",tag:"mo",output:"X",atval:"2.2",ieval:"3.2",ttype:BIG},{input:"\\Bigg",tag:"mo",output:"X",atval:"2.9",ieval:"3.9",ttype:BIG},{input:"\\left",tag:"mo",output:"X",ttype:LEFTBRACKET},{input:"\\right",tag:"mo",output:"X",ttype:RIGHTBRACKET},{input:"{",output:"{",ttype:LEFTBRACKET,invisible:true},{input:"}",output:"}",ttype:RIGHTBRACKET,invisible:true},{input:"(",tag:"mo",output:"(",atval:"1",ttype:STRETCHY},{input:"[",tag:"mo",output:"[",atval:"1",ttype:STRETCHY},{input:"\\lbrack",tag:"mo",output:"[",atval:"1",ttype:STRETCHY},{input:"\\{",tag:"mo",output:"{",atval:"1",ttype:STRETCHY},{input:"\\lbrace",tag:"mo",output:"{",atval:"1",ttype:STRETCHY},{input:"\\langle",tag:"mo",output:"\u2329",atval:"1",ttype:STRETCHY},{input:"\\lfloor",tag:"mo",output:"\u230A",atval:"1",ttype:STRETCHY},{input:"\\lceil",tag:"mo",output:"\u2308",atval:"1",ttype:STRETCHY},{input:")",tag:"mo",output:")",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"]",tag:"mo",output:"]",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"\\rbrack",tag:"mo",output:"]",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"\\}",tag:"mo",output:"}",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"\\rbrace",tag:"mo",output:"}",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"\\rangle",tag:"mo",output:"\u232A",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"\\rfloor",tag:"mo",output:"\u230B",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"\\rceil",tag:"mo",output:"\u2309",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"|",tag:"mo",output:"\u2223",atval:"1",ttype:STRETCHY},{input:"\\|",tag:"mo",output:"\u2225",atval:"1",ttype:STRETCHY},{input:"\\vert",tag:"mo",output:"\u2223",atval:"1",ttype:STRETCHY},{input:"\\Vert",tag:"mo",output:"\u2225",atval:"1",ttype:STRETCHY},{input:"\\mid",tag:"mo",output:"\u2223",atval:"1",ttype:STRETCHY},{input:"\\parallel",tag:"mo",output:"\u2225",atval:"1",ttype:STRETCHY},{input:"/",tag:"mo",output:"/",atval:"1.01",ttype:STRETCHY},{input:"\\backslash",tag:"mo",output:"\u2216",atval:"1",ttype:STRETCHY},{input:"\\setminus",tag:"mo",output:"\\",ttype:CONST},{input:"\\!",tag:"mspace",atname:"width",atval:"-0.167em",ttype:SPACE},{input:"\\,",tag:"mspace",atname:"width",atval:"0.167em",ttype:SPACE},{input:"\\>",tag:"mspace",atname:"width",atval:"0.222em",ttype:SPACE},{input:"\\:",tag:"mspace",atname:"width",atval:"0.222em",ttype:SPACE},{input:"\\;",tag:"mspace",atname:"width",atval:"0.278em",ttype:SPACE},{input:"~",tag:"mspace",atname:"width",atval:"0.333em",ttype:SPACE},{input:"\\quad",tag:"mspace",atname:"width",atval:"1em",ttype:SPACE},{input:"\\qquad",tag:"mspace",atname:"width",atval:"2em",ttype:SPACE},{input:"\\prime",tag:"mo",output:"\u2032",ttype:CONST},{input:"'",tag:"mo",output:"\u02B9",ttype:CONST},{input:"''",tag:"mo",output:"\u02BA",ttype:CONST},{input:"'''",tag:"mo",output:"\u2034",ttype:CONST},{input:"''''",tag:"mo",output:"\u2057",ttype:CONST},{input:"\\ldots",tag:"mo",output:"\u2026",ttype:CONST},{input:"\\cdots",tag:"mo",output:"\u22EF",ttype:CONST},{input:"\\vdots",tag:"mo",output:"\u22EE",ttype:CONST},{input:"\\ddots",tag:"mo",output:"\u22F1",ttype:CONST},{input:"\\forall",tag:"mo",output:"\u2200",ttype:CONST},{input:"\\exists",tag:"mo",output:"\u2203",ttype:CONST},{input:"\\Re",tag:"mo",output:"\u211C",ttype:CONST},{input:"\\Im",tag:"mo",output:"\u2111",ttype:CONST},{input:"\\aleph",tag:"mo",output:"\u2135",ttype:CONST},{input:"\\hbar",tag:"mo",output:"\u210F",ttype:CONST},{input:"\\ell",tag:"mo",output:"\u2113",ttype:CONST},{input:"\\wp",tag:"mo",output:"\u2118",ttype:CONST},{input:"\\emptyset",tag:"mo",output:"\u2205",ttype:CONST},{input:"\\infty",tag:"mo",output:"\u221E",ttype:CONST},{input:"\\surd",tag:"mo",output:"\\sqrt{}",ttype:DEFINITION},{input:"\\partial",tag:"mo",output:"\u2202",ttype:CONST},{input:"\\nabla",tag:"mo",output:"\u2207",ttype:CONST},{input:"\\triangle",tag:"mo",output:"\u25B3",ttype:CONST},{input:"\\therefore",tag:"mo",output:"\u2234",ttype:CONST},{input:"\\angle",tag:"mo",output:"\u2220",ttype:CONST},{input:"\\diamond",tag:"mo",output:"\u22C4",ttype:CONST},{input:"\\Diamond",tag:"mo",output:"\u25C7",ttype:CONST},{input:"\\neg",tag:"mo",output:"\u00AC",ttype:CONST},{input:"\\lnot",tag:"mo",output:"\u00AC",ttype:CONST},{input:"\\bot",tag:"mo",output:"\u22A5",ttype:CONST},{input:"\\top",tag:"mo",output:"\u22A4",ttype:CONST},{input:"\\square",tag:"mo",output:"\u25AB",ttype:CONST},{input:"\\Box",tag:"mo",output:"\u25A1",ttype:CONST},{input:"\\wr",tag:"mo",output:"\u2240",ttype:CONST},{input:"\\arccos",tag:"mi",output:"arccos",ttype:UNARY,func:true},{input:"\\arcsin",tag:"mi",output:"arcsin",ttype:UNARY,func:true},{input:"\\arctan",tag:"mi",output:"arctan",ttype:UNARY,func:true},{input:"\\arg",tag:"mi",output:"arg",ttype:UNARY,func:true},{input:"\\cos",tag:"mi",output:"cos",ttype:UNARY,func:true},{input:"\\cosh",tag:"mi",output:"cosh",ttype:UNARY,func:true},{input:"\\cot",tag:"mi",output:"cot",ttype:UNARY,func:true},{input:"\\coth",tag:"mi",output:"coth",ttype:UNARY,func:true},{input:"\\csc",tag:"mi",output:"csc",ttype:UNARY,func:true},{input:"\\deg",tag:"mi",output:"deg",ttype:UNARY,func:true},{input:"\\det",tag:"mi",output:"det",ttype:UNARY,func:true},{input:"\\dim",tag:"mi",output:"dim",ttype:UNARY,func:true},{input:"\\exp",tag:"mi",output:"exp",ttype:UNARY,func:true},{input:"\\gcd",tag:"mi",output:"gcd",ttype:UNARY,func:true},{input:"\\hom",tag:"mi",output:"hom",ttype:UNARY,func:true},{input:"\\inf",tag:"mo",output:"inf",ttype:UNDEROVER},{input:"\\ker",tag:"mi",output:"ker",ttype:UNARY,func:true},{input:"\\lg",tag:"mi",output:"lg",ttype:UNARY,func:true},{input:"\\lim",tag:"mo",output:"lim",ttype:UNDEROVER},{input:"\\liminf",tag:"mo",output:"liminf",ttype:UNDEROVER},{input:"\\limsup",tag:"mo",output:"limsup",ttype:UNDEROVER},{input:"\\ln",tag:"mi",output:"ln",ttype:UNARY,func:true},{input:"\\log",tag:"mi",output:"log",ttype:UNARY,func:true},{input:"\\max",tag:"mo",output:"max",ttype:UNDEROVER},{input:"\\min",tag:"mo",output:"min",ttype:UNDEROVER},{input:"\\Pr",tag:"mi",output:"Pr",ttype:UNARY,func:true},{input:"\\sec",tag:"mi",output:"sec",ttype:UNARY,func:true},{input:"\\sin",tag:"mi",output:"sin",ttype:UNARY,func:true},{input:"\\sinh",tag:"mi",output:"sinh",ttype:UNARY,func:true},{input:"\\sup",tag:"mo",output:"sup",ttype:UNDEROVER},{input:"\\tan",tag:"mi",output:"tan",ttype:UNARY,func:true},{input:"\\tanh",tag:"mi",output:"tanh",ttype:UNARY,func:true},{input:"\\gets",tag:"mo",output:"\u2190",ttype:CONST},{input:"\\leftarrow",tag:"mo",output:"\u2190",ttype:CONST},{input:"\\to",tag:"mo",output:"\u2192",ttype:CONST},{input:"\\rightarrow",tag:"mo",output:"\u2192",ttype:CONST},{input:"\\leftrightarrow",tag:"mo",output:"\u2194",ttype:CONST},{input:"\\uparrow",tag:"mo",output:"\u2191",ttype:CONST},{input:"\\downarrow",tag:"mo",output:"\u2193",ttype:CONST},{input:"\\updownarrow",tag:"mo",output:"\u2195",ttype:CONST},{input:"\\Leftarrow",tag:"mo",output:"\u21D0",ttype:CONST},{input:"\\Rightarrow",tag:"mo",output:"\u21D2",ttype:CONST},{input:"\\Leftrightarrow",tag:"mo",output:"\u21D4",ttype:CONST},{input:"\\iff",tag:"mo",output:"~\\Longleftrightarrow~",ttype:DEFINITION},{input:"\\Uparrow",tag:"mo",output:"\u21D1",ttype:CONST},{input:"\\Downarrow",tag:"mo",output:"\u21D3",ttype:CONST},{input:"\\Updownarrow",tag:"mo",output:"\u21D5",ttype:CONST},{input:"\\mapsto",tag:"mo",output:"\u21A6",ttype:CONST},{input:"\\longleftarrow",tag:"mo",output:"\u2190",ttype:LONG},{input:"\\longrightarrow",tag:"mo",output:"\u2192",ttype:LONG},{input:"\\longleftrightarrow",tag:"mo",output:"\u2194",ttype:LONG},{input:"\\Longleftarrow",tag:"mo",output:"\u21D0",ttype:LONG},{input:"\\Longrightarrow",tag:"mo",output:"\u21D2",ttype:LONG},{input:"\\implies",tag:"mo",output:"\u21D2",ttype:LONG},{input:"\\Longleftrightarrow",tag:"mo",output:"\u21D4",ttype:LONG},{input:"\\longmapsto",tag:"mo",output:"\u21A6",ttype:CONST},{input:"\\sqrt",tag:"msqrt",output:"sqrt",ttype:UNARY},{input:"\\root",tag:"mroot",output:"root",ttype:BINARY},{input:"\\frac",tag:"mfrac",output:"/",ttype:BINARY},{input:"\\stackrel",tag:"mover",output:"stackrel",ttype:BINARY},{input:"\\atop",tag:"mfrac",output:"",ttype:INFIX},{input:"\\choose",tag:"mfrac",output:"",ttype:INFIX},{input:"_",tag:"msub",output:"_",ttype:INFIX},{input:"^",tag:"msup",output:"^",ttype:INFIX},{input:"\\mathrm",tag:"mtext",output:"text",ttype:TEXT},{input:"\\mbox",tag:"mtext",output:"mbox",ttype:TEXT},{input:"\\acute",tag:"mover",output:"\u00B4",ttype:UNARY,acc:true},{input:"\\grave",tag:"mover",output:"\u0060",ttype:UNARY,acc:true},{input:"\\breve",tag:"mover",output:"\u02D8",ttype:UNARY,acc:true},{input:"\\check",tag:"mover",output:"\u02C7",ttype:UNARY,acc:true},{input:"\\dot",tag:"mover",output:".",ttype:UNARY,acc:true},{input:"\\ddot",tag:"mover",output:"..",ttype:UNARY,acc:true},{input:"\\mathring",tag:"mover",output:"\u00B0",ttype:UNARY,acc:true},{input:"\\vec",tag:"mover",output:"\u20D7",ttype:UNARY,acc:true},{input:"\\overrightarrow",tag:"mover",output:"\u20D7",ttype:UNARY,acc:true},{input:"\\overleftarrow",tag:"mover",output:"\u20D6",ttype:UNARY,acc:true},{input:"\\hat",tag:"mover",output:"\u005E",ttype:UNARY,acc:true},{input:"\\widehat",tag:"mover",output:"\u0302",ttype:UNARY,acc:true},{input:"\\tilde",tag:"mover",output:"~",ttype:UNARY,acc:true},{input:"\\widetilde",tag:"mover",output:"\u02DC",ttype:UNARY,acc:true},{input:"\\bar",tag:"mover",output:"\u203E",ttype:UNARY,acc:true},{input:"\\overbrace",tag:"mover",output:"\u23B4",ttype:UNARY,acc:true},{input:"\\overline",tag:"mover",output:"\u00AF",ttype:UNARY,acc:true},{input:"\\underbrace",tag:"munder",output:"\u23B5",ttype:UNARY,acc:true},{input:"\\underline",tag:"munder",output:"\u00AF",ttype:UNARY,acc:true},{input:"\\displaystyle",tag:"mstyle",atname:"displaystyle",atval:"true",ttype:UNARY},{input:"\\textstyle",tag:"mstyle",atname:"displaystyle",atval:"false",ttype:UNARY},{input:"\\scriptstyle",tag:"mstyle",atname:"scriptlevel",atval:"1",ttype:UNARY},{input:"\\scriptscriptstyle",tag:"mstyle",atname:"scriptlevel",atval:"2",ttype:UNARY},{input:"\\textrm",tag:"mstyle",output:"\\mathrm",ttype:DEFINITION},{input:"\\mathbf",tag:"mstyle",atname:"mathvariant",atval:"bold",ttype:UNARY},{input:"\\textbf",tag:"mstyle",atname:"mathvariant",atval:"bold",ttype:UNARY},{input:"\\mathit",tag:"mstyle",atname:"mathvariant",atval:"italic",ttype:UNARY},{input:"\\textit",tag:"mstyle",atname:"mathvariant",atval:"italic",ttype:UNARY},{input:"\\mathtt",tag:"mstyle",atname:"mathvariant",atval:"monospace",ttype:UNARY},{input:"\\texttt",tag:"mstyle",atname:"mathvariant",atval:"monospace",ttype:UNARY},{input:"\\mathsf",tag:"mstyle",atname:"mathvariant",atval:"sans-serif",ttype:UNARY},{input:"\\mathbb",tag:"mstyle",atname:"mathvariant",atval:"double-struck",ttype:UNARY,codes:AMbbb},{input:"\\mathcal",tag:"mstyle",atname:"mathvariant",atval:"script",ttype:UNARY,codes:AMcal},{input:"\\mathfrak",tag:"mstyle",atname:"mathvariant",atval:"fraktur",ttype:UNARY,codes:AMfrk}];var LMnames=[];function LMremoveCharsAndBlanks(c,d){var a;a=c.slice(d);for(var b=0;b<a.length&&a.charCodeAt(b)<=32;b=b+1){}return a.slice(b)}function LMgetSymbol(h){var a=0;var b=0;var d;var l;var m;var f="";var g=true;for(var c=1;c<=h.length&&g;c++){l=h.slice(0,c);b=a;a=position(LMnames,l,b);if(a<LMnames.length&&h.slice(0,LMnames[a].length)==LMnames[a]){f=LMnames[a];d=a;c=f.length}g=a<LMnames.length&&h.slice(0,LMnames[a].length)>=LMnames[a]}LMpreviousSymbol=LMcurrentSymbol;if(f!=""){LMcurrentSymbol=LMsymbols[d].ttype;return LMsymbols[d]}LMcurrentSymbol=CONST;a=1;l=h.slice(0,1);if("0"<=l&&l<="9"){m="mn"}else{m=(("A">l||l>"Z")&&("a">l||l>"z")?"mo":"mi")}return{input:l,tag:m,output:l,ttype:CONST}}var LMpreviousSymbol,LMcurrentSymbol;function LMparseSexpr(n){var t,m,d,a,r,o,l=document.createDocumentFragment();n=LMremoveCharsAndBlanks(n,0);t=LMgetSymbol(n);if(t==null||t.ttype==RIGHTBRACKET){return[null,n,null]}if(t.ttype==DEFINITION){n=t.output+LMremoveCharsAndBlanks(n,t.input.length);t=LMgetSymbol(n);if(t==null||t.ttype==RIGHTBRACKET){return[null,n,null]}}n=LMremoveCharsAndBlanks(n,t.input.length);switch(t.ttype){case SPACE:m=createMmlNode(t.tag);m.setAttribute(t.atname,t.atval);return[m,n,t.tag];case UNDEROVER:if(isIE){if(t.input.substr(0,4)=="\\big"){n="\\"+t.input.substr(4)+n;t=LMgetSymbol(n);t.ttype=UNDEROVER;n=LMremoveCharsAndBlanks(n,t.input.length)}}return[createMmlNode(t.tag,document.createTextNode(t.output)),n,t.tag];case CONST:var g=t.output;if(isIE){if(t.input=="'"){g="\u2032"}else{if(t.input=="''"){g="\u2033"}else{if(t.input=="'''"){g="\u2033\u2032"}else{if(t.input=="''''"){g="\u2033\u2033"}else{if(t.input=="\\square"){g="\u25A1"}else{if(t.input.substr(0,5)=="\\frac"){var b=t.input.substr(6,1);if(b=="5"||b=="6"){n=t.input.replace(/\\frac/,"\\frac ")+n;return[m,n,t.tag]}}}}}}}}m=createMmlNode(t.tag,document.createTextNode(g));return[m,n,t.tag];case LONG:m=createMmlNode(t.tag,document.createTextNode(t.output));m.setAttribute("minsize","1.5");m.setAttribute("maxsize","1.5");m=createMmlNode("mover",m);m.appendChild(createMmlNode("mspace"));return[m,n,t.tag];case STRETCHY:if(isIE&&t.input=="\\backslash"){t.output="\\"}m=createMmlNode(t.tag,document.createTextNode(t.output));if(t.input=="|"||t.input=="\\vert"||t.input=="\\|"||t.input=="\\Vert"){m.setAttribute("lspace","0em");m.setAttribute("rspace","0em")}m.setAttribute("maxsize",t.atval);if(t.rtag!=null){return[m,n,t.rtag]}else{return[m,n,t.tag]}case BIG:var f=t.atval;if(isIE){f=t.ieval}t=LMgetSymbol(n);if(t==null){return[null,n,null]}n=LMremoveCharsAndBlanks(n,t.input.length);m=createMmlNode(t.tag,document.createTextNode(t.output));if(isIE){var v=createMmlNode("mspace");v.setAttribute("height",f+"ex");m=createMmlNode("mrow",m);m.appendChild(v)}else{m.setAttribute("minsize",f);m.setAttribute("maxsize",f)}return[m,n,t.tag];case LEFTBRACKET:if(t.input=="\\left"){t=LMgetSymbol(n);if(t!=null){if(t.input=="."){t.invisible=true}n=LMremoveCharsAndBlanks(n,t.input.length)}}d=LMparseExpr(n,true,false);if(t==null||(typeof t.invisible=="boolean"&&t.invisible)){m=createMmlNode("mrow",d[0])}else{m=createMmlNode("mo",document.createTextNode(t.output));m=createMmlNode("mrow",m);m.appendChild(d[0])}return[m,d[1],d[2]];case MATRIX:if(t.input=="\\begin{array}"){var s="";t=LMgetSymbol(n);n=LMremoveCharsAndBlanks(n,0);if(t==null){s="l"}else{n=LMremoveCharsAndBlanks(n,t.input.length);if(t.input!="{"){s="l"}else{do{t=LMgetSymbol(n);if(t!=null){n=LMremoveCharsAndBlanks(n,t.input.length);if(t.input!="}"){s=s+t.input}}}while(t!=null&&t.input!=""&&t.input!="}")}}d=LMparseExpr("{"+n,true,true);m=createMmlNode("mtable",d[0]);s=s.replace(/l/g,"left ");s=s.replace(/r/g,"right ");s=s.replace(/c/g,"center ");m.setAttribute("columnalign",s);m.setAttribute("displaystyle","false");if(isIE){return[m,d[1],null]}var k=createMmlNode("mspace");k.setAttribute("width","0.167em");var p=createMmlNode("mspace");p.setAttribute("width","0.167em");var c=createMmlNode("mrow",k);c.appendChild(m);c.appendChild(p);return[c,d[1],null]}else{d=LMparseExpr("{"+n,true,true);m=createMmlNode("mtable",d[0]);if(isIE){m.setAttribute("columnspacing","0.25em")}else{m.setAttribute("columnspacing","0.167em")}m.setAttribute("columnalign","right center left");m.setAttribute("displaystyle","true");m=createMmlNode("mrow",m);return[m,d[1],null]}case TEXT:if(n.charAt(0)=="{"){r=n.indexOf("}")}else{r=0}if(r==-1){r=n.length}o=n.slice(1,r);if(o.charAt(0)==" "){m=createMmlNode("mspace");m.setAttribute("width","0.33em");l.appendChild(m)}l.appendChild(createMmlNode(t.tag,document.createTextNode(o)));if(o.charAt(o.length-1)==" "){m=createMmlNode("mspace");m.setAttribute("width","0.33em");l.appendChild(m)}n=LMremoveCharsAndBlanks(n,r+1);return[createMmlNode("mrow",l),n,null];case UNARY:d=LMparseSexpr(n);if(d[0]==null){return[createMmlNode(t.tag,document.createTextNode(t.output)),n]}if(typeof t.func=="boolean"&&t.func){o=n.charAt(0);if(o=="^"||o=="_"||o==","){return[createMmlNode(t.tag,document.createTextNode(t.output)),n,t.tag]}else{m=createMmlNode("mrow",createMmlNode(t.tag,document.createTextNode(t.output)));if(isIE){var v=createMmlNode("mspace");v.setAttribute("width","0.167em");m.appendChild(v)}m.appendChild(d[0]);return[m,d[1],t.tag]}}if(t.input=="\\sqrt"){if(isIE){var v=createMmlNode("mspace");v.setAttribute("height","1.2ex");v.setAttribute("width","0em");m=createMmlNode(t.tag,d[0]);m.appendChild(v);return[m,d[1],t.tag]}else{return[createMmlNode(t.tag,d[0]),d[1],t.tag]}}else{if(typeof t.acc=="boolean"&&t.acc){m=createMmlNode(t.tag,d[0]);var g=t.output;if(isIE){if(t.input=="\\hat"){g="\u0302"}else{if(t.input=="\\widehat"){g="\u005E"}else{if(t.input=="\\bar"){g="\u00AF"}else{if(t.input=="\\grave"){g="\u0300"}else{if(t.input=="\\tilde"){g="\u0303"}}}}}}var c=createMmlNode("mo",document.createTextNode(g));if(t.input=="\\vec"||t.input=="\\check"){c.setAttribute("maxsize","1.2")}if(isIE&&t.input=="\\bar"){c.setAttribute("maxsize","0.5")}if(t.input=="\\underbrace"||t.input=="\\underline"){c.setAttribute("accentunder","true")}else{c.setAttribute("accent","true")}m.appendChild(c);if(t.input=="\\overbrace"||t.input=="\\underbrace"){m.ttype=UNDEROVER}return[m,d[1],t.tag]}else{if(!isIE&&typeof t.codes!="undefined"){for(r=0;r<d[0].childNodes.length;r++){if(d[0].childNodes[r].nodeName=="mi"||d[0].nodeName=="mi"){o=(d[0].nodeName=="mi"?d[0].firstChild.nodeValue:d[0].childNodes[r].firstChild.nodeValue);var h=[];for(var q=0;q<o.length;q++){if(o.charCodeAt(q)>64&&o.charCodeAt(q)<91){h=h+String.fromCharCode(t.codes[o.charCodeAt(q)-65])}else{h=h+o.charAt(q)}}if(d[0].nodeName=="mi"){d[0]=createMmlNode("mo").appendChild(document.createTextNode(h))}else{d[0].replaceChild(createMmlNode("mo").appendChild(document.createTextNode(h)),d[0].childNodes[r])}}}}m=createMmlNode(t.tag,d[0]);m.setAttribute(t.atname,t.atval);if(t.input=="\\scriptstyle"||t.input=="\\scriptscriptstyle"){m.setAttribute("displaystyle","false")}return[m,d[1],t.tag]}}case BINARY:d=LMparseSexpr(n);if(d[0]==null){return[createMmlNode("mo",document.createTextNode(t.input)),n,null]}a=LMparseSexpr(d[1]);if(a[0]==null){return[createMmlNode("mo",document.createTextNode(t.input)),n,null]}if(t.input=="\\root"||t.input=="\\stackrel"){l.appendChild(a[0])}l.appendChild(d[0]);if(t.input=="\\frac"){l.appendChild(a[0])}return[createMmlNode(t.tag,l),a[1],t.tag];case INFIX:n=LMremoveCharsAndBlanks(n,t.input.length);return[createMmlNode("mo",document.createTextNode(t.output)),n,t.tag];default:return[createMmlNode(t.tag,document.createTextNode(t.output)),n,t.tag]}}function LMparseIexpr(g){var f,d,b,c,h,k,j;g=LMremoveCharsAndBlanks(g,0);d=LMgetSymbol(g);h=LMparseSexpr(g);c=h[0];g=h[1];k=h[2];f=LMgetSymbol(g);if(f.ttype==INFIX){g=LMremoveCharsAndBlanks(g,f.input.length);h=LMparseSexpr(g);if(h[0]==null){h[0]=createMmlNode("mo",document.createTextNode("\u25A1"))}g=h[1];k=h[2];if(f.input=="_"||f.input=="^"){b=LMgetSymbol(g);k=null;j=((d.ttype==UNDEROVER)||(c.ttype==UNDEROVER));if(f.input=="_"&&b.input=="^"){g=LMremoveCharsAndBlanks(g,b.input.length);var a=LMparseSexpr(g);g=a[1];k=a[2];c=createMmlNode((j?"munderover":"msubsup"),c);c.appendChild(h[0]);c.appendChild(a[0])}else{if(f.input=="_"){c=createMmlNode((j?"munder":"msub"),c);c.appendChild(h[0])}else{c=createMmlNode((j?"mover":"msup"),c);c.appendChild(h[0])}}c=createMmlNode("mrow",c)}else{c=createMmlNode(f.tag,c);if(f.input=="\\atop"||f.input=="\\choose"){c.setAttribute("linethickness","0ex")}c.appendChild(h[0]);if(f.input=="\\choose"){c=createMmlNode("mfenced",c)}}}return[c,g,k]}function LMparseExpr(o,p,v){var w,l,a,s,z,f=document.createDocumentFragment();do{o=LMremoveCharsAndBlanks(o,0);a=LMparseIexpr(o);l=a[0];o=a[1];z=a[2];w=LMgetSymbol(o);if(l!=undefined){i... [truncated message content] |
|
From: <pb...@fe...> - 2012-12-17 12:55:20
|
Author: pboy
Date: 2012-12-17 12:55:07 +0000 (Mon, 17 Dec 2012)
New Revision: 2408
Modified:
trunk/ccm-cms/src/com/arsdigita/cms/CMSResources.properties
trunk/ccm-cms/src/com/arsdigita/cms/CMSResources_de.properties
trunk/ccm-cms/src/com/arsdigita/cms/contenttypes/GenericContact.java
trunk/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericOrganizationalUnitPersonAddForm.java
Log:
Activated CreateTab in ItemSearchWidget, fixed generic contact output, improved localisation. (on behalf of JensP)
Modified: trunk/ccm-cms/src/com/arsdigita/cms/CMSResources.properties
===================================================================
--- trunk/ccm-cms/src/com/arsdigita/cms/CMSResources.properties 2012-12-17 11:16:00 UTC (rev 2407)
+++ trunk/ccm-cms/src/com/arsdigita/cms/CMSResources.properties 2012-12-17 12:55:07 UTC (rev 2408)
@@ -1,17 +1,17 @@
# Package com.arsdigita.cms
# =========================
-cms.attributeset_is_already_locked=AttributeSet is already locked
-cms.attributeset_is_locked=AttributeSet is locked
-cms.cannot_create_xml_document=Cannot create XML document
-cms.cant_promote_folders=Can't promote folders
-cms.classnotfoundexception=ClassNotFoundException:
-cms.illegalaccessexception=IllegalAccessException:
-cms.image.erroneous_jpeg_marker_length=Erroneous JPEG marker length
-cms.image.expected_soi_marker_first=Expected SOI marker first
+cms.attributeset_is_already_locked=AttributeSet is already locked
+cms.attributeset_is_locked=AttributeSet is locked
+cms.cannot_create_xml_document=Cannot create XML document
+cms.cant_promote_folders=Can't promote folders
+cms.classnotfoundexception=ClassNotFoundException:
+cms.illegalaccessexception=IllegalAccessException:
+cms.image.erroneous_jpeg_marker_length=Erroneous JPEG marker length
+cms.image.expected_soi_marker_first=Expected SOI marker first
cms.image.not_a_jpeg_file=Not a JPEG file
-cms.instantiationexception=Instantiation Exception:
-cms.nosuchmethodexception=No-Such-Method Exception:
-cms.templates=Templates
+cms.instantiationexception=Instantiation Exception:
+cms.nosuchmethodexception=No-Such-Method Exception:
+cms.templates=Templates
cms.title=Title
no=No
yes=Yes
@@ -22,49 +22,49 @@
# Package com.arsdigita.cms.contenttypes
# ======================================
-cms.contenttypes.contact=Contact:
-cms.contenttypes.contact_details=Contact Details:
-cms.contenttypes.contact_information=Contact Information:
-cms.contenttypes.contactinfo=ContactInfo:
-cms.contenttypes.cost=Cost:
-cms.contenttypes.coudlnt_retrieve_text=Coudln't retrieve text
+cms.contenttypes.contact=Contact:
+cms.contenttypes.contact_details=Contact Details:
+cms.contenttypes.contact_information=Contact Information:
+cms.contenttypes.contactinfo=ContactInfo:
+cms.contenttypes.cost=Cost:
+cms.contenttypes.coudlnt_retrieve_text=Coudln't retrieve text
cms.contenttypes.current_image=Current Image:
-cms.contenttypes.department=Department:
-cms.contenttypes.end_date=End Date:
+cms.contenttypes.department=Department:
+cms.contenttypes.end_date=End Date:
cms.contenttypes.end_time=End Time:
-cms.contenttypes.event_type_not_registered=Event type not registered
+cms.contenttypes.event_type_not_registered=Event type not registered
#used in ccm-cms-types-job
-cms.contenttypes.grade=Grade:
+cms.contenttypes.grade=Grade:
#used in ccm-cms-types-organization
cms.contenttypes.image=Image:
-cms.contenttypes.installer.article_section=Article Section
-cms.contenttypes.installer.article_section_for_a_multipart_article=Article section for a multi-part article
-cms.contenttypes.job_description=Description:
-cms.contenttypes.job_type_not_registered=Job type not registered
-cms.contenttypes.lead=Description:
-cms.contenttypes.legalnotice_type_not_registered=LegalNotice type not registered
+cms.contenttypes.installer.article_section=Article Section
+cms.contenttypes.installer.article_section_for_a_multipart_article=Article section for a multi-part article
+cms.contenttypes.job_description=Description:
+cms.contenttypes.job_type_not_registered=Job type not registered
+cms.contenttypes.lead=Description:
+cms.contenttypes.legalnotice_type_not_registered=LegalNotice type not registered
cms.contenttypes.link=Link:
-cms.contenttypes.link_to_map=Link to Map:
-cms.contenttypes.location=Location:
-cms.contenttypes.main_contributor=Main Contributor:
-cms.contenttypes.minutes_type_not_registered=Minutes type not registered
-cms.contenttypes.news_date=Date:
-cms.contenttypes.newsitem_type_not_registered=NewsItem type not registered
-cms.contenttypes.no_content_section=No content section
-cms.contenttypes.no_section=No section
-cms.contenttypes.opening_time=Opening Time:
-cms.contenttypes.person_specification=Person Specification:
-cms.contenttypes.pressrelease_type_not_registered=PressRelease type not registered
-cms.contenttypes.ref_number=Ref. Number:
-cms.contenttypes.salary=Salary:
-cms.contenttypes.service_type_not_registered=Service type not registered
-cms.contenttypes.services_provided=Services Provided:
-cms.contenttypes.start_date=Start Date:
-cms.contenttypes.start_time=Start Time:
-cms.contenttypes.subjectitems=SubjectItems:
-cms.contenttypes.summary=Description:
-cms.contenttypes.title=Title:
+cms.contenttypes.link_to_map=Link to Map:
+cms.contenttypes.location=Location:
+cms.contenttypes.main_contributor=Main Contributor:
+cms.contenttypes.minutes_type_not_registered=Minutes type not registered
+cms.contenttypes.news_date=Date:
+cms.contenttypes.newsitem_type_not_registered=NewsItem type not registered
+cms.contenttypes.no_content_section=No content section
+cms.contenttypes.no_section=No section
+cms.contenttypes.opening_time=Opening Time:
+cms.contenttypes.person_specification=Person Specification:
+cms.contenttypes.pressrelease_type_not_registered=PressRelease type not registered
+cms.contenttypes.ref_number=Ref. Number:
+cms.contenttypes.salary=Salary:
+cms.contenttypes.service_type_not_registered=Service type not registered
+cms.contenttypes.services_provided=Services Provided:
+cms.contenttypes.start_date=Start Date:
+cms.contenttypes.start_time=Start Time:
+cms.contenttypes.subjectitems=SubjectItems:
+cms.contenttypes.summary=Description:
+cms.contenttypes.title=Title:
cms.contenttypes.template.body_text.title=Body text
cms.contenttypes.template.body_text.description=Edit the body text
cms.contenttypes.shared.assign_categories.title=Assign Categories
@@ -79,127 +79,127 @@
# Package com.arsdigita.cms.contenttypes.ui
# =========================================
-cms.contenttypes.ui.action_item=Action Item:
-cms.contenttypes.ui.address=Address:
-cms.contenttypes.ui.agenda_date=Agenda Date:
-cms.contenttypes.ui.agenda_date_and_time=Agenda Date and Time:
-cms.contenttypes.ui.attendees=Attendees:
-cms.contenttypes.ui.bodyoverview=Body/Overview:
-cms.contenttypes.ui.closing_date=Closing Date:
-cms.contenttypes.ui.contact_details=Contact Details:
-cms.contenttypes.ui.contact_info=Contact Info:
-cms.contenttypes.ui.contacts=Contacts:
-cms.contenttypes.ui.content_group_current_items=Current Items:
-cms.contenttypes.ui.content_group_name=Content Group Name:
-cms.contenttypes.ui.content_group_new_item=Add new item:
-cms.contenttypes.ui.cost=Cost:
-cms.contenttypes.ui.creation_date=Creation Date:
-cms.contenttypes.ui.date=Date:
-cms.contenttypes.ui.department=Department:
-cms.contenttypes.ui.description=Description:
+cms.contenttypes.ui.action_item=Action Item:
+cms.contenttypes.ui.address=Address:
+cms.contenttypes.ui.agenda_date=Agenda Date:
+cms.contenttypes.ui.agenda_date_and_time=Agenda Date and Time:
+cms.contenttypes.ui.attendees=Attendees:
+cms.contenttypes.ui.bodyoverview=Body/Overview:
+cms.contenttypes.ui.closing_date=Closing Date:
+cms.contenttypes.ui.contact_details=Contact Details:
+cms.contenttypes.ui.contact_info=Contact Info:
+cms.contenttypes.ui.contacts=Contacts:
+cms.contenttypes.ui.content_group_current_items=Current Items:
+cms.contenttypes.ui.content_group_name=Content Group Name:
+cms.contenttypes.ui.content_group_new_item=Add new item:
+cms.contenttypes.ui.cost=Cost:
+cms.contenttypes.ui.creation_date=Creation Date:
+cms.contenttypes.ui.date=Date:
+cms.contenttypes.ui.department=Department:
+cms.contenttypes.ui.description=Description:
cms.contenttypes.ui.description_missing=Please enter a description
-cms.contenttypes.ui.description_of_minutes=Description of Minutes:
-cms.contenttypes.ui.end_date=End Date:
-cms.contenttypes.ui.end_time=End Time:
+cms.contenttypes.ui.description_of_minutes=Description of Minutes:
+cms.contenttypes.ui.end_date=End Date:
+cms.contenttypes.ui.end_time=End Time:
cms.contenttypes.ui.event_start_time=Event Start Time:
cms.contenttypes.ui.event_end_time=Event End Time:
-cms.contenttypes.ui.government_uid=Government UID:
-cms.contenttypes.ui.grade=Grade:
+cms.contenttypes.ui.government_uid=Government UID:
+cms.contenttypes.ui.grade=Grade:
cms.contenttypes.ui.homepage=Homepage:
-cms.contenttypes.ui.job_description=Job Description:
-cms.contenttypes.ui.launch_date=Launch Date:
-cms.contenttypes.ui.lead=Description:
-cms.contenttypes.ui.lead_line=Description:
-cms.contenttypes.ui.link_to_map=Link to Map:
-cms.contenttypes.ui.location=Location:
-cms.contenttypes.ui.main_contributor=Main Contributor:
-cms.contenttypes.ui.name=Name:
-cms.contenttypes.ui.opening_times=Opening Times:
-cms.contenttypes.ui.person_specification=Person Specification:
-cms.contenttypes.ui.ref_code=Ref. Code:
-cms.contenttypes.ui.ref_number=Ref Number:
-cms.contenttypes.ui.reference=Reference:
-cms.contenttypes.ui.reference_code=Reference Code:
-cms.contenttypes.ui.salary=Salary:
-cms.contenttypes.ui.services_provided=Services Provided:
-cms.contenttypes.ui.start_date=Start Date:
-cms.contenttypes.ui.start_time=Start Time:
-cms.contenttypes.ui.subject_items=Subject Items:
-cms.contenttypes.ui.summary=Description:
-cms.contenttypes.ui.there_are_no_events=There are no events
-cms.contenttypes.ui.title=Title:
+cms.contenttypes.ui.job_description=Job Description:
+cms.contenttypes.ui.launch_date=Launch Date:
+cms.contenttypes.ui.lead=Description:
+cms.contenttypes.ui.lead_line=Description:
+cms.contenttypes.ui.link_to_map=Link to Map:
+cms.contenttypes.ui.location=Location:
+cms.contenttypes.ui.main_contributor=Main Contributor:
+cms.contenttypes.ui.name=Name:
+cms.contenttypes.ui.opening_times=Opening Times:
+cms.contenttypes.ui.person_specification=Person Specification:
+cms.contenttypes.ui.ref_code=Ref. Code:
+cms.contenttypes.ui.ref_number=Ref Number:
+cms.contenttypes.ui.reference=Reference:
+cms.contenttypes.ui.reference_code=Reference Code:
+cms.contenttypes.ui.salary=Salary:
+cms.contenttypes.ui.services_provided=Services Provided:
+cms.contenttypes.ui.start_date=Start Date:
+cms.contenttypes.ui.start_time=Start Time:
+cms.contenttypes.ui.subject_items=Subject Items:
+cms.contenttypes.ui.summary=Description:
+cms.contenttypes.ui.there_are_no_events=There are no events
+cms.contenttypes.ui.title=Title:
cms.contenttypes.ui.view_image=view image
-
-
+
+
# Package com.arsdigita.cms.dispatcher
# =====================================
-cms.dispatcher.cannot_find_domain_object=cannot find domain object
-cms.dispatcher.could_not_find_imageasset=Could not find ImageAsset:
-cms.dispatcher.failed_to_retrieve_imageasset=Failed to retrieve ImageAsset:
-cms.dispatcher.no_permission_to_access_resource=no permission to access resource
-cms.dispatcher.not_implemented=not implemented
+cms.dispatcher.cannot_find_domain_object=cannot find domain object
+cms.dispatcher.could_not_find_imageasset=Could not find ImageAsset:
+cms.dispatcher.failed_to_retrieve_imageasset=Failed to retrieve ImageAsset:
+cms.dispatcher.no_permission_to_access_resource=no permission to access resource
+cms.dispatcher.not_implemented=not implemented
cms.dispatcher.unknown_context=Unknown context:
-
-
+
+
# Package com.arsdigita.cms.formbuilder
# =====================================
-cms.formbuilder.cannot_create_acsobject=cannot create ACSObject
-cms.formbuilder.cannot_instantiate_object=cannot instantiate object
-cms.formbuilder.no_such_form=no such form
-cms.formbuilder.roll_me_back=Roll me back
+cms.formbuilder.cannot_create_acsobject=cannot create ACSObject
+cms.formbuilder.cannot_instantiate_object=cannot instantiate object
+cms.formbuilder.no_such_form=no such form
+cms.formbuilder.roll_me_back=Revert changes
cms.formbuilder.css=Cascading Style Sheet (CSS) Class Attribute
-
-
+
+
# Package com.arsdigita.cms.installer
# =====================================
cms.installer.approval=Approval
-cms.installer.article=Article
+cms.installer.article=Article
cms.installer.authoring=Authoring
-cms.installer.cannot_find_cms_package_type=cannot find CMS package type
-cms.installer.cannot_find_content_type=cannot find content type
-cms.installer.cannot_find_file=cannot find file
-cms.installer.cannot_find_group_for_email=Cannot find group for email
-cms.installer.cannot_read_line_of_data=Cannot read line of data
-cms.installer.cannot_set_template_text=Cannot set template text
+cms.installer.cannot_find_cms_package_type=cannot find CMS package type
+cms.installer.cannot_find_content_type=cannot find content type
+cms.installer.cannot_find_file=cannot find file
+cms.installer.cannot_find_group_for_email=Cannot find group for email
+cms.installer.cannot_read_line_of_data=Cannot read line of data
+cms.installer.cannot_set_template_text=Cannot set template text
cms.installer.could_not_load_section=Could not load ContentSection named '{0}'
cms.installer.deploy=Deploy
cms.installer.failed_to_update_the_default_content_section=Failed to update the default content section.
-cms.installer.formbuilder.form=Form
-cms.installer.formbuilder.form_section=Form Section
+cms.installer.formbuilder.form=Form
+cms.installer.formbuilder.form_section=Form Section
cms.installer.production_workflow=Production Workflow
-cms.installer.root_folder=Root Folder
-cms.installer.root_site_node_missing=Root site node missing
+cms.installer.root_folder=Root Folder
+cms.installer.root_site_node_missing=Root site node missing
cms.installer.simple_publication=Simple Publication
cms.installer.template=Template
-
+
# Package com.arsdigita.cms.lifecycle
# ===================================
-cms.lifecycle.could_not_fetch_lifecycle=Could not fetch lifecycle:
-cms.lifecycle.could_not_fetch_phase=Could not fetch phase:
+cms.lifecycle.could_not_fetch_lifecycle=Could not fetch lifecycle:
+cms.lifecycle.could_not_fetch_phase=Could not fetch phase:
# Package com.arsdigita.cms.publishToFile
# =======================================
-cms.publishToFile.cannot_find_file=cannot find file
-cms.publishToFile.cannot_find_item_class=cannot find item class
-cms.publishToFile.cannot_find_server=cannot find server
-cms.publishToFile.cannot_get_sequence_value=cannot get sequence value
-cms.publishToFile.cannot_read_template_text=cannot read template text
-cms.publishToFile.could_not_get_object_for_oid=Could not get object for oid
-cms.publishToFile.error_executing=Error executing '{0}' :
-cms.publishToFile.exit_value_was=Exit value was
-cms.publishToFile.interrupted_when_doing=interrupted when doing '{0}'
-cms.publishToFile.invalid_brokenlinkaction=Invalid BrokenLinkAction:
-cms.publishToFile.invalid_reference_target_type=Invalid reference target type:
-cms.publishToFile.malformed_url=Malformed URL:
-cms.publishToFile.not_found_in_servers_list= not found in servers list
-cms.publishToFile.publish_to_file_listener_could_not_be_created=Publish to file listener could not be created:
-cms.publishToFile.publish_to_file_setlocalrequestpassword_could_not_be_created=Publish to file SetLocalRequestPassword could not be created:
-cms.publishToFile.publishsource_sourcebase_must_end_in_=PublishSource sourceBase must end in '/'
-cms.publishToFile.server=server
-cms.publishToFile.unable_to_find_closing_for_tag=Unable to find closing '>' for tag.
+cms.publishToFile.cannot_find_file=cannot find file
+cms.publishToFile.cannot_find_item_class=cannot find item class
+cms.publishToFile.cannot_find_server=cannot find server
+cms.publishToFile.cannot_get_sequence_value=cannot get sequence value
+cms.publishToFile.cannot_read_template_text=cannot read template text
+cms.publishToFile.could_not_get_object_for_oid=Could not get object for oid
+cms.publishToFile.error_executing=Error executing '{0}' :
+cms.publishToFile.exit_value_was=Exit value was
+cms.publishToFile.interrupted_when_doing=interrupted when doing '{0}'
+cms.publishToFile.invalid_brokenlinkaction=Invalid BrokenLinkAction:
+cms.publishToFile.invalid_reference_target_type=Invalid reference target type:
+cms.publishToFile.malformed_url=Malformed URL:
+cms.publishToFile.not_found_in_servers_list= not found in servers list
+cms.publishToFile.publish_to_file_listener_could_not_be_created=Publish to file listener could not be created:
+cms.publishToFile.publish_to_file_setlocalrequestpassword_could_not_be_created=Publish to file SetLocalRequestPassword could not be created:
+cms.publishToFile.publishsource_sourcebase_must_end_in_=PublishSource sourceBase must end in '/'
+cms.publishToFile.server=server
+cms.publishToFile.unable_to_find_closing_for_tag=Unable to find closing '>' for tag.
cms.publishToFile.unable_to_get_contentitem=Unable to get contentItem:
-
+
# cms.tasks.ui.anyone=Anyone
# cms.tasks.ui.assigned_to=Assigned To:
# cms.tasks.ui.assignment_info=Assignment Info
@@ -220,41 +220,41 @@
# cms.tasks.ui.workflow=Workflow
-
+
# Package com.arsdigita.cms.ui
# ============================
cms.ui.action=Action
cms.ui.actions=Actions
cms.ui.all_items=All Items
-cms.ui.assigned_categories=Assigned Categories:
+cms.ui.assigned_categories=Assigned Categories:
cms.ui.attention=Attention
cms.ui.Authoring=Authoring
-cms.ui.available_categories=Available Categories:
+cms.ui.available_categories=Available Categories:
cms.ui.browse=Browse
-cms.ui.browse_items_by_category=Browse items by category
+cms.ui.browse_items_by_category=Browse items by category
cms.ui.cancel=Cancel
-cms.ui.cancel_hit=Cancel hit
-cms.ui.cancelled=cancelled
+cms.ui.cancel_hit=Cancel hit
+cms.ui.cancelled=cancelled
cms.ui.cannot_assign_groups_to_owner=cannot assign groups to owner
cms.ui.categories=Categories
cms.ui.choose_target_folder=Choose target folder
cms.ui.content_center=Content center
cms.ui.content_item=Content item
cms.ui.content_section=Content section
-cms.ui.content_section_configuration=<h2>Content Section Configuration</h2>
+cms.ui.content_section_configuration=<h2>Content Section Configuration</h2>
cms.ui.content_types=Content types
-cms.ui.contents_of=Contents of
+cms.ui.contents_of=Contents of
cms.ui.create=Create
cms.ui.cse=Soon Expired
-cms.ui.default_locale=Default Locale:
+cms.ui.default_locale=Default Locale:
cms.ui.delete=Delete
cms.ui.description=Description
cms.ui.edit=Edit
cms.ui.edit_folder=Rename the current folder
cms.ui.email=Email
-cms.ui.enter_a_keyword=Enter a keyword:
-cms.ui.enter_first_name_last_name_andor_email_address=Enter first name, last name, and/or email address:
-cms.ui.enter_first_name_last_name_email_address_andor_group_name=Enter first name, last name, email address and/or Group Name:
+cms.ui.enter_a_keyword=Enter a keyword:
+cms.ui.enter_first_name_last_name_andor_email_address=Enter first name, last name, and/or email address:
+cms.ui.enter_first_name_last_name_email_address_andor_group_name=Enter first name, last name, email address and/or Group Name:
cms.ui.failed_to_create_new_dp_item=Failed to create a new DP Item.
cms.ui.failed_to_fetch_content_section_for_item=Failed to fetch the content section for the item:
cms.ui.failed_to_fetch_content_type=Failed to fetch content type for
@@ -269,12 +269,12 @@
cms.ui.for=for
cms.ui.help=Help
cms.ui.History=History
-cms.ui.history.history=History
-cms.ui.history.no_history=No History
-cms.ui.history.preview=Preview
-cms.ui.history.rollback=Rollback
-cms.ui.insufficient_privileges=Insufficient Privileges
-cms.ui.invalid_item_id=Invalid item id:{0}
+cms.ui.history.history=History
+cms.ui.history.no_history=No History
+cms.ui.history.preview=Preview
+cms.ui.history.rollback=Rollback
+cms.ui.insufficient_privileges=Insufficient Privileges
+cms.ui.invalid_item_id=Invalid item id:{0}
cms.ui.item=Content item
cms.ui.item_name_already_in_folder=That title is already in use by another item in this folder:
cms.ui.label=Label
@@ -285,9 +285,9 @@
cms.ui.language_instance.new=New Language Instance
cms.ui.language_instances=Language Instances
cms.ui.lifecycles=Lifecycles
-cms.ui.locales=Locales:
-cms.ui.logout_failed=Logout failed
-cms.ui.matches=Matches
+cms.ui.locales=Locales:
+cms.ui.logout_failed=Logout failed
+cms.ui.matches=Matches
cms.ui.max_launch=Maximum Launch Date
cms.ui.min_launch=Minimum Launch Date
cms.ui.my_workspace=My Portal
@@ -297,133 +297,133 @@
cms.ui.new_folder=Create new folder
cms.ui.new_item=New Item
cms.ui.no=No
-cms.ui.no_content_section_for_page=No content section for page
-cms.ui.no_items_matched_the_search=No items matched the search
+cms.ui.no_content_section_for_page=No content section for page
+cms.ui.no_items_matched_the_search=No items matched the search
cms.ui.none=None
cms.ui.parent=Parent
-cms.ui.permissions=Permissions
-cms.ui.preview=Preview
+cms.ui.permissions=Permissions
+cms.ui.preview=Preview
cms.ui.primary_instance=Primary Instance
cms.ui.Publishing=Publishing
cms.ui.remove=Remove
cms.ui.reports=Reports
-cms.ui.restore_default_permissions=Restore Default Permissions
+cms.ui.restore_default_permissions=Restore Default Permissions
cms.ui.roles=Roles
cms.ui.save=Save
cms.ui.search=Search
cms.ui.search_prompt=Search to add new members
-cms.ui.search_to_add_new_members=Search to Add New Members
+cms.ui.search_to_add_new_members=Search to Add New Members
cms.ui.search_errors.empty_terms=Please enter some search terms
cms.ui.search_errors.bad_terms=Your search terms contain illegal words or characters
cms.ui.search_no_results=Sorry. Your search returned 0 results.
cms.ui.select_one=--select one--
cms.ui.sign_out=Sign out
-cms.ui.submission_cancelled=Submission Cancelled
+cms.ui.submission_cancelled=Submission Cancelled
cms.ui.Summary=Summary
cms.ui.tasks_due_date=Due date
cms.ui.tasks_status_no_colon=Status
cms.ui.template=Template
cms.ui.Templates=Templates
-cms.ui.the_model_is_empty=The model is empty
-cms.ui.there_are_no_items=There are no items.
-cms.ui.there_was_no_one_matching_the_search_criteria=There was no one matching the search criteria.
-cms.ui.this_should_never_happen=This should never happen
+cms.ui.the_model_is_empty=The model is empty
+cms.ui.there_are_no_items=There are no items.
+cms.ui.there_was_no_one_matching_the_search_criteria=There was no one matching the search criteria.
+cms.ui.this_should_never_happen=This should never happen
cms.ui.types=Content types
cms.ui.unknown=unknown
cms.ui.upload_new_content=Upload new content
-cms.ui.use_custom_permissions=Use Custom Permissions
+cms.ui.use_custom_permissions=Use Custom Permissions
cms.ui.user=User
cms.ui.user_admin=User administration
cms.ui.user_not_found=User not found
-cms.ui.util.=
+cms.ui.util.=
# cms.ui.view_all_enabled_tasks=View all enabled tasks //currently not used//
# cms.ui.view_all_enabled_tasks=View all {0} enabled tasks //currently not used//
-cms.ui.view_tasks_sorted_by_due_date=View tasks sorted by due date
+cms.ui.view_tasks_sorted_by_due_date=View tasks sorted by due date
cms.ui.viewers=Viewers
-cms.ui.welcome=Welcome CMS USER
+cms.ui.welcome=Welcome CMS USER
cms.ui.workflow=Workflow
cms.ui.workflows=Workflows
cms.ui.workflow_profile_exists_on_selected_folder=Workflow Profile exists on selected folder
cms.ui.yes=Yes
-cms.ui.you_do_not_have_sufficient_privileges_to_access_this_page=You do not have sufficient privileges to access this page.
+cms.ui.you_do_not_have_sufficient_privileges_to_access_this_page=You do not have sufficient privileges to access this page.
cms.ui.item_search.page_title=Item Search
cms.ui.item_search.browse=Browse
cms.ui.item_search.search=Search
-
+
# Package com.arsdigita.cms.ui.authoring
# ======================================
-cms.ui.authoring.an_item_with_this_name_already_exists=An item with this name already exists
-cms.ui.authoring.bad_getblob_datatype=Bad getBlob datatype
-cms.ui.authoring.bad_getclob_datatype=Bad getClob datatype
-cms.ui.authoring.body=Body:
-cms.ui.authoring.caption=Caption:
-cms.ui.authoring.content_type=Content Type:
-cms.ui.authoring.couldnt_create_contentpage=Couldn't create ContentPage
-cms.ui.authoring.edit_body_text=Edit Body Text:
-cms.ui.authoring.edit_caption=Edit caption
-cms.ui.authoring.file_action=File Action
+cms.ui.authoring.an_item_with_this_name_already_exists=An item with this name already exists
+cms.ui.authoring.bad_getblob_datatype=Bad getBlob datatype
+cms.ui.authoring.bad_getclob_datatype=Bad getClob datatype
+cms.ui.authoring.body=Body:
+cms.ui.authoring.caption=Caption:
+cms.ui.authoring.content_type=Content Type:
+cms.ui.authoring.couldnt_create_contentpage=Couldn't create ContentPage
+cms.ui.authoring.edit_body_text=Edit Body Text:
+cms.ui.authoring.edit_caption=Edit caption
+cms.ui.authoring.file_action=File Action
cms.ui.authoring.file_upload.auto_detect=(Auto-detect)
cms.ui.authoring.file_upload.file_type=File Type:
-cms.ui.authoring.image_action=Image Action
+cms.ui.authoring.image_action=Image Action
cms.ui.authoring.invalid_create_component=Creation component for parent content type is invalid.
-cms.ui.authoring.missing_content_type=Missing content type
-cms.ui.authoring.missing_item_id=Missing item id
-cms.ui.authoring.name=Name:
-cms.ui.authoring.name_url=Name (URL):
-cms.ui.authoring.no_asset=No asset
-cms.ui.authoring.no_content_types_were_found=No content types were found
-cms.ui.authoring.no_current_wizard=No current wizard
+cms.ui.authoring.missing_content_type=Missing content type
+cms.ui.authoring.missing_item_id=Missing item id
+cms.ui.authoring.name=Name:
+cms.ui.authoring.name_url=Name (URL):
+cms.ui.authoring.no_asset=No asset
+cms.ui.authoring.no_content_types_were_found=No content types were found
+cms.ui.authoring.no_current_wizard=No current wizard
cms.ui.authoring.none=<i>none</i>
-cms.ui.authoring.not_implemented=Not Implemented
-cms.ui.authoring.page_launch_date=Launch Date:
-cms.ui.authoring.page_title=Page Title:
-cms.ui.authoring.remove_image=Remove image
-cms.ui.authoring.select_an_existing_image=Select an existing image
-cms.ui.authoring.sql_error_in_getting_byte_content=SQL Error in getting byte content!
-cms.ui.authoring.sqle=SQLE
+cms.ui.authoring.not_implemented=Not Implemented
+cms.ui.authoring.page_launch_date=Launch Date:
+cms.ui.authoring.page_title=Page Title:
+cms.ui.authoring.remove_image=Remove image
+cms.ui.authoring.select_an_existing_image=Select an existing image
+cms.ui.authoring.sql_error_in_getting_byte_content=SQL Error in getting byte content!
+cms.ui.authoring.sqle=SQLE
cms.ui.authoring.steps=Authoring steps
-cms.ui.authoring.submission_cancelled=Submission Cancelled
-cms.ui.authoring.text_type=Text Type:
-cms.ui.authoring.this_article_does_not_have_an_image=This article does not have an image.
-cms.ui.authoring.title=Title:
-cms.ui.authoring.unable_to_load_file=Unable to load file:
-cms.ui.authoring.upload_a_new_image=Upload a new image
+cms.ui.authoring.submission_cancelled=Submission Cancelled
+cms.ui.authoring.text_type=Text Type:
+cms.ui.authoring.this_article_does_not_have_an_image=This article does not have an image.
+cms.ui.authoring.title=Title:
+cms.ui.authoring.unable_to_load_file=Unable to load file:
+cms.ui.authoring.upload_a_new_image=Upload a new image
cms.ui.authoring.upload_image=Upload Image:
cms.ui.authoring.upload_image=Upload Image:
cms.ui.authoring.workflow=Select a Workflow
-
+
# Package com.arsdigita.cms.ui.authoringkit
# =========================================
-cms.ui.authoringkit.authoring_kit_for=Authoring Kit for
+cms.ui.authoringkit.authoring_kit_for=Authoring Kit for
cms.ui.authoringkit.authoring_kit_has_more_than_one_step=This authoring kit has more than one step:
cms.ui.authoringkit.authoring_kit_has_no_steps=This authoring kit has no steps:
-cms.ui.authoringkit.component=Component:
-cms.ui.authoringkit.content_type_id=Content Type ID#
-cms.ui.authoringkit.create_component=Create Component:
-cms.ui.authoringkit.createcomponent=CreateComponent:
-cms.ui.authoringkit.current_row_does_not_exists=Current row does not exists
-cms.ui.authoringkit.description=Description:
+cms.ui.authoringkit.component=Component:
+cms.ui.authoringkit.content_type_id=Content Type ID#
+cms.ui.authoringkit.create_component=Create Component:
+cms.ui.authoringkit.createcomponent=CreateComponent:
+cms.ui.authoringkit.current_row_does_not_exists=Current row does not exists
+cms.ui.authoringkit.description=Description:
cms.ui.authoringkit.description_bundle=Description Bundle
cms.ui.authoringkit.description_key=Description Key
-cms.ui.authoringkit.do_you_really_want_to_delete_this_authoring_step=Do you really want to delete this authoring step?
-cms.ui.authoringkit.label=Label:
+cms.ui.authoringkit.do_you_really_want_to_delete_this_authoring_step=Do you really want to delete this authoring step?
+cms.ui.authoringkit.label=Label:
cms.ui.authoringkit.label_bundle=Label Bundle
cms.ui.authoringkit.label_key=Label Key
-cms.ui.authoringkit.ordering=Ordering:
-cms.ui.authoringkit.submission_cancelled=Submission Cancelled
+cms.ui.authoringkit.ordering=Ordering:
+cms.ui.authoringkit.submission_cancelled=Submission Cancelled
-
+
# Package com.arsdigita.cms.ui.category
# =====================================
cms.ui.category.add=Add category
cms.ui.category.add_index_item=Set index item
cms.ui.category.add_use_context=Add Use Context
-cms.ui.category.assigned_purposes=Assigned Purposes:
-cms.ui.category.available_purposes=Available Purposes:
-cms.ui.category.back= (back)
+cms.ui.category.assigned_purposes=Assigned Purposes:
+cms.ui.category.available_purposes=Available Purposes:
+cms.ui.category.back= (back)
cms.ui.category.batch_categorized_objects=Batch Order Items in This Category
cms.ui.category.batch_order_objects_order=Priority
cms.ui.category.batch_order_objects_title=Title
@@ -433,12 +433,12 @@
cms.ui.category.content_item=Content Item
cms.ui.category.delete=Delete category
cms.ui.category.delete_prompt=Are you sure you want to delete this category?
-cms.ui.category.descriptionn=Description:\n
+cms.ui.category.descriptionn=Description:\n
cms.ui.category.details=Category details
cms.ui.category.edit=Edit category
-cms.ui.category.edit_index_item=Edit index item
+cms.ui.category.edit_index_item=Edit index item
cms.ui.category.edit_a_category=Edit a Category
-cms.ui.category.edit_purposes=Edit purposes
+cms.ui.category.edit_purposes=Edit purposes
cms.ui.category.index_item.select=Select an index item for this category
cms.ui.category.index_item=Index item
cms.ui.category.intro=Select a category
@@ -447,7 +447,7 @@
cms.ui.category.is_not_abstract=Can you place objects in this category?
cms.ui.category.item.none=There are no items in this category
cms.ui.category.item=Categorized item
-cms.ui.category.labeln=Label:\n
+cms.ui.category.labeln=Label:\n
cms.ui.category.linked=Linked categories
cms.ui.category.linked_add=Add or remove linked categories
cms.ui.category.linked_none=This category has no linked categories
@@ -464,9 +464,9 @@
cms.ui.category.localization_url=URL
cms.ui.category.name_not_unique=There is already a category with this name
cms.ui.category.no_categorized_objects=There are no categorized objects
-cms.ui.category.no_category_purposes=No Category Purposes
+cms.ui.category.no_category_purposes=No Category Purposes
cms.ui.category.no_linked_categories=No linked categories
-cms.ui.category.no_subcategories=No subcategories
+cms.ui.category.no_subcategories=No subcategories
cms.ui.category.purpose_add=Add or remove category purposes
cms.ui.category.purpose_assigned=Assigned purposes
cms.ui.category.purpose_available=Available purposes
@@ -483,9 +483,9 @@
cms.ui.category.use_context=Use Context
cms.ui.category.use_contexts=Use Contexts
cms.ui.category.use_context_must_be_unique=Use context must be unique within a Content Section.
-cms.ui.category.view_index_item=View index item
+cms.ui.category.view_index_item=View index item
-
+
# Package com.arsdigita.cms.ui.cse
# ================================
cms.ui.cse.authorName=Author
@@ -496,42 +496,42 @@
cms.ui.cse.editLink=edit
cms.ui.cse.endDateTime=Live Until
-
+
# Package com.arsdigita.cms.ui.folder
# ===================================
-cms.ui.folder.cancelled=cancelled
-cms.ui.folder.cannot_find_a_root_folder=Cannot find a root folder.
-cms.ui.folder.na=N/A
-cms.ui.folder.no_source_items_specified=No source items specified.
+cms.ui.folder.cancelled=cancelled
+cms.ui.folder.cannot_find_a_root_folder=Cannot find a root folder.
+cms.ui.folder.na=N/A
+cms.ui.folder.no_source_items_specified=No source items specified.
cms.ui.folder.parent=Parent Folder
cms.ui.folder.rename=Rename folder
-
-
+
+
# Package com.arsdigita.cms.ui.formbuilder
# ========================================
-cms.ui.formbuilder.description=Description:
-cms.ui.formbuilder.name=Name:
-cms.ui.formbuilder.oh_no_you_dont=Oh no you don't
-cms.ui.formbuilder.title=Title:
+cms.ui.formbuilder.description=Description:
+cms.ui.formbuilder.name=Name:
+cms.ui.formbuilder.oh_no_you_dont=Oh no you don't
+cms.ui.formbuilder.title=Title:
-
+
# Package com.arsdigita.cms.ui.item
# =================================
-cms.ui.item.access_denied=Access denied.
-cms.ui.item.apply_a_lifecycle=Apply a Lifecycle
+cms.ui.item.access_denied=Access denied.
+cms.ui.item.apply_a_lifecycle=Apply a Lifecycle
cms.ui.item.authoring=Authoring
cms.ui.item.categories.assigned=Assigned categories
cms.ui.item.categories.available=Available categories
-cms.ui.item.current_row_does_not_exist=Current row does not exist
+cms.ui.item.current_row_does_not_exist=Current row does not exist
cms.ui.item.days=days
-cms.ui.item.edit_lifecycle=Edit Lifecycle
+cms.ui.item.edit_lifecycle=Edit Lifecycle
cms.ui.item.end_date=End date:
cms.ui.item.end_time=End time:
-cms.ui.item.end_time_incomplete=End time incomplete
+cms.ui.item.end_time_incomplete=End time incomplete
cms.ui.item.history=History
-cms.ui.item.hours=hours
-cms.ui.item.invalid_end_date_please_try_again=Invalid end date, please try again
-cms.ui.item.invalid_start_date_please_try_again=Invalid start date, please try again
+cms.ui.item.hours=hours
+cms.ui.item.invalid_end_date_please_try_again=Invalid end date, please try again
+cms.ui.item.invalid_start_date_please_try_again=Invalid start date, please try again
cms.ui.item.language.add=Add language
cms.ui.item.language.change=Change language
cms.ui.item.languages=Languages
@@ -554,7 +554,7 @@
cms.ui.item.notification_period=Notify in advance:
cms.ui.item.notification_period_before_start=The period for advance notification must not be longer than the publishing period.
cms.ui.item.preview=Preview
-cms.ui.item.reapply_a_lifecycle=Re-apply a Lifecycle
+cms.ui.item.reapply_a_lifecycle=Re-apply a Lifecycle
cms.ui.item.revision.added=Added To
cms.ui.item.revision.current=Current revision
cms.ui.item.revision.difference_show=Show difference
@@ -583,21 +583,21 @@
cms.ui.item.revisions=Revisions
cms.ui.item.start_date=Start date:
cms.ui.item.start_time=Start time:
-cms.ui.item.start_time_incomplete=Start time incomplete
-cms.ui.item.submission_cancelled=Submission Cancelled
+cms.ui.item.start_time_incomplete=Start time incomplete
+cms.ui.item.submission_cancelled=Submission Cancelled
cms.ui.item.summary=Summary
cms.ui.item.templates=Templates
-cms.ui.item.the_current_row_does_not_exists=The current row does not exists
+cms.ui.item.the_current_row_does_not_exists=The current row does not exists
cms.ui.item.workflow=Workflow
cms.ui.item.workflow.start=Start workflow
cms.ui.item.workflow.stop=Stop workflow
-
+
# Package com.arsdigita.cms.ui.lifecycle
# ======================================
cms.ui.lifecycle.add=Create new lifecycle
-cms.ui.lifecycle.add_a_phase=Add a Phase
-cms.ui.lifecycle.create_a_lifecycle=Create a Lifecycle
+cms.ui.lifecycle.add_a_phase=Add a Phase
+cms.ui.lifecycle.create_a_lifecycle=Create a Lifecycle
cms.ui.lifecycle.days=Days
cms.ui.lifecycle.delete_prompt=Are you sure you want to delete this lifecycle?
cms.ui.lifecycle.delete=Delete lifecycle
@@ -608,13 +608,13 @@
cms.ui.lifecycle.forever=Forever
cms.ui.lifecycle.hours=Hours
cms.ui.lifecycle.intro=Select an existing lifecycle or create a new one
-cms.ui.lifecycle.label=Label:
-cms.ui.lifecycle.lifecycle_information=Lifecycle Information
+cms.ui.lifecycle.label=Label:
+cms.ui.lifecycle.lifecycle_information=Lifecycle Information
cms.ui.lifecycle.lifecycles=Lifecycles
cms.ui.lifecycle.mins=Mins
cms.ui.lifecycle.name=Name
cms.ui.lifecycle.name_not_unique=There is already a lifecycle with this name
-cms.ui.lifecycle.no_lifecycles_defined_for_this_section=No lifecycles defined for this section.
+cms.ui.lifecycle.no_lifecycles_defined_for_this_section=No lifecycles defined for this section.
cms.ui.lifecycle.no_phases=This lifecycle has no phases
cms.ui.lifecycle.phase_add=Add phase
cms.ui.lifecycle.phase_days=Days
@@ -631,26 +631,26 @@
cms.ui.lifecycle.phase_none=This lifecycle has no phases
cms.ui.lifecycle.phase_start_delay=Start delay
cms.ui.lifecycle.phases=Phases
-cms.ui.lifecycle.start_delay=Start Delay:
+cms.ui.lifecycle.start_delay=Start Delay:
-
+
# Package com.arsdigita.cms.ui.permissions
# ========================================
-cms.ui.permissions.add_administrator=Add administrator
-cms.ui.permissions.cannot_add_user=cannot add user
-cms.ui.permissions.cannot_retrieve_party=Cannot retrieve party
-cms.ui.permissions.column_index=Column index
-cms.ui.permissions.could_not_find_this_object=Could not find this Object
-cms.ui.permissions.current_object_is_null=current Object is null!
-cms.ui.permissions.no_users_were_selected=No users were selected.
-cms.ui.permissions.not_an_object_adminstrator=not an object adminstrator
-cms.ui.permissions.out_of_bounds= out of bounds
-cms.ui.permissions.remove=remove
-cms.ui.permissions.return_to_object_info=Return to object info
-cms.ui.permissions.these_are_the_current_permissions_for_this_folder=These are the current permissions for this folder.
-cms.ui.permissions.these_are_the_custom_permissions_that_have_been_granted_on_this_object=These are the custom permissions that have been granted on this object.
+cms.ui.permissions.add_administrator=Add administrator
+cms.ui.permissions.cannot_add_user=cannot add user
+cms.ui.permissions.cannot_retrieve_party=Cannot retrieve party
+cms.ui.permissions.column_index=Column index
+cms.ui.permissions.could_not_find_this_object=Could not find this Object
+cms.ui.permissions.current_object_is_null=current Object is null!
+cms.ui.permissions.no_users_were_selected=No users were selected.
+cms.ui.permissions.not_an_object_adminstrator=not an object adminstrator
+cms.ui.permissions.out_of_bounds= out of bounds
+cms.ui.permissions.remove=remove
+cms.ui.permissions.return_to_object_info=Return to object info
+cms.ui.permissions.these_are_the_current_permissions_for_this_folder=These are the current permissions for this folder.
+cms.ui.permissions.these_are_the_custom_permissions_that_have_been_granted_on_this_object=These are the custom permissions that have been granted on this object.
-
+
# Package com.arsdigita.cms.ui.portlet
# ====================================
cms.ui.portlet.tasks.no_assigned_tasks=You currently have no assigned tasks.
@@ -669,7 +669,7 @@
cms.ui.reports.css.subfolderCount=Subfolders
cms.ui.reports.css.contentType=Content Type
cms.ui.reports.css.draft=Draft
-cms.ui.reports.css.live=Live
+cms.ui.reports.css.live=Live
# Package com.arsdigita.cms.ui.role
# =================================
@@ -700,47 +700,47 @@
cms.ui.role.staff=Staff roles
cms.ui.role.viewer.add=Add a viewer role
cms.ui.role.viewers=Viewer roles
-
+
# Package com.arsdigita.cms.ui.staff
# ==================================
cms.ui.staff.add_member=Add member
cms.ui.staff.add_role=Create new role
-cms.ui.staff.create_a_role=Create a role
+cms.ui.staff.create_a_role=Create a role
cms.ui.staff.delete_confirmation_prompt=Are you sure you want to delete this role?
-cms.ui.staff.description=Description
-cms.ui.staff.edit_a_role=Edit a Role
+cms.ui.staff.description=Description
+cms.ui.staff.edit_a_role=Edit a Role
cms.ui.staff.edit_role=Edit role
-cms.ui.staff.label=Label
+cms.ui.staff.label=Label
cms.ui.staff.no_roles_defined=No roles are defined for this section
-cms.ui.staff.privileges=Privileges
-cms.ui.staff.remove=Remove
+cms.ui.staff.privileges=Privileges
+cms.ui.staff.remove=Remove
cms.ui.staff.role_description=Description
cms.ui.staff.role_details=Role details
cms.ui.staff.role_intro=Select an existing role or create a new one
cms.ui.staff.role_members=Role members
cms.ui.staff.role_name=Name
cms.ui.staff.roles=Roles
-cms.ui.staff.there_are_no_administrators_for_this_role=There are no administrators for this role
+cms.ui.staff.there_are_no_administrators_for_this_role=There are no administrators for this role
-
+
# Package com.arsdigita.cms.ui.templates
# ======================================
-cms.ui.templates.assign_a_template_to=Assign a template to
-cms.ui.templates.assign_template=Assign Template
-cms.ui.templates.assign_this_template=Assign this template
+cms.ui.templates.assign_a_template_to=Assign a template to
+cms.ui.templates.assign_template=Assign Template
+cms.ui.templates.assign_this_template=Assign this template
cms.ui.templates.assigned_templates=Assigned templates
-cms.ui.templates.default=Default
-cms.ui.templates.dummy=dummy
-cms.ui.templates.label=Label:
-cms.ui.templates.name=Name:
-cms.ui.templates.no_templates=No Templates
-cms.ui.templates.not_implemented=Not Implemented
-cms.ui.templates.preview=Preview
-cms.ui.templates.remove=Remove
-cms.ui.templates.set_as_default=Set as Default
-cms.ui.templates.use_context=Use Context:
+cms.ui.templates.default=Default
+cms.ui.templates.dummy=dummy
+cms.ui.templates.label=Label:
+cms.ui.templates.name=Name:
+cms.ui.templates.no_templates=No Templates
+cms.ui.templates.not_implemented=Not Implemented
+cms.ui.templates.preview=Preview
+cms.ui.templates.remove=Remove
+cms.ui.templates.set_as_default=Set as Default
+cms.ui.templates.use_context=Use Context:
-
+
# Package com.arsdigita.cms.ui.type
# =================================
cms.ui.type.add=Add content type
@@ -788,32 +788,32 @@
cms.ui.type.year_range_wrong_order=The years in the range are out of order
cms.ui.type.year_too_anachronistic=The range dates appear abnormal
-
+
# Package com.arsdigita.cms.ui.worfklow
# =====================================
cms.ui.worfklow.task_roles=Assigned roles
cms.ui.workflow.add=Add workflow
-cms.ui.workflow.add_a_new_task_to=Add a new Task to
-cms.ui.workflow.add_task=Add Task
-cms.ui.workflow.assign_roles_for=Assign Roles for
-cms.ui.workflow.cancel_hit=Cancel hit
+cms.ui.workflow.add_a_new_task_to=Add a new Task to
+cms.ui.workflow.add_task=Add Task
+cms.ui.workflow.assign_roles_for=Assign Roles for
+cms.ui.workflow.cancel_hit=Cancel hit
cms.ui.workflow.comment=Comment
cms.ui.workflow.current_state=Current state
cms.ui.workflow.delete=Delete workflow
cms.ui.workflow.delete_prompt=Are you sure you want to delete this workflow?
-cms.ui.workflow.delete_user=delete user
-cms.ui.workflow.delete_workflow=Delete workflow
+cms.ui.workflow.delete_user=delete user
+cms.ui.workflow.delete_workflow=Delete workflow
cms.ui.workflow.description=Description
cms.ui.workflow.details=Workflow details
cms.ui.workflow.edit=Edit workflow
-cms.ui.workflow.edit_task_in=Edit Task in
+cms.ui.workflow.edit_task_in=Edit Task in
cms.ui.workflow.insufficient_privileges=You have insufficient privileges
cms.ui.workflow.intro=Select a workflow or add a new one
cms.ui.workflow.lock_tasks=Lock my tasks for this content item
-cms.ui.workflow.no_users_were_selected=No users were selected.
+cms.ui.workflow.no_users_were_selected=No users were selected.
cms.ui.workflow.num_tasks=Number of tasks
-cms.ui.workflow.restart_stopped_workflow=Restart stopped workflow
-cms.ui.workflow.stop_workflow=Stop workflow
+cms.ui.workflow.restart_stopped_workflow=Restart stopped workflow
+cms.ui.workflow.stop_workflow=Stop workflow
cms.ui.workflow.task.add=Add task
cms.ui.workflow.task.approve=Approve
cms.ui.workflow.task.approve_prompt=Approve this work?
Modified: trunk/ccm-cms/src/com/arsdigita/cms/CMSResources_de.properties
===================================================================
--- trunk/ccm-cms/src/com/arsdigita/cms/CMSResources_de.properties 2012-12-17 11:16:00 UTC (rev 2407)
+++ trunk/ccm-cms/src/com/arsdigita/cms/CMSResources_de.properties 2012-12-17 12:55:07 UTC (rev 2408)
@@ -1,16 +1,16 @@
# Package com.arsdigita.cms
# =========================
-cms.attributeset_is_already_locked=AttributeSet ist bereits gesperrt
-cms.attributeset_is_locked=AttributeSet ist gesperrt
-cms.cannot_create_xml_document=Kann XML Dokument nicht erstellen
-cms.cant_promote_folders=Can't promote folders
+cms.attributeset_is_already_locked=AttributeSet ist bereits gesperrt
+cms.attributeset_is_locked=AttributeSet ist gesperrt
+cms.cannot_create_xml_document=Kann XML Dokument nicht erstellen
+cms.cant_promote_folders=Can't promote folders
cms.classnotfoundexception=ClassNotFoundException:
-cms.illegalaccessexception=IllegalAccessException:
-cms.image.erroneous_jpeg_marker_length=Erroneous JPEG marker length
-cms.image.expected_soi_marker_first=Expected SOI marker first
+cms.illegalaccessexception=IllegalAccessException:
+cms.image.erroneous_jpeg_marker_length=Erroneous JPEG marker length
+cms.image.expected_soi_marker_first=Expected SOI marker first
cms.image.not_a_jpeg_file=Keine JPEG Datei
-cms.instantiationexception=Ausnahmebedinung bei Instantiierung:
-cms.nosuchmethodexception=NoSuchMethodException:
+cms.instantiationexception=Ausnahmebedinung bei Instantiierung:
+cms.nosuchmethodexception=NoSuchMethodException:
cms.templates=Vorlagen
cms.title=Titel
no=Nein
@@ -22,48 +22,48 @@
# Package com.arsdigita.cms.contenttypes
# ======================================
-cms.contenttypes.contact=Kontakt:
-cms.contenttypes.contact_details=Kontakt Details:
-cms.contenttypes.contact_information=Kontakt Information:
-cms.contenttypes.contactinfo=KontaktInfo:
-cms.contenttypes.cost=Kosten:
-cms.contenttypes.coudlnt_retrieve_text=Text konnte nicht gefunden werden
+cms.contenttypes.contact=Kontakt:
+cms.contenttypes.contact_details=Kontaktdetails:
+cms.contenttypes.contact_information=Kontaktinformation:
+cms.contenttypes.contactinfo=Kontaktinformation:
+cms.contenttypes.cost=Kosten:
+cms.contenttypes.coudlnt_retrieve_text=Text konnte nicht gefunden werden
cms.contenttypes.current_image=Gegenw\u00e4rtiges Bild\:
-cms.contenttypes.department=Abteilung:
-cms.contenttypes.end_date=Datum Ende:
-cms.contenttypes.end_time=Zeitpunkt Ende:
-cms.contenttypes.event_type_not_registered=Veranstaltungs-Typ noch nicht registriert
+cms.contenttypes.department=Abteilung:
+cms.contenttypes.end_date=Enddatum:
+cms.contenttypes.end_time=Ende um:
+cms.contenttypes.event_type_not_registered=Veranstaltungs-Typ nicht registriert
#used in ccm-cms-types-job
cms.contenttypes.grade=Grade:
-#used in ccm-cms-types-organization
+#used in ccm-cms-types-organization
cms.contenttypes.image=Bilder:
-cms.contenttypes.installer.article_section=Artikel Abschnitt
-cms.contenttypes.installer.article_section_for_a_multipart_article=Artikel Abschnitt f\u00fcr einen mehrteiligen Artikel
-cms.contenttypes.job_description=Beschreibung:
-cms.contenttypes.job_type_not_registered=Inhaltstyp Job nicht registriert
-cms.contenttypes.lead=Beschreibung (Lead Text):
-cms.contenttypes.legalnotice_type_not_registered=Inhaltstyp LegalNotice nicht registriert
+cms.contenttypes.installer.article_section=Artikelabschnitt
+cms.contenttypes.installer.article_section_for_a_multipart_article=Artikelabschnitt f\u00fcr einen mehrteiligen Artikel
+cms.contenttypes.job_description=Beschreibung:
+cms.contenttypes.job_type_not_registered=Inhaltstyp Job nicht registriert
+cms.contenttypes.lead=Beschreibung (Lead Text):
+cms.contenttypes.legalnotice_type_not_registered=Inhaltstyp LegalNotice nicht registriert
cms.contenttypes.link=Link:
-cms.contenttypes.link_to_map=Karte (Link)\:
-cms.contenttypes.location=Ort:
-cms.contenttypes.main_contributor=Hauptredner\:
-cms.contenttypes.minutes_type_not_registered=Inhaltstyp Minutes nicht registriert
-cms.contenttypes.news_date=Datum:
-cms.contenttypes.newsitem_type_not_registered=Inhaltstyp NewsItem nicht registriert
-cms.contenttypes.no_content_section=Kein Inhaltsabschnitt
-cms.contenttypes.no_section=Kein Abschnitt
-cms.contenttypes.opening_time=\u00d6ffnungszeit\:
+cms.contenttypes.link_to_map=Karte (Link)\:
+cms.contenttypes.location=Ort:
+cms.contenttypes.main_contributor=Hauptredner\:
+cms.contenttypes.minutes_type_not_registered=Inhaltstyp Minutes nicht registriert
+cms.contenttypes.news_date=Datum:
+cms.contenttypes.newsitem_type_not_registered=Inhaltstyp NewsItem nicht registriert
+cms.contenttypes.no_content_section=Kein Inhaltsabschnitt
+cms.contenttypes.no_section=Kein Abschnitt
+cms.contenttypes.opening_time=\u00d6ffnungszeit\:
cms.contenttypes.person_specification=Person Spezifikation:
-cms.contenttypes.pressrelease_type_not_registered=Inhaltstyp PressRelease nicht registriert
-cms.contenttypes.ref_number=Ref. Nummer\:
-cms.contenttypes.salary=Gehalt:
-cms.contenttypes.service_type_not_registered=Inhaltstyp Service nicht registriert
-cms.contenttypes.services_provided=Verf\u00fcgbare Services:
-cms.contenttypes.start_date=Start Datum:
-cms.contenttypes.start_time=Beginn um\:
-cms.contenttypes.subjectitems=Themen\:
-cms.contenttypes.summary=Beschreibung:
+cms.contenttypes.pressrelease_type_not_registered=Inhaltstyp PressRelease nicht registriert
+cms.contenttypes.ref_number=Ref. Nummer\:
+cms.contenttypes.salary=Gehalt:
+cms.contenttypes.service_type_not_registered=Inhaltstyp Service nicht registriert
+cms.contenttypes.services_provided=Verf\u00fcgbare Services:
+cms.contenttypes.start_date=Startdatum:
+cms.contenttypes.start_time=Beginn um\:
+cms.contenttypes.subjectitems=Themen:
+cms.contenttypes.summary=Beschreibung:
cms.contenttypes.title=Titel:
cms.contenttypes.template.body_text.title=Haupttext\:
cms.contenttypes.template.body_text.description=Haupttext bearbeiten
@@ -71,134 +71,134 @@
cms.contenttypes.shared.assign_categories.description=Kategorien zuweisen
cms.contenttypes.shared.attach_files.title=Dateien zuordnen
cms.contenttypes.shared.attach_files.description=Dateien anh\u00e4ngen
-cms.contenttypes.shared.basic_properties.description=Basiseigenschaften editieren
+cms.contenttypes.shared.basic_properties.description=Basiseigenschaften bearbeiten
cms.contenttypes.shared.basic_properties.title=Basiseigenschaften
cms.contenttypes.shared.body_text.title=Haupttext
-cms.contenttypes.shared.body_text.description=Haupttext editieren
+cms.contenttypes.shared.body_text.description=Haupttext bearbeiten
-
+
# Package com.arsdigita.cms.contenttypes.ui
# =========================================
-cms.contenttypes.ui.action_item=Action Item:
-cms.contenttypes.ui.address=Adresse:
-cms.contenttypes.ui.agenda_date=Zeit:
-cms.contenttypes.ui.agenda_date_and_time=Datum und Zeit:
+cms.contenttypes.ui.action_item=Aktionselement:
+cms.contenttypes.ui.address=Adresse:
+cms.contenttypes.ui.agenda_date=Zeit:
+cms.contenttypes.ui.agenda_date_and_time=Datum und Zeit:
cms.contenttypes.ui.attendees=Teilnehmer:
cms.contenttypes.ui.bodyoverview=\u00dcbersicht\:
-cms.contenttypes.ui.closing_date=Abschluss am\:
-cms.contenttypes.ui.contact_details=Kontakt Details:
-cms.contenttypes.ui.contact_info=Kontakt Info:
-cms.contenttypes.ui.contacts=Kontakte:
-cms.contenttypes.ui.content_group_current_items=Aktuelle Items:
-cms.contenttypes.ui.content_group_name=Inhalt Gruppen Name:
-cms.contenttypes.ui.content_group_new_item=Neuen Item hinzuf\u00fcgen:
-cms.contenttypes.ui.cost=Kosten:
-cms.contenttypes.ui.creation_date=Erstellungsdatum:
-cms.contenttypes.ui.date=Datum:
-cms.contenttypes.ui.department=Abteilung:
-cms.contenttypes.ui.description=Beschreibung:
+cms.contenttypes.ui.closing_date=Abschluss am\:
+cms.contenttypes.ui.contact_details=Kontaktdetails:
+cms.contenttypes.ui.contact_info=Kontaktinformation:
+cms.contenttypes.ui.contacts=Kontakte:
+cms.contenttypes.ui.content_group_current_items=Aktuelle Items:
+cms.contenttypes.ui.content_group_name=Inhalt Gruppen Name:
+cms.contenttypes.ui.content_group_new_item=Neues Dokument hinzuf\u00fcgen:
+cms.contenttypes.ui.cost=Kosten:
+cms.contenttypes.ui.creation_date=Erstellungsdatum:
+cms.contenttypes.ui.date=Datum:
+cms.contenttypes.ui.department=Abteilung:
+cms.contenttypes.ui.description=Beschreibung:
cms.contenttypes.ui.description_missing=Bitte eine Beschreibung eingeben
-cms.contenttypes.ui.description_of_minutes=Description of Minutes:
-cms.contenttypes.ui.end_date=Enddatum:
-cms.contenttypes.ui.end_time=Ende um\:
-cms.contenttypes.ui.event_start_time=Event Beginn um\:
-cms.contenttypes.ui.event_end_time=Event Ende um\:
-cms.contenttypes.ui.government_uid=Government UID:
-cms.contenttypes.ui.grade=Grad:
+cms.contenttypes.ui.description_of_minutes=Beschreibung der Tagesordnungspunkte:
+cms.contenttypes.ui.end_date=Enddatum:
+cms.contenttypes.ui.end_time=Ende um\:
+cms.contenttypes.ui.event_start_time=Veranstaltungsbeginn um:
+cms.contenttypes.ui.event_end_time=Veranstaltungsende um:
+cms.contenttypes.ui.government_uid=Government UID:
+cms.contenttypes.ui.grade=Stufe:
cms.contenttypes.ui.homepage=Homepage:
-cms.contenttypes.ui.job_description=Job Beschreibung:
-cms.contenttypes.ui.launch_date=Ver\u00f6ffentlichungsdatum:
-cms.contenttypes.ui.lead=Beschreibung (Lead Text):
-cms.contenttypes.ui.lead_line=Beschreibung (Lead Zeile):
+cms.contenttypes.ui.job_description=Stellenbeschreibung:
+cms.contenttypes.ui.launch_date=Ver\u00f6ffentlichungsdatum:
+cms.contenttypes.ui.lead=Beschreibung (Lead Text):
+cms.contenttypes.ui.lead_line=Beschreibung (Lead Zeile):
cms.contenttypes.ui.link_to_map=Lageplan:
-cms.contenttypes.ui.location=Ort:
-cms.contenttypes.ui.main_contributor=Hauptredner\:
-cms.contenttypes.ui.name=Name:
+cms.contenttypes.ui.location=Ort:
+cms.contenttypes.ui.main_contributor=Hauptredner\:
+cms.contenttypes.ui.name=Name:
cms.contenttypes.ui.opening_times=\u00d6ffnungszeiten\:
-cms.contenttypes.ui.person_specification=Person Specification:
-cms.contenttypes.ui.ref_code=Ref. Code:
-cms.contenttypes.ui.ref_number=Ref. Nr.:
-cms.contenttypes.ui.reference=Referenz:
-cms.contenttypes.ui.reference_code=Referenz Code:
-cms.contenttypes.ui.salary=Gehalt:
-cms.contenttypes.ui.services_provided=Verf\u00fcgbarer Service:
-cms.contenttypes.ui.start_date=Anfangsdatum:
-cms.contenttypes.ui.start_time=Anfangszeit:
+cms.contenttypes.ui.person_specification=Person Specification:
+cms.contenttypes.ui.ref_code=Ref. Code:
+cms.contenttypes.ui.ref_number=Ref. Nr.:
+cms.contenttypes.ui.reference=Referenz:
+cms.contenttypes.ui.reference_code=Referenz Code:
+cms.contenttypes.ui.salary=Gehalt:
+cms.contenttypes.ui.services_provided=Verf\u00fcgbarer Service:
+cms.contenttypes.ui.start_date=Anfangsdatum:
+cms.contenttypes.ui.start_time=Anfangszeit:
cms.contenttypes.ui.subject_items=Thema Items:
-cms.contenttypes.ui.summary=Beschreibung:
-cms.contenttypes.ui.there_are_no_events=Keine Ereignisse vorhanden
-cms.contenttypes.ui.title=Titel:
-cms.contenttypes.ui.view_image=Bild anzeigen
+cms.contenttypes.ui.summary=Beschreibung:
+cms.contenttypes.ui.there_are_no_events=Keine Ereignisse vorhanden
+cms.contenttypes.ui.title=Titel:
+cms.contenttypes.ui.view_image=Bild anzeigen
# Package com.arsdigita.cms.dispatcher
# =====================================
-cms.dispatcher.cannot_find_domain_object=Domain Object nicht auffindbar
-cms.dispatcher.could_not_find_imageasset=ImageAsset nicht auffindbar:
-cms.dispatcher.failed_to_retrieve_imageasset=ImageAsset nicht auffindbar:
-cms.dispatcher.no_permission_to_access_resource=Keine Rechte f\u00fcr diese Ressource
-cms.dispatcher.not_implemented=nicht implementiert
-cms.dispatcher.unknown_context=Unbekannter Kontext:
+cms.dispatcher.cannot_find_domain_object=Domain Object nicht auffindbar
+cms.dispatcher.could_not_find_imageasset=ImageAsset nicht auffindbar:
+cms.dispatcher.failed_to_retrieve_imageasset=ImageAsset nicht auffindbar:
+cms.dispatcher.no_permission_to_access_resource=Keine Rechte f\u00fcr diese Ressource
+cms.dispatcher.not_implemented=nicht implementiert
+cms.dispatcher.unknown_context=Unbekannter Kontext:
-
+
# Package com.arsdigita.cms.formbuilder
# =====================================
-cms.formbuilder.cannot_create_acsobject=ACSObject kann nicht erstellt werden
+cms.formbuilder.cannot_create_acsobject=ACSObject kann nicht erstellt werden
cms.formbuilder.cannot_instantiate_object=Object kann nicht instantiiert werden
cms.formbuilder.no_such_form=Form nicht vorhanden
-cms.formbuilder.roll_me_back=Roll me back
+cms.formbuilder.roll_me_back=\u00c4nderungen r\u00fcckg\u00e4ngig machen
cms.formbuilder.css=Cascading Style Sheet (CSS) Class Attribute
-
+
# Package com.arsdigita.cms.installer
-# =====================================
+# =====================================
cms.installer.approval=Akzeptieren
-cms.installer.article=Artikel
+cms.installer.article=Artikel
cms.installer.authoring=Verfassen
-cms.installer.cannot_find_cms_package_type=kann CMS Pakettyp nicht finden
-cms.installer.cannot_find_content_type=kann Inhaltstyp nicht finden
-cms.installer.cannot_find_file=kann Datei nicht finden
-cms.installer.cannot_find_group_for_email=Kann email-Gruppe nicht finden
-cms.installer.cannot_read_line_of_data=Kann Datensatz nicht lesen
-cms.installer.cannot_set_template_text=Kann Template Text nicht festlegen
-cms.installer.could_not_load_section=Kann die ContentSection '{0}' nicht laden
+cms.installer.cannot_find_cms_package_type=kann CMS Pakettyp nicht finden
+cms.installer.cannot_find_content_type=kann Inhaltstyp nicht finden
+cms.installer.cannot_find_file=kann Datei nicht finden
+cms.installer.cannot_find_group_for_email=Kann E-Mail-Gruppe nicht finden
+cms.installer.cannot_read_line_of_data=Kann Datensatz nicht lesen
+cms.installer.cannot_set_template_text=Kann Template Text nicht festlegen
+cms.installer.could_not_load_section=Kann die ContentSection '{0}' nicht laden
cms.installer.deploy=Anwenden
-cms.installer.failed_to_update_the_default_content_section=Update der Default Content Section gescheitert.
-cms.installer.formbuilder.form=Form
+cms.installer.failed_to_update_the_default_content_section=Update der Standard Content Section gescheitert.
+cms.installer.formbuilder.form=Form
cms.installer.formbuilder.form_section=Form Abschnitt
cms.installer.production_workflow=Arbeitsablauf Produktion
-cms.installer.root_folder=Basisverzeichnis
-cms.installer.root_site_node_missing=Root site node missing
+cms.installer.root_folder=Basisverzeichnis
+cms.installer.root_site_node_missing=Basisseite fehlt
cms.installer.simple_publication=Einfache Ver\u00f6ffentlichung
cms.installer.template=Vorlage
-
-
+
+
# Package com.arsdigita.cms.lifecycle
# ===================================
-cms.lifecycle.could_not_fetch_lifecycle=Could not fetch lifecycle:
-cms.lifecycle.could_not_fetch_phase=Could not fetch phase:
+cms.lifecycle.could_not_fetch_lifecycle=Konnte Lifecycle nicht finden:
+cms.lifecycle.could_not_fetch_phase=Konnte die Phase nicht laden:
# Package com.arsdigita.cms.publishToFile
# =======================================
-cms.publishToFile.cannot_find_file=Datei nicht gefunden
-cms.publishToFile.cannot_find_item_class=Ite...
[truncated message content] |
Author: pboy
Date: 2012-12-17 11:16:00 +0000 (Mon, 17 Dec 2012)
New Revision: 2407
Added:
trunk/ccm-cms/src/com/arsdigita/cms/ui/category/OrderedCategorizedObjectsList.java.nolongerinuse
Removed:
trunk/ccm-cms/src/com/arsdigita/cms/ui/category/OrderedCategorizedObjectsList.java
Modified:
trunk/ccm-cms/src/com/arsdigita/cms/ContentBundle.java
trunk/ccm-cms/src/com/arsdigita/cms/ContentItem.java
trunk/ccm-cms/src/com/arsdigita/cms/dispatcher/BaseImage.java
trunk/ccm-cms/src/com/arsdigita/cms/ui/category/CategorizedObjectsList.java
trunk/ccm-cms/src/com/arsdigita/cms/ui/category/SortableCategoryList.java
trunk/ccm-core/src/com/arsdigita/categorization/Category.java
trunk/ccm-core/src/com/arsdigita/categorization/CategoryCollection.java
Log:
Fixed sort order in object lists. (on behalf of JensP)
Modified: trunk/ccm-cms/src/com/arsdigita/cms/ContentBundle.java
===================================================================
--- trunk/ccm-cms/src/com/arsdigita/cms/ContentBundle.java 2012-12-17 11:10:34 UTC (rev 2406)
+++ trunk/ccm-cms/src/com/arsdigita/cms/ContentBundle.java 2012-12-17 11:16:00 UTC (rev 2407)
@@ -670,7 +670,8 @@
CategoryCollection categories = source.getCategoryCollection();
while (categories.next()) {
final Category category = categories.getCategory();
- category.addChild(this);
+
+ category.addChild(this, categories.getSortKey());
category.save(); // XXX remove me
}
categories.close();
Modified: trunk/ccm-cms/src/com/arsdigita/cms/ContentItem.java
===================================================================
--- trunk/ccm-cms/src/com/arsdigita/cms/ContentItem.java 2012-12-17 11:10:34 UTC (rev 2406)
+++ trunk/ccm-cms/src/com/arsdigita/cms/ContentItem.java 2012-12-17 11:16:00 UTC (rev 2407)
@@ -1893,6 +1893,7 @@
}
// If live Bundle already exists, recategorize.
+ // jensp 2012: Behavior changed. The ContentBundle will also be republished.
if (PARENT.equals(attribute)) {
ACSObject parent = ((ContentItem) source).getParent();
if (parent != null && copier.getCopyType()
@@ -1906,9 +1907,7 @@
//published because the ContentBundle was not republished.
//Moved the next lines out of the if below to enable
//republishing of the ContentBundle
- final ContentBundle liveBundle =
- (ContentBundle) bundle.
- createPendingVersion(null);
+ final ContentBundle liveBundle = (ContentBundle) bundle.createPendingVersion(null);
/*
* if (liveBundle == null) { } else { Set liveCatSet = new
* HashSet(); Set draftCatSet = new HashSet();
Modified: trunk/ccm-cms/src/com/arsdigita/cms/dispatcher/BaseImage.java
===================================================================
--- trunk/ccm-cms/src/com/arsdigita/cms/dispatcher/BaseImage.java 2012-12-17 11:10:34 UTC (rev 2406)
+++ trunk/ccm-cms/src/com/arsdigita/cms/dispatcher/BaseImage.java 2012-12-17 11:16:00 UTC (rev 2407)
@@ -71,7 +71,7 @@
CMS.getConfig().getImageCacheMaxSize());
}
}
- private final bool IMAGE_CACHE_PREFETCH = CMS.getConfig().getImageCachePrefetchEnabled();
+ private final boolean IMAGE_CACHE_PREFETCH = CMS.getConfig().getImageCachePrefetchEnabled();
private static final Logger s_log = Logger.getLogger(BaseImage.class);
/**
Modified: trunk/ccm-cms/src/com/arsdigita/cms/ui/category/CategorizedObjectsList.java
===================================================================
--- trunk/ccm-cms/src/com/arsdigita/cms/ui/category/CategorizedObjectsList.java 2012-12-17 11:10:34 UTC (rev 2406)
+++ trunk/ccm-cms/src/com/arsdigita/cms/ui/category/CategorizedObjectsList.java 2012-12-17 11:16:00 UTC (rev 2407)
@@ -35,7 +35,6 @@
import java.math.BigDecimal;
import javax.servlet.ServletException;
-
/**
* A List of all objects currently categorized under this category
*
@@ -52,25 +51,36 @@
setModelBuilder(new CategorizedObjectsModelBuilder());
- Label label = new Label(GlobalizationUtil.globalize
- ("cms.ui.category.item.none"));
+ Label label = new Label(GlobalizationUtil.globalize("cms.ui.category.item.none"));
label.setFontWeight(Label.ITALIC);
setEmptyView(label);
}
/**
- * This actually performs the sorting
+ * This actually performs the sorting
*/
public void respond(PageState ps) throws ServletException {
- String event = ps.getControlEventName();
+ final String event = ps.getControlEventName();
if (NEXT_EVENT.equals(event) || PREV_EVENT.equals(event)) {
- BigDecimal selectedID = new BigDecimal(ps.getControlEventValue());
- Category parent = getCategory(ps);
+ final BigDecimal selectedID = new BigDecimal(ps.getControlEventValue());
+ final Category parent = getCategory(ps);
+
+ final ContentItem selectedItem = new ContentItem(selectedID);
+ final BigDecimal selectedDraftId = selectedItem.getDraftVersion().getID();
- if (CMS.getContext().getSecurityManager().canAccess
- (SecurityManager.CATEGORY_ADMIN)) {
- parent.swapSortKeys(selectedID, getSwapID(parent,selectedID,event));
+ if (CMS.getContext().getSecurityManager().canAccess(SecurityManager.CATEGORY_ADMIN)) {
+ final BigDecimal swapId = getSwapID(parent, selectedID, event);
+ parent.swapSortKeys(selectedID, swapId);
+ final ContentItem swapItem = new ContentItem(swapId);
+ final BigDecimal swapDraftId = swapItem.getDraftVersion().getID();
+
+ final BigDecimal sortKey1 = parent.getSortKey(selectedItem);
+ final BigDecimal sortKey2 = parent.getSortKey(swapItem);
+
+ parent.setSortKey(new ContentItem(selectedDraftId), sortKey1);
+ parent.setSortKey(new ContentItem(swapDraftId), sortKey2);
+
}
} else {
super.respond(ps);
@@ -83,9 +93,8 @@
boolean foundSelectedID = false;
if (category != null && category.hasChildObjects()) {
- CategorizedCollection items = category.getObjects
- (ContentItem.BASE_DATA_OBJECT_TYPE);
- items.addEqualsFilter(ContentItem.VERSION,ContentItem.LIVE);
+ CategorizedCollection items = category.getObjects(ContentItem.BASE_DATA_OBJECT_TYPE);
+ items.addEqualsFilter(ContentItem.VERSION, ContentItem.LIVE);
items.sort(true);
while (items.next()) {
BigDecimal thisID = items.getACSObject().getID();
@@ -111,14 +120,14 @@
private class CategorizedObjectsModelBuilder extends LockableImpl
implements ListModelBuilder {
+
public final ListModel makeModel(final List list,
final PageState state) {
final Category category = getCategory(state);
if (category != null && category.hasChildObjects()) {
- CategorizedCollection items = category.getObjects
- (ContentItem.BASE_DATA_OBJECT_TYPE);
- items.addEqualsFilter(ContentItem.VERSION,ContentItem.LIVE);
+ CategorizedCollection items = category.getObjects(ContentItem.BASE_DATA_OBJECT_TYPE);
+ items.addEqualsFilter(ContentItem.VERSION, ContentItem.LIVE);
items.sort(true);
return new CategorizedCollectionListModel(items);
} else {
@@ -131,6 +140,7 @@
* A {@link ListModel} that iterates over categorized objects via an iterator
*/
private static class CategorizedCollectionListModel implements ListModel {
+
private CategorizedCollection m_objs;
private ACSObject m_object;
@@ -140,7 +150,7 @@
}
public boolean next() {
- if ( m_objs.next() ) {
+ if (m_objs.next()) {
m_object = (ACSObject) m_objs.getDomainObject();
return true;
} else {
Deleted: trunk/ccm-cms/src/com/arsdigita/cms/ui/category/OrderedCategorizedObjectsList.java
===================================================================
--- trunk/ccm-cms/src/com/arsdigita/cms/ui/category/OrderedCategorizedObjectsList.java 2012-12-17 11:10:34 UTC (rev 2406)
+++ trunk/ccm-cms/src/com/arsdigita/cms/ui/category/OrderedCategorizedObjectsList.java 2012-12-17 11:16:00 UTC (rev 2407)
@@ -1,171 +0,0 @@
-/*
- * Copyright (C) 2002-2004 Red Hat Inc. All Rights Reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-package com.arsdigita.cms.ui.category;
-
-import com.arsdigita.bebop.Component;
-import com.arsdigita.bebop.ControlLink;
-import com.arsdigita.bebop.Label;
-import com.arsdigita.bebop.PageState;
-import com.arsdigita.bebop.list.ListModel;
-import com.arsdigita.bebop.util.BebopConstants;
-import com.arsdigita.categorization.Category;
-import com.arsdigita.cms.CMS;
-import com.arsdigita.cms.ContentItem;
-import com.arsdigita.domain.DataObjectNotFoundException;
-import com.arsdigita.util.Assert;
-import com.arsdigita.xml.Element;
-import java.io.IOException;
-import java.math.BigDecimal;
-import javax.servlet.ServletException;
-
-/**
- * This list offers the option for the code to provide the developer
- * with links to sort the given categories.
- *
- * NOTE: This UI currently does not scale well with large numbers of items
- * since it just lists all of them. It would probably be nice to integrate
- * a paginator as well to as to allow the user to move an item in large
- * distances and to insert an item in the middle. Right now, when you add
- * an item it is just placed at the end. However, if you want the item to
- * appear in the middle then you must hit the "up" arrow n/2 times where
- * n is the number of items in the list. This clearly is not a good setup.
- *
- * @author Randy Graebner (ra...@al...)
- * @version $Revision: #11 $ $DateTime: 2004/08/17 23:15:09 $
- * @version $Id$
- */
-public class OrderedCategorizedObjectsList extends CategorizedObjectsList {
-
- private static final org.apache.log4j.Logger s_log =
- org.apache.log4j.Logger.getLogger(OrderedCategorizedObjectsList.class);
-
- // It would be really nice if this used the save variable as is
- // used by List but because List has it as private, we cannot do that.
- private static final String SELECT_EVENT = "s";
- private static final String PREV_EVENT = "prev";
- private static final String NEXT_EVENT = "next";
-
- /**
- * This just makes a standard
- * {@link OrderedCategorizedObjectsList}
- */
- public OrderedCategorizedObjectsList(final CategoryRequestLocal category) {
- super(category);
- }
-
-
- /**
- * This geneates the XML as specified by the arguments pass in to
- * the constructor.
- */
- public void generateXML(PageState state, Element parent) {
- if ( ! isVisible(state) ) {
- return;
- }
-
- // They want the special sort items
- ListModel m = getModel(state);
-
- if (!m.next()) {
- super.generateXML(state, parent);
- return;
- }
-
- // because m.next() returned true, we know there are items
- // in the list
- Element list = parent.newChildElement
- ("cms:orderedCategorizedObjectList", CMS.CMS_XML_NS);
- exportAttributes(list);
-
- Component c;
- Object selKey = getSelectedKey(state);
- int i = 0;
- boolean hasNext;
- do {
- Element item = list.newChildElement
- (BebopConstants.BEBOP_CELL, BEBOP_XML_NS);
- item.addAttribute("configure", "true");
-
- String key = m.getKey();
- Assert.exists(key);
-
- // Converting both keys to String for comparison
- // since ListModel.getKey returns a String
- boolean selected = (selKey != null) &&
- key.equals(selKey.toString());
-
- if ( selected ) {
- item.addAttribute("selected", "selected");
- }
- state.setControlEvent(this, SELECT_EVENT, key);
- Label l = new Label(m.getElement().toString());
- c = new ControlLink(l);
- c.generateXML(state, item);
-
- hasNext = m.next();
-
- // Add attributes containing URLs that fire control events
- // for various portlet actions
- try {
- // Maybe add attribute containing URL for "move up" link
- if (i > 0) {
- state.setControlEvent(this, PREV_EVENT, key);
- item.addAttribute("prevURL", state.stateAsURL());
- }
-
- // Maybe add attribute containing URL for "move down" link
- if (hasNext) {
- state.setControlEvent(this, NEXT_EVENT, key);
- item.addAttribute("nextURL", state.stateAsURL());
- }
-
- } catch (IOException ex) {
- throw new IllegalStateException("Caught IOException: " +
- ex.getMessage());
- }
- i++;
- } while (hasNext);
-
- state.clearControlEvent();
- }
-
- public void respond(PageState ps) throws ServletException {
- String event = ps.getControlEventName();
-
- if (NEXT_EVENT.equals(event) || PREV_EVENT.equals(event)) {
- try {
- ContentItem child =
- new ContentItem(new BigDecimal(ps.getControlEventValue()));
- final Category parent = getCategory(ps);
-
- if (NEXT_EVENT.equals(event)) {
- parent.swapWithNext(child);
- } else {
- parent.swapWithPrevious(child);
- }
- parent.save();
- } catch (DataObjectNotFoundException e) {
- s_log.error("Trying to create categories with state = " + ps, e);
- throw new ServletException(e);
- }
- } else {
- super.respond(ps);
- }
- }
-}
Added: trunk/ccm-cms/src/com/arsdigita/cms/ui/category/OrderedCategorizedObjectsList.java.nolongerinuse
===================================================================
--- trunk/ccm-cms/src/com/arsdigita/cms/ui/category/OrderedCategorizedObjectsList.java.nolongerinuse (rev 0)
+++ trunk/ccm-cms/src/com/arsdigita/cms/ui/category/OrderedCategorizedObjectsList.java.nolongerinuse 2012-12-17 11:16:00 UTC (rev 2407)
@@ -0,0 +1,181 @@
+/*
+ * Copyright (C) 2002-2004 Red Hat Inc. All Rights Reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+package com.arsdigita.cms.ui.category;
+
+import com.arsdigita.bebop.Component;
+import com.arsdigita.bebop.ControlLink;
+import com.arsdigita.bebop.Label;
+import com.arsdigita.bebop.PageState;
+import com.arsdigita.bebop.list.ListModel;
+import com.arsdigita.bebop.util.BebopConstants;
+import com.arsdigita.categorization.Category;
+import com.arsdigita.cms.CMS;
+import com.arsdigita.cms.ContentItem;
+import com.arsdigita.domain.DataObjectNotFoundException;
+import com.arsdigita.util.Assert;
+import com.arsdigita.xml.Element;
+import java.io.IOException;
+import java.math.BigDecimal;
+import javax.servlet.ServletException;
+
+/**
+ * This list offers the option for the code to provide the developer
+ * with links to sort the given categories.
+ *
+ * NOTE: This UI currently does not scale well with large numbers of items
+ * since it just lists all of them. It would probably be nice to integrate
+ * a paginator as well to as to allow the user to move an item in large
+ * distances and to insert an item in the middle. Right now, when you add
+ * an item it is just placed at the end. However, if you want the item to
+ * appear in the middle then you must hit the "up" arrow n/2 times where
+ * n is the number of items in the list. This clearly is not a good setup.
+ *
+ * @author Randy Graebner (ra...@al...)
+ * @version $Revision: #11 $ $DateTime: 2004/08/17 23:15:09 $
+ * @version $Id: OrderedCategorizedObjectsList.java 2090 2010-04-17 08:04:14Z pboy $
+ */
+public class OrderedCategorizedObjectsList extends CategorizedObjectsList {
+
+ private static final org.apache.log4j.Logger s_log =
+ org.apache.log4j.Logger.getLogger(OrderedCategorizedObjectsList.class);
+
+ // It would be really nice if this used the save variable as is
+ // used by List but because List has it as private, we cannot do that.
+ private static final String SELECT_EVENT = "s";
+ private static final String PREV_EVENT = "prev";
+ private static final String NEXT_EVENT = "next";
+
+ /**
+ * This just makes a standard
+ * {@link OrderedCategorizedObjectsList}
+ */
+ public OrderedCategorizedObjectsList(final CategoryRequestLocal category) {
+ super(category);
+ }
+
+
+ /**
+ * This geneates the XML as specified by the arguments pass in to
+ * the constructor.
+ */
+ public void generateXML(PageState state, Element parent) {
+ if ( ! isVisible(state) ) {
+ return;
+ }
+
+ // They want the special sort items
+ ListModel m = getModel(state);
+
+ if (!m.next()) {
+ super.generateXML(state, parent);
+ return;
+ }
+
+ // because m.next() returned true, we know there are items
+ // in the list
+ Element list = parent.newChildElement
+ ("cms:orderedCategorizedObjectList", CMS.CMS_XML_NS);
+ exportAttributes(list);
+
+ Component c;
+ Object selKey = getSelectedKey(state);
+ int i = 0;
+ boolean hasNext;
+ do {
+ Element item = list.newChildElement
+ (BebopConstants.BEBOP_CELL, BEBOP_XML_NS);
+ item.addAttribute("configure", "true");
+
+ String key = m.getKey();
+ Assert.exists(key);
+
+ // Converting both keys to String for comparison
+ // since ListModel.getKey returns a String
+ boolean selected = (selKey != null) &&
+ key.equals(selKey.toString());
+
+ if ( selected ) {
+ item.addAttribute("selected", "selected");
+ }
+ state.setControlEvent(this, SELECT_EVENT, key);
+ Label l = new Label(m.getElement().toString());
+ c = new ControlLink(l);
+ c.generateXML(state, item);
+
+ hasNext = m.next();
+
+ // Add attributes containing URLs that fire control events
+ // for various portlet actions
+ try {
+ // Maybe add attribute containing URL for "move up" link
+ if (i > 0) {
+ state.setControlEvent(this, PREV_EVENT, key);
+ item.addAttribute("prevURL", state.stateAsURL());
+ }
+
+ // Maybe add attribute containing URL for "move down" link
+ if (hasNext) {
+ state.setControlEvent(this, NEXT_EVENT, key);
+ item.addAttribute("nextURL", state.stateAsURL());
+ }
+
+ } catch (IOException ex) {
+ throw new IllegalStateException("Caught IOException: " +
+ ex.getMessage());
+ }
+ i++;
+ } while (hasNext);
+
+ state.clearControlEvent();
+ }
+
+ public void respond(PageState ps) throws ServletException {
+ String event = ps.getControlEventName();
+
+ if (NEXT_EVENT.equals(event) || PREV_EVENT.equals(event)) {
+ try {
+ ContentItem child = new ContentItem(new BigDecimal(ps.getControlEventValue()));
+ ContentItem draft = null;
+ if (ContentItem.LIVE.equals(child.getVersion())) {
+ draft = child.getDraftVersion();
+ }
+ final Category parent = getCategory(ps);
+
+ if (NEXT_EVENT.equals(event)) {
+ parent.swapWithNext(child);
+ if (draft != null) {
+ parent.swapWithNext(draft);
+ }
+ } else {
+ parent.swapWithPrevious(child);
+ if (draft != null) {
+ parent.swapWithPrevious(draft);
+ }
+ }
+ parent.save();
+
+ } catch (DataObjectNotFoundException e) {
+ s_log.error("Trying to create categories with state = " + ps, e);
+ throw new ServletException(e);
+ }
+ } else {
+ super.respond(ps);
+ }
+ }
+}
Modified: trunk/ccm-cms/src/com/arsdigita/cms/ui/category/SortableCategoryList.java
===================================================================
--- trunk/ccm-cms/src/com/arsdigita/cms/ui/category/SortableCategoryList.java 2012-12-17 11:10:34 UTC (rev 2406)
+++ trunk/ccm-cms/src/com/arsdigita/cms/ui/category/SortableCategoryList.java 2012-12-17 11:16:00 UTC (rev 2407)
@@ -23,6 +23,7 @@
import com.arsdigita.bebop.parameters.BigDecimalParameter;
import com.arsdigita.categorization.Category;
import com.arsdigita.cms.CMS;
+import com.arsdigita.cms.ContentItem;
import com.arsdigita.cms.ContentSection;
import com.arsdigita.cms.SecurityManager;
import com.arsdigita.cms.ui.SortableList;
@@ -100,7 +101,7 @@
}
parent.save();
- }
+ }
} catch (DataObjectNotFoundException e) {
s_log.error("Trying to create categories with state = " + ps, e);
throw new ServletException(e);
Modified: trunk/ccm-core/src/com/arsdigita/categorization/Category.java
===================================================================
--- trunk/ccm-core/src/com/arsdigita/categorization/Category.java 2012-12-17 11:10:34 UTC (rev 2406)
+++ trunk/ccm-core/src/com/arsdigita/categorization/Category.java 2012-12-17 11:16:00 UTC (rev 2407)
@@ -109,9 +109,9 @@
*
*/
public static final String BASE_DATA_OBJECT_TYPE =
- "com.arsdigita.categorization.Category";
+ "com.arsdigita.categorization.Category";
private static final String BASE_DATA_OBJECT_PACKAGE =
- "com.arsdigita.categorization";
+ "com.arsdigita.categorization";
/**
* The
* <code>PrivilegeDescriptor corresponding</code> to the privilege to
@@ -119,7 +119,7 @@
*
*/
public static final PrivilegeDescriptor MAP_DESCRIPTOR =
- new PrivilegeDescriptor(
+ new PrivilegeDescriptor(
"map_to_category");
// Quasimodo: Begin
private static CategorizationConfig s_config = CategorizationConfig
@@ -185,7 +185,7 @@
* An attribute name for the underlying data object.
*/
public static final String IGNORE_PARENT_INDEX_ITEM =
- "ignoreParentIndexItem";
+ "ignoreParentIndexItem";
/**
* An attribute name for the underlying data object.
*/
@@ -197,7 +197,7 @@
public static final String LOCALIZATIONS = "localizations";
// some named queries in the pdl files
private static final String CHILD_CATEGORY_IDS =
- "com.arsdigita.categorization.childCategoryIDs";
+ "com.arsdigita.categorization.childCategoryIDs";
private static final String CURRENT_SORT_KEY = "currentSortKey";
private HierarchyDenormalization m_hierarchy;
// Quasimodo: Begin
@@ -416,7 +416,8 @@
public String getName(String locale) {
// Test for localized version
- if (locale != null && !locale.isEmpty() && m_categoryLocalizationCollection != null && m_categoryLocalizationCollection.
+ if (locale != null && !locale.isEmpty() && m_categoryLocalizationCollection != null
+ && m_categoryLocalizationCollection.
localizationExists(locale)) {
// Return value of isEnabled from localized version, so categories could be disabled depending on locale
@@ -517,7 +518,7 @@
* @return category path
*/
public String getPreferredQualifiedName(String delimiter,
- boolean includeRoot) {
+ boolean includeRoot) {
// is this a synonym?
CategoryCollection cc = new CategoryCollection(getRelatedCategories(
PREFERRED));
@@ -525,7 +526,7 @@
Category preferred = cc.getCategory();
cc.close();
String preferredPath = preferred.getQualifiedName(delimiter,
- includeRoot);
+ includeRoot);
return preferredPath + " (" + getName() + ")";
} else {
return getQualifiedName(delimiter, includeRoot);
@@ -602,7 +603,8 @@
// Test for localized version
// HACK
- if (locale != null && !locale.isEmpty() && m_categoryLocalizationCollection != null && m_categoryLocalizationCollection.
+ if (locale != null && !locale.isEmpty() && m_categoryLocalizationCollection != null
+ && m_categoryLocalizationCollection.
localizationExists(locale)) {
// Return value of isEnabled from localized version, so categories could be disabled depending on locale
@@ -679,7 +681,8 @@
public String getURL(String locale) {
// Test for localized version
- if (locale != null && !locale.isEmpty() && m_categoryLocalizationCollection != null && m_categoryLocalizationCollection.
+ if (locale != null && !locale.isEmpty() && m_categoryLocalizationCollection != null
+ && m_categoryLocalizationCollection.
localizationExists(locale)) {
// Return value of isEnabled from localized version, so categories could be disabled depending on locale
@@ -751,7 +754,8 @@
}
// Test for localized version
- if (locale != null && !locale.isEmpty() && m_categoryLocalizationCollection != null && m_categoryLocalizationCollection.
+ if (locale != null && !locale.isEmpty() && m_categoryLocalizationCollection != null
+ && m_categoryLocalizationCollection.
localizationExists(locale)) {
// Return value of isEnabled from localized version, so categories could be disabled depending on locale
@@ -950,8 +954,8 @@
try {
if (children.next()) {
throw new CategorizationException("This category is the default parent of another category."
- + " You must explicitly delete the child categories first. "
- + "Child category: " + children.
+ + " You must explicitly delete the child categories first. "
+ + "Child category: " + children.
getDataObject());
}
} finally {
@@ -959,13 +963,13 @@
}
DataAssociationCursor objects =
- ((DataAssociation) get(CHILD_OBJECTS)).cursor();
+ ((DataAssociation) get(CHILD_OBJECTS)).cursor();
if (objects != null) {
try {
if (objects.next()) {
throw new CategorizationException("This category has child objects. You must delete "
- + " any such objects explicitly, before deleting the "
- + " category. Child object: " + objects.
+ + " any such objects explicitly, before deleting the "
+ + " category. Child object: " + objects.
getDataObject());
}
} finally {
@@ -999,7 +1003,7 @@
public void deleteCategorySubtree() {
// we get the association between this category and its children
DataAssociationCursor cursor =
- ((DataAssociation) get(RELATED_CATEGORIES)).cursor();
+ ((DataAssociation) get(RELATED_CATEGORIES)).cursor();
while (cursor.next()) {
DataObject link = cursor.getLink();
@@ -1038,7 +1042,7 @@
}
DataAssociationCursor cursor =
- ((DataAssociation) get(RELATED_CATEGORIES)).cursor();
+ ((DataAssociation) get(RELATED_CATEGORIES)).cursor();
while (cursor.next()) {
DataObject link = cursor.getLink();
@@ -1047,7 +1051,7 @@
remove(RELATED_CATEGORIES, cursor.getDataObject());
if ("child".equals(relationType)) {
Category category = new Category(cursor.getDataObject());
- parent.addChild(category);
+ parent.addChild(category, null);
if (Boolean.TRUE.equals(isDefault)) {
category.setDefaultParentCategory(parent);
}
@@ -1104,13 +1108,18 @@
* categories and becomes a CHILD category.</p>
*
* @param object the domain object to categorize
+ * @param sortKey optional sort key. May be <code>null</code>
*
* @pre !isAbstract()
* @pre canMap()
*
*/
+ public void addChild(ACSObject object, BigDecimal sortKey) {
+ addMapping(object, "child", sortKey);
+ }
+
public void addChild(ACSObject object) {
- addMapping(object, "child");
+ addChild(object, null);
}
/**
@@ -1149,21 +1158,25 @@
/**
* Adds the passed in object to the correct association.
+ *
+ * @param acsObj Object to add to the category
+ * @param relationType Type of the relation
+ * @param sortKey Optional sort key. May be <code>null</code>.
*
* @pre canMap()
*/
- private void addMapping(ACSObject acsObj, String relationType) {
+ private void addMapping(ACSObject acsObj, String relationType, BigDecimal sortKey) {
if (acsObj instanceof Category) {
addMapping((Category) acsObj, relationType);
return;
}
Assert.isFalse(isAbstract(),
- "You cannot categorize an object "
- + "within an abstract category. If you are "
- + "seeing this message then your UI is "
- + "allowing you to do something that you "
- + "are not allowed to do and you "
- + "should email your site administrator.");
+ "You cannot categorize an object "
+ + "within an abstract category. If you are "
+ + "seeing this message then your UI is "
+ + "allowing you to do something that you "
+ + "are not allowed to do and you "
+ + "should email your site administrator.");
if (RELATED.equals(relationType)) {
throw new CategorizationException(
@@ -1172,21 +1185,24 @@
}
DataAssociationCursor cursor =
- ((DataAssociation) get(CHILD_OBJECTS)).cursor();
+ ((DataAssociation) get(CHILD_OBJECTS)).cursor();
cursor.addEqualsFilter(ID, acsObj.getID());
if (cursor.size() == 0) {
// if the cursor.size() > 0 then the object is already
// a child and does not need to be added again.
- add(CHILD_OBJECTS, acsObj);
+ DataObject link = add(CHILD_OBJECTS, acsObj);
+ if (sortKey != null) {
+ link.set("sortKey", sortKey);
+ }
Categorization.triggerMapEvent(this, acsObj);
if (s_log.isDebugEnabled()) {
s_log.debug(acsObj + " added to " + CHILD_OBJECTS + " of catID="
- + getID() + " type=" + relationType + " (ignored)");
+ + getID() + " type=" + relationType + " (ignored)");
}
} else {
if (s_log.isDebugEnabled()) {
s_log.debug(acsObj + " is already related to catID=" + getID()
- + " type=" + relationType + " (ignored)");
+ + " type=" + relationType + " (ignored)");
}
}
}
@@ -1195,8 +1211,8 @@
// Let's check for loops.
if ("child".equals(relationType) && category.isMemberOfSubtree(this)) {
throw new CategorizationException("The object that you are "
- + "trying to add as a child is already "
- + "a member of the subtree.");
+ + "trying to add as a child is already "
+ + "a member of the subtree.");
}
@@ -1204,7 +1220,7 @@
// Otherwise, we add and then update.
DataAssociationCursor cursor =
- ((DataAssociation) get(RELATED_CATEGORIES)).cursor();
+ ((DataAssociation) get(RELATED_CATEGORIES)).cursor();
cursor.addEqualsFilter(ID, category.getID());
DataObject link;
if (cursor.next()) {
@@ -1223,7 +1239,7 @@
cursor.close();
if (s_log.isDebugEnabled()) {
s_log.debug("updating related catID=" + category.getID() + " type="
- + relationType + " default=false");
+ + relationType + " default=false");
}
link.set(REL_TYPE, relationType);
@@ -1400,7 +1416,7 @@
*/
public long getParentCategoryCount() {
DataAssociationCursor cursor =
- ((DataAssociation) get(PARENTS)).cursor();
+ ((DataAssociation) get(PARENTS)).cursor();
try {
return cursor.size();
} finally {
@@ -1432,7 +1448,7 @@
boolean found = false;
DataAssociationCursor cursor =
- ((DataAssociation) get(PARENTS)).cursor();
+ ((DataAssociation) get(PARENTS)).cursor();
while (cursor.next()) {
DataObject category = cursor.getDataObject();
DataObject link = cursor.getLink();
@@ -1468,7 +1484,7 @@
}
DataAssociationCursor cursor =
- ((DataAssociation) get(CHILD_OBJECTS)).cursor();
+ ((DataAssociation) get(CHILD_OBJECTS)).cursor();
cursor.addEqualsFilter(ID, child.getID());
if (cursor.next()) {
@@ -1534,7 +1550,7 @@
}
DataAssociationCursor cursor =
- ((DataAssociation) get(CHILD_OBJECTS)).cursor();
+ ((DataAssociation) get(CHILD_OBJECTS)).cursor();
cursor.addEqualsFilter(ID, child.getID());
if (cursor.next()) {
@@ -1590,7 +1606,7 @@
private void swapCategoryKeys(int key, int nextKey) {
swapKeys(getSession().retrieveDataOperation(
"com.arsdigita.categorization.swapCategoryWithNextCategory"),
- key, nextKey);
+ key, nextKey);
}
/**
@@ -1599,7 +1615,7 @@
private void swapObjectKeys(int key, int nextKey) {
swapKeys(getSession().retrieveDataOperation(
"com.arsdigita.categorization.swapObjectWithNextObject"),
- key, nextKey);
+ key, nextKey);
}
/**
@@ -1628,6 +1644,24 @@
}
}
+ public BigDecimal getSortKey(final ACSObject object) {
+ return getSortKey(object.getID());
+ }
+
+ public BigDecimal getSortKey(final BigDecimal objId) {
+ final DataAssociationCursor cursor = ((DataAssociation) get(CHILD_OBJECTS)).cursor();
+ cursor.addEqualsFilter(ID, objId);
+ if (cursor.next()) {
+ return (BigDecimal) cursor.getLink().get(SORT_KEY);
+ }
+
+ return null;
+ }
+
+ public void setSortKey(ACSObject object, int key) {
+ setSortKey(object, new BigDecimal(key));
+ }
+
/**
* Explicitly sets the sort key for this child object (category or
* otherwise).
@@ -1635,19 +1669,19 @@
* @param child The child object or category to set the sortKey for
* @param key The integer to use for the sortKey
*/
- public void setSortKey(ACSObject child, int key) {
+ public void setSortKey(ACSObject child, BigDecimal key) {
if (isCategory(child)) {
setSortKey((Category) child, key);
return;
}
DataAssociationCursor cursor =
- ((DataAssociation) get(CHILD_OBJECTS)).cursor();
+ ((DataAssociation) get(CHILD_OBJECTS)).cursor();
cursor.addEqualsFilter(ID, child.getID());
if (cursor.next()) {
DataObject link = cursor.getLink();
- link.set(SORT_KEY, new BigDecimal(key));
+ link.set(SORT_KEY, key);
}
cursor.close();
}
@@ -1668,7 +1702,7 @@
BigDecimal key2;
DataAssociationCursor cursor =
- ((DataAssociation) get(CHILD_OBJECTS)).cursor();
+ ((DataAssociation) get(CHILD_OBJECTS)).cursor();
cursor.addEqualsFilter(ID, childID1);
if (cursor.next()) {
link1 = cursor.getLink();
@@ -1714,10 +1748,10 @@
*/
public DataAssociationCursor getRelatedCategories(String relation) {
Assert.isTrue(relation.equals(CHILD) || relation.equals(RELATED)
- || relation.equals(PREFERRED),
- " invalid relation {" + relation + "}");
+ || relation.equals(PREFERRED),
+ " invalid relation {" + relation + "}");
DataAssociationCursor cursor =
- ((DataAssociation) get(RELATED_CATEGORIES)).cursor();
+ ((DataAssociation) get(RELATED_CATEGORIES)).cursor();
cursor.addEqualsFilter("link.relationType", relation);
return cursor;
}
@@ -1799,7 +1833,7 @@
}
StringBuilder sb =
- new StringBuilder(path.length() + pathExtension.length() + 1);
+ new StringBuilder(path.length() + pathExtension.length() + 1);
sb.append(path).append(".").append(pathExtension);
return sb.toString();
}
@@ -1813,7 +1847,7 @@
*/
public long getNumberOfChildObjects() {
DataAssociationCursor association =
- ((DataAssociation) get(CHILD_OBJECTS)).cursor();
+ ((DataAssociation) get(CHILD_OBJECTS)).cursor();
if (association == null) {
return 0;
} else {
@@ -1838,7 +1872,7 @@
*/
public Category getDefaultParentCategory() {
DataAssociationCursor cursor =
- ((DataAssociation) get(PARENTS)).cursor();
+ ((DataAssociation) get(PARENTS)).cursor();
cursor.addEqualsFilter("link.isDefault", Boolean.TRUE);
try {
@@ -1850,7 +1884,7 @@
}
throw new CategoryNotFoundException("The Category " + this + " does "
- + "not have a default parent");
+ + "not have a default parent");
}
/**
@@ -1901,7 +1935,7 @@
*/
public CategoryCollection getDefaultAscendants() {
DataCollection collection =
- getSession().retrieve(BASE_DATA_OBJECT_TYPE);
+ getSession().retrieve(BASE_DATA_OBJECT_TYPE);
String ids = (String) get(DEFAULT_ANCESTORS);
if (ids == null) {
@@ -1958,7 +1992,7 @@
*/
public CategorizedCollection getDescendantObjects() {
return getDescendantObjects(ACSObject.BASE_DATA_OBJECT_TYPE,
- "categories.roTransParents");
+ "categories.roTransParents");
}
private static String appendID(String path) {
@@ -1968,7 +2002,7 @@
}
public CategorizedCollection getDescendantObjects(String objectType,
- String path) {
+ String path) {
s_log.info("retrieving objectType=" + objectType + "; path=" + path);
final CategorizedCollection result = new CategorizedCollection(getSession().
retrieve(objectType));
@@ -2041,6 +2075,7 @@
public String getToken() {
return m_token;
}
+
}
@Override
@@ -2059,7 +2094,7 @@
DataCollection dc = SessionManager.getSession().retrieve(
"com.arsdigita.categorization.UseContext");
dc.addFilter("categoryOwner.id = :ownerID").set("ownerID",
- acsObj.getID());
+ acsObj.getID());
return dc;
}
@@ -2106,9 +2141,9 @@
DataObject secondRoot = cats.getDataObject();
cats.close();
throw new IllegalStateException("there is more than one root for object:\n"
- + object + "\nfirst root: "
- + triple + "\nsecond root: "
- + secondRoot);
+ + object + "\nfirst root: "
+ + triple + "\nsecond root: "
+ + secondRoot);
}
cats.close();
}
@@ -2149,14 +2184,14 @@
* @param root the root category for the object
*/
public static void setRootForObject(ACSObject acsObj, Category rootCat,
- String context) {
+ String context) {
DataCollection rootCats = getRootCategoriesAssoc(acsObj);
rootCats.addEqualsFilter(USE_CONTEXT, context);
if (rootCats.next()) {
DataObject triple = rootCats.getDataObject();
triple.set(ROOT_CATEGORY,
- DomainServiceInterfaceExposer.getDataObject(rootCat));
+ DomainServiceInterfaceExposer.getDataObject(rootCat));
rootCats.close();
return;
}
@@ -2173,9 +2208,9 @@
throw new UncheckedWrapperException(ex);
}
triple.set(CATEGORY_OWNER,
- DomainServiceInterfaceExposer.getDataObject(acsObj));
+ DomainServiceInterfaceExposer.getDataObject(acsObj));
triple.set(ROOT_CATEGORY,
- DomainServiceInterfaceExposer.getDataObject(rootCat));
+ DomainServiceInterfaceExposer.getDataObject(rootCat));
triple.set(USE_CONTEXT, context);
}
@@ -2292,7 +2327,7 @@
* Add a new language set to this category
*/
public boolean addLanguage(String locale, String name, String description,
- String url) {
+ String url) {
// If locale don't exist
if (!locale.isEmpty() && m_categoryLocalizationCollection != null && !m_categoryLocalizationCollection.
@@ -2344,4 +2379,5 @@
return false;
}
+
}
Modified: trunk/ccm-core/src/com/arsdigita/categorization/CategoryCollection.java
===================================================================
--- trunk/ccm-core/src/com/arsdigita/categorization/CategoryCollection.java 2012-12-17 11:10:34 UTC (rev 2406)
+++ trunk/ccm-core/src/com/arsdigita/categorization/CategoryCollection.java 2012-12-17 11:16:00 UTC (rev 2407)
@@ -21,6 +21,7 @@
import com.arsdigita.kernel.ACSObject;
import com.arsdigita.kernel.ACSObjectCollection;
import com.arsdigita.persistence.DataCollection;
+import java.math.BigDecimal;
/**
* Represents a collection of categories.
@@ -84,6 +85,10 @@
return getCategory();
}
+ public BigDecimal getSortKey() {
+ return (BigDecimal) get("link.sortKey");
+ }
+
/**
* Sorts the category collection by the category sort key.
*
|
|
From: <pb...@fe...> - 2012-12-17 11:02:13
|
Author: pboy Date: 2012-12-17 11:01:55 +0000 (Mon, 17 Dec 2012) New Revision: 2405 Modified: trunk/ccm-core/web/assets/xinha/plugins/Equation/ASCIIMathML.js Log: Fixed ASCIIMathML equation Xinha plugin (Strings amath & graph will work now). (on behalf of quasimodo) Modified: trunk/ccm-core/web/assets/xinha/plugins/Equation/ASCIIMathML.js =================================================================== --- trunk/ccm-core/web/assets/xinha/plugins/Equation/ASCIIMathML.js 2012-12-17 09:25:14 UTC (rev 2404) +++ trunk/ccm-core/web/assets/xinha/plugins/Equation/ASCIIMathML.js 2012-12-17 11:01:55 UTC (rev 2405) @@ -1,2 +1,2 @@ /* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */ -var mathcolor="blue";var mathfontsize="1em";var mathfontfamily="serif";var automathrecognize=false;var checkForMathML=true;var notifyIfNoMathML=true;var alertIfNoMathML=false;var translateOnLoad=true;var translateLaTeX=true;var translateLaTeXformatting=true;var translateASCIIMath=true;var translateASCIIsvg=true;var avoidinnerHTML=false;var displaystyle=true;var showasciiformulaonhover=true;var decimalsign=".";var AMdelimiter1="`",AMescape1="\\\\`";var AMdocumentId="wikitext";var checkforprocessasciimathinmoodle=false;var dsvglocation="";var isIE=document.createElementNS==null;var noMathML=false,translated=false;if(isIE){document.write('<object id="mathplayer" classid="clsid:32F66A20-7614-11D4-BD11-00104BD3F987"></object>');document.write('<?import namespace="m" implementation="#mathplayer"?>')}function setStylesheet(a){var c="AMMLcustomStyleSheet";var b=document.getElementById(c);if(document.createStyleSheet){if(b){b.parentNode.removeChild(b)}document.getElementsByTagName("head")[0].insertAdjacentHTML("beforeEnd"," <style id='"+c+"'>"+a+"</style>")}else{if(b){b.replaceChild(document.createTextNode(a),b.firstChild)}else{b=document.createElement("style");b.type="text/css";b.id=c;b.appendChild(document.createTextNode(a));document.getElementsByTagName("head")[0].appendChild(b)}}}setStylesheet("#AMMLcloseDiv {font-size:0.8em; padding-top:1em; color:#014}\n#AMMLwarningBox {position:absolute; width:100%; top:0; left:0; z-index:200; text-align:center; font-size:1em; font-weight:bold; padding:0.5em 0 0.5em 0; color:#ffc; background:#c30}");function init(){var b,a=new Array();if(document.getElementById==null){alert("This webpage requires a recent browser such as Mozilla Firefox/Netscape 7+ or Internet Explorer 6+ with MathPlayer and Adobe SVGviewer");return null}if(checkForMathML&&(b=checkMathML())){a.push(b)}if(checkIfSVGavailable&&(b=checkSVG())){a.push(b)}if(a.length>0){displayWarnings(a)}if(!noMathML){initSymbols()}return true}function checkMathML(){if(navigator.appName.slice(0,8)=="Netscape"){if(navigator.appVersion.slice(0,1)>="5"){noMathML=null}else{noMathML=true}}else{if(navigator.appName.slice(0,9)=="Microsoft"){try{var c=new ActiveXObject("MathPlayer.Factory.1");noMathML=null}catch(a){noMathML=true}}else{if(navigator.appName.slice(0,5)=="Opera"){if(navigator.appVersion.slice(0,3)>="9.5"){noMathML=null}else{noMathML=true}}}}if(noMathML&¬ifyIfNoMathML){var b="To view the ASCIIMathML notation use Internet Explorer + MathPlayer or Mozilla Firefox 2.0 or later.";if(alertIfNoMathML){alert(b)}else{return b}}}function hideWarning(){var a=document.getElementsByTagName("body")[0];a.removeChild(document.getElementById("AMMLwarningBox"));a.onclick=null}function displayWarnings(b){var c,g,f=createElementXHTML("div");var a=document.getElementsByTagName("body")[0];a.onclick=hideWarning;f.id="AMMLwarningBox";for(c=0;c<b.length;c++){g=createElementXHTML("div");g.appendChild(document.createTextNode(b[c]));g.style.paddingBottom="1.0em";f.appendChild(g)}f.appendChild(createElementXHTML("p"));f.appendChild(document.createTextNode("For instructions see the "));var d=createElementXHTML("a");d.appendChild(document.createTextNode("ASCIIMathML"));d.setAttribute("href","http://www.chapman.edu/~jipsen/asciimath.html");f.appendChild(d);f.appendChild(document.createTextNode(" homepage"));d=createElementXHTML("div");d.id="AMMLcloseDiv";d.appendChild(document.createTextNode("(click anywhere to close this warning)"));f.appendChild(d);var a=document.getElementsByTagName("body")[0];a.insertBefore(f,a.childNodes[0])}function translate(b){if(!translated){translated=true;var a=document.getElementsByTagName("body")[0];var c=document.getElementById(AMdocumentId);if(translateLaTeX){LMprocessNode((c!=null?c:a))}if(translateASCIIMath){AMprocessNode((c!=null?c:a),false,b)}}}function createElementXHTML(a){if(isIE){return document.createElement(a)}else{return document.createElementNS("http://www.w3.org/1999/xhtml",a)}}function createMmlNode(a,c){if(isIE){var b=document.createElement("m:"+a)}else{var b=document.createElementNS("http://www.w3.org/1998/Math/MathML",a)}if(c){b.appendChild(c)}return b}var AMcal=[61237,8492,61238,61239,8496,8497,61240,8459,8464,61241,61242,8466,8499,61243,61244,61245,61246,8475,61247,61248,61249,61250,61251,61252,61253,61254];var AMfrk=[61277,61278,8493,61279,61280,61281,61282,8460,8465,61283,61284,61285,61286,61287,61288,61289,61290,8476,61291,61292,61293,61294,61295,61296,61297,8488];var AMbbb=[61324,61325,8450,61326,61327,61328,61329,8461,61330,61331,61332,61333,61334,8469,61335,8473,8474,8477,61336,61337,61338,61339,61340,61341,61342,8484];var CONST=0,UNARY=1,BINARY=2,INFIX=3,LEFTBRACKET=4,RIGHTBRACKET=5,SPACE=6,UNDEROVER=7,DEFINITION=8,LEFTRIGHT=9,TEXT=10,BIG=11,LONG=12,STRETCHY=13,MATRIX=14;var AMquote={input:'"',tag:"mtext",output:"mbox",tex:null,ttype:TEXT};var AMsymbols=[{input:"alpha",tag:"mi",output:"\u03B1",tex:null,ttype:CONST},{input:"beta",tag:"mi",output:"\u03B2",tex:null,ttype:CONST},{input:"chi",tag:"mi",output:"\u03C7",tex:null,ttype:CONST},{input:"delta",tag:"mi",output:"\u03B4",tex:null,ttype:CONST},{input:"Delta",tag:"mo",output:"\u0394",tex:null,ttype:CONST},{input:"epsi",tag:"mi",output:"\u03B5",tex:"epsilon",ttype:CONST},{input:"varepsilon",tag:"mi",output:"\u025B",tex:null,ttype:CONST},{input:"eta",tag:"mi",output:"\u03B7",tex:null,ttype:CONST},{input:"gamma",tag:"mi",output:"\u03B3",tex:null,ttype:CONST},{input:"Gamma",tag:"mo",output:"\u0393",tex:null,ttype:CONST},{input:"iota",tag:"mi",output:"\u03B9",tex:null,ttype:CONST},{input:"kappa",tag:"mi",output:"\u03BA",tex:null,ttype:CONST},{input:"lambda",tag:"mi",output:"\u03BB",tex:null,ttype:CONST},{input:"Lambda",tag:"mo",output:"\u039B",tex:null,ttype:CONST},{input:"mu",tag:"mi",output:"\u03BC",tex:null,ttype:CONST},{input:"nu",tag:"mi",output:"\u03BD",tex:null,ttype:CONST},{input:"omega",tag:"mi",output:"\u03C9",tex:null,ttype:CONST},{input:"Omega",tag:"mo",output:"\u03A9",tex:null,ttype:CONST},{input:"phi",tag:"mi",output:"\u03C6",tex:null,ttype:CONST},{input:"varphi",tag:"mi",output:"\u03D5",tex:null,ttype:CONST},{input:"Phi",tag:"mo",output:"\u03A6",tex:null,ttype:CONST},{input:"pi",tag:"mi",output:"\u03C0",tex:null,ttype:CONST},{input:"Pi",tag:"mo",output:"\u03A0",tex:null,ttype:CONST},{input:"psi",tag:"mi",output:"\u03C8",tex:null,ttype:CONST},{input:"Psi",tag:"mi",output:"\u03A8",tex:null,ttype:CONST},{input:"rho",tag:"mi",output:"\u03C1",tex:null,ttype:CONST},{input:"sigma",tag:"mi",output:"\u03C3",tex:null,ttype:CONST},{input:"Sigma",tag:"mo",output:"\u03A3",tex:null,ttype:CONST},{input:"tau",tag:"mi",output:"\u03C4",tex:null,ttype:CONST},{input:"theta",tag:"mi",output:"\u03B8",tex:null,ttype:CONST},{input:"vartheta",tag:"mi",output:"\u03D1",tex:null,ttype:CONST},{input:"Theta",tag:"mo",output:"\u0398",tex:null,ttype:CONST},{input:"upsilon",tag:"mi",output:"\u03C5",tex:null,ttype:CONST},{input:"xi",tag:"mi",output:"\u03BE",tex:null,ttype:CONST},{input:"Xi",tag:"mo",output:"\u039E",tex:null,ttype:CONST},{input:"zeta",tag:"mi",output:"\u03B6",tex:null,ttype:CONST},{input:"*",tag:"mo",output:"\u22C5",tex:"cdot",ttype:CONST},{input:"**",tag:"mo",output:"\u22C6",tex:"star",ttype:CONST},{input:"//",tag:"mo",output:"/",tex:null,ttype:CONST},{input:"\\\\",tag:"mo",output:"\\",tex:"backslash",ttype:CONST},{input:"setminus",tag:"mo",output:"\\",tex:null,ttype:CONST},{input:"xx",tag:"mo",output:"\u00D7",tex:"times",ttype:CONST},{input:"-:",tag:"mo",output:"\u00F7",tex:"divide",ttype:CONST},{input:"@",tag:"mo",output:"\u26AC",tex:"circ",ttype:CONST},{input:"o+",tag:"mo",output:"\u2295",tex:"oplus",ttype:CONST},{input:"ox",tag:"mo",output:"\u2297",tex:"otimes",ttype:CONST},{input:"o.",tag:"mo",output:"\u2299",tex:"odot",ttype:CONST},{input:"sum",tag:"mo",output:"\u2211",tex:null,ttype:UNDEROVER},{input:"prod",tag:"mo",output:"\u220F",tex:null,ttype:UNDEROVER},{input:"^^",tag:"mo",output:"\u2227",tex:"wedge",ttype:CONST},{input:"^^^",tag:"mo",output:"\u22C0",tex:"bigwedge",ttype:UNDEROVER},{input:"vv",tag:"mo",output:"\u2228",tex:"vee",ttype:CONST},{input:"vvv",tag:"mo",output:"\u22C1",tex:"bigvee",ttype:UNDEROVER},{input:"nn",tag:"mo",output:"\u2229",tex:"cap",ttype:CONST},{input:"nnn",tag:"mo",output:"\u22C2",tex:"bigcap",ttype:UNDEROVER},{input:"uu",tag:"mo",output:"\u222A",tex:"cup",ttype:CONST},{input:"uuu",tag:"mo",output:"\u22C3",tex:"bigcup",ttype:UNDEROVER},{input:"!=",tag:"mo",output:"\u2260",tex:"ne",ttype:CONST},{input:":=",tag:"mo",output:":=",tex:null,ttype:CONST},{input:"lt",tag:"mo",output:"<",tex:null,ttype:CONST},{input:"<=",tag:"mo",output:"\u2264",tex:"le",ttype:CONST},{input:"lt=",tag:"mo",output:"\u2264",tex:"leq",ttype:CONST},{input:">=",tag:"mo",output:"\u2265",tex:"ge",ttype:CONST},{input:"geq",tag:"mo",output:"\u2265",tex:null,ttype:CONST},{input:"-<",tag:"mo",output:"\u227A",tex:"prec",ttype:CONST},{input:"-lt",tag:"mo",output:"\u227A",tex:null,ttype:CONST},{input:">-",tag:"mo",output:"\u227B",tex:"succ",ttype:CONST},{input:"-<=",tag:"mo",output:"\u2AAF",tex:"preceq",ttype:CONST},{input:">-=",tag:"mo",output:"\u2AB0",tex:"succeq",ttype:CONST},{input:"in",tag:"mo",output:"\u2208",tex:null,ttype:CONST},{input:"!in",tag:"mo",output:"\u2209",tex:"notin",ttype:CONST},{input:"sub",tag:"mo",output:"\u2282",tex:"subset",ttype:CONST},{input:"sup",tag:"mo",output:"\u2283",tex:"supset",ttype:CONST},{input:"sube",tag:"mo",output:"\u2286",tex:"subseteq",ttype:CONST},{input:"supe",tag:"mo",output:"\u2287",tex:"supseteq",ttype:CONST},{input:"-=",tag:"mo",output:"\u2261",tex:"equiv",ttype:CONST},{input:"~=",tag:"mo",output:"\u2245",tex:"cong",ttype:CONST},{input:"~~",tag:"mo",output:"\u2248",tex:"approx",ttype:CONST},{input:"prop",tag:"mo",output:"\u221D",tex:"propto",ttype:CONST},{input:"and",tag:"mtext",output:"and",tex:null,ttype:SPACE},{input:"or",tag:"mtext",output:"or",tex:null,ttype:SPACE},{input:"not",tag:"mo",output:"\u00AC",tex:"neg",ttype:CONST},{input:"=>",tag:"mo",output:"\u21D2",tex:"implies",ttype:CONST},{input:"if",tag:"mo",output:"if",tex:null,ttype:SPACE},{input:"<=>",tag:"mo",output:"\u21D4",tex:"iff",ttype:CONST},{input:"AA",tag:"mo",output:"\u2200",tex:"forall",ttype:CONST},{input:"EE",tag:"mo",output:"\u2203",tex:"exists",ttype:CONST},{input:"_|_",tag:"mo",output:"\u22A5",tex:"bot",ttype:CONST},{input:"TT",tag:"mo",output:"\u22A4",tex:"top",ttype:CONST},{input:"|--",tag:"mo",output:"\u22A2",tex:"vdash",ttype:CONST},{input:"|==",tag:"mo",output:"\u22A8",tex:"models",ttype:CONST},{input:"(",tag:"mo",output:"(",tex:null,ttype:LEFTBRACKET},{input:")",tag:"mo",output:")",tex:null,ttype:RIGHTBRACKET},{input:"[",tag:"mo",output:"[",tex:null,ttype:LEFTBRACKET},{input:"]",tag:"mo",output:"]",tex:null,ttype:RIGHTBRACKET},{input:"{",tag:"mo",output:"{",tex:null,ttype:LEFTBRACKET},{input:"}",tag:"mo",output:"}",tex:null,ttype:RIGHTBRACKET},{input:"|",tag:"mo",output:"|",tex:null,ttype:LEFTRIGHT},{input:"(:",tag:"mo",output:"\u2329",tex:"langle",ttype:LEFTBRACKET},{input:":)",tag:"mo",output:"\u232A",tex:"rangle",ttype:RIGHTBRACKET},{input:"<<",tag:"mo",output:"\u2329",tex:null,ttype:LEFTBRACKET},{input:">>",tag:"mo",output:"\u232A",tex:null,ttype:RIGHTBRACKET},{input:"{:",tag:"mo",output:"{:",tex:null,ttype:LEFTBRACKET,invisible:true},{input:":}",tag:"mo",output:":}",tex:null,ttype:RIGHTBRACKET,invisible:true},{input:"int",tag:"mo",output:"\u222B",tex:null,ttype:CONST},{input:"dx",tag:"mi",output:"{:d x:}",tex:null,ttype:DEFINITION},{input:"dy",tag:"mi",output:"{:d y:}",tex:null,ttype:DEFINITION},{input:"dz",tag:"mi",output:"{:d z:}",tex:null,ttype:DEFINITION},{input:"dt",tag:"mi",output:"{:d t:}",tex:null,ttype:DEFINITION},{input:"oint",tag:"mo",output:"\u222E",tex:null,ttype:CONST},{input:"del",tag:"mo",output:"\u2202",tex:"partial",ttype:CONST},{input:"grad",tag:"mo",output:"\u2207",tex:"nabla",ttype:CONST},{input:"+-",tag:"mo",output:"\u00B1",tex:"pm",ttype:CONST},{input:"O/",tag:"mo",output:"\u2205",tex:"emptyset",ttype:CONST},{input:"oo",tag:"mo",output:"\u221E",tex:"infty",ttype:CONST},{input:"aleph",tag:"mo",output:"\u2135",tex:null,ttype:CONST},{input:"...",tag:"mo",output:"...",tex:"ldots",ttype:CONST},{input:":.",tag:"mo",output:"\u2234",tex:"therefore",ttype:CONST},{input:"/_",tag:"mo",output:"\u2220",tex:"angle",ttype:CONST},{input:"\\ ",tag:"mo",output:"\u00A0",tex:null,ttype:CONST},{input:"quad",tag:"mo",output:"\u00A0\u00A0",tex:null,ttype:CONST},{input:"qquad",tag:"mo",output:"\u00A0\u00A0\u00A0\u00A0",tex:null,ttype:CONST},{input:"cdots",tag:"mo",output:"\u22EF",tex:null,ttype:CONST},{input:"vdots",tag:"mo",output:"\u22EE",tex:null,ttype:CONST},{input:"ddots",tag:"mo",output:"\u22F1",tex:null,ttype:CONST},{input:"diamond",tag:"mo",output:"\u22C4",tex:null,ttype:CONST},{input:"square",tag:"mo",output:"\u25A1",tex:null,ttype:CONST},{input:"|__",tag:"mo",output:"\u230A",tex:"lfloor",ttype:CONST},{input:"__|",tag:"mo",output:"\u230B",tex:"rfloor",ttype:CONST},{input:"|~",tag:"mo",output:"\u2308",tex:"lceiling",ttype:CONST},{input:"~|",tag:"mo",output:"\u2309",tex:"rceiling",ttype:CONST},{input:"CC",tag:"mo",output:"\u2102",tex:null,ttype:CONST},{input:"NN",tag:"mo",output:"\u2115",tex:null,ttype:CONST},{input:"QQ",tag:"mo",output:"\u211A",tex:null,ttype:CONST},{input:"RR",tag:"mo",output:"\u211D",tex:null,ttype:CONST},{input:"ZZ",tag:"mo",output:"\u2124",tex:null,ttype:CONST},{input:"f",tag:"mi",output:"f",tex:null,ttype:UNARY,func:true},{input:"g",tag:"mi",output:"g",tex:null,ttype:UNARY,func:true},{input:"lim",tag:"mo",output:"lim",tex:null,ttype:UNDEROVER},{input:"Lim",tag:"mo",output:"Lim",tex:null,ttype:UNDEROVER},{input:"sin",tag:"mo",output:"sin",tex:null,ttype:UNARY,func:true},{input:"cos",tag:"mo",output:"cos",tex:null,ttype:UNARY,func:true},{input:"tan",tag:"mo",output:"tan",tex:null,ttype:UNARY,func:true},{input:"sinh",tag:"mo",output:"sinh",tex:null,ttype:UNARY,func:true},{input:"cosh",tag:"mo",output:"cosh",tex:null,ttype:UNARY,func:true},{input:"tanh",tag:"mo",output:"tanh",tex:null,ttype:UNARY,func:true},{input:"cot",tag:"mo",output:"cot",tex:null,ttype:UNARY,func:true},{input:"sec",tag:"mo",output:"sec",tex:null,ttype:UNARY,func:true},{input:"csc",tag:"mo",output:"csc",tex:null,ttype:UNARY,func:true},{input:"log",tag:"mo",output:"log",tex:null,ttype:UNARY,func:true},{input:"ln",tag:"mo",output:"ln",tex:null,ttype:UNARY,func:true},{input:"det",tag:"mo",output:"det",tex:null,ttype:UNARY,func:true},{input:"dim",tag:"mo",output:"dim",tex:null,ttype:CONST},{input:"mod",tag:"mo",output:"mod",tex:null,ttype:CONST},{input:"gcd",tag:"mo",output:"gcd",tex:null,ttype:UNARY,func:true},{input:"lcm",tag:"mo",output:"lcm",tex:null,ttype:UNARY,func:true},{input:"lub",tag:"mo",output:"lub",tex:null,ttype:CONST},{input:"glb",tag:"mo",output:"glb",tex:null,ttype:CONST},{input:"min",tag:"mo",output:"min",tex:null,ttype:UNDEROVER},{input:"max",tag:"mo",output:"max",tex:null,ttype:UNDEROVER},{input:"uarr",tag:"mo",output:"\u2191",tex:"uparrow",ttype:CONST},{input:"darr",tag:"mo",output:"\u2193",tex:"downarrow",ttype:CONST},{input:"rarr",tag:"mo",output:"\u2192",tex:"rightarrow",ttype:CONST},{input:"->",tag:"mo",output:"\u2192",tex:"to",ttype:CONST},{input:">->",tag:"mo",output:"\u21A3",tex:"rightarrowtail",ttype:CONST},{input:"->>",tag:"mo",output:"\u21A0",tex:"twoheadrightarrow",ttype:CONST},{input:">->>",tag:"mo",output:"\u2916",tex:"twoheadrightarrowtail",ttype:CONST},{input:"|->",tag:"mo",output:"\u21A6",tex:"mapsto",ttype:CONST},{input:"larr",tag:"mo",output:"\u2190",tex:"leftarrow",ttype:CONST},{input:"harr",tag:"mo",output:"\u2194",tex:"leftrightarrow",ttype:CONST},{input:"rArr",tag:"mo",output:"\u21D2",tex:"Rightarrow",ttype:CONST},{input:"lArr",tag:"mo",output:"\u21D0",tex:"Leftarrow",ttype:CONST},{input:"hArr",tag:"mo",output:"\u21D4",tex:"Leftrightarrow",ttype:CONST},{input:"sqrt",tag:"msqrt",output:"sqrt",tex:null,ttype:UNARY},{input:"root",tag:"mroot",output:"root",tex:null,ttype:BINARY},{input:"frac",tag:"mfrac",output:"/",tex:null,ttype:BINARY},{input:"/",tag:"mfrac",output:"/",tex:null,ttype:INFIX},{input:"stackrel",tag:"mover",output:"stackrel",tex:null,ttype:BINARY},{input:"_",tag:"msub",output:"_",tex:null,ttype:INFIX},{input:"^",tag:"msup",output:"^",tex:null,ttype:INFIX},{input:"hat",tag:"mover",output:"\u005E",tex:null,ttype:UNARY,acc:true},{input:"bar",tag:"mover",output:"\u00AF",tex:"overline",ttype:UNARY,acc:true},{input:"vec",tag:"mover",output:"\u2192",tex:null,ttype:UNARY,acc:true},{input:"dot",tag:"mover",output:".",tex:null,ttype:UNARY,acc:true},{input:"ddot",tag:"mover",output:"..",tex:null,ttype:UNARY,acc:true},{input:"ul",tag:"munder",output:"\u0332",tex:"underline",ttype:UNARY,acc:true},{input:"text",tag:"mtext",output:"text",tex:null,ttype:TEXT},{input:"mbox",tag:"mtext",output:"mbox",tex:null,ttype:TEXT},AMquote,{input:"bb",tag:"mstyle",atname:"fontweight",atval:"bold",output:"bb",tex:null,ttype:UNARY},{input:"mathbf",tag:"mstyle",atname:"fontweight",atval:"bold",output:"mathbf",tex:null,ttype:UNARY},{input:"sf",tag:"mstyle",atname:"fontfamily",atval:"sans-serif",output:"sf",tex:null,ttype:UNARY},{input:"mathsf",tag:"mstyle",atname:"fontfamily",atval:"sans-serif",output:"mathsf",tex:null,ttype:UNARY},{input:"bbb",tag:"mstyle",atname:"mathvariant",atval:"double-struck",output:"bbb",tex:null,ttype:UNARY,codes:AMbbb},{input:"mathbb",tag:"mstyle",atname:"mathvariant",atval:"double-struck",output:"mathbb",tex:null,ttype:UNARY,codes:AMbbb},{input:"cc",tag:"mstyle",atname:"mathvariant",atval:"script",output:"cc",tex:null,ttype:UNARY,codes:AMcal},{input:"mathcal",tag:"mstyle",atname:"mathvariant",atval:"script",output:"mathcal",tex:null,ttype:UNARY,codes:AMcal},{input:"tt",tag:"mstyle",atname:"fontfamily",atval:"monospace",output:"tt",tex:null,ttype:UNARY},{input:"mathtt",tag:"mstyle",atname:"fontfamily",atval:"monospace",output:"mathtt",tex:null,ttype:UNARY},{input:"fr",tag:"mstyle",atname:"mathvariant",atval:"fraktur",output:"fr",tex:null,ttype:UNARY,codes:AMfrk},{input:"mathfrak",tag:"mstyle",atname:"mathvariant",atval:"fraktur",output:"mathfrak",tex:null,ttype:UNARY,codes:AMfrk}];function compareNames(b,a){if(b.input>a.input){return 1}else{return -1}}var AMnames=[];function initSymbols(){var b=[],a;for(a=0;a<AMsymbols.length;a++){if(AMsymbols[a].tex){b[b.length]={input:AMsymbols[a].tex,tag:AMsymbols[a].tag,output:AMsymbols[a].output,ttype:AMsymbols[a].ttype}}}AMsymbols=AMsymbols.concat(b);refreshSymbols()}function refreshSymbols(){var a;AMsymbols.sort(compareNames);for(a=0;a<AMsymbols.length;a++){AMnames[a]=AMsymbols[a].input}LMsymbols.sort(compareNames);for(a=0;a<LMsymbols.length;a++){LMnames[a]=LMsymbols[a].input}}function define(b,a){if(b.substr(0,1)=="\\"){LMsymbols=LMsymbols.concat([{input:b,tag:"mo",output:a,ttype:DEFINITION}])}else{AMsymbols=AMsymbols.concat([{input:b,tag:"mo",output:a,tex:null,ttype:DEFINITION}])}refreshSymbols()}function AMremoveCharsAndBlanks(c,d){var a;if(c.charAt(d)=="\\"&&c.charAt(d+1)!="\\"&&c.charAt(d+1)!=" "){a=c.slice(d+1)}else{a=c.slice(d)}for(var b=0;b<a.length&&a.charCodeAt(b)<=32;b=b+1){}return a.slice(b)}function position(b,f,g){if(g==0){var d,a;g=-1;d=b.length;while(g+1<d){a=(g+d)>>1;if(b[a]<f){g=a}else{d=a}}return d}else{for(var c=g;c<b.length&&b[c]<f;c++){}}return c}function AMgetSymbol(h){var a=0;var b=0;var d;var m;var n;var f="";var g=true;for(var c=1;c<=h.length&&g;c++){m=h.slice(0,c);b=a;a=position(AMnames,m,b);if(a<AMnames.length&&h.slice(0,AMnames[a].length)==AMnames[a]){f=AMnames[a];d=a;c=f.length}g=a<AMnames.length&&h.slice(0,AMnames[a].length)>=AMnames[a]}AMpreviousSymbol=AMcurrentSymbol;if(f!=""){AMcurrentSymbol=AMsymbols[d].ttype;return AMsymbols[d]}AMcurrentSymbol=CONST;a=1;m=h.slice(0,1);var l=true;while("0"<=m&&m<="9"&&a<=h.length){m=h.slice(a,a+1);a++}if(m==decimalsign){m=h.slice(a,a+1);if("0"<=m&&m<="9"){l=false;a++;while("0"<=m&&m<="9"&&a<=h.length){m=h.slice(a,a+1);a++}}}if((l&&a>1)||a>2){m=h.slice(0,a-1);n="mn"}else{a=2;m=h.slice(0,1);n=(("A">m||m>"Z")&&("a">m||m>"z")?"mo":"mi")}if(m=="-"&&AMpreviousSymbol==INFIX){AMcurrentSymbol=INFIX;return{input:m,tag:n,output:m,ttype:UNARY,func:true}}return{input:m,tag:n,output:m,ttype:CONST}}function AMremoveBrackets(b){var a;if(b.nodeName=="mrow"){a=b.firstChild.firstChild.nodeValue;if(a=="("||a=="["||a=="{"){b.removeChild(b.firstChild)}}if(b.nodeName=="mrow"){a=b.lastChild.firstChild.nodeValue;if(a==")"||a=="]"||a=="}"){b.removeChild(b.lastChild)}}}var AMnestingDepth,AMpreviousSymbol,AMcurrentSymbol;function AMparseSexpr(h){var d,b,k,f,m,g=document.createDocumentFragment();h=AMremoveCharsAndBlanks(h,0);d=AMgetSymbol(h);if(d==null||d.ttype==RIGHTBRACKET&&AMnestingDepth>0){return[null,h]}if(d.ttype==DEFINITION){h=d.output+AMremoveCharsAndBlanks(h,d.input.length);d=AMgetSymbol(h)}switch(d.ttype){case UNDEROVER:case CONST:h=AMremoveCharsAndBlanks(h,d.input.length);return[createMmlNode(d.tag,document.createTextNode(d.output)),h];case LEFTBRACKET:AMnestingDepth++;h=AMremoveCharsAndBlanks(h,d.input.length);k=AMparseExpr(h,true);AMnestingDepth--;if(typeof d.invisible=="boolean"&&d.invisible){b=createMmlNode("mrow",k[0])}else{b=createMmlNode("mo",document.createTextNode(d.output));b=createMmlNode("mrow",b);b.appendChild(k[0])}return[b,k[1]];case TEXT:if(d!=AMquote){h=AMremoveCharsAndBlanks(h,d.input.length)}if(h.charAt(0)=="{"){f=h.indexOf("}")}else{if(h.charAt(0)=="("){f=h.indexOf(")")}else{if(h.charAt(0)=="["){f=h.indexOf("]")}else{if(d==AMquote){f=h.slice(1).indexOf('"')+1}else{f=0}}}}if(f==-1){f=h.length}m=h.slice(1,f);if(m.charAt(0)==" "){b=createMmlNode("mspace");b.setAttribute("width","1ex");g.appendChild(b)}g.appendChild(createMmlNode(d.tag,document.createTextNode(m)));if(m.charAt(m.length-1)==" "){b=createMmlNode("mspace");b.setAttribute("width","1ex");g.appendChild(b)}h=AMremoveCharsAndBlanks(h,f+1);return[createMmlNode("mrow",g),h];case UNARY:h=AMremoveCharsAndBlanks(h,d.input.length);k=AMparseSexpr(h);if(k[0]==null){return[createMmlNode(d.tag,document.createTextNode(d.output)),h]}if(typeof d.func=="boolean"&&d.func){m=h.charAt(0);if(m=="^"||m=="_"||m=="/"||m=="|"||m==","){return[createMmlNode(d.tag,document.createTextNode(d.output)),h]}else{b=createMmlNode("mrow",createMmlNode(d.tag,document.createTextNode(d.output)));b.appendChild(k[0]);return[b,k[1]]}}AMremoveBrackets(k[0]);if(d.input=="sqrt"){return[createMmlNode(d.tag,k[0]),k[1]]}else{if(typeof d.acc=="boolean"&&d.acc){b=createMmlNode(d.tag,k[0]);b.appendChild(createMmlNode("mo",document.createTextNode(d.output)));return[b,k[1]]}else{if(!isIE&&typeof d.codes!="undefined"){for(f=0;f<k[0].childNodes.length;f++){if(k[0].childNodes[f].nodeName=="mi"||k[0].nodeName=="mi"){m=(k[0].nodeName=="mi"?k[0].firstChild.nodeValue:k[0].childNodes[f].firstChild.nodeValue);var l=[];for(var c=0;c<m.length;c++){if(m.charCodeAt(c)>64&&m.charCodeAt(c)<91){l=l+String.fromCharCode(d.codes[m.charCodeAt(c)-65])}else{l=l+m.charAt(c)}}if(k[0].nodeName=="mi"){k[0]=createMmlNode("mo").appendChild(document.createTextNode(l))}else{k[0].replaceChild(createMmlNode("mo").appendChild(document.createTextNode(l)),k[0].childNodes[f])}}}}b=createMmlNode(d.tag,k[0]);b.setAttribute(d.atname,d.atval);return[b,k[1]]}}case BINARY:h=AMremoveCharsAndBlanks(h,d.input.length);k=AMparseSexpr(h);if(k[0]==null){return[createMmlNode("mo",document.createTextNode(d.input)),h]}AMremoveBrackets(k[0]);var a=AMparseSexpr(k[1]);if(a[0]==null){return[createMmlNode("mo",document.createTextNode(d.input)),h]}AMremoveBrackets(a[0]);if(d.input=="root"||d.input=="stackrel"){g.appendChild(a[0])}g.appendChild(k[0]);if(d.input=="frac"){g.appendChild(a[0])}return[createMmlNode(d.tag,g),a[1]];case INFIX:h=AMremoveCharsAndBlanks(h,d.input.length);return[createMmlNode("mo",document.createTextNode(d.output)),h];case SPACE:h=AMremoveCharsAndBlanks(h,d.input.length);b=createMmlNode("mspace");b.setAttribute("width","1ex");g.appendChild(b);g.appendChild(createMmlNode(d.tag,document.createTextNode(d.output)));b=createMmlNode("mspace");b.setAttribute("width","1ex");g.appendChild(b);return[createMmlNode("mrow",g),h];case LEFTRIGHT:AMnestingDepth++;h=AMremoveCharsAndBlanks(h,d.input.length);k=AMparseExpr(h,false);AMnestingDepth--;var m="";if(k[0].lastChild!=null){m=k[0].lastChild.firstChild.nodeValue}if(m=="|"){b=createMmlNode("mo",document.createTextNode(d.output));b=createMmlNode("mrow",b);b.appendChild(k[0]);return[b,k[1]]}else{b=createMmlNode("mo",document.createTextNode("\u2223"));b=createMmlNode("mrow",b);return[b,h]}default:h=AMremoveCharsAndBlanks(h,d.input.length);return[createMmlNode(d.tag,document.createTextNode(d.output)),h]}}function AMparseIexpr(h){var a,j,g,d,f,b;h=AMremoveCharsAndBlanks(h,0);j=AMgetSymbol(h);f=AMparseSexpr(h);d=f[0];h=f[1];a=AMgetSymbol(h);if(a.ttype==INFIX&&a.input!="/"){h=AMremoveCharsAndBlanks(h,a.input.length);f=AMparseSexpr(h);if(f[0]==null){f[0]=createMmlNode("mo",document.createTextNode("\u25A1"))}else{AMremoveBrackets(f[0])}h=f[1];if(a.input=="_"){g=AMgetSymbol(h);b=(j.ttype==UNDEROVER);if(g.input=="^"){h=AMremoveCharsAndBlanks(h,g.input.length);var c=AMparseSexpr(h);AMremoveBrackets(c[0]);h=c[1];d=createMmlNode((b?"munderover":"msubsup"),d);d.appendChild(f[0]);d.appendChild(c[0]);d=createMmlNode("mrow",d)}else{d=createMmlNode((b?"munder":"msub"),d);d.appendChild(f[0])}}else{d=createMmlNode(a.tag,d);d.appendChild(f[0])}}return[d,h]}function AMparseExpr(p,q){var x,o,a,t,z=[],g=document.createDocumentFragment();do{p=AMremoveCharsAndBlanks(p,0);a=AMparseIexpr(p);o=a[0];p=a[1];x=AMgetSymbol(p);if(x.ttype==INFIX&&x.input=="/"){p=AMremoveCharsAndBlanks(p,x.input.length);a=AMparseIexpr(p);if(a[0]==null){a[0]=createMmlNode("mo",document.createTextNode("\u25A1"))}else{AMremoveBrackets(a[0])}p=a[1];AMremoveBrackets(o);o=createMmlNode(x.tag,o);o.appendChild(a[0]);g.appendChild(o);x=AMgetSymbol(p)}else{if(o!=undefined){g.appendChild(o)}}}while((x.ttype!=RIGHTBRACKET&&(x.ttype!=LEFTRIGHT||q)||AMnestingDepth==0)&&x!=null&&x.output!="");if(x.ttype==RIGHTBRACKET||x.ttype==LEFTRIGHT){var v=g.childNodes.length;if(v>0&&g.childNodes[v-1].nodeName=="mrow"&&v>1&&g.childNodes[v-2].nodeName=="mo"&&g.childNodes[v-2].firstChild.nodeValue==","){var A=g.childNodes[v-1].lastChild.firstChild.nodeValue;if(A==")"||A=="]"){var c=g.childNodes[v-1].firstChild.firstChild.nodeValue;if(c=="("&&A==")"&&x.output!="}"||c=="["&&A=="]"){var d=[];var w=true;var l=g.childNodes.length;for(t=0;w&&t<l;t=t+2){d[t]=[];o=g.childNodes[t];if(w){w=o.nodeName=="mrow"&&(t==l-1||o.nextSibling.nodeName=="mo"&&o.nextSibling.firstChild.nodeValue==",")&&o.firstChild.firstChild.nodeValue==c&&o.lastChild.firstChild.nodeValue==A}if(w){for(var s=0;s<o.childNodes.length;s++){if(o.childNodes[s].firstChild.nodeValue==","){d[t][d[t].length]=s}}}if(w&&t>1){w=d[t].length==d[t-2].length}}if(w){var f,b,h,r,y=document.createDocumentFragment();for(t=0;t<l;t=t+2){f=document.createDocumentFragment();b=document.createDocumentFragment();o=g.firstChild;h=o.childNodes.length;r=0;o.removeChild(o.firstChild);for(s=1;s<h-1;s++){if(typeof d[t][r]!="undefined"&&s==d[t][r]){o.removeChild(o.firstChild);f.appendChild(createMmlNode("mtd",b));r++}else{b.appendChild(o.firstChild)}}f.appendChild(createMmlNode("mtd",b));if(g.childNodes.length>2){g.removeChild(g.firstChild);g.removeChild(g.firstChild)}y.appendChild(createMmlNode("mtr",f))}o=createMmlNode("mtable",y);if(typeof x.invisible=="boolean"&&x.invisible){o.setAttribute("columnalign","left")}g.replaceChild(o,g.firstChild)}}}}p=AMremoveCharsAndBlanks(p,x.input.length);if(typeof x.invisible!="boolean"||!x.invisible){o=createMmlNode("mo",document.createTextNode(x.output));g.appendChild(o)}}return[g,p]}function parseMath(c,b){var d,a;AMnestingDepth=0;d=b?LMparseExpr(c.replace(/^\s+/g,""),false,false)[0]:AMparseExpr(c.replace(/^\s+/g,""),false)[0];a=createMmlNode("mstyle",d);a.setAttribute("mathcolor",mathcolor);a.setAttribute("fontfamily",mathfontfamily);a.setAttribute("mathsize",mathfontsize);if(displaystyle){a.setAttribute("displaystyle","true")}a=createMmlNode("math",a);if(showasciiformulaonhover){a.setAttribute("title",c.replace(/\s+/g," "))}return a}function strarr2docFrag(a,d,g){var k=document.createDocumentFragment();var h=false;for(var f=0;f<a.length;f++){if(h){k.appendChild(parseMath(a[f],g))}else{var b=(d?a[f].split("\n\n"):[a[f]]);k.appendChild(createElementXHTML("span").appendChild(document.createTextNode(b[0])));for(var c=1;c<b.length;c++){k.appendChild(createElementXHTML("p"));k.appendChild(createElementXHTML("span").appendChild(document.createTextNode(b[c])))}}h=!h}return k}function AMautomathrec(m){var b="\\\\[a-zA-Z]+|\\\\\\s|";var k="\\b(?:oo|lim|ln|int|oint|del|grad|aleph|prod|prop|sinh|cosh|tanh|cos|sec|pi|tt|fr|sf|sube|supe|sub|sup|det|mod|gcd|lcm|min|max|vec|ddot|ul|chi|eta|nu|mu)(?![a-z])|";var l="\\b(?:sum|ox|log|sin|tan|dim|hat|bar|dot)(?![a-z])|";var g="|\\bI\\b|\\bin\\b|\\btext\\b";var a="NN|ZZ|QQ|RR|CC|TT|AA|EE|sqrt|dx|dy|dz|dt|xx|vv|uu|nn|bb|cc|csc|cot|alpha|beta|delta|Delta|epsilon|gamma|Gamma|kappa|lambda|Lambda|omega|phi|Phi|Pi|psi|Psi|rho|sigma|Sigma|tau|theta|Theta|xi|Xi|zeta";var j="[a-zA-HJ-Z](?=(?:[^a-zA-Z]|$|"+k+l+a+"))|";var c=j+b+"\\d+|[-()[\\]{}+=*&^_%\\@/<>,\\|!:;'~]|\\.(?!(?:\x20|$))|"+k+l+a;var n=new RegExp("(^|\\s)((("+c+")\\s?)(("+c+g+")\\s?)+)([,.?]?(?=\\s|$))","g");m=m.replace(n," `$2`$7");var f=m.split(AMdelimiter1);var h=new RegExp("(^|\\s)([b-zB-HJ-Z+*<>]|"+b+k+a+")(\\s|\\n|$)","g");var d=new RegExp("(^|\\s)([a-z]|"+b+k+a+")([,.])","g");for(i=0;i<f.length;i++){if(i%2==0){f[i]=f[i].replace(h," `$2`$3");f[i]=f[i].replace(d," `$2`$3");f[i]=f[i].replace(/([{}[\]])/,"`$1`")}}m=f.join(AMdelimiter1);m=m.replace(/((^|\s)\([a-zA-Z]{2,}.*?)\)`/g,"$1`)");m=m.replace(/`(\((a\s|in\s))(.*?[a-zA-Z]{2,}\))/g,"$1`$3");m=m.replace(/\sin`/g,"` in");m=m.replace(/`(\(\w\)[,.]?(\s|\n|$))/g,"$1`");m=m.replace(/`([0-9.]+|e.g|i.e)`(\.?)/gi,"$1$2");m=m.replace(/`([0-9.]+:)`/g,"$1");return m}function processNodeR(c,h,b){var k,j,f,a,d;if(c.childNodes.length==0){if((c.nodeType!=8||h)&&c.parentNode.nodeName!="form"&&c.parentNode.nodeName!="FORM"&&c.parentNode.nodeName!="textarea"&&c.parentNode.nodeName!="TEXTAREA"){j=c.nodeValue;if(!(j==null)){j=j.replace(/\r\n\r\n/g,"\n\n");j=j.replace(/\x20+/g," ");j=j.replace(/\s*\r\n/g," ");if(b){k=(j.indexOf("$")==-1?false:true);j=j.replace(/([^\\])\$/g,"$1 $");j=j.replace(/^\$/," $");f=j.split(" $");for(d=0;d<f.length;d++){f[d]=f[d].replace(/\\\$/g,"$")}}else{k=false;j=j.replace(new RegExp(AMescape1,"g"),function(){k=true;return"AMescape1"});j=j.replace(/\\?end{?a?math}?/i,function(){automathrecognize=false;k=true;return""});j=j.replace(/amath\b|\\begin{a?math}/i,function(){automathrecognize=true;k=true;return""});f=j.split(AMdelimiter1);if(automathrecognize){for(d=0;d<f.length;d++){if(d%2==0){f[d]=AMautomathrec(f[d])}}}j=f.join(AMdelimiter1);f=j.split(AMdelimiter1);for(d=0;d<f.length;d++){f[d]=f[d].replace(/AMescape1/g,AMdelimiter1)}}if(f.length>1||k){if(!noMathML){a=strarr2docFrag(f,c.nodeType==8,b);var g=a.childNodes.length;c.parentNode.replaceChild(a,c);return g-1}else{return 0}}}}else{return 0}}else{if(c.nodeName!="math"){for(d=0;d<c.childNodes.length;d++){d+=processNodeR(c.childNodes[d],h,b)}}}return 0}function AMprocessNode(h,c,a){var g,b;if(a!=null){g=document.getElementsByTagName("span");for(var d=0;d<g.length;d++){if(g[d].className=="AM"){processNodeR(g[d],c,false)}}}else{try{b=h.innerHTML}catch(f){}if(b==null||/amath\b|\\begin{a?math}/i.test(b)||b.indexOf(AMdelimiter1+" ")!=-1||b.slice(-1)==AMdelimiter1||b.indexOf(AMdelimiter1+"<")!=-1||b.indexOf(AMdelimiter1+"\n")!=-1){processNodeR(h,c,false)}}}var LMsymbols=[{input:"\\alpha",tag:"mi",output:"\u03B1",ttype:CONST},{input:"\\beta",tag:"mi",output:"\u03B2",ttype:CONST},{input:"\\gamma",tag:"mi",output:"\u03B3",ttype:CONST},{input:"\\delta",tag:"mi",output:"\u03B4",ttype:CONST},{input:"\\epsilon",tag:"mi",output:"\u03B5",ttype:CONST},{input:"\\varepsilon",tag:"mi",output:"\u025B",ttype:CONST},{input:"\\zeta",tag:"mi",output:"\u03B6",ttype:CONST},{input:"\\eta",tag:"mi",output:"\u03B7",ttype:CONST},{input:"\\theta",tag:"mi",output:"\u03B8",ttype:CONST},{input:"\\vartheta",tag:"mi",output:"\u03D1",ttype:CONST},{input:"\\iota",tag:"mi",output:"\u03B9",ttype:CONST},{input:"\\kappa",tag:"mi",output:"\u03BA",ttype:CONST},{input:"\\lambda",tag:"mi",output:"\u03BB",ttype:CONST},{input:"\\mu",tag:"mi",output:"\u03BC",ttype:CONST},{input:"\\nu",tag:"mi",output:"\u03BD",ttype:CONST},{input:"\\xi",tag:"mi",output:"\u03BE",ttype:CONST},{input:"\\pi",tag:"mi",output:"\u03C0",ttype:CONST},{input:"\\varpi",tag:"mi",output:"\u03D6",ttype:CONST},{input:"\\rho",tag:"mi",output:"\u03C1",ttype:CONST},{input:"\\varrho",tag:"mi",output:"\u03F1",ttype:CONST},{input:"\\varsigma",tag:"mi",output:"\u03C2",ttype:CONST},{input:"\\sigma",tag:"mi",output:"\u03C3",ttype:CONST},{input:"\\tau",tag:"mi",output:"\u03C4",ttype:CONST},{input:"\\upsilon",tag:"mi",output:"\u03C5",ttype:CONST},{input:"\\phi",tag:"mi",output:"\u03C6",ttype:CONST},{input:"\\varphi",tag:"mi",output:"\u03D5",ttype:CONST},{input:"\\chi",tag:"mi",output:"\u03C7",ttype:CONST},{input:"\\psi",tag:"mi",output:"\u03C8",ttype:CONST},{input:"\\omega",tag:"mi",output:"\u03C9",ttype:CONST},{input:"\\Gamma",tag:"mo",output:"\u0393",ttype:CONST},{input:"\\Delta",tag:"mo",output:"\u0394",ttype:CONST},{input:"\\Theta",tag:"mo",output:"\u0398",ttype:CONST},{input:"\\Lambda",tag:"mo",output:"\u039B",ttype:CONST},{input:"\\Xi",tag:"mo",output:"\u039E",ttype:CONST},{input:"\\Pi",tag:"mo",output:"\u03A0",ttype:CONST},{input:"\\Sigma",tag:"mo",output:"\u03A3",ttype:CONST},{input:"\\Upsilon",tag:"mo",output:"\u03A5",ttype:CONST},{input:"\\Phi",tag:"mo",output:"\u03A6",ttype:CONST},{input:"\\Psi",tag:"mo",output:"\u03A8",ttype:CONST},{input:"\\Omega",tag:"mo",output:"\u03A9",ttype:CONST},{input:"\\frac12",tag:"mo",output:"\u00BD",ttype:CONST},{input:"\\frac14",tag:"mo",output:"\u00BC",ttype:CONST},{input:"\\frac34",tag:"mo",output:"\u00BE",ttype:CONST},{input:"\\frac13",tag:"mo",output:"\u2153",ttype:CONST},{input:"\\frac23",tag:"mo",output:"\u2154",ttype:CONST},{input:"\\frac15",tag:"mo",output:"\u2155",ttype:CONST},{input:"\\frac25",tag:"mo",output:"\u2156",ttype:CONST},{input:"\\frac35",tag:"mo",output:"\u2157",ttype:CONST},{input:"\\frac45",tag:"mo",output:"\u2158",ttype:CONST},{input:"\\frac16",tag:"mo",output:"\u2159",ttype:CONST},{input:"\\frac56",tag:"mo",output:"\u215A",ttype:CONST},{input:"\\frac18",tag:"mo",output:"\u215B",ttype:CONST},{input:"\\frac38",tag:"mo",output:"\u215C",ttype:CONST},{input:"\\frac58",tag:"mo",output:"\u215D",ttype:CONST},{input:"\\frac78",tag:"mo",output:"\u215E",ttype:CONST},{input:"\\pm",tag:"mo",output:"\u00B1",ttype:CONST},{input:"\\mp",tag:"mo",output:"\u2213",ttype:CONST},{input:"\\triangleleft",tag:"mo",output:"\u22B2",ttype:CONST},{input:"\\triangleright",tag:"mo",output:"\u22B3",ttype:CONST},{input:"\\cdot",tag:"mo",output:"\u22C5",ttype:CONST},{input:"\\star",tag:"mo",output:"\u22C6",ttype:CONST},{input:"\\ast",tag:"mo",output:"\u002A",ttype:CONST},{input:"\\times",tag:"mo",output:"\u00D7",ttype:CONST},{input:"\\div",tag:"mo",output:"\u00F7",ttype:CONST},{input:"\\circ",tag:"mo",output:"\u2218",ttype:CONST},{input:"\\bullet",tag:"mo",output:"\u2022",ttype:CONST},{input:"\\oplus",tag:"mo",output:"\u2295",ttype:CONST},{input:"\\ominus",tag:"mo",output:"\u2296",ttype:CONST},{input:"\\otimes",tag:"mo",output:"\u2297",ttype:CONST},{input:"\\bigcirc",tag:"mo",output:"\u25CB",ttype:CONST},{input:"\\oslash",tag:"mo",output:"\u2298",ttype:CONST},{input:"\\odot",tag:"mo",output:"\u2299",ttype:CONST},{input:"\\land",tag:"mo",output:"\u2227",ttype:CONST},{input:"\\wedge",tag:"mo",output:"\u2227",ttype:CONST},{input:"\\lor",tag:"mo",output:"\u2228",ttype:CONST},{input:"\\vee",tag:"mo",output:"\u2228",ttype:CONST},{input:"\\cap",tag:"mo",output:"\u2229",ttype:CONST},{input:"\\cup",tag:"mo",output:"\u222A",ttype:CONST},{input:"\\sqcap",tag:"mo",output:"\u2293",ttype:CONST},{input:"\\sqcup",tag:"mo",output:"\u2294",ttype:CONST},{input:"\\uplus",tag:"mo",output:"\u228E",ttype:CONST},{input:"\\amalg",tag:"mo",output:"\u2210",ttype:CONST},{input:"\\bigtriangleup",tag:"mo",output:"\u25B3",ttype:CONST},{input:"\\bigtriangledown",tag:"mo",output:"\u25BD",ttype:CONST},{input:"\\dag",tag:"mo",output:"\u2020",ttype:CONST},{input:"\\dagger",tag:"mo",output:"\u2020",ttype:CONST},{input:"\\ddag",tag:"mo",output:"\u2021",ttype:CONST},{input:"\\ddagger",tag:"mo",output:"\u2021",ttype:CONST},{input:"\\lhd",tag:"mo",output:"\u22B2",ttype:CONST},{input:"\\rhd",tag:"mo",output:"\u22B3",ttype:CONST},{input:"\\unlhd",tag:"mo",output:"\u22B4",ttype:CONST},{input:"\\unrhd",tag:"mo",output:"\u22B5",ttype:CONST},{input:"\\sum",tag:"mo",output:"\u2211",ttype:UNDEROVER},{input:"\\prod",tag:"mo",output:"\u220F",ttype:UNDEROVER},{input:"\\bigcap",tag:"mo",output:"\u22C2",ttype:UNDEROVER},{input:"\\bigcup",tag:"mo",output:"\u22C3",ttype:UNDEROVER},{input:"\\bigwedge",tag:"mo",output:"\u22C0",ttype:UNDEROVER},{input:"\\bigvee",tag:"mo",output:"\u22C1",ttype:UNDEROVER},{input:"\\bigsqcap",tag:"mo",output:"\u2A05",ttype:UNDEROVER},{input:"\\bigsqcup",tag:"mo",output:"\u2A06",ttype:UNDEROVER},{input:"\\coprod",tag:"mo",output:"\u2210",ttype:UNDEROVER},{input:"\\bigoplus",tag:"mo",output:"\u2A01",ttype:UNDEROVER},{input:"\\bigotimes",tag:"mo",output:"\u2A02",ttype:UNDEROVER},{input:"\\bigodot",tag:"mo",output:"\u2A00",ttype:UNDEROVER},{input:"\\biguplus",tag:"mo",output:"\u2A04",ttype:UNDEROVER},{input:"\\int",tag:"mo",output:"\u222B",ttype:CONST},{input:"\\oint",tag:"mo",output:"\u222E",ttype:CONST},{input:":=",tag:"mo",output:":=",ttype:CONST},{input:"\\lt",tag:"mo",output:"<",ttype:CONST},{input:"\\gt",tag:"mo",output:">",ttype:CONST},{input:"\\ne",tag:"mo",output:"\u2260",ttype:CONST},{input:"\\neq",tag:"mo",output:"\u2260",ttype:CONST},{input:"\\le",tag:"mo",output:"\u2264",ttype:CONST},{input:"\\leq",tag:"mo",output:"\u2264",ttype:CONST},{input:"\\leqslant",tag:"mo",output:"\u2264",ttype:CONST},{input:"\\ge",tag:"mo",output:"\u2265",ttype:CONST},{input:"\\geq",tag:"mo",output:"\u2265",ttype:CONST},{input:"\\geqslant",tag:"mo",output:"\u2265",ttype:CONST},{input:"\\equiv",tag:"mo",output:"\u2261",ttype:CONST},{input:"\\ll",tag:"mo",output:"\u226A",ttype:CONST},{input:"\\gg",tag:"mo",output:"\u226B",ttype:CONST},{input:"\\doteq",tag:"mo",output:"\u2250",ttype:CONST},{input:"\\prec",tag:"mo",output:"\u227A",ttype:CONST},{input:"\\succ",tag:"mo",output:"\u227B",ttype:CONST},{input:"\\preceq",tag:"mo",output:"\u227C",ttype:CONST},{input:"\\succeq",tag:"mo",output:"\u227D",ttype:CONST},{input:"\\subset",tag:"mo",output:"\u2282",ttype:CONST},{input:"\\supset",tag:"mo",output:"\u2283",ttype:CONST},{input:"\\subseteq",tag:"mo",output:"\u2286",ttype:CONST},{input:"\\supseteq",tag:"mo",output:"\u2287",ttype:CONST},{input:"\\sqsubset",tag:"mo",output:"\u228F",ttype:CONST},{input:"\\sqsupset",tag:"mo",output:"\u2290",ttype:CONST},{input:"\\sqsubseteq",tag:"mo",output:"\u2291",ttype:CONST},{input:"\\sqsupseteq",tag:"mo",output:"\u2292",ttype:CONST},{input:"\\sim",tag:"mo",output:"\u223C",ttype:CONST},{input:"\\simeq",tag:"mo",output:"\u2243",ttype:CONST},{input:"\\approx",tag:"mo",output:"\u2248",ttype:CONST},{input:"\\cong",tag:"mo",output:"\u2245",ttype:CONST},{input:"\\Join",tag:"mo",output:"\u22C8",ttype:CONST},{input:"\\bowtie",tag:"mo",output:"\u22C8",ttype:CONST},{input:"\\in",tag:"mo",output:"\u2208",ttype:CONST},{input:"\\ni",tag:"mo",output:"\u220B",ttype:CONST},{input:"\\owns",tag:"mo",output:"\u220B",ttype:CONST},{input:"\\propto",tag:"mo",output:"\u221D",ttype:CONST},{input:"\\vdash",tag:"mo",output:"\u22A2",ttype:CONST},{input:"\\dashv",tag:"mo",output:"\u22A3",ttype:CONST},{input:"\\models",tag:"mo",output:"\u22A8",ttype:CONST},{input:"\\perp",tag:"mo",output:"\u22A5",ttype:CONST},{input:"\\smile",tag:"mo",output:"\u2323",ttype:CONST},{input:"\\frown",tag:"mo",output:"\u2322",ttype:CONST},{input:"\\asymp",tag:"mo",output:"\u224D",ttype:CONST},{input:"\\notin",tag:"mo",output:"\u2209",ttype:CONST},{input:"\\begin{eqnarray}",output:"X",ttype:MATRIX,invisible:true},{input:"\\begin{array}",output:"X",ttype:MATRIX,invisible:true},{input:"\\\\",output:"}&{",ttype:DEFINITION},{input:"\\end{eqnarray}",output:"}}",ttype:DEFINITION},{input:"\\end{array}",output:"}}",ttype:DEFINITION},{input:"\\big",tag:"mo",output:"X",atval:"1.2",ieval:"2.2",ttype:BIG},{input:"\\Big",tag:"mo",output:"X",atval:"1.6",ieval:"2.6",ttype:BIG},{input:"\\bigg",tag:"mo",output:"X",atval:"2.2",ieval:"3.2",ttype:BIG},{input:"\\Bigg",tag:"mo",output:"X",atval:"2.9",ieval:"3.9",ttype:BIG},{input:"\\left",tag:"mo",output:"X",ttype:LEFTBRACKET},{input:"\\right",tag:"mo",output:"X",ttype:RIGHTBRACKET},{input:"{",output:"{",ttype:LEFTBRACKET,invisible:true},{input:"}",output:"}",ttype:RIGHTBRACKET,invisible:true},{input:"(",tag:"mo",output:"(",atval:"1",ttype:STRETCHY},{input:"[",tag:"mo",output:"[",atval:"1",ttype:STRETCHY},{input:"\\lbrack",tag:"mo",output:"[",atval:"1",ttype:STRETCHY},{input:"\\{",tag:"mo",output:"{",atval:"1",ttype:STRETCHY},{input:"\\lbrace",tag:"mo",output:"{",atval:"1",ttype:STRETCHY},{input:"\\langle",tag:"mo",output:"\u2329",atval:"1",ttype:STRETCHY},{input:"\\lfloor",tag:"mo",output:"\u230A",atval:"1",ttype:STRETCHY},{input:"\\lceil",tag:"mo",output:"\u2308",atval:"1",ttype:STRETCHY},{input:")",tag:"mo",output:")",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"]",tag:"mo",output:"]",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"\\rbrack",tag:"mo",output:"]",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"\\}",tag:"mo",output:"}",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"\\rbrace",tag:"mo",output:"}",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"\\rangle",tag:"mo",output:"\u232A",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"\\rfloor",tag:"mo",output:"\u230B",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"\\rceil",tag:"mo",output:"\u2309",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"|",tag:"mo",output:"\u2223",atval:"1",ttype:STRETCHY},{input:"\\|",tag:"mo",output:"\u2225",atval:"1",ttype:STRETCHY},{input:"\\vert",tag:"mo",output:"\u2223",atval:"1",ttype:STRETCHY},{input:"\\Vert",tag:"mo",output:"\u2225",atval:"1",ttype:STRETCHY},{input:"\\mid",tag:"mo",output:"\u2223",atval:"1",ttype:STRETCHY},{input:"\\parallel",tag:"mo",output:"\u2225",atval:"1",ttype:STRETCHY},{input:"/",tag:"mo",output:"/",atval:"1.01",ttype:STRETCHY},{input:"\\backslash",tag:"mo",output:"\u2216",atval:"1",ttype:STRETCHY},{input:"\\setminus",tag:"mo",output:"\\",ttype:CONST},{input:"\\!",tag:"mspace",atname:"width",atval:"-0.167em",ttype:SPACE},{input:"\\,",tag:"mspace",atname:"width",atval:"0.167em",ttype:SPACE},{input:"\\>",tag:"mspace",atname:"width",atval:"0.222em",ttype:SPACE},{input:"\\:",tag:"mspace",atname:"width",atval:"0.222em",ttype:SPACE},{input:"\\;",tag:"mspace",atname:"width",atval:"0.278em",ttype:SPACE},{input:"~",tag:"mspace",atname:"width",atval:"0.333em",ttype:SPACE},{input:"\\quad",tag:"mspace",atname:"width",atval:"1em",ttype:SPACE},{input:"\\qquad",tag:"mspace",atname:"width",atval:"2em",ttype:SPACE},{input:"\\prime",tag:"mo",output:"\u2032",ttype:CONST},{input:"'",tag:"mo",output:"\u02B9",ttype:CONST},{input:"''",tag:"mo",output:"\u02BA",ttype:CONST},{input:"'''",tag:"mo",output:"\u2034",ttype:CONST},{input:"''''",tag:"mo",output:"\u2057",ttype:CONST},{input:"\\ldots",tag:"mo",output:"\u2026",ttype:CONST},{input:"\\cdots",tag:"mo",output:"\u22EF",ttype:CONST},{input:"\\vdots",tag:"mo",output:"\u22EE",ttype:CONST},{input:"\\ddots",tag:"mo",output:"\u22F1",ttype:CONST},{input:"\\forall",tag:"mo",output:"\u2200",ttype:CONST},{input:"\\exists",tag:"mo",output:"\u2203",ttype:CONST},{input:"\\Re",tag:"mo",output:"\u211C",ttype:CONST},{input:"\\Im",tag:"mo",output:"\u2111",ttype:CONST},{input:"\\aleph",tag:"mo",output:"\u2135",ttype:CONST},{input:"\\hbar",tag:"mo",output:"\u210F",ttype:CONST},{input:"\\ell",tag:"mo",output:"\u2113",ttype:CONST},{input:"\\wp",tag:"mo",output:"\u2118",ttype:CONST},{input:"\\emptyset",tag:"mo",output:"\u2205",ttype:CONST},{input:"\\infty",tag:"mo",output:"\u221E",ttype:CONST},{input:"\\surd",tag:"mo",output:"\\sqrt{}",ttype:DEFINITION},{input:"\\partial",tag:"mo",output:"\u2202",ttype:CONST},{input:"\\nabla",tag:"mo",output:"\u2207",ttype:CONST},{input:"\\triangle",tag:"mo",output:"\u25B3",ttype:CONST},{input:"\\therefore",tag:"mo",output:"\u2234",ttype:CONST},{input:"\\angle",tag:"mo",output:"\u2220",ttype:CONST},{input:"\\diamond",tag:"mo",output:"\u22C4",ttype:CONST},{input:"\\Diamond",tag:"mo",output:"\u25C7",ttype:CONST},{input:"\\neg",tag:"mo",output:"\u00AC",ttype:CONST},{input:"\\lnot",tag:"mo",output:"\u00AC",ttype:CONST},{input:"\\bot",tag:"mo",output:"\u22A5",ttype:CONST},{input:"\\top",tag:"mo",output:"\u22A4",ttype:CONST},{input:"\\square",tag:"mo",output:"\u25AB",ttype:CONST},{input:"\\Box",tag:"mo",output:"\u25A1",ttype:CONST},{input:"\\wr",tag:"mo",output:"\u2240",ttype:CONST},{input:"\\arccos",tag:"mi",output:"arccos",ttype:UNARY,func:true},{input:"\\arcsin",tag:"mi",output:"arcsin",ttype:UNARY,func:true},{input:"\\arctan",tag:"mi",output:"arctan",ttype:UNARY,func:true},{input:"\\arg",tag:"mi",output:"arg",ttype:UNARY,func:true},{input:"\\cos",tag:"mi",output:"cos",ttype:UNARY,func:true},{input:"\\cosh",tag:"mi",output:"cosh",ttype:UNARY,func:true},{input:"\\cot",tag:"mi",output:"cot",ttype:UNARY,func:true},{input:"\\coth",tag:"mi",output:"coth",ttype:UNARY,func:true},{input:"\\csc",tag:"mi",output:"csc",ttype:UNARY,func:true},{input:"\\deg",tag:"mi",output:"deg",ttype:UNARY,func:true},{input:"\\det",tag:"mi",output:"det",ttype:UNARY,func:true},{input:"\\dim",tag:"mi",output:"dim",ttype:UNARY,func:true},{input:"\\exp",tag:"mi",output:"exp",ttype:UNARY,func:true},{input:"\\gcd",tag:"mi",output:"gcd",ttype:UNARY,func:true},{input:"\\hom",tag:"mi",output:"hom",ttype:UNARY,func:true},{input:"\\inf",tag:"mo",output:"inf",ttype:UNDEROVER},{input:"\\ker",tag:"mi",output:"ker",ttype:UNARY,func:true},{input:"\\lg",tag:"mi",output:"lg",ttype:UNARY,func:true},{input:"\\lim",tag:"mo",output:"lim",ttype:UNDEROVER},{input:"\\liminf",tag:"mo",output:"liminf",ttype:UNDEROVER},{input:"\\limsup",tag:"mo",output:"limsup",ttype:UNDEROVER},{input:"\\ln",tag:"mi",output:"ln",ttype:UNARY,func:true},{input:"\\log",tag:"mi",output:"log",ttype:UNARY,func:true},{input:"\\max",tag:"mo",output:"max",ttype:UNDEROVER},{input:"\\min",tag:"mo",output:"min",ttype:UNDEROVER},{input:"\\Pr",tag:"mi",output:"Pr",ttype:UNARY,func:true},{input:"\\sec",tag:"mi",output:"sec",ttype:UNARY,func:true},{input:"\\sin",tag:"mi",output:"sin",ttype:UNARY,func:true},{input:"\\sinh",tag:"mi",output:"sinh",ttype:UNARY,func:true},{input:"\\sup",tag:"mo",output:"sup",ttype:UNDEROVER},{input:"\\tan",tag:"mi",output:"tan",ttype:UNARY,func:true},{input:"\\tanh",tag:"mi",output:"tanh",ttype:UNARY,func:true},{input:"\\gets",tag:"mo",output:"\u2190",ttype:CONST},{input:"\\leftarrow",tag:"mo",output:"\u2190",ttype:CONST},{input:"\\to",tag:"mo",output:"\u2192",ttype:CONST},{input:"\\rightarrow",tag:"mo",output:"\u2192",ttype:CONST},{input:"\\leftrightarrow",tag:"mo",output:"\u2194",ttype:CONST},{input:"\\uparrow",tag:"mo",output:"\u2191",ttype:CONST},{input:"\\downarrow",tag:"mo",output:"\u2193",ttype:CONST},{input:"\\updownarrow",tag:"mo",output:"\u2195",ttype:CONST},{input:"\\Leftarrow",tag:"mo",output:"\u21D0",ttype:CONST},{input:"\\Rightarrow",tag:"mo",output:"\u21D2",ttype:CONST},{input:"\\Leftrightarrow",tag:"mo",output:"\u21D4",ttype:CONST},{input:"\\iff",tag:"mo",output:"~\\Longleftrightarrow~",ttype:DEFINITION},{input:"\\Uparrow",tag:"mo",output:"\u21D1",ttype:CONST},{input:"\\Downarrow",tag:"mo",output:"\u21D3",ttype:CONST},{input:"\\Updownarrow",tag:"mo",output:"\u21D5",ttype:CONST},{input:"\\mapsto",tag:"mo",output:"\u21A6",ttype:CONST},{input:"\\longleftarrow",tag:"mo",output:"\u2190",ttype:LONG},{input:"\\longrightarrow",tag:"mo",output:"\u2192",ttype:LONG},{input:"\\longleftrightarrow",tag:"mo",output:"\u2194",ttype:LONG},{input:"\\Longleftarrow",tag:"mo",output:"\u21D0",ttype:LONG},{input:"\\Longrightarrow",tag:"mo",output:"\u21D2",ttype:LONG},{input:"\\implies",tag:"mo",output:"\u21D2",ttype:LONG},{input:"\\Longleftrightarrow",tag:"mo",output:"\u21D4",ttype:LONG},{input:"\\longmapsto",tag:"mo",output:"\u21A6",ttype:CONST},{input:"\\sqrt",tag:"msqrt",output:"sqrt",ttype:UNARY},{input:"\\root",tag:"mroot",output:"root",ttype:BINARY},{input:"\\frac",tag:"mfrac",output:"/",ttype:BINARY},{input:"\\stackrel",tag:"mover",output:"stackrel",ttype:BINARY},{input:"\\atop",tag:"mfrac",output:"",ttype:INFIX},{input:"\\choose",tag:"mfrac",output:"",ttype:INFIX},{input:"_",tag:"msub",output:"_",ttype:INFIX},{input:"^",tag:"msup",output:"^",ttype:INFIX},{input:"\\mathrm",tag:"mtext",output:"text",ttype:TEXT},{input:"\\mbox",tag:"mtext",output:"mbox",ttype:TEXT},{input:"\\acute",tag:"mover",output:"\u00B4",ttype:UNARY,acc:true},{input:"\\grave",tag:"mover",output:"\u0060",ttype:UNARY,acc:true},{input:"\\breve",tag:"mover",output:"\u02D8",ttype:UNARY,acc:true},{input:"\\check",tag:"mover",output:"\u02C7",ttype:UNARY,acc:true},{input:"\\dot",tag:"mover",output:".",ttype:UNARY,acc:true},{input:"\\ddot",tag:"mover",output:"..",ttype:UNARY,acc:true},{input:"\\mathring",tag:"mover",output:"\u00B0",ttype:UNARY,acc:true},{input:"\\vec",tag:"mover",output:"\u20D7",ttype:UNARY,acc:true},{input:"\\overrightarrow",tag:"mover",output:"\u20D7",ttype:UNARY,acc:true},{input:"\\overleftarrow",tag:"mover",output:"\u20D6",ttype:UNARY,acc:true},{input:"\\hat",tag:"mover",output:"\u005E",ttype:UNARY,acc:true},{input:"\\widehat",tag:"mover",output:"\u0302",ttype:UNARY,acc:true},{input:"\\tilde",tag:"mover",output:"~",ttype:UNARY,acc:true},{input:"\\widetilde",tag:"mover",output:"\u02DC",ttype:UNARY,acc:true},{input:"\\bar",tag:"mover",output:"\u203E",ttype:UNARY,acc:true},{input:"\\overbrace",tag:"mover",output:"\u23B4",ttype:UNARY,acc:true},{input:"\\overline",tag:"mover",output:"\u00AF",ttype:UNARY,acc:true},{input:"\\underbrace",tag:"munder",output:"\u23B5",ttype:UNARY,acc:true},{input:"\\underline",tag:"munder",output:"\u00AF",ttype:UNARY,acc:true},{input:"\\displaystyle",tag:"mstyle",atname:"displaystyle",atval:"true",ttype:UNARY},{input:"\\textstyle",tag:"mstyle",atname:"displaystyle",atval:"false",ttype:UNARY},{input:"\\scriptstyle",tag:"mstyle",atname:"scriptlevel",atval:"1",ttype:UNARY},{input:"\\scriptscriptstyle",tag:"mstyle",atname:"scriptlevel",atval:"2",ttype:UNARY},{input:"\\textrm",tag:"mstyle",output:"\\mathrm",ttype:DEFINITION},{input:"\\mathbf",tag:"mstyle",atname:"mathvariant",atval:"bold",ttype:UNARY},{input:"\\textbf",tag:"mstyle",atname:"mathvariant",atval:"bold",ttype:UNARY},{input:"\\mathit",tag:"mstyle",atname:"mathvariant",atval:"italic",ttype:UNARY},{input:"\\textit",tag:"mstyle",atname:"mathvariant",atval:"italic",ttype:UNARY},{input:"\\mathtt",tag:"mstyle",atname:"mathvariant",atval:"monospace",ttype:UNARY},{input:"\\texttt",tag:"mstyle",atname:"mathvariant",atval:"monospace",ttype:UNARY},{input:"\\mathsf",tag:"mstyle",atname:"mathvariant",atval:"sans-serif",ttype:UNARY},{input:"\\mathbb",tag:"mstyle",atname:"mathvariant",atval:"double-struck",ttype:UNARY,codes:AMbbb},{input:"\\mathcal",tag:"mstyle",atname:"mathvariant",atval:"script",ttype:UNARY,codes:AMcal},{input:"\\mathfrak",tag:"mstyle",atname:"mathvariant",atval:"fraktur",ttype:UNARY,codes:AMfrk}];var LMnames=[];function LMremoveCharsAndBlanks(c,d){var a;a=c.slice(d);for(var b=0;b<a.length&&a.charCodeAt(b)<=32;b=b+1){}return a.slice(b)}function LMgetSymbol(h){var a=0;var b=0;var d;var l;var m;var f="";var g=true;for(var c=1;c<=h.length&&g;c++){l=h.slice(0,c);b=a;a=position(LMnames,l,b);if(a<LMnames.length&&h.slice(0,LMnames[a].length)==LMnames[a]){f=LMnames[a];d=a;c=f.length}g=a<LMnames.length&&h.slice(0,LMnames[a].length)>=LMnames[a]}LMpreviousSymbol=LMcurrentSymbol;if(f!=""){LMcurrentSymbol=LMsymbols[d].ttype;return LMsymbols[d]}LMcurrentSymbol=CONST;a=1;l=h.slice(0,1);if("0"<=l&&l<="9"){m="mn"}else{m=(("A">l||l>"Z")&&("a">l||l>"z")?"mo":"mi")}return{input:l,tag:m,output:l,ttype:CONST}}var LMpreviousSymbol,LMcurrentSymbol;function LMparseSexpr(n){var t,m,d,a,r,o,l=document.createDocumentFragment();n=LMremoveCharsAndBlanks(n,0);t=LMgetSymbol(n);if(t==null||t.ttype==RIGHTBRACKET){return[null,n,null]}if(t.ttype==DEFINITION){n=t.output+LMremoveCharsAndBlanks(n,t.input.length);t=LMgetSymbol(n);if(t==null||t.ttype==RIGHTBRACKET){return[null,n,null]}}n=LMremoveCharsAndBlanks(n,t.input.length);switch(t.ttype){case SPACE:m=createMmlNode(t.tag);m.setAttribute(t.atname,t.atval);return[m,n,t.tag];case UNDEROVER:if(isIE){if(t.input.substr(0,4)=="\\big"){n="\\"+t.input.substr(4)+n;t=LMgetSymbol(n);t.ttype=UNDEROVER;n=LMremoveCharsAndBlanks(n,t.input.length)}}return[createMmlNode(t.tag,document.createTextNode(t.output)),n,t.tag];case CONST:var g=t.output;if(isIE){if(t.input=="'"){g="\u2032"}else{if(t.input=="''"){g="\u2033"}else{if(t.input=="'''"){g="\u2033\u2032"}else{if(t.input=="''''"){g="\u2033\u2033"}else{if(t.input=="\\square"){g="\u25A1"}else{if(t.input.substr(0,5)=="\\frac"){var b=t.input.substr(6,1);if(b=="5"||b=="6"){n=t.input.replace(/\\frac/,"\\frac ")+n;return[m,n,t.tag]}}}}}}}}m=createMmlNode(t.tag,document.createTextNode(g));return[m,n,t.tag];case LONG:m=createMmlNode(t.tag,document.createTextNode(t.output));m.setAttribute("minsize","1.5");m.setAttribute("maxsize","1.5");m=createMmlNode("mover",m);m.appendChild(createMmlNode("mspace"));return[m,n,t.tag];case STRETCHY:if(isIE&&t.input=="\\backslash"){t.output="\\"}m=createMmlNode(t.tag,document.createTextNode(t.output));if(t.input=="|"||t.input=="\\vert"||t.input=="\\|"||t.input=="\\Vert"){m.setAttribute("lspace","0em");m.setAttribute("rspace","0em")}m.setAttribute("maxsize",t.atval);if(t.rtag!=null){return[m,n,t.rtag]}else{return[m,n,t.tag]}case BIG:var f=t.atval;if(isIE){f=t.ieval}t=LMgetSymbol(n);if(t==null){return[null,n,null]}n=LMremoveCharsAndBlanks(n,t.input.length);m=createMmlNode(t.tag,document.createTextNode(t.output));if(isIE){var v=createMmlNode("mspace");v.setAttribute("height",f+"ex");m=createMmlNode("mrow",m);m.appendChild(v)}else{m.setAttribute("minsize",f);m.setAttribute("maxsize",f)}return[m,n,t.tag];case LEFTBRACKET:if(t.input=="\\left"){t=LMgetSymbol(n);if(t!=null){if(t.input=="."){t.invisible=true}n=LMremoveCharsAndBlanks(n,t.input.length)}}d=LMparseExpr(n,true,false);if(t==null||(typeof t.invisible=="boolean"&&t.invisible)){m=createMmlNode("mrow",d[0])}else{m=createMmlNode("mo",document.createTextNode(t.output));m=createMmlNode("mrow",m);m.appendChild(d[0])}return[m,d[1],d[2]];case MATRIX:if(t.input=="\\begin{array}"){var s="";t=LMgetSymbol(n);n=LMremoveCharsAndBlanks(n,0);if(t==null){s="l"}else{n=LMremoveCharsAndBlanks(n,t.input.length);if(t.input!="{"){s="l"}else{do{t=LMgetSymbol(n);if(t!=null){n=LMremoveCharsAndBlanks(n,t.input.length);if(t.input!="}"){s=s+t.input}}}while(t!=null&&t.input!=""&&t.input!="}")}}d=LMparseExpr("{"+n,true,true);m=createMmlNode("mtable",d[0]);s=s.replace(/l/g,"left ");s=s.replace(/r/g,"right ");s=s.replace(/c/g,"center ");m.setAttribute("columnalign",s);m.setAttribute("displaystyle","false");if(isIE){return[m,d[1],null]}var k=createMmlNode("mspace");k.setAttribute("width","0.167em");var p=createMmlNode("mspace");p.setAttribute("width","0.167em");var c=createMmlNode("mrow",k);c.appendChild(m);c.appendChild(p);return[c,d[1],null]}else{d=LMparseExpr("{"+n,true,true);m=createMmlNode("mtable",d[0]);if(isIE){m.setAttribute("columnspacing","0.25em")}else{m.setAttribute("columnspacing","0.167em")}m.setAttribute("columnalign","right center left");m.setAttribute("displaystyle","true");m=createMmlNode("mrow",m);return[m,d[1],null]}case TEXT:if(n.charAt(0)=="{"){r=n.indexOf("}")}else{r=0}if(r==-1){r=n.length}o=n.slice(1,r);if(o.charAt(0)==" "){m=createMmlNode("mspace");m.setAttribute("width","0.33em");l.appendChild(m)}l.appendChild(createMmlNode(t.tag,document.createTextNode(o)));if(o.charAt(o.length-1)==" "){m=createMmlNode("mspace");m.setAttribute("width","0.33em");l.appendChild(m)}n=LMremoveCharsAndBlanks(n,r+1);return[createMmlNode("mrow",l),n,null];case UNARY:d=LMparseSexpr(n);if(d[0]==null){return[createMmlNode(t.tag,document.createTextNode(t.output)),n]}if(typeof t.func=="boolean"&&t.func){o=n.charAt(0);if(o=="^"||o=="_"||o==","){return[createMmlNode(t.tag,document.createTextNode(t.output)),n,t.tag]}else{m=createMmlNode("mrow",createMmlNode(t.tag,document.createTextNode(t.output)));if(isIE){var v=createMmlNode("mspace");v.setAttribute("width","0.167em");m.appendChild(v)}m.appendChild(d[0]);return[m,d[1],t.tag]}}if(t.input=="\\sqrt"){if(isIE){var v=createMmlNode("mspace");v.setAttribute("height","1.2ex");v.setAttribute("width","0em");m=createMmlNode(t.tag,d[0]);m.appendChild(v);return[m,d[1],t.tag]}else{return[createMmlNode(t.tag,d[0]),d[1],t.tag]}}else{if(typeof t.acc=="boolean"&&t.acc){m=createMmlNode(t.tag,d[0]);var g=t.output;if(isIE){if(t.input=="\\hat"){g="\u0302"}else{if(t.input=="\\widehat"){g="\u005E"}else{if(t.input=="\\bar"){g="\u00AF"}else{if(t.input=="\\grave"){g="\u0300"}else{if(t.input=="\\tilde"){g="\u0303"}}}}}}var c=createMmlNode("mo",document.createTextNode(g));if(t.input=="\\vec"||t.input=="\\check"){c.setAttribute("maxsize","1.2")}if(isIE&&t.input=="\\bar"){c.setAttribute("maxsize","0.5")}if(t.input=="\\underbrace"||t.input=="\\underline"){c.setAttribute("accentunder","true")}else{c.setAttribute("accent","true")}m.appendChild(c);if(t.input=="\\overbrace"||t.input=="\\underbrace"){m.ttype=UNDEROVER}return[m,d[1],t.tag]}else{if(!isIE&&typeof t.codes!="undefined"){for(r=0;r<d[0].childNodes.length;r++){if(d[0].childNodes[r].nodeName=="mi"||d[0].nodeName=="mi"){o=(d[0].nodeName=="mi"?d[0].firstChild.nodeValue:d[0].childNodes[r].firstChild.nodeValue);var h=[];for(var q=0;q<o.length;q++){if(o.charCodeAt(q)>64&&o.charCodeAt(q)<91){h=h+String.fromCharCode(t.codes[o.charCodeAt(q)-65])}else{h=h+o.charAt(q)}}if(d[0].nodeName=="mi"){d[0]=createMmlNode("mo").appendChild(document.createTextNode(h))}else{d[0].replaceChild(createMmlNode("mo").appendChild(document.createTextNode(h)),d[0].childNodes[r])}}}}m=createMmlNode(t.tag,d[0]);m.setAttribute(t.atname,t.atval);if(t.input=="\\scriptstyle"||t.input=="\\scriptscriptstyle"){m.setAttribute("displaystyle","false")}return[m,d[1],t.tag]}}case BINARY:d=LMparseSexpr(n);if(d[0]==null){return[createMmlNode("mo",document.createTextNode(t.input)),n,null]}a=LMparseSexpr(d[1]);if(a[0]==null){return[createMmlNode("mo",document.createTextNode(t.input)),n,null]}if(t.input=="\\root"||t.input=="\\stackrel"){l.appendChild(a[0])}l.appendChild(d[0]);if(t.input=="\\frac"){l.appendChild(a[0])}return[createMmlNode(t.tag,l),a[1],t.tag];case INFIX:n=LMremoveCharsAndBlanks(n,t.input.length);return[createMmlNode("mo",document.createTextNode(t.output)),n,t.tag];default:return[createMmlNode(t.tag,document.createTextNode(t.output)),n,t.tag]}}function LMparseIexpr(g){var f,d,b,c,h,k,j;g=LMremoveCharsAndBlanks(g,0);d=LMgetSymbol(g);h=LMparseSexpr(g);c=h[0];g=h[1];k=h[2];f=LMgetSymbol(g);if(f.ttype==INFIX){g=LMremoveCharsAndBlanks(g,f.input.length);h=LMparseSexpr(g);if(h[0]==null){h[0]=createMmlNode("mo",document.createTextNode("\u25A1"))}g=h[1];k=h[2];if(f.input=="_"||f.input=="^"){b=LMgetSymbol(g);k=null;j=((d.ttype==UNDEROVER)||(c.ttype==UNDEROVER));if(f.input=="_"&&b.input=="^"){g=LMremoveCharsAndBlanks(g,b.input.length);var a=LMparseSexpr(g);g=a[1];k=a[2];c=createMmlNode((j?"munderover":"msubsup"),c);c.appendChild(h[0]);c.appendChild(a[0])}else{if(f.input=="_"){c=createMmlNode((j?"munder":"msub"),c);c.appendChild(h[0])}else{c=createMmlNode((j?"mover":"msup"),c);c.appendChild(h[0])}}c=createMmlNode("mrow",c)}else{c=createMmlNode(f.tag,c);if(f.input=="\\atop"||f.input=="\\choose"){c.setAttribute("linethickness","0ex")}c.appendChild(h[0]);if(f.input=="\\choose"){c=createMmlNode("mfenced",c)}}}return[c,g,k]}function LMparseExpr(o,p,v){var w,l,a,s,z,f=document.createDocumentFragment();do{o=LMremoveCharsAndBlanks(o,0);a=LMparseIexpr(o);l=a[0];o=a[1];z=a[2];w=LMgetSymbol(o);if(l!=undefined){if((z=="mn"||z=="mi")&&w!=null&&typeof w.func=="boole... [truncated message content] |
|
From: <pb...@fe...> - 2012-12-17 09:25:30
|
Author: pboy Date: 2012-12-17 09:25:14 +0000 (Mon, 17 Dec 2012) New Revision: 2404 Modified: releases/2.0.0/ccm-core/web/assets/xinha/plugins/Equation/ASCIIMathML.js Log: Fixed equation iditor plugin (backport r2398). (on behalf of quasimodo) Modified: releases/2.0.0/ccm-core/web/assets/xinha/plugins/Equation/ASCIIMathML.js =================================================================== --- releases/2.0.0/ccm-core/web/assets/xinha/plugins/Equation/ASCIIMathML.js 2012-12-17 09:21:25 UTC (rev 2403) +++ releases/2.0.0/ccm-core/web/assets/xinha/plugins/Equation/ASCIIMathML.js 2012-12-17 09:25:14 UTC (rev 2404) @@ -1,2 +1,2 @@ /* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */ -var mathcolor="blue";var mathfontsize="1em";var mathfontfamily="serif";var automathrecognize=false;var checkForMathML=true;var notifyIfNoMathML=true;var alertIfNoMathML=false;var translateOnLoad=true;var translateLaTeX=true;var translateLaTeXformatting=true;var translateASCIIMath=true;var translateASCIIsvg=true;var avoidinnerHTML=false;var displaystyle=true;var showasciiformulaonhover=true;var decimalsign=".";var AMdelimiter1="`",AMescape1="\\\\`";var AMdocumentId="wikitext";var checkforprocessasciimathinmoodle=false;var dsvglocation="";var isIE=document.createElementNS==null;var noMathML=false,translated=false;if(isIE){document.write('<object id="mathplayer" classid="clsid:32F66A20-7614-11D4-BD11-00104BD3F987"></object>');document.write('<?import namespace="m" implementation="#mathplayer"?>')}function setStylesheet(a){var c="AMMLcustomStyleSheet";var b=document.getElementById(c);if(document.createStyleSheet){if(b){b.parentNode.removeChild(b)}document.getElementsByTagName("head")[0].insertAdjacentHTML("beforeEnd"," <style id='"+c+"'>"+a+"</style>")}else{if(b){b.replaceChild(document.createTextNode(a),b.firstChild)}else{b=document.createElement("style");b.type="text/css";b.id=c;b.appendChild(document.createTextNode(a));document.getElementsByTagName("head")[0].appendChild(b)}}}setStylesheet("#AMMLcloseDiv {font-size:0.8em; padding-top:1em; color:#014}\n#AMMLwarningBox {position:absolute; width:100%; top:0; left:0; z-index:200; text-align:center; font-size:1em; font-weight:bold; padding:0.5em 0 0.5em 0; color:#ffc; background:#c30}");function init(){var b,a=new Array();if(document.getElementById==null){alert("This webpage requires a recent browser such as Mozilla Firefox/Netscape 7+ or Internet Explorer 6+ with MathPlayer and Adobe SVGviewer");return null}if(checkForMathML&&(b=checkMathML())){a.push(b)}if(checkIfSVGavailable&&(b=checkSVG())){a.push(b)}if(a.length>0){displayWarnings(a)}if(!noMathML){initSymbols()}return true}function checkMathML(){if(navigator.appName.slice(0,8)=="Netscape"){if(navigator.appVersion.slice(0,1)>="5"){noMathML=null}else{noMathML=true}}else{if(navigator.appName.slice(0,9)=="Microsoft"){try{var c=new ActiveXObject("MathPlayer.Factory.1");noMathML=null}catch(a){noMathML=true}}else{if(navigator.appName.slice(0,5)=="Opera"){if(navigator.appVersion.slice(0,3)>="9.5"){noMathML=null}else{noMathML=true}}}}if(noMathML&¬ifyIfNoMathML){var b="To view the ASCIIMathML notation use Internet Explorer + MathPlayer or Mozilla Firefox 2.0 or later.";if(alertIfNoMathML){alert(b)}else{return b}}}function hideWarning(){var a=document.getElementsByTagName("body")[0];a.removeChild(document.getElementById("AMMLwarningBox"));a.onclick=null}function displayWarnings(b){var c,g,f=createElementXHTML("div");var a=document.getElementsByTagName("body")[0];a.onclick=hideWarning;f.id="AMMLwarningBox";for(c=0;c<b.length;c++){g=createElementXHTML("div");g.appendChild(document.createTextNode(b[c]));g.style.paddingBottom="1.0em";f.appendChild(g)}f.appendChild(createElementXHTML("p"));f.appendChild(document.createTextNode("For instructions see the "));var d=createElementXHTML("a");d.appendChild(document.createTextNode("ASCIIMathML"));d.setAttribute("href","http://www.chapman.edu/~jipsen/asciimath.html");f.appendChild(d);f.appendChild(document.createTextNode(" homepage"));d=createElementXHTML("div");d.id="AMMLcloseDiv";d.appendChild(document.createTextNode("(click anywhere to close this warning)"));f.appendChild(d);var a=document.getElementsByTagName("body")[0];a.insertBefore(f,a.childNodes[0])}function translate(b){if(!translated){translated=true;var a=document.getElementsByTagName("body")[0];var c=document.getElementById(AMdocumentId);if(translateLaTeX){LMprocessNode((c!=null?c:a))}if(translateASCIIMath){AMprocessNode((c!=null?c:a),false,b)}}}function createElementXHTML(a){if(isIE){return document.createElement(a)}else{return document.createElementNS("http://www.w3.org/1999/xhtml",a)}}function createMmlNode(a,c){if(isIE){var b=document.createElement("m:"+a)}else{var b=document.createElementNS("http://www.w3.org/1998/Math/MathML",a)}if(c){b.appendChild(c)}return b}var AMcal=[61237,8492,61238,61239,8496,8497,61240,8459,8464,61241,61242,8466,8499,61243,61244,61245,61246,8475,61247,61248,61249,61250,61251,61252,61253,61254];var AMfrk=[61277,61278,8493,61279,61280,61281,61282,8460,8465,61283,61284,61285,61286,61287,61288,61289,61290,8476,61291,61292,61293,61294,61295,61296,61297,8488];var AMbbb=[61324,61325,8450,61326,61327,61328,61329,8461,61330,61331,61332,61333,61334,8469,61335,8473,8474,8477,61336,61337,61338,61339,61340,61341,61342,8484];var CONST=0,UNARY=1,BINARY=2,INFIX=3,LEFTBRACKET=4,RIGHTBRACKET=5,SPACE=6,UNDEROVER=7,DEFINITION=8,LEFTRIGHT=9,TEXT=10,BIG=11,LONG=12,STRETCHY=13,MATRIX=14;var AMquote={input:'"',tag:"mtext",output:"mbox",tex:null,ttype:TEXT};var AMsymbols=[{input:"alpha",tag:"mi",output:"\u03B1",tex:null,ttype:CONST},{input:"beta",tag:"mi",output:"\u03B2",tex:null,ttype:CONST},{input:"chi",tag:"mi",output:"\u03C7",tex:null,ttype:CONST},{input:"delta",tag:"mi",output:"\u03B4",tex:null,ttype:CONST},{input:"Delta",tag:"mo",output:"\u0394",tex:null,ttype:CONST},{input:"epsi",tag:"mi",output:"\u03B5",tex:"epsilon",ttype:CONST},{input:"varepsilon",tag:"mi",output:"\u025B",tex:null,ttype:CONST},{input:"eta",tag:"mi",output:"\u03B7",tex:null,ttype:CONST},{input:"gamma",tag:"mi",output:"\u03B3",tex:null,ttype:CONST},{input:"Gamma",tag:"mo",output:"\u0393",tex:null,ttype:CONST},{input:"iota",tag:"mi",output:"\u03B9",tex:null,ttype:CONST},{input:"kappa",tag:"mi",output:"\u03BA",tex:null,ttype:CONST},{input:"lambda",tag:"mi",output:"\u03BB",tex:null,ttype:CONST},{input:"Lambda",tag:"mo",output:"\u039B",tex:null,ttype:CONST},{input:"mu",tag:"mi",output:"\u03BC",tex:null,ttype:CONST},{input:"nu",tag:"mi",output:"\u03BD",tex:null,ttype:CONST},{input:"omega",tag:"mi",output:"\u03C9",tex:null,ttype:CONST},{input:"Omega",tag:"mo",output:"\u03A9",tex:null,ttype:CONST},{input:"phi",tag:"mi",output:"\u03C6",tex:null,ttype:CONST},{input:"varphi",tag:"mi",output:"\u03D5",tex:null,ttype:CONST},{input:"Phi",tag:"mo",output:"\u03A6",tex:null,ttype:CONST},{input:"pi",tag:"mi",output:"\u03C0",tex:null,ttype:CONST},{input:"Pi",tag:"mo",output:"\u03A0",tex:null,ttype:CONST},{input:"psi",tag:"mi",output:"\u03C8",tex:null,ttype:CONST},{input:"Psi",tag:"mi",output:"\u03A8",tex:null,ttype:CONST},{input:"rho",tag:"mi",output:"\u03C1",tex:null,ttype:CONST},{input:"sigma",tag:"mi",output:"\u03C3",tex:null,ttype:CONST},{input:"Sigma",tag:"mo",output:"\u03A3",tex:null,ttype:CONST},{input:"tau",tag:"mi",output:"\u03C4",tex:null,ttype:CONST},{input:"theta",tag:"mi",output:"\u03B8",tex:null,ttype:CONST},{input:"vartheta",tag:"mi",output:"\u03D1",tex:null,ttype:CONST},{input:"Theta",tag:"mo",output:"\u0398",tex:null,ttype:CONST},{input:"upsilon",tag:"mi",output:"\u03C5",tex:null,ttype:CONST},{input:"xi",tag:"mi",output:"\u03BE",tex:null,ttype:CONST},{input:"Xi",tag:"mo",output:"\u039E",tex:null,ttype:CONST},{input:"zeta",tag:"mi",output:"\u03B6",tex:null,ttype:CONST},{input:"*",tag:"mo",output:"\u22C5",tex:"cdot",ttype:CONST},{input:"**",tag:"mo",output:"\u22C6",tex:"star",ttype:CONST},{input:"//",tag:"mo",output:"/",tex:null,ttype:CONST},{input:"\\\\",tag:"mo",output:"\\",tex:"backslash",ttype:CONST},{input:"setminus",tag:"mo",output:"\\",tex:null,ttype:CONST},{input:"xx",tag:"mo",output:"\u00D7",tex:"times",ttype:CONST},{input:"-:",tag:"mo",output:"\u00F7",tex:"divide",ttype:CONST},{input:"@",tag:"mo",output:"\u26AC",tex:"circ",ttype:CONST},{input:"o+",tag:"mo",output:"\u2295",tex:"oplus",ttype:CONST},{input:"ox",tag:"mo",output:"\u2297",tex:"otimes",ttype:CONST},{input:"o.",tag:"mo",output:"\u2299",tex:"odot",ttype:CONST},{input:"sum",tag:"mo",output:"\u2211",tex:null,ttype:UNDEROVER},{input:"prod",tag:"mo",output:"\u220F",tex:null,ttype:UNDEROVER},{input:"^^",tag:"mo",output:"\u2227",tex:"wedge",ttype:CONST},{input:"^^^",tag:"mo",output:"\u22C0",tex:"bigwedge",ttype:UNDEROVER},{input:"vv",tag:"mo",output:"\u2228",tex:"vee",ttype:CONST},{input:"vvv",tag:"mo",output:"\u22C1",tex:"bigvee",ttype:UNDEROVER},{input:"nn",tag:"mo",output:"\u2229",tex:"cap",ttype:CONST},{input:"nnn",tag:"mo",output:"\u22C2",tex:"bigcap",ttype:UNDEROVER},{input:"uu",tag:"mo",output:"\u222A",tex:"cup",ttype:CONST},{input:"uuu",tag:"mo",output:"\u22C3",tex:"bigcup",ttype:UNDEROVER},{input:"!=",tag:"mo",output:"\u2260",tex:"ne",ttype:CONST},{input:":=",tag:"mo",output:":=",tex:null,ttype:CONST},{input:"lt",tag:"mo",output:"<",tex:null,ttype:CONST},{input:"<=",tag:"mo",output:"\u2264",tex:"le",ttype:CONST},{input:"lt=",tag:"mo",output:"\u2264",tex:"leq",ttype:CONST},{input:">=",tag:"mo",output:"\u2265",tex:"ge",ttype:CONST},{input:"geq",tag:"mo",output:"\u2265",tex:null,ttype:CONST},{input:"-<",tag:"mo",output:"\u227A",tex:"prec",ttype:CONST},{input:"-lt",tag:"mo",output:"\u227A",tex:null,ttype:CONST},{input:">-",tag:"mo",output:"\u227B",tex:"succ",ttype:CONST},{input:"-<=",tag:"mo",output:"\u2AAF",tex:"preceq",ttype:CONST},{input:">-=",tag:"mo",output:"\u2AB0",tex:"succeq",ttype:CONST},{input:"in",tag:"mo",output:"\u2208",tex:null,ttype:CONST},{input:"!in",tag:"mo",output:"\u2209",tex:"notin",ttype:CONST},{input:"sub",tag:"mo",output:"\u2282",tex:"subset",ttype:CONST},{input:"sup",tag:"mo",output:"\u2283",tex:"supset",ttype:CONST},{input:"sube",tag:"mo",output:"\u2286",tex:"subseteq",ttype:CONST},{input:"supe",tag:"mo",output:"\u2287",tex:"supseteq",ttype:CONST},{input:"-=",tag:"mo",output:"\u2261",tex:"equiv",ttype:CONST},{input:"~=",tag:"mo",output:"\u2245",tex:"cong",ttype:CONST},{input:"~~",tag:"mo",output:"\u2248",tex:"approx",ttype:CONST},{input:"prop",tag:"mo",output:"\u221D",tex:"propto",ttype:CONST},{input:"and",tag:"mtext",output:"and",tex:null,ttype:SPACE},{input:"or",tag:"mtext",output:"or",tex:null,ttype:SPACE},{input:"not",tag:"mo",output:"\u00AC",tex:"neg",ttype:CONST},{input:"=>",tag:"mo",output:"\u21D2",tex:"implies",ttype:CONST},{input:"if",tag:"mo",output:"if",tex:null,ttype:SPACE},{input:"<=>",tag:"mo",output:"\u21D4",tex:"iff",ttype:CONST},{input:"AA",tag:"mo",output:"\u2200",tex:"forall",ttype:CONST},{input:"EE",tag:"mo",output:"\u2203",tex:"exists",ttype:CONST},{input:"_|_",tag:"mo",output:"\u22A5",tex:"bot",ttype:CONST},{input:"TT",tag:"mo",output:"\u22A4",tex:"top",ttype:CONST},{input:"|--",tag:"mo",output:"\u22A2",tex:"vdash",ttype:CONST},{input:"|==",tag:"mo",output:"\u22A8",tex:"models",ttype:CONST},{input:"(",tag:"mo",output:"(",tex:null,ttype:LEFTBRACKET},{input:")",tag:"mo",output:")",tex:null,ttype:RIGHTBRACKET},{input:"[",tag:"mo",output:"[",tex:null,ttype:LEFTBRACKET},{input:"]",tag:"mo",output:"]",tex:null,ttype:RIGHTBRACKET},{input:"{",tag:"mo",output:"{",tex:null,ttype:LEFTBRACKET},{input:"}",tag:"mo",output:"}",tex:null,ttype:RIGHTBRACKET},{input:"|",tag:"mo",output:"|",tex:null,ttype:LEFTRIGHT},{input:"(:",tag:"mo",output:"\u2329",tex:"langle",ttype:LEFTBRACKET},{input:":)",tag:"mo",output:"\u232A",tex:"rangle",ttype:RIGHTBRACKET},{input:"<<",tag:"mo",output:"\u2329",tex:null,ttype:LEFTBRACKET},{input:">>",tag:"mo",output:"\u232A",tex:null,ttype:RIGHTBRACKET},{input:"{:",tag:"mo",output:"{:",tex:null,ttype:LEFTBRACKET,invisible:true},{input:":}",tag:"mo",output:":}",tex:null,ttype:RIGHTBRACKET,invisible:true},{input:"int",tag:"mo",output:"\u222B",tex:null,ttype:CONST},{input:"dx",tag:"mi",output:"{:d x:}",tex:null,ttype:DEFINITION},{input:"dy",tag:"mi",output:"{:d y:}",tex:null,ttype:DEFINITION},{input:"dz",tag:"mi",output:"{:d z:}",tex:null,ttype:DEFINITION},{input:"dt",tag:"mi",output:"{:d t:}",tex:null,ttype:DEFINITION},{input:"oint",tag:"mo",output:"\u222E",tex:null,ttype:CONST},{input:"del",tag:"mo",output:"\u2202",tex:"partial",ttype:CONST},{input:"grad",tag:"mo",output:"\u2207",tex:"nabla",ttype:CONST},{input:"+-",tag:"mo",output:"\u00B1",tex:"pm",ttype:CONST},{input:"O/",tag:"mo",output:"\u2205",tex:"emptyset",ttype:CONST},{input:"oo",tag:"mo",output:"\u221E",tex:"infty",ttype:CONST},{input:"aleph",tag:"mo",output:"\u2135",tex:null,ttype:CONST},{input:"...",tag:"mo",output:"...",tex:"ldots",ttype:CONST},{input:":.",tag:"mo",output:"\u2234",tex:"therefore",ttype:CONST},{input:"/_",tag:"mo",output:"\u2220",tex:"angle",ttype:CONST},{input:"\\ ",tag:"mo",output:"\u00A0",tex:null,ttype:CONST},{input:"quad",tag:"mo",output:"\u00A0\u00A0",tex:null,ttype:CONST},{input:"qquad",tag:"mo",output:"\u00A0\u00A0\u00A0\u00A0",tex:null,ttype:CONST},{input:"cdots",tag:"mo",output:"\u22EF",tex:null,ttype:CONST},{input:"vdots",tag:"mo",output:"\u22EE",tex:null,ttype:CONST},{input:"ddots",tag:"mo",output:"\u22F1",tex:null,ttype:CONST},{input:"diamond",tag:"mo",output:"\u22C4",tex:null,ttype:CONST},{input:"square",tag:"mo",output:"\u25A1",tex:null,ttype:CONST},{input:"|__",tag:"mo",output:"\u230A",tex:"lfloor",ttype:CONST},{input:"__|",tag:"mo",output:"\u230B",tex:"rfloor",ttype:CONST},{input:"|~",tag:"mo",output:"\u2308",tex:"lceiling",ttype:CONST},{input:"~|",tag:"mo",output:"\u2309",tex:"rceiling",ttype:CONST},{input:"CC",tag:"mo",output:"\u2102",tex:null,ttype:CONST},{input:"NN",tag:"mo",output:"\u2115",tex:null,ttype:CONST},{input:"QQ",tag:"mo",output:"\u211A",tex:null,ttype:CONST},{input:"RR",tag:"mo",output:"\u211D",tex:null,ttype:CONST},{input:"ZZ",tag:"mo",output:"\u2124",tex:null,ttype:CONST},{input:"f",tag:"mi",output:"f",tex:null,ttype:UNARY,func:true},{input:"g",tag:"mi",output:"g",tex:null,ttype:UNARY,func:true},{input:"lim",tag:"mo",output:"lim",tex:null,ttype:UNDEROVER},{input:"Lim",tag:"mo",output:"Lim",tex:null,ttype:UNDEROVER},{input:"sin",tag:"mo",output:"sin",tex:null,ttype:UNARY,func:true},{input:"cos",tag:"mo",output:"cos",tex:null,ttype:UNARY,func:true},{input:"tan",tag:"mo",output:"tan",tex:null,ttype:UNARY,func:true},{input:"sinh",tag:"mo",output:"sinh",tex:null,ttype:UNARY,func:true},{input:"cosh",tag:"mo",output:"cosh",tex:null,ttype:UNARY,func:true},{input:"tanh",tag:"mo",output:"tanh",tex:null,ttype:UNARY,func:true},{input:"cot",tag:"mo",output:"cot",tex:null,ttype:UNARY,func:true},{input:"sec",tag:"mo",output:"sec",tex:null,ttype:UNARY,func:true},{input:"csc",tag:"mo",output:"csc",tex:null,ttype:UNARY,func:true},{input:"log",tag:"mo",output:"log",tex:null,ttype:UNARY,func:true},{input:"ln",tag:"mo",output:"ln",tex:null,ttype:UNARY,func:true},{input:"det",tag:"mo",output:"det",tex:null,ttype:UNARY,func:true},{input:"dim",tag:"mo",output:"dim",tex:null,ttype:CONST},{input:"mod",tag:"mo",output:"mod",tex:null,ttype:CONST},{input:"gcd",tag:"mo",output:"gcd",tex:null,ttype:UNARY,func:true},{input:"lcm",tag:"mo",output:"lcm",tex:null,ttype:UNARY,func:true},{input:"lub",tag:"mo",output:"lub",tex:null,ttype:CONST},{input:"glb",tag:"mo",output:"glb",tex:null,ttype:CONST},{input:"min",tag:"mo",output:"min",tex:null,ttype:UNDEROVER},{input:"max",tag:"mo",output:"max",tex:null,ttype:UNDEROVER},{input:"uarr",tag:"mo",output:"\u2191",tex:"uparrow",ttype:CONST},{input:"darr",tag:"mo",output:"\u2193",tex:"downarrow",ttype:CONST},{input:"rarr",tag:"mo",output:"\u2192",tex:"rightarrow",ttype:CONST},{input:"->",tag:"mo",output:"\u2192",tex:"to",ttype:CONST},{input:">->",tag:"mo",output:"\u21A3",tex:"rightarrowtail",ttype:CONST},{input:"->>",tag:"mo",output:"\u21A0",tex:"twoheadrightarrow",ttype:CONST},{input:">->>",tag:"mo",output:"\u2916",tex:"twoheadrightarrowtail",ttype:CONST},{input:"|->",tag:"mo",output:"\u21A6",tex:"mapsto",ttype:CONST},{input:"larr",tag:"mo",output:"\u2190",tex:"leftarrow",ttype:CONST},{input:"harr",tag:"mo",output:"\u2194",tex:"leftrightarrow",ttype:CONST},{input:"rArr",tag:"mo",output:"\u21D2",tex:"Rightarrow",ttype:CONST},{input:"lArr",tag:"mo",output:"\u21D0",tex:"Leftarrow",ttype:CONST},{input:"hArr",tag:"mo",output:"\u21D4",tex:"Leftrightarrow",ttype:CONST},{input:"sqrt",tag:"msqrt",output:"sqrt",tex:null,ttype:UNARY},{input:"root",tag:"mroot",output:"root",tex:null,ttype:BINARY},{input:"frac",tag:"mfrac",output:"/",tex:null,ttype:BINARY},{input:"/",tag:"mfrac",output:"/",tex:null,ttype:INFIX},{input:"stackrel",tag:"mover",output:"stackrel",tex:null,ttype:BINARY},{input:"_",tag:"msub",output:"_",tex:null,ttype:INFIX},{input:"^",tag:"msup",output:"^",tex:null,ttype:INFIX},{input:"hat",tag:"mover",output:"\u005E",tex:null,ttype:UNARY,acc:true},{input:"bar",tag:"mover",output:"\u00AF",tex:"overline",ttype:UNARY,acc:true},{input:"vec",tag:"mover",output:"\u2192",tex:null,ttype:UNARY,acc:true},{input:"dot",tag:"mover",output:".",tex:null,ttype:UNARY,acc:true},{input:"ddot",tag:"mover",output:"..",tex:null,ttype:UNARY,acc:true},{input:"ul",tag:"munder",output:"\u0332",tex:"underline",ttype:UNARY,acc:true},{input:"text",tag:"mtext",output:"text",tex:null,ttype:TEXT},{input:"mbox",tag:"mtext",output:"mbox",tex:null,ttype:TEXT},AMquote,{input:"bb",tag:"mstyle",atname:"fontweight",atval:"bold",output:"bb",tex:null,ttype:UNARY},{input:"mathbf",tag:"mstyle",atname:"fontweight",atval:"bold",output:"mathbf",tex:null,ttype:UNARY},{input:"sf",tag:"mstyle",atname:"fontfamily",atval:"sans-serif",output:"sf",tex:null,ttype:UNARY},{input:"mathsf",tag:"mstyle",atname:"fontfamily",atval:"sans-serif",output:"mathsf",tex:null,ttype:UNARY},{input:"bbb",tag:"mstyle",atname:"mathvariant",atval:"double-struck",output:"bbb",tex:null,ttype:UNARY,codes:AMbbb},{input:"mathbb",tag:"mstyle",atname:"mathvariant",atval:"double-struck",output:"mathbb",tex:null,ttype:UNARY,codes:AMbbb},{input:"cc",tag:"mstyle",atname:"mathvariant",atval:"script",output:"cc",tex:null,ttype:UNARY,codes:AMcal},{input:"mathcal",tag:"mstyle",atname:"mathvariant",atval:"script",output:"mathcal",tex:null,ttype:UNARY,codes:AMcal},{input:"tt",tag:"mstyle",atname:"fontfamily",atval:"monospace",output:"tt",tex:null,ttype:UNARY},{input:"mathtt",tag:"mstyle",atname:"fontfamily",atval:"monospace",output:"mathtt",tex:null,ttype:UNARY},{input:"fr",tag:"mstyle",atname:"mathvariant",atval:"fraktur",output:"fr",tex:null,ttype:UNARY,codes:AMfrk},{input:"mathfrak",tag:"mstyle",atname:"mathvariant",atval:"fraktur",output:"mathfrak",tex:null,ttype:UNARY,codes:AMfrk}];function compareNames(b,a){if(b.input>a.input){return 1}else{return -1}}var AMnames=[];function initSymbols(){var b=[],a;for(a=0;a<AMsymbols.length;a++){if(AMsymbols[a].tex){b[b.length]={input:AMsymbols[a].tex,tag:AMsymbols[a].tag,output:AMsymbols[a].output,ttype:AMsymbols[a].ttype}}}AMsymbols=AMsymbols.concat(b);refreshSymbols()}function refreshSymbols(){var a;AMsymbols.sort(compareNames);for(a=0;a<AMsymbols.length;a++){AMnames[a]=AMsymbols[a].input}LMsymbols.sort(compareNames);for(a=0;a<LMsymbols.length;a++){LMnames[a]=LMsymbols[a].input}}function define(b,a){if(b.substr(0,1)=="\\"){LMsymbols=LMsymbols.concat([{input:b,tag:"mo",output:a,ttype:DEFINITION}])}else{AMsymbols=AMsymbols.concat([{input:b,tag:"mo",output:a,tex:null,ttype:DEFINITION}])}refreshSymbols()}function AMremoveCharsAndBlanks(c,d){var a;if(c.charAt(d)=="\\"&&c.charAt(d+1)!="\\"&&c.charAt(d+1)!=" "){a=c.slice(d+1)}else{a=c.slice(d)}for(var b=0;b<a.length&&a.charCodeAt(b)<=32;b=b+1){}return a.slice(b)}function position(b,f,g){if(g==0){var d,a;g=-1;d=b.length;while(g+1<d){a=(g+d)>>1;if(b[a]<f){g=a}else{d=a}}return d}else{for(var c=g;c<b.length&&b[c]<f;c++){}}return c}function AMgetSymbol(h){var a=0;var b=0;var d;var m;var n;var f="";var g=true;for(var c=1;c<=h.length&&g;c++){m=h.slice(0,c);b=a;a=position(AMnames,m,b);if(a<AMnames.length&&h.slice(0,AMnames[a].length)==AMnames[a]){f=AMnames[a];d=a;c=f.length}g=a<AMnames.length&&h.slice(0,AMnames[a].length)>=AMnames[a]}AMpreviousSymbol=AMcurrentSymbol;if(f!=""){AMcurrentSymbol=AMsymbols[d].ttype;return AMsymbols[d]}AMcurrentSymbol=CONST;a=1;m=h.slice(0,1);var l=true;while("0"<=m&&m<="9"&&a<=h.length){m=h.slice(a,a+1);a++}if(m==decimalsign){m=h.slice(a,a+1);if("0"<=m&&m<="9"){l=false;a++;while("0"<=m&&m<="9"&&a<=h.length){m=h.slice(a,a+1);a++}}}if((l&&a>1)||a>2){m=h.slice(0,a-1);n="mn"}else{a=2;m=h.slice(0,1);n=(("A">m||m>"Z")&&("a">m||m>"z")?"mo":"mi")}if(m=="-"&&AMpreviousSymbol==INFIX){AMcurrentSymbol=INFIX;return{input:m,tag:n,output:m,ttype:UNARY,func:true}}return{input:m,tag:n,output:m,ttype:CONST}}function AMremoveBrackets(b){var a;if(b.nodeName=="mrow"){a=b.firstChild.firstChild.nodeValue;if(a=="("||a=="["||a=="{"){b.removeChild(b.firstChild)}}if(b.nodeName=="mrow"){a=b.lastChild.firstChild.nodeValue;if(a==")"||a=="]"||a=="}"){b.removeChild(b.lastChild)}}}var AMnestingDepth,AMpreviousSymbol,AMcurrentSymbol;function AMparseSexpr(h){var d,b,k,f,m,g=document.createDocumentFragment();h=AMremoveCharsAndBlanks(h,0);d=AMgetSymbol(h);if(d==null||d.ttype==RIGHTBRACKET&&AMnestingDepth>0){return[null,h]}if(d.ttype==DEFINITION){h=d.output+AMremoveCharsAndBlanks(h,d.input.length);d=AMgetSymbol(h)}switch(d.ttype){case UNDEROVER:case CONST:h=AMremoveCharsAndBlanks(h,d.input.length);return[createMmlNode(d.tag,document.createTextNode(d.output)),h];case LEFTBRACKET:AMnestingDepth++;h=AMremoveCharsAndBlanks(h,d.input.length);k=AMparseExpr(h,true);AMnestingDepth--;if(typeof d.invisible=="boolean"&&d.invisible){b=createMmlNode("mrow",k[0])}else{b=createMmlNode("mo",document.createTextNode(d.output));b=createMmlNode("mrow",b);b.appendChild(k[0])}return[b,k[1]];case TEXT:if(d!=AMquote){h=AMremoveCharsAndBlanks(h,d.input.length)}if(h.charAt(0)=="{"){f=h.indexOf("}")}else{if(h.charAt(0)=="("){f=h.indexOf(")")}else{if(h.charAt(0)=="["){f=h.indexOf("]")}else{if(d==AMquote){f=h.slice(1).indexOf('"')+1}else{f=0}}}}if(f==-1){f=h.length}m=h.slice(1,f);if(m.charAt(0)==" "){b=createMmlNode("mspace");b.setAttribute("width","1ex");g.appendChild(b)}g.appendChild(createMmlNode(d.tag,document.createTextNode(m)));if(m.charAt(m.length-1)==" "){b=createMmlNode("mspace");b.setAttribute("width","1ex");g.appendChild(b)}h=AMremoveCharsAndBlanks(h,f+1);return[createMmlNode("mrow",g),h];case UNARY:h=AMremoveCharsAndBlanks(h,d.input.length);k=AMparseSexpr(h);if(k[0]==null){return[createMmlNode(d.tag,document.createTextNode(d.output)),h]}if(typeof d.func=="boolean"&&d.func){m=h.charAt(0);if(m=="^"||m=="_"||m=="/"||m=="|"||m==","){return[createMmlNode(d.tag,document.createTextNode(d.output)),h]}else{b=createMmlNode("mrow",createMmlNode(d.tag,document.createTextNode(d.output)));b.appendChild(k[0]);return[b,k[1]]}}AMremoveBrackets(k[0]);if(d.input=="sqrt"){return[createMmlNode(d.tag,k[0]),k[1]]}else{if(typeof d.acc=="boolean"&&d.acc){b=createMmlNode(d.tag,k[0]);b.appendChild(createMmlNode("mo",document.createTextNode(d.output)));return[b,k[1]]}else{if(!isIE&&typeof d.codes!="undefined"){for(f=0;f<k[0].childNodes.length;f++){if(k[0].childNodes[f].nodeName=="mi"||k[0].nodeName=="mi"){m=(k[0].nodeName=="mi"?k[0].firstChild.nodeValue:k[0].childNodes[f].firstChild.nodeValue);var l=[];for(var c=0;c<m.length;c++){if(m.charCodeAt(c)>64&&m.charCodeAt(c)<91){l=l+String.fromCharCode(d.codes[m.charCodeAt(c)-65])}else{l=l+m.charAt(c)}}if(k[0].nodeName=="mi"){k[0]=createMmlNode("mo").appendChild(document.createTextNode(l))}else{k[0].replaceChild(createMmlNode("mo").appendChild(document.createTextNode(l)),k[0].childNodes[f])}}}}b=createMmlNode(d.tag,k[0]);b.setAttribute(d.atname,d.atval);return[b,k[1]]}}case BINARY:h=AMremoveCharsAndBlanks(h,d.input.length);k=AMparseSexpr(h);if(k[0]==null){return[createMmlNode("mo",document.createTextNode(d.input)),h]}AMremoveBrackets(k[0]);var a=AMparseSexpr(k[1]);if(a[0]==null){return[createMmlNode("mo",document.createTextNode(d.input)),h]}AMremoveBrackets(a[0]);if(d.input=="root"||d.input=="stackrel"){g.appendChild(a[0])}g.appendChild(k[0]);if(d.input=="frac"){g.appendChild(a[0])}return[createMmlNode(d.tag,g),a[1]];case INFIX:h=AMremoveCharsAndBlanks(h,d.input.length);return[createMmlNode("mo",document.createTextNode(d.output)),h];case SPACE:h=AMremoveCharsAndBlanks(h,d.input.length);b=createMmlNode("mspace");b.setAttribute("width","1ex");g.appendChild(b);g.appendChild(createMmlNode(d.tag,document.createTextNode(d.output)));b=createMmlNode("mspace");b.setAttribute("width","1ex");g.appendChild(b);return[createMmlNode("mrow",g),h];case LEFTRIGHT:AMnestingDepth++;h=AMremoveCharsAndBlanks(h,d.input.length);k=AMparseExpr(h,false);AMnestingDepth--;var m="";if(k[0].lastChild!=null){m=k[0].lastChild.firstChild.nodeValue}if(m=="|"){b=createMmlNode("mo",document.createTextNode(d.output));b=createMmlNode("mrow",b);b.appendChild(k[0]);return[b,k[1]]}else{b=createMmlNode("mo",document.createTextNode("\u2223"));b=createMmlNode("mrow",b);return[b,h]}default:h=AMremoveCharsAndBlanks(h,d.input.length);return[createMmlNode(d.tag,document.createTextNode(d.output)),h]}}function AMparseIexpr(h){var a,j,g,d,f,b;h=AMremoveCharsAndBlanks(h,0);j=AMgetSymbol(h);f=AMparseSexpr(h);d=f[0];h=f[1];a=AMgetSymbol(h);if(a.ttype==INFIX&&a.input!="/"){h=AMremoveCharsAndBlanks(h,a.input.length);f=AMparseSexpr(h);if(f[0]==null){f[0]=createMmlNode("mo",document.createTextNode("\u25A1"))}else{AMremoveBrackets(f[0])}h=f[1];if(a.input=="_"){g=AMgetSymbol(h);b=(j.ttype==UNDEROVER);if(g.input=="^"){h=AMremoveCharsAndBlanks(h,g.input.length);var c=AMparseSexpr(h);AMremoveBrackets(c[0]);h=c[1];d=createMmlNode((b?"munderover":"msubsup"),d);d.appendChild(f[0]);d.appendChild(c[0]);d=createMmlNode("mrow",d)}else{d=createMmlNode((b?"munder":"msub"),d);d.appendChild(f[0])}}else{d=createMmlNode(a.tag,d);d.appendChild(f[0])}}return[d,h]}function AMparseExpr(p,q){var x,o,a,t,z=[],g=document.createDocumentFragment();do{p=AMremoveCharsAndBlanks(p,0);a=AMparseIexpr(p);o=a[0];p=a[1];x=AMgetSymbol(p);if(x.ttype==INFIX&&x.input=="/"){p=AMremoveCharsAndBlanks(p,x.input.length);a=AMparseIexpr(p);if(a[0]==null){a[0]=createMmlNode("mo",document.createTextNode("\u25A1"))}else{AMremoveBrackets(a[0])}p=a[1];AMremoveBrackets(o);o=createMmlNode(x.tag,o);o.appendChild(a[0]);g.appendChild(o);x=AMgetSymbol(p)}else{if(o!=undefined){g.appendChild(o)}}}while((x.ttype!=RIGHTBRACKET&&(x.ttype!=LEFTRIGHT||q)||AMnestingDepth==0)&&x!=null&&x.output!="");if(x.ttype==RIGHTBRACKET||x.ttype==LEFTRIGHT){var v=g.childNodes.length;if(v>0&&g.childNodes[v-1].nodeName=="mrow"&&v>1&&g.childNodes[v-2].nodeName=="mo"&&g.childNodes[v-2].firstChild.nodeValue==","){var A=g.childNodes[v-1].lastChild.firstChild.nodeValue;if(A==")"||A=="]"){var c=g.childNodes[v-1].firstChild.firstChild.nodeValue;if(c=="("&&A==")"&&x.output!="}"||c=="["&&A=="]"){var d=[];var w=true;var l=g.childNodes.length;for(t=0;w&&t<l;t=t+2){d[t]=[];o=g.childNodes[t];if(w){w=o.nodeName=="mrow"&&(t==l-1||o.nextSibling.nodeName=="mo"&&o.nextSibling.firstChild.nodeValue==",")&&o.firstChild.firstChild.nodeValue==c&&o.lastChild.firstChild.nodeValue==A}if(w){for(var s=0;s<o.childNodes.length;s++){if(o.childNodes[s].firstChild.nodeValue==","){d[t][d[t].length]=s}}}if(w&&t>1){w=d[t].length==d[t-2].length}}if(w){var f,b,h,r,y=document.createDocumentFragment();for(t=0;t<l;t=t+2){f=document.createDocumentFragment();b=document.createDocumentFragment();o=g.firstChild;h=o.childNodes.length;r=0;o.removeChild(o.firstChild);for(s=1;s<h-1;s++){if(typeof d[t][r]!="undefined"&&s==d[t][r]){o.removeChild(o.firstChild);f.appendChild(createMmlNode("mtd",b));r++}else{b.appendChild(o.firstChild)}}f.appendChild(createMmlNode("mtd",b));if(g.childNodes.length>2){g.removeChild(g.firstChild);g.removeChild(g.firstChild)}y.appendChild(createMmlNode("mtr",f))}o=createMmlNode("mtable",y);if(typeof x.invisible=="boolean"&&x.invisible){o.setAttribute("columnalign","left")}g.replaceChild(o,g.firstChild)}}}}p=AMremoveCharsAndBlanks(p,x.input.length);if(typeof x.invisible!="boolean"||!x.invisible){o=createMmlNode("mo",document.createTextNode(x.output));g.appendChild(o)}}return[g,p]}function parseMath(c,b){var d,a;AMnestingDepth=0;d=b?LMparseExpr(c.replace(/^\s+/g,""),false,false)[0]:AMparseExpr(c.replace(/^\s+/g,""),false)[0];a=createMmlNode("mstyle",d);a.setAttribute("mathcolor",mathcolor);a.setAttribute("fontfamily",mathfontfamily);a.setAttribute("mathsize",mathfontsize);if(displaystyle){a.setAttribute("displaystyle","true")}a=createMmlNode("math",a);if(showasciiformulaonhover){a.setAttribute("title",c.replace(/\s+/g," "))}return a}function strarr2docFrag(a,d,g){var k=document.createDocumentFragment();var h=false;for(var f=0;f<a.length;f++){if(h){k.appendChild(parseMath(a[f],g))}else{var b=(d?a[f].split("\n\n"):[a[f]]);k.appendChild(createElementXHTML("span").appendChild(document.createTextNode(b[0])));for(var c=1;c<b.length;c++){k.appendChild(createElementXHTML("p"));k.appendChild(createElementXHTML("span").appendChild(document.createTextNode(b[c])))}}h=!h}return k}function AMautomathrec(m){var b="\\\\[a-zA-Z]+|\\\\\\s|";var k="\\b(?:oo|lim|ln|int|oint|del|grad|aleph|prod|prop|sinh|cosh|tanh|cos|sec|pi|tt|fr|sf|sube|supe|sub|sup|det|mod|gcd|lcm|min|max|vec|ddot|ul|chi|eta|nu|mu)(?![a-z])|";var l="\\b(?:sum|ox|log|sin|tan|dim|hat|bar|dot)(?![a-z])|";var g="|\\bI\\b|\\bin\\b|\\btext\\b";var a="NN|ZZ|QQ|RR|CC|TT|AA|EE|sqrt|dx|dy|dz|dt|xx|vv|uu|nn|bb|cc|csc|cot|alpha|beta|delta|Delta|epsilon|gamma|Gamma|kappa|lambda|Lambda|omega|phi|Phi|Pi|psi|Psi|rho|sigma|Sigma|tau|theta|Theta|xi|Xi|zeta";var j="[a-zA-HJ-Z](?=(?:[^a-zA-Z]|$|"+k+l+a+"))|";var c=j+b+"\\d+|[-()[\\]{}+=*&^_%\\@/<>,\\|!:;'~]|\\.(?!(?:\x20|$))|"+k+l+a;var n=new RegExp("(^|\\s)((("+c+")\\s?)(("+c+g+")\\s?)+)([,.?]?(?=\\s|$))","g");m=m.replace(n," `$2`$7");var f=m.split(AMdelimiter1);var h=new RegExp("(^|\\s)([b-zB-HJ-Z+*<>]|"+b+k+a+")(\\s|\\n|$)","g");var d=new RegExp("(^|\\s)([a-z]|"+b+k+a+")([,.])","g");for(i=0;i<f.length;i++){if(i%2==0){f[i]=f[i].replace(h," `$2`$3");f[i]=f[i].replace(d," `$2`$3");f[i]=f[i].replace(/([{}[\]])/,"`$1`")}}m=f.join(AMdelimiter1);m=m.replace(/((^|\s)\([a-zA-Z]{2,}.*?)\)`/g,"$1`)");m=m.replace(/`(\((a\s|in\s))(.*?[a-zA-Z]{2,}\))/g,"$1`$3");m=m.replace(/\sin`/g,"` in");m=m.replace(/`(\(\w\)[,.]?(\s|\n|$))/g,"$1`");m=m.replace(/`([0-9.]+|e.g|i.e)`(\.?)/gi,"$1$2");m=m.replace(/`([0-9.]+:)`/g,"$1");return m}function processNodeR(c,h,b){var k,j,f,a,d;if(c.childNodes.length==0){if((c.nodeType!=8||h)&&c.parentNode.nodeName!="form"&&c.parentNode.nodeName!="FORM"&&c.parentNode.nodeName!="textarea"&&c.parentNode.nodeName!="TEXTAREA"){j=c.nodeValue;if(!(j==null)){j=j.replace(/\r\n\r\n/g,"\n\n");j=j.replace(/\x20+/g," ");j=j.replace(/\s*\r\n/g," ");if(b){k=(j.indexOf("$")==-1?false:true);j=j.replace(/([^\\])\$/g,"$1 $");j=j.replace(/^\$/," $");f=j.split(" $");for(d=0;d<f.length;d++){f[d]=f[d].replace(/\\\$/g,"$")}}else{k=false;j=j.replace(new RegExp(AMescape1,"g"),function(){k=true;return"AMescape1"});j=j.replace(/\\?end{?a?math}?/i,function(){automathrecognize=false;k=true;return""});j=j.replace(/amath\b|\\begin{a?math}/i,function(){automathrecognize=true;k=true;return""});f=j.split(AMdelimiter1);if(automathrecognize){for(d=0;d<f.length;d++){if(d%2==0){f[d]=AMautomathrec(f[d])}}}j=f.join(AMdelimiter1);f=j.split(AMdelimiter1);for(d=0;d<f.length;d++){f[d]=f[d].replace(/AMescape1/g,AMdelimiter1)}}if(f.length>1||k){if(!noMathML){a=strarr2docFrag(f,c.nodeType==8,b);var g=a.childNodes.length;c.parentNode.replaceChild(a,c);return g-1}else{return 0}}}}else{return 0}}else{if(c.nodeName!="math"){for(d=0;d<c.childNodes.length;d++){d+=processNodeR(c.childNodes[d],h,b)}}}return 0}function AMprocessNode(h,c,a){var g,b;if(a!=null){g=document.getElementsByTagName("span");for(var d=0;d<g.length;d++){if(g[d].className=="AM"){processNodeR(g[d],c,false)}}}else{try{b=h.innerHTML}catch(f){}if(b==null||/amath\b|\\begin{a?math}/i.test(b)||b.indexOf(AMdelimiter1+" ")!=-1||b.slice(-1)==AMdelimiter1||b.indexOf(AMdelimiter1+"<")!=-1||b.indexOf(AMdelimiter1+"\n")!=-1){processNodeR(h,c,false)}}}var LMsymbols=[{input:"\\alpha",tag:"mi",output:"\u03B1",ttype:CONST},{input:"\\beta",tag:"mi",output:"\u03B2",ttype:CONST},{input:"\\gamma",tag:"mi",output:"\u03B3",ttype:CONST},{input:"\\delta",tag:"mi",output:"\u03B4",ttype:CONST},{input:"\\epsilon",tag:"mi",output:"\u03B5",ttype:CONST},{input:"\\varepsilon",tag:"mi",output:"\u025B",ttype:CONST},{input:"\\zeta",tag:"mi",output:"\u03B6",ttype:CONST},{input:"\\eta",tag:"mi",output:"\u03B7",ttype:CONST},{input:"\\theta",tag:"mi",output:"\u03B8",ttype:CONST},{input:"\\vartheta",tag:"mi",output:"\u03D1",ttype:CONST},{input:"\\iota",tag:"mi",output:"\u03B9",ttype:CONST},{input:"\\kappa",tag:"mi",output:"\u03BA",ttype:CONST},{input:"\\lambda",tag:"mi",output:"\u03BB",ttype:CONST},{input:"\\mu",tag:"mi",output:"\u03BC",ttype:CONST},{input:"\\nu",tag:"mi",output:"\u03BD",ttype:CONST},{input:"\\xi",tag:"mi",output:"\u03BE",ttype:CONST},{input:"\\pi",tag:"mi",output:"\u03C0",ttype:CONST},{input:"\\varpi",tag:"mi",output:"\u03D6",ttype:CONST},{input:"\\rho",tag:"mi",output:"\u03C1",ttype:CONST},{input:"\\varrho",tag:"mi",output:"\u03F1",ttype:CONST},{input:"\\varsigma",tag:"mi",output:"\u03C2",ttype:CONST},{input:"\\sigma",tag:"mi",output:"\u03C3",ttype:CONST},{input:"\\tau",tag:"mi",output:"\u03C4",ttype:CONST},{input:"\\upsilon",tag:"mi",output:"\u03C5",ttype:CONST},{input:"\\phi",tag:"mi",output:"\u03C6",ttype:CONST},{input:"\\varphi",tag:"mi",output:"\u03D5",ttype:CONST},{input:"\\chi",tag:"mi",output:"\u03C7",ttype:CONST},{input:"\\psi",tag:"mi",output:"\u03C8",ttype:CONST},{input:"\\omega",tag:"mi",output:"\u03C9",ttype:CONST},{input:"\\Gamma",tag:"mo",output:"\u0393",ttype:CONST},{input:"\\Delta",tag:"mo",output:"\u0394",ttype:CONST},{input:"\\Theta",tag:"mo",output:"\u0398",ttype:CONST},{input:"\\Lambda",tag:"mo",output:"\u039B",ttype:CONST},{input:"\\Xi",tag:"mo",output:"\u039E",ttype:CONST},{input:"\\Pi",tag:"mo",output:"\u03A0",ttype:CONST},{input:"\\Sigma",tag:"mo",output:"\u03A3",ttype:CONST},{input:"\\Upsilon",tag:"mo",output:"\u03A5",ttype:CONST},{input:"\\Phi",tag:"mo",output:"\u03A6",ttype:CONST},{input:"\\Psi",tag:"mo",output:"\u03A8",ttype:CONST},{input:"\\Omega",tag:"mo",output:"\u03A9",ttype:CONST},{input:"\\frac12",tag:"mo",output:"\u00BD",ttype:CONST},{input:"\\frac14",tag:"mo",output:"\u00BC",ttype:CONST},{input:"\\frac34",tag:"mo",output:"\u00BE",ttype:CONST},{input:"\\frac13",tag:"mo",output:"\u2153",ttype:CONST},{input:"\\frac23",tag:"mo",output:"\u2154",ttype:CONST},{input:"\\frac15",tag:"mo",output:"\u2155",ttype:CONST},{input:"\\frac25",tag:"mo",output:"\u2156",ttype:CONST},{input:"\\frac35",tag:"mo",output:"\u2157",ttype:CONST},{input:"\\frac45",tag:"mo",output:"\u2158",ttype:CONST},{input:"\\frac16",tag:"mo",output:"\u2159",ttype:CONST},{input:"\\frac56",tag:"mo",output:"\u215A",ttype:CONST},{input:"\\frac18",tag:"mo",output:"\u215B",ttype:CONST},{input:"\\frac38",tag:"mo",output:"\u215C",ttype:CONST},{input:"\\frac58",tag:"mo",output:"\u215D",ttype:CONST},{input:"\\frac78",tag:"mo",output:"\u215E",ttype:CONST},{input:"\\pm",tag:"mo",output:"\u00B1",ttype:CONST},{input:"\\mp",tag:"mo",output:"\u2213",ttype:CONST},{input:"\\triangleleft",tag:"mo",output:"\u22B2",ttype:CONST},{input:"\\triangleright",tag:"mo",output:"\u22B3",ttype:CONST},{input:"\\cdot",tag:"mo",output:"\u22C5",ttype:CONST},{input:"\\star",tag:"mo",output:"\u22C6",ttype:CONST},{input:"\\ast",tag:"mo",output:"\u002A",ttype:CONST},{input:"\\times",tag:"mo",output:"\u00D7",ttype:CONST},{input:"\\div",tag:"mo",output:"\u00F7",ttype:CONST},{input:"\\circ",tag:"mo",output:"\u2218",ttype:CONST},{input:"\\bullet",tag:"mo",output:"\u2022",ttype:CONST},{input:"\\oplus",tag:"mo",output:"\u2295",ttype:CONST},{input:"\\ominus",tag:"mo",output:"\u2296",ttype:CONST},{input:"\\otimes",tag:"mo",output:"\u2297",ttype:CONST},{input:"\\bigcirc",tag:"mo",output:"\u25CB",ttype:CONST},{input:"\\oslash",tag:"mo",output:"\u2298",ttype:CONST},{input:"\\odot",tag:"mo",output:"\u2299",ttype:CONST},{input:"\\land",tag:"mo",output:"\u2227",ttype:CONST},{input:"\\wedge",tag:"mo",output:"\u2227",ttype:CONST},{input:"\\lor",tag:"mo",output:"\u2228",ttype:CONST},{input:"\\vee",tag:"mo",output:"\u2228",ttype:CONST},{input:"\\cap",tag:"mo",output:"\u2229",ttype:CONST},{input:"\\cup",tag:"mo",output:"\u222A",ttype:CONST},{input:"\\sqcap",tag:"mo",output:"\u2293",ttype:CONST},{input:"\\sqcup",tag:"mo",output:"\u2294",ttype:CONST},{input:"\\uplus",tag:"mo",output:"\u228E",ttype:CONST},{input:"\\amalg",tag:"mo",output:"\u2210",ttype:CONST},{input:"\\bigtriangleup",tag:"mo",output:"\u25B3",ttype:CONST},{input:"\\bigtriangledown",tag:"mo",output:"\u25BD",ttype:CONST},{input:"\\dag",tag:"mo",output:"\u2020",ttype:CONST},{input:"\\dagger",tag:"mo",output:"\u2020",ttype:CONST},{input:"\\ddag",tag:"mo",output:"\u2021",ttype:CONST},{input:"\\ddagger",tag:"mo",output:"\u2021",ttype:CONST},{input:"\\lhd",tag:"mo",output:"\u22B2",ttype:CONST},{input:"\\rhd",tag:"mo",output:"\u22B3",ttype:CONST},{input:"\\unlhd",tag:"mo",output:"\u22B4",ttype:CONST},{input:"\\unrhd",tag:"mo",output:"\u22B5",ttype:CONST},{input:"\\sum",tag:"mo",output:"\u2211",ttype:UNDEROVER},{input:"\\prod",tag:"mo",output:"\u220F",ttype:UNDEROVER},{input:"\\bigcap",tag:"mo",output:"\u22C2",ttype:UNDEROVER},{input:"\\bigcup",tag:"mo",output:"\u22C3",ttype:UNDEROVER},{input:"\\bigwedge",tag:"mo",output:"\u22C0",ttype:UNDEROVER},{input:"\\bigvee",tag:"mo",output:"\u22C1",ttype:UNDEROVER},{input:"\\bigsqcap",tag:"mo",output:"\u2A05",ttype:UNDEROVER},{input:"\\bigsqcup",tag:"mo",output:"\u2A06",ttype:UNDEROVER},{input:"\\coprod",tag:"mo",output:"\u2210",ttype:UNDEROVER},{input:"\\bigoplus",tag:"mo",output:"\u2A01",ttype:UNDEROVER},{input:"\\bigotimes",tag:"mo",output:"\u2A02",ttype:UNDEROVER},{input:"\\bigodot",tag:"mo",output:"\u2A00",ttype:UNDEROVER},{input:"\\biguplus",tag:"mo",output:"\u2A04",ttype:UNDEROVER},{input:"\\int",tag:"mo",output:"\u222B",ttype:CONST},{input:"\\oint",tag:"mo",output:"\u222E",ttype:CONST},{input:":=",tag:"mo",output:":=",ttype:CONST},{input:"\\lt",tag:"mo",output:"<",ttype:CONST},{input:"\\gt",tag:"mo",output:">",ttype:CONST},{input:"\\ne",tag:"mo",output:"\u2260",ttype:CONST},{input:"\\neq",tag:"mo",output:"\u2260",ttype:CONST},{input:"\\le",tag:"mo",output:"\u2264",ttype:CONST},{input:"\\leq",tag:"mo",output:"\u2264",ttype:CONST},{input:"\\leqslant",tag:"mo",output:"\u2264",ttype:CONST},{input:"\\ge",tag:"mo",output:"\u2265",ttype:CONST},{input:"\\geq",tag:"mo",output:"\u2265",ttype:CONST},{input:"\\geqslant",tag:"mo",output:"\u2265",ttype:CONST},{input:"\\equiv",tag:"mo",output:"\u2261",ttype:CONST},{input:"\\ll",tag:"mo",output:"\u226A",ttype:CONST},{input:"\\gg",tag:"mo",output:"\u226B",ttype:CONST},{input:"\\doteq",tag:"mo",output:"\u2250",ttype:CONST},{input:"\\prec",tag:"mo",output:"\u227A",ttype:CONST},{input:"\\succ",tag:"mo",output:"\u227B",ttype:CONST},{input:"\\preceq",tag:"mo",output:"\u227C",ttype:CONST},{input:"\\succeq",tag:"mo",output:"\u227D",ttype:CONST},{input:"\\subset",tag:"mo",output:"\u2282",ttype:CONST},{input:"\\supset",tag:"mo",output:"\u2283",ttype:CONST},{input:"\\subseteq",tag:"mo",output:"\u2286",ttype:CONST},{input:"\\supseteq",tag:"mo",output:"\u2287",ttype:CONST},{input:"\\sqsubset",tag:"mo",output:"\u228F",ttype:CONST},{input:"\\sqsupset",tag:"mo",output:"\u2290",ttype:CONST},{input:"\\sqsubseteq",tag:"mo",output:"\u2291",ttype:CONST},{input:"\\sqsupseteq",tag:"mo",output:"\u2292",ttype:CONST},{input:"\\sim",tag:"mo",output:"\u223C",ttype:CONST},{input:"\\simeq",tag:"mo",output:"\u2243",ttype:CONST},{input:"\\approx",tag:"mo",output:"\u2248",ttype:CONST},{input:"\\cong",tag:"mo",output:"\u2245",ttype:CONST},{input:"\\Join",tag:"mo",output:"\u22C8",ttype:CONST},{input:"\\bowtie",tag:"mo",output:"\u22C8",ttype:CONST},{input:"\\in",tag:"mo",output:"\u2208",ttype:CONST},{input:"\\ni",tag:"mo",output:"\u220B",ttype:CONST},{input:"\\owns",tag:"mo",output:"\u220B",ttype:CONST},{input:"\\propto",tag:"mo",output:"\u221D",ttype:CONST},{input:"\\vdash",tag:"mo",output:"\u22A2",ttype:CONST},{input:"\\dashv",tag:"mo",output:"\u22A3",ttype:CONST},{input:"\\models",tag:"mo",output:"\u22A8",ttype:CONST},{input:"\\perp",tag:"mo",output:"\u22A5",ttype:CONST},{input:"\\smile",tag:"mo",output:"\u2323",ttype:CONST},{input:"\\frown",tag:"mo",output:"\u2322",ttype:CONST},{input:"\\asymp",tag:"mo",output:"\u224D",ttype:CONST},{input:"\\notin",tag:"mo",output:"\u2209",ttype:CONST},{input:"\\begin{eqnarray}",output:"X",ttype:MATRIX,invisible:true},{input:"\\begin{array}",output:"X",ttype:MATRIX,invisible:true},{input:"\\\\",output:"}&{",ttype:DEFINITION},{input:"\\end{eqnarray}",output:"}}",ttype:DEFINITION},{input:"\\end{array}",output:"}}",ttype:DEFINITION},{input:"\\big",tag:"mo",output:"X",atval:"1.2",ieval:"2.2",ttype:BIG},{input:"\\Big",tag:"mo",output:"X",atval:"1.6",ieval:"2.6",ttype:BIG},{input:"\\bigg",tag:"mo",output:"X",atval:"2.2",ieval:"3.2",ttype:BIG},{input:"\\Bigg",tag:"mo",output:"X",atval:"2.9",ieval:"3.9",ttype:BIG},{input:"\\left",tag:"mo",output:"X",ttype:LEFTBRACKET},{input:"\\right",tag:"mo",output:"X",ttype:RIGHTBRACKET},{input:"{",output:"{",ttype:LEFTBRACKET,invisible:true},{input:"}",output:"}",ttype:RIGHTBRACKET,invisible:true},{input:"(",tag:"mo",output:"(",atval:"1",ttype:STRETCHY},{input:"[",tag:"mo",output:"[",atval:"1",ttype:STRETCHY},{input:"\\lbrack",tag:"mo",output:"[",atval:"1",ttype:STRETCHY},{input:"\\{",tag:"mo",output:"{",atval:"1",ttype:STRETCHY},{input:"\\lbrace",tag:"mo",output:"{",atval:"1",ttype:STRETCHY},{input:"\\langle",tag:"mo",output:"\u2329",atval:"1",ttype:STRETCHY},{input:"\\lfloor",tag:"mo",output:"\u230A",atval:"1",ttype:STRETCHY},{input:"\\lceil",tag:"mo",output:"\u2308",atval:"1",ttype:STRETCHY},{input:")",tag:"mo",output:")",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"]",tag:"mo",output:"]",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"\\rbrack",tag:"mo",output:"]",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"\\}",tag:"mo",output:"}",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"\\rbrace",tag:"mo",output:"}",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"\\rangle",tag:"mo",output:"\u232A",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"\\rfloor",tag:"mo",output:"\u230B",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"\\rceil",tag:"mo",output:"\u2309",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"|",tag:"mo",output:"\u2223",atval:"1",ttype:STRETCHY},{input:"\\|",tag:"mo",output:"\u2225",atval:"1",ttype:STRETCHY},{input:"\\vert",tag:"mo",output:"\u2223",atval:"1",ttype:STRETCHY},{input:"\\Vert",tag:"mo",output:"\u2225",atval:"1",ttype:STRETCHY},{input:"\\mid",tag:"mo",output:"\u2223",atval:"1",ttype:STRETCHY},{input:"\\parallel",tag:"mo",output:"\u2225",atval:"1",ttype:STRETCHY},{input:"/",tag:"mo",output:"/",atval:"1.01",ttype:STRETCHY},{input:"\\backslash",tag:"mo",output:"\u2216",atval:"1",ttype:STRETCHY},{input:"\\setminus",tag:"mo",output:"\\",ttype:CONST},{input:"\\!",tag:"mspace",atname:"width",atval:"-0.167em",ttype:SPACE},{input:"\\,",tag:"mspace",atname:"width",atval:"0.167em",ttype:SPACE},{input:"\\>",tag:"mspace",atname:"width",atval:"0.222em",ttype:SPACE},{input:"\\:",tag:"mspace",atname:"width",atval:"0.222em",ttype:SPACE},{input:"\\;",tag:"mspace",atname:"width",atval:"0.278em",ttype:SPACE},{input:"~",tag:"mspace",atname:"width",atval:"0.333em",ttype:SPACE},{input:"\\quad",tag:"mspace",atname:"width",atval:"1em",ttype:SPACE},{input:"\\qquad",tag:"mspace",atname:"width",atval:"2em",ttype:SPACE},{input:"\\prime",tag:"mo",output:"\u2032",ttype:CONST},{input:"'",tag:"mo",output:"\u02B9",ttype:CONST},{input:"''",tag:"mo",output:"\u02BA",ttype:CONST},{input:"'''",tag:"mo",output:"\u2034",ttype:CONST},{input:"''''",tag:"mo",output:"\u2057",ttype:CONST},{input:"\\ldots",tag:"mo",output:"\u2026",ttype:CONST},{input:"\\cdots",tag:"mo",output:"\u22EF",ttype:CONST},{input:"\\vdots",tag:"mo",output:"\u22EE",ttype:CONST},{input:"\\ddots",tag:"mo",output:"\u22F1",ttype:CONST},{input:"\\forall",tag:"mo",output:"\u2200",ttype:CONST},{input:"\\exists",tag:"mo",output:"\u2203",ttype:CONST},{input:"\\Re",tag:"mo",output:"\u211C",ttype:CONST},{input:"\\Im",tag:"mo",output:"\u2111",ttype:CONST},{input:"\\aleph",tag:"mo",output:"\u2135",ttype:CONST},{input:"\\hbar",tag:"mo",output:"\u210F",ttype:CONST},{input:"\\ell",tag:"mo",output:"\u2113",ttype:CONST},{input:"\\wp",tag:"mo",output:"\u2118",ttype:CONST},{input:"\\emptyset",tag:"mo",output:"\u2205",ttype:CONST},{input:"\\infty",tag:"mo",output:"\u221E",ttype:CONST},{input:"\\surd",tag:"mo",output:"\\sqrt{}",ttype:DEFINITION},{input:"\\partial",tag:"mo",output:"\u2202",ttype:CONST},{input:"\\nabla",tag:"mo",output:"\u2207",ttype:CONST},{input:"\\triangle",tag:"mo",output:"\u25B3",ttype:CONST},{input:"\\therefore",tag:"mo",output:"\u2234",ttype:CONST},{input:"\\angle",tag:"mo",output:"\u2220",ttype:CONST},{input:"\\diamond",tag:"mo",output:"\u22C4",ttype:CONST},{input:"\\Diamond",tag:"mo",output:"\u25C7",ttype:CONST},{input:"\\neg",tag:"mo",output:"\u00AC",ttype:CONST},{input:"\\lnot",tag:"mo",output:"\u00AC",ttype:CONST},{input:"\\bot",tag:"mo",output:"\u22A5",ttype:CONST},{input:"\\top",tag:"mo",output:"\u22A4",ttype:CONST},{input:"\\square",tag:"mo",output:"\u25AB",ttype:CONST},{input:"\\Box",tag:"mo",output:"\u25A1",ttype:CONST},{input:"\\wr",tag:"mo",output:"\u2240",ttype:CONST},{input:"\\arccos",tag:"mi",output:"arccos",ttype:UNARY,func:true},{input:"\\arcsin",tag:"mi",output:"arcsin",ttype:UNARY,func:true},{input:"\\arctan",tag:"mi",output:"arctan",ttype:UNARY,func:true},{input:"\\arg",tag:"mi",output:"arg",ttype:UNARY,func:true},{input:"\\cos",tag:"mi",output:"cos",ttype:UNARY,func:true},{input:"\\cosh",tag:"mi",output:"cosh",ttype:UNARY,func:true},{input:"\\cot",tag:"mi",output:"cot",ttype:UNARY,func:true},{input:"\\coth",tag:"mi",output:"coth",ttype:UNARY,func:true},{input:"\\csc",tag:"mi",output:"csc",ttype:UNARY,func:true},{input:"\\deg",tag:"mi",output:"deg",ttype:UNARY,func:true},{input:"\\det",tag:"mi",output:"det",ttype:UNARY,func:true},{input:"\\dim",tag:"mi",output:"dim",ttype:UNARY,func:true},{input:"\\exp",tag:"mi",output:"exp",ttype:UNARY,func:true},{input:"\\gcd",tag:"mi",output:"gcd",ttype:UNARY,func:true},{input:"\\hom",tag:"mi",output:"hom",ttype:UNARY,func:true},{input:"\\inf",tag:"mo",output:"inf",ttype:UNDEROVER},{input:"\\ker",tag:"mi",output:"ker",ttype:UNARY,func:true},{input:"\\lg",tag:"mi",output:"lg",ttype:UNARY,func:true},{input:"\\lim",tag:"mo",output:"lim",ttype:UNDEROVER},{input:"\\liminf",tag:"mo",output:"liminf",ttype:UNDEROVER},{input:"\\limsup",tag:"mo",output:"limsup",ttype:UNDEROVER},{input:"\\ln",tag:"mi",output:"ln",ttype:UNARY,func:true},{input:"\\log",tag:"mi",output:"log",ttype:UNARY,func:true},{input:"\\max",tag:"mo",output:"max",ttype:UNDEROVER},{input:"\\min",tag:"mo",output:"min",ttype:UNDEROVER},{input:"\\Pr",tag:"mi",output:"Pr",ttype:UNARY,func:true},{input:"\\sec",tag:"mi",output:"sec",ttype:UNARY,func:true},{input:"\\sin",tag:"mi",output:"sin",ttype:UNARY,func:true},{input:"\\sinh",tag:"mi",output:"sinh",ttype:UNARY,func:true},{input:"\\sup",tag:"mo",output:"sup",ttype:UNDEROVER},{input:"\\tan",tag:"mi",output:"tan",ttype:UNARY,func:true},{input:"\\tanh",tag:"mi",output:"tanh",ttype:UNARY,func:true},{input:"\\gets",tag:"mo",output:"\u2190",ttype:CONST},{input:"\\leftarrow",tag:"mo",output:"\u2190",ttype:CONST},{input:"\\to",tag:"mo",output:"\u2192",ttype:CONST},{input:"\\rightarrow",tag:"mo",output:"\u2192",ttype:CONST},{input:"\\leftrightarrow",tag:"mo",output:"\u2194",ttype:CONST},{input:"\\uparrow",tag:"mo",output:"\u2191",ttype:CONST},{input:"\\downarrow",tag:"mo",output:"\u2193",ttype:CONST},{input:"\\updownarrow",tag:"mo",output:"\u2195",ttype:CONST},{input:"\\Leftarrow",tag:"mo",output:"\u21D0",ttype:CONST},{input:"\\Rightarrow",tag:"mo",output:"\u21D2",ttype:CONST},{input:"\\Leftrightarrow",tag:"mo",output:"\u21D4",ttype:CONST},{input:"\\iff",tag:"mo",output:"~\\Longleftrightarrow~",ttype:DEFINITION},{input:"\\Uparrow",tag:"mo",output:"\u21D1",ttype:CONST},{input:"\\Downarrow",tag:"mo",output:"\u21D3",ttype:CONST},{input:"\\Updownarrow",tag:"mo",output:"\u21D5",ttype:CONST},{input:"\\mapsto",tag:"mo",output:"\u21A6",ttype:CONST},{input:"\\longleftarrow",tag:"mo",output:"\u2190",ttype:LONG},{input:"\\longrightarrow",tag:"mo",output:"\u2192",ttype:LONG},{input:"\\longleftrightarrow",tag:"mo",output:"\u2194",ttype:LONG},{input:"\\Longleftarrow",tag:"mo",output:"\u21D0",ttype:LONG},{input:"\\Longrightarrow",tag:"mo",output:"\u21D2",ttype:LONG},{input:"\\implies",tag:"mo",output:"\u21D2",ttype:LONG},{input:"\\Longleftrightarrow",tag:"mo",output:"\u21D4",ttype:LONG},{input:"\\longmapsto",tag:"mo",output:"\u21A6",ttype:CONST},{input:"\\sqrt",tag:"msqrt",output:"sqrt",ttype:UNARY},{input:"\\root",tag:"mroot",output:"root",ttype:BINARY},{input:"\\frac",tag:"mfrac",output:"/",ttype:BINARY},{input:"\\stackrel",tag:"mover",output:"stackrel",ttype:BINARY},{input:"\\atop",tag:"mfrac",output:"",ttype:INFIX},{input:"\\choose",tag:"mfrac",output:"",ttype:INFIX},{input:"_",tag:"msub",output:"_",ttype:INFIX},{input:"^",tag:"msup",output:"^",ttype:INFIX},{input:"\\mathrm",tag:"mtext",output:"text",ttype:TEXT},{input:"\\mbox",tag:"mtext",output:"mbox",ttype:TEXT},{input:"\\acute",tag:"mover",output:"\u00B4",ttype:UNARY,acc:true},{input:"\\grave",tag:"mover",output:"\u0060",ttype:UNARY,acc:true},{input:"\\breve",tag:"mover",output:"\u02D8",ttype:UNARY,acc:true},{input:"\\check",tag:"mover",output:"\u02C7",ttype:UNARY,acc:true},{input:"\\dot",tag:"mover",output:".",ttype:UNARY,acc:true},{input:"\\ddot",tag:"mover",output:"..",ttype:UNARY,acc:true},{input:"\\mathring",tag:"mover",output:"\u00B0",ttype:UNARY,acc:true},{input:"\\vec",tag:"mover",output:"\u20D7",ttype:UNARY,acc:true},{input:"\\overrightarrow",tag:"mover",output:"\u20D7",ttype:UNARY,acc:true},{input:"\\overleftarrow",tag:"mover",output:"\u20D6",ttype:UNARY,acc:true},{input:"\\hat",tag:"mover",output:"\u005E",ttype:UNARY,acc:true},{input:"\\widehat",tag:"mover",output:"\u0302",ttype:UNARY,acc:true},{input:"\\tilde",tag:"mover",output:"~",ttype:UNARY,acc:true},{input:"\\widetilde",tag:"mover",output:"\u02DC",ttype:UNARY,acc:true},{input:"\\bar",tag:"mover",output:"\u203E",ttype:UNARY,acc:true},{input:"\\overbrace",tag:"mover",output:"\u23B4",ttype:UNARY,acc:true},{input:"\\overline",tag:"mover",output:"\u00AF",ttype:UNARY,acc:true},{input:"\\underbrace",tag:"munder",output:"\u23B5",ttype:UNARY,acc:true},{input:"\\underline",tag:"munder",output:"\u00AF",ttype:UNARY,acc:true},{input:"\\displaystyle",tag:"mstyle",atname:"displaystyle",atval:"true",ttype:UNARY},{input:"\\textstyle",tag:"mstyle",atname:"displaystyle",atval:"false",ttype:UNARY},{input:"\\scriptstyle",tag:"mstyle",atname:"scriptlevel",atval:"1",ttype:UNARY},{input:"\\scriptscriptstyle",tag:"mstyle",atname:"scriptlevel",atval:"2",ttype:UNARY},{input:"\\textrm",tag:"mstyle",output:"\\mathrm",ttype:DEFINITION},{input:"\\mathbf",tag:"mstyle",atname:"mathvariant",atval:"bold",ttype:UNARY},{input:"\\textbf",tag:"mstyle",atname:"mathvariant",atval:"bold",ttype:UNARY},{input:"\\mathit",tag:"mstyle",atname:"mathvariant",atval:"italic",ttype:UNARY},{input:"\\textit",tag:"mstyle",atname:"mathvariant",atval:"italic",ttype:UNARY},{input:"\\mathtt",tag:"mstyle",atname:"mathvariant",atval:"monospace",ttype:UNARY},{input:"\\texttt",tag:"mstyle",atname:"mathvariant",atval:"monospace",ttype:UNARY},{input:"\\mathsf",tag:"mstyle",atname:"mathvariant",atval:"sans-serif",ttype:UNARY},{input:"\\mathbb",tag:"mstyle",atname:"mathvariant",atval:"double-struck",ttype:UNARY,codes:AMbbb},{input:"\\mathcal",tag:"mstyle",atname:"mathvariant",atval:"script",ttype:UNARY,codes:AMcal},{input:"\\mathfrak",tag:"mstyle",atname:"mathvariant",atval:"fraktur",ttype:UNARY,codes:AMfrk}];var LMnames=[];function LMremoveCharsAndBlanks(c,d){var a;a=c.slice(d);for(var b=0;b<a.length&&a.charCodeAt(b)<=32;b=b+1){}return a.slice(b)}function LMgetSymbol(h){var a=0;var b=0;var d;var l;var m;var f="";var g=true;for(var c=1;c<=h.length&&g;c++){l=h.slice(0,c);b=a;a=position(LMnames,l,b);if(a<LMnames.length&&h.slice(0,LMnames[a].length)==LMnames[a]){f=LMnames[a];d=a;c=f.length}g=a<LMnames.length&&h.slice(0,LMnames[a].length)>=LMnames[a]}LMpreviousSymbol=LMcurrentSymbol;if(f!=""){LMcurrentSymbol=LMsymbols[d].ttype;return LMsymbols[d]}LMcurrentSymbol=CONST;a=1;l=h.slice(0,1);if("0"<=l&&l<="9"){m="mn"}else{m=(("A">l||l>"Z")&&("a">l||l>"z")?"mo":"mi")}return{input:l,tag:m,output:l,ttype:CONST}}var LMpreviousSymbol,LMcurrentSymbol;function LMparseSexpr(n){var t,m,d,a,r,o,l=document.createDocumentFragment();n=LMremoveCharsAndBlanks(n,0);t=LMgetSymbol(n);if(t==null||t.ttype==RIGHTBRACKET){return[null,n,null]}if(t.ttype==DEFINITION){n=t.output+LMremoveCharsAndBlanks(n,t.input.length);t=LMgetSymbol(n);if(t==null||t.ttype==RIGHTBRACKET){return[null,n,null]}}n=LMremoveCharsAndBlanks(n,t.input.length);switch(t.ttype){case SPACE:m=createMmlNode(t.tag);m.setAttribute(t.atname,t.atval);return[m,n,t.tag];case UNDEROVER:if(isIE){if(t.input.substr(0,4)=="\\big"){n="\\"+t.input.substr(4)+n;t=LMgetSymbol(n);t.ttype=UNDEROVER;n=LMremoveCharsAndBlanks(n,t.input.length)}}return[createMmlNode(t.tag,document.createTextNode(t.output)),n,t.tag];case CONST:var g=t.output;if(isIE){if(t.input=="'"){g="\u2032"}else{if(t.input=="''"){g="\u2033"}else{if(t.input=="'''"){g="\u2033\u2032"}else{if(t.input=="''''"){g="\u2033\u2033"}else{if(t.input=="\\square"){g="\u25A1"}else{if(t.input.substr(0,5)=="\\frac"){var b=t.input.substr(6,1);if(b=="5"||b=="6"){n=t.input.replace(/\\frac/,"\\frac ")+n;return[m,n,t.tag]}}}}}}}}m=createMmlNode(t.tag,document.createTextNode(g));return[m,n,t.tag];case LONG:m=createMmlNode(t.tag,document.createTextNode(t.output));m.setAttribute("minsize","1.5");m.setAttribute("maxsize","1.5");m=createMmlNode("mover",m);m.appendChild(createMmlNode("mspace"));return[m,n,t.tag];case STRETCHY:if(isIE&&t.input=="\\backslash"){t.output="\\"}m=createMmlNode(t.tag,document.createTextNode(t.output));if(t.input=="|"||t.input=="\\vert"||t.input=="\\|"||t.input=="\\Vert"){m.setAttribute("lspace","0em");m.setAttribute("rspace","0em")}m.setAttribute("maxsize",t.atval);if(t.rtag!=null){return[m,n,t.rtag]}else{return[m,n,t.tag]}case BIG:var f=t.atval;if(isIE){f=t.ieval}t=LMgetSymbol(n);if(t==null){return[null,n,null]}n=LMremoveCharsAndBlanks(n,t.input.length);m=createMmlNode(t.tag,document.createTextNode(t.output));if(isIE){var v=createMmlNode("mspace");v.setAttribute("height",f+"ex");m=createMmlNode("mrow",m);m.appendChild(v)}else{m.setAttribute("minsize",f);m.setAttribute("maxsize",f)}return[m,n,t.tag];case LEFTBRACKET:if(t.input=="\\left"){t=LMgetSymbol(n);if(t!=null){if(t.input=="."){t.invisible=true}n=LMremoveCharsAndBlanks(n,t.input.length)}}d=LMparseExpr(n,true,false);if(t==null||(typeof t.invisible=="boolean"&&t.invisible)){m=createMmlNode("mrow",d[0])}else{m=createMmlNode("mo",document.createTextNode(t.output));m=createMmlNode("mrow",m);m.appendChild(d[0])}return[m,d[1],d[2]];case MATRIX:if(t.input=="\\begin{array}"){var s="";t=LMgetSymbol(n);n=LMremoveCharsAndBlanks(n,0);if(t==null){s="l"}else{n=LMremoveCharsAndBlanks(n,t.input.length);if(t.input!="{"){s="l"}else{do{t=LMgetSymbol(n);if(t!=null){n=LMremoveCharsAndBlanks(n,t.input.length);if(t.input!="}"){s=s+t.input}}}while(t!=null&&t.input!=""&&t.input!="}")}}d=LMparseExpr("{"+n,true,true);m=createMmlNode("mtable",d[0]);s=s.replace(/l/g,"left ");s=s.replace(/r/g,"right ");s=s.replace(/c/g,"center ");m.setAttribute("columnalign",s);m.setAttribute("displaystyle","false");if(isIE){return[m,d[1],null]}var k=createMmlNode("mspace");k.setAttribute("width","0.167em");var p=createMmlNode("mspace");p.setAttribute("width","0.167em");var c=createMmlNode("mrow",k);c.appendChild(m);c.appendChild(p);return[c,d[1],null]}else{d=LMparseExpr("{"+n,true,true);m=createMmlNode("mtable",d[0]);if(isIE){m.setAttribute("columnspacing","0.25em")}else{m.setAttribute("columnspacing","0.167em")}m.setAttribute("columnalign","right center left");m.setAttribute("displaystyle","true");m=createMmlNode("mrow",m);return[m,d[1],null]}case TEXT:if(n.charAt(0)=="{"){r=n.indexOf("}")}else{r=0}if(r==-1){r=n.length}o=n.slice(1,r);if(o.charAt(0)==" "){m=createMmlNode("mspace");m.setAttribute("width","0.33em");l.appendChild(m)}l.appendChild(createMmlNode(t.tag,document.createTextNode(o)));if(o.charAt(o.length-1)==" "){m=createMmlNode("mspace");m.setAttribute("width","0.33em");l.appendChild(m)}n=LMremoveCharsAndBlanks(n,r+1);return[createMmlNode("mrow",l),n,null];case UNARY:d=LMparseSexpr(n);if(d[0]==null){return[createMmlNode(t.tag,document.createTextNode(t.output)),n]}if(typeof t.func=="boolean"&&t.func){o=n.charAt(0);if(o=="^"||o=="_"||o==","){return[createMmlNode(t.tag,document.createTextNode(t.output)),n,t.tag]}else{m=createMmlNode("mrow",createMmlNode(t.tag,document.createTextNode(t.output)));if(isIE){var v=createMmlNode("mspace");v.setAttribute("width","0.167em");m.appendChild(v)}m.appendChild(d[0]);return[m,d[1],t.tag]}}if(t.input=="\\sqrt"){if(isIE){var v=createMmlNode("mspace");v.setAttribute("height","1.2ex");v.setAttribute("width","0em");m=createMmlNode(t.tag,d[0]);m.appendChild(v);return[m,d[1],t.tag]}else{return[createMmlNode(t.tag,d[0]),d[1],t.tag]}}else{if(typeof t.acc=="boolean"&&t.acc){m=createMmlNode(t.tag,d[0]);var g=t.output;if(isIE){if(t.input=="\\hat"){g="\u0302"}else{if(t.input=="\\widehat"){g="\u005E"}else{if(t.input=="\\bar"){g="\u00AF"}else{if(t.input=="\\grave"){g="\u0300"}else{if(t.input=="\\tilde"){g="\u0303"}}}}}}var c=createMmlNode("mo",document.createTextNode(g));if(t.input=="\\vec"||t.input=="\\check"){c.setAttribute("maxsize","1.2")}if(isIE&&t.input=="\\bar"){c.setAttribute("maxsize","0.5")}if(t.input=="\\underbrace"||t.input=="\\underline"){c.setAttribute("accentunder","true")}else{c.setAttribute("accent","true")}m.appendChild(c);if(t.input=="\\overbrace"||t.input=="\\underbrace"){m.ttype=UNDEROVER}return[m,d[1],t.tag]}else{if(!isIE&&typeof t.codes!="undefined"){for(r=0;r<d[0].childNodes.length;r++){if(d[0].childNodes[r].nodeName=="mi"||d[0].nodeName=="mi"){o=(d[0].nodeName=="mi"?d[0].firstChild.nodeValue:d[0].childNodes[r].firstChild.nodeValue);var h=[];for(var q=0;q<o.length;q++){if(o.charCodeAt(q)>64&&o.charCodeAt(q)<91){h=h+String.fromCharCode(t.codes[o.charCodeAt(q)-65])}else{h=h+o.charAt(q)}}if(d[0].nodeName=="mi"){d[0]=createMmlNode("mo").appendChild(document.createTextNode(h))}else{d[0].replaceChild(createMmlNode("mo").appendChild(document.createTextNode(h)),d[0].childNodes[r])}}}}m=createMmlNode(t.tag,d[0]);m.setAttribute(t.atname,t.atval);if(t.input=="\\scriptstyle"||t.input=="\\scriptscriptstyle"){m.setAttribute("displaystyle","false")}return[m,d[1],t.tag]}}case BINARY:d=LMparseSexpr(n);if(d[0]==null){return[createMmlNode("mo",document.createTextNode(t.input)),n,null]}a=LMparseSexpr(d[1]);if(a[0]==null){return[createMmlNode("mo",document.createTextNode(t.input)),n,null]}if(t.input=="\\root"||t.input=="\\stackrel"){l.appendChild(a[0])}l.appendChild(d[0]);if(t.input=="\\frac"){l.appendChild(a[0])}return[createMmlNode(t.tag,l),a[1],t.tag];case INFIX:n=LMremoveCharsAndBlanks(n,t.input.length);return[createMmlNode("mo",document.createTextNode(t.output)),n,t.tag];default:return[createMmlNode(t.tag,document.createTextNode(t.output)),n,t.tag]}}function LMparseIexpr(g){var f,d,b,c,h,k,j;g=LMremoveCharsAndBlanks(g,0);d=LMgetSymbol(g);h=LMparseSexpr(g);c=h[0];g=h[1];k=h[2];f=LMgetSymbol(g);if(f.ttype==INFIX){g=LMremoveCharsAndBlanks(g,f.input.length);h=LMparseSexpr(g);if(h[0]==null){h[0]=createMmlNode("mo",document.createTextNode("\u25A1"))}g=h[1];k=h[2];if(f.input=="_"||f.input=="^"){b=LMgetSymbol(g);k=null;j=((d.ttype==UNDEROVER)||(c.ttype==UNDEROVER));if(f.input=="_"&&b.input=="^"){g=LMremoveCharsAndBlanks(g,b.input.length);var a=LMparseSexpr(g);g=a[1];k=a[2];c=createMmlNode((j?"munderover":"msubsup"),c);c.appendChild(h[0]);c.appendChild(a[0])}else{if(f.input=="_"){c=createMmlNode((j?"munder":"msub"),c);c.appendChild(h[0])}else{c=createMmlNode((j?"mover":"msup"),c);c.appendChild(h[0])}}c=createMmlNode("mrow",c)}else{c=createMmlNode(f.tag,c);if(f.input=="\\atop"||f.input=="\\choose"){c.setAttribute("linethickness","0ex")}c.appendChild(h[0]);if(f.input=="\\choose"){c=createMmlNode("mfenced",c)}}}return[c,g,k]}function LMparseExpr(o,p,v){var w,l,a,s,z,f=document.createDocumentFragment();do{o=LMremoveCharsAndBlanks(o,0);a=LMparseIexpr(o);l=a[0];o=a[1];z=a[2];w=LMgetSymbol(o);if(l!=undefined){if((z=="mn"||z=="mi")&&w!=null&&typeof w.func=="bo... [truncated message content] |
|
From: <pb...@fe...> - 2012-12-17 09:21:49
|
Author: pboy Date: 2012-12-17 09:21:25 +0000 (Mon, 17 Dec 2012) New Revision: 2403 Added: releases/2.0.0/ccm-cms/web/templates/ccm-cms/content-section/admin/image_select.jsp releases/2.0.0/ccm-core/web/assets/fancybox/ releases/2.0.0/ccm-core/web/assets/fancybox/blank.gif releases/2.0.0/ccm-core/web/assets/fancybox/fancy_close.png releases/2.0.0/ccm-core/web/assets/fancybox/fancy_loading.png releases/2.0.0/ccm-core/web/assets/fancybox/fancy_nav_left.png releases/2.0.0/ccm-core/web/assets/fancybox/fancy_nav_right.png releases/2.0.0/ccm-core/web/assets/fancybox/fancy_shadow_e.png releases/2.0.0/ccm-core/web/assets/fancybox/fancy_shadow_n.png releases/2.0.0/ccm-core/web/assets/fancybox/fancy_shadow_ne.png releases/2.0.0/ccm-core/web/assets/fancybox/fancy_shadow_nw.png releases/2.0.0/ccm-core/web/assets/fancybox/fancy_shadow_s.png releases/2.0.0/ccm-core/web/assets/fancybox/fancy_shadow_se.png releases/2.0.0/ccm-core/web/assets/fancybox/fancy_shadow_sw.png releases/2.0.0/ccm-core/web/assets/fancybox/fancy_shadow_w.png releases/2.0.0/ccm-core/web/assets/fancybox/fancy_title_left.png releases/2.0.0/ccm-core/web/assets/fancybox/fancy_title_main.png releases/2.0.0/ccm-core/web/assets/fancybox/fancy_title_over.png releases/2.0.0/ccm-core/web/assets/fancybox/fancy_title_right.png releases/2.0.0/ccm-core/web/assets/fancybox/fancybox-x.png releases/2.0.0/ccm-core/web/assets/fancybox/fancybox-y.png releases/2.0.0/ccm-core/web/assets/fancybox/fancybox.png releases/2.0.0/ccm-core/web/assets/fancybox/jquery.easing.pack.js releases/2.0.0/ccm-core/web/assets/fancybox/jquery.fancybox-1.3.4.css releases/2.0.0/ccm-core/web/assets/fancybox/jquery.fancybox.js releases/2.0.0/ccm-core/web/assets/fancybox/jquery.fancybox.pack.js releases/2.0.0/ccm-core/web/assets/fancybox/jquery.mousewheel.pack.js releases/2.0.0/ccm-core/web/assets/jquery.js Removed: releases/2.0.0/ccm-cms/web/assets/jquery.js Modified: releases/2.0.0/ccm-cms-assets-imagestep/src/com/arsdigita/cms/contentassets/ui/ImageStep.java releases/2.0.0/ccm-cms-assets-imagestep/src/com/arsdigita/cms/contentassets/ui/ImageStepDisplay.java releases/2.0.0/ccm-cms-assets-imagestep/src/com/arsdigita/cms/contentassets/ui/ImageStepEdit.java releases/2.0.0/ccm-cms/web/assets/xinha/plugins/OpenCCM/OpenCCM.js releases/2.0.0/ccm-cms/web/assets/xinha/plugins/OpenCCM/images/images.html releases/2.0.0/ccm-cms/web/assets/xinha/plugins/OpenCCM/images/images.js Log: Backport of OpenCCM Xinha plugin, fancybox, jquery (r2397). (on behalf of quasimodo) Deleted: releases/2.0.0/ccm-cms/web/assets/jquery.js =================================================================== --- releases/2.0.0/ccm-cms/web/assets/jquery.js 2012-12-17 09:14:32 UTC (rev 2402) +++ releases/2.0.0/ccm-cms/web/assets/jquery.js 2012-12-17 09:21:25 UTC (rev 2403) @@ -1,4 +0,0 @@ -/*! jQuery v1.7.2 jquery.com | jquery.org/license */ -(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cu(a){if(!cj[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),b.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write((f.support.boxModel?"<!doctype html>":"")+"<html><body>"),cl.close();d=cl.createElement(a),cl.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ck)}cj[a]=e}return cj[a]}function ct(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function cs(){cq=b}function cr(){setTimeout(cs,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p; for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function ca(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function b_(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bD.test(a)?d(a,e):b_(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&f.type(b)==="object")for(var e in b)b_(a+"["+e +"]",b[e],c,d);else d(a,b)}function b$(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function bZ(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bS,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bZ(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bZ(a,c,d,e,"*",g));return l}function bY(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bO),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bB(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?1:0,g=4;if(d>0){if(c!=="border")for(;e<g;e+=2)c||(d-=parseFloat(f.css(a,"padding"+bx[e]))||0),c==="margin"?d+=parseFloat(f.css(a,c+bx[e]))||0:d-=parseFloat(f.css(a,"border"+bx[e]+"Width"))||0;return d+"px"}d=by(a,b);if(d<0||d==null)d=a.style[b]; if(bt.test(d))return d;d=parseFloat(d)||0;if(c)for(;e<g;e+=2)d+=parseFloat(f.css(a,"padding"+bx[e]))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+bx[e]+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+bx[e]))||0);return d+"px"}function bo(a){var b=c.createElement("div");bh.appendChild(b),b.innerHTML=a.outerHTML;return b.firstChild}function bn(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bm(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bm)}function bm(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bl(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bk(a,b){var c;b.nodeType===1&&(b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase(),c==="object"?b.outerHTML=a.outerHTML:c!=="input"||a.type!=="checkbox"&&a.type!=="radio"? c==="option"?b.selected=a.defaultSelected:c==="input"||c==="textarea"?b.defaultValue=a.defaultValue:c==="script"&&b.text!==a.text&&(b.text=a.text):(a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value)),b.removeAttribute(f.expando),b.removeAttribute("_submit_attached"),b.removeAttribute("_change_attached"))}function bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d<e;d++)f.event.add(b,c,i[c][d])}h.data&&(h.data=f.extend({},h.data))}}function bi(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function U(a){var b=V.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function T(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a ,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(O.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?+d:j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for( c=0,d=a.length;c<d;c++)b[a[c]]=!0;return b}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return th is;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.2",length:0,size:function(){return this.length},toArra y:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=a rguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.a ttachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace( q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){if(typeof c!="string"||!c)return null;var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:func tion(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H)return H.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){v ar d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h,i){var j,k=d==null,l=0,m=a.length;if(d&&typeof d=="object"){for(l in d)e.access(a,c,l,d[l],1,h,f);g=1}else if(f!==b){j=i===b&&e.isFunction(f),k&&(j?(j=c,c=function(a,b,c){return j.call(e(a),c)}):(c.call(a,f),c=null));if(c)for(;l<m;l++)c(a[l],d,j?f.call(a[l],l,c(a[l],d)):f,i);g=1}return g?a:k?c.call(a):m?c(a[0],d):h},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b )},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m,n=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h==="array"?n(g):h==="function"&&(!a.unique||!p.has(g))&&c.push(g)},o=function(b,f){f=f||[],e=!a.memory||[b,f],i=!0,j=!0,m=k||0,k=0,l=c.length;for(;c&&m<l;m++)if(c[m].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}j=!1,c&&(a.once?e===!0?p.disable():c=[]:d&&d.length&&(e=d.s hift(),p.fireWith(e[0],e[1])))},p={add:function(){if(c){var a=c.length;n(arguments),j?l=c.length:e&&e!==!0&&(k=a,o(e[0],e[1]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){j&&f<=l&&(l--,f<=m&&m--),c.splice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.length;for(;b<d;b++)if(a===c[b])return!0}return!1},empty:function(){c=[];return this},disable:function(){c=d=e=b;return this},disabled:function(){return!c},lock:function(){d=b,(!e||e===!0)&&p.disable();return this},locked:function(){return!d},fireWith:function(b,c){d&&(j?a.once||d.push([b,c]):(!a.once||!e)&&o(b,c));return this},fire:function(){p.fireWith(this,arguments);return this},fired:function(){return!!i}};return p};var i=[].slice;f.extend({Deferred:function(a){var b=f.Callbacks("once memory"),c=f.Callbacks("once memory"),d=f.Callbacks("memory"),e="pending",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,progr ess:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:function(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},pipe:function(a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+"With"]=g[j].fireWith;i.done(function(){e="resolved"},c.disable,d.lock).fail(function(){e="rejected"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a){function m(a){return function(b){e[a]=arguments.length>1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=ar guments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise().then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else j!==a&&j.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l,m,n,o,p=c.createElement("div"),q=c.documentElement;p.setAttribute("className","t"),p.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=p.getElementsByTagName("*"),e=p.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=p.getElementsByTagName("input")[0],b={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(e.ge tAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:p.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,pixelMargin:!0},f.boxModel=b.boxModel=c.compatMode==="CSS1Compat",i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete p.test}catch(r){b.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",function(){b.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),i.setAttribute("name"," t"),p.appendChild(i),j=c.createDocumentFragment(),j.appendChild(p.lastChild),b.checkClone=j.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,j.removeChild(i),j.appendChild(p);if(p.attachEvent)for(n in{submit:1,change:1,focusin:1})m="on"+n,o=m in p,o||(p.setAttribute(m,"return;"),o=typeof p[m]=="function"),b[n+"Bubbles"]=o;j.removeChild(p),j=g=h=p=i=null,f(function(){var d,e,g,h,i,j,l,m,n,q,r,s,t,u=c.getElementsByTagName("body")[0];!u||(m=1,t="padding:0;margin:0;border:",r="position:absolute;top:0;left:0;width:1px;height:1px;",s=t+"0;visibility:hidden;",n="style='"+r+t+"5px solid #000;",q="<div "+n+"display:block;'><div style='"+t+"0;display:block;overflow:hidden;'></div></div>"+"<table "+n+"' cellpadding='0' cellspacing='0'>"+"<tr><td></td></tr></table>",d=c.createElement("div"),d.style.cssText=s+"width:0;height:0;position:static;top:0;margin-top:"+m+"px",u.insertBefore(d,u.firstChild),p=c.createElement("div"),d.appendChild(p),p.innerHTML="<table><tr>< td style='"+t+"0;display:none'></td><td>t</td></tr></table>",k=p.getElementsByTagName("td"),o=k[0].offsetHeight===0,k[0].style.display="",k[1].style.display="none",b.reliableHiddenOffsets=o&&k[0].offsetHeight===0,a.getComputedStyle&&(p.innerHTML="",l=c.createElement("div"),l.style.width="0",l.style.marginRight="0",p.style.width="2px",p.appendChild(l),b.reliableMarginRight=(parseInt((a.getComputedStyle(l,null)||{marginRight:0}).marginRight,10)||0)===0),typeof p.style.zoom!="undefined"&&(p.innerHTML="",p.style.width=p.style.padding="1px",p.style.border=0,p.style.overflow="hidden",p.style.display="inline",p.style.zoom=1,b.inlineBlockNeedsLayout=p.offsetWidth===3,p.style.display="block",p.style.overflow="visible",p.innerHTML="<div style='width:5px;'></div>",b.shrinkWrapBlocks=p.offsetWidth!==3),p.style.cssText=r+s,p.innerHTML=q,e=p.firstChild,g=e.firstChild,i=e.nextSibling.firstChild.firstChild,j={doesNotAddBorder:g.offsetTop!==5,doesAddBorderForTableAndCells:i.offsetTop===5},g. style.position="fixed",g.style.top="20px",j.fixedPosition=g.offsetTop===20||g.offsetTop===15,g.style.position=g.style.top="",e.style.overflow="hidden",e.style.position="relative",j.subtractsBorderForOverflowNotVisible=g.offsetTop===-5,j.doesNotIncludeMarginInBodyOffset=u.offsetTop!==m,a.getComputedStyle&&(p.style.marginTop="1%",b.pixelMargin=(a.getComputedStyle(p,null)||{marginTop:0}).marginTop!=="1%"),typeof d.style.zoom!="undefined"&&(d.style.zoom=1),u.removeChild(d),l=p=d=null,f.extend(b,j))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].dat a)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){delete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delete j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.removeAttribute(h):a[h]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d,e,g,h,i,j=this[0],k=0,m=null;if(a===b){if(this.length){m=f.data(j);if(j.nodeType===1&&!f._data(j,"parsedAttrs")){g=j.attributes;for(i=g.length;k<i;k++)h=g[k].name,h.indexOf("data-")===0&&(h=f.camelCase(h.substring(5)),l(j,h,m[h]));f._data(j,"parsedAttrs",!0)}}return m}if(typeof a=="object")return this.each(function(){f.data(this,a)});d=a.split(".",2),d[1]=d[1]?"."+d[1]:"",e=d[1]+"!";return f.access(this,function(c){if(c===b){m=this.triggerHandler("getData"+e,[d[0]]),m===b&&j&&(m=f.data(j,a),m=l(j,a,m));return m===b&&d[1]?this.data(d[0]):m}d[1]=c,this.each(function(){var b=f(this);b.triggerHandler("setData"+e,d),f.data(this,a,c),b.triggerHandler("changeData"+e,d)})},null,c,arguments.length>1,null,!1)},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a !==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){var d=2;typeof a!="string"&&(c=a,a="fx",d--);if(arguments.length<d)return f.queue(this[0],a);return c===b?this:this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function( ){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks("once memory"),!0))h++,l.add(m);m();return d.promise(c)}});var o=/[\n\t\r]/g,p=/\s+/,q=/\r/g,r=/^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttribute,w,x,y;f.fn.extend({attr:function(a,b){return f.access(this,f.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,f.prop,a,b,arguments.length>1)},removeProp:function(a){a=f.propFix[a]||a;return this. each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(o," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.e ach(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(o," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.type]||f.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.val Hooks[g.type]||f.valHooks[g.nodeName.toLowerCase()];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!f.nodeName(e.parentNode,"optgroup"))){b=f(e).val();if(j)return b;h.push(b)}}if(j&&!h.length&&i.length)return f(i[g]).val();return h},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j! ==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h,i=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;i<g;i++)e=d[i],e&&(c=f.propFix[e]||e,h=u.test(e),h||f.attr(a,e,""),a.removeAttribute(v?e:c),h&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(r.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(w&&f.nodeName(a,"button"))return w.get(a,b);return b in a?a.value:null},set:fu nction(a,b,c){if(w&&f.nodeName(a,"button"))return w.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,g,h,i=a.nodeType;if(!!a&&i!==3&&i!==8&&i!==2){h=i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&"set"in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&"get"in g&&(e=g.get(a,c))!==null?e:a[c]}},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:function(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a ,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},v||(y={name:!0,id:!0,coords:!0},w=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue!=="":d.specified)?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.attrHooks.tabindex.set=w.set,f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})}),f.attrHooks.contenteditable={get:w.get,set:function(a,b,c){b===""&&(b="false"),w.set(a,b,c)}}),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.op tSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.enctype||(f.propFix.enctype="encoding"),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/(?:^|\s)hover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function( -a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler,g=p.selector),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,gu id:d.guid,selector:g,quick:g&&G(g),namespace:n.join(".")},p),r=j[m];if(!r){r=j[m]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListener?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent("on"+m,i)}s.add&&(s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateCount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g.events)){b=f.trim(I(b||"")).split(" ");for(h=0;h<b.length;h++){i=A.exec(b[h])||[],j=k=i[1],l=i[2];if(!j){for(j in o)f.event.remove(a,j+b[h],c,d,!0);continue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.length,l=l?new RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(n=0;n<r.length;n++)s=r[n],(e||k===s.origType)&&(!c||c.guid===s.guid)&&(!l||l.test(s.namespace))&&(!d||d===s.selector||d==="**"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount--,p .remove&&p.remove.call(a,s));r.length===0&&m!==r.length&&((!p.teardown||p.teardown.call(a,l)===!1)&&f.removeEvent(a,j,g.handle),delete o[j])}f.isEmptyObject(o)&&(q=g.handle,q&&(q.elem=null),f.removeData(a,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeType!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f.event.triggered))return;h.indexOf("!")>=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArr ay(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l<r.length&&!c.isPropagationStopped();l++)m=r[l][0],c.type=r[l][1],q=(f._data(m,"events")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=o&&m[o],q&&f.acceptData(m)&&q.apply(m,d)===!1&&c.preventDefault();c.type=h,!g&&!c.isDefaultPrevented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&&e[h]&&(h!=="focus"&&h!=="blur"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.triggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:function(c){c=f.event.fix(c||a.event);var d=(f._data(this,"events")||{})[c.type]||[],e=d.delegateCount,g=[].slice.call(ar guments,0),h=!c.exclusive&&!c.namespace,i=f.event.special[c.type]||{},j=[],k,l,m,n,o,p,q,r,s,t,u;g[0]=c,c.delegateTarget=this;if(!i.preDispatch||i.preDispatch.call(this,c)!==!1){if(e&&(!c.button||c.type!=="click")){n=f(this),n.context=this.ownerDocument||this;for(m=c.target;m!=this;m=m.parentNode||this)if(m.disabled!==!0){p={},r=[],n[0]=m;for(k=0;k<e;k++)s=d[k],t=s.selector,p[t]===b&&(p[t]=s.quick?H(m,s.quick):n.is(t)),p[t]&&r.push(s);r.length&&j.push({elem:m,matches:r})}}d.length>e&&j.push({elem:this,matches:d.slice(e)});for(k=0;k<j.length&&!c.isPropagationStopped();k++){q=j[k],c.currentTarget=q.elem;for(l=0;l<q.matches.length&&!c.isImmediatePropagationStopped();l++){s=q.matches[l];if(h||!c.namespace&&!s.namespace||c.namespace_re&&c.namespace_re.test(s.namespace))c.data=s.data,c.handleObj=s,o=((f.event.special[s.origType]||{}).handle||s.handler).apply(q.elem,g),o!==b&&(c.result=o,o===!1&&(c.preventDefault(),c.stopPropagation()))}}i.postDispatch&&i.postDispatch.call(this,c); return c.result}},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,d){var e,f,g,h=d.button,i=d.fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.documentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(g);for(d=i.length;d;)e=i[--d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if( !(this instanceof f.Event))return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?K:J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.stopPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropagationStopped:J},f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.cont ains(c,d))a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b;return h}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName(this,"form"))return!1;f.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=f.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d&&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){a._submit_bubble=!0}),d._submit_attached=!0)})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&f.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){if(f.nodeName(this,"form"))return!1;f.event.remove(this,"._submit")}}),f.support.changeBubbles||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")f.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(a){this. _just_changed&&!a.isTrigger&&(this._just_changed=!1,f.event.simulate("change",this,a,!0))});return!1}f.event.add(this,"beforeactivate._change",function(a){var b=a.target;z.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate("change",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){f.event.remove(this,"._change");return z.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object"){typeof c! ="string"&&(d=d||c,c=b);for(i in a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=J;else if(!e)return this;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.namespace?e.origType+"."+e.namespace:e.origType,e.selector,e.handler);return this}if(typeof a=="object"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!1||typeof c=="function")d=c,c=b;d===!1&&(d=J);return this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a,this.selector||" **",b);return this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f._data(this,"lastToggle"+a.guid)||0)%d;f._data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.on(b,null,a,c):thi s.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}if(j.nodeType===1){g||(j[d]=c,j.sizset=h);if(typeof b!="string"){if(j===b){k=!0;break}}else if(m.filter(b,[j]).length>0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}j.nodeType===1&&!g&&(j[d]=c,j.sizset=h);if(j.nodeName.toLowerCase()===b){k=j;break}j=j[a]}e[h]=k}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[] ,d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t] !=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},m.matches=function(a,b){return m(a,null,null,b)},m.matchesSelector=function(a,b){return m(b,null,null,[a]).length>0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(j,""),d=o.find[h](g,b,c);if(d!=null){a=a.replace(o.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter)if((f=o.leftMatch[h].exec(a))!=null&&f[2]){k= o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.length-1)==="\\")continue;s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,s,d,r,e,t);if(!f)g=i=!0;else if(f===!0)continue}if(f)for(n=0;(j=s[n])!=null;n++)j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0));if(i!==b){d||(s=r),a=a.replace(o.match[h],"");if(!g)return[];break}}if(a===q)if(g==null)m.error(a);else break;q=a}return s},m.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)};var n=m.getText=function(a){var b,c,d=a.nodeType,e="";if(d){if(d===1||d===9||d===11){if(typeof a.textContent=="string")return a.textContent;if(typeof a.innerText=="string")return a.innerText.replace(k,"");for(a=a.firstChild;a;a=a.nextSibling)e+=n(a)}else if(d===3||d===4)return a.nodeValue}else for(b=0;c=a[b];b++)c.nodeType!==8&&(e+=n(c));return e},o=m.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u 00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!l.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&m.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e<f;e++) {c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&m.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(j,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&& (" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){re turn a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toL owerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}m.error(e)},CHILD:function(a,b){var c,e,f,g,h,i, j,k=b[1],l=a;switch(k){case"only":case"first":while(l=l.previousSibling)if(l.nodeType===1)return!1;if(k==="first")return!0;l=a;case"last":while(l=l.nextSibling)if(l.nodeType===1)return!1;return!0;case"nth":c=b[2],e=b[3];if(c===1&&e===0)return!0;f=b[0],g=a.parentNode;if(g&&(g[d]!==f||!a.nodeIndex)){i=0;for(l=g.firstChild;l;l=l.nextSibling)l.nodeType===1&&(l.nodeIndex=++i);g[d]=f}j=a.nodeIndex-e;return c===0?j===0:j%c===0&&j/c>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f=== "$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));o.match.globalPOS=p;var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var u,v;c.documentElement.compareDocumentPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compa reDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,i=b.parentNode,j=g;if(g===i)return v(a,b);if(!g)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return v(e[k],f[k]);return k===c?v(a,f[k],-1):v(e[k],b,1)},v=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter. ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagNam e(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute... [truncated message content] |
|
From: <pb...@fe...> - 2012-12-17 09:14:40
|
Author: pboy
Date: 2012-12-17 09:14:32 +0000 (Mon, 17 Dec 2012)
New Revision: 2402
Modified:
releases/2.0.0/ccm-navigation/src/com/arsdigita/navigation/ui/object/CustomizableObjectList.java
Log:
Backport of r2396 (fixed German umlaut) (on behalf of JensP)
Modified: releases/2.0.0/ccm-navigation/src/com/arsdigita/navigation/ui/object/CustomizableObjectList.java
===================================================================
--- releases/2.0.0/ccm-navigation/src/com/arsdigita/navigation/ui/object/CustomizableObjectList.java 2012-12-17 09:12:25 UTC (rev 2401)
+++ releases/2.0.0/ccm-navigation/src/com/arsdigita/navigation/ui/object/CustomizableObjectList.java 2012-12-17 09:14:32 UTC (rev 2402)
@@ -274,11 +274,11 @@
/*
* if (request.getCharacterEncoding() == null) {
*/
- try {
- request.setCharacterEncoding("UTF-8");
- } catch (UnsupportedEncodingException ex) {
- logger.error(ex);
- }
+// try {
+// request.setCharacterEncoding("UTF-8");
+// } catch (UnsupportedEncodingException ex) {
+// logger.error(ex);
+// }
//}
for (Map.Entry<String, Filter> filterEntry : filters.entrySet()) {
|
|
From: <pb...@fe...> - 2012-12-17 09:12:33
|
Author: pboy
Date: 2012-12-17 09:12:25 +0000 (Mon, 17 Dec 2012)
New Revision: 2401
Modified:
releases/2.0.0/ccm-navigation/src/com/arsdigita/navigation/ui/object/CustomizableObjectList.java
Log:
Backport of r2395 (on behalf of JensP)
Modified: releases/2.0.0/ccm-navigation/src/com/arsdigita/navigation/ui/object/CustomizableObjectList.java
===================================================================
--- releases/2.0.0/ccm-navigation/src/com/arsdigita/navigation/ui/object/CustomizableObjectList.java 2012-12-17 09:06:50 UTC (rev 2400)
+++ releases/2.0.0/ccm-navigation/src/com/arsdigita/navigation/ui/object/CustomizableObjectList.java 2012-12-17 09:12:25 UTC (rev 2401)
@@ -1,5 +1,6 @@
package com.arsdigita.navigation.ui.object;
+import com.arsdigita.globalization.Globalization;
import com.arsdigita.navigation.Navigation;
import com.arsdigita.persistence.DataCollection;
import com.arsdigita.xml.Element;
@@ -281,7 +282,7 @@
//}
for (Map.Entry<String, Filter> filterEntry : filters.entrySet()) {
- String value = request.getParameter(filterEntry.getKey());
+ String value = Globalization.decodeParameter(request, filterEntry.getKey());;
if ((value != null) && !value.isEmpty()) {
filterEntry.getValue().setValue(value);
|
|
From: <pb...@fe...> - 2012-12-17 09:07:01
|
Author: pboy
Date: 2012-12-17 09:06:50 +0000 (Mon, 17 Dec 2012)
New Revision: 2400
Added:
releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageSelectResultComponent.java
Removed:
releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageSelectResultPane.java
Modified:
releases/2.0.0/ccm-cms/web/assets/xinha/plugins/OpenCCM/images/images.html
releases/2.0.0/ccm-cms/web/assets/xinha/plugins/OpenCCM/images/images.js
Log:
ImageSelectResultComponment: Fixed Javascript, added missing class; OpenCCM Xinha plugin: Preview works now, (on behalf of quasimodo)
Added: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageSelectResultComponent.java
===================================================================
--- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageSelectResultComponent.java (rev 0)
+++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageSelectResultComponent.java 2012-12-17 09:06:50 UTC (rev 2400)
@@ -0,0 +1,86 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package com.arsdigita.cms.ui;
+
+import com.arsdigita.bebop.PageState;
+import com.arsdigita.bebop.Resettable;
+import com.arsdigita.bebop.SimpleContainer;
+import com.arsdigita.cms.ImageAsset;
+import com.arsdigita.cms.Service;
+import com.arsdigita.web.URL;
+import com.arsdigita.xml.Element;
+
+/**
+ * A component which will insert a javascript to the xml output with the
+ * image information for the OpenCCM plugin for Xinha editor.
+ *
+ * @author Sören Bernstein (quasimodo) <sbe...@ze...>
+ */
+public class ImageSelectResultComponent extends SimpleContainer implements Resettable {
+
+ boolean m_valid = false;
+ ImageAsset m_image;
+
+ public ImageSelectResultComponent() {
+ super();
+ }
+
+ /**
+ * Save image imformation
+ *
+ * @param iamge an {@link ImageAsset}
+ */
+ public void setResult(final ImageAsset image/*, final String name, final BigDecimal id, final BigDecimal width, final BigDecimal height*/) {
+ m_image = image;
+ m_valid = (m_image != null);
+ }
+
+ @Override
+ public void generateXML(PageState state, Element parent) {
+
+ Element scriptElem = parent.newChildElement("script");
+ scriptElem.addAttribute("type", "text/javascript");
+
+ StringBuilder script = new StringBuilder(1000);
+
+ script.append("function selectImage(button) {");
+ if (m_valid) {
+
+ script.append("if(button.id == \"save\" ) {");
+
+ script.append("window.opener.openCCM.imageSet({");
+ script.append(" src : \"");
+ script.append(URL.getDispatcherPath());
+ script.append(Service.getImageURL(m_image));
+ script.append("\", ");
+ script.append(" name : \"");
+ script.append(m_image.getDisplayName());
+ script.append("\", ");
+ script.append(" width : \"");
+ script.append(m_image.getWidth());
+ script.append("\", ");
+ script.append(" height : \"");
+ script.append(m_image.getHeight());
+ script.append("\"");
+ script.append("});");
+ script.append("}");
+
+ script.append("self.close();");
+
+ }
+ script.append("return false;");
+ script.append("}");
+ scriptElem.setText(script.toString());
+ }
+
+ /**
+ * Reset this component.
+ *
+ * @param state Page state
+ */
+ public void reset(PageState state) {
+ setResult(null);
+ }
+}
Deleted: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageSelectResultPane.java
===================================================================
--- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageSelectResultPane.java 2012-12-17 08:45:13 UTC (rev 2399)
+++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageSelectResultPane.java 2012-12-17 09:06:50 UTC (rev 2400)
@@ -1,81 +0,0 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-package com.arsdigita.cms.ui;
-
-import com.arsdigita.bebop.PageState;
-import com.arsdigita.bebop.Resettable;
-import com.arsdigita.bebop.SimpleContainer;
-import com.arsdigita.xml.Element;
-import java.math.BigDecimal;
-
-/**
- *
- * @author Sören Bernstein (quasimodo) <sbe...@ze...>
- */
-public class ImageSelectResultPane extends SimpleContainer implements Resettable {
-
- boolean m_valid = false;
- String m_name;
- BigDecimal m_id;
- BigDecimal m_width;
- BigDecimal m_height;
-
- public ImageSelectResultPane() {
- super();
- }
-
- public void setResult(final String name, final BigDecimal id, final BigDecimal width, final BigDecimal height) {
- m_name = name;
- m_id = id;
- m_width = width;
- m_height = height;
- m_valid = true;
- }
-
- @Override
- public void generateXML(PageState state, Element parent) {
-
- Element scriptElem = parent.newChildElement("script");
- scriptElem.addAttribute("type", "text/javascript");
-
- StringBuilder script = new StringBuilder(1000);
-
- script.append("function selectImage(button) {");
- if (m_valid) {
-
- script.append("if(button.id == \"save\" ) {");
-
- script.append("window.opener.openCCM.imageSet({");
- script.append(" src : \"/ccm/cms-service/stream/image/?image_id=");
- script.append(m_id);
- script.append("\", ");
- script.append(" name : \"");
- script.append(m_name);
- script.append("\", ");
- script.append(" width : \"");
- script.append(m_width);
- script.append("\", ");
- script.append(" height : \"");
- script.append(m_height);
- script.append("\"");
- script.append("});");
- script.append("}");
-
- script.append("self.close();");
-
- }
- script.append("return false;");
- script.append("}");
- scriptElem.setText(script.toString());
- }
-
- public void reset(PageState state) {
- m_name = null;
- m_id = null;
- m_width = null;
- m_height = null;
- m_valid = false;
- }
-}
Modified: releases/2.0.0/ccm-cms/web/assets/xinha/plugins/OpenCCM/images/images.html
===================================================================
--- releases/2.0.0/ccm-cms/web/assets/xinha/plugins/OpenCCM/images/images.html 2012-12-17 08:45:13 UTC (rev 2399)
+++ releases/2.0.0/ccm-cms/web/assets/xinha/plugins/OpenCCM/images/images.html 2012-12-17 09:06:50 UTC (rev 2400)
@@ -111,7 +111,7 @@
-->
<input type="hidden" name="[src]" id="[src]"/>
- <fieldset>
+ <fieldset id="[layout]">
<legend>
<l10n>Layout</l10n>
</legend>
@@ -146,7 +146,7 @@
</div>
</fieldset>
- <fieldset>
+ <fieldset id="[dimensions]">
<legend>
<l10n>Dimension</l10n>
</legend>
Modified: releases/2.0.0/ccm-cms/web/assets/xinha/plugins/OpenCCM/images/images.js
===================================================================
--- releases/2.0.0/ccm-cms/web/assets/xinha/plugins/OpenCCM/images/images.js 2012-12-17 08:45:13 UTC (rev 2399)
+++ releases/2.0.0/ccm-cms/web/assets/xinha/plugins/OpenCCM/images/images.js 2012-12-17 09:06:50 UTC (rev 2400)
@@ -87,14 +87,7 @@
// OnResize
this.dialogs["images"].onresize = function ()
{
- var newHeightForPreview =
- parseInt(this.height, 10)
-// - this.getElementById("h1").offsetHeight
-// - this.getElementById("buttons").offsetHeight
-// - this.getElementById("inputs").offsetHeight
- - parseInt(this.rootElem.style.paddingBottom, 10);
- this.getElementById("preview").style.height = ((newHeightForPreview > 0) ? newHeightForPreview : 0) + "px";
- this.getElementById("preview").style.width = "98%";
+ self.resizePreview(this);
};
this.imageDialogReady = true;
@@ -299,19 +292,32 @@
OpenCCM.prototype.imageSet = function(imageData)
{
- var dialog = this.dialogs["images"];
+ var dialog = this.dialogs["images"]
dialog.getElementById(dialog.id["src"]).value = imageData.src;
dialog.getElementById(dialog.id["ipreview"]).src = imageData.src;
dialog.getElementById(dialog.id["width"]).value = imageData.width;
dialog.getElementById(dialog.id["height"]).value = imageData.height;
dialog.getElementById(dialog.id["name"]).value = imageData.name;
dialog.getElementById(dialog.id["aspect"]).value = dialog.getElementById(dialog.id["width"]).value / dialog.getElementById(dialog.id["height"]).value;
+
+ this.resizePreview(dialog);
+
if(imageData.src != "")
{
dialog.getElementById(dialog.id["preview"]).style.display = "block";
+ } else {
+ dialog.getElementById(dialog.id["preview"]).style.display = "none";
}
};
+OpenCCM.prototype.resizePreview = function(dialog) {
+ var aspect = dialog.getElementById(dialog.id["aspect"]).value;
+ var previewWidth = dialog.width - 22;
+
+ dialog.getElementById(dialog.id["ipreview"]).style.height = Math.round(previewWidth / aspect) + "px";
+ dialog.getElementById(dialog.id["ipreview"]).style.width = previewWidth + "px";
+};
+
OpenCCM.prototype.calcWidth = function()
{
var dialog = this.dialogs["images"];
|
Author: pboy
Date: 2012-12-17 08:45:13 +0000 (Mon, 17 Dec 2012)
New Revision: 2399
Modified:
releases/2.0.0/ccm-cms-types-image/src/com/arsdigita/cms/contenttypes/ui/ImagePropertyForm.java
releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericContactAttachAddressPropertyForm.java
releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericContactAttachPersonPropertyForm.java
releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonAliasSetForm.java
releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonCreate.java
releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/authoring/PageCreate.java
releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/authoring/PageEdit.java
releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/authoring/PageEditDynamic.java
releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/templates/TemplateEdit.java
Log:
Backport trunk revision r2389, r2393 (super.validate for classes inheriting from BasicPageForm) (on behalf of JensP)
Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericContactAttachAddressPropertyForm.java
===================================================================
--- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericContactAttachAddressPropertyForm.java 2012-12-17 08:13:51 UTC (rev 2398)
+++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericContactAttachAddressPropertyForm.java 2012-12-17 08:45:13 UTC (rev 2399)
@@ -149,6 +149,9 @@
@Override
public void validate(FormSectionEvent e) throws FormProcessException {
+ //Calling super.validate(e) here causes an exception because the super method checks things which not available
+ //here.
+
final PageState state = e.getPageState();
final FormData data = e.getFormData();
Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericContactAttachPersonPropertyForm.java
===================================================================
--- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericContactAttachPersonPropertyForm.java 2012-12-17 08:13:51 UTC (rev 2398)
+++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericContactAttachPersonPropertyForm.java 2012-12-17 08:45:13 UTC (rev 2399)
@@ -179,6 +179,9 @@
@Override
public void validate(FormSectionEvent e) throws FormProcessException {
+ //Calling super.validate(e) here causes an exception because the super method checks things which not available
+ //here.
+
final PageState state = e.getPageState();
final FormData data = e.getFormData();
Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonAliasSetForm.java
===================================================================
--- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonAliasSetForm.java 2012-12-17 08:13:51 UTC (rev 2398)
+++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonAliasSetForm.java 2012-12-17 08:45:13 UTC (rev 2399)
@@ -125,8 +125,10 @@
}
@Override
- public void validate(final FormSectionEvent fse)
- throws FormProcessException {
+ public void validate(final FormSectionEvent fse) throws FormProcessException {
+ //We don't call super.validate(fse) here because the super method checks for things which are not available
+ //here, causing an exception.
+
final PageState state = fse.getPageState();
final FormData data = fse.getFormData();
Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonCreate.java
===================================================================
--- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonCreate.java 2012-12-17 08:13:51 UTC (rev 2398)
+++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonCreate.java 2012-12-17 08:45:13 UTC (rev 2399)
@@ -72,7 +72,11 @@
}
}
- // Validate: ensure name uniqueness
+ /**
+ * Ensure name uniqueness. Note: We can't call {@code super.validate(FormSectionEvent)} here
+ * because the super method {@link BasicPageForm#validate(com.arsdigita.bebop.event.FormSectionEvent)} tries
+ * to access things which on existing yet.
+ */
@Override
public void validate(FormSectionEvent e) throws FormProcessException {
Folder f = m_parent.getFolder(e.getPageState());
Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/authoring/PageCreate.java
===================================================================
--- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/authoring/PageCreate.java 2012-12-17 08:13:51 UTC (rev 2398)
+++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/authoring/PageCreate.java 2012-12-17 08:45:13 UTC (rev 2399)
@@ -34,7 +34,6 @@
import com.arsdigita.cms.util.GlobalizationUtil;
import com.arsdigita.util.Assert;
import java.util.Date;
-
import org.apache.log4j.Logger;
/**
@@ -48,8 +47,6 @@
public class PageCreate extends BasicPageForm
implements FormSubmissionListener, CreationComponent {
- private static final Logger s_log = Logger.getLogger(PageCreate.class);
-
protected final CreationSelector m_parent;
protected ApplyWorkflowFormSection m_workflowSection;
@@ -105,13 +102,17 @@
return m_workflowSection;
}
- // Init: create a new item id
+ /** create a new item id
+ *
+ */
public void init(FormSectionEvent e) throws FormProcessException {
// this is currently a no-op
}
- // Submission: If the Cancel button was pressed, hide self and
- // show the display component
+ /**
+ * If the Cancel button was pressed, hide self and
+ * show the display component
+ */
public void submitted(FormSectionEvent e) throws FormProcessException {
PageState state = e.getPageState();
@@ -124,12 +125,18 @@
}
}
- // Validate: ensure name uniqueness
+ /**
+ * Validate inputs to ensure name uniqueness. Note: We can't call {@code super.validate(FormSectionEvent)} here
+ * because the super method {@link BasicPageForm#validate(com.arsdigita.bebop.event.FormSectionEvent)} tries
+ * to access things which on existing yet.
+ *
+ * @param event
+ */
@Override
- public void validate(FormSectionEvent e) throws FormProcessException {
- Folder f = m_parent.getFolder(e.getPageState());
- Assert.exists(f);
- validateNameUniqueness(f, e);
+ public void validate(final FormSectionEvent event) throws FormProcessException {
+ final Folder folder = m_parent.getFolder(event.getPageState());
+ Assert.exists(folder);
+ validateNameUniqueness(folder, event);
}
// Process: save fields to the database
Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/authoring/PageEdit.java
===================================================================
--- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/authoring/PageEdit.java 2012-12-17 08:13:51 UTC (rev 2398)
+++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/authoring/PageEdit.java 2012-12-17 08:45:13 UTC (rev 2399)
@@ -135,6 +135,8 @@
}
public void validate(FormSectionEvent event) throws FormProcessException {
+ super.validate(event);
+
PageState state = event.getPageState();
FormData data = event.getFormData();
Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/authoring/PageEditDynamic.java
===================================================================
--- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/authoring/PageEditDynamic.java 2012-12-17 08:13:51 UTC (rev 2398)
+++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/authoring/PageEditDynamic.java 2012-12-17 08:45:13 UTC (rev 2399)
@@ -582,6 +582,8 @@
* confirms this was the same item to be edited
*/
public void validate(FormSectionEvent event) throws FormProcessException {
+ super.validate(event);
+
PageState state = event.getPageState();
FormData data = event.getFormData();
Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/templates/TemplateEdit.java
===================================================================
--- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/templates/TemplateEdit.java 2012-12-17 08:13:51 UTC (rev 2398)
+++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/templates/TemplateEdit.java 2012-12-17 08:45:13 UTC (rev 2399)
@@ -18,7 +18,6 @@
*/
package com.arsdigita.cms.ui.templates;
-
import com.arsdigita.bebop.FormData;
import com.arsdigita.bebop.FormProcessException;
import com.arsdigita.bebop.Label;
@@ -133,7 +132,8 @@
}
public void validate(FormSectionEvent event) throws FormProcessException {
- super.validate(event);
+ //Calling super.validate(e) here causes an exception because the super method checks things which not available
+ //here.
PageState state = event.getPageState();
FormData data = event.getFormData();
@@ -155,6 +155,6 @@
Assert.exists(t);
return t;
}
+
}
-
}
Modified: releases/2.0.0/ccm-cms-types-image/src/com/arsdigita/cms/contenttypes/ui/ImagePropertyForm.java
===================================================================
--- releases/2.0.0/ccm-cms-types-image/src/com/arsdigita/cms/contenttypes/ui/ImagePropertyForm.java 2012-12-17 08:13:51 UTC (rev 2398)
+++ releases/2.0.0/ccm-cms-types-image/src/com/arsdigita/cms/contenttypes/ui/ImagePropertyForm.java 2012-12-17 08:45:13 UTC (rev 2399)
@@ -206,6 +206,8 @@
@Override
public void validate(FormSectionEvent e) throws FormProcessException {
+ super.validate(e);
+
FormData d = e.getFormData();
}
|
|
From: <pb...@fe...> - 2012-12-17 08:14:09
|
Author: pboy Date: 2012-12-17 08:13:51 +0000 (Mon, 17 Dec 2012) New Revision: 2398 Modified: trunk/ccm-core/web/assets/xinha/plugins/Equation/ASCIIMathML.js Log: Addition to r2397, fixed equation plugin. (on behalf of quasimodo) Modified: trunk/ccm-core/web/assets/xinha/plugins/Equation/ASCIIMathML.js =================================================================== --- trunk/ccm-core/web/assets/xinha/plugins/Equation/ASCIIMathML.js 2012-12-17 08:11:01 UTC (rev 2397) +++ trunk/ccm-core/web/assets/xinha/plugins/Equation/ASCIIMathML.js 2012-12-17 08:13:51 UTC (rev 2398) @@ -1,2 +1,2 @@ /* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */ -var mathcolor="blue";var mathfontsize="1em";var mathfontfamily="serif";var automathrecognize=false;var checkForMathML=true;var notifyIfNoMathML=true;var alertIfNoMathML=false;var translateOnLoad=true;var translateLaTeX=true;var translateLaTeXformatting=true;var translateASCIIMath=true;var translateASCIIsvg=true;var avoidinnerHTML=false;var displaystyle=true;var showasciiformulaonhover=true;var decimalsign=".";var AMdelimiter1="`",AMescape1="\\\\`";var AMdocumentId="wikitext";var checkforprocessasciimathinmoodle=false;var dsvglocation="";var isIE=document.createElementNS==null;var noMathML=false,translated=false;if(isIE){document.write('<object id="mathplayer" classid="clsid:32F66A20-7614-11D4-BD11-00104BD3F987"></object>');document.write('<?import namespace="m" implementation="#mathplayer"?>')}function setStylesheet(a){var c="AMMLcustomStyleSheet";var b=document.getElementById(c);if(document.createStyleSheet){if(b){b.parentNode.removeChild(b)}document.getElementsByTagName(" head")[0].insertAdjacentHTML("beforeEnd"," <style id='"+c+"'>"+a+"</style>")}else{if(b){b.replaceChild(document.createTextNode(a),b.firstChild)}else{b=document.createElement("style");b.type="text/css";b.id=c;b.appendChild(document.createTextNode(a));document.getElementsByTagName("head")[0].appendChild(b)}}}setStylesheet("#AMMLcloseDiv {font-size:0.8em; padding-top:1em; color:#014}\n#AMMLwarningBox {position:absolute; width:100%; top:0; left:0; z-index:200; text-align:center; font-size:1em; font-weight:bold; padding:0.5em 0 0.5em 0; color:#ffc; background:#c30}");function init(){var b,a=new Array();if(document.getElementById==null){alert("This webpage requires a recent browser such as Mozilla Firefox/Netscape 7+ or Internet Explorer 6+ with MathPlayer and Adobe SVGviewer");return null}if(checkForMathML&&(b=checkMathML())){a.push(b)}if(checkIfSVGavailable&&(b=checkSVG())){a.push(b)}if(a.length>0){displayWarnings(a)}if(!noMathML){initSymbols()}return true}function checkMat hML(){if(navigator.appName.slice(0,8)=="Netscape"){if(navigator.appVersion.slice(0,1)>="5"){noMathML=null}else{noMathML=true}}else{if(navigator.appName.slice(0,9)=="Microsoft"){try{var c=new ActiveXObject("MathPlayer.Factory.1");noMathML=null}catch(a){noMathML=true}}else{if(navigator.appName.slice(0,5)=="Opera"){if(navigator.appVersion.slice(0,3)>="9.5"){noMathML=null}else{noMathML=true}}}}if(noMathML&¬ifyIfNoMathML){var b="To view the ASCIIMathML notation use Internet Explorer + MathPlayer or Mozilla Firefox 2.0 or later.";if(alertIfNoMathML){alert(b)}else{return b}}}function hideWarning(){var a=document.getElementsByTagName("body")[0];a.removeChild(document.getElementById("AMMLwarningBox"));a.onclick=null}function displayWarnings(b){var c,g,f=createElementXHTML("div");var a=document.getElementsByTagName("body")[0];a.onclick=hideWarning;f.id="AMMLwarningBox";for(c=0;c<b.length;c++){g=createElementXHTML("div");g.appendChild(document.createTextNode(b[c]));g.style.paddingBo ttom="1.0em";f.appendChild(g)}f.appendChild(createElementXHTML("p"));f.appendChild(document.createTextNode("For instructions see the "));var d=createElementXHTML("a");d.appendChild(document.createTextNode("ASCIIMathML"));d.setAttribute("href","http://www.chapman.edu/~jipsen/asciimath.html");f.appendChild(d);f.appendChild(document.createTextNode(" homepage"));d=createElementXHTML("div");d.id="AMMLcloseDiv";d.appendChild(document.createTextNode("(click anywhere to close this warning)"));f.appendChild(d);var a=document.getElementsByTagName("body")[0];a.insertBefore(f,a.childNodes[0])}function translate(b){if(!translated){translated=true;var a=document.getElementsByTagName("body")[0];var c=document.getElementById(AMdocumentId);if(translateLaTeX){LMprocessNode((c!=null?c:a))}if(translateASCIIMath){AMprocessNode((c!=null?c:a),false,b)}}}function createElementXHTML(a){if(isIE){return document.createElement(a)}else{return document.createElementNS("http://www.w3.org/1999/xhtml",a)}}f unction createMmlNode(a,c){if(isIE){var b=document.createElement("m:"+a)}else{var b=document.createElementNS("http://www.w3.org/1998/Math/MathML",a)}if(c){b.appendChild(c)}return b}var AMcal=[61237,8492,61238,61239,8496,8497,61240,8459,8464,61241,61242,8466,8499,61243,61244,61245,61246,8475,61247,61248,61249,61250,61251,61252,61253,61254];var AMfrk=[61277,61278,8493,61279,61280,61281,61282,8460,8465,61283,61284,61285,61286,61287,61288,61289,61290,8476,61291,61292,61293,61294,61295,61296,61297,8488];var AMbbb=[61324,61325,8450,61326,61327,61328,61329,8461,61330,61331,61332,61333,61334,8469,61335,8473,8474,8477,61336,61337,61338,61339,61340,61341,61342,8484];var CONST=0,UNARY=1,BINARY=2,INFIX=3,LEFTBRACKET=4,RIGHTBRACKET=5,SPACE=6,UNDEROVER=7,DEFINITION=8,LEFTRIGHT=9,TEXT=10,BIG=11,LONG=12,STRETCHY=13,MATRIX=14;var AMquote={input:'"',tag:"mtext",output:"mbox",tex:null,ttype:TEXT};var AMsymbols=[{input:"alpha",tag:"mi",output:"\u03B1",tex:null,ttype:CONST},{input:"beta",tag:"mi ",output:"\u03B2",tex:null,ttype:CONST},{input:"chi",tag:"mi",output:"\u03C7",tex:null,ttype:CONST},{input:"delta",tag:"mi",output:"\u03B4",tex:null,ttype:CONST},{input:"Delta",tag:"mo",output:"\u0394",tex:null,ttype:CONST},{input:"epsi",tag:"mi",output:"\u03B5",tex:"epsilon",ttype:CONST},{input:"varepsilon",tag:"mi",output:"\u025B",tex:null,ttype:CONST},{input:"eta",tag:"mi",output:"\u03B7",tex:null,ttype:CONST},{input:"gamma",tag:"mi",output:"\u03B3",tex:null,ttype:CONST},{input:"Gamma",tag:"mo",output:"\u0393",tex:null,ttype:CONST},{input:"iota",tag:"mi",output:"\u03B9",tex:null,ttype:CONST},{input:"kappa",tag:"mi",output:"\u03BA",tex:null,ttype:CONST},{input:"lambda",tag:"mi",output:"\u03BB",tex:null,ttype:CONST},{input:"Lambda",tag:"mo",output:"\u039B",tex:null,ttype:CONST},{input:"mu",tag:"mi",output:"\u03BC",tex:null,ttype:CONST},{input:"nu",tag:"mi",output:"\u03BD",tex:null,ttype:CONST},{input:"omega",tag:"mi",output:"\u03C9",tex:null,ttype:CONST},{input:"Omega",tag: "mo",output:"\u03A9",tex:null,ttype:CONST},{input:"phi",tag:"mi",output:"\u03C6",tex:null,ttype:CONST},{input:"varphi",tag:"mi",output:"\u03D5",tex:null,ttype:CONST},{input:"Phi",tag:"mo",output:"\u03A6",tex:null,ttype:CONST},{input:"pi",tag:"mi",output:"\u03C0",tex:null,ttype:CONST},{input:"Pi",tag:"mo",output:"\u03A0",tex:null,ttype:CONST},{input:"psi",tag:"mi",output:"\u03C8",tex:null,ttype:CONST},{input:"Psi",tag:"mi",output:"\u03A8",tex:null,ttype:CONST},{input:"rho",tag:"mi",output:"\u03C1",tex:null,ttype:CONST},{input:"sigma",tag:"mi",output:"\u03C3",tex:null,ttype:CONST},{input:"Sigma",tag:"mo",output:"\u03A3",tex:null,ttype:CONST},{input:"tau",tag:"mi",output:"\u03C4",tex:null,ttype:CONST},{input:"theta",tag:"mi",output:"\u03B8",tex:null,ttype:CONST},{input:"vartheta",tag:"mi",output:"\u03D1",tex:null,ttype:CONST},{input:"Theta",tag:"mo",output:"\u0398",tex:null,ttype:CONST},{input:"upsilon",tag:"mi",output:"\u03C5",tex:null,ttype:CONST},{input:"xi",tag:"mi",output: "\u03BE",tex:null,ttype:CONST},{input:"Xi",tag:"mo",output:"\u039E",tex:null,ttype:CONST},{input:"zeta",tag:"mi",output:"\u03B6",tex:null,ttype:CONST},{input:"*",tag:"mo",output:"\u22C5",tex:"cdot",ttype:CONST},{input:"**",tag:"mo",output:"\u22C6",tex:"star",ttype:CONST},{input:"//",tag:"mo",output:"/",tex:null,ttype:CONST},{input:"\\\\",tag:"mo",output:"\\",tex:"backslash",ttype:CONST},{input:"setminus",tag:"mo",output:"\\",tex:null,ttype:CONST},{input:"xx",tag:"mo",output:"\u00D7",tex:"times",ttype:CONST},{input:"-:",tag:"mo",output:"\u00F7",tex:"divide",ttype:CONST},{input:"@",tag:"mo",output:"\u26AC",tex:"circ",ttype:CONST},{input:"o+",tag:"mo",output:"\u2295",tex:"oplus",ttype:CONST},{input:"ox",tag:"mo",output:"\u2297",tex:"otimes",ttype:CONST},{input:"o.",tag:"mo",output:"\u2299",tex:"odot",ttype:CONST},{input:"sum",tag:"mo",output:"\u2211",tex:null,ttype:UNDEROVER},{input:"prod",tag:"mo",output:"\u220F",tex:null,ttype:UNDEROVER},{input:"^^",tag:"mo",output:"\u2227",t ex:"wedge",ttype:CONST},{input:"^^^",tag:"mo",output:"\u22C0",tex:"bigwedge",ttype:UNDEROVER},{input:"vv",tag:"mo",output:"\u2228",tex:"vee",ttype:CONST},{input:"vvv",tag:"mo",output:"\u22C1",tex:"bigvee",ttype:UNDEROVER},{input:"nn",tag:"mo",output:"\u2229",tex:"cap",ttype:CONST},{input:"nnn",tag:"mo",output:"\u22C2",tex:"bigcap",ttype:UNDEROVER},{input:"uu",tag:"mo",output:"\u222A",tex:"cup",ttype:CONST},{input:"uuu",tag:"mo",output:"\u22C3",tex:"bigcup",ttype:UNDEROVER},{input:"!=",tag:"mo",output:"\u2260",tex:"ne",ttype:CONST},{input:":=",tag:"mo",output:":=",tex:null,ttype:CONST},{input:"lt",tag:"mo",output:"<",tex:null,ttype:CONST},{input:"<=",tag:"mo",output:"\u2264",tex:"le",ttype:CONST},{input:"lt=",tag:"mo",output:"\u2264",tex:"leq",ttype:CONST},{input:">=",tag:"mo",output:"\u2265",tex:"ge",ttype:CONST},{input:"geq",tag:"mo",output:"\u2265",tex:null,ttype:CONST},{input:"-<",tag:"mo",output:"\u227A",tex:"prec",ttype:CONST},{input:"-lt",tag:"mo",output:"\u227A",tex:n ull,ttype:CONST},{input:">-",tag:"mo",output:"\u227B",tex:"succ",ttype:CONST},{input:"-<=",tag:"mo",output:"\u2AAF",tex:"preceq",ttype:CONST},{input:">-=",tag:"mo",output:"\u2AB0",tex:"succeq",ttype:CONST},{input:"in",tag:"mo",output:"\u2208",tex:null,ttype:CONST},{input:"!in",tag:"mo",output:"\u2209",tex:"notin",ttype:CONST},{input:"sub",tag:"mo",output:"\u2282",tex:"subset",ttype:CONST},{input:"sup",tag:"mo",output:"\u2283",tex:"supset",ttype:CONST},{input:"sube",tag:"mo",output:"\u2286",tex:"subseteq",ttype:CONST},{input:"supe",tag:"mo",output:"\u2287",tex:"supseteq",ttype:CONST},{input:"-=",tag:"mo",output:"\u2261",tex:"equiv",ttype:CONST},{input:"~=",tag:"mo",output:"\u2245",tex:"cong",ttype:CONST},{input:"~~",tag:"mo",output:"\u2248",tex:"approx",ttype:CONST},{input:"prop",tag:"mo",output:"\u221D",tex:"propto",ttype:CONST},{input:"and",tag:"mtext",output:"and",tex:null,ttype:SPACE},{input:"or",tag:"mtext",output:"or",tex:null,ttype:SPACE},{input:"not",tag:"mo",output:" \u00AC",tex:"neg",ttype:CONST},{input:"=>",tag:"mo",output:"\u21D2",tex:"implies",ttype:CONST},{input:"if",tag:"mo",output:"if",tex:null,ttype:SPACE},{input:"<=>",tag:"mo",output:"\u21D4",tex:"iff",ttype:CONST},{input:"AA",tag:"mo",output:"\u2200",tex:"forall",ttype:CONST},{input:"EE",tag:"mo",output:"\u2203",tex:"exists",ttype:CONST},{input:"_|_",tag:"mo",output:"\u22A5",tex:"bot",ttype:CONST},{input:"TT",tag:"mo",output:"\u22A4",tex:"top",ttype:CONST},{input:"|--",tag:"mo",output:"\u22A2",tex:"vdash",ttype:CONST},{input:"|==",tag:"mo",output:"\u22A8",tex:"models",ttype:CONST},{input:"(",tag:"mo",output:"(",tex:null,ttype:LEFTBRACKET},{input:")",tag:"mo",output:")",tex:null,ttype:RIGHTBRACKET},{input:"[",tag:"mo",output:"[",tex:null,ttype:LEFTBRACKET},{input:"]",tag:"mo",output:"]",tex:null,ttype:RIGHTBRACKET},{input:"{",tag:"mo",output:"{",tex:null,ttype:LEFTBRACKET},{input:"}",tag:"mo",output:"}",tex:null,ttype:RIGHTBRACKET},{input:"|",tag:"mo",output:"|",tex:null,ttype:L EFTRIGHT},{input:"(:",tag:"mo",output:"\u2329",tex:"langle",ttype:LEFTBRACKET},{input:":)",tag:"mo",output:"\u232A",tex:"rangle",ttype:RIGHTBRACKET},{input:"<<",tag:"mo",output:"\u2329",tex:null,ttype:LEFTBRACKET},{input:">>",tag:"mo",output:"\u232A",tex:null,ttype:RIGHTBRACKET},{input:"{:",tag:"mo",output:"{:",tex:null,ttype:LEFTBRACKET,invisible:true},{input:":}",tag:"mo",output:":}",tex:null,ttype:RIGHTBRACKET,invisible:true},{input:"int",tag:"mo",output:"\u222B",tex:null,ttype:CONST},{input:"dx",tag:"mi",output:"{:d x:}",tex:null,ttype:DEFINITION},{input:"dy",tag:"mi",output:"{:d y:}",tex:null,ttype:DEFINITION},{input:"dz",tag:"mi",output:"{:d z:}",tex:null,ttype:DEFINITION},{input:"dt",tag:"mi",output:"{:d t:}",tex:null,ttype:DEFINITION},{input:"oint",tag:"mo",output:"\u222E",tex:null,ttype:CONST},{input:"del",tag:"mo",output:"\u2202",tex:"partial",ttype:CONST},{input:"grad",tag:"mo",output:"\u2207",tex:"nabla",ttype:CONST},{input:"+-",tag:"mo",output:"\u00B1",tex:"pm", ttype:CONST},{input:"O/",tag:"mo",output:"\u2205",tex:"emptyset",ttype:CONST},{input:"oo",tag:"mo",output:"\u221E",tex:"infty",ttype:CONST},{input:"aleph",tag:"mo",output:"\u2135",tex:null,ttype:CONST},{input:"...",tag:"mo",output:"...",tex:"ldots",ttype:CONST},{input:":.",tag:"mo",output:"\u2234",tex:"therefore",ttype:CONST},{input:"/_",tag:"mo",output:"\u2220",tex:"angle",ttype:CONST},{input:"\\ ",tag:"mo",output:"\u00A0",tex:null,ttype:CONST},{input:"quad",tag:"mo",output:"\u00A0\u00A0",tex:null,ttype:CONST},{input:"qquad",tag:"mo",output:"\u00A0\u00A0\u00A0\u00A0",tex:null,ttype:CONST},{input:"cdots",tag:"mo",output:"\u22EF",tex:null,ttype:CONST},{input:"vdots",tag:"mo",output:"\u22EE",tex:null,ttype:CONST},{input:"ddots",tag:"mo",output:"\u22F1",tex:null,ttype:CONST},{input:"diamond",tag:"mo",output:"\u22C4",tex:null,ttype:CONST},{input:"square",tag:"mo",output:"\u25A1",tex:null,ttype:CONST},{input:"|__",tag:"mo",output:"\u230A",tex:"lfloor",ttype:CONST},{input:"__|",ta g:"mo",output:"\u230B",tex:"rfloor",ttype:CONST},{input:"|~",tag:"mo",output:"\u2308",tex:"lceiling",ttype:CONST},{input:"~|",tag:"mo",output:"\u2309",tex:"rceiling",ttype:CONST},{input:"CC",tag:"mo",output:"\u2102",tex:null,ttype:CONST},{input:"NN",tag:"mo",output:"\u2115",tex:null,ttype:CONST},{input:"QQ",tag:"mo",output:"\u211A",tex:null,ttype:CONST},{input:"RR",tag:"mo",output:"\u211D",tex:null,ttype:CONST},{input:"ZZ",tag:"mo",output:"\u2124",tex:null,ttype:CONST},{input:"f",tag:"mi",output:"f",tex:null,ttype:UNARY,func:true},{input:"g",tag:"mi",output:"g",tex:null,ttype:UNARY,func:true},{input:"lim",tag:"mo",output:"lim",tex:null,ttype:UNDEROVER},{input:"Lim",tag:"mo",output:"Lim",tex:null,ttype:UNDEROVER},{input:"sin",tag:"mo",output:"sin",tex:null,ttype:UNARY,func:true},{input:"cos",tag:"mo",output:"cos",tex:null,ttype:UNARY,func:true},{input:"tan",tag:"mo",output:"tan",tex:null,ttype:UNARY,func:true},{input:"sinh",tag:"mo",output:"sinh",tex:null,ttype:UNARY,func:tru e},{input:"cosh",tag:"mo",output:"cosh",tex:null,ttype:UNARY,func:true},{input:"tanh",tag:"mo",output:"tanh",tex:null,ttype:UNARY,func:true},{input:"cot",tag:"mo",output:"cot",tex:null,ttype:UNARY,func:true},{input:"sec",tag:"mo",output:"sec",tex:null,ttype:UNARY,func:true},{input:"csc",tag:"mo",output:"csc",tex:null,ttype:UNARY,func:true},{input:"log",tag:"mo",output:"log",tex:null,ttype:UNARY,func:true},{input:"ln",tag:"mo",output:"ln",tex:null,ttype:UNARY,func:true},{input:"det",tag:"mo",output:"det",tex:null,ttype:UNARY,func:true},{input:"dim",tag:"mo",output:"dim",tex:null,ttype:CONST},{input:"mod",tag:"mo",output:"mod",tex:null,ttype:CONST},{input:"gcd",tag:"mo",output:"gcd",tex:null,ttype:UNARY,func:true},{input:"lcm",tag:"mo",output:"lcm",tex:null,ttype:UNARY,func:true},{input:"lub",tag:"mo",output:"lub",tex:null,ttype:CONST},{input:"glb",tag:"mo",output:"glb",tex:null,ttype:CONST},{input:"min",tag:"mo",output:"min",tex:null,ttype:UNDEROVER},{input:"max",tag:"mo",out put:"max",tex:null,ttype:UNDEROVER},{input:"uarr",tag:"mo",output:"\u2191",tex:"uparrow",ttype:CONST},{input:"darr",tag:"mo",output:"\u2193",tex:"downarrow",ttype:CONST},{input:"rarr",tag:"mo",output:"\u2192",tex:"rightarrow",ttype:CONST},{input:"->",tag:"mo",output:"\u2192",tex:"to",ttype:CONST},{input:">->",tag:"mo",output:"\u21A3",tex:"rightarrowtail",ttype:CONST},{input:"->>",tag:"mo",output:"\u21A0",tex:"twoheadrightarrow",ttype:CONST},{input:">->>",tag:"mo",output:"\u2916",tex:"twoheadrightarrowtail",ttype:CONST},{input:"|->",tag:"mo",output:"\u21A6",tex:"mapsto",ttype:CONST},{input:"larr",tag:"mo",output:"\u2190",tex:"leftarrow",ttype:CONST},{input:"harr",tag:"mo",output:"\u2194",tex:"leftrightarrow",ttype:CONST},{input:"rArr",tag:"mo",output:"\u21D2",tex:"Rightarrow",ttype:CONST},{input:"lArr",tag:"mo",output:"\u21D0",tex:"Leftarrow",ttype:CONST},{input:"hArr",tag:"mo",output:"\u21D4",tex:"Leftrightarrow",ttype:CONST},{input:"sqrt",tag:"msqrt",output:"sqrt",tex:null, ttype:UNARY},{input:"root",tag:"mroot",output:"root",tex:null,ttype:BINARY},{input:"frac",tag:"mfrac",output:"/",tex:null,ttype:BINARY},{input:"/",tag:"mfrac",output:"/",tex:null,ttype:INFIX},{input:"stackrel",tag:"mover",output:"stackrel",tex:null,ttype:BINARY},{input:"_",tag:"msub",output:"_",tex:null,ttype:INFIX},{input:"^",tag:"msup",output:"^",tex:null,ttype:INFIX},{input:"hat",tag:"mover",output:"\u005E",tex:null,ttype:UNARY,acc:true},{input:"bar",tag:"mover",output:"\u00AF",tex:"overline",ttype:UNARY,acc:true},{input:"vec",tag:"mover",output:"\u2192",tex:null,ttype:UNARY,acc:true},{input:"dot",tag:"mover",output:".",tex:null,ttype:UNARY,acc:true},{input:"ddot",tag:"mover",output:"..",tex:null,ttype:UNARY,acc:true},{input:"ul",tag:"munder",output:"\u0332",tex:"underline",ttype:UNARY,acc:true},{input:"text",tag:"mtext",output:"text",tex:null,ttype:TEXT},{input:"mbox",tag:"mtext",output:"mbox",tex:null,ttype:TEXT},AMquote,{input:"bb",tag:"mstyle",atname:"fontweight",atva l:"bold",output:"bb",tex:null,ttype:UNARY},{input:"mathbf",tag:"mstyle",atname:"fontweight",atval:"bold",output:"mathbf",tex:null,ttype:UNARY},{input:"sf",tag:"mstyle",atname:"fontfamily",atval:"sans-serif",output:"sf",tex:null,ttype:UNARY},{input:"mathsf",tag:"mstyle",atname:"fontfamily",atval:"sans-serif",output:"mathsf",tex:null,ttype:UNARY},{input:"bbb",tag:"mstyle",atname:"mathvariant",atval:"double-struck",output:"bbb",tex:null,ttype:UNARY,codes:AMbbb},{input:"mathbb",tag:"mstyle",atname:"mathvariant",atval:"double-struck",output:"mathbb",tex:null,ttype:UNARY,codes:AMbbb},{input:"cc",tag:"mstyle",atname:"mathvariant",atval:"script",output:"cc",tex:null,ttype:UNARY,codes:AMcal},{input:"mathcal",tag:"mstyle",atname:"mathvariant",atval:"script",output:"mathcal",tex:null,ttype:UNARY,codes:AMcal},{input:"tt",tag:"mstyle",atname:"fontfamily",atval:"monospace",output:"tt",tex:null,ttype:UNARY},{input:"mathtt",tag:"mstyle",atname:"fontfamily",atval:"monospace",output:"mathtt", tex:null,ttype:UNARY},{input:"fr",tag:"mstyle",atname:"mathvariant",atval:"fraktur",output:"fr",tex:null,ttype:UNARY,codes:AMfrk},{input:"mathfrak",tag:"mstyle",atname:"mathvariant",atval:"fraktur",output:"mathfrak",tex:null,ttype:UNARY,codes:AMfrk}];function compareNames(b,a){if(b.input>a.input){return 1}else{return -1}}var AMnames=[];function initSymbols(){var b=[],a;for(a=0;a<AMsymbols.length;a++){if(AMsymbols[a].tex){b[b.length]={input:AMsymbols[a].tex,tag:AMsymbols[a].tag,output:AMsymbols[a].output,ttype:AMsymbols[a].ttype}}}AMsymbols=AMsymbols.concat(b);refreshSymbols()}function refreshSymbols(){var a;AMsymbols.sort(compareNames);for(a=0;a<AMsymbols.length;a++){AMnames[a]=AMsymbols[a].input}LMsymbols.sort(compareNames);for(a=0;a<LMsymbols.length;a++){LMnames[a]=LMsymbols[a].input}}function define(b,a){if(b.substr(0,1)=="\\"){LMsymbols=LMsymbols.concat([{input:b,tag:"mo",output:a,ttype:DEFINITION}])}else{AMsymbols=AMsymbols.concat([{input:b,tag:"mo",output:a,tex:null,tt ype:DEFINITION}])}refreshSymbols()}function AMremoveCharsAndBlanks(c,d){var a;if(c.charAt(d)=="\\"&&c.charAt(d+1)!="\\"&&c.charAt(d+1)!=" "){a=c.slice(d+1)}else{a=c.slice(d)}for(var b=0;b<a.length&&a.charCodeAt(b)<=32;b=b+1){}return a.slice(b)}function position(b,f,g){if(g==0){var d,a;g=-1;d=b.length;while(g+1<d){a=(g+d)>>1;if(b[a]<f){g=a}else{d=a}}return d}else{for(var c=g;c<b.length&&b[c]<f;c++){}}return c}function AMgetSymbol(h){var a=0;var b=0;var d;var m;var n;var f="";var g=true;for(var c=1;c<=h.length&&g;c++){m=h.slice(0,c);b=a;a=position(AMnames,m,b);if(a<AMnames.length&&h.slice(0,AMnames[a].length)==AMnames[a]){f=AMnames[a];d=a;c=f.length}g=a<AMnames.length&&h.slice(0,AMnames[a].length)>=AMnames[a]}AMpreviousSymbol=AMcurrentSymbol;if(f!=""){AMcurrentSymbol=AMsymbols[d].ttype;return AMsymbols[d]}AMcurrentSymbol=CONST;a=1;m=h.slice(0,1);var l=true;while("0"<=m&&m<="9"&&a<=h.length){m=h.slice(a,a+1);a++}if(m==decimalsign){m=h.slice(a,a+1);if("0"<=m&&m<="9"){l=false;a++ ;while("0"<=m&&m<="9"&&a<=h.length){m=h.slice(a,a+1);a++}}}if((l&&a>1)||a>2){m=h.slice(0,a-1);n="mn"}else{a=2;m=h.slice(0,1);n=(("A">m||m>"Z")&&("a">m||m>"z")?"mo":"mi")}if(m=="-"&&AMpreviousSymbol==INFIX){AMcurrentSymbol=INFIX;return{input:m,tag:n,output:m,ttype:UNARY,func:true}}return{input:m,tag:n,output:m,ttype:CONST}}function AMremoveBrackets(b){var a;if(b.nodeName=="mrow"){a=b.firstChild.firstChild.nodeValue;if(a=="("||a=="["||a=="{"){b.removeChild(b.firstChild)}}if(b.nodeName=="mrow"){a=b.lastChild.firstChild.nodeValue;if(a==")"||a=="]"||a=="}"){b.removeChild(b.lastChild)}}}var AMnestingDepth,AMpreviousSymbol,AMcurrentSymbol;function AMparseSexpr(h){var d,b,k,f,m,g=document.createDocumentFragment();h=AMremoveCharsAndBlanks(h,0);d=AMgetSymbol(h);if(d==null||d.ttype==RIGHTBRACKET&&AMnestingDepth>0){return[null,h]}if(d.ttype==DEFINITION){h=d.output+AMremoveCharsAndBlanks(h,d.input.length);d=AMgetSymbol(h)}switch(d.ttype){case UNDEROVER:case CONST:h=AMremoveCharsAndBlanks (h,d.input.length);return[createMmlNode(d.tag,document.createTextNode(d.output)),h];case LEFTBRACKET:AMnestingDepth++;h=AMremoveCharsAndBlanks(h,d.input.length);k=AMparseExpr(h,true);AMnestingDepth--;if(typeof d.invisible=="boolean"&&d.invisible){b=createMmlNode("mrow",k[0])}else{b=createMmlNode("mo",document.createTextNode(d.output));b=createMmlNode("mrow",b);b.appendChild(k[0])}return[b,k[1]];case TEXT:if(d!=AMquote){h=AMremoveCharsAndBlanks(h,d.input.length)}if(h.charAt(0)=="{"){f=h.indexOf("}")}else{if(h.charAt(0)=="("){f=h.indexOf(")")}else{if(h.charAt(0)=="["){f=h.indexOf("]")}else{if(d==AMquote){f=h.slice(1).indexOf('"')+1}else{f=0}}}}if(f==-1){f=h.length}m=h.slice(1,f);if(m.charAt(0)==" "){b=createMmlNode("mspace");b.setAttribute("width","1ex");g.appendChild(b)}g.appendChild(createMmlNode(d.tag,document.createTextNode(m)));if(m.charAt(m.length-1)==" "){b=createMmlNode("mspace");b.setAttribute("width","1ex");g.appendChild(b)}h=AMremoveCharsAndBlanks(h,f+1);return[crea teMmlNode("mrow",g),h];case UNARY:h=AMremoveCharsAndBlanks(h,d.input.length);k=AMparseSexpr(h);if(k[0]==null){return[createMmlNode(d.tag,document.createTextNode(d.output)),h]}if(typeof d.func=="boolean"&&d.func){m=h.charAt(0);if(m=="^"||m=="_"||m=="/"||m=="|"||m==","){return[createMmlNode(d.tag,document.createTextNode(d.output)),h]}else{b=createMmlNode("mrow",createMmlNode(d.tag,document.createTextNode(d.output)));b.appendChild(k[0]);return[b,k[1]]}}AMremoveBrackets(k[0]);if(d.input=="sqrt"){return[createMmlNode(d.tag,k[0]),k[1]]}else{if(typeof d.acc=="boolean"&&d.acc){b=createMmlNode(d.tag,k[0]);b.appendChild(createMmlNode("mo",document.createTextNode(d.output)));return[b,k[1]]}else{if(!isIE&&typeof d.codes!="undefined"){for(f=0;f<k[0].childNodes.length;f++){if(k[0].childNodes[f].nodeName=="mi"||k[0].nodeName=="mi"){m=(k[0].nodeName=="mi"?k[0].firstChild.nodeValue:k[0].childNodes[f].firstChild.nodeValue);var l=[];for(var c=0;c<m.length;c++){if(m.charCodeAt(c)>64&&m.charCode At(c)<91){l=l+String.fromCharCode(d.codes[m.charCodeAt(c)-65])}else{l=l+m.charAt(c)}}if(k[0].nodeName=="mi"){k[0]=createMmlNode("mo").appendChild(document.createTextNode(l))}else{k[0].replaceChild(createMmlNode("mo").appendChild(document.createTextNode(l)),k[0].childNodes[f])}}}}b=createMmlNode(d.tag,k[0]);b.setAttribute(d.atname,d.atval);return[b,k[1]]}}case BINARY:h=AMremoveCharsAndBlanks(h,d.input.length);k=AMparseSexpr(h);if(k[0]==null){return[createMmlNode("mo",document.createTextNode(d.input)),h]}AMremoveBrackets(k[0]);var a=AMparseSexpr(k[1]);if(a[0]==null){return[createMmlNode("mo",document.createTextNode(d.input)),h]}AMremoveBrackets(a[0]);if(d.input=="root"||d.input=="stackrel"){g.appendChild(a[0])}g.appendChild(k[0]);if(d.input=="frac"){g.appendChild(a[0])}return[createMmlNode(d.tag,g),a[1]];case INFIX:h=AMremoveCharsAndBlanks(h,d.input.length);return[createMmlNode("mo",document.createTextNode(d.output)),h];case SPACE:h=AMremoveCharsAndBlanks(h,d.input.length);b=c reateMmlNode("mspace");b.setAttribute("width","1ex");g.appendChild(b);g.appendChild(createMmlNode(d.tag,document.createTextNode(d.output)));b=createMmlNode("mspace");b.setAttribute("width","1ex");g.appendChild(b);return[createMmlNode("mrow",g),h];case LEFTRIGHT:AMnestingDepth++;h=AMremoveCharsAndBlanks(h,d.input.length);k=AMparseExpr(h,false);AMnestingDepth--;var m="";if(k[0].lastChild!=null){m=k[0].lastChild.firstChild.nodeValue}if(m=="|"){b=createMmlNode("mo",document.createTextNode(d.output));b=createMmlNode("mrow",b);b.appendChild(k[0]);return[b,k[1]]}else{b=createMmlNode("mo",document.createTextNode("\u2223"));b=createMmlNode("mrow",b);return[b,h]}default:h=AMremoveCharsAndBlanks(h,d.input.length);return[createMmlNode(d.tag,document.createTextNode(d.output)),h]}}function AMparseIexpr(h){var a,j,g,d,f,b;h=AMremoveCharsAndBlanks(h,0);j=AMgetSymbol(h);f=AMparseSexpr(h);d=f[0];h=f[1];a=AMgetSymbol(h);if(a.ttype==INFIX&&a.input!="/"){h=AMremoveCharsAndBlanks(h,a.input.length );f=AMparseSexpr(h);if(f[0]==null){f[0]=createMmlNode("mo",document.createTextNode("\u25A1"))}else{AMremoveBrackets(f[0])}h=f[1];if(a.input=="_"){g=AMgetSymbol(h);b=(j.ttype==UNDEROVER);if(g.input=="^"){h=AMremoveCharsAndBlanks(h,g.input.length);var c=AMparseSexpr(h);AMremoveBrackets(c[0]);h=c[1];d=createMmlNode((b?"munderover":"msubsup"),d);d.appendChild(f[0]);d.appendChild(c[0]);d=createMmlNode("mrow",d)}else{d=createMmlNode((b?"munder":"msub"),d);d.appendChild(f[0])}}else{d=createMmlNode(a.tag,d);d.appendChild(f[0])}}return[d,h]}function AMparseExpr(p,q){var x,o,a,t,z=[],g=document.createDocumentFragment();do{p=AMremoveCharsAndBlanks(p,0);a=AMparseIexpr(p);o=a[0];p=a[1];x=AMgetSymbol(p);if(x.ttype==INFIX&&x.input=="/"){p=AMremoveCharsAndBlanks(p,x.input.length);a=AMparseIexpr(p);if(a[0]==null){a[0]=createMmlNode("mo",document.createTextNode("\u25A1"))}else{AMremoveBrackets(a[0])}p=a[1];AMremoveBrackets(o);o=createMmlNode(x.tag,o);o.appendChild(a[0]);g.appendChild(o);x=AMg etSymbol(p)}else{if(o!=undefined){g.appendChild(o)}}}while((x.ttype!=RIGHTBRACKET&&(x.ttype!=LEFTRIGHT||q)||AMnestingDepth==0)&&x!=null&&x.output!="");if(x.ttype==RIGHTBRACKET||x.ttype==LEFTRIGHT){var v=g.childNodes.length;if(v>0&&g.childNodes[v-1].nodeName=="mrow"&&v>1&&g.childNodes[v-2].nodeName=="mo"&&g.childNodes[v-2].firstChild.nodeValue==","){var A=g.childNodes[v-1].lastChild.firstChild.nodeValue;if(A==")"||A=="]"){var c=g.childNodes[v-1].firstChild.firstChild.nodeValue;if(c=="("&&A==")"&&x.output!="}"||c=="["&&A=="]"){var d=[];var w=true;var l=g.childNodes.length;for(t=0;w&&t<l;t=t+2){d[t]=[];o=g.childNodes[t];if(w){w=o.nodeName=="mrow"&&(t==l-1||o.nextSibling.nodeName=="mo"&&o.nextSibling.firstChild.nodeValue==",")&&o.firstChild.firstChild.nodeValue==c&&o.lastChild.firstChild.nodeValue==A}if(w){for(var s=0;s<o.childNodes.length;s++){if(o.childNodes[s].firstChild.nodeValue==","){d[t][d[t].length]=s}}}if(w&&t>1){w=d[t].length==d[t-2].length}}if(w){var f,b,h,r,y=documen t.createDocumentFragment();for(t=0;t<l;t=t+2){f=document.createDocumentFragment();b=document.createDocumentFragment();o=g.firstChild;h=o.childNodes.length;r=0;o.removeChild(o.firstChild);for(s=1;s<h-1;s++){if(typeof d[t][r]!="undefined"&&s==d[t][r]){o.removeChild(o.firstChild);f.appendChild(createMmlNode("mtd",b));r++}else{b.appendChild(o.firstChild)}}f.appendChild(createMmlNode("mtd",b));if(g.childNodes.length>2){g.removeChild(g.firstChild);g.removeChild(g.firstChild)}y.appendChild(createMmlNode("mtr",f))}o=createMmlNode("mtable",y);if(typeof x.invisible=="boolean"&&x.invisible){o.setAttribute("columnalign","left")}g.replaceChild(o,g.firstChild)}}}}p=AMremoveCharsAndBlanks(p,x.input.length);if(typeof x.invisible!="boolean"||!x.invisible){o=createMmlNode("mo",document.createTextNode(x.output));g.appendChild(o)}}return[g,p]}function parseMath(c,b){var d,a;AMnestingDepth=0;d=b?LMparseExpr(c.replace(/^\s+/g,""),false,false)[0]:AMparseExpr(c.replace(/^\s+/g,""),false)[0];a=creat eMmlNode("mstyle",d);a.setAttribute("mathcolor",mathcolor);a.setAttribute("fontfamily",mathfontfamily);a.setAttribute("mathsize",mathfontsize);if(displaystyle){a.setAttribute("displaystyle","true")}a=createMmlNode("math",a);if(showasciiformulaonhover){a.setAttribute("title",c.replace(/\s+/g," "))}return a}function strarr2docFrag(a,d,g){var k=document.createDocumentFragment();var h=false;for(var f=0;f<a.length;f++){if(h){k.appendChild(parseMath(a[f],g))}else{var b=(d?a[f].split("\n\n"):[a[f]]);k.appendChild(createElementXHTML("span").appendChild(document.createTextNode(b[0])));for(var c=1;c<b.length;c++){k.appendChild(createElementXHTML("p"));k.appendChild(createElementXHTML("span").appendChild(document.createTextNode(b[c])))}}h=!h}return k}function AMautomathrec(m){var b="\\\\[a-zA-Z]+|\\\\\\s|";var k="\\b(?:oo|lim|ln|int|oint|del|grad|aleph|prod|prop|sinh|cosh|tanh|cos|sec|pi|tt|fr|sf|sube|supe|sub|sup|det|mod|gcd|lcm|min|max|vec|ddot|ul|chi|eta|nu|mu)(?![a-z])|";var l="\\b (?:sum|ox|log|sin|tan|dim|hat|bar|dot)(?![a-z])|";var g="|\\bI\\b|\\bin\\b|\\btext\\b";var a="NN|ZZ|QQ|RR|CC|TT|AA|EE|sqrt|dx|dy|dz|dt|xx|vv|uu|nn|bb|cc|csc|cot|alpha|beta|delta|Delta|epsilon|gamma|Gamma|kappa|lambda|Lambda|omega|phi|Phi|Pi|psi|Psi|rho|sigma|Sigma|tau|theta|Theta|xi|Xi|zeta";var j="[a-zA-HJ-Z](?=(?:[^a-zA-Z]|$|"+k+l+a+"))|";var c=j+b+"\\d+|[-()[\\]{}+=*&^_%\\@/<>,\\|!:;'~]|\\.(?!(?:\x20|$))|"+k+l+a;var n=new RegExp("(^|\\s)((("+c+")\\s?)(("+c+g+")\\s?)+)([,.?]?(?=\\s|$))","g");m=m.replace(n," `$2`$7");var f=m.split(AMdelimiter1);var h=new RegExp("(^|\\s)([b-zB-HJ-Z+*<>]|"+b+k+a+")(\\s|\\n|$)","g");var d=new RegExp("(^|\\s)([a-z]|"+b+k+a+")([,.])","g");for(i=0;i<f.length;i++){if(i%2==0){f[i]=f[i].replace(h," `$2`$3");f[i]=f[i].replace(d," `$2`$3");f[i]=f[i].replace(/([{}[\]])/,"`$1`")}}m=f.join(AMdelimiter1);m=m.replace(/((^|\s)\([a-zA-Z]{2,}.*?)\)`/g,"$1`)");m=m.replace(/`(\((a\s|in\s))(.*?[a-zA-Z]{2,}\))/g,"$1`$3");m=m.replace(/\sin`/g,"` in");m=m.replace(/ `(\(\w\)[,.]?(\s|\n|$))/g,"$1`");m=m.replace(/`([0-9.]+|e.g|i.e)`(\.?)/gi,"$1$2");m=m.replace(/`([0-9.]+:)`/g,"$1");return m}function processNodeR(c,h,b){var k,j,f,a,d;if(c.childNodes.length==0){if((c.nodeType!=8||h)&&c.parentNode.nodeName!="form"&&c.parentNode.nodeName!="FORM"&&c.parentNode.nodeName!="textarea"&&c.parentNode.nodeName!="TEXTAREA"){j=c.nodeValue;if(!(j==null)){j=j.replace(/\r\n\r\n/g,"\n\n");j=j.replace(/\x20+/g," ");j=j.replace(/\s*\r\n/g," ");if(b){k=(j.indexOf("$")==-1?false:true);j=j.replace(/([^\\])\$/g,"$1 $");j=j.replace(/^\$/," $");f=j.split(" $");for(d=0;d<f.length;d++){f[d]=f[d].replace(/\\\$/g,"$")}}else{k=false;j=j.replace(new RegExp(AMescape1,"g"),function(){k=true;return"AMescape1"});j=j.replace(/\\?end{?a?math}?/i,function(){automathrecognize=false;k=true;return""});j=j.replace(/amath\b|\\begin{a?math}/i,function(){automathrecognize=true;k=true;return""});f=j.split(AMdelimiter1);if(automathrecognize){for(d=0;d<f.length;d++){if(d%2==0){f[d]=AMau tomathrec(f[d])}}}j=f.join(AMdelimiter1);f=j.split(AMdelimiter1);for(d=0;d<f.length;d++){f[d]=f[d].replace(/AMescape1/g,AMdelimiter1)}}if(f.length>1||k){if(!noMathML){a=strarr2docFrag(f,c.nodeType==8,b);var g=a.childNodes.length;c.parentNode.replaceChild(a,c);return g-1}else{return 0}}}}else{return 0}}else{if(c.nodeName!="math"){for(d=0;d<c.childNodes.length;d++){d+=processNodeR(c.childNodes[d],h,b)}}}return 0}function AMprocessNode(h,c,a){var g,b;if(a!=null){g=document.getElementsByTagName("span");for(var d=0;d<g.length;d++){if(g[d].className=="AM"){processNodeR(g[d],c,false)}}}else{try{b=h.innerHTML}catch(f){}if(b==null||/amath\b|\\begin{a?math}/i.test(b)||b.indexOf(AMdelimiter1+" ")!=-1||b.slice(-1)==AMdelimiter1||b.indexOf(AMdelimiter1+"<")!=-1||b.indexOf(AMdelimiter1+"\n")!=-1){processNodeR(h,c,false)}}}var LMsymbols=[{input:"\\alpha",tag:"mi",output:"\u03B1",ttype:CONST},{input:"\\beta",tag:"mi",output:"\u03B2",ttype:CONST},{input:"\\gamma",tag:"mi",output:"\u03B3",tty pe:CONST},{input:"\\delta",tag:"mi",output:"\u03B4",ttype:CONST},{input:"\\epsilon",tag:"mi",output:"\u03B5",ttype:CONST},{input:"\\varepsilon",tag:"mi",output:"\u025B",ttype:CONST},{input:"\\zeta",tag:"mi",output:"\u03B6",ttype:CONST},{input:"\\eta",tag:"mi",output:"\u03B7",ttype:CONST},{input:"\\theta",tag:"mi",output:"\u03B8",ttype:CONST},{input:"\\vartheta",tag:"mi",output:"\u03D1",ttype:CONST},{input:"\\iota",tag:"mi",output:"\u03B9",ttype:CONST},{input:"\\kappa",tag:"mi",output:"\u03BA",ttype:CONST},{input:"\\lambda",tag:"mi",output:"\u03BB",ttype:CONST},{input:"\\mu",tag:"mi",output:"\u03BC",ttype:CONST},{input:"\\nu",tag:"mi",output:"\u03BD",ttype:CONST},{input:"\\xi",tag:"mi",output:"\u03BE",ttype:CONST},{input:"\\pi",tag:"mi",output:"\u03C0",ttype:CONST},{input:"\\varpi",tag:"mi",output:"\u03D6",ttype:CONST},{input:"\\rho",tag:"mi",output:"\u03C1",ttype:CONST},{input:"\\varrho",tag:"mi",output:"\u03F1",ttype:CONST},{input:"\\varsigma",tag:"mi",output:"\u03C2",ttype :CONST},{input:"\\sigma",tag:"mi",output:"\u03C3",ttype:CONST},{input:"\\tau",tag:"mi",output:"\u03C4",ttype:CONST},{input:"\\upsilon",tag:"mi",output:"\u03C5",ttype:CONST},{input:"\\phi",tag:"mi",output:"\u03C6",ttype:CONST},{input:"\\varphi",tag:"mi",output:"\u03D5",ttype:CONST},{input:"\\chi",tag:"mi",output:"\u03C7",ttype:CONST},{input:"\\psi",tag:"mi",output:"\u03C8",ttype:CONST},{input:"\\omega",tag:"mi",output:"\u03C9",ttype:CONST},{input:"\\Gamma",tag:"mo",output:"\u0393",ttype:CONST},{input:"\\Delta",tag:"mo",output:"\u0394",ttype:CONST},{input:"\\Theta",tag:"mo",output:"\u0398",ttype:CONST},{input:"\\Lambda",tag:"mo",output:"\u039B",ttype:CONST},{input:"\\Xi",tag:"mo",output:"\u039E",ttype:CONST},{input:"\\Pi",tag:"mo",output:"\u03A0",ttype:CONST},{input:"\\Sigma",tag:"mo",output:"\u03A3",ttype:CONST},{input:"\\Upsilon",tag:"mo",output:"\u03A5",ttype:CONST},{input:"\\Phi",tag:"mo",output:"\u03A6",ttype:CONST},{input:"\\Psi",tag:"mo",output:"\u03A8",ttype:CONST},{in put:"\\Omega",tag:"mo",output:"\u03A9",ttype:CONST},{input:"\\frac12",tag:"mo",output:"\u00BD",ttype:CONST},{input:"\\frac14",tag:"mo",output:"\u00BC",ttype:CONST},{input:"\\frac34",tag:"mo",output:"\u00BE",ttype:CONST},{input:"\\frac13",tag:"mo",output:"\u2153",ttype:CONST},{input:"\\frac23",tag:"mo",output:"\u2154",ttype:CONST},{input:"\\frac15",tag:"mo",output:"\u2155",ttype:CONST},{input:"\\frac25",tag:"mo",output:"\u2156",ttype:CONST},{input:"\\frac35",tag:"mo",output:"\u2157",ttype:CONST},{input:"\\frac45",tag:"mo",output:"\u2158",ttype:CONST},{input:"\\frac16",tag:"mo",output:"\u2159",ttype:CONST},{input:"\\frac56",tag:"mo",output:"\u215A",ttype:CONST},{input:"\\frac18",tag:"mo",output:"\u215B",ttype:CONST},{input:"\\frac38",tag:"mo",output:"\u215C",ttype:CONST},{input:"\\frac58",tag:"mo",output:"\u215D",ttype:CONST},{input:"\\frac78",tag:"mo",output:"\u215E",ttype:CONST},{input:"\\pm",tag:"mo",output:"\u00B1",ttype:CONST},{input:"\\mp",tag:"mo",output:"\u2213",ttype: CONST},{input:"\\triangleleft",tag:"mo",output:"\u22B2",ttype:CONST},{input:"\\triangleright",tag:"mo",output:"\u22B3",ttype:CONST},{input:"\\cdot",tag:"mo",output:"\u22C5",ttype:CONST},{input:"\\star",tag:"mo",output:"\u22C6",ttype:CONST},{input:"\\ast",tag:"mo",output:"\u002A",ttype:CONST},{input:"\\times",tag:"mo",output:"\u00D7",ttype:CONST},{input:"\\div",tag:"mo",output:"\u00F7",ttype:CONST},{input:"\\circ",tag:"mo",output:"\u2218",ttype:CONST},{input:"\\bullet",tag:"mo",output:"\u2022",ttype:CONST},{input:"\\oplus",tag:"mo",output:"\u2295",ttype:CONST},{input:"\\ominus",tag:"mo",output:"\u2296",ttype:CONST},{input:"\\otimes",tag:"mo",output:"\u2297",ttype:CONST},{input:"\\bigcirc",tag:"mo",output:"\u25CB",ttype:CONST},{input:"\\oslash",tag:"mo",output:"\u2298",ttype:CONST},{input:"\\odot",tag:"mo",output:"\u2299",ttype:CONST},{input:"\\land",tag:"mo",output:"\u2227",ttype:CONST},{input:"\\wedge",tag:"mo",output:"\u2227",ttype:CONST},{input:"\\lor",tag:"mo",output:"\u2 228",ttype:CONST},{input:"\\vee",tag:"mo",output:"\u2228",ttype:CONST},{input:"\\cap",tag:"mo",output:"\u2229",ttype:CONST},{input:"\\cup",tag:"mo",output:"\u222A",ttype:CONST},{input:"\\sqcap",tag:"mo",output:"\u2293",ttype:CONST},{input:"\\sqcup",tag:"mo",output:"\u2294",ttype:CONST},{input:"\\uplus",tag:"mo",output:"\u228E",ttype:CONST},{input:"\\amalg",tag:"mo",output:"\u2210",ttype:CONST},{input:"\\bigtriangleup",tag:"mo",output:"\u25B3",ttype:CONST},{input:"\\bigtriangledown",tag:"mo",output:"\u25BD",ttype:CONST},{input:"\\dag",tag:"mo",output:"\u2020",ttype:CONST},{input:"\\dagger",tag:"mo",output:"\u2020",ttype:CONST},{input:"\\ddag",tag:"mo",output:"\u2021",ttype:CONST},{input:"\\ddagger",tag:"mo",output:"\u2021",ttype:CONST},{input:"\\lhd",tag:"mo",output:"\u22B2",ttype:CONST},{input:"\\rhd",tag:"mo",output:"\u22B3",ttype:CONST},{input:"\\unlhd",tag:"mo",output:"\u22B4",ttype:CONST},{input:"\\unrhd",tag:"mo",output:"\u22B5",ttype:CONST},{input:"\\sum",tag:"mo",outp ut:"\u2211",ttype:UNDEROVER},{input:"\\prod",tag:"mo",output:"\u220F",ttype:UNDEROVER},{input:"\\bigcap",tag:"mo",output:"\u22C2",ttype:UNDEROVER},{input:"\\bigcup",tag:"mo",output:"\u22C3",ttype:UNDEROVER},{input:"\\bigwedge",tag:"mo",output:"\u22C0",ttype:UNDEROVER},{input:"\\bigvee",tag:"mo",output:"\u22C1",ttype:UNDEROVER},{input:"\\bigsqcap",tag:"mo",output:"\u2A05",ttype:UNDEROVER},{input:"\\bigsqcup",tag:"mo",output:"\u2A06",ttype:UNDEROVER},{input:"\\coprod",tag:"mo",output:"\u2210",ttype:UNDEROVER},{input:"\\bigoplus",tag:"mo",output:"\u2A01",ttype:UNDEROVER},{input:"\\bigotimes",tag:"mo",output:"\u2A02",ttype:UNDEROVER},{input:"\\bigodot",tag:"mo",output:"\u2A00",ttype:UNDEROVER},{input:"\\biguplus",tag:"mo",output:"\u2A04",ttype:UNDEROVER},{input:"\\int",tag:"mo",output:"\u222B",ttype:CONST},{input:"\\oint",tag:"mo",output:"\u222E",ttype:CONST},{input:":=",tag:"mo",output:":=",ttype:CONST},{input:"\\lt",tag:"mo",output:"<",ttype:CONST},{input:"\\gt",tag:"mo",outpu t:">",ttype:CONST},{input:"\\ne",tag:"mo",output:"\u2260",ttype:CONST},{input:"\\neq",tag:"mo",output:"\u2260",ttype:CONST},{input:"\\le",tag:"mo",output:"\u2264",ttype:CONST},{input:"\\leq",tag:"mo",output:"\u2264",ttype:CONST},{input:"\\leqslant",tag:"mo",output:"\u2264",ttype:CONST},{input:"\\ge",tag:"mo",output:"\u2265",ttype:CONST},{input:"\\geq",tag:"mo",output:"\u2265",ttype:CONST},{input:"\\geqslant",tag:"mo",output:"\u2265",ttype:CONST},{input:"\\equiv",tag:"mo",output:"\u2261",ttype:CONST},{input:"\\ll",tag:"mo",output:"\u226A",ttype:CONST},{input:"\\gg",tag:"mo",output:"\u226B",ttype:CONST},{input:"\\doteq",tag:"mo",output:"\u2250",ttype:CONST},{input:"\\prec",tag:"mo",output:"\u227A",ttype:CONST},{input:"\\succ",tag:"mo",output:"\u227B",ttype:CONST},{input:"\\preceq",tag:"mo",output:"\u227C",ttype:CONST},{input:"\\succeq",tag:"mo",output:"\u227D",ttype:CONST},{input:"\\subset",tag:"mo",output:"\u2282",ttype:CONST},{input:"\\supset",tag:"mo",output:"\u2283",ttype: CONST},{input:"\\subseteq",tag:"mo",output:"\u2286",ttype:CONST},{input:"\\supseteq",tag:"mo",output:"\u2287",ttype:CONST},{input:"\\sqsubset",tag:"mo",output:"\u228F",ttype:CONST},{input:"\\sqsupset",tag:"mo",output:"\u2290",ttype:CONST},{input:"\\sqsubseteq",tag:"mo",output:"\u2291",ttype:CONST},{input:"\\sqsupseteq",tag:"mo",output:"\u2292",ttype:CONST},{input:"\\sim",tag:"mo",output:"\u223C",ttype:CONST},{input:"\\simeq",tag:"mo",output:"\u2243",ttype:CONST},{input:"\\approx",tag:"mo",output:"\u2248",ttype:CONST},{input:"\\cong",tag:"mo",output:"\u2245",ttype:CONST},{input:"\\Join",tag:"mo",output:"\u22C8",ttype:CONST},{input:"\\bowtie",tag:"mo",output:"\u22C8",ttype:CONST},{input:"\\in",tag:"mo",output:"\u2208",ttype:CONST},{input:"\\ni",tag:"mo",output:"\u220B",ttype:CONST},{input:"\\owns",tag:"mo",output:"\u220B",ttype:CONST},{input:"\\propto",tag:"mo",output:"\u221D",ttype:CONST},{input:"\\vdash",tag:"mo",output:"\u22A2",ttype:CONST},{input:"\\dashv",tag:"mo",output: "\u22A3",ttype:CONST},{input:"\\models",tag:"mo",output:"\u22A8",ttype:CONST},{input:"\\perp",tag:"mo",output:"\u22A5",ttype:CONST},{input:"\\smile",tag:"mo",output:"\u2323",ttype:CONST},{input:"\\frown",tag:"mo",output:"\u2322",ttype:CONST},{input:"\\asymp",tag:"mo",output:"\u224D",ttype:CONST},{input:"\\notin",tag:"mo",output:"\u2209",ttype:CONST},{input:"\\begin{eqnarray}",output:"X",ttype:MATRIX,invisible:true},{input:"\\begin{array}",output:"X",ttype:MATRIX,invisible:true},{input:"\\\\",output:"}&{",ttype:DEFINITION},{input:"\\end{eqnarray}",output:"}}",ttype:DEFINITION},{input:"\\end{array}",output:"}}",ttype:DEFINITION},{input:"\\big",tag:"mo",output:"X",atval:"1.2",ieval:"2.2",ttype:BIG},{input:"\\Big",tag:"mo",output:"X",atval:"1.6",ieval:"2.6",ttype:BIG},{input:"\\bigg",tag:"mo",output:"X",atval:"2.2",ieval:"3.2",ttype:BIG},{input:"\\Bigg",tag:"mo",output:"X",atval:"2.9",ieval:"3.9",ttype:BIG},{input:"\\left",tag:"mo",output:"X",ttype:LEFTBRACKET},{input:"\\right", tag:"mo",output:"X",ttype:RIGHTBRACKET},{input:"{",output:"{",ttype:LEFTBRACKET,invisible:true},{input:"}",output:"}",ttype:RIGHTBRACKET,invisible:true},{input:"(",tag:"mo",output:"(",atval:"1",ttype:STRETCHY},{input:"[",tag:"mo",output:"[",atval:"1",ttype:STRETCHY},{input:"\\lbrack",tag:"mo",output:"[",atval:"1",ttype:STRETCHY},{input:"\\{",tag:"mo",output:"{",atval:"1",ttype:STRETCHY},{input:"\\lbrace",tag:"mo",output:"{",atval:"1",ttype:STRETCHY},{input:"\\langle",tag:"mo",output:"\u2329",atval:"1",ttype:STRETCHY},{input:"\\lfloor",tag:"mo",output:"\u230A",atval:"1",ttype:STRETCHY},{input:"\\lceil",tag:"mo",output:"\u2308",atval:"1",ttype:STRETCHY},{input:")",tag:"mo",output:")",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"]",tag:"mo",output:"]",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"\\rbrack",tag:"mo",output:"]",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"\\}",tag:"mo",output:"}",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"\\rbrace",tag:"mo",output:"}",rtag:"mi",atva l:"1",ttype:STRETCHY},{input:"\\rangle",tag:"mo",output:"\u232A",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"\\rfloor",tag:"mo",output:"\u230B",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"\\rceil",tag:"mo",output:"\u2309",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"|",tag:"mo",output:"\u2223",atval:"1",ttype:STRETCHY},{input:"\\|",tag:"mo",output:"\u2225",atval:"1",ttype:STRETCHY},{input:"\\vert",tag:"mo",output:"\u2223",atval:"1",ttype:STRETCHY},{input:"\\Vert",tag:"mo",output:"\u2225",atval:"1",ttype:STRETCHY},{input:"\\mid",tag:"mo",output:"\u2223",atval:"1",ttype:STRETCHY},{input:"\\parallel",tag:"mo",output:"\u2225",atval:"1",ttype:STRETCHY},{input:"/",tag:"mo",output:"/",atval:"1.01",ttype:STRETCHY},{input:"\\backslash",tag:"mo",output:"\u2216",atval:"1",ttype:STRETCHY},{input:"\\setminus",tag:"mo",output:"\\",ttype:CONST},{input:"\\!",tag:"mspace",atname:"width",atval:"-0.167em",ttype:SPACE},{input:"\\,",tag:"mspace",atname:"width",atval:"0.167em",ttype:SPACE},{input: "\\>",tag:"mspace",atname:"width",atval:"0.222em",ttype:SPACE},{input:"\\:",tag:"mspace",atname:"width",atval:"0.222em",ttype:SPACE},{input:"\\;",tag:"mspace",atname:"width",atval:"0.278em",ttype:SPACE},{input:"~",tag:"mspace",atname:"width",atval:"0.333em",ttype:SPACE},{input:"\\quad",tag:"mspace",atname:"width",atval:"1em",ttype:SPACE},{input:"\\qquad",tag:"mspace",atname:"width",atval:"2em",ttype:SPACE},{input:"\\prime",tag:"mo",output:"\u2032",ttype:CONST},{input:"'",tag:"mo",output:"\u02B9",ttype:CONST},{input:"''",tag:"mo",output:"\u02BA",ttype:CONST},{input:"'''",tag:"mo",output:"\u2034",ttype:CONST},{input:"''''",tag:"mo",output:"\u2057",ttype:CONST},{input:"\\ldots",tag:"mo",output:"\u2026",ttype:CONST},{input:"\\cdots",tag:"mo",output:"\u22EF",ttype:CONST},{input:"\\vdots",tag:"mo",output:"\u22EE",ttype:CONST},{input:"\\ddots",tag:"mo",output:"\u22F1",ttype:CONST},{input:"\\forall",tag:"mo",output:"\u2200",ttype:CONST},{input:"\\exists",tag:"mo",output:"\u2203",tty pe:CONST},{input:"\\Re",tag:"mo",output:"\u211C",ttype:CONST},{input:"\\Im",tag:"mo",output:"\u2111",ttype:CONST},{input:"\\aleph",tag:"mo",output:"\u2135",ttype:CONST},{input:"\\hbar",tag:"mo",output:"\u210F",ttype:CONST},{input:"\\ell",tag:"mo",output:"\u2113",ttype:CONST},{input:"\\wp",tag:"mo",output:"\u2118",ttype:CONST},{input:"\\emptyset",tag:"mo",output:"\u2205",ttype:CONST},{input:"\\infty",tag:"mo",output:"\u221E",ttype:CONST},{input:"\\surd",tag:"mo",output:"\\sqrt{}",ttype:DEFINITION},{input:"\\partial",tag:"mo",output:"\u2202",ttype:CONST},{input:"\\nabla",tag:"mo",output:"\u2207",ttype:CONST},{input:"\\triangle",tag:"mo",output:"\u25B3",ttype:CONST},{input:"\\therefore",tag:"mo",output:"\u2234",ttype:CONST},{input:"\\angle",tag:"mo",output:"\u2220",ttype:CONST},{input:"\\diamond",tag:"mo",output:"\u22C4",ttype:CONST},{input:"\\Diamond",tag:"mo",output:"\u25C7",ttype:CONST},{input:"\\neg",tag:"mo",output:"\u00AC",ttype:CONST},{input:"\\lnot",tag:"mo",output:"\u0 0AC",ttype:CONST},{input:"\\bot",tag:"mo",output:"\u22A5",ttype:CONST},{input:"\\top",tag:"mo",output:"\u22A4",ttype:CONST},{input:"\\square",tag:"mo",output:"\u25AB",ttype:CONST},{input:"\\Box",tag:"mo",output:"\u25A1",ttype:CONST},{input:"\\wr",tag:"mo",output:"\u2240",ttype:CONST},{input:"\\arccos",tag:"mi",output:"arccos",ttype:UNARY,func:true},{input:"\\arcsin",tag:"mi",output:"arcsin",ttype:UNARY,func:true},{input:"\\arctan",tag:"mi",output:"arctan",ttype:UNARY,func:true},{input:"\\arg",tag:"mi",output:"arg",ttype:UNARY,func:true},{input:"\\cos",tag:"mi",output:"cos",ttype:UNARY,func:true},{input:"\\cosh",tag:"mi",output:"cosh",ttype:UNARY,func:true},{input:"\\cot",tag:"mi",output:"cot",ttype:UNARY,func:true},{input:"\\coth",tag:"mi",output:"coth",ttype:UNARY,func:true},{input:"\\csc",tag:"mi",output:"csc",ttype:UNARY,func:true},{input:"\\deg",tag:"mi",output:"deg",ttype:UNARY,func:true},{input:"\\det",tag:"mi",output:"det",ttype:UNARY,func:true},{input:"\\dim",tag:"mi ",output:"dim",ttype:UNARY,func:true},{input:"\\exp",tag:"mi",output:"exp",ttype:UNARY,func:true},{input:"\\gcd",tag:"mi",output:"gcd",ttype:UNARY,func:true},{input:"\\hom",tag:"mi",output:"hom",ttype:UNARY,func:true},{input:"\\inf",tag:"mo",output:"inf",ttype:UNDEROVER},{input:"\\ker",tag:"mi",output:"ker",ttype:UNARY,func:true},{input:"\\lg",tag:"mi",output:"lg",ttype:UNARY,func:true},{input:"\\lim",tag:"mo",output:"lim",ttype:UNDEROVER},{input:"\\liminf",tag:"mo",output:"liminf",ttype:UNDEROVER},{input:"\\limsup",tag:"mo",output:"limsup",ttype:UNDEROVER},{input:"\\ln",tag:"mi",output:"ln",ttype:UNARY,func:true},{input:"\\log",tag:"mi",output:"log",ttype:UNARY,func:true},{input:"\\max",tag:"mo",output:"max",ttype:UNDEROVER},{input:"\\min",tag:"mo",output:"min",ttype:UNDEROVER},{input:"\\Pr",tag:"mi",output:"Pr",ttype:UNARY,func:true},{input:"\\sec",tag:"mi",output:"sec",ttype:UNARY,func:true},{input:"\\sin",tag:"mi",output:"sin",ttype:UNARY,func:true},{input:"\\sinh",tag:" mi",output:"sinh",ttype:UNARY,func:true},{input:"\\sup",tag:"mo",output:"sup",ttype:UNDEROVER},{input:"\\tan",tag:"mi",output:"tan",ttype:UNARY,func:true},{input:"\\tanh",tag:"mi",output:"tanh",ttype:UNARY,func:true},{input:"\\gets",tag:"mo",output:"\u2190",ttype:CONST},{input:"\\leftarrow",tag:"mo",output:"\u2190",ttype:CONST},{input:"\\to",tag:"mo",output:"\u2192",ttype:CONST},{input:"\\rightarrow",tag:"mo",output:"\u2192",ttype:CONST},{input:"\\leftrightarrow",tag:"mo",output:"\u2194",ttype:CONST},{input:"\\uparrow",tag:"mo",output:"\u2191",ttype:CONST},{input:"\\downarrow",tag:"mo",output:"\u2193",ttype:CONST},{input:"\\updownarrow",tag:"mo",output:"\u2195",ttype:CONST},{input:"\\Leftarrow",tag:"mo",output:"\u21D0",ttype:CONST},{input:"\\Rightarrow",tag:"mo",output:"\u21D2",ttype:CONST},{input:"\\Leftrightarrow",tag:"mo",output:"\u21D4",ttype:CONST},{input:"\\iff",tag:"mo",output:"~\\Longleftrightarrow~",ttype:DEFINITION},{input:"\\Uparrow",tag:"mo",output:"\u21D1",ttype :CONST},{input:"\\Downarrow",tag:"mo",output:"\u21D3",ttype:CONST},{input:"\\Updownarrow",tag:"mo",output:"\u21D5",ttype:CONST},{input:"\\mapsto",tag:"mo",output:"\u21A6",ttype:CONST},{input:"\\longleftarrow",tag:"mo",output:"\u2190",ttype:LONG},{input:"\\longrightarrow",tag:"mo",output:"\u2192",ttype:LONG},{input:"\\longleftrightarrow",tag:"mo",output:"\u2194",ttype:LONG},{input:"\\Longleftarrow",tag:"mo",output:"\u21D0",ttype:LONG},{input:"\\Longrightarrow",tag:"mo",output:"\u21D2",ttype:LONG},{input:"\\implies",tag:"mo",output:"\u21D2",ttype:LONG},{input:"\\Longleftrightarrow",tag:"mo",output:"\u21D4",ttype:LONG},{input:"\\longmapsto",tag:"mo",output:"\u21A6",ttype:CONST},{input:"\\sqrt",tag:"msqrt",output:"sqrt",ttype:UNARY},{input:"\\root",tag:"mroot",output:"root",ttype:BINARY},{input:"\\frac",tag:"mfrac",output:"/",ttype:BINARY},{input:"\\stackrel",tag:"mover",output:"stackrel",ttype:BINARY},{input:"\\atop",tag:"mfrac",output:"",ttype:INFIX},{input:"\\choose",tag:"mfr ac",output:"",ttype:INFIX},{input:"_",tag:"msub",output:"_",ttype:INFIX},{input:"^",tag:"msup",output:"^",ttype:INFIX},{input:"\\mathrm",tag:"mtext",output:"text",ttype:TEXT},{input:"\\mbox",tag:"mtext",output:"mbox",ttype:TEXT},{input:"\\acute",tag:"mover",output:"\u00B4",ttype:UNARY,acc:true},{input:"\\grave",tag:"mover",output:"\u0060",ttype:UNARY,acc:true},{input:"\\breve",tag:"mover",output:"\u02D8",ttype:UNARY,acc:true},{input:"\\check",tag:"mover",output:"\u02C7",ttype:UNARY,acc:true},{input:"\\dot",tag:"mover",output:".",ttype:UNARY,acc:true},{input:"\\ddot",tag:"mover",output:"..",ttype:UNARY,acc:true},{input:"\\mathring",tag:"mover",output:"\u00B0",ttype:UNARY,acc:true},{input:"\\vec",tag:"mover",output:"\u20D7",ttype:UNARY,acc:true},{input:"\\overrightarrow",tag:"mover",output:"\u20D7",ttype:UNARY,acc:true},{input:"\\overleftarrow",tag:"mover",output:"\u20D6",ttype:UNARY,acc:true},{input:"\\hat",tag:"mover",output:"\u005E",ttype:UNARY,acc:true},{input:"\\widehat", tag:"mover",output:"\u0302",ttype:UNARY,acc:true},{input:"\\tilde",tag:"mover",output:"~",ttype:UNARY,acc:true},{input:"\\widetilde",tag:"mover",output:"\u02DC",ttype:UNARY,acc:true},{input:"\\bar",tag:"mover",output:"\u203E",ttype:UNARY,acc:true},{input:"\\overbrace",tag:"mover",output:"\u23B4",ttype:UNARY,acc:true},{input:"\\overline",tag:"mover",output:"\u00AF",ttype:UNARY,acc:true},{input:"\\underbrace",tag:"munder",output:"\u23B5",ttype:UNARY,acc:true},{input:"\\underline",tag:"munder",output:"\u00AF",ttype:UNARY,acc:true},{input:"\\displaystyle",tag:"mstyle",atname:"displaystyle",atval:"true",ttype:UNARY},{input:"\\textstyle",tag:"mstyle",atname:"displaystyle",atval:"false",ttype:UNARY},{input:"\\scriptstyle",tag:"mstyle",atname:"scriptlevel",atval:"1",ttype:UNARY},{input:"\\scriptscriptstyle",tag:"mstyle",atname:"scriptlevel",atval:"2",ttype:UNARY},{input:"\\textrm",tag:"mstyle",output:"\\mathrm",ttype:DEFINITION},{input:"\\mathbf",tag:"mstyle",atname:"mathvariant",at val:"bold",ttype:UNARY},{input:"\\textbf",tag:"mstyle",atname:"mathvariant",atval:"bold",ttype:UNARY},{input:"\\mathit",tag:"mstyle",atname:"mathvariant",atval:"italic",ttype:UNARY},{input:"\\textit",tag:"mstyle",atname:"mathvariant",atval:"italic",ttype:UNARY},{input:"\\mathtt",tag:"mstyle",atname:"mathvariant",atval:"monospace",ttype:UNARY},{input:"\\texttt",tag:"mstyle",atname:"mathvariant",atval:"monospace",ttype:UNARY},{input:"\\mathsf",tag:"mstyle",atname:"mathvariant",atval:"sans-serif",ttype:UNARY},{input:"\\mathbb",tag:"mstyle",atname:"mathvariant",atval:"double-struck",ttype:UNARY,codes:AMbbb},{input:"\\mathcal",tag:"mstyle",atname:"mathvariant",atval:"script",ttype:UNARY,codes:AMcal},{input:"\\mathfrak",tag:"mstyle",atname:"mathvariant",atval:"fraktur",ttype:UNARY,codes:AMfrk}];var LMnames=[];function LMremoveCharsAndBlanks(c,d){var a;a=c.slice(d);for(var b=0;b<a.length&&a.charCodeAt(b)<=32;b=b+1){}return a.slice(b)}function LMgetSymbol(h){var a=0;var b=0;var d;va r l;var m;var f="";var g=true;for(var c=1;c<=h.length&&g;c++){l=h.slice(0,c);b=a;a=position(LMnames,l,b);if(a<LMnames.length&&h.slice(0,LMnames[a].length)==LMnames[a]){f=LMnames[a];d=a;c=f.length}g=a<LMnames.length&&h.slice(0,LMnames[a].length)>=LMnames[a]}LMpreviousSymbol=LMcurrentSymbol;if(f!=""){LMcurrentSymbol=LMsymbols[d].ttype;return LMsymbols[d]}LMcurrentSymbol=CONST;a=1;l=h.slice(0,1);if("0"<=l&&l<="9"){m="mn"}else{m=(("A">l||l>"Z")&&("a">l||l>"z")?"mo":"mi")}return{input:l,tag:m,output:l,ttype:CONST}}var LMpreviousSymbol,LMcurrentSymbol;function LMparseSexpr(n){var t,m,d,a,r,o,l=document.createDocumentFragment();n=LMremoveCharsAndBlanks(n,0);t=LMgetSymbol(n);if(t==null||t.ttype==RIGHTBRACKET){return[null,n,null]}if(t.ttype==DEFINITION){n=t.output+LMremoveCharsAndBlanks(n,t.input.length);t=LMgetSymbol(n);if(t==null||t.ttype==RIGHTBRACKET){return[null,n,null]}}n=LMremoveCharsAndBlanks(n,t.input.length);switch(t.ttype){case SPACE:m=createMmlNode(t.tag);m.setAttribute(t .atname,t.atval);return[m,n,t.tag];case UNDEROVER:if(isIE){if(t.input.substr(0,4)=="\\big"){n="\\"+t.input.substr(4)+n;t=LMgetSymbol(n);t.ttype=UNDEROVER;n=LMremoveCharsAndBlanks(n,t.input.length)}}return[createMmlNode(t.tag,document.createTextNode(t.output)),n,t.tag];case CONST:var g=t.output;if(isIE){if(t.input=="'"){g="\u2032"}else{if(t.input=="''"){g="\u2033"}else{if(t.input=="'''"){g="\u2033\u2032"}else{if(t.input=="''''"){g="\u2033\u2033"}else{if(t.input=="\\square"){g="\u25A1"}else{if(t.input.substr(0,5)=="\\frac"){var b=t.input.substr(6,1);if(b=="5"||b=="6"){n=t.input.replace(/\\frac/,"\\frac ")+n;return[m,n,t.tag]}}}}}}}}m=createMmlNode(t.tag,document.createTextNode(g));return[m,n,t.tag];case LONG:m=createMmlNode(t.tag,document.createTextNode(t.output));m.setAttribute("minsize","1.5");m.setAttribute("maxsize","1.5");m=createMmlNode("mover",m);m.appendChild(createMmlNode("mspace"));return[m,n,t.tag];case STRETCHY:if(isIE&&t.input=="\\backslash"){t.output="\\"}m=creat eMmlNode(t.tag,document.createTextNode(t.output));if(t.input=="|"||t.input=="\\vert"||t.input=="\\|"||t.input=="\\Vert"){m.setAttribute("lspace","0em");m.setAttribute("rspace","0em")}m.setAttribute("maxsize",t.atval);if(t.rtag!=null){return[m,n,t.rtag]}else{return[m,n,t.tag]}case BIG:var f=t.atval;if(isIE){f=t.ieval}t=LMgetSymbol(n);if(t==null){return[null,n,null]}n=LMremoveCharsAndBlanks(n,t.input.length);m=createMmlNode(t.tag,document.createTextNode(t.output));if(isIE){var v=createMmlNode("mspace");v.setAttribute("height",f+"ex");m=createMmlNode("mrow",m);m.appendChild(v)}else{m.setAttribute("minsize",f);m.setAttribute("maxsize",f)}return[m,n,t.tag];case LEFTBRACKET:if(t.input=="\\left"){t=LMgetSymbol(n);if(t!=null){if(t.input=="."){t.invisible=true}n=LMremoveCharsAndBlanks(n,t.input.length)}}d=LMparseExpr(n,true,false);if(t==null||(typeof t.invisible=="boolean"&&t.invisible)){m=createMmlNode("mrow",d[0])}else{m=createMmlNode("mo",document.createTextNode(t.output));m=creat eMmlNode("mrow",m);m.appendChild(d[0])}return[m,d[1],d[2]];case MATRIX:if(t.input=="\\begin{array}"){var s="";t=LMgetSymbol(n);n=LMremoveCharsAndBlanks(n,0);if(t==null){s="l"}else{n=LMremoveCharsAndBlanks(n,t.input.length);if(t.input!="{"){s="l"}else{do{t=LMgetSymbol(n);if(t!=null){n=LMremoveCharsAndBlanks(n,t.input.length);if(t.input!="}"){s=s+t.input}}}while(t!=null&&t.input!=""&&t.input!="}")}}d=LMparseExpr("{"+n,true,true);m=createMmlNode("mtable",d[0]);s=s.replace(/l/g,"left ");s=s.replace(/r/g,"right ");s=s.replace(/c/g,"center ");m.setAttribute("columnalign",s);m.setAttribute("displaystyle","false");if(isIE){return[m,d[1],null]}var k=createMmlNode("mspace");k.setAttribute("width","0.167em");var p=createMmlNode("mspace");p.setAttribute("width","0.167em");var c=createMmlNode("mrow",k);c.appendChild(m);c.appendChild(p);return[c,d[1],null]}else{d=LMparseExpr("{"+n,true,true);m=createMmlNode("mtable",d[0]);if(isIE){m.setAttribute("columnspacing","0.25em")}else{m.setAttribu te("columnspacing","0.167em")}m.setAttribute("columnalign","right center left");m.setAttribute("displaystyle","true");m=createMmlNode("mrow",m);return[m,d[1],null]}case TEXT:if(n.charAt(0)=="{"){r=n.indexOf("}")}else{r=0}if(r==-1){r=n.length}o=n.slice(1,r);if(o.charAt(0)==" "){m=createMmlNode("mspace");m.setAttribute("width","0.33em");l.appendChild(m)}l.appendChild(createMmlNode(t.tag,document.createTextNode(o)));if(o.charAt(o.length-1)==" "){m=createMmlNode("mspace");m.setAttribute("width","0.33em");l.appendChild(m)}n=LMremoveCharsAndBlanks(n,r+1);return[createMmlNode("mrow",l),n,null];case UNARY:d=LMparseSexpr(n);if(d[0]==null){return[createMmlNode(t.tag,document.createTextNode(t.output)),n]}if(typeof t.func=="boolean"&&t.func){o=n.charAt(0);if(o=="^"||o=="_"||o==","){return[createMmlNode(t.tag,document.createTextNode(t.output)),n,t.tag]}else{m=createMmlNode("mrow",createMmlNode(t.tag,document.createTextNode(t.output)));if(isIE){var v=createMmlNode("mspace");v.setAttribute ("width","0.167em");m.appendChild(v)}m.appendChild(d[0]);return[m,d[1],t.tag]}}if(t.input=="\\sqrt"){if(isIE){var v=createMmlNode("mspace");v.setAttribute("height","1.2ex");v.setAttribute("width","0em");m=createMmlNode(t.tag,d[0]);m.appendChild(v);return[m,d[1],t.tag]}else{return[createMmlNode(t.tag,d[0]),d[1],t.tag]}}else{if(typeof t.acc=="boolean"&&t.acc){m=createMmlNode(t.tag,d[0]);var g=t.output;if(isIE){if(t.input=="\\hat"){g="\u0302"}else{if(t.input=="\\widehat"){g="\u005E"}else{if(t.input=="\\bar"){g="\u00AF"}else{if(t.input=="\\grave"){g="\u0300"}else{if(t.input=="\\tilde"){g="\u0303"}}}}}}var c=createMmlNode("mo",document.createTextNode(g));if(t.input=="\\vec"||t.input=="\\check"){c.setAttribute("maxsize","1.2")}if(isIE&&t.input=="\\bar"){c.setAttribute("maxsize","0.5")}if(t.input=="\\underbrace"||t.input=="\\underline"){c.setAttribute("accentunder","true")}else{c.setAttribute("accent","true")}m.appendChild(c);if(t.input=="\\overbrace"||t.input=="\\underbrace"){m.tt ype=UNDEROVER}return[m,d[1],t.tag]}else{if(!isIE&&typeof t.codes!="undefined"){for(r=0;r<d[0].childNodes.length;r++){if(d[0].childNodes[r].nodeName=="mi"||d[0].nodeName=="mi"){o=(d[0].nodeName=="mi"?d[0].firstChild.nodeValue:d[0].childNodes[r].firstChild.nodeValue);var h=[];for(var q=0;q<o.length;q++){if(o.charCodeAt(q)>64&&o.charCodeAt(q)<91){h=h+String.fromCharCode(t.codes[o.charCodeAt(q)-65])}else{h=h+o.charAt(q)}}if(d[0].nodeName=="mi"){d[0]=createMmlNode("mo").appendChild(document.createTextNode(h))}else{d[0].replaceChild(createMmlNode("mo").appendChild(document.createTextNode(h)),d[0].childNodes[r])}}}}m=createMmlNode(t.tag,d[0]);m.setAttribute(t.atname,t.atval);if(t.input=="\\scriptstyle"||t.input=="\\scriptscriptstyle"){m.setAttribute("displaystyle","false")}return[m,d[1],t.tag]}}case BINARY:d=LMparseSexpr(n);if(d[0]==null){return[createMmlNode("mo",document.createTextNode(t.input)),n,null]}a=LMparseSexpr(d[1]);if(a[0]==null){return[createMmlNode("mo",document.create TextNode(t.input)),n,null]}if(t.input=="\\root"||t.input=="\\stackrel"){l.appendChild(a[0])}l.appendChild(d[0]);if(t.input=="\\frac"){l.appendChild(a[0])}return[createMmlNode(t.tag,l),a[1],t.tag];case INFIX:n=LMremoveCharsAndBlanks(n,t.input.length);return[createMmlNode("mo",document.createTextNode(t.output)),n,t.tag];default:return[createMmlNode(t.tag,document.createTextNode(t.output)),n,t.tag]}}function LMparseIexpr(g){var f,d,b,c,h,k,j;g=LMremoveCharsAndBlanks(g,0);d=LMgetSymbol(g);h=LMparseSexpr(g);c=h[0];g=h[1];k=h[2];f=LMgetSymbol(g);if(f.ttype==INFIX){g=LMremoveCharsAndBlanks(g,f.input.length);h=LMparseSexpr(g);if(h[0]==null){h[0]=createMmlNode("mo",document.createTextNode("\u25A1"))}g=h[1];k=h[2];if(f.input=="_"||f.input=="^"){b=LMgetSymbol(g);k=null;j=((d.ttype==UNDEROVER)||(c.ttype==UNDEROVER));if(f.input=="_"&&b.input=="^"){g=LMremoveCharsAndBlanks(g,b.input.length);var a=LMparseSexpr(g);g=a[1];k=a[2];c=createMmlNode((j?"munderover":"msubsup"),c);c.appendChild(h[0 ]);c.appendChild(a[0])}else{if(f.input=="_"){c=createMmlNode((j?"munder":"msub"),c);c.appendChild(h[0])}else{c=createMmlNode((j?"mover":"msup"),c);c.appendChild(h[0])}}c=createMmlNode("mrow",c)}else{c=createMmlNode(f.tag,c);if(f.input=="\\atop"||f.input=="\\choose"){c.setAttribute("linethickness","0ex")}c.appendChild(h[0]);if(f.input=="\\choose"){c=createMmlNode("mfenced",c)}}}return[c,g,k]}function LMparseExpr(o,p,v){var w,l,a,s,z,f=document.createDocumentFragment();do{o=LMremoveCharsAndBlanks(o,0);a=LMparseIexpr(o);l=a[0];o=a[1];z=a[2];w=LMg... [truncated message content] |
Author: pboy Date: 2012-12-17 08:11:01 +0000 (Mon, 17 Dec 2012) New Revision: 2397 Added: trunk/ccm-core/web/assets/fancybox/ trunk/ccm-core/web/assets/fancybox/blank.gif trunk/ccm-core/web/assets/fancybox/fancy_close.png trunk/ccm-core/web/assets/fancybox/fancy_loading.png trunk/ccm-core/web/assets/fancybox/fancy_nav_left.png trunk/ccm-core/web/assets/fancybox/fancy_nav_right.png trunk/ccm-core/web/assets/fancybox/fancy_shadow_e.png trunk/ccm-core/web/assets/fancybox/fancy_shadow_n.png trunk/ccm-core/web/assets/fancybox/fancy_shadow_ne.png trunk/ccm-core/web/assets/fancybox/fancy_shadow_nw.png trunk/ccm-core/web/assets/fancybox/fancy_shadow_s.png trunk/ccm-core/web/assets/fancybox/fancy_shadow_se.png trunk/ccm-core/web/assets/fancybox/fancy_shadow_sw.png trunk/ccm-core/web/assets/fancybox/fancy_shadow_w.png trunk/ccm-core/web/assets/fancybox/fancy_title_left.png trunk/ccm-core/web/assets/fancybox/fancy_title_main.png trunk/ccm-core/web/assets/fancybox/fancy_title_over.png trunk/ccm-core/web/assets/fancybox/fancy_title_right.png trunk/ccm-core/web/assets/fancybox/fancybox-x.png trunk/ccm-core/web/assets/fancybox/fancybox-y.png trunk/ccm-core/web/assets/fancybox/fancybox.png trunk/ccm-core/web/assets/fancybox/jquery.easing.pack.js trunk/ccm-core/web/assets/fancybox/jquery.fancybox-1.3.4.css trunk/ccm-core/web/assets/fancybox/jquery.fancybox.js trunk/ccm-core/web/assets/fancybox/jquery.fancybox.pack.js trunk/ccm-core/web/assets/fancybox/jquery.mousewheel.pack.js trunk/ccm-core/web/assets/jquery.js Removed: trunk/ccm-cms/web/assets/jquery.js Modified: trunk/ccm-cms/web/assets/xinha/plugins/OpenCCM/OpenCCM.js trunk/ccm-cms/web/assets/xinha/plugins/OpenCCM/images/images.html trunk/ccm-cms/web/assets/xinha/plugins/OpenCCM/images/images.js Log: Fixed Xinha editor plugin, moved jQuery to core, added fancybox, fixed equation plugin. (on behalf of quasimodo) Deleted: trunk/ccm-cms/web/assets/jquery.js =================================================================== --- trunk/ccm-cms/web/assets/jquery.js 2012-12-17 08:03:28 UTC (rev 2396) +++ trunk/ccm-cms/web/assets/jquery.js 2012-12-17 08:11:01 UTC (rev 2397) @@ -1,4 +0,0 @@ -/*! jQuery v1.7.2 jquery.com | jquery.org/license */ -(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cu(a){if(!cj[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),b.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write((f.support.boxModel?"<!doctype html>":"")+"<html><body>"),cl.close();d=cl.createElement(a),cl.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ck)}cj[a]=e}return cj[a]}function ct(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function cs(){cq=b}function cr(){setTimeout(cs,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p; for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function ca(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function b_(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bD.test(a)?d(a,e):b_(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&f.type(b)==="object")for(var e in b)b_(a+"["+e +"]",b[e],c,d);else d(a,b)}function b$(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function bZ(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bS,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bZ(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bZ(a,c,d,e,"*",g));return l}function bY(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bO),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bB(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?1:0,g=4;if(d>0){if(c!=="border")for(;e<g;e+=2)c||(d-=parseFloat(f.css(a,"padding"+bx[e]))||0),c==="margin"?d+=parseFloat(f.css(a,c+bx[e]))||0:d-=parseFloat(f.css(a,"border"+bx[e]+"Width"))||0;return d+"px"}d=by(a,b);if(d<0||d==null)d=a.style[b]; if(bt.test(d))return d;d=parseFloat(d)||0;if(c)for(;e<g;e+=2)d+=parseFloat(f.css(a,"padding"+bx[e]))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+bx[e]+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+bx[e]))||0);return d+"px"}function bo(a){var b=c.createElement("div");bh.appendChild(b),b.innerHTML=a.outerHTML;return b.firstChild}function bn(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bm(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bm)}function bm(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bl(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bk(a,b){var c;b.nodeType===1&&(b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase(),c==="object"?b.outerHTML=a.outerHTML:c!=="input"||a.type!=="checkbox"&&a.type!=="radio"? c==="option"?b.selected=a.defaultSelected:c==="input"||c==="textarea"?b.defaultValue=a.defaultValue:c==="script"&&b.text!==a.text&&(b.text=a.text):(a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value)),b.removeAttribute(f.expando),b.removeAttribute("_submit_attached"),b.removeAttribute("_change_attached"))}function bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d<e;d++)f.event.add(b,c,i[c][d])}h.data&&(h.data=f.extend({},h.data))}}function bi(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function U(a){var b=V.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function T(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a ,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(O.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?+d:j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for( c=0,d=a.length;c<d;c++)b[a[c]]=!0;return b}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return th is;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.2",length:0,size:function(){return this.length},toArra y:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=a rguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.a ttachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace( q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){if(typeof c!="string"||!c)return null;var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:func tion(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H)return H.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){v ar d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h,i){var j,k=d==null,l=0,m=a.length;if(d&&typeof d=="object"){for(l in d)e.access(a,c,l,d[l],1,h,f);g=1}else if(f!==b){j=i===b&&e.isFunction(f),k&&(j?(j=c,c=function(a,b,c){return j.call(e(a),c)}):(c.call(a,f),c=null));if(c)for(;l<m;l++)c(a[l],d,j?f.call(a[l],l,c(a[l],d)):f,i);g=1}return g?a:k?c.call(a):m?c(a[0],d):h},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b )},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m,n=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h==="array"?n(g):h==="function"&&(!a.unique||!p.has(g))&&c.push(g)},o=function(b,f){f=f||[],e=!a.memory||[b,f],i=!0,j=!0,m=k||0,k=0,l=c.length;for(;c&&m<l;m++)if(c[m].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}j=!1,c&&(a.once?e===!0?p.disable():c=[]:d&&d.length&&(e=d.s hift(),p.fireWith(e[0],e[1])))},p={add:function(){if(c){var a=c.length;n(arguments),j?l=c.length:e&&e!==!0&&(k=a,o(e[0],e[1]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){j&&f<=l&&(l--,f<=m&&m--),c.splice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.length;for(;b<d;b++)if(a===c[b])return!0}return!1},empty:function(){c=[];return this},disable:function(){c=d=e=b;return this},disabled:function(){return!c},lock:function(){d=b,(!e||e===!0)&&p.disable();return this},locked:function(){return!d},fireWith:function(b,c){d&&(j?a.once||d.push([b,c]):(!a.once||!e)&&o(b,c));return this},fire:function(){p.fireWith(this,arguments);return this},fired:function(){return!!i}};return p};var i=[].slice;f.extend({Deferred:function(a){var b=f.Callbacks("once memory"),c=f.Callbacks("once memory"),d=f.Callbacks("memory"),e="pending",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,progr ess:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:function(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},pipe:function(a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+"With"]=g[j].fireWith;i.done(function(){e="resolved"},c.disable,d.lock).fail(function(){e="rejected"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a){function m(a){return function(b){e[a]=arguments.length>1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=ar guments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise().then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else j!==a&&j.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l,m,n,o,p=c.createElement("div"),q=c.documentElement;p.setAttribute("className","t"),p.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=p.getElementsByTagName("*"),e=p.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=p.getElementsByTagName("input")[0],b={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(e.ge tAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:p.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,pixelMargin:!0},f.boxModel=b.boxModel=c.compatMode==="CSS1Compat",i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete p.test}catch(r){b.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",function(){b.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),i.setAttribute("name"," t"),p.appendChild(i),j=c.createDocumentFragment(),j.appendChild(p.lastChild),b.checkClone=j.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,j.removeChild(i),j.appendChild(p);if(p.attachEvent)for(n in{submit:1,change:1,focusin:1})m="on"+n,o=m in p,o||(p.setAttribute(m,"return;"),o=typeof p[m]=="function"),b[n+"Bubbles"]=o;j.removeChild(p),j=g=h=p=i=null,f(function(){var d,e,g,h,i,j,l,m,n,q,r,s,t,u=c.getElementsByTagName("body")[0];!u||(m=1,t="padding:0;margin:0;border:",r="position:absolute;top:0;left:0;width:1px;height:1px;",s=t+"0;visibility:hidden;",n="style='"+r+t+"5px solid #000;",q="<div "+n+"display:block;'><div style='"+t+"0;display:block;overflow:hidden;'></div></div>"+"<table "+n+"' cellpadding='0' cellspacing='0'>"+"<tr><td></td></tr></table>",d=c.createElement("div"),d.style.cssText=s+"width:0;height:0;position:static;top:0;margin-top:"+m+"px",u.insertBefore(d,u.firstChild),p=c.createElement("div"),d.appendChild(p),p.innerHTML="<table><tr>< td style='"+t+"0;display:none'></td><td>t</td></tr></table>",k=p.getElementsByTagName("td"),o=k[0].offsetHeight===0,k[0].style.display="",k[1].style.display="none",b.reliableHiddenOffsets=o&&k[0].offsetHeight===0,a.getComputedStyle&&(p.innerHTML="",l=c.createElement("div"),l.style.width="0",l.style.marginRight="0",p.style.width="2px",p.appendChild(l),b.reliableMarginRight=(parseInt((a.getComputedStyle(l,null)||{marginRight:0}).marginRight,10)||0)===0),typeof p.style.zoom!="undefined"&&(p.innerHTML="",p.style.width=p.style.padding="1px",p.style.border=0,p.style.overflow="hidden",p.style.display="inline",p.style.zoom=1,b.inlineBlockNeedsLayout=p.offsetWidth===3,p.style.display="block",p.style.overflow="visible",p.innerHTML="<div style='width:5px;'></div>",b.shrinkWrapBlocks=p.offsetWidth!==3),p.style.cssText=r+s,p.innerHTML=q,e=p.firstChild,g=e.firstChild,i=e.nextSibling.firstChild.firstChild,j={doesNotAddBorder:g.offsetTop!==5,doesAddBorderForTableAndCells:i.offsetTop===5},g. style.position="fixed",g.style.top="20px",j.fixedPosition=g.offsetTop===20||g.offsetTop===15,g.style.position=g.style.top="",e.style.overflow="hidden",e.style.position="relative",j.subtractsBorderForOverflowNotVisible=g.offsetTop===-5,j.doesNotIncludeMarginInBodyOffset=u.offsetTop!==m,a.getComputedStyle&&(p.style.marginTop="1%",b.pixelMargin=(a.getComputedStyle(p,null)||{marginTop:0}).marginTop!=="1%"),typeof d.style.zoom!="undefined"&&(d.style.zoom=1),u.removeChild(d),l=p=d=null,f.extend(b,j))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].dat a)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){delete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delete j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.removeAttribute(h):a[h]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d,e,g,h,i,j=this[0],k=0,m=null;if(a===b){if(this.length){m=f.data(j);if(j.nodeType===1&&!f._data(j,"parsedAttrs")){g=j.attributes;for(i=g.length;k<i;k++)h=g[k].name,h.indexOf("data-")===0&&(h=f.camelCase(h.substring(5)),l(j,h,m[h]));f._data(j,"parsedAttrs",!0)}}return m}if(typeof a=="object")return this.each(function(){f.data(this,a)});d=a.split(".",2),d[1]=d[1]?"."+d[1]:"",e=d[1]+"!";return f.access(this,function(c){if(c===b){m=this.triggerHandler("getData"+e,[d[0]]),m===b&&j&&(m=f.data(j,a),m=l(j,a,m));return m===b&&d[1]?this.data(d[0]):m}d[1]=c,this.each(function(){var b=f(this);b.triggerHandler("setData"+e,d),f.data(this,a,c),b.triggerHandler("changeData"+e,d)})},null,c,arguments.length>1,null,!1)},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a !==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){var d=2;typeof a!="string"&&(c=a,a="fx",d--);if(arguments.length<d)return f.queue(this[0],a);return c===b?this:this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function( ){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks("once memory"),!0))h++,l.add(m);m();return d.promise(c)}});var o=/[\n\t\r]/g,p=/\s+/,q=/\r/g,r=/^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttribute,w,x,y;f.fn.extend({attr:function(a,b){return f.access(this,f.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,f.prop,a,b,arguments.length>1)},removeProp:function(a){a=f.propFix[a]||a;return this. each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(o," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.e ach(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(o," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.type]||f.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.val Hooks[g.type]||f.valHooks[g.nodeName.toLowerCase()];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!f.nodeName(e.parentNode,"optgroup"))){b=f(e).val();if(j)return b;h.push(b)}}if(j&&!h.length&&i.length)return f(i[g]).val();return h},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j! ==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h,i=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;i<g;i++)e=d[i],e&&(c=f.propFix[e]||e,h=u.test(e),h||f.attr(a,e,""),a.removeAttribute(v?e:c),h&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(r.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(w&&f.nodeName(a,"button"))return w.get(a,b);return b in a?a.value:null},set:fu nction(a,b,c){if(w&&f.nodeName(a,"button"))return w.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,g,h,i=a.nodeType;if(!!a&&i!==3&&i!==8&&i!==2){h=i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&"set"in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&"get"in g&&(e=g.get(a,c))!==null?e:a[c]}},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:function(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a ,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},v||(y={name:!0,id:!0,coords:!0},w=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue!=="":d.specified)?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.attrHooks.tabindex.set=w.set,f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})}),f.attrHooks.contenteditable={get:w.get,set:function(a,b,c){b===""&&(b="false"),w.set(a,b,c)}}),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.op tSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.enctype||(f.propFix.enctype="encoding"),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/(?:^|\s)hover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function( -a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler,g=p.selector),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,gu id:d.guid,selector:g,quick:g&&G(g),namespace:n.join(".")},p),r=j[m];if(!r){r=j[m]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListener?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent("on"+m,i)}s.add&&(s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateCount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g.events)){b=f.trim(I(b||"")).split(" ");for(h=0;h<b.length;h++){i=A.exec(b[h])||[],j=k=i[1],l=i[2];if(!j){for(j in o)f.event.remove(a,j+b[h],c,d,!0);continue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.length,l=l?new RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(n=0;n<r.length;n++)s=r[n],(e||k===s.origType)&&(!c||c.guid===s.guid)&&(!l||l.test(s.namespace))&&(!d||d===s.selector||d==="**"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount--,p .remove&&p.remove.call(a,s));r.length===0&&m!==r.length&&((!p.teardown||p.teardown.call(a,l)===!1)&&f.removeEvent(a,j,g.handle),delete o[j])}f.isEmptyObject(o)&&(q=g.handle,q&&(q.elem=null),f.removeData(a,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeType!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f.event.triggered))return;h.indexOf("!")>=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArr ay(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l<r.length&&!c.isPropagationStopped();l++)m=r[l][0],c.type=r[l][1],q=(f._data(m,"events")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=o&&m[o],q&&f.acceptData(m)&&q.apply(m,d)===!1&&c.preventDefault();c.type=h,!g&&!c.isDefaultPrevented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&&e[h]&&(h!=="focus"&&h!=="blur"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.triggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:function(c){c=f.event.fix(c||a.event);var d=(f._data(this,"events")||{})[c.type]||[],e=d.delegateCount,g=[].slice.call(ar guments,0),h=!c.exclusive&&!c.namespace,i=f.event.special[c.type]||{},j=[],k,l,m,n,o,p,q,r,s,t,u;g[0]=c,c.delegateTarget=this;if(!i.preDispatch||i.preDispatch.call(this,c)!==!1){if(e&&(!c.button||c.type!=="click")){n=f(this),n.context=this.ownerDocument||this;for(m=c.target;m!=this;m=m.parentNode||this)if(m.disabled!==!0){p={},r=[],n[0]=m;for(k=0;k<e;k++)s=d[k],t=s.selector,p[t]===b&&(p[t]=s.quick?H(m,s.quick):n.is(t)),p[t]&&r.push(s);r.length&&j.push({elem:m,matches:r})}}d.length>e&&j.push({elem:this,matches:d.slice(e)});for(k=0;k<j.length&&!c.isPropagationStopped();k++){q=j[k],c.currentTarget=q.elem;for(l=0;l<q.matches.length&&!c.isImmediatePropagationStopped();l++){s=q.matches[l];if(h||!c.namespace&&!s.namespace||c.namespace_re&&c.namespace_re.test(s.namespace))c.data=s.data,c.handleObj=s,o=((f.event.special[s.origType]||{}).handle||s.handler).apply(q.elem,g),o!==b&&(c.result=o,o===!1&&(c.preventDefault(),c.stopPropagation()))}}i.postDispatch&&i.postDispatch.call(this,c); return c.result}},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,d){var e,f,g,h=d.button,i=d.fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.documentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(g);for(d=i.length;d;)e=i[--d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if( !(this instanceof f.Event))return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?K:J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.stopPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropagationStopped:J},f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.cont ains(c,d))a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b;return h}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName(this,"form"))return!1;f.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=f.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d&&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){a._submit_bubble=!0}),d._submit_attached=!0)})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&f.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){if(f.nodeName(this,"form"))return!1;f.event.remove(this,"._submit")}}),f.support.changeBubbles||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")f.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(a){this. _just_changed&&!a.isTrigger&&(this._just_changed=!1,f.event.simulate("change",this,a,!0))});return!1}f.event.add(this,"beforeactivate._change",function(a){var b=a.target;z.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate("change",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){f.event.remove(this,"._change");return z.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object"){typeof c! ="string"&&(d=d||c,c=b);for(i in a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=J;else if(!e)return this;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.namespace?e.origType+"."+e.namespace:e.origType,e.selector,e.handler);return this}if(typeof a=="object"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!1||typeof c=="function")d=c,c=b;d===!1&&(d=J);return this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a,this.selector||" **",b);return this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f._data(this,"lastToggle"+a.guid)||0)%d;f._data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.on(b,null,a,c):thi s.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}if(j.nodeType===1){g||(j[d]=c,j.sizset=h);if(typeof b!="string"){if(j===b){k=!0;break}}else if(m.filter(b,[j]).length>0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}j.nodeType===1&&!g&&(j[d]=c,j.sizset=h);if(j.nodeName.toLowerCase()===b){k=j;break}j=j[a]}e[h]=k}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[] ,d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t] !=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},m.matches=function(a,b){return m(a,null,null,b)},m.matchesSelector=function(a,b){return m(b,null,null,[a]).length>0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(j,""),d=o.find[h](g,b,c);if(d!=null){a=a.replace(o.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter)if((f=o.leftMatch[h].exec(a))!=null&&f[2]){k= o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.length-1)==="\\")continue;s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,s,d,r,e,t);if(!f)g=i=!0;else if(f===!0)continue}if(f)for(n=0;(j=s[n])!=null;n++)j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0));if(i!==b){d||(s=r),a=a.replace(o.match[h],"");if(!g)return[];break}}if(a===q)if(g==null)m.error(a);else break;q=a}return s},m.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)};var n=m.getText=function(a){var b,c,d=a.nodeType,e="";if(d){if(d===1||d===9||d===11){if(typeof a.textContent=="string")return a.textContent;if(typeof a.innerText=="string")return a.innerText.replace(k,"");for(a=a.firstChild;a;a=a.nextSibling)e+=n(a)}else if(d===3||d===4)return a.nodeValue}else for(b=0;c=a[b];b++)c.nodeType!==8&&(e+=n(c));return e},o=m.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u 00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!l.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&m.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e<f;e++) {c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&m.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(j,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&& (" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){re turn a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toL owerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}m.error(e)},CHILD:function(a,b){var c,e,f,g,h,i, j,k=b[1],l=a;switch(k){case"only":case"first":while(l=l.previousSibling)if(l.nodeType===1)return!1;if(k==="first")return!0;l=a;case"last":while(l=l.nextSibling)if(l.nodeType===1)return!1;return!0;case"nth":c=b[2],e=b[3];if(c===1&&e===0)return!0;f=b[0],g=a.parentNode;if(g&&(g[d]!==f||!a.nodeIndex)){i=0;for(l=g.firstChild;l;l=l.nextSibling)l.nodeType===1&&(l.nodeIndex=++i);g[d]=f}j=a.nodeIndex-e;return c===0?j===0:j%c===0&&j/c>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f=== "$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));o.match.globalPOS=p;var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var u,v;c.documentElement.compareDocumentPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compa reDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,i=b.parentNode,j=g;if(g===i)return v(a,b);if(!g)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return v(e[k],f[k]);return k===c?v(a,f[k],-1):v(e[k],b,1)},v=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter. ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagNam e(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\ ]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g)... [truncated message content] |
|
From: <pb...@fe...> - 2012-12-17 08:03:36
|
Author: pboy
Date: 2012-12-17 08:03:28 +0000 (Mon, 17 Dec 2012)
New Revision: 2396
Modified:
trunk/ccm-navigation/src/com/arsdigita/navigation/ui/object/CustomizableObjectList.java
Log:
Fixed German Umlauts. (on behalf of JensP)
Modified: trunk/ccm-navigation/src/com/arsdigita/navigation/ui/object/CustomizableObjectList.java
===================================================================
--- trunk/ccm-navigation/src/com/arsdigita/navigation/ui/object/CustomizableObjectList.java 2012-12-17 08:00:21 UTC (rev 2395)
+++ trunk/ccm-navigation/src/com/arsdigita/navigation/ui/object/CustomizableObjectList.java 2012-12-17 08:03:28 UTC (rev 2396)
@@ -1,5 +1,6 @@
package com.arsdigita.navigation.ui.object;
+import com.arsdigita.globalization.Globalization;
import com.arsdigita.navigation.Navigation;
import com.arsdigita.persistence.DataCollection;
import com.arsdigita.xml.Element;
@@ -193,7 +194,7 @@
* @return The property to sort by.
*/
public String getOrder(final String id) {
- String order = sortFields.get(id);
+ final String order = sortFields.get(id);
if ((order == null) || order.isEmpty()) {
return new ArrayList<String>(sortFields.values()).get(0);
}
@@ -211,10 +212,10 @@
* @return
*/
@Override
- protected DataCollection getObjects(HttpServletRequest request,
- HttpServletResponse response) {
+ protected DataCollection getObjects(final HttpServletRequest request,
+ final HttpServletResponse response) {
//Set filters (using the SQL)
- StringBuilder sqlFilters = new StringBuilder();
+ final StringBuilder sqlFilters = new StringBuilder();
for (Map.Entry<String, Filter> filterEntry : filters.entrySet()) {
if ((filterEntry.getValue().getFilter() == null)
|| (filterEntry.getValue().getFilter().isEmpty())) {
@@ -232,7 +233,7 @@
setSQLFilter(sqlFilters.toString());
}
- DataCollection objects = super.getObjects(request, response);
+ final DataCollection objects = super.getObjects(request, response);
return objects;
}
@@ -250,10 +251,10 @@
* @return
*/
@Override
- public Element generateXML(HttpServletRequest request,
- HttpServletResponse response) {
+ public Element generateXML(final HttpServletRequest request,
+ final HttpServletResponse response) {
//Some stuff for the list (copied from ComplexObjectList)
- Element content = Navigation.newElement("customizableObjectList");
+ final Element content = Navigation.newElement("customizableObjectList");
if (m_customName != null) {
content.addAttribute(CUSTOM_NAME, m_customName);
@@ -273,30 +274,30 @@
/*
* if (request.getCharacterEncoding() == null) {
*/
- try {
- request.setCharacterEncoding("UTF-8");
- } catch (UnsupportedEncodingException ex) {
- logger.error(ex);
- }
+// try {
+// request.setCharacterEncoding("UTF-8");
+// } catch (UnsupportedEncodingException ex) {
+// logger.error(ex);
+// }
//}
for (Map.Entry<String, Filter> filterEntry : filters.entrySet()) {
- String value = request.getParameter(filterEntry.getKey());
+ final String value = Globalization.decodeParameter(request, filterEntry.getKey());
if ((value != null) && !value.isEmpty()) {
filterEntry.getValue().setValue(value);
}
}
- Element controls = content.newChildElement("filterControls");
+ final Element controls = content.newChildElement("filterControls");
controls.addAttribute("customName", m_customName);
- Element filterElems = controls.newChildElement("filters");
+ final Element filterElems = controls.newChildElement("filters");
for (Map.Entry<String, Filter> filterEntry : filters.entrySet()) {
filterElems.addContent(filterEntry.getValue().getXml());
}
- if (sortFields.size() > 0) {
+ if (!sortFields.isEmpty()) {
//Look for a sort parameter. If one is found, use one to sort the data
//collection (if it is a valid value). If no sort parameter is found,
//use the first sort field as default.
@@ -305,10 +306,10 @@
sortByKey = new ArrayList<String>(sortFields.keySet()).get(0);
}
- Element sortFieldElems = controls.newChildElement("sortFields");
+ final Element sortFieldElems = controls.newChildElement("sortFields");
sortFieldElems.addAttribute("sortBy", sortByKey);
for (Map.Entry<String, String> sortField : sortFields.entrySet()) {
- Element sortFieldElem = sortFieldElems.newChildElement(
+ final Element sortFieldElem = sortFieldElems.newChildElement(
"sortField");
sortFieldElem.addAttribute("label", sortField.getKey());
}
|
|
From: <pb...@fe...> - 2012-12-17 08:00:30
|
Author: pboy Date: 2012-12-17 08:00:21 +0000 (Mon, 17 Dec 2012) New Revision: 2395 Modified: trunk/ccm-cms/src/com/arsdigita/cms/CMSResources_de.properties trunk/ccm-cms/src/com/arsdigita/cms/ui/authoring/AuthoringResources.properties trunk/ccm-cms/src/com/arsdigita/cms/ui/folder/CMSFolderResources.properties trunk/ccm-cms/src/com/arsdigita/cms/ui/folder/CMSFolderResources_de.properties Log: Some localisations fixed. (on behalf of JensP) Modified: trunk/ccm-cms/src/com/arsdigita/cms/CMSResources_de.properties =================================================================== --- trunk/ccm-cms/src/com/arsdigita/cms/CMSResources_de.properties 2012-12-17 07:52:47 UTC (rev 2394) +++ trunk/ccm-cms/src/com/arsdigita/cms/CMSResources_de.properties 2012-12-17 08:00:21 UTC (rev 2395) @@ -1101,3 +1101,5 @@ cms.ui.search.create.select_edit=Item ausw\u00e4hlen und weiter bearbeiten cms.ui.clear=Zur\u00fccksetzen +cms.ui.type.minimum_number_of_values_bigger_than_maximum_number_of_values=Maximaler Wert kleiner als minimaler Wert +cms.ui.type.minimummaximum_number_of_values_cannot_be_negative=Keine negativen Werte erlaubt Modified: trunk/ccm-cms/src/com/arsdigita/cms/ui/authoring/AuthoringResources.properties =================================================================== --- trunk/ccm-cms/src/com/arsdigita/cms/ui/authoring/AuthoringResources.properties 2012-12-17 07:52:47 UTC (rev 2394) +++ trunk/ccm-cms/src/com/arsdigita/cms/ui/authoring/AuthoringResources.properties 2012-12-17 08:00:21 UTC (rev 2395) @@ -61,3 +61,5 @@ cms.ui.authoring.document_type=Document type cms.ui.authoring.format=Format cms.ui.authoring.security_class=Security class +cms.ui.authoring.failed_to_upload_image=Failed to upload image +cms.ui.authoring.choose_contact=Kontakt ausw\u00e4hlen Modified: trunk/ccm-cms/src/com/arsdigita/cms/ui/folder/CMSFolderResources.properties =================================================================== --- trunk/ccm-cms/src/com/arsdigita/cms/ui/folder/CMSFolderResources.properties 2012-12-17 07:52:47 UTC (rev 2394) +++ trunk/ccm-cms/src/com/arsdigita/cms/ui/folder/CMSFolderResources.properties 2012-12-17 08:00:21 UTC (rev 2395) @@ -70,5 +70,5 @@ cms.ui.folder.filter.all=All cms.ui.folder.filter=Filter for work cms.ui.folder.filter_do=Filter -cms.ui.folder.languages= +cms.ui.folder.languages=Languages cms.ui.folder.delete_confirmation=Permanently delete this item? Modified: trunk/ccm-cms/src/com/arsdigita/cms/ui/folder/CMSFolderResources_de.properties =================================================================== --- trunk/ccm-cms/src/com/arsdigita/cms/ui/folder/CMSFolderResources_de.properties 2012-12-17 07:52:47 UTC (rev 2394) +++ trunk/ccm-cms/src/com/arsdigita/cms/ui/folder/CMSFolderResources_de.properties 2012-12-17 08:00:21 UTC (rev 2395) @@ -66,5 +66,9 @@ cms.ui.folder.filter.all=Alle cms.ui.folder.filter=Nach Begriff filtern cms.ui.folder.filter_do=Filtern -cms.ui.folder.languages= +cms.ui.folder.languages=Sprachen cms.ui.folder.delete_confirmation=Wollen Sie dieses Content-Item l\u00f6schen? +cms.ui.folder.edit_selection=Ausgew\u00e4hlte Items kopieren oder verschieben: +cms.ui.folder.creation_date=Erstellungsdatum +cms.ui.folder.last_modified=Letzte \u00c4nderung +cms.ui.folder.index=Index |
|
From: <pb...@fe...> - 2012-12-17 07:52:55
|
Author: pboy
Date: 2012-12-17 07:52:47 +0000 (Mon, 17 Dec 2012)
New Revision: 2394
Removed:
trunk/ccm-cms/web/assets/xinha/plugins/CCMInsertImage/
trunk/ccm-cms/web/assets/xinha/plugins/CCMInsertLink/
Modified:
trunk/ccm-cms/src/com/arsdigita/cms/ui/ImageSelectResultComponent.java
trunk/ccm-cms/web/assets/xinha/plugins/OpenCCM/images/images.html
trunk/ccm-cms/web/assets/xinha/plugins/OpenCCM/images/images.js
Log:
Fixed path entry, OpenCCM Plugin, preview works, unused directores removed. (on behalf of quasimodo)
Modified: trunk/ccm-cms/src/com/arsdigita/cms/ui/ImageSelectResultComponent.java
===================================================================
--- trunk/ccm-cms/src/com/arsdigita/cms/ui/ImageSelectResultComponent.java 2012-12-17 07:47:37 UTC (rev 2393)
+++ trunk/ccm-cms/src/com/arsdigita/cms/ui/ImageSelectResultComponent.java 2012-12-17 07:52:47 UTC (rev 2394)
@@ -9,12 +9,13 @@
import com.arsdigita.bebop.SimpleContainer;
import com.arsdigita.cms.ImageAsset;
import com.arsdigita.cms.Service;
+import com.arsdigita.web.URL;
import com.arsdigita.xml.Element;
/**
- * A component which will insert a javascript to the xml output with the
+ * A component which will insert a javascript to the xml output with the
* image information for the OpenCCM plugin for Xinha editor.
- *
+ *
* @author Sören Bernstein (quasimodo) <sbe...@ze...>
*/
public class ImageSelectResultComponent extends SimpleContainer implements Resettable {
@@ -28,7 +29,7 @@
/**
* Save image imformation
- *
+ *
* @param iamge an {@link ImageAsset}
*/
public void setResult(final ImageAsset image/*, final String name, final BigDecimal id, final BigDecimal width, final BigDecimal height*/) {
@@ -48,9 +49,10 @@
if (m_valid) {
script.append("if(button.id == \"save\" ) {");
-
+
script.append("window.opener.openCCM.imageSet({");
script.append(" src : \"");
+ script.append(URL.getDispatcherPath());
script.append(Service.getImageURL(m_image));
script.append("\", ");
script.append(" name : \"");
@@ -75,7 +77,7 @@
/**
* Reset this component.
- *
+ *
* @param state Page state
*/
public void reset(PageState state) {
Modified: trunk/ccm-cms/web/assets/xinha/plugins/OpenCCM/images/images.html
===================================================================
--- trunk/ccm-cms/web/assets/xinha/plugins/OpenCCM/images/images.html 2012-12-17 07:47:37 UTC (rev 2393)
+++ trunk/ccm-cms/web/assets/xinha/plugins/OpenCCM/images/images.html 2012-12-17 07:52:47 UTC (rev 2394)
@@ -111,7 +111,7 @@
-->
<input type="hidden" name="[src]" id="[src]"/>
- <fieldset>
+ <fieldset id="[layout]">
<legend>
<l10n>Layout</l10n>
</legend>
@@ -146,7 +146,7 @@
</div>
</fieldset>
- <fieldset>
+ <fieldset id="[dimensions]">
<legend>
<l10n>Dimension</l10n>
</legend>
Modified: trunk/ccm-cms/web/assets/xinha/plugins/OpenCCM/images/images.js
===================================================================
--- trunk/ccm-cms/web/assets/xinha/plugins/OpenCCM/images/images.js 2012-12-17 07:47:37 UTC (rev 2393)
+++ trunk/ccm-cms/web/assets/xinha/plugins/OpenCCM/images/images.js 2012-12-17 07:52:47 UTC (rev 2394)
@@ -87,14 +87,7 @@
// OnResize
this.dialogs["images"].onresize = function ()
{
- var newHeightForPreview =
- parseInt(this.height, 10)
-// - this.getElementById("h1").offsetHeight
-// - this.getElementById("buttons").offsetHeight
-// - this.getElementById("inputs").offsetHeight
- - parseInt(this.rootElem.style.paddingBottom, 10);
- this.getElementById("preview").style.height = ((newHeightForPreview > 0) ? newHeightForPreview : 0) + "px";
- this.getElementById("preview").style.width = "98%";
+ self.resizePreview(this);
};
this.imageDialogReady = true;
@@ -299,19 +292,32 @@
OpenCCM.prototype.imageSet = function(imageData)
{
- var dialog = this.dialogs["images"];
+ var dialog = this.dialogs["images"]
dialog.getElementById(dialog.id["src"]).value = imageData.src;
dialog.getElementById(dialog.id["ipreview"]).src = imageData.src;
dialog.getElementById(dialog.id["width"]).value = imageData.width;
dialog.getElementById(dialog.id["height"]).value = imageData.height;
dialog.getElementById(dialog.id["name"]).value = imageData.name;
dialog.getElementById(dialog.id["aspect"]).value = dialog.getElementById(dialog.id["width"]).value / dialog.getElementById(dialog.id["height"]).value;
+
+ this.resizePreview(dialog);
+
if(imageData.src != "")
{
dialog.getElementById(dialog.id["preview"]).style.display = "block";
+ } else {
+ dialog.getElementById(dialog.id["preview"]).style.display = "none";
}
};
+OpenCCM.prototype.resizePreview = function(dialog) {
+ var aspect = dialog.getElementById(dialog.id["aspect"]).value;
+ var previewWidth = dialog.width - 22;
+
+ dialog.getElementById(dialog.id["ipreview"]).style.height = Math.round(previewWidth / aspect) + "px";
+ dialog.getElementById(dialog.id["ipreview"]).style.width = previewWidth + "px";
+};
+
OpenCCM.prototype.calcWidth = function()
{
var dialog = this.dialogs["images"];
|
|
From: <pb...@fe...> - 2012-12-17 07:47:46
|
Author: pboy
Date: 2012-12-17 07:47:37 +0000 (Mon, 17 Dec 2012)
New Revision: 2393
Modified:
trunk/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericContactAttachAddressPropertyForm.java
trunk/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericContactAttachPersonPropertyForm.java
trunk/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonAliasSetForm.java
trunk/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonCreate.java
trunk/ccm-cms/src/com/arsdigita/cms/ui/authoring/PageCreate.java
trunk/ccm-cms/src/com/arsdigita/cms/ui/templates/TemplateEdit.java
Log:
Reverted r1812 for some forms, which dont work anymore. (on behalf of JensP)
Modified: trunk/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericContactAttachAddressPropertyForm.java
===================================================================
--- trunk/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericContactAttachAddressPropertyForm.java 2012-12-16 20:27:20 UTC (rev 2392)
+++ trunk/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericContactAttachAddressPropertyForm.java 2012-12-17 07:47:37 UTC (rev 2393)
@@ -149,7 +149,8 @@
@Override
public void validate(FormSectionEvent e) throws FormProcessException {
- super.validate(e);
+ //Calling super.validate(e) here causes an exception because the super method checks things which not available
+ //here.
final PageState state = e.getPageState();
final FormData data = e.getFormData();
Modified: trunk/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericContactAttachPersonPropertyForm.java
===================================================================
--- trunk/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericContactAttachPersonPropertyForm.java 2012-12-16 20:27:20 UTC (rev 2392)
+++ trunk/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericContactAttachPersonPropertyForm.java 2012-12-17 07:47:37 UTC (rev 2393)
@@ -179,7 +179,8 @@
@Override
public void validate(FormSectionEvent e) throws FormProcessException {
- super.validate(e);
+ //Calling super.validate(e) here causes an exception because the super method checks things which not available
+ //here.
final PageState state = e.getPageState();
final FormData data = e.getFormData();
Modified: trunk/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonAliasSetForm.java
===================================================================
--- trunk/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonAliasSetForm.java 2012-12-16 20:27:20 UTC (rev 2392)
+++ trunk/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonAliasSetForm.java 2012-12-17 07:47:37 UTC (rev 2393)
@@ -124,10 +124,10 @@
}
}
- @Override
- public void validate(final FormSectionEvent fse)
- throws FormProcessException {
- super.validate(fse);
+ @Override
+ public void validate(final FormSectionEvent fse) throws FormProcessException {
+ //We don't call super.validate(fse) here because the super method checks for things which are not available
+ //here, causing an exception.
final PageState state = fse.getPageState();
final FormData data = fse.getFormData();
Modified: trunk/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonCreate.java
===================================================================
--- trunk/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonCreate.java 2012-12-16 20:27:20 UTC (rev 2392)
+++ trunk/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonCreate.java 2012-12-17 07:47:37 UTC (rev 2393)
@@ -72,11 +72,13 @@
}
}
- // Validate: ensure name uniqueness
+ /**
+ * Ensure name uniqueness. Note: We can't call {@code super.validate(FormSectionEvent)} here
+ * because the super method {@link BasicPageForm#validate(com.arsdigita.bebop.event.FormSectionEvent)} tries
+ * to access things which on existing yet.
+ */
@Override
- public void validate(FormSectionEvent e) throws FormProcessException {
- super.validate(e);
-
+ public void validate(FormSectionEvent e) throws FormProcessException {
Folder f = m_parent.getFolder(e.getPageState());
Assert.exists(f);
validateNameUniqueness(f, e, GenericPerson.urlSave(getItemName(e)));
Modified: trunk/ccm-cms/src/com/arsdigita/cms/ui/authoring/PageCreate.java
===================================================================
--- trunk/ccm-cms/src/com/arsdigita/cms/ui/authoring/PageCreate.java 2012-12-16 20:27:20 UTC (rev 2392)
+++ trunk/ccm-cms/src/com/arsdigita/cms/ui/authoring/PageCreate.java 2012-12-17 07:47:37 UTC (rev 2393)
@@ -34,7 +34,6 @@
import com.arsdigita.cms.util.GlobalizationUtil;
import com.arsdigita.util.Assert;
import java.util.Date;
-
import org.apache.log4j.Logger;
/**
@@ -47,9 +46,7 @@
*/
public class PageCreate extends BasicPageForm
implements FormSubmissionListener, CreationComponent {
-
- private static final Logger s_log = Logger.getLogger(PageCreate.class);
-
+
protected final CreationSelector m_parent;
protected ApplyWorkflowFormSection m_workflowSection;
@@ -105,13 +102,17 @@
return m_workflowSection;
}
- // Init: create a new item id
+ /** create a new item id
+ *
+ */
public void init(FormSectionEvent e) throws FormProcessException {
// this is currently a no-op
}
- // Submission: If the Cancel button was pressed, hide self and
- // show the display component
+ /**
+ * If the Cancel button was pressed, hide self and
+ * show the display component
+ */
public void submitted(FormSectionEvent e) throws FormProcessException {
PageState state = e.getPageState();
@@ -124,14 +125,18 @@
}
}
- // Validate: ensure name uniqueness
+ /**
+ * Validate inputs to ensure name uniqueness. Note: We can't call {@code super.validate(FormSectionEvent)} here
+ * because the super method {@link BasicPageForm#validate(com.arsdigita.bebop.event.FormSectionEvent)} tries
+ * to access things which on existing yet.
+ *
+ * @param event
+ */
@Override
- public void validate(FormSectionEvent e) throws FormProcessException {
- super.validate(e);
-
- Folder f = m_parent.getFolder(e.getPageState());
- Assert.exists(f);
- validateNameUniqueness(f, e);
+ public void validate(final FormSectionEvent event) throws FormProcessException {
+ final Folder folder = m_parent.getFolder(event.getPageState());
+ Assert.exists(folder);
+ validateNameUniqueness(folder, event);
}
// Process: save fields to the database
Modified: trunk/ccm-cms/src/com/arsdigita/cms/ui/templates/TemplateEdit.java
===================================================================
--- trunk/ccm-cms/src/com/arsdigita/cms/ui/templates/TemplateEdit.java 2012-12-16 20:27:20 UTC (rev 2392)
+++ trunk/ccm-cms/src/com/arsdigita/cms/ui/templates/TemplateEdit.java 2012-12-17 07:47:37 UTC (rev 2393)
@@ -18,7 +18,6 @@
*/
package com.arsdigita.cms.ui.templates;
-
import com.arsdigita.bebop.FormData;
import com.arsdigita.bebop.FormProcessException;
import com.arsdigita.bebop.Label;
@@ -52,7 +51,7 @@
public class TemplateEdit extends SimpleEditStep {
private static Logger s_log =
- Logger.getLogger(TemplateEdit.class);
+ Logger.getLogger(TemplateEdit.class);
/**
* Construct a new TemplateEdit component
@@ -73,8 +72,8 @@
//DomainObjectPropertySheet sheet = new DomainObjectPropertySheet(itemModel);
DomainObjectPropertySheet sheet = new DomainObjectPropertySheet(itemModel, false);
- sheet.add((String) GlobalizationUtil.globalize("cms.ui.templates.name").localize(), ContentItem.NAME);
- sheet.add((String) GlobalizationUtil.globalize("cms.ui.templates.label").localize(), Template.LABEL);
+ sheet.add((String) GlobalizationUtil.globalize("cms.ui.templates.name").localize(), ContentItem.NAME);
+ sheet.add((String) GlobalizationUtil.globalize("cms.ui.templates.label").localize(), Template.LABEL);
setDisplayComponent(sheet);
}
@@ -101,13 +100,13 @@
protected void addWidgets() {
add(new Label(GlobalizationUtil.globalize("cms.ui.templates.name")));
TextField nameWidget =
- new TextField(new TrimmedStringParameter(NAME));
+ new TextField(new TrimmedStringParameter(NAME));
nameWidget.addValidationListener(new NameValidationListener());
add(nameWidget);
add(new Label(GlobalizationUtil.globalize("cms.ui.templates.label")));
TextField labelWidget =
- new TextField(new TrimmedStringParameter(Template.LABEL));
+ new TextField(new TrimmedStringParameter(Template.LABEL));
labelWidget.addValidationListener(new NotNullValidationListener());
add(labelWidget);
}
@@ -127,34 +126,35 @@
FormData data = e.getFormData();
PageState state = e.getPageState();
Template t = getTemplate(state);
- t.setName((String)data.get(NAME));
- t.setLabel((String)data.get(Template.LABEL));
+ t.setName((String) data.get(NAME));
+ t.setLabel((String) data.get(Template.LABEL));
t.save();
}
public void validate(FormSectionEvent event) throws FormProcessException {
- super.validate(event);
-
+ //Calling super.validate(e) here causes an exception because the super method checks things which not available
+ //here.
+
PageState state = event.getPageState();
FormData data = event.getFormData();
Template t = getTemplate(state);
- String newName = (String)data.get(NAME);
+ String newName = (String) data.get(NAME);
String oldName = t.getName();
// Validation passes if the item name is the same.
- if ( !newName.equalsIgnoreCase(oldName) ) {
- validateNameUniqueness((Folder)t.getParent(), event);
+ if (!newName.equalsIgnoreCase(oldName)) {
+ validateNameUniqueness((Folder) t.getParent(), event);
}
}
// Get the current template
public Template getTemplate(PageState state) {
Template t =
- (Template) getItemSelectionModel().getSelectedObject(state);
+ (Template) getItemSelectionModel().getSelectedObject(state);
Assert.exists(t);
return t;
}
+
}
-
}
|
|
From: <pb...@fe...> - 2012-12-16 20:27:36
|
Author: pboy
Date: 2012-12-16 20:27:20 +0000 (Sun, 16 Dec 2012)
New Revision: 2392
Modified:
releases/2.0.0/ccm-cms/src/com/arsdigita/cms/CMSResources.properties
releases/2.0.0/ccm-cms/src/com/arsdigita/cms/CMSResources_de.properties
releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ContenttypesResources_de.properties
releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ContentItemPage.java
releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageBrowser.java
releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageComponent.java
releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageComponentAbstractListener.java
releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageComponentAdminListener.java
releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageComponentSelectListener.java
releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageLibraryComponent.java
releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageSelectPage.java
releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageUploadComponent.java
releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImagesPane.java
releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/category/CategoryItemPane.java
releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/category/CategoryLocalizationEditForm.java
releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/category/CategoryLocalizationTable.java
releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/folder/AbstractFolderPicker.java
releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/folder/FlatFolderPicker.java
releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/templates/TemplateEdit.java
releases/2.0.0/ccm-core/src/com/arsdigita/categorization/Category.java
releases/2.0.0/ccm-core/src/com/arsdigita/categorization/CategoryLocalizationCollection.java
Log:
UI enhancemnt: category localisation editible (backport r2390), added comments. (on behalf of quasimodo)
Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/CMSResources.properties
===================================================================
--- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/CMSResources.properties 2012-12-16 20:22:48 UTC (rev 2391)
+++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/CMSResources.properties 2012-12-16 20:27:20 UTC (rev 2392)
@@ -105,7 +105,7 @@
cms.contenttypes.ui.event_end_time=Event End Time:
cms.contenttypes.ui.government_uid=Government UID:
cms.contenttypes.ui.grade=Grade:
-cms.contenttypes.ui.homepage=Homepage?
+cms.contenttypes.ui.homepage=Homepage:
cms.contenttypes.ui.job_description=Job Description:
cms.contenttypes.ui.launch_date=Launch Date:
cms.contenttypes.ui.lead=Description:
Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/CMSResources_de.properties
===================================================================
--- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/CMSResources_de.properties 2012-12-16 20:22:48 UTC (rev 2391)
+++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/CMSResources_de.properties 2012-12-16 20:27:20 UTC (rev 2392)
@@ -70,7 +70,7 @@
cms.contenttypes.shared.assign_categories.title=Kategorien zuweisen
cms.contenttypes.shared.assign_categories.description=Kategorien zuweisen
cms.contenttypes.shared.attach_files.title=Dateien zuordnen
-cms.contenttypes.shared.attach_files.description=Dateien anh\u00c4ngen
+cms.contenttypes.shared.attach_files.description=Dateien anh\u00e4ngen
cms.contenttypes.shared.basic_properties.description=Basiseigenschaften editieren
cms.contenttypes.shared.basic_properties.title=Basiseigenschaften
cms.contenttypes.shared.body_text.title=Haupttext
@@ -105,7 +105,7 @@
cms.contenttypes.ui.event_end_time=Event Ende um\:
cms.contenttypes.ui.government_uid=Government UID:
cms.contenttypes.ui.grade=Grad:
-cms.contenttypes.ui.homepage=Homepage?
+cms.contenttypes.ui.homepage=Homepage:
cms.contenttypes.ui.job_description=Job Beschreibung:
cms.contenttypes.ui.launch_date=Ver\u00f6ffentlichungsdatum:
cms.contenttypes.ui.lead=Beschreibung (Lead Text):
@@ -160,8 +160,8 @@
cms.installer.cannot_find_group_for_email=Kann email-Gruppe nicht finden
cms.installer.cannot_read_line_of_data=Kann Datensatz nicht lesen
cms.installer.cannot_set_template_text=Kann Template Text nicht festlegen
-cms.installer.could_not_load_section=Kann die folgende ContentSection nicht laden '{0}'
-cms.installer.deploy=anwenden
+cms.installer.could_not_load_section=Kann die ContentSection '{0}' nicht laden
+cms.installer.deploy=Anwenden
cms.installer.failed_to_update_the_default_content_section=Update der Default Content Section gescheitert.
cms.installer.formbuilder.form=Form
cms.installer.formbuilder.form_section=Form Abschnitt
@@ -187,7 +187,7 @@
cms.publishToFile.could_not_get_object_for_oid=Could not get object for oid
cms.publishToFile.error_executing=Ausf\u00fchrungsfehler bei '{0}' \:
cms.publishToFile.exit_value_was=Exit Code war
-cms.publishToFile.interrupted_when_doing=Unterbrochen bei Ausf\u00fchren von '{0}'
+cms.publishToFile.interrupted_when_doing=Unterbrochen beim Ausf\u00fchren von '{0}'
cms.publishToFile.invalid_brokenlinkaction=Ung\u00fcltige BrokenLinkAction\:
cms.publishToFile.invalid_reference_target_type=Ung\u00fcltige reference target type\:
cms.publishToFile.malformed_url=Falsche Struktur der URL\:
@@ -232,7 +232,7 @@
cms.ui.browse=Dokumente
cms.ui.browse_items_by_category=Durchsicht der Elemente nach Kategorien
cms.ui.cancel=Abbruch
-cms.ui.cancel_hit=Abbruch dr\u00fccken
+cms.ui.cancel_hit=Abbruch gedr\u00fcckt
cms.ui.cancelled=abgebrochen
cms.ui.cannot_assign_groups_to_owner=cannot assign groups to owner
cms.ui.categories=Kategorien
@@ -241,7 +241,7 @@
cms.ui.content_item=Dokument
cms.ui.content_section=Content section
cms.ui.content_section_configuration=<h2>Content Section Configuration</h2>
-cms.ui.content_types=Dokument Typen
+cms.ui.content_types=Dokumenttypen
cms.ui.contents_of=Inhalt von
cms.ui.create=Erstellen
cms.ui.cse=Bald abgelaufen
@@ -324,10 +324,10 @@
cms.ui.template=Vorlage
cms.ui.Templates=Vorlagen
cms.ui.the_model_is_empty=Das Modell ist leer
-cms.ui.there_are_no_items=Keine elemente vorhanden.
+cms.ui.there_are_no_items=Keine Elemente vorhanden.
cms.ui.there_was_no_one_matching_the_search_criteria=Kein Element erf\u00fcllte die Suchkriterien.
cms.ui.this_should_never_happen=Dies sollte nie passieren\!
-cms.ui.types=Dokument Typen
+cms.ui.types=Dokumenttypen
cms.ui.unknown=unbekannt
cms.ui.upload_new_content=Neuen Inhalt laden
cms.ui.use_custom_permissions=Benutzerspezifische Rechte
@@ -352,9 +352,9 @@
# Package com.arsdigita.cms.ui.authoring
# ======================================
-cms.ui.authoring.an_item_with_this_name_already_exists=Ein Item mit diesem Namen existiert
+cms.ui.authoring.an_item_with_this_name_already_exists=Ein Item mit diesem Namen existiert bereits
cms.ui.authoring.bad_getblob_datatype=Ung\u00fcltiger Datentyp getBlob
-cms.ui.authoring.bad_getclob_datatype=Ung\u00fcltiger Datentyp getBlob
+cms.ui.authoring.bad_getclob_datatype=Ung\u00fcltiger Datentyp getClob
cms.ui.authoring.body=Textbereich:
cms.ui.authoring.caption=Untertitel:
cms.ui.authoring.content_type=Inhaltstyp:
@@ -457,7 +457,7 @@
cms.ui.category.localization_error_locale=Bitte w\u00e4hlen Sie eine Sprache aus
cms.ui.category.localization_locale=Sprache
cms.ui.category.localization_name=Name
-cms.ui.category.localization_none=Diese Kaegorie hat keine Sprachversionen
+cms.ui.category.localization_none=Diese Kategorie hat keine Sprachversionen
cms.ui.category.localization_url=URL
cms.ui.category.name_not_unique=Es gibt bereits eine Kategorie mit diesem Namen.
cms.ui.category.no_categorized_objects=Es gibt keine kategorisierten Objekte
@@ -489,8 +489,8 @@
cms.ui.cse.itemName=Name
cms.ui.cse.view=Anzeigen
cms.ui.cse.viewLink=anzeigen
-cms.ui.cse.edit=Edit
-cms.ui.cse.editLink=edit
+cms.ui.cse.edit=Bearbeiten
+cms.ui.cse.editLink=bearbeiten
cms.ui.cse.endDateTime=aktiv bis
@@ -498,7 +498,7 @@
# ===================================
cms.ui.folder.cancelled=Abgebrochen
cms.ui.folder.cannot_find_a_root_folder=Kein Wurzelverzeichnis gefunden.
-cms.ui.folder.na=K.A.
+cms.ui.folder.na=k.A.
cms.ui.folder.no_source_items_specified=Kein Quelldokument angegeben.
cms.ui.folder.parent=\u00dcbergeordneter Ordner
cms.ui.folder.rename=Ordner umbenennen
@@ -507,7 +507,7 @@
# ========================================
cms.ui.formbuilder.description=Beschreibung:
cms.ui.formbuilder.name=Name:
-cms.ui.formbuilder.oh_no_you_dont=Nicht, sie wollen nicht
+cms.ui.formbuilder.oh_no_you_dont=Nein, das wollen sie nicht
cms.ui.formbuilder.title=Titel\:
Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ContenttypesResources_de.properties
===================================================================
--- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ContenttypesResources_de.properties 2012-12-16 20:22:48 UTC (rev 2391)
+++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ContenttypesResources_de.properties 2012-12-16 20:27:20 UTC (rev 2392)
@@ -15,7 +15,7 @@
cms.contenttypes.ui.person.surname=Nachname
cms.contenttypes.ui.person.givenname=Vorname
cms.contenttypes.ui.person.titlepre=Titel
-cms.contenttypes.ui.person.titlepost=Namesanhang
+cms.contenttypes.ui.person.titlepost=Namensanhang
cms.contenttypes.ui.person.birthdate=Geburtstag
cms.contenttypes.ui.person.description=Beschreibung
Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ContentItemPage.java
===================================================================
--- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ContentItemPage.java 2012-12-16 20:22:48 UTC (rev 2391)
+++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ContentItemPage.java 2012-12-16 20:27:20 UTC (rev 2392)
@@ -509,7 +509,7 @@
return ContentSection.getConfig().getUseStreamlinedCreation()
&& STREAMLINED_CREATION_ACTIVE.equals(state.getRequest().
getParameter(STREAMLINED_CREATION));
- }
+ }
protected TabbedPane getTabbedPane() {
return m_tabbedPane;
Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageBrowser.java
===================================================================
--- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageBrowser.java 2012-12-16 20:22:48 UTC (rev 2391)
+++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageBrowser.java 2012-12-16 20:27:20 UTC (rev 2392)
@@ -34,7 +34,6 @@
import com.arsdigita.cms.ImageAsset;
import com.arsdigita.cms.SecurityManager;
import com.arsdigita.cms.Service;
-import com.arsdigita.cms.ui.ImageComponent;
import com.arsdigita.domain.DataObjectNotFoundException;
import com.arsdigita.domain.DomainObjectFactory;
import com.arsdigita.mimetypes.MimeType;
@@ -62,6 +61,7 @@
* </code></pre></blockquote>
*
* @author Stanislav Freidin
+ * @author Sören Bernstein (quasimodo) <sbe...@qu...>
* @version $Id$
*/
public class ImageBrowser extends Table {
@@ -80,7 +80,7 @@
private static final Logger s_log = Logger.getLogger(ImageBrowser.class);
/**
- * Construct a new ImageBrowser
+ * Construct a new ImageBrowser with default mode.
*
* @param builder the {@link ImageBrowserModelBuilder} that will supply this
* component with its {@link ImageBrowserModel} during each request
@@ -90,6 +90,13 @@
this(b, ImageComponent.ATTACH_IMAGE);
}
+ /**
+ * Construct a new ImageBrowser with requested mode.
+ *
+ * @param builder the {@link ImageBrowserModelBuilder} that will supply this
+ * component with its {@link ImageBrowserModel} during each request
+ * @param mode the component mode (see {@link ImageComponent})
+ */
public ImageBrowser(ImageBrowserModelBuilder b, int mode) {
super(new BuilderAdapter(b), HEADERS);
m_mode = mode;
Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageComponent.java
===================================================================
--- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageComponent.java 2012-12-16 20:22:48 UTC (rev 2391)
+++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageComponent.java 2012-12-16 20:27:20 UTC (rev 2392)
@@ -1,6 +1,5 @@
/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
+ *
*/
package com.arsdigita.cms.ui;
@@ -11,11 +10,18 @@
import com.arsdigita.cms.ReusableImageAsset;
/**
- *
+ * Interface for ImageCompnents.
+ *
+ * All components for image handling (like {@link ImageLibraryComponent} or
+ * {@link ImageUploadComponent}) should implement this interface.
+ *
* @author Sören Bernstein (quasimodo) <sbe...@ze...>
*/
public interface ImageComponent {
+ /**
+ * The modes
+ */
public static final int DISPLAY_ONLY = 0;
public static final int SELECT_IMAGE = 1;
public static final int ATTACH_IMAGE = 2;
Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageComponentAbstractListener.java
===================================================================
--- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageComponentAbstractListener.java 2012-12-16 20:22:48 UTC (rev 2391)
+++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageComponentAbstractListener.java 2012-12-16 20:27:20 UTC (rev 2392)
@@ -18,7 +18,13 @@
import org.apache.log4j.Logger;
/**
- *
+ * An abstract listener for {@link ImageComponent}.
+ *
+ * This listener provides the base implementation which is shared between all
+ * listeners of this kind.
+ *
+ * This listerner is used by {@link ImageSelectPage}.
+ *
* @author Sören Bernstein (quasimodo) <sbe...@ze...>
*/
public abstract class ImageComponentAbstractListener implements FormInitListener, FormProcessListener, FormSubmissionListener {
@@ -39,6 +45,13 @@
}
}
+ /**
+ * Call {@link #cancelled(com.arsdigita.bebop.PageState)} if the cancel button
+ * was pressed.
+ *
+ * @param event the {@link FormSectionEvent}
+ * @throws FormProcessException
+ */
public void submitted(FormSectionEvent event) throws FormProcessException {
PageState ps = event.getPageState();
ImageComponent component = getImageComponent(ps);
@@ -48,6 +61,13 @@
}
}
+ /**
+ * Call {@link #processImage(com.arsdigita.bebop.event.FormSectionEvent, com.arsdigita.bebop.PageState, com.arsdigita.cms.ui.ImageComponent, com.arsdigita.cms.ReusableImageAsset) }
+ * if the save button was pressed.
+ *
+ * @param event the {@link FormSectionEvent}
+ * @throws FormProcessException
+ */
public void process(FormSectionEvent event) throws FormProcessException {
PageState ps = event.getPageState();
ImageComponent component = getImageComponent(ps);
@@ -62,8 +82,21 @@
}
+ /**
+ * To be overridden by child if neccessary.
+ *
+ * @param ps
+ */
protected void cancelled(PageState ps) {};
+ /**
+ * Process the input.
+ *
+ * @param event the {@link FormSectionEvent}
+ * @param ps {@link PageState}
+ * @param component an {@link ImageComponent}
+ * @param image the {@link ReusableImageAsset}
+ */
protected abstract void processImage(FormSectionEvent event, PageState ps, ImageComponent component, ReusableImageAsset image);
protected ImageComponent getImageComponent(PageState ps) {
@@ -80,6 +113,12 @@
}
+ /**
+ * Sets the active component
+ *
+ * @param ps Page state
+ * @param activeKey the key of the active component
+ */
protected void setImageComponent(PageState ps, final String activeKey) {
if (s_log.isDebugEnabled()) {
Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageComponentAdminListener.java
===================================================================
--- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageComponentAdminListener.java 2012-12-16 20:22:48 UTC (rev 2391)
+++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageComponentAdminListener.java 2012-12-16 20:27:20 UTC (rev 2392)
@@ -13,7 +13,10 @@
import com.arsdigita.toolbox.ui.ComponentMap;
/**
- *
+ * A listener to administer images.
+ *
+ * This listerner is used by {@link ImagesPane}.
+ *
* @author Sören Bernstein (quasimodo) <sbe...@ze...>
*/
class ImageComponentAdminListener extends ImageComponentAbstractListener implements ActionListener {
Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageComponentSelectListener.java
===================================================================
--- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageComponentSelectListener.java 2012-12-16 20:22:48 UTC (rev 2391)
+++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageComponentSelectListener.java 2012-12-16 20:27:20 UTC (rev 2392)
@@ -4,7 +4,6 @@
*/
package com.arsdigita.cms.ui;
-import com.arsdigita.bebop.FormProcessException;
import com.arsdigita.bebop.MapComponentSelectionModel;
import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.event.FormSectionEvent;
@@ -12,15 +11,18 @@
import org.apache.log4j.Logger;
/**
- *
+ * A listener to select an image and save it for later use.
+ *
+ * This listerner is used by {@link ImageSelectPage}.
+ *
* @author Sören Bernstein (quasimodo) <sbe...@ze...>
*/
public class ImageComponentSelectListener extends ImageComponentAbstractListener {
private static final Logger S_LOG = Logger.getLogger(ImageComponentSelectListener.class);
- private final ImageSelectResultPane m_resultPane;
+ private final ImageSelectResultComponent m_resultPane;
- public ImageComponentSelectListener(MapComponentSelectionModel imageComponent, ImageSelectResultPane resultPane) {
+ public ImageComponentSelectListener(MapComponentSelectionModel imageComponent, ImageSelectResultComponent resultPane) {
super(imageComponent);
m_resultPane = resultPane;
}
Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageLibraryComponent.java
===================================================================
--- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageLibraryComponent.java 2012-12-16 20:22:48 UTC (rev 2391)
+++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageLibraryComponent.java 2012-12-16 20:27:20 UTC (rev 2392)
@@ -25,7 +25,13 @@
import java.math.BigDecimal;
/**
+ * An image library component.
*
+ * This component can be used in different places to add an image library
+ * in a convinient way. This class uses a listener class which should be extended
+ * from {@link ImageComponentAbstractListener}.
+ *
+ * @author unknown
* @author Sören Bernstein (quasimodo) <sbe...@ze...>
*/
public class ImageLibraryComponent extends SimpleContainer implements ImageComponent, Resettable {
@@ -67,7 +73,7 @@
try {
final ReusableImageAsset image = new ReusableImageAsset(imageID);
if(m_mode == ImageComponent.SELECT_IMAGE) {
- parent.getResultPane().setResult(image.getDisplayName(), image.getID(), image.getWidth(), image.getHeight());
+ parent.getResultComponent().setResult(image);
}
m_imageModel.setSelectedObject(state, image);
} catch (DataObjectNotFoundException ex) {
@@ -164,6 +170,11 @@
return m_saveCancel;
}
+ /**
+ * Add a link to an {@link ImageUploadComponent}
+ *
+ * @param actionListener
+ */
public void addUploadLink(final ActionListener actionListener) {
// Add action link to image upload component
if (m_mode != ImageComponent.DISPLAY_ONLY) {
@@ -173,7 +184,9 @@
}
}
- // Reset this component
+ /**
+ * Reset this component.
+ */
public void reset(final PageState state) {
// clear selection
m_imageModel.clearSelection(state);
Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageSelectPage.java
===================================================================
--- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageSelectPage.java 2012-12-16 20:22:48 UTC (rev 2391)
+++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageSelectPage.java 2012-12-16 20:27:20 UTC (rev 2392)
@@ -21,7 +21,11 @@
import org.apache.log4j.Logger;
/**
- *
+ * A {@link CMSPage} to select and upload images.
+ *
+ * This page is used by /web/templates/ccm-cms/content-section/admin/image_select.jsp
+ * which is used by the OpenCCM plugin for Xihna editor.
+ *
* @author Sören Bernstein (quasimodo) <sbe...@ze...>
*/
public class ImageSelectPage extends CMSPage {
@@ -32,7 +36,7 @@
private TabbedPane m_tabbedPane;
private ImageLibraryComponent m_imageLibrary;
private ImageUploadComponent m_imageUpload;
- private ImageSelectResultPane m_resultPane;
+ private ImageSelectResultComponent m_result;
private BigDecimalParameter m_sectionId;
private final StringParameter m_imageComponentKey;
private final MapComponentSelectionModel m_imageComponent;
@@ -56,7 +60,7 @@
m_imageComponent =
new MapComponentSelectionModel(componentModel, new HashMap());
- m_selectListener = new ImageComponentSelectListener(m_imageComponent, getResultPane());
+ m_selectListener = new ImageComponentSelectListener(m_imageComponent, getResultComponent());
m_tabbedPane = createTabbedPane();
m_tabbedPane.setIdAttr("page-body");
@@ -77,11 +81,16 @@
}
});
- add(m_resultPane);
+ add(m_result);
addGlobalStateParam(m_imageComponentKey);
}
+ /**
+ * Create the image library pane
+ *
+ * @return m_imageLibrary
+ */
protected ImageLibraryComponent getImageLibraryPane() {
if (m_imageLibrary == null) {
m_imageLibrary = new ImageLibraryComponent(ImageComponent.SELECT_IMAGE, this);
@@ -92,6 +101,11 @@
return m_imageLibrary;
}
+ /**
+ * Create the image upload pane
+ *
+ * @return m_imageUpload
+ */
protected ImageUploadComponent getImageUploadPane() {
if (m_imageUpload == null) {
@@ -103,13 +117,21 @@
return m_imageUpload;
}
- protected ImageSelectResultPane getResultPane() {
- if (m_resultPane == null) {
- m_resultPane = new ImageSelectResultPane();
+ /**
+ * Creates an {@link ImageSelectResultComponent}
+ *
+ * @return m_resultPane
+ */
+ protected ImageSelectResultComponent getResultComponent() {
+ if (m_result == null) {
+ m_result = new ImageSelectResultComponent();
}
- return m_resultPane;
+ return m_result;
}
+ /**
+ * Create the tabbed pane
+ */
protected TabbedPane createTabbedPane() {
TabbedPane pane = new TabbedPane();
pane.setClassAttr(XSL_CLASS);
Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageUploadComponent.java
===================================================================
--- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageUploadComponent.java 2012-12-16 20:22:48 UTC (rev 2391)
+++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageUploadComponent.java 2012-12-16 20:27:20 UTC (rev 2392)
@@ -21,7 +21,13 @@
import java.io.IOException;
/**
+ * An image upload component.
*
+ * This component can be used in different places to add image upload capabilities
+ * in a convinient way. This class uses a listener class which should be extended
+ * from {@link ImageComponentAbstractListener}.
+ *
+ * @author unknown
* @author Sören Bernstein (quasimodo) <sbe...@ze...>
*/
public class ImageUploadComponent extends Form implements ImageComponent {
@@ -34,10 +40,18 @@
private final SaveCancelSection m_saveCancel;
private int m_mode;
+ /**
+ * Creates an ImageUploadComponent in attach mode.
+ */
public ImageUploadComponent() {
this(ImageComponent.ATTACH_IMAGE);
}
+ /**
+ * Creates an ImageUploadComponent with the selected mode.
+ *
+ * @param mode The operation mode (see {@link ImageComponent)
+ */
public ImageUploadComponent(int mode) {
super("imageUploadComponent", new ColumnPanel(2));
m_mode = mode;
Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImagesPane.java
===================================================================
--- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImagesPane.java 2012-12-16 20:22:48 UTC (rev 2391)
+++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImagesPane.java 2012-12-16 20:27:20 UTC (rev 2392)
@@ -34,7 +34,7 @@
import org.apache.log4j.Logger;
/**
- * A LayoutPanel to insert into ContentSectionPage or ImageSelectPage
+ * A {@link LayoutPanel} to insert into {@link ContentSectionPage}.
*
* @author Sören Bernstein (quasimodo) <sbe...@ze...>
*/
@@ -77,6 +77,7 @@
final Map selectors = m_imageComponent.getComponentsMap();
m_adminListener = new ImageComponentAdminListener(m_imageComponent, this);
+ // Image library component
final ImageLibraryComponent library = new ImageLibraryComponent(ImageComponent.ADMIN_IMAGES);
library.getForm().addInitListener(m_adminListener);
library.getForm().addProcessListener(m_adminListener);
@@ -86,6 +87,7 @@
new Label(GlobalizationUtil.globalize("cms.ui.image_library")),
library));
+ // Image upload component
final ImageUploadComponent upload = new ImageUploadComponent(ImageComponent.ADMIN_IMAGES);
upload.getForm().addInitListener(m_adminListener);
upload.getForm().addSubmissionListener(m_adminListener);
@@ -126,6 +128,11 @@
page.addComponentStateParam(this, m_imageComponentKey);
}
+ /**
+ * Resets this pane and all its resettable components.
+ *
+ * @param state Page state
+ */
@Override
public final void reset(final PageState state) {
super.reset(state);
Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/category/CategoryItemPane.java
===================================================================
--- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/category/CategoryItemPane.java 2012-12-16 20:22:48 UTC (rev 2391)
+++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/category/CategoryItemPane.java 2012-12-16 20:27:20 UTC (rev 2392)
@@ -22,9 +22,12 @@
import com.arsdigita.bebop.BaseLink;
import com.arsdigita.bebop.Component;
import com.arsdigita.bebop.Form;
+import com.arsdigita.bebop.FormModel;
import com.arsdigita.bebop.Label;
import com.arsdigita.bebop.Link;
+import com.arsdigita.bebop.Page;
import com.arsdigita.bebop.PageState;
+import com.arsdigita.bebop.ParameterSingleSelectionModel;
import com.arsdigita.bebop.SimpleContainer;
import com.arsdigita.bebop.SingleSelectionModel;
import com.arsdigita.bebop.event.ActionEvent;
@@ -32,6 +35,7 @@
import com.arsdigita.bebop.event.ChangeEvent;
import com.arsdigita.bebop.event.ChangeListener;
import com.arsdigita.bebop.form.Submit;
+import com.arsdigita.bebop.parameters.StringParameter;
import com.arsdigita.categorization.CategorizedCollection;
import com.arsdigita.categorization.Category;
import com.arsdigita.categorization.CategoryCollection;
@@ -75,40 +79,35 @@
* @version $Id$
*/
class CategoryItemPane extends BaseItemPane {
-
- private static final Logger s_log = Logger.getLogger
- (CategoryItemPane.class);
-
+
+ private static final Logger s_log = Logger.getLogger(CategoryItemPane.class);
private final SingleSelectionModel m_model;
private final CategoryRequestLocal m_category;
-
private final SimpleContainer m_detailPane;
public CategoryItemPane(final SingleSelectionModel model,
- final CategoryRequestLocal category,
- final ActionLink addLink,
- final ActionLink editLink,
- final ActionLink deleteLink) {
+ final CategoryRequestLocal category,
+ final ActionLink addLink,
+ final ActionLink editLink,
+ final ActionLink deleteLink) {
m_model = model;
m_category = category;
// Details
-
m_detailPane = new SimpleContainer();
add(m_detailPane);
setDefault(m_detailPane);
final ActionLink orderItemsLink = new ActionLink(new Label(
- gz("cms.ui.category.categorized_objects"))) {
+ gz("cms.ui.category.categorized_objects"))) {
@Override
public boolean isVisible(PageState state) {
// update for live items only
if (!super.isVisible(state)) {
return false;
}
- CategorizedCollection items = m_category.getCategory
- (state).getObjects(ContentItem.BASE_DATA_OBJECT_TYPE);
- items.addEqualsFilter(ContentItem.VERSION,ContentItem.LIVE);
+ CategorizedCollection items = m_category.getCategory(state).getObjects(ContentItem.BASE_DATA_OBJECT_TYPE);
+ items.addEqualsFilter(ContentItem.VERSION, ContentItem.LIVE);
boolean canOrder = items.size() > 1;
items.close();
return canOrder;
@@ -123,55 +122,54 @@
// Change index item
final ActionLink indexLink = new ActionLink(new Label(gz(
- "cms.ui.category.change_index_item")));
+ "cms.ui.category.change_index_item")));
final Form indexForm = new IndexItemSelectionForm(m_category);
add(indexForm);
ViewItemLink viewIndexLink = new ViewItemLink(new Label(gz(
- "cms.ui.category.view_index_item")),"");
+ "cms.ui.category.view_index_item")), "");
EditItemLink editIndexLink = new EditItemLink(new Label(gz(
- "cms.ui.category.edit_index_item")),"");
+ "cms.ui.category.edit_index_item")), "");
// Summary
m_detailPane.add(new SummarySection(editLink, deleteLink, indexLink,
- viewIndexLink, editIndexLink, orderItemsLink));
-
+ viewIndexLink, editIndexLink, orderItemsLink));
+
// Quasimodo: BEGIN
// Localizations
ActionLink addCategoryLocalizationLink = new ActionLink(new Label(gz(
- "cms.ui.category.localization_add"))) {
+ "cms.ui.category.localization_add"))) {
@Override
public boolean isVisible(PageState state) {
// Only show addLanguage button, if there are langauges to add
- int countSupportedLanguages = (
- Kernel.getConfig()).getSupportedLanguagesTokenizer()
- .countTokens();
- long countLanguages =
+ int countSupportedLanguages = (Kernel.getConfig()).getSupportedLanguagesTokenizer()
+ .countTokens();
+ long countLanguages =
m_category.getCategory(state)
- .getCategoryLocalizationCollection().size();
-
- if(countLanguages < countSupportedLanguages) {
+ .getCategoryLocalizationCollection().size();
+
+ if (m_category.getCategory(state).canEdit()
+ && countLanguages < countSupportedLanguages) {
return true;
} else {
return false;
}
}
};
-
+
CategoryLocalizationAddForm addCategoryLocalizationForm =
- new CategoryLocalizationAddForm(m_category);
+ new CategoryLocalizationAddForm(m_category);
m_detailPane.add(new CategoryLocalizationSection(addCategoryLocalizationLink));
add(addCategoryLocalizationForm);
connect(addCategoryLocalizationLink, addCategoryLocalizationForm);
connect(addCategoryLocalizationForm);
// Quasimodo: END
-
+
// Subcategories
m_detailPane.add(new SubcategorySection(addLink));
// Linked categories
- final ActionLink linkAddLink = new ActionLink
- (new Label(gz("cms.ui.category.linked_add")));
+ final ActionLink linkAddLink = new ActionLink(new Label(gz("cms.ui.category.linked_add")));
final Form linkForm = new LinkForm(m_category);
add(linkForm);
@@ -196,6 +194,7 @@
}
private class EditVisible extends VisibilityComponent {
+
EditVisible(final Component child) {
super(child, null);
}
@@ -207,6 +206,7 @@
}
private class AdminVisible extends VisibilityComponent {
+
AdminVisible(final Component child) {
super(child, null);
}
@@ -220,9 +220,9 @@
private class SummarySection extends Section {
SummarySection(final ActionLink editLink,
- final ActionLink deleteLink,
- final ActionLink indexLink,
- final ActionLink orderItemsLink) {
+ final ActionLink deleteLink,
+ final ActionLink indexLink,
+ final ActionLink orderItemsLink) {
setHeading(new Label(gz("cms.ui.category.details")));
final ActionGroup group = new ActionGroup();
@@ -241,11 +241,11 @@
* the user to view and edit the content index item.
*/
SummarySection(final ActionLink editLink,
- final ActionLink deleteLink,
- final ActionLink indexLink,
- final BaseLink viewIndexItem,
- final BaseLink editIndexItem,
- final ActionLink orderItemsLink) {
+ final ActionLink deleteLink,
+ final ActionLink indexLink,
+ final BaseLink viewIndexItem,
+ final BaseLink editIndexItem,
+ final ActionLink orderItemsLink) {
setHeading(new Label(gz("cms.ui.category.details")));
final ActionGroup group = new ActionGroup();
@@ -262,6 +262,7 @@
}
private class Properties extends PropertyList {
+
@Override
protected final java.util.List properties(final PageState state) {
final java.util.List props = super.properties(state);
@@ -272,20 +273,19 @@
if (item != null) {
itemTitle = item.getDisplayName();
- } else if (!category.ignoreParentIndexItem()
- && category.getParentCategoryCount() > 0)
- {
- Category ancestor = findParentCategoryWithNonInheritedIndexItem(category);
- if (ancestor != null) {
- if (ancestor.getIndexObject() != null) {
- itemTitle = ancestor.getIndexObject().getDisplayName();
- }
- itemTitle += " (Inherited from "
- + ancestor.getDisplayName() + ")";
- } else {
- // The complete hierarchy is set to inherit.
- // Just leave the itemTitle as None.
- }
+ } else if (!category.ignoreParentIndexItem()
+ && category.getParentCategoryCount() > 0) {
+ Category ancestor = findParentCategoryWithNonInheritedIndexItem(category);
+ if (ancestor != null) {
+ if (ancestor.getIndexObject() != null) {
+ itemTitle = ancestor.getIndexObject().getDisplayName();
+ }
+ itemTitle += " (Inherited from "
+ + ancestor.getDisplayName() + ")";
+ } else {
+ // The complete hierarchy is set to inherit.
+ // Just leave the itemTitle as None.
+ }
}
props.add(new Property(gz("cms.ui.name"),
@@ -295,57 +295,77 @@
props.add(new Property(gz("cms.ui.category.url"),
category.getURL("")));
props.add(new Property(gz("cms.ui.category.is_not_abstract"),
- category.isAbstract() ?
- gz("cms.ui.no") :
- gz("cms.ui.yes")));
+ category.isAbstract()
+ ? gz("cms.ui.no")
+ : gz("cms.ui.yes")));
props.add(new Property(gz("cms.ui.category.is_enabled"),
- category.isEnabled("") ?
- gz("cms.ui.yes") :
- gz("cms.ui.no")));
+ category.isEnabled("")
+ ? gz("cms.ui.yes")
+ : gz("cms.ui.no")));
props.add(new Property(gz("cms.ui.category.index_item"),
- itemTitle));
+ itemTitle));
return props;
}
}
}
-
+
// Loop over the parents and recurse up the hierarchy the find the first
// parent with an explicit index item ignoreParentIndexItem is true.
private Category findParentCategoryWithNonInheritedIndexItem(Category c) {
- if (c.getParentCategoryCount() == 0) {
- return null;
- }
- CategoryCollection parents = c.getParents();
- while (parents.next()) {
- Category p = parents.getCategory();
- if (p.getDirectIndexObject() != null || p.ignoreParentIndexItem()) {
- return p;
- }
- // Try the parents of this parent.
- Category gp = findParentCategoryWithNonInheritedIndexItem(p);
- if (gp != null) {
- return gp;
- }
- }
- return null;
+ if (c.getParentCategoryCount() == 0) {
+ return null;
+ }
+ CategoryCollection parents = c.getParents();
+ while (parents.next()) {
+ Category p = parents.getCategory();
+ if (p.getDirectIndexObject() != null || p.ignoreParentIndexItem()) {
+ return p;
+ }
+ // Try the parents of this parent.
+ Category gp = findParentCategoryWithNonInheritedIndexItem(p);
+ if (gp != null) {
+ return gp;
+ }
+ }
+ return null;
}
-
+
// Quasimodo: BEGIN
// CategoryLocalizationSection
private class CategoryLocalizationSection extends Section {
+
+ private CategoryLocalizationTable m_catLocalizationTable;
+ private CategoryLocalizationEditForm m_editCategoryLocalizationForm;
+ private StringParameter m_catLocaleParam;
+ private ParameterSingleSelectionModel m_catLocale;
+
CategoryLocalizationSection(ActionLink addLink) {
setHeading(new Label(gz("cms.ui.category.localizations")));
-
+ m_catLocaleParam = new StringParameter("catLocale");
+ m_catLocale = new ParameterSingleSelectionModel(m_catLocaleParam);
+
final ActionGroup group = new ActionGroup();
setBody(group);
-
- group.setSubject(new CategoryLocalizationTable(m_category, m_model));
+ m_catLocalizationTable = new CategoryLocalizationTable(m_category, m_model, m_catLocale);
+ group.setSubject(m_catLocalizationTable);
group.addAction(new AdminVisible(addLink), ActionGroup.ADD);
+
+ m_editCategoryLocalizationForm = new CategoryLocalizationEditForm(m_category, m_catLocale);
+ add(m_editCategoryLocalizationForm);
+ connect(m_editCategoryLocalizationForm);
+ connect(m_catLocalizationTable, 0, m_editCategoryLocalizationForm);
}
+
+ @Override
+ public void register(Page page) {
+ super.register(page);
+ page.addComponentStateParam(m_editCategoryLocalizationForm, m_catLocaleParam);
+ }
}
private class SubcategorySection extends Section {
+
SubcategorySection(final ActionLink addLink) {
setHeading(new Label(gz("cms.ui.category.subcategories")));
@@ -358,6 +378,7 @@
}
private class LinkedCategorySection extends Section {
+
LinkedCategorySection(final ActionLink linkAddLink) {
setHeading(new Label(gz("cms.ui.category.linked")));
@@ -375,6 +396,7 @@
}
private class CategoryTemplateSection extends Section {
+
CategoryTemplateSection() {
setHeading(new Label(gz("cms.ui.category.templates")));
@@ -388,6 +410,7 @@
}
private class PermissionsSection extends Section {
+
@Override
public boolean isVisible(PageState ps) {
Category cat = m_category.getCategory(ps);
@@ -400,7 +423,7 @@
final ActionGroup group = new ActionGroup();
setBody(group);
- PrivilegeDescriptor[] privs = new PrivilegeDescriptor[] {
+ PrivilegeDescriptor[] privs = new PrivilegeDescriptor[]{
PrivilegeDescriptor.EDIT,
Category.MAP_DESCRIPTOR,
PrivilegeDescriptor.DELETE,
@@ -413,8 +436,7 @@
privMap.put(Category.MAP_DESCRIPTOR.getName(), "Categorize Items");
privMap.put("admin", "Admin");
- final CMSPermissionsPane permPane = new CMSPermissionsPane
- (privs, privMap, new ACSObjectSelectionModel(m_model)) {
+ final CMSPermissionsPane permPane = new CMSPermissionsPane(privs, privMap, new ACSObjectSelectionModel(m_model)) {
@Override
public void showAdmin(PageState ps) {
Assert.exists(m_model.getSelectedKey(ps));
@@ -425,7 +447,7 @@
};
final ActionLink restoreDefault = new ActionLink(new Label(gz(
- "cms.ui.restore_default_permissions"))) {
+ "cms.ui.restore_default_permissions"))) {
@Override
public boolean isVisible(PageState ps) {
Category cat = m_category.getCategory(ps);
@@ -434,7 +456,7 @@
};
final ActionLink useCustom = new ActionLink(new Label(gz(
- "cms.ui.use_custom_permissions"))) {
+ "cms.ui.use_custom_permissions"))) {
@Override
public boolean isVisible(PageState ps) {
Category cat = m_category.getCategory(ps);
@@ -460,18 +482,18 @@
parent = cat.getDefaultParentCategory();
} catch (CategoryNotFoundException ce) {
throw new IllegalStateException(
- "link shouldn't exist for root categories");
+ "link shouldn't exist for root categories");
}
PermissionService.setContext(cat, parent);
// revoke all direct permissions so category will only
// have inherited permissions
ObjectPermissionCollection perms =
- PermissionService.getDirectGrantedPermissions(
+ PermissionService.getDirectGrantedPermissions(
cat.getOID());
while (perms.next()) {
PermissionService.revokePermission(
- new PermissionDescriptor(
+ new PermissionDescriptor(
perms.getPrivilege(), cat.getOID(),
perms.getGranteeOID()));
}
@@ -510,26 +532,26 @@
add(new Submit("Done"));
}
-
}
/*
* This private class creates a link to the index item for a category.
*/
private class ViewItemLink extends Link {
+
ViewItemLink(Component c, String s) {
- super(c,s);
+ super(c, s);
}
- // Build the preview link. This uses a standard redirect link to find
+ // Build the preview link. This uses a standard redirect link to find
// the content. The prepareURL method is called by the printwriter
@Override
protected String prepareURL(final PageState state, String location) {
- ContentItem indexItem = ((ContentBundle)(m_category.getCategory(state)
- .getDirectIndexObject()))
- .getPrimaryInstance();
- if(indexItem==null) {
+ ContentItem indexItem = ((ContentBundle) (m_category.getCategory(state)
+ .getDirectIndexObject()))
+ .getPrimaryInstance();
+ if (indexItem == null) {
return "";
} else {
return "/redirect/?oid=" + URLEncoder.encode(indexItem.getOID().toString());
@@ -543,7 +565,7 @@
return false;
}
ACSObject indexItem = m_category.getCategory(state).getDirectIndexObject();
- if(indexItem==null) {
+ if (indexItem == null) {
return false;
} else {
return true;
@@ -552,37 +574,40 @@
};
private class EditItemLink extends Link {
+
EditItemLink(Component c, String s) {
- super(c,s);
+ super(c, s);
}
/**
- * Build the preview link. This is based on code in the
- * ContentSoonExpiredPane class. The prepareURL method of the parent
- * is overwritten. This method is called by the printwriter
+ * Build the preview link. This is based on code in the
+ * ContentSoonExpiredPane class. The prepareURL method of the parent is
+ * overwritten. This method is called by the printwriter
*/
@Override
protected String prepareURL(final PageState state, String location) {
boolean canEdit = false;
- ContentItem indexItem = ((ContentBundle)(m_category.getCategory(state)
- .getDirectIndexObject()))
- .getPrimaryInstance();
- if(indexItem==null) {
+ ContentItem indexItem = ((ContentBundle) (m_category.getCategory(state)
+ .getDirectIndexObject()))
+ .getPrimaryInstance();
+ if (indexItem == null) {
return "";
}
- if (!isItemEditable(indexItem,state)) {
+ if (!isItemEditable(indexItem, state)) {
return "";
} else {
BigDecimal draftID = indexItem.getDraftVersion().getID();
- return "item.jsp?item_id=" + draftID + "&set_tab=" +
- ContentItemPage.AUTHORING_TAB;
+ return "item.jsp?item_id=" + draftID + "&set_tab="
+ + ContentItemPage.AUTHORING_TAB;
}
}
/**
* We only show this link when an index item exists for this category
* and the user is allowed to edit this item.
+ *
* @param state
+ *
* @return
*/
@Override
@@ -591,32 +616,33 @@
return false;
}
ACSObject indexItem = m_category.getCategory(state).getDirectIndexObject();
- if(indexItem==null) {
+ if (indexItem == null) {
return false;
} else {
- return isItemEditable((ContentItem)indexItem,state);
+ return isItemEditable((ContentItem) indexItem, state);
}
}
/**
- * This method checks whether a usern is allowed to edit a
- * particular item.
+ * This method checks whether a usern is allowed to edit a particular
+ * item.
*
* @param item
* @param state
+ *
* @return
*/
private boolean isItemEditable(ContentItem item, PageState state) {
BigDecimal id = item.getID();
User user = Web.getContext().getUser();
ContentItem ci = new ContentItem(new OID(ContentItem.class.getName(),
- Integer.parseInt(id.toString())));
+ Integer.parseInt(id.toString())));
Iterator permissions = PermissionService.getImpliedPrivileges(
- ci.getOID(), user.getOID());
+ ci.getOID(), user.getOID());
while (permissions.hasNext()) {
- PrivilegeDescriptor permission = (PrivilegeDescriptor)permissions.next();
- if (permission.equals(PrivilegeDescriptor.ADMIN) ||
- permission.equals(PrivilegeDescriptor.EDIT)) {
+ PrivilegeDescriptor permission = (PrivilegeDescriptor) permissions.next();
+ if (permission.equals(PrivilegeDescriptor.ADMIN)
+ || permission.equals(PrivilegeDescriptor.EDIT)) {
return true;
}
}
Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/category/CategoryLocalizationEditForm.java
===================================================================
--- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/category/CategoryLocalizationEditForm.java 2012-12-16 20:22:48 UTC (rev 2391)
+++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/category/CategoryLocalizationEditForm.java 2012-12-16 20:27:20 UTC (rev 2392)
@@ -20,6 +20,7 @@
import com.arsdigita.bebop.FormProcessException;
import com.arsdigita.bebop.PageState;
+import com.arsdigita.bebop.SingleSelectionModel;
import com.arsdigita.bebop.event.FormInitListener;
import com.arsdigita.bebop.event.FormProcessListener;
import com.arsdigita.bebop.event.FormSectionEvent;
@@ -37,30 +38,27 @@
* in order to present forms for managing the multi-language categories.
*
* @author Sören Bernstein (quasimodo) qu...@ze...
- * @version $Id: CategoryLocalizationEditForm.java $
+ * @version $Id: CategoryLocalizationEditForm.java $
*/
public class CategoryLocalizationEditForm extends CategoryLocalizationForm {
-
+
private static final Logger s_log = Logger.getLogger
(CategoryLocalizationEditForm.class);
-
- private final String m_categoryLocalizationLocale;
-
+
+ private final SingleSelectionModel m_catLocale;
/**
* Creates a new instance of CategoryLocalizationEditForm
*/
- public CategoryLocalizationEditForm(final CategoryRequestLocal category,
- final String locale) {
-
+ public CategoryLocalizationEditForm(final CategoryRequestLocal category, SingleSelectionModel catLocale) {
+
super("EditCategoryLocalization", gz(
"cms.ui.category.localization_edit"), category);
-
- // Speichere Locale ab
- m_categoryLocalizationLocale = locale;
-
+
+ m_catLocale = catLocale;
+
addInitListener(new InitListener());
addProcessListener(new ProcessListener());
-
+
}
/**
@@ -69,45 +67,46 @@
private class InitListener implements FormInitListener {
public final void init(final FormSectionEvent e)
throws FormProcessException {
-
+
final PageState state = e.getPageState();
final Category category = m_category.getCategory(state);
+ final String categoryLocalizationLocale = (String) m_catLocale.getSelectedKey(state);
+
// Hide Locale-Widget and lock it (read-only)
- m_locale.addOption(new Option(m_categoryLocalizationLocale,
- new Locale(m_categoryLocalizationLocale).getDisplayLanguage()), state);
-// m_locale.setValue(state, m_categoryLocalizationLocale);
+ m_locale.addOption(new Option(categoryLocalizationLocale,
+ new Locale(categoryLocalizationLocale).getDisplayLanguage()), state);
+ m_locale.setValue(state, categoryLocalizationLocale);
// m_locale.setVisible(state, false);
m_locale.lock();
-
- m_name.setValue(state, category.getName((String) m_locale.getValue(state)));
- m_description.setValue(state, category.getDescription(
- (String) m_locale.getValue(state)));
- m_url.setValue(state, category.getURL((String) m_locale.getValue(state)));
- if (category.isEnabled((String) m_locale.getValue(state))) {
+ m_name.setValue(state, category.getName(categoryLocalizationLocale));
+ m_description.setValue(state, category.getDescription(categoryLocalizationLocale));
+ m_url.setValue(state, category.getURL(categoryLocalizationLocale));
+
+ if (category.isEnabled(categoryLocalizationLocale)) {
m_isEnabled.setValue(state, "yes");
} else {
m_isEnabled.setValue(state, "no");
}
}
}
-
+
/**
* ##todo: document purpose of this
*/
private class ProcessListener implements FormProcessListener {
public final void process(final FormSectionEvent e)
throws FormProcessException {
-
+
final PageState state = e.getPageState();
final Category category = m_category.getCategory(state);
-
+
if (s_log.isDebugEnabled()) {
s_log.debug("Editing localization for locale " + m_locale +
" for category " + category);
}
-
+
if (category.canEdit()) {
category.setName((String) m_name.getValue(state),
(String) m_locale.getValue(state));
Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/category/CategoryLocalizationTable.java
===================================================================
--- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/category/CategoryLocalizationTable.java 2012-12-16 20:22:48 UTC (rev 2391)
+++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/category/CategoryLocalizationTable.java 2012-12-16 20:27:20 UTC (rev 2392)
@@ -21,7 +21,6 @@
import com.arsdigita.bebop.Component;
import com.arsdigita.bebop.ControlLink;
import com.arsdigita.bebop.Label;
-import com.arsdigita.bebop.Link;
import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.SingleSelectionModel;
import com.arsdigita.bebop.Table;
@@ -35,13 +34,7 @@
import com.arsdigita.categorization.Category;
import com.arsdigita.categorization.CategoryLocalization;
import com.arsdigita.categorization.CategoryLocalizationCollection;
-import com.arsdigita.cms.CMS;
-import com.arsdigita.cms.ContentSection;
-import com.arsdigita.cms.SecurityManager;
-import com.arsdigita.cms.dispatcher.ItemResolver;
-import com.arsdigita.cms.dispatcher.Utilities;
import com.arsdigita.cms.util.GlobalizationUtil;
-import com.arsdigita.domain.DataObjectNotFoundException;
import com.arsdigita.util.LockableImpl;
import java.math.BigDecimal;
import java.util.Locale;
@@ -49,8 +42,8 @@
/**
* Lists all existing localizations for a selected category.
*
- * This class is part of the admin GUI of CCM and extends the standard form
- * in order to present forms for managing the multi-language categories.
+ * This class is part of the admin GUI of CCM and extends the standard form in
+ * order to present forms for managing the multi-language categories.
*
* @author Sören Bernstein (quasimodo) qu...@ze...
*/
@@ -60,17 +53,18 @@
private final SingleSelectionModel m_model;
private final String TABLE_COL_LANG = "table_col_lang";
private final String TABLE_COL_DEL = "table_col_del";
+ private final SingleSelectionModel m_catLocale;
/**
* Creates a new instance of CategoryLocalizationTable
*/
- public CategoryLocalizationTable(final CategoryRequestLocal category,
- final SingleSelectionModel model) {
+ public CategoryLocalizationTable(final CategoryRequestLocal category, final SingleSelectionModel model, SingleSelectionModel catLocale) {
super();
m_category = category;
m_model = model;
+ m_catLocale = catLocale;
// if table is empty:
setEmptyView(new Label(GlobalizationUtil.globalize(
@@ -139,7 +133,7 @@
/**
* Check collection for the existence of another row.
- *
+ *
* If exists, fetch the value of current CategoryLocalization object
* into m_categoryLocalization class variable.
*/
@@ -158,6 +152,7 @@
/**
* Return the
+ *
* @see com.arsdigita.bebop.table.TableModel#getElementAt(int)
*/
public Object getElementAt(int columnIndex) {
@@ -194,25 +189,15 @@
private class EditCellRenderer extends LockableImpl implements TableCellRenderer {
public Component getComponent(Table table, PageState state, Object value,
- boolean isSelected, Object key,
+ boolean isSelected, final Object key,
int row, int column) {
-//
-// if (canEdit) {
-// CategoryLocalization cl;
-//
-// try {
-// cl = new CategoryLocalization((BigDecimal) key);
-// } catch (DataObjectNotFoundException ex) {
-// return new Label(value.toString());
-// }
-//
-// ContentSection section = CMS.getContext().getContentSection();
-// ItemResolver resolver = section.getItemResolver();
-//
-// return new Link(value.toString(), resolver.generateItemURL(state, cl, section, cl.getVersion()));
- ControlLink link = new ControlLink(value.toString());
- return link;
+
+ if (m_category.getCategory(state).canEdit()) {
+ return new ControlLink(value.toString());
+ } else {
+ return new Label(value.toString());
+ }
}
}
@@ -222,17 +207,21 @@
boolean isSelected, Object key,
int row, int column) {
- ControlLink link = new ControlLink(value.toString());
- link.setConfirmation((String) GlobalizationUtil.globalize(
- "cms.ui.category.localization_confirm_delete").localize());
- return link;
+ if (m_category.getCategory(state).canDelete()) {
+ ControlLink link = new ControlLink(value.toString());
+ link.setConfirmation((String) GlobalizationUtil.globalize(
+ "cms.ui.category.localization_confirm_delete").localize());
+ return link;
+ } else {
+ return null;
+ }
}
}
/**
- * Provide implementation to TableActionListener method.
- * Code that comes into picture when a link on the table is clicked.
- * Handles edit and delete event.
+ * Provide implementation to TableActionListener method. Code that comes
+ * into picture when a link on the table is clicked. Handles edit and delete
+ * event.
*/
public void cellSelected(TableActionEvent evt) {
@@ -250,6 +239,7 @@
// Edit
...
[truncated message content] |
|
From: <pb...@fe...> - 2012-12-16 20:22:56
|
Author: pboy
Date: 2012-12-16 20:22:48 +0000 (Sun, 16 Dec 2012)
New Revision: 2391
Modified:
releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericArticlePropertyForm.java
releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericContactAttachAddressPropertyForm.java
releases/2.0.0/ccm-navigation/src/WEB-INF/navigation/templates.txt
releases/2.0.0/ccm-navigation/src/com/arsdigita/navigation/DataCollectionDefinition.java
releases/2.0.0/ccm-navigation/src/com/arsdigita/navigation/DataCollectionRenderer.java
releases/2.0.0/ccm-navigation/src/com/arsdigita/navigation/ui/AbstractObjectList.java
releases/2.0.0/ccm-navigation/src/com/arsdigita/navigation/ui/object/ComplexObjectList.java
Log:
Added log date format. (backport r2388) (on behalf of quasimodo)
Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericArticlePropertyForm.java
===================================================================
--- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericArticlePropertyForm.java 2012-12-16 20:05:43 UTC (rev 2390)
+++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericArticlePropertyForm.java 2012-12-16 20:22:48 UTC (rev 2391)
@@ -72,7 +72,7 @@
@Override
public void validate(FormSectionEvent e) throws FormProcessException {
- super.validate(e);
+ super.validate(e);
}
/** Form initialisation hook. Fills widgets with data. */
Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericContactAttachAddressPropertyForm.java
===================================================================
--- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericContactAttachAddressPropertyForm.java 2012-12-16 20:05:43 UTC (rev 2390)
+++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericContactAttachAddressPropertyForm.java 2012-12-16 20:22:48 UTC (rev 2391)
@@ -182,4 +182,4 @@
localize());
}
}
-}
\ No newline at end of file
+}
Modified: releases/2.0.0/ccm-navigation/src/WEB-INF/navigation/templates.txt
===================================================================
--- releases/2.0.0/ccm-navigation/src/WEB-INF/navigation/templates.txt 2012-12-16 20:05:43 UTC (rev 2390)
+++ releases/2.0.0/ccm-navigation/src/WEB-INF/navigation/templates.txt 2012-12-16 20:22:48 UTC (rev 2391)
@@ -1,4 +1,4 @@
-Navigation Default Index Page,Default Navigation Index Page ordering items in ascending order,/templates/ccm-ldn-navigation/navigation/nav-default.jsp
-Navigation Recent Items,List of items ordered with most recent first,/templates/ccm-ldn-navigation/navigation/nav-recent.jsp
-Navigation A-Z Items,List of items paginated as A-Z,/templates/ccm-ldn-navigation/navigation/nav-atoz.jsp
-Navigation Demo Items Page,Demo items page,/templates/ccm-ldn-navigation/navigation/nav-demo.jsp
+Navigation Default Index Page,Default Navigation Index Page ordering items in ascending order,/templates/ccm-navigation/navigation/nav-default.jsp
+Navigation Recent Items,List of items ordered with most recent first,/templates/ccm-navigation/navigation/nav-recent.jsp
+Navigation A-Z Items,List of items paginated as A-Z,/templates/ccm-navigation/navigation/nav-atoz.jsp
+Navigation Demo Items Page,Demo items page,/templates/ccm-navigation/navigation/nav-demo.jsp
Modified: releases/2.0.0/ccm-navigation/src/com/arsdigita/navigation/DataCollectionDefinition.java
===================================================================
--- releases/2.0.0/ccm-navigation/src/com/arsdigita/navigation/DataCollectionDefinition.java 2012-12-16 20:05:43 UTC (rev 2390)
+++ releases/2.0.0/ccm-navigation/src/com/arsdigita/navigation/DataCollectionDefinition.java 2012-12-16 20:22:48 UTC (rev 2391)
@@ -195,6 +195,13 @@
m_properties.add(property);
}
+ /**
+ * Get a collection of objects from the database defined by model or
+ * null if the requested object type is invalid
+ *
+ * @param model
+ * @return data collection or null
+ */
public final DataCollection getDataCollection(NavigationModel model) {
Assert.isLocked(this);
Modified: releases/2.0.0/ccm-navigation/src/com/arsdigita/navigation/DataCollectionRenderer.java
===================================================================
--- releases/2.0.0/ccm-navigation/src/com/arsdigita/navigation/DataCollectionRenderer.java 2012-12-16 20:05:43 UTC (rev 2390)
+++ releases/2.0.0/ccm-navigation/src/com/arsdigita/navigation/DataCollectionRenderer.java 2012-12-16 20:22:48 UTC (rev 2391)
@@ -105,7 +105,8 @@
/**
* Sets the context of the traversal adapter used the render the objects
- * if {@link #m_specializeObjects} is set to <code>true</code>
+ * if {@link #m_specializeObjects} is set to
+ * <code>true</code>
*
* @param context The adapter context.
*/
@@ -125,6 +126,7 @@
/**
* @param objects
* @param pageNumber current page, starting from 1
+ *
* @return
*/
public Element generateXML(DataCollection objects,
@@ -140,7 +142,7 @@
// Quasimodo: End
Element content = Navigation.newElement("objectList");
-
+
//Return the empty nav:item & nav:paginator tags.
// Quasimodo: Why should I??? There is no need for a paginator if there aren't any elements
if (!m_navItems) {
@@ -203,9 +205,9 @@
paginator.addAttribute("objectCount", new Long(objectCount).toString());
content.addContent(paginator);
-
+
int index = 0;
- while (objects.next()) {
+ while (objects.next()) {
DataObject dobj = objects.getDataObject();
ACSObject object = null;
if (m_specializeObjects) {
@@ -216,8 +218,8 @@
} else {
s_log.debug("Specializing successful.");
}
- }
- Element item = Navigation.newElement(content, "item");
+ }
+ Element item = Navigation.newElement(content, "item");
Iterator attributes = m_attributes.iterator();
while (attributes.hasNext()) {
@@ -225,13 +227,13 @@
String[] paths = StringUtils.split(name, '.');
outputValue(item, dobj, name, paths, 0);
}
-
+
Iterator properties = m_properties.iterator();
while (properties.hasNext()) {
DataCollectionPropertyRenderer property = (DataCollectionPropertyRenderer) properties.next();
property.render(objects, item);
}
-
+
Element path = Navigation.newElement(item, "path");
path.setText(getStableURL(dobj, object));
//item.addContent(path);
@@ -239,9 +241,9 @@
generateItemXML(item, dobj, object, index);
index++;
- //content.addContent(item);
+ //content.addContent(item);
}
-
+
return content;
}
@@ -300,12 +302,13 @@
// Quasimodo: BEGIN
// Add attributes for date and time
Locale negLocale = com.arsdigita.globalization.GlobalizationHelper.getNegotiatedLocale();
- DateFormat dateFormatter = DateFormat.getDateInstance(
- DateFormat.MEDIUM, negLocale);
- DateFormat timeFormatter = DateFormat.getTimeInstance(
- DateFormat.SHORT, negLocale);
+ DateFormat dateFormatter = DateFormat.getDateInstance(DateFormat.MEDIUM, negLocale);
+ DateFormat longDateFormatter = DateFormat.getDateInstance(DateFormat.LONG, negLocale);
+ DateFormat timeFormatter = DateFormat.getTimeInstance(DateFormat.SHORT, negLocale);
attribute.addAttribute("date", dateFormatter.format(date));
+ attribute.addAttribute("longDate", longDateFormatter.format(date));
attribute.addAttribute("time", timeFormatter.format(date));
+ attribute.addAttribute("monthName", calDate.getDisplayName(Calendar.MONTH, Calendar.LONG, negLocale));
// Quasimodo: END
}
Modified: releases/2.0.0/ccm-navigation/src/com/arsdigita/navigation/ui/AbstractObjectList.java
===================================================================
--- releases/2.0.0/ccm-navigation/src/com/arsdigita/navigation/ui/AbstractObjectList.java 2012-12-16 20:05:43 UTC (rev 2390)
+++ releases/2.0.0/ccm-navigation/src/com/arsdigita/navigation/ui/AbstractObjectList.java 2012-12-16 20:22:48 UTC (rev 2391)
@@ -21,19 +21,21 @@
import com.arsdigita.kernel.Kernel;
import com.arsdigita.navigation.DataCollectionDefinition;
import com.arsdigita.navigation.DataCollectionRenderer;
-
import com.arsdigita.persistence.DataCollection;
-
import com.arsdigita.persistence.Filter;
import com.arsdigita.persistence.FilterFactory;
import com.arsdigita.util.Assert;
import com.arsdigita.util.UncheckedWrapperException;
-
import com.arsdigita.xml.Element;
-
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+/**
+ * Abstract base class for object lists
+ *
+ * @author unknown
+ * @author Sören Bernstein (quasimodo) <sbe...@ze...>
+ */
public abstract class AbstractObjectList
extends AbstractComponent implements ObjectList {
@@ -58,6 +60,14 @@
return m_renderer;
}
+ /**
+ * Get a list of objects from the database which meet a set criteria or
+ * null if the requested object type is invalid
+ *
+ * @param request
+ * @param response
+ * @return the object list or null
+ */
protected DataCollection getObjects(HttpServletRequest request,
HttpServletResponse response) {
Modified: releases/2.0.0/ccm-navigation/src/com/arsdigita/navigation/ui/object/ComplexObjectList.java
===================================================================
--- releases/2.0.0/ccm-navigation/src/com/arsdigita/navigation/ui/object/ComplexObjectList.java 2012-12-16 20:05:43 UTC (rev 2390)
+++ releases/2.0.0/ccm-navigation/src/com/arsdigita/navigation/ui/object/ComplexObjectList.java 2012-12-16 20:22:48 UTC (rev 2391)
@@ -15,22 +15,22 @@
import com.arsdigita.navigation.Navigation;
import com.arsdigita.navigation.ui.AbstractObjectList;
-
import com.arsdigita.persistence.DataCollection;
import com.arsdigita.persistence.Filter;
import com.arsdigita.persistence.FilterFactory;
-
-
import com.arsdigita.xml.Element;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
-
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* A complex object list
+ *
+ * An object list which will accept SQL filters to customize the content easily.
+ *
+ * @author Sören Bernstein <sbe...@qu...>
*/
public class ComplexObjectList extends AbstractObjectList {
@@ -41,42 +41,75 @@
protected Map<String, String> m_customAttributes =
new HashMap<String, String>();
+ // Getter / Setter
+
+ /**
+ * Sets a custom name for this list.
+ * @param name the list name
+ */
public void setCustomName(String name) {
m_customName = name;
}
+ /**
+ * Gets the costum name for this list.
+ * @return the list name
+ */
public String getCustomName() {
return m_customName;
}
/**
- * Hinzufügen eines SQL-Filter zur Abfrage
- * Verarbeitet einen boolschen Filter, der SQL-konform Formatiert ist.
- * Siehe PostgreSQL-Handbuch zur where-Klausel
- * @param sqlfilter
+ * Adds a custom attribute
+ *
+ * @param attribute
+ * @param value
*/
+ public void addCustomAttribute(final String attribute, final String value) {
+ m_customAttributes.put(attribute, value);
+ }
+
+ /**
+ * Gets a custom attribute
+ *
+ * @param attribute
+ * @return
+ */
+ public String getCustomAttribute(final String attribute) {
+ return m_customAttributes.get(attribute);
+ }
+
+
+ /**
+ * Add a SQL filter to query.
+ * This filter can handle wildcards which have to be set with {@link #setParameter(java.lang.String, java.lang.Object)}
+ *
+ *See PostgreSQL handbook about where clause
+ *
+ * @param sqlfilter the sql filter
+ */
public void setSQLFilter(String sqlfilter) {
m_filter = sqlfilter;
}
+ /**
+ * Set parameter for for sql filter.
+ *
+ * @param parameterName the parameter name of the
+ * @param value the value attached to the parameter
+ */
public void setParameter(String parameterName, Object value) {
m_filterParameters.put(parameterName, value);
}
- public String getCustomAttribute(final String attribute) {
- return m_customAttributes.get(attribute);
- }
-
- public void addCustomAttribute(final String attribute, final String value) {
- m_customAttributes.put(attribute, value);
- }
-
- /* Diese Methode überschreibt die Methode aus der Eltern-Klasse, um
- * die SQL-Filter berücksichtigen zu können
+ /**
+ * Get all objects for this list.
+ *
+ * Overrides the parent class to allow for sql filter
*/
@Override
protected DataCollection getObjects(HttpServletRequest request,
@@ -112,7 +145,7 @@
return objects;
}
- /* Diese Methode wird vom Servlet aufgerufen */
+ /* This method will be called by the servlet */
public Element generateXML(HttpServletRequest request,
HttpServletResponse response) {
Element content = Navigation.newElement("complexObjectList");
|
|
From: <pb...@fe...> - 2012-12-16 20:05:54
|
Author: pboy
Date: 2012-12-16 20:05:43 +0000 (Sun, 16 Dec 2012)
New Revision: 2390
Modified:
trunk/ccm-cms/src/com/arsdigita/cms/CMSResources.properties
trunk/ccm-cms/src/com/arsdigita/cms/CMSResources_de.properties
trunk/ccm-cms/src/com/arsdigita/cms/ui/category/CategoryItemPane.java
trunk/ccm-cms/src/com/arsdigita/cms/ui/category/CategoryLocalizationEditForm.java
trunk/ccm-cms/src/com/arsdigita/cms/ui/category/CategoryLocalizationTable.java
trunk/ccm-core/src/com/arsdigita/categorization/Category.java
trunk/ccm-core/src/com/arsdigita/categorization/CategoryLocalizationCollection.java
trunk/ccm-navigation/src/com/arsdigita/navigation/DataCollectionDefinition.java
trunk/ccm-navigation/src/com/arsdigita/navigation/ui/AbstractObjectList.java
trunk/ccm-navigation/src/com/arsdigita/navigation/ui/object/ComplexObjectList.java
Log:
UI enhancement: category localisation now editable, contentbundle sorted by locale. (on behalf of quasimodo)
Modified: trunk/ccm-cms/src/com/arsdigita/cms/CMSResources.properties
===================================================================
--- trunk/ccm-cms/src/com/arsdigita/cms/CMSResources.properties 2012-12-16 19:58:08 UTC (rev 2389)
+++ trunk/ccm-cms/src/com/arsdigita/cms/CMSResources.properties 2012-12-16 20:05:43 UTC (rev 2390)
@@ -105,7 +105,7 @@
cms.contenttypes.ui.event_end_time=Event End Time:
cms.contenttypes.ui.government_uid=Government UID:
cms.contenttypes.ui.grade=Grade:
-cms.contenttypes.ui.homepage=Homepage?
+cms.contenttypes.ui.homepage=Homepage:
cms.contenttypes.ui.job_description=Job Description:
cms.contenttypes.ui.launch_date=Launch Date:
cms.contenttypes.ui.lead=Description:
Modified: trunk/ccm-cms/src/com/arsdigita/cms/CMSResources_de.properties
===================================================================
--- trunk/ccm-cms/src/com/arsdigita/cms/CMSResources_de.properties 2012-12-16 19:58:08 UTC (rev 2389)
+++ trunk/ccm-cms/src/com/arsdigita/cms/CMSResources_de.properties 2012-12-16 20:05:43 UTC (rev 2390)
@@ -70,7 +70,7 @@
cms.contenttypes.shared.assign_categories.title=Kategorien zuweisen
cms.contenttypes.shared.assign_categories.description=Kategorien zuweisen
cms.contenttypes.shared.attach_files.title=Dateien zuordnen
-cms.contenttypes.shared.attach_files.description=Dateien anh\u00c4ngen
+cms.contenttypes.shared.attach_files.description=Dateien anh\u00e4ngen
cms.contenttypes.shared.basic_properties.description=Basiseigenschaften editieren
cms.contenttypes.shared.basic_properties.title=Basiseigenschaften
cms.contenttypes.shared.body_text.title=Haupttext
@@ -105,7 +105,7 @@
cms.contenttypes.ui.event_end_time=Event Ende um\:
cms.contenttypes.ui.government_uid=Government UID:
cms.contenttypes.ui.grade=Grad:
-cms.contenttypes.ui.homepage=Homepage?
+cms.contenttypes.ui.homepage=Homepage:
cms.contenttypes.ui.job_description=Job Beschreibung:
cms.contenttypes.ui.launch_date=Ver\u00f6ffentlichungsdatum:
cms.contenttypes.ui.lead=Beschreibung (Lead Text):
@@ -160,8 +160,8 @@
cms.installer.cannot_find_group_for_email=Kann email-Gruppe nicht finden
cms.installer.cannot_read_line_of_data=Kann Datensatz nicht lesen
cms.installer.cannot_set_template_text=Kann Template Text nicht festlegen
-cms.installer.could_not_load_section=Kann die folgende ContentSection nicht laden '{0}'
-cms.installer.deploy=anwenden
+cms.installer.could_not_load_section=Kann die ContentSection '{0}' nicht laden
+cms.installer.deploy=Anwenden
cms.installer.failed_to_update_the_default_content_section=Update der Default Content Section gescheitert.
cms.installer.formbuilder.form=Form
cms.installer.formbuilder.form_section=Form Abschnitt
@@ -187,7 +187,7 @@
cms.publishToFile.could_not_get_object_for_oid=Could not get object for oid
cms.publishToFile.error_executing=Ausf\u00fchrungsfehler bei '{0}' \:
cms.publishToFile.exit_value_was=Exit Code war
-cms.publishToFile.interrupted_when_doing=Unterbrochen bei Ausf\u00fchren von '{0}'
+cms.publishToFile.interrupted_when_doing=Unterbrochen beim Ausf\u00fchren von '{0}'
cms.publishToFile.invalid_brokenlinkaction=Ung\u00fcltige BrokenLinkAction\:
cms.publishToFile.invalid_reference_target_type=Ung\u00fcltige reference target type\:
cms.publishToFile.malformed_url=Falsche Struktur der URL\:
@@ -232,7 +232,7 @@
cms.ui.browse=Dokumente
cms.ui.browse_items_by_category=Durchsicht der Elemente nach Kategorien
cms.ui.cancel=Abbruch
-cms.ui.cancel_hit=Abbruch dr\u00fccken
+cms.ui.cancel_hit=Abbruch gedr\u00fcckt
cms.ui.cancelled=abgebrochen
cms.ui.cannot_assign_groups_to_owner=cannot assign groups to owner
cms.ui.categories=Kategorien
@@ -241,7 +241,7 @@
cms.ui.content_item=Dokument
cms.ui.content_section=Content section
cms.ui.content_section_configuration=<h2>Content Section Configuration</h2>
-cms.ui.content_types=Dokument Typen
+cms.ui.content_types=Dokumenttypen
cms.ui.contents_of=Inhalt von
cms.ui.create=Erstellen
cms.ui.cse=Bald abgelaufen
@@ -324,10 +324,10 @@
cms.ui.template=Vorlage
cms.ui.Templates=Vorlagen
cms.ui.the_model_is_empty=Das Modell ist leer
-cms.ui.there_are_no_items=Keine elemente vorhanden.
+cms.ui.there_are_no_items=Keine Elemente vorhanden.
cms.ui.there_was_no_one_matching_the_search_criteria=Kein Element erf\u00fcllte die Suchkriterien.
cms.ui.this_should_never_happen=Dies sollte nie passieren\!
-cms.ui.types=Dokument Typen
+cms.ui.types=Dokumenttypen
cms.ui.unknown=unbekannt
cms.ui.upload_new_content=Neuen Inhalt laden
cms.ui.use_custom_permissions=Benutzerspezifische Rechte
@@ -352,9 +352,9 @@
# Package com.arsdigita.cms.ui.authoring
# ======================================
-cms.ui.authoring.an_item_with_this_name_already_exists=Ein Item mit diesem Namen existiert
+cms.ui.authoring.an_item_with_this_name_already_exists=Ein Item mit diesem Namen existiert bereits
cms.ui.authoring.bad_getblob_datatype=Ung\u00fcltiger Datentyp getBlob
-cms.ui.authoring.bad_getclob_datatype=Ung\u00fcltiger Datentyp getBlob
+cms.ui.authoring.bad_getclob_datatype=Ung\u00fcltiger Datentyp getClob
cms.ui.authoring.body=Textbereich:
cms.ui.authoring.caption=Untertitel:
cms.ui.authoring.content_type=Inhaltstyp:
@@ -457,7 +457,7 @@
cms.ui.category.localization_error_locale=Bitte w\u00e4hlen Sie eine Sprache aus
cms.ui.category.localization_locale=Sprache
cms.ui.category.localization_name=Name
-cms.ui.category.localization_none=Diese Kaegorie hat keine Sprachversionen
+cms.ui.category.localization_none=Diese Kategorie hat keine Sprachversionen
cms.ui.category.localization_url=URL
cms.ui.category.name_not_unique=Es gibt bereits eine Kategorie mit diesem Namen.
cms.ui.category.no_categorized_objects=Es gibt keine kategorisierten Objekte
@@ -489,8 +489,8 @@
cms.ui.cse.itemName=Name
cms.ui.cse.view=Anzeigen
cms.ui.cse.viewLink=anzeigen
-cms.ui.cse.edit=Edit
-cms.ui.cse.editLink=edit
+cms.ui.cse.edit=Bearbeiten
+cms.ui.cse.editLink=bearbeiten
cms.ui.cse.endDateTime=aktiv bis
@@ -498,7 +498,7 @@
# ===================================
cms.ui.folder.cancelled=Abgebrochen
cms.ui.folder.cannot_find_a_root_folder=Kein Wurzelverzeichnis gefunden.
-cms.ui.folder.na=K.A.
+cms.ui.folder.na=k.A.
cms.ui.folder.no_source_items_specified=Kein Quelldokument angegeben.
cms.ui.folder.parent=\u00dcbergeordneter Ordner
cms.ui.folder.rename=Ordner umbenennen
@@ -507,7 +507,7 @@
# ========================================
cms.ui.formbuilder.description=Beschreibung:
cms.ui.formbuilder.name=Name:
-cms.ui.formbuilder.oh_no_you_dont=Nicht, sie wollen nicht
+cms.ui.formbuilder.oh_no_you_dont=Nein, das wollen sie nicht
cms.ui.formbuilder.title=Titel\:
Modified: trunk/ccm-cms/src/com/arsdigita/cms/ui/category/CategoryItemPane.java
===================================================================
--- trunk/ccm-cms/src/com/arsdigita/cms/ui/category/CategoryItemPane.java 2012-12-16 19:58:08 UTC (rev 2389)
+++ trunk/ccm-cms/src/com/arsdigita/cms/ui/category/CategoryItemPane.java 2012-12-16 20:05:43 UTC (rev 2390)
@@ -22,9 +22,12 @@
import com.arsdigita.bebop.BaseLink;
import com.arsdigita.bebop.Component;
import com.arsdigita.bebop.Form;
+import com.arsdigita.bebop.FormModel;
import com.arsdigita.bebop.Label;
import com.arsdigita.bebop.Link;
+import com.arsdigita.bebop.Page;
import com.arsdigita.bebop.PageState;
+import com.arsdigita.bebop.ParameterSingleSelectionModel;
import com.arsdigita.bebop.SimpleContainer;
import com.arsdigita.bebop.SingleSelectionModel;
import com.arsdigita.bebop.event.ActionEvent;
@@ -32,6 +35,7 @@
import com.arsdigita.bebop.event.ChangeEvent;
import com.arsdigita.bebop.event.ChangeListener;
import com.arsdigita.bebop.form.Submit;
+import com.arsdigita.bebop.parameters.StringParameter;
import com.arsdigita.categorization.CategorizedCollection;
import com.arsdigita.categorization.Category;
import com.arsdigita.categorization.CategoryCollection;
@@ -90,7 +94,6 @@
m_category = category;
// Details
-
m_detailPane = new SimpleContainer();
add(m_detailPane);
setDefault(m_detailPane);
@@ -145,7 +148,8 @@
m_category.getCategory(state)
.getCategoryLocalizationCollection().size();
- if (countLanguages < countSupportedLanguages) {
+ if (m_category.getCategory(state).canEdit()
+ && countLanguages < countSupportedLanguages) {
return true;
} else {
return false;
@@ -333,20 +337,30 @@
private CategoryLocalizationTable m_catLocalizationTable;
private CategoryLocalizationEditForm m_editCategoryLocalizationForm;
+ private StringParameter m_catLocaleParam;
+ private ParameterSingleSelectionModel m_catLocale;
CategoryLocalizationSection(ActionLink addLink) {
setHeading(new Label(gz("cms.ui.category.localizations")));
+ m_catLocaleParam = new StringParameter("catLocale");
+ m_catLocale = new ParameterSingleSelectionModel(m_catLocaleParam);
final ActionGroup group = new ActionGroup();
setBody(group);
- m_catLocalizationTable = new CategoryLocalizationTable(m_category, m_model);
+ m_catLocalizationTable = new CategoryLocalizationTable(m_category, m_model, m_catLocale);
group.setSubject(m_catLocalizationTable);
group.addAction(new AdminVisible(addLink), ActionGroup.ADD);
- m_editCategoryLocalizationForm = new CategoryLocalizationEditForm(m_category, "de");
+ m_editCategoryLocalizationForm = new CategoryLocalizationEditForm(m_category, m_catLocale);
+ add(m_editCategoryLocalizationForm);
connect(m_editCategoryLocalizationForm);
connect(m_catLocalizationTable, 0, m_editCategoryLocalizationForm);
+ }
+ @Override
+ public void register(Page page) {
+ super.register(page);
+ page.addComponentStateParam(m_editCategoryLocalizationForm, m_catLocaleParam);
}
}
@@ -529,7 +543,7 @@
super(c, s);
}
- // Build the preview link. This uses a standard redirect link to find
+ // Build the preview link. This uses a standard redirect link to find
// the content. The prepareURL method is called by the printwriter
@Override
protected String prepareURL(final PageState state, String location) {
@@ -593,6 +607,7 @@
* and the user is allowed to edit this item.
*
* @param state
+ *
* @return
*/
@Override
@@ -614,6 +629,7 @@
*
* @param item
* @param state
+ *
* @return
*/
private boolean isItemEditable(ContentItem item, PageState state) {
Modified: trunk/ccm-cms/src/com/arsdigita/cms/ui/category/CategoryLocalizationEditForm.java
===================================================================
--- trunk/ccm-cms/src/com/arsdigita/cms/ui/category/CategoryLocalizationEditForm.java 2012-12-16 19:58:08 UTC (rev 2389)
+++ trunk/ccm-cms/src/com/arsdigita/cms/ui/category/CategoryLocalizationEditForm.java 2012-12-16 20:05:43 UTC (rev 2390)
@@ -20,6 +20,7 @@
import com.arsdigita.bebop.FormProcessException;
import com.arsdigita.bebop.PageState;
+import com.arsdigita.bebop.SingleSelectionModel;
import com.arsdigita.bebop.event.FormInitListener;
import com.arsdigita.bebop.event.FormProcessListener;
import com.arsdigita.bebop.event.FormSectionEvent;
@@ -37,30 +38,27 @@
* in order to present forms for managing the multi-language categories.
*
* @author Sören Bernstein (quasimodo) qu...@ze...
- * @version $Id: CategoryLocalizationEditForm.java $
+ * @version $Id: CategoryLocalizationEditForm.java $
*/
public class CategoryLocalizationEditForm extends CategoryLocalizationForm {
-
+
private static final Logger s_log = Logger.getLogger
(CategoryLocalizationEditForm.class);
-
- private final String m_categoryLocalizationLocale;
-
+
+ private final SingleSelectionModel m_catLocale;
/**
* Creates a new instance of CategoryLocalizationEditForm
*/
- public CategoryLocalizationEditForm(final CategoryRequestLocal category,
- final String locale) {
-
+ public CategoryLocalizationEditForm(final CategoryRequestLocal category, SingleSelectionModel catLocale) {
+
super("EditCategoryLocalization", gz(
"cms.ui.category.localization_edit"), category);
-
- // Speichere Locale ab
- m_categoryLocalizationLocale = locale;
-
+
+ m_catLocale = catLocale;
+
addInitListener(new InitListener());
addProcessListener(new ProcessListener());
-
+
}
/**
@@ -69,45 +67,46 @@
private class InitListener implements FormInitListener {
public final void init(final FormSectionEvent e)
throws FormProcessException {
-
+
final PageState state = e.getPageState();
final Category category = m_category.getCategory(state);
+ final String categoryLocalizationLocale = (String) m_catLocale.getSelectedKey(state);
+
// Hide Locale-Widget and lock it (read-only)
- m_locale.addOption(new Option(m_categoryLocalizationLocale,
- new Locale(m_categoryLocalizationLocale).getDisplayLanguage()), state);
-// m_locale.setValue(state, m_categoryLocalizationLocale);
+ m_locale.addOption(new Option(categoryLocalizationLocale,
+ new Locale(categoryLocalizationLocale).getDisplayLanguage()), state);
+ m_locale.setValue(state, categoryLocalizationLocale);
// m_locale.setVisible(state, false);
m_locale.lock();
-
- m_name.setValue(state, category.getName((String) m_locale.getValue(state)));
- m_description.setValue(state, category.getDescription(
- (String) m_locale.getValue(state)));
- m_url.setValue(state, category.getURL((String) m_locale.getValue(state)));
- if (category.isEnabled((String) m_locale.getValue(state))) {
+ m_name.setValue(state, category.getName(categoryLocalizationLocale));
+ m_description.setValue(state, category.getDescription(categoryLocalizationLocale));
+ m_url.setValue(state, category.getURL(categoryLocalizationLocale));
+
+ if (category.isEnabled(categoryLocalizationLocale)) {
m_isEnabled.setValue(state, "yes");
} else {
m_isEnabled.setValue(state, "no");
}
}
}
-
+
/**
* ##todo: document purpose of this
*/
private class ProcessListener implements FormProcessListener {
public final void process(final FormSectionEvent e)
throws FormProcessException {
-
+
final PageState state = e.getPageState();
final Category category = m_category.getCategory(state);
-
+
if (s_log.isDebugEnabled()) {
s_log.debug("Editing localization for locale " + m_locale +
" for category " + category);
}
-
+
if (category.canEdit()) {
category.setName((String) m_name.getValue(state),
(String) m_locale.getValue(state));
Modified: trunk/ccm-cms/src/com/arsdigita/cms/ui/category/CategoryLocalizationTable.java
===================================================================
--- trunk/ccm-cms/src/com/arsdigita/cms/ui/category/CategoryLocalizationTable.java 2012-12-16 19:58:08 UTC (rev 2389)
+++ trunk/ccm-cms/src/com/arsdigita/cms/ui/category/CategoryLocalizationTable.java 2012-12-16 20:05:43 UTC (rev 2390)
@@ -21,13 +21,11 @@
import com.arsdigita.bebop.Component;
import com.arsdigita.bebop.ControlLink;
import com.arsdigita.bebop.Label;
-import com.arsdigita.bebop.Link;
import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.SingleSelectionModel;
import com.arsdigita.bebop.Table;
import com.arsdigita.bebop.event.TableActionEvent;
import com.arsdigita.bebop.event.TableActionListener;
-import com.arsdigita.bebop.table.DefaultTableCellRenderer;
import com.arsdigita.bebop.table.TableCellRenderer;
import com.arsdigita.bebop.table.TableColumn;
import com.arsdigita.bebop.table.TableColumnModel;
@@ -36,13 +34,7 @@
import com.arsdigita.categorization.Category;
import com.arsdigita.categorization.CategoryLocalization;
import com.arsdigita.categorization.CategoryLocalizationCollection;
-import com.arsdigita.cms.CMS;
-import com.arsdigita.cms.ContentSection;
-import com.arsdigita.cms.SecurityManager;
-import com.arsdigita.cms.dispatcher.ItemResolver;
-import com.arsdigita.cms.dispatcher.Utilities;
import com.arsdigita.cms.util.GlobalizationUtil;
-import com.arsdigita.domain.DataObjectNotFoundException;
import com.arsdigita.util.LockableImpl;
import java.math.BigDecimal;
import java.util.Locale;
@@ -61,22 +53,23 @@
private final SingleSelectionModel m_model;
private final String TABLE_COL_LANG = "table_col_lang";
private final String TABLE_COL_DEL = "table_col_del";
+ private final SingleSelectionModel m_catLocale;
/**
* Creates a new instance of CategoryLocalizationTable
*/
- public CategoryLocalizationTable(final CategoryRequestLocal category,
- final SingleSelectionModel model) {
+ public CategoryLocalizationTable(final CategoryRequestLocal category, final SingleSelectionModel model, SingleSelectionModel catLocale) {
super();
m_category = category;
m_model = model;
+ m_catLocale = catLocale;
// if table is empty:
setEmptyView(new Label(GlobalizationUtil.globalize(
"cms.ui.category.localization_none")));
-TableColumnModel tab_model = getColumnModel();
+ TableColumnModel tab_model = getColumnModel();
// define columns
// XXX globalize
@@ -196,25 +189,15 @@
private class EditCellRenderer extends LockableImpl implements TableCellRenderer {
public Component getComponent(Table table, PageState state, Object value,
- boolean isSelected, Object key,
+ boolean isSelected, final Object key,
int row, int column) {
-// if (canEdit) {
-// CategoryLocalization cl;
-
-// try {
-// cl = new CategoryLocalization((BigDecimal) key);
-// } catch (DataObjectNotFoundException ex) {
-// return new Label(value.toString());
-// }
-
-// ContentSection section = CMS.getContext().getContentSection();
-// ItemResolver resolver = section.getItemResolver();
-
-// return new Link(value.toString(), resolver.generateItemURL(state, cl, section, cl.getVersion()));
- ControlLink link = new ControlLink(value.toString());
- return link;
+ if (m_category.getCategory(state).canEdit()) {
+ return new ControlLink(value.toString());
+ } else {
+ return new Label(value.toString());
+ }
}
}
@@ -224,10 +207,14 @@
boolean isSelected, Object key,
int row, int column) {
- ControlLink link = new ControlLink(value.toString());
- link.setConfirmation((String) GlobalizationUtil.globalize(
- "cms.ui.category.localization_confirm_delete").localize());
- return link;
+ if (m_category.getCategory(state).canDelete()) {
+ ControlLink link = new ControlLink(value.toString());
+ link.setConfirmation((String) GlobalizationUtil.globalize(
+ "cms.ui.category.localization_confirm_delete").localize());
+ return link;
+ } else {
+ return null;
+ }
}
}
@@ -252,6 +239,7 @@
// Edit
if (col.getHeaderKey().toString().equals(TABLE_COL_LANG)) {
+ m_catLocale.setSelectedKey(state, categoryLocalization.getLocale());
}
// Delete
Modified: trunk/ccm-core/src/com/arsdigita/categorization/Category.java
===================================================================
--- trunk/ccm-core/src/com/arsdigita/categorization/Category.java 2012-12-16 19:58:08 UTC (rev 2389)
+++ trunk/ccm-core/src/com/arsdigita/categorization/Category.java 2012-12-16 20:05:43 UTC (rev 2390)
@@ -59,25 +59,25 @@
* <p>This is a persistent class backed by the data object type whose name is
* specified by {@link #BASE_DATA_OBJECT_TYPE}. The attribute names of of this
* data object type are exposed via the public string fields such as {@link
- * #CHILD}, {@link #DEFAULT_ANCESTORS}. See below.</p>
+ * #CHILD}, {@link #DEFAULT_ANCESTORS}. See below.</p>
*
* <p>This version of the class deprecates the notion of <em>category
* purposes</em> and replaces it with the notion of <em>use contexts</em>.
* The following methods should no longer be used:</p>
*
* <ul>
- * <li>{@link #getPurposes()}</li>
- * <li>{@link #addPurpose(CategoryPurpose)}</li>
- * <li>{@link #removePurpose(CategoryPurpose)}</li>
+ * <li>{@link #getPurposes()}</li>
+ * <li>{@link #addPurpose(CategoryPurpose)}</li>
+ * <li>{@link #removePurpose(CategoryPurpose)}</li>
* </ul>
*
* <p>The following methods should be used instead:</p>
*
* <ul>
- * <li>{@link #getRootForObject(ACSObject, String)}</li>
- * <li>{@link #setRootForObject(ACSObject, Category,String)}</li>
- * <li>{@link #clearRootForObject(ACSObject, String)}</li>
- * <li>{@link #getRootCategories(ACSObject)}</li>
+ * <li>{@link #getRootForObject(ACSObject, String)}</li>
+ * <li>{@link #setRootForObject(ACSObject, Category,String)}</li>
+ * <li>{@link #clearRootForObject(ACSObject, String)}</li>
+ * <li>{@link #getRootCategories(ACSObject)}</li>
* </ul>
*
* @author Randy Graebner
@@ -89,10 +89,10 @@
* environment. The following attributes are localizable:
*
* <ul>
- * <li>Name</li>
- * <li>Description</li>
- * <li>URL</li>
- * <li>IsEnabled</li>
+ * <li>Name</li>
+ * <li>Description</li>
+ * <li>URL</li>
+ * <li>IsEnabled</li>
* </ul>
*
* To use localized URLs I had to change NavigationFileReolver.resolveCategory()
@@ -106,21 +106,24 @@
private static final Logger s_log = Logger.getLogger(Category.class);
/**
* @see ObjectType
- **/
+ *
+ */
public static final String BASE_DATA_OBJECT_TYPE =
- "com.arsdigita.categorization.Category";
+ "com.arsdigita.categorization.Category";
private static final String BASE_DATA_OBJECT_PACKAGE =
- "com.arsdigita.categorization";
+ "com.arsdigita.categorization";
/**
- * The <code>PrivilegeDescriptor corresponding</code> to the privilege to
+ * The
+ * <code>PrivilegeDescriptor corresponding</code> to the privilege to
* map subcategories and objects to this category
- **/
+ *
+ */
public static final PrivilegeDescriptor MAP_DESCRIPTOR =
- new PrivilegeDescriptor(
+ new PrivilegeDescriptor(
"map_to_category");
// Quasimodo: Begin
private static CategorizationConfig s_config = CategorizationConfig
- .getConfig();
+ .getConfig();
// Quasimodo: End
public static final String ROOT_CATEGORY = "rootCategory";
public static final String USE_CONTEXT = "useContext";
@@ -128,38 +131,64 @@
public static final String ROOT_USE_CONTEXT = "rootUseContext";
public static final String OWNER_USE_CONTEXT = "ownerUseContext";
// category-category mapping types
- /** An attribute name for the underlying data object. */
+ /**
+ * An attribute name for the underlying data object.
+ */
public static final String CHILD = "child";
- /** An attribute name for the underlying data object. */
+ /**
+ * An attribute name for the underlying data object.
+ */
public static final String PARENTS = "parents";
- /** An attribute name for the underlying data object. */
+ /**
+ * An attribute name for the underlying data object.
+ */
public static final String RELATED = "related";
public static final String PREFERRED = "preferred";
- /** An attribute name for the underlying data object. */
+ /**
+ * An attribute name for the underlying data object.
+ */
public static final String REL_TYPE = "relationType";
- /** An attribute name for the underlying data object. */
+ /**
+ * An attribute name for the underlying data object.
+ */
public static final String SORT_KEY = "sortKey";
public static final String IS_DEFAULT = "isDefault";
public static final String IS_INDEX = "isIndex";
public static final String PARENT_CATEGORY = "parentCategory";
public static final String CATEGORY_ID = "categoryID";
// these are some constants to use in the code
- /** An attribute name for the underlying data object. */
+ /**
+ * An attribute name for the underlying data object.
+ */
public static final String NAME = "name";
- /** An attribute name for the underlying data object. */
+ /**
+ * An attribute name for the underlying data object.
+ */
public static final String DESCRIPTION = "description";
- /** An attribute name for the underlying data object. */
+ /**
+ * An attribute name for the underlying data object.
+ */
public static final String URL = "url";
- /** An attribute name for the underlying data object. */
+ /**
+ * An attribute name for the underlying data object.
+ */
public static final String IS_ENABLED = "isEnabled";
- /** An attribute name for the underlying data object. */
+ /**
+ * An attribute name for the underlying data object.
+ */
public static final String IS_ABSTRACT = "isAbstract";
- /** An attribute name for the underlying data object. */
+ /**
+ * An attribute name for the underlying data object.
+ */
public static final String DEFAULT_ANCESTORS = "defaultAncestors";
- /** An attribute name for the underlying data object. */
+ /**
+ * An attribute name for the underlying data object.
+ */
public static final String IGNORE_PARENT_INDEX_ITEM =
- "ignoreParentIndexItem";
- /** An attribute name for the underlying data object. */
+ "ignoreParentIndexItem";
+ /**
+ * An attribute name for the underlying data object.
+ */
private static final String PURPOSES = "purposes";
// this contains association names from the pdl file
public final static String CHILD_OBJECTS = "childObjects";
@@ -168,7 +197,7 @@
public static final String LOCALIZATIONS = "localizations";
// some named queries in the pdl files
private static final String CHILD_CATEGORY_IDS =
- "com.arsdigita.categorization.childCategoryIDs";
+ "com.arsdigita.categorization.childCategoryIDs";
private static final String CURRENT_SORT_KEY = "currentSortKey";
private HierarchyDenormalization m_hierarchy;
// Quasimodo: Begin
@@ -183,7 +212,8 @@
/**
* Returns the model name of {@link #BASE_DATA_OBJECT_TYPE}.
- **/
+ *
+ */
public static String getBaseDataObjectPackage() {
return BASE_DATA_OBJECT_PACKAGE;
}
@@ -192,7 +222,8 @@
* Initializes the category with the specified data object.
*
* @param categoryObjectData the data object
- **/
+ *
+ */
public Category(DataObject categoryObjectData) {
super(categoryObjectData);
}
@@ -202,7 +233,8 @@
* Category(Category.BSE_DATA_OBJECT_TYPE)}.
*
* @see com.arsdigita.domain.DomainObject#DomainObject(String)
- **/
+ *
+ */
public Category() {
this(BASE_DATA_OBJECT_TYPE);
}
@@ -216,7 +248,8 @@
* @see com.arsdigita.domain.DomainObject#DomainObject(String)
* @see com.arsdigita.persistence.DataObject
* @see com.arsdigita.persistence.metadata.ObjectType
- **/
+ *
+ */
public Category(String typeName) {
super(typeName);
}
@@ -229,7 +262,8 @@
*
* @see com.arsdigita.domain.DomainObject#DomainObject(ObjectType)
* @see com.arsdigita.persistence.DataObject
- **/
+ *
+ */
public Category(ObjectType type) {
super(type);
}
@@ -239,19 +273,21 @@
* storage mechanism.
*
* @param oid the OID for the data object to retrieve
+ *
* @throws DataObjectNotFoundException if this OID is invalid or has been
- * deleted.
+ * deleted.
*
* @see com.arsdigita.domain.DomainObject#DomainObject(OID)
* @see com.arsdigita.persistence.DataObject
- **/
+ *
+ */
public Category(OID oid) {
super(oid);
}
/**
* Retrieves the data object with the specified ID from the persistence
- * storage mechanism. This method is just a wrapper for the {@link
+ * storage mechanism. This method is just a wrapper for the {@link
* #Category(OID)} constructor.
*
* @throws DataObjectNotFoundException
@@ -263,7 +299,7 @@
/**
* Creates a new category with the given name and description.
*
- * @param name the name for the new category
+ * @param name the name for the new category
* @param description the description for the new category
*/
public Category(String name, String description) {
@@ -276,9 +312,9 @@
* Creates a new category with the given name, description and URL
* component.
*
- * @param name the name for the new category
+ * @param name the name for the new category
* @param description the description for the new category
- * @param url URL component used when browsing categories.
+ * @param url URL component used when browsing categories.
*/
public Category(String name, String description, String url) {
this();
@@ -289,14 +325,15 @@
/**
* Retrieves the category with the given category ID, and sets the name and
- * description. For the new name and descrption to be permanent, the caller
+ * description. For the new name and descrption to be permanent, the caller
* must call the save() method.
*
- * @param categoryID the category ID
- * @param name the category name
+ * @param categoryID the category ID
+ * @param name the category name
* @param description the category description
+ *
* @exception DataObjectNotFoundException if this OID is
- * invalid or has been deleted.
+ * invalid or has been deleted.
*
* @see com.arsdigita.domain.DomainObject#DomainObject(OID)
*/
@@ -308,15 +345,16 @@
/**
* Retrieves the category with the given category ID, and sets the name and
- * description. For the new name and descrption to be permanent, the caller
+ * description. For the new name and descrption to be permanent, the caller
* must call the save() method.
*
- * @param categoryID the category ID
- * @param name the category name
+ * @param categoryID the category ID
+ * @param name the category name
* @param description the category description
- * @param url URL component used when browsing categories.
+ * @param url URL component used when browsing categories.
+ *
* @exception DataObjectNotFoundException if this OID is
- * invalid or has been deleted.
+ * invalid or has been deleted.
*
* @see com.arsdigita.domain.DomainObject#DomainObject(OID)
*/
@@ -359,7 +397,7 @@
m_hierarchy = new HierarchyDenormalization(
"com.arsdigita.categorization.updateCategoryDescendants", this,
- DEFAULT_ANCESTORS) {
+ DEFAULT_ANCESTORS) {
};
m_categoryLocalizationCollection = new CategoryLocalizationCollection(
@@ -370,14 +408,15 @@
/**
* Quasimodo:
- * Returns the localized name or the name key if localized version don't exist
+ * Returns the localized name or the name key if localized version don't
+ * exist
*
* @return the category name.
*/
public String getName(String locale) {
// Test for localized version
- if (!locale.isEmpty() && m_categoryLocalizationCollection != null && m_categoryLocalizationCollection.
+ if (locale != null && !locale.isEmpty() && m_categoryLocalizationCollection != null && m_categoryLocalizationCollection.
localizationExists(locale)) {
// Return value of isEnabled from localized version, so categories could be disabled depending on locale
@@ -402,8 +441,9 @@
}
/**
- * Returns the display name of the category. This overrides the parent
+ * Returns the display name of the category. This overrides the parent
* implementation.
+ *
* @return the category name.
*/
public String getDisplayName(String locale) {
@@ -411,8 +451,9 @@
}
/**
- * Returns the display name of the category. This overrides the parent
+ * Returns the display name of the category. This overrides the parent
* implementation.
+ *
* @return the category name.
*/
@Override
@@ -421,7 +462,7 @@
}
/**
- * Returns the name of the category along with its default ancestors.
+ * Returns the name of the category along with its default ancestors.
*
* <p>For example, when called on the <em>Televised Events</em> category in
* <href="package-summary.html#taxonomy">this example</a>, the return value
@@ -429,16 +470,16 @@
* Events". </p>
*
* @see #getDefaultAscendants()
- * @param delimiter The string to use to seperate the parents from the
- * children. For example, to obtain the above-mentioned result, you need to
- * pass in <code>" >> "</code> as the delimiter.
+ * @param delimiter The string to use to seperate the parents from the
+ * children. For example, to obtain the above-mentioned result, you need to
+ * pass in <code>" >> "</code> as the delimiter.
*
* @param includeRoot This indicates whether or not the root category should
- * be included in the name.
+ * be included in the name.
*
- * @return the qualified name as explained above. May return
- * <code>null</code> this is the root category, and <code>includeRoot</code>
- * is false.
+ * @return the qualified name as explained above. May return
+ * <code>null</code> this is the root category, and <code>includeRoot</code>
+ * is false.
*/
public String getQualifiedName(String delimiter, boolean includeRoot) {
// If the collection only contains the root and the root is not desired
@@ -464,16 +505,19 @@
}
/**
- * Returns the name of the <b>preferred</b> category along with its default ancestors.
- * Equivalent to #getQualifiedName(String,boolean) if this Category is not a synonym.
+ * Returns the name of the <b>preferred</b> category along with its default
+ * ancestors.
+ * Equivalent to #getQualifiedName(String,boolean) if this Category is not a
+ * synonym.
* Synonym name is appended in parentheses.
*
- * @param delimiter string to separate category names
+ * @param delimiter string to separate category names
* @param includeRoot should root category be shown
+ *
* @return category path
*/
public String getPreferredQualifiedName(String delimiter,
- boolean includeRoot) {
+ boolean includeRoot) {
// is this a synonym?
CategoryCollection cc = new CategoryCollection(getRelatedCategories(
PREFERRED));
@@ -481,7 +525,7 @@
Category preferred = cc.getCategory();
cc.close();
String preferredPath = preferred.getQualifiedName(delimiter,
- includeRoot);
+ includeRoot);
return preferredPath + " (" + getName() + ")";
} else {
return getQualifiedName(delimiter, includeRoot);
@@ -493,11 +537,11 @@
*
* @see #getDefaultAscendants()
*
- * @param delimiter The string to use to seperate the parents from
- * the children.
-
+ * @param delimiter The string to use to seperate the parents from
+ * the children.
+ *
* @param includeRoot This indicates whether or not the root category should
- * be included in the URL.
+ * be included in the URL.
*/
public String getQualifiedURL(String delimiter, boolean includeRoot) {
// If the collection only contains the root and the root is not desired
@@ -549,7 +593,8 @@
* Returns the description of the category.
*
* Quasimodo:
- * Returns localized version of description or description key if localized version don't exist
+ * Returns localized version of description or description key if localized
+ * version don't exist
*
* @return the category description.
*/
@@ -557,7 +602,7 @@
// Test for localized version
// HACK
- if (!locale.isEmpty() && m_categoryLocalizationCollection != null && m_categoryLocalizationCollection.
+ if (locale != null && !locale.isEmpty() && m_categoryLocalizationCollection != null && m_categoryLocalizationCollection.
localizationExists(locale)) {
// Return value of isEnabled from localized version, so categories could be disabled depending on locale
@@ -576,6 +621,7 @@
/**
* Returns the description of the category.
+ *
* @return the category name.
*/
public String getDescription() {
@@ -587,7 +633,9 @@
* Returns a string repesenting the default ancestors of the category
*
* It can be useful and more efficient then working with the
- * CategoryCollection returned by @see getDefaultAscendants() when comparing
+ * CategoryCollection returned by
+ *
+ * @see getDefaultAscendants() when comparing
* ids whose position in the path is known.
* (Added by Chris Gilbert)
*/
@@ -623,18 +671,19 @@
* Returns the URL component of the category.
*
* Quasimodo:
- * Returns the localized version of the URL or URL-key if localized version don't exist
+ * Returns the localized version of the URL or URL-key if localized version
+ * don't exist
*
* @return URL component used when browsing categories
*/
public String getURL(String locale) {
// Test for localized version
- if (!locale.isEmpty() && m_categoryLocalizationCollection != null && m_categoryLocalizationCollection.
+ if (locale != null && !locale.isEmpty() && m_categoryLocalizationCollection != null && m_categoryLocalizationCollection.
localizationExists(locale)) {
// Return value of isEnabled from localized version, so categories could be disabled depending on locale
- String url = m_categoryLocalizationCollection.getURL();
+ String url = m_categoryLocalizationCollection.getURL();
//return m_categoryLocalizationCollection.getURL();
m_categoryLocalizationCollection.rewind();
return url;
@@ -684,41 +733,36 @@
* Determines the current state of the category.
*
* @return <code>true</code> if the category is enabled; <code>false</code>
- * otherwise.
+ * otherwise.
*
* Quasimodo:
* This is getting a bit more compliated:
* 1. Check if category is globally disabled
* 2. If not, check if localized version exists
- * 2.1 If so, return isEnabled from localized version
- * 2.2 If not, return Category.getConfig().getShowInternalName()
+ * 2.1 If so, return isEnabled from localized version
+ * 2.2 If not, return Category.getConfig().getShowInternalName()
*
*/
public boolean isEnabled(String locale) {
- // If locale is empty return global status
- // or if globally disabled, return category as disabled
- if (locale.isEmpty() || ((Boolean) get(IS_ENABLED)).booleanValue() == false) {
- return ((Boolean) get(IS_ENABLED)).booleanValue();
+ // If globally disabled, return category as disabled
+ if (((Boolean) get(IS_ENABLED)).booleanValue() == false) {
+ return false;
}
// Test for localized version
- // HACK
- if (!locale.isEmpty() && m_categoryLocalizationCollection != null && m_categoryLocalizationCollection.
+ if (locale != null && !locale.isEmpty() && m_categoryLocalizationCollection != null && m_categoryLocalizationCollection.
localizationExists(locale)) {
// Return value of isEnabled from localized version, so categories could be disabled depending on locale
boolean isEnabled = m_categoryLocalizationCollection.isEnabled();
m_categoryLocalizationCollection.rewind();
return isEnabled;
- //return m_categoryLocalizationCollection.isEnabled();
} else {
- // Return value of Category.getConfig().getShowInternalName()
- // This will disable all categories without selected locale, if Category.getConfig().getShowInternalName() == false
- return Category.getConfig().getShowInternalName();
-
+ // In any other case return global status
+ return ((Boolean) get(IS_ENABLED)).booleanValue();
}
}
@@ -727,7 +771,7 @@
* Determines the current state of the category.
*
* @return <code>true</code> if the category is enabled; <code>false</code>
- * otherwise.
+ * otherwise.
*/
public boolean isEnabled() {
return isEnabled(GlobalizationHelper.getNegotiatedLocale().getLanguage());
@@ -737,7 +781,7 @@
* Sets whether the category is enabled.
*
* @param isEnabled <code>true</code> if the category is enabled;
- * <code>false</false> otherwise.
+ * <code>false</false> otherwise.
*/
public void setEnabled(boolean isEnabled, String locale) {
@@ -753,7 +797,7 @@
* Sets whether the category is enabled.
*
* @param isEnabled <code>true</code> if the category is enabled;
- * <code>false</false> otherwise.
+ * <code>false</false> otherwise.
*/
public void setEnabled(boolean isEnabled) {
set(IS_ENABLED, isEnabled);
@@ -764,7 +808,7 @@
* categories.
*
* @return <code>true</code> if the category is abstract; <code>false</code>
- * otherwise.
+ * otherwise.
*/
public boolean isAbstract() {
return ((Boolean) get(IS_ABSTRACT)).booleanValue();
@@ -783,8 +827,9 @@
* Determine whether this category should have a default index item
* associated with it (i.e.it's parent category).
*
- * @return <code>true</code> if the parent index item should be ignored (no default index item)
- * <code>false</code> otherwise.
+ * @return <code>true</code> if the parent index item should be ignored (no
+ * default index item)
+ * <code>false</code> otherwise.
*/
public boolean ignoreParentIndexItem() {
return ((Boolean) get(IGNORE_PARENT_INDEX_ITEM)).booleanValue();
@@ -794,8 +839,9 @@
* Set whether this category should have a default index item
* associated with it (i.e.it's parent category).
*
- * @param ignoreParentIndexItem <code>true</code> if the parent index item should be ignored (no default index item)
- * <code>false</code> otherwise
+ * @param ignoreParentIndexItem <code>true</code> if the parent index item
+ * should be ignored (no default index item)
+ * <code>false</code> otherwise
*/
public void setIgnoreParentIndexItem(boolean ignoreParentIndexItem) {
set(IGNORE_PARENT_INDEX_ITEM, ignoreParentIndexItem);
@@ -803,7 +849,8 @@
/**
* @deprecated use the "use context" APIs instead
- **/
+ *
+ */
public Collection getPurposes() {
DataAssociationCursor purposeCur = ((DataAssociation) get(PURPOSES)).
cursor();
@@ -817,21 +864,25 @@
}
/**
- * Adds the specified purpose to this category.
+ * Adds the specified purpose to this category.
*
* @param purpose The purpose
+ *
* @deprecated use the "use context" APIs instead
- **/
+ *
+ */
public void addPurpose(CategoryPurpose purpose) {
add(PURPOSES, purpose);
}
/**
- * Removes the specified purpose from this category.
+ * Removes the specified purpose from this category.
*
* @param purpose the purpose
+ *
* @deprecated use the "use context" APIs instead
- **/
+ *
+ */
public void removePurpose(CategoryPurpose purpose) {
remove(PURPOSES, purpose);
}
@@ -871,7 +922,7 @@
* Determines whether the passed in object is a category.
*
* @return <code>true</code> if the passed in object is a category;
- * <code>false</code> otherwise.
+ * <code>false</code> otherwise.
*
* @param object the object to test
*/
@@ -882,13 +933,13 @@
/**
* Cleans up all the mappings where this category is a child, and then
- * deletes the category. This method should generally not be used. Use
+ * deletes the category. This method should generally not be used. Use
* {@link #deleteCategoryAndRemap()}, {@link #deleteCategoryAndOrphan()}, or
* {@link #deleteCategorySubtree()} instead.
*
* @throws CategorizationException if the category has child objects or
- * subcategories mapped to it. If the object has children, the programmer
- * must call {@link #deleteCategoryAndOrphan()}, {@link
+ * subcategories mapped to it. If the object has children, the programmer
+ * must call {@link #deleteCategoryAndOrphan()}, {@link
* #deleteCategorySubtree()}, or {@link #deleteCategoryAndRemap()}.
*/
@Override
@@ -899,8 +950,8 @@
try {
if (children.next()) {
throw new CategorizationException("This category is the default parent of another category."
- + " You must explicitly delete the child categories first. "
- + "Child category: " + children.
+ + " You must explicitly delete the child categories first. "
+ + "Child category: " + children.
getDataObject());
}
} finally {
@@ -908,13 +959,13 @@
}
DataAssociationCursor objects =
- ((DataAssociation) get(CHILD_OBJECTS)).cursor();
+ ((DataAssociation) get(CHILD_OBJECTS)).cursor();
if (objects != null) {
try {
if (objects.next()) {
throw new CategorizationException("This category has child objects. You must delete "
- + " any such objects explicitly, before deleting the "
- + " category. Child object: " + objects.
+ + " any such objects explicitly, before deleting the "
+ + " category. Child object: " + objects.
getDataObject());
}
} finally {
@@ -941,13 +992,14 @@
*
* <p>If the category to be deleted is not the default parent of the child
* category, this method deletes the mapping but it does not delete that
- * section of the subtree (similar to the way a UNIX <code>rm -r</code>
+ * section of the subtree (similar to the way a UNIX
+ * <code>rm -r</code>
* works on symbolic links).
*/
public void deleteCategorySubtree() {
// we get the association between this category and its children
DataAssociationCursor cursor =
- ((DataAssociation) get(RELATED_CATEGORIES)).cursor();
+ ((DataAssociation) get(RELATED_CATEGORIES)).cursor();
while (cursor.next()) {
DataObject link = cursor.getLink();
@@ -962,9 +1014,9 @@
}
/**
- * Deletes the passed in category after remapping all the children. Adds a
+ * Deletes the passed in category after remapping all the children. Adds a
* mapping from the children to the default parent of the passed in category
- * if the mapping does not already exist. If the category that is the
+ * if the mapping does not already exist. If the category that is the
* parent of the to-be-deleted category is abstract then any objects that
* are children of that object are not remapped to anywhere
*/
@@ -986,7 +1038,7 @@
}
DataAssociationCursor cursor =
- ((DataAssociation) get(RELATED_CATEGORIES)).cursor();
+ ((DataAssociation) get(RELATED_CATEGORIES)).cursor();
while (cursor.next()) {
DataObject link = cursor.getLink();
@@ -1021,7 +1073,7 @@
/**
* Deletes the passed in category. Does not remap any of the children
- * categories or objects. Instead, it just deletes all records of the
+ * categories or objects. Instead, it just deletes all records of the
* mappings.
*/
public void deleteCategoryAndOrphan() {
@@ -1047,7 +1099,7 @@
* for creating subcategories with this category instance as the parent.</p>
*
* <p>It is important to note that a category cannot be a CHILD and a
- * RELATED category at the same time. If the category is RELATED and you
+ * RELATED category at the same time. If the category is RELATED and you
* call addChild, the category is removed from the group of RELATED
* categories and becomes a CHILD category.</p>
*
@@ -1055,7 +1107,8 @@
*
* @pre !isAbstract()
* @pre canMap()
- **/
+ *
+ */
public void addChild(ACSObject object) {
addMapping(object, "child");
}
@@ -1070,21 +1123,24 @@
* mappings.</p>
*
* <p>It is important to note that a category cannot be a CHILD and a
- * RELATED category at the same time. If the category is RELATED and you
+ * RELATED category at the same time. If the category is RELATED and you
* call addChild, the category is removed from the group of RELATED
* categories and becomes a CHILD category.</p>
*
* @param category The related category
+ *
* @pre canMap()
*
- **/
+ *
+ */
public void addRelatedCategory(Category category) {
addMapping(category, RELATED);
}
/**
* Add a preferred category, which marks the current category as a synonym.
- * When a synonym category is selected, preferred category should be used instead
+ * When a synonym category is selected, preferred category should be used
+ * instead
* i.e. assigned to the item.
*/
public void addPreferredCategory(Category preferred) {
@@ -1102,12 +1158,12 @@
return;
}
Assert.isFalse(isAbstract(),
- "You cannot categorize an object "
- + "within an abstract category. If you are "
- + "seeing this message then your UI is "
- + "allowing you to do something that you "
- + "are not allowed to do and you "
- + "should email your site administrator.");
+ "You cannot categorize an object "
+ + "within an abstract category. If you are "
+ + "seeing this message then your UI is "
+ + "allowing you to do something that you "
+ + "are not allowed to do and you "
+ + "should email your site administrator.");
if (RELATED.equals(relationType)) {
throw new CategorizationException(
@@ -1116,7 +1172,7 @@
}
DataAssociationCursor cursor =
- ((DataAssociation) get(CHILD_OBJECTS)).cursor();
+ ((DataAssociation) get(CHILD_OBJECTS)).cursor();
cursor.addEqualsFilter(ID, acsObj.getID());
if (cursor.size() == 0) {
// if the cursor.size() > 0 then the object is already
@@ -1125,12 +1181,12 @@
Categorization.triggerMapEvent(this, acsObj);
if (s_log.isDebugEnabled()) {
s_log.debug(acsObj + " added to " + CHILD_OBJECTS + " of catID="
- + getID() + " type=" + relationType + " (ignored)");
+ + getID() + " type=" + relationType + " (ignored)");
}
} else {
if (s_log.isDebugEnabled()) {
s_log.debug(acsObj + " is already related to catID=" + getID()
- + " type=" + relationType + " (ignored)");
+ + " type=" + relationType + " (ignored)");
}
}
}
@@ -1139,8 +1195,8 @@
// Let's check for loops.
if ("child".equals(relationType) && category.isMemberOfSubtree(this)) {
throw new CategorizationException("The object that you are "
- + "trying to add as a child is already "
- + "a member of the subtree.");
+ + "trying to add as a child is already "
+ + "a member of the subtree.");
}
@@ -1148,7 +1204,7 @@
// Otherwise, we add and then update.
DataAssociationCursor cursor =
- ((DataAssociation) get(RELATED_CATEGORIES)).cursor();
+ ((DataAssociation) get(RELATED_CATEGORIES)).cursor();
cursor.addEqualsFilter(ID, category.getID());
DataObject link;
if (cursor.next()) {
@@ -1167,7 +1223,7 @@
cursor.close();
if (s_log.isDebugEnabled()) {
s_log.debug("updating related catID=" + category.getID() + " type="
- + relationType + " default=false");
+ + relationType + " default=false");
}
link.set(REL_TYPE, relationType);
@@ -1176,12 +1232,14 @@
/**
* Removes a category mapping from the domain object so that an ACS object
- * is no longer a child of a category. This actually deletes the mapping.
+ * is no longer a child of a category. This actually deletes the mapping.
*
* @param acsObj the domain object to uncategorize
+ *
* @pre canMap()
* @throws NullPointerException if <code>acsObj</code> is null
- **/
+ *
+ */
public void removeChild(ACSObject acsObj) {
if (acsObj == null) {
throw new NullPointerException("acsObj");
@@ -1198,7 +1256,8 @@
* Removes the specified child category.
*
* @throws NullPointerException if category is null
- **/
+ *
+ */
public void removeChild(Category category) {
Assert.exists(category, Category.class);
@@ -1215,7 +1274,7 @@
}
/**
- * This takes a category and removes its relation to this category. If the
+ * This takes a category and removes its relation to this category. If the
* passed in category is also a child then it is still a child after this
* call.
*
@@ -1296,7 +1355,7 @@
* objects or child categories).
*
* @return <code>true</code> if the category is a leaf; <code>false</code>
- * otherwise.
+ * otherwise.
*/
public boolean isLeaf() {
return !hasChildCategories() && !hasChildObjects();
@@ -1305,8 +1364,9 @@
/**
* Determines whether the category has child objects.
*
- * @return <code>true</code> if the category does not have any child objects;
- * <code>false</code> otherwise.
+ * @return <code>true</code> if the category does not have any child
+ * objects;
+ * <code>false</code> otherwise.
*/
public boolean hasChildObjects() {
return (getNumberOfChildObjects() != 0);
@@ -1316,7 +1376,7 @@
* Determines whether the category has any child categories.
*
* @return <code>true</code> if the category does not have any child
- * categories; <code>false</code> otherwise.
+ * categories; <code>false</code> otherwise.
*/
public boolean hasChildCategories() {
return (getNumberOfChildCategories() != 0);
@@ -1326,21 +1386,21 @@
* Determines whether the category is a root.
*
* @return <code>true</code> if the category does not have
- * any parents; <code>false</code> otherwise.
+ * any parents; <code>false</code> otherwise.
*/
public boolean isRoot() {
return (getParentCategoryCount() == 0);
}
/**
- * Returns the number of parent categories for this category.
+ * Returns the number of parent categories for this category.
*
- * @return the number of times has this category has been
- * mapped to a new category.
+ * @return the number of times has this category has been
+ * mapped to a new category.
*/
public long getParentCategoryCount() {
DataAssociationCursor cursor =
- ((DataAssociation) get(PARENTS)).cursor();
+ ((DataAssociation) get(PARENTS)).cursor();
try {
return cursor.size();
} finally {
@@ -1349,21 +1409,22 @@
}
/**
- * Sets this category's default parent category to the one that is passed
- * in.
+ * Sets this category's default parent category to the one that is passed
+ * in.
*
- * <p><b>This clears the previous default mapping.</b> The results will be
- * saved for the user when the transaction is committed. </p>
+ * <p><b>This clears the previous default mapping.</b> The results will be
+ * saved for the...
[truncated message content] |
Author: pboy
Date: 2012-12-16 19:58:08 +0000 (Sun, 16 Dec 2012)
New Revision: 2389
Modified:
trunk/ccm-cms-types-image/src/com/arsdigita/cms/contenttypes/ui/ImagePropertyForm.java
trunk/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericContactAttachAddressPropertyForm.java
trunk/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericContactAttachPersonPropertyForm.java
trunk/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonAliasSetForm.java
trunk/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonCreate.java
trunk/ccm-cms/src/com/arsdigita/cms/ui/authoring/PageCreate.java
trunk/ccm-cms/src/com/arsdigita/cms/ui/authoring/PageEdit.java
trunk/ccm-cms/src/com/arsdigita/cms/ui/authoring/PageEditDynamic.java
trunk/ccm-cms/src/com/arsdigita/cms/ui/templates/TemplateEdit.java
Log:
Fixed missing super.validate in all classes inherited from BasicPageForm. (on behalf of JensP)
Modified: trunk/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericContactAttachAddressPropertyForm.java
===================================================================
--- trunk/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericContactAttachAddressPropertyForm.java 2012-12-16 19:53:49 UTC (rev 2388)
+++ trunk/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericContactAttachAddressPropertyForm.java 2012-12-16 19:58:08 UTC (rev 2389)
@@ -149,6 +149,8 @@
@Override
public void validate(FormSectionEvent e) throws FormProcessException {
+ super.validate(e);
+
final PageState state = e.getPageState();
final FormData data = e.getFormData();
Modified: trunk/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericContactAttachPersonPropertyForm.java
===================================================================
--- trunk/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericContactAttachPersonPropertyForm.java 2012-12-16 19:53:49 UTC (rev 2388)
+++ trunk/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericContactAttachPersonPropertyForm.java 2012-12-16 19:58:08 UTC (rev 2389)
@@ -179,6 +179,8 @@
@Override
public void validate(FormSectionEvent e) throws FormProcessException {
+ super.validate(e);
+
final PageState state = e.getPageState();
final FormData data = e.getFormData();
Modified: trunk/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonAliasSetForm.java
===================================================================
--- trunk/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonAliasSetForm.java 2012-12-16 19:53:49 UTC (rev 2388)
+++ trunk/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonAliasSetForm.java 2012-12-16 19:58:08 UTC (rev 2389)
@@ -127,6 +127,8 @@
@Override
public void validate(final FormSectionEvent fse)
throws FormProcessException {
+ super.validate(fse);
+
final PageState state = fse.getPageState();
final FormData data = fse.getFormData();
Modified: trunk/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonCreate.java
===================================================================
--- trunk/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonCreate.java 2012-12-16 19:53:49 UTC (rev 2388)
+++ trunk/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonCreate.java 2012-12-16 19:58:08 UTC (rev 2389)
@@ -75,6 +75,8 @@
// Validate: ensure name uniqueness
@Override
public void validate(FormSectionEvent e) throws FormProcessException {
+ super.validate(e);
+
Folder f = m_parent.getFolder(e.getPageState());
Assert.exists(f);
validateNameUniqueness(f, e, GenericPerson.urlSave(getItemName(e)));
Modified: trunk/ccm-cms/src/com/arsdigita/cms/ui/authoring/PageCreate.java
===================================================================
--- trunk/ccm-cms/src/com/arsdigita/cms/ui/authoring/PageCreate.java 2012-12-16 19:53:49 UTC (rev 2388)
+++ trunk/ccm-cms/src/com/arsdigita/cms/ui/authoring/PageCreate.java 2012-12-16 19:58:08 UTC (rev 2389)
@@ -127,6 +127,8 @@
// Validate: ensure name uniqueness
@Override
public void validate(FormSectionEvent e) throws FormProcessException {
+ super.validate(e);
+
Folder f = m_parent.getFolder(e.getPageState());
Assert.exists(f);
validateNameUniqueness(f, e);
Modified: trunk/ccm-cms/src/com/arsdigita/cms/ui/authoring/PageEdit.java
===================================================================
--- trunk/ccm-cms/src/com/arsdigita/cms/ui/authoring/PageEdit.java 2012-12-16 19:53:49 UTC (rev 2388)
+++ trunk/ccm-cms/src/com/arsdigita/cms/ui/authoring/PageEdit.java 2012-12-16 19:58:08 UTC (rev 2389)
@@ -135,6 +135,8 @@
}
public void validate(FormSectionEvent event) throws FormProcessException {
+ super.validate(event);
+
PageState state = event.getPageState();
FormData data = event.getFormData();
Modified: trunk/ccm-cms/src/com/arsdigita/cms/ui/authoring/PageEditDynamic.java
===================================================================
--- trunk/ccm-cms/src/com/arsdigita/cms/ui/authoring/PageEditDynamic.java 2012-12-16 19:53:49 UTC (rev 2388)
+++ trunk/ccm-cms/src/com/arsdigita/cms/ui/authoring/PageEditDynamic.java 2012-12-16 19:58:08 UTC (rev 2389)
@@ -582,6 +582,8 @@
* confirms this was the same item to be edited
*/
public void validate(FormSectionEvent event) throws FormProcessException {
+ super.validate(event);
+
PageState state = event.getPageState();
FormData data = event.getFormData();
Modified: trunk/ccm-cms/src/com/arsdigita/cms/ui/templates/TemplateEdit.java
===================================================================
--- trunk/ccm-cms/src/com/arsdigita/cms/ui/templates/TemplateEdit.java 2012-12-16 19:53:49 UTC (rev 2388)
+++ trunk/ccm-cms/src/com/arsdigita/cms/ui/templates/TemplateEdit.java 2012-12-16 19:58:08 UTC (rev 2389)
@@ -133,6 +133,8 @@
}
public void validate(FormSectionEvent event) throws FormProcessException {
+ super.validate(event);
+
PageState state = event.getPageState();
FormData data = event.getFormData();
Template t = getTemplate(state);
Modified: trunk/ccm-cms-types-image/src/com/arsdigita/cms/contenttypes/ui/ImagePropertyForm.java
===================================================================
--- trunk/ccm-cms-types-image/src/com/arsdigita/cms/contenttypes/ui/ImagePropertyForm.java 2012-12-16 19:53:49 UTC (rev 2388)
+++ trunk/ccm-cms-types-image/src/com/arsdigita/cms/contenttypes/ui/ImagePropertyForm.java 2012-12-16 19:58:08 UTC (rev 2389)
@@ -206,6 +206,8 @@
@Override
public void validate(FormSectionEvent e) throws FormProcessException {
+ super.validate(e);
+
FormData d = e.getFormData();
}
|